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 1sbwYw-002g2O-Af for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Aug 2024 06:23:51 +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 1sbwYu-00C54H-Bj for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Aug 2024 06:23:48 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sbwYs-00C546-3D for pgsql-hackers@lists.postgresql.org; Thu, 08 Aug 2024 06:23:47 +0000 Received: from fhigh7-smtp.messagingengine.com ([103.168.172.158]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sbwYk-003fAP-Ea for pgsql-hackers@postgresql.org; Thu, 08 Aug 2024 06:23:44 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 798631151C60; Thu, 8 Aug 2024 02:23:36 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Thu, 08 Aug 2024 02:23:36 -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=fm2; t=1723098216; x= 1723184616; bh=8gXs2Ig9EilLL91hWFP212bI32ANnjoHiof6AarMeY8=; b=L l8OvL7uwMdzbCyP0sQowLIja3lrtyDNvI5jhhjKxBKcf3D/SjoxLuTO/tITlvIvv UjapmozCc8RK10qb97RF5ePXduIvNYc7Txfaqv8qXI+UpTKUp2FLO9qccQIGsTGl f3Ct8c/285y12oz0NpYPwRZU7HNMFY7noyfIzSmU9OkzOsG5jV+dhL1ZIPlyjXhA 0HWhSfVQSv5HylvUlOXCIUPFnpZJkeVHs7Rx+KfMtJ73vKJpXeH/w7F3ZsBcAnQM 4D+VfHz7IaTkI1Fqau8lyD9s/HremdUwNzT09fFNZtGw9eipbxACO537CBLk+TdX BSrVUO6RCyAXYGs6Xer2g== 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= fm3; t=1723098216; x=1723184616; bh=8gXs2Ig9EilLL91hWFP212bI32AN njoHiof6AarMeY8=; b=O6ApMm9a2nfV7wGQLCQhZZH+QMEwCxIVjz/nHnmXCY29 yj8TNYMXKvSIzk6uByGsvNEzXtsza3e/KyFiWXNiwtuz2G+6Hdetijby7lN6I9ra h4fCf9cix3OwEtf9oH8x49ocQF35Mj2E4OLcxROXRg/hV9HX7W6x/f6QBbB3J1Yn pBWJGMf09Woyv5zaPt0nv70TyeisV3JmfuoMK/QRvJKSHvBe0aPZAO3D7zYr/BYb YNwhH1OFt5blQ9CHr8NupQ6LKFQmb9OR4MSnyJJrK9+MhLnj9Iizc2P0nROjwwr6 v6GdXdA+ODLgjSmYsAK1m+iKo1F2KKdwIAbzjtsG3Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrledugddutdekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgg gfuffhvfevfhgjsehmtderredtvdejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhr rghuthcuoehpvghtvghrsegvihhsvghnthhrrghuthdrohhrgheqnecuggftrfgrthhtvg hrnhepledtheekleffieevfedtkeelveevfeekkeevheehvdejfefgveethfetiedtuedv necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvth gvrhesvghishgvnhhtrhgruhhtrdhorhhgpdhnsggprhgtphhtthhopedvpdhmohguvgep shhmthhpohhuthdprhgtphhtthhopehjihgrnhdruhhnihhvvghrshgrlhhithihsehgmh grihhlrdgtohhmpdhrtghpthhtohepphhgshhqlhdqhhgrtghkvghrshesphhoshhtghhr vghsqhhlrdhorhhg X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 8 Aug 2024 02:23:33 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------FL6t8Bx9V37nwbqo4z9MaDf7" Message-ID: Date: Thu, 8 Aug 2024 08:23:32 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Virtual generated columns From: Peter Eisentraut To: jian he Cc: pgsql-hackers References: <732a9543-0312-4f0c-a471-857b507a3546@eisentraut.org> Content-Language: en-US In-Reply-To: <732a9543-0312-4f0c-a471-857b507a3546@eisentraut.org> 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. --------------FL6t8Bx9V37nwbqo4z9MaDf7 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Thank you for your extensive testing. Here is a new patch set that has fixed all the issues you have reported (MERGE, sublinks, statistics, ANALYZE). --------------FL6t8Bx9V37nwbqo4z9MaDf7 Content-Type: text/plain; charset=UTF-8; name="v2-0001-Rename-regress-test-generated-to-generated_stored.patch" Content-Disposition: attachment; filename*0="v2-0001-Rename-regress-test-generated-to-generated_stored.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwYzJlZWIzM2UwY2ZjMzQ5OTdjZTY2MjMzYTQzMzYzYmQzNGJmZmRlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCA4IEF1ZyAyMDI0IDA4OjEzOjQ4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCB2MiAxLzNdIFJlbmFtZSByZWdyZXNzIHRlc3QgZ2VuZXJhdGVkIHRvIGdlbmVy YXRlZF9zdG9yZWQKClRoaXMgbWFrZXMgbmFtaW5nIHJvb20gdG8gaGF2ZSBhbm90aGVyIHRl c3QgZmlsZSBmb3IgdmlydHVhbCBnZW5lcmF0ZWQKY29sdW1ucy4KCkRpc2N1c3Npb246IGh0 dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC9hMzY4MjQ4ZS02OWU0 LTQwYmUtOWMwNy02YzNiNTg4MGIwYTZAZWlzZW50cmF1dC5vcmcKLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC97Z2VuZXJhdGVkLm91dCA9PiBnZW5lcmF0ZWRfc3RvcmVkLm91dH0gICAg fCAwCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC97Z2VuZXJhdGVk LnNxbCA9PiBnZW5lcmF0ZWRfc3RvcmVkLnNxbH0gICAgfCAwCiAzIGZpbGVzIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiByZW5hbWUgc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC97Z2VuZXJhdGVkLm91dCA9PiBnZW5lcmF0ZWRfc3RvcmVkLm91dH0gKDEw MCUpCiByZW5hbWUgc3JjL3Rlc3QvcmVncmVzcy9zcWwve2dlbmVyYXRlZC5zcWwgPT4gZ2Vu ZXJhdGVkX3N0b3JlZC5zcWx9ICgxMDAlKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZ2VuZXJhdGVkLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Z2VuZXJhdGVkX3N0b3JlZC5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9t IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkLm91dApyZW5hbWUgdG8gc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfc3RvcmVkLm91dApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggMjQyOWVjMmJiYWEuLmIwODA0NjkxZjVkIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTY2LDcgKzY2LDcgQEAgdGVz dDogc2VsZWN0X2ludG8gc2VsZWN0X2Rpc3RpbmN0IHNlbGVjdF9kaXN0aW5jdF9vbiBzZWxl Y3RfaW1wbGljaXQgc2VsZWN0X2hhdmkKICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3Vw IG9mIHBhcmFsbGVsIHRlc3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IGJyaW4gZ2luIGdpc3Qg c3BnaXN0IHByaXZpbGVnZXMgaW5pdF9wcml2cyBzZWN1cml0eV9sYWJlbCBjb2xsYXRlIG1h dHZpZXcgbG9jayByZXBsaWNhX2lkZW50aXR5IHJvd3NlY3VyaXR5IG9iamVjdF9hZGRyZXNz IHRhYmxlc2FtcGxlIGdyb3VwaW5nc2V0cyBkcm9wX29wZXJhdG9yIHBhc3N3b3JkIGlkZW50 aXR5IGdlbmVyYXRlZCBqb2luX2hhc2gKK3Rlc3Q6IGJyaW4gZ2luIGdpc3Qgc3BnaXN0IHBy aXZpbGVnZXMgaW5pdF9wcml2cyBzZWN1cml0eV9sYWJlbCBjb2xsYXRlIG1hdHZpZXcgbG9j ayByZXBsaWNhX2lkZW50aXR5IHJvd3NlY3VyaXR5IG9iamVjdF9hZGRyZXNzIHRhYmxlc2Ft cGxlIGdyb3VwaW5nc2V0cyBkcm9wX29wZXJhdG9yIHBhc3N3b3JkIGlkZW50aXR5IGdlbmVy YXRlZF9zdG9yZWQgam9pbl9oYXNoCiAKICMgLS0tLS0tLS0tLQogIyBBZGRpdGlvbmFsIEJS SU4gdGVzdHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZC5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbApzaW1pbGFy aXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJh dGVkLnNxbApyZW5hbWUgdG8gc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3Jl ZC5zcWwKCmJhc2UtY29tbWl0OiBlNTZjY2M4ZTQyMDRkOWZhZjg2ZjNiZDJlNDM1YTA3ODhi M2QwNDI5Ci0tIAoyLjQ2LjAKCg== --------------FL6t8Bx9V37nwbqo4z9MaDf7 Content-Type: text/plain; charset=UTF-8; name="v2-0002-Put-generated_stored-test-objects-in-a-schema.patch" Content-Disposition: attachment; filename*0="v2-0002-Put-generated_stored-test-objects-in-a-schema.patch" Content-Transfer-Encoding: base64 RnJvbSAwNjQ1ZmMxNDk2MzU0NTFkZjA1MDkxOTFhMzcwZGZhZGYwZDJhNmEzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCA4IEF1ZyAyMDI0IDA4OjEzOjQ4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCB2MiAyLzNdIFB1dCBnZW5lcmF0ZWRfc3RvcmVkIHRlc3Qgb2JqZWN0cyBpbiBh IHNjaGVtYQoKVGhpcyBhdm9pZHMgbmFtaW5nIGNvbmZsaWN0cyB3aXRoIGNvbmN1cnJlbnQg dGVzdHMgd2l0aCBzaW1pbGFybHkKbmFtZWQgb2JqZWN0cy4gIEN1cnJlbnRseSwgdGhlcmUg YXJlIG5vbmUsIGJ1dCBhIHRlc3RzIGZvciB2aXJ0dWFsCmdlbmVyYXRlZCBjb2x1bW5zIGFy ZSBwbGFubmVkIHRvIGJlIGFkZGVkLgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly93d3cucG9zdGdy ZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0L2EzNjgyNDhlLTY5ZTQtNDBiZS05YzA3LTZjM2I1 ODgwYjBhNkBlaXNlbnRyYXV0Lm9yZwotLS0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL2dlbmVy YXRlZF9zdG9yZWQub3V0ICAgICB8IDcxICsrKysrKysrKystLS0tLS0tLS0KIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsICAgICB8ICA4ICsrLQogMiBmaWxl cyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfc3RvcmVkLm91dAppbmRleCA0 NDA1OGRiN2MxZC4uZGQ3NGExYTlmMGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9nZW5lcmF0ZWRfc3RvcmVkLm91dApAQCAtNCw5ICs0LDEyIEBAIFNFTEVDVCBh dHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJF IGF0dGdlbmVyYXRlZCBOT1QKIC0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t CiAoMCByb3dzKQogCitDUkVBVEUgU0NIRU1BIGdlbmVyYXRlZF9zdG9yZWRfdGVzdHM7CitH UkFOVCBVU0FHRSBPTiBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cyBUTyBQVUJMSUM7 CitTRVQgc2VhcmNoX3BhdGggPSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzOwogQ1JFQVRFIFRB QkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKDU1KSBTVE9SRUQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOwotU0VMRUNU IHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBjb2x1bW5fZGVmYXVsdCwgaXNfbnVsbGFibGUs IGlzX2dlbmVyYXRlZCwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIEZST00gaW5mb3JtYXRpb25f c2NoZW1hLmNvbHVtbnMgV0hFUkUgdGFibGVfbmFtZSBMSUtFICdndGVzdF8nIE9SREVSIEJZ IDEsIDI7CitTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0 LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJlc3Npb24gRlJP TSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2Vu ZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMjsKICB0YWJsZV9uYW1lIHwgY29s dW1uX25hbWUgfCBjb2x1bW5fZGVmYXVsdCB8IGlzX251bGxhYmxlIHwgaXNfZ2VuZXJhdGVk IHwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIAogLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgZ3Rlc3QwICAgICB8IGEgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgfCBOTyAgICAgICAgICB8IE5FVkVSICAgICAgICB8IApAQCAtMTUsMTQgKzE4LDE0 IEBAIFNFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29sdW1uX2RlZmF1bHQsIGlz X251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdlbmVyCiAgZ3Rlc3QxICAgICB8IGIgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgfCBZRVMgICAgICAgICB8IEFMV0FZUyAgICAgICB8IChh ICogMikKICg0IHJvd3MpCiAKLVNFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVw ZW5kZW50X2NvbHVtbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5fY29sdW1uX3Vz YWdlIE9SREVSIEJZIDEsIDIsIDM7CitTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUs IGRlcGVuZGVudF9jb2x1bW4gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uX2NvbHVt bl91c2FnZSBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycg T1JERVIgQlkgMSwgMiwgMzsKICB0YWJsZV9uYW1lIHwgY29sdW1uX25hbWUgfCBkZXBlbmRl bnRfY29sdW1uIAogLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tCiAgZ3Rlc3QxICAgICB8IGEgICAgICAgICAgIHwgYgogKDEgcm93KQogCiBcZCBndGVz dDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmd0ZXN0MSIK KyAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rl c3QxIgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAg ICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKQEAgLTI3 MCw3ICsyNzMsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MV8xOwogKDAgcm93cykKIAogXGQg Z3Rlc3QxXzEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rl c3QxXzEiCisgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVz dHMuZ3Rlc3QxXzEiCiAgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8 IApAQCAtMzEyLDcgKzMxNSw3IEBAIEVSUk9SOiAgY29sdW1uICJiIiBpbmhlcml0cyBmcm9t IGdlbmVyYXRlZCBjb2x1bW4gYnV0IHNwZWNpZmllcyBpZGVudGl0eQogQ1JFQVRFIFRBQkxF IGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgU1RP UkVEKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIG9rLCBvdmVycmlkZXMgcGFyZW50CiBOT1RJ Q0U6ICBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogXGQr IGd0ZXN0eAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVGFibGUgInB1YmxpYy5ndGVzdHgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3R4IgogIENv bHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgIHwgU3RvcmFnZSB8IFN0YXRzIHRhcmdldCB8IERlc2Ny aXB0aW9uIAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBu b3QgbnVsbCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhaW4g ICB8ICAgICAgICAgICAgICB8IApAQCAtMzQ4LDcgKzM1MSw3IEBAIE5PVElDRTogIG1lcmdp bmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYiIKIE5PVElD RTogIG1vdmluZyBhbmQgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmlu aXRpb24KIERFVEFJTDogIFVzZXItc3BlY2lmaWVkIGNvbHVtbiBtb3ZlZCB0byB0aGUgcG9z aXRpb24gb2YgdGhlIGluaGVyaXRlZCBjb2x1bW4uCiBcZCBndGVzdDFfeQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5ndGVzdDFfeSIKKyAgICAgICAgICAg ICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDFfeSIKICBDb2x1 bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVm YXVsdCAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCkBAIC01MjMsNyArNTI2LDcg QEAgSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBv YmplY3RzIHRvby4KIEFMVEVSIFRBQkxFIGd0ZXN0MTAgRFJPUCBDT0xVTU4gYiBDQVNDQURF OyAgLS0gZHJvcHMgYyB0b28KIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gY29sdW1uIGMg b2YgdGFibGUgZ3Rlc3QxMAogXGQgZ3Rlc3QxMAotICAgICAgICAgICAgICBUYWJsZSAicHVi bGljLmd0ZXN0MTAiCisgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVz dDEwIgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1 bHQgCiAtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKQEAgLTYy Miw3ICs2MjUsNyBAQCBDUkVBVEUgSU5ERVggZ3Rlc3QyMmNfYl9pZHggT04gZ3Rlc3QyMmMg KGIpOwogQ1JFQVRFIElOREVYIGd0ZXN0MjJjX2V4cHJfaWR4IE9OIGd0ZXN0MjJjICgoYiAq IDMpKTsKIENSRUFURSBJTkRFWCBndGVzdDIyY19wcmVkX2lkeCBPTiBndGVzdDIyYyAoYSkg V0hFUkUgYiA+IDA7CiBcZCBndGVzdDIyYwotICAgICAgICAgICAgICAgICAgICAgICAgICAg VGFibGUgInB1YmxpYy5ndGVzdDIyYyIKKyAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2Vu ZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDIyYyIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAg IAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCkBAIC03MjYsNyArNzI5LDcgQEAgQ1JFQVRFIFRBQkxFIGd0 ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1IKIEVSUk9SOiAgaW52YWxpZCBPTiBERUxFVEUgYWN0aW9uIGZvciBmb3Jl aWduIGtleSBjb25zdHJhaW50IGNvbnRhaW5pbmcgZ2VuZXJhdGVkIGNvbHVtbgogQ1JFQVRF IFRBQkxFIGd0ZXN0MjNiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSk7CiBcZCBn dGVzdDIzYgotICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5ndGVz dDIzYiIKKyAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0 cy5ndGVzdDIzYiIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg CkBAIC04MDUsNyArODA4LDcgQEAgRFJPUCBUQUJMRSBndGVzdF9jaGlsZDM7CiBDUkVBVEUg VEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJp Z2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDMzKSBTVE9SRUQpOwogQUxURVIgVEFC TEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxV RVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsKIFxkIGd0ZXN0X2No aWxkCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3RfY2hp bGQiCisgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5n dGVzdF9jaGlsZCIKICBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAK QEAgLTgxNCw3ICs4MTcsNyBAQCBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBB UlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOQogUGFydGl0 aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9NICgnMDctMDEtMjAxNicpIFRP ICgnMDgtMDEtMjAxNicpCiAKIFxkIGd0ZXN0X2NoaWxkMgotICAgICAgICAgICAgICAgICAg ICAgICAgICBUYWJsZSAicHVibGljLmd0ZXN0X2NoaWxkMiIKKyAgICAgICAgICAgICAgICAg IFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMiIKICBDb2x1bW4g fCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAg fCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IApAQCAtODIzLDcgKzgyNiw3IEBA IFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA3LTAxLTIw MTYnKSBUTyAoJzA4LTAxLTIwMTYnKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9S IFZBTFVFUyBGUk9NICgnMDgtMDEtMjAxNicpIFRPICgnMDktMDEtMjAxNicpCiAKIFxkIGd0 ZXN0X2NoaWxkMwotICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmd0 ZXN0X2NoaWxkMyIKKyAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVk X3Rlc3RzLmd0ZXN0X2NoaWxkMyIKICBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAKIC0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBu b3QgbnVsbCB8IApAQCAtODU1LDcgKzg1OCw3IEBAIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xh c3MsICogRlJPTSBndGVzdF9wYXJlbnQgT1JERVIgQlkgMSwgMiwgMzsKIEFMVEVSIFRBQkxF IE9OTFkgZ3Rlc3RfcGFyZW50IEFMVEVSIENPTFVNTiBmMyBTRVQgRVhQUkVTU0lPTiBBUyAo ZjIgKiA0KTsKIEFMVEVSIFRBQkxFIGd0ZXN0X2NoaWxkIEFMVEVSIENPTFVNTiBmMyBTRVQg RVhQUkVTU0lPTiBBUyAoZjIgKiAxMCk7CiBcZCBndGVzdF9wYXJlbnQKLSAgICAgICAgICAg ICAgICAgICBQYXJ0aXRpb25lZCB0YWJsZSAicHVibGljLmd0ZXN0X3BhcmVudCIKKyAgICAg ICAgICAgUGFydGl0aW9uZWQgdGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3Rf cGFyZW50IgogIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IApAQCAt ODY1LDcgKzg2OCw3IEBAIFBhcnRpdGlvbiBrZXk6IFJBTkdFIChmMSkKIE51bWJlciBvZiBw YXJ0aXRpb25zOiAzIChVc2UgXGQrIHRvIGxpc3QgdGhlbS4pCiAKIFxkIGd0ZXN0X2NoaWxk Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3RfY2hpbGQi CisgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVz dF9jaGlsZCIKICBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IApA QCAtODc0LDcgKzg3Nyw3IEBAIE51bWJlciBvZiBwYXJ0aXRpb25zOiAzIChVc2UgXGQrIHRv IGxpc3QgdGhlbS4pCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZS T00gKCcwNy0wMS0yMDE2JykgVE8gKCcwOC0wMS0yMDE2JykKIAogXGQgZ3Rlc3RfY2hpbGQy Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3RfY2hpbGQy IgorICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rl c3RfY2hpbGQyIgogIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg CkBAIC04ODMsNyArODg2LDcgQEAgUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZB TFVFUyBGUk9NICgnMDctMDEtMjAxNicpIFRPICgnMDgtMDEtMjAxNicpCiBQYXJ0aXRpb24g b2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwOC0wMS0yMDE2JykgVE8gKCcw OS0wMS0yMDE2JykKIAogXGQgZ3Rlc3RfY2hpbGQzCi0gICAgICAgICAgICAgICAgICAgICAg ICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3RfY2hpbGQzIgorICAgICAgICAgICAgICAgICAgVGFi bGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQzIgogIENvbHVtbiB8ICBU eXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAg ICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRh dGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCkBAIC05MDIsNyArOTA1LDcgQEAgU0VM RUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAx LCAyLCAzOwogLS0gYWx0ZXIgZ2VuZXJhdGlvbiBleHByZXNzaW9uIG9mIHBhcmVudCBhbmQg YWxsIGl0cyBjaGlsZHJlbiBhbHRvZ2V0aGVyCiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQg QUxURVIgQ09MVU1OIGYzIFNFVCBFWFBSRVNTSU9OIEFTIChmMiAqIDIpOwogXGQgZ3Rlc3Rf cGFyZW50Ci0gICAgICAgICAgICAgICAgICAgUGFydGl0aW9uZWQgdGFibGUgInB1YmxpYy5n dGVzdF9wYXJlbnQiCisgICAgICAgICAgIFBhcnRpdGlvbmVkIHRhYmxlICJnZW5lcmF0ZWRf c3RvcmVkX3Rlc3RzLmd0ZXN0X3BhcmVudCIKICBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRp b24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAog LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKQEAgLTkxMiw3ICs5MTUsNyBAQCBQYXJ0aXRpb24ga2V5OiBSQU5H RSAoZjEpCiBOdW1iZXIgb2YgcGFydGl0aW9uczogMyAoVXNlIFxkKyB0byBsaXN0IHRoZW0u KQogCiBcZCBndGVzdF9jaGlsZAotICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAi cHVibGljLmd0ZXN0X2NoaWxkIgorICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRl ZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQiCiAgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAK IC0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAg ICB8IG5vdCBudWxsIHwgCkBAIC05MjEsNyArOTI0LDcgQEAgTnVtYmVyIG9mIHBhcnRpdGlv bnM6IDMgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFy ZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA3LTAxLTIwMTYnKSBUTyAoJzA4LTAxLTIwMTYnKQog CiBcZCBndGVzdF9jaGlsZDIKLSAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVi bGljLmd0ZXN0X2NoaWxkMiIKKyAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9z dG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQyIgogIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCiAt LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IApAQCAtOTMwLDcgKzkzMyw3IEBAIFBhcnRpdGlvbiBvZjogZ3Rlc3Rf cGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA3LTAxLTIwMTYnKSBUTyAoJzA4LTAxLTIwMTYn KQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9NICgnMDgtMDEt MjAxNicpIFRPICgnMDktMDEtMjAxNicpCiAKIFxkIGd0ZXN0X2NoaWxkMwotICAgICAgICAg ICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3RfY2hpbGQzIgorICAgICAgICAg ICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZDMiCiAg Q29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAg IERlZmF1bHQgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYx ICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCkBAIC05ODcsNyArOTkw LDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDI1IE9SREVSIEJZIGE7CiAoMiByb3dzKQogCiBc ZCBndGVzdDI1Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRh YmxlICJwdWJsaWMuZ3Rlc3QyNSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjUiCiAgQ29sdW1uIHwgICAg ICAgVHlwZSAgICAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAg ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVn ZXIgICAgICAgICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IApAQCAtMTAxMSw3ICsxMDE0 LDcgQEAgRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSBvZiBhIGNvbHVtbiB1c2VkIGJ5IGEg Z2VuZXJhdGVkIGNvbHVtbgogREVUQUlMOiAgQ29sdW1uICJhIiBpcyB1c2VkIGJ5IGdlbmVy YXRlZCBjb2x1bW4gIngiLgogQUxURVIgVEFCTEUgZ3Rlc3QyNyBBTFRFUiBDT0xVTU4geCBU WVBFIG51bWVyaWM7CiBcZCBndGVzdDI3Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3QyNyIKKyAgICAgICAgICAgICAgICAgICAgICAgIFRh YmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjciCiAgQ29sdW1uIHwgIFR5cGUg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICBEZWZhdWx0ICAg ICAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBh ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKQEAgLTEwMzcsNyAr MTA0MCw3IEBAIEFMVEVSIFRBQkxFIGd0ZXN0MjcKICAgQUxURVIgQ09MVU1OIGIgVFlQRSBi aWdpbnQsCiAgIEFERCBDT0xVTU4geCBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEg KyBiKSAqIDIpIFNUT1JFRDsKIFxkIGd0ZXN0MjcKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3QyNyIKKyAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI3IgogIENvbHVtbiB8ICBUeXBl ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgIERlZmF1bHQgICAg ICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAg IHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKQEAgLTEwNTEsNyArMTA1NCw3 IEBAIEFMVEVSIFRBQkxFIGd0ZXN0MjcKIEVSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgb2Yg YSBjb2x1bW4gdXNlZCBieSBhIGdlbmVyYXRlZCBjb2x1bW4KIERFVEFJTDogIENvbHVtbiAi YSIgaXMgdXNlZCBieSBnZW5lcmF0ZWQgY29sdW1uICJ4Ii4KIFxkIGd0ZXN0MjcKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3QyNyIKKyAgICAg ICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI3 IgogIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAg ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgYSAgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAK QEAgLTEwNzksNyArMTA4Miw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyOTsKICgyIHJvd3Mp CiAKIFxkIGd0ZXN0MjkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVi bGljLmd0ZXN0MjkiCisgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3Rv cmVkX3Rlc3RzLmd0ZXN0MjkiCiAgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKIC0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8IApAQCAtMTEwMSw3ICsxMTA0LDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDI5Owog KDIgcm93cykKIAogXGQgZ3Rlc3QyOQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRh YmxlICJwdWJsaWMuZ3Rlc3QyOSIKKyAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVy YXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOSIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAog LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCkBAIC0xMTIwLDcgKzExMjMsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0 ZXN0Mjk7CiAoNCByb3dzKQogCiBcZCBndGVzdDI5Ci0gICAgICAgICAgICAgIFRhYmxlICJw dWJsaWMuZ3Rlc3QyOSIKKyAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0 ZXN0MjkiCiAgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVm YXVsdCAKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IApAQCAt MTEyOSw3ICsxMTMyLDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDI5OwogLS0gY2hlY2sgdGhh dCBkZXBlbmRlbmNpZXMgYmV0d2VlbiBjb2x1bW5zIGhhdmUgYWxzbyBiZWVuIHJlbW92ZWQK IEFMVEVSIFRBQkxFIGd0ZXN0MjkgRFJPUCBDT0xVTU4gYTsgIC0tIHNob3VsZCBub3QgZHJv cCBiCiBcZCBndGVzdDI5Ci0gICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3QyOSIK KyAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjkiCiAgQ29sdW1u IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKIC0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQogIGIgICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IApAQCAtMTE0Miw3ICsxMTQ1LDcg QEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MzAgKAogQ1JFQVRFIFRBQkxFIGd0ZXN0MzBfMSAoKSBJ TkhFUklUUyAoZ3Rlc3QzMCk7CiBBTFRFUiBUQUJMRSBndGVzdDMwIEFMVEVSIENPTFVNTiBi IERST1AgRVhQUkVTU0lPTjsKIFxkIGd0ZXN0MzAKLSAgICAgICAgICAgICAgVGFibGUgInB1 YmxpYy5ndGVzdDMwIgorICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rl c3QzMCIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZh dWx0IAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCkBAIC0x MTUwLDcgKzExNTMsNyBAQCBBTFRFUiBUQUJMRSBndGVzdDMwIEFMVEVSIENPTFVNTiBiIERS T1AgRVhQUkVTU0lPTjsKIE51bWJlciBvZiBjaGlsZCB0YWJsZXM6IDEgKFVzZSBcZCsgdG8g bGlzdCB0aGVtLikKIAogXGQgZ3Rlc3QzMF8xCi0gICAgICAgICAgICAgVGFibGUgInB1Ymxp Yy5ndGVzdDMwXzEiCisgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0 MzBfMSIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZh dWx0IAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCkBAIC0x MTY3LDcgKzExNzAsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElOSEVSSVRTIChn dGVzdDMwKTsKIEFMVEVSIFRBQkxFIE9OTFkgZ3Rlc3QzMCBBTFRFUiBDT0xVTU4gYiBEUk9Q IEVYUFJFU1NJT047ICAtLSBlcnJvcgogRVJST1I6ICBBTFRFUiBUQUJMRSAvIERST1AgRVhQ UkVTU0lPTiBtdXN0IGJlIGFwcGxpZWQgdG8gY2hpbGQgdGFibGVzIHRvbwogXGQgZ3Rlc3Qz MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3QzMCIK KyAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rl c3QzMCIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAg ICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCkBAIC0x MTc1LDcgKzExNzgsNyBAQCBFUlJPUjogIEFMVEVSIFRBQkxFIC8gRFJPUCBFWFBSRVNTSU9O IG11c3QgYmUgYXBwbGllZCB0byBjaGlsZCB0YWJsZXMgdG9vCiBOdW1iZXIgb2YgY2hpbGQg dGFibGVzOiAxIChVc2UgXGQrIHRvIGxpc3QgdGhlbS4pCiAKIFxkIGd0ZXN0MzBfMQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5ndGVzdDMwXzEiCisgICAg ICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QzMF8x IgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKQEAgLTEzMzYs MTQgKzEzMzksMTQgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjhhICgKIEFMVEVSIFRBQkxFIGd0 ZXN0MjhhIERST1AgQ09MVU1OIGE7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOGIgKExJS0UgZ3Rl c3QyOGEgSU5DTFVESU5HIEdFTkVSQVRFRCk7CiBcZCBndGVzdDI4KgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5ndGVzdDI4YSIKKyAgICAgICAgICAgICAg ICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI4YSIKICBDb2x1bW4g fCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYiAgICAgIHwg aW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAgYyAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAgeCAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYiAqIDIpIHN0b3JlZAogCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmd0ZXN0MjhiIgorICAg ICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0Mjhi IgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwKaW5kZXggY2I1NWQ3NzgyMWYu LmMxOGUwZTFmNjU1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0 ZWRfc3RvcmVkLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfc3Rv cmVkLnNxbApAQCAtMiwxMiArMiwxNiBAQAogU0VMRUNUIGF0dHJlbGlkLCBhdHRuYW1lLCBh dHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0Z2VuZXJhdGVkIE5PVCBJ TiAoJycsICdzJyk7CiAKIAorQ1JFQVRFIFNDSEVNQSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3Rz OworR1JBTlQgVVNBR0UgT04gU0NIRU1BIGdlbmVyYXRlZF9zdG9yZWRfdGVzdHMgVE8gUFVC TElDOworU0VUIHNlYXJjaF9wYXRoID0gZ2VuZXJhdGVkX3N0b3JlZF90ZXN0czsKKwogQ1JF QVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKDU1KSBTVE9SRUQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOwog Ci1TRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0LCBpc19u dWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJlc3Npb24gRlJPTSBpbmZv cm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9uYW1lIExJS0UgJ2d0ZXN0Xycg T1JERVIgQlkgMSwgMjsKK1NFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29sdW1u X2RlZmF1bHQsIGlzX251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdlbmVyYXRpb25fZXhwcmVz c2lvbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdIRVJFIHRhYmxlX3NjaGVt YSA9ICdnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzJyBPUkRFUiBCWSAxLCAyOwogCi1TRUxFQ1Qg dGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGRlcGVuZGVudF9jb2x1bW4gRlJPTSBpbmZvcm1h dGlvbl9zY2hlbWEuY29sdW1uX2NvbHVtbl91c2FnZSBPUkRFUiBCWSAxLCAyLCAzOworU0VM RUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBkZXBlbmRlbnRfY29sdW1uIEZST00gaW5m b3JtYXRpb25fc2NoZW1hLmNvbHVtbl9jb2x1bW5fdXNhZ2UgV0hFUkUgdGFibGVfc2NoZW1h ID0gJ2dlbmVyYXRlZF9zdG9yZWRfdGVzdHMnIE9SREVSIEJZIDEsIDIsIDM7CiAKIFxkIGd0 ZXN0MQogCi0tIAoyLjQ2LjAKCg== --------------FL6t8Bx9V37nwbqo4z9MaDf7 Content-Type: text/plain; charset=UTF-8; name="v2-0003-Virtual-generated-columns.patch" Content-Disposition: attachment; filename="v2-0003-Virtual-generated-columns.patch" Content-Transfer-Encoding: base64 RnJvbSA3MWJhZmEwODhjOTY3NDY4MjA4NzZlOTkzNDY1ODA0NGQxMTgyNmM1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCA4IEF1ZyAyMDI0IDA4OjEzOjQ4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCB2MiAzLzNdIFZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKClRoaXMgYWRkcyBh IG5ldyB2YXJpYW50IG9mIGdlbmVyYXRlZCBjb2x1bW5zIHRoYXQgYXJlIGNvbXB1dGVkIG9u IHJlYWQKKGxpa2UgYSB2aWV3LCB1bmxpa2UgdGhlIGV4aXN0aW5nIHN0b3JlZCBnZW5lcmF0 ZWQgY29sdW1ucywgd2hpY2ggYXJlCmNvbXB1dGVkIG9uIHdyaXRlLCBsaWtlIGEgbWF0ZXJp YWxpemVkIHZpZXcpLgoKU29tZSBmdW5jdGlvbmFsaXR5IGlzIGN1cnJlbnRseSBub3Qgc3Vw cG9ydGVkIChidXQgY291bGQgcG9zc2libHkgYmUKYWRkZWQgYXMgaW5jcmVtZW50YWwgZmVh dHVyZXMsIHNvbWUgZWFzaWVyIHRoYW4gb3RoZXJzKToKCi0gaW5kZXggb24gdmlydHVhbCBj b2x1bW4KLSBleHByZXNzaW9uIGluZGV4IHVzaW5nIGEgdmlydHVhbCBjb2x1bW4KLSBoZW5j ZSBhbHNvIG5vIHVuaXF1ZSBjb25zdHJhaW50cyBvbiB2aXJ0dWFsIGNvbHVtbnMKLSBub3Qt bnVsbCBjb25zdHJhaW50cyBvbiB2aXJ0dWFsIGNvbHVtbnMKLSAoY2hlY2sgY29uc3RyYWlu dHMgYXJlIHN1cHBvcnRlZCkKLSBmb3JlaWduIGtleSBjb25zdHJhaW50cyBvbiB2aXJ0dWFs IGNvbHVtbnMKLSBleHRlbmRlZCBzdGF0aXN0aWNzIG9uIHZpcnR1YWwgY29sdW1ucwotIEFM VEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04KLSBBTFRFUiBUQUJMRSAvIERST1AgRVhQUkVT U0lPTgotIHZpcnR1YWwgY29sdW1ucyBhcyB0cmlnZ2VyIGNvbHVtbnMKLSB2aXJ0dWFsIGNv bHVtbiBjYW5ub3QgaGF2ZSBkb21haW4gdHlwZQoKVE9ETzoKLSBhbmFseXNpcyBvZiBhY2Nl c3MgY29udHJvbAotIGNoZWNrIEZEVy9mb3JlaWduIHRhYmxlIGJlaGF2aW9yCgpEaXNjdXNz aW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvYTM2ODI0 OGUtNjllNC00MGJlLTljMDctNmMzYjU4ODBiMGE2QGVpc2VudHJhdXQub3JnCi0tLQogY29u dHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9wYWdlLm91dCAgICAgICAgIHwgIDM1ICsKIGNv bnRyaWIvcGFnZWluc3BlY3Qvc3FsL3BhZ2Uuc3FsICAgICAgICAgICAgICB8ICAxNyArCiAu Li4vcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgICAgfCAgODEgKy0K IGNvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsICAgICB8ICAgOSAr LQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICA0 ICstCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MjUgKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbCAgICAgICAgICAgICB8 ICAxNCArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sICAg IHwgIDExICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sICAgICAgICAg ICAgfCAgMjIgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RyaWdnZXIuc2dtbCAgICAg ICAgICB8ICAgMiArLQogZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbCAgICAgICAgICAgICAg ICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jICAg ICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMgICAgICAg ICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgICAg ICAgICAgICAgIHwgIDI5ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYyAg ICAgICAgICAgICAgfCAgMjAgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j ICAgICAgICAgICAgICB8IDEwNCArKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YyAgICAgICAgICAgICAgICB8ICA0OCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYyAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNN YWluLmMgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYyAgICAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgICAgICB8ICAxNSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2NsYXVzZS5jICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9tZXJnZS5jICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAgIDkgKy0KIHNyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICA0MCArLQogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyAgIHwgICAzICstCiBzcmMvYmFja2VuZC9y ZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMgICAgICAgICAgfCAxNTEgKysrLQogc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvcGFydGNhY2hlLmMgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMv YmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3Jj L2luY2x1ZGUvYWNjZXNzL3R1cGRlc2MuaCAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmggICAgICAgICAgICB8ICAgMSArCiBz cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDMgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmggICAgICAgICAgfCAgIDIg Kwogc3JjL3BsL3BscGVybC9leHBlY3RlZC9wbHBlcmxfdHJpZ2dlci5vdXQgICAgIHwgICA3 ICstCiBzcmMvcGwvcGxwZXJsL3BscGVybC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDMgKwogc3JjL3BsL3BscGVybC9zcWwvcGxwZXJsX3RyaWdnZXIuc3FsICAgICAgICAgIHwg ICAzICstCiBzcmMvcGwvcGxweXRob24vZXhwZWN0ZWQvcGxweXRob25fdHJpZ2dlci5vdXQg fCAgIDcgKy0KIHNyYy9wbC9wbHB5dGhvbi9wbHB5X3R5cGVpby5jICAgICAgICAgICAgICAg ICB8ICAgMyArCiBzcmMvcGwvcGxweXRob24vc3FsL3BscHl0aG9uX3RyaWdnZXIuc3FsICAg ICAgfCAgIDMgKy0KIHNyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfdHJpZ2dlci5vdXQgICAg ICAgICB8ICAxOSArLQogc3JjL3BsL3RjbC9wbHRjbC5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAzICsKIHNyYy9wbC90Y2wvc3FsL3BsdGNsX3RyaWdnZXIuc3FsICAgICAg ICAgICAgICB8ICAgMyArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xp a2Uub3V0ICAgIHwgIDIzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfc3Rv cmVkLm91dCAgICAgfCAgMjcgKy0KIC4uLnJhdGVkX3N0b3JlZC5vdXQgPT4gZ2VuZXJhdGVk X3ZpcnR1YWwub3V0fSB8IDgzNSArKysrKysrKystLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgMyArCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsICAgICB8ICAxMCArLQogLi4ucmF0ZWRf c3RvcmVkLnNxbCA9PiBnZW5lcmF0ZWRfdmlydHVhbC5zcWx9IHwgMzAxICsrKystLS0KIHNy Yy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxMV9nZW5lcmF0ZWQucGwgICAgICB8ICAzOCArLQog NTUgZmlsZXMgY2hhbmdlZCwgMTI4MCBpbnNlcnRpb25zKCspLCA3MTEgZGVsZXRpb25zKC0p CiBjb3B5IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQve2dlbmVyYXRlZF9zdG9yZWQub3V0 ID0+IGdlbmVyYXRlZF92aXJ0dWFsLm91dH0gKDY5JSkKIGNvcHkgc3JjL3Rlc3QvcmVncmVz cy9zcWwve2dlbmVyYXRlZF9zdG9yZWQuc3FsID0+IGdlbmVyYXRlZF92aXJ0dWFsLnNxbH0g KDcyJSkKCmRpZmYgLS1naXQgYS9jb250cmliL3BhZ2VpbnNwZWN0L2V4cGVjdGVkL3BhZ2Uu b3V0IGIvY29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9wYWdlLm91dAppbmRleCA4MGRk YjQ1YTYwYS4uN2UwYjA5ZTI3OWIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGFnZWluc3BlY3Qv ZXhwZWN0ZWQvcGFnZS5vdXQKKysrIGIvY29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9w YWdlLm91dApAQCAtMjA4LDYgKzIwOCw0MSBAQCBzZWxlY3QgdHVwbGVfZGF0YV9zcGxpdCgn dGVzdDgnOjpyZWdjbGFzcywgdF9kYXRhLCB0X2luZm9tYXNrLCB0X2luZm9tYXNrMiwgdF9i aQogKDEgcm93KQogCiBkcm9wIHRhYmxlIHRlc3Q4OworLS0gY2hlY2sgc3RvcmFnZSBvZiBn ZW5lcmF0ZWQgY29sdW1ucworLS0gc3RvcmVkCitjcmVhdGUgdGFibGUgdGVzdDlzIChhIGlu dCBub3QgbnVsbCwgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCk7 CitpbnNlcnQgaW50byB0ZXN0OXMgdmFsdWVzICgxMzE1ODQpOworc2VsZWN0IHRfaW5mb21h c2ssIHRfYml0cywgdF9kYXRhIGZyb20gaGVhcF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgn dGVzdDlzJywgMCkpOworIHRfaW5mb21hc2sgfCB0X2JpdHMgfCAgICAgICB0X2RhdGEgICAg ICAgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAyMDQ4IHwgICAgICAgIHwgXHgwMDAyMDIwMDAwMDQwNDAwCisoMSByb3cpCisKK3NlbGVj dCB0dXBsZV9kYXRhX3NwbGl0KCd0ZXN0OXMnOjpyZWdjbGFzcywgdF9kYXRhLCB0X2luZm9t YXNrLCB0X2luZm9tYXNrMiwgdF9iaXRzKQorICAgIGZyb20gaGVhcF9wYWdlX2l0ZW1zKGdl dF9yYXdfcGFnZSgndGVzdDlzJywgMCkpOworICAgICAgIHR1cGxlX2RhdGFfc3BsaXQgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiXFx4MDAwMjAyMDAi LCJcXHgwMDA0MDQwMCJ9CisoMSByb3cpCisKK2Ryb3AgdGFibGUgdGVzdDlzOworLS0gdmly dHVhbAorY3JlYXRlIHRhYmxlIHRlc3Q5diAoYSBpbnQgbm90IG51bGwsIGIgaW50IGdlbmVy YXRlZCBhbHdheXMgYXMgKGEgKiAyKSB2aXJ0dWFsKTsKK2luc2VydCBpbnRvIHRlc3Q5diB2 YWx1ZXMgKDEzMTU4NCk7CitzZWxlY3QgdF9pbmZvbWFzaywgdF9iaXRzLCB0X2RhdGEgZnJv bSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OXYnLCAwKSk7CisgdF9pbmZv bWFzayB8ICB0X2JpdHMgIHwgICB0X2RhdGEgICAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorICAgICAgIDIwNDkgfCAxMDAwMDAwMCB8IFx4MDAwMjAyMDAKKygx IHJvdykKKworc2VsZWN0IHR1cGxlX2RhdGFfc3BsaXQoJ3Rlc3Q5dic6OnJlZ2NsYXNzLCB0 X2RhdGEsIHRfaW5mb21hc2ssIHRfaW5mb21hc2syLCB0X2JpdHMpCisgICAgZnJvbSBoZWFw X3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OXYnLCAwKSk7CisgICB0dXBsZV9kYXRh X3NwbGl0ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJcXHgwMDAyMDIwMCIsTlVM TH0KKygxIHJvdykKKworZHJvcCB0YWJsZSB0ZXN0OXY7CiAtLSBGYWlsdXJlIHdpdGggaW5j b3JyZWN0IHBhZ2Ugc2l6ZQogLS0gU3VwcHJlc3MgdGhlIERFVEFJTCBtZXNzYWdlLCB0byBh bGxvdyB0aGUgdGVzdHMgdG8gd29yayBhY3Jvc3MgdmFyaW91cwogLS0gcGFnZSBzaXplcy4K ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGFnZWluc3BlY3Qvc3FsL3BhZ2Uuc3FsIGIvY29udHJp Yi9wYWdlaW5zcGVjdC9zcWwvcGFnZS5zcWwKaW5kZXggNWJmZjU2OGQzYjUuLjE4NmRkYTFl OGQwIDEwMDY0NAotLS0gYS9jb250cmliL3BhZ2VpbnNwZWN0L3NxbC9wYWdlLnNxbAorKysg Yi9jb250cmliL3BhZ2VpbnNwZWN0L3NxbC9wYWdlLnNxbApAQCAtODQsNiArODQsMjMgQEAg Q1JFQVRFIFRFTVAgVEFCTEUgdGVzdDEgKGEgaW50LCBiIGludCk7CiAgICAgZnJvbSBoZWFw X3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OCcsIDApKTsKIGRyb3AgdGFibGUgdGVz dDg7CiAKKy0tIGNoZWNrIHN0b3JhZ2Ugb2YgZ2VuZXJhdGVkIGNvbHVtbnMKKy0tIHN0b3Jl ZAorY3JlYXRlIHRhYmxlIHRlc3Q5cyAoYSBpbnQgbm90IG51bGwsIGIgaW50IGdlbmVyYXRl ZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQpOworaW5zZXJ0IGludG8gdGVzdDlzIHZhbHVl cyAoMTMxNTg0KTsKK3NlbGVjdCB0X2luZm9tYXNrLCB0X2JpdHMsIHRfZGF0YSBmcm9tIGhl YXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q5cycsIDApKTsKK3NlbGVjdCB0dXBs ZV9kYXRhX3NwbGl0KCd0ZXN0OXMnOjpyZWdjbGFzcywgdF9kYXRhLCB0X2luZm9tYXNrLCB0 X2luZm9tYXNrMiwgdF9iaXRzKQorICAgIGZyb20gaGVhcF9wYWdlX2l0ZW1zKGdldF9yYXdf cGFnZSgndGVzdDlzJywgMCkpOworZHJvcCB0YWJsZSB0ZXN0OXM7CisKKy0tIHZpcnR1YWwK K2NyZWF0ZSB0YWJsZSB0ZXN0OXYgKGEgaW50IG5vdCBudWxsLCBiIGludCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChhICogMikgdmlydHVhbCk7CitpbnNlcnQgaW50byB0ZXN0OXYgdmFsdWVz ICgxMzE1ODQpOworc2VsZWN0IHRfaW5mb21hc2ssIHRfYml0cywgdF9kYXRhIGZyb20gaGVh cF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdDl2JywgMCkpOworc2VsZWN0IHR1cGxl X2RhdGFfc3BsaXQoJ3Rlc3Q5dic6OnJlZ2NsYXNzLCB0X2RhdGEsIHRfaW5mb21hc2ssIHRf aW5mb21hc2syLCB0X2JpdHMpCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19w YWdlKCd0ZXN0OXYnLCAwKSk7Citkcm9wIHRhYmxlIHRlc3Q5djsKKwogLS0gRmFpbHVyZSB3 aXRoIGluY29ycmVjdCBwYWdlIHNpemUKIC0tIFN1cHByZXNzIHRoZSBERVRBSUwgbWVzc2Fn ZSwgdG8gYWxsb3cgdGhlIHRlc3RzIHRvIHdvcmsgYWNyb3NzIHZhcmlvdXMKIC0tIHBhZ2Ug c2l6ZXMuCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0 Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNf ZmR3Lm91dAppbmRleCBmM2ViMDU1ZTJjNy4uOTI2YzFmZGRiZTMgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKKysrIGIvY29u dHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dApAQCAtNzI4Myw2 NSArNzI4Myw2OCBAQCBzZWxlY3QgKiBmcm9tIHJlbTE7CiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBj cmVhdGUgdGFibGUgZ2xvYzEgKAogICBhIGludCwKLSAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoYSAqIDIpIHN0b3JlZCk7CisgIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEg KiAyKSBzdG9yZWQsCisgIGMgaW50CispOwogYWx0ZXIgdGFibGUgZ2xvYzEgc2V0IChhdXRv dmFjdXVtX2VuYWJsZWQgPSAnZmFsc2UnKTsKIGNyZWF0ZSBmb3JlaWduIHRhYmxlIGdyZW0x ICgKICAgYSBpbnQsCi0gIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9y ZWQpCi0gIHNlcnZlciBsb29wYmFjayBvcHRpb25zKHRhYmxlX25hbWUgJ2dsb2MxJyk7Cisg IGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQsCisgIGMgaW50IGdl bmVyYXRlZCBhbHdheXMgYXMgKGEgKiAzKSB2aXJ0dWFsCispIHNlcnZlciBsb29wYmFjayBv cHRpb25zKHRhYmxlX25hbWUgJ2dsb2MxJyk7CiBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBv ZmYpCiBpbnNlcnQgaW50byBncmVtMSAoYSkgdmFsdWVzICgxKSwgKDIpOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIEluc2VydCBvbiBwdWJsaWMuZ3JlbTEKLSAgIFJlbW90 ZSBTUUw6IElOU0VSVCBJTlRPIHB1YmxpYy5nbG9jMShhLCBiKSBWQUxVRVMgKCQxLCBERUZB VUxUKQorICAgUmVtb3RlIFNRTDogSU5TRVJUIElOVE8gcHVibGljLmdsb2MxKGEsIGIsIGMp IFZBTFVFUyAoJDEsIERFRkFVTFQsIERFRkFVTFQpCiAgICBCYXRjaCBTaXplOiAxCiAgICAt PiAgVmFsdWVzIFNjYW4gb24gIipWQUxVRVMqIgotICAgICAgICAgT3V0cHV0OiAiKlZBTFVF UyoiLmNvbHVtbjEsIE5VTEw6OmludGVnZXIKKyAgICAgICAgIE91dHB1dDogIipWQUxVRVMq Ii5jb2x1bW4xLCBOVUxMOjppbnRlZ2VyLCBOVUxMOjppbnRlZ2VyCiAoNSByb3dzKQogCiBp bnNlcnQgaW50byBncmVtMSAoYSkgdmFsdWVzICgxKSwgKDIpOwogZXhwbGFpbiAodmVyYm9z ZSwgY29zdHMgb2ZmKQogdXBkYXRlIGdyZW0xIHNldCBhID0gMjIgd2hlcmUgYSA9IDI7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBvbiBwdWJsaWMuZ3JlbTEKLSAg IFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMuZ2xvYzEgU0VUIGEgPSAkMiwgYiA9IERFRkFV TFQgV0hFUkUgY3RpZCA9ICQxCisgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmdsb2Mx IFNFVCBhID0gJDIsIGIgPSBERUZBVUxULCBjID0gREVGQVVMVCBXSEVSRSBjdGlkID0gJDEK ICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmdyZW0xCiAgICAgICAgICBPdXRwdXQ6 IDIyLCBjdGlkLCBncmVtMS4qCi0gICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwg Y3RpZCBGUk9NIHB1YmxpYy5nbG9jMSBXSEVSRSAoKGEgPSAyKSkgRk9SIFVQREFURQorICAg ICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGMsIGN0aWQgRlJPTSBwdWJsaWMuZ2xv YzEgV0hFUkUgKChhID0gMikpIEZPUiBVUERBVEUKICg1IHJvd3MpCiAKIHVwZGF0ZSBncmVt MSBzZXQgYSA9IDIyIHdoZXJlIGEgPSAyOwogc2VsZWN0ICogZnJvbSBnbG9jMTsKLSBhICB8 IGIgIAotLS0tLSstLS0tCi0gIDEgfCAgMgotIDIyIHwgNDQKKyBhICB8IGIgIHwgYyAKKy0t LS0rLS0tLSstLS0KKyAgMSB8ICAyIHwgIAorIDIyIHwgNDQgfCAgCiAoMiByb3dzKQogCiBz ZWxlY3QgKiBmcm9tIGdyZW0xOwotIGEgIHwgYiAgCi0tLS0tKy0tLS0KLSAgMSB8ICAyCi0g MjIgfCA0NAorIGEgIHwgYiAgfCBjICAKKy0tLS0rLS0tLSstLS0tCisgIDEgfCAgMiB8ICAz CisgMjIgfCA0NCB8IDY2CiAoMiByb3dzKQogCiBkZWxldGUgZnJvbSBncmVtMTsKIC0tIHRl c3QgY29weSBmcm9tCiBjb3B5IGdyZW0xIGZyb20gc3RkaW47CiBzZWxlY3QgKiBmcm9tIGds b2MxOwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCAyCi0gMiB8IDQKKyBhIHwgYiB8IGMgCist LS0rLS0tKy0tLQorIDEgfCAyIHwgIAorIDIgfCA0IHwgIAogKDIgcm93cykKIAogc2VsZWN0 ICogZnJvbSBncmVtMTsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgMgotIDIgfCA0CisgYSB8 IGIgfCBjIAorLS0tKy0tLSstLS0KKyAxIHwgMiB8IDMKKyAyIHwgNCB8IDYKICgyIHJvd3Mp CiAKIGRlbGV0ZSBmcm9tIGdyZW0xOwpAQCAtNzM0OSwyOCArNzM1MiwyOCBAQCBkZWxldGUg ZnJvbSBncmVtMTsKIGFsdGVyIHNlcnZlciBsb29wYmFjayBvcHRpb25zIChhZGQgYmF0Y2hf c2l6ZSAnMTAnKTsKIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9mZikKIGluc2VydCBpbnRv IGdyZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgSW5zZXJ0IG9uIHB1YmxpYy5ncmVtMQotICAgUmVtb3RlIFNRTDogSU5TRVJUIElO VE8gcHVibGljLmdsb2MxKGEsIGIpIFZBTFVFUyAoJDEsIERFRkFVTFQpCisgICBSZW1vdGUg U1FMOiBJTlNFUlQgSU5UTyBwdWJsaWMuZ2xvYzEoYSwgYiwgYykgVkFMVUVTICgkMSwgREVG QVVMVCwgREVGQVVMVCkKICAgIEJhdGNoIFNpemU6IDEwCiAgICAtPiAgVmFsdWVzIFNjYW4g b24gIipWQUxVRVMqIgotICAgICAgICAgT3V0cHV0OiAiKlZBTFVFUyoiLmNvbHVtbjEsIE5V TEw6OmludGVnZXIKKyAgICAgICAgIE91dHB1dDogIipWQUxVRVMqIi5jb2x1bW4xLCBOVUxM OjppbnRlZ2VyLCBOVUxMOjppbnRlZ2VyCiAoNSByb3dzKQogCiBpbnNlcnQgaW50byBncmVt MSAoYSkgdmFsdWVzICgxKSwgKDIpOwogc2VsZWN0ICogZnJvbSBnbG9jMTsKLSBhIHwgYiAK LS0tLSstLS0KLSAxIHwgMgotIDIgfCA0CisgYSB8IGIgfCBjIAorLS0tKy0tLSstLS0KKyAx IHwgMiB8ICAKKyAyIHwgNCB8ICAKICgyIHJvd3MpCiAKIHNlbGVjdCAqIGZyb20gZ3JlbTE7 Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSAyIHwgNAorIGEgfCBiIHwgYyAKKy0tLSst LS0rLS0tCisgMSB8IDIgfCAzCisgMiB8IDQgfCA2CiAoMiByb3dzKQogCiBkZWxldGUgZnJv bSBncmVtMTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jl c19mZHcuc3FsIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwK aW5kZXggMDczNDcxNmFkOTAuLjA1OGQ1MzM2NGRiIDEwMDY0NAotLS0gYS9jb250cmliL3Bv c3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbAorKysgYi9jb250cmliL3Bvc3RncmVz X2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbApAQCAtMTgzNiwxMiArMTgzNiwxNSBAQCBDUkVB VEUgVklFVyByd192aWV3IEFTIFNFTEVDVCAqIEZST00gcGFyZW50X3RibCBXSEVSRSBhIDwg NSBXSVRIIENIRUNLIE9QVElPTjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIGNyZWF0ZSB0YWJsZSBn bG9jMSAoCiAgIGEgaW50LAotICBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikg c3RvcmVkKTsKKyAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCwK KyAgYyBpbnQKKyk7CiBhbHRlciB0YWJsZSBnbG9jMSBzZXQgKGF1dG92YWN1dW1fZW5hYmxl ZCA9ICdmYWxzZScpOwogY3JlYXRlIGZvcmVpZ24gdGFibGUgZ3JlbTEgKAogICBhIGludCwK LSAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCkKLSAgc2VydmVy IGxvb3BiYWNrIG9wdGlvbnModGFibGVfbmFtZSAnZ2xvYzEnKTsKKyAgYiBpbnQgZ2VuZXJh dGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCwKKyAgYyBpbnQgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoYSAqIDMpIHZpcnR1YWwKKykgc2VydmVyIGxvb3BiYWNrIG9wdGlvbnModGFibGVf bmFtZSAnZ2xvYzEnKTsKIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9mZikKIGluc2VydCBp bnRvIGdyZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7CiBpbnNlcnQgaW50byBncmVtMSAoYSkg dmFsdWVzICgxKSwgKDIpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBiNjU0ZmFlMWIyZi4uNTc5 YjFkNjE2NjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0xMzE4LDggKzEzMTgsOCBAQCA8dGl0 bGU+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRs ZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgogICAgICAgIElmIGEgemVybyBieXRl ICg8bGl0ZXJhbD4nJzwvbGl0ZXJhbD4pLCB0aGVuIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4u Ci0gICAgICAgT3RoZXJ3aXNlLCA8bGl0ZXJhbD5zPC9saXRlcmFsPiA9IHN0b3JlZC4gIChP dGhlciB2YWx1ZXMgbWlnaHQgYmUgYWRkZWQKLSAgICAgICBpbiB0aGUgZnV0dXJlLikKKyAg ICAgICBPdGhlcndpc2UsIDxsaXRlcmFsPnM8L2xpdGVyYWw+ID0gc3RvcmVkLCA8bGl0ZXJh bD52PC9saXRlcmFsPiA9CisgICAgICAgdmlydHVhbC4KICAgICAgIDwvcGFyYT48L2VudHJ5 PgogICAgICA8L3Jvdz4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIv ZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDYyNmQzNTUxNGNjLi43ODVhZTZhYTA0ZiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbApAQCAtMzYxLDcgKzM2MSw2IEBAIDx0aXRsZT5HZW5lcmF0ZWQgQ29sdW1uczwv dGl0bGU+CiAgICBzdG9yYWdlIGFuZCBpcyBjb21wdXRlZCB3aGVuIGl0IGlzIHJlYWQuICBU aHVzLCBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbgogICAgaXMgc2ltaWxhciB0byBhIHZp ZXcgYW5kIGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4gaXMgc2ltaWxhciB0byBhCiAgICBt YXRlcmlhbGl6ZWQgdmlldyAoZXhjZXB0IHRoYXQgaXQgaXMgYWx3YXlzIHVwZGF0ZWQgYXV0 b21hdGljYWxseSkuCi0gICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ IGN1cnJlbnRseSBpbXBsZW1lbnRzIG9ubHkgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zLgog ICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0zNzEsMTIgKzM3MCwxMiBAQCA8dGl0bGU+R2Vu ZXJhdGVkIENvbHVtbnM8L3RpdGxlPgogQ1JFQVRFIFRBQkxFIHBlb3BsZSAoCiAgICAgLi4u LAogICAgIGhlaWdodF9jbSBudW1lcmljLAotICAgIGhlaWdodF9pbiBudW1lcmljIDxlbXBo YXNpcz5HRU5FUkFURUQgQUxXQVlTIEFTIChoZWlnaHRfY20gLyAyLjU0KSBTVE9SRUQ8L2Vt cGhhc2lzPgorICAgIGhlaWdodF9pbiBudW1lcmljIDxlbXBoYXNpcz5HRU5FUkFURUQgQUxX QVlTIEFTIChoZWlnaHRfY20gLyAyLjU0KTwvZW1waGFzaXM+CiApOwogPC9wcm9ncmFtbGlz dGluZz4KLSAgIFRoZSBrZXl3b3JkIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gbXVzdCBi ZSBzcGVjaWZpZWQgdG8gY2hvb3NlIHRoZQotICAgc3RvcmVkIGtpbmQgb2YgZ2VuZXJhdGVk IGNvbHVtbi4gIFNlZSA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUiLz4gZm9yCi0g ICBtb3JlIGRldGFpbHMuCisgICBBIGdlbmVyYXRlZCBjb2x1bW4gaXMgYnkgZGVmYXVsdCBv ZiB0aGUgdmlydHVhbCBraW5kLiAgVXNlIHRoZSBrZXl3b3JkcworICAgPGxpdGVyYWw+VklS VFVBTDwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiB0byBtYWtlIHRo ZSBjaG9pY2UKKyAgIGV4cGxpY2l0LiAgU2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV0 YWJsZSIvPiBmb3IgbW9yZSBkZXRhaWxzLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC00 NDIsMTIgKzQ0MSwxOCBAQCA8dGl0bGU+R2VuZXJhdGVkIENvbHVtbnM8L3RpdGxlPgogICAg ICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgogICAgICAgICBJZiBhIHBhcmVudCBjb2x1 bW4gaXMgYSBnZW5lcmF0ZWQgY29sdW1uLCBpdHMgY2hpbGQgY29sdW1uIG11c3QgYWxzbwot ICAgICAgICBiZSBhIGdlbmVyYXRlZCBjb2x1bW47IGhvd2V2ZXIsIHRoZSBjaGlsZCBjb2x1 bW4gY2FuIGhhdmUgYQotICAgICAgICBkaWZmZXJlbnQgZ2VuZXJhdGlvbiBleHByZXNzaW9u LiAgVGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbiB0aGF0IGlzCisgICAgICAgIGJlIGEgZ2Vu ZXJhdGVkIGNvbHVtbiBvZiB0aGUgc2FtZSBraW5kIChzdG9yZWQgb3IgdmlydHVhbCk7IGhv d2V2ZXIsCisgICAgICAgIHRoZSBjaGlsZCBjb2x1bW4gY2FuIGhhdmUgYSBkaWZmZXJlbnQg Z2VuZXJhdGlvbiBleHByZXNzaW9uLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJh PgorICAgICAgICBGb3Igc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zLCB0aGUgZ2VuZXJhdGlv biBleHByZXNzaW9uIHRoYXQgaXMKICAgICAgICAgYWN0dWFsbHkgYXBwbGllZCBkdXJpbmcg aW5zZXJ0IG9yIHVwZGF0ZSBvZiBhIHJvdyBpcyB0aGUgb25lCi0gICAgICAgIGFzc29jaWF0 ZWQgd2l0aCB0aGUgdGFibGUgdGhhdCB0aGUgcm93IGlzIHBoeXNpY2FsbHkgaW4uCi0gICAg ICAgIChUaGlzIGlzIHVubGlrZSB0aGUgYmVoYXZpb3IgZm9yIGNvbHVtbiBkZWZhdWx0czog Zm9yIHRob3NlLCB0aGUKLSAgICAgICAgZGVmYXVsdCB2YWx1ZSBhc3NvY2lhdGVkIHdpdGgg dGhlIHRhYmxlIG5hbWVkIGluIHRoZSBxdWVyeSBhcHBsaWVzLikKKyAgICAgICAgYXNzb2Np YXRlZCB3aXRoIHRoZSB0YWJsZSB0aGF0IHRoZSByb3cgaXMgcGh5c2ljYWxseSBpbi4gIChU aGlzIGlzCisgICAgICAgIHVubGlrZSB0aGUgYmVoYXZpb3IgZm9yIGNvbHVtbiBkZWZhdWx0 czogZm9yIHRob3NlLCB0aGUgZGVmYXVsdCB2YWx1ZQorICAgICAgICBhc3NvY2lhdGVkIHdp dGggdGhlIHRhYmxlIG5hbWVkIGluIHRoZSBxdWVyeSBhcHBsaWVzLikgIEZvciB2aXJ0dWFs CisgICAgICAgIGdlbmVyYXRlZCBjb2x1bW5zLCB0aGUgZ2VuZXJhdGlvbiBleHByZXNzaW9u IG9mIHRoZSB0YWJsZSBuYW1lZCBpbiB0aGUKKyAgICAgICAgcXVlcnkgYXBwbGllcyB3aGVu IGEgdGFibGUgaXMgcmVhZC4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgog ICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90 YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCmluZGV4IDZh MjgyMmFkYWQ3Li4xMDY0NzMzMjYyMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dt bApAQCAtMjcxLDYgKzI3MSwxMSBAQCA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgogICAg ICAgaW4gdGhlIGNvbHVtbiBpcyByZXdyaXR0ZW4gYW5kIGFsbCB0aGUgZnV0dXJlIGNoYW5n ZXMgd2lsbCBhcHBseSB0aGUgbmV3CiAgICAgICBnZW5lcmF0aW9uIGV4cHJlc3Npb24uCiAg ICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBpcyBjdXJyZW50 bHkgb25seSBzdXBwb3J0ZWQgZm9yIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyAobm90Cisg ICAgICB2aXJ0dWFsIG9uZXMpLgorICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAg IDwvdmFybGlzdGVudHJ5PgogCkBAIC0yODMsMTAgKzI4OCwxNSBAQCA8dGl0bGU+RGVzY3Jp cHRpb248L3RpdGxlPgogICAgICAgbG9uZ2VyIGFwcGx5IHRoZSBnZW5lcmF0aW9uIGV4cHJl c3Npb24uCiAgICAgIDwvcGFyYT4KIAorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBp cyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgZm9yIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1u cyAobm90CisgICAgICB2aXJ0dWFsIG9uZXMpLgorICAgICA8L3BhcmE+CisKICAgICAgPHBh cmE+CiAgICAgICBJZiA8bGl0ZXJhbD5EUk9QIEVYUFJFU1NJT04gSUYgRVhJU1RTPC9saXRl cmFsPiBpcyBzcGVjaWZpZWQgYW5kIHRoZQotICAgICAgY29sdW1uIGlzIG5vdCBhIHN0b3Jl ZCBnZW5lcmF0ZWQgY29sdW1uLCBubyBlcnJvciBpcyB0aHJvd24uICBJbiB0aGlzCi0gICAg ICBjYXNlIGEgbm90aWNlIGlzIGlzc3VlZCBpbnN0ZWFkLgorICAgICAgY29sdW1uIGlzIG5v dCBhIGdlbmVyYXRlZCBjb2x1bW4sIG5vIGVycm9yIGlzIHRocm93bi4gIEluIHRoaXMgY2Fz ZSBhCisgICAgICBub3RpY2UgaXMgaXNzdWVkIGluc3RlYWQuCiAgICAgIDwvcGFyYT4KICAg ICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwKaW5kZXggZGM0YjkwNzU5OTAuLjIxYjVkNmEx NGQwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxl LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5zZ21s CkBAIC00Nyw3ICs0Nyw3IEBACiAgIE5VTEwgfAogICBDSEVDSyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBbIE5PIElOSEVS SVQgXSB8CiAgIERFRkFVTFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFi bGU+IHwKLSAgR0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9u X2V4cHI8L3JlcGxhY2VhYmxlPiApIFNUT1JFRCB9CisgIEdFTkVSQVRFRCBBTFdBWVMgQVMg KCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBbIFNUT1JF RCB8IFZJUlRVQUwgXSB9CiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CiAK QEAgLTI3NSw3ICsyNzUsNyBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgICA8L3Zh cmxpc3RlbnRyeT4KIAogICAgPHZhcmxpc3RlbnRyeT4KLSAgICA8dGVybT48bGl0ZXJhbD5H RU5FUkFURUQgQUxXQVlTIEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVw bGFjZWFibGU+ICkgU1RPUkVEPC9saXRlcmFsPjxpbmRleHRlcm0+PHByaW1hcnk+Z2VuZXJh dGVkIGNvbHVtbjwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisgICAgPHRlcm0+PGxp dGVyYWw+R0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4 cHI8L3JlcGxhY2VhYmxlPiApIFsgU1RPUkVEIHwgVklSVFVBTCBdPC9saXRlcmFsPjxpbmRl eHRlcm0+PHByaW1hcnk+Z2VuZXJhdGVkIGNvbHVtbjwvcHJpbWFyeT48L2luZGV4dGVybT48 L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAgICAgIFRoaXMgY2xhdXNl IGNyZWF0ZXMgdGhlIGNvbHVtbiBhcyBhIDxmaXJzdHRlcm0+Z2VuZXJhdGVkCkBAIC0yODQs MTAgKzI4NCwxMyBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgICAgIDwvcGFyYT4K IAogICAgICA8cGFyYT4KLSAgICAgIFRoZSBrZXl3b3JkIDxsaXRlcmFsPlNUT1JFRDwvbGl0 ZXJhbD4gaXMgcmVxdWlyZWQgdG8gc2lnbmlmeSB0aGF0IHRoZQorICAgICAgV2hlbiA8bGl0 ZXJhbD5WSVJUVUFMPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSBjb2x1bW4gd2lsbCBi ZQorICAgICAgY29tcHV0ZWQgd2hlbiBpdCBpcyByZWFkLiAgKFRoZSBmb3JlaWduLWRhdGEg d3JhcHBlciB3aWxsIHNlZSBpdCBhcyBhCisgICAgICBudWxsIHZhbHVlIGluIG5ldyByb3dz IGFuZCBtYXkgY2hvb3NlIHRvIHN0b3JlIGl0IGFzIGEgbnVsbCB2YWx1ZSBvcgorICAgICAg aWdub3JlIGl0IGFsdG9nZXRoZXIuKSAgV2hlbiA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+ IGlzIHNwZWNpZmllZCwgdGhlCiAgICAgICBjb2x1bW4gd2lsbCBiZSBjb21wdXRlZCBvbiB3 cml0ZS4gIChUaGUgY29tcHV0ZWQgdmFsdWUgd2lsbCBiZSBwcmVzZW50ZWQKICAgICAgIHRv IHRoZSBmb3JlaWduLWRhdGEgd3JhcHBlciBmb3Igc3RvcmFnZSBhbmQgbXVzdCBiZSByZXR1 cm5lZCBvbgotICAgICAgcmVhZGluZy4pCisgICAgICByZWFkaW5nLikgIDxsaXRlcmFsPlZJ UlRVQUw8L2xpdGVyYWw+IGlzIHRoZSBkZWZhdWx0LgogICAgICA8L3BhcmE+CiAKICAgICAg PHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAppbmRleCA5M2IzZjY2NGYy MS4uZWU3OTg2N2Q5NjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Rh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAt NjUsNyArNjUsNyBAQAogICBOVUxMIHwKICAgQ0hFQ0sgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgWyBOTyBJTkhFUklUIF0g fAogICBERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxlPiB8 Ci0gIEdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHBy PC9yZXBsYWNlYWJsZT4gKSBTVE9SRUQgfAorICBHRU5FUkFURUQgQUxXQVlTIEFTICggPHJl cGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVwbGFjZWFibGU+ICkgWyBTVE9SRUQgfCBW SVJUVUFMIF0gfAogICBHRU5FUkFURUQgeyBBTFdBWVMgfCBCWSBERUZBVUxUIH0gQVMgSURF TlRJVFkgWyAoIDxyZXBsYWNlYWJsZT5zZXF1ZW5jZV9vcHRpb25zPC9yZXBsYWNlYWJsZT4g KSBdIHwKICAgVU5JUVVFIFsgTlVMTFMgWyBOT1QgXSBESVNUSU5DVCBdIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfAog ICBQUklNQVJZIEtFWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFy YW1ldGVyczwvcmVwbGFjZWFibGU+IHwKQEAgLTcyMCw4ICs3MjAsOSBAQCA8dGl0bGU+UGFy YW1ldGVyczwvdGl0bGU+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElORyBHRU5F UkFURUQ8L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8 cGFyYT4KLSAgICAgICAgICBBbnkgZ2VuZXJhdGlvbiBleHByZXNzaW9ucyBvZiBjb3BpZWQg Y29sdW1uIGRlZmluaXRpb25zIHdpbGwgYmUKLSAgICAgICAgICBjb3BpZWQuICBCeSBkZWZh dWx0LCBuZXcgY29sdW1ucyB3aWxsIGJlIHJlZ3VsYXIgYmFzZSBjb2x1bW5zLgorICAgICAg ICAgIEFueSBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIGFzIHdlbGwgYXMgdGhlIHN0b3JlZC92 aXJ0dWFsIGNob2ljZSBvZgorICAgICAgICAgIGNvcGllZCBjb2x1bW4gZGVmaW5pdGlvbnMg d2lsbCBiZSBjb3BpZWQuICBCeSBkZWZhdWx0LCBuZXcgY29sdW1ucworICAgICAgICAgIHdp bGwgYmUgcmVndWxhciBiYXNlIGNvbHVtbnMuCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC04OTcsNyArODk4LDcg QEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAgPC92YXJsaXN0ZW50cnk+CiAKICAg IDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1nZW5lcmF0ZWQtc3Rv cmVkIj4KLSAgICA8dGVybT48bGl0ZXJhbD5HRU5FUkFURUQgQUxXQVlTIEFTICggPHJlcGxh Y2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVwbGFjZWFibGU+ICkgU1RPUkVEPC9saXRlcmFs PjxpbmRleHRlcm0+PHByaW1hcnk+Z2VuZXJhdGVkIGNvbHVtbjwvcHJpbWFyeT48L2luZGV4 dGVybT48L3Rlcm0+CisgICAgPHRlcm0+PGxpdGVyYWw+R0VORVJBVEVEIEFMV0FZUyBBUyAo IDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFsgU1RPUkVE IHwgVklSVFVBTCBdPC9saXRlcmFsPjxpbmRleHRlcm0+PHByaW1hcnk+Z2VuZXJhdGVkIGNv bHVtbjwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAg ICA8cGFyYT4KICAgICAgIFRoaXMgY2xhdXNlIGNyZWF0ZXMgdGhlIGNvbHVtbiBhcyBhIDxm aXJzdHRlcm0+Z2VuZXJhdGVkCkBAIC05MDYsOCArOTA3LDExIEBAIDx0aXRsZT5QYXJhbWV0 ZXJzPC90aXRsZT4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgotICAgICAgVGhlIGtl eXdvcmQgPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBpcyByZXF1aXJlZCB0byBzaWduaWZ5 IHRoYXQgdGhlCi0gICAgICBjb2x1bW4gd2lsbCBiZSBjb21wdXRlZCBvbiB3cml0ZSBhbmQg d2lsbCBiZSBzdG9yZWQgb24gZGlzay4KKyAgICAgIFdoZW4gPGxpdGVyYWw+VklSVFVBTDwv bGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUgY29sdW1uIHdpbGwgYmUKKyAgICAgIGNvbXB1 dGVkIHdoZW4gaXQgaXMgcmVhZCwgYW5kIGl0IHdpbGwgbm90IG9jY3VweSBhbnkgc3RvcmFn ZS4gIFdoZW4KKyAgICAgIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVk LCB0aGUgY29sdW1uIHdpbGwgYmUgY29tcHV0ZWQgb24KKyAgICAgIHdyaXRlIGFuZCB3aWxs IGJlIHN0b3JlZCBvbiBkaXNrLiAgPGxpdGVyYWw+VklSVFVBTDwvbGl0ZXJhbD4gaXMgdGhl CisgICAgICBkZWZhdWx0LgogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+CkBAIC0yMzgw LDkgKzIzODQsOSBAQCA8dGl0bGU+TXVsdGlwbGUgSWRlbnRpdHkgQ29sdW1uczwvdGl0bGU+ CiAgICA8dGl0bGU+R2VuZXJhdGVkIENvbHVtbnM8L3RpdGxlPgogCiAgICA8cGFyYT4KLSAg ICBUaGUgb3B0aW9uIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gaXMgbm90IHN0YW5kYXJk IGJ1dCBpcyBhbHNvIHVzZWQgYnkKLSAgICBvdGhlciBTUUwgaW1wbGVtZW50YXRpb25zLiAg VGhlIFNRTCBzdGFuZGFyZCBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBzdG9yYWdlCi0gICAgb2Yg Z2VuZXJhdGVkIGNvbHVtbnMuCisgICAgVGhlIG9wdGlvbnMgPGxpdGVyYWw+U1RPUkVEPC9s aXRlcmFsPiBhbmQgPGxpdGVyYWw+VklSVFVBTDwvbGl0ZXJhbD4gYXJlCisgICAgbm90IHN0 YW5kYXJkIGJ1dCBhcmUgYWxzbyB1c2VkIGJ5IG90aGVyIFNRTCBpbXBsZW1lbnRhdGlvbnMu ICBUaGUgU1FMCisgICAgc3RhbmRhcmQgZG9lcyBub3Qgc3BlY2lmeSB0aGUgc3RvcmFnZSBv ZiBnZW5lcmF0ZWQgY29sdW1ucy4KICAgIDwvcGFyYT4KICAgPC9yZWZzZWN0Mj4KIApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdHJpZ2dlci5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdHJpZ2dlci5zZ21sCmluZGV4IDk4MmFiNmYzZWU0Li43NTJm ZTUwODYwYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdHJpZ2dlci5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RyaWdnZXIuc2dtbApAQCAtMjc5 LDcgKzI3OSw3IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgICAgPHBhcmE+CiAg ICAgICA8bGl0ZXJhbD5JTlNURUFEIE9GIFVQREFURTwvbGl0ZXJhbD4gZXZlbnRzIGRvIG5v dCBhbGxvdyBhIGxpc3Qgb2YgY29sdW1ucy4KICAgICAgIEEgY29sdW1uIGxpc3QgY2Fubm90 IGJlIHNwZWNpZmllZCB3aGVuIHJlcXVlc3RpbmcgdHJhbnNpdGlvbiByZWxhdGlvbnMsCi0g ICAgICBlaXRoZXIuCisgICAgICBlaXRoZXIuICBWaXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5z IGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoZSBjb2x1bW4gbGlzdC4KICAgICAgPC9wYXJhPgog ICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC90cmlnZ2VyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sCmluZGV4 IDMxNjI2NTM2YTJlLi41OTUzZDI0YWU4ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Ry aWdnZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sCkBAIC0yODksNiAr Mjg5LDEwIEBAIDx0aXRsZT5PdmVydmlldyBvZiBUcmlnZ2VyIEJlaGF2aW9yPC90aXRsZT4K ICAgICA8bGl0ZXJhbD5CRUZPUkU8L2xpdGVyYWw+IHRyaWdnZXIuICBDaGFuZ2VzIHRvIHRo ZSB2YWx1ZSBvZiBhIGdlbmVyYXRlZAogICAgIGNvbHVtbiBpbiBhIDxsaXRlcmFsPkJFRk9S RTwvbGl0ZXJhbD4gdHJpZ2dlciBhcmUgaWdub3JlZCBhbmQgd2lsbCBiZQogICAgIG92ZXJ3 cml0dGVuLgorICAgIFZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5ldmVyIGNvbXB1 dGVkIHdoZW4gdHJpZ2dlcnMgZmlyZS4gIEluIHRoZSBDCisgICAgbGFuZ3VhZ2UgaW50ZXJm YWNlLCB0aGVpciBjb250ZW50IGlzIHVuZGVmaW5lZCBpbiBhIHRyaWdnZXIgZnVuY3Rpb24u CisgICAgSGlnaGVyLWxldmVsIHByb2dyYW1taW5nIGxhbmd1YWdlcyBzaG91bGQgcHJldmVu dCBhY2Nlc3MgdG8gdmlydHVhbAorICAgIGdlbmVyYXRlZCBjb2x1bW5zIGluIHRyaWdnZXJz LgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9jb21tb24vdHVwZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi90dXBk ZXNjLmMKaW5kZXggNDczNzlmZWYyMjAuLjEzODQwYmE1MzNjIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvY29tbW9uL3R1cGRlc2MuYwpAQCAtMTkwLDYgKzE5MCw3IEBAIENyZWF0ZVR1cGxlRGVz Y0NvcHlDb25zdHIoVHVwbGVEZXNjIHR1cGRlc2MpCiAKIAkJY3B5LT5oYXNfbm90X251bGwg PSBjb25zdHItPmhhc19ub3RfbnVsbDsKIAkJY3B5LT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCA9 IGNvbnN0ci0+aGFzX2dlbmVyYXRlZF9zdG9yZWQ7CisJCWNweS0+aGFzX2dlbmVyYXRlZF92 aXJ0dWFsID0gY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWw7CiAKIAkJaWYgKChjcHkt Pm51bV9kZWZ2YWwgPSBjb25zdHItPm51bV9kZWZ2YWwpID4gMCkKIAkJewpAQCAtNDk0LDYg KzQ5NSw4IEBAIGVxdWFsVHVwbGVEZXNjcyhUdXBsZURlc2MgdHVwZGVzYzEsIFR1cGxlRGVz YyB0dXBkZXNjMikKIAkJCXJldHVybiBmYWxzZTsKIAkJaWYgKGNvbnN0cjEtPmhhc19nZW5l cmF0ZWRfc3RvcmVkICE9IGNvbnN0cjItPmhhc19nZW5lcmF0ZWRfc3RvcmVkKQogCQkJcmV0 dXJuIGZhbHNlOworCQlpZiAoY29uc3RyMS0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsICE9IGNv bnN0cjItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKKwkJCXJldHVybiBmYWxzZTsKIAkJbiA9 IGNvbnN0cjEtPm51bV9kZWZ2YWw7CiAJCWlmIChuICE9IChpbnQpIGNvbnN0cjItPm51bV9k ZWZ2YWwpCiAJCQlyZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMKaW5kZXgg YzU5MGEyYWRjMzUuLjg5ZDZkMjAyNWZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jCkBA IC0xMDEyLDYgKzEwMTIsMTAgQEAgZXhhbWluZV9hdHRyaWJ1dGUoUmVsYXRpb24gb25lcmVs LCBpbnQgYXR0bnVtLCBOb2RlICppbmRleF9leHByKQogCWlmIChhdHRyLT5hdHRpc2Ryb3Bw ZWQpCiAJCXJldHVybiBOVUxMOwogCisJLyogRG9uJ3QgYW5hbHl6ZSB2aXJ0dWFsIGdlbmVy YXRlZCBjb2x1bW5zICovCisJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVf R0VORVJBVEVEX1ZJUlRVQUwpCisJCXJldHVybiBOVUxMOworCiAJLyoKIAkgKiBHZXQgYXR0 c3RhdHRhcmdldCB2YWx1ZS4gIFNldCB0byAtMSBpZiBudWxsLiAgKEFuYWx5emUgZnVuY3Rp b25zIGV4cGVjdAogCSAqIC0xIHRvIG1lYW4gdXNlIGRlZmF1bHRfc3RhdGlzdGljc190YXJn ZXQ7IHNlZSBmb3IgZXhhbXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv aW5kZXhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwppbmRleCBj NWE1NmM3NWY2OS4uZWM0ZThiYzM5MDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2luZGV4Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5j CkBAIC0xMDg1LDYgKzEwODUsOSBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkvKgog CSAqIFdlIGRpc2FsbG93IGluZGV4ZXMgb24gc3lzdGVtIGNvbHVtbnMuICBUaGV5IHdvdWxk IG5vdCBuZWNlc3NhcmlseSBnZXQKIAkgKiB1cGRhdGVkIGNvcnJlY3RseSwgYW5kIHRoZXkg ZG9uJ3Qgc2VlbSB1c2VmdWwgYW55d2F5LgorCSAqCisJICogQWxzbyBkaXNhbGxvdyB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIGluZGV4ZXMgKHVzZSBleHByZXNzaW9uCisJICog aW5kZXggaW5zdGVhZCkuCiAJICovCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRleEluZm8t PmlpX051bUluZGV4QXR0cnM7IGkrKykKIAl7CkBAIC0xMDk0LDE0ICsxMDk3LDIyIEBAIERl ZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJpbmRl eCBjcmVhdGlvbiBvbiBzeXN0ZW0gY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKwor CisJCWlmIChUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0bm8gLSAx KS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKKwkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24gdmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKIAl9CiAKIAkvKgotCSAqIEFsc28g Y2hlY2sgZm9yIHN5c3RlbSBjb2x1bW5zIHVzZWQgaW4gZXhwcmVzc2lvbnMgb3IgcHJlZGlj YXRlcy4KKwkgKiBBbHNvIGNoZWNrIGZvciBzeXN0ZW0gYW5kIGdlbmVyYXRlZCBjb2x1bW5z IHVzZWQgaW4gZXhwcmVzc2lvbnMgb3IKKwkgKiBwcmVkaWNhdGVzLgogCSAqLwogCWlmIChp bmRleEluZm8tPmlpX0V4cHJlc3Npb25zIHx8IGluZGV4SW5mby0+aWlfUHJlZGljYXRlKQog CXsKIAkJQml0bWFwc2V0ICAqaW5kZXhhdHRycyA9IE5VTEw7CisJCWludAkJCWo7CiAKIAkJ cHVsbF92YXJhdHRub3MoKE5vZGUgKikgaW5kZXhJbmZvLT5paV9FeHByZXNzaW9ucywgMSwg JmluZGV4YXR0cnMpOwogCQlwdWxsX3ZhcmF0dG5vcygoTm9kZSAqKSBpbmRleEluZm8tPmlp X1ByZWRpY2F0ZSwgMSwgJmluZGV4YXR0cnMpOwpAQCAtMTExNCw2ICsxMTI1LDIyIEBAIERl ZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAogCQkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24gc3lz dGVtIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CiAJCX0KKworCQkvKgorCQkgKiBY WFggVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiBpbmRleCBleHByZXNzaW9ucyBvciBw cmVkaWNhdGVzCisJCSAqIGNvdWxkIGJlIHN1cHBvcnRlZCwgYnV0IGl0IG5lZWRzIHN1cHBv cnQgaW4KKwkJICogUmVsYXRpb25HZXRJbmRleEV4cHJlc3Npb25zKCkgYW5kIFJlbGF0aW9u R2V0SW5kZXhQcmVkaWNhdGUoKS4KKwkJICovCisJCWogPSAtMTsKKwkJd2hpbGUgKChqID0g Ym1zX25leHRfbWVtYmVyKGluZGV4YXR0cnMsIGopKSA+PSAwKQorCQl7CisJCQlBdHRyTnVt YmVyCWF0dG5vID0gaiArIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXI7CisK KwkJCWlmIChUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0bm8gLSAx KS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24gdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKwkJfQogCX0KIAogCS8qIElz IGluZGV4IHNhZmUgZm9yIG90aGVycyB0byBpZ25vcmU/ICBTZWUgc2V0X2luZGV4c2FmZV9w cm9jZmxhZ3MoKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwppbmRleCAxZGIzZWY2 OWQyMi4uNzQ0YjM1MDhjMjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0 YXRzY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCkBAIC0y NDYsNiArMjQ2LDEyIEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10 KQogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJ CQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBvbiBzeXN0ZW0gY29sdW1ucyBpcyBu b3Qgc3VwcG9ydGVkIikpKTsKIAorCQkJLyogRGlzYWxsb3cgdXNlIG9mIHZpcnR1YWwgZ2Vu ZXJhdGVkIGNvbHVtbnMgaW4gZXh0ZW5kZWQgc3RhdHMgKi8KKwkJCWlmIChhdHRGb3JtLT5h dHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCksCisJCQkJCQkgZXJybXNnKCJzdGF0aXN0aWNzIGNyZWF0aW9uIG9uIHZpcnR1YWwgZ2Vu ZXJhdGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CisKIAkJCS8qIERpc2FsbG93 IGRhdGEgdHlwZXMgd2l0aG91dCBhIGxlc3MtdGhhbiBvcGVyYXRvciAqLwogCQkJdHlwZSA9 IGxvb2t1cF90eXBlX2NhY2hlKGF0dEZvcm0tPmF0dHR5cGlkLCBUWVBFQ0FDSEVfTFRfT1BS KTsKIAkJCWlmICh0eXBlLT5sdF9vcHIgPT0gSW52YWxpZE9pZCkKQEAgLTI2OSw2ICsyNzUs MTIgQEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0bXQgKnN0bXQpCiAJCQkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCQkgZXJybXNn KCJzdGF0aXN0aWNzIGNyZWF0aW9uIG9uIHN5c3RlbSBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0 ZWQiKSkpOwogCisJCQkvKiBEaXNhbGxvdyB1c2Ugb2YgdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1ucyBpbiBleHRlbmRlZCBzdGF0cyAqLworCQkJaWYgKGdldF9hdHRnZW5lcmF0ZWQocmVs aWQsIHZhci0+dmFyYXR0bm8pID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBvbiB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOworCiAJCQkvKiBE aXNhbGxvdyBkYXRhIHR5cGVzIHdpdGhvdXQgYSBsZXNzLXRoYW4gb3BlcmF0b3IgKi8KIAkJ CXR5cGUgPSBsb29rdXBfdHlwZV9jYWNoZSh2YXItPnZhcnR5cGUsIFRZUEVDQUNIRV9MVF9P UFIpOwogCQkJaWYgKHR5cGUtPmx0X29wciA9PSBJbnZhbGlkT2lkKQpAQCAtMjkwLDcgKzMw Miw2IEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10KQogCiAJCQlB c3NlcnQoZXhwciAhPSBOVUxMKTsKIAotCQkJLyogRGlzYWxsb3cgZXhwcmVzc2lvbnMgcmVm ZXJlbmNpbmcgc3lzdGVtIGF0dHJpYnV0ZXMuICovCiAJCQlwdWxsX3ZhcmF0dG5vcyhleHBy LCAxLCAmYXR0bnVtcyk7CiAKIAkJCWsgPSAtMTsKQEAgLTI5OCwxMCArMzA5LDE3IEBAIENy ZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10KQogCQkJewogCQkJCUF0dHJO dW1iZXIJYXR0bnVtID0gayArIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXI7 CiAKKwkJCQkvKiBEaXNhbGxvdyBleHByZXNzaW9ucyByZWZlcmVuY2luZyBzeXN0ZW0gYXR0 cmlidXRlcy4gKi8KIAkJCQlpZiAoYXR0bnVtIDw9IDApCiAJCQkJCWVyZXBvcnQoRVJST1Is CiAJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJ CQkJCSBlcnJtc2coInN0YXRpc3RpY3MgY3JlYXRpb24gb24gc3lzdGVtIGNvbHVtbnMgaXMg bm90IHN1cHBvcnRlZCIpKSk7CisKKwkJCQkvKiBEaXNhbGxvdyB1c2Ugb2YgdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1ucyBpbiBleHRlbmRlZCBzdGF0cyAqLworCQkJCWlmIChnZXRfYXR0 Z2VuZXJhdGVkKHJlbGlkLCBhdHRudW0pID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVB TCkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlv biBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOwog CQkJfQogCiAJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAxZjk0ZjRm ZGJiYy4uZjAwNDlkNzQyZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0y OTQwLDYgKzI5NDAsMTIgQEAgTWVyZ2VBdHRyaWJ1dGVzKExpc3QgKmNvbHVtbnMsIGNvbnN0 IExpc3QgKnN1cGVycywgY2hhciByZWxwZXJzaXN0ZW5jZSwKIAkJCQkJCQkJCSBlcnJoaW50 KCJBIGNoaWxkIHRhYmxlIGNvbHVtbiBjYW5ub3QgYmUgZ2VuZXJhdGVkIHVubGVzcyBpdHMg cGFyZW50IGNvbHVtbiBpcy4iKSkpOwogCQkJCQl9CiAKKwkJCQkJaWYgKGNvbGRlZi0+Z2Vu ZXJhdGVkICYmIHJlc3RkZWYtPmdlbmVyYXRlZCAmJiBjb2xkZWYtPmdlbmVyYXRlZCAhPSBy ZXN0ZGVmLT5nZW5lcmF0ZWQpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfQ09MVU1OX0RFRklOSVRJT04pLAorCQkJCQkJCQkgZXJy bXNnKCJjb2x1bW4gXCIlc1wiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBk aWZmZXJlbnQga2luZCIsCisJCQkJCQkJCQkJcmVzdGRlZi0+Y29sbmFtZSkpKTsKKwogCQkJ CQkvKgogCQkJCQkgKiBPdmVycmlkZSB0aGUgcGFyZW50J3MgZGVmYXVsdCB2YWx1ZSBmb3Ig dGhpcyBjb2x1bW4KIAkJCQkJICogKGNvbGRlZi0+Y29va2VkX2RlZmF1bHQpIHdpdGggdGhl IHBhcnRpdGlvbidzIGxvY2FsCkBAIC0zMjExLDYgKzMyMTcsMTIgQEAgTWVyZ2VDaGlsZEF0 dHJpYnV0ZShMaXN0ICppbmhfY29sdW1ucywgaW50IGV4aXN0X2F0dG5vLCBpbnQgbmV3Y29s X2F0dG5vLCBjb25zdAogCQkJCQkgZXJyaGludCgiQSBjaGlsZCB0YWJsZSBjb2x1bW4gY2Fu bm90IGJlIGdlbmVyYXRlZCB1bmxlc3MgaXRzIHBhcmVudCBjb2x1bW4gaXMuIikpKTsKIAl9 CiAKKwlpZiAoaW5oZGVmLT5nZW5lcmF0ZWQgJiYgbmV3ZGVmLT5nZW5lcmF0ZWQgJiYgbmV3 ZGVmLT5nZW5lcmF0ZWQgIT0gaW5oZGVmLT5nZW5lcmF0ZWQpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0NPTFVNTl9ERUZJTklUSU9OKSwKKwkJ CQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVt biBvZiBkaWZmZXJlbnQga2luZCIsCisJCQkJCQlpbmhkZWYtPmNvbG5hbWUpKSk7CisKIAkv KgogCSAqIElmIG5ldyBkZWYgaGFzIGEgZGVmYXVsdCwgb3ZlcnJpZGUgcHJldmlvdXMgZGVm YXVsdAogCSAqLwpAQCAtNjA0NCw3ICs2MDU2LDcgQEAgQVRSZXdyaXRlVGFibGUoQWx0ZXJl ZFRhYmxlSW5mbyAqdGFiLCBPaWQgT0lETmV3SGVhcCwgTE9DS01PREUgbG9ja21vZGUpCiAJ CXsKIAkJCWNhc2UgQ09OU1RSX0NIRUNLOgogCQkJCW5lZWRzY2FuID0gdHJ1ZTsKLQkJCQlj b24tPnF1YWxzdGF0ZSA9IEV4ZWNQcmVwYXJlRXhwcigoRXhwciAqKSBjb24tPnF1YWwsIGVz dGF0ZSk7CisJCQkJY29uLT5xdWFsc3RhdGUgPSBFeGVjUHJlcGFyZUV4cHIoKEV4cHIgKikg ZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4cHIoY29uLT5xdWFsLCBuZXdyZWwgPyBu ZXdyZWwgOiBvbGRyZWwpLCBlc3RhdGUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBDT05TVFJf Rk9SRUlHTjoKIAkJCQkvKiBOb3RoaW5nIHRvIGRvIGhlcmUgKi8KQEAgLTc3MzYsNiArNzc0 OCw3IEBAIEFURXhlY1NldE5vdE51bGwoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlv biByZWwsCiAJCQkJIGNvbnN0IGNoYXIgKmNvbE5hbWUsIExPQ0tNT0RFIGxvY2ttb2RlKQog ewogCUhlYXBUdXBsZQl0dXBsZTsKKwlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRUdXA7CiAJQXR0 ck51bWJlcglhdHRudW07CiAJUmVsYXRpb24JYXR0cl9yZWw7CiAJT2JqZWN0QWRkcmVzcyBh ZGRyZXNzOwpAQCAtNzc1Miw4ICs3NzY1LDggQEAgQVRFeGVjU2V0Tm90TnVsbChBbHRlcmVk VGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9DT0xVTU4pLAogCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRp b24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJCWNvbE5hbWUsIFJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJlbCkpKSk7Ci0KLQlhdHRudW0gPSAoKEZvcm1fcGdfYXR0cmlidXRl KSBHRVRTVFJVQ1QodHVwbGUpKS0+YXR0bnVtOworCWF0dFR1cCA9IChGb3JtX3BnX2F0dHJp YnV0ZSkgR0VUU1RSVUNUKHR1cGxlKTsKKwlhdHRudW0gPSBhdHRUdXAtPmF0dG51bTsKIAog CS8qIFByZXZlbnQgdGhlbSBmcm9tIGFsdGVyaW5nIGEgc3lzdGVtIGF0dHJpYnV0ZSAqLwog CWlmIChhdHRudW0gPD0gMCkKQEAgLTc3NjIsMTIgKzc3NzUsMjAgQEAgQVRFeGVjU2V0Tm90 TnVsbChBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJCQkgZXJybXNn KCJjYW5ub3QgYWx0ZXIgc3lzdGVtIGNvbHVtbiBcIiVzXCIiLAogCQkJCQkJY29sTmFtZSkp KTsKIAorCS8qIFRPRE86IHNlZSB0cmFuc2Zvcm1Db2x1bW5EZWZpbml0aW9uKCkgKi8KKwlp ZiAoYXR0VHVwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFM KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJub3QtbnVsbCBjb25zdHJhaW50cyBhcmUgbm90 IHN1cHBvcnRlZCBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIiksCisJCQkJIGVycmRl dGFpbCgiQ29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgYSB2aXJ0dWFsIGdl bmVyYXRlZCBjb2x1bW4uIiwKKwkJCQkJCSAgIGNvbE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbCkpKSk7CisKIAkvKgogCSAqIE9rYXksIGFjdHVhbGx5IHBlcmZvcm0gdGhl IGNhdGFsb2cgY2hhbmdlIC4uLiBpZiBuZWVkZWQKIAkgKi8KLQlpZiAoISgoRm9ybV9wZ19h dHRyaWJ1dGUpIEdFVFNUUlVDVCh0dXBsZSkpLT5hdHRub3RudWxsKQorCWlmICghYXR0VHVw LT5hdHRub3RudWxsKQogCXsKLQkJKChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHR1 cGxlKSktPmF0dG5vdG51bGwgPSB0cnVlOworCQlhdHRUdXAtPmF0dG5vdG51bGwgPSB0cnVl OwogCiAJCUNhdGFsb2dUdXBsZVVwZGF0ZShhdHRyX3JlbCwgJnR1cGxlLT50X3NlbGYsIHR1 cGxlKTsKIApAQCAtNzc3OCw3ICs3Nzk5LDcgQEAgQVRFeGVjU2V0Tm90TnVsbChBbHRlcmVk VGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJICogYWxyZWFkeSBmb3VuZCB0aGF0 IHdlIG11c3QgdmVyaWZ5IHNvbWUgb3RoZXIgbm90LW51bGwgY29uc3RyYWludC4KIAkJICov CiAJCWlmICghdGFiLT52ZXJpZnlfbmV3X25vdG51bGwgJiYKLQkJCSFOb3ROdWxsSW1wbGll ZEJ5UmVsQ29uc3RyYWludHMocmVsLCAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVDVCh0 dXBsZSkpKQorCQkJIU5vdE51bGxJbXBsaWVkQnlSZWxDb25zdHJhaW50cyhyZWwsIGF0dFR1 cCkpCiAJCXsKIAkJCS8qIFRlbGwgUGhhc2UgMyBpdCBuZWVkcyB0byB0ZXN0IHRoZSBjb25z dHJhaW50ICovCiAJCQl0YWItPnZlcmlmeV9uZXdfbm90bnVsbCA9IHRydWU7CkBAIC04MzYw LDcgKzgzODEsMTggQEAgQVRFeGVjU2V0RXhwcmVzc2lvbihBbHRlcmVkVGFibGVJbmZvICp0 YWIsIFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAkJCQkgZXJybXNnKCJj YW5ub3QgYWx0ZXIgc3lzdGVtIGNvbHVtbiBcIiVzXCIiLAogCQkJCQkJY29sTmFtZSkpKTsK IAotCWlmIChhdHRUdXAtPmF0dGdlbmVyYXRlZCAhPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NU T1JFRCkKKwkvKgorCSAqIFRPRE86IFRoaXMgY291bGQgYmUgZG9uZSwgYnV0IGl0IHdvdWxk IG5lZWQgYSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb246CisJICogbm8gcmV3cml0aW5nLCBi dXQgc3RpbGwgbmVlZCB0byByZWNoZWNrIGFueSBjb25zdHJhaW50cy4KKwkgKi8KKwlpZiAo YXR0VHVwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQkgZXJybXNnKCJBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlz IG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMiKSwKKwkJCQkg ZXJyZGV0YWlsKCJDb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBhIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbi4iLAorCQkJCQkJICAgY29sTmFtZSwgUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUocmVsKSkpKTsKKworCWlmICghYXR0VHVwLT5hdHRnZW5lcmF0ZWQpCiAJ CWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BS RVJFUVVJU0lURV9TVEFURSksCiAJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxh dGlvbiBcIiVzXCIgaXMgbm90IGEgZ2VuZXJhdGVkIGNvbHVtbiIsCkBAIC04NTE3LDE3ICs4 NTQ5LDMwIEBAIEFURXhlY0Ryb3BFeHByZXNzaW9uKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hh ciAqY29sTmFtZSwgYm9vbCBtaXNzaW5nX29rLCBMT0NLTU9ECiAJCQkJIGVycm1zZygiY2Fu bm90IGFsdGVyIHN5c3RlbSBjb2x1bW4gXCIlc1wiIiwKIAkJCQkJCWNvbE5hbWUpKSk7CiAK LQlpZiAoYXR0VHVwLT5hdHRnZW5lcmF0ZWQgIT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9S RUQpCisJLyoKKwkgKiBUT0RPOiBUaGlzIGNvdWxkIGJlIGRvbmUsIGJ1dCBpdCB3b3VsZCBu ZWVkIGEgdGFibGUgcmV3cml0ZSB0bworCSAqIG1hdGVyaWFsaXplIHRoZSBnZW5lcmF0ZWQg dmFsdWVzLiAgTm90ZSB0aGF0IGZvciB0aGUgdGltZSBiZWluZywgd2UKKwkgKiBzdGlsbCBl cnJvciB3aXRoIG1pc3Npbmdfb2ssIHNvIHRoYXQgd2UgZG9uJ3Qgc2lsZW50bHkgbGVhdmUg dGhlIGNvbHVtbgorCSAqIGFzIGdlbmVyYXRlZC4KKwkgKi8KKwlpZiAoYXR0VHVwLT5hdHRn ZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQkgZXJybXNnKCJBTFRFUiBUQUJMRSAvIERST1AgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9y dGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIiksCisJCQkJIGVycmRldGFpbCgi Q29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW4uIiwKKwkJCQkJCSAgIGNvbE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KHJlbCkpKSk7CisKKwlpZiAoIWF0dFR1cC0+YXR0Z2VuZXJhdGVkKQogCXsKIAkJaWYgKCFt aXNzaW5nX29rKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9P QkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCi0JCQkJCSBlcnJtc2coImNvbHVt biBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIG5vdCBhIHN0b3JlZCBnZW5lcmF0ZWQg Y29sdW1uIiwKKwkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVz XCIgaXMgbm90IGEgZ2VuZXJhdGVkIGNvbHVtbiIsCiAJCQkJCQkJY29sTmFtZSwgUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKIAkJZWxzZQogCQl7CiAJCQllcmVwb3J0KE5P VElDRSwKLQkJCQkJKGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIg aXMgbm90IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4sIHNraXBwaW5nIiwKKwkJCQkJKGVy cm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgZ2VuZXJh dGVkIGNvbHVtbiwgc2tpcHBpbmciLAogCQkJCQkJCWNvbE5hbWUsIFJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHJlbCkpKSk7CiAJCQloZWFwX2ZyZWV0dXBsZSh0dXBsZSk7CiAJCQl0YWJs ZV9jbG9zZShhdHRyZWxhdGlvbiwgUm93RXhjbHVzaXZlTG9jayk7CkBAIC05NzQ5LDYgKzk3 OTQsMTkgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRl cmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJCQkJCSBlcnJtc2coImludmFs aWQgJXMgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IGNvbnRhaW5pbmcgZ2Vu ZXJhdGVkIGNvbHVtbiIsCiAJCQkJCQkJCSJPTiBERUxFVEUiKSkpOwogCQl9CisKKwkJLyoK KwkJICogRktzIG9uIHZpcnR1YWwgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZC4gIFRoaXMg d291bGQgcmVxdWlyZQorCQkgKiB2YXJpb3VzIGFkZGl0aW9uYWwgc3VwcG9ydCBpbiByaV90 cmlnZ2Vycy5jLCBpbmNsdWRpbmcgc3BlY2lhbAorCQkgKiBoYW5kbGluZyBpbiByaV9OdWxs Q2hlY2soKSwgcmlfS2V5c0VxdWFsKCksCisJCSAqIFJJX0ZLZXlfZmtfdXBkX2NoZWNrX3Jl cXVpcmVkKCkgKHNpbmNlIGFsbCB2aXJ0dWFsIGNvbHVtbnMgYXBwZWFyCisJCSAqIGFzIE5V TEwgdGhlcmUpLiAgQWxzbyBub3QgcmVhbGx5IHByYWN0aWNhbCBhcyBsb25nIGFzIHlvdSBj YW4ndAorCQkgKiBpbmRleCB2aXJ0dWFsIGNvbHVtbnMuCisJCSAqLworCQlpZiAoYXR0Z2Vu ZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQkJIGVycm1zZygiZm9yZWlnbiBrZXkgY29uc3RyYWludHMgb24gdmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZCIpKSk7CiAJfQogCiAJLyoKQEAgLTExNzEz LDcgKzExNzcxLDcgQEAgQVRFeGVjVmFsaWRhdGVDb25zdHJhaW50KExpc3QgKip3cXVldWUs IFJlbGF0aW9uIHJlbCwgY2hhciAqY29uc3RyTmFtZSwKIAkJCXZhbCA9IFN5c0NhY2hlR2V0 QXR0ck5vdE51bGwoQ09OU1RST0lELCB0dXBsZSwKIAkJCQkJCQkJCQkgQW51bV9wZ19jb25z dHJhaW50X2NvbmJpbik7CiAJCQljb25iaW4gPSBUZXh0RGF0dW1HZXRDU3RyaW5nKHZhbCk7 Ci0JCQluZXdjb24tPnF1YWwgPSAoTm9kZSAqKSBzdHJpbmdUb05vZGUoY29uYmluKTsKKwkJ CW5ld2Nvbi0+cXVhbCA9IChOb2RlICopIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9l eHByKHN0cmluZ1RvTm9kZShjb25iaW4pLCByZWwpOwogCiAJCQkvKiBGaW5kIG9yIGNyZWF0 ZSB3b3JrIHF1ZXVlIGVudHJ5IGZvciB0aGlzIHRhYmxlICovCiAJCQl0YWIgPSBBVEdldFF1 ZXVlRW50cnkod3F1ZXVlLCByZWwpOwpAQCAtMTI3NTQsOCArMTI4MTIsMTIgQEAgQVRQcmVw QWx0ZXJDb2x1bW5UeXBlKExpc3QgKip3cXVldWUsCiAJCQkJCSAgIGxpc3RfbWFrZTFfb2lk KHJlbC0+cmRfcmVsLT5yZWx0eXBlKSwKIAkJCQkJICAgMCk7CiAKLQlpZiAodGFiLT5yZWxr aW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKLQkJdGFiLT5yZWxraW5kID09IFJFTEtJTkRf UEFSVElUSU9ORURfVEFCTEUpCisJaWYgKGF0dFR1cC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJ QlVURV9HRU5FUkFURURfVklSVFVBTCkKKwl7CisJCS8qIGRvIG5vdGhpbmcgKi8KKwl9CisJ ZWxzZSBpZiAodGFiLT5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKKwkJCSB0YWIt PnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAl7CiAJCS8qCiAJCSAq IFNldCB1cCBhbiBleHByZXNzaW9uIHRvIHRyYW5zZm9ybSB0aGUgb2xkIGRhdGEgdmFsdWUg dG8gdGhlIG5ldwpAQCAtMTc5MTIsOCArMTc5NzQsMTEgQEAgQ29tcHV0ZVBhcnRpdGlvbkF0 dHJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmVsYXRpb24gcmVsLCBMaXN0ICpwYXJ0UGFyYW1z LCBBdHRyTnUKIAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBwZWxlbS0+bG9j YXRpb24pKSk7CiAKIAkJCS8qCi0JCQkgKiBHZW5lcmF0ZWQgY29sdW1ucyBjYW5ub3Qgd29y azogVGhleSBhcmUgY29tcHV0ZWQgYWZ0ZXIgQkVGT1JFCi0JCQkgKiB0cmlnZ2VycywgYnV0 IHBhcnRpdGlvbiByb3V0aW5nIGlzIGRvbmUgYmVmb3JlIGFsbCB0cmlnZ2Vycy4KKwkJCSAq IFN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBjYW5ub3Qgd29yazogVGhleSBhcmUgY29tcHV0 ZWQgYWZ0ZXIKKwkJCSAqIEJFRk9SRSB0cmlnZ2VycywgYnV0IHBhcnRpdGlvbiByb3V0aW5n IGlzIGRvbmUgYmVmb3JlIGFsbAorCQkJICogdHJpZ2dlcnMuICBNYXliZSB2aXJ0dWFsIGdl bmVyYXRlZCBjb2x1bW5zIGNvdWxkIGJlIG1hZGUgdG8KKwkJCSAqIHdvcmssIGJ1dCB0aGVu IHRoZXkgd291bGQgbmVlZCB0byBiZSBoYW5kbGVkIGFzIGFuIGV4cHJlc3Npb24KKwkJCSAq IGJlbG93LgogCQkJICovCiAJCQlpZiAoYXR0Zm9ybS0+YXR0Z2VuZXJhdGVkKQogCQkJCWVy ZXBvcnQoRVJST1IsCkBAIC0xNzk5NSw5ICsxODA2MCwxMiBAQCBDb21wdXRlUGFydGl0aW9u QXR0cnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZWxhdGlvbiByZWwsIExpc3QgKnBhcnRQYXJh bXMsIEF0dHJOdQogCQkJCX0KIAogCQkJCS8qCi0JCQkJICogR2VuZXJhdGVkIGNvbHVtbnMg Y2Fubm90IHdvcms6IFRoZXkgYXJlIGNvbXB1dGVkIGFmdGVyCi0JCQkJICogQkVGT1JFIHRy aWdnZXJzLCBidXQgcGFydGl0aW9uIHJvdXRpbmcgaXMgZG9uZSBiZWZvcmUgYWxsCi0JCQkJ ICogdHJpZ2dlcnMuCisJCQkJICogU3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGNhbm5vdCB3 b3JrOiBUaGV5IGFyZSBjb21wdXRlZAorCQkJCSAqIGFmdGVyIEJFRk9SRSB0cmlnZ2Vycywg YnV0IHBhcnRpdGlvbiByb3V0aW5nIGlzIGRvbmUgYmVmb3JlCisJCQkJICogYWxsIHRyaWdn ZXJzLiAgVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBjb3VsZCBwcm9iYWJseQorCQkJCSAq IHdvcmssIGJ1dCBpdCB3b3VsZCByZXF1aXJlIG1vcmUgd29yayBlbHNld2hlcmUgKGZvciBl eGFtcGxlCisJCQkJICogU0VUIEVYUFJFU1NJT04gd291bGQgbmVlZCB0byBjaGVjayB3aGV0 aGVyIHRoZSBjb2x1bW4gaXMKKwkJCQkgKiB1c2VkIGluIHBhcnRpdGlvbiBrZXlzKS4gIFNl ZW1zIHNhZmVyIHRvIHByb2hpYml0IGZvciBub3cuCiAJCQkJICovCiAJCQkJaSA9IC0xOwog CQkJCXdoaWxlICgoaSA9IGJtc19uZXh0X21lbWJlcihleHByX2F0dHJzLCBpKSkgPj0gMCkK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwppbmRleCAxNzAzNjBlZGRhOC4uMDIxMzI4NzQ2YTEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJ0aXRpb25pbmcvcGFy dGRlc2MuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3Jp dGVIYW5kbGVyLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlTWFuaXAuaCIKICNpbmNs dWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIKQEAgLTEwMSw2 ICsxMDIsNyBAQCBzdGF0aWMgdm9pZCBBZnRlclRyaWdnZXJTYXZlRXZlbnQoRVN0YXRlICpl c3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCQkJCQkJCSAgYm9vbCBpc19jcm9z c3BhcnRfdXBkYXRlKTsKIHN0YXRpYyB2b2lkIEFmdGVyVHJpZ2dlckVubGFyZ2VRdWVyeVN0 YXRlKHZvaWQpOwogc3RhdGljIGJvb2wgYmVmb3JlX3N0bXRfdHJpZ2dlcnNfZmlyZWQoT2lk IHJlbGlkLCBDbWRUeXBlIGNtZFR5cGUpOworc3RhdGljIHZvaWQgY2hlY2tfbW9kaWZpZWRf dmlydHVhbF9nZW5lcmF0ZWQoVHVwbGVEZXNjIHR1cGRlc2MsIEhlYXBUdXBsZSB0dXBsZSk7 CiAKIAogLyoKQEAgLTY0MSw3ICs2NDMsOCBAQCBDcmVhdGVUcmlnZ2VyRmlyaW5nT24oQ3Jl YXRlVHJpZ1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQlpZiAo VFJJR0dFUl9GT1JfQkVGT1JFKHRndHlwZSkgJiYKIAkJCQkJCXZhci0+dmFyYXR0bm8gPT0g MCAmJgogCQkJCQkJUmVsYXRpb25HZXREZXNjcihyZWwpLT5jb25zdHIgJiYKLQkJCQkJCVJl bGF0aW9uR2V0RGVzY3IocmVsKS0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCkKKwkJ CQkJCShSZWxhdGlvbkdldERlc2NyKHJlbCktPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF9zdG9y ZWQgfHwKKwkJCQkJCSBSZWxhdGlvbkdldERlc2NyKHJlbCktPmNvbnN0ci0+aGFzX2dlbmVy YXRlZF92aXJ0dWFsKSkKIAkJCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCiAJCQkJCQkJCSBlcnJtc2co IkJFRk9SRSB0cmlnZ2VyJ3MgV0hFTiBjb25kaXRpb24gY2Fubm90IHJlZmVyZW5jZSBORVcg Z2VuZXJhdGVkIGNvbHVtbnMiKSwKQEAgLTk0Miw2ICs5NDUsMTMgQEAgQ3JlYXRlVHJpZ2dl ckZpcmluZ09uKENyZWF0ZVRyaWdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmlu ZywKIAkJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRv ZXMgbm90IGV4aXN0IiwKIAkJCQkJCQkJbmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo cmVsKSkpKTsKIAorCQkJLyogQ3VycmVudGx5IGRvZXNuJ3Qgd29yay4gKi8KKwkJCWlmIChU dXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0bnVtIC0gMSktPmF0dGdl bmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCQkJZXJybXNnKCJ2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9y dGVkIGFzIHRyaWdnZXIgY29sdW1ucyIpLAorCQkJCQkJZXJyZGV0YWlsKCJDb2x1bW4gXCIl c1wiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLiIsIG5hbWUpKTsKKwogCQkJLyog Q2hlY2sgZm9yIGR1cGxpY2F0ZXMgKi8KIAkJCWZvciAoaiA9IGkgLSAxOyBqID49IDA7IGot LSkKIAkJCXsKQEAgLTI1MDIsNiArMjUxMiw4IEBAIEV4ZWNCUkluc2VydFRyaWdnZXJzKEVT dGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQl9CiAJCWVsc2UgaWYg KG5ld3R1cGxlICE9IG9sZHR1cGxlKQogCQl7CisJCQljaGVja19tb2RpZmllZF92aXJ0dWFs X2dlbmVyYXRlZChSZWxhdGlvbkdldERlc2NyKHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYyks IG5ld3R1cGxlKTsKKwogCQkJRXhlY0ZvcmNlU3RvcmVIZWFwVHVwbGUobmV3dHVwbGUsIHNs b3QsIGZhbHNlKTsKIAogCQkJLyoKQEAgLTMwNTksNiArMzA3MSw4IEBAIEV4ZWNCUlVwZGF0 ZVRyaWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBFUFFTdGF0ZSAqZXBxc3RhdGUsCiAJCX0KIAkJ ZWxzZSBpZiAobmV3dHVwbGUgIT0gb2xkdHVwbGUpCiAJCXsKKwkJCWNoZWNrX21vZGlmaWVk X3ZpcnR1YWxfZ2VuZXJhdGVkKFJlbGF0aW9uR2V0RGVzY3IocmVsaW5mby0+cmlfUmVsYXRp b25EZXNjKSwgbmV3dHVwbGUpOworCiAJCQlFeGVjRm9yY2VTdG9yZUhlYXBUdXBsZShuZXd0 dXBsZSwgbmV3c2xvdCwgZmFsc2UpOwogCiAJCQkvKgpAQCAtMzQ4OSw2ICszNTAzLDcgQEAg VHJpZ2dlckVuYWJsZWQoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8s CiAKIAkJCW9sZENvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZXN0YXRlLT5lc19x dWVyeV9jeHQpOwogCQkJdGdxdWFsID0gc3RyaW5nVG9Ob2RlKHRyaWdnZXItPnRncXVhbCk7 CisJCQl0Z3F1YWwgPSAoTm9kZSAqKSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fZXhw cih0Z3F1YWwsIHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYyk7CiAJCQkvKiBDaGFuZ2UgcmVm ZXJlbmNlcyB0byBPTEQgYW5kIE5FVyB0byBJTk5FUl9WQVIgYW5kIE9VVEVSX1ZBUiAqLwog CQkJQ2hhbmdlVmFyTm9kZXModGdxdWFsLCBQUlMyX09MRF9WQVJOTywgSU5ORVJfVkFSLCAw KTsKIAkJCUNoYW5nZVZhck5vZGVzKHRncXVhbCwgUFJTMl9ORVdfVkFSTk8sIE9VVEVSX1ZB UiwgMCk7CkBAIC02NTk2LDMgKzY2MTEsMzQgQEAgcGdfdHJpZ2dlcl9kZXB0aChQR19GVU5D VElPTl9BUkdTKQogewogCVBHX1JFVFVSTl9JTlQzMihNeVRyaWdnZXJEZXB0aCk7CiB9CisK Ky8qCisgKiBDaGVjayB3aGV0aGVyIGEgdHJpZ2dlciBtb2RpZmllZCBhIHZpcnR1YWwgZ2Vu ZXJhdGVkIGNvbHVtbiBhbmQgZXJyb3IgaWYKKyAqIHNvLgorICoKKyAqIFdlIG5lZWQgdG8g Y2hlY2sgdGhpcyBzbyB0aGF0IHdlIGRvbid0IGVuZCB1cCBzdG9yaW5nIGEgbm9uLW51bGwg dmFsdWUgaW4gYQorICogdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgorICoKKyAqIFdlIGRv bid0IG5lZWQgdG8gY2hlY2sgZm9yIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucywgc2luY2Ug dGhvc2Ugd2lsbCBiZQorICogb3ZlcndyaXR0ZW4gbGF0ZXIgYW55d2F5LgorICovCitzdGF0 aWMgdm9pZAorY2hlY2tfbW9kaWZpZWRfdmlydHVhbF9nZW5lcmF0ZWQoVHVwbGVEZXNjIHR1 cGRlc2MsIEhlYXBUdXBsZSB0dXBsZSkKK3sKKwlpZiAoISh0dXBkZXNjLT5jb25zdHIgJiYg dHVwZGVzYy0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwpKQorCQlyZXR1cm47CisK Kwlmb3IgKGludCBpID0gMDsgaSA8IHR1cGRlc2MtPm5hdHRzOyBpKyspCisJeworCQlpZiAo VHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9H RU5FUkFURURfVklSVFVBTCkKKwkJeworCQkJYm9vbAkJaXNudWxsOworCisJCQlmYXN0Z2V0 YXR0cih0dXBsZSwgaSArIDEsIHR1cGRlc2MsICZpc251bGwpOworCQkJaWYgKCFpc251bGwp CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRV9SX0lfRV9U UklHR0VSX1BST1RPQ09MX1ZJT0xBVEVEKSwKKwkJCQkJCSBlcnJtc2coInRyaWdnZXIgbW9k aWZpZWQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHZhbHVlIikpKTsKKwkJfQorCX0KK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IGVhNDdjNGQ2Zjlj Li4wZmZjZmYzYWZlNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5j CkBAIC0yMDA5LDYgKzIwMDksMTAgQEAgQ2hlY2tWYXJTbG90Q29tcGF0aWJpbGl0eShUdXBs ZVRhYmxlU2xvdCAqc2xvdCwgaW50IGF0dG51bSwgT2lkIHZhcnR5cGUpCiAKIAkJYXR0ciA9 IFR1cGxlRGVzY0F0dHIoc2xvdF90dXBkZXNjLCBhdHRudW0gLSAxKTsKIAorCQkvKiBJbnRl cm5hbCBlcnJvcjogc29tZWJvZHkgZm9yZ290IHRvIGV4cGFuZCBpdC4gKi8KKwkJaWYgKGF0 dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQll bG9nKEVSUk9SLCAidW5leHBlY3RlZCB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gcmVmZXJl bmNlIik7CisKIAkJaWYgKGF0dHItPmF0dGlzZHJvcHBlZCkKIAkJCWVyZXBvcnQoRVJST1Is CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY01haW4uYwppbmRleCA0ZDdjOTJkNjNjMS4uZDgyMTcwNzg1YmYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtMTc0OCw2ICsxNzQ4LDcgQEAgRXhlY1JlbENoZWNr KFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCQlFeHByCSAgICpjaGVja2NvbnN0 cjsKIAogCQkJY2hlY2tjb25zdHIgPSBzdHJpbmdUb05vZGUoY2hlY2tbaV0uY2NiaW4pOwor CQkJY2hlY2tjb25zdHIgPSAoRXhwciAqKSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5f ZXhwcigoTm9kZSAqKSBjaGVja2NvbnN0ciwgcmVsKTsKIAkJCXJlc3VsdFJlbEluZm8tPnJp X0NvbnN0cmFpbnRFeHByc1tpXSA9CiAJCQkJRXhlY1ByZXBhcmVFeHByKGNoZWNrY29uc3Ry LCBlc3RhdGUpOwogCQl9CkBAIC0yMjk1LDcgKzIyOTYsOSBAQCBFeGVjQnVpbGRTbG90VmFs dWVEZXNjcmlwdGlvbihPaWQgcmVsb2lkLAogCiAJCWlmICh0YWJsZV9wZXJtIHx8IGNvbHVt bl9wZXJtKQogCQl7Ci0JCQlpZiAoc2xvdC0+dHRzX2lzbnVsbFtpXSkKKwkJCWlmIChhdHQt PmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJdmFs ID0gInZpcnR1YWwiOworCQkJZWxzZSBpZiAoc2xvdC0+dHRzX2lzbnVsbFtpXSkKIAkJCQl2 YWwgPSAibnVsbCI7CiAJCQllbHNlCiAJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCBl OTAxMjAzNDI0ZC4uZTM5MzZhMGI4ZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtNTY4 LDYgKzU2OCw3IEBAIHRyYW5zZm9ybURlbGV0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBE ZWxldGVTdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFz V2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rhcmdl dFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNH ZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlh c3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTk5NCw2ICs5OTUs NyBAQCB0cmFuc2Zvcm1JbnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5zZXJ0U3Rt dCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRT UkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5 LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7 CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE0NTks NiArMTQ2MSw3IEBAIHRyYW5zZm9ybVNlbGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBT ZWxlY3RTdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFz V2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rhcmdl dFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNH ZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlm b3JlYWNoKGwsIHN0bXQtPmxvY2tpbmdDbGF1c2UpCiAJewpAQCAtMTY4NSw2ICsxNjg4LDcg QEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3Rt dCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lu bGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1Ykxp bmtzOworCXFyeS0+aGFzR2VuZXJhdGVkVmlydHVhbCA9IHBzdGF0ZS0+cF9oYXNHZW5lcmF0 ZWRWaXJ0dWFsOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwog CkBAIC0xOTM2LDYgKzE5NDAsNyBAQCB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNz ID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBz dGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNB Z2dzOworCXFyeS0+aGFzR2VuZXJhdGVkVmlydHVhbCA9IHBzdGF0ZS0+cF9oYXNHZW5lcmF0 ZWRWaXJ0dWFsOwogCiAJZm9yZWFjaChsLCBsb2NraW5nQ2xhdXNlKQogCXsKQEAgLTI0MTAs NiArMjQxNSw3IEBAIHRyYW5zZm9ybVJldHVyblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBS ZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFz V2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rhcmdl dFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNH ZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlh c3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI0NzcsNiArMjQ4 Myw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVT dG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rhcmdl dFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlx cnktPmhhc0dlbmVyYXRlZFZpcnR1YWwgPSBwc3RhdGUtPnBfaGFzR2VuZXJhdGVkVmlydHVh bDsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjg0 Myw2ICsyODUwLDcgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUt PnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hh c1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5 LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7 CiAKIAlmb3JlYWNoKGwsIHNzdG10LT5sb2NraW5nQ2xhdXNlKQogCXsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CmluZGV4IGEwNDNmZDRjNjY5Li4xNmQ4NDdmYTNmZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02 NDEsNyArNjQxLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxzdHI+ CQlvcHRfZXhpc3Rpbmdfd2luZG93X25hbWUKICV0eXBlIDxib29sZWFuPiBvcHRfaWZfbm90 X2V4aXN0cwogJXR5cGUgPGJvb2xlYW4+IG9wdF91bmlxdWVfbnVsbF90cmVhdG1lbnQKLSV0 eXBlIDxpdmFsPglnZW5lcmF0ZWRfd2hlbiBvdmVycmlkZV9raW5kCisldHlwZSA8aXZhbD4J Z2VuZXJhdGVkX3doZW4gb3ZlcnJpZGVfa2luZCBvcHRfdmlydHVhbF9vcl9zdG9yZWQKICV0 eXBlIDxwYXJ0c3BlYz4JUGFydGl0aW9uU3BlYyBPcHRQYXJ0aXRpb25TcGVjCiAldHlwZSA8 cGFydGVsZW0+CXBhcnRfZWxlbQogJXR5cGUgPGxpc3Q+CQlwYXJ0X3BhcmFtcwpAQCAtNzkx LDcgKzc5MSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVU5MSVNURU4gVU5M T0dHRUQgVU5USUwgVVBEQVRFIFVTRVIgVVNJTkcKIAogCVZBQ1VVTSBWQUxJRCBWQUxJREFU RSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJZSU5HCi0J VkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWT0xBVElMRQorCVZFUkJPU0UgVkVSU0lP Tl9QIFZJRVcgVklFV1MgVklSVFVBTCBWT0xBVElMRQogCiAJV0hFTiBXSEVSRSBXSElURVNQ QUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAK QEAgLTQwMjUsNyArNDAyNSw3IEBAIENvbENvbnN0cmFpbnRFbGVtOgogCQkJCQluLT5sb2Nh dGlvbiA9IEAxOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBHRU5FUkFU RUQgZ2VuZXJhdGVkX3doZW4gQVMgJygnIGFfZXhwciAnKScgU1RPUkVECisJCQl8IEdFTkVS QVRFRCBnZW5lcmF0ZWRfd2hlbiBBUyAnKCcgYV9leHByICcpJyBvcHRfdmlydHVhbF9vcl9z dG9yZWQKIAkJCQl7CiAJCQkJCUNvbnN0cmFpbnQgKm4gPSBtYWtlTm9kZShDb25zdHJhaW50 KTsKIApAQCAtNDAzMyw2ICs0MDMzLDcgQEAgQ29sQ29uc3RyYWludEVsZW06CiAJCQkJCW4t PmdlbmVyYXRlZF93aGVuID0gJDI7CiAJCQkJCW4tPnJhd19leHByID0gJDU7CiAJCQkJCW4t PmNvb2tlZF9leHByID0gTlVMTDsKKwkJCQkJbi0+Z2VuZXJhdGVkX2tpbmQgPSAkNzsKIAkJ CQkJbi0+bG9jYXRpb24gPSBAMTsKIAogCQkJCQkvKgpAQCAtNDA3OSw2ICs0MDgwLDEyIEBA IGdlbmVyYXRlZF93aGVuOgogCQkJfCBCWSBERUZBVUxUCXsgJCQgPSBBVFRSSUJVVEVfSURF TlRJVFlfQllfREVGQVVMVDsgfQogCQk7CiAKK29wdF92aXJ0dWFsX29yX3N0b3JlZDoKKwkJ CVNUT1JFRAkJCXsgJCQgPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRDsgfQorCQkJfCBW SVJUVUFMCQl7ICQkID0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMOyB9CisJCQl8IC8q RU1QVFkqLwkJeyAkJCA9IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTDsgfQorCQk7CisK IC8qCiAgKiBDb25zdHJhaW50QXR0ciByZXByZXNlbnRzIGNvbnN0cmFpbnQgYXR0cmlidXRl cywgd2hpY2ggd2UgcGFyc2UgYXMgaWYKICAqIHRoZXkgd2VyZSBpbmRlcGVuZGVudCBjb25z dHJhaW50IGNsYXVzZXMsIGluIG9yZGVyIHRvIGF2b2lkIHNoaWZ0L3JlZHVjZQpAQCAtMTc4 ODIsNiArMTc4ODksNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFZFUlNJT05fUAog CQkJfCBWSUVXCiAJCQl8IFZJRVdTCisJCQl8IFZJUlRVQUwKIAkJCXwgVk9MQVRJTEUKIAkJ CXwgV0hJVEVTUEFDRV9QCiAJCQl8IFdJVEhJTgpAQCAtMTg1MzgsNiArMTg1NDYsNyBAQCBi YXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCiAJCQl8IFZJ RVdTCisJCQl8IFZJUlRVQUwKIAkJCXwgVk9MQVRJTEUKIAkJCXwgV0hFTgogCQkJfCBXSElU RVNQQUNFX1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2Uu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCA4MTE4MDM2NDk1 Yi4uNDg1MjRhYzNmYzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9j bGF1c2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAgLTIw Nyw2ICsyMDcsMTAgQEAgc2V0VGFyZ2V0VGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5n ZVZhciAqcmVsYXRpb24sCiAJcHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbiA9IHBhcnNlck9w ZW5UYWJsZShwc3RhdGUsIHJlbGF0aW9uLAogCQkJCQkJCQkJCQkJUm93RXhjbHVzaXZlTG9j ayk7CiAKKwlpZiAocHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbi0+cmRfYXR0LT5jb25zdHIg JiYKKwkJcHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbi0+cmRfYXR0LT5jb25zdHItPmhhc19n ZW5lcmF0ZWRfdmlydHVhbCkKKwkJcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWwgPSB0 cnVlOworCiAJLyoKIAkgKiBOb3cgYnVpbGQgYW4gUlRFIGFuZCBhIFBhcnNlTmFtZXNwYWNl SXRlbS4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJn ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKaW5kZXggODdkZjc5MDI3 ZDcuLjM1MGU5ZTE4ODg1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf bWVyZ2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpAQCAtNDA1 LDYgKzQwNSw3IEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE1l cmdlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IGZhbHNlOwogCXFyeS0+ aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNHZW5lcmF0 ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlhc3NpZ25f cXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3JlbGF0aW9uLmMKaW5kZXggMmY2NGVhZjBlMzcuLmI4NjQ3NDlmMDljIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAtNzA0LDcgKzcwNCwxMSBAQCBzY2FuTlNJ dGVtRm9yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJdGVtICpu c2l0ZW0sCiAJCQkJCQljb2xuYW1lKSwKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0 ZSwgbG9jYXRpb24pKSk7CiAKLQkvKiBJbiBnZW5lcmF0ZWQgY29sdW1uLCBubyBzeXN0ZW0g Y29sdW1uIGlzIGFsbG93ZWQgZXhjZXB0IHRhYmxlT2lkICovCisJLyoKKwkgKiBJbiBnZW5l cmF0ZWQgY29sdW1uLCBubyBzeXN0ZW0gY29sdW1uIGlzIGFsbG93ZWQgZXhjZXB0IHRhYmxl T2lkLgorCSAqIChSZXF1aXJlZCBmb3Igc3RvcmVkIGdlbmVyYXRlZCwgYnV0IHdlIGFsc28g ZG8gaXQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkCisJICogZm9yIG5vdyBmb3IgY29uc2lzdGVu Y3kuKQorCSAqLwogCWlmIChwc3RhdGUtPnBfZXhwcl9raW5kID09IEVYUFJfS0lORF9HRU5F UkFURURfQ09MVU1OICYmCiAJCWF0dG51bSA8IEludmFsaWRBdHRyTnVtYmVyICYmIGF0dG51 bSAhPSBUYWJsZU9pZEF0dHJpYnV0ZU51bWJlcikKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTE1 MTEsNiArMTUxNSw5IEBAIGFkZFJhbmdlVGFibGVFbnRyeShQYXJzZVN0YXRlICpwc3RhdGUs CiAJcnRlLT5lcmVmID0gbWFrZUFsaWFzKHJlZm5hbWUsIE5JTCk7CiAJYnVpbGRSZWxhdGlv bkFsaWFzZXMocmVsLT5yZF9hdHQsIGFsaWFzLCBydGUtPmVyZWYpOwogCisJaWYgKHJlbC0+ cmRfYXR0LT5jb25zdHIgJiYgcmVsLT5yZF9hdHQtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92 aXJ0dWFsKQorCQlwc3RhdGUtPnBfaGFzR2VuZXJhdGVkVmlydHVhbCA9IHRydWU7CisKIAkv KgogCSAqIFNldCBmbGFncyBhbmQgaW5pdGlhbGl6ZSBhY2Nlc3MgcGVybWlzc2lvbnMuCiAJ ICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IGQ1YzJiMmZmMGIwLi5i NDQ1Mzg3Yjg1MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxj bWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC03NTQs MTAgKzc1NCwzNiBAQCB0cmFuc2Zvcm1Db2x1bW5EZWZpbml0aW9uKENyZWF0ZVN0bXRDb250 ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29sdW1uKQogCQkJCQkJCQkJY29sdW1uLT5jb2xuYW1l LCBjeHQtPnJlbGF0aW9uLT5yZWxuYW1lKSwKIAkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KGN4dC0+cHN0YXRlLAogCQkJCQkJCQkJCQkJY29uc3RyYWludC0+bG9jYXRpb24pKSk7Ci0J CQkJY29sdW1uLT5nZW5lcmF0ZWQgPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRDsKKwkJ CQljb2x1bW4tPmdlbmVyYXRlZCA9IGNvbnN0cmFpbnQtPmdlbmVyYXRlZF9raW5kOwogCQkJ CWNvbHVtbi0+cmF3X2RlZmF1bHQgPSBjb25zdHJhaW50LT5yYXdfZXhwcjsKIAkJCQlBc3Nl cnQoY29uc3RyYWludC0+Y29va2VkX2V4cHIgPT0gTlVMTCk7CiAJCQkJc2F3X2dlbmVyYXRl ZCA9IHRydWU7CisKKwkJCQkvKgorCQkJCSAqIFRPRE86IFByZXZlbnQgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucyBmcm9tIGhhdmluZyBhCisJCQkJICogZG9tYWluIHR5cGUuICBXZSB3 b3VsZCBoYXZlIHRvIGVuZm9yY2UgZG9tYWluIGNvbnN0cmFpbnRzCisJCQkJICogd2hlbiBj b2x1bW5zIHVuZGVybHlpbmcgdGhlIGdlbmVyYXRlZCBjb2x1bW4gY2hhbmdlLiAgVGhpcwor CQkJCSAqIGNvdWxkIHBvc3NpYmx5IGJlIGltcGxlbWVudGVkLCBidXQgaXQncyBub3QuCisJ CQkJICoKKwkJCQkgKiBYWFggSWYgY29sdW1uLT50eXBlTmFtZSBpcyBub3Qgc2V0LCB0aGVu IHRoaXMgY29sdW1uCisJCQkJICogZGVmaW5pdGlvbiBpcyBwcm9iYWJseSBhIHBhcnRpdGlv biBkZWZpbml0aW9uIGFuZCB3aWxsCisJCQkJICogcHJlc3VtYWJseSBnZXQgaXRzIHByZS12 ZXR0ZWQgdHlwZSBmcm9tIGVsc2V3aGVyZS4gIElmIHRoYXQKKwkJCQkgKiBkb2Vzbid0IGhv bGQsIG1heWJlIHRoaXMgY2hlY2sgbmVlZHMgdG8gYmUgbW92ZWQgZWxzZXdoZXJlLgorCQkJ CSAqLworCQkJCWlmIChjb2x1bW4tPmdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVE X1ZJUlRVQUwgJiYgY29sdW1uLT50eXBlTmFtZSkKKwkJCQl7CisJCQkJCVR5cGUJCWN0eXBl OworCisJCQkJCWN0eXBlID0gdHlwZW5hbWVUeXBlKGN4dC0+cHN0YXRlLCBjb2x1bW4tPnR5 cGVOYW1lLCBOVUxMKTsKKwkJCQkJaWYgKCgoRm9ybV9wZ190eXBlKSBHRVRTVFJVQ1QoY3R5 cGUpKS0+dHlwdHlwZSA9PSBUWVBUWVBFX0RPTUFJTikKKwkJCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQkJCQkJIGVycm1zZygidmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIFwiJXNcIiBjYW5ub3Qg aGF2ZSBhIGRvbWFpbiB0eXBlIiwKKwkJCQkJCQkJCQljb2x1bW4tPmNvbG5hbWUpLAorCQkJ CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN4dC0+cHN0YXRlLAorCQkJCQkJCQkJCQkJCWNv bHVtbi0+bG9jYXRpb24pKSk7CisJCQkJCVJlbGVhc2VTeXNDYWNoZShjdHlwZSk7CisJCQkJ fQogCQkJCWJyZWFrOwogCiAJCQljYXNlIENPTlNUUl9DSEVDSzoKQEAgLTg0Miw2ICs4Njgs MTggQEAgdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbihDcmVhdGVTdG10Q29udGV4dCAqY3h0 LCBDb2x1bW5EZWYgKmNvbHVtbikKIAkJCQkJCQljb2x1bW4tPmNvbG5hbWUsIGN4dC0+cmVs YXRpb24tPnJlbG5hbWUpLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN4dC0+cHN0YXRl LAogCQkJCQkJCQkJCWNvbnN0cmFpbnQtPmxvY2F0aW9uKSkpOworCisJCS8qCisJCSAqIFRP RE86IFN0cmFpZ2h0Zm9yd2FyZCBub3QtbnVsbCBjb25zdHJhaW50cyB3b24ndCB3b3JrIG9u IHZpcnR1YWwKKwkJICogZ2VuZXJhdGVkIGNvbHVtbnMsIGJlY2F1c2UgdGhlcmUgaXMgbm8g c3VwcG9ydCBmb3IgZXhwYW5kaW5nIHRoZQorCQkgKiBjb2x1bW4gd2hlbiB0aGUgY29uc3Ry YWludCBpcyBjaGVja2VkLiAgTWF5YmUgd2UgY291bGQgY29udmVydCB0aGUKKwkJICogbm90 LW51bGwgY29uc3RyYWludCBpbnRvIGEgZnVsbCBjaGVjayBjb25zdHJhaW50LCBzbyB0aGF0 IHRoZQorCQkgKiBnZW5lcmF0aW9uIGV4cHJlc3Npb24gY2FuIGJlIGV4cGFuZGVkIGF0IGNo ZWNrIHRpbWUuCisJCSAqLworCQlpZiAoY29sdW1uLT5pc19ub3RfbnVsbCAmJiBjb2x1bW4t PmdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJCSBlcnJtc2coIm5vdC1udWxsIGNvbnN0cmFpbnRzIGFyZSBub3Qgc3VwcG9ydGVk IG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMiKSkpOwogCX0KIAogCS8qCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCBhYmVmNGVh ZjY4Yi4uNTJkYzliNWZjYWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdv dXRwdXQvcGdvdXRwdXQuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgInJlcGxpY2F0 aW9uL2xvZ2ljYWxwcm90by5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL29yaWdpbi5oIgog I2luY2x1ZGUgInJlcGxpY2F0aW9uL3Bnb3V0cHV0LmgiCisjaW5jbHVkZSAicmV3cml0ZS9y ZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVk ZSAidXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKQEAgLTk5 Niw3ICs5OTcsNyBAQCBwZ291dHB1dF9yb3dfZmlsdGVyX2luaXQoUEdPdXRwdXREYXRhICpk YXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJCQkJY29udGludWU7CiAKIAkJCWZvcmVhY2go bGMsIHJmbm9kZXNbaWR4XSkKLQkJCQlmaWx0ZXJzID0gbGFwcGVuZChmaWx0ZXJzLCBzdHJp bmdUb05vZGUoKGNoYXIgKikgbGZpcnN0KGxjKSkpOworCQkJCWZpbHRlcnMgPSBsYXBwZW5k KGZpbHRlcnMsIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHByKHN0cmluZ1RvTm9k ZSgoY2hhciAqKSBsZmlyc3QobGMpKSwgcmVsYXRpb24pKTsKIAogCQkJLyogY29tYmluZSB0 aGUgcm93IGZpbHRlciBhbmQgY2FjaGUgdGhlIEV4cHJTdGF0ZSAqLwogCQkJcmZub2RlID0g bWFrZV9vcmNsYXVzZShmaWx0ZXJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3Jp dGUvcmV3cml0ZUhhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRs ZXIuYwppbmRleCBjMjIzYTJjNTBhZi4uNzY2MjgxMGU5ZTIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVIYW5kbGVyLmMKQEAgLTkwLDYgKzkwLDggQEAgc3RhdGljIExpc3QgKm1h dGNoTG9ja3MoQ21kVHlwZSBldmVudCwgUmVsYXRpb24gcmVsYXRpb24sCiAJCQkJCQlpbnQg dmFybm8sIFF1ZXJ5ICpwYXJzZXRyZWUsIGJvb2wgKmhhc1VwZGF0ZSk7CiBzdGF0aWMgUXVl cnkgKmZpcmVSSVJydWxlcyhRdWVyeSAqcGFyc2V0cmVlLCBMaXN0ICphY3RpdmVSSVJzKTsK IHN0YXRpYyBCaXRtYXBzZXQgKmFkanVzdF92aWV3X2NvbHVtbl9zZXQoQml0bWFwc2V0ICpj b2xzLCBMaXN0ICp0YXJnZXRsaXN0KTsKK3N0cnVjdCBleHBhbmRfZ2VuZXJhdGVkX2NvbnRl eHQ7CitzdGF0aWMgUXVlcnkgKmV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9xdWVyeShR dWVyeSAqcXVlcnksIHN0cnVjdCBleHBhbmRfZ2VuZXJhdGVkX2NvbnRleHQgKmNvbnRleHQp OwogCiAKIC8qCkBAIC05NzQsNyArOTc2LDggQEAgcmV3cml0ZVRhcmdldExpc3RJVShMaXN0 ICp0YXJnZXRMaXN0LAogCQlpZiAoYXR0X3R1cC0+YXR0Z2VuZXJhdGVkKQogCQl7CiAJCQkv KgotCQkJICogc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4gd2lsbCBiZSBmaXhlZCBpbiBleGVj dXRvcgorCQkJICogdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHN0b3JlcyBhIG51bGwgdmFs dWU7IHN0b3JlZCBnZW5lcmF0ZWQKKwkJCSAqIGNvbHVtbiB3aWxsIGJlIGZpeGVkIGluIGV4 ZWN1dG9yCiAJCQkgKi8KIAkJCW5ld190bGUgPSBOVUxMOwogCQl9CkBAIC00MzY1LDYgKzQz NjgsMTQ5IEBAIFJld3JpdGVRdWVyeShRdWVyeSAqcGFyc2V0cmVlLCBMaXN0ICpyZXdyaXRl X2V2ZW50cywgaW50IG9yaWdfcnRfbGVuZ3RoKQogfQogCiAKKy8qCisgKiBWaXJ0dWFsIGdl bmVyYXRlZCBjb2x1bW5zIHN1cHBvcnQKKyAqLworCitzdHJ1Y3QgZXhwYW5kX2dlbmVyYXRl ZF9jb250ZXh0Cit7CisJLyogbGlzdCBvZiByYW5nZSB0YWJsZXMsIGlubmVybW9zdCBsYXN0 ICovCisJTGlzdAkgICAqcnRhYmxlczsKKworCS8qIGluY3JlbWVudGVkIGZvciBldmVyeSBs ZXZlbCB3aGVyZSBpdCdzIHRydWUgKi8KKwlpbnQJCQlhbmNlc3Rvcl9oYXNfdmlydHVhbDsK K307CisKK3N0YXRpYyBOb2RlICoKK2V4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19tdXRhdG9y KE5vZGUgKm5vZGUsIHN0cnVjdCBleHBhbmRfZ2VuZXJhdGVkX2NvbnRleHQgKmNvbnRleHQp Cit7CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAoSXNBKG5v ZGUsIFZhcikpCisJeworCQlWYXIJCSAgICp2ID0gKFZhciAqKSBub2RlOworCQlPaWQJCQly ZWxpZDsKKwkJQXR0ck51bWJlcglhdHRudW07CisJCUxpc3QJICAgKnJ0YWJsZSA9IGxpc3Rf bnRoX25vZGUoTGlzdCwKKwkJCQkJCQkJCQkgICBjb250ZXh0LT5ydGFibGVzLAorCQkJCQkJ CQkJCSAgIGxpc3RfbGVuZ3RoKGNvbnRleHQtPnJ0YWJsZXMpIC0gdi0+dmFybGV2ZWxzdXAg LSAxKTsKKworCQlyZWxpZCA9IHJ0X2ZldGNoKHYtPnZhcm5vLCBydGFibGUpLT5yZWxpZDsK KwkJYXR0bnVtID0gdi0+dmFyYXR0bm87CisKKwkJaWYgKCFyZWxpZCB8fCAhYXR0bnVtKQor CQkJcmV0dXJuIG5vZGU7CisKKwkJaWYgKGdldF9hdHRnZW5lcmF0ZWQocmVsaWQsIGF0dG51 bSkgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQl7CisJCQlSZWxhdGlvbgly dF9lbnRyeV9yZWxhdGlvbiA9IHRhYmxlX29wZW4ocmVsaWQsIE5vTG9jayk7CisKKwkJCW5v ZGUgPSBidWlsZF9jb2x1bW5fZGVmYXVsdChydF9lbnRyeV9yZWxhdGlvbiwgYXR0bnVtKTsK KwkJCWlmIChub2RlID09IE5VTEwpCisJCQkJZWxvZyhFUlJPUiwgIm5vIGdlbmVyYXRpb24g ZXhwcmVzc2lvbiBmb3VuZCBmb3IgY29sdW1uIG51bWJlciAlZCBvZiB0YWJsZSBcIiVzXCIi LAorCQkJCQkgYXR0bnVtLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShydF9lbnRyeV9yZWxh dGlvbikpOworCQkJSW5jcmVtZW50VmFyU3VibGV2ZWxzVXAobm9kZSwgdi0+dmFybGV2ZWxz dXAsIDApOworCQkJQ2hhbmdlVmFyTm9kZXMobm9kZSwgMSwgdi0+dmFybm8sIHYtPnZhcmxl dmVsc3VwKTsKKworCQkJdGFibGVfY2xvc2UocnRfZW50cnlfcmVsYXRpb24sIE5vTG9jayk7 CisJCX0KKworCQlyZXR1cm4gbm9kZTsKKwl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFF1ZXJ5 KSkKKwl7CisJCVF1ZXJ5CSAgICpxdWVyeSA9IChRdWVyeSAqKSBub2RlOworCisJCXF1ZXJ5 ID0gZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX3F1ZXJ5KHF1ZXJ5LCBjb250ZXh0KTsK KworCQlyZXR1cm4gKE5vZGUgKikgcXVlcnk7CisJfQorCWVsc2UKKwkJcmV0dXJuIGV4cHJl c3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19tdXRh dG9yLCBjb250ZXh0KTsKK30KKworTm9kZSAqCitleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNf aW5fZXhwcihOb2RlICpub2RlLCBSZWxhdGlvbiByZWwpCit7CisJVHVwbGVEZXNjCXR1cGRl c2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwlpZiAodHVwZGVzYy0+Y29uc3RyICYm IHR1cGRlc2MtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCXsKKwkJUmFuZ2VU YmxFbnRyeSAqcnRlOworCQlMaXN0CSAgICpydGFibGU7CisJCXN0cnVjdCBleHBhbmRfZ2Vu ZXJhdGVkX2NvbnRleHQgY29udGV4dDsKKworCQkvKgorCQkgKiBNYWtlIGEgZHVtbXkgcmFu Z2UgdGFibGUgZm9yIGEgc2luZ2xlIHJlbGF0aW9uLiAgRm9yIHRoZSBiZW5lZml0IG9mCisJ CSAqIHRyaWdnZXJzLCBhZGQgdGhlIHNhbWUgZW50cnkgdHdpY2UsIHNvIGl0IGNvdmVycyBQ UlMyX09MRF9WQVJOTyBhbmQKKwkJICogUFJTMl9ORVdfVkFSTk8uCisJCSAqLworCQlydGUg PSBtYWtlTm9kZShSYW5nZVRibEVudHJ5KTsKKwkJcnRlLT5yZWxpZCA9IFJlbGF0aW9uR2V0 UmVsaWQocmVsKTsKKwkJcnRhYmxlID0gbGlzdF9tYWtlMihydGUsIHJ0ZSk7CisJCWNvbnRl eHQucnRhYmxlcyA9IGxpc3RfbWFrZTEocnRhYmxlKTsKKworCQlyZXR1cm4gZXhwcmVzc2lv bl90cmVlX211dGF0b3Iobm9kZSwgZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX211dGF0b3Is ICZjb250ZXh0KTsKKwl9CisJZWxzZQorCQlyZXR1cm4gbm9kZTsKK30KKworLyoKKyAqIEV4 cGFuZCB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIGEgUXVlcnkuICBXZSBkbyBzb21l IG9wdGltaXphdGlvbnMgaGVyZQorICogdG8gYXZvaWQgZGlnZ2luZyB0aHJvdWdoIHRoZSB3 aG9sZSBRdWVyeSB1bmxlc3MgbmVjZXNzYXJ5LgorICovCitzdGF0aWMgUXVlcnkgKgorZXhw YW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX3F1ZXJ5KFF1ZXJ5ICpxdWVyeSwgc3RydWN0IGV4 cGFuZF9nZW5lcmF0ZWRfY29udGV4dCAqY29udGV4dCkKK3sKKwljb250ZXh0LT5ydGFibGVz ID0gbGFwcGVuZChjb250ZXh0LT5ydGFibGVzLCBxdWVyeS0+cnRhYmxlKTsKKwlpZiAocXVl cnktPmhhc0dlbmVyYXRlZFZpcnR1YWwpCisJCWNvbnRleHQtPmFuY2VzdG9yX2hhc192aXJ0 dWFsKys7CisKKwkvKgorCSAqIElmIGFueSB0YWJsZSBpbiB0aGUgcXVlcnkgaGFzIGEgdmly dHVhbCBjb2x1bW4gb3IgdGhlcmUgaXMgYSBzdWJsaW5rLAorCSAqIHRoZW4gd2UgbmVlZCB0 byBkbyB0aGUgd2hvbGUgd2Fsay4KKwkgKi8KKwlpZiAocXVlcnktPmhhc0dlbmVyYXRlZFZp cnR1YWwgfHwgcXVlcnktPmhhc1N1YkxpbmtzIHx8IGNvbnRleHQtPmFuY2VzdG9yX2hhc192 aXJ0dWFsKQorCXsKKwkJcXVlcnkgPSBxdWVyeV90cmVlX211dGF0b3IocXVlcnksCisJCQkJ CQkJCSAgIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19tdXRhdG9yLAorCQkJCQkJCQkgICBj b250ZXh0LAorCQkJCQkJCQkgICBRVFdfRE9OVF9DT1BZX1FVRVJZKTsKKwl9CisKKwkvKgor CSAqIEVsc2Ugd2Ugb25seSBuZWVkIHRvIHByb2Nlc3Mgc3VicXVlcmllcy4KKwkgKi8KKwll bHNlCisJeworCQlMaXN0Q2VsbCAgICpsYzsKKworCQlmb3JlYWNoKGxjLCBxdWVyeS0+cnRh YmxlKQorCQl7CisJCQlSYW5nZVRibEVudHJ5ICpydGUgPSAoUmFuZ2VUYmxFbnRyeSAqKSBs Zmlyc3QobGMpOworCisJCQlpZiAocnRlLT5ydGVraW5kID09IFJURV9TVUJRVUVSWSkKKwkJ CQlydGUtPnN1YnF1ZXJ5ID0gZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX3F1ZXJ5KHJ0 ZS0+c3VicXVlcnksIGNvbnRleHQpOworCQl9CisKKwkJZm9yZWFjaChsYywgcXVlcnktPmN0 ZUxpc3QpCisJCXsKKwkJCUNvbW1vblRhYmxlRXhwciAqY3RlID0gKENvbW1vblRhYmxlRXhw ciAqKSBsZmlyc3QobGMpOworCisJCQljdGUtPmN0ZXF1ZXJ5ID0gKE5vZGUgKikgZXhwYW5k X2dlbmVyYXRlZF9jb2x1bW5zX2luX3F1ZXJ5KGNhc3ROb2RlKFF1ZXJ5LCBjdGUtPmN0ZXF1 ZXJ5KSwgY29udGV4dCk7CisJCX0KKwl9CisKKwlpZiAocXVlcnktPmhhc0dlbmVyYXRlZFZp cnR1YWwpCisJCWNvbnRleHQtPmFuY2VzdG9yX2hhc192aXJ0dWFsLS07CisJY29udGV4dC0+ cnRhYmxlcyA9IGxpc3RfdHJ1bmNhdGUoY29udGV4dC0+cnRhYmxlcywgbGlzdF9sZW5ndGgo Y29udGV4dC0+cnRhYmxlcykgLSAxKTsKKworCXJldHVybiBxdWVyeTsKK30KKworCiAvKgog ICogUXVlcnlSZXdyaXRlIC0KICAqCSAgUHJpbWFyeSBlbnRyeSBwb2ludCB0byB0aGUgcXVl cnkgcmV3cml0ZXIuCkBAIC00NDA5LDkgKzQ1NTUsMTIgQEAgUXVlcnlSZXdyaXRlKFF1ZXJ5 ICpwYXJzZXRyZWUpCiAJZm9yZWFjaChsLCBxdWVyeWxpc3QpCiAJewogCQlRdWVyeQkgICAq cXVlcnkgPSAoUXVlcnkgKikgbGZpcnN0KGwpOworCQlzdHJ1Y3QgZXhwYW5kX2dlbmVyYXRl ZF9jb250ZXh0IGNvbnRleHQgPSB7MH07CiAKIAkJcXVlcnkgPSBmaXJlUklScnVsZXMocXVl cnksIE5JTCk7CiAKKwkJcXVlcnkgPSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fcXVl cnkocXVlcnksICZjb250ZXh0KTsKKwogCQlxdWVyeS0+cXVlcnlJZCA9IGlucHV0X3F1ZXJ5 X2lkOwogCiAJCXJlc3VsdHMgPSBsYXBwZW5kKHJlc3VsdHMsIHF1ZXJ5KTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BhcnRjYWNoZS5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcGFydGNhY2hlLmMKaW5kZXggYmVlYzZjZGRiYzQuLjFkZWU3YzFlODk5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wYXJ0Y2FjaGUuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wYXJ0Y2FjaGUuYwpAQCAtMjYsNiArMjYsNyBA QAogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9v cHRpbWl6ZXIuaCIKICNpbmNsdWRlICJwYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5oIgorI2lu Y2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxz L21lbXV0aWxzLmgiCkBAIC0xNDgsNiArMTQ5LDggQEAgUmVsYXRpb25CdWlsZFBhcnRpdGlv bktleShSZWxhdGlvbiByZWxhdGlvbikKIAkJZXhwciA9IHN0cmluZ1RvTm9kZShleHByU3Ry aW5nKTsKIAkJcGZyZWUoZXhwclN0cmluZyk7CiAKKwkJZXhwciA9IGV4cGFuZF9nZW5lcmF0 ZWRfY29sdW1uc19pbl9leHByKGV4cHIsIHJlbGF0aW9uKTsKKwogCQkvKgogCQkgKiBSdW4g dGhlIGV4cHJlc3Npb25zIHRocm91Z2ggY29uc3Qtc2ltcGxpZmljYXRpb24gc2luY2UgdGhl IHBsYW5uZXIKIAkJICogd2lsbCBiZSBjb21wYXJpbmcgdGhlbSB0byBzaW1pbGFybHktcHJv Y2Vzc2VkIHF1YWwgY2xhdXNlIG9wZXJhbmRzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNh Y2hlLmMKaW5kZXggNjZlZDI0ZTQwMTIuLjRmNzU2YWNkMzlkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3JlbGNhY2hlLmMKQEAgLTU4OSw2ICs1ODksOCBAQCBSZWxhdGlvbkJ1aWxkVHVw bGVEZXNjKFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJY29uc3RyLT5oYXNfbm90X251bGwgPSB0 cnVlOwogCQlpZiAoYXR0cC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURf U1RPUkVEKQogCQkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCA9IHRydWU7CisJCWlm IChhdHRwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQor CQkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwgPSB0cnVlOwogCQlpZiAoYXR0cC0+ YXR0aGFzZGVmKQogCQkJbmRlZisrOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBiNmUwMWQzZDI5 Mi4uNGIyYWFjOGNkMzMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMTU5OTgsNiArMTU5OTgsOSBA QCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0Ymlu Zm8pCiAJCQkJCQlpZiAodGJpbmZvLT5hdHRnZW5lcmF0ZWRbal0gPT0gQVRUUklCVVRFX0dF TkVSQVRFRF9TVE9SRUQpCiAJCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiBHRU5FUkFU RUQgQUxXQVlTIEFTICglcykgU1RPUkVEIiwKIAkJCQkJCQkJCQkJICB0YmluZm8tPmF0dHJk ZWZzW2pdLT5hZGVmX2V4cHIpOworCQkJCQkJZWxzZSBpZiAodGJpbmZvLT5hdHRnZW5lcmF0 ZWRbal0gPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCQkJCWFwcGVuZFBR RXhwQnVmZmVyKHEsICIgR0VORVJBVEVEIEFMV0FZUyBBUyAoJXMpIiwKKwkJCQkJCQkJCQkJ ICB0YmluZm8tPmF0dHJkZWZzW2pdLT5hZGVmX2V4cHIpOwogCQkJCQkJZWxzZQogCQkJCQkJ CWFwcGVuZFBRRXhwQnVmZmVyKHEsICIgREVGQVVMVCAlcyIsCiAJCQkJCQkJCQkJCSAgdGJp bmZvLT5hdHRyZGVmc1tqXS0+YWRlZl9leHByKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKaW5kZXggNWJjYzIyNDRkNTguLmMzZDYwMjIwMTVjIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbApAQCAtMzU5NSwxMiArMzU5NSwxNCBAQAogCQljcmVhdGVfb3JkZXIgPT4g MywKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFRBQkxFIGR1bXBfdGVzdC50ZXN0X3RhYmxl X2dlbmVyYXRlZCAoCiAJCQkJCQkgICBjb2wxIGludCBwcmltYXJ5IGtleSwKLQkJCQkJCSAg IGNvbDIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGNvbDEgKiAyKSBzdG9yZWQKKwkJCQkJ CSAgIGNvbDIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGNvbDEgKiAyKSBzdG9yZWQsCisJ CQkJCQkgICBjb2wzIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChjb2wxICogMykgdmlydHVh bAogCQkJCQkgICApOycsCiAJCXJlZ2V4cCA9PiBxci9eCiAJCQlcUUNSRUFURSBUQUJMRSBk dW1wX3Rlc3QudGVzdF90YWJsZV9nZW5lcmF0ZWQgKFxFXG4KIAkJCVxzK1xRY29sMSBpbnRl Z2VyIE5PVCBOVUxMLFxFXG4KLQkJCVxzK1xRY29sMiBpbnRlZ2VyIEdFTkVSQVRFRCBBTFdB WVMgQVMgKChjb2wxICogMikpIFNUT1JFRFxFXG4KKwkJCVxzK1xRY29sMiBpbnRlZ2VyIEdF TkVSQVRFRCBBTFdBWVMgQVMgKChjb2wxICogMikpIFNUT1JFRCxcRVxuCisJCQlccytcUWNv bDMgaW50ZWdlciBHRU5FUkFURUQgQUxXQVlTIEFTICgoY29sMSAqIDMpKVxFXG4KIAkJCVwp OwogCQkJL3htcywKIAkJbGlrZSA9PgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCA3YzlhMWYyMzRjNi4uNDMw OWQzZTc1N2QgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0yMDg5LDYgKzIwODksMTIgQEAgZGVzY3JpYmVP bmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkJCSAgIFBR Z2V0dmFsdWUocmVzLCBpLCBhdHRyZGVmX2NvbCkpOwogCQkJCW11c3RmcmVlID0gdHJ1ZTsK IAkJCX0KKwkJCWVsc2UgaWYgKGdlbmVyYXRlZFswXSA9PSBBVFRSSUJVVEVfR0VORVJBVEVE X1ZJUlRVQUwpCisJCQl7CisJCQkJZGVmYXVsdF9zdHIgPSBwc3ByaW50ZigiZ2VuZXJhdGVk IGFsd2F5cyBhcyAoJXMpIiwKKwkJCQkJCQkJCSAgIFBRZ2V0dmFsdWUocmVzLCBpLCBhdHRy ZGVmX2NvbCkpOworCQkJCW11c3RmcmVlID0gdHJ1ZTsKKwkJCX0KIAkJCWVsc2UKIAkJCQlk ZWZhdWx0X3N0ciA9IFBRZ2V0dmFsdWUocmVzLCBpLCBhdHRyZGVmX2NvbCk7CiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90dXBkZXNjLmggYi9zcmMvaW5jbHVkZS9hY2Nl c3MvdHVwZGVzYy5oCmluZGV4IDg5MzBhMjhkNjYwLi42ZWY0MDI0OTU4MyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3R1cGRlc2MuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nl c3MvdHVwZGVzYy5oCkBAIC00Myw2ICs0Myw3IEBAIHR5cGVkZWYgc3RydWN0IFR1cGxlQ29u c3RyCiAJdWludDE2CQludW1fY2hlY2s7CiAJYm9vbAkJaGFzX25vdF9udWxsOwogCWJvb2wJ CWhhc19nZW5lcmF0ZWRfc3RvcmVkOworCWJvb2wJCWhhc19nZW5lcmF0ZWRfdmlydHVhbDsK IH0gVHVwbGVDb25zdHI7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2F0dHJpYnV0ZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaApp bmRleCAxYzYyYjhiZmNiNS4uOGYxNThkYzYwODMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19h dHRyaWJ1dGUuaApAQCAtMjM0LDYgKzIzNCw3IEBAIE1BS0VfU1lTQ0FDSEUoQVRUTlVNLCBw Z19hdHRyaWJ1dGVfcmVsaWRfYXR0bnVtX2luZGV4LCAxMjgpOwogI2RlZmluZQkJICBBVFRS SUJVVEVfSURFTlRJVFlfQllfREVGQVVMVCAnZCcKIAogI2RlZmluZQkJICBBVFRSSUJVVEVf R0VORVJBVEVEX1NUT1JFRAkncycKKyNkZWZpbmUJCSAgQVRUUklCVVRFX0dFTkVSQVRFRF9W SVJUVUFMCSd2JwogCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NFX1RPX0NMSUVOVF9DT0RFICov CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA4NWE2MmI1MzhlNS4uN2ZhYmRjMGNk OTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTE2MCw2ICsxNjAsOCBAQCB0eXBl ZGVmIHN0cnVjdCBRdWVyeQogCWJvb2wJCWhhc0ZvclVwZGF0ZSBwZ19ub2RlX2F0dHIocXVl cnlfanVtYmxlX2lnbm9yZSk7CiAJLyogcmV3cml0ZXIgaGFzIGFwcGxpZWQgc29tZSBSTFMg cG9saWN5ICovCiAJYm9vbAkJaGFzUm93U2VjdXJpdHkgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1 bWJsZV9pZ25vcmUpOworCS8qIHNvbWUgdGFibGUgaGFzIGEgdmlydHVhbCBnZW5lcmF0ZWQg Y29sdW1uICovCisJYm9vbAkJaGFzR2VuZXJhdGVkVmlydHVhbCBwZ19ub2RlX2F0dHIocXVl cnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaXMgYSBSRVRVUk4gc3RhdGVtZW50ICovCiAJYm9v bAkJaXNSZXR1cm4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCkBAIC0y NzQ1LDYgKzI3NDcsNyBAQCB0eXBlZGVmIHN0cnVjdCBDb25zdHJhaW50CiAJY2hhcgkgICAq Y29va2VkX2V4cHI7CS8qIENIRUNLIG9yIERFRkFVTFQgZXhwcmVzc2lvbiwgYXMKIAkJCQkJ CQkJICogbm9kZVRvU3RyaW5nIHJlcHJlc2VudGF0aW9uICovCiAJY2hhcgkJZ2VuZXJhdGVk X3doZW47IC8qIEFMV0FZUyBvciBCWSBERUZBVUxUICovCisJY2hhcgkJZ2VuZXJhdGVkX2tp bmQ7IC8qIFNUT1JFRCBvciBWSVJUVUFMICovCiAJaW50CQkJaW5oY291bnQ7CQkvKiBpbml0 aWFsIGluaGVyaXRhbmNlIGNvdW50IHRvIGFwcGx5LCBmb3IKIAkJCQkJCQkJICogInJhdyIg Tk9UIE5VTEwgY29uc3RyYWludHMgKi8KIAlib29sCQludWxsc19ub3RfZGlzdGluY3Q7IC8q IG51bGwgdHJlYXRtZW50IGZvciBVTklRVUUgY29uc3RyYWludHMgKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xp c3QuaAppbmRleCBmN2ZlODM0Y2Y0NS4uOTYxNjc4NzdiNzUgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0 LmgKQEAgLTQ5Miw2ICs0OTIsNyBAQCBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwg VFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZlcnNp b24iLCBWRVJTSU9OX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoInZpZXciLCBWSUVXLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJ2aWV3cyIsIFZJRVdTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCitQR19LRVlXT1JEKCJ2aXJ0dWFsIiwgVklSVFVBTCwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidm9sYXRpbGUiLCBWT0xBVElMRSwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgid2hlbiIsIFdIRU4sIFJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ3aGVyZSIsIFdIRVJF LCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5o CmluZGV4IDViNzgxZDg3YTlkLi4xYjAyMTI4NTQ4YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf bm9kZS5oCkBAIC0yMjUsNiArMjI1LDcgQEAgc3RydWN0IFBhcnNlU3RhdGUKIAlib29sCQlw X2hhc1RhcmdldFNSRnM7CiAJYm9vbAkJcF9oYXNTdWJMaW5rczsKIAlib29sCQlwX2hhc01v ZGlmeWluZ0NURTsKKwlib29sCQlwX2hhc0dlbmVyYXRlZFZpcnR1YWw7CiAKIAlOb2RlCSAg ICpwX2xhc3Rfc3JmOwkJLyogbW9zdCByZWNlbnQgc2V0LXJldHVybmluZyBmdW5jL29wIGZv dW5kICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0ZUhhbmRs ZXIuaCBiL3NyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuaAppbmRleCAxYjY1 Y2RhNzFjZi4uYTY0NmEyMDY3NWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Jld3JpdGUv cmV3cml0ZUhhbmRsZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVIYW5k bGVyLmgKQEAgLTM4LDQgKzM4LDYgQEAgZXh0ZXJuIHZvaWQgZXJyb3Jfdmlld19ub3RfdXBk YXRhYmxlKFJlbGF0aW9uIHZpZXcsCiAJCQkJCQkJCQkgTGlzdCAqbWVyZ2VBY3Rpb25MaXN0 LAogCQkJCQkJCQkJIGNvbnN0IGNoYXIgKmRldGFpbCk7CiAKK2V4dGVybiBOb2RlICpleHBh bmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fZXhwcihOb2RlICpub2RlLCBSZWxhdGlvbiByZWwp OworCiAjZW5kaWYJCQkJCQkJLyogUkVXUklURUhBTkRMRVJfSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL3BsL3BscGVybC9leHBlY3RlZC9wbHBlcmxfdHJpZ2dlci5vdXQgYi9zcmMvcGwvcGxw ZXJsL2V4cGVjdGVkL3BscGVybF90cmlnZ2VyLm91dAppbmRleCBkNDg3OWUyZjAzYi4uNDJj NTJlY2JiYTggMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX3Ry aWdnZXIub3V0CisrKyBiL3NyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX3RyaWdnZXIu b3V0CkBAIC04LDcgKzgsOCBAQCBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0ICgKICk7CiBD UkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0X2dlbmVyYXRlZCAoCiAgICAgaSBpbnQsCi0gICAg aiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDIpIFNUT1JFRAorICAgIGogaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQsCisgICAgayBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoaSAqIDMpIFZJUlRVQUwKICk7CiBDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiB0cmlnZ2VyX2RhdGEoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxwZXJsIEFT ICQkCiAKQEAgLTM4Niw3ICszODcsNyBAQCBJTlNFUlQgSU5UTyB0cmlnZ2VyX3Rlc3RfZ2Vu ZXJhdGVkIChpKSBWQUxVRVMgKDEpOwogRVJST1I6ICBjYW5ub3Qgc2V0IGdlbmVyYXRlZCBj b2x1bW4gImoiCiBDT05URVhUOiAgUEwvUGVybCBmdW5jdGlvbiAiZ2VuZXJhdGVkX3Rlc3Rf ZnVuYzEiCiBTRUxFQ1QgKiBGUk9NIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQ7Ci0gaSB8IGog Ci0tLS0rLS0tCisgaSB8IGogfCBrIAorLS0tKy0tLSstLS0KICgwIHJvd3MpCiAKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBlcmwvcGxwZXJsLmMgYi9zcmMvcGwvcGxwZXJsL3BscGVybC5j CmluZGV4IGQ2OGFkN2JlMzQ1Li45NjExYWE4MjM1MiAxMDA2NDQKLS0tIGEvc3JjL3BsL3Bs cGVybC9wbHBlcmwuYworKysgYi9zcmMvcGwvcGxwZXJsL3BscGVybC5jCkBAIC0zMDUyLDYg KzMwNTIsOSBAQCBwbHBlcmxfaGFzaF9mcm9tX3R1cGxlKEhlYXBUdXBsZSB0dXBsZSwgVHVw bGVEZXNjIHR1cGRlc2MsIGJvb2wgaW5jbHVkZV9nZW5lcmF0ZQogCQkJLyogZG9uJ3QgaW5j bHVkZSB1bmxlc3MgcmVxdWVzdGVkICovCiAJCQlpZiAoIWluY2x1ZGVfZ2VuZXJhdGVkKQog CQkJCWNvbnRpbnVlOworCQkJLyogbmV2ZXIgaW5jbHVkZSB2aXJ0dWFsIGNvbHVtbnMgKi8K KwkJCWlmIChhdHQtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRV QUwpCisJCQkJY29udGludWU7CiAJCX0KIAogCQlhdHRuYW1lID0gTmFtZVN0cihhdHQtPmF0 dG5hbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGVybC9zcWwvcGxwZXJsX3RyaWdnZXIu c3FsIGIvc3JjL3BsL3BscGVybC9zcWwvcGxwZXJsX3RyaWdnZXIuc3FsCmluZGV4IDRhZGRk ZWI4MGFjLi4yNzk4YTAyZmExMiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGVybC9zcWwvcGxw ZXJsX3RyaWdnZXIuc3FsCisrKyBiL3NyYy9wbC9wbHBlcmwvc3FsL3BscGVybF90cmlnZ2Vy LnNxbApAQCAtMTAsNyArMTAsOCBAQCBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0ICgKIAog Q1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogICAgIGkgaW50LAotICAg IGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQKKyAgICBqIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVELAorICAgIGsgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGkgKiAzKSBWSVJUVUFMCiApOwogCiBDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB0cmlnZ2VyX2RhdGEoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxwZXJs IEFTICQkCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxweXRob24vZXhwZWN0ZWQvcGxweXRob25f dHJpZ2dlci5vdXQgYi9zcmMvcGwvcGxweXRob24vZXhwZWN0ZWQvcGxweXRob25fdHJpZ2dl ci5vdXQKaW5kZXggNGNiOTBjYjUyMDQuLjY0ZWFiMmZhM2Y0IDEwMDY0NAotLS0gYS9zcmMv cGwvcGxweXRob24vZXhwZWN0ZWQvcGxweXRob25fdHJpZ2dlci5vdXQKKysrIGIvc3JjL3Bs L3BscHl0aG9uL2V4cGVjdGVkL3BscHl0aG9uX3RyaWdnZXIub3V0CkBAIC02OSw3ICs2OSw4 IEBAIENSRUFURSBUQUJMRSB0cmlnZ2VyX3Rlc3QKIAkoaSBpbnQsIHYgdGV4dCApOwogQ1JF QVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogCWkgaW50LAotICAgICAgICBq IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVECisgICAgICAgIGogaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQsCisgICAgICAgIGsgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAzKSBWSVJUVUFMCiApOwogQ1JFQVRFIEZVTkNUSU9O IHRyaWdnZXJfZGF0YSgpIFJFVFVSTlMgdHJpZ2dlciBMQU5HVUFHRSBwbHB5dGhvbjN1IEFT ICQkCiAKQEAgLTYxNCw4ICs2MTUsOCBAQCBFUlJPUjogIGNhbm5vdCBzZXQgZ2VuZXJhdGVk IGNvbHVtbiAiaiIKIENPTlRFWFQ6ICB3aGlsZSBtb2RpZnlpbmcgdHJpZ2dlciByb3cKIFBM L1B5dGhvbiBmdW5jdGlvbiAiZ2VuZXJhdGVkX3Rlc3RfZnVuYzEiCiBTRUxFQ1QgKiBGUk9N IHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQ7Ci0gaSB8IGogCi0tLS0rLS0tCisgaSB8IGogfCBr IAorLS0tKy0tLSstLS0KICgwIHJvd3MpCiAKIC0tIHJlY3Vyc2l2ZSBjYWxsIG9mIGEgdHJp Z2dlciBtdXN0bid0IGNvcnJ1cHQgVEQgKGJ1ZyAjMTg0NTYpCmRpZmYgLS1naXQgYS9zcmMv cGwvcGxweXRob24vcGxweV90eXBlaW8uYyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X3R5cGVp by5jCmluZGV4IGRiMTRjNWY4ZGFlLi41MWUxZDYxMDI1OSAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscHl0aG9uL3BscHlfdHlwZWlvLmMKKysrIGIvc3JjL3BsL3BscHl0aG9uL3BscHlfdHlw ZWlvLmMKQEAgLTg0NCw2ICs4NDQsOSBAQCBQTHlEaWN0X0Zyb21UdXBsZShQTHlEYXR1bVRv T2IgKmFyZywgSGVhcFR1cGxlIHR1cGxlLCBUdXBsZURlc2MgZGVzYywgYm9vbCBpbmNsdQog CQkJCS8qIGRvbid0IGluY2x1ZGUgdW5sZXNzIHJlcXVlc3RlZCAqLwogCQkJCWlmICghaW5j bHVkZV9nZW5lcmF0ZWQpCiAJCQkJCWNvbnRpbnVlOworCQkJCS8qIG5ldmVyIGluY2x1ZGUg dmlydHVhbCBjb2x1bW5zICovCisJCQkJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRS SUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJCWNvbnRpbnVlOwogCQkJfQogCiAJCQlr ZXkgPSBOYW1lU3RyKGF0dHItPmF0dG5hbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscHl0 aG9uL3NxbC9wbHB5dGhvbl90cmlnZ2VyLnNxbCBiL3NyYy9wbC9wbHB5dGhvbi9zcWwvcGxw eXRob25fdHJpZ2dlci5zcWwKaW5kZXggZjZjMmVmOGQ2YTAuLjQ0MDU0OWMwNzg1IDEwMDY0 NAotLS0gYS9zcmMvcGwvcGxweXRob24vc3FsL3BscHl0aG9uX3RyaWdnZXIuc3FsCisrKyBi L3NyYy9wbC9wbHB5dGhvbi9zcWwvcGxweXRob25fdHJpZ2dlci5zcWwKQEAgLTY5LDcgKzY5 LDggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdAogCiBDUkVBVEUgVEFCTEUgdHJpZ2dl cl90ZXN0X2dlbmVyYXRlZCAoCiAJaSBpbnQsCi0gICAgICAgIGogaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQKKyAgICAgICAgaiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoaSAqIDIpIFNUT1JFRCwKKyAgICAgICAgayBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoaSAqIDMpIFZJUlRVQUwKICk7CiAKIENSRUFURSBGVU5DVElPTiB0cmlnZ2VyX2RhdGEo KSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxweXRob24zdSBBUyAkJApkaWZmIC0tZ2l0 IGEvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF90cmlnZ2VyLm91dCBiL3NyYy9wbC90Y2wv ZXhwZWN0ZWQvcGx0Y2xfdHJpZ2dlci5vdXQKaW5kZXggMTI5YWJkNWJhNjcuLjUyOThlNTBh NWVjIDEwMDY0NAotLS0gYS9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3RyaWdnZXIub3V0 CisrKyBiL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfdHJpZ2dlci5vdXQKQEAgLTYzLDcg KzYzLDggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdCAoCiBBTFRFUiBUQUJMRSB0cmln Z2VyX3Rlc3QgRFJPUCBkcm9wbWU7CiBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0X2dlbmVy YXRlZCAoCiAgICBpIGludCwKLSAgIGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAy KSBTVE9SRUQKKyAgIGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQs CisgICBrIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMykgVklSVFVBTAogKTsKIENS RUFURSBWSUVXIHRyaWdnZXJfdGVzdF92aWV3IEFTIFNFTEVDVCBpLCB2IEZST00gdHJpZ2dl cl90ZXN0OwogQ1JFQVRFIEZVTkNUSU9OIHRyaWdnZXJfZGF0YSgpIHJldHVybnMgdHJpZ2dl ciBsYW5ndWFnZSBwbHRjbCBhcyAkXyQKQEAgLTY0Nyw3ICs2NDgsNyBAQCBOT1RJQ0U6ICBP TEQ6IHt9CiBOT1RJQ0U6ICBUR19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93 X3RyaWdnZXJfZGF0YV90cmlnX2JlZm9yZQogTk9USUNFOiAgVEdfb3A6IElOU0VSVAotTk9U SUNFOiAgVEdfcmVsYXR0czoge3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBp IGoga30KIE5PVElDRTogIFRHX3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFi bGVfbmFtZTogdHJpZ2dlcl90ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2No ZW1hOiBwdWJsaWMKQEAgLTY1OCw3ICs2NTksNyBAQCBOT1RJQ0U6ICBPTEQ6IHt9CiBOT1RJ Q0U6ICBUR19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0 YV90cmlnX2FmdGVyCiBOT1RJQ0U6ICBUR19vcDogSU5TRVJUCi1OT1RJQ0U6ICBUR19yZWxh dHRzOiB7e30gaSBqfQorTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgaiBrfQogTk9USUNF OiAgVEdfcmVsaWQ6IGJvZ3VzOjEyMzQ1CiBOT1RJQ0U6ICBUR190YWJsZV9uYW1lOiB0cmln Z2VyX3Rlc3RfZ2VuZXJhdGVkCiBOT1RJQ0U6ICBUR190YWJsZV9zY2hlbWE6IHB1YmxpYwpA QCAtNjcwLDcgKzY3MSw3IEBAIE5PVElDRTogIE9MRDoge2k6IDEsIGo6IDJ9CiBOT1RJQ0U6 ICBUR19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90 cmlnX2JlZm9yZQogTk9USUNFOiAgVEdfb3A6IFVQREFURQotTk9USUNFOiAgVEdfcmVsYXR0 czoge3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTog IFRHX3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dl cl90ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAg LTY4MSw3ICs2ODIsNyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxLCBqOiAyfQogTk9USUNFOiAg VEdfbGV2ZWw6IFJPVwogTk9USUNFOiAgVEdfbmFtZTogc2hvd190cmlnZ2VyX2RhdGFfdHJp Z19hZnRlcgogTk9USUNFOiAgVEdfb3A6IFVQREFURQotTk9USUNFOiAgVEdfcmVsYXR0czog e3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRH X3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90 ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTY5 Myw3ICs2OTQsNyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxMSwgajogMjJ9CiBOT1RJQ0U6ICBU R19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90cmln X2JlZm9yZQogTk9USUNFOiAgVEdfb3A6IERFTEVURQotTk9USUNFOiAgVEdfcmVsYXR0czog e3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRH X3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90 ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTcw NCw3ICs3MDUsNyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxMSwgajogMjJ9CiBOT1RJQ0U6ICBU R19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90cmln X2FmdGVyCiBOT1RJQ0U6ICBUR19vcDogREVMRVRFCi1OT1RJQ0U6ICBUR19yZWxhdHRzOiB7 e30gaSBqfQorTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgaiBrfQogTk9USUNFOiAgVEdf cmVsaWQ6IGJvZ3VzOjEyMzQ1CiBOT1RJQ0U6ICBUR190YWJsZV9uYW1lOiB0cmlnZ2VyX3Rl c3RfZ2VuZXJhdGVkCiBOT1RJQ0U6ICBUR190YWJsZV9zY2hlbWE6IHB1YmxpYwpAQCAtODgy LDcgKzg4Myw3IEBAIFRSVU5DQVRFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQ7CiBJTlNFUlQg SU5UTyB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkIChpKSBWQUxVRVMgKDEpOwogRVJST1I6ICBj YW5ub3Qgc2V0IGdlbmVyYXRlZCBjb2x1bW4gImoiCiBTRUxFQ1QgKiBGUk9NIHRyaWdnZXJf dGVzdF9nZW5lcmF0ZWQ7Ci0gaSB8IGogCi0tLS0rLS0tCisgaSB8IGogfCBrIAorLS0tKy0t LSstLS0KICgwIHJvd3MpCiAKZGlmZiAtLWdpdCBhL3NyYy9wbC90Y2wvcGx0Y2wuYyBiL3Ny Yy9wbC90Y2wvcGx0Y2wuYwppbmRleCAyMWIyYjA0NTkzMy4uY2I3MTVhZDA4YjYgMTAwNjQ0 Ci0tLSBhL3NyYy9wbC90Y2wvcGx0Y2wuYworKysgYi9zcmMvcGwvdGNsL3BsdGNsLmMKQEAg LTMyMDYsNiArMzIwNiw5IEBAIHBsdGNsX2J1aWxkX3R1cGxlX2FyZ3VtZW50KEhlYXBUdXBs ZSB0dXBsZSwgVHVwbGVEZXNjIHR1cGRlc2MsIGJvb2wgaW5jbHVkZV9nZW5lCiAJCQkvKiBk b24ndCBpbmNsdWRlIHVubGVzcyByZXF1ZXN0ZWQgKi8KIAkJCWlmICghaW5jbHVkZV9nZW5l cmF0ZWQpCiAJCQkJY29udGludWU7CisJCQkvKiBuZXZlciBpbmNsdWRlIHZpcnR1YWwgY29s dW1ucyAqLworCQkJaWYgKGF0dC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFU RURfVklSVFVBTCkKKwkJCQljb250aW51ZTsKIAkJfQogCiAJCS8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdp dCBhL3NyYy9wbC90Y2wvc3FsL3BsdGNsX3RyaWdnZXIuc3FsIGIvc3JjL3BsL3RjbC9zcWwv cGx0Y2xfdHJpZ2dlci5zcWwKaW5kZXggMmEyNDRkZTgzYmMuLjBlZDAwZjQ5NTI2IDEwMDY0 NAotLS0gYS9zcmMvcGwvdGNsL3NxbC9wbHRjbF90cmlnZ2VyLnNxbAorKysgYi9zcmMvcGwv dGNsL3NxbC9wbHRjbF90cmlnZ2VyLnNxbApAQCAtNzMsNyArNzMsOCBAQCBDUkVBVEUgVEFC TEUgdHJpZ2dlcl90ZXN0ICgKIAogQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0 ZWQgKAogICAgaSBpbnQsCi0gICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikg U1RPUkVECisgICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVELAor ICAgayBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDMpIFZJUlRVQUwKICk7CiAKIENS RUFURSBWSUVXIHRyaWdnZXJfdGVzdF92aWV3IEFTIFNFTEVDVCBpLCB2IEZST00gdHJpZ2dl cl90ZXN0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVf dGFibGVfbGlrZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJs ZV9saWtlLm91dAppbmRleCA2YmZjNmQwNDBmZi4uOTcxNTdkYzYzNWIgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0CkBAIC0x MTMsMTkgKzExMywyMCBAQCBTRUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9pZF8zOyAgLS0gaWRl bnRpdHkgd2FzIGNvcGllZCBhbmQgYXBwbGllZAogKDEgcm93KQogCiBEUk9QIFRBQkxFIHRl c3RfbGlrZV9pZF8xLCB0ZXN0X2xpa2VfaWRfMiwgdGVzdF9saWtlX2lkXzM7Ci1DUkVBVEUg VEFCTEUgdGVzdF9saWtlX2dlbl8xIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8xIChhIGlu dCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwgYyBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRVQUwpOwogXGQgdGVzdF9saWtlX2dlbl8x CiAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlc3RfbGlrZV9nZW5f MSIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAgYiAgICAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBh cyAoYSAqIDIpIHN0b3JlZAorIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAzKQogCiBJTlNFUlQgSU5UTyB0ZXN0 X2xpa2VfZ2VuXzEgKGEpIFZBTFVFUyAoMSk7CiBTRUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9n ZW5fMTsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgMgorIGEgfCBiIHwgYyAKKy0tLSstLS0r LS0tCisgMSB8IDIgfCAzCiAoMSByb3cpCiAKIENSRUFURSBUQUJMRSB0ZXN0X2xpa2VfZ2Vu XzIgKExJS0UgdGVzdF9saWtlX2dlbl8xKTsKQEAgLTEzNSwxMiArMTM2LDEzIEBAIENSRUFU RSBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzIgKExJS0UgdGVzdF9saWtlX2dlbl8xKTsKIC0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQogIGEgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGIgICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGMgICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAogCiBJTlNFUlQgSU5UTyB0ZXN0X2xpa2VfZ2VuXzIgKGEp IFZBTFVFUyAoMSk7CiBTRUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9nZW5fMjsKLSBhIHwgYiAK LS0tLSstLS0KLSAxIHwgIAorIGEgfCBiIHwgYyAKKy0tLSstLS0rLS0tCisgMSB8ICAgfCAg CiAoMSByb3cpCiAKIENSRUFURSBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzMgKExJS0UgdGVzdF9s aWtlX2dlbl8xIElOQ0xVRElORyBHRU5FUkFURUQpOwpAQCAtMTUwLDEyICsxNTIsMTMgQEAg Q1JFQVRFIFRBQkxFIHRlc3RfbGlrZV9nZW5fMyAoTElLRSB0ZXN0X2xpa2VfZ2VuXzEgSU5D TFVESU5HIEdFTkVSQVRFRCk7CiAtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKICBiICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikg c3RvcmVkCisgYyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDMpCiAKIElOU0VSVCBJTlRPIHRlc3RfbGlrZV9nZW5f MyAoYSkgVkFMVUVTICgxKTsKIFNFTEVDVCAqIEZST00gdGVzdF9saWtlX2dlbl8zOwotIGEg fCBiIAotLS0tKy0tLQotIDEgfCAyCisgYSB8IGIgfCBjIAorLS0tKy0tLSstLS0KKyAxIHwg MiB8IDMKICgxIHJvdykKIAogRFJPUCBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzEsIHRlc3RfbGlr ZV9nZW5fMiwgdGVzdF9saWtlX2dlbl8zOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9nZW5lcmF0ZWRfc3RvcmVkLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKaW5kZXggZGQ3NGExYTlmMGIuLmJlNTNhOWY4 ODM3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9z dG9yZWQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0 b3JlZC5vdXQKQEAgLTEsNSArMSw1IEBACiAtLSBzYW5pdHkgY2hlY2sgb2Ygc3lzdGVtIGNh dGFsb2cKLVNFTEVDVCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdf YXR0cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycpOworU0VMRUNU IGF0dHJlbGlkLCBhdHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hF UkUgYXR0Z2VuZXJhdGVkIE5PVCBJTiAoJycsICdzJywgJ3YnKTsKICBhdHRyZWxpZCB8IGF0 dG5hbWUgfCBhdHRnZW5lcmF0ZWQgCiAtLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLQogKDAgcm93cykKQEAgLTIxNyw2ICsyMTcsMjcgQEAgU0VMRUNUICogRlJPTSBndGVz dG0gT1JERVIgQlkgaWQ7CiAgIDIgfCAyMCB8IDIwMCB8IDQwIHwgNDAwCiAoMiByb3dzKQog CitEUk9QIFRBQkxFIGd0ZXN0bTsKK0NSRUFURSBUQUJMRSBndGVzdG0gKAorICBhIGludCBQ UklNQVJZIEtFWSwKKyAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JF RAorKTsKK0lOU0VSVCBJTlRPIGd0ZXN0bSAoYSkgU0VMRUNUIGcgRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTApIGc7CitNRVJHRSBJTlRPIGd0ZXN0bSB0IFVTSU5HIGd0ZXN0bSBBUyBz IE9OIDIgKiB0LmEgPSBzLmIgV0hFTiBNQVRDSEVEIFRIRU4gREVMRVRFIFJFVFVSTklORyAq OworIGEgIHwgYiAgfCBhICB8IGIgIAorLS0tLSstLS0tKy0tLS0rLS0tLQorICAxIHwgIDIg fCAgMSB8ICAyCisgIDIgfCAgNCB8ICAyIHwgIDQKKyAgMyB8ICA2IHwgIDMgfCAgNgorICA0 IHwgIDggfCAgNCB8ICA4CisgIDUgfCAxMCB8ICA1IHwgMTAKKyAgNiB8IDEyIHwgIDYgfCAx MgorICA3IHwgMTQgfCAgNyB8IDE0CisgIDggfCAxNiB8ICA4IHwgMTYKKyAgOSB8IDE4IHwg IDkgfCAxOAorIDEwIHwgMjAgfCAxMCB8IDIwCisoMTAgcm93cykKKwogRFJPUCBUQUJMRSBn dGVzdG07CiAtLSB2aWV3cwogQ1JFQVRFIFZJRVcgZ3Rlc3QxdiBBUyBTRUxFQ1QgKiBGUk9N IGd0ZXN0MTsKQEAgLTEwOTEsOSArMTExMiw5IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyOTsK IEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGEgU0VUIEVYUFJFU1NJT04gQVMg KGEgKiAzKTsgIC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0 ZXN0MjkiIGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4KIEFMVEVSIFRBQkxFIGd0ZXN0Mjkg QUxURVIgQ09MVU1OIGEgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKLUVSUk9SOiAgY29s dW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgc3RvcmVkIGdlbmVyYXRl ZCBjb2x1bW4KK0VSUk9SOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMg bm90IGEgZ2VuZXJhdGVkIGNvbHVtbgogQUxURVIgVEFCTEUgZ3Rlc3QyOSBBTFRFUiBDT0xV TU4gYSBEUk9QIEVYUFJFU1NJT04gSUYgRVhJU1RTOyAgLS0gbm90aWNlCi1OT1RJQ0U6ICBj b2x1bW4gImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBzdG9yZWQgZ2VuZXJh dGVkIGNvbHVtbiwgc2tpcHBpbmcKK05PVElDRTogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24g Imd0ZXN0MjkiIGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4sIHNraXBwaW5nCiAtLSBDaGFu Z2UgdGhlIGV4cHJlc3Npb24KIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGIg U0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyOTsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFsLm91dApz aW1pbGFyaXR5IGluZGV4IDY5JQpjb3B5IGZyb20gc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9nZW5lcmF0ZWRfc3RvcmVkLm91dApjb3B5IHRvIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwub3V0CmluZGV4IGRkNzRhMWE5ZjBiLi4zZTkwMTMyZWRh ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfc3Rv cmVkLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0 dWFsLm91dApAQCAtMSwxNSArMSwxNSBAQAogLS0gc2FuaXR5IGNoZWNrIG9mIHN5c3RlbSBj YXRhbG9nCi1TRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBn X2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnKTsKK1NFTEVD VCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdI RVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycsICd2Jyk7CiAgYXR0cmVsaWQgfCBh dHRuYW1lIHwgYXR0Z2VuZXJhdGVkIAogLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0KICgwIHJvd3MpCiAKLUNSRUFURSBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0 czsKLUdSQU5UIFVTQUdFIE9OIFNDSEVNQSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzIFRPIFBV QkxJQzsKLVNFVCBzZWFyY2hfcGF0aCA9IGdlbmVyYXRlZF9zdG9yZWRfdGVzdHM7Ci1DUkVB VEUgVEFCTEUgZ3Rlc3QwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoNTUpIFNUT1JFRCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QxIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7Ci1T RUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxs YWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJlc3Npb24gRlJPTSBpbmZvcm1h dGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3N0 b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMjsKK0NSRUFURSBTQ0hFTUEgZ2VuZXJhdGVkX3Zp cnR1YWxfdGVzdHM7CitHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgZ2VuZXJhdGVkX3ZpcnR1YWxf dGVzdHMgVE8gUFVCTElDOworU0VUIHNlYXJjaF9wYXRoID0gZ2VuZXJhdGVkX3ZpcnR1YWxf dGVzdHM7CitDUkVBVEUgVEFCTEUgZ3Rlc3QwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoNTUpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0 MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBWSVJUVUFMKTsKK1NFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29sdW1uX2Rl ZmF1bHQsIGlzX251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdlbmVyYXRpb25fZXhwcmVzc2lv biBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdIRVJFIHRhYmxlX3NjaGVtYSA9 ICdnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cycgT1JERVIgQlkgMSwgMjsKICB0YWJsZV9uYW1l IHwgY29sdW1uX25hbWUgfCBjb2x1bW5fZGVmYXVsdCB8IGlzX251bGxhYmxlIHwgaXNfZ2Vu ZXJhdGVkIHwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIAogLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZ3Rlc3QwICAgICB8IGEgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgfCBOTyAgICAgICAgICB8IE5FVkVSICAgICAgICB8IApAQCAtMTgsODkg KzE4LDg5IEBAIFNFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29sdW1uX2RlZmF1 bHQsIGlzX251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdlbmVyCiAgZ3Rlc3QxICAgICB8IGIg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCBZRVMgICAgICAgICB8IEFMV0FZUyAgICAg ICB8IChhICogMikKICg0IHJvd3MpCiAKLVNFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFt ZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5fY29s dW1uX3VzYWdlIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfc3RvcmVkX3Rlc3Rz JyBPUkRFUiBCWSAxLCAyLCAzOworU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBk ZXBlbmRlbnRfY29sdW1uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbl9jb2x1bW5f dXNhZ2UgV0hFUkUgdGFibGVfc2NoZW1hID0gJ2dlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzJyBP UkRFUiBCWSAxLCAyLCAzOwogIHRhYmxlX25hbWUgfCBjb2x1bW5fbmFtZSB8IGRlcGVuZGVu dF9jb2x1bW4gCiAtLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0KICBndGVzdDEgICAgIHwgYSAgICAgICAgICAgfCBiCiAoMSByb3cpCiAKIFxkIGd0ZXN0 MQotICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5n dGVzdDEiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5n dGVzdDEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKLSBiICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikg c3RvcmVkCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpCiBJbmRleGVzOgogICAgICJndGVzdDFfcGtleSIg UFJJTUFSWSBLRVksIGJ0cmVlIChhKQogCiAtLSBkdXBsaWNhdGUgZ2VuZXJhdGVkCi1DUkVB VEUgVEFCTEUgZ3Rlc3RfZXJyXzEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAz KSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8xIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRVQUwpOwogRVJST1I6ICBtdWx0aXBsZSBnZW5lcmF0 aW9uIGNsYXVzZXMgc3BlY2lmaWVkIGZvciBjb2x1bW4gImIiIG9mIHRhYmxlICJndGVzdF9l cnJfMSIKLUxJTkUgMTogLi4uQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRCBHRU5FUkFURUQgLi4uCitMSU5FIDE6IC4uLlJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgR0VORVJBVEVEIC4uLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KIC0tIHJlZmVyZW5jZXMgdG8gb3RoZXIgZ2VuZXJhdGVkIGNvbHVtbnMsIGluY2x1 ZGluZyBzZWxmLXJlZmVyZW5jZXMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVE KTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTCk7CiBFUlJPUjogIGNhbm5v dCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiAiYiIgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVz c2lvbgotTElORSAxOiAuLi4yYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGIgKiAyKSBTVE8uLi4KK0xJTkUgMTogLi4uMmEgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSLi4uCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogREVUQUlMOiAgQSBnZW5lcmF0ZWQgY29sdW1uIGNhbm5vdCByZWZlcmVuY2UgYW5v dGhlciBnZW5lcmF0ZWQgY29sdW1uLgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYiAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9S RUQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAzKSBTVE9SRUQpOworQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl8yYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChiICogMykgVklSVFVBTCk7CiBFUlJPUjogIGNhbm5vdCB1c2UgZ2VuZXJhdGVkIGNvbHVt biAiYiIgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbgotTElORSAxOiAuLi5BWVMg QVMgKGEgKiAyKSBTVE9SRUQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAzKSBT VE8uLi4KK0xJTkUgMTogLi4uWVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBjIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChiICogMykgVklSLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgQSBnZW5l cmF0ZWQgY29sdW1uIGNhbm5vdCByZWZlcmVuY2UgYW5vdGhlciBnZW5lcmF0ZWQgY29sdW1u LgogLS0gYSB3aG9sZS1yb3cgdmFyIGlzIGEgc2VsZi1yZWZlcmVuY2Ugb24gc3Rlcm9pZHMs IHNvIGRpc2FsbG93IHRoYXQgdG9vCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJjIChhIGlu dCBQUklNQVJZIEtFWSwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudW1fbnVs bHMoZ3Rlc3RfZXJyXzJjKSkgU1RPUkVEKTsKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgVklSVFVBTCk7CiBFUlJPUjogIGNhbm5v dCB1c2Ugd2hvbGUtcm93IHZhcmlhYmxlIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Np b24KLUxJTkUgMjogICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bV9udWxscyhn dGVzdF9lcnJfMmMpKSBTVE9SLi4uCitMSU5FIDI6ICAgICBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgVklSVC4uLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoaXMg d291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBjb2x1bW4gdG8gZGVwZW5kIG9uIGl0cyBvd24g dmFsdWUuCiAtLSBpbnZhbGlkIHJlZmVyZW5jZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8z IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDIp IFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzMgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogMikgVklSVFVBTCk7CiBFUlJPUjog IGNvbHVtbiAiYyIgZG9lcyBub3QgZXhpc3QKLUxJTkUgMTogLi4uXzMgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogMikgU1RPLi4uCitMSU5F IDE6IC4uLl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYyAqIDIpIFZJUi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBt dXN0IGJlIGltbXV0YWJsZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80IChhIGludCBQUklN QVJZIEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJhbmRv bSgpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80IChhIGludCBQUklNQVJZ IEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJhbmRvbSgp KSBWSVJUVUFMKTsKIEVSUk9SOiAgZ2VuZXJhdGlvbiBleHByZXNzaW9uIGlzIG5vdCBpbW11 dGFibGUKIC0tIC4uLiBidXQgYmUgc3VyZSB0aGF0IHRoZSBpbW11dGFiaWxpdHkgdGVzdCBp cyBhY2N1cmF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQsIGIgdGV4dCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhIHx8ICcgc2VjJykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVz dDIgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnIHNlYycpIFZJ UlRVQUwpOwogRFJPUCBUQUJMRSBndGVzdDI7CiAtLSBjYW5ub3QgaGF2ZSBkZWZhdWx0L2lk ZW50aXR5IGFuZCBnZW5lcmF0ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfNWEgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBERUZBVUxUIDUgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzVhIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgREVGQVVMVCA1IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJU VUFMKTsKIEVSUk9SOiAgYm90aCBkZWZhdWx0IGFuZCBnZW5lcmF0aW9uIGV4cHJlc3Npb24g c3BlY2lmaWVkIGZvciBjb2x1bW4gImIiIG9mIHRhYmxlICJndGVzdF9lcnJfNWEiCiBMSU5F IDE6IC4uLiBndGVzdF9lcnJfNWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBERUZBVUxU IDUgR0VORVJBVEVEIC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfNWIg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIGlkZW50aXR5 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0X2Vycl81YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgaWRlbnRpdHkgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogRVJS T1I6ICBib3RoIGlkZW50aXR5IGFuZCBnZW5lcmF0aW9uIGV4cHJlc3Npb24gc3BlY2lmaWVk IGZvciBjb2x1bW4gImIiIG9mIHRhYmxlICJndGVzdF9lcnJfNWIiCiBMSU5FIDE6IC4uLnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgaWRlbnRpdHkgR0VORVJB VEVEIC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIC0tIHJlZmVyZW5jZSB0byBzeXN0ZW0gY29sdW1uIG5vdCBh bGxvd2VkIGluIGdlbmVyYXRlZCBjb2x1bW4KIC0tIChleGNlcHQgdGFibGVvaWQsIHdoaWNo IHdlIHRlc3QgYmVsb3cpCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChhIGludCBQUklN QVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcpIFNUT1JF RCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChhIGludCBQUklNQVJZIEtFWSwgYiBi b29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcpIFZJUlRVQUwpOwogRVJST1I6 ICBjYW5ub3QgdXNlIHN5c3RlbSBjb2x1bW4gInhtaW4iIGluIGNvbHVtbiBnZW5lcmF0aW9u IGV4cHJlc3Npb24KIExJTkUgMTogLi4uYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgYm9vbCBH RU5FUkFURUQgQUxXQVlTIEFTICh4bWluIDw+IDM3Li4uCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gdmFyaW91 cyBwcm9oaWJpdGVkIGNvbnN0cnVjdHMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2EgKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhdmcoYSkpIFNU T1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdhIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZnKGEpKSBWSVJUVUFMKTsKIEVSUk9SOiAg YWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRp b24gZXhwcmVzc2lvbnMKLUxJTkUgMTogLi4uN2EgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhdmcoYSkpIFNULi4uCitMSU5FIDE6IC4uLjdhIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZnKGEpKSBW SS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2IgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChyb3dfbnVtYmVyKCkgT1ZFUiAo T1JERVIgQlkgYSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdiIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAocm93X251bWJlcigp IE9WRVIgKE9SREVSIEJZIGEpKSBWSVJUVUFMKTsKIEVSUk9SOiAgd2luZG93IGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMKIExJ TkUgMTogLi4uN2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChyb3dfbnVtYmVyLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83 YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChTRUxF Q1QgYSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdjIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKFNFTEVDVCBhKSkgVklSVFVB TCk7CiBFUlJPUjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gY29sdW1uIGdlbmVyYXRpb24g ZXhwcmVzc2lvbgogTElORSAxOiAuLi43YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkuLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi1DUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzdkIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZ2VuZXJhdGVfc2VyaWVzKDEsIGEpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl83ZCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGdlbmVyYXRlX3NlcmllcygxLCBhKSkgVklSVFVBTCk7CiBFUlJPUjogIHNldC1y ZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBjb2x1bW4gZ2VuZXJhdGlv biBleHByZXNzaW9ucwogTElORSAxOiAuLi43ZCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3MuLi4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBHRU5F UkFURUQgQlkgREVGQVVMVCBub3QgYWxsb3dlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl84 IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgKGEg KiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgKGEgKiAyKSBWSVJUVUFMKTsK IEVSUk9SOiAgZm9yIGEgZ2VuZXJhdGVkIGNvbHVtbiwgR0VORVJBVEVEIEFMV0FZUyBtdXN0 IGJlIHNwZWNpZmllZAogTElORSAxOiAuLi5FIGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQuLi4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkBAIC0xNTMs MTYgKzE1MywxMCBAQCBTRUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MSBXSEVSRSBiID0gNCBPUkRF UiBCWSBhOwogIDIgfCA0CiAoMSByb3cpCiAKLS0tIHRlc3QgdGhhdCBvdmVyZmxvdyBlcnJv ciBoYXBwZW5zIG9uIHdyaXRlCistLSB0ZXN0IHRoYXQgb3ZlcmZsb3cgZXJyb3IgaGFwcGVu cyBvbiByZWFkCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgyMDAwMDAwMDAwKTsKLUVS Uk9SOiAgaW50ZWdlciBvdXQgb2YgcmFuZ2UKIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwotIGEg fCBiIAotLS0tKy0tLQotIDIgfCA0Ci0gMSB8IDIKLSgyIHJvd3MpCi0KK0VSUk9SOiAgaW50 ZWdlciBvdXQgb2YgcmFuZ2UKIERFTEVURSBGUk9NIGd0ZXN0MSBXSEVSRSBhID0gMjAwMDAw MDAwMDsKIC0tIHRlc3Qgd2l0aCBqb2lucwogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQs IHkgaW50KTsKQEAgLTIwMyw4ICsxOTcsOCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKICAg aWQgaW50IFBSSU1BUlkgS0VZLAogICBmMSBpbnQsCiAgIGYyIGludCwKLSAgZjMgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGYxICogMikgU1RPUkVELAotICBmNCBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQKKyAgZjMgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYxICogMikgVklSVFVBTCwKKyAgZjQgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMikgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0bSBWQUxVRVMgKDEsIDUsIDEw MCk7CiBNRVJHRSBJTlRPIGd0ZXN0bSB0IFVTSU5HIChWQUxVRVMgKDEsIDEwKSwgKDIsIDIw KSkgdihpZCwgZjEpIE9OIHQuaWQgPSB2LmlkCkBAIC0yMTcsNiArMjExLDI3IEBAIFNFTEVD VCAqIEZST00gZ3Rlc3RtIE9SREVSIEJZIGlkOwogICAyIHwgMjAgfCAyMDAgfCA0MCB8IDQw MAogKDIgcm93cykKIAorRFJPUCBUQUJMRSBndGVzdG07CitDUkVBVEUgVEFCTEUgZ3Rlc3Rt ICgKKyAgYSBpbnQgUFJJTUFSWSBLRVksCisgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBWSVJUVUFMCispOworSU5TRVJUIElOVE8gZ3Rlc3RtIChhKSBTRUxFQ1QgZyBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgZzsKK01FUkdFIElOVE8gZ3Rlc3RtIHQgVVNJ TkcgZ3Rlc3RtIEFTIHMgT04gMiAqIHQuYSA9IHMuYiBXSEVOIE1BVENIRUQgVEhFTiBERUxF VEUgUkVUVVJOSU5HICo7CisgYSAgfCBiICB8IGEgIHwgYiAgCistLS0tKy0tLS0rLS0tLSst LS0tCisgIDEgfCAgMiB8ICAxIHwgIDIKKyAgMiB8ICA0IHwgIDIgfCAgNAorICAzIHwgIDYg fCAgMyB8ICA2CisgIDQgfCAgOCB8ICA0IHwgIDgKKyAgNSB8IDEwIHwgIDUgfCAxMAorICA2 IHwgMTIgfCAgNiB8IDEyCisgIDcgfCAxNCB8ICA3IHwgMTQKKyAgOCB8IDE2IHwgIDggfCAx NgorICA5IHwgMTggfCAgOSB8IDE4CisgMTAgfCAyMCB8IDEwIHwgMjAKKygxMCByb3dzKQor CiBEUk9QIFRBQkxFIGd0ZXN0bTsKIC0tIHZpZXdzCiBDUkVBVEUgVklFVyBndGVzdDF2IEFT IFNFTEVDVCAqIEZST00gZ3Rlc3QxOwpAQCAtMjczLDExICsyODgsMTEgQEAgU0VMRUNUICog RlJPTSBndGVzdDFfMTsKICgwIHJvd3MpCiAKIFxkIGd0ZXN0MV8xCi0gICAgICAgICAgICAg ICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxXzEiCi0gQ29sdW1u IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1 bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MV8xIgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0 ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8IG5vdCBudWxsIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKGEgKiAyKQogSW5oZXJpdHM6IGd0ZXN0MQogCiBJTlNFUlQgSU5UTyBndGVzdDFfMSBW QUxVRVMgKDQpOwpAQCAtMjk2LDEyICszMTEsMTIgQEAgU0VMRUNUICogRlJPTSBndGVzdDE7 CiAKIC0tIGNhbid0IGhhdmUgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlzIGEgY2hpbGQgb2Yg bm9ybWFsIGNvbHVtbgogQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbCAoYSBpbnQsIGIgaW50 KTsKLUNSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3Rfbm9ybWFs KTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGludCwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpIElOSEVSSVRTIChn dGVzdF9ub3JtYWwpOyAgLS0gZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgY29sdW1uICJhIiB3 aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCiBOT1RJQ0U6ICBtZXJnaW5nIGNvbHVtbiAiYiIg d2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogRVJST1I6ICBjaGlsZCBjb2x1bW4gImIiIHNw ZWNpZmllcyBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIEhJTlQ6ICBBIGNoaWxkIHRhYmxlIGNv bHVtbiBjYW5ub3QgYmUgZ2VuZXJhdGVkIHVubGVzcyBpdHMgcGFyZW50IGNvbHVtbiBpcy4K LUNSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9ub3Jt YWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgSU5IRVJJVCBndGVzdF9u b3JtYWw7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImIiIGluIGNoaWxkIHRhYmxlIG11 c3Qgbm90IGJlIGEgZ2VuZXJhdGVkIGNvbHVtbgogRFJPUCBUQUJMRSBndGVzdF9ub3JtYWws IGd0ZXN0X25vcm1hbF9jaGlsZDsKQEAgLTMxMiwyMyArMzI3LDQxIEBAIEVSUk9SOiAgY29s dW1uICJiIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gYnV0IHNwZWNpZmllcyBk ZWZhdWx0CiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyBJREVOVElUWSkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJvcgogTk9USUNF OiAgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KIEVSUk9S OiAgY29sdW1uICJiIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gYnV0IHNwZWNp ZmllcyBpZGVudGl0eQotQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0t IG9rLCBvdmVycmlkZXMgcGFyZW50CitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBTVE9SRUQpIElOSEVSSVRTIChndGVz dDEpOyAgLS0gZXJyb3IKK05PVElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVy aXRlZCBkZWZpbml0aW9uCitFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgZnJvbSBnZW5l cmF0ZWQgY29sdW1uIG9mIGRpZmZlcmVudCBraW5kCitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4 IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBWSVJUVUFMKSBJTkhF UklUUyAoZ3Rlc3QxKTsgIC0tIG9rLCBvdmVycmlkZXMgcGFyZW50CiBOT1RJQ0U6ICBtZXJn aW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogXGQrIGd0ZXN0eAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0 ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0eCIKLSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICB8IFN0 b3JhZ2UgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBhICAg ICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKLSBiICAg ICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChhICogMjIpIHN0b3JlZCB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKLSB4ICAg ICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVh bF90ZXN0cy5ndGVzdHgiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICB8IFN0b3JhZ2UgfCBTdGF0cyB0 YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAg ICAgfCBub3QgbnVsbCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAg IHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIyKSB8IHBsYWluICAgfCAgICAg ICAgICAgICAgfCAKKyB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAg ICB8IAogSW5oZXJpdHM6IGd0ZXN0MQogCitJTlNFUlQgSU5UTyBndGVzdHggKGEsIHgpIFZB TFVFUyAoMTEsIDIyKTsKK1NFTEVDVCAqIEZST00gZ3Rlc3QxOworIGEgIHwgYiAgCistLS0t Ky0tLS0KKyAgMyB8ICA2CisgIDQgfCAgOAorIDExIHwgMjIKKygzIHJvd3MpCisKK1NFTEVD VCAqIEZST00gZ3Rlc3R4OworIGEgIHwgIGIgIHwgeCAgCistLS0tKy0tLS0tKy0tLS0KKyAx MSB8IDI0MiB8IDIyCisoMSByb3cpCisKIENSRUFURSBUQUJMRSBndGVzdHh4XzEgKGEgaW50 IE5PVCBOVUxMLCBiIGludCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzEgSU5IRVJJVCBndGVz dDE7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImIiIGluIGNoaWxkIHRhYmxlIG11c3Qg YmUgYSBnZW5lcmF0ZWQgY29sdW1uCi1DUkVBVEUgVEFCTEUgZ3Rlc3R4eF8zIChhIGludCBO T1QgTlVMTCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitD UkVBVEUgVEFCTEUgZ3Rlc3R4eF8zIChhIGludCBOT1QgTlVMTCwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF8zIElO SEVSSVQgZ3Rlc3QxOyAgLS0gb2sKLUNSRUFURSBUQUJMRSBndGVzdHh4XzQgKGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGEgaW50IE5PVCBOVUxMKTsKK0NS RUFURSBUQUJMRSBndGVzdHh4XzQgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBWSVJUVUFMLCBhIGludCBOT1QgTlVMTCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzQgSU5I RVJJVCBndGVzdDE7ICAtLSBvawogLS0gdGVzdCBtdWx0aXBsZSBpbmhlcml0YW5jZSBtaXNt YXRjaGVzCiBDUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQgREVGQVVMVCA1NSk7 CkBAIC0zNDEsMjggKzM3NCwyOCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKCkgSU5IRVJJ VFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIGVycm9yCiBOT1RJQ0U6ICBtZXJnaW5nIG11bHRp cGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImIiCiBFUlJPUjogIGluaGVy aXRlZCBjb2x1bW4gImIiIGhhcyBhIGdlbmVyYXRpb24gY29uZmxpY3QKIERST1AgVEFCTEUg Z3Rlc3R5OwotQ1JFQVRFIFRBQkxFIGd0ZXN0eSAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKHggKiAyMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdHkgKHggaW50 LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMjIpIFZJUlRVQUwpOwogQ1JFQVRF IFRBQkxFIGd0ZXN0MV95ICgpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBlcnJv cgogTk9USUNFOiAgbWVyZ2luZyBtdWx0aXBsZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2Yg Y29sdW1uICJiIgogRVJST1I6ICBjb2x1bW4gImIiIGluaGVyaXRzIGNvbmZsaWN0aW5nIGdl bmVyYXRpb24gZXhwcmVzc2lvbnMKIEhJTlQ6ICBUbyByZXNvbHZlIHRoZSBjb25mbGljdCwg c3BlY2lmeSBhIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBleHBsaWNpdGx5LgotQ1JFQVRFIFRB QkxFIGd0ZXN0MV95IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICsgMSkgU1RPUkVE KSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gb2sKK0NSRUFURSBUQUJMRSBndGVz dDFfeSAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCArIDEpIFZJUlRVQUwpIElOSEVS SVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBvawogTk9USUNFOiAgbWVyZ2luZyBtdWx0aXBs ZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2YgY29sdW1uICJiIgogTk9USUNFOiAgbW92aW5n IGFuZCBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogREVU QUlMOiAgVXNlci1zcGVjaWZpZWQgY29sdW1uIG1vdmVkIHRvIHRoZSBwb3NpdGlvbiBvZiB0 aGUgaW5oZXJpdGVkIGNvbHVtbi4KIFxkIGd0ZXN0MV95Ci0gICAgICAgICAgICAgICAgICAg VGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxX3kiCi0gQ29sdW1uIHwgIFR5 cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAg ICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg VGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MV95IgorIENvbHVtbiB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAg ICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8IG5vdCBudWxsIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoeCArIDEpIHN0b3JlZAorIGIgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKHgg KyAxKQogIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogSW5o ZXJpdHM6IGd0ZXN0MSwKICAgICAgICAgICBndGVzdHkKIAogLS0gdGVzdCBjb3JyZWN0IGhh bmRsaW5nIG9mIEdFTkVSQVRFRCBjb2x1bW4gdGhhdCdzIG9ubHkgaW4gY2hpbGQKIENSRUFU RSBUQUJMRSBndGVzdHAgKGYxIGludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RjIChmMiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoZjErMSkgU1RPUkVEKSBJTkhFUklUUyhndGVzdHApOwor Q1JFQVRFIFRBQkxFIGd0ZXN0YyAoZjIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxKzEp IFZJUlRVQUwpIElOSEVSSVRTKGd0ZXN0cCk7CiBJTlNFUlQgSU5UTyBndGVzdGMgdmFsdWVz KDQyKTsKIFRBQkxFIGd0ZXN0YzsKICBmMSB8IGYyIApAQCAtMzc5LDggKzQxMiw4IEBAIFRB QkxFIGd0ZXN0YzsKIAogRFJPUCBUQUJMRSBndGVzdHAgQ0FTQ0FERTsKIE5PVElDRTogIGRy b3AgY2FzY2FkZXMgdG8gdGFibGUgZ3Rlc3RjCi0tLSB0ZXN0IHN0b3JlZCB1cGRhdGUKLUNS RUFURSBUQUJMRSBndGVzdDMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMykgU1RPUkVEKTsKKy0tIHRlc3QgdXBkYXRlIFhYWAorQ1JFQVRFIFRBQkxFIGd0ZXN0 MyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFMKTsK IElOU0VSVCBJTlRPIGd0ZXN0MyAoYSkgVkFMVUVTICgxKSwgKDIpLCAoMyksIChOVUxMKTsK IFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAgYSB8IGIgCkBAIC00MDEsNyAr NDM0LDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDMgT1JERVIgQlkgYTsKICAgICB8ICAgCiAo NCByb3dzKQogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QzYSAoYSB0ZXh0LCBiIHRleHQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBn dGVzdDNhIChhIHRleHQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcrJyB8 fCBhKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0M2EgKGEpIFZBTFVFUyAoJ2EnKSwg KCdiJyksICgnYycpLCAoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0M2EgT1JERVIgQlkg YTsKICBhIHwgIGIgIApAQCAtNDY2LDcgKzQ5OSw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3Qz IE9SREVSIEJZIGE7CiAoNCByb3dzKQogCiAtLSBudWxsIHZhbHVlcwotQ1JFQVRFIFRBQkxF IGd0ZXN0MiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KE5VTEwpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoTlVMTCkgVklSVFVBTCk7CiBJTlNFUlQg SU5UTyBndGVzdDIgVkFMVUVTICgxKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyOwogIGEgfCBi IApAQCAtNDc1LDcgKzUwOCw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyOwogKDEgcm93KQog CiAtLSBzaW1wbGUgY29sdW1uIHJlZmVyZW5jZSBmb3IgdmFybGVuYSB0eXBlcwotQ1JFQVRF IFRBQkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hhciwgYiB2YXJjaGFyIEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfdmFybGVuYSAoYSB2 YXJjaGFyLCBiIHZhcmNoYXIgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSkgVklSVFVBTCk7CiBJ TlNFUlQgSU5UTyBndGVzdF92YXJsZW5hIChhKSBWQUxVRVMoJzAxMjM0NTY3ODkwMTIzNDU2 Nzg5Jyk7CiBJTlNFUlQgSU5UTyBndGVzdF92YXJsZW5hIChhKSBWQUxVRVMoTlVMTCk7CiBT RUxFQ1QgKiBGUk9NIGd0ZXN0X3ZhcmxlbmEgT1JERVIgQlkgYTsKQEAgLTQ5MCw3ICs1MjMs NyBAQCBEUk9QIFRBQkxFIGd0ZXN0X3ZhcmxlbmE7CiBDUkVBVEUgVFlQRSBkb3VibGVfaW50 IGFzIChhIGludCwgYiBpbnQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0NCAoCiAgICAgYSBpbnQs Ci0gICAgYiBkb3VibGVfaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICogMiwgYSAqIDMp KSBTVE9SRUQKKyAgICBiIGRvdWJsZV9pbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKiAy LCBhICogMykpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdDQgVkFMVUVTICgxKSwg KDYpOwogU0VMRUNUICogRlJPTSBndGVzdDQ7CkBAIC01MDUsMTEgKzUzOCwxMSBAQCBEUk9Q IFRZUEUgZG91YmxlX2ludDsKIC0tIHVzaW5nIHRhYmxlb2lkIGlzIGFsbG93ZWQKIENSRUFU RSBUQUJMRSBndGVzdF90YWJsZW9pZCAoCiAgIGEgaW50IFBSSU1BUlkgS0VZLAotICBiIGJv b2wgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQgPSAnZ3Rlc3RfdGFibGVvaWQnOjpy ZWdjbGFzcykgU1RPUkVECisgIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9p ZCA9ICdndGVzdF90YWJsZW9pZCc6OnJlZ2NsYXNzKSBWSVJUVUFMCiApOwogSU5TRVJUIElO VE8gZ3Rlc3RfdGFibGVvaWQgVkFMVUVTICgxKSwgKDIpOwogQUxURVIgVEFCTEUgZ3Rlc3Rf dGFibGVvaWQgQUREIENPTFVNTgotICBjIHJlZ2NsYXNzIEdFTkVSQVRFRCBBTFdBWVMgQVMg KHRhYmxlb2lkKSBTVE9SRUQ7CisgIGMgcmVnY2xhc3MgR0VORVJBVEVEIEFMV0FZUyBBUyAo dGFibGVvaWQpIFZJUlRVQUw7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3RhYmxlb2lkOwogIGEg fCBiIHwgICAgICAgYyAgICAgICAgCiAtLS0rLS0tKy0tLS0tLS0tLS0tLS0tLS0KQEAgLTUx OCw3ICs1NTEsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3RhYmxlb2lkOwogKDIgcm93cykK IAogLS0gZHJvcCBjb2x1bW4gYmVoYXZpb3IKLUNSRUFURSBUQUJMRSBndGVzdDEwIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAy KSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MTAgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwpOwogQUxU RVIgVEFCTEUgZ3Rlc3QxMCBEUk9QIENPTFVNTiBiOyAgLS0gZmFpbHMKIEVSUk9SOiAgY2Fu bm90IGRyb3AgY29sdW1uIGIgb2YgdGFibGUgZ3Rlc3QxMCBiZWNhdXNlIG90aGVyIG9iamVj dHMgZGVwZW5kIG9uIGl0CiBERVRBSUw6ICBjb2x1bW4gYyBvZiB0YWJsZSBndGVzdDEwIGRl cGVuZHMgb24gY29sdW1uIGIgb2YgdGFibGUgZ3Rlc3QxMApAQCAtNTI2LDMwICs1NTksMzEg QEAgSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBv YmplY3RzIHRvby4KIEFMVEVSIFRBQkxFIGd0ZXN0MTAgRFJPUCBDT0xVTU4gYiBDQVNDQURF OyAgLS0gZHJvcHMgYyB0b28KIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gY29sdW1uIGMg b2YgdGFibGUgZ3Rlc3QxMAogXGQgZ3Rlc3QxMAotICAgICAgVGFibGUgImdlbmVyYXRlZF9z dG9yZWRfdGVzdHMuZ3Rlc3QxMCIKKyAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90 ZXN0cy5ndGVzdDEwIgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8IERlZmF1bHQgCiAtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwg fCAKIEluZGV4ZXM6CiAgICAgImd0ZXN0MTBfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChh KQogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVz dDEwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTBhIERST1AgQ09MVU1OIGI7CiBJ TlNFUlQgSU5UTyBndGVzdDEwYSAoYSkgVkFMVUVTICgxKTsKIC0tIHByaXZpbGVnZXMKIENS RUFURSBVU0VSIHJlZ3Jlc3NfdXNlcjExOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MTFzIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAy KSBTVE9SRUQpOwotSU5TRVJUIElOVE8gZ3Rlc3QxMXMgVkFMVUVTICgxLCAxMCksICgyLCAy MCk7Ci1HUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTFzIFRPIHJlZ3Jlc3NfdXNlcjEx OworQ1JFQVRFIFRBQkxFIGd0ZXN0MTF2IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMKTsKK0lOU0VSVCBJTlRP IGd0ZXN0MTF2IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOworR1JBTlQgU0VMRUNUIChhLCBj KSBPTiBndGVzdDExdiBUTyByZWdyZXNzX3VzZXIxMTsKIENSRUFURSBGVU5DVElPTiBnZjEo YSBpbnQpIFJFVFVSTlMgaW50IEFTICQkIFNFTEVDVCBhICogMyAkJCBJTU1VVEFCTEUgTEFO R1VBR0UgU1FMOwogUkVWT0tFIEFMTCBPTiBGVU5DVElPTiBnZjEoaW50KSBGUk9NIFBVQkxJ QzsKLUNSRUFURSBUQUJMRSBndGVzdDEycyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBj IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZjEoYikpIFNUT1JFRCk7Ci1JTlNFUlQgSU5U TyBndGVzdDEycyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKK0NSRUFURSBUQUJMRSBndGVz dDEydiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChnZjEoYikpIFZJUlRVQUwpOworSU5TRVJUIElOVE8gZ3Rlc3QxMnYgVkFMVUVTICgx LCAxMCksICgyLCAyMCk7CiBHUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTJzIFRPIHJl Z3Jlc3NfdXNlcjExOworRVJST1I6ICByZWxhdGlvbiAiZ3Rlc3QxMnMiIGRvZXMgbm90IGV4 aXN0CiBTRVQgUk9MRSByZWdyZXNzX3VzZXIxMTsKLVNFTEVDVCBhLCBiIEZST00gZ3Rlc3Qx MXM7ICAtLSBub3QgYWxsb3dlZAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFi bGUgZ3Rlc3QxMXMKLVNFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMXM7ICAtLSBhbGxvd2VkCitT RUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MTF2OyAgLS0gbm90IGFsbG93ZWQKK0VSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGd0ZXN0MTF2CitTRUxFQ1QgYSwgYyBGUk9NIGd0 ZXN0MTF2OyAgLS0gYWxsb3dlZAogIGEgfCBjICAKIC0tLSstLS0tCiAgMSB8IDIwCkBAIC01 NTgsMjMxICs1OTIsMTM5IEBAIFNFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMXM7ICAtLSBhbGxv d2VkCiAKIFNFTEVDVCBnZjEoMTApOyAgLS0gbm90IGFsbG93ZWQKIEVSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIGZ1bmN0aW9uIGdmMQotU0VMRUNUIGEsIGMgRlJPTSBndGVzdDEy czsgIC0tIGFsbG93ZWQKLSBhIHwgYyAgCi0tLS0rLS0tLQotIDEgfCAzMAotIDIgfCA2MAot KDIgcm93cykKLQorU0VMRUNUIGEsIGMgRlJPTSBndGVzdDEydjsgIC0tIG5vdCBhbGxvd2Vk OyBUT0RPOiBvdWdodCB0byBiZSBhbGxvd2VkCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciB0YWJsZSBndGVzdDEydgogUkVTRVQgUk9MRTsKIERST1AgRlVOQ1RJT04gZ2YxKGlu dCk7ICAtLSBmYWlsCiBFUlJPUjogIGNhbm5vdCBkcm9wIGZ1bmN0aW9uIGdmMShpbnRlZ2Vy KSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0Ci1ERVRBSUw6ICBjb2x1bW4g YyBvZiB0YWJsZSBndGVzdDEycyBkZXBlbmRzIG9uIGZ1bmN0aW9uIGdmMShpbnRlZ2VyKQor REVUQUlMOiAgY29sdW1uIGMgb2YgdGFibGUgZ3Rlc3QxMnYgZGVwZW5kcyBvbiBmdW5jdGlv biBnZjEoaW50ZWdlcikKIEhJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRo ZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCi1EUk9QIFRBQkxFIGd0ZXN0MTFzLCBndGVzdDEy czsKK0RST1AgVEFCTEUgZ3Rlc3QxMXYsIGd0ZXN0MTJ2OwogRFJPUCBGVU5DVElPTiBnZjEo aW50KTsKIERST1AgVVNFUiByZWdyZXNzX3VzZXIxMTsKIC0tIGNoZWNrIGNvbnN0cmFpbnRz Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgQ0hFQ0sgKGIgPCA1MCkpOworQ1JFQVRF IFRBQkxFIGd0ZXN0MjAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgVklSVFVBTCBDSEVDSyAoYiA8IDUwKSk7CiBJTlNFUlQgSU5UTyBn dGVzdDIwIChhKSBWQUxVRVMgKDEwKTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVzdDIwIChh KSBWQUxVRVMgKDMwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEVSUk9SOiAgbmV3IHJv dyBmb3IgcmVsYXRpb24gImd0ZXN0MjAiIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImd0 ZXN0MjBfYl9jaGVjayIKLURFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgzMCwgNjAp LgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDMwLCB2aXJ0dWFsKS4KIEFMVEVS IFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAx MDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAotRVJST1I6ICBjaGVjayBjb25zdHJhaW50 ICJndGVzdDIwX2JfY2hlY2siIG9mIHJlbGF0aW9uICJndGVzdDIwIiBpcyB2aW9sYXRlZCBi eSBzb21lIHJvdworRVJST1I6ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlzIG5v dCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENv bHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjAiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQg Y29sdW1uLgogQUxURVIgVEFCTEUgZ3Rlc3QyMCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVT U0lPTiBBUyAoYSAqIDMpOyAgLS0gb2sKLUNSRUFURSBUQUJMRSBndGVzdDIwYSAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQp OworRVJST1I6ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0 ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENvbHVtbiAiYiIg b2YgcmVsYXRpb24gImd0ZXN0MjAiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgor Q1JFQVRFIFRBQkxFIGd0ZXN0MjBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGEg KGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGEgKGEpIFZBTFVFUyAoMzAp OwogQUxURVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENIRUNLIChiIDwgNTApOyAgLS0gZmFpbHMg b24gZXhpc3Rpbmcgcm93CiBFUlJPUjogIGNoZWNrIGNvbnN0cmFpbnQgImd0ZXN0MjBhX2Jf Y2hlY2siIG9mIHJlbGF0aW9uICJndGVzdDIwYSIgaXMgdmlvbGF0ZWQgYnkgc29tZSByb3cK LUNSRUFURSBUQUJMRSBndGVzdDIwYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjBi IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVFUyAoMTApOwogSU5T RVJUIElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVFUyAoMzApOwogQUxURVIgVEFCTEUgZ3Rlc3Qy MGIgQUREIENPTlNUUkFJTlQgY2hrIENIRUNLIChiIDwgNTApIE5PVCBWQUxJRDsKIEFMVEVS IFRBQkxFIGd0ZXN0MjBiIFZBTElEQVRFIENPTlNUUkFJTlQgY2hrOyAgLS0gZmFpbHMgb24g ZXhpc3Rpbmcgcm93CiBFUlJPUjogIGNoZWNrIGNvbnN0cmFpbnQgImNoayIgb2YgcmVsYXRp b24gImd0ZXN0MjBiIiBpcyB2aW9sYXRlZCBieSBzb21lIHJvdwotLS0gbm90LW51bGwgY29u c3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIxYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgU1RPUkVEIE5PVCBOVUxM KTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKLUlOU0VS VCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWlu dAotRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0 MjFhIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50Ci1ERVRBSUw6ICBGYWlsaW5nIHJv dyBjb250YWlucyAoMCwgbnVsbCkuCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMWIgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFNU T1JFRCk7CistLSBub3QtbnVsbCBjb25zdHJhaW50cyAoY3VycmVudGx5IG5vdCBzdXBwb3J0 ZWQpCitDUkVBVEUgVEFCTEUgZ3Rlc3QyMWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJUlRVQUwgTk9UIE5VTEwpOwor RVJST1I6ICBub3QtbnVsbCBjb25zdHJhaW50cyBhcmUgbm90IHN1cHBvcnRlZCBvbiB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW5zCistLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxV RVMgKDEpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMCk7 ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMWIgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkp IFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3QyMWIgQUxURVIgQ09MVU1OIGIgU0VUIE5P VCBOVUxMOwotSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBvawot SU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBjb25z dHJhaW50Ci1FUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiByZWxhdGlvbiAi Z3Rlc3QyMWIiIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQKLURFVEFJTDogIEZhaWxp bmcgcm93IGNvbnRhaW5zICgwLCBudWxsKS4KK0VSUk9SOiAgbm90LW51bGwgY29uc3RyYWlu dHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVU QUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMWIiIGlzIGEgdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1uLgorLS1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgx KTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0g dmlvbGF0ZXMgY29uc3RyYWludAogQUxURVIgVEFCTEUgZ3Rlc3QyMWIgQUxURVIgQ09MVU1O IGIgRFJPUCBOT1QgTlVMTDsKLUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDAp OyAgLS0gb2sgbm93CistLUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAg LS0gb2sgbm93CiAtLSBpbmRleCBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJh IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIp IFNUT1JFRCBVTklRVUUpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgyKTsKLUlO U0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoMyk7Ci1FUlJPUjogIGR1cGxpY2F0ZSBrZXkg dmFsdWUgdmlvbGF0ZXMgdW5pcXVlIGNvbnN0cmFpbnQgImd0ZXN0MjJhX2Jfa2V5IgotREVU QUlMOiAgS2V5IChiKT0oMSkgYWxyZWFkeSBleGlzdHMuCi1JTlNFUlQgSU5UTyBndGVzdDIy YSBWQUxVRVMgKDQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJiIChhIGludCwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFNUT1JFRCwgUFJJTUFSWSBLRVkgKGEsIGIpKTsK LUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7Ci1JTlNFUlQgSU5UTyBndGVzdDIy YiBWQUxVRVMgKDIpOwotRVJST1I6ICBkdXBsaWNhdGUga2V5IHZhbHVlIHZpb2xhdGVzIHVu aXF1ZSBjb25zdHJhaW50ICJndGVzdDIyYl9wa2V5IgotREVUQUlMOiAgS2V5IChhLCBiKT0o MiwgMSkgYWxyZWFkeSBleGlzdHMuCitDUkVBVEUgVEFCTEUgZ3Rlc3QyMmEgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8gMikgVklSVFVBTCBV TklRVUUpOworRVJST1I6ICBpbmRleCBjcmVhdGlvbiBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVT ICgyKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgzKTsKKy0tSU5TRVJUIElO VE8gZ3Rlc3QyMmEgVkFMVUVTICg0KTsKK0NSRUFURSBUQUJMRSBndGVzdDIyYiAoYSBpbnQs IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSBWSVJUVUFMLCBQUklNQVJZIEtF WSAoYSwgYikpOworRVJST1I6ICBpbmRleCBjcmVhdGlvbiBvbiB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmIgVkFM VUVTICgyKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmIgVkFMVUVTICgyKTsKIC0tIGluZGV4 ZXMKLUNSRUFURSBUQUJMRSBndGVzdDIyYyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBTVE9SRUQpOwotQ1JFQVRFIElOREVYIGd0ZXN0MjJjX2JfaWR4IE9O IGd0ZXN0MjJjIChiKTsKLUNSRUFURSBJTkRFWCBndGVzdDIyY19leHByX2lkeCBPTiBndGVz dDIyYyAoKGIgKiAzKSk7Ci1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfcHJlZF9pZHggT04gZ3Rl c3QyMmMgKGEpIFdIRVJFIGIgPiAwOwotXGQgZ3Rlc3QyMmMKLSAgICAgICAgICAgICAgICAg ICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDIyYyIKLSBDb2x1bW4gfCAg VHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAg ICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gYSAgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3Jl ZAotSW5kZXhlczoKLSAgICAiZ3Rlc3QyMmNfYl9pZHgiIGJ0cmVlIChiKQotICAgICJndGVz dDIyY19leHByX2lkeCIgYnRyZWUgKChiICogMykpCi0gICAgImd0ZXN0MjJjX3ByZWRfaWR4 IiBidHJlZSAoYSkgV0hFUkUgYiA+IDAKLQotSU5TRVJUIElOVE8gZ3Rlc3QyMmMgVkFMVUVT ICgxKSwgKDIpLCAoMyk7Ci1TRVQgZW5hYmxlX3NlcXNjYW4gVE8gb2ZmOwotU0VUIGVuYWJs ZV9iaXRtYXBzY2FuIFRPIG9mZjsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBndGVzdDIyYyBXSEVSRSBiID0gNDsKLSAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0gSW5kZXggU2NhbiB1c2luZyBndGVzdDIyY19iX2lkeCBvbiBndGVzdDIy YwotICAgSW5kZXggQ29uZDogKGIgPSA0KQotKDIgcm93cykKLQotU0VMRUNUICogRlJPTSBn dGVzdDIyYyBXSEVSRSBiID0gNDsKLSBhIHwgYiAKLS0tLSstLS0KLSAyIHwgNAotKDEgcm93 KQotCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUg YiAqIDMgPSA2OwotICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSBJbmRleCBTY2FuIHVzaW5nIGd0ZXN0MjJjX2V4cHJfaWR4IG9uIGd0ZXN0MjJjCi0g ICBJbmRleCBDb25kOiAoKGIgKiAzKSA9IDYpCi0oMiByb3dzKQotCi1TRUxFQ1QgKiBGUk9N IGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgMgot KDEgcm93KQotCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMg V0hFUkUgYSA9IDEgQU5EIGIgPiAwOwotICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSBJbmRleCBTY2FuIHVzaW5nIGd0ZXN0MjJjX3ByZWRfaWR4IG9u IGd0ZXN0MjJjCi0gICBJbmRleCBDb25kOiAoYSA9IDEpCi0oMiByb3dzKQotCi1TRUxFQ1Qg KiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLSBhIHwgYiAKLS0tLSst LS0KLSAxIHwgMgotKDEgcm93KQotCi1BTFRFUiBUQUJMRSBndGVzdDIyYyBBTFRFUiBDT0xV TU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDQpOwotQU5BTFlaRSBndGVzdDIyYzsKLUVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsK LSAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5kZXggU2NhbiB1 c2luZyBndGVzdDIyY19iX2lkeCBvbiBndGVzdDIyYwotICAgSW5kZXggQ29uZDogKGIgPSA4 KQotKDIgcm93cykKLQotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKLSBh IHwgYiAKLS0tLSstLS0KLSAyIHwgOAotKDEgcm93KQotCi1FWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKLSAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5kZXggU2NhbiB1c2luZyBn dGVzdDIyY19leHByX2lkeCBvbiBndGVzdDIyYwotICAgSW5kZXggQ29uZDogKChiICogMykg PSAxMikKLSgyIHJvd3MpCi0KLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMg PSAxMjsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgNAotKDEgcm93KQotCi1FWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAw OwotICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBJbmRl eCBTY2FuIHVzaW5nIGd0ZXN0MjJjX3ByZWRfaWR4IG9uIGd0ZXN0MjJjCi0gICBJbmRleCBD b25kOiAoYSA9IDEpCi0oMiByb3dzKQotCi1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJF IGEgPSAxIEFORCBiID4gMDsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgNAotKDEgcm93KQot Ci1SRVNFVCBlbmFibGVfc2Vxc2NhbjsKLVJFU0VUIGVuYWJsZV9iaXRtYXBzY2FuOworQ1JF QVRFIFRBQkxFIGd0ZXN0MjJjIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFZJUlRVQUwpOworLS1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfYl9pZHggT04gZ3Rl c3QyMmMgKGIpOworLS1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfZXhwcl9pZHggT04gZ3Rlc3Qy MmMgKChiICogMykpOworLS1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfcHJlZF9pZHggT04gZ3Rl c3QyMmMgKGEpIFdIRVJFIGIgPiAwOworLS1cZCBndGVzdDIyYworLS1JTlNFUlQgSU5UTyBn dGVzdDIyYyBWQUxVRVMgKDEpLCAoMiksICgzKTsKKy0tU0VUIGVuYWJsZV9zZXFzY2FuIFRP IG9mZjsKKy0tU0VUIGVuYWJsZV9iaXRtYXBzY2FuIFRPIG9mZjsKKy0tRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0OworLS1TRUxFQ1Qg KiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0OworLS1FWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSA2OworLS1TRUxFQ1QgKiBGUk9N IGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKKy0tU0VMRUNUICog RlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7CistLUFMVEVSIFRBQkxFIGd0 ZXN0MjJjIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNCk7CistLUFO QUxZWkUgZ3Rlc3QyMmM7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBn dGVzdDIyYyBXSEVSRSBiID0gODsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBi ID0gODsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdI RVJFIGIgKiAzID0gMTI7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMg PSAxMjsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdI RVJFIGEgPSAxIEFORCBiID4gMDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBh ID0gMSBBTkQgYiA+IDA7CistLVJFU0VUIGVuYWJsZV9zZXFzY2FuOworLS1SRVNFVCBlbmFi bGVfYml0bWFwc2NhbjsKIC0tIGZvcmVpZ24ga2V5cwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjNh ICh4IGludCBQUklNQVJZIEtFWSwgeSBpbnQpOwotSU5TRVJUIElOVE8gZ3Rlc3QyM2EgVkFM VUVTICgxLCAxMSksICgyLCAyMiksICgzLCAzMyk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyM3gg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg U1RPUkVEIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9OIFVQREFURSBDQVNDQURFKTsgIC0t IGVycm9yCistLUlOU0VSVCBJTlRPIGd0ZXN0MjNhIFZBTFVFUyAoMSwgMTEpLCAoMiwgMjIp LCAoMywgMzMpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJFTkNFUyBn dGVzdDIzYSAoeCkgT04gVVBEQVRFIENBU0NBREUpOyAgLS0gZXJyb3IKIEVSUk9SOiAgaW52 YWxpZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IGNvbnRh aW5pbmcgZ2VuZXJhdGVkIGNvbHVtbgotQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBS RUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBERUxFVEUgU0VUIE5VTEwpOyAgLS0gZXJyb3IK K0NSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgp IE9OIERFTEVURSBTRVQgTlVMTCk7ICAtLSBlcnJvcgogRVJST1I6ICBpbnZhbGlkIE9OIERF TEVURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgY29udGFpbmluZyBnZW5l cmF0ZWQgY29sdW1uCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyM2IgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIFJFRkVSRU5DRVMg Z3Rlc3QyM2EgKHgpKTsKLVxkIGd0ZXN0MjNiCi0gICAgICAgICAgICAgICAgICAgVGFibGUg ImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyM2IiCi0gQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGEgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCBub3QgbnVsbCB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQKLUluZGV4 ZXM6Ci0gICAgImd0ZXN0MjNiX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoYSkKLUZvcmVp Z24ta2V5IGNvbnN0cmFpbnRzOgotICAgICJndGVzdDIzYl9iX2ZrZXkiIEZPUkVJR04gS0VZ IChiKSBSRUZFUkVOQ0VTIGd0ZXN0MjNhKHgpCi0KLUlOU0VSVCBJTlRPIGd0ZXN0MjNiIFZB TFVFUyAoMSk7ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICg1KTsgIC0t IGVycm9yCi1FUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgImd0ZXN0MjNiIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJndGVzdDIzYl9iX2ZrZXkiCi1ERVRB SUw6ICBLZXkgKGIpPSgxMCkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgImd0ZXN0MjNhIi4K LUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFT IChhICogNSk7IC0tIGVycm9yCi1FUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUg Imd0ZXN0MjNiIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJndGVzdDIzYl9i X2ZrZXkiCi1ERVRBSUw6ICBLZXkgKGIpPSg1KSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAi Z3Rlc3QyM2EiLgotQUxURVIgVEFCTEUgZ3Rlc3QyM2IgQUxURVIgQ09MVU1OIGIgU0VUIEVY UFJFU1NJT04gQVMgKGEgKiAxKTsgLS0gb2sKLURST1AgVEFCTEUgZ3Rlc3QyM2I7Ci1EUk9Q IFRBQkxFIGd0ZXN0MjNhOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjNwICh4IGludCwgeSBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIpIFNUT1JFRCwgUFJJTUFSWSBLRVkgKHkpKTsK LUlOU0VSVCBJTlRPIGd0ZXN0MjNwIFZBTFVFUyAoMSksICgyKSwgKDMpOworQ1JFQVRFIFRB QkxFIGd0ZXN0MjNiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkpOworRVJST1I6 ICBmb3JlaWduIGtleSBjb25zdHJhaW50cyBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5z IGFyZSBub3Qgc3VwcG9ydGVkCistLVxkIGd0ZXN0MjNiCistLUlOU0VSVCBJTlRPIGd0ZXN0 MjNiIFZBTFVFUyAoMSk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMg KDUpOyAgLS0gZXJyb3IKKy0tQUxURVIgVEFCTEUgZ3Rlc3QyM2IgQUxURVIgQ09MVU1OIGIg U0VUIEVYUFJFU1NJT04gQVMgKGEgKiA1KTsgLS0gZXJyb3IKKy0tQUxURVIgVEFCTEUgZ3Rl c3QyM2IgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAxKTsgLS0gb2sK Ky0tRFJPUCBUQUJMRSBndGVzdDIzYjsKKy0tRFJPUCBUQUJMRSBndGVzdDIzYTsKK0NSRUFU RSBUQUJMRSBndGVzdDIzcCAoeCBpbnQsIHkgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHgg KiAyKSBWSVJUVUFMLCBQUklNQVJZIEtFWSAoeSkpOworRVJST1I6ICBpbmRleCBjcmVhdGlv biBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQKKy0tSU5T RVJUIElOVE8gZ3Rlc3QyM3AgVkFMVUVTICgxKSwgKDIpLCAoMyk7CiBDUkVBVEUgVEFCTEUg Z3Rlc3QyM3EgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBSRUZFUkVOQ0VTIGd0ZXN0MjNw ICh5KSk7Ci1JTlNFUlQgSU5UTyBndGVzdDIzcSBWQUxVRVMgKDEsIDIpOyAgLS0gb2sKLUlO U0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMiwgNSk7ICAtLSBlcnJvcgotRVJST1I6ICBp bnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJndGVzdDIzcSIgdmlvbGF0ZXMgZm9yZWlnbiBr ZXkgY29uc3RyYWludCAiZ3Rlc3QyM3FfYl9ma2V5IgotREVUQUlMOiAgS2V5IChiKT0oNSkg aXMgbm90IHByZXNlbnQgaW4gdGFibGUgImd0ZXN0MjNwIi4KK0VSUk9SOiAgcmVsYXRpb24g Imd0ZXN0MjNwIiBkb2VzIG5vdCBleGlzdAorLS1JTlNFUlQgSU5UTyBndGVzdDIzcSBWQUxV RVMgKDEsIDIpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgyLCA1 KTsgIC0tIGVycm9yCiAtLSBkb21haW5zCiBDUkVBVEUgRE9NQUlOIGd0ZXN0ZG9tYWluMSBB UyBpbnQgQ0hFQ0sgKFZBTFVFIDwgMTApOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgU1RPUkVEKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNCk7ICAtLSBv awotSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg2KTsgIC0tIGVycm9yCi1FUlJP UjogIHZhbHVlIGZvciBkb21haW4gZ3Rlc3Rkb21haW4xIHZpb2xhdGVzIGNoZWNrIGNvbnN0 cmFpbnQgImd0ZXN0ZG9tYWluMV9jaGVjayIKK0NSRUFURSBUQUJMRSBndGVzdDI0IChhIGlu dCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFZJUlRVQUwpOworRVJST1I6ICB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gImIiIGNh bm5vdCBoYXZlIGEgZG9tYWluIHR5cGUKK0xJTkUgMTogQ1JFQVRFIFRBQkxFIGd0ZXN0MjQg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBHRU5FLi4uCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS1JTlNFUlQgSU5U TyBndGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy NCAoYSkgVkFMVUVTICg2KTsgIC0tIGVycm9yCiAtLSB0eXBlZCB0YWJsZXMgKGN1cnJlbnRs eSBub3Qgc3VwcG9ydGVkKQogQ1JFQVRFIFRZUEUgZ3Rlc3RfdHlwZSBBUyAoZjEgaW50ZWdl ciwgZjIgdGV4dCwgZjMgYmlnaW50KTsKLUNSRUFURSBUQUJMRSBndGVzdDI4IE9GIGd0ZXN0 X3R5cGUgKGYxIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqMikgU1RP UkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDI4IE9GIGd0ZXN0X3R5cGUgKGYxIFdJVEggT1BU SU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqMikgVklSVFVBTCk7CiBFUlJPUjogIGdl bmVyYXRlZCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHR5cGVkIHRhYmxlcwogRFJP UCBUWVBFIGd0ZXN0X3R5cGUgQ0FTQ0FERTsKIC0tIHBhcnRpdGlvbmluZyBjYXNlcwogQ1JF QVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBm MyBiaWdpbnQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0 X2NoaWxkIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAotICAgIGYzIFdJVEggT1BUSU9O UyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRAorICAgIGYzIFdJVEggT1BU SU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwKICkgRk9SIFZBTFVF UyBGUk9NICgnMjAxNi0wNy0wMScpIFRPICgnMjAxNi0wOC0wMScpOyAtLSBlcnJvcgogRVJS T1I6ICBjaGlsZCBjb2x1bW4gImYzIiBzcGVjaWZpZXMgZ2VuZXJhdGlvbiBleHByZXNzaW9u CiBISU5UOiAgQSBjaGlsZCB0YWJsZSBjb2x1bW4gY2Fubm90IGJlIGdlbmVyYXRlZCB1bmxl c3MgaXRzIHBhcmVudCBjb2x1bW4gaXMuCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgKGYx IGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYyICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9jaGlsZCAoZjEgZGF0 ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo ZjIgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFS VElUSU9OIGd0ZXN0X2NoaWxkIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBUTyAo JzIwMTYtMDgtMDEnKTsgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJmMyIgaW4gY2hpbGQg dGFibGUgbXVzdCBub3QgYmUgYSBnZW5lcmF0ZWQgY29sdW1uCiBEUk9QIFRBQkxFIGd0ZXN0 X3BhcmVudCwgZ3Rlc3RfY2hpbGQ7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFyZW50IChmMSBk YXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFT IChmMiAqIDIpIFNUT1JFRCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMSk7CitDUkVBVEUgVEFC TEUgZ3Rlc3RfcGFyZW50IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2lu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBS QU5HRSAoZjEpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIFBBUlRJVElPTiBPRiBndGVz dF9wYXJlbnQKICAgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wNy0wMScpIFRPICgnMjAxNi0w OC0wMScpOyAgLS0gaW5oZXJpdHMgZ2VuIGV4cHIKIENSRUFURSBUQUJMRSBndGVzdF9jaGls ZDIgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCi0gICAgZjMgV0lUSCBPUFRJT05TIEdF TkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMjIpIFNUT1JFRCAgLS0gb3ZlcnJpZGVzIGdlbiBl eHByCisgICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMjIp IFZJUlRVQUwgIC0tIG92ZXJyaWRlcyBnZW4gZXhwcgogKSBGT1IgVkFMVUVTIEZST00gKCcy MDE2LTA4LTAxJykgVE8gKCcyMDE2LTA5LTAxJyk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hp bGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAogICAgIGYzIERFRkFVTFQgNDIgIC0t IGVycm9yCkBAIC03OTIsNiArNzM0LDEwIEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMg UEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCiAgICAgZjMgV0lUSCBPUFRJT05TIEdFTkVS QVRFRCBBTFdBWVMgQVMgSURFTlRJVFkgIC0tIGVycm9yCiApIEZPUiBWQUxVRVMgRlJPTSAo JzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsKIEVSUk9SOiAgaWRlbnRpdHkgY29s dW1ucyBhcmUgbm90IHN1cHBvcnRlZCBvbiBwYXJ0aXRpb25zCitDUkVBVEUgVEFCTEUgZ3Rl c3RfY2hpbGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAorICAgIGYzIEdFTkVSQVRF RCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEICAtLSBlcnJvcgorKSBGT1IgVkFMVUVTIEZS T00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CitFUlJPUjogIGNvbHVtbiAi ZjMiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJlbnQga2luZAog Q1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50 LCBmMyBiaWdpbnQpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJ T04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIw MTYtMTAtMDEnKTsgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJmMyIgaW4gY2hpbGQgdGFi bGUgbXVzdCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4KQEAgLTgwNSwzMyArNzUxLDMzIEBAIEFM VEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBG T1IgVkFMVUVTIEZST00gKCcyMDE2LTA5CiBFUlJPUjogIHRhYmxlICJndGVzdF9jaGlsZDMi IGJlaW5nIGF0dGFjaGVkIGNvbnRhaW5zIGFuIGlkZW50aXR5IGNvbHVtbiAiZjMiCiBERVRB SUw6ICBUaGUgbmV3IHBhcnRpdGlvbiBtYXkgbm90IGNvbnRhaW4gYW4gaWRlbnRpdHkgY29s dW1uLgogRFJPUCBUQUJMRSBndGVzdF9jaGlsZDM7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfY2hp bGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQg QUxXQVlTIEFTIChmMiAqIDMzKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxk MyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZjIgKiAzMykgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQg QVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0w OS0wMScpIFRPICgnMjAxNi0xMC0wMScpOwogXGQgZ3Rlc3RfY2hpbGQKLSAgICAgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkIgotIENv bHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBE ZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkIgor IENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERl ZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAg IHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKSBzdG9yZWQKKyBmMyAgICAgfCBi aWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYy ICogMikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA3 LTAxLTIwMTYnKSBUTyAoJzA4LTAxLTIwMTYnKQogCiBcZCBndGVzdF9jaGlsZDIKLSAgICAg ICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxk MiIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0 X2NoaWxkMiIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEg ICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdp bnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyMikgc3RvcmVk CisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChmMiAqIDIyKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZB TFVFUyBGUk9NICgnMDgtMDEtMjAxNicpIFRPICgnMDktMDEtMjAxNicpCiAKIFxkIGd0ZXN0 X2NoaWxkMwotICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVz dHMuZ3Rlc3RfY2hpbGQzIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1 YWxfdGVzdHMuZ3Rlc3RfY2hpbGQzIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAog IGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwg YmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChm MiAqIDMzKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAg ICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMzMpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0 X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwOS0wMS0yMDE2JykgVE8gKCcxMC0wMS0yMDE2 JykKIAogSU5TRVJUIElOVE8gZ3Rlc3RfcGFyZW50IChmMSwgZjIpIFZBTFVFUyAoJzIwMTYt MDctMTUnLCAxKTsKQEAgLTg0Miw3ICs3ODgsNyBAQCBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2Ns YXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZIDEsIDIsIDM7CiAtLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLSstLS0tCiAgZ3Rlc3RfY2hpbGQgIHwgMDctMTUtMjAx NiB8ICAxIHwgIDIKICBndGVzdF9jaGlsZCAgfCAwNy0xNS0yMDE2IHwgIDIgfCAgNAotIGd0 ZXN0X2NoaWxkMiB8IDA4LTE1LTIwMTYgfCAgMyB8IDY2CisgZ3Rlc3RfY2hpbGQyIHwgMDgt MTUtMjAxNiB8ICAzIHwgIDYKICgzIHJvd3MpCiAKIFVQREFURSBndGVzdF9wYXJlbnQgU0VU IGYxID0gZjEgKyA2MCBXSEVSRSBmMiA9IDE7CkBAIC04NTAsOTUgKzc5NiwxMDEgQEAgU0VM RUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAx LCAyLCAzOwogICAgdGFibGVvaWQgICB8ICAgICBmMSAgICAgfCBmMiB8IGYzIAogLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0rLS0tLQogIGd0ZXN0X2NoaWxkICB8IDA3LTE1 LTIwMTYgfCAgMiB8ICA0Ci0gZ3Rlc3RfY2hpbGQyIHwgMDgtMTUtMjAxNiB8ICAzIHwgNjYK LSBndGVzdF9jaGlsZDMgfCAwOS0xMy0yMDE2IHwgIDEgfCAzMworIGd0ZXN0X2NoaWxkMiB8 IDA4LTE1LTIwMTYgfCAgMyB8ICA2CisgZ3Rlc3RfY2hpbGQzIHwgMDktMTMtMjAxNiB8ICAx IHwgIDIKICgzIHJvd3MpCiAKIC0tIGFsdGVyIG9ubHkgcGFyZW50J3MgYW5kIG9uZSBjaGls ZCdzIGdlbmVyYXRpb24gZXhwcmVzc2lvbgogQUxURVIgVEFCTEUgT05MWSBndGVzdF9wYXJl bnQgQUxURVIgQ09MVU1OIGYzIFNFVCBFWFBSRVNTSU9OIEFTIChmMiAqIDQpOworRVJST1I6 ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZp cnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENvbHVtbiAiZjMiIG9mIHJlbGF0 aW9uICJndGVzdF9wYXJlbnQiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgogQUxU RVIgVEFCTEUgZ3Rlc3RfY2hpbGQgQUxURVIgQ09MVU1OIGYzIFNFVCBFWFBSRVNTSU9OIEFT IChmMiAqIDEwKTsKK0VSUk9SOiAgQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBu b3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitERVRBSUw6ICBD b2x1bW4gImYzIiBvZiByZWxhdGlvbiAiZ3Rlc3RfY2hpbGQiIGlzIGEgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1uLgogXGQgZ3Rlc3RfcGFyZW50Ci0gICAgICAgICAgIFBhcnRpdGlvbmVk IHRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X3BhcmVudCIKLSBDb2x1bW4g fCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgUGFy dGl0aW9uZWQgdGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X3BhcmVudCIK KyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBE ZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUg ICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAg ICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogNCkgc3RvcmVkCisgZjMgICAgIHwg YmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChm MiAqIDIpCiBQYXJ0aXRpb24ga2V5OiBSQU5HRSAoZjEpCiBOdW1iZXIgb2YgcGFydGl0aW9u czogMyAoVXNlIFxkKyB0byBsaXN0IHRoZW0uKQogCiBcZCBndGVzdF9jaGlsZAotICAgICAg ICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQi Ci0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAg ICAgIERlZmF1bHQgICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9j aGlsZCIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8 IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMTApIHN0b3JlZAorIGYz ICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoZjIgKiAyKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBG Uk9NICgnMDctMDEtMjAxNicpIFRPICgnMDgtMDEtMjAxNicpCiAKIFxkIGd0ZXN0X2NoaWxk MgotICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rl c3RfY2hpbGQyIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVz dHMuZ3Rlc3RfY2hpbGQyIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYyICAg ICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmlnaW50 IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIy KSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdl bmVyYXRlZCBhbHdheXMgYXMgKGYyICogMjIpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVu dCBGT1IgVkFMVUVTIEZST00gKCcwOC0wMS0yMDE2JykgVE8gKCcwOS0wMS0yMDE2JykKIAog XGQgZ3Rlc3RfY2hpbGQzCi0gICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0 b3JlZF90ZXN0cy5ndGVzdF9jaGlsZDMiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgCi0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0 ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9jaGlsZDMiCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBu dWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBm MyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdh eXMgYXMgKGYyICogMzMpIHN0b3JlZAorIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAzMykKIFBhcnRpdGlvbiBv ZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA5LTAxLTIwMTYnKSBUTyAoJzEw LTAxLTIwMTYnKQogCiBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3Rf cGFyZW50IE9SREVSIEJZIDEsIDIsIDM7CiAgICB0YWJsZW9pZCAgIHwgICAgIGYxICAgICB8 IGYyIHwgZjMgCiAtLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLSstLS0tCi0gZ3Rl c3RfY2hpbGQgIHwgMDctMTUtMjAxNiB8ICAyIHwgMjAKLSBndGVzdF9jaGlsZDIgfCAwOC0x NS0yMDE2IHwgIDMgfCA2NgotIGd0ZXN0X2NoaWxkMyB8IDA5LTEzLTIwMTYgfCAgMSB8IDMz CisgZ3Rlc3RfY2hpbGQgIHwgMDctMTUtMjAxNiB8ICAyIHwgIDQKKyBndGVzdF9jaGlsZDIg fCAwOC0xNS0yMDE2IHwgIDMgfCAgNgorIGd0ZXN0X2NoaWxkMyB8IDA5LTEzLTIwMTYgfCAg MSB8ICAyCiAoMyByb3dzKQogCiAtLSBhbHRlciBnZW5lcmF0aW9uIGV4cHJlc3Npb24gb2Yg cGFyZW50IGFuZCBhbGwgaXRzIGNoaWxkcmVuIGFsdG9nZXRoZXIKIEFMVEVSIFRBQkxFIGd0 ZXN0X3BhcmVudCBBTFRFUiBDT0xVTU4gZjMgU0VUIEVYUFJFU1NJT04gQVMgKGYyICogMik7 CitFUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRl ZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29sdW1uICJmMyIg b2YgcmVsYXRpb24gImd0ZXN0X3BhcmVudCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1 bW4uCiBcZCBndGVzdF9wYXJlbnQKLSAgICAgICAgICAgUGFydGl0aW9uZWQgdGFibGUgImdl bmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfcGFyZW50IgotIENvbHVtbiB8ICBUeXBlICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAg ICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBQYXJ0aXRpb25lZCB0 YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfcGFyZW50IgorIENvbHVtbiB8 ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAg ICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAg ICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikKIFBh cnRpdGlvbiBrZXk6IFJBTkdFIChmMSkKIE51bWJlciBvZiBwYXJ0aXRpb25zOiAzIChVc2Ug XGQrIHRvIGxpc3QgdGhlbS4pCiAKIFxkIGd0ZXN0X2NoaWxkCi0gICAgICAgICAgICAgICAg ICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZCIKLSBDb2x1bW4g fCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9jaGlsZCIKKyBDb2x1 bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0 ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAg ICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikgc3RvcmVkCisgZjMgICAgIHwgYmlnaW50 IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIp CiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwNy0wMS0y MDE2JykgVE8gKCcwOC0wMS0yMDE2JykKIAogXGQgZ3Rlc3RfY2hpbGQyCi0gICAgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMiIKLSBD b2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9jaGlsZDIi CisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAg IERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRh dGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAg ICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikgc3RvcmVkCisgZjMgICAg IHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChmMiAqIDIyKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9N ICgnMDgtMDEtMjAxNicpIFRPICgnMDktMDEtMjAxNicpCiAKIFxkIGd0ZXN0X2NoaWxkMwot ICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9j aGlsZDMiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAg ICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rl c3RfY2hpbGQzIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBm MSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJp Z2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAg ICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIpIHN0b3Jl ZAorIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVk IGFsd2F5cyBhcyAoZjIgKiAzMykKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBW QUxVRVMgRlJPTSAoJzA5LTAxLTIwMTYnKSBUTyAoJzEwLTAxLTIwMTYnKQogCiBTRUxFQ1Qg dGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZIDEsIDIs IDM7CkBAIC05NTEsNTQgKzkwMyw1NCBAQCBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAq IEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZIDEsIDIsIDM7CiAKIC0tIHdlIGxlYXZlIHRo ZXNlIHRhYmxlcyBhcm91bmQgZm9yIHB1cnBvc2VzIG9mIHRlc3RpbmcgZHVtcC9yZWxvYWQv dXBncmFkZQogLS0gZ2VuZXJhdGVkIGNvbHVtbnMgaW4gcGFydGl0aW9uIGtleSAobm90IGFs bG93ZWQpCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEws IGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RP UkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKK0NSRUFURSBUQUJMRSBndGVzdF9wYXJ0 X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsK IEVSUk9SOiAgY2Fubm90IHVzZSBnZW5lcmF0ZWQgY29sdW1uIGluIHBhcnRpdGlvbiBrZXkK LUxJTkUgMTogLi4uRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCkgUEFSVElU SU9OIEJZIFJBTkdFIChmMyk7CitMSU5FIDE6IC4uLk5FUkFURUQgQUxXQVlTIEFTIChmMiAq IDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjMpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K IERFVEFJTDogIENvbHVtbiAiZjMiIGlzIGEgZ2VuZXJhdGVkIGNvbHVtbi4KLUNSRUFURSBU QUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBi aWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJVElPTiBC WSBSQU5HRSAoKGYzICogMykpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBk YXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFT IChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBSQU5HRSAoKGYzICogMykpOwogRVJS T1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1bW4gaW4gcGFydGl0aW9uIGtleQotTElO RSAxOiAuLi5FRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFO R0UgKChmMyAqIDMpKTsKK0xJTkUgMTogLi4uRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVB TCkgUEFSVElUSU9OIEJZIFJBTkdFICgoZjMgKiAzKSk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAg Q29sdW1uICJmMyIgaXMgYSBnZW5lcmF0ZWQgY29sdW1uLgogLS0gQUxURVIgVEFCTEUgLi4u IEFERCBDT0xVTU4KIENSRUFURSBUQUJMRSBndGVzdDI1IChhIGludCBQUklNQVJZIEtFWSk7 CiBJTlNFUlQgSU5UTyBndGVzdDI1IFZBTFVFUyAoMyksICg0KTsKLUFMVEVSIFRBQkxFIGd0 ZXN0MjUgQUREIENPTFVNTiBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RP UkVELCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOworQUxURVIg VEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBWSVJUVUFMLCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMp OworRVJST1I6ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0 ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENvbHVtbiAiYiIg b2YgcmVsYXRpb24gImd0ZXN0MjUiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgog U0VMRUNUICogRlJPTSBndGVzdDI1IE9SREVSIEJZIGE7Ci0gYSB8IGIgIAotLS0tKy0tLS0K LSAzIHwgIDkKLSA0IHwgMTIKKyBhIAorLS0tCisgMworIDQKICgyIHJvd3MpCiAKLUFMVEVS IFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChi ICogNCkgU1RPUkVEOyAgLS0gZXJyb3IKLUVSUk9SOiAgY2Fubm90IHVzZSBnZW5lcmF0ZWQg Y29sdW1uICJiIiBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uCi1ERVRBSUw6ICBB IGdlbmVyYXRlZCBjb2x1bW4gY2Fubm90IHJlZmVyZW5jZSBhbm90aGVyIGdlbmVyYXRlZCBj b2x1bW4uCi1BTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoeiAqIDQpIFNUT1JFRDsgIC0tIGVycm9yCitBTFRFUiBUQUJMRSBndGVz dDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDQpIFZJUlRV QUw7ICAtLSBlcnJvcgorRVJST1I6ICBjb2x1bW4gImIiIGRvZXMgbm90IGV4aXN0CitBTFRF UiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo eiAqIDQpIFZJUlRVQUw7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gInoiIGRvZXMgbm90 IGV4aXN0CiBBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4gYyBpbnQgREVGQVVMVCA0 MiwKLSAgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogNCkgU1RP UkVEOworICBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiA0KSBW SVJUVUFMOwogQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGQgaW50IERFRkFVTFQg MTAxOwogQUxURVIgVEFCTEUgZ3Rlc3QyNSBBTFRFUiBDT0xVTU4gZCBTRVQgREFUQSBUWVBF IGZsb2F0OCwKLSAgQUREIENPTFVNTiB5IGZsb2F0OCBHRU5FUkFURUQgQUxXQVlTIEFTIChk ICogNCkgU1RPUkVEOworICBBREQgQ09MVU1OIHkgZmxvYXQ4IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGQgKiA0KSBWSVJUVUFMOwogU0VMRUNUICogRlJPTSBndGVzdDI1IE9SREVSIEJZIGE7 Ci0gYSB8IGIgIHwgYyAgfCAgeCAgfCAgZCAgfCAgeSAgCi0tLS0rLS0tLSstLS0tKy0tLS0t Ky0tLS0tKy0tLS0tCi0gMyB8ICA5IHwgNDIgfCAxNjggfCAxMDEgfCA0MDQKLSA0IHwgMTIg fCA0MiB8IDE2OCB8IDEwMSB8IDQwNAorIGEgfCBjICB8ICB4ICB8ICBkICB8ICB5ICAKKy0t LSstLS0tKy0tLS0tKy0tLS0tKy0tLS0tCisgMyB8IDQyIHwgMTY4IHwgMTAxIHwgNDA0Cisg NCB8IDQyIHwgMTY4IHwgMTAxIHwgNDA0CiAoMiByb3dzKQogCiBcZCBndGVzdDI1Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90 ZXN0cy5ndGVzdDI1IgotIENvbHVtbiB8ICAgICAgIFR5cGUgICAgICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVy YXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjUiCisgQ29sdW1uIHwgICAgICAgVHlwZSAgICAg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICAgIERlZmF1bHQg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgICAgICAgIHwg bm90IG51bGwgfCAKLSBiICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMykgc3RvcmVkCiAgYyAgICAg IHwgaW50ZWdlciAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgNDIKLSB4ICAg ICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChjICogNCkgc3RvcmVkCisgeCAgICAgIHwgaW50ZWdlciAgICAgICAg ICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYyAqIDQp CiAgZCAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgICAgICB8ICAgICAgICAgIHwg MTAxCi0geSAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgICAgICB8ICAgICAgICAg IHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZCAqIDQ6OmRvdWJsZSBwcmVjaXNpb24pIHN0b3Jl ZAorIHkgICAgICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGQgKiA0Ojpkb3VibGUgcHJlY2lzaW9uKQogSW5kZXhl czoKICAgICAiZ3Rlc3QyNV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGEpCiAKQEAgLTEw MDYsNyArOTU4LDcgQEAgSW5kZXhlczoKIENSRUFURSBUQUJMRSBndGVzdDI3ICgKICAgICBh IGludCwKICAgICBiIGludCwKLSAgICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSAr IGIpICogMikgU1RPUkVECisgICAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBi KSAqIDIpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdDI3IChhLCBiKSBWQUxVRVMg KDMsIDcpLCAoNCwgMTEpOwogQUxURVIgVEFCTEUgZ3Rlc3QyNyBBTFRFUiBDT0xVTU4gYSBU WVBFIHRleHQ7ICAtLSBlcnJvcgpAQCAtMTAxNCwxMiArOTY2LDEyIEBAIEVSUk9SOiAgY2Fu bm90IGFsdGVyIHR5cGUgb2YgYSBjb2x1bW4gdXNlZCBieSBhIGdlbmVyYXRlZCBjb2x1bW4K IERFVEFJTDogIENvbHVtbiAiYSIgaXMgdXNlZCBieSBnZW5lcmF0ZWQgY29sdW1uICJ4Ii4K IEFMVEVSIFRBQkxFIGd0ZXN0MjcgQUxURVIgQ09MVU1OIHggVFlQRSBudW1lcmljOwogXGQg Z3Rlc3QyNwotICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9y ZWRfdGVzdHMuZ3Rlc3QyNyIKLSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCAgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgCi0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICBU YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QyNyIKKyBDb2x1bW4gfCAgVHlw ZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAg ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKICBiICAgICAgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKLSB4ICAgICAgfCBudW1lcmljIHwgICAgICAgICAgIHwg ICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzICgoKGEgKyBiKSAqIDIpKSBzdG9yZWQK KyB4ICAgICAgfCBudW1lcmljIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQg YWx3YXlzIGFzICgoKGEgKyBiKSAqIDIpKQogCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjc7CiAg YSB8IGIgIHwgeCAgCkBAIC0xMDMyLDIwICs5ODQsMTkgQEAgQUxURVIgVEFCTEUgZ3Rlc3Qy NyBBTFRFUiBDT0xVTU4geCBUWVBFIGJvb2xlYW4gVVNJTkcgeCA8PiAwOyAgLS0gZXJyb3IK IEVSUk9SOiAgZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZvciBjb2x1bW4gIngiIGNhbm5vdCBi ZSBjYXN0IGF1dG9tYXRpY2FsbHkgdG8gdHlwZSBib29sZWFuCiBBTFRFUiBUQUJMRSBndGVz dDI3IEFMVEVSIENPTFVNTiB4IERST1AgREVGQVVMVDsgIC0tIGVycm9yCiBFUlJPUjogIGNv bHVtbiAieCIgb2YgcmVsYXRpb24gImd0ZXN0MjciIGlzIGEgZ2VuZXJhdGVkIGNvbHVtbgot SElOVDogIFVzZSBBTFRFUiBUQUJMRSAuLi4gQUxURVIgQ09MVU1OIC4uLiBEUk9QIEVYUFJF U1NJT04gaW5zdGVhZC4KIC0tIEl0J3MgcG9zc2libGUgdG8gYWx0ZXIgdGhlIGNvbHVtbiB0 eXBlcyB0aGlzIHdheToKIEFMVEVSIFRBQkxFIGd0ZXN0MjcKICAgRFJPUCBDT0xVTU4geCwK ICAgQUxURVIgQ09MVU1OIGEgVFlQRSBiaWdpbnQsCiAgIEFMVEVSIENPTFVNTiBiIFRZUEUg YmlnaW50LAotICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChh ICsgYikgKiAyKSBTVE9SRUQ7CisgIEFERCBDT0xVTU4geCBiaWdpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoKGEgKyBiKSAqIDIpIFZJUlRVQUw7CiBcZCBndGVzdDI3Ci0gICAgICAgICAg ICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyNyIKLSBD b2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAg ICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3Rz Lmd0ZXN0MjciCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAg ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgYSAgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKICBiICAg ICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIHggICAgICB8IGJpZ2lu dCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoKGEgKyBi KSAqIDIpIHN0b3JlZAorIHggICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAg IHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoKGEgKyBiKSAqIDIpCiAKIC0tIElkZWFsbHkgeW91 IGNvdWxkIGp1c3QgZG8gdGhpcywgYnV0IG5vdCB0b2RheSAoYW5kIHNob3VsZCB4IGNoYW5n ZSB0eXBlPyk6CiBBTFRFUiBUQUJMRSBndGVzdDI3CkBAIC0xMDU0LDEyICsxMDA1LDEyIEBA IEFMVEVSIFRBQkxFIGd0ZXN0MjcKIEVSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgb2YgYSBj b2x1bW4gdXNlZCBieSBhIGdlbmVyYXRlZCBjb2x1bW4KIERFVEFJTDogIENvbHVtbiAiYSIg aXMgdXNlZCBieSBnZW5lcmF0ZWQgY29sdW1uICJ4Ii4KIFxkIGd0ZXN0MjcKLSAgICAgICAg ICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI3Igot IENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAg ICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVz dHMuZ3Rlc3QyNyIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBhICAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGIg ICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0geCAgICAgIHwgYmln aW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzICgoYSAr IGIpICogMikgc3RvcmVkCisgeCAgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAg ICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzICgoYSArIGIpICogMikKIAogU0VMRUNUICogRlJP TSBndGVzdDI3OwogIGEgfCBiICB8IHggIApAQCAtMTA3MSw3ICsxMDIyLDcgQEAgU0VMRUNU ICogRlJPTSBndGVzdDI3OwogLS0gQUxURVIgVEFCTEUgLi4uIEFMVEVSIENPTFVNTiAuLi4g RFJPUCBFWFBSRVNTSU9OCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOSAoCiAgICAgYSBpbnQsCi0g ICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorICAgIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMCiApOwogSU5TRVJUIElOVE8g Z3Rlc3QyOSAoYSkgVkFMVUVTICgzKSwgKDQpOwogU0VMRUNUICogRlJPTSBndGVzdDI5OwpA QCAtMTA4MiwxMDcgKzEwMzMsMTE4IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyOTsKICgyIHJv d3MpCiAKIFxkIGd0ZXN0MjkKLSAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRl ZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOSIKLSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAotLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRl ZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjkiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK LSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChhICogMikgc3RvcmVkCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpCiAKIEFMVEVSIFRB QkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGEgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsg IC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlz IG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4KIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09M VU1OIGEgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKLUVSUk9SOiAgY29sdW1uICJhIiBv ZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4K K0VSUk9SOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgZ2Vu ZXJhdGVkIGNvbHVtbgogQUxURVIgVEFCTEUgZ3Rlc3QyOSBBTFRFUiBDT0xVTU4gYSBEUk9Q IEVYUFJFU1NJT04gSUYgRVhJU1RTOyAgLS0gbm90aWNlCi1OT1RJQ0U6ICBjb2x1bW4gImEi IG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVt biwgc2tpcHBpbmcKK05PVElDRTogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0Mjki IGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4sIHNraXBwaW5nCiAtLSBDaGFuZ2UgdGhlIGV4 cHJlc3Npb24KIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJF U1NJT04gQVMgKGEgKiAzKTsKK0VSUk9SOiAgQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lP TiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitERVRB SUw6ICBDb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBhIHZpcnR1YWwgZ2Vu ZXJhdGVkIGNvbHVtbi4KIFNFTEVDVCAqIEZST00gZ3Rlc3QyOTsKLSBhIHwgYiAgCi0tLS0r LS0tLQotIDMgfCAgOQotIDQgfCAxMgorIGEgfCBiIAorLS0tKy0tLQorIDMgfCA2CisgNCB8 IDgKICgyIHJvd3MpCiAKIFxkIGd0ZXN0MjkKLSAgICAgICAgICAgICAgICAgICAgVGFibGUg ImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOSIKLSBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAg ICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgVGFibGUg ImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjkiCisgQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAor LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMykgc3RvcmVkCisgYiAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpCiAK IEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOwor RVJST1I6ICBBTFRFUiBUQUJMRSAvIERST1AgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVk IGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImIiIG9m IHJlbGF0aW9uICJndGVzdDI5IiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4KIElO U0VSVCBJTlRPIGd0ZXN0MjkgKGEpIFZBTFVFUyAoNSk7CiBJTlNFUlQgSU5UTyBndGVzdDI5 IChhLCBiKSBWQUxVRVMgKDYsIDY2KTsKK0VSUk9SOiAgY2Fubm90IGluc2VydCBhIG5vbi1E RUZBVUxUIHZhbHVlIGludG8gY29sdW1uICJiIgorREVUQUlMOiAgQ29sdW1uICJiIiBpcyBh IGdlbmVyYXRlZCBjb2x1bW4uCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CiAgYSB8IGIgIAog LS0tKy0tLS0KLSAzIHwgIDkKLSA0IHwgMTIKLSA1IHwgICAKLSA2IHwgNjYKLSg0IHJvd3Mp CisgMyB8ICA2CisgNCB8ICA4CisgNSB8IDEwCisoMyByb3dzKQogCiBcZCBndGVzdDI5Ci0g ICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI5IgotIENvbHVtbiB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCi0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyAgICAgICAgICAg ICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QyOSIKKyBDb2x1bW4g fCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAg ICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQogCiAtLSBjaGVjayB0aGF0IGRlcGVuZGVu Y2llcyBiZXR3ZWVuIGNvbHVtbnMgaGF2ZSBhbHNvIGJlZW4gcmVtb3ZlZAogQUxURVIgVEFC TEUgZ3Rlc3QyOSBEUk9QIENPTFVNTiBhOyAgLS0gc2hvdWxkIG5vdCBkcm9wIGIKK0VSUk9S OiAgY2Fubm90IGRyb3AgY29sdW1uIGEgb2YgdGFibGUgZ3Rlc3QyOSBiZWNhdXNlIG90aGVy IG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBjb2x1bW4gYiBvZiB0YWJsZSBndGVz dDI5IGRlcGVuZHMgb24gY29sdW1uIGEgb2YgdGFibGUgZ3Rlc3QyOQorSElOVDogIFVzZSBE Uk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KIFxk IGd0ZXN0MjkKLSAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0Mjki Ci0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAK LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQot IGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorICAgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI5IgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0 ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpCiAKIC0tIHdpdGggaW5o ZXJpdGFuY2UKIENSRUFURSBUQUJMRSBndGVzdDMwICgKICAgICBhIGludCwKLSAgICBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3Qz MF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MzAgQUxURVIg Q09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOworRVJST1I6ICBBTFRFUiBUQUJMRSAvIERST1Ag RVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1 bW5zCitERVRBSUw6ICBDb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDMwIiBpcyBhIHZp cnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4KIFxkIGd0ZXN0MzAKLSAgICAgIFRhYmxlICJnZW5l cmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MzAiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxh dGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorICAgICAgICAgICAgICAgIFRhYmxlICJnZW5l cmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDMwIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAKKy0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAg ICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoYSAqIDIpCiBOdW1iZXIgb2YgY2hpbGQgdGFibGVzOiAxIChVc2UgXGQrIHRvIGxp c3QgdGhlbS4pCiAKIFxkIGd0ZXN0MzBfMQotICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3Jl ZF90ZXN0cy5ndGVzdDMwXzEiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgRGVmYXVsdCAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLQorICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0 dWFsX3Rlc3RzLmd0ZXN0MzBfMSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGIg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEg KiAyKQogSW5oZXJpdHM6IGd0ZXN0MzAKIAogRFJPUCBUQUJMRSBndGVzdDMwIENBU0NBREU7 CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGd0ZXN0MzBfMQogQ1JFQVRFIFRB QkxFIGd0ZXN0MzAgKAogICAgIGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTAogKTsKIENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5IRVJJVFMgKGd0 ZXN0MzApOwogQUxURVIgVEFCTEUgT05MWSBndGVzdDMwIEFMVEVSIENPTFVNTiBiIERST1Ag RVhQUkVTU0lPTjsgIC0tIGVycm9yCiBFUlJPUjogIEFMVEVSIFRBQkxFIC8gRFJPUCBFWFBS RVNTSU9OIG11c3QgYmUgYXBwbGllZCB0byBjaGlsZCB0YWJsZXMgdG9vCiBcZCBndGVzdDMw Ci0gICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0 ZXN0MzAiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5n dGVzdDMwIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICBEZWZhdWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIp IHN0b3JlZAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdl bmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQogTnVtYmVyIG9mIGNoaWxkIHRhYmxlczogMSAo VXNlIFxkKyB0byBsaXN0IHRoZW0uKQogCiBcZCBndGVzdDMwXzEKLSAgICAgICAgICAgICAg ICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDMwXzEiCi0gQ29sdW1u IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1 bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MzBfMSIKKyBDb2x1 bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQKKyBiICAg ICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChhICogMikKIEluaGVyaXRzOiBndGVzdDMwCiAKIEFMVEVSIFRBQkxFIGd0ZXN0MzBf MSBBTFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJFU1NJT047ICAtLSBlcnJvcgpAQCAtMTE5MCw3 ICsxMTUyLDcgQEAgRVJST1I6ICBjYW5ub3QgZHJvcCBnZW5lcmF0aW9uIGV4cHJlc3Npb24g ZnJvbSBpbmhlcml0ZWQgY29sdW1uCiAtLSB0cmlnZ2VycwogQ1JFQVRFIFRBQkxFIGd0ZXN0 MjYgKAogICAgIGEgaW50IFBSSU1BUlkgS0VZLAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBTVE9SRUQKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMikgVklSVFVBTAogKTsKIENSRUFURSBGVU5DVElPTiBndGVzdF90cmlnZ2VyX2Z1bmMo KSBSRVRVUk5TIHRyaWdnZXIKICAgTEFOR1VBR0UgcGxwZ3NxbApAQCAtMTI0Myw3ICsxMjA1 LDcgQEAgQ1JFQVRFIFRSSUdHRVIgZ3Rlc3Q0IEFGVEVSIElOU0VSVCBPUiBVUERBVEUgT04g Z3Rlc3QyNgogICBFWEVDVVRFIFBST0NFRFVSRSBndGVzdF90cmlnZ2VyX2Z1bmMoKTsKIElO U0VSVCBJTlRPIGd0ZXN0MjYgKGEpIFZBTFVFUyAoLTIpLCAoMCksICgzKTsKIElORk86ICBn dGVzdDI6IEJFRk9SRTogbmV3ID0gKC0yLCkKLUlORk86ICBndGVzdDQ6IEFGVEVSOiBuZXcg PSAoLTIsLTQpCitJTkZPOiAgZ3Rlc3Q0OiBBRlRFUjogbmV3ID0gKC0yLCkKIFNFTEVDVCAq IEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwogIGEgIHwgYiAgCiAtLS0tKy0tLS0KQEAgLTEy NTMsMTIgKzEyMTUsMTIgQEAgU0VMRUNUICogRlJPTSBndGVzdDI2IE9SREVSIEJZIGE7CiAo MyByb3dzKQogCiBVUERBVEUgZ3Rlc3QyNiBTRVQgYSA9IGEgKiAtMjsKLUlORk86ICBndGVz dDE6IEJFRk9SRTogb2xkID0gKC0yLC00KQorSU5GTzogIGd0ZXN0MTogQkVGT1JFOiBvbGQg PSAoLTIsKQogSU5GTzogIGd0ZXN0MTogQkVGT1JFOiBuZXcgPSAoNCwpCi1JTkZPOiAgZ3Rl c3QzOiBBRlRFUjogb2xkID0gKC0yLC00KQotSU5GTzogIGd0ZXN0MzogQUZURVI6IG5ldyA9 ICg0LDgpCi1JTkZPOiAgZ3Rlc3Q0OiBBRlRFUjogb2xkID0gKDMsNikKLUlORk86ICBndGVz dDQ6IEFGVEVSOiBuZXcgPSAoLTYsLTEyKQorSU5GTzogIGd0ZXN0MzogQUZURVI6IG9sZCA9 ICgtMiwpCitJTkZPOiAgZ3Rlc3QzOiBBRlRFUjogbmV3ID0gKDQsKQorSU5GTzogIGd0ZXN0 NDogQUZURVI6IG9sZCA9ICgzLCkKK0lORk86ICBndGVzdDQ6IEFGVEVSOiBuZXcgPSAoLTYs KQogU0VMRUNUICogRlJPTSBndGVzdDI2IE9SREVSIEJZIGE7CiAgYSAgfCAgYiAgCiAtLS0t Ky0tLS0tCkBAIC0xMjY4LDggKzEyMzAsOCBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JE RVIgQlkgYTsKICgzIHJvd3MpCiAKIERFTEVURSBGUk9NIGd0ZXN0MjYgV0hFUkUgYSA9IC02 OwotSU5GTzogIGd0ZXN0MTogQkVGT1JFOiBvbGQgPSAoLTYsLTEyKQotSU5GTzogIGd0ZXN0 MzogQUZURVI6IG9sZCA9ICgtNiwtMTIpCitJTkZPOiAgZ3Rlc3QxOiBCRUZPUkU6IG9sZCA9 ICgtNiwpCitJTkZPOiAgZ3Rlc3QzOiBBRlRFUjogb2xkID0gKC02LCkKIFNFTEVDVCAqIEZS T00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwogIGEgfCBiIAogLS0tKy0tLQpAQCAtMTI4MCw2ICsx MjQyLDggQEAgU0VMRUNUICogRlJPTSBndGVzdDI2IE9SREVSIEJZIGE7CiBEUk9QIFRSSUdH RVIgZ3Rlc3QxIE9OIGd0ZXN0MjY7CiBEUk9QIFRSSUdHRVIgZ3Rlc3QyIE9OIGd0ZXN0MjY7 CiBEUk9QIFRSSUdHRVIgZ3Rlc3QzIE9OIGd0ZXN0MjY7CistLSBjaGVjayBkaXNhbGxvd2Vk IG1vZGlmaWNhdGlvbiBvZiB2aXJ0dWFsIGNvbHVtbnMKKy0tIFRPRE8KIC0tIENoZWNrIHRo YXQgYW4gVVBEQVRFIG9mICJhIiBmaXJlcyB0aGUgdHJpZ2dlciBmb3IgVVBEQVRFIE9GIGIs IHBlcgogLS0gU1FMIHN0YW5kYXJkLgogQ1JFQVRFIEZVTkNUSU9OIGd0ZXN0X3RyaWdnZXJf ZnVuYzMoKSBSRVRVUk5TIHRyaWdnZXIKQEAgLTEyOTMsOSArMTI1NywxMSBAQCAkJDsKIENS RUFURSBUUklHR0VSIGd0ZXN0MTEgQkVGT1JFIFVQREFURSBPRiBiIE9OIGd0ZXN0MjYKICAg Rk9SIEVBQ0ggUk9XCiAgIEVYRUNVVEUgUFJPQ0VEVVJFIGd0ZXN0X3RyaWdnZXJfZnVuYzMo KTsKK0VSUk9SOiAgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRl ZCBhcyB0cmlnZ2VyIGNvbHVtbnMKK0RFVEFJTDogIENvbHVtbiAiYiIgaXMgYSB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW4uCiBVUERBVEUgZ3Rlc3QyNiBTRVQgYSA9IDEgV0hFUkUgYSA9 IDA7Ci1OT1RJQ0U6ICBPSwogRFJPUCBUUklHR0VSIGd0ZXN0MTEgT04gZ3Rlc3QyNjsKK0VS Uk9SOiAgdHJpZ2dlciAiZ3Rlc3QxMSIgZm9yIHRhYmxlICJndGVzdDI2IiBkb2VzIG5vdCBl eGlzdAogVFJVTkNBVEUgZ3Rlc3QyNjsKIC0tIGNoZWNrIHRoYXQgbW9kaWZpY2F0aW9ucyBv ZiBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gdHJpZ2dlcnMgZG8KIC0tIG5vdCBnZXQg cHJvcGFnYXRlZApAQCAtMTMxOSwxNCArMTI4NSwxMyBAQCBDUkVBVEUgVFJJR0dFUiBndGVz dDEyXzAzIEJFRk9SRSBVUERBVEUgT04gZ3Rlc3QyNgogICBFWEVDVVRFIFBST0NFRFVSRSBn dGVzdF90cmlnZ2VyX2Z1bmMoKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjYgKGEpIFZBTFVFUyAo MSk7CiBVUERBVEUgZ3Rlc3QyNiBTRVQgYSA9IDExIFdIRVJFIGEgPSAxOwotSU5GTzogIGd0 ZXN0MTJfMDE6IEJFRk9SRTogb2xkID0gKDEsMikKK0lORk86ICBndGVzdDEyXzAxOiBCRUZP UkU6IG9sZCA9ICgxLCkKIElORk86ICBndGVzdDEyXzAxOiBCRUZPUkU6IG5ldyA9ICgxMSwp Ci1JTkZPOiAgZ3Rlc3QxMl8wMzogQkVGT1JFOiBvbGQgPSAoMSwyKQotSU5GTzogIGd0ZXN0 MTJfMDM6IEJFRk9SRTogbmV3ID0gKDEwLCkKK0VSUk9SOiAgdHJpZ2dlciBtb2RpZmllZCB2 aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gdmFsdWUKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBP UkRFUiBCWSBhOwotIGEgIHwgYiAgCi0tLS0tKy0tLS0KLSAxMCB8IDIwCisgYSB8IGIgCist LS0rLS0tCisgMSB8IDIKICgxIHJvdykKIAogLS0gTElLRSBJTkNMVURJTkcgR0VORVJBVEVE IGFuZCBkcm9wcGVkIGNvbHVtbiBoYW5kbGluZwpAQCAtMTMzNCwyMiArMTI5OSw0NiBAQCBD UkVBVEUgVEFCTEUgZ3Rlc3QyOGEgKAogICBhIGludCwKICAgYiBpbnQsCiAgIGMgaW50LAot ICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVECisgIHggaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMCiApOwogQUxURVIgVEFCTEUgZ3Rl c3QyOGEgRFJPUCBDT0xVTU4gYTsKIENSRUFURSBUQUJMRSBndGVzdDI4YiAoTElLRSBndGVz dDI4YSBJTkNMVURJTkcgR0VORVJBVEVEKTsKIFxkIGd0ZXN0MjgqCi0gICAgICAgICAgICAg ICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOGEiCi0gQ29sdW1u IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1 bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjhhIgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0 ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYiAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCiAgYyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCi0geCAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYiAqIDIpIHN0b3JlZAorIHggICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIgKiAy KQogCi0gICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMu Z3Rlc3QyOGIiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg ICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3Rz Lmd0ZXN0MjhiIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYiAg ICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAgYyAgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0geCAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYiAqIDIpIHN0b3Jl ZAorIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRl ZCBhbHdheXMgYXMgKGIgKiAyKQogCistLSBUT0RPOiBleHRyYSB0ZXN0cyB0byB3ZWF2ZSBp bnRvIHRoZSByaWdodCBwbGFjZXMKKy0tIHN1YmxpbmtzCitDUkVBVEUgVEFCTEUgdDIgKAor ICAgIGEgaW50LAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSwKKyAg ICBkIGludCBERUZBVUxUIDIyCispOworSU5TRVJUIElOVE8gdDIgKGEpIFNFTEVDVCBnIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBnOworU0VMRUNUIGEsIGIsIGQsIChTRUxFQ1Qg dDIuYikgRlJPTSB0MjsKKyBhICB8IGIgIHwgZCAgfCBiICAKKy0tLS0rLS0tLSstLS0tKy0t LS0KKyAgMSB8ICAyIHwgMjIgfCAgMgorICAyIHwgIDQgfCAyMiB8ICA0CisgIDMgfCAgNiB8 IDIyIHwgIDYKKyAgNCB8ICA4IHwgMjIgfCAgOAorICA1IHwgMTAgfCAyMiB8IDEwCisgIDYg fCAxMiB8IDIyIHwgMTIKKyAgNyB8IDE0IHwgMjIgfCAxNAorICA4IHwgMTYgfCAyMiB8IDE2 CisgIDkgfCAxOCB8IDIyIHwgMTgKKyAxMCB8IDIwIHwgMjIgfCAyMAorKDEwIHJvd3MpCisK K0RST1AgVEFCTEUgdDI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCBi MDgwNDY5MWY1ZC4uMzFlNWQxNTEwNTEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZQpAQCAtNjgsNiArNjgsOSBAQCB0ZXN0OiBzZWxlY3RfaW50byBzZWxlY3RfZGlzdGlu Y3Qgc2VsZWN0X2Rpc3RpbmN0X29uIHNlbGVjdF9pbXBsaWNpdCBzZWxlY3RfaGF2aQogIyAt LS0tLS0tLS0tCiB0ZXN0OiBicmluIGdpbiBnaXN0IHNwZ2lzdCBwcml2aWxlZ2VzIGluaXRf cHJpdnMgc2VjdXJpdHlfbGFiZWwgY29sbGF0ZSBtYXR2aWV3IGxvY2sgcmVwbGljYV9pZGVu dGl0eSByb3dzZWN1cml0eSBvYmplY3RfYWRkcmVzcyB0YWJsZXNhbXBsZSBncm91cGluZ3Nl dHMgZHJvcF9vcGVyYXRvciBwYXNzd29yZCBpZGVudGl0eSBnZW5lcmF0ZWRfc3RvcmVkIGpv aW5faGFzaAogCisjIFRPRE86IGZpbmQgYSBwbGFjZSBmb3IgdGhpcyAoYWJvdmUgZ3JvdXAg aXMgZnVsbCkKK3Rlc3Q6IGdlbmVyYXRlZF92aXJ0dWFsCisKICMgLS0tLS0tLS0tLQogIyBB ZGRpdGlvbmFsIEJSSU4gdGVzdHMKICMgLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uuc3FsCmluZGV4IDA0MDA4YTAyN2I4Li5kZGY4OTNm N2VjMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xp a2Uuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNx bApAQCAtNTEsNyArNTEsNyBAQCBDUkVBVEUgVEFCTEUgdGVzdF9saWtlX2lkXzMgKExJS0Ug dGVzdF9saWtlX2lkXzEgSU5DTFVESU5HIElERU5USVRZKTsKIFNFTEVDVCAqIEZST00gdGVz dF9saWtlX2lkXzM7ICAtLSBpZGVudGl0eSB3YXMgY29waWVkIGFuZCBhcHBsaWVkCiBEUk9Q IFRBQkxFIHRlc3RfbGlrZV9pZF8xLCB0ZXN0X2xpa2VfaWRfMiwgdGVzdF9saWtlX2lkXzM7 CiAKLUNSRUFURSBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzEgKGEgaW50LCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSB0ZXN0X2xpa2Vf Z2VuXzEgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVE LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgVklSVFVBTCk7CiBcZCB0ZXN0 X2xpa2VfZ2VuXzEKIElOU0VSVCBJTlRPIHRlc3RfbGlrZV9nZW5fMSAoYSkgVkFMVUVTICgx KTsKIFNFTEVDVCAqIEZST00gdGVzdF9saWtlX2dlbl8xOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbAppbmRleCBjMThlMGUxZjY1NS4uNDZmZWY0YWEy ZjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsCkBA IC0xLDUgKzEsNSBAQAogLS0gc2FuaXR5IGNoZWNrIG9mIHN5c3RlbSBjYXRhbG9nCi1TRUxF Q1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBX SEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnKTsKK1NFTEVDVCBhdHRyZWxpZCwg YXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dGdlbmVy YXRlZCBOT1QgSU4gKCcnLCAncycsICd2Jyk7CiAKIAogQ1JFQVRFIFNDSEVNQSBnZW5lcmF0 ZWRfc3RvcmVkX3Rlc3RzOwpAQCAtMTAzLDYgKzEwMywxNCBAQCBDUkVBVEUgVEFCTEUgZ3Rl c3RtICgKIFNFTEVDVCAqIEZST00gZ3Rlc3RtIE9SREVSIEJZIGlkOwogRFJPUCBUQUJMRSBn dGVzdG07CiAKK0NSRUFURSBUQUJMRSBndGVzdG0gKAorICBhIGludCBQUklNQVJZIEtFWSwK KyAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorKTsKK0lOU0VS VCBJTlRPIGd0ZXN0bSAoYSkgU0VMRUNUIGcgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAp IGc7CitNRVJHRSBJTlRPIGd0ZXN0bSB0IFVTSU5HIGd0ZXN0bSBBUyBzIE9OIDIgKiB0LmEg PSBzLmIgV0hFTiBNQVRDSEVEIFRIRU4gREVMRVRFIFJFVFVSTklORyAqOworRFJPUCBUQUJM RSBndGVzdG07CisKIC0tIHZpZXdzCiBDUkVBVEUgVklFVyBndGVzdDF2IEFTIFNFTEVDVCAq IEZST00gZ3Rlc3QxOwogU0VMRUNUICogRlJPTSBndGVzdDF2OwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwKc2ltaWxhcml0eSBpbmRleCA3MiUKY29w eSBmcm9tIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsCmNvcHkg dG8gc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCmluZGV4IGMx OGUwZTFmNjU1Li41NzRhMTc2ZTM5OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2Vu ZXJhdGVkX3ZpcnR1YWwuc3FsCkBAIC0xLDU1ICsxLDU1IEBACiAtLSBzYW5pdHkgY2hlY2sg b2Ygc3lzdGVtIGNhdGFsb2cKLVNFTEVDVCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJh dGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAn cycpOworU0VMRUNUIGF0dHJlbGlkLCBhdHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19h dHRyaWJ1dGUgV0hFUkUgYXR0Z2VuZXJhdGVkIE5PVCBJTiAoJycsICdzJywgJ3YnKTsKIAog Ci1DUkVBVEUgU0NIRU1BIGdlbmVyYXRlZF9zdG9yZWRfdGVzdHM7Ci1HUkFOVCBVU0FHRSBP TiBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cyBUTyBQVUJMSUM7Ci1TRVQgc2VhcmNo X3BhdGggPSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzOworQ1JFQVRFIFNDSEVNQSBnZW5lcmF0 ZWRfdmlydHVhbF90ZXN0czsKK0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBnZW5lcmF0ZWRfdmly dHVhbF90ZXN0cyBUTyBQVUJMSUM7CitTRVQgc2VhcmNoX3BhdGggPSBnZW5lcmF0ZWRfdmly dHVhbF90ZXN0czsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBTVE9SRUQpOwotQ1JFQVRFIFRBQkxF IGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBWSVJUVUFMKTsKK0NSRUFURSBU QUJMRSBndGVzdDEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgVklSVFVBTCk7CiAKLVNFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFt ZSwgY29sdW1uX2RlZmF1bHQsIGlzX251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdlbmVyYXRp b25fZXhwcmVzc2lvbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdIRVJFIHRh YmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzJyBPUkRFUiBCWSAxLCAyOwor U0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBjb2x1bW5fZGVmYXVsdCwgaXNfbnVs bGFibGUsIGlzX2dlbmVyYXRlZCwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIEZST00gaW5mb3Jt YXRpb25fc2NoZW1hLmNvbHVtbnMgV0hFUkUgdGFibGVfc2NoZW1hID0gJ2dlbmVyYXRlZF92 aXJ0dWFsX3Rlc3RzJyBPUkRFUiBCWSAxLCAyOwogCi1TRUxFQ1QgdGFibGVfbmFtZSwgY29s dW1uX25hbWUsIGRlcGVuZGVudF9jb2x1bW4gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29s dW1uX2NvbHVtbl91c2FnZSBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3N0b3Jl ZF90ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsKK1NFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5f bmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5f Y29sdW1uX3VzYWdlIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfdmlydHVhbF90 ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsKIAogXGQgZ3Rlc3QxCiAKIC0tIGR1cGxpY2F0ZSBn ZW5lcmF0ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMSAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDMpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzEgKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgVklSVFVBTCk7CiAKIC0tIHJlZmVy ZW5jZXMgdG8gb3RoZXIgZ2VuZXJhdGVkIGNvbHVtbnMsIGluY2x1ZGluZyBzZWxmLXJlZmVy ZW5jZXMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVEKTsKLUNSRUFURSBUQUJM RSBndGVzdF9lcnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICog MykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTCk7CitDUkVB VEUgVEFCTEUgZ3Rlc3RfZXJyXzJiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGIgKiAzKSBWSVJUVUFMKTsKIC0tIGEgd2hvbGUtcm93IHZhciBpcyBhIHNlbGYtcmVm ZXJlbmNlIG9uIHN0ZXJvaWRzLCBzbyBkaXNhbGxvdyB0aGF0IHRvbwogQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl8yYyAoYSBpbnQgUFJJTUFSWSBLRVksCi0gICAgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIFNUT1JFRCk7CisgICAgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIFZJUlRV QUwpOwogCiAtLSBpbnZhbGlkIHJlZmVyZW5jZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8z IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDIp IFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzMgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogMikgVklSVFVBTCk7CiAKIC0tIGdl bmVyYXRpb24gZXhwcmVzc2lvbiBtdXN0IGJlIGltbXV0YWJsZQotQ1JFQVRFIFRBQkxFIGd0 ZXN0X2Vycl80IChhIGludCBQUklNQVJZIEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVS QVRFRCBBTFdBWVMgQVMgKHJhbmRvbSgpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0 X2Vycl80IChhIGludCBQUklNQVJZIEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVSQVRF RCBBTFdBWVMgQVMgKHJhbmRvbSgpKSBWSVJUVUFMKTsKIC0tIC4uLiBidXQgYmUgc3VyZSB0 aGF0IHRoZSBpbW11dGFiaWxpdHkgdGVzdCBpcyBhY2N1cmF0ZQotQ1JFQVRFIFRBQkxFIGd0 ZXN0MiAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcgc2VjJykg U1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50LCBiIHRleHQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSB8fCAnIHNlYycpIFZJUlRVQUwpOwogRFJPUCBUQUJMRSBndGVzdDI7 CiAKIC0tIGNhbm5vdCBoYXZlIGRlZmF1bHQvaWRlbnRpdHkgYW5kIGdlbmVyYXRlZAotQ1JF QVRFIFRBQkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERFRkFV TFQgNSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKLUNSRUFURSBUQUJM RSBndGVzdF9lcnJfNWIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIGlkZW50aXR5IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOwor Q1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERF RkFVTFQgNSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3RfZXJyXzViIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyBpZGVudGl0eSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVB TCk7CiAKIC0tIHJlZmVyZW5jZSB0byBzeXN0ZW0gY29sdW1uIG5vdCBhbGxvd2VkIGluIGdl bmVyYXRlZCBjb2x1bW4KIC0tIChleGNlcHQgdGFibGVvaWQsIHdoaWNoIHdlIHRlc3QgYmVs b3cpCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChhIGludCBQUklNQVJZIEtFWSwgYiBi b29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3RfZXJyXzZhIChhIGludCBQUklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRF RCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcpIFZJUlRVQUwpOwogCiAtLSB2YXJpb3VzIHByb2hp Yml0ZWQgY29uc3RydWN0cwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YSAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGF2ZyhhKSkgU1RPUkVEKTsK LUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChyb3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgYSkpIFNU T1JFRCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdjIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKFNFTEVDVCBhKSkgU1RPUkVEKTsKLUNSRUFU RSBUQUJMRSBndGVzdF9lcnJfN2QgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zZXJpZXMoMSwgYSkpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3RfZXJyXzdhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYXZnKGEpKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJf N2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChyb3df bnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgYSkpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0X2Vycl83YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKChTRUxFQ1QgYSkpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83ZCAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRl X3NlcmllcygxLCBhKSkgVklSVFVBTCk7CiAKIC0tIEdFTkVSQVRFRCBCWSBERUZBVUxUIG5v dCBhbGxvd2VkCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzggKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVB VEUgVEFCTEUgZ3Rlc3RfZXJyXzggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFU RUQgQlkgREVGQVVMVCBBUyAoYSAqIDIpIFZJUlRVQUwpOwogCiBJTlNFUlQgSU5UTyBndGVz dDEgVkFMVUVTICgxKTsKIElOU0VSVCBJTlRPIGd0ZXN0MSBWQUxVRVMgKDIsIERFRkFVTFQp OyAgLS0gb2sKQEAgLTcwLDcgKzcwLDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl84IChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgKGEgKgog U0VMRUNUIGEsIGIsIGIgKiAyIEFTIGIyIEZST00gZ3Rlc3QxIE9SREVSIEJZIGE7CiBTRUxF Q1QgYSwgYiBGUk9NIGd0ZXN0MSBXSEVSRSBiID0gNCBPUkRFUiBCWSBhOwogCi0tLSB0ZXN0 IHRoYXQgb3ZlcmZsb3cgZXJyb3IgaGFwcGVucyBvbiB3cml0ZQorLS0gdGVzdCB0aGF0IG92 ZXJmbG93IGVycm9yIGhhcHBlbnMgb24gcmVhZAogSU5TRVJUIElOVE8gZ3Rlc3QxIFZBTFVF UyAoMjAwMDAwMDAwMCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MTsKIERFTEVURSBGUk9NIGd0 ZXN0MSBXSEVSRSBhID0gMjAwMDAwMDAwMDsKQEAgLTkzLDggKzkzLDggQEAgQ1JFQVRFIFRB QkxFIGd0ZXN0bSAoCiAgIGlkIGludCBQUklNQVJZIEtFWSwKICAgZjEgaW50LAogICBmMiBp bnQsCi0gIGYzIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMSAqIDIpIFNUT1JFRCwKLSAg ZjQgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVECisgIGYzIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChmMSAqIDIpIFZJUlRVQUwsCisgIGY0IGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdG0g VkFMVUVTICgxLCA1LCAxMDApOwogTUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyAoVkFMVUVT ICgxLCAxMCksICgyLCAyMCkpIHYoaWQsIGYxKSBPTiB0LmlkID0gdi5pZApAQCAtMTAzLDYg KzEwMywxNCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKIFNFTEVDVCAqIEZST00gZ3Rlc3Rt IE9SREVSIEJZIGlkOwogRFJPUCBUQUJMRSBndGVzdG07CiAKK0NSRUFURSBUQUJMRSBndGVz dG0gKAorICBhIGludCBQUklNQVJZIEtFWSwKKyAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFZJUlRVQUwKKyk7CitJTlNFUlQgSU5UTyBndGVzdG0gKGEpIFNFTEVDVCBn IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBnOworTUVSR0UgSU5UTyBndGVzdG0gdCBV U0lORyBndGVzdG0gQVMgcyBPTiAyICogdC5hID0gcy5iIFdIRU4gTUFUQ0hFRCBUSEVOIERF TEVURSBSRVRVUk5JTkcgKjsKK0RST1AgVEFCTEUgZ3Rlc3RtOworCiAtLSB2aWV3cwogQ1JF QVRFIFZJRVcgZ3Rlc3QxdiBBUyBTRUxFQ1QgKiBGUk9NIGd0ZXN0MTsKIFNFTEVDVCAqIEZS T00gZ3Rlc3QxdjsKQEAgLTEzNCwyMiArMTQyLDI2IEBAIENSRUFURSBUQUJMRSBndGVzdDFf MSAoKSBJTkhFUklUUyAoZ3Rlc3QxKTsKIAogLS0gY2FuJ3QgaGF2ZSBnZW5lcmF0ZWQgY29s dW1uIHRoYXQgaXMgYSBjaGlsZCBvZiBub3JtYWwgY29sdW1uCiBDUkVBVEUgVEFCTEUgZ3Rl c3Rfbm9ybWFsIChhIGludCwgYiBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9j aGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQp IElOSEVSSVRTIChndGVzdF9ub3JtYWwpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVz dF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCkgSU5IRVJJVFMgKGd0 ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGls ZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsK IEFMVEVSIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCBJTkhFUklUIGd0ZXN0X25vcm1hbDsg IC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0X25vcm1hbCwgZ3Rlc3Rfbm9ybWFsX2NoaWxk OwogCiAtLSB0ZXN0IGluaGVyaXRhbmNlIG1pc21hdGNoZXMgYmV0d2VlbiBwYXJlbnQgYW5k IGNoaWxkCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgREVGQVVMVCAxMCkg SU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJvcgogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBp bnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkpIElOSEVSSVRTIChndGVz dDEpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAt LSBvaywgb3ZlcnJpZGVzIHBhcmVudAorQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rl c3QxKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3QxKTsg IC0tIG9rLCBvdmVycmlkZXMgcGFyZW50CiBcZCsgZ3Rlc3R4CitJTlNFUlQgSU5UTyBndGVz dHggKGEsIHgpIFZBTFVFUyAoMTEsIDIyKTsKK1NFTEVDVCAqIEZST00gZ3Rlc3QxOworU0VM RUNUICogRlJPTSBndGVzdHg7CiAKIENSRUFURSBUQUJMRSBndGVzdHh4XzEgKGEgaW50IE5P VCBOVUxMLCBiIGludCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzEgSU5IRVJJVCBndGVzdDE7 ICAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfMyAoYSBpbnQgTk9UIE5VTEwsIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxF IGd0ZXN0eHhfMyAoYSBpbnQgTk9UIE5VTEwsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0eHhfMyBJTkhFUklUIGd0ZXN0 MTsgIC0tIG9rCi1DUkVBVEUgVEFCTEUgZ3Rlc3R4eF80IChiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgU1RPUkVELCBhIGludCBOT1QgTlVMTCk7CitDUkVBVEUgVEFCTEUg Z3Rlc3R4eF80IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCwg YSBpbnQgTk9UIE5VTEwpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF80IElOSEVSSVQgZ3Rlc3Qx OyAgLS0gb2sKIAogLS0gdGVzdCBtdWx0aXBsZSBpbmhlcml0YW5jZSBtaXNtYXRjaGVzCkBA IC0xNjEsMjggKzE3MywyOCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQp OwogQ1JFQVRFIFRBQkxFIGd0ZXN0MV95ICgpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7 ICAtLSBlcnJvcgogRFJPUCBUQUJMRSBndGVzdHk7CiAKLUNSRUFURSBUQUJMRSBndGVzdHkg KHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMjIpIFNUT1JFRCk7CitD UkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo eCAqIDIyKSBWSVJUVUFMKTsKIENSRUFURSBUQUJMRSBndGVzdDFfeSAoKSBJTkhFUklUUyAo Z3Rlc3QxLCBndGVzdHkpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdDFfeSAoYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCArIDEpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0 MSwgZ3Rlc3R5KTsgIC0tIG9rCitDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKHggKyAxKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVz dHkpOyAgLS0gb2sKIFxkIGd0ZXN0MV95CiAKIC0tIHRlc3QgY29ycmVjdCBoYW5kbGluZyBv ZiBHRU5FUkFURUQgY29sdW1uIHRoYXQncyBvbmx5IGluIGNoaWxkCiBDUkVBVEUgVEFCTEUg Z3Rlc3RwIChmMSBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0YyAoZjIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGYxKzEpIFNUT1JFRCkgSU5IRVJJVFMoZ3Rlc3RwKTsKK0NSRUFURSBU QUJMRSBndGVzdGMgKGYyIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMSsxKSBWSVJUVUFM KSBJTkhFUklUUyhndGVzdHApOwogSU5TRVJUIElOVE8gZ3Rlc3RjIHZhbHVlcyg0Mik7CiBU QUJMRSBndGVzdGM7CiBVUERBVEUgZ3Rlc3RwIFNFVCBmMSA9IGYxICogMTA7CiBUQUJMRSBn dGVzdGM7CiBEUk9QIFRBQkxFIGd0ZXN0cCBDQVNDQURFOwogCi0tLSB0ZXN0IHN0b3JlZCB1 cGRhdGUKLUNSRUFURSBUQUJMRSBndGVzdDMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMykgU1RPUkVEKTsKKy0tIHRlc3QgdXBkYXRlIFhYWAorQ1JFQVRFIFRB QkxFIGd0ZXN0MyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBW SVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0MyAoYSkgVkFMVUVTICgxKSwgKDIpLCAoMyks IChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiBVUERBVEUgZ3Rl c3QzIFNFVCBhID0gMjIgV0hFUkUgYSA9IDI7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRF UiBCWSBhOwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QzYSAoYSB0ZXh0LCBiIHRleHQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBn dGVzdDNhIChhIHRleHQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcrJyB8 fCBhKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0M2EgKGEpIFZBTFVFUyAoJ2EnKSwg KCdiJyksICgnYycpLCAoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0M2EgT1JERVIgQlkg YTsKIFVQREFURSBndGVzdDNhIFNFVCBhID0gJ2JiJyBXSEVSRSBhID0gJ2InOwpAQCAtMjIy LDEyICsyMzQsMTIgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0M2EgKGEgdGV4dCwgYiB0ZXh0IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJysnIHx8IGEpIFNUT1JFRCkKIFNFTEVDVCAqIEZS T00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAKIC0tIG51bGwgdmFsdWVzCi1DUkVBVEUgVEFCTEUg Z3Rlc3QyIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo TlVMTCkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChOVUxMKSBWSVJUVUFMKTsKIElOU0VSVCBJ TlRPIGd0ZXN0MiBWQUxVRVMgKDEpOwogU0VMRUNUICogRlJPTSBndGVzdDI7CiAKIC0tIHNp bXBsZSBjb2x1bW4gcmVmZXJlbmNlIGZvciB2YXJsZW5hIHR5cGVzCi1DUkVBVEUgVEFCTEUg Z3Rlc3RfdmFybGVuYSAoYSB2YXJjaGFyLCBiIHZhcmNoYXIgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF92YXJsZW5hIChhIHZhcmNoYXIs IGIgdmFyY2hhciBHRU5FUkFURUQgQUxXQVlTIEFTIChhKSBWSVJUVUFMKTsKIElOU0VSVCBJ TlRPIGd0ZXN0X3ZhcmxlbmEgKGEpIFZBTFVFUygnMDEyMzQ1Njc4OTAxMjM0NTY3ODknKTsK IElOU0VSVCBJTlRPIGd0ZXN0X3ZhcmxlbmEgKGEpIFZBTFVFUyhOVUxMKTsKIFNFTEVDVCAq IEZST00gZ3Rlc3RfdmFybGVuYSBPUkRFUiBCWSBhOwpAQCAtMjM3LDcgKzI0OSw3IEBAIENS RUFURSBUQUJMRSBndGVzdF92YXJsZW5hIChhIHZhcmNoYXIsIGIgdmFyY2hhciBHRU5FUkFU RUQgQUxXQVlTIEFTIChhKSBTVE9SRUQpCiBDUkVBVEUgVFlQRSBkb3VibGVfaW50IGFzIChh IGludCwgYiBpbnQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0NCAoCiAgICAgYSBpbnQsCi0gICAg YiBkb3VibGVfaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICogMiwgYSAqIDMpKSBTVE9S RUQKKyAgICBiIGRvdWJsZV9pbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKiAyLCBhICog MykpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdDQgVkFMVUVTICgxKSwgKDYpOwog U0VMRUNUICogRlJPTSBndGVzdDQ7CkBAIC0yNDgsMTY4ICsyNjAsMTY4IEBAIENSRUFURSBU QUJMRSBndGVzdDQgKAogLS0gdXNpbmcgdGFibGVvaWQgaXMgYWxsb3dlZAogQ1JFQVRFIFRB QkxFIGd0ZXN0X3RhYmxlb2lkICgKICAgYSBpbnQgUFJJTUFSWSBLRVksCi0gIGIgYm9vbCBH RU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCA9ICdndGVzdF90YWJsZW9pZCc6OnJlZ2Ns YXNzKSBTVE9SRUQKKyAgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkID0g J2d0ZXN0X3RhYmxlb2lkJzo6cmVnY2xhc3MpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBn dGVzdF90YWJsZW9pZCBWQUxVRVMgKDEpLCAoMik7CiBBTFRFUiBUQUJMRSBndGVzdF90YWJs ZW9pZCBBREQgQ09MVU1OCi0gIGMgcmVnY2xhc3MgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFi bGVvaWQpIFNUT1JFRDsKKyAgYyByZWdjbGFzcyBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJs ZW9pZCkgVklSVFVBTDsKIFNFTEVDVCAqIEZST00gZ3Rlc3RfdGFibGVvaWQ7CiAKIC0tIGRy b3AgY29sdW1uIGJlaGF2aW9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxMCAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVE KTsKK0NSRUFURSBUQUJMRSBndGVzdDEwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxF IGd0ZXN0MTAgRFJPUCBDT0xVTU4gYjsgIC0tIGZhaWxzCiBBTFRFUiBUQUJMRSBndGVzdDEw IERST1AgQ09MVU1OIGIgQ0FTQ0FERTsgIC0tIGRyb3BzIGMgdG9vCiAKIFxkIGd0ZXN0MTAK IAotQ1JFQVRFIFRBQkxFIGd0ZXN0MTBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Qx MGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdDEwYSBEUk9QIENPTFVNTiBiOwogSU5T RVJUIElOVE8gZ3Rlc3QxMGEgKGEpIFZBTFVFUyAoMSk7CiAKIC0tIHByaXZpbGVnZXMKIENS RUFURSBVU0VSIHJlZ3Jlc3NfdXNlcjExOwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxMXMgKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAq IDIpIFNUT1JFRCk7Ci1JTlNFUlQgSU5UTyBndGVzdDExcyBWQUxVRVMgKDEsIDEwKSwgKDIs IDIwKTsKLUdSQU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rlc3QxMXMgVE8gcmVncmVzc191c2Vy MTE7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMXYgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwg YyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwpOworSU5TRVJUIElO VE8gZ3Rlc3QxMXYgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7CitHUkFOVCBTRUxFQ1QgKGEs IGMpIE9OIGd0ZXN0MTF2IFRPIHJlZ3Jlc3NfdXNlcjExOwogCiBDUkVBVEUgRlVOQ1RJT04g Z2YxKGEgaW50KSBSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgYSAqIDMgJCQgSU1NVVRBQkxF IExBTkdVQUdFIFNRTDsKIFJFVk9LRSBBTEwgT04gRlVOQ1RJT04gZ2YxKGludCkgRlJPTSBQ VUJMSUM7CiAKLUNSRUFURSBUQUJMRSBndGVzdDEycyAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZjEoYikpIFNUT1JFRCk7Ci1JTlNF UlQgSU5UTyBndGVzdDEycyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKK0NSRUFURSBUQUJM RSBndGVzdDEydiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChnZjEoYikpIFZJUlRVQUwpOworSU5TRVJUIElOVE8gZ3Rlc3QxMnYgVkFM VUVTICgxLCAxMCksICgyLCAyMCk7CiBHUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTJz IFRPIHJlZ3Jlc3NfdXNlcjExOwogCiBTRVQgUk9MRSByZWdyZXNzX3VzZXIxMTsKLVNFTEVD VCBhLCBiIEZST00gZ3Rlc3QxMXM7ICAtLSBub3QgYWxsb3dlZAotU0VMRUNUIGEsIGMgRlJP TSBndGVzdDExczsgIC0tIGFsbG93ZWQKK1NFTEVDVCBhLCBiIEZST00gZ3Rlc3QxMXY7ICAt LSBub3QgYWxsb3dlZAorU0VMRUNUIGEsIGMgRlJPTSBndGVzdDExdjsgIC0tIGFsbG93ZWQK IFNFTEVDVCBnZjEoMTApOyAgLS0gbm90IGFsbG93ZWQKLVNFTEVDVCBhLCBjIEZST00gZ3Rl c3QxMnM7ICAtLSBhbGxvd2VkCitTRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTJ2OyAgLS0gbm90 IGFsbG93ZWQ7IFRPRE86IG91Z2h0IHRvIGJlIGFsbG93ZWQKIFJFU0VUIFJPTEU7CiAKIERS T1AgRlVOQ1RJT04gZ2YxKGludCk7ICAtLSBmYWlsCi1EUk9QIFRBQkxFIGd0ZXN0MTFzLCBn dGVzdDEyczsKK0RST1AgVEFCTEUgZ3Rlc3QxMXYsIGd0ZXN0MTJ2OwogRFJPUCBGVU5DVElP TiBnZjEoaW50KTsKIERST1AgVVNFUiByZWdyZXNzX3VzZXIxMTsKIAogLS0gY2hlY2sgY29u c3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIwIChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBDSEVDSyAoYiA8IDUwKSk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIENIRUNLIChiIDwgNTApKTsKIElOU0VS VCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMTApOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0 ZXN0MjAgKGEpIFZBTFVFUyAoMzApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogCiBBTFRF UiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICog MTAwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxU RVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsgIC0tIG9rCiAKLUNSRUFU RSBUQUJMRSBndGVzdDIwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjBhIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRV QUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGEgKGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElO VE8gZ3Rlc3QyMGEgKGEpIFZBTFVFUyAoMzApOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGEgQURE IENIRUNLIChiIDwgNTApOyAgLS0gZmFpbHMgb24gZXhpc3Rpbmcgcm93CiAKLUNSRUFURSBU QUJMRSBndGVzdDIwYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjBiIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwp OwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8g Z3Rlc3QyMGIgKGEpIFZBTFVFUyAoMzApOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGIgQUREIENP TlNUUkFJTlQgY2hrIENIRUNLIChiIDwgNTApIE5PVCBWQUxJRDsKIEFMVEVSIFRBQkxFIGd0 ZXN0MjBiIFZBTElEQVRFIENPTlNUUkFJTlQgY2hrOyAgLS0gZmFpbHMgb24gZXhpc3Rpbmcg cm93CiAKLS0tIG5vdC1udWxsIGNvbnN0cmFpbnRzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMWEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYo YSwgMCkpIFNUT1JFRCBOT1QgTlVMTCk7Ci1JTlNFUlQgSU5UTyBndGVzdDIxYSAoYSkgVkFM VUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgwKTsg IC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKKy0tIG5vdC1udWxsIGNvbnN0cmFpbnRzIChjdXJy ZW50bHkgbm90IHN1cHBvcnRlZCkKK0NSRUFURSBUQUJMRSBndGVzdDIxYSAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklS VFVBTCBOT1QgTlVMTCk7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDEp OyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMCk7ICAtLSB2 aW9sYXRlcyBjb25zdHJhaW50CiAKLUNSRUFURSBUQUJMRSBndGVzdDIxYiAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgU1RP UkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIxYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCk7CiBBTFRFUiBU QUJMRSBndGVzdDIxYiBBTFRFUiBDT0xVTU4gYiBTRVQgTk9UIE5VTEw7Ci1JTlNFUlQgSU5U TyBndGVzdDIxYiAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIx YiAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKKy0tSU5TRVJUIElO VE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVz dDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEFMVEVSIFRB QkxFIGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBiIERST1AgTk9UIE5VTEw7Ci1JTlNFUlQgSU5U TyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5vdworLS1JTlNFUlQgSU5UTyBn dGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5vdwogCiAtLSBpbmRleCBjb25zdHJh aW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFNUT1JFRCBVTklRVUUpOwotSU5TRVJUIElO VE8gZ3Rlc3QyMmEgVkFMVUVTICgyKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAo Myk7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDQpOwotQ1JFQVRFIFRBQkxFIGd0 ZXN0MjJiIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFNUT1JF RCwgUFJJTUFSWSBLRVkgKGEsIGIpKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAo Mik7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAvIDIpIFZJUlRVQUwgVU5JUVVFKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVT ICgyKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgzKTsKKy0tSU5TRVJUIElO VE8gZ3Rlc3QyMmEgVkFMVUVTICg0KTsKK0NSRUFURSBUQUJMRSBndGVzdDIyYiAoYSBpbnQs IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSBWSVJUVUFMLCBQUklNQVJZIEtF WSAoYSwgYikpOworLS1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOworLS1JTlNF UlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOwogCiAtLSBpbmRleGVzCi1DUkVBVEUgVEFC TEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg U1RPUkVEKTsKLUNSRUFURSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVzdDIyYyAoYik7 Ci1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfZXhwcl9pZHggT04gZ3Rlc3QyMmMgKChiICogMykp OwotQ1JFQVRFIElOREVYIGd0ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJjIChhKSBXSEVS RSBiID4gMDsKLVxkIGd0ZXN0MjJjCi0KLUlOU0VSVCBJTlRPIGd0ZXN0MjJjIFZBTFVFUyAo MSksICgyKSwgKDMpOwotU0VUIGVuYWJsZV9zZXFzY2FuIFRPIG9mZjsKLVNFVCBlbmFibGVf Yml0bWFwc2NhbiBUTyBvZmY7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g Z3Rlc3QyMmMgV0hFUkUgYiA9IDQ7Ci1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIg PSA0OwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJF IGIgKiAzID0gNjsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSA2Owot RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAx IEFORCBiID4gMDsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIg PiAwOwotCi1BTFRFUiBUQUJMRSBndGVzdDIyYyBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVT U0lPTiBBUyAoYSAqIDQpOwotQU5BTFlaRSBndGVzdDIyYzsKLUVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKLVNFTEVDVCAqIEZST00g Z3Rlc3QyMmMgV0hFUkUgYiA9IDg7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZS T00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMg V0hFUkUgYiAqIDMgPSAxMjsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBn dGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7Ci1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJj IFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLVJFU0VUIGVuYWJsZV9zZXFzY2FuOwotUkVTRVQg ZW5hYmxlX2JpdG1hcHNjYW47CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CistLUNSRUFURSBJTkRF WCBndGVzdDIyY19iX2lkeCBPTiBndGVzdDIyYyAoYik7CistLUNSRUFURSBJTkRFWCBndGVz dDIyY19leHByX2lkeCBPTiBndGVzdDIyYyAoKGIgKiAzKSk7CistLUNSRUFURSBJTkRFWCBn dGVzdDIyY19wcmVkX2lkeCBPTiBndGVzdDIyYyAoYSkgV0hFUkUgYiA+IDA7CistLVxkIGd0 ZXN0MjJjCisKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmMgVkFMVUVTICgxKSwgKDIpLCAoMyk7 CistLVNFVCBlbmFibGVfc2Vxc2NhbiBUTyBvZmY7CistLVNFVCBlbmFibGVfYml0bWFwc2Nh biBUTyBvZmY7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIy YyBXSEVSRSBiID0gNDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsK Ky0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIg KiAzID0gNjsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDY7Cist LUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0g MSBBTkQgYiA+IDA7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5E IGIgPiAwOworCistLUFMVEVSIFRBQkxFIGd0ZXN0MjJjIEFMVEVSIENPTFVNTiBiIFNFVCBF WFBSRVNTSU9OIEFTIChhICogNCk7CistLUFOQUxZWkUgZ3Rlc3QyMmM7CistLUVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKKy0tU0VM RUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7CistLVNFTEVDVCAq IEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKKy0tU0VM RUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7CistLVJFU0VUIGVu YWJsZV9zZXFzY2FuOworLS1SRVNFVCBlbmFibGVfYml0bWFwc2NhbjsKIAogLS0gZm9yZWln biBrZXlzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyM2EgKHggaW50IFBSSU1BUlkgS0VZLCB5IGlu dCk7Ci1JTlNFUlQgSU5UTyBndGVzdDIzYSBWQUxVRVMgKDEsIDExKSwgKDIsIDIyKSwgKDMs IDMzKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM2EgVkFMVUVTICgxLCAxMSksICgyLCAyMiks ICgzLCAzMyk7CiAKLUNSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBn dGVzdDIzYSAoeCkgT04gVVBEQVRFIENBU0NBREUpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJM RSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gREVMRVRFIFNF VCBOVUxMKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBSRUZF UkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBVUERBVEUgQ0FTQ0FERSk7ICAtLSBlcnJvcgorQ1JF QVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04g REVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9yCiAKLUNSRUFURSBUQUJMRSBndGVzdDIzYiAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBT VE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkpOwotXGQgZ3Rlc3QyM2IKK0NSRUFURSBU QUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpKTsKKy0tXGQg Z3Rlc3QyM2IKIAotSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICgxKTsgIC0tIG9rCi1J TlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDUpOyAgLS0gZXJyb3IKLUFMVEVSIFRBQkxF IGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNSk7IC0t IGVycm9yCi1BTFRFUiBUQUJMRSBndGVzdDIzYiBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVT U0lPTiBBUyAoYSAqIDEpOyAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMg KDEpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICg1KTsgIC0tIGVy cm9yCistLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNT SU9OIEFTIChhICogNSk7IC0tIGVycm9yCistLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVS IENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMSk7IC0tIG9rCiAKLURST1AgVEFC TEUgZ3Rlc3QyM2I7Ci1EUk9QIFRBQkxFIGd0ZXN0MjNhOworLS1EUk9QIFRBQkxFIGd0ZXN0 MjNiOworLS1EUk9QIFRBQkxFIGd0ZXN0MjNhOwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyM3Ag KHggaW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMikgU1RPUkVELCBQUklN QVJZIEtFWSAoeSkpOwotSU5TRVJUIElOVE8gZ3Rlc3QyM3AgVkFMVUVTICgxKSwgKDIpLCAo Myk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHggaW50LCB5IGludCBHRU5FUkFURUQgQUxX QVlTIEFTICh4ICogMikgVklSVFVBTCwgUFJJTUFSWSBLRVkgKHkpKTsKKy0tSU5TRVJUIElO VE8gZ3Rlc3QyM3AgVkFMVUVTICgxKSwgKDIpLCAoMyk7CiAKIENSRUFURSBUQUJMRSBndGVz dDIzcSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IFJFRkVSRU5DRVMgZ3Rlc3QyM3AgKHkp KTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMSwgMik7ICAtLSBvawotSU5TRVJU IElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgyLCA1KTsgIC0tIGVycm9yCistLUlOU0VSVCBJTlRP IGd0ZXN0MjNxIFZBTFVFUyAoMSwgMik7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIz cSBWQUxVRVMgKDIsIDUpOyAgLS0gZXJyb3IKIAogLS0gZG9tYWlucwogQ1JFQVRFIERPTUFJ TiBndGVzdGRvbWFpbjEgQVMgaW50IENIRUNLIChWQUxVRSA8IDEwKTsKLUNSRUFURSBUQUJM RSBndGVzdDI0IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjEgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7Ci1JTlNFUlQgSU5UTyBndGVzdDI0IChhKSBW QUxVRVMgKDQpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNik7 ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGd0ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7Cist LUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNCk7ICAtLSBvaworLS1JTlNFUlQg SU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDYpOyAgLS0gZXJyb3IKIAogLS0gdHlwZWQgdGFi bGVzIChjdXJyZW50bHkgbm90IHN1cHBvcnRlZCkKIENSRUFURSBUWVBFIGd0ZXN0X3R5cGUg QVMgKGYxIGludGVnZXIsIGYyIHRleHQsIGYzIGJpZ2ludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rl c3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBB UyAoZjIgKjIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBl IChmMSBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKjIpIFZJUlRVQUwp OwogRFJPUCBUWVBFIGd0ZXN0X3R5cGUgQ0FTQ0FERTsKIAogLS0gcGFydGl0aW9uaW5nIGNh c2VzCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFyZW50IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBi aWdpbnQsIGYzIGJpZ2ludCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMSk7CiBDUkVBVEUgVEFC TEUgZ3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCi0gICAgZjMgV0lU SCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVECisgICAgZjMg V0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTAogKSBG T1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykgVE8gKCcyMDE2LTA4LTAxJyk7IC0tIGVy cm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJp Z2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKTsK K0NSRUFURSBUQUJMRSBndGVzdF9jaGlsZCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50 LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKTsKIEFM VEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkIEZP UiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBUTyAoJzIwMTYtMDgtMDEnKTsgLS0gZXJy b3IKIERST1AgVEFCTEUgZ3Rlc3RfcGFyZW50LCBndGVzdF9jaGlsZDsKIAotQ1JFQVRFIFRB QkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJVElPTiBCWSBS QU5HRSAoZjEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVM TCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBW SVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYxKTsKIENSRUFURSBUQUJMRSBndGVzdF9j aGlsZCBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50CiAgIEZPUiBWQUxVRVMgRlJPTSAoJzIw MTYtMDctMDEnKSBUTyAoJzIwMTYtMDgtMDEnKTsgIC0tIGluaGVyaXRzIGdlbiBleHByCiBD UkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQyIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAot ICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIyKSBTVE9S RUQgIC0tIG92ZXJyaWRlcyBnZW4gZXhwcgorICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDIyKSBWSVJUVUFMICAtLSBvdmVycmlkZXMgZ2VuIGV4cHIK ICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOC0wMScpIFRPICgnMjAxNi0wOS0wMScpOwog Q1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgK ICAgICBmMyBERUZBVUxUIDQyICAtLSBlcnJvcgpAQCAtNDE3LDYgKzQyOSw5IEBAIENSRUFU RSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCiBDUkVB VEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAogICAg IGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZICAtLSBlcnJv cgogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQg KAorICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEICAtLSBlcnJv cgorKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7 CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdp bnQsIGYzIGJpZ2ludCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJ VElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgn MjAxNi0xMC0wMScpOyAtLSBlcnJvcgogRFJPUCBUQUJMRSBndGVzdF9jaGlsZDM7CkBAIC00 MjYsNyArNDQxLDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1Qg TlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgREVGQVVMVCA0Mik7CiBDUkVBVEUgVEFCTEUg Z3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBH RU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVu dCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2 LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7IC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0 X2NoaWxkMzsKLUNSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEws IGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFNU T1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBm MiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDMzKSBWSVJU VUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0 X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAx Jyk7CiBcZCBndGVzdF9jaGlsZAogXGQgZ3Rlc3RfY2hpbGQyCkBAIC00NTcsMjEgKzQ3Miwy MSBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBi aWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQQogLS0gd2UgbGVhdmUgdGhlc2UgdGFi bGVzIGFyb3VuZCBmb3IgcHVycG9zZXMgb2YgdGVzdGluZyBkdW1wL3JlbG9hZC91cGdyYWRl CiAKIC0tIGdlbmVyYXRlZCBjb2x1bW5zIGluIHBhcnRpdGlvbiBrZXkgKG5vdCBhbGxvd2Vk KQotQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBi aWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCkg UEFSVElUSU9OIEJZIFJBTkdFIChmMyk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkg KGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsK K0NSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmln aW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQ QVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKK0NSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAo ZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsK IAogLS0gQUxURVIgVEFCTEUgLi4uIEFERCBDT0xVTU4KIENSRUFURSBUQUJMRSBndGVzdDI1 IChhIGludCBQUklNQVJZIEtFWSk7CiBJTlNFUlQgSU5UTyBndGVzdDI1IFZBTFVFUyAoMyks ICg0KTsKLUFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgU1RPUkVELCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lP TiBBUyAoYSAqIDMpOworQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBBTFRFUiBDT0xVTU4gYiBTRVQg RVhQUkVTU0lPTiBBUyAoYSAqIDMpOwogU0VMRUNUICogRlJPTSBndGVzdDI1IE9SREVSIEJZ IGE7Ci1BTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYiAqIDQpIFNUT1JFRDsgIC0tIGVycm9yCi1BTFRFUiBUQUJMRSBndGVzdDI1 IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeiAqIDQpIFNUT1JFRDsg IC0tIGVycm9yCitBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYiAqIDQpIFZJUlRVQUw7ICAtLSBlcnJvcgorQUxURVIgVEFCTEUg Z3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHogKiA0KSBW SVJUVUFMOyAgLS0gZXJyb3IKIEFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBjIGlu dCBERUZBVUxUIDQyLAotICBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGMgKiA0KSBTVE9SRUQ7CisgIEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYyAqIDQpIFZJUlRVQUw7CiBBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4gZCBp bnQgREVGQVVMVCAxMDE7CiBBTFRFUiBUQUJMRSBndGVzdDI1IEFMVEVSIENPTFVNTiBkIFNF VCBEQVRBIFRZUEUgZmxvYXQ4LAotICBBREQgQ09MVU1OIHkgZmxvYXQ4IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGQgKiA0KSBTVE9SRUQ7CisgIEFERCBDT0xVTU4geSBmbG9hdDggR0VORVJB VEVEIEFMV0FZUyBBUyAoZCAqIDQpIFZJUlRVQUw7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjUg T1JERVIgQlkgYTsKIFxkIGd0ZXN0MjUKIApAQCAtNDc5LDcgKzQ5NCw3IEBAIENSRUFURSBU QUJMRSBndGVzdDI1IChhIGludCBQUklNQVJZIEtFWSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3Qy NyAoCiAgICAgYSBpbnQsCiAgICAgYiBpbnQsCi0gICAgeCBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoKGEgKyBiKSAqIDIpIFNUT1JFRAorICAgIHggaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKChhICsgYikgKiAyKSBWSVJUVUFMCiApOwogSU5TRVJUIElOVE8gZ3Rlc3QyNyAoYSwg YikgVkFMVUVTICgzLCA3KSwgKDQsIDExKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjcgQUxURVIg Q09MVU1OIGEgVFlQRSB0ZXh0OyAgLS0gZXJyb3IKQEAgLTQ5Myw3ICs1MDgsNyBAQCBDUkVB VEUgVEFCTEUgZ3Rlc3QyNyAoCiAgIERST1AgQ09MVU1OIHgsCiAgIEFMVEVSIENPTFVNTiBh IFRZUEUgYmlnaW50LAogICBBTFRFUiBDT0xVTU4gYiBUWVBFIGJpZ2ludCwKLSAgQUREIENP TFVNTiB4IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikgU1RPUkVE OworICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikg KiAyKSBWSVJUVUFMOwogXGQgZ3Rlc3QyNwogLS0gSWRlYWxseSB5b3UgY291bGQganVzdCBk byB0aGlzLCBidXQgbm90IHRvZGF5IChhbmQgc2hvdWxkIHggY2hhbmdlIHR5cGU/KToKIEFM VEVSIFRBQkxFIGd0ZXN0MjcKQEAgLTUwNSw3ICs1MjAsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rl c3QyNyAoCiAtLSBBTFRFUiBUQUJMRSAuLi4gQUxURVIgQ09MVU1OIC4uLiBEUk9QIEVYUFJF U1NJT04KIENSRUFURSBUQUJMRSBndGVzdDI5ICgKICAgICBhIGludCwKLSAgICBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdDI5IChh KSBWQUxVRVMgKDMpLCAoNCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CkBAIC01MzIsNyAr NTQ3LDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjkgKAogLS0gd2l0aCBpbmhlcml0YW5jZQog Q1JFQVRFIFRBQkxFIGd0ZXN0MzAgKAogICAgIGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgVklSVFVBTAogKTsKIENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5I RVJJVFMgKGd0ZXN0MzApOwogQUxURVIgVEFCTEUgZ3Rlc3QzMCBBTFRFUiBDT0xVTU4gYiBE Uk9QIEVYUFJFU1NJT047CkBAIC01NDEsNyArNTU2LDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0 MzBfMSAoKSBJTkhFUklUUyAoZ3Rlc3QzMCk7CiBEUk9QIFRBQkxFIGd0ZXN0MzAgQ0FTQ0FE RTsKIENSRUFURSBUQUJMRSBndGVzdDMwICgKICAgICBhIGludCwKLSAgICBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgp IElOSEVSSVRTIChndGVzdDMwKTsKIEFMVEVSIFRBQkxFIE9OTFkgZ3Rlc3QzMCBBTFRFUiBD T0xVTU4gYiBEUk9QIEVYUFJFU1NJT047ICAtLSBlcnJvcgpAQCAtNTUyLDcgKzU2Nyw3IEBA IENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5IRVJJVFMgKGd0ZXN0MzApOwogLS0gdHJp Z2dlcnMKIENSRUFURSBUQUJMRSBndGVzdDI2ICgKICAgICBhIGludCBQUklNQVJZIEtFWSwK LSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7CiAKIENSRUFURSBG VU5DVElPTiBndGVzdF90cmlnZ2VyX2Z1bmMoKSBSRVRVUk5TIHRyaWdnZXIKQEAgLTYxNCw2 ICs2MjksOSBAQCBDUkVBVEUgVFJJR0dFUiBndGVzdDQgQUZURVIgSU5TRVJUIE9SIFVQREFU RSBPTiBndGVzdDI2CiBEUk9QIFRSSUdHRVIgZ3Rlc3QyIE9OIGd0ZXN0MjY7CiBEUk9QIFRS SUdHRVIgZ3Rlc3QzIE9OIGd0ZXN0MjY7CiAKKy0tIGNoZWNrIGRpc2FsbG93ZWQgbW9kaWZp Y2F0aW9uIG9mIHZpcnR1YWwgY29sdW1ucworLS0gVE9ETworCiAtLSBDaGVjayB0aGF0IGFu IFVQREFURSBvZiAiYSIgZmlyZXMgdGhlIHRyaWdnZXIgZm9yIFVQREFURSBPRiBiLCBwZXIK IC0tIFNRTCBzdGFuZGFyZC4KIENSRUFURSBGVU5DVElPTiBndGVzdF90cmlnZ2VyX2Z1bmMz KCkgUkVUVVJOUyB0cmlnZ2VyCkBAIC02NjcsNyArNjg1LDcgQEAgQ1JFQVRFIFRBQkxFIGd0 ZXN0MjhhICgKICAgYSBpbnQsCiAgIGIgaW50LAogICBjIGludCwKLSAgeCBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRAorICB4IGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChiICogMikgVklSVFVBTAogKTsKIAogQUxURVIgVEFCTEUgZ3Rlc3QyOGEgRFJPUCBD T0xVTU4gYTsKQEAgLTY3NSwzICs2OTMsMTYgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjhhICgK IENSRUFURSBUQUJMRSBndGVzdDI4YiAoTElLRSBndGVzdDI4YSBJTkNMVURJTkcgR0VORVJB VEVEKTsKIAogXGQgZ3Rlc3QyOCoKKworCistLSBUT0RPOiBleHRyYSB0ZXN0cyB0byB3ZWF2 ZSBpbnRvIHRoZSByaWdodCBwbGFjZXMKKworLS0gc3VibGlua3MKK0NSRUFURSBUQUJMRSB0 MiAoCisgICAgYSBpbnQsCisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp LAorICAgIGQgaW50IERFRkFVTFQgMjIKKyk7CitJTlNFUlQgSU5UTyB0MiAoYSkgU0VMRUNU IGcgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIGc7CitTRUxFQ1QgYSwgYiwgZCwgKFNF TEVDVCB0Mi5iKSBGUk9NIHQyOworRFJPUCBUQUJMRSB0MjsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAxMV9nZW5lcmF0ZWQucGwgYi9zcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMTFfZ2VuZXJhdGVkLnBsCmluZGV4IDhiMmU1ZjQ3MDhlLi5mYWVlMTU1ZGFh NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDExX2dlbmVyYXRlZC5w bAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMTFfZ2VuZXJhdGVkLnBsCkBAIC0y MSwxMSArMjEsMTEgQEAKIG15ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hl ci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKIAogJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKLQkiQ1JFQVRFIFRBQkxFIHRhYjEgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKSIKKwki Q1JFQVRFIFRBQkxFIHRhYjEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMykgVklSVFVBTCkiCiApOwogCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKLQkiQ1JFQVRFIFRBQkxFIHRhYjEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNUT1JFRCwgYyBpbnQpIgorCSJDUkVB VEUgVEFCTEUgdGFiMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyMikgU1RPUkVELCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MzMpIFZJUlRVQUwsIGQgaW50KSIKICk7CiAKICMgZGF0YSBmb3IgaW5pdGlhbCBzeW5jCkBA IC00MiwxMCArNDIsMTAgQEAKICMgV2FpdCBmb3IgaW5pdGlhbCBzeW5jIG9mIGFsbCBzdWJz Y3JpcHRpb25zCiAkbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3lu YzsKIAotbXkgJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VMRUNUIGEsIGIgRlJPTSB0YWIxIik7Ci1pcyggJHJlc3VsdCwgcXEoMXwyMgot Mnw0NAotM3w2NiksICdnZW5lcmF0ZWQgY29sdW1ucyBpbml0aWFsIHN5bmMnKTsKK215ICRy ZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVD VCBhLCBiLCBjIEZST00gdGFiMSIpOworaXMoICRyZXN1bHQsIHFxKDF8MjJ8MzMKKzJ8NDR8 NjYKKzN8NjZ8OTkpLCAnZ2VuZXJhdGVkIGNvbHVtbnMgaW5pdGlhbCBzeW5jJyk7CiAKICMg ZGF0YSB0byByZXBsaWNhdGUKIApAQCAtNTYsMTEgKzU2LDExIEBACiAkbm9kZV9wdWJsaXNo ZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIAogJHJlc3VsdCA9ICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIxIik7Ci1p cyggJHJlc3VsdCwgcXEoMXwyMnwKLTJ8NDR8Ci0zfDY2fAotNHw4OHwKLTZ8MTMyfCksICdn ZW5lcmF0ZWQgY29sdW1ucyByZXBsaWNhdGVkJyk7CitpcyggJHJlc3VsdCwgcXEoMXwyMnwz M3wKKzJ8NDR8NjZ8CiszfDY2fDk5fAorNHw4OHwxMzJ8Cis2fDEzMnwxOTh8KSwgJ2dlbmVy YXRlZCBjb2x1bW5zIHJlcGxpY2F0ZWQnKTsKIAogIyB0cnkgaXQgd2l0aCBhIHN1YnNjcmli ZXItc2lkZSB0cmlnZ2VyCiAKQEAgLTY5LDcgKzY5LDcgQEAKIENSRUFURSBGVU5DVElPTiB0 YWIxX3RyaWdnZXJfZnVuYygpIFJFVFVSTlMgdHJpZ2dlcgogTEFOR1VBR0UgcGxwZ3NxbCBB UyAkJAogQkVHSU4KLSAgTkVXLmMgOj0gTkVXLmEgKyAxMDsKKyAgTkVXLmQgOj0gTkVXLmEg KyAxMDsKICAgUkVUVVJOIE5FVzsKIEVORCAkJDsKIApAQCAtODgsMTIgKzg4LDEyIEBAIEJF R0lOCiAKICRyZXN1bHQgPQogICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIlNFTEVDVCAqIEZST00gdGFiMSBPUkRFUiBCWSAxIik7Ci1pcyggJHJlc3VsdCwg cXEoMXwyMnwKLTJ8NDR8Ci0zfDY2fAotNHw4OHwKLTZ8MTMyfAotOHwxNzZ8MTgKLTl8MTk4 fDE5KSwgJ2dlbmVyYXRlZCBjb2x1bW5zIHJlcGxpY2F0ZWQgd2l0aCB0cmlnZ2VyJyk7Citp cyggJHJlc3VsdCwgcXEoMXwyMnwzM3wKKzJ8NDR8NjZ8CiszfDY2fDk5fAorNHw4OHwxMzJ8 Cis2fDEzMnwxOTh8Cis4fDE3NnwyNjR8MTgKKzl8MTk4fDI5N3wxOSksICdnZW5lcmF0ZWQg Y29sdW1ucyByZXBsaWNhdGVkIHdpdGggdHJpZ2dlcicpOwogCiBkb25lX3Rlc3RpbmcoKTsK LS0gCjIuNDYuMAoK --------------FL6t8Bx9V37nwbqo4z9MaDf7--