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 1p683Y-0006zd-DG for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Dec 2022 10:35:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p682X-0004vv-Eb for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Dec 2022 10:34:05 +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 1p682W-0004vl-TU for pgsql-hackers@lists.postgresql.org; Fri, 16 Dec 2022 10:34:05 +0000 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p682N-0008Fd-Ad for pgsql-hackers@postgresql.org; Fri, 16 Dec 2022 10:34:04 +0000 Received: by mail-wm1-x334.google.com with SMTP id h8-20020a1c2108000000b003d1efd60b65so3845294wmh.0 for ; Fri, 16 Dec 2022 02:33:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=ZuUmJFl0SEArFIT7Npncuqn8x4k+IGs3omDr6E7v3ps=; b=KkQanJMHZr4vDXafOo48FKejuLDaEZNqYShoWhZSmqhWzC67qwPvIAu6BAnBj7ITF/ /Y74BSQhpHobMHP4GBaIFkVjiuL7PW0WQ63Vuv5O8W244PoEH6jGE12FKvuWxZ5VTRV5 rCLGgD+d3uR+kL7ZHtkwIM6hY+aUlUYaF7JuxWzZaooiLiKBH+z9r4o0f0bE7S//AAaM 0f2NZshIcnHgFo749Q12NYWLYIZ7jB99v18Bsh0ScH3MOiXINZl+WYP5V2BmidxAYjhZ brytpn5oBglSTtYGb0mQ+rS8icLcPj162644m885ozwe3lqjeuyqpSfekrQsaPeuDA1j vZtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ZuUmJFl0SEArFIT7Npncuqn8x4k+IGs3omDr6E7v3ps=; b=ptZsM9kjGGkf4Qe3pxTSsxnS1IZtjqkmJyErzT0BP6xkY/MdWX7C4+PBlxSF3HNeNJ Lcg5JCkBjZO7yak8venyc95Pv24WcTfJ9JfeG7M2u8dJqBVCdhrEAF5V5/CmZliTR8m5 yv8mMKrdXWdBdYnIi8fU7cAxZa/w8ErTkknrpi0AvU24uIyQqKW5N2UiE5R0SLj2MIqD aNdi81BvlSkUW1u4kuzXEsnxvoWKF8WVwCt8AtF54s5woTjGu3icyscFxMKTBL1CG5UE 1ppJGI4I6KcCWG/tHWNjP18kvxFeLPCpiYFDjoiJ5GVFTiv6GslZGCKBgBi4aMSRuKCt vXRA== X-Gm-Message-State: ANoB5pnWnSKgHYHgKIKt0Pgheg3XnSIVG1yfZc7+OSkg1JqQCLhdnQfw wig6xSW/TPr6AuzUy6OEkDg= X-Google-Smtp-Source: AA0mqf5WR7sJqRGma/60kf01eX1dzMjqiaQMhBC8bGBcWyO0QinGspQvh7JZJHbDH1ybIIi4HS3yJQ== X-Received: by 2002:a05:600c:991:b0:3cf:ab99:6b46 with SMTP id w17-20020a05600c099100b003cfab996b46mr23978552wmp.35.1671186833303; Fri, 16 Dec 2022 02:33:53 -0800 (PST) Received: from [192.168.8.26] ([54.239.6.184]) by smtp.gmail.com with ESMTPSA id p13-20020a056000018d00b002422202fa7fsm1891864wrx.39.2022.12.16.02.33.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 16 Dec 2022 02:33:52 -0800 (PST) Content-Type: multipart/mixed; boundary="------------r9KIatASOpVniPvrBi6hlPOw" Message-ID: <60a6476d-f799-39ff-7cd6-98b2665a2c0b@gmail.com> Date: Fri, 16 Dec 2022 11:33:50 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: Minimal logical decoding on standbys From: "Drouvot, Bertrand" To: Robert Haas Cc: Andres Freund , Alvaro Herrera , Ibrar Ahmed , Amit Khandekar , fabriziomello@gmail.com, tushar , Rahila Syed , pgsql-hackers References: <20211028210755.afmwcvpo6ajwdx6n@alap3.anarazel.de> <6711d09f-eaa9-264b-ec7f-88004218b075@amazon.com> <178cf7da-9bd7-e328-9c49-e28ac4701352@gmail.com> <4b19419f-2e7c-a76b-c948-26d10af6693d@gmail.com> <20221207175824.apmc5clnj2fdjkaq@awork3.anarazel.de> <09c26df0-c5f9-eae0-5a6a-10fb00b0522e@gmail.com> <9f0a021e-40e1-0ae6-8086-a4457c99749e@gmail.com> <0ae83e69-bda0-0eb8-ef4a-d169292e3f66@gmail.com> <47f5faf0-6a6d-602a-5d5b-9449ca74c6ad@gmail.com> Content-Language: en-US In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------r9KIatASOpVniPvrBi6hlPOw Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, On 12/15/22 11:31 AM, Drouvot, Bertrand wrote: > Hi, > > On 12/14/22 4:55 PM, Robert Haas wrote: >>   On Wed, Dec 14, 2022 at 8:06 AM Drouvot, Bertrand> Other comments: >> >> +    if RelationIsAccessibleInLogicalDecoding(rel) >> +        xlrec.flags |= VISIBILITYMAP_ON_CATALOG_ACCESSIBLE_IN_LOGICAL_DECODING; >> >> This is a few parentheses short of where it should be. Hilariously it >> still compiles because there are parentheses in the macro definition. > > Oops, thanks will fix. Fixed in v32 attached. > >> >> +            xlrec.onCatalogAccessibleInLogicalDecoding = >> RelationIsAccessibleInLogicalDecoding(relation); >> >> These lines are quite long. I think we should consider (1) picking a >> shorter name for the xlrec field and, if it's such lines are going to >> still routinely exceed 80 characters, (2) splitting them into two >> lines, with the second one indented to match pgindent's preferences in >> such cases, which I think is something like this: >> >> xlrec.onCatalogAccessibleInLogicalDecoding = >>      RelationIsAccessibleInLogicalDecoding(relation); >> >> As far as renaming, I think we could at least remove onCatalog part >> from the identifier, as that doesn't seem to be adding much. And maybe >> we could even think of changing it to something like >> logicalDecodingConflict or even decodingConflict, which would shave >> off a bunch more characters. > > > I'm not sure I like the decodingConflict proposal. Indeed, it might be there is no conflict (depending of the xids > comparison). > > What about "checkForConflict"? In v32 attached, it is renamed to mayConflictInLogicalDecoding (I think it's important it reflects that it is linked to the logical decoding and the "uncertainty" of the conflict). What do you think? > >> >> +    if (heapRelation->rd_options) >> +        isusercatalog = ((StdRdOptions *) >> (heapRelation)->rd_options)->user_catalog_table; >> >> Couldn't you get rid of the if statement here and also the >> initialization at the top of the function and just write isusercatalog >> = RelationIsUsedAsCatalogTable(heapRelation)? Or even just get rid of >> the variable entirely and pass >> RelationIsUsedAsCatalogTable(heapRelation) as the argument to >> UpdateIndexRelation directly? >> > > Yeah, that's better, will do, thanks! Fixed in v32 attached. > > While at it, I'm not sure that isusercatalog should be visible in pg_index. > I mean, this information could be retrieved with a join on pg_class (on the table the index is linked to), so the weirdness to have it visible. > I did not check how difficult it would be to make it "invisible" though. > What do you think? > It's still visible in v32 attached. I had a second thought on it and it does not seem like a "real" concern to me. >> I think this could use some test cases demonstrating that >> indisusercatalog gets set correctly in all the relevant cases: table >> is created with user_catalog_table = true/false, reloption is changed, >> reloptions are reset, new index is added later, etc. >> > > v31 already provides a few checks: > > - After index creation on relation with user_catalog_table = true > - Propagation is done correctly after a user_catalog_table RESET > - Propagation is done correctly after an ALTER SET user_catalog_table = true > - Propagation is done correctly after an ALTER SET user_catalog_table = false > > In v32, I can add a check for index creation after each of the last 3 mentioned above and one when a table is created with user_catalog_table = false. > v32 attached is adding the checks mentioned above. v32 does not change anything linked to the alignment discussion, as I think this will depend of its outcome. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------r9KIatASOpVniPvrBi6hlPOw Content-Type: text/plain; charset=UTF-8; name="v32-0006-Fixing-Walsender-corner-case-with-logical-decodi.patch" Content-Disposition: attachment; filename*0="v32-0006-Fixing-Walsender-corner-case-with-logical-decodi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0MDc2NGRlZDkwNmQxNjY3NTcyNjdiN2U4NWZkYzU1NjhmYTdhMDE4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogRnJpLCAxNiBEZWMgMjAyMiAwOTozODo0NCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMyIDYvNl0gRml4aW5nIFdhbHNlbmRlciBjb3JuZXIgY2FzZSB3aXRoIGxvZ2ljYWwg ZGVjb2Rpbmcgb24KIHN0YW5kYnkuCgpUaGUgcHJvYmxlbSBpcyB0aGF0IFdhbFNuZFdhaXRG b3JXYWwoKSB3YWl0cyBmb3IgdGhlICpyZXBsYXkqIExTTiB0bwppbmNyZWFzZSwgYnV0IGdl dHMgd29rZW4gdXAgYnkgd2FscmVjZWl2ZXIgd2hlbiBuZXcgV0FMIGhhcyBiZWVuCmZsdXNo ZWQuIFdoaWNoIG1lYW5zIHRoYXQgdHlwaWNhbGx5IHdhbHNlbmRlcnMgd2lsbCBnZXQgd29r ZW4gdXAgYXQgdGhlCnNhbWUgdGltZSB0aGF0IHRoZSBzdGFydHVwIHByb2Nlc3Mgd2lsbCBi ZSAtIHdoaWNoIG1lYW5zIHRoYXQgYnkgdGhlCnRpbWUgdGhlIGxvZ2ljYWwgd2Fsc2VuZGVy IGNoZWNrcyBHZXRYTG9nUmVwbGF5UmVjUHRyKCkgaXQncyB1bmxpa2VseQp0aGF0IHRoZSBz dGFydHVwIHByb2Nlc3MgYWxyZWFkeSByZXBsYXllZCB0aGUgcmVjb3JkIGFuZCB1cGRhdGVk ClhMb2dDdGwtPmxhc3RSZXBsYXllZEVuZFJlY1B0ci4KCkludHJvZHVjaW5nIGEgbmV3IGNv bmRpdGlvbiB2YXJpYWJsZSB0byBmaXggdGhpcyBjb3JuZXIgY2FzZS4KLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyB8IDI4ICsrKysrKysrKysrKysr KysrKysrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICB8IDMx ICsrKysrKysrKysrKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93 YWl0X2V2ZW50LmMgICB8ICAzICsrKwogc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVy eS5oICAgICAgICAgfCAgMyArKysKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRl ci5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oICAgICAg ICAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCiAgNDEuMiUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgNDguNSUg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDMuNiUgc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvCiAgIDMuNCUgc3JjL2luY2x1ZGUvYWNjZXNzLwoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKaW5kZXggZDVhODFmOWQ4My4uYWM4YjE2OWFi NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5 LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKQEAg LTM1OCw2ICszNTgsOSBAQCB0eXBlZGVmIHN0cnVjdCBYTG9nUmVjb3ZlcnlDdGxEYXRhCiAJ UmVjb3ZlcnlQYXVzZVN0YXRlIHJlY292ZXJ5UGF1c2VTdGF0ZTsKIAlDb25kaXRpb25WYXJp YWJsZSByZWNvdmVyeU5vdFBhdXNlZENWOwogCisJLyogUmVwbGF5IHN0YXRlIChzZWUgZ2V0 UmVwbGF5ZWRDVigpIGZvciBtb3JlIGV4cGxhbmF0aW9uKSAqLworCUNvbmRpdGlvblZhcmlh YmxlIHJlcGxheWVkQ1Y7CisKIAlzbG9ja190CQlpbmZvX2xjazsJCS8qIGxvY2tzIHNoYXJl ZCB2YXJpYWJsZXMgc2hvd24gYWJvdmUgKi8KIH0gWExvZ1JlY292ZXJ5Q3RsRGF0YTsKIApA QCAtNDY3LDYgKzQ3MCw3IEBAIFhMb2dSZWNvdmVyeVNobWVtSW5pdCh2b2lkKQogCVNwaW5M b2NrSW5pdCgmWExvZ1JlY292ZXJ5Q3RsLT5pbmZvX2xjayk7CiAJSW5pdFNoYXJlZExhdGNo KCZYTG9nUmVjb3ZlcnlDdGwtPnJlY292ZXJ5V2FrZXVwTGF0Y2gpOwogCUNvbmRpdGlvblZh cmlhYmxlSW5pdCgmWExvZ1JlY292ZXJ5Q3RsLT5yZWNvdmVyeU5vdFBhdXNlZENWKTsKKwlD b25kaXRpb25WYXJpYWJsZUluaXQoJlhMb2dSZWNvdmVyeUN0bC0+cmVwbGF5ZWRDVik7CiB9 CiAKIC8qCkBAIC0xOTE2LDYgKzE5MjAsMTEgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRl clN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJl cGwKIAlYTG9nUmVjb3ZlcnlDdGwtPmxhc3RSZXBsYXllZFRMSSA9ICpyZXBsYXlUTEk7CiAJ U3BpbkxvY2tSZWxlYXNlKCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNrKTsKIAorCS8qCisJ ICogd2FrZSB1cCB3YWxzZW5kZXIocykgdXNlZCBieSBsb2dpY2FsIGRlY29kaW5nIG9uIHN0 YW5kYnkuCisJICovCisJQ29uZGl0aW9uVmFyaWFibGVCcm9hZGNhc3QoJlhMb2dSZWNvdmVy eUN0bC0+cmVwbGF5ZWRDVik7CisKIAkvKgogCSAqIElmIHJtX3JlZG8gY2FsbGVkIFhMb2dS ZXF1ZXN0V2FsUmVjZWl2ZXJSZXBseSwgdGhlbiB3ZSB3YWtlIHVwIHRoZQogCSAqIHJlY2Vp dmVyIHNvIHRoYXQgaXQgbm90aWNlcyB0aGUgdXBkYXRlZCBsYXN0UmVwbGF5ZWRFbmRSZWNQ dHIgYW5kIHNlbmRzCkBAIC00OTE2LDMgKzQ5MjUsMjIgQEAgYXNzaWduX3JlY292ZXJ5X3Rh cmdldF94aWQoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSkKIAllbHNlCiAJCXJl Y292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VUX1VOU0VUOwogfQorCisvKgorICogUmV0 dXJuIHRoZSBDb25kaXRpb25WYXJpYWJsZSBpbmRpY2F0aW5nIHRoYXQgYSByZXBsYXkgaGFz IGJlZW4gZG9uZS4KKyAqCisgKiBUaGlzIGlzIG5lZWRlZCBmb3IgbG9naWNhbCBkZWNvZGlu ZyBvbiBzdGFuZGJ5LiBJbmRlZWQgdGhlICJwcm9ibGVtIiBpcyB0aGF0CisgKiBXYWxTbmRX YWl0Rm9yV2FsKCkgd2FpdHMgZm9yIHRoZSAqcmVwbGF5KiBMU04gdG8gaW5jcmVhc2UsIGJ1 dCBnZXRzIHdva2VuIHVwCisgKiBieSB3YWxyZWNlaXZlciB3aGVuIG5ldyBXQUwgaGFzIGJl ZW4gZmx1c2hlZC4gV2hpY2ggbWVhbnMgdGhhdCB0eXBpY2FsbHkKKyAqIHdhbHNlbmRlcnMg d2lsbCBnZXQgd29rZW4gdXAgYXQgdGhlIHNhbWUgdGltZSB0aGF0IHRoZSBzdGFydHVwIHBy b2Nlc3MKKyAqIHdpbGwgYmUgLSB3aGljaCBtZWFucyB0aGF0IGJ5IHRoZSB0aW1lIHRoZSBs b2dpY2FsIHdhbHNlbmRlciBjaGVja3MKKyAqIEdldFhMb2dSZXBsYXlSZWNQdHIoKSBpdCdz IHVubGlrZWx5IHRoYXQgdGhlIHN0YXJ0dXAgcHJvY2VzcyBhbHJlYWR5IHJlcGxheWVkCisg KiB0aGUgcmVjb3JkIGFuZCB1cGRhdGVkIFhMb2dDdGwtPmxhc3RSZXBsYXllZEVuZFJlY1B0 ci4KKyAqCisgKiBUaGUgQ29uZGl0aW9uVmFyaWFibGUgWExvZ1JlY292ZXJ5Q3RsLT5yZXBs YXllZENWIHNvbHZlcyB0aGlzIGNvcm5lciBjYXNlLgorICovCitDb25kaXRpb25WYXJpYWJs ZSAqCitnZXRSZXBsYXllZENWKHZvaWQpCit7CisJcmV0dXJuICZYTG9nUmVjb3ZlcnlDdGwt PnJlcGxheWVkQ1Y7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93 YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4 IDk2NjJlMzE2YzkuLjhjOGRiZTgxMmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNl bmRlci5jCkBAIC0xNTQ4LDYgKzE1NDgsNyBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQ dHIgbG9jKQogewogCWludAkJCXdha2VFdmVudHM7CiAJc3RhdGljIFhMb2dSZWNQdHIgUmVj ZW50Rmx1c2hQdHIgPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwlDb25kaXRpb25WYXJpYWJsZSAq cmVwbGF5ZWRDViA9IGdldFJlcGxheWVkQ1YoKTsKIAogCS8qCiAJICogRmFzdCBwYXRoIHRv IGF2b2lkIGFjcXVpcmluZyB0aGUgc3BpbmxvY2sgaW4gY2FzZSB3ZSBhbHJlYWR5IGtub3cg d2UKQEAgLTE1NjYsNyArMTU2Nyw2IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBs b2MpCiAKIAlmb3IgKDs7KQogCXsKLQkJbG9uZwkJc2xlZXB0aW1lOwogCiAJCS8qIENsZWFy IGFueSBhbHJlYWR5LXBlbmRpbmcgd2FrZXVwcyAqLwogCQlSZXNldExhdGNoKE15TGF0Y2gp OwpAQCAtMTY1MCwyMCArMTY1MCwzNSBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQdHIg bG9jKQogCQlXYWxTbmRLZWVwYWxpdmVJZk5lY2Vzc2FyeSgpOwogCiAJCS8qCi0JCSAqIFNs ZWVwIHVudGlsIHNvbWV0aGluZyBoYXBwZW5zIG9yIHdlIHRpbWUgb3V0LiAgQWxzbyB3YWl0 IGZvciB0aGUKLQkJICogc29ja2V0IGJlY29taW5nIHdyaXRhYmxlLCBpZiB0aGVyZSdzIHN0 aWxsIHBlbmRpbmcgb3V0cHV0LgorCQkgKiBXaGVuIG5vdCBpbiByZWNvdmVyeSwgc2xlZXAg dW50aWwgc29tZXRoaW5nIGhhcHBlbnMgb3Igd2UgdGltZSBvdXQuCisJCSAqIEFsc28gd2Fp dCBmb3IgdGhlIHNvY2tldCBiZWNvbWluZyB3cml0YWJsZSwgaWYgdGhlcmUncyBzdGlsbCBw ZW5kaW5nIG91dHB1dC4KIAkJICogT3RoZXJ3aXNlIHdlIG1pZ2h0IHNpdCBvbiBzZW5kYWJs ZSBvdXRwdXQgZGF0YSB3aGlsZSB3YWl0aW5nIGZvcgogCQkgKiBuZXcgV0FMIHRvIGJlIGdl bmVyYXRlZC4gIChCdXQgaWYgd2UgaGF2ZSBub3RoaW5nIHRvIHNlbmQsIHdlIGRvbid0CiAJ CSAqIHdhbnQgdG8gd2FrZSBvbiBzb2NrZXQtd3JpdGFibGUuKQogCQkgKi8KLQkJc2xlZXB0 aW1lID0gV2FsU25kQ29tcHV0ZVNsZWVwdGltZShHZXRDdXJyZW50VGltZXN0YW1wKCkpOwor CQlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpKQorCQl7CisJCQlsb25nCQlzbGVlcHRpbWU7 CisJCQlzbGVlcHRpbWUgPSBXYWxTbmRDb21wdXRlU2xlZXB0aW1lKEdldEN1cnJlbnRUaW1l c3RhbXAoKSk7CiAKLQkJd2FrZUV2ZW50cyA9IFdMX1NPQ0tFVF9SRUFEQUJMRTsKKwkJCXdh a2VFdmVudHMgPSBXTF9TT0NLRVRfUkVBREFCTEU7CiAKLQkJaWYgKHBxX2lzX3NlbmRfcGVu ZGluZygpKQotCQkJd2FrZUV2ZW50cyB8PSBXTF9TT0NLRVRfV1JJVEVBQkxFOworCQkJaWYg KHBxX2lzX3NlbmRfcGVuZGluZygpKQorCQkJCXdha2VFdmVudHMgfD0gV0xfU09DS0VUX1dS SVRFQUJMRTsKIAotCQlXYWxTbmRXYWl0KHdha2VFdmVudHMsIHNsZWVwdGltZSwgV0FJVF9F VkVOVF9XQUxfU0VOREVSX1dBSVRfV0FMKTsKKwkJCVdhbFNuZFdhaXQod2FrZUV2ZW50cywg c2xlZXB0aW1lICogMTAsIFdBSVRfRVZFTlRfV0FMX1NFTkRFUl9XQUlUX1dBTCk7CisJCX0K KwkJZWxzZQorCQkvKgorCQkgKiBXZSBhcmUgaW4gdGhlIGxvZ2ljYWwgZGVjb2Rpbmcgb24g c3RhbmRieSBjYXNlLgorCQkgKiBXZSBhcmUgd2FpdGluZyBmb3IgdGhlIHN0YXJ0dXAgcHJv Y2VzcyB0byByZXBsYXkgd2FsIHJlY29yZChzKSB1c2luZworCQkgKiBhIHRpbWVvdXQgaW4g Y2FzZSB3ZSBhcmUgcmVxdWVzdGVkIHRvIHN0b3AuCisJCSAqLworCQl7CisJCQlDb25kaXRp b25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKHJlcGxheWVkQ1YpOworCQkJQ29uZGl0aW9uVmFy aWFibGVUaW1lZFNsZWVwKHJlcGxheWVkQ1YsIDEwMDAsCisJCQkJCQkJCQkJV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZKTsKKwkJfQogCX0KIAogCS8qIHJlYWN0aXZhdGUg bGF0Y2ggc28gV2FsU25kTG9vcCBrbm93cyB0byBjb250aW51ZSAqLwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5jCmluZGV4IGIyYWJkNzVkZGIuLjNmNjA1OTgw NWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMKQEAgLTQ1 Nyw2ICs0NTcsOSBAQCBwZ3N0YXRfZ2V0X3dhaXRfaXBjKFdhaXRFdmVudElQQyB3KQogCQlj YXNlIFdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX1dBSVRfU1RBUlQ6CiAJCQlldmVudF9uYW1l ID0gIldhbFJlY2VpdmVyV2FpdFN0YXJ0IjsKIAkJCWJyZWFrOworCQljYXNlIFdBSVRfRVZF TlRfV0FMX1NFTkRFUl9XQUlUX1JFUExBWToKKwkJCWV2ZW50X25hbWUgPSAiV2FsUmVjZWl2 ZXJXYWl0UmVwbGF5IjsKKwkJCWJyZWFrOwogCQljYXNlIFdBSVRfRVZFTlRfWEFDVF9HUk9V UF9VUERBVEU6CiAJCQlldmVudF9uYW1lID0gIlhhY3RHcm91cFVwZGF0ZSI7CiAJCQlicmVh azsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaAppbmRleCBmMzM5ODQyNWQ4Li4wYWZk NTdlY2FjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3JlY292ZXJ5LmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVyeS5oCkBAIC0xNSw2ICsxNSw3 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb250cm9sLmgiCiAjaW5jbHVkZSAibGliL3N0 cmluZ2luZm8uaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJz dG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogCiAvKgogICogUmVjb3ZlcnkgdGFyZ2V0 IHR5cGUuCkBAIC0xNTUsNCArMTU2LDYgQEAgZXh0ZXJuIHZvaWQgUmVjb3ZlcnlSZXF1aXJl c0ludFBhcmFtZXRlcihjb25zdCBjaGFyICpwYXJhbV9uYW1lLCBpbnQgY3VyclZhbHVlLAog CiBleHRlcm4gdm9pZCB4bG9nX291dGRlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJT dGF0ZSAqcmVjb3JkKTsKIAorZXh0ZXJuIENvbmRpdGlvblZhcmlhYmxlICpnZXRSZXBsYXll ZENWKHZvaWQpOworCiAjZW5kaWYJCQkJCQkJLyogWExPR1JFQ09WRVJZX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKaW5kZXggODMzNmE2ZTcxOS4uNTUwZWYzMTA3 ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKKysr IGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKQEAgLTEzLDYgKzEzLDcg QEAKICNkZWZpbmUgX1dBTFNFTkRFUl9ICiAKICNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNs dWRlICJzdG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogCiAvKgogICogV2hhdCB0byBk byB3aXRoIGEgc25hcHNob3QgaW4gY3JlYXRlIHJlcGxpY2F0aW9uIHNsb3QgY29tbWFuZC4K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZlbnQuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL3dhaXRfZXZlbnQuaAppbmRleCAwYjIxMDBiZTRhLi4zMGMyY2YzNWFlIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy93YWl0X2V2ZW50LmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oCkBAIC0xMjgsNiArMTI4LDcgQEAgdHlwZWRlZiBl bnVtCiAJV0FJVF9FVkVOVF9TWU5DX1JFUCwKIAlXQUlUX0VWRU5UX1dBTF9SRUNFSVZFUl9F WElULAogCVdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX1dBSVRfU1RBUlQsCisJV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZLAogCVdBSVRfRVZFTlRfWEFDVF9HUk9VUF9VUERB VEUKIH0gV2FpdEV2ZW50SVBDOwogCi0tIAoyLjM0LjEKCg== --------------r9KIatASOpVniPvrBi6hlPOw Content-Type: text/plain; charset=UTF-8; name="v32-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Disposition: attachment; filename*0="v32-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5NmE2OWE4MzU0OTdmNTQyNGEwMzRkMTZhM2U4N2ExY2YwZjg5MjhiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogRnJpLCAxNiBEZWMgMjAyMiAwOTozNzo1OCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMyIDUvNl0gRG9jIGNoYW5nZXMgZGVzY3JpYmluZyBkZXRhaWxzIGFib3V0IGxvZ2lj YWwKIGRlY29kaW5nLgoKQXV0aG9yOiBBbmRyZXMgRnJldW5kIChpbiBhbiBvbGRlciB2ZXJz aW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QKUmV2aWV3ZWQtQnk6IEJl cnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXppbyBk ZSBSb3llcyBNZWxsbwotLS0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCB8 IDIxICsrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlv bnMoKykKIDEwMC4wJSBkb2Mvc3JjL3NnbWwvCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5z Z21sCmluZGV4IDM4ZWU2OWRjY2MuLjlhY2YxNjAzN2EgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRl Y29kaW5nLnNnbWwKQEAgLTMxNiw2ICszMTYsMjcgQEAgcG9zdGdyZXM9IyBzZWxlY3QgKiBm cm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90JywgTlVM TCwgTlUKICAgICAgbWF5IGNvbnN1bWUgY2hhbmdlcyBmcm9tIGEgc2xvdCBhdCBhbnkgZ2l2 ZW4gdGltZS4KICAgICA8L3BhcmE+CiAKKyAgICA8cGFyYT4KKyAgICAgQSBsb2dpY2FsIHJl cGxpY2F0aW9uIHNsb3QgY2FuIGFsc28gYmUgY3JlYXRlZCBvbiBhIGhvdCBzdGFuZGJ5LiBU byBwcmV2ZW50CisgICAgIDxjb21tYW5kPlZBQ1VVTTwvY29tbWFuZD4gZnJvbSByZW1vdmlu ZyByZXF1aXJlZCByb3dzIGZyb20gdGhlIHN5c3RlbQorICAgICBjYXRhbG9ncywgPHZhcm5h bWU+aG90X3N0YW5kYnlfZmVlZGJhY2s8L3Zhcm5hbWU+IHNob3VsZCBiZSBzZXQgb24gdGhl CisgICAgIHN0YW5kYnkuIEluIHNwaXRlIG9mIHRoYXQsIGlmIGFueSByZXF1aXJlZCByb3dz IGdldCByZW1vdmVkLCB0aGUgc2xvdCBnZXRzCisgICAgIGludmFsaWRhdGVkLiBJdCdzIGhp Z2hseSByZWNvbW1lbmRlZCB0byB1c2UgYSBwaHlzaWNhbCBzbG90IGJldHdlZW4gdGhlIHBy aW1hcnkKKyAgICAgYW5kIHRoZSBzdGFuZGJ5LiBPdGhlcndpc2UsIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIHdpbGwgd29yaywgYnV0IG9ubHkgd2hpbGUgdGhlCisgICAgIGNvbm5lY3Rpb24g aXMgYWxpdmUgKGZvciBleGFtcGxlIGEgbm9kZSByZXN0YXJ0IHdvdWxkIGJyZWFrIGl0KS4g RXhpc3RpbmcKKyAgICAgbG9naWNhbCBzbG90cyBvbiBzdGFuZGJ5IGFsc28gZ2V0IGludmFs aWRhdGVkIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIHJlZHVjZWQgdG8KKyAgICAgbGVz cyB0aGFuICdsb2dpY2FsJy4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgRm9y IGEgbG9naWNhbCBzbG90IHRvIGJlIGNyZWF0ZWQsIGl0IGJ1aWxkcyBhIGhpc3RvcmljIHNu YXBzaG90LCBmb3Igd2hpY2gKKyAgICAgaW5mb3JtYXRpb24gb2YgYWxsIHRoZSBjdXJyZW50 bHkgcnVubmluZyB0cmFuc2FjdGlvbnMgaXMgZXNzZW50aWFsLiBPbgorICAgICBwcmltYXJ5 LCB0aGlzIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSwgYnV0IG9uIHN0YW5kYnksIHRoaXMg aW5mb3JtYXRpb24KKyAgICAgaGFzIHRvIGJlIG9idGFpbmVkIGZyb20gcHJpbWFyeS4gU28s IHNsb3QgY3JlYXRpb24gbWF5IHdhaXQgZm9yIHNvbWUKKyAgICAgYWN0aXZpdHkgdG8gaGFw cGVuIG9uIHRoZSBwcmltYXJ5LiBJZiB0aGUgcHJpbWFyeSBpcyBpZGxlLCBjcmVhdGluZyBh CisgICAgIGxvZ2ljYWwgc2xvdCBvbiBzdGFuZGJ5IG1heSB0YWtlIGEgbm90aWNlYWJsZSB0 aW1lLgorICAgIDwvcGFyYT4KKwogICAgIDxjYXV0aW9uPgogICAgICA8cGFyYT4KICAgICAg IFJlcGxpY2F0aW9uIHNsb3RzIHBlcnNpc3QgYWNyb3NzIGNyYXNoZXMgYW5kIGtub3cgbm90 aGluZyBhYm91dCB0aGUgc3RhdGUKLS0gCjIuMzQuMQoK --------------r9KIatASOpVniPvrBi6hlPOw Content-Type: text/plain; charset=UTF-8; name="v32-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename*0="v32-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSBkYjU0MDAxNmRiYzIzZDE4MTlmNjM0MDZjZTcxZjgzN2VhODY1OGZmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogRnJpLCAxNiBEZWMgMjAyMiAwOTozNzoxNCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMyIDQvNl0gTmV3IFRBUCB0ZXN0IGZvciBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5k YnkuCgpBdXRob3I6IENyYWlnIFJpbmdlciAoaW4gYW4gb2xkZXIgdmVyc2lvbiksIEFtaXQg S2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBEcm91 dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQgSGFhcywgRmFicml6aW8gZGUgUm95ZXMgTWVs bG8KLS0tCiBzcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtICAgICAg fCAgMzcgKysKIHNyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkICAgICAgICAgICAgICAg ICB8ICAgMSArCiAuLi4vdC8wMzRfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsICAgICAg ICAgfCA0NzkgKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDUxNyBpbnNl cnRpb25zKCspCiAgIDYuMCUgc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvCiAgOTMu NyUgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8KCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9wZXJsL1Bv c3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rl c3QvQ2x1c3Rlci5wbQppbmRleCA3NDExMTg4ZGM4Li4xNzFkYzg1Mzg4IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtCisrKyBiL3NyYy90 ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0KQEAgLTMwMzcsNiArMzAzNyw0 MyBAQCAkU0lHe1RFUk19ID0gJFNJR3tJTlR9ID0gc3ViIHsKIAogPXBvZAogCis9aXRlbSAk bm9kZS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KHNlbGYsIG1hc3Rlciwgc2xv dF9uYW1lLCBkYm5hbWUpCisKK0NyZWF0ZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgb24g Z2l2ZW4gc3RhbmRieQorCis9Y3V0CisKK3N1YiBjcmVhdGVfbG9naWNhbF9zbG90X29uX3N0 YW5kYnkKK3sKKwlteSAoJHNlbGYsICRtYXN0ZXIsICRzbG90X25hbWUsICRkYm5hbWUpID0g QF87CisJbXkgKCRzdGRvdXQsICRzdGRlcnIpOworCisJbXkgJGhhbmRsZTsKKworCSRoYW5k bGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydwZ19yZWN2bG9naWNhbCcsICctZCcsICRzZWxmLT5j b25uc3RyKCRkYm5hbWUpLCAnLVAnLCAndGVzdF9kZWNvZGluZycsICctUycsICRzbG90X25h bWUsICctLWNyZWF0ZS1zbG90J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3RkZXJyKTsK KworCSMgT25jZSBzbG90IHJlc3RhcnRfbHNuIGlzIGNyZWF0ZWQsIHRoZSBzdGFuZGJ5IGxv b2tzIGZvciB4bF9ydW5uaW5nX3hhY3RzCisJIyBXQUwgcmVjb3JkIGZyb20gdGhlIHJlc3Rh cnRfbHNuIG9ud2FyZHMuIFNvIGZpcnN0bHksIHdhaXQgdW50aWwgdGhlIHNsb3QKKwkjIHJl c3RhcnRfbHNuIGlzIGV2YWx1YXRlZC4KKworCSRzZWxmLT5wb2xsX3F1ZXJ5X3VudGlsKAor CQkncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUIHJlc3RhcnRfbHNuIElTIE5PVCBOVUxMCisJ CUZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUg PSAnJHNsb3RfbmFtZScKKwldKSBvciBkaWUgInRpbWVkIG91dCB3YWl0aW5nIGZvciBsb2dp Y2FsIHNsb3QgdG8gY2FsY3VsYXRlIGl0cyByZXN0YXJ0X2xzbiI7CisKKwkjIE5vdyBhcnJh bmdlIGZvciB0aGUgeGxfcnVubmluZ194YWN0cyByZWNvcmQgZm9yIHdoaWNoIHBnX3JlY3Zs b2dpY2FsCisJIyBpcyB3YWl0aW5nLgorCSRtYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAnQ0hFQ0tQT0lOVCcpOworCisJJGhhbmRsZS0+ZmluaXNoKCk7CisKKwlpcygkc2VsZi0+ c2xvdCgkc2xvdF9uYW1lKS0+eydzbG90X3R5cGUnfSwgJ2xvZ2ljYWwnLCAkc2xvdF9uYW1l IC4gJyBvbiBzdGFuZGJ5IGNyZWF0ZWQnKQorCQlvciBkaWUgImNvdWxkIG5vdCBjcmVhdGUg c2xvdCIgLiAkc2xvdF9uYW1lOworfQorCis9cG9kCisKID1iYWNrCiAKID1jdXQKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQKaW5kZXggYjBlMzk4MzYzZi4uZDY4ZWU5YjY2MyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQKQEAgLTM4LDYgKzM4LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3Qv MDMxX3JlY292ZXJ5X2NvbmZsaWN0LnBsJywKICAgICAgICd0LzAzMl9yZWxmaWxlbm9kZV9y ZXVzZS5wbCcsCiAgICAgICAndC8wMzNfcmVwbGF5X3RzcF9kcm9wcy5wbCcsCisgICAgICAn dC8wMzRfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsJywKICAgICBdLAogICB9LAogfQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzRfc3RhbmRieV9sb2dpY2FsX2Rl Y29kaW5nLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzRfc3RhbmRieV9sb2dpY2FsX2Rl Y29kaW5nLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQyNTg4 NDRjOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNF9zdGFu ZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwKQEAgLTAsMCArMSw0NzkgQEAKKyMgbG9naWNhbCBk ZWNvZGluZyBvbiBzdGFuZGJ5IDogdGVzdCBsb2dpY2FsIGRlY29kaW5nLAorIyByZWNvdmVy eSBjb25mbGljdCBhbmQgc3RhbmRieSBwcm9tb3Rpb24uCisKK3VzZSBzdHJpY3Q7Cit1c2Ug d2FybmluZ3M7CisKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFRlc3Q6 Ok1vcmUgdGVzdHMgPT4gNDI7CisKK215ICgkc3RkaW4sICRzdGRvdXQsICRzdGRlcnIsICRy ZXQsICRoYW5kbGUsICRzbG90KTsKKworbXkgJG5vZGVfcHJpbWFyeSA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygncHJpbWFyeScpOworbXkgJG5vZGVfc3RhbmRieSA9IFBv c3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3RhbmRieScpOworCisjIE5hbWUgZm9y IHRoZSBwaHlzaWNhbCBzbG90IG9uIHByaW1hcnkKK215ICRwcmltYXJ5X3Nsb3RuYW1lID0g J3ByaW1hcnlfcGh5c2ljYWwnOworCisjIGZpbmQgJHBhdCBpbiBsb2dmaWxlIG9mICRub2Rl IGFmdGVyICRvZmYtdGggYnl0ZQorc3ViIGZpbmRfaW5fbG9nCit7CisJbXkgKCRub2RlLCAk cGF0LCAkb2ZmKSA9IEBfOworCisJJG9mZiA9IDAgdW5sZXNzIGRlZmluZWQgJG9mZjsKKwlt eSAkbG9nID0gUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnNsdXJwX2ZpbGUoJG5vZGUtPmxv Z2ZpbGUpOworCXJldHVybiAwIGlmIChsZW5ndGgoJGxvZykgPD0gJG9mZik7CisKKwkkbG9n ID0gc3Vic3RyKCRsb2csICRvZmYpOworCisJcmV0dXJuICRsb2cgPX4gbS8kcGF0LzsKK30K KworIyBGZXRjaCB4bWluIGNvbHVtbnMgZnJvbSBzbG90J3MgcGdfcmVwbGljYXRpb25fc2xv dHMgcm93LCBhZnRlciB3YWl0aW5nIGZvcgorIyBnaXZlbiBib29sZWFuIGNvbmRpdGlvbiB0 byBiZSB0cnVlIHRvIGVuc3VyZSB3ZSd2ZSByZWFjaGVkIGEgcXVpZXNjZW50IHN0YXRlLgor c3ViIHdhaXRfZm9yX3htaW5zCit7CisJbXkgKCRub2RlLCAkc2xvdG5hbWUsICRjaGVja19l eHByKSA9IEBfOworCisJJG5vZGUtPnBvbGxfcXVlcnlfdW50aWwoCisJCSdwb3N0Z3Jlcycs IHFxWworCQlTRUxFQ1QgJGNoZWNrX2V4cHIKKwkJRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxp Y2F0aW9uX3Nsb3RzCisJCVdIRVJFIHNsb3RfbmFtZSA9ICckc2xvdG5hbWUnOworCV0pIG9y IGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHNsb3QgeG1pbnMgdG8gYWR2YW5jZSI7Cit9 CisKKyMgQ3JlYXRlIHRoZSByZXF1aXJlZCBsb2dpY2FsIHNsb3RzIG9uIHN0YW5kYnkuCitz dWIgY3JlYXRlX2xvZ2ljYWxfc2xvdHMKK3sKKwkkbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9n aWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfcHJpbWFyeSwgJ2luYWN0aXZlc2xvdCcsICd0 ZXN0ZGInKTsKKwkkbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5k YnkoJG5vZGVfcHJpbWFyeSwgJ2FjdGl2ZXNsb3QnLCAndGVzdGRiJyk7Cit9CisKKyMgQWNx dWlyZSBvbmUgb2YgdGhlIHN0YW5kYnkgbG9naWNhbCBzbG90cyBjcmVhdGVkIGJ5IGNyZWF0 ZV9sb2dpY2FsX3Nsb3RzKCkuCisjIEluIGNhc2Ugd2FpdCBpcyB0cnVlIHdlIGFyZSB3YWl0 aW5nIGZvciBhbiBhY3RpdmUgcGlkIG9uIHRoZSAnYWN0aXZlc2xvdCcgc2xvdC4KKyMgSWYg d2FpdCBpcyBub3QgdHJ1ZSBpdCBtZWFucyB3ZSBhcmUgdGVzdGluZyBhIGtub3duIGZhaWx1 cmUgc2NlbmFyaW8uCitzdWIgbWFrZV9zbG90X2FjdGl2ZQoreworCW15ICR3YWl0ID0gc2hp ZnQ7CisJbXkgJHNsb3RfdXNlcl9oYW5kbGU7CisKKwlwcmludCAic3RhcnRpbmcgcGdfcmVj dmxvZ2ljYWxcbiI7CisJJHNsb3RfdXNlcl9oYW5kbGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydw Z19yZWN2bG9naWNhbCcsICctZCcsICRub2RlX3N0YW5kYnktPmNvbm5zdHIoJ3Rlc3RkYicp LCAnLVMnLCAnYWN0aXZlc2xvdCcsICctZicsICctJywgJy0tbm8tbG9vcCcsICctLXN0YXJ0 J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3RkZXJyKTsKKworCWlmICgkd2FpdCkKKwkj IG1ha2Ugc3VyZSBhY3RpdmVzbG90IGlzIGluIHVzZQorCXsKKwkJJG5vZGVfc3RhbmRieS0+ cG9sbF9xdWVyeV91bnRpbCgndGVzdGRiJywKKwkJCSJTRUxFQ1QgRVhJU1RTIChTRUxFQ1Qg MSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdhY3RpdmVz bG90JyBBTkQgYWN0aXZlX3BpZCBJUyBOT1QgTlVMTCkiCisJCSkgb3IgZGllICJzbG90IG5l dmVyIGJlY2FtZSBhY3RpdmUiOworCX0KKworCXJldHVybiAkc2xvdF91c2VyX2hhbmRsZTsK K30KKworIyBDaGVjayBwZ19yZWN2bG9naWNhbCBzdGRlcnIKK3N1YiBjaGVja19wZ19yZWN2 bG9naWNhbF9zdGRlcnIKK3sKKwlteSAoJHNsb3RfdXNlcl9oYW5kbGUsICRjaGVja19zdGRl cnIpID0gQF87CisJbXkgJHJldHVybjsKKworCSMgb3VyIGNsaWVudCBzaG91bGQndmUgdGVy bWluYXRlZCBpbiByZXNwb25zZSB0byB0aGUgd2Fsc2VuZGVyIGVycm9yCisJJHNsb3RfdXNl cl9oYW5kbGUtPmZpbmlzaDsKKwkkcmV0dXJuID0gJD87CisJY21wX29rKCRyZXR1cm4sICIh PSIsIDAsICJwZ19yZWN2bG9naWNhbCBleGl0ZWQgbm9uLXplcm8iKTsKKwlpZiAoJHJldHVy bikgeworCQlsaWtlKCRzdGRlcnIsIHFyLyRjaGVja19zdGRlcnIvLCAnc2xvdCBoYXMgYmVl biBpbnZhbGlkYXRlZCcpOworCX0KKworCXJldHVybiAwOworfQorCisjIENoZWNrIGlmIGFs bCB0aGUgc2xvdHMgb24gc3RhbmRieSBhcmUgZHJvcHBlZC4gVGhlc2UgaW5jbHVkZSB0aGUg J2FjdGl2ZXNsb3QnCisjIHRoYXQgd2FzIGFjcXVpcmVkIGJ5IG1ha2Vfc2xvdF9hY3RpdmUo KSwgYW5kIHRoZSBub24tYWN0aXZlICdpbmFjdGl2ZXNsb3QnLgorc3ViIGNoZWNrX3Nsb3Rz X2Ryb3BwZWQKK3sKKwlteSAoJHNsb3RfdXNlcl9oYW5kbGUpID0gQF87CisKKwlpcygkbm9k ZV9zdGFuZGJ5LT5zbG90KCdpbmFjdGl2ZXNsb3QnKS0+eydzbG90X3R5cGUnfSwgJycsICdp bmFjdGl2ZXNsb3Qgb24gc3RhbmRieSBkcm9wcGVkJyk7CisJaXMoJG5vZGVfc3RhbmRieS0+ c2xvdCgnYWN0aXZlc2xvdCcpLT57J3Nsb3RfdHlwZSd9LCAnJywgJ2FjdGl2ZXNsb3Qgb24g c3RhbmRieSBkcm9wcGVkJyk7CisKKwljaGVja19wZ19yZWN2bG9naWNhbF9zdGRlcnIoJHNs b3RfdXNlcl9oYW5kbGUsICJjb25mbGljdCB3aXRoIHJlY292ZXJ5Iik7Cit9CisKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIyBJbml0aWFsaXplIHByaW1hcnkgbm9kZQorIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisKKyRub2RlX3ByaW1hcnktPmluaXQoYWxsb3dzX3N0cmVh bWluZyA9PiAxLCBoYXNfYXJjaGl2aW5nID0+IDEpOworJG5vZGVfcHJpbWFyeS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsIHF7Cit3YWxfbGV2ZWwgPSAnbG9naWNhbCcKK21h eF9yZXBsaWNhdGlvbl9zbG90cyA9IDQKK21heF93YWxfc2VuZGVycyA9IDQKK2xvZ19taW5f bWVzc2FnZXMgPSAnZGVidWcyJworbG9nX2Vycm9yX3ZlcmJvc2l0eSA9IHZlcmJvc2UKK30p OworJG5vZGVfcHJpbWFyeS0+ZHVtcF9pbmZvOworJG5vZGVfcHJpbWFyeS0+c3RhcnQ7CisK KyRub2RlX3ByaW1hcnktPnBzcWwoJ3Bvc3RncmVzJywgcVtDUkVBVEUgREFUQUJBU0UgdGVz dGRiXSk7CisKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbU0VMRUNU ICogRlJPTSBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJHByaW1hcnlf c2xvdG5hbWUnKTtdKTsKK215ICRiYWNrdXBfbmFtZSA9ICdiMSc7Ciskbm9kZV9wcmltYXJ5 LT5iYWNrdXAoJGJhY2t1cF9uYW1lKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg SW5pdGlhbGl6ZSBzdGFuZGJ5IG5vZGUKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyRu b2RlX3N0YW5kYnktPmluaXRfZnJvbV9iYWNrdXAoCisJJG5vZGVfcHJpbWFyeSwgJGJhY2t1 cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNfcmVzdG9yaW5nID0+IDEpOwor JG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCisJcXFbcHJp bWFyeV9zbG90X25hbWUgPSAnJHByaW1hcnlfc2xvdG5hbWUnXSk7Ciskbm9kZV9zdGFuZGJ5 LT5zdGFydDsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRi eSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKKworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0 aGF0IGxvZ2ljYWwgZGVjb2Rpbmcgb24gdGhlIHN0YW5kYnkKKyMgYmVoYXZlcyBjb3JyZWN0 bHkuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitjcmVhdGVfbG9naWNhbF9zbG90cygpOworCiskbm9kZV9wcmltYXJ5LT5zYWZlX3Bz cWwoJ3Rlc3RkYicsIHFxW0NSRUFURSBUQUJMRSBkZWNvZGluZ190ZXN0KHggaW50ZWdlciwg eSB0ZXh0KTtdKTsKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbSU5T RVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0ZXh0IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsMTApIHM7XSk7CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2Nh dGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1 c2gnKSk7CisKK215ICRyZXN1bHQgPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3Rk YicsCisJcXFbU0VMRUNUIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnYWN0aXZlc2xv dCcsIE5VTEwsIE5VTEwpO10pOworCisjIHRlc3QgaWYgYmFzaWMgZGVjb2Rpbmcgd29ya3MK K2lzKHNjYWxhcihteSBAZm9vYmFyID0gc3BsaXQgL14vbSwgJHJlc3VsdCksCisJMTQsICdE ZWNvZGluZyBwcm9kdWNlZCAxNCByb3dzJyk7CisKKyMgSW5zZXJ0IHNvbWUgcm93cyBhbmQg dmVyaWZ5IHRoYXQgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdHMgZnJvbSBwZ19yZWN2bG9naWNh bAorIyBhbmQgdGhlIFNRTCBpbnRlcmZhY2UuCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwo J3Rlc3RkYicsCisJcXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBz LCBzOjp0ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsNCkgcztdCispOworCitteSAkZXhw ZWN0ZWQgPSBxe0JFR0lOCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4 W2ludGVnZXJdOjEgeVt0ZXh0XTonMScKK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJ TlNFUlQ6IHhbaW50ZWdlcl06MiB5W3RleHRdOicyJwordGFibGUgcHVibGljLmRlY29kaW5n X3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXTozIHlbdGV4dF06JzMnCit0YWJsZSBwdWJsaWMu ZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjQgeVt0ZXh0XTonNCcKK0NPTU1J VH07CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwg J3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKK215ICRzdGRvdXRf c3FsID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCd0ZXN0ZGInLAorCXFxW1NFTEVDVCBk YXRhIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hhbmdlcygnYWN0aXZlc2xvdCcsIE5V TEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3RzJywgJzEn KTtdCispOworCitpcygkc3Rkb3V0X3NxbCwgJGV4cGVjdGVkLCAnZ290IGV4cGVjdGVkIG91 dHB1dCBmcm9tIFNRTCBkZWNvZGluZyBzZXNzaW9uJyk7CisKK215ICRlbmRwb3MgPSAkbm9k ZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJIlNFTEVDVCBsc24gRlJPTSBwZ19s b2dpY2FsX3Nsb3RfcGVla19jaGFuZ2VzKCdhY3RpdmVzbG90JywgTlVMTCwgTlVMTCkgT1JE RVIgQlkgbHNuIERFU0MgTElNSVQgMTsiCispOworcHJpbnQgIndhaXRpbmcgdG8gcmVwbGF5 ICRlbmRwb3NcbiI7CisKKyMgSW5zZXJ0IHNvbWUgcm93cyBhZnRlciAkZW5kcG9zLCB3aGlj aCB3ZSB3b24ndCByZWFkLgorJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLAor CXFxW0lOU0VSVCBJTlRPIGRlY29kaW5nX3Rlc3QoeCx5KSBTRUxFQ1Qgcywgczo6dGV4dCBG Uk9NIGdlbmVyYXRlX3Nlcmllcyg1LDUwKSBzO10KKyk7CisKKyRub2RlX3ByaW1hcnktPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnkt PmxzbignZmx1c2gnKSk7CisKK215ICRzdGRvdXRfcmVjdiA9ICRub2RlX3N0YW5kYnktPnBn X3JlY3Zsb2dpY2FsX3VwdG8oCisgICAgJ3Rlc3RkYicsICdhY3RpdmVzbG90JywgJGVuZHBv cywgMTgwLAorICAgICdpbmNsdWRlLXhpZHMnICAgICA9PiAnMCcsCisgICAgJ3NraXAtZW1w dHkteGFjdHMnID0+ICcxJyk7CitjaG9tcCgkc3Rkb3V0X3JlY3YpOworaXMoJHN0ZG91dF9y ZWN2LCAkZXhwZWN0ZWQsCisgICAgJ2dvdCBzYW1lIGV4cGVjdGVkIG91dHB1dCBmcm9tIHBn X3JlY3Zsb2dpY2FsIGRlY29kaW5nIHNlc3Npb24nKTsKKworJG5vZGVfc3RhbmRieS0+cG9s bF9xdWVyeV91bnRpbCgndGVzdGRiJywKKwkiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJP TSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnYWN0aXZlc2xvdCcg QU5EIGFjdGl2ZV9waWQgSVMgTlVMTCkiCispIG9yIGRpZSAic2xvdCBuZXZlciBiZWNhbWUg aW5hY3RpdmUiOworCiskc3Rkb3V0X3JlY3YgPSAkbm9kZV9zdGFuZGJ5LT5wZ19yZWN2bG9n aWNhbF91cHRvKAorICAgICd0ZXN0ZGInLCAnYWN0aXZlc2xvdCcsICRlbmRwb3MsIDE4MCwK KyAgICAnaW5jbHVkZS14aWRzJyAgICAgPT4gJzAnLAorICAgICdza2lwLWVtcHR5LXhhY3Rz JyA9PiAnMScpOworY2hvbXAoJHN0ZG91dF9yZWN2KTsKK2lzKCRzdGRvdXRfcmVjdiwgJycs ICdwZ19yZWN2bG9naWNhbCBhY2tub3dsZWRnZWQgY2hhbmdlcycpOworCiskbm9kZV9wcmlt YXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NSRUFURSBEQVRBQkFTRSBvdGhlcmRiJyk7 CisKK2lzKCAkbm9kZV9wcmltYXJ5LT5wc3FsKAorICAgICAgICAnb3RoZXJkYicsCisgICAg ICAgICJTRUxFQ1QgbHNuIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hhbmdlcygnYWN0 aXZlc2xvdCcsIE5VTEwsIE5VTEwpIE9SREVSIEJZIGxzbiBERVNDIExJTUlUIDE7IgorICAg ICksCisgICAgMywKKyAgICAncmVwbGF5aW5nIGxvZ2ljYWwgc2xvdCBmcm9tIGFub3RoZXIg ZGF0YWJhc2UgZmFpbHMnKTsKKworIyBkcm9wIHRoZSBsb2dpY2FsIHNsb3RzCiskbm9kZV9z dGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25f c2xvdCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVz JywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdhY3RpdmVzbG90JyldKTsK KworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMgUmVjb3ZlcnkgY29uZmxpY3Q6IEludmFsaWRhdGUgY29uZmxpY3Rpbmcgc2xvdHMsIGlu Y2x1ZGluZyBpbi11c2Ugc2xvdHMKKyMgU2NlbmFyaW8gMTogaG90X3N0YW5kYnlfZmVlZGJh Y2sgb2ZmIGFuZCB2YWN1dW0gRlVMTAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBP bmUgd2F5IHRvIHJlcHJvZHVjZSByZWNvdmVyeSBjb25mbGljdCBpcyB0byBydW4gVkFDVVVN IEZVTEwgd2l0aAorIyBob3Rfc3RhbmRieV9mZWVkYmFjayB0dXJuZWQgb2ZmIG9uIHRoZSBz dGFuZGJ5LgorJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZics cVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb2ZmCitdKTsKKyRub2RlX3N0YW5kYnktPnJl c3RhcnQ7CisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBvZmYgYnkgd2FpdGluZyBm b3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMgY2F0YWxvZ194bWluIG9uIHByaW1hcnkuIEJvdGgg c2hvdWxkIGJlIE5VTEwgc2luY2UgaHNfZmVlZGJhY2sgaXMgb2ZmCit3YWl0X2Zvcl94bWlu cygkbm9kZV9wcmltYXJ5LCAkcHJpbWFyeV9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5V TEwgQU5EIGNhdGFsb2dfeG1pbiBJUyBOVUxMIik7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3Rf YWN0aXZlKDEpOworCisjIFRoaXMgc2hvdWxkIHRyaWdnZXIgdGhlIGNvbmZsaWN0Ciskbm9k ZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsICdWQUNVVU0gRlVMTCcpOworCiskbm9k ZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAk bm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJykpOworCisjIG1lc3NhZ2Ugc2hvdWxkIGJlIGlz c3VlZAorb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRh dGluZyBzbG90IFwiaW5hY3RpdmVzbG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCBy ZWNvdmVyeSIpLAorICAnaW5hY3RpdmVzbG90IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxvZ2dl ZCB3aXRoIHZhY3V1bSBGVUxMJyk7CisKK29rKCBmaW5kX2luX2xvZygKKyAgICRub2RlX3N0 YW5kYnksCisgICJpbnZhbGlkYXRpbmcgc2xvdCBcImFjdGl2ZXNsb3RcIiBiZWNhdXNlIGl0 IGNvbmZsaWN0cyB3aXRoIHJlY292ZXJ5IiksCisgICdhY3RpdmVzbG90IHNsb3QgaW52YWxp ZGF0aW9uIGlzIGxvZ2dlZCB3aXRoIHZhY3V1bSBGVUxMJyk7CisKKyMgVmVyaWZ5IHRoYXQg cGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMuY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IGhh cyBiZWVuIHVwZGF0ZWQKK29rKCAkbm9kZV9zdGFuZGJ5LT5wb2xsX3F1ZXJ5X3VudGlsKAor CSdwb3N0Z3JlcycsCisJInNlbGVjdCAoY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90ID0gMSkg ZnJvbSBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyB3aGVyZSBkYXRuYW1lID0gJ3Rlc3Rk YiciLCAndCcpLAorCSdjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgdXBkYXRlZCcpIG9yIGRp ZSAiVGltZWQgb3V0IHdhaXRpbmcgY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IHRvIGJlIHVw ZGF0ZWQiOworCiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgwKTsKKyMgV2UgYXJlIG5v dCBhYmxlIHRvIHJlYWQgZnJvbSB0aGUgc2xvdCBhcyBpdCBoYXMgYmVlbiBpbnZhbGlkYXRl ZAorY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsICJjYW5ub3QgcmVhZCBm cm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcImFjdGl2ZXNsb3RcIiIpOworCisjIFR1 cm4gaG90X3N0YW5kYnlfZmVlZGJhY2sgYmFjayBvbgorJG5vZGVfc3RhbmRieS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24K K10pOworJG5vZGVfc3RhbmRieS0+cmVzdGFydDsKKworIyBlbnN1cmUgd2FscmVjZWl2ZXIg ZmVlZGJhY2sgc2VudCBieSB3YWl0aW5nIGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRh bG9nX3htaW4gb24gcHJpbWFyeS4gV2l0aCBob3Rfc3RhbmRieV9mZWVkYmFjayBvbiwgeG1p biBzaG91bGQgYWR2YW5jZSwKKyMgYnV0IGNhdGFsb2dfeG1pbiBzaG91bGQgc3RpbGwgcmVt YWluIE5VTEwgc2luY2UgdGhlcmUgaXMgbm8gbG9naWNhbCBzbG90Lgord2FpdF9mb3JfeG1p bnMoJG5vZGVfcHJpbWFyeSwgJHByaW1hcnlfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBO T1QgTlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUmVjb3ZlcnkgY29uZmxp Y3Q6IEludmFsaWRhdGUgY29uZmxpY3Rpbmcgc2xvdHMsIGluY2x1ZGluZyBpbi11c2Ugc2xv dHMKKyMgU2NlbmFyaW8gMjogY29uZmxpY3QgZHVlIHRvIHJvdyByZW1vdmFsIHdpdGggaG90 X3N0YW5kYnlfZmVlZGJhY2sgb2ZmLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBnZXQgdGhlIHBvc2l0aW9uIHRvIHNlYXJjaCBm cm9tIGluIHRoZSBzdGFuZGJ5IGxvZ2ZpbGUKK215ICRsb2dzdGFydCA9IC1zICRub2RlX3N0 YW5kYnktPmxvZ2ZpbGU7CisKKyMgZHJvcCB0aGUgbG9naWNhbCBzbG90cworJG5vZGVfc3Rh bmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Ns b3QoJ2luYWN0aXZlc2xvdCcpXSk7Ciskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3Jlcycs IHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnYWN0aXZlc2xvdCcpXSk7CisK K2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyMgT25lIHdheSB0byBwcm9kdWNlIHJlY292 ZXJ5IGNvbmZsaWN0IGlzIHRvIGNyZWF0ZS9kcm9wIGEgcmVsYXRpb24gYW5kIGxhdW5jaCBh IHZhY3V1bQorIyB3aXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHR1cm5lZCBvZmYgb24gdGhl IHN0YW5kYnkuCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25m JyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvZmYKK10pOworJG5vZGVfc3RhbmRieS0+ cmVzdGFydDsKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRiYWNrIG9mZiBieSB3YWl0aW5n IGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRhbG9nX3htaW4gb24gcHJpbWFyeS4gQm90 aCBzaG91bGQgYmUgTlVMTCBzaW5jZSBoc19mZWVkYmFjayBpcyBvZmYKK3dhaXRfZm9yX3ht aW5zKCRub2RlX3ByaW1hcnksICRwcmltYXJ5X3Nsb3RuYW1lLAorCQkJICAgInhtaW4gSVMg TlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworJGhhbmRsZSA9IG1ha2Vfc2xv dF9hY3RpdmUoMSk7CisKKyMgVGhpcyBzaG91bGQgdHJpZ2dlciB0aGUgY29uZmxpY3QKKyRu b2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGNvbmZs aWN0X3Rlc3QoeCBpbnRlZ2VyLCB5IHRleHQpO10pOworJG5vZGVfcHJpbWFyeS0+c2FmZV9w c3FsKCd0ZXN0ZGInLCBxcVtEUk9QIFRBQkxFIGNvbmZsaWN0X3Rlc3Q7XSk7Ciskbm9kZV9w cmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsICdWQUNVVU0nKTsKKworJG5vZGVfcHJpbWFy eS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJp bWFyeS0+bHNuKCdmbHVzaCcpKTsKKworIyBtZXNzYWdlIHNob3VsZCBiZSBpc3N1ZWQKK29r KCBmaW5kX2luX2xvZygKKyAgICRub2RlX3N0YW5kYnksCisgICJpbnZhbGlkYXRpbmcgc2xv dCBcImluYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3Zlcnki LCAkbG9nc3RhcnQpLAorICAnaW5hY3RpdmVzbG90IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxv Z2dlZCBkdWUgdG8gcm93IHJlbW92YWwnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5v ZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1 c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiLCAkbG9nc3RhcnQpLAorICAnYWN0aXZl c2xvdCBzbG90IGludmFsaWRhdGlvbiBpcyBsb2dnZWQgZHVlIHRvIHJvdyByZW1vdmFsJyk7 CisKKyMgVmVyaWZ5IHRoYXQgcGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMuY29uZmxfYWN0 aXZlX2xvZ2ljYWxzbG90IGhhcyBiZWVuIHVwZGF0ZWQKKyMgd2Ugbm93IGV4cGVjdCAyIGNv bmZsaWN0cyByZXBvcnRlZCBhcyB0aGUgY291bnRlciBwZXJzaXN0IGFjcm9zcyByZXN0YXJ0 cworb2soICRub2RlX3N0YW5kYnktPnBvbGxfcXVlcnlfdW50aWwoCisJJ3Bvc3RncmVzJywK Kwkic2VsZWN0IChjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgPSAyKSBmcm9tIHBnX3N0YXRf ZGF0YWJhc2VfY29uZmxpY3RzIHdoZXJlIGRhdG5hbWUgPSAndGVzdGRiJyIsICd0JyksCisJ J2NvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCB1cGRhdGVkJykgb3IgZGllICJUaW1lZCBvdXQg d2FpdGluZyBjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgdG8gYmUgdXBkYXRlZCI7CisKKyRo YW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOworIyBXZSBhcmUgbm90IGFibGUgdG8gcmVh ZCBmcm9tIHRoZSBzbG90IGFzIGl0IGhhcyBiZWVuIGludmFsaWRhdGVkCitjaGVja19wZ19y ZWN2bG9naWNhbF9zdGRlcnIoJGhhbmRsZSwgImNhbm5vdCByZWFkIGZyb20gbG9naWNhbCBy ZXBsaWNhdGlvbiBzbG90IFwiYWN0aXZlc2xvdFwiIik7CisKKyMgVHVybiBob3Rfc3RhbmRi eV9mZWVkYmFjayBiYWNrIG9uCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdy ZXNxbC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgorXSk7Ciskbm9kZV9z dGFuZGJ5LT5yZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBzZW50 IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBw cmltYXJ5LiBXaXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG9uLCB4bWluIHNob3VsZCBhZHZh bmNlLAorIyBidXQgY2F0YWxvZ194bWluIHNob3VsZCBzdGlsbCByZW1haW4gTlVMTCBzaW5j ZSB0aGVyZSBpcyBubyBsb2dpY2FsIHNsb3QuCit3YWl0X2Zvcl94bWlucygkbm9kZV9wcmlt YXJ5LCAkcHJpbWFyeV9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5PVCBOVUxMIEFORCBj YXRhbG9nX3htaW4gSVMgTlVMTCIpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBSZWNvdmVyeSBjb25mbGljdDogSW52YWxpZGF0 ZSBjb25mbGljdGluZyBzbG90cywgaW5jbHVkaW5nIGluLXVzZSBzbG90cworIyBTY2VuYXJp byAzOiBpbmNvcnJlY3Qgd2FsX2xldmVsIG9uIHByaW1hcnkuCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIGdldCB0aGUgcG9zaXRp b24gdG8gc2VhcmNoIGZyb20gaW4gdGhlIHN0YW5kYnkgbG9nZmlsZQorJGxvZ3N0YXJ0ID0g LXMgJG5vZGVfc3RhbmRieS0+bG9nZmlsZTsKKworIyBkcm9wIHRoZSBsb2dpY2FsIHNsb3Rz Ciskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVw bGljYXRpb25fc2xvdCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5kYnktPnBzcWwo J3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdhY3RpdmVz bG90JyldKTsKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworJGhhbmRsZSA9IG1ha2Vf c2xvdF9hY3RpdmUoMSk7CisKKyMgTWFrZSBwcmltYXJ5IHdhbF9sZXZlbCByZXBsaWNhLiBU aGlzIHdpbGwgdHJpZ2dlciBzbG90IGNvbmZsaWN0LgorJG5vZGVfcHJpbWFyeS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK3dhbF9sZXZlbCA9ICdyZXBsaWNhJworXSk7 Ciskbm9kZV9wcmltYXJ5LT5yZXN0YXJ0OworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9j YXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24oJ2Zs dXNoJykpOworCisjIG1lc3NhZ2Ugc2hvdWxkIGJlIGlzc3VlZAorb2soIGZpbmRfaW5fbG9n KAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwiaW5hY3RpdmVz bG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIsICRsb2dzdGFydCks CisgICdpbmFjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlkYXRpb24gaXMgbG9nZ2VkIGR1ZSB0byB3 YWxfbGV2ZWwnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAg ImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQgY29uZmxpY3Rz IHdpdGggcmVjb3ZlcnkiLCAkbG9nc3RhcnQpLAorICAnYWN0aXZlc2xvdCBzbG90IGludmFs aWRhdGlvbiBpcyBsb2dnZWQgZHVlIHRvIHdhbF9sZXZlbCcpOworCisjIFZlcmlmeSB0aGF0 IHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzLmNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCBo YXMgYmVlbiB1cGRhdGVkCisjIHdlIG5vdyBleHBlY3QgMyBjb25mbGljdHMgcmVwb3J0ZWQg YXMgdGhlIGNvdW50ZXIgcGVyc2lzdCBhY3Jvc3MgcmVzdGFydHMKK29rKCAkbm9kZV9zdGFu ZGJ5LT5wb2xsX3F1ZXJ5X3VudGlsKAorCSdwb3N0Z3JlcycsCisJInNlbGVjdCAoY29uZmxf YWN0aXZlX2xvZ2ljYWxzbG90ID0gMykgZnJvbSBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0 cyB3aGVyZSBkYXRuYW1lID0gJ3Rlc3RkYiciLCAndCcpLAorCSdjb25mbF9hY3RpdmVfbG9n aWNhbHNsb3QgdXBkYXRlZCcpIG9yIGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgY29uZmxfYWN0 aXZlX2xvZ2ljYWxzbG90IHRvIGJlIHVwZGF0ZWQiOworCiskaGFuZGxlID0gbWFrZV9zbG90 X2FjdGl2ZSgwKTsKKyMgV2UgYXJlIG5vdCBhYmxlIHRvIHJlYWQgZnJvbSB0aGUgc2xvdCBh cyBpdCByZXF1aXJlcyB3YWxfbGV2ZWwgYXQgbGVhc3QgbG9naWNhbCBvbiBtYXN0ZXIKK2No ZWNrX3BnX3JlY3Zsb2dpY2FsX3N0ZGVycigkaGFuZGxlLCAibG9naWNhbCBkZWNvZGluZyBv biBzdGFuZGJ5IHJlcXVpcmVzIHdhbF9sZXZlbCB0byBiZSBhdCBsZWFzdCBsb2dpY2FsIG9u IG1hc3RlciIpOworCisjIFJlc3RvcmUgcHJpbWFyeSB3YWxfbGV2ZWwKKyRub2RlX3ByaW1h cnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCit3YWxfbGV2ZWwgPSAnbG9n aWNhbCcKK10pOworJG5vZGVfcHJpbWFyeS0+cmVzdGFydDsKKyRub2RlX3ByaW1hcnktPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnkt PmxzbignZmx1c2gnKSk7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOworIyBh cyB0aGUgc2xvdCBoYXMgYmVlbiBpbnZhbGlkYXRlZCB3ZSBzaG91bGQgbm90IGJlIGFibGUg dG8gcmVhZAorY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsICJjYW5ub3Qg cmVhZCBmcm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcImFjdGl2ZXNsb3RcIiIpOwor CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IyBEUk9QIERBVEFCQVNFIHNob3VsZCBkcm9wcyBpdCdzIHNsb3RzLCBpbmNsdWRpbmcgYWN0 aXZlIHNsb3RzLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKworJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2luYWN0aXZlc2xvdCcpXSk7Ciskbm9kZV9zdGFu ZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnYWN0aXZlc2xvdCcpXSk7CitjcmVhdGVfbG9naWNhbF9zbG90cygpOworJGhhbmRsZSA9 IG1ha2Vfc2xvdF9hY3RpdmUoMSk7CisjIENyZWF0ZSBhIHNsb3Qgb24gYSBkYXRhYmFzZSB0 aGF0IHdvdWxkIG5vdCBiZSBkcm9wcGVkLiBUaGlzIHNsb3Qgc2hvdWxkIG5vdAorIyBnZXQg ZHJvcHBlZC4KKyRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25fc3RhbmRi eSgkbm9kZV9wcmltYXJ5LCAnb3RoZXJzbG90JywgJ3Bvc3RncmVzJyk7CisKKyMgZHJvcGRi IG9uIHRoZSBwcmltYXJ5IHRvIHZlcmlmeSBzbG90cyBhcmUgZHJvcHBlZCBvbiBzdGFuZGJ5 Ciskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcVtEUk9QIERBVEFCQVNF IHRlc3RkYl0pOworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0 YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJykpOworCitpcygk bm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxW1NFTEVDVCBFWElTVFMo U0VMRUNUIDEgRlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRuYW1lID0gJ3Rlc3RkYicpXSks ICdmJywKKwknZGF0YWJhc2UgZHJvcHBlZCBvbiBzdGFuZGJ5Jyk7CisKK2NoZWNrX3Nsb3Rz X2Ryb3BwZWQoJGhhbmRsZSk7CisKK2lzKCRub2RlX3N0YW5kYnktPnNsb3QoJ290aGVyc2xv dCcpLT57J3Nsb3RfdHlwZSd9LCAnbG9naWNhbCcsCisJJ290aGVyc2xvdCBvbiBzdGFuZGJ5 IG5vdCBkcm9wcGVkJyk7CisKKyMgQ2xlYW51cCA6IG1hbnVhbGx5IGRyb3AgdGhlIHNsb3Qg dGhhdCB3YXMgbm90IGRyb3BwZWQuCiskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3Jlcycs IHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnb3RoZXJzbG90JyldKTsKKwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg VGVzdCBzdGFuZGJ5IHByb21vdGlvbiBhbmQgbG9naWNhbCBkZWNvZGluZyBiZWhhdmlvcgor IyBhZnRlciB0aGUgc3RhbmRieSBnZXRzIHByb21vdGVkLgorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVfcHJpbWFyeS0+cHNx bCgncG9zdGdyZXMnLCBxW0NSRUFURSBEQVRBQkFTRSB0ZXN0ZGJdKTsKKyRub2RlX3ByaW1h cnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGRlY29kaW5nX3Rlc3Qo eCBpbnRlZ2VyLCB5IHRleHQpO10pOworCisjIGNyZWF0ZSB0aGUgbG9naWNhbCBzbG90cwor Y3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBJbnNlcnQgc29tZSByb3dzIGJlZm9yZSB0 aGUgcHJvbW90aW9uCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFb SU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0ZXh0IEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsNCkgcztdCispOworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zv cl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24o J2ZsdXNoJykpOworCisjIHByb21vdGUKKyRub2RlX3N0YW5kYnktPnByb21vdGU7CisKKyMg aW5zZXJ0IHNvbWUgcm93cyBvbiBwcm9tb3RlZCBzdGFuZGJ5Ciskbm9kZV9zdGFuZGJ5LT5z YWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkp IFNFTEVDVCBzLCBzOjp0ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDUsNykgcztdCispOwor CisKKyRleHBlY3RlZCA9IHF7QkVHSU4KK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJ TlNFUlQ6IHhbaW50ZWdlcl06MSB5W3RleHRdOicxJwordGFibGUgcHVibGljLmRlY29kaW5n X3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXToyIHlbdGV4dF06JzInCit0YWJsZSBwdWJsaWMu ZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjMgeVt0ZXh0XTonMycKK3RhYmxl IHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NCB5W3RleHRdOic0 JworQ09NTUlUCitCRUdJTgordGFibGUgcHVibGljLmRlY29kaW5nX3Rlc3Q6IElOU0VSVDog eFtpbnRlZ2VyXTo1IHlbdGV4dF06JzUnCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDog SU5TRVJUOiB4W2ludGVnZXJdOjYgeVt0ZXh0XTonNicKK3RhYmxlIHB1YmxpYy5kZWNvZGlu Z190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NyB5W3RleHRdOic3JworQ09NTUlUfTsKKwor IyBjaGVjayB0aGF0IHdlIGFyZSBkZWNvZGluZyBwcmUgYW5kIHBvc3QgcHJvbW90aW9uIGlu c2VydGVkIHJvd3MKKyRzdGRvdXRfc3FsID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCd0 ZXN0ZGInLAorCXFxW1NFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hh bmdlcygnYWN0aXZlc2xvdCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdz a2lwLWVtcHR5LXhhY3RzJywgJzEnKTtdCispOworCitpcygkc3Rkb3V0X3NxbCwgJGV4cGVj dGVkLCAnZ290IGV4cGVjdGVkIG91dHB1dCBmcm9tIFNRTCBkZWNvZGluZyBzZXNzaW9uIG9u IHByb21vdGVkIHN0YW5kYnknKTsKLS0gCjIuMzQuMQoK --------------r9KIatASOpVniPvrBi6hlPOw Content-Type: text/plain; charset=UTF-8; name="v32-0003-Allow-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename="v32-0003-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA4YmFmYjUzODRhMWQwMDRhMDAzOGNiM2I0NmJkOWU3NDY5MzM1MGY4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogRnJpLCAxNiBEZWMgMjAyMiAwOTozNTo1MCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMyIDMvNl0gQWxsb3cgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5LgoKQWxsb3cg YSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCBvbiBzdGFuZGJ5LiBSZXN0cmljdCBpdHMg dXNhZ2UKb3IgaXRzIGNyZWF0aW9uIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIGxlc3Mg dGhhbiBsb2dpY2FsLgpEdXJpbmcgc2xvdCBjcmVhdGlvbiwgaXQncyByZXN0YXJ0X2xzbiBp cyBzZXQgdG8gdGhlIGxhc3QgcmVwbGF5ZWQKTFNOLiBFZmZlY3RpdmVseSwgYSBsb2dpY2Fs IHNsb3QgY3JlYXRpb24gb24gc3RhbmRieSB3YWl0cyBmb3IgYW4KeGxfcnVubmluZ194YWN0 IHJlY29yZCB0byBhcnJpdmUgZnJvbSBwcmltYXJ5LiBDb25mbGljdGluZyBzbG90cwp3b3Vs ZCBiZSBoYW5kbGVkIGluIG5leHQgY29tbWl0cy4KCkF1dGhvcjogQW5kcmVzIEZyZXVuZCAo aW4gYW4gb2xkZXIgdmVyc2lvbiksIEFtaXQgS2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90 ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBEcm91dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQg SGFhcywgRmFicml6aW8gZGUgUm95ZXMgTWVsbG8KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMgICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvZGVjb2RlLmMgIHwgMjIgKysrKysrLQogc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9sb2dpY2FsLmMgfCAzNyArKysrKysrLS0tLS0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3QuYyAgICAgICAgICAgIHwgNzMgKysrKysrKysrKysrKysrLS0t LS0tLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAgIHwgMjcg KysrKystLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oICAgICAgICAgICAgICAgICB8 ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9u cygtKQogICA0LjUlIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtLwogIDM2LjYlIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvCiAgNTcuOSUgc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IGZjYTZlZTQ1ODQu LmY5Y2M4NDJhNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hs b2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTQ0NjIs NiArNDQ2MiwxNyBAQCBMb2NhbFByb2Nlc3NDb250cm9sRmlsZShib29sIHJlc2V0KQogCVJl YWRDb250cm9sRmlsZSgpOwogfQogCisvKgorICogR2V0IHRoZSB3YWxfbGV2ZWwgZnJvbSB0 aGUgY29udHJvbCBmaWxlLiBGb3IgYSBzdGFuZGJ5LCB0aGlzIHZhbHVlIHNob3VsZCBiZQor ICogY29uc2lkZXJlZCBhcyBpdHMgYWN0aXZlIHdhbF9sZXZlbCwgYmVjYXVzZSBpdCBtYXkg YmUgZGlmZmVyZW50IGZyb20gd2hhdAorICogd2FzIG9yaWdpbmFsbHkgY29uZmlndXJlZCBv biBzdGFuZGJ5LgorICovCitXYWxMZXZlbAorR2V0QWN0aXZlV2FsTGV2ZWxPblN0YW5kYnko dm9pZCkKK3sKKwlyZXR1cm4gQ29udHJvbEZpbGUtPndhbF9sZXZlbDsKK30KKwogLyoKICAq IEluaXRpYWxpemF0aW9uIG9mIHNoYXJlZCBtZW1vcnkgZm9yIFhMT0cKICAqLwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKaW5kZXggMmNjMGFjOWViMC4u YzIxMDcyMWFiMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9kZWNvZGUuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29k ZS5jCkBAIC0xNTIsMTEgKzE1MiwzMSBAQCB4bG9nX2RlY29kZShMb2dpY2FsRGVjb2RpbmdD b250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIgKmJ1ZikKIAkJCSAqIGNhbiByZXN0YXJ0 IGZyb20gdGhlcmUuCiAJCQkgKi8KIAkJCWJyZWFrOworCQljYXNlIFhMT0dfUEFSQU1FVEVS X0NIQU5HRToKKwkJeworCQkJeGxfcGFyYW1ldGVyX2NoYW5nZSAqeGxyZWMgPQorCQkJCSh4 bF9wYXJhbWV0ZXJfY2hhbmdlICopIFhMb2dSZWNHZXREYXRhKGJ1Zi0+cmVjb3JkKTsKKwor CQkJLyoKKwkJCSAqIElmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIHJlZHVjZWQgdG8gbGVz cyB0aGFuIGxvZ2ljYWwsIHRoZW4gd2UKKwkJCSAqIHdhbnQgdG8gcHJldmVudCBleGlzdGlu ZyBsb2dpY2FsIHNsb3RzIGZyb20gYmVpbmcgdXNlZC4KKwkJCSAqIEV4aXN0aW5nIGxvZ2lj YWwgc2xvdHMgb24gc3RhbmRieSBnZXQgaW52YWxpZGF0ZWQgd2hlbiB0aGlzIFdBTAorCQkJ ICogcmVjb3JkIGlzIHJlcGxheWVkOyBhbmQgZnVydGhlciwgc2xvdCBjcmVhdGlvbiBmYWls cyB3aGVuIHRoZQorCQkJICogd2FsIGxldmVsIGlzIG5vdCBzdWZmaWNpZW50OyBidXQgYWxs IHRoZXNlIG9wZXJhdGlvbnMgYXJlIG5vdAorCQkJICogc3luY2hyb25pemVkLCBzbyBhIGxv Z2ljYWwgc2xvdCBtYXkgY3JlZXAgaW4gd2hpbGUgdGhlIHdhbF9sZXZlbAorCQkJICogaXMg YmVpbmcgcmVkdWNlZC4gSGVuY2UgdGhpcyBleHRyYSBjaGVjay4KKwkJCSAqLworCQkJaWYg KHhscmVjLT53YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lU RV9TVEFURSksCisJCQkJCQkgZXJybXNnKCJsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkg cmVxdWlyZXMgIgorCQkJCQkJCQkid2FsX2xldmVsIHRvIGJlIGF0IGxlYXN0IGxvZ2ljYWwg b24gbWFzdGVyIikpKTsKKwkJCWJyZWFrOworCQl9CiAJCWNhc2UgWExPR19OT09QOgogCQlj YXNlIFhMT0dfTkVYVE9JRDoKIAkJY2FzZSBYTE9HX1NXSVRDSDoKIAkJY2FzZSBYTE9HX0JB Q0tVUF9FTkQ6Ci0JCWNhc2UgWExPR19QQVJBTUVURVJfQ0hBTkdFOgogCQljYXNlIFhMT0df UkVTVE9SRV9QT0lOVDoKIAkJY2FzZSBYTE9HX0ZQV19DSEFOR0U6CiAJCWNhc2UgWExPR19G UElfRk9SX0hJTlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNh bC5jCmluZGV4IDYyNWE3ZjQyNzMuLmE5NTY3ZjJkOGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCkBAIC0xMTksMjMgKzExOSwyMiBAQCBDaGVj a0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cyh2b2lkKQogCQkJCShlcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImxv Z2ljYWwgZGVjb2RpbmcgcmVxdWlyZXMgYSBkYXRhYmFzZSBjb25uZWN0aW9uIikpKTsKIAot CS8qIC0tLS0KLQkgKiBUT0RPOiBXZSBnb3QgdG8gY2hhbmdlIHRoYXQgc29tZWRheSBzb29u Li4uCi0JICoKLQkgKiBUaGVyZSdzIGJhc2ljYWxseSB0aHJlZSB0aGluZ3MgbWlzc2luZyB0 byBhbGxvdyB0aGlzOgotCSAqIDEpIFdlIG5lZWQgdG8gYmUgYWJsZSB0byBjb3JyZWN0bHkg YW5kIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHRpbWVsaW5lIGEKLQkgKgkgIExTTiBiZWxvbmdz IHRvCi0JICogMikgV2UgbmVlZCB0byBmb3JjZSBob3Rfc3RhbmRieV9mZWVkYmFjayB0byBi ZSBlbmFibGVkIGF0IGFsbCB0aW1lcyBzbwotCSAqCSAgdGhlIHByaW1hcnkgY2Fubm90IHJl bW92ZSByb3dzIHdlIG5lZWQuCi0JICogMykgc3VwcG9ydCBkcm9wcGluZyByZXBsaWNhdGlv biBzbG90cyByZWZlcnJpbmcgdG8gYSBkYXRhYmFzZSwgaW4KLQkgKgkgIGRiYXNlX3JlZG8u IFRoZXJlIGNhbid0IGJlIGFueSBhY3RpdmUgb25lcyBkdWUgdG8gSFMgcmVjb3ZlcnkKLQkg KgkgIGNvbmZsaWN0cywgc28gdGhhdCBzaG91bGQgYmUgcmVsYXRpdmVseSBlYXN5LgotCSAq IC0tLS0KLQkgKi8KIAlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkpCi0JCWVyZXBvcnQoRVJS T1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJ CSBlcnJtc2coImxvZ2ljYWwgZGVjb2RpbmcgY2Fubm90IGJlIHVzZWQgd2hpbGUgaW4gcmVj b3ZlcnkiKSkpOworCXsKKwkJLyoKKwkJICogVGhpcyBjaGVjayBtYXkgaGF2ZSByYWNlIGNv bmRpdGlvbnMsIGJ1dCB3aGVuZXZlcgorCQkgKiBYTE9HX1BBUkFNRVRFUl9DSEFOR0UgaW5k aWNhdGVzIHRoYXQgd2FsX2xldmVsIGhhcyBjaGFuZ2VkLCB3ZQorCQkgKiB2ZXJpZnkgdGhh dCB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cy4gQW5k IHRvCisJCSAqIGF2b2lkIHJhY2VzIGFyb3VuZCBjcmVhdGluZyBhIG5ldyBzbG90LAorCQkg KiBDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cygpIGlzIGNhbGxlZCBvbmNlIGJl Zm9yZSBjcmVhdGluZworCQkgKiB0aGUgc2xvdCwgYW5kIG9uY2Ugd2hlbiBsb2dpY2FsIGRl Y29kaW5nIGlzIGluaXRpYWxseSBzdGFydGluZyB1cC4KKwkJICovCisJCWlmIChHZXRBY3Rp dmVXYWxMZXZlbE9uU3RhbmRieSgpIDwgV0FMX0xFVkVMX0xPR0lDQUwpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlT SVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5 IHJlcXVpcmVzICIKKwkJCQkJCQkid2FsX2xldmVsIHRvIGJlIGF0IGxlYXN0IGxvZ2ljYWwg b24gbWFzdGVyIikpKTsKKwl9CiB9CiAKIC8qCkBAIC0zMzEsNiArMzMwLDEyIEBAIENyZWF0 ZUluaXREZWNvZGluZ0NvbnRleHQoY29uc3QgY2hhciAqcGx1Z2luLAogCUxvZ2ljYWxEZWNv ZGluZ0NvbnRleHQgKmN0eDsKIAlNZW1vcnlDb250ZXh0IG9sZF9jb250ZXh0OwogCisJLyoK KwkgKiBPbiBzdGFuZGJ5LCB0aGlzIGNoZWNrIGlzIGFsc28gcmVxdWlyZWQgd2hpbGUgY3Jl YXRpbmcgdGhlIHNsb3QuIENoZWNrCisJICogdGhlIGNvbW1lbnRzIGluIHRoaXMgZnVuY3Rp b24uCisJICovCisJQ2hlY2tMb2dpY2FsRGVjb2RpbmdSZXF1aXJlbWVudHMoKTsKKwogCS8q IHNob3J0ZXIgbGluZXMuLi4gKi8KIAlzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA2YTRlMmNkMTliLi5mNTU0ZGFjNmZkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAic3Rv cmFnZS9wcm9jLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9ncmVjb3ZlcnkuaCIK IAogLyoKICAqIFJlcGxpY2F0aW9uIHNsb3Qgb24tZGlzayBkYXRhIHN0cnVjdHVyZS4KQEAg LTExNzUsMzcgKzExNzYsNDYgQEAgUmVwbGljYXRpb25TbG90UmVzZXJ2ZVdhbCh2b2lkKQog CQkvKgogCQkgKiBGb3IgbG9naWNhbCBzbG90cyBsb2cgYSBzdGFuZGJ5IHNuYXBzaG90IGFu ZCBzdGFydCBsb2dpY2FsIGRlY29kaW5nCiAJCSAqIGF0IGV4YWN0bHkgdGhhdCBwb3NpdGlv bi4gVGhhdCBhbGxvd3MgdGhlIHNsb3QgdG8gc3RhcnQgdXAgbW9yZQotCQkgKiBxdWlja2x5 LgorCQkgKiBxdWlja2x5LiBCdXQgb24gYSBzdGFuZGJ5IHdlIGNhbm5vdCBkbyBXQUwgd3Jp dGVzLCBzbyBqdXN0IHVzZSB0aGUKKwkJICogcmVwbGF5IHBvaW50ZXI7IGVmZmVjdGl2ZWx5 LCBhbiBhdHRlbXB0IHRvIGNyZWF0ZSBhIGxvZ2ljYWwgc2xvdCBvbgorCQkgKiBzdGFuZGJ5 IHdpbGwgY2F1c2UgaXQgdG8gd2FpdCBmb3IgYW4geGxfcnVubmluZ194YWN0IHJlY29yZCB0 byBiZQorCQkgKiBsb2dnZWQgaW5kZXBlbmRlbnRseSBvbiB0aGUgcHJpbWFyeSwgc28gdGhh dCBhIHNuYXBzaG90IGNhbiBiZSBidWlsdAorCQkgKiB1c2luZyB0aGUgcmVjb3JkLgogCQkg KgotCQkgKiBUaGF0J3Mgbm90IG5lZWRlZCAob3IgaW5kZWVkIGhlbHBmdWwpIGZvciBwaHlz aWNhbCBzbG90cyBhcyB0aGV5J2xsCi0JCSAqIHN0YXJ0IHJlcGxheSBhdCB0aGUgbGFzdCBs b2dnZWQgY2hlY2twb2ludCBhbnl3YXkuIEluc3RlYWQgcmV0dXJuCi0JCSAqIHRoZSBsb2Nh dGlvbiBvZiB0aGUgbGFzdCByZWRvIExTTi4gV2hpbGUgdGhhdCBzbGlnaHRseSBpbmNyZWFz ZXMKLQkJICogdGhlIGNoYW5jZSB0aGF0IHdlIGhhdmUgdG8gcmV0cnksIGl0J3Mgd2hlcmUg YSBiYXNlIGJhY2t1cCBoYXMgdG8KLQkJICogc3RhcnQgcmVwbGF5IGF0LgorCQkgKiBOb25l IG9mIHRoaXMgaXMgbmVlZGVkIChvciBpbmRlZWQgaGVscGZ1bCkgZm9yIHBoeXNpY2FsIHNs b3RzIGFzCisJCSAqIHRoZXknbGwgc3RhcnQgcmVwbGF5IGF0IHRoZSBsYXN0IGxvZ2dlZCBj aGVja3BvaW50IGFueXdheS4gSW5zdGVhZAorCQkgKiByZXR1cm4gdGhlIGxvY2F0aW9uIG9m IHRoZSBsYXN0IHJlZG8gTFNOLiBXaGlsZSB0aGF0IHNsaWdodGx5CisJCSAqIGluY3JlYXNl cyB0aGUgY2hhbmNlIHRoYXQgd2UgaGF2ZSB0byByZXRyeSwgaXQncyB3aGVyZSBhIGJhc2Ug YmFja3VwCisJCSAqIGhhcyB0byBzdGFydCByZXBsYXkgYXQuCiAJCSAqLwotCQlpZiAoIVJl Y292ZXJ5SW5Qcm9ncmVzcygpICYmIFNsb3RJc0xvZ2ljYWwoc2xvdCkpCisJCWlmIChTbG90 SXNQaHlzaWNhbChzbG90KSkKKwkJCXJlc3RhcnRfbHNuID0gR2V0UmVkb1JlY1B0cigpOwor CQllbHNlIGlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKIAkJewotCQkJWExvZ1JlY1B0cglm bHVzaHB0cjsKLQotCQkJLyogc3RhcnQgYXQgY3VycmVudCBpbnNlcnQgcG9zaXRpb24gKi8K LQkJCXJlc3RhcnRfbHNuID0gR2V0WExvZ0luc2VydFJlY1B0cigpOwotCQkJU3BpbkxvY2tB Y3F1aXJlKCZzbG90LT5tdXRleCk7Ci0JCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVz dGFydF9sc247Ci0JCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQotCQkJLyog bWFrZSBzdXJlIHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHN0YXJ0ICovCi0JCQlm bHVzaHB0ciA9IExvZ1N0YW5kYnlTbmFwc2hvdCgpOwotCi0JCQkvKiBhbmQgbWFrZSBzdXJl IGl0J3MgZnN5bmNlZCB0byBkaXNrICovCi0JCQlYTG9nRmx1c2goZmx1c2hwdHIpOworCQkJ cmVzdGFydF9sc24gPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOworCQkJLyoKKwkJCSAq IFJlcGxheSBwb2ludGVyIG1heSBwb2ludCBvbmUgcGFzdCB0aGUgZW5kIG9mIHRoZSByZWNv cmQuIElmIHRoYXQKKwkJCSAqIGlzIGEgWExPRyBwYWdlIGJvdW5kYXJ5LCBpdCB3aWxsIG5v dCBiZSBhIHZhbGlkIExTTiBmb3IgdGhlCisJCQkgKiBzdGFydCBvZiBhIHJlY29yZCwgc28g YnVtcCBpdCB1cCBwYXN0IHRoZSBwYWdlIGhlYWRlci4KKwkJCSAqLworCQkJaWYgKCFYUmVj T2ZmSXNWYWxpZChyZXN0YXJ0X2xzbikpCisJCQl7CisJCQkJaWYgKHJlc3RhcnRfbHNuICUg WExPR19CTENLU1ogIT0gMCkKKwkJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgcmVwbGF5IHBv aW50ZXIiKTsKKworCQkJCS8qIEZvciB0aGUgZmlyc3QgcGFnZSBvZiBhIHNlZ21lbnQgZmls ZSwgaXQncyBhIGxvbmcgaGVhZGVyICovCisJCQkJaWYgKFhMb2dTZWdtZW50T2Zmc2V0KHJl c3RhcnRfbHNuLCB3YWxfc2VnbWVudF9zaXplKSA9PSAwKQorCQkJCQlyZXN0YXJ0X2xzbiAr PSBTaXplT2ZYTG9nTG9uZ1BIRDsKKwkJCQllbHNlCisJCQkJCXJlc3RhcnRfbHNuICs9IFNp emVPZlhMb2dTaG9ydFBIRDsKKwkJCX0KIAkJfQogCQllbHNlCi0JCXsKLQkJCXJlc3RhcnRf bHNuID0gR2V0UmVkb1JlY1B0cigpOwotCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRl eCk7Ci0JCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247Ci0JCQlTcGlu TG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQkJfQorCQkJcmVzdGFydF9sc24gPSBHZXRY TG9nSW5zZXJ0UmVjUHRyKCk7CisKKwkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7 CisJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKKwkJU3BpbkxvY2tS ZWxlYXNlKCZzbG90LT5tdXRleCk7CiAKIAkJLyogcHJldmVudCBXQUwgcmVtb3ZhbCBhcyBm YXN0IGFzIHBvc3NpYmxlICovCiAJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRM U04oKTsKQEAgLTEyMjEsNiArMTIzMSwxNyBAQCBSZXBsaWNhdGlvblNsb3RSZXNlcnZlV2Fs KHZvaWQpCiAJCWlmIChYTG9nR2V0TGFzdFJlbW92ZWRTZWdubygpIDwgc2Vnbm8pCiAJCQli cmVhazsKIAl9CisKKwlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpICYmIFNsb3RJc0xvZ2lj YWwoc2xvdCkpCisJeworCQlYTG9nUmVjUHRyCWZsdXNocHRyOworCisJCS8qIG1ha2Ugc3Vy ZSB3ZSBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBzdGFydCAqLworCQlmbHVzaHB0ciA9 IExvZ1N0YW5kYnlTbmFwc2hvdCgpOworCisJCS8qIGFuZCBtYWtlIHN1cmUgaXQncyBmc3lu Y2VkIHRvIGRpc2sgKi8KKwkJWExvZ0ZsdXNoKGZsdXNocHRyKTsKKwl9CiB9CiAKIC8qCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IDY0ZmJkNTJlMzQuLjk2NjJl MzE2YzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5j CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC05MDYsMTQg KzkwNiwxOCBAQCBsb2dpY2FsX3JlYWRfeGxvZ19wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqc3Rh dGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcQogCWludAkJCWNvdW50Owog CVdBTFJlYWRFcnJvciBlcnJpbmZvOwogCVhMb2dTZWdObwlzZWdubzsKLQlUaW1lTGluZUlE CWN1cnJUTEkgPSBHZXRXQUxJbnNlcnRpb25UaW1lTGluZSgpOworCVRpbWVMaW5lSUQJY3Vy clRMSTsKIAogCS8qCi0JICogU2luY2UgbG9naWNhbCBkZWNvZGluZyBpcyBvbmx5IHBlcm1p dHRlZCBvbiBhIHByaW1hcnkgc2VydmVyLCB3ZSBrbm93Ci0JICogdGhhdCB0aGUgY3VycmVu dCB0aW1lbGluZSBJRCBjYW4ndCBiZSBjaGFuZ2luZyBhbnkgbW9yZS4gSWYgd2UgZGlkIHRo aXMKLQkgKiBvbiBhIHN0YW5kYnksIHdlJ2QgaGF2ZSB0byB3b3JyeSBhYm91dCB0aGUgdmFs dWVzIHdlIGNvbXB1dGUgaGVyZQotCSAqIGJlY29taW5nIGludmFsaWQgZHVlIHRvIGEgcHJv bW90aW9uIG9yIHRpbWVsaW5lIGNoYW5nZS4KKwkgKiBTaW5jZSBsb2dpY2FsIGRlY29kaW5n IGlzIGFsc28gcGVybWl0dGVkIG9uIGEgc3RhbmRieSBzZXJ2ZXIsIHdlIG5lZWQKKwkgKiB0 byBjaGVjayBpZiB0aGUgc2VydmVyIGlzIGluIHJlY292ZXJ5IHRvIGRlY2lkZSBob3cgdG8g Z2V0IHRoZSBjdXJyZW50CisJICogdGltZWxpbmUgSUQgKHNvIHRoYXQgaXQgYWxzbyBjb3Zl ciB0aGUgcHJvbW90aW9uIG9yIHRpbWVsaW5lIGNoYW5nZSBjYXNlcykuCiAJICovCisJaWYg KCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKKwkJY3VyclRMSSA9IEdldFdBTEluc2VydGlvblRp bWVMaW5lKCk7CisJZWxzZQorCQlHZXRYTG9nUmVwbGF5UmVjUHRyKCZjdXJyVExJKTsKKwog CVhMb2dSZWFkRGV0ZXJtaW5lVGltZWxpbmUoc3RhdGUsIHRhcmdldFBhZ2VQdHIsIHJlcUxl biwgY3VyclRMSSk7CiAJc2VuZFRpbWVMaW5lSXNIaXN0b3JpYyA9IChzdGF0ZS0+Y3VyclRM SSAhPSBjdXJyVExJKTsKIAlzZW5kVGltZUxpbmUgPSBzdGF0ZS0+Y3VyclRMSTsKQEAgLTMw NzQsMTAgKzMwNzgsMTIgQEAgWExvZ1NlbmRMb2dpY2FsKHZvaWQpCiAJICogSWYgZmlyc3Qg dGltZSB0aHJvdWdoIGluIHRoaXMgc2Vzc2lvbiwgaW5pdGlhbGl6ZSBmbHVzaFB0ci4gIE90 aGVyd2lzZSwKIAkgKiB3ZSBvbmx5IG5lZWQgdG8gdXBkYXRlIGZsdXNoUHRyIGlmIEVuZFJl Y1B0ciBpcyBwYXN0IGl0LgogCSAqLwotCWlmIChmbHVzaFB0ciA9PSBJbnZhbGlkWExvZ1Jl Y1B0cikKLQkJZmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cihOVUxMKTsKLQllbHNlIGlmIChs b2dpY2FsX2RlY29kaW5nX2N0eC0+cmVhZGVyLT5FbmRSZWNQdHIgPj0gZmx1c2hQdHIpCi0J CWZsdXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIoTlVMTCk7CisJaWYgKGZsdXNoUHRyID09IElu dmFsaWRYTG9nUmVjUHRyIHx8CisJCWxvZ2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVu ZFJlY1B0ciA+PSBmbHVzaFB0cikKKwl7CisJCWZsdXNoUHRyID0gKGFtX2Nhc2NhZGluZ193 YWxzZW5kZXIgPworCQkJCQlHZXRTdGFuZGJ5Rmx1c2hSZWNQdHIoTlVMTCkgOiBHZXRGbHVz aFJlY1B0cihOVUxMKSk7CisJfQogCiAJLyogSWYgRW5kUmVjUHRyIGlzIHN0aWxsIHBhc3Qg b3VyIGZsdXNoUHRyLCBpdCBtZWFucyB3ZSBjYXVnaHQgdXAuICovCiAJaWYgKGxvZ2ljYWxf ZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+PSBmbHVzaFB0cikKQEAgLTMxNjgs NyArMzE3NCw4IEBAIEdldFN0YW5kYnlGbHVzaFJlY1B0cihUaW1lTGluZUlEICp0bGkpCiAJ cmVjZWl2ZVB0ciA9IEdldFdhbFJjdkZsdXNoUmVjUHRyKE5VTEwsICZyZWNlaXZlVExJKTsK IAlyZXBsYXlQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKCZyZXBsYXlUTEkpOwogCi0JKnRs aSA9IHJlcGxheVRMSTsKKwlpZiAodGxpKQorCQkqdGxpID0gcmVwbGF5VExJOwogCiAJcmVz dWx0ID0gcmVwbGF5UHRyOwogCWlmIChyZWNlaXZlVExJID09IHJlcGxheVRMSSAmJiByZWNl aXZlUHRyID4gcmVwbGF5UHRyKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hs b2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKaW5kZXggMWZiZDQ4ZmJkYS4uMDI3 ZTE1NWU4ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC0yMzAsNiArMjMwLDcgQEAgZXh0ZXJuIHZv aWQgWExPR1NobWVtSW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIEJvb3RTdHJhcFhMT0codm9p ZCk7CiBleHRlcm4gdm9pZCBJbml0aWFsaXplV2FsQ29uc2lzdGVuY3lDaGVja2luZyh2b2lk KTsKIGV4dGVybiB2b2lkIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpOwor ZXh0ZXJuIFdhbExldmVsIEdldEFjdGl2ZVdhbExldmVsT25TdGFuZGJ5KHZvaWQpOwogZXh0 ZXJuIHZvaWQgU3RhcnR1cFhMT0codm9pZCk7CiBleHRlcm4gdm9pZCBTaHV0ZG93blhMT0co aW50IGNvZGUsIERhdHVtIGFyZyk7CiBleHRlcm4gdm9pZCBDcmVhdGVDaGVja1BvaW50KGlu dCBmbGFncyk7Ci0tIAoyLjM0LjEKCg== --------------r9KIatASOpVniPvrBi6hlPOw Content-Type: text/plain; charset=UTF-8; name="v32-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Disposition: attachment; filename="v32-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSAwOTY4ODg1OTA1NjNmM2Q1NjdkMDk5OWMzYjZjMWYyMDYxZjdjNzFkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogRnJpLCAxNiBEZWMgMjAyMiAwOTozNDozOCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMyIDIvNl0gSGFuZGxlIGxvZ2ljYWwgc2xvdCBjb25mbGljdHMgb24gc3RhbmRieS4K CkR1cmluZyBXQUwgcmVwbGF5IG9uIHN0YW5kYnksIHdoZW4gc2xvdCBjb25mbGljdCBpcyBp ZGVudGlmaWVkLAppbnZhbGlkYXRlIHN1Y2ggc2xvdHMuIEFsc28gZG8gdGhlIHNhbWUgdGhp bmcgaWYgd2FsX2xldmVsIG9uIG1hc3RlcgppcyByZWR1Y2VkIHRvIGJlbG93IGxvZ2ljYWwg YW5kIHRoZXJlIGFyZSBleGlzdGluZyBsb2dpY2FsIHNsb3RzCm9uIHN0YW5kYnkuIEludHJv ZHVjZSBhIG5ldyBQcm9jU2lnbmFsUmVhc29uIHZhbHVlIGZvciBzbG90CmNvbmZsaWN0IHJl Y292ZXJ5LiBBcnJhbmdlIGZvciBhIG5ldyBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBm aWVsZDoKY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90LgoKQXV0aG9yOiBBbmRyZXMgRnJldW5k IChpbiBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2 b3QKUmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVy dCBIYWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxsbwotLS0KIGRvYy9zcmMvc2dtbC9tb25p dG9yaW5nLnNnbWwgICAgICAgICAgICAgICAgICB8ICAxMSArCiBzcmMvYmFja2VuZC9hY2Nl c3MvZ2lzdC9naXN0eGxvZy5jICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaF94bG9nLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHhsb2cuYyAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQv YWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICAgICAgICB8ICAxMyArKwogc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgICAzICstCiAuLi4vcmVw bGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYyAgICAgICAgfCAgIDcgKy0KIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyAgICAgICAgICAgICAgICB8IDIwOSArKysrKysr KysrKysrKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAg ICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyAgICAg ICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jICAg ICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAg ICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAg ICAgICAgICAgIHwgIDIyICsrCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRf ZGF0YWJhc2UuYyAgfCAgIDQgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNz LmMgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQg ICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9wZ3N0YXQuaCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5o ICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25h bC5oICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnku aCAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQgICAgICAgICAgIHwgICAzICstCiAyMyBmaWxlcyBjaGFuZ2VkLCAzMTggaW5z ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKICAgMy44JSBkb2Mvc3JjL3NnbWwvCiAgIDUu MiUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgIDQuMiUgc3JjL2JhY2tlbmQvYWNj ZXNzLwogICAzLjglIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvCiAgNTcuOCUg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDcuMSUgc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvCiAgIDcuOCUgc3JjL2JhY2tlbmQvdGNvcC8KICAgMy4zJSBzcmMvYmFja2VuZC8KICAg NS44JSBzcmMvaW5jbHVkZS8KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAppbmRleCAxMWE4ZWJlNWVj Li4xOWI1MDk2MGVjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTQzMTcsNiArNDMxNywx NyBAQCBTRUxFQ1QgcGlkLCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQgRlJPTSBwZ19z dGF0X2FjdGl2aXR5IFdIRVJFIHdhaXRfZXZlbnQgaQogICAgICAgIGRlYWRsb2NrcwogICAg ICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jb25mbF9hY3RpdmVfbG9naWNhbHNs b3Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBOdW1iZXIgb2YgYWN0aXZlIGxvZ2ljYWwgc2xvdHMgaW4g dGhpcyBkYXRhYmFzZSB0aGF0IGhhdmUgYmVlbgorICAgICAgIGludmFsaWRhdGVkIGJlY2F1 c2UgdGhleSBjb25mbGljdCB3aXRoIHJlY292ZXJ5IChub3RlIHRoYXQgaW5hY3RpdmUgb25l cworICAgICAgIGFyZSBhbHNvIGludmFsaWRhdGVkIGJ1dCBkbyBub3QgaW5jcmVtZW50IHRo aXMgY291bnRlcikKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8 L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdHhsb2cuYwppbmRleCBkMDJkZjlkYTVjLi40OWI4OTAzNTA0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTE5Niw2ICsxOTYsNyBAQCBnaXN0UmVkb0RlbGV0 ZVJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJWExvZ1JlY0dldEJsb2NrVGFn KHJlY29yZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAogCQlSZXNvbHZlUmVjb3Zl cnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9u LAorCQkJCQkJCQkJCQl4bGRhdGEtPm1heUNvbmZsaWN0SW5Mb2dpY2FsRGVjb2RpbmcsCiAJ CQkJCQkJCQkJCXJsb2NhdG9yKTsKIAl9CiAKQEAgLTM5Niw2ICszOTcsNyBAQCBnaXN0UmVk b1BhZ2VSZXVzZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkgKi8KIAlpZiAoSW5Ib3RT dGFuZGJ5KQogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdEZ1bGxYaWQo eGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQkJICAgeGxyZWMt Pm1heUNvbmZsaWN0SW5Mb2dpY2FsRGVjb2RpbmcsCiAJCQkJCQkJCQkJCQkgICB4bHJlYy0+ bG9jYXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hh c2hfeGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKaW5kZXgg YjQ1MjY5N2EyZi4uYzZhNGE5OTBjYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hhc2gvaGFzaF94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94 bG9nLmMKQEAgLTEwMDEsNiArMTAwMSw3IEBAIGhhc2hfeGxvZ192YWN1dW1fb25lX3BhZ2Uo WExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29y ZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoU25hcHNob3QoeGxkYXRhLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJ CQkJCQkJeGxkYXRhLT5tYXlDb25mbGljdEluTG9naWNhbERlY29kaW5nLAogCQkJCQkJCQkJ CQlybG9jYXRvcik7CiAJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IDU1 ZmNiMTFjMzMuLjU4Y2YyODdlZjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBA IC04Njk0LDYgKzg2OTQsNyBAQCBoZWFwX3hsb2dfcHJ1bmUoWExvZ1JlYWRlclN0YXRlICpy ZWNvcmQpCiAJICovCiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJ CQkJCQkJCQl4bHJlYy0+bWF5Q29uZmxpY3RJbkxvZ2ljYWxEZWNvZGluZywKIAkJCQkJCQkJ CQkJcmxvY2F0b3IpOwogCiAJLyoKQEAgLTg4NjMsNiArODg2NCw3IEBAIGhlYXBfeGxvZ192 aXNpYmxlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCSAqLwogCWlmIChJbkhvdFN0YW5k YnkpCiAJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5zbmFw c2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJeGxyZWMtPmZsYWdzICYgVklTSUJJ TElUWU1BUF9PTl9DQVRBTE9HX0FDQ0VTU0lCTEVfSU5fTE9HSUNBTF9ERUNPRElORywKIAkJ CQkJCQkJCQkJcmxvY2F0b3IpOwogCiAJLyoKQEAgLTkxMTgsNiArOTEyMCw3IEBAIGhlYXBf eGxvZ19mcmVlemVfcGFnZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQlYTG9nUmVj R2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmcmxvY2F0b3IsIE5VTEwsIE5VTEwpOwogCQlSZXNv bHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNob3RDb25mbGlj dEhvcml6b24sCisJCQkJCQkJCQkJCXhscmVjLT5tYXlDb25mbGljdEluTG9naWNhbERlY29k aW5nLAogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRy ZWUvbmJ0eGxvZy5jCmluZGV4IDNlMzExYTk4YTYuLmU5ODUyNWJmY2UgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCkBAIC02NjksNiArNjY5LDcgQEAgYnRyZWVfeGxv Z19kZWxldGUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCVhMb2dSZWNHZXRCbG9ja1Rh ZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVMTCwgTlVMTCk7CiAKIAkJUmVzb2x2ZVJlY292 ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9u LAorCQkJCQkJCQkJCQl4bHJlYy0+bWF5Q29uZmxpY3RJbkxvZ2ljYWxEZWNvZGluZywKIAkJ CQkJCQkJCQkJcmxvY2F0b3IpOwogCX0KIApAQCAtMTAwNyw2ICsxMDA4LDcgQEAgYnRyZWVf eGxvZ19yZXVzZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJaWYgKEluSG90 U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3RGdWxsWGlk KHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJCSAgIHhscmVj LT5tYXlDb25mbGljdEluTG9naWNhbERlY29kaW5nLAogCQkJCQkJCQkJCQkJICAgeGxyZWMt PmxvY2F0b3IpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0 L3NwZ3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BneGxvZy5jCmluZGV4 IDQ0YWRjMjA5OGYuLmE4NWYzMGE1MTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9zcGdpc3Qvc3BneGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3Bn eGxvZy5jCkBAIC04NzksNiArODc5LDcgQEAgc3BnUmVkb1ZhY3V1bVJlZGlyZWN0KFhMb2dS ZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAs ICZsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRo U25hcHNob3QoeGxkYXRhLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJ eGxkYXRhLT5tYXlDb25mbGljdEluTG9naWNhbERlY29kaW5nLAogCQkJCQkJCQkJCQlsb2Nh dG9yKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hs b2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCA5MTQ3M2Iw MGQ5Li5mY2E2ZWU0NTg0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC03 OTU4LDYgKzc5NTgsMTkgQEAgeGxvZ19yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQog CQkvKiBVcGRhdGUgb3VyIGNvcHkgb2YgdGhlIHBhcmFtZXRlcnMgaW4gcGdfY29udHJvbCAq LwogCQltZW1jcHkoJnhscmVjLCBYTG9nUmVjR2V0RGF0YShyZWNvcmQpLCBzaXplb2YoeGxf cGFyYW1ldGVyX2NoYW5nZSkpOwogCisJCS8qCisJCSAqIEludmFsaWRhdGUgbG9naWNhbCBz bG90cyBpZiB3ZSBhcmUgaW4gaG90IHN0YW5kYnkgYW5kIHRoZSBwcmltYXJ5IGRvZXMgbm90 CisJCSAqIGhhdmUgYSBXQUwgbGV2ZWwgc3VmZmljaWVudCBmb3IgbG9naWNhbCBkZWNvZGlu Zy4gTm8gbmVlZCB0byBzZWFyY2gKKwkJICogZm9yIHBvdGVudGlhbGx5IGNvbmZsaWN0aW5n IGxvZ2ljYWxseSBzbG90cyBpZiBzdGFuZGJ5IGlzIHJ1bm5pbmcKKwkJICogd2l0aCB3YWxf bGV2ZWwgbG93ZXIgdGhhbiBsb2dpY2FsLCBiZWNhdXNlIGluIHRoYXQgY2FzZSwgd2Ugd291 bGQKKwkJICogaGF2ZSBlaXRoZXIgZGlzYWxsb3dlZCBjcmVhdGlvbiBvZiBsb2dpY2FsIHNs b3RzIG9yIGludmFsaWRhdGVkIGV4aXN0aW5nCisJCSAqIG9uZXMuCisJCSAqLworCQlpZiAo SW5SZWNvdmVyeSAmJiBJbkhvdFN0YW5kYnkgJiYKKwkJCXhscmVjLndhbF9sZXZlbCA8IFdB TF9MRVZFTF9MT0dJQ0FMICYmCisJCQl3YWxfbGV2ZWwgPj0gV0FMX0xFVkVMX0xPR0lDQUwp CisJCQlJbnZhbGlkYXRlQ29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90cyhJbnZh bGlkT2lkLEludmFsaWRUcmFuc2FjdGlvbklkKTsKKwogCQlMV0xvY2tBY3F1aXJlKENvbnRy b2xGaWxlTG9jaywgTFdfRVhDTFVTSVZFKTsKIAkJQ29udHJvbEZpbGUtPk1heENvbm5lY3Rp b25zID0geGxyZWMuTWF4Q29ubmVjdGlvbnM7CiAJCUNvbnRyb2xGaWxlLT5tYXhfd29ya2Vy X3Byb2Nlc3NlcyA9IHhscmVjLm1heF93b3JrZXJfcHJvY2Vzc2VzOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDJkODEwNGIwOTAuLjBlMGI4ZWY0MTUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTEwNjUsNyArMTA2NSw4 IEBAIENSRUFURSBWSUVXIHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzIEFTCiAgICAgICAg ICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2NrKEQub2lkKSBBUyBjb25mbF9sb2Nr LAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QoRC5vaWQp IEFTIGNvbmZsX3NuYXBzaG90LAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxp Y3RfYnVmZmVycGluKEQub2lkKSBBUyBjb25mbF9idWZmZXJwaW4sCi0gICAgICAgICAgICBw Z19zdGF0X2dldF9kYl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKEQub2lkKSBBUyBjb25m bF9kZWFkbG9jaworICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1 cF9kZWFkbG9jayhELm9pZCkgQVMgY29uZmxfZGVhZGxvY2ssCisgICAgICAgICAgICBwZ19z dGF0X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdChELm9pZCkgQVMgY29uZmxfYWN0aXZl X2xvZ2ljYWxzbG90CiAgICAgRlJPTSBwZ19kYXRhYmFzZSBEOwogCiBDUkVBVEUgVklFVyBw Z19zdGF0X3VzZXJfZnVuY3Rpb25zIEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYwppbmRleCA1YzIzMTc4NTcwLi44NDMyZGUyMTli IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxm dW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1 bmNzLmMKQEAgLTIxNiwxMSArMjE2LDE0IEBAIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdl c19ndXRzKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29sIGNvbmZpcm0sIGJvb2wgYmlu CiAKIAkJLyoKIAkJICogQWZ0ZXIgdGhlIHNhbml0eSBjaGVja3MgaW4gQ3JlYXRlRGVjb2Rp bmdDb250ZXh0LCBtYWtlIHN1cmUgdGhlCi0JCSAqIHJlc3RhcnRfbHNuIGlzIHZhbGlkLiAg QXZvaWQgImNhbm5vdCBnZXQgY2hhbmdlcyIgd29yZGluZyBpbiB0aGlzCisJCSAqIHJlc3Rh cnRfbHNuIGlzIHZhbGlkIG9yIGJvdGggeG1pbiBhbmQgY2F0YWxvZ194bWluIGFyZSB2YWxp ZC4KKwkJICogQXZvaWQgImNhbm5vdCBnZXQgY2hhbmdlcyIgd29yZGluZyBpbiB0aGlzCiAJ CSAqIGVycm1zZyBiZWNhdXNlIHRoYXQnZCBiZSBjb25mdXNpbmdseSBhbWJpZ3VvdXMgYWJv dXQgbm8gY2hhbmdlcwogCQkgKiBiZWluZyBhdmFpbGFibGUuCiAJCSAqLwotCQlpZiAoWExv Z1JlY1B0cklzSW52YWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikp CisJCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJl c3RhcnRfbHNuKQorCQkJfHwgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9u U2xvdC0+ZGF0YS54bWluKQorCQkJCSYmICFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxp Y2F0aW9uU2xvdC0+ZGF0YS5jYXRhbG9nX3htaW4pKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUp LAogCQkJCQkgZXJybXNnKCJjYW4gbm8gbG9uZ2VyIGdldCBjaGFuZ2VzIGZyb20gcmVwbGlj YXRpb24gc2xvdCBcIiVzXCIiLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vc2xvdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IDg5OWFj ZmQ5MTIuLjZhNGUyY2QxOWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Nsb3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTE0MzIs NiArMTQzMiwyMTUgQEAgcmVzdGFydDoKIAlyZXR1cm4gaW52YWxpZGF0ZWQ7CiB9CiAKKy8q CisgKiBIZWxwZXIgZm9yIEludmFsaWRhdGVDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlv blNsb3QgLS0gYWNxdWlyZXMgdGhlIGdpdmVuIHNsb3QKKyAqIGFuZCBtYXJrIGl0IGludmFs aWQsIGlmIG5lY2Vzc2FyeSBhbmQgcG9zc2libGUuCisgKgorICogUmV0dXJucyB3aGV0aGVy IFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrIHdhcyByZWxlYXNlZCBpbiB0aGUgaW50ZXJp bSAoYW5kCisgKiBpbiB0aGF0IGNhc2Ugd2UncmUgbm90IGhvbGRpbmcgdGhlIGxvY2sgYXQg cmV0dXJuLCBvdGhlcndpc2Ugd2UgYXJlKS4KKyAqCisgKiBUaGlzIGlzIGluaGVyZW50bHkg cmFjeSwgYmVjYXVzZSB3ZSByZWxlYXNlIHRoZSBMV0xvY2sKKyAqIGZvciBzeXNjYWxscywg c28gY2FsbGVyIG11c3QgcmVzdGFydCBpZiB3ZSByZXR1cm4gdHJ1ZS4KKyAqLworc3RhdGlj IGJvb2wKK0ludmFsaWRhdGVQb3NzaWJseUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9u U2xvdChSZXBsaWNhdGlvblNsb3QgKnMsIFRyYW5zYWN0aW9uSWQgeGlkKQoreworCWludAkJ bGFzdF9zaWduYWxlZF9waWQgPSAwOworCWJvb2wJcmVsZWFzZWRfbG9jayA9IGZhbHNlOwor CisJZm9yICg7OykKKwl7CisJCVRyYW5zYWN0aW9uSWQgc2xvdF94bWluOworCQlUcmFuc2Fj dGlvbklkIHNsb3RfY2F0YWxvZ194bWluOworCQlOYW1lRGF0YQlzbG90bmFtZTsKKwkJaW50 CQkJYWN0aXZlX3BpZCA9IDA7CisKKwkJQXNzZXJ0KExXTG9ja0hlbGRCeU1lSW5Nb2RlKFJl cGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrLCBMV19TSEFSRUQpKTsKKworCQlpZiAoIXMtPmlu X3VzZSkKKwkJeworCQkJaWYgKHJlbGVhc2VkX2xvY2spCisJCQkJTFdMb2NrUmVsZWFzZShS ZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7CisJCQlicmVhazsKKwkJfQorCisJCS8qCisJ CSAqIENoZWNrIGlmIHRoZSBzbG90IG5lZWRzIHRvIGJlIGludmFsaWRhdGVkLiBJZiBpdCBu ZWVkcyB0byBiZQorCQkgKiBpbnZhbGlkYXRlZCwgYW5kIGlzIG5vdCBjdXJyZW50bHkgYWNx dWlyZWQsIGFjcXVpcmUgaXQgYW5kIG1hcmsgaXQKKwkJICogYXMgaGF2aW5nIGJlZW4gaW52 YWxpZGF0ZWQuIFdlIGRvIHRoaXMgd2l0aCB0aGUgc3BpbmxvY2sgaGVsZCB0bworCQkgKiBh dm9pZCByYWNlIGNvbmRpdGlvbnMgLS0gZm9yIGV4YW1wbGUgdGhlIHhtaW4ocykgY291bGQg bW92ZSBmb3J3YXJkCisJCSAqICwgb3IgdGhlIHNsb3QgY291bGQgYmUgZHJvcHBlZC4KKwkJ ICovCisJCVNwaW5Mb2NrQWNxdWlyZSgmcy0+bXV0ZXgpOworCisJCXNsb3RfeG1pbiA9IHMt PmRhdGEueG1pbjsKKwkJc2xvdF9jYXRhbG9nX3htaW4gPSBzLT5kYXRhLmNhdGFsb2dfeG1p bjsKKworCQkvKgorCQkgKiBJZiB0aGUgc2xvdCBpcyBhbHJlYWR5IGludmFsaWQgb3IgaXMg bm90IGNvbmZsaWN0aW5nLCB3ZSBkb24ndCBuZWVkIHRvCisJCSAqIGRvIGFueXRoaW5nLgor CQkgKi8KKworCQkvKiBzbG90IGhhcyBiZWVuIGludmFsaWRhdGVkICovCisJCWlmICgoIVRy YW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfeG1pbikgJiYgIVRyYW5zYWN0aW9uSWRJc1ZhbGlk KHNsb3RfY2F0YWxvZ194bWluKSkKKwkJCXx8CisJCS8qCisJCSAqIHdlIGFyZSBub3QgZm9y Y2luZyBmb3IgaW52YWxpZGF0aW9uIGJlY2F1c2UgdGhlIHhpZCBpcyB2YWxpZAorCQkgKiBh bmQgdGhpcyBpcyBhIG5vbiBjb25mbGljdGluZyBzbG90CisJCSAqLworCQkJKFRyYW5zYWN0 aW9uSWRJc1ZhbGlkKHhpZCkgJiYgISgKKwkJCQkoVHJhbnNhY3Rpb25JZElzVmFsaWQoc2xv dF94bWluKSAmJiBUcmFuc2FjdGlvbklkUHJlY2VkZXNPckVxdWFscyhzbG90X3htaW4sIHhp ZCkpCisJCQkJfHwKKwkJCQkoVHJhbnNhY3Rpb25JZElzVmFsaWQoc2xvdF9jYXRhbG9nX3ht aW4pICYmIFRyYW5zYWN0aW9uSWRQcmVjZWRlc09yRXF1YWxzKHNsb3RfY2F0YWxvZ194bWlu LCB4aWQpKQorCQkJCSkpCisJCQkpCisJCXsKKwkJCVNwaW5Mb2NrUmVsZWFzZSgmcy0+bXV0 ZXgpOworCQkJaWYgKHJlbGVhc2VkX2xvY2spCisJCQkJTFdMb2NrUmVsZWFzZShSZXBsaWNh dGlvblNsb3RDb250cm9sTG9jayk7CisJCQlicmVhazsKKwkJfQorCisJCXNsb3RuYW1lID0g cy0+ZGF0YS5uYW1lOworCQlhY3RpdmVfcGlkID0gcy0+YWN0aXZlX3BpZDsKKworCQkvKgor CQkgKiBJZiB0aGUgc2xvdCBjYW4gYmUgYWNxdWlyZWQsIGRvIHNvIGFuZCBtYXJrIGl0IGlu dmFsaWRhdGVkCisJCSAqIGltbWVkaWF0ZWx5LiAgT3RoZXJ3aXNlIHdlJ2xsIHNpZ25hbCB0 aGUgb3duaW5nIHByb2Nlc3MsIGJlbG93LCBhbmQKKwkJICogcmV0cnkuCisJCSAqLworCQlp ZiAoYWN0aXZlX3BpZCA9PSAwKQorCQl7CisJCQlNeVJlcGxpY2F0aW9uU2xvdCA9IHM7CisJ CQlzLT5hY3RpdmVfcGlkID0gTXlQcm9jUGlkOworCQkJcy0+ZGF0YS54bWluID0gSW52YWxp ZFRyYW5zYWN0aW9uSWQ7CisJCQlzLT5kYXRhLmNhdGFsb2dfeG1pbiA9IEludmFsaWRUcmFu c2FjdGlvbklkOworCQl9CisKKwkJU3BpbkxvY2tSZWxlYXNlKCZzLT5tdXRleCk7CisKKwkJ aWYgKGFjdGl2ZV9waWQgIT0gMCkKKwkJeworCQkJLyoKKwkJCSAqIFByZXBhcmUgdGhlIHNs ZWVwIG9uIHRoZSBzbG90J3MgY29uZGl0aW9uIHZhcmlhYmxlIGJlZm9yZQorCQkJICogcmVs ZWFzaW5nIHRoZSBsb2NrLCB0byBjbG9zZSBhIHBvc3NpYmxlIHJhY2UgY29uZGl0aW9uIGlm IHRoZQorCQkJICogc2xvdCBpcyByZWxlYXNlZCBiZWZvcmUgdGhlIHNsZWVwIGJlbG93Lgor CQkJICovCisKKwkJCUNvbmRpdGlvblZhcmlhYmxlUHJlcGFyZVRvU2xlZXAoJnMtPmFjdGl2 ZV9jdik7CisKKwkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2sp OworCQkJcmVsZWFzZWRfbG9jayA9IHRydWU7CisKKwkJCS8qCisJCQkgKiBTaWduYWwgdG8g dGVybWluYXRlIHRoZSBwcm9jZXNzIHRoYXQgb3ducyB0aGUgc2xvdCwgaWYgd2UKKwkJCSAq IGhhdmVuJ3QgYWxyZWFkeSBzaWduYWxsZWQgaXQuICAoQXZvaWRhbmNlIG9mIHJlcGVhdGVk CisJCQkgKiBzaWduYWxsaW5nIGlzIHRoZSBvbmx5IHJlYXNvbiBmb3IgdGhlcmUgdG8gYmUg YSBsb29wIGluIHRoaXMKKwkJCSAqIHJvdXRpbmU7IG90aGVyd2lzZSB3ZSBjb3VsZCByZWx5 IG9uIGNhbGxlcidzIHJlc3RhcnQgbG9vcC4pCisJCQkgKgorCQkJICogVGhlcmUgaXMgdGhl IHJhY2UgY29uZGl0aW9uIHRoYXQgb3RoZXIgcHJvY2VzcyBtYXkgb3duIHRoZSBzbG90CisJ CQkgKiBhZnRlciBpdHMgY3VycmVudCBvd25lciBwcm9jZXNzIGlzIHRlcm1pbmF0ZWQgYW5k IGJlZm9yZSB0aGlzCisJCQkgKiBwcm9jZXNzIG93bnMgaXQuIFRvIGhhbmRsZSB0aGF0LCB3 ZSBzaWduYWwgb25seSBpZiB0aGUgUElEIG9mCisJCQkgKiB0aGUgb3duaW5nIHByb2Nlc3Mg aGFzIGNoYW5nZWQgZnJvbSB0aGUgcHJldmlvdXMgdGltZS4gKFRoaXMKKwkJCSAqIGxvZ2lj IGFzc3VtZXMgdGhhdCB0aGUgc2FtZSBQSUQgaXMgbm90IHJldXNlZCB2ZXJ5IHF1aWNrbHku KQorCQkJICovCisJCQlpZiAobGFzdF9zaWduYWxlZF9waWQgIT0gYWN0aXZlX3BpZCkKKwkJ CXsKKwkJCQllcmVwb3J0KExPRywKKwkJCQkJCShlcnJtc2coInRlcm1pbmF0aW5nIHByb2Nl c3MgJWQgYmVjYXVzZSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBjb25mbGljdHMgd2l0aCBy ZWNvdmVyeSIsCisJCQkJCQkJCWFjdGl2ZV9waWQsIE5hbWVTdHIoc2xvdG5hbWUpKSkpOwor CisJCQkJKHZvaWQpIFNlbmRQcm9jU2lnbmFsKGFjdGl2ZV9waWQsIFBST0NTSUdfUkVDT1ZF UllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QsIEludmFsaWRCYWNrZW5kSWQpOworCQkJCWxhc3Rf c2lnbmFsZWRfcGlkID0gYWN0aXZlX3BpZDsKKwkJCX0KKworCQkJLyogV2FpdCB1bnRpbCB0 aGUgc2xvdCBpcyByZWxlYXNlZC4gKi8KKwkJCUNvbmRpdGlvblZhcmlhYmxlU2xlZXAoJnMt PmFjdGl2ZV9jdiwKKwkJCQkJCQkJCVdBSVRfRVZFTlRfUkVQTElDQVRJT05fU0xPVF9EUk9Q KTsKKworCQkJLyoKKwkJCSAqIFJlLWFjcXVpcmUgbG9jayBhbmQgc3RhcnQgb3Zlcjsgd2Ug ZXhwZWN0IHRvIGludmFsaWRhdGUgdGhlCisJCQkgKiBzbG90IG5leHQgdGltZSAodW5sZXNz IGFub3RoZXIgcHJvY2VzcyBhY3F1aXJlcyB0aGUgc2xvdCBpbiB0aGUKKwkJCSAqIG1lYW50 aW1lKS4KKwkJCSAqLworCQkJTFdMb2NrQWNxdWlyZShSZXBsaWNhdGlvblNsb3RDb250cm9s TG9jaywgTFdfU0hBUkVEKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWVsc2UKKwkJeworCQkJ LyoKKwkJCSAqIFdlIGhvbGQgdGhlIHNsb3Qgbm93IGFuZCBoYXZlIGFscmVhZHkgaW52YWxp ZGF0ZWQgaXQ7IGZsdXNoIGl0CisJCQkgKiB0byBlbnN1cmUgdGhhdCBzdGF0ZSBwZXJzaXN0 cy4KKwkJCSAqCisJCQkgKiBEb24ndCB3YW50IHRvIGhvbGQgUmVwbGljYXRpb25TbG90Q29u dHJvbExvY2sgYWNyb3NzIGZpbGUKKwkJCSAqIHN5c3RlbSBvcGVyYXRpb25zLCBzbyByZWxl YXNlIGl0IG5vdyBidXQgYmUgc3VyZSB0byB0ZWxsIGNhbGxlcgorCQkJICogdG8gcmVzdGFy dCBmcm9tIHNjcmF0Y2guCisJCQkgKi8KKwkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25T bG90Q29udHJvbExvY2spOworCQkJcmVsZWFzZWRfbG9jayA9IHRydWU7CisKKwkJCS8qIE1h a2Ugc3VyZSB0aGUgaW52YWxpZGF0ZWQgc3RhdGUgcGVyc2lzdHMgYWNyb3NzIHNlcnZlciBy ZXN0YXJ0ICovCisJCQlSZXBsaWNhdGlvblNsb3RNYXJrRGlydHkoKTsKKwkJCVJlcGxpY2F0 aW9uU2xvdFNhdmUoKTsKKwkJCVJlcGxpY2F0aW9uU2xvdFJlbGVhc2UoKTsKKwkJCXBnc3Rh dF9kcm9wX3JlcGxzbG90KHMpOworCisJCQllcmVwb3J0KExPRywKKwkJCQkJKGVycm1zZygi aW52YWxpZGF0aW5nIHNsb3QgXCIlc1wiIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggcmVj b3ZlcnkiLCBOYW1lU3RyKHNsb3RuYW1lKSkpKTsKKworCQkJLyogZG9uZSB3aXRoIHRoaXMg c2xvdCBmb3Igbm93ICovCisJCQlicmVhazsKKwkJfQorCX0KKworCUFzc2VydCghcmVsZWFz ZWRfbG9jayA9PSBMV0xvY2tIZWxkQnlNZUluTW9kZShSZXBsaWNhdGlvblNsb3RDb250cm9s TG9jaywgTFdfU0hBUkVEKSk7CisKKwlyZXR1cm4gcmVsZWFzZWRfbG9jazsKK30KKworLyoK KyAqIFJlc29sdmUgcmVjb3ZlcnkgY29uZmxpY3RzIHdpdGggbG9naWNhbCBzbG90cy4KKyAq CisgKiBXaGVuIHhpZCBpcyB2YWxpZCwgaXQgbWVhbnMgdGhhdCB3ZSBhcmUgYWJvdXQgdG8g cmVtb3ZlIHJvd3Mgb2xkZXIgdGhhbiB4aWQuCisgKiBUaGVyZWZvcmUgd2UgbmVlZCB0byBp bnZhbGlkYXRlIHNsb3RzIHRoYXQgZGVwZW5kIG9uIHNlZWluZyB0aG9zZSByb3dzLgorICog V2hlbiB4aWQgaXMgaW52YWxpZCwgaW52YWxpZGF0ZSBhbGwgbG9naWNhbCBzbG90cy4gVGhp cyBpcyByZXF1aXJlZCB3aGVuIHRoZQorICogbWFzdGVyIHdhbF9sZXZlbCBpcyBzZXQgYmFj ayB0byByZXBsaWNhLCBzbyBleGlzdGluZyBsb2dpY2FsIHNsb3RzIG5lZWQgdG8KKyAqIGJl IGludmFsaWRhdGVkLgorICovCit2b2lkCitJbnZhbGlkYXRlQ29uZmxpY3RpbmdMb2dpY2Fs UmVwbGljYXRpb25TbG90cyhPaWQgZGJvaWQsIFRyYW5zYWN0aW9uSWQgeGlkKQoreworCisJ QXNzZXJ0KG1heF9yZXBsaWNhdGlvbl9zbG90cyA+PSAwKTsKKworCWlmIChtYXhfcmVwbGlj YXRpb25fc2xvdHMgPT0gMCkKKwkJcmV0dXJuOworcmVzdGFydDoKKwlMV0xvY2tBY3F1aXJl KFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrLCBMV19TSEFSRUQpOworCWZvciAoaW50IGkg PSAwOyBpIDwgbWF4X3JlcGxpY2F0aW9uX3Nsb3RzOyBpKyspCisJeworCQlSZXBsaWNhdGlv blNsb3QgKnMgPSAmUmVwbGljYXRpb25TbG90Q3RsLT5yZXBsaWNhdGlvbl9zbG90c1tpXTsK KworCQlpZiAoIXMtPmluX3VzZSkKKwkJCWNvbnRpbnVlOworCisJCS8qIFdlIGFyZSBvbmx5 IGRlYWxpbmcgd2l0aCAqbG9naWNhbCogc2xvdCBjb25mbGljdHMuICovCisJCWlmICghU2xv dElzTG9naWNhbChzKSkKKwkJCWNvbnRpbnVlOworCisJCS8qIG5vdCBvdXIgZGF0YWJhc2Ug YW5kIHdlIGRvbid0IHdhbnQgYWxsIHRoZSBkYXRhYmFzZSwgc2tpcCAqLworCQlpZiAocy0+ ZGF0YS5kYXRhYmFzZSAhPSBkYm9pZCAmJiBUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQpKQor CQkJY29udGludWU7CisKKwkJaWYgKEludmFsaWRhdGVQb3NzaWJseUNvbmZsaWN0aW5nTG9n aWNhbFJlcGxpY2F0aW9uU2xvdChzLCB4aWQpKQorCQl7CisJCQkvKiBpZiB0aGUgbG9jayB3 YXMgcmVsZWFzZWQsIHdlIG5lZWQgdG8gcmVzdGFydCBmcm9tIHNjcmF0Y2ggKi8KKwkJCWdv dG8gcmVzdGFydDsKKwkJfQorCX0KKwlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENv bnRyb2xMb2NrKTsKK30KKwogLyoKICAqIEZsdXNoIGFsbCByZXBsaWNhdGlvbiBzbG90cyB0 byBkaXNrLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNl bmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggYzEx YmIzNzE2Zi4uNjRmYmQ1MmUzNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vd2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVy LmMKQEAgLTEyNTMsNiArMTI1MywxNCBAQCBTdGFydExvZ2ljYWxSZXBsaWNhdGlvbihTdGFy dFJlcGxpY2F0aW9uQ21kICpjbWQpCiAKIAlSZXBsaWNhdGlvblNsb3RBY3F1aXJlKGNtZC0+ c2xvdG5hbWUsIHRydWUpOwogCisJaWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxp Y2F0aW9uU2xvdC0+ZGF0YS54bWluKQorCQkgJiYgIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15 UmVwbGljYXRpb25TbG90LT5kYXRhLmNhdGFsb2dfeG1pbikpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFU RSksCisJCQkJIGVycm1zZygiY2Fubm90IHJlYWQgZnJvbSBsb2dpY2FsIHJlcGxpY2F0aW9u IHNsb3QgXCIlc1wiIiwKKwkJCQkJCWNtZC0+c2xvdG5hbWUpLAorCQkJCSBlcnJkZXRhaWwo IlRoaXMgc2xvdCBoYXMgYmVlbiBpbnZhbGlkYXRlZCBiZWNhdXNlIGl0IHdhcyBjb25mbGlj dGluZyB3aXRoIHJlY292ZXJ5LiIpKSk7CisKIAlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChN eVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikpCiAJCWVyZXBvcnQoRVJST1Is CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFU RSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyBi L3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCmluZGV4IDAxNzZmMzAyNzAu LmQ2OGI3NTJjOTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2Nh cnJheS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCkBAIC0z NDc3LDYgKzM0NzcsMTAgQEAgU2lnbmFsVmlydHVhbFRyYW5zYWN0aW9uKFZpcnR1YWxUcmFu c2FjdGlvbklkIHZ4aWQsIFByb2NTaWduYWxSZWFzb24gc2lnbW9kZSwKIAogCQlHRVRfVlhJ RF9GUk9NX1BHUFJPQyhwcm9jdnhpZCwgKnByb2MpOwogCisJCS8qCisJCSAqIE5vdGU6IHZ4 aWQubG9jYWxUcmFuc2FjdGlvbklkIGNhbiBiZSBpbnZhbGlkLCB3aGljaCBtZWFucyB0aGUK KwkJICogcmVxdWVzdCBpcyB0byBzaWduYWwgdGhlIHBpZCB0aGF0IGlzIG5vdCBydW5uaW5n IGEgdHJhbnNhY3Rpb24uCisJCSAqLwogCQlpZiAocHJvY3Z4aWQuYmFja2VuZElkID09IHZ4 aWQuYmFja2VuZElkICYmCiAJCQlwcm9jdnhpZC5sb2NhbFRyYW5zYWN0aW9uSWQgPT0gdnhp ZC5sb2NhbFRyYW5zYWN0aW9uSWQpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvaXBjL3Byb2NzaWduYWwuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2Nz aWduYWwuYwppbmRleCA3NzY3NjU3ZjI3Li4xYjNiZjk0M2MxIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKKysrIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvcHJvY3NpZ25hbC5jCkBAIC02NjksNiArNjY5LDkgQEAgcHJvY3NpZ25hbF9z aWd1c3IxX2hhbmRsZXIoU0lHTkFMX0FSR1MpCiAJaWYgKENoZWNrUHJvY1NpZ25hbChQUk9D U0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UKSkKIAkJUmVjb3ZlcnlDb25mbGljdElu dGVycnVwdChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UKTsKIAorCWlmIChD aGVja1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCkp CisJCVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9MT0dJQ0FMU0xPVCk7CisKIAlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NTSUdfUkVDT1ZF UllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSykpCiAJCVJlY292ZXJ5Q29uZmxpY3RJbnRl cnJ1cHQoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLKTsKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCmluZGV4IGY0MzIyOWRmZGEuLjM1OGZjN2Y2 MTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYworKysg Yi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKQEAgLTM1LDYgKzM1LDcgQEAK ICNpbmNsdWRlICJ1dGlscy9wc19zdGF0dXMuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lb3V0 LmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCisjaW5jbHVkZSAicmVwbGljYXRp b24vc2xvdC5oIgogCiAvKiBVc2VyLXNldHRhYmxlIEdVQyBwYXJhbWV0ZXJzICovCiBpbnQJ CQl2YWN1dW1fZGVmZXJfY2xlYW51cF9hZ2U7CkBAIC00NzUsNiArNDc2LDcgQEAgUmVzb2x2 ZVJlY292ZXJ5Q29uZmxpY3RXaXRoVmlydHVhbFhJRHMoVmlydHVhbFRyYW5zYWN0aW9uSWQg KndhaXRsaXN0LAogICovCiB2b2lkCiBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdChUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJ Ym9vbCBtYXlDb25mbGljdEluTG9naWNhbERlY29kaW5nLAogCQkJCQkJCQkJUmVsRmlsZUxv Y2F0b3IgbG9jYXRvcikKIHsKIAlWaXJ0dWFsVHJhbnNhY3Rpb25JZCAqYmFja2VuZHM7CkBA IC00OTksNiArNTAxLDkgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3Qo VHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKIAkJCQkJCQkJCQkgICBQ Uk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9ULAogCQkJCQkJCQkJCSAgIFdBSVRf RVZFTlRfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCiAJCQkJCQkJCQkJICAgdHJ1ZSk7 CisKKwlpZiAobWF5Q29uZmxpY3RJbkxvZ2ljYWxEZWNvZGluZykKKwkJSW52YWxpZGF0ZUNv bmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdHMobG9jYXRvci5kYk9pZCwgc25hcHNo b3RDb25mbGljdEhvcml6b24pOwogfQogCiAvKgpAQCAtNTA3LDYgKzUxMiw3IEBAIFJlc29s dmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgc25hcHNob3RD b25mbGljdEhvcml6b24sCiAgKi8KIHZvaWQKIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0 aFNuYXBzaG90RnVsbFhpZChGdWxsVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9y aXpvbiwKKwkJCQkJCQkJCQkgICBib29sIG1heUNvbmZsaWN0SW5Mb2dpY2FsRGVjb2Rpbmcs CiAJCQkJCQkJCQkJICAgUmVsRmlsZUxvY2F0b3IgbG9jYXRvcikKIHsKIAkvKgpAQCAtNTI1 LDcgKzUzMSw5IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90RnVsbFhp ZChGdWxsVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yCiAJCVRyYW5zYWN0aW9u SWQgdHJ1bmNhdGVkOwogCiAJCXRydW5jYXRlZCA9IFhpZEZyb21GdWxsVHJhbnNhY3Rpb25J ZChzbmFwc2hvdENvbmZsaWN0SG9yaXpvbik7Ci0JCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0 V2l0aFNuYXBzaG90KHRydW5jYXRlZCwgbG9jYXRvcik7CisJCVJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aFNuYXBzaG90KHRydW5jYXRlZCwKKwkJCQkJCQkJCQkJbWF5Q29uZmxpY3RJ bkxvZ2ljYWxEZWNvZGluZywKKwkJCQkJCQkJCQkJbG9jYXRvcik7CiAJfQogfQogCkBAIC0x NDg2LDYgKzE0OTQsOSBAQCBnZXRfcmVjb3ZlcnlfY29uZmxpY3RfZGVzYyhQcm9jU2lnbmFs UmVhc29uIHJlYXNvbikKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBT SE9UOgogCQkJcmVhc29uRGVzYyA9IF8oInJlY292ZXJ5IGNvbmZsaWN0IG9uIHNuYXBzaG90 Iik7CiAJCQlicmVhazsKKwkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lD QUxTTE9UOgorCQkJcmVhc29uRGVzYyA9IF8oInJlY292ZXJ5IGNvbmZsaWN0IG9uIHJlcGxp Y2F0aW9uIHNsb3QiKTsKKwkJCWJyZWFrOwogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09O RkxJQ1RfU1RBUlRVUF9ERUFETE9DSzoKIAkJCXJlYXNvbkRlc2MgPSBfKCJyZWNvdmVyeSBj b25mbGljdCBvbiBidWZmZXIgZGVhZGxvY2siKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jl cy5jCmluZGV4IDAxZDI2NGI1YWIuLjA1ZGE4M2JmNWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMK QEAgLTI0ODIsNiArMjQ4Miw5IEBAIGVycmRldGFpbF9yZWNvdmVyeV9jb25mbGljdCh2b2lk KQogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1Q6CiAJCQllcnJk ZXRhaWwoIlVzZXIgcXVlcnkgbWlnaHQgaGF2ZSBuZWVkZWQgdG8gc2VlIHJvdyB2ZXJzaW9u cyB0aGF0IG11c3QgYmUgcmVtb3ZlZC4iKTsKIAkJCWJyZWFrOworCQljYXNlIFBST0NTSUdf UkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQllcnJkZXRhaWwoIlVzZXIgd2Fz IHVzaW5nIHRoZSBsb2dpY2FsIHNsb3QgdGhhdCBtdXN0IGJlIGRyb3BwZWQuIik7CisJCQli cmVhazsKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBfREVBRExP Q0s6CiAJCQllcnJkZXRhaWwoIlVzZXIgdHJhbnNhY3Rpb24gY2F1c2VkIGJ1ZmZlciBkZWFk bG9jayB3aXRoIHJlY292ZXJ5LiIpOwogCQkJYnJlYWs7CkBAIC0zMDUxLDYgKzMwNTQsMjUg QEAgUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQcm9jU2lnbmFsUmVhc29uIHJlYXNvbikK IAkJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0NLOgogCQkJY2FzZSBQUk9D U0lHX1JFQ09WRVJZX0NPTkZMSUNUX1RBQkxFU1BBQ0U6CiAJCQljYXNlIFBST0NTSUdfUkVD T1ZFUllfQ09ORkxJQ1RfU05BUFNIT1Q6CisJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09O RkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQkJLyoKKwkJCQkgKiBGb3IgY29uZmxpY3RzIHRoYXQg cmVxdWlyZSBhIGxvZ2ljYWwgc2xvdCB0byBiZSBpbnZhbGlkYXRlZCwgdGhlCisJCQkJICog cmVxdWlyZW1lbnQgaXMgZm9yIHRoZSBzaWduYWwgcmVjZWl2ZXIgdG8gcmVsZWFzZSB0aGUg c2xvdCwKKwkJCQkgKiBzbyB0aGF0IGl0IGNvdWxkIGJlIGludmFsaWRhdGVkIGJ5IHRoZSBz aWduYWwgc2VuZGVyLiBTbyBmb3IKKwkJCQkgKiBub3JtYWwgYmFja2VuZHMsIHRoZSB0cmFu c2FjdGlvbiBzaG91bGQgYmUgYWJvcnRlZCwganVzdAorCQkJCSAqIGxpa2UgZm9yIG90aGVy IHJlY292ZXJ5IGNvbmZsaWN0cy4gQnV0IGlmIGl0J3Mgd2Fsc2VuZGVyIG9uCisJCQkJICog c3RhbmRieSwgdGhlbiBpdCBoYXMgdG8gYmUga2lsbGVkIHNvIGFzIHRvIHJlbGVhc2UgYW4K KwkJCQkgKiBhY3F1aXJlZCBsb2dpY2FsIHNsb3QuCisJCQkJICovCisJCQkJaWYgKGFtX2Nh c2NhZGluZ193YWxzZW5kZXIgJiYKKwkJCQkJcmVhc29uID09IFBST0NTSUdfUkVDT1ZFUllf Q09ORkxJQ1RfTE9HSUNBTFNMT1QgJiYKKwkJCQkJTXlSZXBsaWNhdGlvblNsb3QgJiYgU2xv dElzTG9naWNhbChNeVJlcGxpY2F0aW9uU2xvdCkpCisJCQkJeworCQkJCQlSZWNvdmVyeUNv bmZsaWN0UGVuZGluZyA9IHRydWU7CisJCQkJCVF1ZXJ5Q2FuY2VsUGVuZGluZyA9IHRydWU7 CisJCQkJCUludGVycnVwdFBlbmRpbmcgPSB0cnVlOworCQkJCQlicmVhazsKKwkJCQl9CiAK IAkJCQkvKgogCQkJCSAqIElmIHdlIGFyZW4ndCBpbiBhIHRyYW5zYWN0aW9uIGFueSBsb25n ZXIgdGhlbiBpZ25vcmUuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS9wZ3N0YXRfZGF0YWJhc2UuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3Rh dF9kYXRhYmFzZS5jCmluZGV4IDI5MDA4NmZjMjIuLjdhODkwOWQ4YjkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCkBAIC0xMDksNiAr MTA5LDkgQEAgcGdzdGF0X3JlcG9ydF9yZWNvdmVyeV9jb25mbGljdChpbnQgcmVhc29uKQog CQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfQlVGRkVSUElOOgogCQkJZGJlbnRy eS0+Y29uZmxpY3RfYnVmZmVycGluKys7CiAJCQlicmVhazsKKwkJY2FzZSBQUk9DU0lHX1JF Q09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJZGJlbnRyeS0+Y29uZmxpY3RfbG9n aWNhbHNsb3QrKzsKKwkJCWJyZWFrOwogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJ Q1RfU1RBUlRVUF9ERUFETE9DSzoKIAkJCWRiZW50cnktPmNvbmZsaWN0X3N0YXJ0dXBfZGVh ZGxvY2srKzsKIAkJCWJyZWFrOwpAQCAtMzg3LDYgKzM5MCw3IEBAIHBnc3RhdF9kYXRhYmFz ZV9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJ UEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3RfdGFibGVzcGFjZSk7CiAJUEdTVEFUX0FD Q1VNX0RCQ09VTlQoY29uZmxpY3RfbG9jayk7CiAJUEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29u ZmxpY3Rfc25hcHNob3QpOworCVBHU1RBVF9BQ0NVTV9EQkNPVU5UKGNvbmZsaWN0X2xvZ2lj YWxzbG90KTsKIAlQR1NUQVRfQUNDVU1fREJDT1VOVChjb25mbGljdF9idWZmZXJwaW4pOwog CVBHU1RBVF9BQ0NVTV9EQkNPVU5UKGNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2spOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IDA0YTVhOTkwMDIuLjk1MzUx YzkyN2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0xMDE3LDYg KzEwMTcsOCBAQCBQR19TVEFUX0dFVF9EQkVOVFJZX0lOVDY0KHhhY3RfY29tbWl0KQogLyog cGdfc3RhdF9nZXRfZGJfeGFjdF9yb2xsYmFjayAqLwogUEdfU1RBVF9HRVRfREJFTlRSWV9J TlQ2NCh4YWN0X3JvbGxiYWNrKQogCisvKiBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2dp Y2Fsc2xvdCAqLworUEdfU1RBVF9HRVRfREJFTlRSWV9JTlQ2NChjb25mbGljdF9sb2dpY2Fs c2xvdCkKIAogRGF0dW0KIHBnX3N0YXRfZ2V0X2RiX3N0YXRfcmVzZXRfdGltZShQR19GVU5D VElPTl9BUkdTKQpAQCAtMTA1MCw2ICsxMDUyLDcgQEAgcGdfc3RhdF9nZXRfZGJfY29uZmxp Y3RfYWxsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IChpbnQ2NCkgKGRiZW50cnkt PmNvbmZsaWN0X3RhYmxlc3BhY2UgKwogCQkJCQkJICBkYmVudHJ5LT5jb25mbGljdF9sb2Nr ICsKIAkJCQkJCSAgZGJlbnRyeS0+Y29uZmxpY3Rfc25hcHNob3QgKworCQkJCQkJICBkYmVu dHJ5LT5jb25mbGljdF9sb2dpY2Fsc2xvdCArCiAJCQkJCQkgIGRiZW50cnktPmNvbmZsaWN0 X2J1ZmZlcnBpbiArCiAJCQkJCQkgIGRiZW50cnktPmNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxv Y2spOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA3MTk1OTk2NDlhLi42Mjg0 Yzk3OTBjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0Cisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTU1MzksNiArNTUzOSwx MSBAQAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdCcs IHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBl ID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9PiAncGdfc3Rh dF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QnIH0sCit7IG9pZCA9PiAnOTkwMScsCisgIGRl c2NyID0+ICdzdGF0aXN0aWNzOiByZWNvdmVyeSBjb25mbGljdHMgaW4gZGF0YWJhc2UgY2F1 c2VkIGJ5IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCcsCisgIHByb25hbWUgPT4gJ3BnX3N0 YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAor ICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBl cyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2dp Y2Fsc2xvdCcgfSwKIHsgb2lkID0+ICczMDY4JywKICAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6 IHJlY292ZXJ5IGNvbmZsaWN0cyBpbiBkYXRhYmFzZSBjYXVzZWQgYnkgc2hhcmVkIGJ1ZmZl ciBwaW4nLAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9idWZmZXJw aW4nLCBwcm92b2xhdGlsZSA9PiAncycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0 YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4IGEzZGY4ZDI3YzMuLjdmZmNlODRk MDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNsdWRl L3Bnc3RhdC5oCkBAIC0yOTEsNiArMjkxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0 YXREQkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfdGFibGVzcGFjZTsKIAlQZ1N0 YXRfQ291bnRlciBjb25mbGljdF9sb2NrOwogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X3Nu YXBzaG90OworCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2xvZ2ljYWxzbG90OwogCVBnU3Rh dF9Db3VudGVyIGNvbmZsaWN0X2J1ZmZlcnBpbjsKIAlQZ1N0YXRfQ291bnRlciBjb25mbGlj dF9zdGFydHVwX2RlYWRsb2NrOwogCVBnU3RhdF9Db3VudGVyIHRlbXBfZmlsZXM7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmggYi9zcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9zbG90LmgKaW5kZXggNjVmMmM3NDIzOS4uMGVkMWQ4YWYyOCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCisrKyBiL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3Nsb3QuaApAQCAtMjE2LDYgKzIxNiw3IEBAIGV4dGVybiBYTG9nUmVj UHRyIFJlcGxpY2F0aW9uU2xvdHNDb21wdXRlTG9naWNhbFJlc3RhcnRMU04odm9pZCk7CiBl eHRlcm4gYm9vbCBSZXBsaWNhdGlvblNsb3RzQ291bnREQlNsb3RzKE9pZCBkYm9pZCwgaW50 ICpuc2xvdHMsIGludCAqbmFjdGl2ZSk7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3Rz RHJvcERCU2xvdHMoT2lkIGRib2lkKTsKIGV4dGVybiBib29sIEludmFsaWRhdGVPYnNvbGV0 ZVJlcGxpY2F0aW9uU2xvdHMoWExvZ1NlZ05vIG9sZGVzdFNlZ25vKTsKK2V4dGVybiB2b2lk IEludmFsaWRhdGVDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3RzKE9pZCBkYm9p ZCwgVHJhbnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJuIFJlcGxpY2F0aW9uU2xvdCAqU2VhcmNo TmFtZWRSZXBsaWNhdGlvblNsb3QoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBuZWVkX2xvY2sp OwogZXh0ZXJuIGludAlSZXBsaWNhdGlvblNsb3RJbmRleChSZXBsaWNhdGlvblNsb3QgKnNs b3QpOwogZXh0ZXJuIGJvb2wgUmVwbGljYXRpb25TbG90TmFtZShpbnQgaW5kZXgsIE5hbWUg bmFtZSk7CkBAIC0yMjcsNSArMjI4LDYgQEAgZXh0ZXJuIHZvaWQgQ2hlY2tQb2ludFJlcGxp Y2F0aW9uU2xvdHModm9pZCk7CiAKIGV4dGVybiB2b2lkIENoZWNrU2xvdFJlcXVpcmVtZW50 cyh2b2lkKTsKIGV4dGVybiB2b2lkIENoZWNrU2xvdFBlcm1pc3Npb25zKHZvaWQpOworZXh0 ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoTG9naWNhbFNsb3RzKE9pZCBk Ym9pZCwgVHJhbnNhY3Rpb25JZCB4aWQsIGNoYXIgKnJlYXNvbik7CiAKICNlbmRpZgkJCQkJ CQkvKiBTTE9UX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3Np Z25hbC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKaW5kZXggZWU2MzY5 MDBmMy4uNTYwOTZiZDNlMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9j c2lnbmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKQEAgLTQx LDYgKzQxLDcgQEAgdHlwZWRlZiBlbnVtCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9U QUJMRVNQQUNFLAogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9DSywKIAlQUk9DU0lH X1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9ULAorCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJ Q1RfTE9HSUNBTFNMT1QsCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9CVUZGRVJQSU4s CiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLLAogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaCBiL3NyYy9pbmNsdWRlL3N0 b3JhZ2Uvc3RhbmRieS5oCmluZGV4IGU0NmM5MzRjNTYuLmI0NmIwMTExNTQgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCisrKyBiL3NyYy9pbmNsdWRlL3N0 b3JhZ2Uvc3RhbmRieS5oCkBAIC0zMCw4ICszMCwxMCBAQCBleHRlcm4gdm9pZCBJbml0UmVj b3ZlcnlUcmFuc2FjdGlvbkVudmlyb25tZW50KHZvaWQpOwogZXh0ZXJuIHZvaWQgU2h1dGRv d25SZWNvdmVyeVRyYW5zYWN0aW9uRW52aXJvbm1lbnQodm9pZCk7CiAKIGV4dGVybiB2b2lk IFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgc25h cHNob3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCQlib29sIG1heUNvbmZsaWN0SW5M b2dpY2FsRGVjb2RpbmcsCiAJCQkJCQkJCQkJCQlSZWxGaWxlTG9jYXRvciBsb2NhdG9yKTsK IGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90RnVsbFhp ZChGdWxsVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJ CQkJCQkgICBib29sIG1heUNvbmZsaWN0SW5Mb2dpY2FsRGVjb2RpbmcsCiAJCQkJCQkJCQkJ CQkJICAgUmVsRmlsZUxvY2F0b3IgbG9jYXRvcik7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhUYWJsZXNwYWNlKE9pZCB0c2lkKTsKIGV4dGVybiB2b2lkIFJl c29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aERhdGFiYXNlKE9pZCBkYmlkKTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggZmI5ZjkzNmQ0My4uMWNjNjJjNDQ3ZCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE4NjgsNyArMTg2OCw4 IEBAIHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzfCBTRUxFQ1QgZC5vaWQgQVMgZGF0aWQs CiAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9jayhkLm9pZCkgQVMgY29uZmxfbG9j aywKICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdChkLm9pZCkgQVMgY29u Zmxfc25hcHNob3QsCiAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKGQu b2lkKSBBUyBjb25mbF9idWZmZXJwaW4sCi0gICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rf c3RhcnR1cF9kZWFkbG9jayhkLm9pZCkgQVMgY29uZmxfZGVhZGxvY2sKKyAgICBwZ19zdGF0 X2dldF9kYl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKGQub2lkKSBBUyBjb25mbF9kZWFk bG9jaywKKyAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdChkLm9pZCkg QVMgY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90CiAgICBGUk9NIHBnX2RhdGFiYXNlIGQ7CiBw Z19zdGF0X2dzc2FwaXwgU0VMRUNUIHMucGlkLAogICAgIHMuZ3NzX2F1dGggQVMgZ3NzX2F1 dGhlbnRpY2F0ZWQsCi0tIAoyLjM0LjEKCg== --------------r9KIatASOpVniPvrBi6hlPOw Content-Type: text/plain; charset=UTF-8; name="v32-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Disposition: attachment; filename*0="v32-0001-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyNjhkMDM0YTBlYmRlMjE5MzQ1MDZkNjA5ZDZmYTNlYTg5Y2Y0MmQ4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogRnJpLCAxNiBEZWMgMjAyMiAwOToyODoxMyArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMyIDEvNl0gQWRkIGluZm8gaW4gV0FMIHJlY29yZHMgaW4gcHJlcGFyYXRpb24gZm9y IGxvZ2ljYWwKIHNsb3QgY29uZmxpY3QgaGFuZGxpbmcuCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CgpPdmVyYWxsIGRlc2lnbjoKCjEuIFdlIHdhbnQgdG8gZW5hYmxl IGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieXMsIGJ1dCByZXBsYXkgb2YgV0FMCmZyb20g dGhlIHByaW1hcnkgbWlnaHQgcmVtb3ZlIGRhdGEgdGhhdCBpcyBuZWVkZWQgYnkgbG9naWNh bCBkZWNvZGluZywKY2F1c2luZyByZXBsaWNhdGlvbiBjb25mbGljdHMgbXVjaCBhcyBob3Qg c3RhbmRieSBkb2VzLgoKMi4gT3VyIGNob3NlbiBzdHJhdGVneSBmb3IgZGVhbGluZyB3aXRo IHRoaXMgdHlwZSBvZiByZXBsaWNhdGlvbiBzbG90CmlzIHRvIGludmFsaWRhdGUgbG9naWNh bCBzbG90cyBmb3Igd2hpY2ggbmVlZGVkIGRhdGEgaGFzIGJlZW4gcmVtb3ZlZC4KCjMuIFRv IGRvIHRoaXMgd2UgbmVlZCB0aGUgbGF0ZXN0UmVtb3ZlZFhpZCBmb3IgZWFjaCBjaGFuZ2Us IGp1c3QgYXMgd2UKZG8gZm9yIHBoeXNpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cywgYnV0 IHdlIGFsc28gbmVlZCB0byBrbm93CndoZXRoZXIgYW55IHBhcnRpY3VsYXIgY2hhbmdlIHdh cyB0byBkYXRhIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbgptaWdodCBhY2Nlc3MuCgo0LiBX ZSBjYW4ndCByZWx5IG9uIHRoZSBzdGFuZGJ5J3MgcmVsY2FjaGUgZW50cmllcyBmb3IgdGhp cyBwdXJwb3NlIGluCmFueSB3YXksIGJlY2F1c2UgdGhlIFdBTCByZWNvcmQgdGhhdCBjYXVz ZXMgdGhlIHByb2JsZW0gbWlnaHQgYmUKcmVwbGF5ZWQgYmVmb3JlIHRoZSBzdGFuZGJ5IGV2 ZW4gcmVhY2hlcyBjb25zaXN0ZW5jeS4KCjUuIFRoZXJlZm9yZSBldmVyeSBXQUwgcmVjb3Jk IHRoYXQgcG90ZW50aWFsbHkgcmVtb3ZlcyBkYXRhIGZyb20gdGhlCmluZGV4IG9yIGhlYXAg bXVzdCBjYXJyeSBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCBpdCBpcyBvbmUK dGhhdCBtaWdodCBiZSBhY2Nlc3NlZCBkdXJpbmcgbG9naWNhbCBkZWNvZGluZy4KCldoeSBk byB3ZSBuZWVkIHRoaXMgZm9yIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieT8KCkZpcnN0 LCBsZXQncyBmb3JnZXQgYWJvdXQgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5IGFuZCBy ZWNhbGwgdGhhdApvbiBhIHByaW1hcnkgZGF0YWJhc2UsIGFueSBjYXRhbG9nIHJvd3MgdGhh dCBtYXkgYmUgbmVlZGVkIGJ5IGEgbG9naWNhbApkZWNvZGluZyByZXBsaWNhdGlvbiBzbG90 IGFyZSBub3QgcmVtb3ZlZC4KClRoaXMgaXMgZG9uZSB0aGFua3MgdG8gdGhlIGNhdGFsb2df eG1pbiBhc3NvY2lhdGVkIHdpdGggdGhlIGxvZ2ljYWwKcmVwbGljYXRpb24gc2xvdC4KCkJ1 dCwgd2l0aCBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnksIGluIHRoZSBmb2xsb3dpbmcg Y2FzZXM6CgotIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIGlzIG9mZgotIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIGlzIG9uIGJ1dCB0aGVyZSBpcyBubyBhIHBoeXNpY2FsIHNsb3QgYmV0d2Vlbgog IHRoZSBwcmltYXJ5IGFuZCB0aGUgc3RhbmRieS4gVGhlbiwgaG90X3N0YW5kYnlfZmVlZGJh Y2sgd2lsbCB3b3JrLAogIGJ1dCBvbmx5IHdoaWxlIHRoZSBjb25uZWN0aW9uIGlzIGFsaXZl IChmb3IgZXhhbXBsZSBhIG5vZGUgcmVzdGFydAogIHdvdWxkIGJyZWFrIGl0KQoKVGhlbiwg dGhlIHByaW1hcnkgbWF5IGRlbGV0ZSBzeXN0ZW0gY2F0YWxvZyByb3dzIHRoYXQgY291bGQg YmUgbmVlZGVkCmJ5IHRoZSBsb2dpY2FsIGRlY29kaW5nIG9uIHRoZSBzdGFuZGJ5IChhcyBp dCBkb2VzIG5vdCBrbm93IGFib3V0IHRoZQpjYXRhbG9nX3htaW4gb24gdGhlIHN0YW5kYnkp LgoKU28sIGl04oCZcyBtYW5kYXRvcnkgdG8gaWRlbnRpZnkgdGhvc2Ugcm93cyBhbmQgaW52 YWxpZGF0ZSB0aGUgc2xvdHMKdGhhdCBtYXkgbmVlZCB0aGVtIGlmIGFueS4gSWRlbnRpZnlp bmcgdGhvc2Ugcm93cyBpcyB0aGUgcHVycG9zZSBvZgp0aGlzIGNvbW1pdC4KCkltcGxlbWVu dGF0aW9uOgoKV2hlbiBhIFdBTCByZXBsYXkgb24gc3RhbmRieSBpbmRpY2F0ZXMgdGhhdCBh IGNhdGFsb2cgdGFibGUgdHVwbGUgaXMKdG8gYmUgZGVsZXRlZCBieSBhbiB4aWQgdGhhdCBp cyBncmVhdGVyIHRoYW4gYSBsb2dpY2FsIHNsb3QncwpjYXRhbG9nX3htaW4sIHRoZW4gdGhh dCBtZWFucyB0aGUgc2xvdCdzIGNhdGFsb2dfeG1pbiBjb25mbGljdHMgd2l0aAp0aGUgeGlk LCBhbmQgd2UgbmVlZCB0byBoYW5kbGUgdGhlIGNvbmZsaWN0LiBXaGlsZSBzdWJzZXF1ZW50 IGNvbW1pdHMKd2lsbCBkbyB0aGUgYWN0dWFsIGNvbmZsaWN0IGhhbmRsaW5nLCB0aGlzIGNv bW1pdCBhZGRzIGEgbmV3IGZpZWxkCm1heUNvbmZsaWN0SW5Mb2dpY2FsRGVjb2RpbmcgaW4g c3VjaCBXQUwgcmVjb3JkcyAoYW5kIGEgbmV3IGJpdApzZXQgaW4gdGhlIHhsX2hlYXBfdmlz aWJsZSBmbGFncyBmaWVsZCksIHRoYXQgaXMgdHJ1ZSBmb3IgY2F0YWxvZyB0YWJsZXMsCnNv IGFzIHRvIGFycmFuZ2UgZm9yIGNvbmZsaWN0IGhhbmRsaW5nLgoKQXV0aG9yOiBBbmRyZXMg RnJldW5kIChpbiBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5k CkRyb3V2b3QKUmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQs IFJvYmVydCBIYWFzLCBGYWJyaXppbyBkZQpSb3llcyBNZWxsbwotLS0KIGNvbnRyaWIvdGVz dF9kZWNvZGluZy9leHBlY3RlZC9kZGwub3V0ICB8IDY1ICsrKysrKysrKysrKysrKysrKysr KysrKysKIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvZGRsLnNxbCAgICAgICB8IDIzICsr KysrKysrKwogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgIHwgMTEg KysrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jICB8ICAyICst CiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jICAgICAgfCAgMiArCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMgICAgfCAgMiArCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgfCAgNiArKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3BydW5laGVhcC5jICAgICB8ICAyICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3Zpc2liaWxpdHltYXAuYyB8ICAzICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHBhZ2UuYyAgICAgfCAgNCArKwogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2 YWN1dW0uYyAgIHwgIDIgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAgICAgICAg ICAgIHwgMTAgKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAg IHwgNTUgKysrKysrKysrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhs b2cuaCAgICAgICAgICAgfCAgNiArKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cu aCAgICAgICAgICB8ICAzICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaCAg ICAgICAgfCAgOCArLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmggICAgICAgICAg ICB8ICA2ICsrLQogc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaCAgICAgICAgICAgIHwg IDEgKwogc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmggIHwgIDkgKyst LQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oICAgICAgICAgIHwgIDIgKwogc3Jj L2luY2x1ZGUvdXRpbHMvcmVsLmggICAgICAgICAgICAgICAgIHwgMTQgKysrKystCiAyMSBm aWxlcyBjaGFuZ2VkLCAyMTUgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCiAgMjcu MCUgY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkLwogIDExLjYlIGNvbnRyaWIvdGVz dF9kZWNvZGluZy9zcWwvCiAgIDQuNSUgZG9jL3NyYy9zZ21sLwogICA2LjAlIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwLwogICA0LjglIHNyYy9iYWNrZW5kL2FjY2Vzcy8KICAgMy4wJSBz cmMvYmFja2VuZC9jYXRhbG9nLwogIDE1LjclIHNyYy9iYWNrZW5kL2NvbW1hbmRzLwogIDIx LjYlIHNyYy9pbmNsdWRlL2FjY2Vzcy8KICAgNC42JSBzcmMvaW5jbHVkZS91dGlscy8KCmRp ZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsLm91dCBiL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9kZGwub3V0CmluZGV4IDlhMjhiNWRkYzUu LjQ4ZmI0NGM1NzUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3Rl ZC9kZGwub3V0CisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9kZGwub3V0 CkBAIC00ODMsNiArNDgzLDcgQEAgQ1JFQVRFIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRh ICgKICkKIFdJVEggKHVzZXJfY2F0YWxvZ190YWJsZSA9IHRydWUpCiA7CitDUkVBVEUgSU5E RVggcmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MSBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YShy ZWxhdGlvbik7CiBcZCsgcmVwbGljYXRpb25fbWV0YWRhdGEKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnJlcGxpY2F0 aW9uX21ldGFkYXRhIgogICBDb2x1bW4gIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAg IHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKQEAgLTQ5MiwxMSAr NDkzLDE5IEBAIFdJVEggKHVzZXJfY2F0YWxvZ190YWJsZSA9IHRydWUpCiAgb3B0aW9ucyAg fCB0ZXh0W10gIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAg ICB8IAogSW5kZXhlczoKICAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfcGtleSIgUFJJTUFS WSBLRVksIGJ0cmVlIChpZCkKKyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MSIgYnRy ZWUgKHJlbGF0aW9uKQogT3B0aW9uczogdXNlcl9jYXRhbG9nX3RhYmxlPXRydWUKIAorU0VM RUNUIGJvb2xfYW5kKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5k cmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsKKyBib29sX2FuZCAK Ky0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKIElOU0VSVCBJTlRPIHJlcGxpY2F0aW9uX21l dGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgnZm9vJywgQVJSQVlbJ2EnLCAn YiddKTsKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFJFU0VUICh1c2VyX2Nh dGFsb2dfdGFibGUpOworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDIg b24gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24pOwogXGQrIHJlcGxpY2F0aW9uX21l dGFkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVGFibGUgInB1YmxpYy5yZXBsaWNhdGlvbl9tZXRhZGF0YSIKICAgQ29sdW1uICB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICAgICAgRGVm YXVsdCAgICAgICAgICAgICAgICAgICAgICB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwg RGVzY3JpcHRpb24gCkBAIC01MDYsMTAgKzUxNSwxOSBAQCBBTFRFUiBUQUJMRSByZXBsaWNh dGlvbl9tZXRhZGF0YSBSRVNFVCAodXNlcl9jYXRhbG9nX3RhYmxlKTsKICBvcHRpb25zICB8 IHRleHRbXSAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAg IHwgCiBJbmRleGVzOgogICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9wa2V5IiBQUklNQVJZ IEtFWSwgYnRyZWUgKGlkKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgxIiBidHJl ZSAocmVsYXRpb24pCisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDIiIGJ0cmVlIChy ZWxhdGlvbikKKworU0VMRUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19p bmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNz OworIGJvb2xfb3IgCistLS0tLS0tLS0KKyBmCisoMSByb3cpCiAKIElOU0VSVCBJTlRPIHJl cGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgnYmFyJywg QVJSQVlbJ2EnLCAnYiddKTsKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFNF VCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSk7CitDUkVBVEUgSU5ERVggcmVwbGljYXRp b25fbWV0YWRhdGFfaWR4MyBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbik7CiBc ZCsgcmVwbGljYXRpb25fbWV0YWRhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnJlcGxpY2F0aW9uX21ldGFkYXRh IgogICBDb2x1bW4gIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAg ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgIHwgU3RvcmFnZSAg fCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKQEAgLTUxOSwxNSArNTM3LDUyIEBAIEFM VEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3RhYmxl ID0gdHJ1ZSk7CiAgb3B0aW9ucyAgfCB0ZXh0W10gIHwgICAgICAgICAgIHwgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBl eHRlbmRlZCB8ICAgICAgICAgICAgICB8IAogSW5kZXhlczoKICAgICAicmVwbGljYXRpb25f bWV0YWRhdGFfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkKKyAgICAicmVwbGljYXRp b25fbWV0YWRhdGFfaWR4MSIgYnRyZWUgKHJlbGF0aW9uKQorICAgICJyZXBsaWNhdGlvbl9t ZXRhZGF0YV9pZHgyIiBidHJlZSAocmVsYXRpb24pCisgICAgInJlcGxpY2F0aW9uX21ldGFk YXRhX2lkeDMiIGJ0cmVlIChyZWxhdGlvbikKIE9wdGlvbnM6IHVzZXJfY2F0YWxvZ190YWJs ZT10cnVlCiAKK1NFTEVDVCBib29sX2FuZChpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2lu ZGV4IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7 CisgYm9vbF9hbmQgCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCiBJTlNFUlQgSU5UTyBy ZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ2JsdWIn LCBOVUxMKTsKKy0tIEFsc28gY2hlY2tpbmcgdGhhdCBpbmRpc3VzZXJjYXRhbG9nIGlzIHNl dCBjb3JyZWN0bHkgd2hlbiBhIHRhYmxlIGlzIGNyZWF0ZWQgd2l0aCB1c2VyX2NhdGFsb2df dGFibGUgPSBmYWxzZQorQ1JFQVRFIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNl ICgKKyAgICBpZCBzZXJpYWwgcHJpbWFyeSBrZXksCisgICAgcmVsYXRpb24gbmFtZSBOT1Qg TlVMTCwKKyAgICBvcHRpb25zIHRleHRbXQorKQorV0lUSCAodXNlcl9jYXRhbG9nX3RhYmxl ID0gZmFsc2UpCis7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFfZmFsc2Vf aWR4MSBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZShyZWxhdGlvbik7CitcZCsgcmVw bGljYXRpb25fbWV0YWRhdGFfZmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnJlcGxpY2F0aW9uX21ldGFkYXRh X2ZhbHNlIgorICBDb2x1bW4gIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg ICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICAg IHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tCisgaWQgICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAg IHwgbm90IG51bGwgfCBuZXh0dmFsKCdyZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZV9pZF9z ZXEnOjpyZWdjbGFzcykgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8IAorIHJlbGF0aW9u IHwgbmFtZSAgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAg ICAgICAgICAgfCAKKyBvcHRpb25zICB8IHRleHRbXSAgfCAgICAgICAgICAgfCAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJyZXBs aWNhdGlvbl9tZXRhZGF0YV9mYWxzZV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQor ICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZV9pZHgxIiBidHJlZSAocmVsYXRpb24p CitPcHRpb25zOiB1c2VyX2NhdGFsb2dfdGFibGU9ZmFsc2UKKworU0VMRUNUIGJvb2xfb3Io aW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBs aWNhdGlvbl9tZXRhZGF0YV9mYWxzZSc6OnJlZ2NsYXNzOworIGJvb2xfb3IgCistLS0tLS0t LS0KKyBmCisoMSByb3cpCisKIC0tIG1ha2Ugc3VyZSByZXdyaXRlcyBkb24ndCB3b3JrCiBB TFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBBREQgQ09MVU1OIHJld3JpdGVtZW9y bm90IGludDsKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIEFMVEVSIENPTFVN TiByZXdyaXRlbWVvcm5vdCBUWVBFIHRleHQ7CiBFUlJPUjogIGNhbm5vdCByZXdyaXRlIHRh YmxlICJyZXBsaWNhdGlvbl9tZXRhZGF0YSIgdXNlZCBhcyBhIGNhdGFsb2cgdGFibGUKIEFM VEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3RhYmxl ID0gZmFsc2UpOworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDQgb24g cmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24pOwogXGQrIHJlcGxpY2F0aW9uX21ldGFk YXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVGFibGUgInB1YmxpYy5yZXBsaWNhdGlvbl9tZXRhZGF0YSIKICAgICAgQ29sdW1uICAg ICB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICAg ICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFy Z2V0IHwgRGVzY3JpcHRpb24gCkBAIC01MzgsOCArNTkzLDE4IEBAIEFMVEVSIFRBQkxFIHJl cGxpY2F0aW9uX21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3RhYmxlID0gZmFsc2UpOwog IHJld3JpdGVtZW9ybm90IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhaW4g ICAgfCAgICAgICAgICAgICAgfCAKIEluZGV4ZXM6CiAgICAgInJlcGxpY2F0aW9uX21ldGFk YXRhX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCisgICAgInJlcGxpY2F0aW9uX21l dGFkYXRhX2lkeDEiIGJ0cmVlIChyZWxhdGlvbikKKyAgICAicmVwbGljYXRpb25fbWV0YWRh dGFfaWR4MiIgYnRyZWUgKHJlbGF0aW9uKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9p ZHgzIiBidHJlZSAocmVsYXRpb24pCisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDQi IGJ0cmVlIChyZWxhdGlvbikKIE9wdGlvbnM6IHVzZXJfY2F0YWxvZ190YWJsZT1mYWxzZQog CitTRUxFQ1QgYm9vbF9vcihpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJl IGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CisgYm9vbF9v ciAKKy0tLS0tLS0tLQorIGYKKygxIHJvdykKKwogSU5TRVJUIElOVE8gcmVwbGljYXRpb25f bWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCd6YXBob2QnLCBOVUxMKTsK IFNFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNz aW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnaW5jbHVkZS14aWRzJywgJzAnLCAnc2tpcC1lbXB0 eS14YWN0cycsICcxJyk7CmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3Fs L2RkbC5zcWwgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL2RkbC5zcWwKaW5kZXggNGY3 NmJlZDcyYy4uNTFiYWFjNWM0ZSAxMDA2NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5n L3NxbC9kZGwuc3FsCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvZGRsLnNxbApA QCAtMjc2LDI5ICsyNzYsNTIgQEAgQ1JFQVRFIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRh ICgKICkKIFdJVEggKHVzZXJfY2F0YWxvZ190YWJsZSA9IHRydWUpCiA7CisKK0NSRUFURSBJ TkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgxIG9uIHJlcGxpY2F0aW9uX21ldGFkYXRh KHJlbGF0aW9uKTsKKwogXGQrIHJlcGxpY2F0aW9uX21ldGFkYXRhCitTRUxFQ1QgYm9vbF9h bmQoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdy ZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOwogCiBJTlNFUlQgSU5UTyByZXBsaWNh dGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ2ZvbycsIEFSUkFZ WydhJywgJ2InXSk7CiAKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFJFU0VU ICh1c2VyX2NhdGFsb2dfdGFibGUpOworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFk YXRhX2lkeDIgb24gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24pOwogXGQrIHJlcGxp Y2F0aW9uX21ldGFkYXRhCitTRUxFQ1QgYm9vbF9vcihpbmRpc3VzZXJjYXRhbG9nKSBmcm9t IHBnX2luZGV4IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVn Y2xhc3M7CiAKIElOU0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBv cHRpb25zKQogVkFMVUVTICgnYmFyJywgQVJSQVlbJ2EnLCAnYiddKTsKIAogQUxURVIgVEFC TEUgcmVwbGljYXRpb25fbWV0YWRhdGEgU0VUICh1c2VyX2NhdGFsb2dfdGFibGUgPSB0cnVl KTsKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgzIG9uIHJlcGxpY2F0 aW9uX21ldGFkYXRhKHJlbGF0aW9uKTsKIFxkKyByZXBsaWNhdGlvbl9tZXRhZGF0YQorU0VM RUNUIGJvb2xfYW5kKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5k cmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsKIAogSU5TRVJUIElO VE8gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCdi bHViJywgTlVMTCk7CiAKKy0tIEFsc28gY2hlY2tpbmcgdGhhdCBpbmRpc3VzZXJjYXRhbG9n IGlzIHNldCBjb3JyZWN0bHkgd2hlbiBhIHRhYmxlIGlzIGNyZWF0ZWQgd2l0aCB1c2VyX2Nh dGFsb2dfdGFibGUgPSBmYWxzZQorQ1JFQVRFIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRh X2ZhbHNlICgKKyAgICBpZCBzZXJpYWwgcHJpbWFyeSBrZXksCisgICAgcmVsYXRpb24gbmFt ZSBOT1QgTlVMTCwKKyAgICBvcHRpb25zIHRleHRbXQorKQorV0lUSCAodXNlcl9jYXRhbG9n X3RhYmxlID0gZmFsc2UpCis7CisKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0 YV9mYWxzZV9pZHgxIG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlKHJlbGF0aW9uKTsK K1xkKyByZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZQorU0VMRUNUIGJvb2xfb3IoaW5kaXN1 c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlv bl9tZXRhZGF0YV9mYWxzZSc6OnJlZ2NsYXNzOworCiAtLSBtYWtlIHN1cmUgcmV3cml0ZXMg ZG9uJ3Qgd29yawogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgQUREIENPTFVN TiByZXdyaXRlbWVvcm5vdCBpbnQ7CiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0 YSBBTFRFUiBDT0xVTU4gcmV3cml0ZW1lb3Jub3QgVFlQRSB0ZXh0OwogCiBBTFRFUiBUQUJM RSByZXBsaWNhdGlvbl9tZXRhZGF0YSBTRVQgKHVzZXJfY2F0YWxvZ190YWJsZSA9IGZhbHNl KTsKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHg0IG9uIHJlcGxpY2F0 aW9uX21ldGFkYXRhKHJlbGF0aW9uKTsKIFxkKyByZXBsaWNhdGlvbl9tZXRhZGF0YQorU0VM RUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRy ZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOwogCiBJTlNFUlQgSU5U TyByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ3ph cGhvZCcsIE5VTEwpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA5MzE2YjgxMWFjLi40NTk1Mzli NzYxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNDQ0Nyw2ICs0NDQ3LDE3IEBAIFNDUkFNLVNI QS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJs ZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+ CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PmluZGlzdXNlcmNhdGFsb2c8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdHJ1ZSwgdGhlIGluZGV4IGlz IGxpbmtlZCB0byBhIHRhYmxlIHRoYXQgaXMgZGVjbGFyZWQgYXMgYW4gYWRkaXRpb25hbAor ICAgICAgIGNhdGFsb2cgdGFibGUgZm9yIHB1cnBvc2VzIG9mIGxvZ2ljYWwgcmVwbGljYXRp b24gKG1lYW5zIGhhcyA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUiPjxsaXRlcmFs PnVzZXJfY2F0YWxvZ190YWJsZTwvbGl0ZXJhbD48L2xpbms+KQorICAgICAgIHNldCB0byB0 cnVlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+ CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5pbmRpc3JlcGxpZGVu dDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcmVsb3B0aW9ucy5jCmluZGV4IDc1YjczNDQ4OTEuLjRiNDFmNWU2OGQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCkBAIC0xMjAsNyArMTIwLDcg QEAgc3RhdGljIHJlbG9wdF9ib29sIGJvb2xSZWxPcHRzW10gPQogCQkJUkVMT1BUX0tJTkRf SEVBUCwKIAkJCUFjY2Vzc0V4Y2x1c2l2ZUxvY2sKIAkJfSwKLQkJZmFsc2UKKwkJSEVBUF9E RUZBVUxUX1VTRVJfQ0FUQUxPR19UQUJMRQogCX0sCiAJewogCQl7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2dpc3QvZ2lzdHhsb2cuYwppbmRleCBjYjVhZmZhM2QyLi5kMDJkZjlkYTVjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTYwOCw2ICs2MDgsOCBAQCBnaXN0WExv Z1BhZ2VSZXVzZShSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNh Y3Rpb25JZCBkZWxldGVYaWQpCiAJICovCiAKIAkvKiBYTE9HIHN0dWZmICovCisJeGxyZWNf cmV1c2UubWF5Q29uZmxpY3RJbkxvZ2ljYWxEZWNvZGluZyA9CisJCVJlbGF0aW9uSXNBY2Nl c3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKIAl4bHJlY19yZXVzZS5sb2NhdG9yID0g cmVsLT5yZF9sb2NhdG9yOwogCXhscmVjX3JldXNlLmJsb2NrID0gYmxrbm87CiAJeGxyZWNf cmV1c2Uuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBkZWxldGVYaWQ7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMKaW5kZXggOWE5MjFlMzQxZS4uMTg2MjhlNzAzOSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYwpAQCAtNDMyLDYgKzQzMiw4 IEBAIF9oYXNoX3ZhY3V1bV9vbmVfcGFnZShSZWxhdGlvbiByZWwsIFJlbGF0aW9uIGhyZWws IEJ1ZmZlciBtZXRhYnVmLCBCdWZmZXIgYnVmKQogCQkJeGxfaGFzaF92YWN1dW1fb25lX3Bh Z2UgeGxyZWM7CiAJCQlYTG9nUmVjUHRyCXJlY3B0cjsKIAorCQkJeGxyZWMubWF5Q29uZmxp Y3RJbkxvZ2ljYWxEZWNvZGluZyA9CisJCQkJUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2lj YWxEZWNvZGluZyhocmVsKTsKIAkJCXhscmVjLnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uID0g c25hcHNob3RDb25mbGljdEhvcml6b247CiAJCQl4bHJlYy5udHVwbGVzID0gbmRlbGV0YWJs ZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCA0Mjc1NmE5ZTZkLi41NWZj YjExYzMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtNjgyNyw2ICs2ODI3 LDggQEAgaGVhcF9mcmVlemVfZXhlY3V0ZV9wcmVwYXJlZChSZWxhdGlvbiByZWwsIEJ1ZmZl ciBidWZmZXIsCiAJCXNuYXBzaG90Q29uZmxpY3RIb3Jpem9uID0gRnJlZXplTGltaXQ7CiAJ CVRyYW5zYWN0aW9uSWRSZXRyZWF0KHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uKTsKIAorCQl4 bHJlYy5tYXlDb25mbGljdEluTG9naWNhbERlY29kaW5nID0KKwkJCVJlbGF0aW9uSXNBY2Nl c3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKIAkJeGxyZWMuc25hcHNob3RDb25mbGlj dEhvcml6b24gPSBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKIAkJeGxyZWMubnBsYW5zID0g bnBsYW5zOwogCkBAIC04MjQ0LDcgKzgyNDYsNyBAQCBib3R0b211cF9zb3J0X2FuZF9zaHJp bmsoVE1fSW5kZXhEZWxldGVPcCAqZGVsc3RhdGUpCiAgKiB1cGRhdGUgdGhlIGhlYXAgcGFn ZSdzIExTTi4KICAqLwogWExvZ1JlY1B0cgotbG9nX2hlYXBfdmlzaWJsZShSZWxGaWxlTG9j YXRvciBybG9jYXRvciwgQnVmZmVyIGhlYXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVyLAor bG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVm ZmVyIHZtX2J1ZmZlciwKIAkJCQkgVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9y aXpvbiwgdWludDggdm1mbGFncykKIHsKIAl4bF9oZWFwX3Zpc2libGUgeGxyZWM7CkBAIC04 MjU2LDYgKzgyNTgsOCBAQCBsb2dfaGVhcF92aXNpYmxlKFJlbEZpbGVMb2NhdG9yIHJsb2Nh dG9yLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCiAKIAl4bHJlYy5z bmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCXhs cmVjLmZsYWdzID0gdm1mbGFnczsKKwlpZiAoUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2lj YWxEZWNvZGluZyhyZWwpKQorCQl4bHJlYy5mbGFncyB8PSBWSVNJQklMSVRZTUFQX09OX0NB VEFMT0dfQUNDRVNTSUJMRV9JTl9MT0dJQ0FMX0RFQ09ESU5HOwogCVhMb2dCZWdpbkluc2Vy dCgpOwogCVhMb2dSZWdpc3RlckRhdGEoKGNoYXIgKikgJnhscmVjLCBTaXplT2ZIZWFwVmlz aWJsZSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggOTFjNWY1 ZTllZi4uYWE1MDRiNzMzOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMK QEAgLTQxOCw2ICs0MTgsOCBAQCBoZWFwX3BhZ2VfcHJ1bmUoUmVsYXRpb24gcmVsYXRpb24s IEJ1ZmZlciBidWZmZXIsCiAJCQl4bF9oZWFwX3BydW5lIHhscmVjOwogCQkJWExvZ1JlY1B0 cglyZWNwdHI7CiAKKwkJCXhscmVjLm1heUNvbmZsaWN0SW5Mb2dpY2FsRGVjb2RpbmcgPQor CQkJCVJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsYXRpb24pOwog CQkJeGxyZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBwcnN0YXRlLnNuYXBzaG90Q29u ZmxpY3RIb3Jpem9uOwogCQkJeGxyZWMubnJlZGlyZWN0ZWQgPSBwcnN0YXRlLm5yZWRpcmVj dGVkOwogCQkJeGxyZWMubmRlYWQgPSBwcnN0YXRlLm5kZWFkOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4IDRlZDcwMjc1ZTIuLjBiZDczZjRkOWYg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKQEAgLTI4Myw4 ICsyODMsNyBAQCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVy IGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAogCQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQo cmVjcHRyKSkKIAkJCXsKIAkJCQlBc3NlcnQoIUluUmVjb3ZlcnkpOwotCQkJCXJlY3B0ciA9 IGxvZ19oZWFwX3Zpc2libGUocmVsLT5yZF9sb2NhdG9yLCBoZWFwQnVmLCB2bUJ1ZiwKLQkJ CQkJCQkJCQkgIGN1dG9mZl94aWQsIGZsYWdzKTsKKwkJCQlyZWNwdHIgPSBsb2dfaGVhcF92 aXNpYmxlKHJlbCwgaGVhcEJ1Ziwgdm1CdWYsIGN1dG9mZl94aWQsIGZsYWdzKTsKIAogCQkJ CS8qCiAJCQkJICogSWYgZGF0YSBjaGVja3N1bXMgYXJlIGVuYWJsZWQgKG9yIHdhbF9sb2df aGludHM9b24pLCB3ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9u YnRwYWdlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYwppbmRleCA2 NWFhNDQ4OTNjLi5mMTI1NGRiNDQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv bmJ0cmVlL25idHBhZ2UuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBh Z2UuYwpAQCAtODM2LDYgKzgzNiw4IEBAIF9idF9sb2dfcmV1c2VfcGFnZShSZWxhdGlvbiBy ZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBzYWZleGlkKQogCSAq LwogCiAJLyogWExPRyBzdHVmZiAqLworCXhscmVjX3JldXNlLm1heUNvbmZsaWN0SW5Mb2dp Y2FsRGVjb2RpbmcgPQorCQlSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5n KHJlbCk7CiAJeGxyZWNfcmV1c2UubG9jYXRvciA9IHJlbC0+cmRfbG9jYXRvcjsKIAl4bHJl Y19yZXVzZS5ibG9jayA9IGJsa25vOwogCXhscmVjX3JldXNlLnNuYXBzaG90Q29uZmxpY3RI b3Jpem9uID0gc2FmZXhpZDsKQEAgLTEzNTgsNiArMTM2MCw4IEBAIF9idF9kZWxpdGVtc19k ZWxldGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQlYTG9nUmVjUHRyCXJlY3B0cjsK IAkJeGxfYnRyZWVfZGVsZXRlIHhscmVjX2RlbGV0ZTsKIAorCQl4bHJlY19kZWxldGUubWF5 Q29uZmxpY3RJbkxvZ2ljYWxEZWNvZGluZyA9CisJCQlSZWxhdGlvbklzQWNjZXNzaWJsZUlu TG9naWNhbERlY29kaW5nKHJlbCk7CiAJCXhscmVjX2RlbGV0ZS5zbmFwc2hvdENvbmZsaWN0 SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCQl4bHJlY19kZWxldGUubmRl bGV0ZWQgPSBuZGVsZXRhYmxlOwogCQl4bHJlY19kZWxldGUubnVwZGF0ZWQgPSBudXBkYXRh YmxlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0u YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKaW5kZXggYWQ5MGIy MTNiOS4uZDZkNGQ3Nzk1NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lz dC9zcGd2YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1 bS5jCkBAIC01MDMsNiArNTAzLDggQEAgdmFjdXVtUmVkaXJlY3RBbmRQbGFjZWhvbGRlcihS ZWxhdGlvbiBpbmRleCwgQnVmZmVyIGJ1ZmZlcikKIAlzcGd4bG9nVmFjdXVtUmVkaXJlY3Qg eGxyZWM7CiAJR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3Q7CiAKKwl4bHJlYy5tYXlDb25mbGlj dEluTG9naWNhbERlY29kaW5nID0KKwkJUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxE ZWNvZGluZyhpbmRleCk7CiAJeGxyZWMublRvUGxhY2Vob2xkZXIgPSAwOwogCXhscmVjLnNu YXBzaG90Q29uZmxpY3RIb3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvaW5kZXguYwppbmRleCA2MWYxZDM5MjZhLi5mNzU0MGY0MTAxIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9p bmRleC5jCkBAIC0xMjMsNyArMTIzLDggQEAgc3RhdGljIHZvaWQgVXBkYXRlSW5kZXhSZWxh dGlvbihPaWQgaW5kZXhvaWQsIE9pZCBoZWFwb2lkLAogCQkJCQkJCQlib29sIGlzZXhjbHVz aW9uLAogCQkJCQkJCQlib29sIGltbWVkaWF0ZSwKIAkJCQkJCQkJYm9vbCBpc3ZhbGlkLAot CQkJCQkJCQlib29sIGlzcmVhZHkpOworCQkJCQkJCQlib29sIGlzcmVhZHksCisJCQkJCQkJ CWJvb2wgaXNfdXNlcl9jYXRhbG9nKTsKIHN0YXRpYyB2b2lkIGluZGV4X3VwZGF0ZV9zdGF0 cyhSZWxhdGlvbiByZWwsCiAJCQkJCQkJICAgYm9vbCBoYXNpbmRleCwKIAkJCQkJCQkgICBk b3VibGUgcmVsdHVwbGVzKTsKQEAgLTU0NSw3ICs1NDYsOCBAQCBVcGRhdGVJbmRleFJlbGF0 aW9uKE9pZCBpbmRleG9pZCwKIAkJCQkJYm9vbCBpc2V4Y2x1c2lvbiwKIAkJCQkJYm9vbCBp bW1lZGlhdGUsCiAJCQkJCWJvb2wgaXN2YWxpZCwKLQkJCQkJYm9vbCBpc3JlYWR5KQorCQkJ CQlib29sIGlzcmVhZHksCisJCQkJCWJvb2wgaXNfdXNlcl9jYXRhbG9nKQogewogCWludDJ2 ZWN0b3IgKmluZGtleTsKIAlvaWR2ZWN0b3IgICppbmRjb2xsYXRpb247CkBAIC02MjIsNiAr NjI0LDcgQEAgVXBkYXRlSW5kZXhSZWxhdGlvbihPaWQgaW5kZXhvaWQsCiAJdmFsdWVzW0Fu dW1fcGdfaW5kZXhfaW5kY2hlY2t4bWluIC0gMV0gPSBCb29sR2V0RGF0dW0oZmFsc2UpOwog CXZhbHVlc1tBbnVtX3BnX2luZGV4X2luZGlzcmVhZHkgLSAxXSA9IEJvb2xHZXREYXR1bShp c3JlYWR5KTsKIAl2YWx1ZXNbQW51bV9wZ19pbmRleF9pbmRpc2xpdmUgLSAxXSA9IEJvb2xH ZXREYXR1bSh0cnVlKTsKKwl2YWx1ZXNbQW51bV9wZ19pbmRleF9pbmRpc3VzZXJjYXRhbG9n IC0gMV0gPSBCb29sR2V0RGF0dW0oaXNfdXNlcl9jYXRhbG9nKTsKIAl2YWx1ZXNbQW51bV9w Z19pbmRleF9pbmRpc3JlcGxpZGVudCAtIDFdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKIAl2 YWx1ZXNbQW51bV9wZ19pbmRleF9pbmRrZXkgLSAxXSA9IFBvaW50ZXJHZXREYXR1bShpbmRr ZXkpOwogCXZhbHVlc1tBbnVtX3BnX2luZGV4X2luZGNvbGxhdGlvbiAtIDFdID0gUG9pbnRl ckdldERhdHVtKGluZGNvbGxhdGlvbik7CkBAIC0xMDIwLDcgKzEwMjMsOCBAQCBpbmRleF9j cmVhdGUoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCQkJaXNwcmltYXJ5LCBpc19leGNs dXNpb24sCiAJCQkJCQkoY29uc3RyX2ZsYWdzICYgSU5ERVhfQ09OU1RSX0NSRUFURV9ERUZF UlJBQkxFKSA9PSAwLAogCQkJCQkJIWNvbmN1cnJlbnQgJiYgIWludmFsaWQsCi0JCQkJCQkh Y29uY3VycmVudCk7CisJCQkJCQkhY29uY3VycmVudCwKKwkJCQkJCVJlbGF0aW9uSXNVc2Vk QXNDYXRhbG9nVGFibGUoaGVhcFJlbGF0aW9uKSk7CiAKIAkvKgogCSAqIFJlZ2lzdGVyIHJl bGNhY2hlIGludmFsaWRhdGlvbiBvbiB0aGUgaW5kZXhlcycgaGVhcCByZWxhdGlvbiwgdG8K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNTZkYzk5NTcxMy4uZmQ4MjAwZTY3 MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTEwMyw2ICsxMDMsNyBAQAog I2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1w LmgiCiAjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9yZWwu aCIKIAogLyoKICAqIE9OIENPTU1JVCBhY3Rpb24gbGlzdApAQCAtMTQxNDgsNiArMTQxNDks MTAgQEAgQVRFeGVjU2V0UmVsT3B0aW9ucyhSZWxhdGlvbiByZWwsIExpc3QgKmRlZkxpc3Qs IEFsdGVyVGFibGVUeXBlIG9wZXJhdGlvbiwKIAlEYXR1bQkJcmVwbF92YWxbTmF0dHNfcGdf Y2xhc3NdOwogCWJvb2wJCXJlcGxfbnVsbFtOYXR0c19wZ19jbGFzc107CiAJYm9vbAkJcmVw bF9yZXBsW05hdHRzX3BnX2NsYXNzXTsKKwlMaXN0Q2VsbCAgICpjZWxsOworCUxpc3QJICAg KnJlbF9vcHRpb25zOworCWJvb2wJCWNhdGFsb2dfdGFibGVfdmFsID0gSEVBUF9ERUZBVUxU X1VTRVJfQ0FUQUxPR19UQUJMRTsKKwlib29sCQljYXRhbG9nX3RhYmxlID0gZmFsc2U7CiAJ c3RhdGljIGNoYXIgKnZhbGlkbnNwc1tdID0gSEVBUF9SRUxPUFRfTkFNRVNQQUNFUzsKIAog CWlmIChkZWZMaXN0ID09IE5JTCAmJiBvcGVyYXRpb24gIT0gQVRfUmVwbGFjZVJlbE9wdGlv bnMpCkBAIC0xNDIxNCw3ICsxNDIxOSw2IEBAIEFURXhlY1NldFJlbE9wdGlvbnMoUmVsYXRp b24gcmVsLCBMaXN0ICpkZWZMaXN0LCBBbHRlclRhYmxlVHlwZSBvcGVyYXRpb24sCiAJewog CQlRdWVyeQkgICAqdmlld19xdWVyeSA9IGdldF92aWV3X3F1ZXJ5KHJlbCk7CiAJCUxpc3QJ ICAgKnZpZXdfb3B0aW9ucyA9IHVudHJhbnNmb3JtUmVsT3B0aW9ucyhuZXdPcHRpb25zKTsK LQkJTGlzdENlbGwgICAqY2VsbDsKIAkJYm9vbAkJY2hlY2tfb3B0aW9uID0gZmFsc2U7CiAK IAkJZm9yZWFjaChjZWxsLCB2aWV3X29wdGlvbnMpCkBAIC0xNDI0Miw2ICsxNDI0NiwyMCBA QCBBVEV4ZWNTZXRSZWxPcHRpb25zKFJlbGF0aW9uIHJlbCwgTGlzdCAqZGVmTGlzdCwgQWx0 ZXJUYWJsZVR5cGUgb3BlcmF0aW9uLAogCQl9CiAJfQogCisJLyogSWYgdXNlcl9jYXRhbG9n X3RhYmxlIGlzIHBhcnQgb2YgdGhlIG5ldyBvcHRpb25zLCByZWNvcmQgaXRzIG5ldyB2YWx1 ZSAqLworCXJlbF9vcHRpb25zID0gdW50cmFuc2Zvcm1SZWxPcHRpb25zKG5ld09wdGlvbnMp OworCisJZm9yZWFjaChjZWxsLCByZWxfb3B0aW9ucykKKwl7CisJCURlZkVsZW0gICAgKmRl ZmVsID0gKERlZkVsZW0gKikgbGZpcnN0KGNlbGwpOworCisJCWlmIChzdHJjbXAoZGVmZWwt PmRlZm5hbWUsICJ1c2VyX2NhdGFsb2dfdGFibGUiKSA9PSAwKQorCQl7CisJCQljYXRhbG9n X3RhYmxlID0gdHJ1ZTsKKwkJCWNhdGFsb2dfdGFibGVfdmFsID0gZGVmR2V0Qm9vbGVhbihk ZWZlbCk7CisJCX0KKwl9CisKIAkvKgogCSAqIEFsbCB3ZSBuZWVkIGRvIGhlcmUgaXMgdXBk YXRlIHRoZSBwZ19jbGFzcyByb3c7IHRoZSBuZXcgb3B0aW9ucyB3aWxsIGJlCiAJICogcHJv cGFnYXRlZCBpbnRvIHJlbGNhY2hlcyBkdXJpbmcgcG9zdC1jb21taXQgY2FjaGUgaW52YWwu CkBAIC0xNDI2OCw2ICsxNDI4Niw0MSBAQCBBVEV4ZWNTZXRSZWxPcHRpb25zKFJlbGF0aW9u IHJlbCwgTGlzdCAqZGVmTGlzdCwgQWx0ZXJUYWJsZVR5cGUgb3BlcmF0aW9uLAogCiAJUmVs ZWFzZVN5c0NhY2hlKHR1cGxlKTsKIAorCS8qIFVwZGF0ZSB0aGUgaW5kZXhlcyBpZiB0aGVy ZSBpcyBhIG5lZWQgdG8gKi8KKwlpZiAoY2F0YWxvZ190YWJsZSB8fCBvcGVyYXRpb24gPT0g QVRfUmVzZXRSZWxPcHRpb25zKQorCXsKKwkJUmVsYXRpb24JcGdfaW5kZXg7CisJCUhlYXBU dXBsZQlwZ19pbmRleF90dXBsZTsKKwkJRm9ybV9wZ19pbmRleCBwZ19pbmRleF9mb3JtOwor CQlMaXN0Q2VsbCAgICppbmRleDsKKworCQlwZ19pbmRleCA9IHRhYmxlX29wZW4oSW5kZXhS ZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQlmb3JlYWNoKGluZGV4LCBSZWxh dGlvbkdldEluZGV4TGlzdChyZWwpKQorCQl7CisJCQlPaWQJCQl0aGlzSW5kZXhPaWQgPSBs Zmlyc3Rfb2lkKGluZGV4KTsKKworCQkJcGdfaW5kZXhfdHVwbGUgPSBTZWFyY2hTeXNDYWNo ZUNvcHkxKElOREVYUkVMSUQsCisJCQkJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bSh0aGlz SW5kZXhPaWQpKTsKKwkJCWlmICghSGVhcFR1cGxlSXNWYWxpZChwZ19pbmRleF90dXBsZSkp CisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGluZGV4ICV1Iiwg dGhpc0luZGV4T2lkKTsKKwkJCXBnX2luZGV4X2Zvcm0gPSAoRm9ybV9wZ19pbmRleCkgR0VU U1RSVUNUKHBnX2luZGV4X3R1cGxlKTsKKworCQkJLyogTW9kaWZ5IHRoZSBpbmRleCBvbmx5 IGlmIHVzZXJfY2F0YWxvZ190YWJsZSBkaWZmZXIgKi8KKwkJCWlmIChjYXRhbG9nX3RhYmxl X3ZhbCAhPSBwZ19pbmRleF9mb3JtLT5pbmRpc3VzZXJjYXRhbG9nKQorCQkJeworCQkJCXBn X2luZGV4X2Zvcm0tPmluZGlzdXNlcmNhdGFsb2cgPSBjYXRhbG9nX3RhYmxlX3ZhbDsKKwkJ CQlDYXRhbG9nVHVwbGVVcGRhdGUocGdfaW5kZXgsICZwZ19pbmRleF90dXBsZS0+dF9zZWxm LCBwZ19pbmRleF90dXBsZSk7CisJCQkJSW52b2tlT2JqZWN0UG9zdEFsdGVySG9va0FyZyhJ bmRleFJlbGF0aW9uSWQsIHRoaXNJbmRleE9pZCwgMCwKKwkJCQkJCQkJCQkJIEludmFsaWRP aWQsIHRydWUpOworCQkJfQorCisJCQloZWFwX2ZyZWV0dXBsZShwZ19pbmRleF90dXBsZSk7 CisJCX0KKworCQl0YWJsZV9jbG9zZShwZ19pbmRleCwgUm93RXhjbHVzaXZlTG9jayk7CisJ fQorCiAJLyogcmVwZWF0IHRoZSB3aG9sZSBleGVyY2lzZSBmb3IgdGhlIHRvYXN0IHRhYmxl LCBpZiB0aGVyZSdzIG9uZSAqLwogCWlmIChPaWRJc1ZhbGlkKHJlbC0+cmRfcmVsLT5yZWx0 b2FzdHJlbGlkKSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhs b2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCmluZGV4IDMzZjFjN2UzMWIu LmY1NjkzYjc5ZTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5o CisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCkBAIC01MSwxMyArNTEsMTQg QEAgdHlwZWRlZiBzdHJ1Y3QgZ2lzdHhsb2dEZWxldGUKIHsKIAlUcmFuc2FjdGlvbklkIHNu YXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJbnRvZGVsZXRlOwkJLyogbnVtYmVy IG9mIGRlbGV0ZWQgb2Zmc2V0cyAqLworCWJvb2wgICAgICAgIG1heUNvbmZsaWN0SW5Mb2dp Y2FsRGVjb2Rpbmc7CiAKIAkvKgogCSAqIEluIHBheWxvYWQgb2YgYmxrIDAgOiB0b2RlbGV0 ZSBPZmZzZXROdW1iZXJzCiAJICovCiB9IGdpc3R4bG9nRGVsZXRlOwogCi0jZGVmaW5lIFNp emVPZkdpc3R4bG9nRGVsZXRlCShvZmZzZXRvZihnaXN0eGxvZ0RlbGV0ZSwgbnRvZGVsZXRl KSArIHNpemVvZih1aW50MTYpKQorI2RlZmluZSBTaXplT2ZHaXN0eGxvZ0RlbGV0ZQkob2Zm c2V0b2YoZ2lzdHhsb2dEZWxldGUsIG1heUNvbmZsaWN0SW5Mb2dpY2FsRGVjb2RpbmcpICsg c2l6ZW9mKGJvb2wpKQogCiAvKgogICogQmFja3VwIEJsayAwOiBJZiB0aGlzIG9wZXJhdGlv biBjb21wbGV0ZXMgYSBwYWdlIHNwbGl0LCBieSBpbnNlcnRpbmcgYQpAQCAtMTAwLDkgKzEw MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBnaXN0eGxvZ1BhZ2VSZXVzZQogCVJlbEZpbGVMb2Nh dG9yIGxvY2F0b3I7CiAJQmxvY2tOdW1iZXIgYmxvY2s7CiAJRnVsbFRyYW5zYWN0aW9uSWQg c25hcHNob3RDb25mbGljdEhvcml6b247CisJYm9vbCAgICAgICAgbWF5Q29uZmxpY3RJbkxv Z2ljYWxEZWNvZGluZzsKIH0gZ2lzdHhsb2dQYWdlUmV1c2U7CiAKLSNkZWZpbmUgU2l6ZU9m R2lzdHhsb2dQYWdlUmV1c2UJKG9mZnNldG9mKGdpc3R4bG9nUGFnZVJldXNlLCBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbikgKyBzaXplb2YoRnVsbFRyYW5zYWN0aW9uSWQpKQorI2RlZmlu ZSBTaXplT2ZHaXN0eGxvZ1BhZ2VSZXVzZQkob2Zmc2V0b2YoZ2lzdHhsb2dQYWdlUmV1c2Us IG1heUNvbmZsaWN0SW5Mb2dpY2FsRGVjb2RpbmcpICsgc2l6ZW9mKGJvb2wpKQogCiBleHRl cm4gdm9pZCBnaXN0X3JlZG8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwogZXh0ZXJuIHZv aWQgZ2lzdF9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmggYi9zcmMvaW5j bHVkZS9hY2Nlc3MvaGFzaF94bG9nLmgKaW5kZXggNmRhZmI0YTU5OC4uNjI3Zjk4YjlhMSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oCisrKyBiL3NyYy9p bmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cuaApAQCAtMjUyLDEyICsyNTIsMTMgQEAgdHlwZWRl ZiBzdHJ1Y3QgeGxfaGFzaF92YWN1dW1fb25lX3BhZ2UKIHsKIAlUcmFuc2FjdGlvbklkIHNu YXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCWludAkJCW50dXBsZXM7CisJYm9vbCAgICAgICAg bWF5Q29uZmxpY3RJbkxvZ2ljYWxEZWNvZGluZzsKIAogCS8qIFRBUkdFVCBPRkZTRVQgTlVN QkVSUyBGT0xMT1cgQVQgVEhFIEVORCAqLwogfSB4bF9oYXNoX3ZhY3V1bV9vbmVfcGFnZTsK IAogI2RlZmluZSBTaXplT2ZIYXNoVmFjdXVtT25lUGFnZSBcCi0JKG9mZnNldG9mKHhsX2hh c2hfdmFjdXVtX29uZV9wYWdlLCBudHVwbGVzKSArIHNpemVvZihpbnQpKQorCShvZmZzZXRv Zih4bF9oYXNoX3ZhY3V1bV9vbmVfcGFnZSwgbWF5Q29uZmxpY3RJbkxvZ2ljYWxEZWNvZGlu ZykgKyBzaXplb2YoYm9vbCkpCiAKIGV4dGVybiB2b2lkIGhhc2hfcmVkbyhYTG9nUmVhZGVy U3RhdGUgKnJlY29yZCk7CiBleHRlcm4gdm9pZCBoYXNoX2Rlc2MoU3RyaW5nSW5mbyBidWYs IFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW1feGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgK aW5kZXggNWM3NzI5MGVlYy4uNWRmN2FhZDBlMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbV94bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94 bG9nLmgKQEAgLTI0NSwxMCArMjQ1LDExIEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfcHJ1 bmUKIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJ bnJlZGlyZWN0ZWQ7CiAJdWludDE2CQluZGVhZDsKKwlib29sICAgICAgICBtYXlDb25mbGlj dEluTG9naWNhbERlY29kaW5nOwogCS8qIE9GRlNFVCBOVU1CRVJTIGFyZSBpbiB0aGUgYmxv Y2sgcmVmZXJlbmNlIDAgKi8KIH0geGxfaGVhcF9wcnVuZTsKIAotI2RlZmluZSBTaXplT2ZI ZWFwUHJ1bmUgKG9mZnNldG9mKHhsX2hlYXBfcHJ1bmUsIG5kZWFkKSArIHNpemVvZih1aW50 MTYpKQorI2RlZmluZSBTaXplT2ZIZWFwUHJ1bmUgKG9mZnNldG9mKHhsX2hlYXBfcHJ1bmUs IG1heUNvbmZsaWN0SW5Mb2dpY2FsRGVjb2RpbmcpICsgc2l6ZW9mKGJvb2wpKQogCiAvKgog ICogVGhlIHZhY3V1bSBwYWdlIHJlY29yZCBpcyBzaW1pbGFyIHRvIHRoZSBwcnVuZSByZWNv cmQsIGJ1dCBjYW4gb25seSBtYXJrCkBAIC0zNDQsMTIgKzM0NSwxMyBAQCB0eXBlZGVmIHN0 cnVjdCB4bF9oZWFwX2ZyZWV6ZV9wYWdlCiB7CiAJVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENv bmZsaWN0SG9yaXpvbjsKIAl1aW50MTYJCW5wbGFuczsKKwlib29sICAgICAgICBtYXlDb25m bGljdEluTG9naWNhbERlY29kaW5nOwogCiAJLyogRlJFRVpFIFBMQU5TIEZPTExPVyAqLwog CS8qIE9GRlNFVCBOVU1CRVIgQVJSQVkgRk9MTE9XUyAqLwogfSB4bF9oZWFwX2ZyZWV6ZV9w YWdlOwogCi0jZGVmaW5lIFNpemVPZkhlYXBGcmVlemVQYWdlIChvZmZzZXRvZih4bF9oZWFw X2ZyZWV6ZV9wYWdlLCBucGxhbnMpICsgc2l6ZW9mKHVpbnQxNikpCisjZGVmaW5lIFNpemVP ZkhlYXBGcmVlemVQYWdlIChvZmZzZXRvZih4bF9oZWFwX2ZyZWV6ZV9wYWdlLCBtYXlDb25m bGljdEluTG9naWNhbERlY29kaW5nKSArIHNpemVvZihib29sKSkKIAogLyoKICAqIFRoaXMg aXMgd2hhdCB3ZSBuZWVkIHRvIGtub3cgYWJvdXQgc2V0dGluZyBhIHZpc2liaWxpdHkgbWFw IGJpdApAQCAtNDA4LDcgKzQxMCw3IEBAIGV4dGVybiB2b2lkIGhlYXAyX2Rlc2MoU3RyaW5n SW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIGV4dGVybiBjb25zdCBjaGFy ICpoZWFwMl9pZGVudGlmeSh1aW50OCBpbmZvKTsKIGV4dGVybiB2b2lkIGhlYXBfeGxvZ19s b2dpY2FsX3Jld3JpdGUoWExvZ1JlYWRlclN0YXRlICpyKTsKIAotZXh0ZXJuIFhMb2dSZWNQ dHIgbG9nX2hlYXBfdmlzaWJsZShSZWxGaWxlTG9jYXRvciBybG9jYXRvciwgQnVmZmVyIGhl YXBfYnVmZmVyLAorZXh0ZXJuIFhMb2dSZWNQdHIgbG9nX2hlYXBfdmlzaWJsZShSZWxhdGlv biByZWwsIEJ1ZmZlciBoZWFwX2J1ZmZlciwKIAkJCQkJCQkJICAgQnVmZmVyIHZtX2J1ZmZl ciwKIAkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwK IAkJCQkJCQkJICAgdWludDggdm1mbGFncyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvbmJ0eGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaAppbmRleCAz YjJkOTU5YzY5Li5hYWE2OTdhZmJiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv bmJ0eGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmgKQEAgLTE4OCw5 ICsxODgsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfYnRyZWVfcmV1c2VfcGFnZQogCVJlbEZp bGVMb2NhdG9yIGxvY2F0b3I7CiAJQmxvY2tOdW1iZXIgYmxvY2s7CiAJRnVsbFRyYW5zYWN0 aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b247CisJYm9vbCAgICAgICAgbWF5Q29uZmxp Y3RJbkxvZ2ljYWxEZWNvZGluZzsKIH0geGxfYnRyZWVfcmV1c2VfcGFnZTsKIAotI2RlZmlu ZSBTaXplT2ZCdHJlZVJldXNlUGFnZQkoc2l6ZW9mKHhsX2J0cmVlX3JldXNlX3BhZ2UpKQor I2RlZmluZSBTaXplT2ZCdHJlZVJldXNlUGFnZQkob2Zmc2V0b2YoeGxfYnRyZWVfcmV1c2Vf cGFnZSwgbWF5Q29uZmxpY3RJbkxvZ2ljYWxEZWNvZGluZykgKyBzaXplb2YoYm9vbCkpCiAK IC8qCiAgKiB4bF9idHJlZV92YWN1dW0gYW5kIHhsX2J0cmVlX2RlbGV0ZSByZWNvcmRzIGRl c2NyaWJlIGRlbGV0aW9uIG9mIGluZGV4CkBAIC0yMzUsMTMgKzIzNiwxNCBAQCB0eXBlZGVm IHN0cnVjdCB4bF9idHJlZV9kZWxldGUKIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uOwogCXVpbnQxNgkJbmRlbGV0ZWQ7CiAJdWludDE2CQludXBkYXRlZDsKKwli b29sICAgICAgICBtYXlDb25mbGljdEluTG9naWNhbERlY29kaW5nOwogCiAJLyogREVMRVRF RCBUQVJHRVQgT0ZGU0VUIE5VTUJFUlMgRk9MTE9XICovCiAJLyogVVBEQVRFRCBUQVJHRVQg T0ZGU0VUIE5VTUJFUlMgRk9MTE9XICovCiAJLyogVVBEQVRFRCBUVVBMRVMgTUVUQURBVEEg KHhsX2J0cmVlX3VwZGF0ZSkgQVJSQVkgRk9MTE9XUyAqLwogfSB4bF9idHJlZV9kZWxldGU7 CiAKLSNkZWZpbmUgU2l6ZU9mQnRyZWVEZWxldGUJKG9mZnNldG9mKHhsX2J0cmVlX2RlbGV0 ZSwgbnVwZGF0ZWQpICsgc2l6ZW9mKHVpbnQxNikpCisjZGVmaW5lIFNpemVPZkJ0cmVlRGVs ZXRlCShvZmZzZXRvZih4bF9idHJlZV9kZWxldGUsIG1heUNvbmZsaWN0SW5Mb2dpY2FsRGVj b2RpbmcpICsgc2l6ZW9mKGJvb2wpKQogCiAvKgogICogVGhlIG9mZnNldHMgdGhhdCBhcHBl YXIgaW4geGxfYnRyZWVfdXBkYXRlIG1ldGFkYXRhIGFyZSBvZmZzZXRzIGludG8gdGhlCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oIGIvc3JjL2luY2x1ZGUv YWNjZXNzL3NwZ3hsb2cuaAppbmRleCA4MjMzMmNiNjk0Li5lYmQxMTA3NTc0IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9zcGd4bG9nLmgKQEAgLTI0MCw2ICsyNDAsNyBAQCB0eXBlZGVmIHN0cnVjdCBzcGd4 bG9nVmFjdXVtUmVkaXJlY3QKIAl1aW50MTYJCW5Ub1BsYWNlaG9sZGVyOyAvKiBudW1iZXIg b2YgcmVkaXJlY3RzIHRvIG1ha2UgcGxhY2Vob2xkZXJzICovCiAJT2Zmc2V0TnVtYmVyIGZp cnN0UGxhY2Vob2xkZXI7CS8qIGZpcnN0IHBsYWNlaG9sZGVyIHR1cGxlIHRvIHJlbW92ZSAq LwogCVRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b247CS8qIG5ld2VzdCBY SUQgb2YgcmVtb3ZlZCByZWRpcmVjdHMgKi8KKwlib29sICAgICAgICBtYXlDb25mbGljdElu TG9naWNhbERlY29kaW5nOwogCiAJLyogb2Zmc2V0cyBvZiByZWRpcmVjdCB0dXBsZXMgdG8g bWFrZSBwbGFjZWhvbGRlcnMgZm9sbG93ICovCiAJT2Zmc2V0TnVtYmVyIG9mZnNldHNbRkxF WElCTEVfQVJSQVlfTUVNQkVSXTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92 aXNpYmlsaXR5bWFwZGVmcy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBk ZWZzLmgKaW5kZXggMjgwM2VmNWMwNy4uNjAwNWRmMzI3OCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKQEAgLTE3LDkgKzE3LDEwIEBACiAjZGVmaW5lIEJJ VFNfUEVSX0hFQVBCTE9DSyAyCiAKIC8qIEZsYWdzIGZvciBiaXQgbWFwICovCi0jZGVmaW5l IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUJMHgwMQotI2RlZmluZSBWSVNJQklMSVRZTUFQ X0FMTF9GUk9aRU4JMHgwMgotI2RlZmluZSBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMJMHgw MwkvKiBPUiBvZiBhbGwgdmFsaWQgdmlzaWJpbGl0eW1hcAotCQkJCQkJCQkJCQkgKiBmbGFn cyBiaXRzICovCisjZGVmaW5lIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUJCQkJCQkJCTB4 MDEKKyNkZWZpbmUgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOCQkJCQkJCQkweDAyCisjZGVm aW5lIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUwkJCQkJCQkJMHgwMwkvKiBPUiBvZiBhbGwg dmFsaWQgdmlzaWJpbGl0eW1hcAorCQkJCQkJCQkJCQkJCQkJCQkJICogZmxhZ3MgYml0cyAq LworI2RlZmluZSBWSVNJQklMSVRZTUFQX09OX0NBVEFMT0dfQUNDRVNTSUJMRV9JTl9MT0dJ Q0FMX0RFQ09ESU5HCTB4MDQKIAogI2VuZGlmCQkJCQkJCS8qIFZJU0lCSUxJVFlNQVBERUZT X0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaAppbmRleCBmODUzODQ2ZWUxLi5kZDE2NDMx Mzc4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4LmgKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oCkBAIC00Myw2ICs0Myw4IEBAIENBVEFM T0cocGdfaW5kZXgsMjYxMCxJbmRleFJlbGF0aW9uSWQpIEJLSV9TQ0hFTUFfTUFDUk8KIAli b29sCQlpbmRjaGVja3htaW47CS8qIG11c3Qgd2Ugd2FpdCBmb3IgeG1pbiB0byBiZSBvbGQ/ ICovCiAJYm9vbAkJaW5kaXNyZWFkeTsJCS8qIGlzIHRoaXMgaW5kZXggcmVhZHkgZm9yIGlu c2VydHM/ICovCiAJYm9vbAkJaW5kaXNsaXZlOwkJLyogaXMgdGhpcyBpbmRleCBhbGl2ZSBh dCBhbGw/ICovCisJYm9vbAkJaW5kaXN1c2VyY2F0YWxvZzsJLyogaXMgdGhpcyBpbmRleCBs aW5rZWQgdG8gYSB1c2VyIGNhdGFsb2cKKwkJCQkJCQkJCSAqIHJlbGF0aW9uPyAqLwogCWJv b2wJCWluZGlzcmVwbGlkZW50OyAvKiBpcyB0aGlzIGluZGV4IHRoZSBpZGVudGl0eSBmb3Ig cmVwbGljYXRpb24/ICovCiAKIAkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhl cmUsIGJ1dCB3ZSBhbGxvdyBkaXJlY3QgYWNjZXNzIHRvIGluZGtleSAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApp bmRleCBmMzgzYTJmY2E5Li41ZDQxZWY2NTA1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91 dGlscy9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApAQCAtMjcsNiArMjcs NyBAQAogI2luY2x1ZGUgInN0b3JhZ2Uvc21nci5oIgogI2luY2x1ZGUgInV0aWxzL3JlbGNh Y2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsdHJpZ2dlci5oIgorI2luY2x1ZGUgImNhdGFs b2cvY2F0YWxvZy5oIgogCiAKIC8qCkBAIC0zNDMsNiArMzQ0LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgU3RkUmRPcHRpb25zCiAKICNkZWZpbmUgSEVBUF9NSU5fRklMTEZBQ1RPUgkJCTEwCiAj ZGVmaW5lIEhFQVBfREVGQVVMVF9GSUxMRkFDVE9SCQkxMDAKKyNkZWZpbmUgSEVBUF9ERUZB VUxUX1VTRVJfQ0FUQUxPR19UQUJMRQkJZmFsc2UKIAogLyoKICAqIFJlbGF0aW9uR2V0VG9h c3RUdXBsZVRhcmdldApAQCAtMzg1LDYgKzM4NywxNSBAQCB0eXBlZGVmIHN0cnVjdCBTdGRS ZE9wdGlvbnMKIAkgIChyZWxhdGlvbiktPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX01B VFZJRVcpID8gXAogCSAoKFN0ZFJkT3B0aW9ucyAqKSAocmVsYXRpb24pLT5yZF9vcHRpb25z KS0+dXNlcl9jYXRhbG9nX3RhYmxlIDogZmFsc2UpCiAKKy8qCisgKiBJbmRleElzTGlua2Vk VG9Vc2VyQ2F0YWxvZ1RhYmxlCisgKgkJUmV0dXJucyB3aGV0aGVyIHRoZSByZWxhdGlvbiBz aG91bGQgYmUgdHJlYXRlZCBhcyBhbiBpbmRleCBsaW5rZWQgdG8KKyAqCQlhIHVzZXIgY2F0 YWxvZyB0YWJsZSBmcm9tIHRoZSBwb3Ygb2YgbG9naWNhbCBkZWNvZGluZy4KKyAqLworI2Rl ZmluZSBJbmRleElzTGlua2VkVG9Vc2VyQ2F0YWxvZ1RhYmxlKHJlbGF0aW9uKQlcCisJKChy ZWxhdGlvbiktPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0lOREVYICYmIFwKKwkgKHJl bGF0aW9uKS0+cmRfaW5kZXgtPmluZGlzdXNlcmNhdGFsb2cpCisKIC8qCiAgKiBSZWxhdGlv bkdldFBhcmFsbGVsV29ya2VycwogICoJCVJldHVybnMgdGhlIHJlbGF0aW9uJ3MgcGFyYWxs ZWxfd29ya2VycyByZWxvcHRpb24gc2V0dGluZy4KQEAgLTY4Miw3ICs2OTMsOCBAQCBSZWxh dGlvbkNsb3NlU21ncihSZWxhdGlvbiByZWxhdGlvbikKICNkZWZpbmUgUmVsYXRpb25Jc0Fj Y2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxhdGlvbikgXAogCShYTG9nTG9naWNhbElu Zm9BY3RpdmUoKSAmJiBcCiAJIFJlbGF0aW9uTmVlZHNXQUwocmVsYXRpb24pICYmIFwKLQkg KElzQ2F0YWxvZ1JlbGF0aW9uKHJlbGF0aW9uKSB8fCBSZWxhdGlvbklzVXNlZEFzQ2F0YWxv Z1RhYmxlKHJlbGF0aW9uKSkpCisJIChJc0NhdGFsb2dSZWxhdGlvbihyZWxhdGlvbikgfHwg UmVsYXRpb25Jc1VzZWRBc0NhdGFsb2dUYWJsZShyZWxhdGlvbikgfHwgXAorCSAgSW5kZXhJ c0xpbmtlZFRvVXNlckNhdGFsb2dUYWJsZShyZWxhdGlvbikpKQogCiAvKgogICogUmVsYXRp b25Jc0xvZ2ljYWxseUxvZ2dlZAotLSAKMi4zNC4xCgo= --------------r9KIatASOpVniPvrBi6hlPOw--