Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sllYp-0013TA-Ue for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Sep 2024 08:40:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sllYo-006R8x-B4 for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Sep 2024 08:40:18 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sllYm-006R7O-Ei for pgsql-hackers@lists.postgresql.org; Wed, 04 Sep 2024 08:40:18 +0000 Received: from fout1-smtp.messagingengine.com ([103.168.172.144]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sllYg-0005li-V3 for pgsql-hackers@postgresql.org; Wed, 04 Sep 2024 08:40:16 +0000 Received: from phl-compute-07.internal (phl-compute-07.phl.internal [10.202.2.47]) by mailfout.phl.internal (Postfix) with ESMTP id D6A3D13802F0; Wed, 4 Sep 2024 04:40:08 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-07.internal (MEProxy); Wed, 04 Sep 2024 04:40:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm3; t=1725439208; x= 1725525608; bh=A6Yt+6dxhOyVIRcNjFHyGJ0EK+yEWkE84hMGoBGiqUc=; b=r Oel0N7SIiUCVs2HzitAm7CnJ4RLsIBAJRFKd1AJXrd3qYoLBJgUCULclr1Fq5T+d AdxLbXynCs4hj9dPWcTDgttK+pvSBTPtfsurnG1RcoMn0H2mC+69hZknnQYgacj6 +vaiHRncioxwIjEYSR+VhSOEzyIUnN18vZXyLu7T8eV4At+SaasVgsp45m6Ugvwt Xjd2dHkq8qZEKQQnMHMEpd8e3H7z0MpvalBpk6rVI61+0K497D8/pPov48aUx0wp Q1P0Vg8wxJll7KpyWUpkQIfb8ypyhtZ31dQjTjdUtaNvS6MeEo+4puk4uWJn8RId cECOA4b9j54mvLAB2RMaQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1725439208; x=1725525608; bh=A6Yt+6dxhOyVIRcNjFHyGJ0EK+yE WkE84hMGoBGiqUc=; b=gX9OdkjMQCzY4H0JIlYkCLKpkJDpKs1btJPJz8AR6W15 OujjJMVRkH4W7+CQNnwzmTst8D62HmOwHCmudgo+8Pn3xbH0b9EaO2eduwj8q5NE vVytDG7zdyH2jG0pLDOJjpCxNhhyKdCi7FyHKEftrR4GwBYnieU9h0Jlfh2qqAV6 XgG3YUIfdOxIMXJVyKwUbDTAD1y+x8Ks0uJB5NPE8WN5ccPiegXEoSmqRkbXr4A5 d/5LGXjM28PodEHk6cv55n2ySH2NopCUvhRrXMgSr2jZ/j2dOsNVdK04Iq9WJhRb n9XOoxal5Eg+dLGdCAHu59dTpLjcXxsL95e8eOBuLw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudehjedgtdeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeen ucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhesvghishgvnh htrhgruhhtrdhorhhgqeenucggtffrrghtthgvrhhnpeektdeutdfhvdfhveeigfffteeg vdejvdfhhfevfeevgfdtgfelgeehieevhffgieenucevlhhushhtvghrufhiiigvpedtne curfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrsegvihhsvghnthhrrghuthdrohhr ghdpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepug gvrghnrdgrrdhrrghshhgvvggusehgmhgrihhlrdgtohhmpdhrtghpthhtohepjhhirghn rdhunhhivhgvrhhsrghlihhthiesghhmrghilhdrtghomhdprhgtphhtthhopehpghhsqh hlqdhhrggtkhgvrhhssehpohhsthhgrhgvshhqlhdrohhrgh X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 4 Sep 2024 04:40:07 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------4tOkN9sGtkmNYDkRTr5LBCyv" Message-ID: Date: Wed, 4 Sep 2024 10:40:06 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Virtual generated columns To: Dean Rasheed Cc: jian he , pgsql-hackers References: <732a9543-0312-4f0c-a471-857b507a3546@eisentraut.org> <0f811f71-8c86-4e1b-b3bb-6a535674a440@eisentraut.org> Content-Language: en-US From: Peter Eisentraut 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. --------------4tOkN9sGtkmNYDkRTr5LBCyv Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 21.08.24 12:51, Dean Rasheed wrote: > On Wed, 21 Aug 2024 at 08:00, Peter Eisentraut wrote: >> On 08.08.24 20:22, Dean Rasheed wrote: >>> Looking at the rewriter changes, it occurred to me that it could >>> perhaps be done more simply using ReplaceVarsFromTargetList() for each >>> RTE with virtual generated columns. That function already has the >>> required wholerow handling code, so there'd be less code duplication. >> Hmm, I don't quite see how ReplaceVarsFromTargetList() could be used >> here. It does have the wholerow logic that we need somehow, but other >> than that it seems to target something different? >> > Well what I was thinking was that (in fireRIRrules()'s final loop over > relations in the rtable), if the relation had any virtual generated > columns, you'd build a targetlist containing a TLE for each one, > containing the generated expression. Then you could just call > ReplaceVarsFromTargetList() to replace any Vars in the query with the > corresponding generated expressions. That takes care of descending > into subqueries, adjusting varlevelsup, and expanding wholerow Vars > that might refer to the generated expression. > > I also have half an eye on how this patch will interact with my patch > to support RETURNING OLD/NEW values. If you use > ReplaceVarsFromTargetList(), it should just do the right thing for > RETURNING OLD/NEW generated expressions. Here is an implementation of this. It's much nicer! It also appears to fix all the additional test cases that have been presented. (I haven't integrated them into the patch set yet.) I left the 0001 patch alone for now and put the new rewriting implementation into 0002. (Unfortunately, the diff is kind of useless for visual inspection.) Let me know if this matches what you had in mind, please. Also, is this the right place in fireRIRrules()? --------------4tOkN9sGtkmNYDkRTr5LBCyv Content-Type: text/plain; charset=UTF-8; name="v6-0001-Virtual-generated-columns.patch" Content-Disposition: attachment; filename="v6-0001-Virtual-generated-columns.patch" Content-Transfer-Encoding: base64 RnJvbSA5ZWFiYjVkMTk2ZjYzZWRkOTM0YmI5YjdiZTBjMjQ2YWJiZWEyNjBhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxMTo0OTo0OCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgMS8yXSBWaXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCgpUaGlzIGFkZHMg YSBuZXcgdmFyaWFudCBvZiBnZW5lcmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBjb21wdXRlZCBv biByZWFkCihsaWtlIGEgdmlldywgdW5saWtlIHRoZSBleGlzdGluZyBzdG9yZWQgZ2VuZXJh dGVkIGNvbHVtbnMsIHdoaWNoIGFyZQpjb21wdXRlZCBvbiB3cml0ZSwgbGlrZSBhIG1hdGVy aWFsaXplZCB2aWV3KS4KClNvbWUgZnVuY3Rpb25hbGl0eSBpcyBjdXJyZW50bHkgbm90IHN1 cHBvcnRlZCAoYnV0IGNvdWxkIHBvc3NpYmx5IGJlCmFkZGVkIGFzIGluY3JlbWVudGFsIGZl YXR1cmVzLCBzb21lIGVhc2llciB0aGFuIG90aGVycyk6CgotIGluZGV4IG9uIHZpcnR1YWwg Y29sdW1uCi0gZXhwcmVzc2lvbiBpbmRleCB1c2luZyBhIHZpcnR1YWwgY29sdW1uCi0gaGVu Y2UgYWxzbyBubyB1bmlxdWUgY29uc3RyYWludHMgb24gdmlydHVhbCBjb2x1bW5zCi0gbm90 LW51bGwgY29uc3RyYWludHMgb24gdmlydHVhbCBjb2x1bW5zCi0gKGNoZWNrIGNvbnN0cmFp bnRzIGFyZSBzdXBwb3J0ZWQpCi0gZm9yZWlnbiBrZXkgY29uc3RyYWludHMgb24gdmlydHVh bCBjb2x1bW5zCi0gZXh0ZW5kZWQgc3RhdGlzdGljcyBvbiB2aXJ0dWFsIGNvbHVtbnMKLSBB TFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OCi0gQUxURVIgVEFCTEUgLyBEUk9QIEVYUFJF U1NJT04KLSB2aXJ0dWFsIGNvbHVtbnMgYXMgdHJpZ2dlciBjb2x1bW5zCi0gdmlydHVhbCBj b2x1bW4gY2Fubm90IGhhdmUgZG9tYWluIHR5cGUKClRPRE86Ci0gYW5hbHlzaXMgb2YgYWNj ZXNzIGNvbnRyb2wKLSBjaGVjayBGRFcvZm9yZWlnbiB0YWJsZSBiZWhhdmlvcgoKRGlzY3Vz c2lvbjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0L2EzNjgy NDhlLTY5ZTQtNDBiZS05YzA3LTZjM2I1ODgwYjBhNkBlaXNlbnRyYXV0Lm9yZwotLS0KIGNv bnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvcGFnZS5vdXQgICAgICAgICB8ICAzNSArCiBj b250cmliL3BhZ2VpbnNwZWN0L3NxbC9wYWdlLnNxbCAgICAgICAgICAgICAgfCAgMTcgKwog Li4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0ICAgIHwgIDgxICst CiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCAgICAgfCAgIDkg Ky0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDI1ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwgICAgICAgICAgICAg fCAgMTQgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbCAg ICB8ICAxMSArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAg ICAgIHwgIDIyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90cmlnZ2VyLnNnbWwgICAg ICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwgICAgICAgICAgICAg ICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyAg ICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRs ZXIuYyAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAgICAg ICAgICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jICAg ICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5j ICAgICAgICAgICAgICB8ICAyOSArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRz LmMgICAgICAgICAgICAgIHwgIDIwICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYyAgICAgICAgICAgICAgfCAxMjQgKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy90cmln Z2VyLmMgICAgICAgICAgICAgICAgfCAgNDggKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNFeHBySW50ZXJwLmMgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9leGVjdXRvci9l eGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMgICAgICAgICAgICAgICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMTUgKy0KIHNyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9jbGF1c2UuYyAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfbWVyZ2UuYyAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTQgKy0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8ICAgMyArLQogc3JjL2JhY2tl bmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jICAgICAgICAgIHwgMTcxICsrKy0KIHNyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL3BhcnRjYWNoZS5jICAgICAgICAgICB8ICAgMyArCiBzcmMv YmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAgICAgfCAgIDIgKwogc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNy Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAgNiArLQog c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsK IHNyYy9pbmNsdWRlL2FjY2Vzcy90dXBkZXNjLmggICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaCAgICAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCAgICAgICAgICAgIHwgICAx ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAg MyArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCAgICAgICAgICB8 ICAgMiArCiBzcmMvcGwvcGxwZXJsL2V4cGVjdGVkL3BscGVybF90cmlnZ2VyLm91dCAgICAg fCAgIDcgKy0KIHNyYy9wbC9wbHBlcmwvcGxwZXJsLmMgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMyArCiBzcmMvcGwvcGxwZXJsL3NxbC9wbHBlcmxfdHJpZ2dlci5zcWwgICAgICAg ICAgfCAgIDMgKy0KIHNyYy9wbC9wbHB5dGhvbi9leHBlY3RlZC9wbHB5dGhvbl90cmlnZ2Vy Lm91dCB8ICAgNyArLQogc3JjL3BsL3BscHl0aG9uL3BscHlfdHlwZWlvLmMgICAgICAgICAg ICAgICAgIHwgICAzICsKIHNyYy9wbC9wbHB5dGhvbi9zcWwvcGxweXRob25fdHJpZ2dlci5z cWwgICAgICB8ICAgMyArLQogc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF90cmlnZ2VyLm91 dCAgICAgICAgIHwgIDE5ICstCiBzcmMvcGwvdGNsL3BsdGNsLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDMgKwogc3JjL3BsL3RjbC9zcWwvcGx0Y2xfdHJpZ2dlci5zcWwg ICAgICAgICAgICAgIHwgICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFi bGVfbGlrZS5vdXQgICAgfCAgMjMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRl ZF9zdG9yZWQub3V0ICAgICB8ICAzMiArLQogLi4ucmF0ZWRfc3RvcmVkLm91dCA9PiBnZW5l cmF0ZWRfdmlydHVhbC5vdXR9IHwgODcxICsrKysrKysrKy0tLS0tLS0tLQogc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAzICsKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCAgICB8ICAgMiArLQogc3JjL3Rl c3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwgICAgIHwgIDE0ICstCiAuLi5y YXRlZF9zdG9yZWQuc3FsID0+IGdlbmVyYXRlZF92aXJ0dWFsLnNxbH0gfCAzMzYgKysrKy0t LQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDExX2dlbmVyYXRlZC5wbCAgICAgIHwgIDM4 ICstCiA1OCBmaWxlcyBjaGFuZ2VkLCAxMzkxIGluc2VydGlvbnMoKyksIDcxMCBkZWxldGlv bnMoLSkKIGNvcHkgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC97Z2VuZXJhdGVkX3N0b3Jl ZC5vdXQgPT4gZ2VuZXJhdGVkX3ZpcnR1YWwub3V0fSAoNjclKQogY29weSBzcmMvdGVzdC9y ZWdyZXNzL3NxbC97Z2VuZXJhdGVkX3N0b3JlZC5zcWwgPT4gZ2VuZXJhdGVkX3ZpcnR1YWwu c3FsfSAoNjklKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQv cGFnZS5vdXQgYi9jb250cmliL3BhZ2VpbnNwZWN0L2V4cGVjdGVkL3BhZ2Uub3V0CmluZGV4 IDgwZGRiNDVhNjBhLi43ZTBiMDllMjc5YiAxMDA2NDQKLS0tIGEvY29udHJpYi9wYWdlaW5z cGVjdC9leHBlY3RlZC9wYWdlLm91dAorKysgYi9jb250cmliL3BhZ2VpbnNwZWN0L2V4cGVj dGVkL3BhZ2Uub3V0CkBAIC0yMDgsNiArMjA4LDQxIEBAIHNlbGVjdCB0dXBsZV9kYXRhX3Nw bGl0KCd0ZXN0OCc6OnJlZ2NsYXNzLCB0X2RhdGEsIHRfaW5mb21hc2ssIHRfaW5mb21hc2sy LCB0X2JpCiAoMSByb3cpCiAKIGRyb3AgdGFibGUgdGVzdDg7CistLSBjaGVjayBzdG9yYWdl IG9mIGdlbmVyYXRlZCBjb2x1bW5zCistLSBzdG9yZWQKK2NyZWF0ZSB0YWJsZSB0ZXN0OXMg KGEgaW50IG5vdCBudWxsLCBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3Rv cmVkKTsKK2luc2VydCBpbnRvIHRlc3Q5cyB2YWx1ZXMgKDEzMTU4NCk7CitzZWxlY3QgdF9p bmZvbWFzaywgdF9iaXRzLCB0X2RhdGEgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19w YWdlKCd0ZXN0OXMnLCAwKSk7CisgdF9pbmZvbWFzayB8IHRfYml0cyB8ICAgICAgIHRfZGF0 YSAgICAgICAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgIDIwNDggfCAgICAgICAgfCBceDAwMDIwMjAwMDAwNDA0MDAKKygxIHJvdykKKwor c2VsZWN0IHR1cGxlX2RhdGFfc3BsaXQoJ3Rlc3Q5cyc6OnJlZ2NsYXNzLCB0X2RhdGEsIHRf aW5mb21hc2ssIHRfaW5mb21hc2syLCB0X2JpdHMpCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRl bXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OXMnLCAwKSk7CisgICAgICAgdHVwbGVfZGF0YV9zcGxp dCAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJcXHgwMDAy MDIwMCIsIlxceDAwMDQwNDAwIn0KKygxIHJvdykKKworZHJvcCB0YWJsZSB0ZXN0OXM7Cist LSB2aXJ0dWFsCitjcmVhdGUgdGFibGUgdGVzdDl2IChhIGludCBub3QgbnVsbCwgYiBpbnQg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHZpcnR1YWwpOworaW5zZXJ0IGludG8gdGVz dDl2IHZhbHVlcyAoMTMxNTg0KTsKK3NlbGVjdCB0X2luZm9tYXNrLCB0X2JpdHMsIHRfZGF0 YSBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q5dicsIDApKTsKKyB0 X2luZm9tYXNrIHwgIHRfYml0cyAgfCAgIHRfZGF0YSAgIAorLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgMjA0OSB8IDEwMDAwMDAwIHwgXHgwMDAyMDIw MAorKDEgcm93KQorCitzZWxlY3QgdHVwbGVfZGF0YV9zcGxpdCgndGVzdDl2Jzo6cmVnY2xh c3MsIHRfZGF0YSwgdF9pbmZvbWFzaywgdF9pbmZvbWFzazIsIHRfYml0cykKKyAgICBmcm9t IGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q5dicsIDApKTsKKyAgIHR1cGxl X2RhdGFfc3BsaXQgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7IlxceDAwMDIwMjAw IixOVUxMfQorKDEgcm93KQorCitkcm9wIHRhYmxlIHRlc3Q5djsKIC0tIEZhaWx1cmUgd2l0 aCBpbmNvcnJlY3QgcGFnZSBzaXplCiAtLSBTdXBwcmVzcyB0aGUgREVUQUlMIG1lc3NhZ2Us IHRvIGFsbG93IHRoZSB0ZXN0cyB0byB3b3JrIGFjcm9zcyB2YXJpb3VzCiAtLSBwYWdlIHNp emVzLgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wYWdlaW5zcGVjdC9zcWwvcGFnZS5zcWwgYi9j b250cmliL3BhZ2VpbnNwZWN0L3NxbC9wYWdlLnNxbAppbmRleCA1YmZmNTY4ZDNiNS4uMTg2 ZGRhMWU4ZDAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGFnZWluc3BlY3Qvc3FsL3BhZ2Uuc3Fs CisrKyBiL2NvbnRyaWIvcGFnZWluc3BlY3Qvc3FsL3BhZ2Uuc3FsCkBAIC04NCw2ICs4NCwy MyBAQCBDUkVBVEUgVEVNUCBUQUJMRSB0ZXN0MSAoYSBpbnQsIGIgaW50KTsKICAgICBmcm9t IGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q4JywgMCkpOwogZHJvcCB0YWJs ZSB0ZXN0ODsKIAorLS0gY2hlY2sgc3RvcmFnZSBvZiBnZW5lcmF0ZWQgY29sdW1ucworLS0g c3RvcmVkCitjcmVhdGUgdGFibGUgdGVzdDlzIChhIGludCBub3QgbnVsbCwgYiBpbnQgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCk7CitpbnNlcnQgaW50byB0ZXN0OXMg dmFsdWVzICgxMzE1ODQpOworc2VsZWN0IHRfaW5mb21hc2ssIHRfYml0cywgdF9kYXRhIGZy b20gaGVhcF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdDlzJywgMCkpOworc2VsZWN0 IHR1cGxlX2RhdGFfc3BsaXQoJ3Rlc3Q5cyc6OnJlZ2NsYXNzLCB0X2RhdGEsIHRfaW5mb21h c2ssIHRfaW5mb21hc2syLCB0X2JpdHMpCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0 X3Jhd19wYWdlKCd0ZXN0OXMnLCAwKSk7Citkcm9wIHRhYmxlIHRlc3Q5czsKKworLS0gdmly dHVhbAorY3JlYXRlIHRhYmxlIHRlc3Q5diAoYSBpbnQgbm90IG51bGwsIGIgaW50IGdlbmVy YXRlZCBhbHdheXMgYXMgKGEgKiAyKSB2aXJ0dWFsKTsKK2luc2VydCBpbnRvIHRlc3Q5diB2 YWx1ZXMgKDEzMTU4NCk7CitzZWxlY3QgdF9pbmZvbWFzaywgdF9iaXRzLCB0X2RhdGEgZnJv bSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OXYnLCAwKSk7CitzZWxlY3Qg dHVwbGVfZGF0YV9zcGxpdCgndGVzdDl2Jzo6cmVnY2xhc3MsIHRfZGF0YSwgdF9pbmZvbWFz aywgdF9pbmZvbWFzazIsIHRfYml0cykKKyAgICBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRf cmF3X3BhZ2UoJ3Rlc3Q5dicsIDApKTsKK2Ryb3AgdGFibGUgdGVzdDl2OworCiAtLSBGYWls dXJlIHdpdGggaW5jb3JyZWN0IHBhZ2Ugc2l6ZQogLS0gU3VwcHJlc3MgdGhlIERFVEFJTCBt ZXNzYWdlLCB0byBhbGxvdyB0aGUgdGVzdHMgdG8gd29yayBhY3Jvc3MgdmFyaW91cwogLS0g cGFnZSBzaXplcy4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVk L3Bvc3RncmVzX2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0 Z3Jlc19mZHcub3V0CmluZGV4IGYzZWIwNTVlMmM3Li45MjZjMWZkZGJlMyAxMDA2NDQKLS0t IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysg Yi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC03 MjgzLDY1ICs3MjgzLDY4IEBAIHNlbGVjdCAqIGZyb20gcmVtMTsKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIGNyZWF0ZSB0YWJsZSBnbG9jMSAoCiAgIGEgaW50LAotICBiIGludCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChhICogMikgc3RvcmVkKTsKKyAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBh cyAoYSAqIDIpIHN0b3JlZCwKKyAgYyBpbnQKKyk7CiBhbHRlciB0YWJsZSBnbG9jMSBzZXQg KGF1dG92YWN1dW1fZW5hYmxlZCA9ICdmYWxzZScpOwogY3JlYXRlIGZvcmVpZ24gdGFibGUg Z3JlbTEgKAogICBhIGludCwKLSAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIp IHN0b3JlZCkKLSAgc2VydmVyIGxvb3BiYWNrIG9wdGlvbnModGFibGVfbmFtZSAnZ2xvYzEn KTsKKyAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCwKKyAgYyBp bnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDMpIHZpcnR1YWwKKykgc2VydmVyIGxvb3Bi YWNrIG9wdGlvbnModGFibGVfbmFtZSAnZ2xvYzEnKTsKIGV4cGxhaW4gKHZlcmJvc2UsIGNv c3RzIG9mZikKIGluc2VydCBpbnRvIGdyZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5zZXJ0IG9uIHB1YmxpYy5ncmVtMQotICAg UmVtb3RlIFNRTDogSU5TRVJUIElOVE8gcHVibGljLmdsb2MxKGEsIGIpIFZBTFVFUyAoJDEs IERFRkFVTFQpCisgICBSZW1vdGUgU1FMOiBJTlNFUlQgSU5UTyBwdWJsaWMuZ2xvYzEoYSwg YiwgYykgVkFMVUVTICgkMSwgREVGQVVMVCwgREVGQVVMVCkKICAgIEJhdGNoIFNpemU6IDEK ICAgIC0+ICBWYWx1ZXMgU2NhbiBvbiAiKlZBTFVFUyoiCi0gICAgICAgICBPdXRwdXQ6ICIq VkFMVUVTKiIuY29sdW1uMSwgTlVMTDo6aW50ZWdlcgorICAgICAgICAgT3V0cHV0OiAiKlZB TFVFUyoiLmNvbHVtbjEsIE5VTEw6OmludGVnZXIsIE5VTEw6OmludGVnZXIKICg1IHJvd3Mp CiAKIGluc2VydCBpbnRvIGdyZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7CiBleHBsYWluICh2 ZXJib3NlLCBjb3N0cyBvZmYpCiB1cGRhdGUgZ3JlbTEgc2V0IGEgPSAyMiB3aGVyZSBhID0g MjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1YmxpYy5ncmVt MQotICAgUmVtb3RlIFNRTDogVVBEQVRFIHB1YmxpYy5nbG9jMSBTRVQgYSA9ICQyLCBiID0g REVGQVVMVCBXSEVSRSBjdGlkID0gJDEKKyAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMu Z2xvYzEgU0VUIGEgPSAkMiwgYiA9IERFRkFVTFQsIGMgPSBERUZBVUxUIFdIRVJFIGN0aWQg PSAkMQogICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZ3JlbTEKICAgICAgICAgIE91 dHB1dDogMjIsIGN0aWQsIGdyZW0xLioKLSAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBh LCBiLCBjdGlkIEZST00gcHVibGljLmdsb2MxIFdIRVJFICgoYSA9IDIpKSBGT1IgVVBEQVRF CisgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwgYywgY3RpZCBGUk9NIHB1Ymxp Yy5nbG9jMSBXSEVSRSAoKGEgPSAyKSkgRk9SIFVQREFURQogKDUgcm93cykKIAogdXBkYXRl IGdyZW0xIHNldCBhID0gMjIgd2hlcmUgYSA9IDI7CiBzZWxlY3QgKiBmcm9tIGdsb2MxOwot IGEgIHwgYiAgCi0tLS0tKy0tLS0KLSAgMSB8ICAyCi0gMjIgfCA0NAorIGEgIHwgYiAgfCBj IAorLS0tLSstLS0tKy0tLQorICAxIHwgIDIgfCAgCisgMjIgfCA0NCB8ICAKICgyIHJvd3Mp CiAKIHNlbGVjdCAqIGZyb20gZ3JlbTE7Ci0gYSAgfCBiICAKLS0tLS0rLS0tLQotICAxIHwg IDIKLSAyMiB8IDQ0CisgYSAgfCBiICB8IGMgIAorLS0tLSstLS0tKy0tLS0KKyAgMSB8ICAy IHwgIDMKKyAyMiB8IDQ0IHwgNjYKICgyIHJvd3MpCiAKIGRlbGV0ZSBmcm9tIGdyZW0xOwog LS0gdGVzdCBjb3B5IGZyb20KIGNvcHkgZ3JlbTEgZnJvbSBzdGRpbjsKIHNlbGVjdCAqIGZy b20gZ2xvYzE7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSAyIHwgNAorIGEgfCBiIHwg YyAKKy0tLSstLS0rLS0tCisgMSB8IDIgfCAgCisgMiB8IDQgfCAgCiAoMiByb3dzKQogCiBz ZWxlY3QgKiBmcm9tIGdyZW0xOwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCAyCi0gMiB8IDQK KyBhIHwgYiB8IGMgCistLS0rLS0tKy0tLQorIDEgfCAyIHwgMworIDIgfCA0IHwgNgogKDIg cm93cykKIAogZGVsZXRlIGZyb20gZ3JlbTE7CkBAIC03MzQ5LDI4ICs3MzUyLDI4IEBAIGRl bGV0ZSBmcm9tIGdyZW0xOwogYWx0ZXIgc2VydmVyIGxvb3BiYWNrIG9wdGlvbnMgKGFkZCBi YXRjaF9zaXplICcxMCcpOwogZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogaW5zZXJ0 IGludG8gZ3JlbTEgKGEpIHZhbHVlcyAoMSksICgyKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICBJbnNlcnQgb24gcHVibGljLmdyZW0xCi0gICBSZW1vdGUgU1FMOiBJTlNF UlQgSU5UTyBwdWJsaWMuZ2xvYzEoYSwgYikgVkFMVUVTICgkMSwgREVGQVVMVCkKKyAgIFJl bW90ZSBTUUw6IElOU0VSVCBJTlRPIHB1YmxpYy5nbG9jMShhLCBiLCBjKSBWQUxVRVMgKCQx LCBERUZBVUxULCBERUZBVUxUKQogICAgQmF0Y2ggU2l6ZTogMTAKICAgIC0+ICBWYWx1ZXMg U2NhbiBvbiAiKlZBTFVFUyoiCi0gICAgICAgICBPdXRwdXQ6ICIqVkFMVUVTKiIuY29sdW1u MSwgTlVMTDo6aW50ZWdlcgorICAgICAgICAgT3V0cHV0OiAiKlZBTFVFUyoiLmNvbHVtbjEs IE5VTEw6OmludGVnZXIsIE5VTEw6OmludGVnZXIKICg1IHJvd3MpCiAKIGluc2VydCBpbnRv IGdyZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7CiBzZWxlY3QgKiBmcm9tIGdsb2MxOwotIGEg fCBiIAotLS0tKy0tLQotIDEgfCAyCi0gMiB8IDQKKyBhIHwgYiB8IGMgCistLS0rLS0tKy0t LQorIDEgfCAyIHwgIAorIDIgfCA0IHwgIAogKDIgcm93cykKIAogc2VsZWN0ICogZnJvbSBn cmVtMTsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgMgotIDIgfCA0CisgYSB8IGIgfCBjIAor LS0tKy0tLSstLS0KKyAxIHwgMiB8IDMKKyAyIHwgNCB8IDYKICgyIHJvd3MpCiAKIGRlbGV0 ZSBmcm9tIGdyZW0xOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bv c3RncmVzX2Zkdy5zcWwgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3 LnNxbAppbmRleCAwNzM0NzE2YWQ5MC4uMDU4ZDUzMzY0ZGIgMTAwNjQ0Ci0tLSBhL2NvbnRy aWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBiL2NvbnRyaWIvcG9z dGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCkBAIC0xODM2LDEyICsxODM2LDE1IEBA IENSRUFURSBWSUVXIHJ3X3ZpZXcgQVMgU0VMRUNUICogRlJPTSBwYXJlbnRfdGJsIFdIRVJF IGEgPCA1IFdJVEggQ0hFQ0sgT1BUSU9OOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogY3JlYXRlIHRh YmxlIGdsb2MxICgKICAgYSBpbnQsCi0gIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEg KiAyKSBzdG9yZWQpOworICBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3Rv cmVkLAorICBjIGludAorKTsKIGFsdGVyIHRhYmxlIGdsb2MxIHNldCAoYXV0b3ZhY3V1bV9l bmFibGVkID0gJ2ZhbHNlJyk7CiBjcmVhdGUgZm9yZWlnbiB0YWJsZSBncmVtMSAoCiAgIGEg aW50LAotICBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkKQotICBz ZXJ2ZXIgbG9vcGJhY2sgb3B0aW9ucyh0YWJsZV9uYW1lICdnbG9jMScpOworICBiIGludCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkLAorICBjIGludCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChhICogMykgdmlydHVhbAorKSBzZXJ2ZXIgbG9vcGJhY2sgb3B0aW9ucyh0 YWJsZV9uYW1lICdnbG9jMScpOwogZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogaW5z ZXJ0IGludG8gZ3JlbTEgKGEpIHZhbHVlcyAoMSksICgyKTsKIGluc2VydCBpbnRvIGdyZW0x IChhKSB2YWx1ZXMgKDEpLCAoMik7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxv Z3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGI2NTRmYWUxYjJm Li41NzliMWQ2MTY2MCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTEzMTgsOCArMTMxOCw4IEBA IDx0aXRsZT48c3RydWN0bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+IENvbHVtbnM8 L3RpdGxlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CiAgICAgICAgSWYgYSB6ZXJv IGJ5dGUgKDxsaXRlcmFsPicnPC9saXRlcmFsPiksIHRoZW4gbm90IGEgZ2VuZXJhdGVkIGNv bHVtbi4KLSAgICAgICBPdGhlcndpc2UsIDxsaXRlcmFsPnM8L2xpdGVyYWw+ID0gc3RvcmVk LiAgKE90aGVyIHZhbHVlcyBtaWdodCBiZSBhZGRlZAotICAgICAgIGluIHRoZSBmdXR1cmUu KQorICAgICAgIE90aGVyd2lzZSwgPGxpdGVyYWw+czwvbGl0ZXJhbD4gPSBzdG9yZWQsIDxs aXRlcmFsPnY8L2xpdGVyYWw+ID0KKyAgICAgICB2aXJ0dWFsLgogICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNn bWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggYjY3MTg1ODYyN2IuLjM3OGFlOTM0 YmFhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCkBAIC0zNjEsNyArMzYxLDYgQEAgPHRpdGxlPkdlbmVyYXRlZCBDb2x1 bW5zPC90aXRsZT4KICAgIHN0b3JhZ2UgYW5kIGlzIGNvbXB1dGVkIHdoZW4gaXQgaXMgcmVh ZC4gIFRodXMsIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uCiAgICBpcyBzaW1pbGFyIHRv IGEgdmlldyBhbmQgYSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbiBpcyBzaW1pbGFyIHRvIGEK ICAgIG1hdGVyaWFsaXplZCB2aWV3IChleGNlcHQgdGhhdCBpdCBpcyBhbHdheXMgdXBkYXRl ZCBhdXRvbWF0aWNhbGx5KS4KLSAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0 bmFtZT4gY3VycmVudGx5IGltcGxlbWVudHMgb25seSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVt bnMuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTM3MSwxMiArMzcwLDEyIEBAIDx0aXRs ZT5HZW5lcmF0ZWQgQ29sdW1uczwvdGl0bGU+CiBDUkVBVEUgVEFCTEUgcGVvcGxlICgKICAg ICAuLi4sCiAgICAgaGVpZ2h0X2NtIG51bWVyaWMsCi0gICAgaGVpZ2h0X2luIG51bWVyaWMg PGVtcGhhc2lzPkdFTkVSQVRFRCBBTFdBWVMgQVMgKGhlaWdodF9jbSAvIDIuNTQpIFNUT1JF RDwvZW1waGFzaXM+CisgICAgaGVpZ2h0X2luIG51bWVyaWMgPGVtcGhhc2lzPkdFTkVSQVRF RCBBTFdBWVMgQVMgKGhlaWdodF9jbSAvIDIuNTQpPC9lbXBoYXNpcz4KICk7CiA8L3Byb2dy YW1saXN0aW5nPgotICAgVGhlIGtleXdvcmQgPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBt dXN0IGJlIHNwZWNpZmllZCB0byBjaG9vc2UgdGhlCi0gICBzdG9yZWQga2luZCBvZiBnZW5l cmF0ZWQgY29sdW1uLiAgU2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV0YWJsZSIvPiBm b3IKLSAgIG1vcmUgZGV0YWlscy4KKyAgIEEgZ2VuZXJhdGVkIGNvbHVtbiBpcyBieSBkZWZh dWx0IG9mIHRoZSB2aXJ0dWFsIGtpbmQuICBVc2UgdGhlIGtleXdvcmRzCisgICA8bGl0ZXJh bD5WSVJUVUFMPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IHRvIG1h a2UgdGhlIGNob2ljZQorICAgZXhwbGljaXQuICBTZWUgPHhyZWYgbGlua2VuZD0ic3FsLWNy ZWF0ZXRhYmxlIi8+IGZvciBtb3JlIGRldGFpbHMuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4K QEAgLTQ0MiwxMiArNDQxLDE4IEBAIDx0aXRsZT5HZW5lcmF0ZWQgQ29sdW1uczwvdGl0bGU+ CiAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIElmIGEgcGFyZW50 IGNvbHVtbiBpcyBhIGdlbmVyYXRlZCBjb2x1bW4sIGl0cyBjaGlsZCBjb2x1bW4gbXVzdCBh bHNvCi0gICAgICAgIGJlIGEgZ2VuZXJhdGVkIGNvbHVtbjsgaG93ZXZlciwgdGhlIGNoaWxk IGNvbHVtbiBjYW4gaGF2ZSBhCi0gICAgICAgIGRpZmZlcmVudCBnZW5lcmF0aW9uIGV4cHJl c3Npb24uICBUaGUgZ2VuZXJhdGlvbiBleHByZXNzaW9uIHRoYXQgaXMKKyAgICAgICAgYmUg YSBnZW5lcmF0ZWQgY29sdW1uIG9mIHRoZSBzYW1lIGtpbmQgKHN0b3JlZCBvciB2aXJ0dWFs KTsgaG93ZXZlciwKKyAgICAgICAgdGhlIGNoaWxkIGNvbHVtbiBjYW4gaGF2ZSBhIGRpZmZl cmVudCBnZW5lcmF0aW9uIGV4cHJlc3Npb24uCisgICAgICAgPC9wYXJhPgorCisgICAgICAg PHBhcmE+CisgICAgICAgIEZvciBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMsIHRoZSBnZW5l cmF0aW9uIGV4cHJlc3Npb24gdGhhdCBpcwogICAgICAgICBhY3R1YWxseSBhcHBsaWVkIGR1 cmluZyBpbnNlcnQgb3IgdXBkYXRlIG9mIGEgcm93IGlzIHRoZSBvbmUKLSAgICAgICAgYXNz b2NpYXRlZCB3aXRoIHRoZSB0YWJsZSB0aGF0IHRoZSByb3cgaXMgcGh5c2ljYWxseSBpbi4K LSAgICAgICAgKFRoaXMgaXMgdW5saWtlIHRoZSBiZWhhdmlvciBmb3IgY29sdW1uIGRlZmF1 bHRzOiBmb3IgdGhvc2UsIHRoZQotICAgICAgICBkZWZhdWx0IHZhbHVlIGFzc29jaWF0ZWQg d2l0aCB0aGUgdGFibGUgbmFtZWQgaW4gdGhlIHF1ZXJ5IGFwcGxpZXMuKQorICAgICAgICBh c3NvY2lhdGVkIHdpdGggdGhlIHRhYmxlIHRoYXQgdGhlIHJvdyBpcyBwaHlzaWNhbGx5IGlu LiAgKFRoaXMgaXMKKyAgICAgICAgdW5saWtlIHRoZSBiZWhhdmlvciBmb3IgY29sdW1uIGRl ZmF1bHRzOiBmb3IgdGhvc2UsIHRoZSBkZWZhdWx0IHZhbHVlCisgICAgICAgIGFzc29jaWF0 ZWQgd2l0aCB0aGUgdGFibGUgbmFtZWQgaW4gdGhlIHF1ZXJ5IGFwcGxpZXMuKSAgRm9yIHZp cnR1YWwKKyAgICAgICAgZ2VuZXJhdGVkIGNvbHVtbnMsIHRoZSBnZW5lcmF0aW9uIGV4cHJl c3Npb24gb2YgdGhlIHRhYmxlIG5hbWVkIGluIHRoZQorICAgICAgICBxdWVyeSBhcHBsaWVz IHdoZW4gYSB0YWJsZSBpcyByZWFkLgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Fs dGVyX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKaW5k ZXggMWE0OWYzMjFjZjcuLmM1YWFmNzY1NDQ2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJs ZS5zZ21sCkBAIC0yNjQsNiArMjY0LDExIEBAIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+ CiAgICAgICBpbiB0aGUgY29sdW1uIGlzIHJld3JpdHRlbiBhbmQgYWxsIHRoZSBmdXR1cmUg Y2hhbmdlcyB3aWxsIGFwcGx5IHRoZSBuZXcKICAgICAgIGdlbmVyYXRpb24gZXhwcmVzc2lv bi4KICAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGlzIGN1 cnJlbnRseSBvbmx5IHN1cHBvcnRlZCBmb3Igc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIChu b3QKKyAgICAgIHZpcnR1YWwgb25lcykuCisgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CiAKQEAgLTI3NiwxMCArMjgxLDE1IEBAIDx0aXRsZT5E ZXNjcmlwdGlvbjwvdGl0bGU+CiAgICAgICBsb25nZXIgYXBwbHkgdGhlIGdlbmVyYXRpb24g ZXhwcmVzc2lvbi4KICAgICAgPC9wYXJhPgogCisgICAgIDxwYXJhPgorICAgICAgVGhpcyBm b3JtIGlzIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRlZCBmb3Igc3RvcmVkIGdlbmVyYXRlZCBj b2x1bW5zIChub3QKKyAgICAgIHZpcnR1YWwgb25lcykuCisgICAgIDwvcGFyYT4KKwogICAg ICA8cGFyYT4KICAgICAgIElmIDxsaXRlcmFsPkRST1AgRVhQUkVTU0lPTiBJRiBFWElTVFM8 L2xpdGVyYWw+IGlzIHNwZWNpZmllZCBhbmQgdGhlCi0gICAgICBjb2x1bW4gaXMgbm90IGEg c3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4sIG5vIGVycm9yIGlzIHRocm93bi4gIEluIHRoaXMK LSAgICAgIGNhc2UgYSBub3RpY2UgaXMgaXNzdWVkIGluc3RlYWQuCisgICAgICBjb2x1bW4g aXMgbm90IGEgZ2VuZXJhdGVkIGNvbHVtbiwgbm8gZXJyb3IgaXMgdGhyb3duLiAgSW4gdGhp cyBjYXNlIGEKKyAgICAgIG5vdGljZSBpcyBpc3N1ZWQgaW5zdGVhZC4KICAgICAgPC9wYXJh PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbAppbmRleCBkYzRiOTA3NTk5MC4uMjFi NWQ2YTE0ZDAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25f dGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxl LnNnbWwKQEAgLTQ3LDcgKzQ3LDcgQEAKICAgTlVMTCB8CiAgIENIRUNLICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIFsgTk8g SU5IRVJJVCBdIHwKICAgREVGQVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBs YWNlYWJsZT4gfAotICBHRU5FUkFURUQgQUxXQVlTIEFTICggPHJlcGxhY2VhYmxlPmdlbmVy YXRpb25fZXhwcjwvcmVwbGFjZWFibGU+ICkgU1RPUkVEIH0KKyAgR0VORVJBVEVEIEFMV0FZ UyBBUyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFsg U1RPUkVEIHwgVklSVFVBTCBdIH0KIAogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnRhYmxlX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFz ZT4KIApAQCAtMjc1LDcgKzI3NSw3IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAg IDwvdmFybGlzdGVudHJ5PgogCiAgICA8dmFybGlzdGVudHJ5PgotICAgIDx0ZXJtPjxsaXRl cmFsPkdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHBy PC9yZXBsYWNlYWJsZT4gKSBTVE9SRUQ8L2xpdGVyYWw+PGluZGV4dGVybT48cHJpbWFyeT5n ZW5lcmF0ZWQgY29sdW1uPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKyAgICA8dGVy bT48bGl0ZXJhbD5HRU5FUkFURUQgQUxXQVlTIEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRp b25fZXhwcjwvcmVwbGFjZWFibGU+ICkgWyBTVE9SRUQgfCBWSVJUVUFMIF08L2xpdGVyYWw+ PGluZGV4dGVybT48cHJpbWFyeT5nZW5lcmF0ZWQgY29sdW1uPC9wcmltYXJ5PjwvaW5kZXh0 ZXJtPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgVGhpcyBj bGF1c2UgY3JlYXRlcyB0aGUgY29sdW1uIGFzIGEgPGZpcnN0dGVybT5nZW5lcmF0ZWQKQEAg LTI4NCwxMCArMjg0LDEzIEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgICAgPC9w YXJhPgogCiAgICAgIDxwYXJhPgotICAgICAgVGhlIGtleXdvcmQgPGxpdGVyYWw+U1RPUkVE PC9saXRlcmFsPiBpcyByZXF1aXJlZCB0byBzaWduaWZ5IHRoYXQgdGhlCisgICAgICBXaGVu IDxsaXRlcmFsPlZJUlRVQUw8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlIGNvbHVtbiB3 aWxsIGJlCisgICAgICBjb21wdXRlZCB3aGVuIGl0IGlzIHJlYWQuICAoVGhlIGZvcmVpZ24t ZGF0YSB3cmFwcGVyIHdpbGwgc2VlIGl0IGFzIGEKKyAgICAgIG51bGwgdmFsdWUgaW4gbmV3 IHJvd3MgYW5kIG1heSBjaG9vc2UgdG8gc3RvcmUgaXQgYXMgYSBudWxsIHZhbHVlIG9yCisg ICAgICBpZ25vcmUgaXQgYWx0b2dldGhlci4pICBXaGVuIDxsaXRlcmFsPlNUT1JFRDwvbGl0 ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUKICAgICAgIGNvbHVtbiB3aWxsIGJlIGNvbXB1dGVk IG9uIHdyaXRlLiAgKFRoZSBjb21wdXRlZCB2YWx1ZSB3aWxsIGJlIHByZXNlbnRlZAogICAg ICAgdG8gdGhlIGZvcmVpZ24tZGF0YSB3cmFwcGVyIGZvciBzdG9yYWdlIGFuZCBtdXN0IGJl IHJldHVybmVkIG9uCi0gICAgICByZWFkaW5nLikKKyAgICAgIHJlYWRpbmcuKSAgPGxpdGVy YWw+VklSVFVBTDwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1bHQuCiAgICAgIDwvcGFyYT4KIAog ICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4IDkzYjNm NjY0ZjIxLi5lZTc5ODY3ZDk2OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s CkBAIC02NSw3ICs2NSw3IEBACiAgIE5VTEwgfAogICBDSEVDSyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBbIE5PIElOSEVS SVQgXSB8CiAgIERFRkFVTFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFi bGU+IHwKLSAgR0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9u X2V4cHI8L3JlcGxhY2VhYmxlPiApIFNUT1JFRCB8CisgIEdFTkVSQVRFRCBBTFdBWVMgQVMg KCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBbIFNUT1JF RCB8IFZJUlRVQUwgXSB8CiAgIEdFTkVSQVRFRCB7IEFMV0FZUyB8IEJZIERFRkFVTFQgfSBB UyBJREVOVElUWSBbICggPHJlcGxhY2VhYmxlPnNlcXVlbmNlX29wdGlvbnM8L3JlcGxhY2Vh YmxlPiApIF0gfAogICBVTklRVUUgWyBOVUxMUyBbIE5PVCBdIERJU1RJTkNUIF0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxl PiB8CiAgIFBSSU1BUlkgS0VZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRl eF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfApAQCAtNzIwLDggKzcyMCw5IEBAIDx0aXRs ZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5DTFVESU5H IEdFTkVSQVRFRDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KICAgICAg ICAgIDxwYXJhPgotICAgICAgICAgIEFueSBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIG9mIGNv cGllZCBjb2x1bW4gZGVmaW5pdGlvbnMgd2lsbCBiZQotICAgICAgICAgIGNvcGllZC4gIEJ5 IGRlZmF1bHQsIG5ldyBjb2x1bW5zIHdpbGwgYmUgcmVndWxhciBiYXNlIGNvbHVtbnMuCisg ICAgICAgICAgQW55IGdlbmVyYXRpb24gZXhwcmVzc2lvbnMgYXMgd2VsbCBhcyB0aGUgc3Rv cmVkL3ZpcnR1YWwgY2hvaWNlIG9mCisgICAgICAgICAgY29waWVkIGNvbHVtbiBkZWZpbml0 aW9ucyB3aWxsIGJlIGNvcGllZC4gIEJ5IGRlZmF1bHQsIG5ldyBjb2x1bW5zCisgICAgICAg ICAgd2lsbCBiZSByZWd1bGFyIGJhc2UgY29sdW1ucy4KICAgICAgICAgIDwvcGFyYT4KICAg ICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTg5Nyw3ICs4 OTgsNyBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgICA8L3Zhcmxpc3RlbnRyeT4K IAogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1zLWdlbmVyYXRl ZC1zdG9yZWQiPgotICAgIDx0ZXJtPjxsaXRlcmFsPkdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8 cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBTVE9SRUQ8L2xp dGVyYWw+PGluZGV4dGVybT48cHJpbWFyeT5nZW5lcmF0ZWQgY29sdW1uPC9wcmltYXJ5Pjwv aW5kZXh0ZXJtPjwvdGVybT4KKyAgICA8dGVybT48bGl0ZXJhbD5HRU5FUkFURUQgQUxXQVlT IEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVwbGFjZWFibGU+ICkgWyBT VE9SRUQgfCBWSVJUVUFMIF08L2xpdGVyYWw+PGluZGV4dGVybT48cHJpbWFyeT5nZW5lcmF0 ZWQgY29sdW1uPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+ CiAgICAgIDxwYXJhPgogICAgICAgVGhpcyBjbGF1c2UgY3JlYXRlcyB0aGUgY29sdW1uIGFz IGEgPGZpcnN0dGVybT5nZW5lcmF0ZWQKQEAgLTkwNiw4ICs5MDcsMTEgQEAgPHRpdGxlPlBh cmFtZXRlcnM8L3RpdGxlPgogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+Ci0gICAgICBU aGUga2V5d29yZCA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IGlzIHJlcXVpcmVkIHRvIHNp Z25pZnkgdGhhdCB0aGUKLSAgICAgIGNvbHVtbiB3aWxsIGJlIGNvbXB1dGVkIG9uIHdyaXRl IGFuZCB3aWxsIGJlIHN0b3JlZCBvbiBkaXNrLgorICAgICAgV2hlbiA8bGl0ZXJhbD5WSVJU VUFMPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSBjb2x1bW4gd2lsbCBiZQorICAgICAg Y29tcHV0ZWQgd2hlbiBpdCBpcyByZWFkLCBhbmQgaXQgd2lsbCBub3Qgb2NjdXB5IGFueSBz dG9yYWdlLiAgV2hlbgorICAgICAgPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBpcyBzcGVj aWZpZWQsIHRoZSBjb2x1bW4gd2lsbCBiZSBjb21wdXRlZCBvbgorICAgICAgd3JpdGUgYW5k IHdpbGwgYmUgc3RvcmVkIG9uIGRpc2suICA8bGl0ZXJhbD5WSVJUVUFMPC9saXRlcmFsPiBp cyB0aGUKKyAgICAgIGRlZmF1bHQuCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KQEAg LTIzODAsOSArMjM4NCw5IEBAIDx0aXRsZT5NdWx0aXBsZSBJZGVudGl0eSBDb2x1bW5zPC90 aXRsZT4KICAgIDx0aXRsZT5HZW5lcmF0ZWQgQ29sdW1uczwvdGl0bGU+CiAKICAgIDxwYXJh PgotICAgIFRoZSBvcHRpb24gPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBpcyBub3Qgc3Rh bmRhcmQgYnV0IGlzIGFsc28gdXNlZCBieQotICAgIG90aGVyIFNRTCBpbXBsZW1lbnRhdGlv bnMuICBUaGUgU1FMIHN0YW5kYXJkIGRvZXMgbm90IHNwZWNpZnkgdGhlIHN0b3JhZ2UKLSAg ICBvZiBnZW5lcmF0ZWQgY29sdW1ucy4KKyAgICBUaGUgb3B0aW9ucyA8bGl0ZXJhbD5TVE9S RUQ8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5WSVJUVUFMPC9saXRlcmFsPiBhcmUKKyAgICBu b3Qgc3RhbmRhcmQgYnV0IGFyZSBhbHNvIHVzZWQgYnkgb3RoZXIgU1FMIGltcGxlbWVudGF0 aW9ucy4gIFRoZSBTUUwKKyAgICBzdGFuZGFyZCBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBzdG9y YWdlIG9mIGdlbmVyYXRlZCBjb2x1bW5zLgogICAgPC9wYXJhPgogICA8L3JlZnNlY3QyPgog CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90cmlnZ2VyLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90cmlnZ2VyLnNnbWwKaW5kZXggOTgyYWI2ZjNlZTQu Ljc1MmZlNTA4NjBhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90cmln Z2VyLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdHJpZ2dlci5zZ21sCkBA IC0yNzksNyArMjc5LDcgQEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAgICA8cGFy YT4KICAgICAgIDxsaXRlcmFsPklOU1RFQUQgT0YgVVBEQVRFPC9saXRlcmFsPiBldmVudHMg ZG8gbm90IGFsbG93IGEgbGlzdCBvZiBjb2x1bW5zLgogICAgICAgQSBjb2x1bW4gbGlzdCBj YW5ub3QgYmUgc3BlY2lmaWVkIHdoZW4gcmVxdWVzdGluZyB0cmFuc2l0aW9uIHJlbGF0aW9u cywKLSAgICAgIGVpdGhlci4KKyAgICAgIGVpdGhlci4gIFZpcnR1YWwgZ2VuZXJhdGVkIGNv bHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGNvbHVtbiBsaXN0LgogICAgICA8L3Bh cmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwK aW5kZXggMzE2MjY1MzZhMmUuLjU5NTNkMjRhZThmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvdHJpZ2dlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKQEAgLTI4 OSw2ICsyODksMTAgQEAgPHRpdGxlPk92ZXJ2aWV3IG9mIFRyaWdnZXIgQmVoYXZpb3I8L3Rp dGxlPgogICAgIDxsaXRlcmFsPkJFRk9SRTwvbGl0ZXJhbD4gdHJpZ2dlci4gIENoYW5nZXMg dG8gdGhlIHZhbHVlIG9mIGEgZ2VuZXJhdGVkCiAgICAgY29sdW1uIGluIGEgPGxpdGVyYWw+ QkVGT1JFPC9saXRlcmFsPiB0cmlnZ2VyIGFyZSBpZ25vcmVkIGFuZCB3aWxsIGJlCiAgICAg b3ZlcndyaXR0ZW4uCisgICAgVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgbmV2ZXIg Y29tcHV0ZWQgd2hlbiB0cmlnZ2VycyBmaXJlLiAgSW4gdGhlIEMKKyAgICBsYW5ndWFnZSBp bnRlcmZhY2UsIHRoZWlyIGNvbnRlbnQgaXMgdW5kZWZpbmVkIGluIGEgdHJpZ2dlciBmdW5j dGlvbi4KKyAgICBIaWdoZXItbGV2ZWwgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHNob3VsZCBw cmV2ZW50IGFjY2VzcyB0byB2aXJ0dWFsCisgICAgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gdHJp Z2dlcnMuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi90dXBkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9u L3R1cGRlc2MuYwppbmRleCA0NzM3OWZlZjIyMC4uMTM4NDBiYTUzM2MgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCkBAIC0xOTAsNiArMTkwLDcgQEAgQ3JlYXRlVHVw bGVEZXNjQ29weUNvbnN0cihUdXBsZURlc2MgdHVwZGVzYykKIAogCQljcHktPmhhc19ub3Rf bnVsbCA9IGNvbnN0ci0+aGFzX25vdF9udWxsOwogCQljcHktPmhhc19nZW5lcmF0ZWRfc3Rv cmVkID0gY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZDsKKwkJY3B5LT5oYXNfZ2VuZXJh dGVkX3ZpcnR1YWwgPSBjb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbDsKIAogCQlpZiAo KGNweS0+bnVtX2RlZnZhbCA9IGNvbnN0ci0+bnVtX2RlZnZhbCkgPiAwKQogCQl7CkBAIC00 OTQsNiArNDk1LDggQEAgZXF1YWxUdXBsZURlc2NzKFR1cGxlRGVzYyB0dXBkZXNjMSwgVHVw bGVEZXNjIHR1cGRlc2MyKQogCQkJcmV0dXJuIGZhbHNlOwogCQlpZiAoY29uc3RyMS0+aGFz X2dlbmVyYXRlZF9zdG9yZWQgIT0gY29uc3RyMi0+aGFzX2dlbmVyYXRlZF9zdG9yZWQpCiAJ CQlyZXR1cm4gZmFsc2U7CisJCWlmIChjb25zdHIxLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwg IT0gY29uc3RyMi0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCQkJcmV0dXJuIGZhbHNlOwog CQluID0gY29uc3RyMS0+bnVtX2RlZnZhbDsKIAkJaWYgKG4gIT0gKGludCkgY29uc3RyMi0+ bnVtX2RlZnZhbCkKIAkJCXJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW1faGFuZGxlci5jCmluZGV4IDFjNmRhMjg2ZDQzLi4wYzk1YTExZjA0NCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCkBAIC0yMDQ4LDYg KzIwNDgsOCBAQCBoZWFwYW1fcmVsYXRpb25fbmVlZHNfdG9hc3RfdGFibGUoUmVsYXRpb24g cmVsKQogCiAJCWlmIChhdHQtPmF0dGlzZHJvcHBlZCkKIAkJCWNvbnRpbnVlOworCQlpZiAo YXR0LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJ Y29udGludWU7CiAJCWRhdGFfbGVuZ3RoID0gYXR0X2FsaWduX25vbWluYWwoZGF0YV9sZW5n dGgsIGF0dC0+YXR0YWxpZ24pOwogCQlpZiAoYXR0LT5hdHRsZW4gPiAwKQogCQl7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvaGVhcC5jCmluZGV4IDAxYjQzY2M2YTg0Li4yOTM1OGYzNzMwNyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9o ZWFwLmMKQEAgLTUxMiw3ICs1MTIsNyBAQCBDaGVja0F0dHJpYnV0ZU5hbWVzVHlwZXMoVHVw bGVEZXNjIHR1cGRlc2MsIGNoYXIgcmVsa2luZCwKIAkJCQkJCSAgIFR1cGxlRGVzY0F0dHIo dHVwZGVzYywgaSktPmF0dHR5cGlkLAogCQkJCQkJICAgVHVwbGVEZXNjQXR0cih0dXBkZXNj LCBpKS0+YXR0Y29sbGF0aW9uLAogCQkJCQkJICAgTklMLCAvKiBhc3N1bWUgd2UncmUgY3Jl YXRpbmcgYSBuZXcgcm93dHlwZSAqLwotCQkJCQkJICAgZmxhZ3MpOworCQkJCQkJICAgZmxh Z3MgfCAoVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJ QlVURV9HRU5FUkFURURfVklSVFVBTCA/IENIS0FUWVBFX0lTX1ZJUlRVQUwgOiAwKSk7CiAJ fQogfQogCkBAIC01ODcsNiArNTg3LDE3IEBAIENoZWNrQXR0cmlidXRlVHlwZShjb25zdCBj aGFyICphdHRuYW1lLAogCX0KIAllbHNlIGlmIChhdHRfdHlwdHlwZSA9PSBUWVBUWVBFX0RP TUFJTikKIAl7CisJCS8qCisJCSAqIFByZXZlbnQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cyBmcm9tIGhhdmluZyBhIGRvbWFpbiB0eXBlLiAgV2UKKwkJICogd291bGQgaGF2ZSB0byBl bmZvcmNlIGRvbWFpbiBjb25zdHJhaW50cyB3aGVuIGNvbHVtbnMgdW5kZXJseWluZworCQkg KiB0aGUgZ2VuZXJhdGVkIGNvbHVtbiBjaGFuZ2UuICBUaGlzIGNvdWxkIHBvc3NpYmx5IGJl IGltcGxlbWVudGVkLAorCQkgKiBidXQgaXQncyBub3QuCisJCSAqLworCQlpZiAoZmxhZ3Mg JiBDSEtBVFlQRV9JU19WSVJUVUFMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJ2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW4gXCIlc1wiIGNhbm5vdCBoYXZlIGEgZG9tYWluIHR5cGUi LCBhdHRuYW1lKSkpOworCiAJCS8qCiAJCSAqIElmIGl0J3MgYSBkb21haW4sIHJlY3Vyc2Ug dG8gY2hlY2sgaXRzIGJhc2UgdHlwZS4KIAkJICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMK aW5kZXggOTAyZWIxYTQ1MDguLmY3OWZmNDBjM2VjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6 ZS5jCkBAIC0xMDMwLDYgKzEwMzAsMTAgQEAgZXhhbWluZV9hdHRyaWJ1dGUoUmVsYXRpb24g b25lcmVsLCBpbnQgYXR0bnVtLCBOb2RlICppbmRleF9leHByKQogCWlmIChhdHRyLT5hdHRp c2Ryb3BwZWQpCiAJCXJldHVybiBOVUxMOwogCisJLyogRG9uJ3QgYW5hbHl6ZSB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW5zICovCisJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRS SUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCXJldHVybiBOVUxMOworCiAJLyoKIAkgKiBH ZXQgYXR0c3RhdHRhcmdldCB2YWx1ZS4gIFNldCB0byAtMSBpZiBudWxsLiAgKEFuYWx5emUg ZnVuY3Rpb25zIGV4cGVjdAogCSAqIC0xIHRvIG1lYW4gdXNlIGRlZmF1bHRfc3RhdGlzdGlj c190YXJnZXQ7IHNlZSBmb3IgZXhhbXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvaW5kZXhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpp bmRleCBjNWE1NmM3NWY2OS4uZWM0ZThiYzM5MDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2luZGV4Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4 Y21kcy5jCkBAIC0xMDg1LDYgKzEwODUsOSBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwK IAkvKgogCSAqIFdlIGRpc2FsbG93IGluZGV4ZXMgb24gc3lzdGVtIGNvbHVtbnMuICBUaGV5 IHdvdWxkIG5vdCBuZWNlc3NhcmlseSBnZXQKIAkgKiB1cGRhdGVkIGNvcnJlY3RseSwgYW5k IHRoZXkgZG9uJ3Qgc2VlbSB1c2VmdWwgYW55d2F5LgorCSAqCisJICogQWxzbyBkaXNhbGxv dyB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIGluZGV4ZXMgKHVzZSBleHByZXNzaW9u CisJICogaW5kZXggaW5zdGVhZCkuCiAJICovCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRl eEluZm8tPmlpX051bUluZGV4QXR0cnM7IGkrKykKIAl7CkBAIC0xMDk0LDE0ICsxMDk3LDIy IEBAIERlZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNn KCJpbmRleCBjcmVhdGlvbiBvbiBzeXN0ZW0gY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikp KTsKKworCisJCWlmIChUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0 bm8gLSAxKS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24gdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKIAl9CiAKIAkvKgotCSAq IEFsc28gY2hlY2sgZm9yIHN5c3RlbSBjb2x1bW5zIHVzZWQgaW4gZXhwcmVzc2lvbnMgb3Ig cHJlZGljYXRlcy4KKwkgKiBBbHNvIGNoZWNrIGZvciBzeXN0ZW0gYW5kIGdlbmVyYXRlZCBj b2x1bW5zIHVzZWQgaW4gZXhwcmVzc2lvbnMgb3IKKwkgKiBwcmVkaWNhdGVzLgogCSAqLwog CWlmIChpbmRleEluZm8tPmlpX0V4cHJlc3Npb25zIHx8IGluZGV4SW5mby0+aWlfUHJlZGlj YXRlKQogCXsKIAkJQml0bWFwc2V0ICAqaW5kZXhhdHRycyA9IE5VTEw7CisJCWludAkJCWo7 CiAKIAkJcHVsbF92YXJhdHRub3MoKE5vZGUgKikgaW5kZXhJbmZvLT5paV9FeHByZXNzaW9u cywgMSwgJmluZGV4YXR0cnMpOwogCQlwdWxsX3ZhcmF0dG5vcygoTm9kZSAqKSBpbmRleElu Zm8tPmlpX1ByZWRpY2F0ZSwgMSwgJmluZGV4YXR0cnMpOwpAQCAtMTExNCw2ICsxMTI1LDIy IEBAIERlZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24g b24gc3lzdGVtIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CiAJCX0KKworCQkvKgor CQkgKiBYWFggVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiBpbmRleCBleHByZXNzaW9u cyBvciBwcmVkaWNhdGVzCisJCSAqIGNvdWxkIGJlIHN1cHBvcnRlZCwgYnV0IGl0IG5lZWRz IHN1cHBvcnQgaW4KKwkJICogUmVsYXRpb25HZXRJbmRleEV4cHJlc3Npb25zKCkgYW5kIFJl bGF0aW9uR2V0SW5kZXhQcmVkaWNhdGUoKS4KKwkJICovCisJCWogPSAtMTsKKwkJd2hpbGUg KChqID0gYm1zX25leHRfbWVtYmVyKGluZGV4YXR0cnMsIGopKSA+PSAwKQorCQl7CisJCQlB dHRyTnVtYmVyCWF0dG5vID0gaiArIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1i ZXI7CisKKwkJCWlmIChUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0 bm8gLSAxKS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkK KwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05P VF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24gdmlydHVh bCBnZW5lcmF0ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKwkJfQogCX0KIAog CS8qIElzIGluZGV4IHNhZmUgZm9yIG90aGVycyB0byBpZ25vcmU/ICBTZWUgc2V0X2luZGV4 c2FmZV9wcm9jZmxhZ3MoKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c3RhdHNjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwppbmRleCAx ZGIzZWY2OWQyMi4uNzQ0YjM1MDhjMjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3N0YXRzY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5j CkBAIC0yNDYsNiArMjQ2LDEyIEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10 ICpzdG10KQogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAogCQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBvbiBzeXN0ZW0gY29sdW1u cyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKIAorCQkJLyogRGlzYWxsb3cgdXNlIG9mIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gZXh0ZW5kZWQgc3RhdHMgKi8KKwkJCWlmIChhdHRG b3JtLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJzdGF0aXN0aWNzIGNyZWF0aW9uIG9uIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CisKIAkJCS8qIERp c2FsbG93IGRhdGEgdHlwZXMgd2l0aG91dCBhIGxlc3MtdGhhbiBvcGVyYXRvciAqLwogCQkJ dHlwZSA9IGxvb2t1cF90eXBlX2NhY2hlKGF0dEZvcm0tPmF0dHR5cGlkLCBUWVBFQ0FDSEVf TFRfT1BSKTsKIAkJCWlmICh0eXBlLT5sdF9vcHIgPT0gSW52YWxpZE9pZCkKQEAgLTI2OSw2 ICsyNzUsMTIgQEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0bXQgKnN0bXQpCiAJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCQkg ZXJybXNnKCJzdGF0aXN0aWNzIGNyZWF0aW9uIG9uIHN5c3RlbSBjb2x1bW5zIGlzIG5vdCBz dXBwb3J0ZWQiKSkpOwogCisJCQkvKiBEaXNhbGxvdyB1c2Ugb2YgdmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1ucyBpbiBleHRlbmRlZCBzdGF0cyAqLworCQkJaWYgKGdldF9hdHRnZW5lcmF0 ZWQocmVsaWQsIHZhci0+dmFyYXR0bm8pID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVB TCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBv biB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOworCiAJ CQkvKiBEaXNhbGxvdyBkYXRhIHR5cGVzIHdpdGhvdXQgYSBsZXNzLXRoYW4gb3BlcmF0b3Ig Ki8KIAkJCXR5cGUgPSBsb29rdXBfdHlwZV9jYWNoZSh2YXItPnZhcnR5cGUsIFRZUEVDQUNI RV9MVF9PUFIpOwogCQkJaWYgKHR5cGUtPmx0X29wciA9PSBJbnZhbGlkT2lkKQpAQCAtMjkw LDcgKzMwMiw2IEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10KQog CiAJCQlBc3NlcnQoZXhwciAhPSBOVUxMKTsKIAotCQkJLyogRGlzYWxsb3cgZXhwcmVzc2lv bnMgcmVmZXJlbmNpbmcgc3lzdGVtIGF0dHJpYnV0ZXMuICovCiAJCQlwdWxsX3ZhcmF0dG5v cyhleHByLCAxLCAmYXR0bnVtcyk7CiAKIAkJCWsgPSAtMTsKQEAgLTI5OCwxMCArMzA5LDE3 IEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10KQogCQkJewogCQkJ CUF0dHJOdW1iZXIJYXR0bnVtID0gayArIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVO dW1iZXI7CiAKKwkJCQkvKiBEaXNhbGxvdyBleHByZXNzaW9ucyByZWZlcmVuY2luZyBzeXN0 ZW0gYXR0cmlidXRlcy4gKi8KIAkJCQlpZiAoYXR0bnVtIDw9IDApCiAJCQkJCWVyZXBvcnQo RVJST1IsCiAJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAogCQkJCQkJCSBlcnJtc2coInN0YXRpc3RpY3MgY3JlYXRpb24gb24gc3lzdGVtIGNvbHVt bnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CisKKwkJCQkvKiBEaXNhbGxvdyB1c2Ugb2Ygdmly dHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiBleHRlbmRlZCBzdGF0cyAqLworCQkJCWlmIChn ZXRfYXR0Z2VuZXJhdGVkKHJlbGlkLCBhdHRudW0pID09IEFUVFJJQlVURV9HRU5FUkFURURf VklSVFVBTCkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBj cmVhdGlvbiBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQi KSkpOwogCQkJfQogCiAJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBi M2NjNmY4ZjY5MC4uMDkxNGUwNTY2YjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j CkBAIC0yOTM2LDYgKzI5MzYsMTUgQEAgTWVyZ2VBdHRyaWJ1dGVzKExpc3QgKmNvbHVtbnMs IGNvbnN0IExpc3QgKnN1cGVycywgY2hhciByZWxwZXJzaXN0ZW5jZSwKIAkJCQkJCQkJCSBl cnJoaW50KCJBIGNoaWxkIHRhYmxlIGNvbHVtbiBjYW5ub3QgYmUgZ2VuZXJhdGVkIHVubGVz cyBpdHMgcGFyZW50IGNvbHVtbiBpcy4iKSkpOwogCQkJCQl9CiAKKwkJCQkJaWYgKGNvbGRl Zi0+Z2VuZXJhdGVkICYmIHJlc3RkZWYtPmdlbmVyYXRlZCAmJiBjb2xkZWYtPmdlbmVyYXRl ZCAhPSByZXN0ZGVmLT5nZW5lcmF0ZWQpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQ09MVU1OX0RFRklOSVRJT04pLAorCQkJCQkJ CQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVt biBvZiBkaWZmZXJlbnQga2luZCIsCisJCQkJCQkJCQkJcmVzdGRlZi0+Y29sbmFtZSksCisJ CQkJCQkJCSBlcnJkZXRhaWwoIlBhcmVudCBjb2x1bW4gaXMgJXMsIGNoaWxkIGNvbHVtbiBp cyAlcy4iLAorCQkJCQkJCQkJCSAgIGNvbGRlZi0+Z2VuZXJhdGVkID09IEFUVFJJQlVURV9H RU5FUkFURURfU1RPUkVEID8gIlNUT1JFRCIgOiAiVklSVFVBTCIsCisJCQkJCQkJCQkJICAg cmVzdGRlZi0+Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEID8gIlNU T1JFRCIgOiAiVklSVFVBTCIpKSk7CisKIAkJCQkJLyoKIAkJCQkJICogT3ZlcnJpZGUgdGhl IHBhcmVudCdzIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgY29sdW1uCiAJCQkJCSAqIChjb2xk ZWYtPmNvb2tlZF9kZWZhdWx0KSB3aXRoIHRoZSBwYXJ0aXRpb24ncyBsb2NhbApAQCAtMzIw Nyw2ICszMjE2LDE1IEBAIE1lcmdlQ2hpbGRBdHRyaWJ1dGUoTGlzdCAqaW5oX2NvbHVtbnMs IGludCBleGlzdF9hdHRubywgaW50IG5ld2NvbF9hdHRubywgY29uc3QKIAkJCQkJIGVycmhp bnQoIkEgY2hpbGQgdGFibGUgY29sdW1uIGNhbm5vdCBiZSBnZW5lcmF0ZWQgdW5sZXNzIGl0 cyBwYXJlbnQgY29sdW1uIGlzLiIpKSk7CiAJfQogCisJaWYgKGluaGRlZi0+Z2VuZXJhdGVk ICYmIG5ld2RlZi0+Z2VuZXJhdGVkICYmIG5ld2RlZi0+Z2VuZXJhdGVkICE9IGluaGRlZi0+ Z2VuZXJhdGVkKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9DT0xVTU5fREVGSU5JVElPTiksCisJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBp bmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQiLAorCQkJ CQkJaW5oZGVmLT5jb2xuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJQYXJlbnQgY29sdW1uIGlz ICVzLCBjaGlsZCBjb2x1bW4gaXMgJXMuIiwKKwkJCQkJCSAgIGluaGRlZi0+Z2VuZXJhdGVk ID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEID8gIlNUT1JFRCIgOiAiVklSVFVBTCIs CisJCQkJCQkgICBuZXdkZWYtPmdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NU T1JFRCA/ICJTVE9SRUQiIDogIlZJUlRVQUwiKSkpOworCiAJLyoKIAkgKiBJZiBuZXcgZGVm IGhhcyBhIGRlZmF1bHQsIG92ZXJyaWRlIHByZXZpb3VzIGRlZmF1bHQKIAkgKi8KQEAgLTU5 ODYsNyArNjAwNCw3IEBAIEFUUmV3cml0ZVRhYmxlKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwg T2lkIE9JRE5ld0hlYXAsIExPQ0tNT0RFIGxvY2ttb2RlKQogCQl7CiAJCQljYXNlIENPTlNU Ul9DSEVDSzoKIAkJCQluZWVkc2NhbiA9IHRydWU7Ci0JCQkJY29uLT5xdWFsc3RhdGUgPSBF eGVjUHJlcGFyZUV4cHIoKEV4cHIgKikgY29uLT5xdWFsLCBlc3RhdGUpOworCQkJCWNvbi0+ cXVhbHN0YXRlID0gRXhlY1ByZXBhcmVFeHByKChFeHByICopIGV4cGFuZF9nZW5lcmF0ZWRf Y29sdW1uc19pbl9leHByKGNvbi0+cXVhbCwgbmV3cmVsID8gbmV3cmVsIDogb2xkcmVsKSwg ZXN0YXRlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQ09OU1RSX0ZPUkVJR046CiAJCQkJLyog Tm90aGluZyB0byBkbyBoZXJlICovCkBAIC03NzA0LDYgKzc3MjIsMTQgQEAgQVRFeGVjU2V0 Tm90TnVsbChBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJCQkgZXJy bXNnKCJjYW5ub3QgYWx0ZXIgc3lzdGVtIGNvbHVtbiBcIiVzXCIiLAogCQkJCQkJY29sTmFt ZSkpKTsKIAorCS8qIFRPRE86IHNlZSB0cmFuc2Zvcm1Db2x1bW5EZWZpbml0aW9uKCkgKi8K KwlpZiAoYXR0VHVwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJU VUFMKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJub3QtbnVsbCBjb25zdHJhaW50cyBhcmUg bm90IHN1cHBvcnRlZCBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIiksCisJCQkJIGVy cmRldGFpbCgiQ29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgYSB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW4uIiwKKwkJCQkJCSAgIGNvbE5hbWUsIFJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHJlbCkpKSk7CisKIAkvKgogCSAqIE9rYXksIGFjdHVhbGx5IHBlcmZvcm0g dGhlIGNhdGFsb2cgY2hhbmdlIC4uLiBpZiBuZWVkZWQKIAkgKi8KQEAgLTgzMDEsNyArODMy NywxOCBAQCBBVEV4ZWNTZXRFeHByZXNzaW9uKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVs YXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLAogCQkJCSBlcnJtc2coImNhbm5vdCBh bHRlciBzeXN0ZW0gY29sdW1uIFwiJXNcIiIsCiAJCQkJCQljb2xOYW1lKSkpOwogCi0JaWYg KGF0dFR1cC0+YXR0Z2VuZXJhdGVkICE9IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQor CS8qCisJICogVE9ETzogVGhpcyBjb3VsZCBiZSBkb25lLCBidXQgaXQgd291bGQgbmVlZCBh IGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbjoKKwkgKiBubyByZXdyaXRpbmcsIGJ1dCBzdGls bCBuZWVkIHRvIHJlY2hlY2sgYW55IGNvbnN0cmFpbnRzLgorCSAqLworCWlmIChhdHRUdXAt PmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJCSBlcnJtc2coIkFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1 cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyIpLAorCQkJCSBlcnJkZXRh aWwoIkNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIGEgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1uLiIsCisJCQkJCQkgICBjb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKSkpOworCisJaWYgKCFhdHRUdXAtPmF0dGdlbmVyYXRlZCkKIAkJZXJlcG9y dChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlT SVRFX1NUQVRFKSwKIAkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwi JXNcIiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uIiwKQEAgLTg0NTgsMTcgKzg0OTUsMzAg QEAgQVRFeGVjRHJvcEV4cHJlc3Npb24oUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xO YW1lLCBib29sIG1pc3Npbmdfb2ssIExPQ0tNT0QKIAkJCQkgZXJybXNnKCJjYW5ub3QgYWx0 ZXIgc3lzdGVtIGNvbHVtbiBcIiVzXCIiLAogCQkJCQkJY29sTmFtZSkpKTsKIAotCWlmIChh dHRUdXAtPmF0dGdlbmVyYXRlZCAhPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKKwkv KgorCSAqIFRPRE86IFRoaXMgY291bGQgYmUgZG9uZSwgYnV0IGl0IHdvdWxkIG5lZWQgYSB0 YWJsZSByZXdyaXRlIHRvCisJICogbWF0ZXJpYWxpemUgdGhlIGdlbmVyYXRlZCB2YWx1ZXMu ICBOb3RlIHRoYXQgZm9yIHRoZSB0aW1lIGJlaW5nLCB3ZQorCSAqIHN0aWxsIGVycm9yIHdp dGggbWlzc2luZ19vaywgc28gdGhhdCB3ZSBkb24ndCBzaWxlbnRseSBsZWF2ZSB0aGUgY29s dW1uCisJICogYXMgZ2VuZXJhdGVkLgorCSAqLworCWlmIChhdHRUdXAtPmF0dGdlbmVyYXRl ZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJt c2coIkFMVEVSIFRBQkxFIC8gRFJPUCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9y IHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMiKSwKKwkJCQkgZXJyZGV0YWlsKCJDb2x1bW4g XCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVt bi4iLAorCQkJCQkJICAgY29sTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkp KTsKKworCWlmICghYXR0VHVwLT5hdHRnZW5lcmF0ZWQpCiAJewogCQlpZiAoIW1pc3Npbmdf b2spCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9O T1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKLQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNc IiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4i LAorCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBu b3QgYSBnZW5lcmF0ZWQgY29sdW1uIiwKIAkJCQkJCQljb2xOYW1lLCBSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShyZWwpKSkpOwogCQllbHNlCiAJCXsKIAkJCWVyZXBvcnQoTk9USUNFLAot CQkJCQkoZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3Qg YSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbiwgc2tpcHBpbmciLAorCQkJCQkoZXJybXNnKCJj b2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSBnZW5lcmF0ZWQgY29s dW1uLCBza2lwcGluZyIsCiAJCQkJCQkJY29sTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUocmVsKSkpKTsKIAkJCWhlYXBfZnJlZXR1cGxlKHR1cGxlKTsKIAkJCXRhYmxlX2Nsb3Nl KGF0dHJlbGF0aW9uLCBSb3dFeGNsdXNpdmVMb2NrKTsKQEAgLTg2MTEsNiArODY2MSwxNiBA QCBBVEV4ZWNTZXRTdGF0aXN0aWNzKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFt ZSwgaW50MTYgY29sTnVtLCBOb2RlICpuZXdWYQogCQkJCSBlcnJtc2coImNhbm5vdCBhbHRl ciBzeXN0ZW0gY29sdW1uIFwiJXNcIiIsCiAJCQkJCQljb2xOYW1lKSkpOwogCisJLyoKKwkg KiBQcmV2ZW50IHRoaXMgYXMgbG9uZyBhcyB0aGUgQU5BTFlaRSBjb2RlIHNraXBzIHZpcnR1 YWwgZ2VuZXJhdGVkCisJICogY29sdW1ucy4KKwkgKi8KKwlpZiAoYXR0cnR1cGxlLT5hdHRn ZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgc3RhdGlzdGljcyBvbiB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW4gXCIlc1wiIiwKKwkJCQkJCWNvbE5hbWUpKSk7CisKIAlpZiAocmVsLT5yZF9y ZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9JTkRFWCB8fAogCQlyZWwtPnJkX3JlbC0+cmVsa2lu ZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX0lOREVYKQogCXsKQEAgLTk2OTAsNiArOTc1MCwx OSBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRU YWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCQkJIGVycm1zZygiaW52YWxpZCAl cyBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgY29udGFpbmluZyBnZW5lcmF0 ZWQgY29sdW1uIiwKIAkJCQkJCQkJIk9OIERFTEVURSIpKSk7CiAJCX0KKworCQkvKgorCQkg KiBGS3Mgb24gdmlydHVhbCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkLiAgVGhpcyB3b3Vs ZCByZXF1aXJlCisJCSAqIHZhcmlvdXMgYWRkaXRpb25hbCBzdXBwb3J0IGluIHJpX3RyaWdn ZXJzLmMsIGluY2x1ZGluZyBzcGVjaWFsCisJCSAqIGhhbmRsaW5nIGluIHJpX051bGxDaGVj aygpLCByaV9LZXlzRXF1YWwoKSwKKwkJICogUklfRktleV9ma191cGRfY2hlY2tfcmVxdWly ZWQoKSAoc2luY2UgYWxsIHZpcnR1YWwgY29sdW1ucyBhcHBlYXIKKwkJICogYXMgTlVMTCB0 aGVyZSkuICBBbHNvIG5vdCByZWFsbHkgcHJhY3RpY2FsIGFzIGxvbmcgYXMgeW91IGNhbid0 CisJCSAqIGluZGV4IHZpcnR1YWwgY29sdW1ucy4KKwkJICovCisJCWlmIChhdHRnZW5lcmF0 ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkg ZXJybXNnKCJmb3JlaWduIGtleSBjb25zdHJhaW50cyBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkIikpKTsKIAl9CiAKIAkvKgpAQCAtMTE2NzEsNyAr MTE3NDQsNyBAQCBBVEV4ZWNWYWxpZGF0ZUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgUmVs YXRpb24gcmVsLCBjaGFyICpjb25zdHJOYW1lLAogCQkJdmFsID0gU3lzQ2FjaGVHZXRBdHRy Tm90TnVsbChDT05TVFJPSUQsIHR1cGxlLAogCQkJCQkJCQkJCSBBbnVtX3BnX2NvbnN0cmFp bnRfY29uYmluKTsKIAkJCWNvbmJpbiA9IFRleHREYXR1bUdldENTdHJpbmcodmFsKTsKLQkJ CW5ld2Nvbi0+cXVhbCA9IChOb2RlICopIHN0cmluZ1RvTm9kZShjb25iaW4pOworCQkJbmV3 Y29uLT5xdWFsID0gKE5vZGUgKikgZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4cHIo c3RyaW5nVG9Ob2RlKGNvbmJpbiksIHJlbCk7CiAKIAkJCS8qIEZpbmQgb3IgY3JlYXRlIHdv cmsgcXVldWUgZW50cnkgZm9yIHRoaXMgdGFibGUgKi8KIAkJCXRhYiA9IEFUR2V0UXVldWVF bnRyeSh3cXVldWUsIHJlbCk7CkBAIC0xMjcyMiw4ICsxMjc5NSwxMiBAQCBBVFByZXBBbHRl ckNvbHVtblR5cGUoTGlzdCAqKndxdWV1ZSwKIAkJCQkJICAgbGlzdF9tYWtlMV9vaWQocmVs LT5yZF9yZWwtPnJlbHR5cGUpLAogCQkJCQkgICAwKTsKIAotCWlmICh0YWItPnJlbGtpbmQg PT0gUkVMS0lORF9SRUxBVElPTiB8fAotCQl0YWItPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJU SVRJT05FRF9UQUJMRSkKKwlpZiAoYXR0VHVwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRF X0dFTkVSQVRFRF9WSVJUVUFMKQorCXsKKwkJLyogZG8gbm90aGluZyAqLworCX0KKwllbHNl IGlmICh0YWItPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAorCQkJIHRhYi0+cmVs a2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQogCXsKIAkJLyoKIAkJICogU2V0 IHVwIGFuIGV4cHJlc3Npb24gdG8gdHJhbnNmb3JtIHRoZSBvbGQgZGF0YSB2YWx1ZSB0byB0 aGUgbmV3CkBAIC0xMjc5NiwxMSArMTI4NzMsMTIgQEAgQVRQcmVwQWx0ZXJDb2x1bW5UeXBl KExpc3QgKip3cXVldWUsCiAJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlIiwK IAkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CiAKLQlpZiAoIVJFTEtJ TkRfSEFTX1NUT1JBR0UodGFiLT5yZWxraW5kKSkKKwlpZiAoIVJFTEtJTkRfSEFTX1NUT1JB R0UodGFiLT5yZWxraW5kKSB8fCBhdHRUdXAtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVf R0VORVJBVEVEX1ZJUlRVQUwpCiAJewogCQkvKgotCQkgKiBGb3IgcmVsYXRpb25zIHdpdGhv dXQgc3RvcmFnZSwgZG8gdGhpcyBjaGVjayBub3cuICBSZWd1bGFyIHRhYmxlcwotCQkgKiB3 aWxsIGNoZWNrIGl0IGxhdGVyIHdoZW4gdGhlIHRhYmxlIGlzIGJlaW5nIHJld3JpdHRlbi4K KwkJICogRm9yIHJlbGF0aW9ucyBvciBjb2x1bW5zIHdpdGhvdXQgc3RvcmFnZSwgZG8gdGhp cyBjaGVjayBub3cuCisJCSAqIFJlZ3VsYXIgdGFibGVzIHdpbGwgY2hlY2sgaXQgbGF0ZXIg d2hlbiB0aGUgdGFibGUgaXMgYmVpbmcKKwkJICogcmV3cml0dGVuLgogCQkgKi8KIAkJZmlu ZF9jb21wb3NpdGVfdHlwZV9kZXBlbmRlbmNpZXMocmVsLT5yZF9yZWwtPnJlbHR5cGUsIHJl bCwgTlVMTCk7CiAJfQpAQCAtMTU3NTgsNiArMTU4MzYsMTQgQEAgTWVyZ2VBdHRyaWJ1dGVz SW50b0V4aXN0aW5nKFJlbGF0aW9uIGNoaWxkX3JlbCwgUmVsYXRpb24gcGFyZW50X3JlbCwg Ym9vbCBpc3BhcnQKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gp LAogCQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBpbiBjaGlsZCB0YWJsZSBtdXN0IG5v dCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4iLCBwYXJlbnRfYXR0bmFtZSkpKTsKIAorCQkJaWYg KHBhcmVudF9hdHQtPmF0dGdlbmVyYXRlZCAmJiBjaGlsZF9hdHQtPmF0dGdlbmVyYXRlZCAm JiBjaGlsZF9hdHQtPmF0dGdlbmVyYXRlZCAhPSBwYXJlbnRfYXR0LT5hdHRnZW5lcmF0ZWQp CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVf TUlTTUFUQ0gpLAorCQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBpbmhlcml0cyBmcm9t IGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQiLCBwYXJlbnRfYXR0bmFtZSks CisJCQkJCQkgZXJyZGV0YWlsKCJQYXJlbnQgY29sdW1uIGlzICVzLCBjaGlsZCBjb2x1bW4g aXMgJXMuIiwKKwkJCQkJCQkJICAgcGFyZW50X2F0dC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJ QlVURV9HRU5FUkFURURfU1RPUkVEID8gIlNUT1JFRCIgOiAiVklSVFVBTCIsCisJCQkJCQkJ CSAgIGNoaWxkX2F0dC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RP UkVEID8gIlNUT1JFRCIgOiAiVklSVFVBTCIpKSk7CisKIAkJCS8qCiAJCQkgKiBSZWd1bGFy IGluaGVyaXRhbmNlIGNoaWxkcmVuIGFyZSBpbmRlcGVuZGVudCBlbm91Z2ggbm90IHRvCiAJ CQkgKiBpbmhlcml0IGlkZW50aXR5IGNvbHVtbnMuICBCdXQgcGFydGl0aW9ucyBhcmUgaW50 ZWdyYWwgcGFydCBvZgpAQCAtMTc4ODQsOCArMTc5NzAsMTEgQEAgQ29tcHV0ZVBhcnRpdGlv bkF0dHJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmVsYXRpb24gcmVsLCBMaXN0ICpwYXJ0UGFy YW1zLCBBdHRyTnUKIAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBwZWxlbS0+ bG9jYXRpb24pKSk7CiAKIAkJCS8qCi0JCQkgKiBHZW5lcmF0ZWQgY29sdW1ucyBjYW5ub3Qg d29yazogVGhleSBhcmUgY29tcHV0ZWQgYWZ0ZXIgQkVGT1JFCi0JCQkgKiB0cmlnZ2Vycywg YnV0IHBhcnRpdGlvbiByb3V0aW5nIGlzIGRvbmUgYmVmb3JlIGFsbCB0cmlnZ2Vycy4KKwkJ CSAqIFN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBjYW5ub3Qgd29yazogVGhleSBhcmUgY29t cHV0ZWQgYWZ0ZXIKKwkJCSAqIEJFRk9SRSB0cmlnZ2VycywgYnV0IHBhcnRpdGlvbiByb3V0 aW5nIGlzIGRvbmUgYmVmb3JlIGFsbAorCQkJICogdHJpZ2dlcnMuICBNYXliZSB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW5zIGNvdWxkIGJlIG1hZGUgdG8KKwkJCSAqIHdvcmssIGJ1dCB0 aGVuIHRoZXkgd291bGQgbmVlZCB0byBiZSBoYW5kbGVkIGFzIGFuIGV4cHJlc3Npb24KKwkJ CSAqIGJlbG93LgogCQkJICovCiAJCQlpZiAoYXR0Zm9ybS0+YXR0Z2VuZXJhdGVkKQogCQkJ CWVyZXBvcnQoRVJST1IsCkBAIC0xNzk2Nyw5ICsxODA1NiwxMiBAQCBDb21wdXRlUGFydGl0 aW9uQXR0cnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZWxhdGlvbiByZWwsIExpc3QgKnBhcnRQ YXJhbXMsIEF0dHJOdQogCQkJCX0KIAogCQkJCS8qCi0JCQkJICogR2VuZXJhdGVkIGNvbHVt bnMgY2Fubm90IHdvcms6IFRoZXkgYXJlIGNvbXB1dGVkIGFmdGVyCi0JCQkJICogQkVGT1JF IHRyaWdnZXJzLCBidXQgcGFydGl0aW9uIHJvdXRpbmcgaXMgZG9uZSBiZWZvcmUgYWxsCi0J CQkJICogdHJpZ2dlcnMuCisJCQkJICogU3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGNhbm5v dCB3b3JrOiBUaGV5IGFyZSBjb21wdXRlZAorCQkJCSAqIGFmdGVyIEJFRk9SRSB0cmlnZ2Vy cywgYnV0IHBhcnRpdGlvbiByb3V0aW5nIGlzIGRvbmUgYmVmb3JlCisJCQkJICogYWxsIHRy aWdnZXJzLiAgVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBjb3VsZCBwcm9iYWJseQorCQkJ CSAqIHdvcmssIGJ1dCBpdCB3b3VsZCByZXF1aXJlIG1vcmUgd29yayBlbHNld2hlcmUgKGZv ciBleGFtcGxlCisJCQkJICogU0VUIEVYUFJFU1NJT04gd291bGQgbmVlZCB0byBjaGVjayB3 aGV0aGVyIHRoZSBjb2x1bW4gaXMKKwkJCQkgKiB1c2VkIGluIHBhcnRpdGlvbiBrZXlzKS4g IFNlZW1zIHNhZmVyIHRvIHByb2hpYml0IGZvciBub3cuCiAJCQkJICovCiAJCQkJaSA9IC0x OwogCQkJCXdoaWxlICgoaSA9IGJtc19uZXh0X21lbWJlcihleHByX2F0dHJzLCBpKSkgPj0g MCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwppbmRleCAxNzAzNjBlZGRhOC4uMDIxMzI4NzQ2 YTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJ0aXRpb25pbmcv cGFydGRlc2MuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jl d3JpdGVIYW5kbGVyLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlTWFuaXAuaCIKICNp bmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIKQEAgLTEw MSw2ICsxMDIsNyBAQCBzdGF0aWMgdm9pZCBBZnRlclRyaWdnZXJTYXZlRXZlbnQoRVN0YXRl ICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCQkJCQkJCSAgYm9vbCBpc19j cm9zc3BhcnRfdXBkYXRlKTsKIHN0YXRpYyB2b2lkIEFmdGVyVHJpZ2dlckVubGFyZ2VRdWVy eVN0YXRlKHZvaWQpOwogc3RhdGljIGJvb2wgYmVmb3JlX3N0bXRfdHJpZ2dlcnNfZmlyZWQo T2lkIHJlbGlkLCBDbWRUeXBlIGNtZFR5cGUpOworc3RhdGljIHZvaWQgY2hlY2tfbW9kaWZp ZWRfdmlydHVhbF9nZW5lcmF0ZWQoVHVwbGVEZXNjIHR1cGRlc2MsIEhlYXBUdXBsZSB0dXBs ZSk7CiAKIAogLyoKQEAgLTY0MSw3ICs2NDMsOCBAQCBDcmVhdGVUcmlnZ2VyRmlyaW5nT24o Q3JlYXRlVHJpZ1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQlp ZiAoVFJJR0dFUl9GT1JfQkVGT1JFKHRndHlwZSkgJiYKIAkJCQkJCXZhci0+dmFyYXR0bm8g PT0gMCAmJgogCQkJCQkJUmVsYXRpb25HZXREZXNjcihyZWwpLT5jb25zdHIgJiYKLQkJCQkJ CVJlbGF0aW9uR2V0RGVzY3IocmVsKS0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCkK KwkJCQkJCShSZWxhdGlvbkdldERlc2NyKHJlbCktPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF9z dG9yZWQgfHwKKwkJCQkJCSBSZWxhdGlvbkdldERlc2NyKHJlbCktPmNvbnN0ci0+aGFzX2dl bmVyYXRlZF92aXJ0dWFsKSkKIAkJCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkJCShlcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCiAJCQkJCQkJCSBlcnJt c2coIkJFRk9SRSB0cmlnZ2VyJ3MgV0hFTiBjb25kaXRpb24gY2Fubm90IHJlZmVyZW5jZSBO RVcgZ2VuZXJhdGVkIGNvbHVtbnMiKSwKQEAgLTk0Miw2ICs5NDUsMTMgQEAgQ3JlYXRlVHJp Z2dlckZpcmluZ09uKENyZWF0ZVRyaWdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0 cmluZywKIAkJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wi IGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJCQkJbmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUocmVsKSkpKTsKIAorCQkJLyogQ3VycmVudGx5IGRvZXNuJ3Qgd29yay4gKi8KKwkJCWlm IChUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0bnVtIC0gMSktPmF0 dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJCQkJZXJybXNnKCJ2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBub3Qgc3Vw cG9ydGVkIGFzIHRyaWdnZXIgY29sdW1ucyIpLAorCQkJCQkJZXJyZGV0YWlsKCJDb2x1bW4g XCIlc1wiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLiIsIG5hbWUpKTsKKwogCQkJ LyogQ2hlY2sgZm9yIGR1cGxpY2F0ZXMgKi8KIAkJCWZvciAoaiA9IGkgLSAxOyBqID49IDA7 IGotLSkKIAkJCXsKQEAgLTI1MDIsNiArMjUxMiw4IEBAIEV4ZWNCUkluc2VydFRyaWdnZXJz KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQl9CiAJCWVsc2Ug aWYgKG5ld3R1cGxlICE9IG9sZHR1cGxlKQogCQl7CisJCQljaGVja19tb2RpZmllZF92aXJ0 dWFsX2dlbmVyYXRlZChSZWxhdGlvbkdldERlc2NyKHJlbGluZm8tPnJpX1JlbGF0aW9uRGVz YyksIG5ld3R1cGxlKTsKKwogCQkJRXhlY0ZvcmNlU3RvcmVIZWFwVHVwbGUobmV3dHVwbGUs IHNsb3QsIGZhbHNlKTsKIAogCQkJLyoKQEAgLTMwNTksNiArMzA3MSw4IEBAIEV4ZWNCUlVw ZGF0ZVRyaWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBFUFFTdGF0ZSAqZXBxc3RhdGUsCiAJCX0K IAkJZWxzZSBpZiAobmV3dHVwbGUgIT0gb2xkdHVwbGUpCiAJCXsKKwkJCWNoZWNrX21vZGlm aWVkX3ZpcnR1YWxfZ2VuZXJhdGVkKFJlbGF0aW9uR2V0RGVzY3IocmVsaW5mby0+cmlfUmVs YXRpb25EZXNjKSwgbmV3dHVwbGUpOworCiAJCQlFeGVjRm9yY2VTdG9yZUhlYXBUdXBsZShu ZXd0dXBsZSwgbmV3c2xvdCwgZmFsc2UpOwogCiAJCQkvKgpAQCAtMzQ4OSw2ICszNTAzLDcg QEAgVHJpZ2dlckVuYWJsZWQoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGlu Zm8sCiAKIAkJCW9sZENvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZXN0YXRlLT5l c19xdWVyeV9jeHQpOwogCQkJdGdxdWFsID0gc3RyaW5nVG9Ob2RlKHRyaWdnZXItPnRncXVh bCk7CisJCQl0Z3F1YWwgPSAoTm9kZSAqKSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5f ZXhwcih0Z3F1YWwsIHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYyk7CiAJCQkvKiBDaGFuZ2Ug cmVmZXJlbmNlcyB0byBPTEQgYW5kIE5FVyB0byBJTk5FUl9WQVIgYW5kIE9VVEVSX1ZBUiAq LwogCQkJQ2hhbmdlVmFyTm9kZXModGdxdWFsLCBQUlMyX09MRF9WQVJOTywgSU5ORVJfVkFS LCAwKTsKIAkJCUNoYW5nZVZhck5vZGVzKHRncXVhbCwgUFJTMl9ORVdfVkFSTk8sIE9VVEVS X1ZBUiwgMCk7CkBAIC02NTk2LDMgKzY2MTEsMzQgQEAgcGdfdHJpZ2dlcl9kZXB0aChQR19G VU5DVElPTl9BUkdTKQogewogCVBHX1JFVFVSTl9JTlQzMihNeVRyaWdnZXJEZXB0aCk7CiB9 CisKKy8qCisgKiBDaGVjayB3aGV0aGVyIGEgdHJpZ2dlciBtb2RpZmllZCBhIHZpcnR1YWwg Z2VuZXJhdGVkIGNvbHVtbiBhbmQgZXJyb3IgaWYKKyAqIHNvLgorICoKKyAqIFdlIG5lZWQg dG8gY2hlY2sgdGhpcyBzbyB0aGF0IHdlIGRvbid0IGVuZCB1cCBzdG9yaW5nIGEgbm9uLW51 bGwgdmFsdWUgaW4gYQorICogdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgorICoKKyAqIFdl IGRvbid0IG5lZWQgdG8gY2hlY2sgZm9yIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucywgc2lu Y2UgdGhvc2Ugd2lsbCBiZQorICogb3ZlcndyaXR0ZW4gbGF0ZXIgYW55d2F5LgorICovCitz dGF0aWMgdm9pZAorY2hlY2tfbW9kaWZpZWRfdmlydHVhbF9nZW5lcmF0ZWQoVHVwbGVEZXNj IHR1cGRlc2MsIEhlYXBUdXBsZSB0dXBsZSkKK3sKKwlpZiAoISh0dXBkZXNjLT5jb25zdHIg JiYgdHVwZGVzYy0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwpKQorCQlyZXR1cm47 CisKKwlmb3IgKGludCBpID0gMDsgaSA8IHR1cGRlc2MtPm5hdHRzOyBpKyspCisJeworCQlp ZiAoVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVU RV9HRU5FUkFURURfVklSVFVBTCkKKwkJeworCQkJYm9vbAkJaXNudWxsOworCisJCQlmYXN0 Z2V0YXR0cih0dXBsZSwgaSArIDEsIHR1cGRlc2MsICZpc251bGwpOworCQkJaWYgKCFpc251 bGwpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRV9SX0lf RV9UUklHR0VSX1BST1RPQ09MX1ZJT0xBVEVEKSwKKwkJCQkJCSBlcnJtc2coInRyaWdnZXIg bW9kaWZpZWQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHZhbHVlIikpKTsKKwkJfQorCX0K K30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IGE2YzQ3ZjYx ZTBkLi4wYmFhZDg4MDQzMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVy cC5jCkBAIC0yMTE5LDYgKzIxMTksMTAgQEAgQ2hlY2tWYXJTbG90Q29tcGF0aWJpbGl0eShU dXBsZVRhYmxlU2xvdCAqc2xvdCwgaW50IGF0dG51bSwgT2lkIHZhcnR5cGUpCiAKIAkJYXR0 ciA9IFR1cGxlRGVzY0F0dHIoc2xvdF90dXBkZXNjLCBhdHRudW0gLSAxKTsKIAorCQkvKiBJ bnRlcm5hbCBlcnJvcjogc29tZWJvZHkgZm9yZ290IHRvIGV4cGFuZCBpdC4gKi8KKwkJaWYg KGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJ CQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gcmVm ZXJlbmNlIik7CisKIAkJaWYgKGF0dHItPmF0dGlzZHJvcHBlZCkKIAkJCWVyZXBvcnQoRVJS T1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY01haW4uYwppbmRleCAyOWUxODZmYTczZC4uYTQ5YjFlODIxZTAgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtMTc0Myw2ICsxNzQzLDcgQEAgRXhlY1JlbENo ZWNrKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCQlFeHByCSAgICpjaGVja2Nv bnN0cjsKIAogCQkJY2hlY2tjb25zdHIgPSBzdHJpbmdUb05vZGUoY2hlY2tbaV0uY2NiaW4p OworCQkJY2hlY2tjb25zdHIgPSAoRXhwciAqKSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNf aW5fZXhwcigoTm9kZSAqKSBjaGVja2NvbnN0ciwgcmVsKTsKIAkJCXJlc3VsdFJlbEluZm8t PnJpX0NvbnN0cmFpbnRFeHByc1tpXSA9CiAJCQkJRXhlY1ByZXBhcmVFeHByKGNoZWNrY29u c3RyLCBlc3RhdGUpOwogCQl9CkBAIC0yMjkwLDcgKzIyOTEsOSBAQCBFeGVjQnVpbGRTbG90 VmFsdWVEZXNjcmlwdGlvbihPaWQgcmVsb2lkLAogCiAJCWlmICh0YWJsZV9wZXJtIHx8IGNv bHVtbl9wZXJtKQogCQl7Ci0JCQlpZiAoc2xvdC0+dHRzX2lzbnVsbFtpXSkKKwkJCWlmIChh dHQtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJ dmFsID0gInZpcnR1YWwiOworCQkJZWxzZSBpZiAoc2xvdC0+dHRzX2lzbnVsbFtpXSkKIAkJ CQl2YWwgPSAibnVsbCI7CiAJCQllbHNlCiAJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRl eCBlOTAxMjAzNDI0ZC4uZTM5MzZhMGI4ZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAt NTY4LDYgKzU2OCw3IEBAIHRyYW5zZm9ybURlbGV0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBEZWxldGVTdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBf aGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rh cmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5o YXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAK IAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTk5NCw2ICs5 OTUsNyBAQCB0cmFuc2Zvcm1JbnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5zZXJ0 U3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJn ZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJ cXJ5LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1 YWw7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE0 NTksNiArMTQ2MSw3IEBAIHRyYW5zZm9ybVNlbGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBf aGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rh cmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5o YXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAK IAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tpbmdDbGF1c2UpCiAJewpAQCAtMTY4NSw2ICsxNjg4 LDcgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0 U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9q b2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1 YkxpbmtzOworCXFyeS0+aGFzR2VuZXJhdGVkVmlydHVhbCA9IHBzdGF0ZS0+cF9oYXNHZW5l cmF0ZWRWaXJ0dWFsOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkp OwogCkBAIC0xOTM2LDYgKzE5NDAsNyBAQCB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1 bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9 IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9o YXNBZ2dzOworCXFyeS0+aGFzR2VuZXJhdGVkVmlydHVhbCA9IHBzdGF0ZS0+cF9oYXNHZW5l cmF0ZWRWaXJ0dWFsOwogCiAJZm9yZWFjaChsLCBsb2NraW5nQ2xhdXNlKQogCXsKQEAgLTI0 MTAsNiArMjQxNSw3IEBAIHRyYW5zZm9ybVJldHVyblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBSZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBf aGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rh cmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5o YXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAK IAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI0NzcsNiAr MjQ4Myw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRh dGVTdG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rh cmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsK KwlxcnktPmhhc0dlbmVyYXRlZFZpcnR1YWwgPSBwc3RhdGUtPnBfaGFzR2VuZXJhdGVkVmly dHVhbDsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAt Mjg0Myw2ICsyODUwLDcgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3Rh dGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5w X2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJ cXJ5LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1 YWw7CiAKIAlmb3JlYWNoKGwsIHNzdG10LT5sb2NraW5nQ2xhdXNlKQogCXsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CmluZGV4IDg0Y2VmNTdhNzA3Li4xOGNlODc1YzQwNiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC02NDAsNyArNjQwLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0 KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxz dHI+CQlvcHRfZXhpc3Rpbmdfd2luZG93X25hbWUKICV0eXBlIDxib29sZWFuPiBvcHRfaWZf bm90X2V4aXN0cwogJXR5cGUgPGJvb2xlYW4+IG9wdF91bmlxdWVfbnVsbF90cmVhdG1lbnQK LSV0eXBlIDxpdmFsPglnZW5lcmF0ZWRfd2hlbiBvdmVycmlkZV9raW5kCisldHlwZSA8aXZh bD4JZ2VuZXJhdGVkX3doZW4gb3ZlcnJpZGVfa2luZCBvcHRfdmlydHVhbF9vcl9zdG9yZWQK ICV0eXBlIDxwYXJ0c3BlYz4JUGFydGl0aW9uU3BlYyBPcHRQYXJ0aXRpb25TcGVjCiAldHlw ZSA8cGFydGVsZW0+CXBhcnRfZWxlbQogJXR5cGUgPGxpc3Q+CQlwYXJ0X3BhcmFtcwpAQCAt Nzg4LDcgKzc4OCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChj aGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVU5MSVNURU4g VU5MT0dHRUQgVU5USUwgVVBEQVRFIFVTRVIgVVNJTkcKIAogCVZBQ1VVTSBWQUxJRCBWQUxJ REFURSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJZSU5H Ci0JVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWT0xBVElMRQorCVZFUkJPU0UgVkVS U0lPTl9QIFZJRVcgVklFV1MgVklSVFVBTCBWT0xBVElMRQogCiAJV0hFTiBXSEVSRSBXSElU RVNQQUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRF CiAKQEAgLTM5NzMsNyArMzk3Myw3IEBAIENvbENvbnN0cmFpbnRFbGVtOgogCQkJCQluLT5s b2NhdGlvbiA9IEAxOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBHRU5F UkFURUQgZ2VuZXJhdGVkX3doZW4gQVMgJygnIGFfZXhwciAnKScgU1RPUkVECisJCQl8IEdF TkVSQVRFRCBnZW5lcmF0ZWRfd2hlbiBBUyAnKCcgYV9leHByICcpJyBvcHRfdmlydHVhbF9v cl9zdG9yZWQKIAkJCQl7CiAJCQkJCUNvbnN0cmFpbnQgKm4gPSBtYWtlTm9kZShDb25zdHJh aW50KTsKIApAQCAtMzk4MSw2ICszOTgxLDcgQEAgQ29sQ29uc3RyYWludEVsZW06CiAJCQkJ CW4tPmdlbmVyYXRlZF93aGVuID0gJDI7CiAJCQkJCW4tPnJhd19leHByID0gJDU7CiAJCQkJ CW4tPmNvb2tlZF9leHByID0gTlVMTDsKKwkJCQkJbi0+Z2VuZXJhdGVkX2tpbmQgPSAkNzsK IAkJCQkJbi0+bG9jYXRpb24gPSBAMTsKIAogCQkJCQkvKgpAQCAtNDAyNyw2ICs0MDI4LDEy IEBAIGdlbmVyYXRlZF93aGVuOgogCQkJfCBCWSBERUZBVUxUCXsgJCQgPSBBVFRSSUJVVEVf SURFTlRJVFlfQllfREVGQVVMVDsgfQogCQk7CiAKK29wdF92aXJ0dWFsX29yX3N0b3JlZDoK KwkJCVNUT1JFRAkJCXsgJCQgPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRDsgfQorCQkJ fCBWSVJUVUFMCQl7ICQkID0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMOyB9CisJCQl8 IC8qRU1QVFkqLwkJeyAkJCA9IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTDsgfQorCQk7 CisKIC8qCiAgKiBDb25zdHJhaW50QXR0ciByZXByZXNlbnRzIGNvbnN0cmFpbnQgYXR0cmli dXRlcywgd2hpY2ggd2UgcGFyc2UgYXMgaWYKICAqIHRoZXkgd2VyZSBpbmRlcGVuZGVudCBj b25zdHJhaW50IGNsYXVzZXMsIGluIG9yZGVyIHRvIGF2b2lkIHNoaWZ0L3JlZHVjZQpAQCAt MTc4MDksNiArMTc4MTYsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFZFUlNJT05f UAogCQkJfCBWSUVXCiAJCQl8IFZJRVdTCisJCQl8IFZJUlRVQUwKIAkJCXwgVk9MQVRJTEUK IAkJCXwgV0hJVEVTUEFDRV9QCiAJCQl8IFdJVEhJTgpAQCAtMTg0NjIsNiArMTg0NzAsNyBA QCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCiAJCQl8 IFZJRVdTCisJCQl8IFZJUlRVQUwKIAkJCXwgVk9MQVRJTEUKIAkJCXwgV0hFTgogCQkJfCBX SElURVNQQUNFX1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1 c2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCA4MTE4MDM2 NDk1Yi4uNDg1MjRhYzNmYzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9jbGF1c2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAg LTIwNyw2ICsyMDcsMTAgQEAgc2V0VGFyZ2V0VGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBS YW5nZVZhciAqcmVsYXRpb24sCiAJcHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbiA9IHBhcnNl ck9wZW5UYWJsZShwc3RhdGUsIHJlbGF0aW9uLAogCQkJCQkJCQkJCQkJUm93RXhjbHVzaXZl TG9jayk7CiAKKwlpZiAocHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbi0+cmRfYXR0LT5jb25z dHIgJiYKKwkJcHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbi0+cmRfYXR0LT5jb25zdHItPmhh c19nZW5lcmF0ZWRfdmlydHVhbCkKKwkJcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWwg PSB0cnVlOworCiAJLyoKIAkgKiBOb3cgYnVpbGQgYW4gUlRFIGFuZCBhIFBhcnNlTmFtZXNw YWNlSXRlbS4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9t ZXJnZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKaW5kZXggODdkZjc5 MDI3ZDcuLjM1MGU5ZTE4ODg1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfbWVyZ2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpAQCAt NDA1LDYgKzQwNSw3IEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IE1lcmdlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IGZhbHNlOwogCXFy eS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNHZW5l cmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlhc3Np Z25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3JlbGF0aW9uLmMKaW5kZXggMmY2NGVhZjBlMzcuLmI4NjQ3NDlmMDljIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAtNzA0LDcgKzcwNCwxMSBAQCBzY2Fu TlNJdGVtRm9yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJdGVt ICpuc2l0ZW0sCiAJCQkJCQljb2xuYW1lKSwKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgbG9jYXRpb24pKSk7CiAKLQkvKiBJbiBnZW5lcmF0ZWQgY29sdW1uLCBubyBzeXN0 ZW0gY29sdW1uIGlzIGFsbG93ZWQgZXhjZXB0IHRhYmxlT2lkICovCisJLyoKKwkgKiBJbiBn ZW5lcmF0ZWQgY29sdW1uLCBubyBzeXN0ZW0gY29sdW1uIGlzIGFsbG93ZWQgZXhjZXB0IHRh YmxlT2lkLgorCSAqIChSZXF1aXJlZCBmb3Igc3RvcmVkIGdlbmVyYXRlZCwgYnV0IHdlIGFs c28gZG8gaXQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkCisJICogZm9yIG5vdyBmb3IgY29uc2lz dGVuY3kuKQorCSAqLwogCWlmIChwc3RhdGUtPnBfZXhwcl9raW5kID09IEVYUFJfS0lORF9H RU5FUkFURURfQ09MVU1OICYmCiAJCWF0dG51bSA8IEludmFsaWRBdHRyTnVtYmVyICYmIGF0 dG51bSAhPSBUYWJsZU9pZEF0dHJpYnV0ZU51bWJlcikKIAkJZXJlcG9ydChFUlJPUiwKQEAg LTE1MTEsNiArMTUxNSw5IEBAIGFkZFJhbmdlVGFibGVFbnRyeShQYXJzZVN0YXRlICpwc3Rh dGUsCiAJcnRlLT5lcmVmID0gbWFrZUFsaWFzKHJlZm5hbWUsIE5JTCk7CiAJYnVpbGRSZWxh dGlvbkFsaWFzZXMocmVsLT5yZF9hdHQsIGFsaWFzLCBydGUtPmVyZWYpOwogCisJaWYgKHJl bC0+cmRfYXR0LT5jb25zdHIgJiYgcmVsLT5yZF9hdHQtPmNvbnN0ci0+aGFzX2dlbmVyYXRl ZF92aXJ0dWFsKQorCQlwc3RhdGUtPnBfaGFzR2VuZXJhdGVkVmlydHVhbCA9IHRydWU7CisK IAkvKgogCSAqIFNldCBmbGFncyBhbmQgaW5pdGlhbGl6ZSBhY2Nlc3MgcGVybWlzc2lvbnMu CiAJICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IDc5Y2FkNGFiMzBj Li4wMzMwMWY5YzUzZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0 aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC03 NTEsNyArNzUxLDcgQEAgdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbihDcmVhdGVTdG10Q29u dGV4dCAqY3h0LCBDb2x1bW5EZWYgKmNvbHVtbikKIAkJCQkJCQkJCWNvbHVtbi0+Y29sbmFt ZSwgY3h0LT5yZWxhdGlvbi0+cmVsbmFtZSksCiAJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlv bihjeHQtPnBzdGF0ZSwKIAkJCQkJCQkJCQkJCWNvbnN0cmFpbnQtPmxvY2F0aW9uKSkpOwot CQkJCWNvbHVtbi0+Z2VuZXJhdGVkID0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQ7CisJ CQkJY29sdW1uLT5nZW5lcmF0ZWQgPSBjb25zdHJhaW50LT5nZW5lcmF0ZWRfa2luZDsKIAkJ CQljb2x1bW4tPnJhd19kZWZhdWx0ID0gY29uc3RyYWludC0+cmF3X2V4cHI7CiAJCQkJQXNz ZXJ0KGNvbnN0cmFpbnQtPmNvb2tlZF9leHByID09IE5VTEwpOwogCQkJCXNhd19nZW5lcmF0 ZWQgPSB0cnVlOwpAQCAtODM5LDYgKzgzOSwxOCBAQCB0cmFuc2Zvcm1Db2x1bW5EZWZpbml0 aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29sdW1uKQogCQkJCQkJ CWNvbHVtbi0+Y29sbmFtZSwgY3h0LT5yZWxhdGlvbi0+cmVsbmFtZSksCiAJCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24oY3h0LT5wc3RhdGUsCiAJCQkJCQkJCQkJY29uc3RyYWludC0+bG9j YXRpb24pKSk7CisKKwkJLyoKKwkJICogVE9ETzogU3RyYWlnaHRmb3J3YXJkIG5vdC1udWxs IGNvbnN0cmFpbnRzIHdvbid0IHdvcmsgb24gdmlydHVhbAorCQkgKiBnZW5lcmF0ZWQgY29s dW1ucywgYmVjYXVzZSB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBleHBhbmRpbmcgdGhlCisJ CSAqIGNvbHVtbiB3aGVuIHRoZSBjb25zdHJhaW50IGlzIGNoZWNrZWQuICBNYXliZSB3ZSBj b3VsZCBjb252ZXJ0IHRoZQorCQkgKiBub3QtbnVsbCBjb25zdHJhaW50IGludG8gYSBmdWxs IGNoZWNrIGNvbnN0cmFpbnQsIHNvIHRoYXQgdGhlCisJCSAqIGdlbmVyYXRpb24gZXhwcmVz c2lvbiBjYW4gYmUgZXhwYW5kZWQgYXQgY2hlY2sgdGltZS4KKwkJICovCisJCWlmIChjb2x1 bW4tPmlzX25vdF9udWxsICYmIGNvbHVtbi0+Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5F UkFURURfVklSVFVBTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygibm90LW51bGwgY29u c3RyYWludHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cyIpKSk7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Bnb3V0cHV0L3Bnb3V0cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1 dC9wZ291dHB1dC5jCmluZGV4IDAwZTcwMjQ1NjNlLi5jYjJlODY0YWQ0NSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCkBAIC0yNyw2ICsy Nyw3IEBACiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbHByb3RvLmgiCiAjaW5jbHVk ZSAicmVwbGljYXRpb24vb3JpZ2luLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vcGdvdXRw dXQuaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCiAjaW5jbHVkZSAi dXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2luY2x1ZGUg InV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtOTk2LDcgKzk5Nyw3IEBAIHBnb3V0cHV0X3Jvd19m aWx0ZXJfaW5pdChQR091dHB1dERhdGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywKIAkJ CQljb250aW51ZTsKIAogCQkJZm9yZWFjaChsYywgcmZub2Rlc1tpZHhdKQotCQkJCWZpbHRl cnMgPSBsYXBwZW5kKGZpbHRlcnMsIHN0cmluZ1RvTm9kZSgoY2hhciAqKSBsZmlyc3QobGMp KSk7CisJCQkJZmlsdGVycyA9IGxhcHBlbmQoZmlsdGVycywgZXhwYW5kX2dlbmVyYXRlZF9j b2x1bW5zX2luX2V4cHIoc3RyaW5nVG9Ob2RlKChjaGFyICopIGxmaXJzdChsYykpLCByZWxh dGlvbikpOwogCiAJCQkvKiBjb21iaW5lIHRoZSByb3cgZmlsdGVyIGFuZCBjYWNoZSB0aGUg RXhwclN0YXRlICovCiAJCQlyZm5vZGUgPSBtYWtlX29yY2xhdXNlKGZpbHRlcnMpOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jIGIvc3JjL2Jh Y2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCmluZGV4IDZkNTlhMmJiOGRjLi5mMjcx M2VhZWYyMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxl ci5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYwpAQCAtNDQs NiArNDQsNyBAQAogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRp bHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRp bHMvc3lzY2FjaGUuaCIKIAogCiAvKiBXZSB1c2UgYSBsaXN0IG9mIHRoZXNlIHRvIGRldGVj dCByZWN1cnNpb24gaW4gUmV3cml0ZVF1ZXJ5ICovCkBAIC05MCw2ICs5MSw4IEBAIHN0YXRp YyBMaXN0ICptYXRjaExvY2tzKENtZFR5cGUgZXZlbnQsIFJlbGF0aW9uIHJlbGF0aW9uLAog CQkJCQkJaW50IHZhcm5vLCBRdWVyeSAqcGFyc2V0cmVlLCBib29sICpoYXNVcGRhdGUpOwog c3RhdGljIFF1ZXJ5ICpmaXJlUklScnVsZXMoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqYWN0 aXZlUklScyk7CiBzdGF0aWMgQml0bWFwc2V0ICphZGp1c3Rfdmlld19jb2x1bW5fc2V0KEJp dG1hcHNldCAqY29scywgTGlzdCAqdGFyZ2V0bGlzdCk7CitzdHJ1Y3QgZXhwYW5kX2dlbmVy YXRlZF9jb250ZXh0Oworc3RhdGljIFF1ZXJ5ICpleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNf aW5fcXVlcnkoUXVlcnkgKnF1ZXJ5LCBzdHJ1Y3QgZXhwYW5kX2dlbmVyYXRlZF9jb250ZXh0 ICpjb250ZXh0KTsKIAogCiAvKgpAQCAtOTc0LDcgKzk3Nyw4IEBAIHJld3JpdGVUYXJnZXRM aXN0SVUoTGlzdCAqdGFyZ2V0TGlzdCwKIAkJaWYgKGF0dF90dXAtPmF0dGdlbmVyYXRlZCkK IAkJewogCQkJLyoKLQkJCSAqIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1uIHdpbGwgYmUgZml4 ZWQgaW4gZXhlY3V0b3IKKwkJCSAqIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbiBzdG9yZXMg YSBudWxsIHZhbHVlOyBzdG9yZWQgZ2VuZXJhdGVkCisJCQkgKiBjb2x1bW4gd2lsbCBiZSBm aXhlZCBpbiBleGVjdXRvcgogCQkJICovCiAJCQluZXdfdGxlID0gTlVMTDsKIAkJfQpAQCAt NDM2NSw2ICs0MzY5LDE2OCBAQCBSZXdyaXRlUXVlcnkoUXVlcnkgKnBhcnNldHJlZSwgTGlz dCAqcmV3cml0ZV9ldmVudHMsIGludCBvcmlnX3J0X2xlbmd0aCkKIH0KIAogCisvKgorICog VmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBzdXBwb3J0CisgKi8KKworc3RydWN0IGV4cGFu ZF9nZW5lcmF0ZWRfY29udGV4dAoreworCS8qIGxpc3Qgb2YgcmFuZ2UgdGFibGVzLCBpbm5l cm1vc3QgbGFzdCAqLworCUxpc3QJICAgKnJ0YWJsZXM7CisKKwkvKiBpbmNyZW1lbnRlZCBm b3IgZXZlcnkgbGV2ZWwgd2hlcmUgaXQncyB0cnVlICovCisJaW50CQkJYW5jZXN0b3JfaGFz X3ZpcnR1YWw7Cit9OworCitzdGF0aWMgTm9kZSAqCitleHBhbmRfZ2VuZXJhdGVkX2NvbHVt bnNfbXV0YXRvcihOb2RlICpub2RlLCBzdHJ1Y3QgZXhwYW5kX2dlbmVyYXRlZF9jb250ZXh0 ICpjb250ZXh0KQoreworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJ aWYgKElzQShub2RlLCBWYXIpKQorCXsKKwkJVmFyCQkgICAqdiA9IChWYXIgKikgbm9kZTsK KwkJT2lkCQkJcmVsaWQ7CisJCUF0dHJOdW1iZXIJYXR0bnVtOworCQlMaXN0CSAgICpydGFi bGUgPSBsaXN0X250aF9ub2RlKExpc3QsCisJCQkJCQkJCQkJICAgY29udGV4dC0+cnRhYmxl cywKKwkJCQkJCQkJCQkgICBsaXN0X2xlbmd0aChjb250ZXh0LT5ydGFibGVzKSAtIHYtPnZh cmxldmVsc3VwIC0gMSk7CisKKwkJcmVsaWQgPSBydF9mZXRjaCh2LT52YXJubywgcnRhYmxl KS0+cmVsaWQ7CisJCWF0dG51bSA9IHYtPnZhcmF0dG5vOworCisJCWlmICghcmVsaWQgfHwg IWF0dG51bSkKKwkJCXJldHVybiBub2RlOworCisJCWlmIChnZXRfYXR0Z2VuZXJhdGVkKHJl bGlkLCBhdHRudW0pID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJeworCQkJ UmVsYXRpb24JcnRfZW50cnlfcmVsYXRpb24gPSB0YWJsZV9vcGVuKHJlbGlkLCBOb0xvY2sp OworCQkJT2lkCQkJYXR0Y29sbGlkOworCisJCQlub2RlID0gYnVpbGRfY29sdW1uX2RlZmF1 bHQocnRfZW50cnlfcmVsYXRpb24sIGF0dG51bSk7CisJCQlpZiAobm9kZSA9PSBOVUxMKQor CQkJCWVsb2coRVJST1IsICJubyBnZW5lcmF0aW9uIGV4cHJlc3Npb24gZm91bmQgZm9yIGNv bHVtbiBudW1iZXIgJWQgb2YgdGFibGUgXCIlc1wiIiwKKwkJCQkJIGF0dG51bSwgUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUocnRfZW50cnlfcmVsYXRpb24pKTsKKworCQkJLyoKKwkJCSAq IElmIHRoZSBjb2x1bW4gZGVmaW5pdGlvbiBoYXMgYSBjb2xsYXRpb24gYW5kIGl0IGlzIGRp ZmZlcmVudAorCQkJICogZnJvbSB0aGUgY29sbGF0aW9uIG9mIHRoZSBnZW5lcmF0aW9uIGV4 cHJlc3Npb24sIHB1dCBhIENPTExBVEUKKwkJCSAqIGNsYXVzZSBhcm91bmQgdGhlIGV4cHJl c3Npb24uCisJCQkgKi8KKwkJCWF0dGNvbGxpZCA9IEdldFN5c0NhY2hlT2lkKEFUVE5VTSwg QW51bV9wZ19hdHRyaWJ1dGVfYXR0Y29sbGF0aW9uLCByZWxpZCwgYXR0bnVtLCAwLCAwKTsK KwkJCWlmIChhdHRjb2xsaWQgJiYgYXR0Y29sbGlkICE9IGV4cHJDb2xsYXRpb24obm9kZSkp CisJCQl7CisJCQkJQ29sbGF0ZUV4cHIgKmNlID0gbWFrZU5vZGUoQ29sbGF0ZUV4cHIpOwor CisJCQkJY2UtPmFyZyA9IChFeHByICopIG5vZGU7CisJCQkJY2UtPmNvbGxPaWQgPSBhdHRj b2xsaWQ7CisJCQkJY2UtPmxvY2F0aW9uID0gLTE7CisKKwkJCQlub2RlID0gKE5vZGUgKikg Y2U7CisJCQl9CisKKwkJCUluY3JlbWVudFZhclN1YmxldmVsc1VwKG5vZGUsIHYtPnZhcmxl dmVsc3VwLCAwKTsKKwkJCUNoYW5nZVZhck5vZGVzKG5vZGUsIDEsIHYtPnZhcm5vLCB2LT52 YXJsZXZlbHN1cCk7CisKKwkJCXRhYmxlX2Nsb3NlKHJ0X2VudHJ5X3JlbGF0aW9uLCBOb0xv Y2spOworCQl9CisKKwkJcmV0dXJuIG5vZGU7CisJfQorCWVsc2UgaWYgKElzQShub2RlLCBR dWVyeSkpCisJeworCQlRdWVyeQkgICAqcXVlcnkgPSAoUXVlcnkgKikgbm9kZTsKKworCQlx dWVyeSA9IGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9xdWVyeShxdWVyeSwgY29udGV4 dCk7CisKKwkJcmV0dXJuIChOb2RlICopIHF1ZXJ5OworCX0KKwllbHNlCisJCXJldHVybiBl eHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLCBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNf bXV0YXRvciwgY29udGV4dCk7Cit9CisKK05vZGUgKgorZXhwYW5kX2dlbmVyYXRlZF9jb2x1 bW5zX2luX2V4cHIoTm9kZSAqbm9kZSwgUmVsYXRpb24gcmVsKQoreworCVR1cGxlRGVzYwl0 dXBkZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWwpOworCisJaWYgKHR1cGRlc2MtPmNvbnN0 ciAmJiB0dXBkZXNjLT5jb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKKwl7CisJCVJh bmdlVGJsRW50cnkgKnJ0ZTsKKwkJTGlzdAkgICAqcnRhYmxlOworCQlzdHJ1Y3QgZXhwYW5k X2dlbmVyYXRlZF9jb250ZXh0IGNvbnRleHQ7CisKKwkJLyoKKwkJICogTWFrZSBhIGR1bW15 IHJhbmdlIHRhYmxlIGZvciBhIHNpbmdsZSByZWxhdGlvbi4gIEZvciB0aGUgYmVuZWZpdCBv ZgorCQkgKiB0cmlnZ2VycywgYWRkIHRoZSBzYW1lIGVudHJ5IHR3aWNlLCBzbyBpdCBjb3Zl cnMgUFJTMl9PTERfVkFSTk8gYW5kCisJCSAqIFBSUzJfTkVXX1ZBUk5PLgorCQkgKi8KKwkJ cnRlID0gbWFrZU5vZGUoUmFuZ2VUYmxFbnRyeSk7CisJCXJ0ZS0+cmVsaWQgPSBSZWxhdGlv bkdldFJlbGlkKHJlbCk7CisJCXJ0YWJsZSA9IGxpc3RfbWFrZTIocnRlLCBydGUpOworCQlj b250ZXh0LnJ0YWJsZXMgPSBsaXN0X21ha2UxKHJ0YWJsZSk7CisKKwkJcmV0dXJuIGV4cHJl c3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19tdXRh dG9yLCAmY29udGV4dCk7CisJfQorCWVsc2UKKwkJcmV0dXJuIG5vZGU7Cit9CisKKy8qCisg KiBFeHBhbmQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiBhIFF1ZXJ5LiAgV2UgZG8g c29tZSBvcHRpbWl6YXRpb25zIGhlcmUKKyAqIHRvIGF2b2lkIGRpZ2dpbmcgdGhyb3VnaCB0 aGUgd2hvbGUgUXVlcnkgdW5sZXNzIG5lY2Vzc2FyeS4KKyAqLworc3RhdGljIFF1ZXJ5ICoK K2V4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9xdWVyeShRdWVyeSAqcXVlcnksIHN0cnVj dCBleHBhbmRfZ2VuZXJhdGVkX2NvbnRleHQgKmNvbnRleHQpCit7CisJY29udGV4dC0+cnRh YmxlcyA9IGxhcHBlbmQoY29udGV4dC0+cnRhYmxlcywgcXVlcnktPnJ0YWJsZSk7CisJaWYg KHF1ZXJ5LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsKQorCQljb250ZXh0LT5hbmNlc3Rvcl9oYXNf dmlydHVhbCsrOworCisJLyoKKwkgKiBJZiBhbnkgdGFibGUgaW4gdGhlIHF1ZXJ5IGhhcyBh IHZpcnR1YWwgY29sdW1uIG9yIHRoZXJlIGlzIGEgc3VibGluaywKKwkgKiB0aGVuIHdlIG5l ZWQgdG8gZG8gdGhlIHdob2xlIHdhbGsuCisJICovCisJaWYgKHF1ZXJ5LT5oYXNHZW5lcmF0 ZWRWaXJ0dWFsIHx8IHF1ZXJ5LT5oYXNTdWJMaW5rcyB8fCBjb250ZXh0LT5hbmNlc3Rvcl9o YXNfdmlydHVhbCkKKwl7CisJCXF1ZXJ5ID0gcXVlcnlfdHJlZV9tdXRhdG9yKHF1ZXJ5LAor CQkJCQkJCQkgICBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfbXV0YXRvciwKKwkJCQkJCQkJ ICAgY29udGV4dCwKKwkJCQkJCQkJICAgUVRXX0RPTlRfQ09QWV9RVUVSWSk7CisJfQorCisJ LyoKKwkgKiBFbHNlIHdlIG9ubHkgbmVlZCB0byBwcm9jZXNzIHN1YnF1ZXJpZXMuCisJICov CisJZWxzZQorCXsKKwkJTGlzdENlbGwgICAqbGM7CisKKwkJZm9yZWFjaChsYywgcXVlcnkt PnJ0YWJsZSkKKwkJeworCQkJUmFuZ2VUYmxFbnRyeSAqcnRlID0gKFJhbmdlVGJsRW50cnkg KikgbGZpcnN0KGxjKTsKKworCQkJaWYgKHJ0ZS0+cnRla2luZCA9PSBSVEVfU1VCUVVFUlkp CisJCQkJcnRlLT5zdWJxdWVyeSA9IGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9xdWVy eShydGUtPnN1YnF1ZXJ5LCBjb250ZXh0KTsKKwkJfQorCisJCWZvcmVhY2gobGMsIHF1ZXJ5 LT5jdGVMaXN0KQorCQl7CisJCQlDb21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJs ZUV4cHIgKikgbGZpcnN0KGxjKTsKKworCQkJY3RlLT5jdGVxdWVyeSA9IChOb2RlICopIGV4 cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9xdWVyeShjYXN0Tm9kZShRdWVyeSwgY3RlLT5j dGVxdWVyeSksIGNvbnRleHQpOworCQl9CisJfQorCisJaWYgKHF1ZXJ5LT5oYXNHZW5lcmF0 ZWRWaXJ0dWFsKQorCQljb250ZXh0LT5hbmNlc3Rvcl9oYXNfdmlydHVhbC0tOworCWNvbnRl eHQtPnJ0YWJsZXMgPSBsaXN0X3RydW5jYXRlKGNvbnRleHQtPnJ0YWJsZXMsIGxpc3RfbGVu Z3RoKGNvbnRleHQtPnJ0YWJsZXMpIC0gMSk7CisKKwlyZXR1cm4gcXVlcnk7Cit9CisKKwog LyoKICAqIFF1ZXJ5UmV3cml0ZSAtCiAgKgkgIFByaW1hcnkgZW50cnkgcG9pbnQgdG8gdGhl IHF1ZXJ5IHJld3JpdGVyLgpAQCAtNDQwOSw5ICs0NTc1LDEyIEBAIFF1ZXJ5UmV3cml0ZShR dWVyeSAqcGFyc2V0cmVlKQogCWZvcmVhY2gobCwgcXVlcnlsaXN0KQogCXsKIAkJUXVlcnkJ ICAgKnF1ZXJ5ID0gKFF1ZXJ5ICopIGxmaXJzdChsKTsKKwkJc3RydWN0IGV4cGFuZF9nZW5l cmF0ZWRfY29udGV4dCBjb250ZXh0ID0gezB9OwogCiAJCXF1ZXJ5ID0gZmlyZVJJUnJ1bGVz KHF1ZXJ5LCBOSUwpOwogCisJCXF1ZXJ5ID0gZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2lu X3F1ZXJ5KHF1ZXJ5LCAmY29udGV4dCk7CisKIAkJcXVlcnktPnF1ZXJ5SWQgPSBpbnB1dF9x dWVyeV9pZDsKIAogCQlyZXN1bHRzID0gbGFwcGVuZChyZXN1bHRzLCBxdWVyeSk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wYXJ0Y2FjaGUuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL3BhcnRjYWNoZS5jCmluZGV4IGJlZWM2Y2RkYmM0Li4xZGVlN2Mx ZTg5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGFydGNhY2hlLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGFydGNhY2hlLmMKQEAgLTI2LDYgKzI2 LDcgQEAKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNsdWRlICJvcHRpbWl6 ZXIvb3B0aW1pemVyLmgiCiAjaW5jbHVkZSAicGFydGl0aW9uaW5nL3BhcnRib3VuZHMuaCIK KyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCiAjaW5jbHVkZSAidXRpbHMv YnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1 dGlscy9tZW11dGlscy5oIgpAQCAtMTQ4LDYgKzE0OSw4IEBAIFJlbGF0aW9uQnVpbGRQYXJ0 aXRpb25LZXkoUmVsYXRpb24gcmVsYXRpb24pCiAJCWV4cHIgPSBzdHJpbmdUb05vZGUoZXhw clN0cmluZyk7CiAJCXBmcmVlKGV4cHJTdHJpbmcpOwogCisJCWV4cHIgPSBleHBhbmRfZ2Vu ZXJhdGVkX2NvbHVtbnNfaW5fZXhwcihleHByLCByZWxhdGlvbik7CisKIAkJLyoKIAkJICog UnVuIHRoZSBleHByZXNzaW9ucyB0aHJvdWdoIGNvbnN0LXNpbXBsaWZpY2F0aW9uIHNpbmNl IHRoZSBwbGFubmVyCiAJCSAqIHdpbGwgYmUgY29tcGFyaW5nIHRoZW0gdG8gc2ltaWxhcmx5 LXByb2Nlc3NlZCBxdWFsIGNsYXVzZSBvcGVyYW5kcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9y ZWxjYWNoZS5jCmluZGV4IDYzZWZjNTVmMDllLi5kY2E4YTVhNGEyMSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9yZWxjYWNoZS5jCkBAIC01ODksNiArNTg5LDggQEAgUmVsYXRpb25CdWls ZFR1cGxlRGVzYyhSZWxhdGlvbiByZWxhdGlvbikKIAkJCWNvbnN0ci0+aGFzX25vdF9udWxs ID0gdHJ1ZTsKIAkJaWYgKGF0dHAtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJB VEVEX1NUT1JFRCkKIAkJCWNvbnN0ci0+aGFzX2dlbmVyYXRlZF9zdG9yZWQgPSB0cnVlOwor CQlpZiAoYXR0cC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVB TCkKKwkJCWNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsID0gdHJ1ZTsKIAkJaWYgKGF0 dHAtPmF0dGhhc2RlZikKIAkJCW5kZWYrKzsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggZGFjYjAz M2U5ODkuLjI5NjYyYzVjMTlhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE1OTk0LDYgKzE1OTk0 LDkgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAq dGJpbmZvKQogCQkJCQkJaWYgKHRiaW5mby0+YXR0Z2VuZXJhdGVkW2pdID09IEFUVFJJQlVU RV9HRU5FUkFURURfU1RPUkVEKQogCQkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICIgR0VO RVJBVEVEIEFMV0FZUyBBUyAoJXMpIFNUT1JFRCIsCiAJCQkJCQkJCQkJCSAgdGJpbmZvLT5h dHRyZGVmc1tqXS0+YWRlZl9leHByKTsKKwkJCQkJCWVsc2UgaWYgKHRiaW5mby0+YXR0Z2Vu ZXJhdGVkW2pdID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJCQkJCQlhcHBl bmRQUUV4cEJ1ZmZlcihxLCAiIEdFTkVSQVRFRCBBTFdBWVMgQVMgKCVzKSIsCisJCQkJCQkJ CQkJCSAgdGJpbmZvLT5hdHRyZGVmc1tqXS0+YWRlZl9leHByKTsKIAkJCQkJCWVsc2UKIAkJ CQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiIERFRkFVTFQgJXMiLAogCQkJCQkJCQkJCQkg IHRiaW5mby0+YXR0cmRlZnNbal0tPmFkZWZfZXhwcik7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsCmluZGV4IDViY2MyMjQ0ZDU4Li5jM2Q2MDIyMDE1YyAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKQEAgLTM1OTUsMTIgKzM1OTUsMTQgQEAKIAkJY3JlYXRlX29yZGVy ID0+IDMsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBUQUJMRSBkdW1wX3Rlc3QudGVzdF90 YWJsZV9nZW5lcmF0ZWQgKAogCQkJCQkJICAgY29sMSBpbnQgcHJpbWFyeSBrZXksCi0JCQkJ CQkgICBjb2wyIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChjb2wxICogMikgc3RvcmVkCisJ CQkJCQkgICBjb2wyIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChjb2wxICogMikgc3RvcmVk LAorCQkJCQkJICAgY29sMyBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoY29sMSAqIDMpIHZp cnR1YWwKIAkJCQkJICAgKTsnLAogCQlyZWdleHAgPT4gcXIvXgogCQkJXFFDUkVBVEUgVEFC TEUgZHVtcF90ZXN0LnRlc3RfdGFibGVfZ2VuZXJhdGVkIChcRVxuCiAJCQlccytcUWNvbDEg aW50ZWdlciBOT1QgTlVMTCxcRVxuCi0JCQlccytcUWNvbDIgaW50ZWdlciBHRU5FUkFURUQg QUxXQVlTIEFTICgoY29sMSAqIDIpKSBTVE9SRURcRVxuCisJCQlccytcUWNvbDIgaW50ZWdl ciBHRU5FUkFURUQgQUxXQVlTIEFTICgoY29sMSAqIDIpKSBTVE9SRUQsXEVcbgorCQkJXHMr XFFjb2wzIGludGVnZXIgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGNvbDEgKiAzKSlcRVxuCiAJ CQlcKTsKIAkJCS94bXMsCiAJCWxpa2UgPT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggN2M5YTFmMjM0YzYu LjQzMDlkM2U3NTdkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysg Yi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMjA4OSw2ICsyMDg5LDEyIEBAIGRlc2Ny aWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJCQkg ICBQUWdldHZhbHVlKHJlcywgaSwgYXR0cmRlZl9jb2wpKTsKIAkJCQltdXN0ZnJlZSA9IHRy dWU7CiAJCQl9CisJCQllbHNlIGlmIChnZW5lcmF0ZWRbMF0gPT0gQVRUUklCVVRFX0dFTkVS QVRFRF9WSVJUVUFMKQorCQkJeworCQkJCWRlZmF1bHRfc3RyID0gcHNwcmludGYoImdlbmVy YXRlZCBhbHdheXMgYXMgKCVzKSIsCisJCQkJCQkJCQkgICBQUWdldHZhbHVlKHJlcywgaSwg YXR0cmRlZl9jb2wpKTsKKwkJCQltdXN0ZnJlZSA9IHRydWU7CisJCQl9CiAJCQllbHNlCiAJ CQkJZGVmYXVsdF9zdHIgPSBQUWdldHZhbHVlKHJlcywgaSwgYXR0cmRlZl9jb2wpOwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdHVwZGVzYy5oIGIvc3JjL2luY2x1ZGUv YWNjZXNzL3R1cGRlc2MuaAppbmRleCA4OTMwYTI4ZDY2MC4uNmVmNDAyNDk1ODMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90dXBkZXNjLmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL3R1cGRlc2MuaApAQCAtNDMsNiArNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBUdXBs ZUNvbnN0cgogCXVpbnQxNgkJbnVtX2NoZWNrOwogCWJvb2wJCWhhc19ub3RfbnVsbDsKIAli b29sCQloYXNfZ2VuZXJhdGVkX3N0b3JlZDsKKwlib29sCQloYXNfZ2VuZXJhdGVkX3ZpcnR1 YWw7CiB9IFR1cGxlQ29uc3RyOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9oZWFwLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaAppbmRleCBjNTEyODI0 Y2QxYy4uMjM1YWQ3M2VlZGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVh cC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oCkBAIC0yMyw2ICsyMyw3IEBA CiAjZGVmaW5lIENIS0FUWVBFX0FOWUFSUkFZCQkweDAxCS8qIGFsbG93IEFOWUFSUkFZICov CiAjZGVmaW5lIENIS0FUWVBFX0FOWVJFQ09SRAkJMHgwMgkvKiBhbGxvdyBSRUNPUkQgYW5k IFJFQ09SRFtdICovCiAjZGVmaW5lIENIS0FUWVBFX0lTX1BBUlRLRVkJCTB4MDQJLyogYXR0 bmFtZSBpcyBwYXJ0IGtleSAjIG5vdCBjb2x1bW4gKi8KKyNkZWZpbmUgQ0hLQVRZUEVfSVNf VklSVFVBTAkJMHgwOAkvKiBpcyB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gKi8KIAogdHlw ZWRlZiBzdHJ1Y3QgUmF3Q29sdW1uRGVmYXVsdAogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0 cmlidXRlLmgKaW5kZXggMWM2MmI4YmZjYjUuLjhmMTU4ZGM2MDgzIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYXR0cmlidXRlLmgKQEAgLTIzNCw2ICsyMzQsNyBAQCBNQUtFX1NZU0NBQ0hF KEFUVE5VTSwgcGdfYXR0cmlidXRlX3JlbGlkX2F0dG51bV9pbmRleCwgMTI4KTsKICNkZWZp bmUJCSAgQVRUUklCVVRFX0lERU5USVRZX0JZX0RFRkFVTFQgJ2QnCiAKICNkZWZpbmUJCSAg QVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQJJ3MnCisjZGVmaW5lCQkgIEFUVFJJQlVURV9H RU5FUkFURURfVklSVFVBTAkndicKIAogI2VuZGlmCQkJCQkJCS8qIEVYUE9TRV9UT19DTElF TlRfQ09ERSAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMTI0ZDg1M2U0OTku LjM1NWY1MjE5OWZhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0xNjAsNiArMTYw LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAlib29sCQloYXNGb3JVcGRhdGUgcGdfbm9k ZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIHJld3JpdGVyIGhhcyBhcHBsaWVk IHNvbWUgUkxTIHBvbGljeSAqLwogCWJvb2wJCWhhc1Jvd1NlY3VyaXR5IHBnX25vZGVfYXR0 cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKwkvKiBzb21lIHRhYmxlIGhhcyBhIHZpcnR1YWwg Z2VuZXJhdGVkIGNvbHVtbiAqLworCWJvb2wJCWhhc0dlbmVyYXRlZFZpcnR1YWwgcGdfbm9k ZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGlzIGEgUkVUVVJOIHN0YXRlbWVu dCAqLwogCWJvb2wJCWlzUmV0dXJuIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3Jl KTsKIApAQCAtMjczMCw2ICsyNzMyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29uc3RyYWludAog CWNoYXIJICAgKmNvb2tlZF9leHByOwkvKiBDSEVDSyBvciBERUZBVUxUIGV4cHJlc3Npb24s IGFzCiAJCQkJCQkJCSAqIG5vZGVUb1N0cmluZyByZXByZXNlbnRhdGlvbiAqLwogCWNoYXIJ CWdlbmVyYXRlZF93aGVuOyAvKiBBTFdBWVMgb3IgQlkgREVGQVVMVCAqLworCWNoYXIJCWdl bmVyYXRlZF9raW5kOyAvKiBTVE9SRUQgb3IgVklSVFVBTCAqLwogCWludAkJCWluaGNvdW50 OwkJLyogaW5pdGlhbCBpbmhlcml0YW5jZSBjb3VudCB0byBhcHBseSwgZm9yCiAJCQkJCQkJ CSAqICJyYXciIE5PVCBOVUxMIGNvbnN0cmFpbnRzICovCiAJYm9vbAkJbnVsbHNfbm90X2Rp c3RpbmN0OyAvKiBudWxsIHRyZWF0bWVudCBmb3IgVU5JUVVFIGNvbnN0cmFpbnRzICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmgKaW5kZXggZjg2NTkwNzhjZWQuLjY0MTZmOWIxMTBiIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oCkBAIC00ODksNiArNDg5LDcgQEAgUEdfS0VZV09SRCgidmVyYm9zZSIs IFZFUkJPU0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJ2ZXJzaW9uIiwgVkVSU0lPTl9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJ2aWV3IiwgVklFVywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgidmlld3MiLCBWSUVXUywgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgidmlydHVhbCIsIFZJUlRVQUwsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZvbGF0aWxlIiwgVk9MQVRJ TEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIndoZW4i LCBXSEVOLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgid2hl cmUiLCBXSEVSRSwgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX25vZGUuaAppbmRleCA1Yjc4MWQ4N2E5ZC4uMWIwMjEyODU0OGIgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX25vZGUuaApAQCAtMjI1LDYgKzIyNSw3IEBAIHN0cnVjdCBQYXJzZVN0YXRl CiAJYm9vbAkJcF9oYXNUYXJnZXRTUkZzOwogCWJvb2wJCXBfaGFzU3ViTGlua3M7CiAJYm9v bAkJcF9oYXNNb2RpZnlpbmdDVEU7CisJYm9vbAkJcF9oYXNHZW5lcmF0ZWRWaXJ0dWFsOwog CiAJTm9kZQkgICAqcF9sYXN0X3NyZjsJCS8qIG1vc3QgcmVjZW50IHNldC1yZXR1cm5pbmcg ZnVuYy9vcCBmb3VuZCAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXdyaXRlL3Jl d3JpdGVIYW5kbGVyLmggYi9zcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgK aW5kZXggMWI2NWNkYTcxY2YuLmE2NDZhMjA2NzVhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmV3cml0ZS9y ZXdyaXRlSGFuZGxlci5oCkBAIC0zOCw0ICszOCw2IEBAIGV4dGVybiB2b2lkIGVycm9yX3Zp ZXdfbm90X3VwZGF0YWJsZShSZWxhdGlvbiB2aWV3LAogCQkJCQkJCQkJIExpc3QgKm1lcmdl QWN0aW9uTGlzdCwKIAkJCQkJCQkJCSBjb25zdCBjaGFyICpkZXRhaWwpOwogCitleHRlcm4g Tm9kZSAqZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4cHIoTm9kZSAqbm9kZSwgUmVs YXRpb24gcmVsKTsKKwogI2VuZGlmCQkJCQkJCS8qIFJFV1JJVEVIQU5ETEVSX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX3RyaWdnZXIub3V0IGIv c3JjL3BsL3BscGVybC9leHBlY3RlZC9wbHBlcmxfdHJpZ2dlci5vdXQKaW5kZXggZDQ4Nzll MmYwM2IuLjQyYzUyZWNiYmE4IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZXJsL2V4cGVjdGVk L3BscGVybF90cmlnZ2VyLm91dAorKysgYi9zcmMvcGwvcGxwZXJsL2V4cGVjdGVkL3BscGVy bF90cmlnZ2VyLm91dApAQCAtOCw3ICs4LDggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVz dCAoCiApOwogQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogICAgIGkg aW50LAotICAgIGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQKKyAg ICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVELAorICAgIGsgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAzKSBWSVJUVUFMCiApOwogQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gdHJpZ2dlcl9kYXRhKCkgUkVUVVJOUyB0cmlnZ2VyIExBTkdVQUdF IHBscGVybCBBUyAkJAogCkBAIC0zODYsNyArMzg3LDcgQEAgSU5TRVJUIElOVE8gdHJpZ2dl cl90ZXN0X2dlbmVyYXRlZCAoaSkgVkFMVUVTICgxKTsKIEVSUk9SOiAgY2Fubm90IHNldCBn ZW5lcmF0ZWQgY29sdW1uICJqIgogQ09OVEVYVDogIFBML1BlcmwgZnVuY3Rpb24gImdlbmVy YXRlZF90ZXN0X2Z1bmMxIgogU0VMRUNUICogRlJPTSB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVk OwotIGkgfCBqIAotLS0tKy0tLQorIGkgfCBqIHwgayAKKy0tLSstLS0rLS0tCiAoMCByb3dz KQogCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZXJsL3BscGVybC5jIGIvc3JjL3BsL3BscGVy bC9wbHBlcmwuYwppbmRleCBkNjhhZDdiZTM0NS4uOTYxMWFhODIzNTIgMTAwNjQ0Ci0tLSBh L3NyYy9wbC9wbHBlcmwvcGxwZXJsLmMKKysrIGIvc3JjL3BsL3BscGVybC9wbHBlcmwuYwpA QCAtMzA1Miw2ICszMDUyLDkgQEAgcGxwZXJsX2hhc2hfZnJvbV90dXBsZShIZWFwVHVwbGUg dHVwbGUsIFR1cGxlRGVzYyB0dXBkZXNjLCBib29sIGluY2x1ZGVfZ2VuZXJhdGUKIAkJCS8q IGRvbid0IGluY2x1ZGUgdW5sZXNzIHJlcXVlc3RlZCAqLwogCQkJaWYgKCFpbmNsdWRlX2dl bmVyYXRlZCkKIAkJCQljb250aW51ZTsKKwkJCS8qIG5ldmVyIGluY2x1ZGUgdmlydHVhbCBj b2x1bW5zICovCisJCQlpZiAoYXR0LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVS QVRFRF9WSVJUVUFMKQorCQkJCWNvbnRpbnVlOwogCQl9CiAKIAkJYXR0bmFtZSA9IE5hbWVT dHIoYXR0LT5hdHRuYW1lKTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBlcmwvc3FsL3BscGVy bF90cmlnZ2VyLnNxbCBiL3NyYy9wbC9wbHBlcmwvc3FsL3BscGVybF90cmlnZ2VyLnNxbApp bmRleCA0YWRkZGViODBhYy4uMjc5OGEwMmZhMTIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBl cmwvc3FsL3BscGVybF90cmlnZ2VyLnNxbAorKysgYi9zcmMvcGwvcGxwZXJsL3NxbC9wbHBl cmxfdHJpZ2dlci5zcWwKQEAgLTEwLDcgKzEwLDggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJf dGVzdCAoCiAKIENSRUFURSBUQUJMRSB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkICgKICAgICBp IGludCwKLSAgICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVECisg ICAgaiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDIpIFNUT1JFRCwKKyAgICBrIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMykgVklSVFVBTAogKTsKIAogQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gdHJpZ2dlcl9kYXRhKCkgUkVUVVJOUyB0cmlnZ2VyIExBTkdV QUdFIHBscGVybCBBUyAkJApkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscHl0aG9uL2V4cGVjdGVk L3BscHl0aG9uX3RyaWdnZXIub3V0IGIvc3JjL3BsL3BscHl0aG9uL2V4cGVjdGVkL3BscHl0 aG9uX3RyaWdnZXIub3V0CmluZGV4IDRjYjkwY2I1MjA0Li42NGVhYjJmYTNmNCAxMDA2NDQK LS0tIGEvc3JjL3BsL3BscHl0aG9uL2V4cGVjdGVkL3BscHl0aG9uX3RyaWdnZXIub3V0Cisr KyBiL3NyYy9wbC9wbHB5dGhvbi9leHBlY3RlZC9wbHB5dGhvbl90cmlnZ2VyLm91dApAQCAt NjksNyArNjksOCBAQCBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0CiAJKGkgaW50LCB2IHRl eHQgKTsKIENSRUFURSBUQUJMRSB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkICgKIAlpIGludCwK LSAgICAgICAgaiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDIpIFNUT1JFRAorICAg ICAgICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVELAorICAgICAg ICBrIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMykgVklSVFVBTAogKTsKIENSRUFU RSBGVU5DVElPTiB0cmlnZ2VyX2RhdGEoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxw eXRob24zdSBBUyAkJAogCkBAIC02MTQsOCArNjE1LDggQEAgRVJST1I6ICBjYW5ub3Qgc2V0 IGdlbmVyYXRlZCBjb2x1bW4gImoiCiBDT05URVhUOiAgd2hpbGUgbW9kaWZ5aW5nIHRyaWdn ZXIgcm93CiBQTC9QeXRob24gZnVuY3Rpb24gImdlbmVyYXRlZF90ZXN0X2Z1bmMxIgogU0VM RUNUICogRlJPTSB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkOwotIGkgfCBqIAotLS0tKy0tLQor IGkgfCBqIHwgayAKKy0tLSstLS0rLS0tCiAoMCByb3dzKQogCiAtLSByZWN1cnNpdmUgY2Fs bCBvZiBhIHRyaWdnZXIgbXVzdG4ndCBjb3JydXB0IFREIChidWcgIzE4NDU2KQpkaWZmIC0t Z2l0IGEvc3JjL3BsL3BscHl0aG9uL3BscHlfdHlwZWlvLmMgYi9zcmMvcGwvcGxweXRob24v cGxweV90eXBlaW8uYwppbmRleCBkYjE0YzVmOGRhZS4uNTFlMWQ2MTAyNTkgMTAwNjQ0Ci0t LSBhL3NyYy9wbC9wbHB5dGhvbi9wbHB5X3R5cGVpby5jCisrKyBiL3NyYy9wbC9wbHB5dGhv bi9wbHB5X3R5cGVpby5jCkBAIC04NDQsNiArODQ0LDkgQEAgUEx5RGljdF9Gcm9tVHVwbGUo UEx5RGF0dW1Ub09iICphcmcsIEhlYXBUdXBsZSB0dXBsZSwgVHVwbGVEZXNjIGRlc2MsIGJv b2wgaW5jbHUKIAkJCQkvKiBkb24ndCBpbmNsdWRlIHVubGVzcyByZXF1ZXN0ZWQgKi8KIAkJ CQlpZiAoIWluY2x1ZGVfZ2VuZXJhdGVkKQogCQkJCQljb250aW51ZTsKKwkJCQkvKiBuZXZl ciBpbmNsdWRlIHZpcnR1YWwgY29sdW1ucyAqLworCQkJCWlmIChhdHRyLT5hdHRnZW5lcmF0 ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCQljb250aW51ZTsKIAkJ CX0KIAogCQkJa2V5ID0gTmFtZVN0cihhdHRyLT5hdHRuYW1lKTsKZGlmZiAtLWdpdCBhL3Ny Yy9wbC9wbHB5dGhvbi9zcWwvcGxweXRob25fdHJpZ2dlci5zcWwgYi9zcmMvcGwvcGxweXRo b24vc3FsL3BscHl0aG9uX3RyaWdnZXIuc3FsCmluZGV4IGY2YzJlZjhkNmEwLi40NDA1NDlj MDc4NSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscHl0aG9uL3NxbC9wbHB5dGhvbl90cmlnZ2Vy LnNxbAorKysgYi9zcmMvcGwvcGxweXRob24vc3FsL3BscHl0aG9uX3RyaWdnZXIuc3FsCkBA IC02OSw3ICs2OSw4IEBAIENSRUFURSBUQUJMRSB0cmlnZ2VyX3Rlc3QKIAogQ1JFQVRFIFRB QkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogCWkgaW50LAotICAgICAgICBqIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVECisgICAgICAgIGogaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQsCisgICAgICAgIGsgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGkgKiAzKSBWSVJUVUFMCiApOwogCiBDUkVBVEUgRlVOQ1RJT04gdHJp Z2dlcl9kYXRhKCkgUkVUVVJOUyB0cmlnZ2VyIExBTkdVQUdFIHBscHl0aG9uM3UgQVMgJCQK ZGlmZiAtLWdpdCBhL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfdHJpZ2dlci5vdXQgYi9z cmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3RyaWdnZXIub3V0CmluZGV4IDEyOWFiZDViYTY3 Li41Mjk4ZTUwYTVlYyAxMDA2NDQKLS0tIGEvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF90 cmlnZ2VyLm91dAorKysgYi9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3RyaWdnZXIub3V0 CkBAIC02Myw3ICs2Myw4IEBAIENSRUFURSBUQUJMRSB0cmlnZ2VyX3Rlc3QgKAogQUxURVIg VEFCTEUgdHJpZ2dlcl90ZXN0IERST1AgZHJvcG1lOwogQ1JFQVRFIFRBQkxFIHRyaWdnZXJf dGVzdF9nZW5lcmF0ZWQgKAogICAgaSBpbnQsCi0gICBqIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChpICogMikgU1RPUkVECisgICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICog MikgU1RPUkVELAorICAgayBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDMpIFZJUlRV QUwKICk7CiBDUkVBVEUgVklFVyB0cmlnZ2VyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgaSwgdiBG Uk9NIHRyaWdnZXJfdGVzdDsKIENSRUFURSBGVU5DVElPTiB0cmlnZ2VyX2RhdGEoKSByZXR1 cm5zIHRyaWdnZXIgbGFuZ3VhZ2UgcGx0Y2wgYXMgJF8kCkBAIC02NDcsNyArNjQ4LDcgQEAg Tk9USUNFOiAgT0xEOiB7fQogTk9USUNFOiAgVEdfbGV2ZWw6IFJPVwogTk9USUNFOiAgVEdf bmFtZTogc2hvd190cmlnZ2VyX2RhdGFfdHJpZ19iZWZvcmUKIE5PVElDRTogIFRHX29wOiBJ TlNFUlQKLU5PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGp9CitOT1RJQ0U6ICBUR19yZWxh dHRzOiB7e30gaSBqIGt9CiBOT1RJQ0U6ICBUR19yZWxpZDogYm9ndXM6MTIzNDUKIE5PVElD RTogIFRHX3RhYmxlX25hbWU6IHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQKIE5PVElDRTogIFRH X3RhYmxlX3NjaGVtYTogcHVibGljCkBAIC02NTgsNyArNjU5LDcgQEAgTk9USUNFOiAgT0xE OiB7fQogTk9USUNFOiAgVEdfbGV2ZWw6IFJPVwogTk9USUNFOiAgVEdfbmFtZTogc2hvd190 cmlnZ2VyX2RhdGFfdHJpZ19hZnRlcgogTk9USUNFOiAgVEdfb3A6IElOU0VSVAotTk9USUNF OiAgVEdfcmVsYXR0czoge3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGog a30KIE5PVElDRTogIFRHX3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVf bmFtZTogdHJpZ2dlcl90ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1h OiBwdWJsaWMKQEAgLTY3MCw3ICs2NzEsNyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxLCBqOiAy fQogTk9USUNFOiAgVEdfbGV2ZWw6IFJPVwogTk9USUNFOiAgVEdfbmFtZTogc2hvd190cmln Z2VyX2RhdGFfdHJpZ19iZWZvcmUKIE5PVElDRTogIFRHX29wOiBVUERBVEUKLU5PVElDRTog IFRHX3JlbGF0dHM6IHt7fSBpIGp9CitOT1RJQ0U6ICBUR19yZWxhdHRzOiB7e30gaSBqIGt9 CiBOT1RJQ0U6ICBUR19yZWxpZDogYm9ndXM6MTIzNDUKIE5PVElDRTogIFRHX3RhYmxlX25h bWU6IHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQKIE5PVElDRTogIFRHX3RhYmxlX3NjaGVtYTog cHVibGljCkBAIC02ODEsNyArNjgyLDcgQEAgTk9USUNFOiAgT0xEOiB7aTogMSwgajogMn0K IE5PVElDRTogIFRHX2xldmVsOiBST1cKIE5PVElDRTogIFRHX25hbWU6IHNob3dfdHJpZ2dl cl9kYXRhX3RyaWdfYWZ0ZXIKIE5PVElDRTogIFRHX29wOiBVUERBVEUKLU5PVElDRTogIFRH X3JlbGF0dHM6IHt7fSBpIGp9CitOT1RJQ0U6ICBUR19yZWxhdHRzOiB7e30gaSBqIGt9CiBO T1RJQ0U6ICBUR19yZWxpZDogYm9ndXM6MTIzNDUKIE5PVElDRTogIFRHX3RhYmxlX25hbWU6 IHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQKIE5PVElDRTogIFRHX3RhYmxlX3NjaGVtYTogcHVi bGljCkBAIC02OTMsNyArNjk0LDcgQEAgTk9USUNFOiAgT0xEOiB7aTogMTEsIGo6IDIyfQog Tk9USUNFOiAgVEdfbGV2ZWw6IFJPVwogTk9USUNFOiAgVEdfbmFtZTogc2hvd190cmlnZ2Vy X2RhdGFfdHJpZ19iZWZvcmUKIE5PVElDRTogIFRHX29wOiBERUxFVEUKLU5PVElDRTogIFRH X3JlbGF0dHM6IHt7fSBpIGp9CitOT1RJQ0U6ICBUR19yZWxhdHRzOiB7e30gaSBqIGt9CiBO T1RJQ0U6ICBUR19yZWxpZDogYm9ndXM6MTIzNDUKIE5PVElDRTogIFRHX3RhYmxlX25hbWU6 IHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQKIE5PVElDRTogIFRHX3RhYmxlX3NjaGVtYTogcHVi bGljCkBAIC03MDQsNyArNzA1LDcgQEAgTk9USUNFOiAgT0xEOiB7aTogMTEsIGo6IDIyfQog Tk9USUNFOiAgVEdfbGV2ZWw6IFJPVwogTk9USUNFOiAgVEdfbmFtZTogc2hvd190cmlnZ2Vy X2RhdGFfdHJpZ19hZnRlcgogTk9USUNFOiAgVEdfb3A6IERFTEVURQotTk9USUNFOiAgVEdf cmVsYXR0czoge3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5P VElDRTogIFRHX3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTog dHJpZ2dlcl90ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJs aWMKQEAgLTg4Miw3ICs4ODMsNyBAQCBUUlVOQ0FURSB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVk OwogSU5TRVJUIElOVE8gdHJpZ2dlcl90ZXN0X2dlbmVyYXRlZCAoaSkgVkFMVUVTICgxKTsK IEVSUk9SOiAgY2Fubm90IHNldCBnZW5lcmF0ZWQgY29sdW1uICJqIgogU0VMRUNUICogRlJP TSB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkOwotIGkgfCBqIAotLS0tKy0tLQorIGkgfCBqIHwg ayAKKy0tLSstLS0rLS0tCiAoMCByb3dzKQogCmRpZmYgLS1naXQgYS9zcmMvcGwvdGNsL3Bs dGNsLmMgYi9zcmMvcGwvdGNsL3BsdGNsLmMKaW5kZXggMjFiMmIwNDU5MzMuLmNiNzE1YWQw OGI2IDEwMDY0NAotLS0gYS9zcmMvcGwvdGNsL3BsdGNsLmMKKysrIGIvc3JjL3BsL3RjbC9w bHRjbC5jCkBAIC0zMjA2LDYgKzMyMDYsOSBAQCBwbHRjbF9idWlsZF90dXBsZV9hcmd1bWVu dChIZWFwVHVwbGUgdHVwbGUsIFR1cGxlRGVzYyB0dXBkZXNjLCBib29sIGluY2x1ZGVfZ2Vu ZQogCQkJLyogZG9uJ3QgaW5jbHVkZSB1bmxlc3MgcmVxdWVzdGVkICovCiAJCQlpZiAoIWlu Y2x1ZGVfZ2VuZXJhdGVkKQogCQkJCWNvbnRpbnVlOworCQkJLyogbmV2ZXIgaW5jbHVkZSB2 aXJ0dWFsIGNvbHVtbnMgKi8KKwkJCWlmIChhdHQtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJV VEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJY29udGludWU7CiAJCX0KIAogCQkvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CmRpZmYgLS1naXQgYS9zcmMvcGwvdGNsL3NxbC9wbHRjbF90cmlnZ2VyLnNxbCBiL3NyYy9w bC90Y2wvc3FsL3BsdGNsX3RyaWdnZXIuc3FsCmluZGV4IDJhMjQ0ZGU4M2JjLi4wZWQwMGY0 OTUyNiAxMDA2NDQKLS0tIGEvc3JjL3BsL3RjbC9zcWwvcGx0Y2xfdHJpZ2dlci5zcWwKKysr IGIvc3JjL3BsL3RjbC9zcWwvcGx0Y2xfdHJpZ2dlci5zcWwKQEAgLTczLDcgKzczLDggQEAg Q1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdCAoCiAKIENSRUFURSBUQUJMRSB0cmlnZ2VyX3Rl c3RfZ2VuZXJhdGVkICgKICAgIGkgaW50LAotICAgaiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoaSAqIDIpIFNUT1JFRAorICAgaiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDIp IFNUT1JFRCwKKyAgIGsgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAzKSBWSVJUVUFM CiApOwogCiBDUkVBVEUgVklFVyB0cmlnZ2VyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgaSwgdiBG Uk9NIHRyaWdnZXJfdGVzdDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j cmVhdGVfdGFibGVfbGlrZS5vdXQKaW5kZXggNmJmYzZkMDQwZmYuLjk3MTU3ZGM2MzViIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtl Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtl Lm91dApAQCAtMTEzLDE5ICsxMTMsMjAgQEAgU0VMRUNUICogRlJPTSB0ZXN0X2xpa2VfaWRf MzsgIC0tIGlkZW50aXR5IHdhcyBjb3BpZWQgYW5kIGFwcGxpZWQKICgxIHJvdykKIAogRFJP UCBUQUJMRSB0ZXN0X2xpa2VfaWRfMSwgdGVzdF9saWtlX2lkXzIsIHRlc3RfbGlrZV9pZF8z OwotQ1JFQVRFIFRBQkxFIHRlc3RfbGlrZV9nZW5fMSAoYSBpbnQsIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIHRlc3RfbGlrZV9n ZW5fMSAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQs IGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFMKTsKIFxkIHRlc3Rf bGlrZV9nZW5fMQogICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZXN0 X2xpa2VfZ2VuXzEiCiAgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAogIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRl ZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQKKyBjICAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMykKIAogSU5TRVJU IElOVE8gdGVzdF9saWtlX2dlbl8xIChhKSBWQUxVRVMgKDEpOwogU0VMRUNUICogRlJPTSB0 ZXN0X2xpa2VfZ2VuXzE7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKKyBhIHwgYiB8IGMg CistLS0rLS0tKy0tLQorIDEgfCAyIHwgMwogKDEgcm93KQogCiBDUkVBVEUgVEFCTEUgdGVz dF9saWtlX2dlbl8yIChMSUtFIHRlc3RfbGlrZV9nZW5fMSk7CkBAIC0xMzUsMTIgKzEzNiwx MyBAQCBDUkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8yIChMSUtFIHRlc3RfbGlrZV9nZW5f MSk7CiAtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKICBiICAg ICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBjICAgICAgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKIAogSU5TRVJUIElOVE8gdGVzdF9saWtl X2dlbl8yIChhKSBWQUxVRVMgKDEpOwogU0VMRUNUICogRlJPTSB0ZXN0X2xpa2VfZ2VuXzI7 Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8ICAKKyBhIHwgYiB8IGMgCistLS0rLS0tKy0tLQor IDEgfCAgIHwgIAogKDEgcm93KQogCiBDUkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8zIChM SUtFIHRlc3RfbGlrZV9nZW5fMSBJTkNMVURJTkcgR0VORVJBVEVEKTsKQEAgLTE1MCwxMiAr MTUyLDEzIEBAIENSRUFURSBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzMgKExJS0UgdGVzdF9saWtl X2dlbl8xIElOQ0xVRElORyBHRU5FUkFURUQpOwogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAgYiAgICAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBh cyAoYSAqIDIpIHN0b3JlZAorIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAzKQogCiBJTlNFUlQgSU5UTyB0ZXN0 X2xpa2VfZ2VuXzMgKGEpIFZBTFVFUyAoMSk7CiBTRUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9n ZW5fMzsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgMgorIGEgfCBiIHwgYyAKKy0tLSstLS0r LS0tCisgMSB8IDIgfCAzCiAoMSByb3cpCiAKIERST1AgVEFCTEUgdGVzdF9saWtlX2dlbl8x LCB0ZXN0X2xpa2VfZ2VuXzIsIHRlc3RfbGlrZV9nZW5fMzsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0CmluZGV4IDhlYThhM2E5MmQy Li44ZjA5NTFlMjZhNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9n ZW5lcmF0ZWRfc3RvcmVkLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dl bmVyYXRlZF9zdG9yZWQub3V0CkBAIC0xLDUgKzEsNSBAQAogLS0gc2FuaXR5IGNoZWNrIG9m IHN5c3RlbSBjYXRhbG9nCi1TRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRl ZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3Mn KTsKK1NFTEVDVCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0 cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycsICd2Jyk7CiAgYXR0 cmVsaWQgfCBhdHRuYW1lIHwgYXR0Z2VuZXJhdGVkIAogLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCkBAIC0yMTcsNiArMjE3LDI3IEBAIFNFTEVDVCAq IEZST00gZ3Rlc3RtIE9SREVSIEJZIGlkOwogICAyIHwgMjAgfCAyMDAgfCA0MCB8IDQwMAog KDIgcm93cykKIAorRFJPUCBUQUJMRSBndGVzdG07CitDUkVBVEUgVEFCTEUgZ3Rlc3RtICgK KyAgYSBpbnQgUFJJTUFSWSBLRVksCisgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBTVE9SRUQKKyk7CitJTlNFUlQgSU5UTyBndGVzdG0gKGEpIFNFTEVDVCBnIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBnOworTUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyBn dGVzdG0gQVMgcyBPTiAyICogdC5hID0gcy5iIFdIRU4gTUFUQ0hFRCBUSEVOIERFTEVURSBS RVRVUk5JTkcgKjsKKyBhICB8IGIgIHwgYSAgfCBiICAKKy0tLS0rLS0tLSstLS0tKy0tLS0K KyAgMSB8ICAyIHwgIDEgfCAgMgorICAyIHwgIDQgfCAgMiB8ICA0CisgIDMgfCAgNiB8ICAz IHwgIDYKKyAgNCB8ICA4IHwgIDQgfCAgOAorICA1IHwgMTAgfCAgNSB8IDEwCisgIDYgfCAx MiB8ICA2IHwgMTIKKyAgNyB8IDE0IHwgIDcgfCAxNAorICA4IHwgMTYgfCAgOCB8IDE2Cisg IDkgfCAxOCB8ICA5IHwgMTgKKyAxMCB8IDIwIHwgMTAgfCAyMAorKDEwIHJvd3MpCisKIERS T1AgVEFCTEUgZ3Rlc3RtOwogLS0gdmlld3MKIENSRUFURSBWSUVXIGd0ZXN0MXYgQVMgU0VM RUNUICogRlJPTSBndGVzdDE7CkBAIC03NjIsNiArNzgzLDExIEBAIENSRUFURSBUQUJMRSBn dGVzdDI0IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqCiBJTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0g b2sKIElOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgogRVJS T1I6ICB2YWx1ZSBmb3IgZG9tYWluIGd0ZXN0ZG9tYWluMSB2aW9sYXRlcyBjaGVjayBjb25z dHJhaW50ICJndGVzdGRvbWFpbjFfY2hlY2siCitDUkVBVEUgVFlQRSBndGVzdGRvbWFpbjFy YW5nZSBBUyByYW5nZSAoc3VidHlwZSA9IGd0ZXN0ZG9tYWluMSk7CitDUkVBVEUgVEFCTEUg Z3Rlc3QyNHIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMXJhbmdlIEdFTkVS QVRFRCBBTFdBWVMgQVMgKGd0ZXN0ZG9tYWluMXJhbmdlKGEsIGEgKyA1KSkgU1RPUkVEKTsK K0lOU0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKK0lOU0VSVCBJ TlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMgKDYpOyAgLS0gZXJyb3IKK0VSUk9SOiAgdmFsdWUg Zm9yIGRvbWFpbiBndGVzdGRvbWFpbjEgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZ3Rl c3Rkb21haW4xX2NoZWNrIgogLS0gdHlwZWQgdGFibGVzIChjdXJyZW50bHkgbm90IHN1cHBv cnRlZCkKIENSRUFURSBUWVBFIGd0ZXN0X3R5cGUgQVMgKGYxIGludGVnZXIsIGYyIHRleHQs IGYzIGJpZ2ludCk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBX SVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKjIpIFNUT1JFRCk7CkBAIC0x MDkyLDkgKzExMTgsOSBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CiBBTFRFUiBUQUJMRSBn dGVzdDI5IEFMVEVSIENPTFVNTiBhIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7ICAtLSBl cnJvcgogRVJST1I6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3Qg YSBnZW5lcmF0ZWQgY29sdW1uCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBh IERST1AgRVhQUkVTU0lPTjsgIC0tIGVycm9yCi1FUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVs YXRpb24gImd0ZXN0MjkiIGlzIG5vdCBhIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1uCitFUlJP UjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlzIG5vdCBhIGdlbmVyYXRl ZCBjb2x1bW4KIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGEgRFJPUCBFWFBS RVNTSU9OIElGIEVYSVNUUzsgIC0tIG5vdGljZQotTk9USUNFOiAgY29sdW1uICJhIiBvZiBy ZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4sIHNr aXBwaW5nCitOT1RJQ0U6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBu b3QgYSBnZW5lcmF0ZWQgY29sdW1uLCBza2lwcGluZwogLS0gQ2hhbmdlIHRoZSBleHByZXNz aW9uCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9O IEFTIChhICogMyk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQKc2ltaWxhcml0eSBpbmRl eCA2NyUKY29weSBmcm9tIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0 b3JlZC5vdXQKY29weSB0byBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF92 aXJ0dWFsLm91dAppbmRleCA4ZWE4YTNhOTJkMi4uNGNmNGY4MTE4ZjMgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQKQEAgLTEs MTUgKzEsMTUgQEAKIC0tIHNhbml0eSBjaGVjayBvZiBzeXN0ZW0gY2F0YWxvZwotU0VMRUNU IGF0dHJlbGlkLCBhdHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hF UkUgYXR0Z2VuZXJhdGVkIE5PVCBJTiAoJycsICdzJyk7CitTRUxFQ1QgYXR0cmVsaWQsIGF0 dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0 ZWQgTk9UIElOICgnJywgJ3MnLCAndicpOwogIGF0dHJlbGlkIHwgYXR0bmFtZSB8IGF0dGdl bmVyYXRlZCAKIC0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCiAoMCByb3dz KQogCi1DUkVBVEUgU0NIRU1BIGdlbmVyYXRlZF9zdG9yZWRfdGVzdHM7Ci1HUkFOVCBVU0FH RSBPTiBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cyBUTyBQVUJMSUM7Ci1TRVQgc2Vh cmNoX3BhdGggPSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzOwotQ1JFQVRFIFRBQkxFIGd0ZXN0 MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBT VE9SRUQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOwotU0VMRUNUIHRhYmxlX25h bWUsIGNvbHVtbl9uYW1lLCBjb2x1bW5fZGVmYXVsdCwgaXNfbnVsbGFibGUsIGlzX2dlbmVy YXRlZCwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNv bHVtbnMgV0hFUkUgdGFibGVfc2NoZW1hID0gJ2dlbmVyYXRlZF9zdG9yZWRfdGVzdHMnIE9S REVSIEJZIDEsIDI7CitDUkVBVEUgU0NIRU1BIGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzOwor R1JBTlQgVVNBR0UgT04gU0NIRU1BIGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzIFRPIFBVQkxJ QzsKK1NFVCBzZWFyY2hfcGF0aCA9IGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzOworQ1JFQVRF IFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKDU1KSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDEgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CitT RUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxs YWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJlc3Npb24gRlJPTSBpbmZvcm1h dGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3Zp cnR1YWxfdGVzdHMnIE9SREVSIEJZIDEsIDI7CiAgdGFibGVfbmFtZSB8IGNvbHVtbl9uYW1l IHwgY29sdW1uX2RlZmF1bHQgfCBpc19udWxsYWJsZSB8IGlzX2dlbmVyYXRlZCB8IGdlbmVy YXRpb25fZXhwcmVzc2lvbiAKIC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogIGd0ZXN0MCAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwg Tk8gICAgICAgICAgfCBORVZFUiAgICAgICAgfCAKQEAgLTE4LDg5ICsxOCw4OSBAQCBTRUxF Q1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxsYWJs ZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcgogIGd0ZXN0MSAgICAgfCBiICAgICAgICAgICB8ICAg ICAgICAgICAgICAgIHwgWUVTICAgICAgICAgfCBBTFdBWVMgICAgICAgfCAoYSAqIDIpCiAo NCByb3dzKQogCi1TRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGRlcGVuZGVudF9j b2x1bW4gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uX2NvbHVtbl91c2FnZSBXSEVS RSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwg MiwgMzsKK1NFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVt biBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5fY29sdW1uX3VzYWdlIFdIRVJFIHRh YmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cycgT1JERVIgQlkgMSwgMiwg MzsKICB0YWJsZV9uYW1lIHwgY29sdW1uX25hbWUgfCBkZXBlbmRlbnRfY29sdW1uIAogLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCiAgZ3Rlc3QxICAg ICB8IGEgICAgICAgICAgIHwgYgogKDEgcm93KQogCiBcZCBndGVzdDEKLSAgICAgICAgICAg ICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxIgotIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QxIgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0 ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8IG5vdCBudWxsIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKGEgKiAyKQogSW5kZXhlczoKICAgICAiZ3Rlc3QxX3BrZXkiIFBSSU1BUlkgS0VZLCBi dHJlZSAoYSkKIAogLS0gZHVwbGljYXRlIGdlbmVyYXRlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0 X2Vycl8xIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RPUkVEKTsKK0NS RUFURSBUQUJMRSBndGVzdF9lcnJfMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAzKSBWSVJUVUFMKTsKIEVSUk9SOiAgbXVsdGlwbGUgZ2VuZXJhdGlvbiBjbGF1c2VzIHNw ZWNpZmllZCBmb3IgY29sdW1uICJiIiBvZiB0YWJsZSAiZ3Rlc3RfZXJyXzEiCi1MSU5FIDE6 IC4uLkFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQg R0VORVJBVEVEIC4uLgorTElORSAxOiAuLi5SWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMIEdFTkVSQVRFRCAuLi4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSByZWZl cmVuY2VzIHRvIG90aGVyIGdlbmVyYXRlZCBjb2x1bW5zLCBpbmNsdWRpbmcgc2VsZi1yZWZl cmVuY2VzCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJhIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwpOwogRVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRl ZCBjb2x1bW4gImIiIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24KLUxJTkUgMTog Li4uMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChi ICogMikgU1RPLi4uCitMSU5FIDE6IC4uLjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUi4uLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDog IEEgZ2VuZXJhdGVkIGNvbHVtbiBjYW5ub3QgcmVmZXJlbmNlIGFub3RoZXIgZ2VuZXJhdGVk IGNvbHVtbi4KLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChiICogMykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9l cnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMikgVklSVFVBTCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFZJUlRV QUwpOwogRVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1bW4gImIiIGluIGNvbHVt biBnZW5lcmF0aW9uIGV4cHJlc3Npb24KLUxJTkUgMTogLi4uQVlTIEFTIChhICogMikgU1RP UkVELCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMykgU1RPLi4uCitMSU5FIDE6 IC4uLllTIEFTIChhICogMikgVklSVFVBTCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YiAqIDMpIFZJUi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIEEgZ2VuZXJhdGVkIGNvbHVtbiBj YW5ub3QgcmVmZXJlbmNlIGFub3RoZXIgZ2VuZXJhdGVkIGNvbHVtbi4KIC0tIGEgd2hvbGUt cm93IHZhciBpcyBhIHNlbGYtcmVmZXJlbmNlIG9uIHN0ZXJvaWRzLCBzbyBkaXNhbGxvdyB0 aGF0IHRvbwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYyAoYSBpbnQgUFJJTUFSWSBLRVks Ci0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8y YykpIFNUT1JFRCk7CisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxz KGd0ZXN0X2Vycl8yYykpIFZJUlRVQUwpOwogRVJST1I6ICBjYW5ub3QgdXNlIHdob2xlLXJv dyB2YXJpYWJsZSBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uCi1MSU5FIDI6ICAg ICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkg U1RPUi4uLgorTElORSAyOiAgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251 bGxzKGd0ZXN0X2Vycl8yYykpIFZJUlQuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGlzIHdvdWxkIGNhdXNlIHRo ZSBnZW5lcmF0ZWQgY29sdW1uIHRvIGRlcGVuZCBvbiBpdHMgb3duIHZhbHVlLgogLS0gaW52 YWxpZCByZWZlcmVuY2UKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMyAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiAyKSBTVE9SRUQpOworQ1JF QVRFIFRBQkxFIGd0ZXN0X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYyAqIDIpIFZJUlRVQUwpOwogRVJST1I6ICBjb2x1bW4gImMiIGRv ZXMgbm90IGV4aXN0Ci1MSU5FIDE6IC4uLl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDIpIFNUTy4uLgorTElORSAxOiAuLi5fMyAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiAyKSBWSVIu Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiAtLSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gbXVzdCBiZSBpbW11dGFi bGUKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91 YmxlIHByZWNpc2lvbiBHRU5FUkFURUQgQUxXQVlTIEFTIChyYW5kb20oKSkgU1RPUkVEKTsK K0NSRUFURSBUQUJMRSBndGVzdF9lcnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91Ymxl IHByZWNpc2lvbiBHRU5FUkFURUQgQUxXQVlTIEFTIChyYW5kb20oKSkgVklSVFVBTCk7CiBF UlJPUjogIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBpcyBub3QgaW1tdXRhYmxlCiAtLSAuLi4g YnV0IGJlIHN1cmUgdGhhdCB0aGUgaW1tdXRhYmlsaXR5IHRlc3QgaXMgYWNjdXJhdGUKLUNS RUFURSBUQUJMRSBndGVzdDIgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSB8fCAnIHNlYycpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCwgYiB0 ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJyBzZWMnKSBWSVJUVUFMKTsKIERST1Ag VEFCTEUgZ3Rlc3QyOwogLS0gY2Fubm90IGhhdmUgZGVmYXVsdC9pZGVudGl0eSBhbmQgZ2Vu ZXJhdGVkCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzVhIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgREVGQVVMVCA1IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOwor Q1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERF RkFVTFQgNSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBFUlJPUjog IGJvdGggZGVmYXVsdCBhbmQgZ2VuZXJhdGlvbiBleHByZXNzaW9uIHNwZWNpZmllZCBmb3Ig Y29sdW1uICJiIiBvZiB0YWJsZSAiZ3Rlc3RfZXJyXzVhIgogTElORSAxOiAuLi4gZ3Rlc3Rf ZXJyXzVhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgREVGQVVMVCA1IEdFTkVSQVRFRCAu Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzViIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBpZGVudGl0eSBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfNWIgKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIGlkZW50aXR5IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEVSUk9SOiAgYm90aCBpZGVu dGl0eSBhbmQgZ2VuZXJhdGlvbiBleHByZXNzaW9uIHNwZWNpZmllZCBmb3IgY29sdW1uICJi IiBvZiB0YWJsZSAiZ3Rlc3RfZXJyXzViIgogTElORSAxOiAuLi50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIGlkZW50aXR5IEdFTkVSQVRFRCAuLi4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCiAtLSByZWZlcmVuY2UgdG8gc3lzdGVtIGNvbHVtbiBub3QgYWxsb3dlZCBpbiBnZW5l cmF0ZWQgY29sdW1uCiAtLSAoZXhjZXB0IHRhYmxlb2lkLCB3aGljaCB3ZSB0ZXN0IGJlbG93 KQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl82YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgYm9v bCBHRU5FUkFURUQgQUxXQVlTIEFTICh4bWluIDw+IDM3KSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X2Vycl82YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgYm9vbCBHRU5FUkFURUQg QUxXQVlTIEFTICh4bWluIDw+IDM3KSBWSVJUVUFMKTsKIEVSUk9SOiAgY2Fubm90IHVzZSBz eXN0ZW0gY29sdW1uICJ4bWluIiBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uCiBM SU5FIDE6IC4uLmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGJvb2wgR0VORVJBVEVEIEFMV0FZ UyBBUyAoeG1pbiA8PiAzNy4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIHZhcmlvdXMgcHJvaGliaXRlZCBj b25zdHJ1Y3RzCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdhIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZnKGEpKSBTVE9SRUQpOworQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGF2ZyhhKSkgVklSVFVBTCk7CiBFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5j dGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25z Ci1MSU5FIDE6IC4uLjdhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYXZnKGEpKSBTVC4uLgorTElORSAxOiAuLi43YSAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGF2ZyhhKSkgVkkuLi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAocm93X251bWJlcigpIE9WRVIgKE9SREVSIEJZIGEpKSBT VE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YiAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJvd19udW1iZXIoKSBPVkVSIChPUkRFUiBC WSBhKSkgVklSVFVBTCk7CiBFUlJPUjogIHdpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxv d2VkIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25zCiBMSU5FIDE6IC4uLjdiIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAocm93X251bWJl ci4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2MgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoU0VMRUNUIGEpKSBTVE9SRUQp OworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkpIFZJUlRVQUwpOwogRVJST1I6ICBj YW5ub3QgdXNlIHN1YnF1ZXJ5IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIExJ TkUgMTogLi4uN2MgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTICgoU0VMRUNUIGEpLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83 ZCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVy YXRlX3NlcmllcygxLCBhKSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2Qg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0 ZV9zZXJpZXMoMSwgYSkpIFZJUlRVQUwpOwogRVJST1I6ICBzZXQtcmV0dXJuaW5nIGZ1bmN0 aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMK IExJTkUgMTogLi4uN2QgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChnZW5lcmF0ZV9zLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gR0VORVJBVEVEIEJZIERFRkFV TFQgbm90IGFsbG93ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIChhICogMikgU1RPUkVEKTsK K0NSRUFURSBUQUJMRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBCWSBERUZBVUxUIEFTIChhICogMikgVklSVFVBTCk7CiBFUlJPUjogIGZvciBh IGdlbmVyYXRlZCBjb2x1bW4sIEdFTkVSQVRFRCBBTFdBWVMgbXVzdCBiZSBzcGVjaWZpZWQK IExJTkUgMTogLi4uRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBCWSBERUZBVUxULi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpAQCAtMTUzLDE2ICsxNTMsMTAgQEAg U0VMRUNUIGEsIGIgRlJPTSBndGVzdDEgV0hFUkUgYiA9IDQgT1JERVIgQlkgYTsKICAyIHwg NAogKDEgcm93KQogCi0tLSB0ZXN0IHRoYXQgb3ZlcmZsb3cgZXJyb3IgaGFwcGVucyBvbiB3 cml0ZQorLS0gdGVzdCB0aGF0IG92ZXJmbG93IGVycm9yIGhhcHBlbnMgb24gcmVhZAogSU5T RVJUIElOVE8gZ3Rlc3QxIFZBTFVFUyAoMjAwMDAwMDAwMCk7Ci1FUlJPUjogIGludGVnZXIg b3V0IG9mIHJhbmdlCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MTsKLSBhIHwgYiAKLS0tLSstLS0K LSAyIHwgNAotIDEgfCAyCi0oMiByb3dzKQotCitFUlJPUjogIGludGVnZXIgb3V0IG9mIHJh bmdlCiBERUxFVEUgRlJPTSBndGVzdDEgV0hFUkUgYSA9IDIwMDAwMDAwMDA7CiAtLSB0ZXN0 IHdpdGggam9pbnMKIENSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCB5IGludCk7CkBAIC0y MDMsOCArMTk3LDggQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0bSAoCiAgIGlkIGludCBQUklNQVJZ IEtFWSwKICAgZjEgaW50LAogICBmMiBpbnQsCi0gIGYzIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChmMSAqIDIpIFNUT1JFRCwKLSAgZjQgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMikgU1RPUkVECisgIGYzIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMSAqIDIpIFZJ UlRVQUwsCisgIGY0IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwK ICk7CiBJTlNFUlQgSU5UTyBndGVzdG0gVkFMVUVTICgxLCA1LCAxMDApOwogTUVSR0UgSU5U TyBndGVzdG0gdCBVU0lORyAoVkFMVUVTICgxLCAxMCksICgyLCAyMCkpIHYoaWQsIGYxKSBP TiB0LmlkID0gdi5pZApAQCAtMjE3LDYgKzIxMSwyNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0 bSBPUkRFUiBCWSBpZDsKICAgMiB8IDIwIHwgMjAwIHwgNDAgfCA0MDAKICgyIHJvd3MpCiAK K0RST1AgVEFCTEUgZ3Rlc3RtOworQ1JFQVRFIFRBQkxFIGd0ZXN0bSAoCisgIGEgaW50IFBS SU1BUlkgS0VZLAorICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVB TAorKTsKK0lOU0VSVCBJTlRPIGd0ZXN0bSAoYSkgU0VMRUNUIGcgRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTApIGc7CitNRVJHRSBJTlRPIGd0ZXN0bSB0IFVTSU5HIGd0ZXN0bSBBUyBz IE9OIDIgKiB0LmEgPSBzLmIgV0hFTiBNQVRDSEVEIFRIRU4gREVMRVRFIFJFVFVSTklORyAq OworIGEgIHwgYiAgfCBhICB8IGIgIAorLS0tLSstLS0tKy0tLS0rLS0tLQorICAxIHwgIDIg fCAgMSB8ICAyCisgIDIgfCAgNCB8ICAyIHwgIDQKKyAgMyB8ICA2IHwgIDMgfCAgNgorICA0 IHwgIDggfCAgNCB8ICA4CisgIDUgfCAxMCB8ICA1IHwgMTAKKyAgNiB8IDEyIHwgIDYgfCAx MgorICA3IHwgMTQgfCAgNyB8IDE0CisgIDggfCAxNiB8ICA4IHwgMTYKKyAgOSB8IDE4IHwg IDkgfCAxOAorIDEwIHwgMjAgfCAxMCB8IDIwCisoMTAgcm93cykKKwogRFJPUCBUQUJMRSBn dGVzdG07CiAtLSB2aWV3cwogQ1JFQVRFIFZJRVcgZ3Rlc3QxdiBBUyBTRUxFQ1QgKiBGUk9N IGd0ZXN0MTsKQEAgLTI3MywxMSArMjg4LDExIEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QxXzE7 CiAoMCByb3dzKQogCiBcZCBndGVzdDFfMQotICAgICAgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MV8xIgotIENvbHVtbiB8ICBUeXBlICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAg ICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDFfMSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCist LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3Qg bnVsbCB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdl bmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQKKyBiICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikKIElu aGVyaXRzOiBndGVzdDEKIAogSU5TRVJUIElOVE8gZ3Rlc3QxXzEgVkFMVUVTICg0KTsKQEAg LTI5NiwxMiArMzExLDEyIEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwogCiAtLSBjYW4ndCBo YXZlIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBpcyBhIGNoaWxkIG9mIG5vcm1hbCBjb2x1bW4K IENSRUFURSBUQUJMRSBndGVzdF9ub3JtYWwgKGEgaW50LCBiIGludCk7Ci1DUkVBVEUgVEFC TEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgor Q1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3Rfbm9ybWFsKTsg IC0tIGVycm9yCiBOT1RJQ0U6ICBtZXJnaW5nIGNvbHVtbiAiYSIgd2l0aCBpbmhlcml0ZWQg ZGVmaW5pdGlvbgogTk9USUNFOiAgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVk IGRlZmluaXRpb24KIEVSUk9SOiAgY2hpbGQgY29sdW1uICJiIiBzcGVjaWZpZXMgZ2VuZXJh dGlvbiBleHByZXNzaW9uCiBISU5UOiAgQSBjaGlsZCB0YWJsZSBjb2x1bW4gY2Fubm90IGJl IGdlbmVyYXRlZCB1bmxlc3MgaXRzIHBhcmVudCBjb2x1bW4gaXMuCi1DUkVBVEUgVEFCTEUg Z3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGlu dCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogQUxURVIg VEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIElOSEVSSVQgZ3Rlc3Rfbm9ybWFsOyAgLS0gZXJy b3IKIEVSUk9SOiAgY29sdW1uICJiIiBpbiBjaGlsZCB0YWJsZSBtdXN0IG5vdCBiZSBhIGdl bmVyYXRlZCBjb2x1bW4KIERST1AgVEFCTEUgZ3Rlc3Rfbm9ybWFsLCBndGVzdF9ub3JtYWxf Y2hpbGQ7CkBAIC0zMTIsMjMgKzMyNyw0MiBAQCBFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJp dHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1uIGJ1dCBzcGVjaWZpZXMgZGVmYXVsdAogQ1JFQVRF IFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJ VFkpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgY29s dW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCiBFUlJPUjogIGNvbHVtbiAiYiIg aW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1uIGJ1dCBzcGVjaWZpZXMgaWRlbnRpdHkK LUNSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMjIpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywgb3ZlcnJpZGVz IHBhcmVudAorQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVycm9y CitOT1RJQ0U6ICBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlv bgorRVJST1I6ICBjb2x1bW4gImIiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBv ZiBkaWZmZXJlbnQga2luZAorREVUQUlMOiAgUGFyZW50IGNvbHVtbiBpcyBWSVJUVUFMLCBj aGlsZCBjb2x1bW4gaXMgU1RPUkVELgorQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgVklSVFVBTCkgSU5IRVJJVFMgKGd0 ZXN0MSk7ICAtLSBvaywgb3ZlcnJpZGVzIHBhcmVudAogTk9USUNFOiAgbWVyZ2luZyBjb2x1 bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KIFxkKyBndGVzdHgKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3Jl ZF90ZXN0cy5ndGVzdHgiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgfCBTdG9yYWdlIHwg U3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gYSAgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAq IDIyKSBzdG9yZWQgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCi0geCAgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMu Z3Rlc3R4IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwg RGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90 IG51bGwgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhaW4gICB8ICAgICAg ICAgICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyMikgfCBwbGFpbiAgIHwgICAgICAgICAgICAg IHwgCisgeCAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKIElu aGVyaXRzOiBndGVzdDEKIAorSU5TRVJUIElOVE8gZ3Rlc3R4IChhLCB4KSBWQUxVRVMgKDEx LCAyMik7CitTRUxFQ1QgKiBGUk9NIGd0ZXN0MTsKKyBhICB8IGIgIAorLS0tLSstLS0tCisg IDMgfCAgNgorICA0IHwgIDgKKyAxMSB8IDIyCisoMyByb3dzKQorCitTRUxFQ1QgKiBGUk9N IGd0ZXN0eDsKKyBhICB8ICBiICB8IHggIAorLS0tLSstLS0tLSstLS0tCisgMTEgfCAyNDIg fCAyMgorKDEgcm93KQorCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4eF8xIChhIGludCBOT1QgTlVM TCwgYiBpbnQpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF8xIElOSEVSSVQgZ3Rlc3QxOyAgLS0g ZXJyb3IKIEVSUk9SOiAgY29sdW1uICJiIiBpbiBjaGlsZCB0YWJsZSBtdXN0IGJlIGEgZ2Vu ZXJhdGVkIGNvbHVtbgotQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfMyAoYSBpbnQgTk9UIE5VTEws IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0eHhfMyAoYSBpbnQgTk9UIE5VTEwsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0eHhfMyBJTkhFUklUIGd0 ZXN0MTsgIC0tIG9rCi1DUkVBVEUgVEFCTEUgZ3Rlc3R4eF80IChiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgU1RPUkVELCBhIGludCBOT1QgTlVMTCk7CitDUkVBVEUgVEFC TEUgZ3Rlc3R4eF80IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVB TCwgYSBpbnQgTk9UIE5VTEwpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF80IElOSEVSSVQgZ3Rl c3QxOyAgLS0gb2sKIC0tIHRlc3QgbXVsdGlwbGUgaW5oZXJpdGFuY2UgbWlzbWF0Y2hlcwog Q1JFQVRFIFRBQkxFIGd0ZXN0eSAoeCBpbnQsIGIgaW50IERFRkFVTFQgNTUpOwpAQCAtMzQx LDI4ICszNzUsMjggQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MV95ICgpIElOSEVSSVRTIChndGVz dDEsIGd0ZXN0eSk7ICAtLSBlcnJvcgogTk9USUNFOiAgbWVyZ2luZyBtdWx0aXBsZSBpbmhl cml0ZWQgZGVmaW5pdGlvbnMgb2YgY29sdW1uICJiIgogRVJST1I6ICBpbmhlcml0ZWQgY29s dW1uICJiIiBoYXMgYSBnZW5lcmF0aW9uIGNvbmZsaWN0CiBEUk9QIFRBQkxFIGd0ZXN0eTsK LUNSRUFURSBUQUJMRSBndGVzdHkgKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT ICh4ICogMjIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIyKSBWSVJUVUFMKTsKIENSRUFURSBUQUJMRSBn dGVzdDFfeSAoKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gZXJyb3IKIE5PVElD RTogIG1lcmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAi YiIKIEVSUk9SOiAgY29sdW1uICJiIiBpbmhlcml0cyBjb25mbGljdGluZyBnZW5lcmF0aW9u IGV4cHJlc3Npb25zCiBISU5UOiAgVG8gcmVzb2x2ZSB0aGUgY29uZmxpY3QsIHNwZWNpZnkg YSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gZXhwbGljaXRseS4KLUNSRUFURSBUQUJMRSBndGVz dDFfeSAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCArIDEpIFNUT1JFRCkgSU5IRVJJ VFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIG9rCitDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKyAxKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rl c3QxLCBndGVzdHkpOyAgLS0gb2sKIE5PVElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5oZXJp dGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYiIKIE5PVElDRTogIG1vdmluZyBhbmQgbWVy Z2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KIERFVEFJTDogIFVz ZXItc3BlY2lmaWVkIGNvbHVtbiBtb3ZlZCB0byB0aGUgcG9zaXRpb24gb2YgdGhlIGluaGVy aXRlZCBjb2x1bW4uCiBcZCBndGVzdDFfeQotICAgICAgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MV95IgotIENvbHVtbiB8ICBUeXBlICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAg ICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDFfeSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCist LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3Qg bnVsbCB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdl bmVyYXRlZCBhbHdheXMgYXMgKHggKyAxKSBzdG9yZWQKKyBiICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzICh4ICsgMSkKICB4 ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKIEluaGVyaXRzOiBn dGVzdDEsCiAgICAgICAgICAgZ3Rlc3R5CiAKIC0tIHRlc3QgY29ycmVjdCBoYW5kbGluZyBv ZiBHRU5FUkFURUQgY29sdW1uIHRoYXQncyBvbmx5IGluIGNoaWxkCiBDUkVBVEUgVEFCTEUg Z3Rlc3RwIChmMSBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0YyAoZjIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGYxKzEpIFNUT1JFRCkgSU5IRVJJVFMoZ3Rlc3RwKTsKK0NSRUFURSBU QUJMRSBndGVzdGMgKGYyIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMSsxKSBWSVJUVUFM KSBJTkhFUklUUyhndGVzdHApOwogSU5TRVJUIElOVE8gZ3Rlc3RjIHZhbHVlcyg0Mik7CiBU QUJMRSBndGVzdGM7CiAgZjEgfCBmMiAKQEAgLTM3OSw4ICs0MTMsOCBAQCBUQUJMRSBndGVz dGM7CiAKIERST1AgVEFCTEUgZ3Rlc3RwIENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2Nh ZGVzIHRvIHRhYmxlIGd0ZXN0YwotLS0gdGVzdCBzdG9yZWQgdXBkYXRlCi1DUkVBVEUgVEFC TEUgZ3Rlc3QzIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNU T1JFRCk7CistLSB0ZXN0IHVwZGF0ZSBYWFgKK0NSRUFURSBUQUJMRSBndGVzdDMgKGEgaW50 LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgVklSVFVBTCk7CiBJTlNFUlQg SU5UTyBndGVzdDMgKGEpIFZBTFVFUyAoMSksICgyKSwgKDMpLCAoTlVMTCk7CiBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBhOwogIGEgfCBiIApAQCAtNDAxLDcgKzQzNSw3IEBA IFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAgICAgfCAgIAogKDQgcm93cykK IAotQ1JFQVRFIFRBQkxFIGd0ZXN0M2EgKGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgfHwgJysnIHx8IGEpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QzYSAo YSB0ZXh0LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgVklS VFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdDNhIChhKSBWQUxVRVMgKCdhJyksICgnYicpLCAo J2MnKSwgKE5VTEwpOwogU0VMRUNUICogRlJPTSBndGVzdDNhIE9SREVSIEJZIGE7CiAgYSB8 ICBiICAKQEAgLTQ2Niw3ICs1MDAsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBC WSBhOwogKDQgcm93cykKIAogLS0gbnVsbCB2YWx1ZXMKLUNSRUFURSBUQUJMRSBndGVzdDIg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChOVUxMKSBT VE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKE5VTEwpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rl c3QyIFZBTFVFUyAoMSk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjsKICBhIHwgYiAKQEAgLTQ3 NSw3ICs1MDksNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjsKICgxIHJvdykKIAogLS0gc2lt cGxlIGNvbHVtbiByZWZlcmVuY2UgZm9yIHZhcmxlbmEgdHlwZXMKLUNSRUFURSBUQUJMRSBn dGVzdF92YXJsZW5hIChhIHZhcmNoYXIsIGIgdmFyY2hhciBHRU5FUkFURUQgQUxXQVlTIEFT IChhKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hhciwg YiB2YXJjaGFyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEpIFZJUlRVQUwpOwogSU5TRVJUIElO VE8gZ3Rlc3RfdmFybGVuYSAoYSkgVkFMVUVTKCcwMTIzNDU2Nzg5MDEyMzQ1Njc4OScpOwog SU5TRVJUIElOVE8gZ3Rlc3RfdmFybGVuYSAoYSkgVkFMVUVTKE5VTEwpOwogU0VMRUNUICog RlJPTSBndGVzdF92YXJsZW5hIE9SREVSIEJZIGE7CkBAIC00OTAsNyArNTI0LDcgQEAgRFJP UCBUQUJMRSBndGVzdF92YXJsZW5hOwogQ1JFQVRFIFRZUEUgZG91YmxlX2ludCBhcyAoYSBp bnQsIGIgaW50KTsKIENSRUFURSBUQUJMRSBndGVzdDQgKAogICAgIGEgaW50LAotICAgIGIg ZG91YmxlX2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSAqIDIsIGEgKiAzKSkgU1RPUkVE CisgICAgYiBkb3VibGVfaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICogMiwgYSAqIDMp KSBWSVJUVUFMCiApOwogSU5TRVJUIElOVE8gZ3Rlc3Q0IFZBTFVFUyAoMSksICg2KTsKIFNF TEVDVCAqIEZST00gZ3Rlc3Q0OwpAQCAtNTA1LDExICs1MzksMTEgQEAgRFJPUCBUWVBFIGRv dWJsZV9pbnQ7CiAtLSB1c2luZyB0YWJsZW9pZCBpcyBhbGxvd2VkCiBDUkVBVEUgVEFCTEUg Z3Rlc3RfdGFibGVvaWQgKAogICBhIGludCBQUklNQVJZIEtFWSwKLSAgYiBib29sIEdFTkVS QVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkID0gJ2d0ZXN0X3RhYmxlb2lkJzo6cmVnY2xhc3Mp IFNUT1JFRAorICBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQgPSAnZ3Rl c3RfdGFibGVvaWQnOjpyZWdjbGFzcykgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0 X3RhYmxlb2lkIFZBTFVFUyAoMSksICgyKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3RhYmxlb2lk IEFERCBDT0xVTU4KLSAgYyByZWdjbGFzcyBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9p ZCkgU1RPUkVEOworICBjIHJlZ2NsYXNzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lk KSBWSVJUVUFMOwogU0VMRUNUICogRlJPTSBndGVzdF90YWJsZW9pZDsKICBhIHwgYiB8ICAg ICAgIGMgICAgICAgIAogLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0tCkBAIC01MTgsNyArNTUy LDcgQEAgU0VMRUNUICogRlJPTSBndGVzdF90YWJsZW9pZDsKICgyIHJvd3MpCiAKIC0tIGRy b3AgY29sdW1uIGJlaGF2aW9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxMCAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVE KTsKK0NSRUFURSBUQUJMRSBndGVzdDEwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxF IGd0ZXN0MTAgRFJPUCBDT0xVTU4gYjsgIC0tIGZhaWxzCiBFUlJPUjogIGNhbm5vdCBkcm9w IGNvbHVtbiBiIG9mIHRhYmxlIGd0ZXN0MTAgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVu ZCBvbiBpdAogREVUQUlMOiAgY29sdW1uIGMgb2YgdGFibGUgZ3Rlc3QxMCBkZXBlbmRzIG9u IGNvbHVtbiBiIG9mIHRhYmxlIGd0ZXN0MTAKQEAgLTUyNiwzMCArNTYwLDMxIEBAIEhJTlQ6 ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0 b28uCiBBTFRFUiBUQUJMRSBndGVzdDEwIERST1AgQ09MVU1OIGIgQ0FTQ0FERTsgIC0tIGRy b3BzIGMgdG9vCiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIGNvbHVtbiBjIG9mIHRhYmxl IGd0ZXN0MTAKIFxkIGd0ZXN0MTAKLSAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rl c3RzLmd0ZXN0MTAiCisgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rl c3QxMCIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZh dWx0IAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiBJbmRl eGVzOgogICAgICJndGVzdDEwX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoYSkKIAotQ1JF QVRFIFRBQkxFIGd0ZXN0MTBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMGEgKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdDEwYSBEUk9QIENPTFVNTiBiOwogSU5TRVJUIElO VE8gZ3Rlc3QxMGEgKGEpIFZBTFVFUyAoMSk7CiAtLSBwcml2aWxlZ2VzCiBDUkVBVEUgVVNF UiByZWdyZXNzX3VzZXIxMTsKLUNSRUFURSBUQUJMRSBndGVzdDExcyAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVE KTsKLUlOU0VSVCBJTlRPIGd0ZXN0MTFzIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOwotR1JB TlQgU0VMRUNUIChhLCBjKSBPTiBndGVzdDExcyBUTyByZWdyZXNzX3VzZXIxMTsKK0NSRUFU RSBUQUJMRSBndGVzdDExdiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTCk7CitJTlNFUlQgSU5UTyBndGVzdDEx diBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKK0dSQU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rl c3QxMXYgVE8gcmVncmVzc191c2VyMTE7CiBDUkVBVEUgRlVOQ1RJT04gZ2YxKGEgaW50KSBS RVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgYSAqIDMgJCQgSU1NVVRBQkxFIExBTkdVQUdFIFNR TDsKIFJFVk9LRSBBTEwgT04gRlVOQ1RJT04gZ2YxKGludCkgRlJPTSBQVUJMSUM7Ci1DUkVB VEUgVEFCTEUgZ3Rlc3QxMnMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZ2YxKGIpKSBTVE9SRUQpOwotSU5TRVJUIElOVE8gZ3Rlc3Qx MnMgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMnYgKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ2Yx KGIpKSBWSVJUVUFMKTsKK0lOU0VSVCBJTlRPIGd0ZXN0MTJ2IFZBTFVFUyAoMSwgMTApLCAo MiwgMjApOwogR1JBTlQgU0VMRUNUIChhLCBjKSBPTiBndGVzdDEycyBUTyByZWdyZXNzX3Vz ZXIxMTsKK0VSUk9SOiAgcmVsYXRpb24gImd0ZXN0MTJzIiBkb2VzIG5vdCBleGlzdAogU0VU IFJPTEUgcmVncmVzc191c2VyMTE7Ci1TRUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MTFzOyAgLS0g bm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGd0ZXN0 MTFzCi1TRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTFzOyAgLS0gYWxsb3dlZAorU0VMRUNUIGEs IGIgRlJPTSBndGVzdDExdjsgIC0tIG5vdCBhbGxvd2VkCitFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciB0YWJsZSBndGVzdDExdgorU0VMRUNUIGEsIGMgRlJPTSBndGVzdDExdjsg IC0tIGFsbG93ZWQKICBhIHwgYyAgCiAtLS0rLS0tLQogIDEgfCAyMApAQCAtNTU4LDIzMSAr NTkzLDE0MiBAQCBTRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTFzOyAgLS0gYWxsb3dlZAogCiBT RUxFQ1QgZ2YxKDEwKTsgIC0tIG5vdCBhbGxvd2VkCiBFUlJPUjogIHBlcm1pc3Npb24gZGVu aWVkIGZvciBmdW5jdGlvbiBnZjEKLVNFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMnM7ICAtLSBh bGxvd2VkCi0gYSB8IGMgIAotLS0tKy0tLS0KLSAxIHwgMzAKLSAyIHwgNjAKLSgyIHJvd3Mp Ci0KK1NFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMnY7ICAtLSBub3QgYWxsb3dlZDsgVE9ETzog b3VnaHQgdG8gYmUgYWxsb3dlZAorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFi bGUgZ3Rlc3QxMnYKIFJFU0VUIFJPTEU7CiBEUk9QIEZVTkNUSU9OIGdmMShpbnQpOyAgLS0g ZmFpbAogRVJST1I6ICBjYW5ub3QgZHJvcCBmdW5jdGlvbiBnZjEoaW50ZWdlcikgYmVjYXVz ZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAotREVUQUlMOiAgY29sdW1uIGMgb2YgdGFi bGUgZ3Rlc3QxMnMgZGVwZW5kcyBvbiBmdW5jdGlvbiBnZjEoaW50ZWdlcikKK0RFVEFJTDog IGNvbHVtbiBjIG9mIHRhYmxlIGd0ZXN0MTJ2IGRlcGVuZHMgb24gZnVuY3Rpb24gZ2YxKGlu dGVnZXIpCiBISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5k ZW50IG9iamVjdHMgdG9vLgotRFJPUCBUQUJMRSBndGVzdDExcywgZ3Rlc3QxMnM7CitEUk9Q IFRBQkxFIGd0ZXN0MTF2LCBndGVzdDEydjsKIERST1AgRlVOQ1RJT04gZ2YxKGludCk7CiBE Uk9QIFVTRVIgcmVncmVzc191c2VyMTE7CiAtLSBjaGVjayBjb25zdHJhaW50cwotQ1JFQVRF IFRBQkxFIGd0ZXN0MjAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgU1RPUkVEIENIRUNLIChiIDwgNTApKTsKK0NSRUFURSBUQUJMRSBn dGVzdDIwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFZJUlRVQUwgQ0hFQ0sgKGIgPCA1MCkpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMCAo YSkgVkFMVUVTICgxMCk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3QyMCAoYSkgVkFMVUVT ICgzMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CiBFUlJPUjogIG5ldyByb3cgZm9yIHJl bGF0aW9uICJndGVzdDIwIiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJndGVzdDIwX2Jf Y2hlY2siCi1ERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoMzAsIDYwKS4KK0RFVEFJ TDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgzMCwgdmlydHVhbCkuCiBBTFRFUiBUQUJMRSBn dGVzdDIwIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMTAwKTsgIC0t IHZpb2xhdGVzIGNvbnN0cmFpbnQKLUVSUk9SOiAgY2hlY2sgY29uc3RyYWludCAiZ3Rlc3Qy MF9iX2NoZWNrIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMCIgaXMgdmlvbGF0ZWQgYnkgc29tZSBy b3cKK0VSUk9SOiAgQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9y dGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImIi IG9mIHJlbGF0aW9uICJndGVzdDIwIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4K IEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMg KGEgKiAzKTsgIC0tIG9rCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMGEgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0VSUk9S OiAgQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2 aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImIiIG9mIHJlbGF0 aW9uICJndGVzdDIwIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4KK0NSRUFURSBU QUJMRSBndGVzdDIwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBhIChhKSBWQUxV RVMgKDEwKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBhIChhKSBWQUxVRVMgKDMwKTsKIEFMVEVS IFRBQkxFIGd0ZXN0MjBhIEFERCBDSEVDSyAoYiA8IDUwKTsgIC0tIGZhaWxzIG9uIGV4aXN0 aW5nIHJvdwogRVJST1I6ICBjaGVjayBjb25zdHJhaW50ICJndGVzdDIwYV9iX2NoZWNrIiBv ZiByZWxhdGlvbiAiZ3Rlc3QyMGEiIGlzIHZpb2xhdGVkIGJ5IHNvbWUgcm93Ci1DUkVBVEUg VEFCTEUgZ3Rlc3QyMGIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIwYiAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFM KTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBiIChhKSBWQUxVRVMgKDEwKTsKIElOU0VSVCBJTlRP IGd0ZXN0MjBiIChhKSBWQUxVRVMgKDMwKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBiIEFERCBD T05TVFJBSU5UIGNoayBDSEVDSyAoYiA8IDUwKSBOT1QgVkFMSUQ7CiBBTFRFUiBUQUJMRSBn dGVzdDIwYiBWQUxJREFURSBDT05TVFJBSU5UIGNoazsgIC0tIGZhaWxzIG9uIGV4aXN0aW5n IHJvdwogRVJST1I6ICBjaGVjayBjb25zdHJhaW50ICJjaGsiIG9mIHJlbGF0aW9uICJndGVz dDIwYiIgaXMgdmlvbGF0ZWQgYnkgc29tZSByb3cKLS0tIG5vdC1udWxsIGNvbnN0cmFpbnRz Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyMWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFNUT1JFRCBOT1QgTlVMTCk7Ci1JTlNF UlQgSU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBn dGVzdDIxYSAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKLUVSUk9S OiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDIxYSIgdmlv bGF0ZXMgbm90LW51bGwgY29uc3RyYWludAotREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFp bnMgKDAsIG51bGwpLgotQ1JFQVRFIFRBQkxFIGd0ZXN0MjFiIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSBTVE9SRUQpOwor LS0gbm90LW51bGwgY29uc3RyYWludHMgKGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkKQorQ1JF QVRFIFRBQkxFIGd0ZXN0MjFhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSBWSVJUVUFMIE5PVCBOVUxMKTsKK0VSUk9SOiAg bm90LW51bGwgY29uc3RyYWludHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucworLS1JTlNFUlQgSU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgxKTsg IC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDApOyAgLS0gdmlv bGF0ZXMgY29uc3RyYWludAorQ1JFQVRFIFRBQkxFIGd0ZXN0MjFiIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSBWSVJUVUFM KTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBiIFNFVCBOT1QgTlVMTDsK LUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKLUlOU0VSVCBJ TlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAot RVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjFi IiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50Ci1ERVRBSUw6ICBGYWlsaW5nIHJvdyBj b250YWlucyAoMCwgbnVsbCkuCitFUlJPUjogIG5vdC1udWxsIGNvbnN0cmFpbnRzIGFyZSBu b3Qgc3VwcG9ydGVkIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENv bHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjFiIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVk IGNvbHVtbi4KKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBv aworLS1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVz IGNvbnN0cmFpbnQKIEFMVEVSIFRBQkxFIGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBiIERST1Ag Tk9UIE5VTEw7Ci1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9r IG5vdworLS1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5v dwogLS0gaW5kZXggY29uc3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIyYSAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSBTVE9SRUQg VU5JUVVFKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoMik7Ci1JTlNFUlQgSU5U TyBndGVzdDIyYSBWQUxVRVMgKDMpOwotRVJST1I6ICBkdXBsaWNhdGUga2V5IHZhbHVlIHZp b2xhdGVzIHVuaXF1ZSBjb25zdHJhaW50ICJndGVzdDIyYV9iX2tleSIKLURFVEFJTDogIEtl eSAoYik9KDEpIGFscmVhZHkgZXhpc3RzLgotSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVT ICg0KTsKLUNSRUFURSBUQUJMRSBndGVzdDIyYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgLyAyKSBTVE9SRUQsIFBSSU1BUlkgS0VZIChhLCBiKSk7Ci1JTlNFUlQg SU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmIgVkFMVUVT ICgyKTsKLUVSUk9SOiAgZHVwbGljYXRlIGtleSB2YWx1ZSB2aW9sYXRlcyB1bmlxdWUgY29u c3RyYWludCAiZ3Rlc3QyMmJfcGtleSIKLURFVEFJTDogIEtleSAoYSwgYik9KDIsIDEpIGFs cmVhZHkgZXhpc3RzLgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFZJUlRVQUwgVU5JUVVFKTsK K0VSUk9SOiAgaW5kZXggY3JlYXRpb24gb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBp cyBub3Qgc3VwcG9ydGVkCistLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoMik7Cist LUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoMyk7CistLUlOU0VSVCBJTlRPIGd0ZXN0 MjJhIFZBTFVFUyAoNCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMmIgKGEgaW50LCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhIC8gMikgVklSVFVBTCwgUFJJTUFSWSBLRVkgKGEsIGIp KTsKK0VSUk9SOiAgaW5kZXggY3JlYXRpb24gb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cyBpcyBub3Qgc3VwcG9ydGVkCistLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7 CistLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7CiAtLSBpbmRleGVzCi1DUkVB VEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMikgU1RPUkVEKTsKLUNSRUFURSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVzdDIy YyAoYik7Ci1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfZXhwcl9pZHggT04gZ3Rlc3QyMmMgKChi ICogMykpOwotQ1JFQVRFIElOREVYIGd0ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJjIChh KSBXSEVSRSBiID4gMDsKLVxkIGd0ZXN0MjJjCi0gICAgICAgICAgICAgICAgICAgVGFibGUg ImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyMmMiCi0gQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGEgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQKLUluZGV4 ZXM6Ci0gICAgImd0ZXN0MjJjX2JfaWR4IiBidHJlZSAoYikKLSAgICAiZ3Rlc3QyMmNfZXhw cl9pZHgiIGJ0cmVlICgoYiAqIDMpKQotICAgICJndGVzdDIyY19wcmVkX2lkeCIgYnRyZWUg KGEpIFdIRVJFIGIgPiAwCi0KLUlOU0VSVCBJTlRPIGd0ZXN0MjJjIFZBTFVFUyAoMSksICgy KSwgKDMpOwotU0VUIGVuYWJsZV9zZXFzY2FuIFRPIG9mZjsKLVNFVCBlbmFibGVfYml0bWFw c2NhbiBUTyBvZmY7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3Qy MmMgV0hFUkUgYiA9IDQ7Ci0gICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rlc3QyMmNfYl9pZHggb24gZ3Rlc3QyMmMKLSAgIElu ZGV4IENvbmQ6IChiID0gNCkKLSgyIHJvd3MpCi0KLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMg V0hFUkUgYiA9IDQ7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMiB8IDQKLSgxIHJvdykKLQotRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0g NjsKLSAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5k ZXggU2NhbiB1c2luZyBndGVzdDIyY19leHByX2lkeCBvbiBndGVzdDIyYwotICAgSW5kZXgg Q29uZDogKChiICogMykgPSA2KQotKDIgcm93cykKLQotU0VMRUNUICogRlJPTSBndGVzdDIy YyBXSEVSRSBiICogMyA9IDY7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSgxIHJvdykK LQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEg PSAxIEFORCBiID4gMDsKLSAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gSW5kZXggU2NhbiB1c2luZyBndGVzdDIyY19wcmVkX2lkeCBvbiBndGVzdDIy YwotICAgSW5kZXggQ29uZDogKGEgPSAxKQotKDIgcm93cykKLQotU0VMRUNUICogRlJPTSBn dGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8 IDIKLSgxIHJvdykKLQotQUxURVIgVEFCTEUgZ3Rlc3QyMmMgQUxURVIgQ09MVU1OIGIgU0VU IEVYUFJFU1NJT04gQVMgKGEgKiA0KTsKLUFOQUxZWkUgZ3Rlc3QyMmM7Ci1FWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7Ci0gICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rl c3QyMmNfYl9pZHggb24gZ3Rlc3QyMmMKLSAgIEluZGV4IENvbmQ6IChiID0gOCkKLSgyIHJv d3MpCi0KLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7Ci0gYSB8IGIgCi0t LS0rLS0tCi0gMiB8IDgKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7Ci0gICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rlc3QyMmNf ZXhwcl9pZHggb24gZ3Rlc3QyMmMKLSAgIEluZGV4IENvbmQ6ICgoYiAqIDMpID0gMTIpCi0o MiByb3dzKQotCi1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7Ci0g YSB8IGIgCi0tLS0rLS0tCi0gMSB8IDQKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLSAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5kZXggU2NhbiB1 c2luZyBndGVzdDIyY19wcmVkX2lkeCBvbiBndGVzdDIyYwotICAgSW5kZXggQ29uZDogKGEg PSAxKQotKDIgcm93cykKLQotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBB TkQgYiA+IDA7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDQKLSgxIHJvdykKLQotUkVTRVQg ZW5hYmxlX3NlcXNjYW47Ci1SRVNFVCBlbmFibGVfYml0bWFwc2NhbjsKK0NSRUFURSBUQUJM RSBndGVzdDIyYyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBW SVJUVUFMKTsKKy0tQ1JFQVRFIElOREVYIGd0ZXN0MjJjX2JfaWR4IE9OIGd0ZXN0MjJjIChi KTsKKy0tQ1JFQVRFIElOREVYIGd0ZXN0MjJjX2V4cHJfaWR4IE9OIGd0ZXN0MjJjICgoYiAq IDMpKTsKKy0tQ1JFQVRFIElOREVYIGd0ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJjIChh KSBXSEVSRSBiID4gMDsKKy0tXGQgZ3Rlc3QyMmMKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmMg VkFMVUVTICgxKSwgKDIpLCAoMyk7CistLVNFVCBlbmFibGVfc2Vxc2NhbiBUTyBvZmY7Cist LVNFVCBlbmFibGVfYml0bWFwc2NhbiBUTyBvZmY7CistLUVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKKy0tU0VMRUNUICogRlJPTSBn dGVzdDIyYyBXSEVSRSBiID0gNDsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIy YyBXSEVSRSBiICogMyA9IDY7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7CistLVNFTEVDVCAqIEZST00gZ3Rl c3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOworLS1BTFRFUiBUQUJMRSBndGVzdDIyYyBB TFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDQpOworLS1BTkFMWVpFIGd0 ZXN0MjJjOworLS1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMg V0hFUkUgYiA9IDg7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7Cist LUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICog MyA9IDEyOworLS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7Cist LUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0g MSBBTkQgYiA+IDA7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5E IGIgPiAwOworLS1SRVNFVCBlbmFibGVfc2Vxc2NhbjsKKy0tUkVTRVQgZW5hYmxlX2JpdG1h cHNjYW47CiAtLSBmb3JlaWduIGtleXMKIENSRUFURSBUQUJMRSBndGVzdDIzYSAoeCBpbnQg UFJJTUFSWSBLRVksIHkgaW50KTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjNhIFZBTFVFUyAoMSwg MTEpLCAoMiwgMjIpLCAoMywgMzMpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBS RUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBVUERBVEUgQ0FTQ0FERSk7ICAtLSBlcnJvcgor LS1JTlNFUlQgSU5UTyBndGVzdDIzYSBWQUxVRVMgKDEsIDExKSwgKDIsIDIyKSwgKDMsIDMz KTsKK0NSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIFJFRkVSRU5DRVMgZ3Rlc3QyM2Eg KHgpIE9OIFVQREFURSBDQVNDQURFKTsgIC0tIGVycm9yCiBFUlJPUjogIGludmFsaWQgT04g VVBEQVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCBjb250YWluaW5nIGdl bmVyYXRlZCBjb2x1bW4KLUNSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNF UyBndGVzdDIzYSAoeCkgT04gREVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9yCitDUkVBVEUg VEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgVklSVFVBTCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBERUxF VEUgU0VUIE5VTEwpOyAgLS0gZXJyb3IKIEVSUk9SOiAgaW52YWxpZCBPTiBERUxFVEUgYWN0 aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IGNvbnRhaW5pbmcgZ2VuZXJhdGVkIGNv bHVtbgotQ1JFQVRFIFRBQkxFIGd0ZXN0MjNiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBSRUZFUkVOQ0VTIGd0ZXN0MjNh ICh4KSk7Ci1cZCBndGVzdDIzYgotICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0 ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjNiIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRp b24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkCi1JbmRleGVzOgotICAg ICJndGVzdDIzYl9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGEpCi1Gb3JlaWduLWtleSBj b25zdHJhaW50czoKLSAgICAiZ3Rlc3QyM2JfYl9ma2V5IiBGT1JFSUdOIEtFWSAoYikgUkVG RVJFTkNFUyBndGVzdDIzYSh4KQotCi1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDEp OyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjNiIFZBTFVFUyAoNSk7ICAtLSBlcnJvcgot RVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJndGVzdDIzYiIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAiZ3Rlc3QyM2JfYl9ma2V5IgotREVUQUlMOiAgS2V5 IChiKT0oMTApIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJndGVzdDIzYSIuCi1BTFRFUiBU QUJMRSBndGVzdDIzYiBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDUp OyAtLSBlcnJvcgotRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJndGVzdDIz YiIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAiZ3Rlc3QyM2JfYl9ma2V5Igot REVUQUlMOiAgS2V5IChiKT0oNSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgImd0ZXN0MjNh Ii4KLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9O IEFTIChhICogMSk7IC0tIG9rCi1EUk9QIFRBQkxFIGd0ZXN0MjNiOwotRFJPUCBUQUJMRSBn dGVzdDIzYTsKLUNSRUFURSBUQUJMRSBndGVzdDIzcCAoeCBpbnQsIHkgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKHggKiAyKSBTVE9SRUQsIFBSSU1BUlkgS0VZICh5KSk7Ci1JTlNFUlQg SU5UTyBndGVzdDIzcCBWQUxVRVMgKDEpLCAoMiksICgzKTsKK0NSRUFURSBUQUJMRSBndGVz dDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBWSVJUVUFMIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpKTsKK0VSUk9SOiAgZm9yZWln biBrZXkgY29uc3RyYWludHMgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90 IHN1cHBvcnRlZAorLS1cZCBndGVzdDIzYgorLS1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxV RVMgKDEpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICg1KTsgIC0t IGVycm9yCistLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBS RVNTSU9OIEFTIChhICogNSk7IC0tIGVycm9yCistLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFM VEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMSk7IC0tIG9rCistLURST1Ag VEFCTEUgZ3Rlc3QyM2I7CistLURST1AgVEFCTEUgZ3Rlc3QyM2E7CitDUkVBVEUgVEFCTEUg Z3Rlc3QyM3AgKHggaW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMikgVklS VFVBTCwgUFJJTUFSWSBLRVkgKHkpKTsKK0VSUk9SOiAgaW5kZXggY3JlYXRpb24gb24gdmly dHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkCistLUlOU0VSVCBJTlRP IGd0ZXN0MjNwIFZBTFVFUyAoMSksICgyKSwgKDMpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjNx IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgUkVGRVJFTkNFUyBndGVzdDIzcCAoeSkpOwot SU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgxLCAyKTsgIC0tIG9rCi1JTlNFUlQgSU5U TyBndGVzdDIzcSBWQUxVRVMgKDIsIDUpOyAgLS0gZXJyb3IKLUVSUk9SOiAgaW5zZXJ0IG9y IHVwZGF0ZSBvbiB0YWJsZSAiZ3Rlc3QyM3EiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgImd0ZXN0MjNxX2JfZmtleSIKLURFVEFJTDogIEtleSAoYik9KDUpIGlzIG5vdCBw cmVzZW50IGluIHRhYmxlICJndGVzdDIzcCIuCitFUlJPUjogIHJlbGF0aW9uICJndGVzdDIz cCIgZG9lcyBub3QgZXhpc3QKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgxLCAy KTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMiwgNSk7ICAtLSBl cnJvcgogLS0gZG9tYWlucwogQ1JFQVRFIERPTUFJTiBndGVzdGRvbWFpbjEgQVMgaW50IENI RUNLIChWQUxVRSA8IDEwKTsKLUNSRUFURSBUQUJMRSBndGVzdDI0IChhIGludCBQUklNQVJZ IEtFWSwgYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JF RCk7Ci1JTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKLUlOU0VS VCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgotRVJST1I6ICB2YWx1 ZSBmb3IgZG9tYWluIGd0ZXN0ZG9tYWluMSB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJn dGVzdGRvbWFpbjFfY2hlY2siCitDUkVBVEUgVEFCTEUgZ3Rlc3QyNCAoYSBpbnQgUFJJTUFS WSBLRVksIGIgZ3Rlc3Rkb21haW4xIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJU VUFMKTsKK0VSUk9SOiAgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uICJiIiBjYW5ub3QgaGF2 ZSBhIGRvbWFpbiB0eXBlCistLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNCk7 ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDYpOyAgLS0gZXJy b3IKK0NSRUFURSBUWVBFIGd0ZXN0ZG9tYWluMXJhbmdlIEFTIHJhbmdlIChzdWJ0eXBlID0g Z3Rlc3Rkb21haW4xKTsKK0NSRUFURSBUQUJMRSBndGVzdDI0ciAoYSBpbnQgUFJJTUFSWSBL RVksIGIgZ3Rlc3Rkb21haW4xcmFuZ2UgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ3Rlc3Rkb21h aW4xcmFuZ2UoYSwgYSArIDUpKSBWSVJUVUFMKTsKK0VSUk9SOiAgdmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1uICJiIiBjYW5ub3QgaGF2ZSBhIGRvbWFpbiB0eXBlCistLUlOU0VSVCBJTlRP IGd0ZXN0MjRyIChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy NHIgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgogLS0gdHlwZWQgdGFibGVzIChjdXJyZW50 bHkgbm90IHN1cHBvcnRlZCkKIENSRUFURSBUWVBFIGd0ZXN0X3R5cGUgQVMgKGYxIGludGVn ZXIsIGYyIHRleHQsIGYzIGJpZ2ludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVz dF90eXBlIChmMSBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKjIpIFNU T1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRIIE9Q VElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKjIpIFZJUlRVQUwpOwogRVJST1I6ICBn ZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZCBvbiB0eXBlZCB0YWJsZXMKIERS T1AgVFlQRSBndGVzdF90eXBlIENBU0NBREU7CiAtLSBwYXJ0aXRpb25pbmcgY2FzZXMKIENS RUFURSBUQUJMRSBndGVzdF9wYXJlbnQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwg ZjMgYmlnaW50KSBQQVJUSVRJT04gQlkgUkFOR0UgKGYxKTsKIENSRUFURSBUQUJMRSBndGVz dF9jaGlsZCBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKLSAgICBmMyBXSVRIIE9QVElP TlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQKKyAgICBmMyBXSVRIIE9Q VElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMCiApIEZPUiBWQUxV RVMgRlJPTSAoJzIwMTYtMDctMDEnKSBUTyAoJzIwMTYtMDgtMDEnKTsgLS0gZXJyb3IKIEVS Uk9SOiAgY2hpbGQgY29sdW1uICJmMyIgc3BlY2lmaWVzIGdlbmVyYXRpb24gZXhwcmVzc2lv bgogSElOVDogIEEgY2hpbGQgdGFibGUgY29sdW1uIGNhbm5vdCBiZSBnZW5lcmF0ZWQgdW5s ZXNzIGl0cyBwYXJlbnQgY29sdW1uIGlzLgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIChm MSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlT IEFTIChmMiAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgKGYxIGRh dGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGYyICogMikgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBB UlRJVElPTiBndGVzdF9jaGlsZCBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykgVE8g KCcyMDE2LTA4LTAxJyk7IC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAiZjMiIGluIGNoaWxk IHRhYmxlIG11c3Qgbm90IGJlIGEgZ2VuZXJhdGVkIGNvbHVtbgogRFJPUCBUQUJMRSBndGVz dF9wYXJlbnQsIGd0ZXN0X2NoaWxkOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEg ZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkg UkFOR0UgKGYxKTsKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZCBQQVJUSVRJT04gT0YgZ3Rl c3RfcGFyZW50CiAgIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBUTyAoJzIwMTYt MDgtMDEnKTsgIC0tIGluaGVyaXRzIGdlbiBleHByCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hp bGQyIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAotICAgIGYzIFdJVEggT1BUSU9OUyBH RU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIyKSBTVE9SRUQgIC0tIG92ZXJyaWRlcyBnZW4g ZXhwcgorICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIy KSBWSVJUVUFMICAtLSBvdmVycmlkZXMgZ2VuIGV4cHIKICkgRk9SIFZBTFVFUyBGUk9NICgn MjAxNi0wOC0wMScpIFRPICgnMjAxNi0wOS0wMScpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2No aWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKICAgICBmMyBERUZBVUxUIDQyICAt LSBlcnJvcgpAQCAtNzkyLDYgKzczOCwxMSBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQz IFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAogICAgIGYzIFdJVEggT1BUSU9OUyBHRU5F UkFURUQgQUxXQVlTIEFTIElERU5USVRZICAtLSBlcnJvcgogKSBGT1IgVkFMVUVTIEZST00g KCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBFUlJPUjogIGlkZW50aXR5IGNv bHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gcGFydGl0aW9ucworQ1JFQVRFIFRBQkxFIGd0 ZXN0X2NoaWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKKyAgICBmMyBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCAgLS0gZXJyb3IKKykgRk9SIFZBTFVFUyBG Uk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOworRVJST1I6ICBjb2x1bW4g ImYzIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQK K0RFVEFJTDogIFBhcmVudCBjb2x1bW4gaXMgVklSVFVBTCwgY2hpbGQgY29sdW1uIGlzIFNU T1JFRC4KIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYy IGJpZ2ludCwgZjMgYmlnaW50KTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0gg UEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykg VE8gKCcyMDE2LTEwLTAxJyk7IC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAiZjMiIGluIGNo aWxkIHRhYmxlIG11c3QgYmUgYSBnZW5lcmF0ZWQgY29sdW1uCkBAIC04MDUsMzMgKzc1Niwz MyBAQCBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9j aGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOQogRVJST1I6ICB0YWJsZSAiZ3Rlc3Rf Y2hpbGQzIiBiZWluZyBhdHRhY2hlZCBjb250YWlucyBhbiBpZGVudGl0eSBjb2x1bW4gImYz IgogREVUQUlMOiAgVGhlIG5ldyBwYXJ0aXRpb24gbWF5IG5vdCBjb250YWluIGFuIGlkZW50 aXR5IGNvbHVtbi4KIERST1AgVEFCTEUgZ3Rlc3RfY2hpbGQzOwotQ1JFQVRFIFRBQkxFIGd0 ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAzMykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVz dF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3Rf cGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAo JzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsKIFxkIGd0ZXN0X2NoaWxkCi0gICAg ICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGls ZCIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9j aGlsZCIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8 IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikgc3RvcmVkCisgZjMg ICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChmMiAqIDIpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZS T00gKCcwNy0wMS0yMDE2JykgVE8gKCcwOC0wMS0yMDE2JykKIAogXGQgZ3Rlc3RfY2hpbGQy Ci0gICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVz dF9jaGlsZDIiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAg ICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0 cy5ndGVzdF9jaGlsZDIiCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFi bGUgfCAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAg IHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQg fCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMjIp IHN0b3JlZAorIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyMikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50 IEZPUiBWQUxVRVMgRlJPTSAoJzA4LTAxLTIwMTYnKSBUTyAoJzA5LTAxLTIwMTYnKQogCiBc ZCBndGVzdF9jaGlsZDMKLSAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3Rv cmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMyIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAKLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRl ZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkMyIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51 bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYz ICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoZjIgKiAzMykgc3RvcmVkCisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwg ICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDMzKQogUGFydGl0aW9uIG9m OiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9NICgnMDktMDEtMjAxNicpIFRPICgnMTAt MDEtMjAxNicpCiAKIElOU0VSVCBJTlRPIGd0ZXN0X3BhcmVudCAoZjEsIGYyKSBWQUxVRVMg KCcyMDE2LTA3LTE1JywgMSk7CkBAIC04NDIsNyArNzkzLDcgQEAgU0VMRUNUIHRhYmxlb2lk OjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAxLCAyLCAzOwogLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0rLS0tLQogIGd0ZXN0X2NoaWxkICB8IDA3 LTE1LTIwMTYgfCAgMSB8ICAyCiAgZ3Rlc3RfY2hpbGQgIHwgMDctMTUtMjAxNiB8ICAyIHwg IDQKLSBndGVzdF9jaGlsZDIgfCAwOC0xNS0yMDE2IHwgIDMgfCA2NgorIGd0ZXN0X2NoaWxk MiB8IDA4LTE1LTIwMTYgfCAgMyB8ICA2CiAoMyByb3dzKQogCiBVUERBVEUgZ3Rlc3RfcGFy ZW50IFNFVCBmMSA9IGYxICsgNjAgV0hFUkUgZjIgPSAxOwpAQCAtODUwLDk1ICs4MDEsMTAx IEBAIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9wYXJlbnQgT1JE RVIgQlkgMSwgMiwgMzsKICAgIHRhYmxlb2lkICAgfCAgICAgZjEgICAgIHwgZjIgfCBmMyAK IC0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tKy0tLS0KICBndGVzdF9jaGlsZCAg fCAwNy0xNS0yMDE2IHwgIDIgfCAgNAotIGd0ZXN0X2NoaWxkMiB8IDA4LTE1LTIwMTYgfCAg MyB8IDY2Ci0gZ3Rlc3RfY2hpbGQzIHwgMDktMTMtMjAxNiB8ICAxIHwgMzMKKyBndGVzdF9j aGlsZDIgfCAwOC0xNS0yMDE2IHwgIDMgfCAgNgorIGd0ZXN0X2NoaWxkMyB8IDA5LTEzLTIw MTYgfCAgMSB8ICAyCiAoMyByb3dzKQogCiAtLSBhbHRlciBvbmx5IHBhcmVudCdzIGFuZCBv bmUgY2hpbGQncyBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIEFMVEVSIFRBQkxFIE9OTFkgZ3Rl c3RfcGFyZW50IEFMVEVSIENPTFVNTiBmMyBTRVQgRVhQUkVTU0lPTiBBUyAoZjIgKiA0KTsK K0VSUk9SOiAgQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVk IGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImYzIiBv ZiByZWxhdGlvbiAiZ3Rlc3RfcGFyZW50IiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVt bi4KIEFMVEVSIFRBQkxFIGd0ZXN0X2NoaWxkIEFMVEVSIENPTFVNTiBmMyBTRVQgRVhQUkVT U0lPTiBBUyAoZjIgKiAxMCk7CitFUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJ T04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVU QUlMOiAgQ29sdW1uICJmMyIgb2YgcmVsYXRpb24gImd0ZXN0X2NoaWxkIiBpcyBhIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbi4KIFxkIGd0ZXN0X3BhcmVudAotICAgICAgICAgICBQYXJ0 aXRpb25lZCB0YWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9wYXJlbnQiCi0g Q29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAg IERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgIFBhcnRpdGlvbmVkIHRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9w YXJlbnQiCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAg fCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAg IHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDQpIHN0b3JlZAorIGYz ICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoZjIgKiAyKQogUGFydGl0aW9uIGtleTogUkFOR0UgKGYxKQogTnVtYmVyIG9mIHBh cnRpdGlvbnM6IDMgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKIAogXGQgZ3Rlc3RfY2hpbGQK LSAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0 X2NoaWxkIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMu Z3Rlc3RfY2hpbGQiCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBm MSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJp Z2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAg ICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDEwKSBzdG9y ZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRl ZCBhbHdheXMgYXMgKGYyICogMikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBW QUxVRVMgRlJPTSAoJzA3LTAxLTIwMTYnKSBUTyAoJzA4LTAxLTIwMTYnKQogCiBcZCBndGVz dF9jaGlsZDIKLSAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rl c3RzLmd0ZXN0X2NoaWxkMiIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAKLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0 dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkMiIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAK ICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8 IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAo ZjIgKiAyMikgc3RvcmVkCisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAg ICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIyKQogUGFydGl0aW9uIG9mOiBndGVz dF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9NICgnMDgtMDEtMjAxNicpIFRPICgnMDktMDEtMjAx NicpCiAKIFxkIGd0ZXN0X2NoaWxkMwotICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVy YXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQzIgotIENvbHVtbiB8ICBUeXBlICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAi Z2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfY2hpbGQzIgorIENvbHVtbiB8ICBUeXBl ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAg ICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChmMiAqIDMzKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAg ICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMzMpCiBQYXJ0 aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwOS0wMS0yMDE2Jykg VE8gKCcxMC0wMS0yMDE2JykKIAogU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9N IGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAxLCAyLCAzOwogICAgdGFibGVvaWQgICB8ICAgICBm MSAgICAgfCBmMiB8IGYzIAogLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0rLS0t LQotIGd0ZXN0X2NoaWxkICB8IDA3LTE1LTIwMTYgfCAgMiB8IDIwCi0gZ3Rlc3RfY2hpbGQy IHwgMDgtMTUtMjAxNiB8ICAzIHwgNjYKLSBndGVzdF9jaGlsZDMgfCAwOS0xMy0yMDE2IHwg IDEgfCAzMworIGd0ZXN0X2NoaWxkICB8IDA3LTE1LTIwMTYgfCAgMiB8ICA0CisgZ3Rlc3Rf Y2hpbGQyIHwgMDgtMTUtMjAxNiB8ICAzIHwgIDYKKyBndGVzdF9jaGlsZDMgfCAwOS0xMy0y MDE2IHwgIDEgfCAgMgogKDMgcm93cykKIAogLS0gYWx0ZXIgZ2VuZXJhdGlvbiBleHByZXNz aW9uIG9mIHBhcmVudCBhbmQgYWxsIGl0cyBjaGlsZHJlbiBhbHRvZ2V0aGVyCiBBTFRFUiBU QUJMRSBndGVzdF9wYXJlbnQgQUxURVIgQ09MVU1OIGYzIFNFVCBFWFBSRVNTSU9OIEFTIChm MiAqIDIpOworRVJST1I6ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlzIG5vdCBz dXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENvbHVt biAiZjMiIG9mIHJlbGF0aW9uICJndGVzdF9wYXJlbnQiIGlzIGEgdmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1uLgogXGQgZ3Rlc3RfcGFyZW50Ci0gICAgICAgICAgIFBhcnRpdGlvbmVkIHRh YmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X3BhcmVudCIKLSBDb2x1bW4gfCAg VHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAg ICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgUGFydGl0 aW9uZWQgdGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X3BhcmVudCIKKyBD b2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAgICAg IHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAg ICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikgc3RvcmVkCisgZjMgICAgIHwgYmln aW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAq IDIpCiBQYXJ0aXRpb24ga2V5OiBSQU5HRSAoZjEpCiBOdW1iZXIgb2YgcGFydGl0aW9uczog MyAoVXNlIFxkKyB0byBsaXN0IHRoZW0uKQogCiBcZCBndGVzdF9jaGlsZAotICAgICAgICAg ICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQiCi0g Q29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAg IERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfY2hpbGQi CisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRl ICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAg ICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIpIHN0b3JlZAorIGYzICAgICB8 IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAo ZjIgKiAyKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9NICgn MDctMDEtMjAxNicpIFRPICgnMDgtMDEtMjAxNicpCiAKIFxkIGd0ZXN0X2NoaWxkMgotICAg ICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGls ZDIiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAg ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3Rf Y2hpbGQyIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAg ICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2lu dCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAgICAg ICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIpIHN0b3JlZAor IGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoZjIgKiAyMikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxV RVMgRlJPTSAoJzA4LTAxLTIwMTYnKSBUTyAoJzA5LTAxLTIwMTYnKQogCiBcZCBndGVzdF9j aGlsZDMKLSAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMu Z3Rlc3RfY2hpbGQzIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rl c3RzLmd0ZXN0X2NoaWxkMyIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAg ICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2lu dCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAy KSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdl bmVyYXRlZCBhbHdheXMgYXMgKGYyICogMzMpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVu dCBGT1IgVkFMVUVTIEZST00gKCcwOS0wMS0yMDE2JykgVE8gKCcxMC0wMS0yMDE2JykKIAog U0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRFUiBC WSAxLCAyLCAzOwpAQCAtOTUxLDU0ICs5MDgsNTQgQEAgU0VMRUNUIHRhYmxlb2lkOjpyZWdj bGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAxLCAyLCAzOwogCiAtLSB3ZSBs ZWF2ZSB0aGVzZSB0YWJsZXMgYXJvdW5kIGZvciBwdXJwb3NlcyBvZiB0ZXN0aW5nIGR1bXAv cmVsb2FkL3VwZ3JhZGUKIC0tIGdlbmVyYXRlZCBjb2x1bW5zIGluIHBhcnRpdGlvbiBrZXkg KG5vdCBhbGxvd2VkKQotQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBkYXRlIE5P VCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAq IDIpIFNUT1JFRCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7CitDUkVBVEUgVEFCTEUgZ3Rl c3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdF IChmMyk7CiBFUlJPUjogIGNhbm5vdCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiBpbiBwYXJ0aXRp b24ga2V5Ci1MSU5FIDE6IC4uLkVORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQp IFBBUlRJVElPTiBCWSBSQU5HRSAoZjMpOworTElORSAxOiAuLi5ORVJBVEVEIEFMV0FZUyBB UyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiBERVRBSUw6ICBDb2x1bW4gImYzIiBpcyBhIGdlbmVyYXRlZCBjb2x1bW4uCi1D UkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2lu dCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJU SVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsKK0NSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tl eSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKChmMyAqIDMp KTsKIEVSUk9SOiAgY2Fubm90IHVzZSBnZW5lcmF0ZWQgY29sdW1uIGluIHBhcnRpdGlvbiBr ZXkKLUxJTkUgMTogLi4uRUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCkgUEFSVElUSU9O IEJZIFJBTkdFICgoZjMgKiAzKSk7CitMSU5FIDE6IC4uLkQgQUxXQVlTIEFTIChmMiAqIDIp IFZJUlRVQUwpIFBBUlRJVElPTiBCWSBSQU5HRSAoKGYzICogMykpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERF VEFJTDogIENvbHVtbiAiZjMiIGlzIGEgZ2VuZXJhdGVkIGNvbHVtbi4KIC0tIEFMVEVSIFRB QkxFIC4uLiBBREQgQ09MVU1OCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNSAoYSBpbnQgUFJJTUFS WSBLRVkpOwogSU5TRVJUIElOVE8gZ3Rlc3QyNSBWQUxVRVMgKDMpLCAoNCk7Ci1BTFRFUiBU QUJMRSBndGVzdDI1IEFERCBDT0xVTU4gYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCwgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsK K0FMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgVklSVFVBTCwgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMg KGEgKiAzKTsKK0VSUk9SOiAgQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qg c3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitERVRBSUw6ICBDb2x1 bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDI1IiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNv bHVtbi4KIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRFUiBCWSBhOwotIGEgfCBiICAKLS0t LSstLS0tCi0gMyB8ICA5Ci0gNCB8IDEyCisgYSAKKy0tLQorIDMKKyA0CiAoMiByb3dzKQog Ci1BTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYiAqIDQpIFNUT1JFRDsgIC0tIGVycm9yCi1FUlJPUjogIGNhbm5vdCB1c2UgZ2Vu ZXJhdGVkIGNvbHVtbiAiYiIgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbgotREVU QUlMOiAgQSBnZW5lcmF0ZWQgY29sdW1uIGNhbm5vdCByZWZlcmVuY2UgYW5vdGhlciBnZW5l cmF0ZWQgY29sdW1uLgotQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKHogKiA0KSBTVE9SRUQ7ICAtLSBlcnJvcgorQUxURVIgVEFC TEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiA0 KSBWSVJUVUFMOyAgLS0gZXJyb3IKK0VSUk9SOiAgY29sdW1uICJiIiBkb2VzIG5vdCBleGlz dAorQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKHogKiA0KSBWSVJUVUFMOyAgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJ6IiBk b2VzIG5vdCBleGlzdAogQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGMgaW50IERF RkFVTFQgNDIsCi0gIEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAq IDQpIFNUT1JFRDsKKyAgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChj ICogNCkgVklSVFVBTDsKIEFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBkIGludCBE RUZBVUxUIDEwMTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjUgQUxURVIgQ09MVU1OIGQgU0VUIERB VEEgVFlQRSBmbG9hdDgsCi0gIEFERCBDT0xVTU4geSBmbG9hdDggR0VORVJBVEVEIEFMV0FZ UyBBUyAoZCAqIDQpIFNUT1JFRDsKKyAgQUREIENPTFVNTiB5IGZsb2F0OCBHRU5FUkFURUQg QUxXQVlTIEFTIChkICogNCkgVklSVFVBTDsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRF UiBCWSBhOwotIGEgfCBiICB8IGMgIHwgIHggIHwgIGQgIHwgIHkgIAotLS0tKy0tLS0rLS0t LSstLS0tLSstLS0tLSstLS0tLQotIDMgfCAgOSB8IDQyIHwgMTY4IHwgMTAxIHwgNDA0Ci0g NCB8IDEyIHwgNDIgfCAxNjggfCAxMDEgfCA0MDQKKyBhIHwgYyAgfCAgeCAgfCAgZCAgfCAg eSAgCistLS0rLS0tLSstLS0tLSstLS0tLSstLS0tLQorIDMgfCA0MiB8IDE2OCB8IDEwMSB8 IDQwNAorIDQgfCA0MiB8IDE2OCB8IDEwMSB8IDQwNAogKDIgcm93cykKIAogXGQgZ3Rlc3Qy NQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9z dG9yZWRfdGVzdHMuZ3Rlc3QyNSIKLSBDb2x1bW4gfCAgICAgICBUeXBlICAgICAgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAg ICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxl ICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI1IgorIENvbHVtbiB8ICAgICAgIFR5 cGUgICAgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICAgICBE ZWZhdWx0ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg ICAgICB8IG5vdCBudWxsIHwgCi0gYiAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDMpIHN0b3JlZAog IGMgICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IDQy Ci0geCAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoYyAqIDQpIHN0b3JlZAorIHggICAgICB8IGludGVnZXIg ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMg KGMgKiA0KQogIGQgICAgICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgICAgICAgfCAgICAg ICAgICB8IDEwMQotIHkgICAgICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgICAgICAgfCAg ICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGQgKiA0Ojpkb3VibGUgcHJlY2lzaW9u KSBzdG9yZWQKKyB5ICAgICAgfCBkb3VibGUgcHJlY2lzaW9uIHwgICAgICAgICAgIHwgICAg ICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkICogNDo6ZG91YmxlIHByZWNpc2lvbikK IEluZGV4ZXM6CiAgICAgImd0ZXN0MjVfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChhKQog CkBAIC0xMDA2LDcgKzk2Myw3IEBAIEluZGV4ZXM6CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNyAo CiAgICAgYSBpbnQsCiAgICAgYiBpbnQsCi0gICAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoKGEgKyBiKSAqIDIpIFNUT1JFRAorICAgIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KChhICsgYikgKiAyKSBWSVJUVUFMCiApOwogSU5TRVJUIElOVE8gZ3Rlc3QyNyAoYSwgYikg VkFMVUVTICgzLCA3KSwgKDQsIDExKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjcgQUxURVIgQ09M VU1OIGEgVFlQRSB0ZXh0OyAgLS0gZXJyb3IKQEAgLTEwMTQsMTIgKzk3MSwxMiBAQCBFUlJP UjogIGNhbm5vdCBhbHRlciB0eXBlIG9mIGEgY29sdW1uIHVzZWQgYnkgYSBnZW5lcmF0ZWQg Y29sdW1uCiBERVRBSUw6ICBDb2x1bW4gImEiIGlzIHVzZWQgYnkgZ2VuZXJhdGVkIGNvbHVt biAieCIuCiBBTFRFUiBUQUJMRSBndGVzdDI3IEFMVEVSIENPTFVNTiB4IFRZUEUgbnVtZXJp YzsKIFxkIGd0ZXN0MjcKLSAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0 ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjciCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjciCisgQ29sdW1u IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAgYiAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0geCAgICAgIHwgbnVtZXJpYyB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoKChhICsgYikgKiAyKSkg c3RvcmVkCisgeCAgICAgIHwgbnVtZXJpYyB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoKChhICsgYikgKiAyKSkKIAogU0VMRUNUICogRlJPTSBndGVz dDI3OwogIGEgfCBiICB8IHggIApAQCAtMTAzMywyMCArOTkwLDE5IEBAIEVSUk9SOiAgY2Fu bm90IHNwZWNpZnkgVVNJTkcgd2hlbiBhbHRlcmluZyB0eXBlIG9mIGdlbmVyYXRlZCBjb2x1 bW4KIERFVEFJTDogIENvbHVtbiAieCIgaXMgYSBnZW5lcmF0ZWQgY29sdW1uLgogQUxURVIg VEFCTEUgZ3Rlc3QyNyBBTFRFUiBDT0xVTU4geCBEUk9QIERFRkFVTFQ7ICAtLSBlcnJvcgog RVJST1I6ICBjb2x1bW4gIngiIG9mIHJlbGF0aW9uICJndGVzdDI3IiBpcyBhIGdlbmVyYXRl ZCBjb2x1bW4KLUhJTlQ6ICBVc2UgQUxURVIgVEFCTEUgLi4uIEFMVEVSIENPTFVNTiAuLi4g RFJPUCBFWFBSRVNTSU9OIGluc3RlYWQuCiAtLSBJdCdzIHBvc3NpYmxlIHRvIGFsdGVyIHRo ZSBjb2x1bW4gdHlwZXMgdGhpcyB3YXk6CiBBTFRFUiBUQUJMRSBndGVzdDI3CiAgIERST1Ag Q09MVU1OIHgsCiAgIEFMVEVSIENPTFVNTiBhIFRZUEUgYmlnaW50LAogICBBTFRFUiBDT0xV TU4gYiBUWVBFIGJpZ2ludCwKLSAgQUREIENPTFVNTiB4IGJpZ2ludCBHRU5FUkFURUQgQUxX QVlTIEFTICgoYSArIGIpICogMikgU1RPUkVEOworICBBREQgQ09MVU1OIHggYmlnaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBWSVJUVUFMOwogXGQgZ3Rlc3QyNwot ICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0 ZXN0MjciCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAg ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmly dHVhbF90ZXN0cy5ndGVzdDI3IgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgIAorLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCiAgYiAgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSB4ICAg ICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKChhICsgYikgKiAyKSBzdG9yZWQKKyB4ICAgICAgfCBiaWdpbnQgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKChhICsgYikgKiAyKQogCiAtLSBJ ZGVhbGx5IHlvdSBjb3VsZCBqdXN0IGRvIHRoaXMsIGJ1dCBub3QgdG9kYXkgKGFuZCBzaG91 bGQgeCBjaGFuZ2UgdHlwZT8pOgogQUxURVIgVEFCTEUgZ3Rlc3QyNwpAQCAtMTA1NSwxMiAr MTAxMSwxMiBAQCBBTFRFUiBUQUJMRSBndGVzdDI3CiBFUlJPUjogIGNhbm5vdCBhbHRlciB0 eXBlIG9mIGEgY29sdW1uIHVzZWQgYnkgYSBnZW5lcmF0ZWQgY29sdW1uCiBERVRBSUw6ICBD b2x1bW4gImEiIGlzIHVzZWQgYnkgZ2VuZXJhdGVkIGNvbHVtbiAieCIuCiBcZCBndGVzdDI3 Ci0gICAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMu Z3Rlc3QyNyIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92 aXJ0dWFsX3Rlc3RzLmd0ZXN0MjciCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgCistLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKICBiICAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIHgg ICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoKGEgKyBiKSAqIDIpIHN0b3JlZAorIHggICAgICB8IGJpZ2ludCB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoKGEgKyBiKSAqIDIpCiAKIFNF TEVDVCAqIEZST00gZ3Rlc3QyNzsKICBhIHwgYiAgfCB4ICAKQEAgLTEwNzIsNyArMTAyOCw3 IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNzsKIC0tIEFMVEVSIFRBQkxFIC4uLiBBTFRFUiBD T0xVTU4gLi4uIERST1AgRVhQUkVTU0lPTgogQ1JFQVRFIFRBQkxFIGd0ZXN0MjkgKAogICAg IGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQK KyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTAogKTsKIElO U0VSVCBJTlRPIGd0ZXN0MjkgKGEpIFZBTFVFUyAoMyksICg0KTsKIFNFTEVDVCAqIEZST00g Z3Rlc3QyOTsKQEAgLTEwODMsMTA3ICsxMDM5LDExOCBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0 Mjk7CiAoMiByb3dzKQogCiBcZCBndGVzdDI5Ci0gICAgICAgICAgICAgICAgICAgIFRhYmxl ICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjkiCi0gQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIFRhYmxl ICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI5IgorIENvbHVtbiB8ICBUeXBlICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAK Ky0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQog CiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBhIFNFVCBFWFBSRVNTSU9OIEFT IChhICogMyk7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9uICJn dGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uCiBBTFRFUiBUQUJMRSBndGVzdDI5 IEFMVEVSIENPTFVNTiBhIERST1AgRVhQUkVTU0lPTjsgIC0tIGVycm9yCi1FUlJPUjogIGNv bHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlzIG5vdCBhIHN0b3JlZCBnZW5lcmF0 ZWQgY29sdW1uCitFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlz IG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4KIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09M VU1OIGEgRFJPUCBFWFBSRVNTSU9OIElGIEVYSVNUUzsgIC0tIG5vdGljZQotTk9USUNFOiAg Y29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgc3RvcmVkIGdlbmVy YXRlZCBjb2x1bW4sIHNraXBwaW5nCitOT1RJQ0U6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9u ICJndGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uLCBza2lwcGluZwogLS0gQ2hh bmdlIHRoZSBleHByZXNzaW9uCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBi IFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CitFUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VU IEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1ucworREVUQUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgYSB2 aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7Ci0gYSB8 IGIgIAotLS0tKy0tLS0KLSAzIHwgIDkKLSA0IHwgMTIKKyBhIHwgYiAKKy0tLSstLS0KKyAz IHwgNgorIDQgfCA4CiAoMiByb3dzKQogCiBcZCBndGVzdDI5Ci0gICAgICAgICAgICAgICAg ICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjkiCi0gQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQg ICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI5IgorIENvbHVtbiB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAg ICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDMpIHN0b3JlZAorIGIgICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMg KGEgKiAyKQogCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBiIERST1AgRVhQ UkVTU0lPTjsKK0VSUk9SOiAgQUxURVIgVEFCTEUgLyBEUk9QIEVYUFJFU1NJT04gaXMgbm90 IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29s dW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW4uCiBJTlNFUlQgSU5UTyBndGVzdDI5IChhKSBWQUxVRVMgKDUpOwogSU5TRVJUIElO VE8gZ3Rlc3QyOSAoYSwgYikgVkFMVUVTICg2LCA2Nik7CitFUlJPUjogIGNhbm5vdCBpbnNl cnQgYSBub24tREVGQVVMVCB2YWx1ZSBpbnRvIGNvbHVtbiAiYiIKK0RFVEFJTDogIENvbHVt biAiYiIgaXMgYSBnZW5lcmF0ZWQgY29sdW1uLgogU0VMRUNUICogRlJPTSBndGVzdDI5Owog IGEgfCBiICAKIC0tLSstLS0tCi0gMyB8ICA5Ci0gNCB8IDEyCi0gNSB8ICAgCi0gNiB8IDY2 Ci0oNCByb3dzKQorIDMgfCAgNgorIDQgfCAgOAorIDUgfCAxMAorKDMgcm93cykKIAogXGQg Z3Rlc3QyOQotICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOSIK LSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAot LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0Mjki CisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAg IERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg ICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikKIAogLS0gY2hlY2sgdGhh dCBkZXBlbmRlbmNpZXMgYmV0d2VlbiBjb2x1bW5zIGhhdmUgYWxzbyBiZWVuIHJlbW92ZWQK IEFMVEVSIFRBQkxFIGd0ZXN0MjkgRFJPUCBDT0xVTU4gYTsgIC0tIHNob3VsZCBub3QgZHJv cCBiCitFUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiBhIG9mIHRhYmxlIGd0ZXN0MjkgYmVj YXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgY29sdW1uIGIgb2Yg dGFibGUgZ3Rlc3QyOSBkZXBlbmRzIG9uIGNvbHVtbiBhIG9mIHRhYmxlIGd0ZXN0MjkKK0hJ TlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0 cyB0b28uCiBcZCBndGVzdDI5Ci0gICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0 cy5ndGVzdDI5IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 IERlZmF1bHQgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0KLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK KyAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3Qy OSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAg ICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQogCiAt LSB3aXRoIGluaGVyaXRhbmNlCiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMCAoCiAgICAgYSBpbnQs Ci0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorICAgIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMCiApOwogQ1JFQVRFIFRB QkxFIGd0ZXN0MzBfMSAoKSBJTkhFUklUUyAoZ3Rlc3QzMCk7CiBBTFRFUiBUQUJMRSBndGVz dDMwIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsKK0VSUk9SOiAgQUxURVIgVEFC TEUgLyBEUk9QIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3Qz MCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCiBcZCBndGVzdDMwCi0gICAgICBU YWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDMwIgotIENvbHVtbiB8ICBUeXBl ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCi0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBU YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QzMCIKKyBDb2x1bW4gfCAgVHlw ZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAg ICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVy YXRlZCBhbHdheXMgYXMgKGEgKiAyKQogTnVtYmVyIG9mIGNoaWxkIHRhYmxlczogMSAoVXNl IFxkKyB0byBsaXN0IHRoZW0uKQogCiBcZCBndGVzdDMwXzEKLSAgICAgVGFibGUgImdlbmVy YXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QzMF8xIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJnZW5l cmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDMwXzEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAorLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBi ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChhICogMikKIEluaGVyaXRzOiBndGVzdDMwCiAKIERST1AgVEFCTEUgZ3Rlc3Qz MCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBndGVzdDMwXzEK IENSRUFURSBUQUJMRSBndGVzdDMwICgKICAgICBhIGludCwKLSAgICBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElO SEVSSVRTIChndGVzdDMwKTsKIEFMVEVSIFRBQkxFIE9OTFkgZ3Rlc3QzMCBBTFRFUiBDT0xV TU4gYiBEUk9QIEVYUFJFU1NJT047ICAtLSBlcnJvcgogRVJST1I6ICBBTFRFUiBUQUJMRSAv IERST1AgRVhQUkVTU0lPTiBtdXN0IGJlIGFwcGxpZWQgdG8gY2hpbGQgdGFibGVzIHRvbwog XGQgZ3Rlc3QzMAotICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3Jl ZF90ZXN0cy5ndGVzdDMwIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1 YWxfdGVzdHMuZ3Rlc3QzMCIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGIgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKGEgKiAyKSBzdG9yZWQKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAg ICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikKIE51bWJlciBvZiBjaGlsZCB0 YWJsZXM6IDEgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKIAogXGQgZ3Rlc3QzMF8xCi0gICAg ICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QzMF8x IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDMw XzEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAg ICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3Rv cmVkCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJh dGVkIGFsd2F5cyBhcyAoYSAqIDIpCiBJbmhlcml0czogZ3Rlc3QzMAogCiBBTFRFUiBUQUJM RSBndGVzdDMwXzEgQUxURVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IK QEAgLTExOTEsNyArMTE1OCw3IEBAIEVSUk9SOiAgY2Fubm90IGRyb3AgZ2VuZXJhdGlvbiBl eHByZXNzaW9uIGZyb20gaW5oZXJpdGVkIGNvbHVtbgogLS0gdHJpZ2dlcnMKIENSRUFURSBU QUJMRSBndGVzdDI2ICgKICAgICBhIGludCBQUklNQVJZIEtFWSwKLSAgICBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7CiBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJp Z2dlcl9mdW5jKCkgUkVUVVJOUyB0cmlnZ2VyCiAgIExBTkdVQUdFIHBscGdzcWwKQEAgLTEy NDQsNyArMTIxMSw3IEBAIENSRUFURSBUUklHR0VSIGd0ZXN0NCBBRlRFUiBJTlNFUlQgT1Ig VVBEQVRFIE9OIGd0ZXN0MjYKICAgRVhFQ1VURSBQUk9DRURVUkUgZ3Rlc3RfdHJpZ2dlcl9m dW5jKCk7CiBJTlNFUlQgSU5UTyBndGVzdDI2IChhKSBWQUxVRVMgKC0yKSwgKDApLCAoMyk7 CiBJTkZPOiAgZ3Rlc3QyOiBCRUZPUkU6IG5ldyA9ICgtMiwpCi1JTkZPOiAgZ3Rlc3Q0OiBB RlRFUjogbmV3ID0gKC0yLC00KQorSU5GTzogIGd0ZXN0NDogQUZURVI6IG5ldyA9ICgtMiwp CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JERVIgQlkgYTsKICBhICB8IGIgIAogLS0tLSst LS0tCkBAIC0xMjU0LDEyICsxMjIxLDEyIEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRF UiBCWSBhOwogKDMgcm93cykKIAogVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSBhICogLTI7Ci1J TkZPOiAgZ3Rlc3QxOiBCRUZPUkU6IG9sZCA9ICgtMiwtNCkKK0lORk86ICBndGVzdDE6IEJF Rk9SRTogb2xkID0gKC0yLCkKIElORk86ICBndGVzdDE6IEJFRk9SRTogbmV3ID0gKDQsKQot SU5GTzogIGd0ZXN0MzogQUZURVI6IG9sZCA9ICgtMiwtNCkKLUlORk86ICBndGVzdDM6IEFG VEVSOiBuZXcgPSAoNCw4KQotSU5GTzogIGd0ZXN0NDogQUZURVI6IG9sZCA9ICgzLDYpCi1J TkZPOiAgZ3Rlc3Q0OiBBRlRFUjogbmV3ID0gKC02LC0xMikKK0lORk86ICBndGVzdDM6IEFG VEVSOiBvbGQgPSAoLTIsKQorSU5GTzogIGd0ZXN0MzogQUZURVI6IG5ldyA9ICg0LCkKK0lO Rk86ICBndGVzdDQ6IEFGVEVSOiBvbGQgPSAoMywpCitJTkZPOiAgZ3Rlc3Q0OiBBRlRFUjog bmV3ID0gKC02LCkKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwogIGEgIHwg IGIgIAogLS0tLSstLS0tLQpAQCAtMTI2OSw4ICsxMjM2LDggQEAgU0VMRUNUICogRlJPTSBn dGVzdDI2IE9SREVSIEJZIGE7CiAoMyByb3dzKQogCiBERUxFVEUgRlJPTSBndGVzdDI2IFdI RVJFIGEgPSAtNjsKLUlORk86ICBndGVzdDE6IEJFRk9SRTogb2xkID0gKC02LC0xMikKLUlO Rk86ICBndGVzdDM6IEFGVEVSOiBvbGQgPSAoLTYsLTEyKQorSU5GTzogIGd0ZXN0MTogQkVG T1JFOiBvbGQgPSAoLTYsKQorSU5GTzogIGd0ZXN0MzogQUZURVI6IG9sZCA9ICgtNiwpCiBT RUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JERVIgQlkgYTsKICBhIHwgYiAKIC0tLSstLS0KQEAg LTEyODEsNiArMTI0OCw4IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwog RFJPUCBUUklHR0VSIGd0ZXN0MSBPTiBndGVzdDI2OwogRFJPUCBUUklHR0VSIGd0ZXN0MiBP TiBndGVzdDI2OwogRFJPUCBUUklHR0VSIGd0ZXN0MyBPTiBndGVzdDI2OworLS0gY2hlY2sg ZGlzYWxsb3dlZCBtb2RpZmljYXRpb24gb2YgdmlydHVhbCBjb2x1bW5zCistLSBUT0RPCiAt LSBDaGVjayB0aGF0IGFuIFVQREFURSBvZiAiYSIgZmlyZXMgdGhlIHRyaWdnZXIgZm9yIFVQ REFURSBPRiBiLCBwZXIKIC0tIFNRTCBzdGFuZGFyZC4KIENSRUFURSBGVU5DVElPTiBndGVz dF90cmlnZ2VyX2Z1bmMzKCkgUkVUVVJOUyB0cmlnZ2VyCkBAIC0xMjk0LDkgKzEyNjMsMTEg QEAgJCQ7CiBDUkVBVEUgVFJJR0dFUiBndGVzdDExIEJFRk9SRSBVUERBVEUgT0YgYiBPTiBn dGVzdDI2CiAgIEZPUiBFQUNIIFJPVwogICBFWEVDVVRFIFBST0NFRFVSRSBndGVzdF90cmln Z2VyX2Z1bmMzKCk7CitFUlJPUjogIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5v dCBzdXBwb3J0ZWQgYXMgdHJpZ2dlciBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImIiIGlz IGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgogVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAx IFdIRVJFIGEgPSAwOwotTk9USUNFOiAgT0sKIERST1AgVFJJR0dFUiBndGVzdDExIE9OIGd0 ZXN0MjY7CitFUlJPUjogIHRyaWdnZXIgImd0ZXN0MTEiIGZvciB0YWJsZSAiZ3Rlc3QyNiIg ZG9lcyBub3QgZXhpc3QKIFRSVU5DQVRFIGd0ZXN0MjY7CiAtLSBjaGVjayB0aGF0IG1vZGlm aWNhdGlvbnMgb2Ygc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGluIHRyaWdnZXJzIGRvCiAt LSBub3QgZ2V0IHByb3BhZ2F0ZWQKQEAgLTEzMjAsMTQgKzEyOTEsMTMgQEAgQ1JFQVRFIFRS SUdHRVIgZ3Rlc3QxMl8wMyBCRUZPUkUgVVBEQVRFIE9OIGd0ZXN0MjYKICAgRVhFQ1VURSBQ Uk9DRURVUkUgZ3Rlc3RfdHJpZ2dlcl9mdW5jKCk7CiBJTlNFUlQgSU5UTyBndGVzdDI2IChh KSBWQUxVRVMgKDEpOwogVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAxMSBXSEVSRSBhID0gMTsK LUlORk86ICBndGVzdDEyXzAxOiBCRUZPUkU6IG9sZCA9ICgxLDIpCitJTkZPOiAgZ3Rlc3Qx Ml8wMTogQkVGT1JFOiBvbGQgPSAoMSwpCiBJTkZPOiAgZ3Rlc3QxMl8wMTogQkVGT1JFOiBu ZXcgPSAoMTEsKQotSU5GTzogIGd0ZXN0MTJfMDM6IEJFRk9SRTogb2xkID0gKDEsMikKLUlO Rk86ICBndGVzdDEyXzAzOiBCRUZPUkU6IG5ldyA9ICgxMCwpCitFUlJPUjogIHRyaWdnZXIg bW9kaWZpZWQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHZhbHVlCiBTRUxFQ1QgKiBGUk9N IGd0ZXN0MjYgT1JERVIgQlkgYTsKLSBhICB8IGIgIAotLS0tLSstLS0tCi0gMTAgfCAyMAor IGEgfCBiIAorLS0tKy0tLQorIDEgfCAyCiAoMSByb3cpCiAKIC0tIExJS0UgSU5DTFVESU5H IEdFTkVSQVRFRCBhbmQgZHJvcHBlZCBjb2x1bW4gaGFuZGxpbmcKQEAgLTEzMzUsMjIgKzEz MDUsNzcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjhhICgKICAgYSBpbnQsCiAgIGIgaW50LAog ICBjIGludCwKLSAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRAor ICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTAogKTsKIEFMVEVS IFRBQkxFIGd0ZXN0MjhhIERST1AgQ09MVU1OIGE7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOGIg KExJS0UgZ3Rlc3QyOGEgSU5DTFVESU5HIEdFTkVSQVRFRCk7CiBcZCBndGVzdDI4KgotICAg ICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0Mjhh IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI4 YSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAg ICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGIgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGMgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAotIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIgKiAyKSBzdG9yZWQKKyB4ICAg ICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChiICogMikKIAotICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3Rv cmVkX3Rlc3RzLmd0ZXN0MjhiIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmly dHVhbF90ZXN0cy5ndGVzdDI4YiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGMg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIHggICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIg KiAyKSBzdG9yZWQKKyB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAg fCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChiICogMikKIAorLS0gVE9ETzogZXh0cmEgdGVzdHMg dG8gd2VhdmUgaW50byB0aGUgcmlnaHQgcGxhY2VzCistLSBzdWJsaW5rcworQ1JFQVRFIFRB QkxFIHQyICgKKyAgICBhIGludCwKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMiksCisgICAgZCBpbnQgREVGQVVMVCAyMgorKTsKK0lOU0VSVCBJTlRPIHQyIChhKSBT RUxFQ1QgZyBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgZzsKK1NFTEVDVCBhLCBiLCBk LCAoU0VMRUNUIHQyLmIpIEZST00gdDI7CisgYSAgfCBiICB8IGQgIHwgYiAgCistLS0tKy0t LS0rLS0tLSstLS0tCisgIDEgfCAgMiB8IDIyIHwgIDIKKyAgMiB8ICA0IHwgMjIgfCAgNAor ICAzIHwgIDYgfCAyMiB8ICA2CisgIDQgfCAgOCB8IDIyIHwgIDgKKyAgNSB8IDEwIHwgMjIg fCAxMAorICA2IHwgMTIgfCAyMiB8IDEyCisgIDcgfCAxNCB8IDIyIHwgMTQKKyAgOCB8IDE2 IHwgMjIgfCAxNgorICA5IHwgMTggfCAyMiB8IDE4CisgMTAgfCAyMCB8IDIyIHwgMjAKKygx MCByb3dzKQorCitEUk9QIFRBQkxFIHQyOworLS0gY29sbGF0ZQorLyoKK0NSRUFURSBDT0xM QVRJT04gY2FzZV9pbnNlbnNpdGl2ZSAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICd1bmQt dS1rcy1sZXZlbDInLCBkZXRlcm1pbmlzdGljID0gZmFsc2UpOworQ1JFQVRFIFRBQkxFIHQ1 ICgKKyAgICBhIHRleHQgY29sbGF0ZSAiQyIsCisgICAgYiB0ZXh0IGNvbGxhdGUgIkMiIEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgY29sbGF0ZSBjYXNlX2luc2Vuc2l0aXZlKSAsCisgICAg ZCBpbnQgREVGQVVMVCAyMgorKTsKK0lOU0VSVCBJTlRPIHQ1IChhLCBkKSB2YWx1ZXMgKCdk MScsIDI4KSwgKCdEMicsIDI3KSwgKCdEMScsIDI2KTsKK1NFTEVDVCAqIEZST00gdDUgT1JE RVIgQlkgYiBBU0MsIGQgQVNDOworRFJPUCBUQUJMRSB0NTsKK0RST1AgQ09MTEFUSU9OIGNh c2VfaW5zZW5zaXRpdmU7CisqLworLS0gY29tcG9zaXRlIHR5cGUgZGVwZW5kZW5jaWVzCitD UkVBVEUgVEFCTEUgYXRfdGFiMSAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFT ICgnaGVsbG8nKSwgYyB0ZXh0KTsKK0NSRUFURSBUQUJMRSBhdF90YWIyICh4IGludCwgeSBh dF90YWIxKTsKK0FMVEVSIFRBQkxFIGF0X3RhYjEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJj aGFyOyAgLS0gZmFpbHMKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJhdF90YWIxIiBi ZWNhdXNlIGNvbHVtbiAiYXRfdGFiMi55IiB1c2VzIGl0cyByb3cgdHlwZQorRFJPUCBUQUJM RSBhdF90YWIxLCBhdF90YWIyOworLS0gQ2hlY2sgaXQgZm9yIGEgcGFydGl0aW9uZWQgdGFi bGUsIHRvbworQ1JFQVRFIFRBQkxFIGF0X3RhYjEgKGEgaW50LCBiIHRleHQgR0VORVJBVEVE IEFMV0FZUyBBUyAoJ2hlbGxvJyksIGMgdGV4dCkgUEFSVElUSU9OIEJZIExJU1QgKGEpOwor Q1JFQVRFIFRBQkxFIGF0X3RhYjIgKHggaW50LCB5IGF0X3RhYjEpOworQUxURVIgVEFCTEUg YXRfdGFiMSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBmYWlscworRVJST1I6 ICBjYW5ub3QgYWx0ZXIgdGFibGUgImF0X3RhYjEiIGJlY2F1c2UgY29sdW1uICJhdF90YWIy LnkiIHVzZXMgaXRzIHJvdyB0eXBlCitEUk9QIFRBQkxFIGF0X3RhYjEsIGF0X3RhYjI7Cist LSBhdHRhY2ggbWl4aW5nIGdlbmVyYXRlZCBraW5kcworQ1JFQVRFIFRBQkxFIGJhcjEgKGEg aW50ZWdlciwgYiBpbnRlZ2VyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKDIyKSkgUEFSVElUSU9O IEJZIFJBTkdFIChhKTsKK0NSRUFURSBUQUJMRSBiYXIyIChhIGludGVnZXIsIGIgaW50ZWdl ciBHRU5FUkFURUQgQUxXQVlTIEFTICgyMikgU1RPUkVEKTsKK0FMVEVSIFRBQkxFIGJhcjEg QVRUQUNIIFBBUlRJVElPTiBiYXIyIERFRkFVTFQ7ICAtLSBlcnJvcgorRVJST1I6ICBjb2x1 bW4gImIiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJlbnQga2lu ZAorREVUQUlMOiAgUGFyZW50IGNvbHVtbiBpcyBWSVJUVUFMLCBjaGlsZCBjb2x1bW4gaXMg U1RPUkVELgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggN2E1YTkxMDU2 MmUuLjJlNTY1MzdmMTk0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAg LTY4LDYgKzY4LDkgQEAgdGVzdDogc2VsZWN0X2ludG8gc2VsZWN0X2Rpc3RpbmN0IHNlbGVj dF9kaXN0aW5jdF9vbiBzZWxlY3RfaW1wbGljaXQgc2VsZWN0X2hhdmkKICMgLS0tLS0tLS0t LQogdGVzdDogYnJpbiBnaW4gZ2lzdCBzcGdpc3QgcHJpdmlsZWdlcyBpbml0X3ByaXZzIHNl Y3VyaXR5X2xhYmVsIGNvbGxhdGUgbWF0dmlldyBsb2NrIHJlcGxpY2FfaWRlbnRpdHkgcm93 c2VjdXJpdHkgb2JqZWN0X2FkZHJlc3MgdGFibGVzYW1wbGUgZ3JvdXBpbmdzZXRzIGRyb3Bf b3BlcmF0b3IgcGFzc3dvcmQgaWRlbnRpdHkgZ2VuZXJhdGVkX3N0b3JlZCBqb2luX2hhc2gK IAorIyBUT0RPOiBmaW5kIGEgcGxhY2UgZm9yIHRoaXMgKGFib3ZlIGdyb3VwIGlzIGZ1bGwp Cit0ZXN0OiBnZW5lcmF0ZWRfdmlydHVhbAorCiAjIC0tLS0tLS0tLS0KICMgQWRkaXRpb25h bCBCUklOIHRlc3RzCiAjIC0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Ny ZWF0ZV90YWJsZV9saWtlLnNxbAppbmRleCAwNDAwOGEwMjdiOC4uZGRmODkzZjdlYzMgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwKQEAgLTUx LDcgKzUxLDcgQEAgQ1JFQVRFIFRBQkxFIHRlc3RfbGlrZV9pZF8zIChMSUtFIHRlc3RfbGlr ZV9pZF8xIElOQ0xVRElORyBJREVOVElUWSk7CiBTRUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9p ZF8zOyAgLS0gaWRlbnRpdHkgd2FzIGNvcGllZCBhbmQgYXBwbGllZAogRFJPUCBUQUJMRSB0 ZXN0X2xpa2VfaWRfMSwgdGVzdF9saWtlX2lkXzIsIHRlc3RfbGlrZV9pZF8zOwogCi1DUkVB VEUgVEFCTEUgdGVzdF9saWtlX2dlbl8xIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8xIChh IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwgYyBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRVQUwpOwogXGQgdGVzdF9saWtlX2dl bl8xCiBJTlNFUlQgSU5UTyB0ZXN0X2xpa2VfZ2VuXzEgKGEpIFZBTFVFUyAoMSk7CiBTRUxF Q1QgKiBGUk9NIHRlc3RfbGlrZV9nZW5fMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2Vu ZXJhdGVkX3N0b3JlZC5zcWwKaW5kZXggYzE4ZTBlMWY2NTUuLjM2YTZjMmJkZGJlIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbApAQCAtMSw1ICsx LDUgQEAKIC0tIHNhbml0eSBjaGVjayBvZiBzeXN0ZW0gY2F0YWxvZwotU0VMRUNUIGF0dHJl bGlkLCBhdHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0 Z2VuZXJhdGVkIE5PVCBJTiAoJycsICdzJyk7CitTRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUs IGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9U IElOICgnJywgJ3MnLCAndicpOwogCiAKIENSRUFURSBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3Jl ZF90ZXN0czsKQEAgLTEwMyw2ICsxMDMsMTQgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0bSAoCiBT RUxFQ1QgKiBGUk9NIGd0ZXN0bSBPUkRFUiBCWSBpZDsKIERST1AgVEFCTEUgZ3Rlc3RtOwog CitDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKKyAgYSBpbnQgUFJJTUFSWSBLRVksCisgIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQKKyk7CitJTlNFUlQgSU5UTyBn dGVzdG0gKGEpIFNFTEVDVCBnIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBnOworTUVS R0UgSU5UTyBndGVzdG0gdCBVU0lORyBndGVzdG0gQVMgcyBPTiAyICogdC5hID0gcy5iIFdI RU4gTUFUQ0hFRCBUSEVOIERFTEVURSBSRVRVUk5JTkcgKjsKK0RST1AgVEFCTEUgZ3Rlc3Rt OworCiAtLSB2aWV3cwogQ1JFQVRFIFZJRVcgZ3Rlc3QxdiBBUyBTRUxFQ1QgKiBGUk9NIGd0 ZXN0MTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QxdjsKQEAgLTM5MCw2ICszOTgsMTAgQEAgQ1JF QVRFIERPTUFJTiBndGVzdGRvbWFpbjEgQVMgaW50IENIRUNLIChWQUxVRSA8IDEwKTsKIENS RUFURSBUQUJMRSBndGVzdDI0IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjEg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CiBJTlNFUlQgSU5UTyBndGVz dDI0IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZB TFVFUyAoNik7ICAtLSBlcnJvcgorQ1JFQVRFIFRZUEUgZ3Rlc3Rkb21haW4xcmFuZ2UgQVMg cmFuZ2UgKHN1YnR5cGUgPSBndGVzdGRvbWFpbjEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjRy IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjFyYW5nZSBHRU5FUkFURUQgQUxX QVlTIEFTIChndGVzdGRvbWFpbjFyYW5nZShhLCBhICsgNSkpIFNUT1JFRCk7CitJTlNFUlQg SU5UTyBndGVzdDI0ciAoYSkgVkFMVUVTICg0KTsgIC0tIG9rCitJTlNFUlQgSU5UTyBndGVz dDI0ciAoYSkgVkFMVUVTICg2KTsgIC0tIGVycm9yCiAKIC0tIHR5cGVkIHRhYmxlcyAoY3Vy cmVudGx5IG5vdCBzdXBwb3J0ZWQpCiBDUkVBVEUgVFlQRSBndGVzdF90eXBlIEFTIChmMSBp bnRlZ2VyLCBmMiB0ZXh0LCBmMyBiaWdpbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9n ZW5lcmF0ZWRfdmlydHVhbC5zcWwKc2ltaWxhcml0eSBpbmRleCA2OSUKY29weSBmcm9tIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsCmNvcHkgdG8gc3JjL3Rl c3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCmluZGV4IGMxOGUwZTFmNjU1 Li4zNGI4MDcwYjNlMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJh dGVkX3N0b3JlZC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3Zp cnR1YWwuc3FsCkBAIC0xLDU1ICsxLDU1IEBACiAtLSBzYW5pdHkgY2hlY2sgb2Ygc3lzdGVt IGNhdGFsb2cKLVNFTEVDVCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00g cGdfYXR0cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycpOworU0VM RUNUIGF0dHJlbGlkLCBhdHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUg V0hFUkUgYXR0Z2VuZXJhdGVkIE5PVCBJTiAoJycsICdzJywgJ3YnKTsKIAogCi1DUkVBVEUg U0NIRU1BIGdlbmVyYXRlZF9zdG9yZWRfdGVzdHM7Ci1HUkFOVCBVU0FHRSBPTiBTQ0hFTUEg Z2VuZXJhdGVkX3N0b3JlZF90ZXN0cyBUTyBQVUJMSUM7Ci1TRVQgc2VhcmNoX3BhdGggPSBn ZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzOworQ1JFQVRFIFNDSEVNQSBnZW5lcmF0ZWRfdmlydHVh bF90ZXN0czsKK0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0 cyBUTyBQVUJMSUM7CitTRVQgc2VhcmNoX3BhdGggPSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0 czsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBTVE9SRUQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MSAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBT VE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVz dDEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTCk7CiAKLVNFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29sdW1u X2RlZmF1bHQsIGlzX251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdlbmVyYXRpb25fZXhwcmVz c2lvbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdIRVJFIHRhYmxlX3NjaGVt YSA9ICdnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzJyBPUkRFUiBCWSAxLCAyOworU0VMRUNUIHRh YmxlX25hbWUsIGNvbHVtbl9uYW1lLCBjb2x1bW5fZGVmYXVsdCwgaXNfbnVsbGFibGUsIGlz X2dlbmVyYXRlZCwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIEZST00gaW5mb3JtYXRpb25fc2No ZW1hLmNvbHVtbnMgV0hFUkUgdGFibGVfc2NoZW1hID0gJ2dlbmVyYXRlZF92aXJ0dWFsX3Rl c3RzJyBPUkRFUiBCWSAxLCAyOwogCi1TRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUs IGRlcGVuZGVudF9jb2x1bW4gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uX2NvbHVt bl91c2FnZSBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycg T1JERVIgQlkgMSwgMiwgMzsKK1NFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVw ZW5kZW50X2NvbHVtbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5fY29sdW1uX3Vz YWdlIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cycgT1JE RVIgQlkgMSwgMiwgMzsKIAogXGQgZ3Rlc3QxCiAKIC0tIGR1cGxpY2F0ZSBnZW5lcmF0ZWQK LUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDMpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzEgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMykgVklSVFVBTCk7CiAKIC0tIHJlZmVyZW5jZXMgdG8g b3RoZXIgZ2VuZXJhdGVkIGNvbHVtbnMsIGluY2x1ZGluZyBzZWxmLXJlZmVyZW5jZXMKLUNS RUFURSBUQUJMRSBndGVzdF9lcnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9l cnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMikgU1RPUkVELCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMykgU1RPUkVE KTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzJiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAz KSBWSVJUVUFMKTsKIC0tIGEgd2hvbGUtcm93IHZhciBpcyBhIHNlbGYtcmVmZXJlbmNlIG9u IHN0ZXJvaWRzLCBzbyBkaXNhbGxvdyB0aGF0IHRvbwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vy cl8yYyAoYSBpbnQgUFJJTUFSWSBLRVksCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIFNUT1JFRCk7CisgICAgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIFZJUlRVQUwpOwogCiAt LSBpbnZhbGlkIHJlZmVyZW5jZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8zIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDIpIFNUT1JFRCk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChjICogMikgVklSVFVBTCk7CiAKIC0tIGdlbmVyYXRpb24g ZXhwcmVzc2lvbiBtdXN0IGJlIGltbXV0YWJsZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80 IChhIGludCBQUklNQVJZIEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdB WVMgQVMgKHJhbmRvbSgpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80IChh IGludCBQUklNQVJZIEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdBWVMg QVMgKHJhbmRvbSgpKSBWSVJUVUFMKTsKIC0tIC4uLiBidXQgYmUgc3VyZSB0aGF0IHRoZSBp bW11dGFiaWxpdHkgdGVzdCBpcyBhY2N1cmF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBp bnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcgc2VjJykgU1RPUkVEKTsK K0NSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSB8fCAnIHNlYycpIFZJUlRVQUwpOwogRFJPUCBUQUJMRSBndGVzdDI7CiAKIC0tIGNh bm5vdCBoYXZlIGRlZmF1bHQvaWRlbnRpdHkgYW5kIGdlbmVyYXRlZAotQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9l cnJfNWIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIGlk ZW50aXR5IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rl c3RfZXJyXzViIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyBpZGVudGl0eSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiAKIC0t IHJlZmVyZW5jZSB0byBzeXN0ZW0gY29sdW1uIG5vdCBhbGxvd2VkIGluIGdlbmVyYXRlZCBj b2x1bW4KIC0tIChleGNlcHQgdGFibGVvaWQsIHdoaWNoIHdlIHRlc3QgYmVsb3cpCi1DUkVB VEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChhIGludCBQUklNQVJZIEtFWSwgYiBib29sIEdFTkVS QVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rl c3RfZXJyXzZhIChhIGludCBQUklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMg QVMgKHhtaW4gPD4gMzcpIFZJUlRVQUwpOwogCiAtLSB2YXJpb3VzIHByb2hpYml0ZWQgY29u c3RydWN0cwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGF2ZyhhKSkgU1RPUkVEKTsKLUNSRUFURSBU QUJMRSBndGVzdF9lcnJfN2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChyb3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgYSkpIFNUT1JFRCk7Ci1D UkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdjIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoKFNFTEVDVCBhKSkgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBn dGVzdF9lcnJfN2QgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChnZW5lcmF0ZV9zZXJpZXMoMSwgYSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rl c3RfZXJyXzdhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYXZnKGEpKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2IgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChyb3dfbnVtYmVyKCkg T1ZFUiAoT1JERVIgQlkgYSkpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83 YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChTRUxF Q1QgYSkpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83ZCAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3Nlcmllcygx LCBhKSkgVklSVFVBTCk7CiAKIC0tIEdFTkVSQVRFRCBCWSBERUZBVUxUIG5vdCBhbGxvd2Vk Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQlkgREVGQVVMVCBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQlkgREVG QVVMVCBBUyAoYSAqIDIpIFZJUlRVQUwpOwogCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVT ICgxKTsKIElOU0VSVCBJTlRPIGd0ZXN0MSBWQUxVRVMgKDIsIERFRkFVTFQpOyAgLS0gb2sK QEAgLTcwLDcgKzcwLDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl84IChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgKGEgKgogU0VMRUNUIGEs IGIsIGIgKiAyIEFTIGIyIEZST00gZ3Rlc3QxIE9SREVSIEJZIGE7CiBTRUxFQ1QgYSwgYiBG Uk9NIGd0ZXN0MSBXSEVSRSBiID0gNCBPUkRFUiBCWSBhOwogCi0tLSB0ZXN0IHRoYXQgb3Zl cmZsb3cgZXJyb3IgaGFwcGVucyBvbiB3cml0ZQorLS0gdGVzdCB0aGF0IG92ZXJmbG93IGVy cm9yIGhhcHBlbnMgb24gcmVhZAogSU5TRVJUIElOVE8gZ3Rlc3QxIFZBTFVFUyAoMjAwMDAw MDAwMCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MTsKIERFTEVURSBGUk9NIGd0ZXN0MSBXSEVS RSBhID0gMjAwMDAwMDAwMDsKQEAgLTkzLDggKzkzLDggQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0 bSAoCiAgIGlkIGludCBQUklNQVJZIEtFWSwKICAgZjEgaW50LAogICBmMiBpbnQsCi0gIGYz IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMSAqIDIpIFNUT1JFRCwKLSAgZjQgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVECisgIGYzIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChmMSAqIDIpIFZJUlRVQUwsCisgIGY0IGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChmMiAqIDIpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdG0gVkFMVUVTICgx LCA1LCAxMDApOwogTUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyAoVkFMVUVTICgxLCAxMCks ICgyLCAyMCkpIHYoaWQsIGYxKSBPTiB0LmlkID0gdi5pZApAQCAtMTAzLDYgKzEwMywxNCBA QCBDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKIFNFTEVDVCAqIEZST00gZ3Rlc3RtIE9SREVSIEJZ IGlkOwogRFJPUCBUQUJMRSBndGVzdG07CiAKK0NSRUFURSBUQUJMRSBndGVzdG0gKAorICBh IGludCBQUklNQVJZIEtFWSwKKyAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFZJUlRVQUwKKyk7CitJTlNFUlQgSU5UTyBndGVzdG0gKGEpIFNFTEVDVCBnIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEwKSBnOworTUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyBndGVz dG0gQVMgcyBPTiAyICogdC5hID0gcy5iIFdIRU4gTUFUQ0hFRCBUSEVOIERFTEVURSBSRVRV Uk5JTkcgKjsKK0RST1AgVEFCTEUgZ3Rlc3RtOworCiAtLSB2aWV3cwogQ1JFQVRFIFZJRVcg Z3Rlc3QxdiBBUyBTRUxFQ1QgKiBGUk9NIGd0ZXN0MTsKIFNFTEVDVCAqIEZST00gZ3Rlc3Qx djsKQEAgLTEzNCwyMiArMTQyLDI2IEBAIENSRUFURSBUQUJMRSBndGVzdDFfMSAoKSBJTkhF UklUUyAoZ3Rlc3QxKTsKIAogLS0gY2FuJ3QgaGF2ZSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQg aXMgYSBjaGlsZCBvZiBub3JtYWwgY29sdW1uCiBDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFs IChhIGludCwgYiBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBp bnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpIElOSEVSSVRT IChndGVzdF9ub3JtYWwpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxf Y2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVE KTsKK0NSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCkgSU5IRVJJVFMgKGd0ZXN0X25vcm1h bCk7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQs IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRB QkxFIGd0ZXN0X25vcm1hbF9jaGlsZCBJTkhFUklUIGd0ZXN0X25vcm1hbDsgIC0tIGVycm9y CiBEUk9QIFRBQkxFIGd0ZXN0X25vcm1hbCwgZ3Rlc3Rfbm9ybWFsX2NoaWxkOwogCiAtLSB0 ZXN0IGluaGVyaXRhbmNlIG1pc21hdGNoZXMgYmV0d2VlbiBwYXJlbnQgYW5kIGNoaWxkCiBD UkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgREVGQVVMVCAxMCkgSU5IRVJJVFMg KGd0ZXN0MSk7ICAtLSBlcnJvcgogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkpIElOSEVSSVRTIChndGVzdDEpOyAgLS0g ZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMjIpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywgb3Zl cnJpZGVzIHBhcmVudAorQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0t IGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIyKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIG9rLCBv dmVycmlkZXMgcGFyZW50CiBcZCsgZ3Rlc3R4CitJTlNFUlQgSU5UTyBndGVzdHggKGEsIHgp IFZBTFVFUyAoMTEsIDIyKTsKK1NFTEVDVCAqIEZST00gZ3Rlc3QxOworU0VMRUNUICogRlJP TSBndGVzdHg7CiAKIENSRUFURSBUQUJMRSBndGVzdHh4XzEgKGEgaW50IE5PVCBOVUxMLCBi IGludCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzEgSU5IRVJJVCBndGVzdDE7ICAtLSBlcnJv cgotQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfMyAoYSBpbnQgTk9UIE5VTEwsIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0eHhf MyAoYSBpbnQgTk9UIE5VTEwsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBW SVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0eHhfMyBJTkhFUklUIGd0ZXN0MTsgIC0tIG9r Ci1DUkVBVEUgVEFCTEUgZ3Rlc3R4eF80IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMikgU1RPUkVELCBhIGludCBOT1QgTlVMTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3R4eF80 IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCwgYSBpbnQgTk9U IE5VTEwpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF80IElOSEVSSVQgZ3Rlc3QxOyAgLS0gb2sK IAogLS0gdGVzdCBtdWx0aXBsZSBpbmhlcml0YW5jZSBtaXNtYXRjaGVzCkBAIC0xNjEsMjgg KzE3MywyOCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQpOwogQ1JFQVRF IFRBQkxFIGd0ZXN0MV95ICgpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBlcnJv cgogRFJPUCBUQUJMRSBndGVzdHk7CiAKLUNSRUFURSBUQUJMRSBndGVzdHkgKHggaW50LCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMjIpIFNUT1JFRCk7CitDUkVBVEUgVEFC TEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIyKSBW SVJUVUFMKTsKIENSRUFURSBUQUJMRSBndGVzdDFfeSAoKSBJTkhFUklUUyAoZ3Rlc3QxLCBn dGVzdHkpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdDFfeSAoYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoeCArIDEpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5 KTsgIC0tIG9rCitDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKHggKyAxKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0g b2sKIFxkIGd0ZXN0MV95CiAKIC0tIHRlc3QgY29ycmVjdCBoYW5kbGluZyBvZiBHRU5FUkFU RUQgY29sdW1uIHRoYXQncyBvbmx5IGluIGNoaWxkCiBDUkVBVEUgVEFCTEUgZ3Rlc3RwIChm MSBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0YyAoZjIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYxKzEpIFNUT1JFRCkgSU5IRVJJVFMoZ3Rlc3RwKTsKK0NSRUFURSBUQUJMRSBndGVz dGMgKGYyIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMSsxKSBWSVJUVUFMKSBJTkhFUklU UyhndGVzdHApOwogSU5TRVJUIElOVE8gZ3Rlc3RjIHZhbHVlcyg0Mik7CiBUQUJMRSBndGVz dGM7CiBVUERBVEUgZ3Rlc3RwIFNFVCBmMSA9IGYxICogMTA7CiBUQUJMRSBndGVzdGM7CiBE Uk9QIFRBQkxFIGd0ZXN0cCBDQVNDQURFOwogCi0tLSB0ZXN0IHN0b3JlZCB1cGRhdGUKLUNS RUFURSBUQUJMRSBndGVzdDMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMykgU1RPUkVEKTsKKy0tIHRlc3QgdXBkYXRlIFhYWAorQ1JFQVRFIFRBQkxFIGd0ZXN0 MyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFMKTsK IElOU0VSVCBJTlRPIGd0ZXN0MyAoYSkgVkFMVUVTICgxKSwgKDIpLCAoMyksIChOVUxMKTsK IFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiBVUERBVEUgZ3Rlc3QzIFNFVCBh ID0gMjIgV0hFUkUgYSA9IDI7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBhOwog Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QzYSAoYSB0ZXh0LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSB8fCAnKycgfHwgYSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDNhIChh IHRleHQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcrJyB8fCBhKSBWSVJU VUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0M2EgKGEpIFZBTFVFUyAoJ2EnKSwgKCdiJyksICgn YycpLCAoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0M2EgT1JERVIgQlkgYTsKIFVQREFU RSBndGVzdDNhIFNFVCBhID0gJ2JiJyBXSEVSRSBhID0gJ2InOwpAQCAtMjIyLDEyICsyMzQs MTIgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0M2EgKGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgfHwgJysnIHx8IGEpIFNUT1JFRCkKIFNFTEVDVCAqIEZST00gZ3Rlc3Qz IE9SREVSIEJZIGE7CiAKIC0tIG51bGwgdmFsdWVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoTlVMTCkgU1RP UkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChOVUxMKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0 MiBWQUxVRVMgKDEpOwogU0VMRUNUICogRlJPTSBndGVzdDI7CiAKIC0tIHNpbXBsZSBjb2x1 bW4gcmVmZXJlbmNlIGZvciB2YXJsZW5hIHR5cGVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfdmFy bGVuYSAoYSB2YXJjaGFyLCBiIHZhcmNoYXIgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSkgU1RP UkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF92YXJsZW5hIChhIHZhcmNoYXIsIGIgdmFyY2hh ciBHRU5FUkFURUQgQUxXQVlTIEFTIChhKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0 X3ZhcmxlbmEgKGEpIFZBTFVFUygnMDEyMzQ1Njc4OTAxMjM0NTY3ODknKTsKIElOU0VSVCBJ TlRPIGd0ZXN0X3ZhcmxlbmEgKGEpIFZBTFVFUyhOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rl c3RfdmFybGVuYSBPUkRFUiBCWSBhOwpAQCAtMjM3LDcgKzI0OSw3IEBAIENSRUFURSBUQUJM RSBndGVzdF92YXJsZW5hIChhIHZhcmNoYXIsIGIgdmFyY2hhciBHRU5FUkFURUQgQUxXQVlT IEFTIChhKSBTVE9SRUQpCiBDUkVBVEUgVFlQRSBkb3VibGVfaW50IGFzIChhIGludCwgYiBp bnQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0NCAoCiAgICAgYSBpbnQsCi0gICAgYiBkb3VibGVf aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICogMiwgYSAqIDMpKSBTVE9SRUQKKyAgICBi IGRvdWJsZV9pbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKiAyLCBhICogMykpIFZJUlRV QUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdDQgVkFMVUVTICgxKSwgKDYpOwogU0VMRUNUICog RlJPTSBndGVzdDQ7CkBAIC0yNDgsMTY4ICsyNjAsMTcyIEBAIENSRUFURSBUQUJMRSBndGVz dDQgKAogLS0gdXNpbmcgdGFibGVvaWQgaXMgYWxsb3dlZAogQ1JFQVRFIFRBQkxFIGd0ZXN0 X3RhYmxlb2lkICgKICAgYSBpbnQgUFJJTUFSWSBLRVksCi0gIGIgYm9vbCBHRU5FUkFURUQg QUxXQVlTIEFTICh0YWJsZW9pZCA9ICdndGVzdF90YWJsZW9pZCc6OnJlZ2NsYXNzKSBTVE9S RUQKKyAgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkID0gJ2d0ZXN0X3Rh Ymxlb2lkJzo6cmVnY2xhc3MpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdF90YWJs ZW9pZCBWQUxVRVMgKDEpLCAoMik7CiBBTFRFUiBUQUJMRSBndGVzdF90YWJsZW9pZCBBREQg Q09MVU1OCi0gIGMgcmVnY2xhc3MgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQpIFNU T1JFRDsKKyAgYyByZWdjbGFzcyBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCkgVklS VFVBTDsKIFNFTEVDVCAqIEZST00gZ3Rlc3RfdGFibGVvaWQ7CiAKIC0tIGRyb3AgY29sdW1u IGJlaGF2aW9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVEKTsKK0NSRUFU RSBUQUJMRSBndGVzdDEwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTAg RFJPUCBDT0xVTU4gYjsgIC0tIGZhaWxzCiBBTFRFUiBUQUJMRSBndGVzdDEwIERST1AgQ09M VU1OIGIgQ0FTQ0FERTsgIC0tIGRyb3BzIGMgdG9vCiAKIFxkIGd0ZXN0MTAKIAotQ1JFQVRF IFRBQkxFIGd0ZXN0MTBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMGEgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVB TCk7CiBBTFRFUiBUQUJMRSBndGVzdDEwYSBEUk9QIENPTFVNTiBiOwogSU5TRVJUIElOVE8g Z3Rlc3QxMGEgKGEpIFZBTFVFUyAoMSk7CiAKIC0tIHByaXZpbGVnZXMKIENSRUFURSBVU0VS IHJlZ3Jlc3NfdXNlcjExOwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxMXMgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JF RCk7Ci1JTlNFUlQgSU5UTyBndGVzdDExcyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKLUdS QU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rlc3QxMXMgVE8gcmVncmVzc191c2VyMTE7CitDUkVB VEUgVEFCTEUgZ3Rlc3QxMXYgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwpOworSU5TRVJUIElOVE8gZ3Rlc3Qx MXYgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7CitHUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0 ZXN0MTF2IFRPIHJlZ3Jlc3NfdXNlcjExOwogCiBDUkVBVEUgRlVOQ1RJT04gZ2YxKGEgaW50 KSBSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgYSAqIDMgJCQgSU1NVVRBQkxFIExBTkdVQUdF IFNRTDsKIFJFVk9LRSBBTEwgT04gRlVOQ1RJT04gZ2YxKGludCkgRlJPTSBQVUJMSUM7CiAK LUNSRUFURSBUQUJMRSBndGVzdDEycyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZjEoYikpIFNUT1JFRCk7Ci1JTlNFUlQgSU5UTyBn dGVzdDEycyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKK0NSRUFURSBUQUJMRSBndGVzdDEy diAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChnZjEoYikpIFZJUlRVQUwpOworSU5TRVJUIElOVE8gZ3Rlc3QxMnYgVkFMVUVTICgxLCAx MCksICgyLCAyMCk7CiBHUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTJzIFRPIHJlZ3Jl c3NfdXNlcjExOwogCiBTRVQgUk9MRSByZWdyZXNzX3VzZXIxMTsKLVNFTEVDVCBhLCBiIEZS T00gZ3Rlc3QxMXM7ICAtLSBub3QgYWxsb3dlZAotU0VMRUNUIGEsIGMgRlJPTSBndGVzdDEx czsgIC0tIGFsbG93ZWQKK1NFTEVDVCBhLCBiIEZST00gZ3Rlc3QxMXY7ICAtLSBub3QgYWxs b3dlZAorU0VMRUNUIGEsIGMgRlJPTSBndGVzdDExdjsgIC0tIGFsbG93ZWQKIFNFTEVDVCBn ZjEoMTApOyAgLS0gbm90IGFsbG93ZWQKLVNFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMnM7ICAt LSBhbGxvd2VkCitTRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTJ2OyAgLS0gbm90IGFsbG93ZWQ7 IFRPRE86IG91Z2h0IHRvIGJlIGFsbG93ZWQKIFJFU0VUIFJPTEU7CiAKIERST1AgRlVOQ1RJ T04gZ2YxKGludCk7ICAtLSBmYWlsCi1EUk9QIFRBQkxFIGd0ZXN0MTFzLCBndGVzdDEyczsK K0RST1AgVEFCTEUgZ3Rlc3QxMXYsIGd0ZXN0MTJ2OwogRFJPUCBGVU5DVElPTiBnZjEoaW50 KTsKIERST1AgVVNFUiByZWdyZXNzX3VzZXIxMTsKIAogLS0gY2hlY2sgY29uc3RyYWludHMK LUNSRUFURSBUQUJMRSBndGVzdDIwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBDSEVDSyAoYiA8IDUwKSk7CitDUkVBVEUg VEFCTEUgZ3Rlc3QyMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMIENIRUNLIChiIDwgNTApKTsKIElOU0VSVCBJTlRPIGd0 ZXN0MjAgKGEpIFZBTFVFUyAoMTApOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEp IFZBTFVFUyAoMzApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogCiBBTFRFUiBUQUJMRSBn dGVzdDIwIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMTAwKTsgIC0t IHZpb2xhdGVzIGNvbnN0cmFpbnQKIEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1O IGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsgIC0tIG9rCiAKLUNSRUFURSBUQUJMRSBn dGVzdDIwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjBhIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogSU5T RVJUIElOVE8gZ3Rlc3QyMGEgKGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3Qy MGEgKGEpIFZBTFVFUyAoMzApOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENIRUNLIChi IDwgNTApOyAgLS0gZmFpbHMgb24gZXhpc3Rpbmcgcm93CiAKLUNSRUFURSBUQUJMRSBndGVz dDIwYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjBiIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogSU5TRVJU IElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIg KGEpIFZBTFVFUyAoMzApOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGIgQUREIENPTlNUUkFJTlQg Y2hrIENIRUNLIChiIDwgNTApIE5PVCBWQUxJRDsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBiIFZB TElEQVRFIENPTlNUUkFJTlQgY2hrOyAgLS0gZmFpbHMgb24gZXhpc3Rpbmcgcm93CiAKLS0t IG5vdC1udWxsIGNvbnN0cmFpbnRzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMWEgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFNU T1JFRCBOT1QgTlVMTCk7Ci1JTlNFUlQgSU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgxKTsg IC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xh dGVzIGNvbnN0cmFpbnQKKy0tIG5vdC1udWxsIGNvbnN0cmFpbnRzIChjdXJyZW50bHkgbm90 IHN1cHBvcnRlZCkKK0NSRUFURSBUQUJMRSBndGVzdDIxYSAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCBOT1Qg TlVMTCk7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sK Ky0tSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBj b25zdHJhaW50CiAKLUNSRUFURSBUQUJMRSBndGVzdDIxYiAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgU1RPUkVEKTsKK0NS RUFURSBUQUJMRSBndGVzdDIxYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVz dDIxYiBBTFRFUiBDT0xVTU4gYiBTRVQgTk9UIE5VTEw7Ci1JTlNFUlQgSU5UTyBndGVzdDIx YiAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFM VUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy MWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkg VkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEFMVEVSIFRBQkxFIGd0ZXN0 MjFiIEFMVEVSIENPTFVNTiBiIERST1AgTk9UIE5VTEw7Ci1JTlNFUlQgSU5UTyBndGVzdDIx YiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5vdworLS1JTlNFUlQgSU5UTyBndGVzdDIxYiAo YSkgVkFMVUVTICgwKTsgIC0tIG9rIG5vdwogCiAtLSBpbmRleCBjb25zdHJhaW50cwotQ1JF QVRFIFRBQkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAvIDIpIFNUT1JFRCBVTklRVUUpOwotSU5TRVJUIElOVE8gZ3Rlc3Qy MmEgVkFMVUVTICgyKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoMyk7Ci1JTlNF UlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJiIChh IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFNUT1JFRCwgUFJJTUFS WSBLRVkgKGEsIGIpKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7Ci1JTlNF UlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjJhIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFZJ UlRVQUwgVU5JUVVFKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgyKTsKKy0t SU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgzKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy MmEgVkFMVUVTICg0KTsKK0NSRUFURSBUQUJMRSBndGVzdDIyYiAoYSBpbnQsIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSBWSVJUVUFMLCBQUklNQVJZIEtFWSAoYSwgYikp OworLS1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOworLS1JTlNFUlQgSU5UTyBn dGVzdDIyYiBWQUxVRVMgKDIpOwogCiAtLSBpbmRleGVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3Qy MmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsK LUNSRUFURSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVzdDIyYyAoYik7Ci1DUkVBVEUg SU5ERVggZ3Rlc3QyMmNfZXhwcl9pZHggT04gZ3Rlc3QyMmMgKChiICogMykpOwotQ1JFQVRF IElOREVYIGd0ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJjIChhKSBXSEVSRSBiID4gMDsK LVxkIGd0ZXN0MjJjCi0KLUlOU0VSVCBJTlRPIGd0ZXN0MjJjIFZBTFVFUyAoMSksICgyKSwg KDMpOwotU0VUIGVuYWJsZV9zZXFzY2FuIFRPIG9mZjsKLVNFVCBlbmFibGVfYml0bWFwc2Nh biBUTyBvZmY7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMg V0hFUkUgYiA9IDQ7Ci1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0OwotRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0g NjsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSA2OwotRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4g MDsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwotCi1B TFRFUiBUQUJMRSBndGVzdDIyYyBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAo YSAqIDQpOwotQU5BTFlaRSBndGVzdDIyYzsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMg V0hFUkUgYiA9IDg7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3Qy MmMgV0hFUkUgYiAqIDMgPSAxMjsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAq IDMgPSAxMjsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBX SEVSRSBhID0gMSBBTkQgYiA+IDA7Ci1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEg PSAxIEFORCBiID4gMDsKLVJFU0VUIGVuYWJsZV9zZXFzY2FuOwotUkVTRVQgZW5hYmxlX2Jp dG1hcHNjYW47CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CistLUNSRUFURSBJTkRFWCBndGVzdDIy Y19iX2lkeCBPTiBndGVzdDIyYyAoYik7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19leHBy X2lkeCBPTiBndGVzdDIyYyAoKGIgKiAzKSk7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19w cmVkX2lkeCBPTiBndGVzdDIyYyAoYSkgV0hFUkUgYiA+IDA7CistLVxkIGd0ZXN0MjJjCisK Ky0tSU5TRVJUIElOVE8gZ3Rlc3QyMmMgVkFMVUVTICgxKSwgKDIpLCAoMyk7CistLVNFVCBl bmFibGVfc2Vxc2NhbiBUTyBvZmY7CistLVNFVCBlbmFibGVfYml0bWFwc2NhbiBUTyBvZmY7 CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBi ID0gNDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKKy0tRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsK Ky0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDY7CistLUVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+ IDA7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwor CistLUFMVEVSIFRBQkxFIGd0ZXN0MjJjIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9O IEFTIChhICogNCk7CistLUFOQUxZWkUgZ3Rlc3QyMmM7CistLUVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKKy0tU0VMRUNUICogRlJP TSBndGVzdDIyYyBXSEVSRSBiID0gODsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7CistLVNFTEVDVCAqIEZST00gZ3Rl c3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKKy0tU0VMRUNUICogRlJP TSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7CistLVJFU0VUIGVuYWJsZV9zZXFz Y2FuOworLS1SRVNFVCBlbmFibGVfYml0bWFwc2NhbjsKIAogLS0gZm9yZWlnbiBrZXlzCiBD UkVBVEUgVEFCTEUgZ3Rlc3QyM2EgKHggaW50IFBSSU1BUlkgS0VZLCB5IGludCk7Ci1JTlNF UlQgSU5UTyBndGVzdDIzYSBWQUxVRVMgKDEsIDExKSwgKDIsIDIyKSwgKDMsIDMzKTsKKy0t SU5TRVJUIElOVE8gZ3Rlc3QyM2EgVkFMVUVTICgxLCAxMSksICgyLCAyMiksICgzLCAzMyk7 CiAKLUNSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAo eCkgT04gVVBEQVRFIENBU0NBREUpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdDIz eCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gREVMRVRFIFNFVCBOVUxMKTsg IC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBSRUZFUkVOQ0VTIGd0 ZXN0MjNhICh4KSBPTiBVUERBVEUgQ0FTQ0FERSk7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxF IGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gREVMRVRFIFNF VCBOVUxMKTsgIC0tIGVycm9yCiAKLUNSRUFURSBUQUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVG RVJFTkNFUyBndGVzdDIzYSAoeCkpOwotXGQgZ3Rlc3QyM2IKK0NSRUFURSBUQUJMRSBndGVz dDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBWSVJUVUFMIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpKTsKKy0tXGQgZ3Rlc3QyM2IK IAotSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5U TyBndGVzdDIzYiBWQUxVRVMgKDUpOyAgLS0gZXJyb3IKLUFMVEVSIFRBQkxFIGd0ZXN0MjNi IEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNSk7IC0tIGVycm9yCi1B TFRFUiBUQUJMRSBndGVzdDIzYiBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAo YSAqIDEpOyAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDEpOyAgLS0g b2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICg1KTsgIC0tIGVycm9yCistLUFM VEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChh ICogNSk7IC0tIGVycm9yCistLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBi IFNFVCBFWFBSRVNTSU9OIEFTIChhICogMSk7IC0tIG9rCiAKLURST1AgVEFCTEUgZ3Rlc3Qy M2I7Ci1EUk9QIFRBQkxFIGd0ZXN0MjNhOworLS1EUk9QIFRBQkxFIGd0ZXN0MjNiOworLS1E Uk9QIFRBQkxFIGd0ZXN0MjNhOwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHggaW50LCB5 IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMikgU1RPUkVELCBQUklNQVJZIEtFWSAo eSkpOwotSU5TRVJUIElOVE8gZ3Rlc3QyM3AgVkFMVUVTICgxKSwgKDIpLCAoMyk7CitDUkVB VEUgVEFCTEUgZ3Rlc3QyM3AgKHggaW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4 ICogMikgVklSVFVBTCwgUFJJTUFSWSBLRVkgKHkpKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy M3AgVkFMVUVTICgxKSwgKDIpLCAoMyk7CiAKIENSRUFURSBUQUJMRSBndGVzdDIzcSAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IFJFRkVSRU5DRVMgZ3Rlc3QyM3AgKHkpKTsKLUlOU0VS VCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMSwgMik7ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rl c3QyM3EgVkFMVUVTICgyLCA1KTsgIC0tIGVycm9yCistLUlOU0VSVCBJTlRPIGd0ZXN0MjNx IFZBTFVFUyAoMSwgMik7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIzcSBWQUxVRVMg KDIsIDUpOyAgLS0gZXJyb3IKIAogLS0gZG9tYWlucwogQ1JFQVRFIERPTUFJTiBndGVzdGRv bWFpbjEgQVMgaW50IENIRUNLIChWQUxVRSA8IDEwKTsKLUNSRUFURSBUQUJMRSBndGVzdDI0 IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFNUT1JFRCk7Ci1JTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDQp OyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJv cgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9t YWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CistLUlOU0VSVCBJ TlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNCk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVz dDI0IChhKSBWQUxVRVMgKDYpOyAgLS0gZXJyb3IKK0NSRUFURSBUWVBFIGd0ZXN0ZG9tYWlu MXJhbmdlIEFTIHJhbmdlIChzdWJ0eXBlID0gZ3Rlc3Rkb21haW4xKTsKK0NSRUFURSBUQUJM RSBndGVzdDI0ciAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4xcmFuZ2UgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZ3Rlc3Rkb21haW4xcmFuZ2UoYSwgYSArIDUpKSBWSVJUVUFM KTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyNHIgKGEpIFZBTFVFUyAoNCk7ICAtLSBvaworLS1J TlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFMVUVTICg2KTsgIC0tIGVycm9yCiAKIC0tIHR5 cGVkIHRhYmxlcyAoY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQpCiBDUkVBVEUgVFlQRSBndGVz dF90eXBlIEFTIChmMSBpbnRlZ2VyLCBmMiB0ZXh0LCBmMyBiaWdpbnQpOwotQ1JFQVRFIFRB QkxFIGd0ZXN0MjggT0YgZ3Rlc3RfdHlwZSAoZjEgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBB TFdBWVMgQVMgKGYyICoyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjggT0YgZ3Rl c3RfdHlwZSAoZjEgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICoyKSBW SVJUVUFMKTsKIERST1AgVFlQRSBndGVzdF90eXBlIENBU0NBREU7CiAKIC0tIHBhcnRpdGlv bmluZyBjYXNlcwogQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVM TCwgZjIgYmlnaW50LCBmMyBiaWdpbnQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOwogQ1JF QVRFIFRBQkxFIGd0ZXN0X2NoaWxkIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAotICAg IGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRAor ICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRV QUwKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wNy0wMScpIFRPICgnMjAxNi0wOC0wMScp OyAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIChmMSBkYXRlIE5PVCBOVUxM LCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNU T1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgKGYxIGRhdGUgTk9UIE5VTEwsIGYy IGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVB TCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9j aGlsZCBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykgVE8gKCcyMDE2LTA4LTAxJyk7 IC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0X3BhcmVudCwgZ3Rlc3RfY2hpbGQ7CiAKLUNS RUFURSBUQUJMRSBndGVzdF9wYXJlbnQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwg ZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJ T04gQlkgUkFOR0UgKGYxKTsKK0NSRUFURSBUQUJMRSBndGVzdF9wYXJlbnQgKGYxIGRhdGUg Tk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMSk7CiBDUkVBVEUgVEFCTEUg Z3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudAogICBGT1IgVkFMVUVTIEZS T00gKCcyMDE2LTA3LTAxJykgVE8gKCcyMDE2LTA4LTAxJyk7ICAtLSBpbmhlcml0cyBnZW4g ZXhwcgogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMiBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFy ZW50ICgKLSAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAy MikgU1RPUkVEICAtLSBvdmVycmlkZXMgZ2VuIGV4cHIKKyAgICBmMyBXSVRIIE9QVElPTlMg R0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyMikgVklSVFVBTCAgLS0gb3ZlcnJpZGVzIGdl biBleHByCiApIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDgtMDEnKSBUTyAoJzIwMTYtMDkt MDEnKTsKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3Bh cmVudCAoCiAgICAgZjMgREVGQVVMVCA0MiAgLS0gZXJyb3IKQEAgLTQxNyw2ICs0MzMsOSBA QCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQg KAogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50 ICgKICAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSAg LS0gZXJyb3IKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0x MC0wMScpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3Rf cGFyZW50ICgKKyAgICBmMyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCAg LS0gZXJyb3IKKykgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0x MC0wMScpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwg ZjIgYmlnaW50LCBmMyBiaWdpbnQpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFD SCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEn KSBUTyAoJzIwMTYtMTAtMDEnKTsgLS0gZXJyb3IKIERST1AgVEFCTEUgZ3Rlc3RfY2hpbGQz OwpAQCAtNDI2LDcgKzQ0NSw3IEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRh dGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IERFRkFVTFQgNDIpOwogQ1JFQVRF IFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBi aWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSk7CiBBTFRFUiBUQUJMRSBndGVz dF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9N ICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOyAtLSBlcnJvcgogRFJPUCBUQUJM RSBndGVzdF9jaGlsZDM7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5P VCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAq IDMzKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1Qg TlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAz MykgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElP TiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAx Ni0xMC0wMScpOwogXGQgZ3Rlc3RfY2hpbGQKIFxkIGd0ZXN0X2NoaWxkMgpAQCAtNDU3LDIx ICs0NzYsMjEgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVM TCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0EKIC0tIHdlIGxlYXZlIHRo ZXNlIHRhYmxlcyBhcm91bmQgZm9yIHB1cnBvc2VzIG9mIHRlc3RpbmcgZHVtcC9yZWxvYWQv dXBncmFkZQogCiAtLSBnZW5lcmF0ZWQgY29sdW1ucyBpbiBwYXJ0aXRpb24ga2V5IChub3Qg YWxsb3dlZCkKLUNSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVM TCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBT VE9SRUQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjMpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X3Bh cnRfa2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCkgUEFSVElUSU9OIEJZIFJBTkdFICgoZjMg KiAzKSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEws IGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklS VFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFy dF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFICgoZjMg KiAzKSk7CiAKIC0tIEFMVEVSIFRBQkxFIC4uLiBBREQgQ09MVU1OCiBDUkVBVEUgVEFCTEUg Z3Rlc3QyNSAoYSBpbnQgUFJJTUFSWSBLRVkpOwogSU5TRVJUIElOVE8gZ3Rlc3QyNSBWQUxV RVMgKDMpLCAoNCk7Ci1BTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4gYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwgQUxURVIgQ09MVU1OIGIgU0VUIEVY UFJFU1NJT04gQVMgKGEgKiAzKTsKK0FMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCwgQUxURVIgQ09MVU1O IGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBP UkRFUiBCWSBhOwotQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGIgKiA0KSBTVE9SRUQ7ICAtLSBlcnJvcgotQUxURVIgVEFCTEUg Z3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHogKiA0KSBT VE9SRUQ7ICAtLSBlcnJvcgorQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiA0KSBWSVJUVUFMOyAgLS0gZXJyb3IKK0FMVEVS IFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh6 ICogNCkgVklSVFVBTDsgIC0tIGVycm9yCiBBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xV TU4gYyBpbnQgREVGQVVMVCA0MiwKLSAgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChjICogNCkgU1RPUkVEOworICBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGMgKiA0KSBWSVJUVUFMOwogQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09M VU1OIGQgaW50IERFRkFVTFQgMTAxOwogQUxURVIgVEFCTEUgZ3Rlc3QyNSBBTFRFUiBDT0xV TU4gZCBTRVQgREFUQSBUWVBFIGZsb2F0OCwKLSAgQUREIENPTFVNTiB5IGZsb2F0OCBHRU5F UkFURUQgQUxXQVlTIEFTIChkICogNCkgU1RPUkVEOworICBBREQgQ09MVU1OIHkgZmxvYXQ4 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGQgKiA0KSBWSVJUVUFMOwogU0VMRUNUICogRlJPTSBn dGVzdDI1IE9SREVSIEJZIGE7CiBcZCBndGVzdDI1CiAKQEAgLTQ3OSw3ICs0OTgsNyBAQCBD UkVBVEUgVEFCTEUgZ3Rlc3QyNSAoYSBpbnQgUFJJTUFSWSBLRVkpOwogQ1JFQVRFIFRBQkxF IGd0ZXN0MjcgKAogICAgIGEgaW50LAogICAgIGIgaW50LAotICAgIHggaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBTVE9SRUQKKyAgICB4IGludCBHRU5FUkFURUQg QUxXQVlTIEFTICgoYSArIGIpICogMikgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0 MjcgKGEsIGIpIFZBTFVFUyAoMywgNyksICg0LCAxMSk7CiBBTFRFUiBUQUJMRSBndGVzdDI3 IEFMVEVSIENPTFVNTiBhIFRZUEUgdGV4dDsgIC0tIGVycm9yCkBAIC00OTMsNyArNTEyLDcg QEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjcgKAogICBEUk9QIENPTFVNTiB4LAogICBBTFRFUiBD T0xVTU4gYSBUWVBFIGJpZ2ludCwKICAgQUxURVIgQ09MVU1OIGIgVFlQRSBiaWdpbnQsCi0g IEFERCBDT0xVTU4geCBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIp IFNUT1JFRDsKKyAgQUREIENPTFVNTiB4IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgo YSArIGIpICogMikgVklSVFVBTDsKIFxkIGd0ZXN0MjcKIC0tIElkZWFsbHkgeW91IGNvdWxk IGp1c3QgZG8gdGhpcywgYnV0IG5vdCB0b2RheSAoYW5kIHNob3VsZCB4IGNoYW5nZSB0eXBl Pyk6CiBBTFRFUiBUQUJMRSBndGVzdDI3CkBAIC01MDUsNyArNTI0LDcgQEAgQ1JFQVRFIFRB QkxFIGd0ZXN0MjcgKAogLS0gQUxURVIgVEFCTEUgLi4uIEFMVEVSIENPTFVNTiAuLi4gRFJP UCBFWFBSRVNTSU9OCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOSAoCiAgICAgYSBpbnQsCi0gICAg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMCiApOwogSU5TRVJUIElOVE8gZ3Rl c3QyOSAoYSkgVkFMVUVTICgzKSwgKDQpOwogU0VMRUNUICogRlJPTSBndGVzdDI5OwpAQCAt NTMyLDcgKzU1MSw3IEBAIENSRUFURSBUQUJMRSBndGVzdDI5ICgKIC0tIHdpdGggaW5oZXJp dGFuY2UKIENSRUFURSBUQUJMRSBndGVzdDMwICgKICAgICBhIGludCwKLSAgICBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8x ICgpIElOSEVSSVRTIChndGVzdDMwKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MzAgQUxURVIgQ09M VU1OIGIgRFJPUCBFWFBSRVNTSU9OOwpAQCAtNTQxLDcgKzU2MCw3IEBAIENSRUFURSBUQUJM RSBndGVzdDMwXzEgKCkgSU5IRVJJVFMgKGd0ZXN0MzApOwogRFJPUCBUQUJMRSBndGVzdDMw IENBU0NBREU7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMCAoCiAgICAgYSBpbnQsCi0gICAgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMCiApOwogQ1JFQVRFIFRBQkxFIGd0ZXN0 MzBfMSAoKSBJTkhFUklUUyAoZ3Rlc3QzMCk7CiBBTFRFUiBUQUJMRSBPTkxZIGd0ZXN0MzAg QUxURVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKQEAgLTU1Miw3ICs1 NzEsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsK IC0tIHRyaWdnZXJzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNiAoCiAgICAgYSBpbnQgUFJJTUFS WSBLRVksCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAor ICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMCiApOwogCiBD UkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJpZ2dlcl9mdW5jKCkgUkVUVVJOUyB0cmlnZ2VyCkBA IC02MTQsNiArNjMzLDkgQEAgQ1JFQVRFIFRSSUdHRVIgZ3Rlc3Q0IEFGVEVSIElOU0VSVCBP UiBVUERBVEUgT04gZ3Rlc3QyNgogRFJPUCBUUklHR0VSIGd0ZXN0MiBPTiBndGVzdDI2Owog RFJPUCBUUklHR0VSIGd0ZXN0MyBPTiBndGVzdDI2OwogCistLSBjaGVjayBkaXNhbGxvd2Vk IG1vZGlmaWNhdGlvbiBvZiB2aXJ0dWFsIGNvbHVtbnMKKy0tIFRPRE8KKwogLS0gQ2hlY2sg dGhhdCBhbiBVUERBVEUgb2YgImEiIGZpcmVzIHRoZSB0cmlnZ2VyIGZvciBVUERBVEUgT0Yg YiwgcGVyCiAtLSBTUUwgc3RhbmRhcmQuCiBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJpZ2dl cl9mdW5jMygpIFJFVFVSTlMgdHJpZ2dlcgpAQCAtNjY3LDcgKzY4OSw3IEBAIENSRUFURSBU QUJMRSBndGVzdDI4YSAoCiAgIGEgaW50LAogICBiIGludCwKICAgYyBpbnQsCi0gIHggaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBTVE9SRUQKKyAgeCBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwKICk7CiAKIEFMVEVSIFRBQkxFIGd0ZXN0Mjhh IERST1AgQ09MVU1OIGE7CkBAIC02NzUsMyArNjk3LDQ3IEBAIENSRUFURSBUQUJMRSBndGVz dDI4YSAoCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOGIgKExJS0UgZ3Rlc3QyOGEgSU5DTFVESU5H IEdFTkVSQVRFRCk7CiAKIFxkIGd0ZXN0MjgqCisKKworLS0gVE9ETzogZXh0cmEgdGVzdHMg dG8gd2VhdmUgaW50byB0aGUgcmlnaHQgcGxhY2VzCisKKy0tIHN1YmxpbmtzCitDUkVBVEUg VEFCTEUgdDIgKAorICAgIGEgaW50LAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSwKKyAgICBkIGludCBERUZBVUxUIDIyCispOworSU5TRVJUIElOVE8gdDIgKGEp IFNFTEVDVCBnIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBnOworU0VMRUNUIGEsIGIs IGQsIChTRUxFQ1QgdDIuYikgRlJPTSB0MjsKK0RST1AgVEFCTEUgdDI7CisKKy0tIGNvbGxh dGUKKy8qCitDUkVBVEUgQ09MTEFUSU9OIGNhc2VfaW5zZW5zaXRpdmUgKHByb3ZpZGVyID0g aWN1LCBsb2NhbGUgPSAndW5kLXUta3MtbGV2ZWwyJywgZGV0ZXJtaW5pc3RpYyA9IGZhbHNl KTsKK0NSRUFURSBUQUJMRSB0NSAoCisgICAgYSB0ZXh0IGNvbGxhdGUgIkMiLAorICAgIGIg dGV4dCBjb2xsYXRlICJDIiBHRU5FUkFURUQgQUxXQVlTIEFTIChhIGNvbGxhdGUgY2FzZV9p bnNlbnNpdGl2ZSkgLAorICAgIGQgaW50IERFRkFVTFQgMjIKKyk7CitJTlNFUlQgSU5UTyB0 NSAoYSwgZCkgdmFsdWVzICgnZDEnLCAyOCksICgnRDInLCAyNyksICgnRDEnLCAyNik7CitT RUxFQ1QgKiBGUk9NIHQ1IE9SREVSIEJZIGIgQVNDLCBkIEFTQzsKK0RST1AgVEFCTEUgdDU7 CitEUk9QIENPTExBVElPTiBjYXNlX2luc2Vuc2l0aXZlOworKi8KKworLS0gY29tcG9zaXRl IHR5cGUgZGVwZW5kZW5jaWVzCitDUkVBVEUgVEFCTEUgYXRfdGFiMSAoYSBpbnQsIGIgdGV4 dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8nKSwgYyB0ZXh0KTsKK0NSRUFURSBUQUJM RSBhdF90YWIyICh4IGludCwgeSBhdF90YWIxKTsKK0FMVEVSIFRBQkxFIGF0X3RhYjEgQUxU RVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFyOyAgLS0gZmFpbHMKK0RST1AgVEFCTEUgYXRfdGFi MSwgYXRfdGFiMjsKKworLS0gQ2hlY2sgaXQgZm9yIGEgcGFydGl0aW9uZWQgdGFibGUsIHRv bworQ1JFQVRFIFRBQkxFIGF0X3RhYjEgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoJ2hlbGxvJyksIGMgdGV4dCkgUEFSVElUSU9OIEJZIExJU1QgKGEpOworQ1JFQVRF IFRBQkxFIGF0X3RhYjIgKHggaW50LCB5IGF0X3RhYjEpOworQUxURVIgVEFCTEUgYXRfdGFi MSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBmYWlscworRFJPUCBUQUJMRSBh dF90YWIxLCBhdF90YWIyOworCistLSBhdHRhY2ggbWl4aW5nIGdlbmVyYXRlZCBraW5kcwor Q1JFQVRFIFRBQkxFIGJhcjEgKGEgaW50ZWdlciwgYiBpbnRlZ2VyIEdFTkVSQVRFRCBBTFdB WVMgQVMgKDIyKSkgUEFSVElUSU9OIEJZIFJBTkdFIChhKTsKK0NSRUFURSBUQUJMRSBiYXIy IChhIGludGVnZXIsIGIgaW50ZWdlciBHRU5FUkFURUQgQUxXQVlTIEFTICgyMikgU1RPUkVE KTsKK0FMVEVSIFRBQkxFIGJhcjEgQVRUQUNIIFBBUlRJVElPTiBiYXIyIERFRkFVTFQ7ICAt LSBlcnJvcgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDExX2dlbmVy YXRlZC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxMV9nZW5lcmF0ZWQucGwKaW5k ZXggOGIyZTVmNDcwOGUuLmZhZWUxNTVkYWE3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMTFfZ2VuZXJhdGVkLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAxMV9nZW5lcmF0ZWQucGwKQEAgLTIxLDExICsyMSwxMSBAQAogbXkgJHB1Ymxpc2hl cl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdy ZXMnOwogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJDUkVB VEUgVEFCTEUgdGFiMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBTVE9SRUQpIgorCSJDUkVBVEUgVEFCTEUgdGFiMSAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGMg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFMKSIKICk7CiAKICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJDUkVBVEUgVEFCTEUgdGFi MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy MikgU1RPUkVELCBjIGludCkiCisJIkNSRUFURSBUQUJMRSB0YWIxIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBTVE9SRUQsIGMgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzMykgVklSVFVBTCwgZCBpbnQpIgogKTsKIAog IyBkYXRhIGZvciBpbml0aWFsIHN5bmMKQEAgLTQyLDEwICs0MiwxMCBAQAogIyBXYWl0IGZv ciBpbml0aWFsIHN5bmMgb2YgYWxsIHN1YnNjcmlwdGlvbnMKICRub2RlX3N1YnNjcmliZXIt PndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jOwogCi1teSAkcmVzdWx0ID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgYSwgYiBGUk9NIHRhYjEi KTsKLWlzKCAkcmVzdWx0LCBxcSgxfDIyCi0yfDQ0Ci0zfDY2KSwgJ2dlbmVyYXRlZCBjb2x1 bW5zIGluaXRpYWwgc3luYycpOworbXkgJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGEsIGIsIGMgRlJPTSB0YWIxIik7Citpcygg JHJlc3VsdCwgcXEoMXwyMnwzMworMnw0NHw2NgorM3w2Nnw5OSksICdnZW5lcmF0ZWQgY29s dW1ucyBpbml0aWFsIHN5bmMnKTsKIAogIyBkYXRhIHRvIHJlcGxpY2F0ZQogCkBAIC01Niwx MSArNTYsMTEgQEAKICRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScp OwogCiAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJTRUxFQ1QgKiBGUk9NIHRhYjEiKTsKLWlzKCAkcmVzdWx0LCBxcSgxfDIyfAotMnw0NHwK LTN8NjZ8Ci00fDg4fAotNnwxMzJ8KSwgJ2dlbmVyYXRlZCBjb2x1bW5zIHJlcGxpY2F0ZWQn KTsKK2lzKCAkcmVzdWx0LCBxcSgxfDIyfDMzfAorMnw0NHw2NnwKKzN8NjZ8OTl8Cis0fDg4 fDEzMnwKKzZ8MTMyfDE5OHwpLCAnZ2VuZXJhdGVkIGNvbHVtbnMgcmVwbGljYXRlZCcpOwog CiAjIHRyeSBpdCB3aXRoIGEgc3Vic2NyaWJlci1zaWRlIHRyaWdnZXIKIApAQCAtNjksNyAr NjksNyBAQAogQ1JFQVRFIEZVTkNUSU9OIHRhYjFfdHJpZ2dlcl9mdW5jKCkgUkVUVVJOUyB0 cmlnZ2VyCiBMQU5HVUFHRSBwbHBnc3FsIEFTICQkCiBCRUdJTgotICBORVcuYyA6PSBORVcu YSArIDEwOworICBORVcuZCA6PSBORVcuYSArIDEwOwogICBSRVRVUk4gTkVXOwogRU5EICQk OwogCkBAIC04OCwxMiArODgsMTIgQEAgQkVHSU4KIAogJHJlc3VsdCA9CiAgICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIxIE9S REVSIEJZIDEiKTsKLWlzKCAkcmVzdWx0LCBxcSgxfDIyfAotMnw0NHwKLTN8NjZ8Ci00fDg4 fAotNnwxMzJ8Ci04fDE3NnwxOAotOXwxOTh8MTkpLCAnZ2VuZXJhdGVkIGNvbHVtbnMgcmVw bGljYXRlZCB3aXRoIHRyaWdnZXInKTsKK2lzKCAkcmVzdWx0LCBxcSgxfDIyfDMzfAorMnw0 NHw2NnwKKzN8NjZ8OTl8Cis0fDg4fDEzMnwKKzZ8MTMyfDE5OHwKKzh8MTc2fDI2NHwxOAor OXwxOTh8Mjk3fDE5KSwgJ2dlbmVyYXRlZCBjb2x1bW5zIHJlcGxpY2F0ZWQgd2l0aCB0cmln Z2VyJyk7CiAKIGRvbmVfdGVzdGluZygpOwoKYmFzZS1jb21taXQ6IGE2ODE1OWZmMmIzMmYy OTBiMTEzNmUyOTQwNDcwZDUwYjg0OTEzMDEKLS0gCjIuNDYuMAoK --------------4tOkN9sGtkmNYDkRTr5LBCyv Content-Type: text/plain; charset=UTF-8; name="v6-0002-Use-ReplaceVarsFromTargetList-for-rewriting-virtu.patch" Content-Disposition: attachment; filename*0="v6-0002-Use-ReplaceVarsFromTargetList-for-rewriting-virtu.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA3YmZlNGZjOWNlODExMjRkOWU3ZmRjMjRhMWY0NjA5OWJjYWVjNzI2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCA0IFNlcCAyMDI0IDA5OjM4OjQyICswMjAwClN1YmplY3Q6 IFtQQVRDSCB2NiAyLzJdIFVzZSBSZXBsYWNlVmFyc0Zyb21UYXJnZXRMaXN0KCkgZm9yIHJl d3JpdGluZyB2aXJ0dWFsCiBjb2x1bW5zCgotLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMgICAgICAgICB8ICAgOCAtLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVz ZS5jICAgIHwgICA0IC0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jICAgICB8 ICAgMSAtCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgfCAgIDMgLQog c3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jIHwgMTg1ICsrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAg IHwgICAyIC0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICB8ICAgMSAt CiA3IGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDE1MCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCBlMzkzNmEwYjhlYS4uZTkwMTIwMzQyNGQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtNTY4LDcgKzU2OCw2IEBAIHRyYW5zZm9ybURlbGV0 ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWxldGVTdG10ICpzdG10KQogCXFyeS0+aGFz V2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJn ZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0 YXRlLT5wX2hhc0FnZ3M7Ci0JcXJ5LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5w X2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3Rh dGUsIHFyeSk7CiAKQEAgLTk5NSw3ICs5OTQsNiBAQCB0cmFuc2Zvcm1JbnNlcnRTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgSW5zZXJ0U3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0 U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBw c3RhdGUtPnBfaGFzU3ViTGlua3M7Ci0JcXJ5LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0 YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9u cyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE0NjEsNyArMTQ1OSw2IEBAIHRyYW5zZm9ybVNlbGVj dFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+aGFz V2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJn ZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0 YXRlLT5wX2hhc0FnZ3M7Ci0JcXJ5LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5w X2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tpbmdDbGF1 c2UpCiAJewpAQCAtMTY4OCw3ICsxNjg1LDYgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0g bWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1 YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOwotCXFyeS0+aGFzR2VuZXJhdGVkVmly dHVhbCA9IHBzdGF0ZS0+cF9oYXNHZW5lcmF0ZWRWaXJ0dWFsOwogCiAJYXNzaWduX3F1ZXJ5 X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xOTQwLDcgKzE5MzYsNiBAQCB0cmFu c2Zvcm1TZXRPcGVyYXRpb25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAq c3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNz OwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFy eS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOwotCXFyeS0+aGFzR2VuZXJhdGVkVmly dHVhbCA9IHBzdGF0ZS0+cF9oYXNHZW5lcmF0ZWRWaXJ0dWFsOwogCiAJZm9yZWFjaChsLCBs b2NraW5nQ2xhdXNlKQogCXsKQEAgLTI0MTUsNyArMjQxMCw2IEBAIHRyYW5zZm9ybVJldHVy blN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFz V2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJn ZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0 YXRlLT5wX2hhc0FnZ3M7Ci0JcXJ5LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5w X2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3Rh dGUsIHFyeSk7CiAKQEAgLTI0ODMsNyArMjQ3Nyw2IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJn ZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9 IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKLQlxcnktPmhhc0dlbmVyYXRlZFZpcnR1YWwgPSBw c3RhdGUtPnBfaGFzR2VuZXJhdGVkVmlydHVhbDsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRp b25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjg1MCw3ICsyODQzLDYgQEAgdHJhbnNmb3JtUExB c3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCXFy eS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5o YXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dz ID0gcHN0YXRlLT5wX2hhc0FnZ3M7Ci0JcXJ5LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0 YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlmb3JlYWNoKGwsIHNzdG10LT5sb2Nr aW5nQ2xhdXNlKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9j bGF1c2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCA0ODUy NGFjM2ZjMi4uODExODAzNjQ5NWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9jbGF1c2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMK QEAgLTIwNywxMCArMjA3LDYgQEAgc2V0VGFyZ2V0VGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRl LCBSYW5nZVZhciAqcmVsYXRpb24sCiAJcHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbiA9IHBh cnNlck9wZW5UYWJsZShwc3RhdGUsIHJlbGF0aW9uLAogCQkJCQkJCQkJCQkJUm93RXhjbHVz aXZlTG9jayk7CiAKLQlpZiAocHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbi0+cmRfYXR0LT5j b25zdHIgJiYKLQkJcHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbi0+cmRfYXR0LT5jb25zdHIt Pmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKLQkJcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1 YWwgPSB0cnVlOwotCiAJLyoKIAkgKiBOb3cgYnVpbGQgYW4gUlRFIGFuZCBhIFBhcnNlTmFt ZXNwYWNlSXRlbS4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9tZXJnZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKaW5kZXggMzUw ZTllMTg4ODUuLjg3ZGY3OTAyN2Q3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfbWVyZ2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpA QCAtNDA1LDcgKzQwNSw2IEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIE1lcmdlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IGZhbHNlOwog CXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7Ci0JcXJ5LT5oYXNH ZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlh c3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggYjg2NDc0OWYwOWMuLjdhMzE5OWFlMWQzIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAtMTUxNSw5ICsxNTE1LDYgQEAg YWRkUmFuZ2VUYWJsZUVudHJ5KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAlydGUtPmVyZWYgPSBt YWtlQWxpYXMocmVmbmFtZSwgTklMKTsKIAlidWlsZFJlbGF0aW9uQWxpYXNlcyhyZWwtPnJk X2F0dCwgYWxpYXMsIHJ0ZS0+ZXJlZik7CiAKLQlpZiAocmVsLT5yZF9hdHQtPmNvbnN0ciAm JiByZWwtPnJkX2F0dC0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwpCi0JCXBzdGF0 ZS0+cF9oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gdHJ1ZTsKLQogCS8qCiAJICogU2V0IGZsYWdz IGFuZCBpbml0aWFsaXplIGFjY2VzcyBwZXJtaXNzaW9ucy4KIAkgKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvcmV3 cml0ZS9yZXdyaXRlSGFuZGxlci5jCmluZGV4IGYyNzEzZWFlZjIzLi4wMjQxZDQ3MTU3MSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCisrKyBi L3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYwpAQCAtNDQsNyArNDQsNiBA QAogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2Nh Y2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCi0jaW5jbHVkZSAidXRpbHMvc3lzY2Fj aGUuaCIKIAogCiAvKiBXZSB1c2UgYSBsaXN0IG9mIHRoZXNlIHRvIGRldGVjdCByZWN1cnNp b24gaW4gUmV3cml0ZVF1ZXJ5ICovCkBAIC05MSw4ICs5MCw3IEBAIHN0YXRpYyBMaXN0ICpt YXRjaExvY2tzKENtZFR5cGUgZXZlbnQsIFJlbGF0aW9uIHJlbGF0aW9uLAogCQkJCQkJaW50 IHZhcm5vLCBRdWVyeSAqcGFyc2V0cmVlLCBib29sICpoYXNVcGRhdGUpOwogc3RhdGljIFF1 ZXJ5ICpmaXJlUklScnVsZXMoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqYWN0aXZlUklScyk7 CiBzdGF0aWMgQml0bWFwc2V0ICphZGp1c3Rfdmlld19jb2x1bW5fc2V0KEJpdG1hcHNldCAq Y29scywgTGlzdCAqdGFyZ2V0bGlzdCk7Ci1zdHJ1Y3QgZXhwYW5kX2dlbmVyYXRlZF9jb250 ZXh0Owotc3RhdGljIFF1ZXJ5ICpleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fcXVlcnko UXVlcnkgKnF1ZXJ5LCBzdHJ1Y3QgZXhwYW5kX2dlbmVyYXRlZF9jb250ZXh0ICpjb250ZXh0 KTsKK3N0YXRpYyBOb2RlICpleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW50ZXJuYWwoTm9k ZSAqbm9kZSwgUmVsYXRpb24gcmVsLCBpbnQgcnRfaW5kZXgsIFJhbmdlVGJsRW50cnkgKnJ0 ZSk7CiAKIAogLyoKQEAgLTIxMzksNiArMjEzNyw5IEBAIGZpcmVSSVJydWxlcyhRdWVyeSAq cGFyc2V0cmVlLCBMaXN0ICphY3RpdmVSSVJzKQogCQkJfQogCQl9CiAKKwkJLyogRXhwYW5k IHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgb2YgdGhpcyB0YWJsZSAqLworCQlwYXJzZXRy ZWUgPSAoUXVlcnkgKikgZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2ludGVybmFsKChOb2Rl ICopIHBhcnNldHJlZSwgcmVsLCBydF9pbmRleCwgcnRlKTsKKwogCQl0YWJsZV9jbG9zZShy ZWwsIE5vTG9jayk7CiAJfQogCkBAIC00MzcwLDg0ICs0MzcxLDY2IEBAIFJld3JpdGVRdWVy eShRdWVyeSAqcGFyc2V0cmVlLCBMaXN0ICpyZXdyaXRlX2V2ZW50cywgaW50IG9yaWdfcnRf bGVuZ3RoKQogCiAKIC8qCi0gKiBWaXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIHN1cHBvcnQK KyAqIEV4cGFuZCB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCisgKgorICogSWYgdGhlIHRh YmxlIGNvbnRhaW5zIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMsIGJ1aWxkIGEgdGFyZ2V0 IGxpc3QKKyAqIGNvbnRhaW5pbmcgdGhlIGV4cGFuZGVkIGV4cHJlc3Npb25zIGFuZCB1c2Ug UmVwbGFjZVZhcnNGcm9tVGFyZ2V0TGlzdCgpIHRvCisgKiBkbyB0aGUgcmVwbGFjZW1lbnRz LgogICovCi0KLXN0cnVjdCBleHBhbmRfZ2VuZXJhdGVkX2NvbnRleHQKLXsKLQkvKiBsaXN0 IG9mIHJhbmdlIHRhYmxlcywgaW5uZXJtb3N0IGxhc3QgKi8KLQlMaXN0CSAgICpydGFibGVz OwotCi0JLyogaW5jcmVtZW50ZWQgZm9yIGV2ZXJ5IGxldmVsIHdoZXJlIGl0J3MgdHJ1ZSAq LwotCWludAkJCWFuY2VzdG9yX2hhc192aXJ0dWFsOwotfTsKLQogc3RhdGljIE5vZGUgKgot ZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX211dGF0b3IoTm9kZSAqbm9kZSwgc3RydWN0IGV4 cGFuZF9nZW5lcmF0ZWRfY29udGV4dCAqY29udGV4dCkKK2V4cGFuZF9nZW5lcmF0ZWRfY29s dW1uc19pbnRlcm5hbChOb2RlICpub2RlLCBSZWxhdGlvbiByZWwsIGludCBydF9pbmRleCwg UmFuZ2VUYmxFbnRyeSAqcnRlKQogewotCWlmIChub2RlID09IE5VTEwpCi0JCXJldHVybiBO VUxMOworCVR1cGxlRGVzYwl0dXBkZXNjOwogCi0JaWYgKElzQShub2RlLCBWYXIpKQorCXR1 cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisJaWYgKHR1cGRlc2MtPmNvbnN0ciAm JiB0dXBkZXNjLT5jb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKIAl7Ci0JCVZhcgkJ ICAgKnYgPSAoVmFyICopIG5vZGU7Ci0JCU9pZAkJCXJlbGlkOwotCQlBdHRyTnVtYmVyCWF0 dG51bTsKLQkJTGlzdAkgICAqcnRhYmxlID0gbGlzdF9udGhfbm9kZShMaXN0LAotCQkJCQkJ CQkJCSAgIGNvbnRleHQtPnJ0YWJsZXMsCi0JCQkJCQkJCQkJICAgbGlzdF9sZW5ndGgoY29u dGV4dC0+cnRhYmxlcykgLSB2LT52YXJsZXZlbHN1cCAtIDEpOwotCi0JCXJlbGlkID0gcnRf ZmV0Y2godi0+dmFybm8sIHJ0YWJsZSktPnJlbGlkOwotCQlhdHRudW0gPSB2LT52YXJhdHRu bzsKKwkJTGlzdAkgICAqdGxpc3QgPSBOSUw7CiAKLQkJaWYgKCFyZWxpZCB8fCAhYXR0bnVt KQotCQkJcmV0dXJuIG5vZGU7Ci0KLQkJaWYgKGdldF9hdHRnZW5lcmF0ZWQocmVsaWQsIGF0 dG51bSkgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQlmb3IgKGludCBpID0g MDsgaSA8IHR1cGRlc2MtPm5hdHRzOyBpKyspCiAJCXsKLQkJCVJlbGF0aW9uCXJ0X2VudHJ5 X3JlbGF0aW9uID0gdGFibGVfb3BlbihyZWxpZCwgTm9Mb2NrKTsKLQkJCU9pZAkJCWF0dGNv bGxpZDsKLQotCQkJbm9kZSA9IGJ1aWxkX2NvbHVtbl9kZWZhdWx0KHJ0X2VudHJ5X3JlbGF0 aW9uLCBhdHRudW0pOwotCQkJaWYgKG5vZGUgPT0gTlVMTCkKLQkJCQllbG9nKEVSUk9SLCAi bm8gZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZvdW5kIGZvciBjb2x1bW4gbnVtYmVyICVkIG9m IHRhYmxlIFwiJXNcIiIsCi0JCQkJCSBhdHRudW0sIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KHJ0X2VudHJ5X3JlbGF0aW9uKSk7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyID0gVHVw bGVEZXNjQXR0cih0dXBkZXNjLCBpKTsKIAotCQkJLyoKLQkJCSAqIElmIHRoZSBjb2x1bW4g ZGVmaW5pdGlvbiBoYXMgYSBjb2xsYXRpb24gYW5kIGl0IGlzIGRpZmZlcmVudAotCQkJICog ZnJvbSB0aGUgY29sbGF0aW9uIG9mIHRoZSBnZW5lcmF0aW9uIGV4cHJlc3Npb24sIHB1dCBh IENPTExBVEUKLQkJCSAqIGNsYXVzZSBhcm91bmQgdGhlIGV4cHJlc3Npb24uCi0JCQkgKi8K LQkJCWF0dGNvbGxpZCA9IEdldFN5c0NhY2hlT2lkKEFUVE5VTSwgQW51bV9wZ19hdHRyaWJ1 dGVfYXR0Y29sbGF0aW9uLCByZWxpZCwgYXR0bnVtLCAwLCAwKTsKLQkJCWlmIChhdHRjb2xs aWQgJiYgYXR0Y29sbGlkICE9IGV4cHJDb2xsYXRpb24obm9kZSkpCisJCQlpZiAoYXR0ci0+ YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKIAkJCXsKLQkJ CQlDb2xsYXRlRXhwciAqY2UgPSBtYWtlTm9kZShDb2xsYXRlRXhwcik7CisJCQkJTm9kZQkg ICAqZGVmZXhwcjsKKwkJCQlpbnQJCQlhdHRudW0gPSBpICsgMTsKKwkJCQlPaWQJCQlhdHRj b2xsaWQ7CisJCQkJVGFyZ2V0RW50cnkgKnRlOwogCi0JCQkJY2UtPmFyZyA9IChFeHByICop IG5vZGU7Ci0JCQkJY2UtPmNvbGxPaWQgPSBhdHRjb2xsaWQ7Ci0JCQkJY2UtPmxvY2F0aW9u ID0gLTE7CisJCQkJZGVmZXhwciA9IGJ1aWxkX2NvbHVtbl9kZWZhdWx0KHJlbCwgYXR0bnVt KTsKKwkJCQlpZiAoZGVmZXhwciA9PSBOVUxMKQorCQkJCQllbG9nKEVSUk9SLCAibm8gZ2Vu ZXJhdGlvbiBleHByZXNzaW9uIGZvdW5kIGZvciBjb2x1bW4gbnVtYmVyICVkIG9mIHRhYmxl IFwiJXNcIiIsCisJCQkJCQkgYXR0bnVtLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp KTsKIAotCQkJCW5vZGUgPSAoTm9kZSAqKSBjZTsKLQkJCX0KKwkJCQkvKgorCQkJCSAqIElm IHRoZSBjb2x1bW4gZGVmaW5pdGlvbiBoYXMgYSBjb2xsYXRpb24gYW5kIGl0IGlzCisJCQkJ ICogZGlmZmVyZW50IGZyb20gdGhlIGNvbGxhdGlvbiBvZiB0aGUgZ2VuZXJhdGlvbiBleHBy ZXNzaW9uLAorCQkJCSAqIHB1dCBhIENPTExBVEUgY2xhdXNlIGFyb3VuZCB0aGUgZXhwcmVz c2lvbi4KKwkJCQkgKi8KKwkJCQlhdHRjb2xsaWQgPSBhdHRyLT5hdHRjb2xsYXRpb247CisJ CQkJaWYgKGF0dGNvbGxpZCAmJiBhdHRjb2xsaWQgIT0gZXhwckNvbGxhdGlvbihkZWZleHBy KSkKKwkJCQl7CisJCQkJCUNvbGxhdGVFeHByICpjZSA9IG1ha2VOb2RlKENvbGxhdGVFeHBy KTsKIAotCQkJSW5jcmVtZW50VmFyU3VibGV2ZWxzVXAobm9kZSwgdi0+dmFybGV2ZWxzdXAs IDApOwotCQkJQ2hhbmdlVmFyTm9kZXMobm9kZSwgMSwgdi0+dmFybm8sIHYtPnZhcmxldmVs c3VwKTsKKwkJCQkJY2UtPmFyZyA9IChFeHByICopIGRlZmV4cHI7CisJCQkJCWNlLT5jb2xs T2lkID0gYXR0Y29sbGlkOworCQkJCQljZS0+bG9jYXRpb24gPSAtMTsKIAotCQkJdGFibGVf Y2xvc2UocnRfZW50cnlfcmVsYXRpb24sIE5vTG9jayk7Ci0JCX0KKwkJCQkJZGVmZXhwciA9 IChOb2RlICopIGNlOworCQkJCX0KIAotCQlyZXR1cm4gbm9kZTsKLQl9Ci0JZWxzZSBpZiAo SXNBKG5vZGUsIFF1ZXJ5KSkKLQl7Ci0JCVF1ZXJ5CSAgICpxdWVyeSA9IChRdWVyeSAqKSBu b2RlOworCQkJCUNoYW5nZVZhck5vZGVzKGRlZmV4cHIsIDEsIHJ0X2luZGV4LCAwKTsKIAot CQlxdWVyeSA9IGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9xdWVyeShxdWVyeSwgY29u dGV4dCk7CisJCQkJdGUgPSBtYWtlVGFyZ2V0RW50cnkoKEV4cHIgKikgZGVmZXhwciwgYXR0 bnVtLCAwLCBmYWxzZSk7CisJCQkJdGxpc3QgPSBsYXBwZW5kKHRsaXN0LCB0ZSk7CisJCQl9 CisJCX0KIAotCQlyZXR1cm4gKE5vZGUgKikgcXVlcnk7CisJCW5vZGUgPSBSZXBsYWNlVmFy c0Zyb21UYXJnZXRMaXN0KG5vZGUsIHJ0X2luZGV4LCAwLCBydGUsIHRsaXN0LCBSRVBMQUNF VkFSU19DSEFOR0VfVkFSTk8sIHJ0X2luZGV4LCBOVUxMKTsKIAl9Ci0JZWxzZQotCQlyZXR1 cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgZXhwYW5kX2dlbmVyYXRlZF9jb2x1 bW5zX211dGF0b3IsIGNvbnRleHQpOworCisJcmV0dXJuIG5vZGU7CiB9CiAKIE5vZGUgKgpA QCAtNDQ1OCw3NiArNDQ0MSwxOSBAQCBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fZXhw cihOb2RlICpub2RlLCBSZWxhdGlvbiByZWwpCiAJaWYgKHR1cGRlc2MtPmNvbnN0ciAmJiB0 dXBkZXNjLT5jb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKIAl7CiAJCVJhbmdlVGJs RW50cnkgKnJ0ZTsKLQkJTGlzdAkgICAqcnRhYmxlOwotCQlzdHJ1Y3QgZXhwYW5kX2dlbmVy YXRlZF9jb250ZXh0IGNvbnRleHQ7CiAKLQkJLyoKLQkJICogTWFrZSBhIGR1bW15IHJhbmdl IHRhYmxlIGZvciBhIHNpbmdsZSByZWxhdGlvbi4gIEZvciB0aGUgYmVuZWZpdCBvZgotCQkg KiB0cmlnZ2VycywgYWRkIHRoZSBzYW1lIGVudHJ5IHR3aWNlLCBzbyBpdCBjb3ZlcnMgUFJT Ml9PTERfVkFSTk8gYW5kCi0JCSAqIFBSUzJfTkVXX1ZBUk5PLgotCQkgKi8KIAkJcnRlID0g bWFrZU5vZGUoUmFuZ2VUYmxFbnRyeSk7CiAJCXJ0ZS0+cmVsaWQgPSBSZWxhdGlvbkdldFJl bGlkKHJlbCk7Ci0JCXJ0YWJsZSA9IGxpc3RfbWFrZTIocnRlLCBydGUpOwotCQljb250ZXh0 LnJ0YWJsZXMgPSBsaXN0X21ha2UxKHJ0YWJsZSk7Ci0KLQkJcmV0dXJuIGV4cHJlc3Npb25f dHJlZV9tdXRhdG9yKG5vZGUsIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19tdXRhdG9yLCAm Y29udGV4dCk7Ci0JfQotCWVsc2UKLQkJcmV0dXJuIG5vZGU7Ci19Ci0KLS8qCi0gKiBFeHBh bmQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiBhIFF1ZXJ5LiAgV2UgZG8gc29tZSBv cHRpbWl6YXRpb25zIGhlcmUKLSAqIHRvIGF2b2lkIGRpZ2dpbmcgdGhyb3VnaCB0aGUgd2hv bGUgUXVlcnkgdW5sZXNzIG5lY2Vzc2FyeS4KLSAqLwotc3RhdGljIFF1ZXJ5ICoKLWV4cGFu ZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9xdWVyeShRdWVyeSAqcXVlcnksIHN0cnVjdCBleHBh bmRfZ2VuZXJhdGVkX2NvbnRleHQgKmNvbnRleHQpCi17Ci0JY29udGV4dC0+cnRhYmxlcyA9 IGxhcHBlbmQoY29udGV4dC0+cnRhYmxlcywgcXVlcnktPnJ0YWJsZSk7Ci0JaWYgKHF1ZXJ5 LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsKQotCQljb250ZXh0LT5hbmNlc3Rvcl9oYXNfdmlydHVh bCsrOwotCi0JLyoKLQkgKiBJZiBhbnkgdGFibGUgaW4gdGhlIHF1ZXJ5IGhhcyBhIHZpcnR1 YWwgY29sdW1uIG9yIHRoZXJlIGlzIGEgc3VibGluaywKLQkgKiB0aGVuIHdlIG5lZWQgdG8g ZG8gdGhlIHdob2xlIHdhbGsuCi0JICovCi0JaWYgKHF1ZXJ5LT5oYXNHZW5lcmF0ZWRWaXJ0 dWFsIHx8IHF1ZXJ5LT5oYXNTdWJMaW5rcyB8fCBjb250ZXh0LT5hbmNlc3Rvcl9oYXNfdmly dHVhbCkKLQl7Ci0JCXF1ZXJ5ID0gcXVlcnlfdHJlZV9tdXRhdG9yKHF1ZXJ5LAotCQkJCQkJ CQkgICBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfbXV0YXRvciwKLQkJCQkJCQkJICAgY29u dGV4dCwKLQkJCQkJCQkJICAgUVRXX0RPTlRfQ09QWV9RVUVSWSk7Ci0JfQotCi0JLyoKLQkg KiBFbHNlIHdlIG9ubHkgbmVlZCB0byBwcm9jZXNzIHN1YnF1ZXJpZXMuCi0JICovCi0JZWxz ZQotCXsKLQkJTGlzdENlbGwgICAqbGM7Ci0KLQkJZm9yZWFjaChsYywgcXVlcnktPnJ0YWJs ZSkKLQkJewotCQkJUmFuZ2VUYmxFbnRyeSAqcnRlID0gKFJhbmdlVGJsRW50cnkgKikgbGZp cnN0KGxjKTsKLQotCQkJaWYgKHJ0ZS0+cnRla2luZCA9PSBSVEVfU1VCUVVFUlkpCi0JCQkJ cnRlLT5zdWJxdWVyeSA9IGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9xdWVyeShydGUt PnN1YnF1ZXJ5LCBjb250ZXh0KTsKLQkJfQogCi0JCWZvcmVhY2gobGMsIHF1ZXJ5LT5jdGVM aXN0KQotCQl7Ci0JCQlDb21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIg KikgbGZpcnN0KGxjKTsKLQotCQkJY3RlLT5jdGVxdWVyeSA9IChOb2RlICopIGV4cGFuZF9n ZW5lcmF0ZWRfY29sdW1uc19pbl9xdWVyeShjYXN0Tm9kZShRdWVyeSwgY3RlLT5jdGVxdWVy eSksIGNvbnRleHQpOwotCQl9CisJCS8qCisJCSAqIFhYWCBGb3IgdGhlIGJlbmVmaXQgb2Yg dHJpZ2dlcnMsIG1ha2UgdHdvIHBhc3Nlcywgc28gaXQgY292ZXJzCisJCSAqIFBSUzJfT0xE X1ZBUk5PIGFuZCBQUlMyX05FV19WQVJOTy4KKwkJICovCisJCW5vZGUgPSBleHBhbmRfZ2Vu ZXJhdGVkX2NvbHVtbnNfaW50ZXJuYWwobm9kZSwgcmVsLCAxLCBydGUpOworCQlub2RlID0g ZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2ludGVybmFsKG5vZGUsIHJlbCwgMiwgcnRlKTsK IAl9CiAKLQlpZiAocXVlcnktPmhhc0dlbmVyYXRlZFZpcnR1YWwpCi0JCWNvbnRleHQtPmFu Y2VzdG9yX2hhc192aXJ0dWFsLS07Ci0JY29udGV4dC0+cnRhYmxlcyA9IGxpc3RfdHJ1bmNh dGUoY29udGV4dC0+cnRhYmxlcywgbGlzdF9sZW5ndGgoY29udGV4dC0+cnRhYmxlcykgLSAx KTsKLQotCXJldHVybiBxdWVyeTsKKwlyZXR1cm4gbm9kZTsKIH0KIAogCkBAIC00NTc1LDEy ICs0NTAxLDkgQEAgUXVlcnlSZXdyaXRlKFF1ZXJ5ICpwYXJzZXRyZWUpCiAJZm9yZWFjaChs LCBxdWVyeWxpc3QpCiAJewogCQlRdWVyeQkgICAqcXVlcnkgPSAoUXVlcnkgKikgbGZpcnN0 KGwpOwotCQlzdHJ1Y3QgZXhwYW5kX2dlbmVyYXRlZF9jb250ZXh0IGNvbnRleHQgPSB7MH07 CiAKIAkJcXVlcnkgPSBmaXJlUklScnVsZXMocXVlcnksIE5JTCk7CiAKLQkJcXVlcnkgPSBl eHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fcXVlcnkocXVlcnksICZjb250ZXh0KTsKLQog CQlxdWVyeS0+cXVlcnlJZCA9IGlucHV0X3F1ZXJ5X2lkOwogCiAJCXJlc3VsdHMgPSBsYXBw ZW5kKHJlc3VsdHMsIHF1ZXJ5KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAzNTVm NTIxOTlmYS4uMGU5MWMwODRhMDEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTE2 MCw4ICsxNjAsNiBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeQogCWJvb2wJCWhhc0ZvclVwZGF0 ZSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogcmV3cml0ZXIgaGFz IGFwcGxpZWQgc29tZSBSTFMgcG9saWN5ICovCiAJYm9vbAkJaGFzUm93U2VjdXJpdHkgcGdf bm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwotCS8qIHNvbWUgdGFibGUgaGFzIGEg dmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uICovCi0JYm9vbAkJaGFzR2VuZXJhdGVkVmlydHVh bCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaXMgYSBSRVRVUk4g c3RhdGVtZW50ICovCiAJYm9vbAkJaXNSZXR1cm4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9k ZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCAxYjAyMTI4NTQ4 Yi4uNWI3ODFkODdhOWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9u b2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtMjI1LDcg KzIyNSw2IEBAIHN0cnVjdCBQYXJzZVN0YXRlCiAJYm9vbAkJcF9oYXNUYXJnZXRTUkZzOwog CWJvb2wJCXBfaGFzU3ViTGlua3M7CiAJYm9vbAkJcF9oYXNNb2RpZnlpbmdDVEU7Ci0JYm9v bAkJcF9oYXNHZW5lcmF0ZWRWaXJ0dWFsOwogCiAJTm9kZQkgICAqcF9sYXN0X3NyZjsJCS8q IG1vc3QgcmVjZW50IHNldC1yZXR1cm5pbmcgZnVuYy9vcCBmb3VuZCAqLwogCi0tIAoyLjQ2 LjAKCg== --------------4tOkN9sGtkmNYDkRTr5LBCyv--