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 1s9pg8-005PJE-6z for pgsql-hackers@arkaria.postgresql.org; Wed, 22 May 2024 17:23:06 +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 1s9pg8-001hIR-2y for pgsql-hackers@arkaria.postgresql.org; Wed, 22 May 2024 17:23:04 +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 1s9pg5-001hFU-PE for pgsql-hackers@lists.postgresql.org; Wed, 22 May 2024 17:23:03 +0000 Received: from wfhigh1-smtp.messagingengine.com ([64.147.123.152]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s9pfx-001U45-QS for pgsql-hackers@postgresql.org; Wed, 22 May 2024 17:23:00 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailfhigh.west.internal (Postfix) with ESMTP id BC6CD1800122 for ; Wed, 22 May 2024 13:22:50 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Wed, 22 May 2024 13:22:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1716398570; x=1716484970; bh=xrKa874XqE 9ykeOljVOB/wJSocsvRu0Sa5gY040mnE4=; b=I7+a5umz0QKEDB6nJWCtUtyK1V XEGE93jQrl4y+PyZGXWSf3fSJE/kmp2a7L/vEmJbg2oAlHi6K+lc/uQFHHe82Nn/ u7EGaxmvbpzjgCvqT/SiFGO68hBuifiYpMBsSBixDd0oqYxGHn1YgNX76vbzP1Cx vDebBzh9aZQoO9ZFCNMHWijQ6bUDAM03tlXXYJDoYNBHKGz9vciiaA7TYNqgml3z JNRQXvw0IDf+yKKFJU+UzQijl2ylhZ3ocmC+J28tZw/9EpHA1loqE9ra+XzjD0Zi /IEh5XGSH3gcNJl0y8gTG+YNl6pFBht3Tx1yDTdz0a96cYoGGmjEYfvRuDig== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1716398570; x=1716484970; bh=xrKa874XqE9ykeOljVOB/wJSocsv Ru0Sa5gY040mnE4=; b=gNQmOXQLaJhbNLbI8v7s1gt4dP71XIXVM3Z/dkReYtPT fuiaNr7zzlckScjm0cr2kOsmTfjpiuqaXLc5gEI/p7VFwkwH+Uh2ojZ9GI3H5cvE NQoQWmgYUW+eJJAECkCACYjGOLy3oY9pxyYKyZHmlaoQP6pPz7s7e9XRWivIkYiY +uukGO/2zBHAIdcDci46aEc7tK8TPVT/uutELNpTVIUkl6lxB9Lxgp71DBupDBcG U63nBQtrEAfqGgs9Hmj84z8G4pvFGXnySCCjOSbibSV6g98YYdhtW0u/OPCHSyKd 0S3+MJlQYseOvAL6DsinwFkfu7dRn5iT0KDWsyuo0Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvdeigedgfeehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffhvfhfjgesmhdtre ertddvjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhes vghishgvnhhtrhgruhhtrdhorhhgqeenucggtffrrghtthgvrhhnpeevkeefudegheejie fftdfhuddtleefveevffdtffefudevgedtfefhjedvjefggfenucevlhhushhtvghrufhi iigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrsegvihhsvghnthhrrg huthdrohhrgh X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Wed, 22 May 2024 13:22:49 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------F047WaubqlPplDDt3NrCHCXm" Message-ID: Date: Wed, 22 May 2024 19:22:47 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Virtual generated columns From: Peter Eisentraut To: pgsql-hackers References: Content-Language: en-US In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------F047WaubqlPplDDt3NrCHCXm Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 29.04.24 10:23, Peter Eisentraut wrote: > Here is a patch set to implement virtual generated columns. > The main feature patch (0005 here) generally works but has a number of > open corner cases that need to be thought about and/or fixed, many of > which are marked in the code or the tests.  I'll continue working on > that.  But I wanted to see if I can get some feedback on the test > structure, so I don't have to keep changing it around later. Here is an updated patch set. It needed some rebasing, especially around the reverting of the catalogued not-null constraints. I have also fixed up the various incomplete or "fixme" pieces of code mentioned above. I have in most cases added "not supported yet" error messages for now, with the idea that some of these things can be added in later, as incremental features. In particular, quoting from the commit message, the following are currently not supported (but could possibly be added as incremental features, some easier than others): - index on virtual column - expression index using a virtual column - hence also no unique constraints on virtual columns - not-null constraints on virtual columns - (check constraints are supported) - foreign key constraints on virtual columns - extended statistics on virtual columns - ALTER TABLE / SET EXPRESSION - ALTER TABLE / DROP EXPRESSION - virtual columns as trigger columns - virtual column cannot have domain type So, I think this basically works now, and the things that don't work should be appropriately prevented. So if someone wants to test this and tell me what in fact doesn't work correctly, that would be helpful. --------------F047WaubqlPplDDt3NrCHCXm Content-Type: text/plain; charset=UTF-8; name="v1-0001-Rename-regress-test-generated-to-generated_stored.patch" Content-Disposition: attachment; filename*0="v1-0001-Rename-regress-test-generated-to-generated_stored.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxZGY2OGYzOGE3MTYwZmZmNGU0ODgyMWMzYTA0MTk4ODJhMmQyNTIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyOSBBcHIgMjAyNCAwOTo0Njo0MyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgMS81XSBSZW5hbWUgcmVncmVzcyB0ZXN0IGdlbmVyYXRlZCB0byBnZW5l cmF0ZWRfc3RvcmVkCgpUaGlzIG1ha2VzIG5hbWluZyByb29tIHRvIGhhdmUgYW5vdGhlciB0 ZXN0IGZpbGUgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkCmNvbHVtbnMuCi0tLQogLi4uL3JlZ3Jl c3MvZXhwZWN0ZWQve2dlbmVyYXRlZC5vdXQgPT4gZ2VuZXJhdGVkX3N0b3JlZC5vdXR9ICAg IHwgMAogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwve2dlbmVyYXRl ZC5zcWwgPT4gZ2VuZXJhdGVkX3N0b3JlZC5zcWx9ICAgIHwgMAogMyBmaWxlcyBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQogcmVuYW1lIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQve2dlbmVyYXRlZC5vdXQgPT4gZ2VuZXJhdGVkX3N0b3JlZC5vdXR9ICgx MDAlKQogcmVuYW1lIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3tnZW5lcmF0ZWQuc3FsID0+IGdl bmVyYXRlZF9zdG9yZWQuc3FsfSAoMTAwJSkKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2dlbmVyYXRlZC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2dlbmVyYXRlZF9zdG9yZWQub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJv bSBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZC5vdXQKcmVuYW1lIHRvIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDk2OWNlZDk5NGY0Li5kNGJiYzBkYjI1YiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC02Niw3ICs2Niw3IEBAIHRl c3Q6IHNlbGVjdF9pbnRvIHNlbGVjdF9kaXN0aW5jdCBzZWxlY3RfZGlzdGluY3Rfb24gc2Vs ZWN0X2ltcGxpY2l0IHNlbGVjdF9oYXZpCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91 cCBvZiBwYXJhbGxlbCB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBicmluIGdpbiBnaXN0 IHNwZ2lzdCBwcml2aWxlZ2VzIGluaXRfcHJpdnMgc2VjdXJpdHlfbGFiZWwgY29sbGF0ZSBt YXR2aWV3IGxvY2sgcmVwbGljYV9pZGVudGl0eSByb3dzZWN1cml0eSBvYmplY3RfYWRkcmVz cyB0YWJsZXNhbXBsZSBncm91cGluZ3NldHMgZHJvcF9vcGVyYXRvciBwYXNzd29yZCBpZGVu dGl0eSBnZW5lcmF0ZWQgam9pbl9oYXNoCit0ZXN0OiBicmluIGdpbiBnaXN0IHNwZ2lzdCBw cml2aWxlZ2VzIGluaXRfcHJpdnMgc2VjdXJpdHlfbGFiZWwgY29sbGF0ZSBtYXR2aWV3IGxv Y2sgcmVwbGljYV9pZGVudGl0eSByb3dzZWN1cml0eSBvYmplY3RfYWRkcmVzcyB0YWJsZXNh bXBsZSBncm91cGluZ3NldHMgZHJvcF9vcGVyYXRvciBwYXNzd29yZCBpZGVudGl0eSBnZW5l cmF0ZWRfc3RvcmVkIGpvaW5faGFzaAogCiAjIC0tLS0tLS0tLS0KICMgQWRkaXRpb25hbCBC UklOIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWQu c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwKc2ltaWxh cml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVy YXRlZC5zcWwKcmVuYW1lIHRvIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9y ZWQuc3FsCgpiYXNlLWNvbW1pdDogYzM3MjY3MTYyZTg4OWZlNzgzNzg2YjllMjhkMWI2NWI4 MjM2NWEwMAotLSAKMi40NC4wCgo= --------------F047WaubqlPplDDt3NrCHCXm Content-Type: text/plain; charset=UTF-8; name="v1-0002-Put-generated_stored-test-objects-in-a-schema.patch" Content-Disposition: attachment; filename*0="v1-0002-Put-generated_stored-test-objects-in-a-schema.patch" Content-Transfer-Encoding: base64 RnJvbSAzMTM1NDRkOGVhNGJhMjI0MzNiYmI5NTAxYTAyNTIyNjJjOTE2ZmZjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyOSBBcHIgMjAyNCAwOTo0Njo0MyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgMi81XSBQdXQgZ2VuZXJhdGVkX3N0b3JlZCB0ZXN0IG9iamVjdHMgaW4g YSBzY2hlbWEKClRoaXMgYXZvaWRzIG5hbWluZyBjb25mbGljdHMgd2l0aCBjb25jdXJyZW50 IHRlc3RzIHdpdGggc2ltaWxhcmx5Cm5hbWVkIG9iamVjdHMuICBDdXJyZW50bHksIHRoZXJl IGFyZSBub25lLCBidXQgYSB0ZXN0cyBmb3IgdmlydHVhbApnZW5lcmF0ZWQgY29sdW1ucyBh cmUgcGxhbm5lZCB0byBiZSBhZGRlZC4KLS0tCiAuLi4vcmVncmVzcy9leHBlY3RlZC9nZW5l cmF0ZWRfc3RvcmVkLm91dCAgICAgfCA3MSArKysrKysrKysrLS0tLS0tLS0tCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbCAgICAgfCAgOCArKy0KIDIgZmls ZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfc3RvcmVkLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKaW5kZXgg NDQwNThkYjdjMWQuLmRkNzRhMWE5ZjBiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKQEAgLTQsOSArNCwxMiBAQCBTRUxFQ1Qg YXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVS RSBhdHRnZW5lcmF0ZWQgTk9UCiAtLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LQogKDAgcm93cykKIAorQ1JFQVRFIFNDSEVNQSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzOwor R1JBTlQgVVNBR0UgT04gU0NIRU1BIGdlbmVyYXRlZF9zdG9yZWRfdGVzdHMgVE8gUFVCTElD OworU0VUIHNlYXJjaF9wYXRoID0gZ2VuZXJhdGVkX3N0b3JlZF90ZXN0czsKIENSRUFURSBU QUJMRSBndGVzdDAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTICg1NSkgU1RPUkVEKTsKIENSRUFURSBUQUJMRSBndGVzdDEgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKLVNFTEVD VCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29sdW1uX2RlZmF1bHQsIGlzX251bGxhYmxl LCBpc19nZW5lcmF0ZWQsIGdlbmVyYXRpb25fZXhwcmVzc2lvbiBGUk9NIGluZm9ybWF0aW9u X3NjaGVtYS5jb2x1bW5zIFdIRVJFIHRhYmxlX25hbWUgTElLRSAnZ3Rlc3RfJyBPUkRFUiBC WSAxLCAyOworU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBjb2x1bW5fZGVmYXVs dCwgaXNfbnVsbGFibGUsIGlzX2dlbmVyYXRlZCwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIEZS T00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgV0hFUkUgdGFibGVfc2NoZW1hID0gJ2dl bmVyYXRlZF9zdG9yZWRfdGVzdHMnIE9SREVSIEJZIDEsIDI7CiAgdGFibGVfbmFtZSB8IGNv bHVtbl9uYW1lIHwgY29sdW1uX2RlZmF1bHQgfCBpc19udWxsYWJsZSB8IGlzX2dlbmVyYXRl ZCB8IGdlbmVyYXRpb25fZXhwcmVzc2lvbiAKIC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIGd0ZXN0MCAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIHwgTk8gICAgICAgICAgfCBORVZFUiAgICAgICAgfCAKQEAgLTE1LDE0ICsxOCwx NCBAQCBTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0LCBp c19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcgogIGd0ZXN0MSAgICAgfCBiICAgICAg ICAgICB8ICAgICAgICAgICAgICAgIHwgWUVTICAgICAgICAgfCBBTFdBWVMgICAgICAgfCAo YSAqIDIpCiAoNCByb3dzKQogCi1TRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGRl cGVuZGVudF9jb2x1bW4gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uX2NvbHVtbl91 c2FnZSBPUkRFUiBCWSAxLCAyLCAzOworU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1l LCBkZXBlbmRlbnRfY29sdW1uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbl9jb2x1 bW5fdXNhZ2UgV0hFUkUgdGFibGVfc2NoZW1hID0gJ2dlbmVyYXRlZF9zdG9yZWRfdGVzdHMn IE9SREVSIEJZIDEsIDIsIDM7CiAgdGFibGVfbmFtZSB8IGNvbHVtbl9uYW1lIHwgZGVwZW5k ZW50X2NvbHVtbiAKIC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLQogIGd0ZXN0MSAgICAgfCBhICAgICAgICAgICB8IGIKICgxIHJvdykKIAogXGQgZ3Rl c3QxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5ndGVzdDEi CisgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0 ZXN0MSIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAg ICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCkBAIC0y NzAsNyArMjczLDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDFfMTsKICgwIHJvd3MpCiAKIFxk IGd0ZXN0MV8xCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmd0 ZXN0MV8xIgorICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rl c3RzLmd0ZXN0MV8xIgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwg fCAKQEAgLTMxMiw3ICszMTUsNyBAQCBFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgZnJv bSBnZW5lcmF0ZWQgY29sdW1uIGJ1dCBzcGVjaWZpZXMgaWRlbnRpdHkKIENSRUFURSBUQUJM RSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNU T1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywgb3ZlcnJpZGVzIHBhcmVudAogTk9U SUNFOiAgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KIFxk KyBndGVzdHgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3R4IgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0eCIKICBD b2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAg IERlZmF1bHQgICAgICAgICAgICAgICB8IFN0b3JhZ2UgfCBTdGF0cyB0YXJnZXQgfCBEZXNj cmlwdGlvbiAKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg bm90IG51bGwgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWlu ICAgfCAgICAgICAgICAgICAgfCAKQEAgLTM0OCw3ICszNTEsNyBAQCBOT1RJQ0U6ICBtZXJn aW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImIiCiBOT1RJ Q0U6ICBtb3ZpbmcgYW5kIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZp bml0aW9uCiBERVRBSUw6ICBVc2VyLXNwZWNpZmllZCBjb2x1bW4gbW92ZWQgdG8gdGhlIHBv c2l0aW9uIG9mIHRoZSBpbmhlcml0ZWQgY29sdW1uLgogXGQgZ3Rlc3QxX3kKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3QxX3kiCisgICAgICAgICAg ICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxX3kiCiAgQ29s dW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERl ZmF1bHQgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IApAQCAtNTIzLDcgKzUyNiw3 IEBAIEhJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQg b2JqZWN0cyB0b28uCiBBTFRFUiBUQUJMRSBndGVzdDEwIERST1AgQ09MVU1OIGIgQ0FTQ0FE RTsgIC0tIGRyb3BzIGMgdG9vCiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIGNvbHVtbiBj IG9mIHRhYmxlIGd0ZXN0MTAKIFxkIGd0ZXN0MTAKLSAgICAgICAgICAgICAgVGFibGUgInB1 YmxpYy5ndGVzdDEwIgorICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rl c3QxMCIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZh dWx0IAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCkBAIC02 MjIsNyArNjI1LDcgQEAgQ1JFQVRFIElOREVYIGd0ZXN0MjJjX2JfaWR4IE9OIGd0ZXN0MjJj IChiKTsKIENSRUFURSBJTkRFWCBndGVzdDIyY19leHByX2lkeCBPTiBndGVzdDIyYyAoKGIg KiAzKSk7CiBDUkVBVEUgSU5ERVggZ3Rlc3QyMmNfcHJlZF9pZHggT04gZ3Rlc3QyMmMgKGEp IFdIRVJFIGIgPiAwOwogXGQgZ3Rlc3QyMmMKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IFRhYmxlICJwdWJsaWMuZ3Rlc3QyMmMiCisgICAgICAgICAgICAgICAgICAgVGFibGUgImdl bmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyMmMiCiAgQ29sdW1uIHwgIFR5cGUgICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAg ICAKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICB8IApAQCAtNzI2LDcgKzcyOSw3IEBAIENSRUFURSBUQUJMRSBn dGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBTVE9SCiBFUlJPUjogIGludmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9y ZWlnbiBrZXkgY29uc3RyYWludCBjb250YWluaW5nIGdlbmVyYXRlZCBjb2x1bW4KIENSRUFU RSBUQUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkpOwogXGQg Z3Rlc3QyM2IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rl c3QyM2IiCisgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVz dHMuZ3Rlc3QyM2IiCiAgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8 IApAQCAtODA1LDcgKzgwOCw3IEBAIERST1AgVEFCTEUgZ3Rlc3RfY2hpbGQzOwogQ1JFQVRF IFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBi aWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAzMykgU1RPUkVEKTsKIEFMVEVSIFRB QkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFM VUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBcZCBndGVzdF9j aGlsZAotICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmd0ZXN0X2No aWxkIgorICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMu Z3Rlc3RfY2hpbGQiCiAgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg CkBAIC04MTQsNyArODE3LDcgQEAgQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQ QVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDkKIFBhcnRp dGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA3LTAxLTIwMTYnKSBU TyAoJzA4LTAxLTIwMTYnKQogCiBcZCBndGVzdF9jaGlsZDIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgVGFibGUgInB1YmxpYy5ndGVzdF9jaGlsZDIiCisgICAgICAgICAgICAgICAg ICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZDIiCiAgQ29sdW1u IHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1 bHQgICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAg IHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKQEAgLTgyMyw3ICs4MjYsNyBA QCBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwNy0wMS0y MDE2JykgVE8gKCcwOC0wMS0yMDE2JykKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZP UiBWQUxVRVMgRlJPTSAoJzA4LTAxLTIwMTYnKSBUTyAoJzA5LTAxLTIwMTYnKQogCiBcZCBn dGVzdF9jaGlsZDMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5n dGVzdF9jaGlsZDMiCisgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3Jl ZF90ZXN0cy5ndGVzdF9jaGlsZDMiCiAgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgCiAtLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwg bm90IG51bGwgfCAKQEAgLTg1NSw3ICs4NTgsNyBAQCBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2Ns YXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZIDEsIDIsIDM7CiBBTFRFUiBUQUJM RSBPTkxZIGd0ZXN0X3BhcmVudCBBTFRFUiBDT0xVTU4gZjMgU0VUIEVYUFJFU1NJT04gQVMg KGYyICogNCk7CiBBTFRFUiBUQUJMRSBndGVzdF9jaGlsZCBBTFRFUiBDT0xVTU4gZjMgU0VU IEVYUFJFU1NJT04gQVMgKGYyICogMTApOwogXGQgZ3Rlc3RfcGFyZW50Ci0gICAgICAgICAg ICAgICAgICAgUGFydGl0aW9uZWQgdGFibGUgInB1YmxpYy5ndGVzdF9wYXJlbnQiCisgICAg ICAgICAgIFBhcnRpdGlvbmVkIHRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0 X3BhcmVudCIKICBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKQEAg LTg2NSw3ICs4NjgsNyBAQCBQYXJ0aXRpb24ga2V5OiBSQU5HRSAoZjEpCiBOdW1iZXIgb2Yg cGFydGl0aW9uczogMyAoVXNlIFxkKyB0byBsaXN0IHRoZW0uKQogCiBcZCBndGVzdF9jaGls ZAotICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmd0ZXN0X2NoaWxk IgorICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rl c3RfY2hpbGQiCiAgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAg ICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAK QEAgLTg3NCw3ICs4NzcsNyBAQCBOdW1iZXIgb2YgcGFydGl0aW9uczogMyAoVXNlIFxkKyB0 byBsaXN0IHRoZW0uKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBG Uk9NICgnMDctMDEtMjAxNicpIFRPICgnMDgtMDEtMjAxNicpCiAKIFxkIGd0ZXN0X2NoaWxk MgotICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmd0ZXN0X2NoaWxk MiIKKyAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0 ZXN0X2NoaWxkMiIKICBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8 IApAQCAtODgzLDcgKzg4Niw3IEBAIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBW QUxVRVMgRlJPTSAoJzA3LTAxLTIwMTYnKSBUTyAoJzA4LTAxLTIwMTYnKQogUGFydGl0aW9u IG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9NICgnMDgtMDEtMjAxNicpIFRPICgn MDktMDEtMjAxNicpCiAKIFxkIGd0ZXN0X2NoaWxkMwotICAgICAgICAgICAgICAgICAgICAg ICAgICBUYWJsZSAicHVibGljLmd0ZXN0X2NoaWxkMyIKKyAgICAgICAgICAgICAgICAgIFRh YmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMyIKICBDb2x1bW4gfCAg VHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAg ICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBk YXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IApAQCAtOTAyLDcgKzkwNSw3IEBAIFNF TEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9wYXJlbnQgT1JERVIgQlkg MSwgMiwgMzsKIC0tIGFsdGVyIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBvZiBwYXJlbnQgYW5k IGFsbCBpdHMgY2hpbGRyZW4gYWx0b2dldGhlcgogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50 IEFMVEVSIENPTFVNTiBmMyBTRVQgRVhQUkVTU0lPTiBBUyAoZjIgKiAyKTsKIFxkIGd0ZXN0 X3BhcmVudAotICAgICAgICAgICAgICAgICAgIFBhcnRpdGlvbmVkIHRhYmxlICJwdWJsaWMu Z3Rlc3RfcGFyZW50IgorICAgICAgICAgICBQYXJ0aXRpb25lZCB0YWJsZSAiZ2VuZXJhdGVk X3N0b3JlZF90ZXN0cy5ndGVzdF9wYXJlbnQiCiAgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAK IC0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAg ICB8IG5vdCBudWxsIHwgCkBAIC05MTIsNyArOTE1LDcgQEAgUGFydGl0aW9uIGtleTogUkFO R0UgKGYxKQogTnVtYmVyIG9mIHBhcnRpdGlvbnM6IDMgKFVzZSBcZCsgdG8gbGlzdCB0aGVt LikKIAogXGQgZ3Rlc3RfY2hpbGQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUg InB1YmxpYy5ndGVzdF9jaGlsZCIKKyAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0 ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkIgogIENvbHVtbiB8ICBUeXBlICB8IENvbGxh dGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAg CiAtLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAg ICAgfCBub3QgbnVsbCB8IApAQCAtOTIxLDcgKzkyNCw3IEBAIE51bWJlciBvZiBwYXJ0aXRp b25zOiAzIChVc2UgXGQrIHRvIGxpc3QgdGhlbS4pCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3Bh cmVudCBGT1IgVkFMVUVTIEZST00gKCcwNy0wMS0yMDE2JykgVE8gKCcwOC0wMS0yMDE2JykK IAogXGQgZ3Rlc3RfY2hpbGQyCi0gICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1 YmxpYy5ndGVzdF9jaGlsZDIiCisgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRf c3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMiIKICBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRp b24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAog LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKQEAgLTkzMCw3ICs5MzMsNyBAQCBQYXJ0aXRpb24gb2Y6IGd0ZXN0 X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwNy0wMS0yMDE2JykgVE8gKCcwOC0wMS0yMDE2 JykKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA4LTAx LTIwMTYnKSBUTyAoJzA5LTAxLTIwMTYnKQogCiBcZCBndGVzdF9jaGlsZDMKLSAgICAgICAg ICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmd0ZXN0X2NoaWxkMyIKKyAgICAgICAg ICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQzIgog IENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAg ICBEZWZhdWx0ICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBm MSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IApAQCAtOTg3LDcgKzk5 MCw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRFUiBCWSBhOwogKDIgcm93cykKIAog XGQgZ3Rlc3QyNQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAicHVibGljLmd0ZXN0MjUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI1IgogIENvbHVtbiB8ICAg ICAgIFR5cGUgICAgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAg ICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRl Z2VyICAgICAgICAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKQEAgLTEwMTEsNyArMTAx NCw3IEBAIEVSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgb2YgYSBjb2x1bW4gdXNlZCBieSBh IGdlbmVyYXRlZCBjb2x1bW4KIERFVEFJTDogIENvbHVtbiAiYSIgaXMgdXNlZCBieSBnZW5l cmF0ZWQgY29sdW1uICJ4Ii4KIEFMVEVSIFRBQkxFIGd0ZXN0MjcgQUxURVIgQ09MVU1OIHgg VFlQRSBudW1lcmljOwogXGQgZ3Rlc3QyNwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUYWJsZSAicHVibGljLmd0ZXN0MjciCisgICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI3IgogIENvbHVtbiB8ICBUeXBl ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICAgRGVmYXVsdCAg ICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg YSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCkBAIC0xMDM3LDcg KzEwNDAsNyBAQCBBTFRFUiBUQUJMRSBndGVzdDI3CiAgIEFMVEVSIENPTFVNTiBiIFRZUEUg YmlnaW50LAogICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChh ICsgYikgKiAyKSBTVE9SRUQ7CiBcZCBndGVzdDI3Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUYWJsZSAicHVibGljLmd0ZXN0MjciCisgICAgICAgICAgICAgICAgICAgICAg VGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyNyIKICBDb2x1bW4gfCAgVHlw ZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICBEZWZhdWx0ICAg ICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAg ICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCkBAIC0xMDUxLDcgKzEwNTQs NyBAQCBBTFRFUiBUQUJMRSBndGVzdDI3CiBFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlIG9m IGEgY29sdW1uIHVzZWQgYnkgYSBnZW5lcmF0ZWQgY29sdW1uCiBERVRBSUw6ICBDb2x1bW4g ImEiIGlzIHVzZWQgYnkgZ2VuZXJhdGVkIGNvbHVtbiAieCIuCiBcZCBndGVzdDI3Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmd0ZXN0MjciCisgICAg ICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3Qy NyIKICBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIGEgICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwg CkBAIC0xMDc5LDcgKzEwODIsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CiAoMiByb3dz KQogCiBcZCBndGVzdDI5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1 YmxpYy5ndGVzdDI5IgorICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0 b3JlZF90ZXN0cy5ndGVzdDI5IgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCiAtLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKQEAgLTExMDEsNyArMTEwNCw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyOTsK ICgyIHJvd3MpCiAKIFxkIGd0ZXN0MjkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAicHVibGljLmd0ZXN0MjkiCisgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5l cmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjkiCiAgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxh dGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAK IC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAg ICAgfCAgICAgICAgICB8IApAQCAtMTEyMCw3ICsxMTIzLDcgQEAgU0VMRUNUICogRlJPTSBn dGVzdDI5OwogKDQgcm93cykKIAogXGQgZ3Rlc3QyOQotICAgICAgICAgICAgICBUYWJsZSAi cHVibGljLmd0ZXN0MjkiCisgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5n dGVzdDI5IgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCiAtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKQEAg LTExMjksNyArMTEzMiw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyOTsKIC0tIGNoZWNrIHRo YXQgZGVwZW5kZW5jaWVzIGJldHdlZW4gY29sdW1ucyBoYXZlIGFsc28gYmVlbiByZW1vdmVk CiBBTFRFUiBUQUJMRSBndGVzdDI5IERST1AgQ09MVU1OIGE7ICAtLSBzaG91bGQgbm90IGRy b3AgYgogXGQgZ3Rlc3QyOQotICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmd0ZXN0Mjki CisgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI5IgogIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCiAtLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KICBiICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKQEAgLTExNDIsNyArMTE0NSw3 IEBAIENSRUFURSBUQUJMRSBndGVzdDMwICgKIENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkg SU5IRVJJVFMgKGd0ZXN0MzApOwogQUxURVIgVEFCTEUgZ3Rlc3QzMCBBTFRFUiBDT0xVTU4g YiBEUk9QIEVYUFJFU1NJT047CiBcZCBndGVzdDMwCi0gICAgICAgICAgICAgIFRhYmxlICJw dWJsaWMuZ3Rlc3QzMCIKKyAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0 ZXN0MzAiCiAgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVm YXVsdCAKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IApAQCAt MTE1MCw3ICsxMTUzLDcgQEAgQUxURVIgVEFCTEUgZ3Rlc3QzMCBBTFRFUiBDT0xVTU4gYiBE Uk9QIEVYUFJFU1NJT047CiBOdW1iZXIgb2YgY2hpbGQgdGFibGVzOiAxIChVc2UgXGQrIHRv IGxpc3QgdGhlbS4pCiAKIFxkIGd0ZXN0MzBfMQotICAgICAgICAgICAgIFRhYmxlICJwdWJs aWMuZ3Rlc3QzMF8xIgorICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVz dDMwXzEiCiAgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVm YXVsdCAKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IApAQCAt MTE2Nyw3ICsxMTcwLDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MzBfMSAoKSBJTkhFUklUUyAo Z3Rlc3QzMCk7CiBBTFRFUiBUQUJMRSBPTkxZIGd0ZXN0MzAgQUxURVIgQ09MVU1OIGIgRFJP UCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKIEVSUk9SOiAgQUxURVIgVEFCTEUgLyBEUk9QIEVY UFJFU1NJT04gbXVzdCBiZSBhcHBsaWVkIHRvIGNoaWxkIHRhYmxlcyB0b28KIFxkIGd0ZXN0 MzAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmd0ZXN0MzAi CisgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0 ZXN0MzAiCiAgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IApAQCAt MTE3NSw3ICsxMTc4LDcgQEAgRVJST1I6ICBBTFRFUiBUQUJMRSAvIERST1AgRVhQUkVTU0lP TiBtdXN0IGJlIGFwcGxpZWQgdG8gY2hpbGQgdGFibGVzIHRvbwogTnVtYmVyIG9mIGNoaWxk IHRhYmxlczogMSAoVXNlIFxkKyB0byBsaXN0IHRoZW0uKQogCiBcZCBndGVzdDMwXzEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3QzMF8xIgorICAg ICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MzBf MSIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCkBAIC0xMzM2 LDE0ICsxMzM5LDE0IEBAIENSRUFURSBUQUJMRSBndGVzdDI4YSAoCiBBTFRFUiBUQUJMRSBn dGVzdDI4YSBEUk9QIENPTFVNTiBhOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjhiIChMSUtFIGd0 ZXN0MjhhIElOQ0xVRElORyBHRU5FUkFURUQpOwogXGQgZ3Rlc3QyOCoKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3QyOGEiCisgICAgICAgICAgICAg ICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOGEiCiAgQ29sdW1u IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1 bHQgICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGIgICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGMgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8IAogIHggICAgICB8IGludGVnZXIgfCAgICAgICAg ICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIgKiAyKSBzdG9yZWQKIAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5ndGVzdDI4YiIKKyAg ICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI4 YiIKICBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsCmluZGV4IGNiNTVkNzc4MjFm Li5jMThlMGUxZjY1NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJh dGVkX3N0b3JlZC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0 b3JlZC5zcWwKQEAgLTIsMTIgKzIsMTYgQEAKIFNFTEVDVCBhdHRyZWxpZCwgYXR0bmFtZSwg YXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRlZCBOT1Qg SU4gKCcnLCAncycpOwogCiAKK0NSRUFURSBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0 czsKK0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzIFRPIFBV QkxJQzsKK1NFVCBzZWFyY2hfcGF0aCA9IGdlbmVyYXRlZF9zdG9yZWRfdGVzdHM7CisKIENS RUFURSBUQUJMRSBndGVzdDAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTICg1NSkgU1RPUkVEKTsKIENSRUFURSBUQUJMRSBndGVzdDEgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsK IAotU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBjb2x1bW5fZGVmYXVsdCwgaXNf bnVsbGFibGUsIGlzX2dlbmVyYXRlZCwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIEZST00gaW5m b3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgV0hFUkUgdGFibGVfbmFtZSBMSUtFICdndGVzdF8n IE9SREVSIEJZIDEsIDI7CitTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVt bl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJl c3Npb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hl bWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMjsKIAotU0VMRUNU IHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBkZXBlbmRlbnRfY29sdW1uIEZST00gaW5mb3Jt YXRpb25fc2NoZW1hLmNvbHVtbl9jb2x1bW5fdXNhZ2UgT1JERVIgQlkgMSwgMiwgMzsKK1NF TEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGlu Zm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5fY29sdW1uX3VzYWdlIFdIRVJFIHRhYmxlX3NjaGVt YSA9ICdnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzJyBPUkRFUiBCWSAxLCAyLCAzOwogCiBcZCBn dGVzdDEKIAotLSAKMi40NC4wCgo= --------------F047WaubqlPplDDt3NrCHCXm Content-Type: text/plain; charset=UTF-8; name="v1-0003-Remove-useless-initializations.patch" Content-Disposition: attachment; filename="v1-0003-Remove-useless-initializations.patch" Content-Transfer-Encoding: base64 RnJvbSA2NjUzZjcyZjc5OTA0ODhhNTk1ODQ1MTY2NmI4MWMxMDVkN2Y5MWRlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyOSBBcHIgMjAyNCAwOTo0Njo0MyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgMy81XSBSZW1vdmUgdXNlbGVzcyBpbml0aWFsaXphdGlvbnMKClRoZSBz dHJ1Y3QgaXMgYWxyZWFkeSBpbml0aWFsaXplZCB0byBhbGwgemVyb3MgcmlnaHQgYmVmb3Jl IHRoaXMsIGFuZApyYW5kb21seSBpbml0aWFsaXppbmcgYSBmZXcgYnV0IG5vdCBhbGwgZmll bGRzIHRvIHplcm8gYWdhaW4gaGFzIG5vCnRlY2huaWNhbCBvciBlZHVjYXRpb25hbCB2YWx1 ZS4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jIHwgMiAtLQogMSBm aWxlIGNoYW5nZWQsIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNh Y2hlLmMKaW5kZXggY2M5YjBjNjUyNGYuLmIwOWY2YTkwZTQ0IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3JlbGNhY2hlLmMKQEAgLTUzNSw4ICs1MzUsNiBAQCBSZWxhdGlvbkJ1aWxkVHVw bGVEZXNjKFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJY29uc3RyID0gKFR1cGxlQ29uc3RyICop IE1lbW9yeUNvbnRleHRBbGxvY1plcm8oQ2FjaGVNZW1vcnlDb250ZXh0LAogCQkJCQkJCQkJ CQkJCXNpemVvZihUdXBsZUNvbnN0cikpOwotCWNvbnN0ci0+aGFzX25vdF9udWxsID0gZmFs c2U7Ci0JY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCA9IGZhbHNlOwogCiAJLyoKIAkg KiBGb3JtIGEgc2NhbiBrZXkgdGhhdCBzZWxlY3RzIG9ubHkgdXNlciBhdHRyaWJ1dGVzIChh dHRudW0gPiAwKS4KLS0gCjIuNDQuMAoK --------------F047WaubqlPplDDt3NrCHCXm Content-Type: text/plain; charset=UTF-8; name="v1-0004-Remove-useless-code.patch" Content-Disposition: attachment; filename="v1-0004-Remove-useless-code.patch" Content-Transfer-Encoding: base64 RnJvbSBkMjMyNWE3MzcxMWQ3N2U1YmQwYmRjM2RmMjM0ZWZhYzIyOWNiOTQ4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyOSBBcHIgMjAyNCAwOTo0Njo0NCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgNC81XSBSZW1vdmUgdXNlbGVzcyBjb2RlCgpCdWlsZERlc2NGb3JSZWxh dGlvbigpIGdvZXMgb3V0IG9mIGl0cyB3YXkgdG8gZmlsbCBpbgotPmNvbnN0ci0+aGFzX25v dF9udWxsLCBidXQgdGhhdCB2YWx1ZSBpcyBub3QgdXNlZCBmb3IgYW55dGhpbmcgbGF0ZXIs CnNvIHRoaXMgY29kZSBjYW4gYWxsIGJlIHJlbW92ZWQuICBOb3RlIHRoYXQgQnVpbGREZXNj Rm9yUmVsYXRpb24oKQpkb2Vzbid0IG1ha2UgYW55IGVmZm9ydCB0byBmaWxsIGluIHRoZSBy ZXN0IG9mIC0+Y29uc3RyLCBzbyB0aGVyZSBpcwpubyBjbGFpbSB0aGF0IHRoYXQgc3RydWN0 dXJlIGlzIGNvbXBsZXRlbHkgZmlsbGVkIGluLgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jIHwgMjUgKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwppbmRleCAzMTNjNzgyY2FlMi4uOTU4MDA3Y2EzMTYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMjcyLDcgKzEyNzIsOSBAQCBEZWZpbmVSZWxh dGlvbihDcmVhdGVTdG10ICpzdG10LCBjaGFyIHJlbGtpbmQsIE9pZCBvd25lcklkLAogICoK ICAqIEdpdmVuIGEgbGlzdCBvZiBDb2x1bW5EZWYgbm9kZXMsIGJ1aWxkIGEgVHVwbGVEZXNj LgogICoKLSAqIE5vdGU6IHRkdHlwZWlkIHdpbGwgbmVlZCB0byBiZSBmaWxsZWQgaW4gbGF0 ZXIgb24uCisgKiBOb3RlOiBUaGlzIGlzIG9ubHkgZm9yIHRoZSBsaW1pdGVkIHB1cnBvc2Ug b2YgdGFibGUgYW5kIHZpZXcgY3JlYXRpb24uICBOb3QKKyAqIGV2ZXJ5dGhpbmcgaXMgZmls bGVkIGluLiAgQSByZWFsIHR1cGxlIGRlc2NyaXB0b3Igc2hvdWxkIGJlIG9idGFpbmVkIGZy b20KKyAqIHRoZSByZWxjYWNoZS4KICAqLwogVHVwbGVEZXNjCiBCdWlsZERlc2NGb3JSZWxh dGlvbihjb25zdCBMaXN0ICpjb2x1bW5zKQpAQCAtMTI4MSw3ICsxMjgzLDYgQEAgQnVpbGRE ZXNjRm9yUmVsYXRpb24oY29uc3QgTGlzdCAqY29sdW1ucykKIAlBdHRyTnVtYmVyCWF0dG51 bTsKIAlMaXN0Q2VsbCAgICpsOwogCVR1cGxlRGVzYwlkZXNjOwotCWJvb2wJCWhhc19ub3Rf bnVsbDsKIAljaGFyCSAgICphdHRuYW1lOwogCU9pZAkJCWF0dHR5cGlkOwogCWludDMyCQlh dHR0eXBtb2Q7CkBAIC0xMjkzLDcgKzEyOTQsNiBAQCBCdWlsZERlc2NGb3JSZWxhdGlvbihj b25zdCBMaXN0ICpjb2x1bW5zKQogCSAqLwogCW5hdHRzID0gbGlzdF9sZW5ndGgoY29sdW1u cyk7CiAJZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKG5hdHRzKTsKLQloYXNfbm90 X251bGwgPSBmYWxzZTsKIAogCWF0dG51bSA9IDA7CiAKQEAgLTEzMzksNyArMTMzOSw2IEBA IEJ1aWxkRGVzY0ZvclJlbGF0aW9uKGNvbnN0IExpc3QgKmNvbHVtbnMpCiAKIAkJLyogRmls bCBpbiBhZGRpdGlvbmFsIHN0dWZmIG5vdCBoYW5kbGVkIGJ5IFR1cGxlRGVzY0luaXRFbnRy eSAqLwogCQlhdHQtPmF0dG5vdG51bGwgPSBlbnRyeS0+aXNfbm90X251bGw7Ci0JCWhhc19u b3RfbnVsbCB8PSBlbnRyeS0+aXNfbm90X251bGw7CiAJCWF0dC0+YXR0aXNsb2NhbCA9IGVu dHJ5LT5pc19sb2NhbDsKIAkJYXR0LT5hdHRpbmhjb3VudCA9IGVudHJ5LT5pbmhjb3VudDsK IAkJYXR0LT5hdHRpZGVudGl0eSA9IGVudHJ5LT5pZGVudGl0eTsKQEAgLTEzNTEsMjQgKzEz NTAsNiBAQCBCdWlsZERlc2NGb3JSZWxhdGlvbihjb25zdCBMaXN0ICpjb2x1bW5zKQogCQkJ YXR0LT5hdHRzdG9yYWdlID0gR2V0QXR0cmlidXRlU3RvcmFnZShhdHQtPmF0dHR5cGlkLCBl bnRyeS0+c3RvcmFnZV9uYW1lKTsKIAl9CiAKLQlpZiAoaGFzX25vdF9udWxsKQotCXsKLQkJ VHVwbGVDb25zdHIgKmNvbnN0ciA9IChUdXBsZUNvbnN0ciAqKSBwYWxsb2MwKHNpemVvZihU dXBsZUNvbnN0cikpOwotCi0JCWNvbnN0ci0+aGFzX25vdF9udWxsID0gdHJ1ZTsKLQkJY29u c3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCA9IGZhbHNlOwotCQljb25zdHItPmRlZnZhbCA9 IE5VTEw7Ci0JCWNvbnN0ci0+bWlzc2luZyA9IE5VTEw7Ci0JCWNvbnN0ci0+bnVtX2RlZnZh bCA9IDA7Ci0JCWNvbnN0ci0+Y2hlY2sgPSBOVUxMOwotCQljb25zdHItPm51bV9jaGVjayA9 IDA7Ci0JCWRlc2MtPmNvbnN0ciA9IGNvbnN0cjsKLQl9Ci0JZWxzZQotCXsKLQkJZGVzYy0+ Y29uc3RyID0gTlVMTDsKLQl9Ci0KIAlyZXR1cm4gZGVzYzsKIH0KIAotLSAKMi40NC4wCgo= --------------F047WaubqlPplDDt3NrCHCXm Content-Type: text/plain; charset=UTF-8; name="v1-0005-Virtual-generated-columns.patch" Content-Disposition: attachment; filename="v1-0005-Virtual-generated-columns.patch" Content-Transfer-Encoding: base64 RnJvbSA2ODdjYjk3MDk0YmEwMzhjYzRkNTlmMWE2ZmIwNDQ5MmVmYWY2YTQ2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAyMiBNYXkgMjAyNCAxMDo0NDo1MiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgNS81XSBWaXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCgpUaGlzIGFkZHMg YSBuZXcgdmFyaWFudCBvZiBnZW5lcmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBjb21wdXRlZCBv biByZWFkCihsaWtlIGEgdmlldywgdW5saWtlIHRoZSBleGlzdGluZyBzdG9yZWQgZ2VuZXJh dGVkIGNvbHVtbnMsIHdoaWNoIGFyZQpjb21wdXRlZCBvbiB3cml0ZSwgbGlrZSBhIG1hdGVy aWFsaXplZCB2aWV3KS4KClNvbWUgZnVuY3Rpb25hbGl0eSBpcyBjdXJyZW50bHkgbm90IHN1 cHBvcnRlZCAoYnV0IGNvdWxkIHBvc3NpYmx5IGJlCmFkZGVkIGFzIGluY3JlbWVudGFsIGZl YXR1cmVzLCBzb21lIGVhc2llciB0aGFuIG90aGVycyk6CgotIGluZGV4IG9uIHZpcnR1YWwg Y29sdW1uCi0gZXhwcmVzc2lvbiBpbmRleCB1c2luZyBhIHZpcnR1YWwgY29sdW1uCi0gaGVu Y2UgYWxzbyBubyB1bmlxdWUgY29uc3RyYWludHMgb24gdmlydHVhbCBjb2x1bW5zCi0gbm90 LW51bGwgY29uc3RyYWludHMgb24gdmlydHVhbCBjb2x1bW5zCi0gKGNoZWNrIGNvbnN0cmFp bnRzIGFyZSBzdXBwb3J0ZWQpCi0gZm9yZWlnbiBrZXkgY29uc3RyYWludHMgb24gdmlydHVh bCBjb2x1bW5zCi0gZXh0ZW5kZWQgc3RhdGlzdGljcyBvbiB2aXJ0dWFsIGNvbHVtbnMKLSBB TFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OCi0gQUxURVIgVEFCTEUgLyBEUk9QIEVYUFJF U1NJT04KLSB2aXJ0dWFsIGNvbHVtbnMgYXMgdHJpZ2dlciBjb2x1bW5zCi0gdmlydHVhbCBj b2x1bW4gY2Fubm90IGhhdmUgZG9tYWluIHR5cGUKClRPRE86Ci0gYW5hbHlzaXMgb2YgYWNj ZXNzIGNvbnRyb2wKLSBjaGVjayBGRFcvZm9yZWlnbiB0YWJsZSBiZWhhdmlvcgotLS0KIGNv bnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvcGFnZS5vdXQgICAgICAgICB8ICAzNSArCiBj b250cmliL3BhZ2VpbnNwZWN0L3NxbC9wYWdlLnNxbCAgICAgICAgICAgICAgfCAgMTcgKwog Li4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0ICAgIHwgIDgxICst CiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCAgICAgfCAgIDkg Ky0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDI1ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwgICAgICAgICAgICAg fCAgMTQgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbCAg ICB8ICAxMSArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAg ICAgIHwgIDIyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90cmlnZ2VyLnNnbWwgICAg ICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwgICAgICAgICAgICAg ICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyAg ICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgICAg ICAgICAgICAgIHwgIDI5ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYyAg ICAgICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMg ICAgICAgICAgICAgIHwgMTA0ICsrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5j ICAgICAgICAgICAgICAgIHwgIDQ4ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhw ckludGVycC5jICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYyAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6 ZS5jICAgICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSAgICAgICAgICAgICAgICAgICAgIHwgIDE1ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfY2xhdXNlLmMgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgNDAgKy0KIHNyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8ICAgMyArLQogc3JjL2JhY2tlbmQvcmV3 cml0ZS9yZXdyaXRlSGFuZGxlci5jICAgICAgICAgIHwgMTY0ICsrKy0KIHNyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL3BhcnRjYWNoZS5jICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9p bmNsdWRlL2FjY2Vzcy90dXBkZXNjLmggICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAzICsKIHNy Yy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oICAgICAgICAgIHwgICAyICsK IHNyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX3RyaWdnZXIub3V0ICAgICB8ICAgNyAr LQogc3JjL3BsL3BscGVybC9wbHBlcmwuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAz ICsKIHNyYy9wbC9wbHBlcmwvc3FsL3BscGVybF90cmlnZ2VyLnNxbCAgICAgICAgICB8ICAg MyArLQogc3JjL3BsL3BscHl0aG9uL2V4cGVjdGVkL3BscHl0aG9uX3RyaWdnZXIub3V0IHwg ICA3ICstCiBzcmMvcGwvcGxweXRob24vcGxweV90eXBlaW8uYyAgICAgICAgICAgICAgICAg fCAgIDMgKwogc3JjL3BsL3BscHl0aG9uL3NxbC9wbHB5dGhvbl90cmlnZ2VyLnNxbCAgICAg IHwgICAzICstCiBzcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3RyaWdnZXIub3V0ICAgICAg ICAgfCAgMTkgKy0KIHNyYy9wbC90Y2wvcGx0Y2wuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMyArCiBzcmMvcGwvdGNsL3NxbC9wbHRjbF90cmlnZ2VyLnNxbCAgICAgICAg ICAgICAgfCAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtl Lm91dCAgICB8ICAyMyArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3Jl ZC5vdXQgICAgIHwgICA2ICstCiAuLi5yYXRlZF9zdG9yZWQub3V0ID0+IGdlbmVyYXRlZF92 aXJ0dWFsLm91dH0gfCA3OTAgKysrKysrKystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uuc3FsICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbCAgICAgfCAgIDIgKy0KIC4uLnJhdGVkX3N0 b3JlZC5zcWwgPT4gZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsfSB8IDI4MCArKysrLS0tCiBzcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMTFfZ2VuZXJhdGVkLnBsICAgICAgfCAgMzggKy0KIDUz IGZpbGVzIGNoYW5nZWQsIDExODQgaW5zZXJ0aW9ucygrKSwgNzEwIGRlbGV0aW9ucygtKQog Y29weSBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3tnZW5lcmF0ZWRfc3RvcmVkLm91dCA9 PiBnZW5lcmF0ZWRfdmlydHVhbC5vdXR9ICg3MCUpCiBjb3B5IHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3tnZW5lcmF0ZWRfc3RvcmVkLnNxbCA9PiBnZW5lcmF0ZWRfdmlydHVhbC5zcWx9ICg3 NCUpCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9wYWdlLm91 dCBiL2NvbnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvcGFnZS5vdXQKaW5kZXggODBkZGI0 NWE2MGEuLjdlMGIwOWUyNzliIDEwMDY0NAotLS0gYS9jb250cmliL3BhZ2VpbnNwZWN0L2V4 cGVjdGVkL3BhZ2Uub3V0CisrKyBiL2NvbnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvcGFn ZS5vdXQKQEAgLTIwOCw2ICsyMDgsNDEgQEAgc2VsZWN0IHR1cGxlX2RhdGFfc3BsaXQoJ3Rl c3Q4Jzo6cmVnY2xhc3MsIHRfZGF0YSwgdF9pbmZvbWFzaywgdF9pbmZvbWFzazIsIHRfYmkK ICgxIHJvdykKIAogZHJvcCB0YWJsZSB0ZXN0ODsKKy0tIGNoZWNrIHN0b3JhZ2Ugb2YgZ2Vu ZXJhdGVkIGNvbHVtbnMKKy0tIHN0b3JlZAorY3JlYXRlIHRhYmxlIHRlc3Q5cyAoYSBpbnQg bm90IG51bGwsIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQpOwor aW5zZXJ0IGludG8gdGVzdDlzIHZhbHVlcyAoMTMxNTg0KTsKK3NlbGVjdCB0X2luZm9tYXNr LCB0X2JpdHMsIHRfZGF0YSBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rl c3Q5cycsIDApKTsKKyB0X2luZm9tYXNrIHwgdF9iaXRzIHwgICAgICAgdF9kYXRhICAgICAg IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg MjA0OCB8ICAgICAgICB8IFx4MDAwMjAyMDAwMDA0MDQwMAorKDEgcm93KQorCitzZWxlY3Qg dHVwbGVfZGF0YV9zcGxpdCgndGVzdDlzJzo6cmVnY2xhc3MsIHRfZGF0YSwgdF9pbmZvbWFz aywgdF9pbmZvbWFzazIsIHRfYml0cykKKyAgICBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRf cmF3X3BhZ2UoJ3Rlc3Q5cycsIDApKTsKKyAgICAgICB0dXBsZV9kYXRhX3NwbGl0ICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7IlxceDAwMDIwMjAwIiwi XFx4MDAwNDA0MDAifQorKDEgcm93KQorCitkcm9wIHRhYmxlIHRlc3Q5czsKKy0tIHZpcnR1 YWwKK2NyZWF0ZSB0YWJsZSB0ZXN0OXYgKGEgaW50IG5vdCBudWxsLCBiIGludCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChhICogMikgdmlydHVhbCk7CitpbnNlcnQgaW50byB0ZXN0OXYgdmFs dWVzICgxMzE1ODQpOworc2VsZWN0IHRfaW5mb21hc2ssIHRfYml0cywgdF9kYXRhIGZyb20g aGVhcF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdDl2JywgMCkpOworIHRfaW5mb21h c2sgfCAgdF9iaXRzICB8ICAgdF9kYXRhICAgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyAgICAgICAyMDQ5IHwgMTAwMDAwMDAgfCBceDAwMDIwMjAwCisoMSBy b3cpCisKK3NlbGVjdCB0dXBsZV9kYXRhX3NwbGl0KCd0ZXN0OXYnOjpyZWdjbGFzcywgdF9k YXRhLCB0X2luZm9tYXNrLCB0X2luZm9tYXNrMiwgdF9iaXRzKQorICAgIGZyb20gaGVhcF9w YWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdDl2JywgMCkpOworICAgdHVwbGVfZGF0YV9z cGxpdCAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiXFx4MDAwMjAyMDAiLE5VTEx9 CisoMSByb3cpCisKK2Ryb3AgdGFibGUgdGVzdDl2OwogLS0gRmFpbHVyZSB3aXRoIGluY29y cmVjdCBwYWdlIHNpemUKIC0tIFN1cHByZXNzIHRoZSBERVRBSUwgbWVzc2FnZSwgdG8gYWxs b3cgdGhlIHRlc3RzIHRvIHdvcmsgYWNyb3NzIHZhcmlvdXMKIC0tIHBhZ2Ugc2l6ZXMuCmRp ZmYgLS1naXQgYS9jb250cmliL3BhZ2VpbnNwZWN0L3NxbC9wYWdlLnNxbCBiL2NvbnRyaWIv cGFnZWluc3BlY3Qvc3FsL3BhZ2Uuc3FsCmluZGV4IDViZmY1NjhkM2I1Li4xODZkZGExZThk MCAxMDA2NDQKLS0tIGEvY29udHJpYi9wYWdlaW5zcGVjdC9zcWwvcGFnZS5zcWwKKysrIGIv Y29udHJpYi9wYWdlaW5zcGVjdC9zcWwvcGFnZS5zcWwKQEAgLTg0LDYgKzg0LDIzIEBAIENS RUFURSBURU1QIFRBQkxFIHRlc3QxIChhIGludCwgYiBpbnQpOwogICAgIGZyb20gaGVhcF9w YWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdDgnLCAwKSk7CiBkcm9wIHRhYmxlIHRlc3Q4 OwogCistLSBjaGVjayBzdG9yYWdlIG9mIGdlbmVyYXRlZCBjb2x1bW5zCistLSBzdG9yZWQK K2NyZWF0ZSB0YWJsZSB0ZXN0OXMgKGEgaW50IG5vdCBudWxsLCBiIGludCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChhICogMikgc3RvcmVkKTsKK2luc2VydCBpbnRvIHRlc3Q5cyB2YWx1ZXMg KDEzMTU4NCk7CitzZWxlY3QgdF9pbmZvbWFzaywgdF9iaXRzLCB0X2RhdGEgZnJvbSBoZWFw X3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OXMnLCAwKSk7CitzZWxlY3QgdHVwbGVf ZGF0YV9zcGxpdCgndGVzdDlzJzo6cmVnY2xhc3MsIHRfZGF0YSwgdF9pbmZvbWFzaywgdF9p bmZvbWFzazIsIHRfYml0cykKKyAgICBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3Bh Z2UoJ3Rlc3Q5cycsIDApKTsKK2Ryb3AgdGFibGUgdGVzdDlzOworCistLSB2aXJ0dWFsCitj cmVhdGUgdGFibGUgdGVzdDl2IChhIGludCBub3QgbnVsbCwgYiBpbnQgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoYSAqIDIpIHZpcnR1YWwpOworaW5zZXJ0IGludG8gdGVzdDl2IHZhbHVlcyAo MTMxNTg0KTsKK3NlbGVjdCB0X2luZm9tYXNrLCB0X2JpdHMsIHRfZGF0YSBmcm9tIGhlYXBf cGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q5dicsIDApKTsKK3NlbGVjdCB0dXBsZV9k YXRhX3NwbGl0KCd0ZXN0OXYnOjpyZWdjbGFzcywgdF9kYXRhLCB0X2luZm9tYXNrLCB0X2lu Zm9tYXNrMiwgdF9iaXRzKQorICAgIGZyb20gaGVhcF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFn ZSgndGVzdDl2JywgMCkpOworZHJvcCB0YWJsZSB0ZXN0OXY7CisKIC0tIEZhaWx1cmUgd2l0 aCBpbmNvcnJlY3QgcGFnZSBzaXplCiAtLSBTdXBwcmVzcyB0aGUgREVUQUlMIG1lc3NhZ2Us IHRvIGFsbG93IHRoZSB0ZXN0cyB0byB3b3JrIGFjcm9zcyB2YXJpb3VzCiAtLSBwYWdlIHNp emVzLgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdy ZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zk dy5vdXQKaW5kZXggMDc4YjhhOTY2ZjguLjdhM2U3MWMwN2I0IDEwMDY0NAotLS0gYS9jb250 cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2NvbnRy aWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTcyMTUsNjUg KzcyMTUsNjggQEAgc2VsZWN0ICogZnJvbSByZW0xOwogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogY3Jl YXRlIHRhYmxlIGdsb2MxICgKICAgYSBpbnQsCi0gIGIgaW50IGdlbmVyYXRlZCBhbHdheXMg YXMgKGEgKiAyKSBzdG9yZWQpOworICBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICog Mikgc3RvcmVkLAorICBjIGludAorKTsKIGFsdGVyIHRhYmxlIGdsb2MxIHNldCAoYXV0b3Zh Y3V1bV9lbmFibGVkID0gJ2ZhbHNlJyk7CiBjcmVhdGUgZm9yZWlnbiB0YWJsZSBncmVtMSAo CiAgIGEgaW50LAotICBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVk KQotICBzZXJ2ZXIgbG9vcGJhY2sgb3B0aW9ucyh0YWJsZV9uYW1lICdnbG9jMScpOworICBi IGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkLAorICBjIGludCBnZW5l cmF0ZWQgYWx3YXlzIGFzIChhICogMykgdmlydHVhbAorKSBzZXJ2ZXIgbG9vcGJhY2sgb3B0 aW9ucyh0YWJsZV9uYW1lICdnbG9jMScpOwogZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2Zm KQogaW5zZXJ0IGludG8gZ3JlbTEgKGEpIHZhbHVlcyAoMSksICgyKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICBJbnNlcnQgb24gcHVibGljLmdyZW0xCi0gICBSZW1vdGUg U1FMOiBJTlNFUlQgSU5UTyBwdWJsaWMuZ2xvYzEoYSwgYikgVkFMVUVTICgkMSwgREVGQVVM VCkKKyAgIFJlbW90ZSBTUUw6IElOU0VSVCBJTlRPIHB1YmxpYy5nbG9jMShhLCBiLCBjKSBW QUxVRVMgKCQxLCBERUZBVUxULCBERUZBVUxUKQogICAgQmF0Y2ggU2l6ZTogMQogICAgLT4g IFZhbHVlcyBTY2FuIG9uICIqVkFMVUVTKiIKLSAgICAgICAgIE91dHB1dDogIipWQUxVRVMq Ii5jb2x1bW4xLCBOVUxMOjppbnRlZ2VyCisgICAgICAgICBPdXRwdXQ6ICIqVkFMVUVTKiIu Y29sdW1uMSwgTlVMTDo6aW50ZWdlciwgTlVMTDo6aW50ZWdlcgogKDUgcm93cykKIAogaW5z ZXJ0IGludG8gZ3JlbTEgKGEpIHZhbHVlcyAoMSksICgyKTsKIGV4cGxhaW4gKHZlcmJvc2Us IGNvc3RzIG9mZikKIHVwZGF0ZSBncmVtMSBzZXQgYSA9IDIyIHdoZXJlIGEgPSAyOwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBVcGRhdGUgb24gcHVibGljLmdyZW0xCi0gICBS ZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmdsb2MxIFNFVCBhID0gJDIsIGIgPSBERUZBVUxU IFdIRVJFIGN0aWQgPSAkMQorICAgUmVtb3RlIFNRTDogVVBEQVRFIHB1YmxpYy5nbG9jMSBT RVQgYSA9ICQyLCBiID0gREVGQVVMVCwgYyA9IERFRkFVTFQgV0hFUkUgY3RpZCA9ICQxCiAg ICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5ncmVtMQogICAgICAgICAgT3V0cHV0OiAy MiwgY3RpZCwgZ3JlbTEuKgotICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGN0 aWQgRlJPTSBwdWJsaWMuZ2xvYzEgV0hFUkUgKChhID0gMikpIEZPUiBVUERBVEUKKyAgICAg ICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjLCBjdGlkIEZST00gcHVibGljLmdsb2Mx IFdIRVJFICgoYSA9IDIpKSBGT1IgVVBEQVRFCiAoNSByb3dzKQogCiB1cGRhdGUgZ3JlbTEg c2V0IGEgPSAyMiB3aGVyZSBhID0gMjsKIHNlbGVjdCAqIGZyb20gZ2xvYzE7Ci0gYSAgfCBi ICAKLS0tLS0rLS0tLQotICAxIHwgIDIKLSAyMiB8IDQ0CisgYSAgfCBiICB8IGMgCistLS0t Ky0tLS0rLS0tCisgIDEgfCAgMiB8ICAKKyAyMiB8IDQ0IHwgIAogKDIgcm93cykKIAogc2Vs ZWN0ICogZnJvbSBncmVtMTsKLSBhICB8IGIgIAotLS0tLSstLS0tCi0gIDEgfCAgMgotIDIy IHwgNDQKKyBhICB8IGIgIHwgYyAgCistLS0tKy0tLS0rLS0tLQorICAxIHwgIDIgfCAgMwor IDIyIHwgNDQgfCA2NgogKDIgcm93cykKIAogZGVsZXRlIGZyb20gZ3JlbTE7CiAtLSB0ZXN0 IGNvcHkgZnJvbQogY29weSBncmVtMSBmcm9tIHN0ZGluOwogc2VsZWN0ICogZnJvbSBnbG9j MTsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgMgotIDIgfCA0CisgYSB8IGIgfCBjIAorLS0t Ky0tLSstLS0KKyAxIHwgMiB8ICAKKyAyIHwgNCB8ICAKICgyIHJvd3MpCiAKIHNlbGVjdCAq IGZyb20gZ3JlbTE7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSAyIHwgNAorIGEgfCBi IHwgYyAKKy0tLSstLS0rLS0tCisgMSB8IDIgfCAzCisgMiB8IDQgfCA2CiAoMiByb3dzKQog CiBkZWxldGUgZnJvbSBncmVtMTsKQEAgLTcyODEsMjggKzcyODQsMjggQEAgZGVsZXRlIGZy b20gZ3JlbTE7CiBhbHRlciBzZXJ2ZXIgbG9vcGJhY2sgb3B0aW9ucyAoYWRkIGJhdGNoX3Np emUgJzEwJyk7CiBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCiBpbnNlcnQgaW50byBn cmVtMSAoYSkgdmFsdWVzICgxKSwgKDIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIEluc2VydCBvbiBwdWJsaWMuZ3JlbTEKLSAgIFJlbW90ZSBTUUw6IElOU0VSVCBJTlRP IHB1YmxpYy5nbG9jMShhLCBiKSBWQUxVRVMgKCQxLCBERUZBVUxUKQorICAgUmVtb3RlIFNR TDogSU5TRVJUIElOVE8gcHVibGljLmdsb2MxKGEsIGIsIGMpIFZBTFVFUyAoJDEsIERFRkFV TFQsIERFRkFVTFQpCiAgICBCYXRjaCBTaXplOiAxMAogICAgLT4gIFZhbHVlcyBTY2FuIG9u ICIqVkFMVUVTKiIKLSAgICAgICAgIE91dHB1dDogIipWQUxVRVMqIi5jb2x1bW4xLCBOVUxM OjppbnRlZ2VyCisgICAgICAgICBPdXRwdXQ6ICIqVkFMVUVTKiIuY29sdW1uMSwgTlVMTDo6 aW50ZWdlciwgTlVMTDo6aW50ZWdlcgogKDUgcm93cykKIAogaW5zZXJ0IGludG8gZ3JlbTEg KGEpIHZhbHVlcyAoMSksICgyKTsKIHNlbGVjdCAqIGZyb20gZ2xvYzE7Ci0gYSB8IGIgCi0t LS0rLS0tCi0gMSB8IDIKLSAyIHwgNAorIGEgfCBiIHwgYyAKKy0tLSstLS0rLS0tCisgMSB8 IDIgfCAgCisgMiB8IDQgfCAgCiAoMiByb3dzKQogCiBzZWxlY3QgKiBmcm9tIGdyZW0xOwot IGEgfCBiIAotLS0tKy0tLQotIDEgfCAyCi0gMiB8IDQKKyBhIHwgYiB8IGMgCistLS0rLS0t Ky0tLQorIDEgfCAyIHwgMworIDIgfCA0IHwgNgogKDIgcm93cykKIAogZGVsZXRlIGZyb20g Z3JlbTE7CmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNf ZmR3LnNxbCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCmlu ZGV4IDA5YmEyMzRlNDNkLi4xZmMyOGIzZTI2NCAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0 Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19m ZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKQEAgLTE4MDYsMTIgKzE4MDYsMTUgQEAgQ1JFQVRF IFZJRVcgcndfdmlldyBBUyBTRUxFQ1QgKiBGUk9NIHBhcmVudF90YmwgV0hFUkUgYSA8IDUg V0lUSCBDSEVDSyBPUFRJT047CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBjcmVhdGUgdGFibGUgZ2xv YzEgKAogICBhIGludCwKLSAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0 b3JlZCk7CisgIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQsCisg IGMgaW50CispOwogYWx0ZXIgdGFibGUgZ2xvYzEgc2V0IChhdXRvdmFjdXVtX2VuYWJsZWQg PSAnZmFsc2UnKTsKIGNyZWF0ZSBmb3JlaWduIHRhYmxlIGdyZW0xICgKICAgYSBpbnQsCi0g IGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQpCi0gIHNlcnZlciBs b29wYmFjayBvcHRpb25zKHRhYmxlX25hbWUgJ2dsb2MxJyk7CisgIGIgaW50IGdlbmVyYXRl ZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQsCisgIGMgaW50IGdlbmVyYXRlZCBhbHdheXMg YXMgKGEgKiAzKSB2aXJ0dWFsCispIHNlcnZlciBsb29wYmFjayBvcHRpb25zKHRhYmxlX25h bWUgJ2dsb2MxJyk7CiBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCiBpbnNlcnQgaW50 byBncmVtMSAoYSkgdmFsdWVzICgxKSwgKDIpOwogaW5zZXJ0IGludG8gZ3JlbTEgKGEpIHZh bHVlcyAoMSksICgyKTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s IGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggMTVmNjI1NWQ4NjUuLjgzOWIx ZGRiNjgyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMTMxNyw4ICsxMzE3LDggQEAgPHRpdGxl PjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+ CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KICAgICAgICBJZiBhIHplcm8gYnl0ZSAo PGxpdGVyYWw+Jyc8L2xpdGVyYWw+KSwgdGhlbiBub3QgYSBnZW5lcmF0ZWQgY29sdW1uLgot ICAgICAgIE90aGVyd2lzZSwgPGxpdGVyYWw+czwvbGl0ZXJhbD4gPSBzdG9yZWQuICAoT3Ro ZXIgdmFsdWVzIG1pZ2h0IGJlIGFkZGVkCi0gICAgICAgaW4gdGhlIGZ1dHVyZS4pCisgICAg ICAgT3RoZXJ3aXNlLCA8bGl0ZXJhbD5zPC9saXRlcmFsPiA9IHN0b3JlZCwgPGxpdGVyYWw+ djwvbGl0ZXJhbD4gPQorICAgICAgIHZpcnR1YWwuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4K ICAgICAgPC9yb3c+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA2YWFiNzllOTAxYy4uZDgwMGY1MzgxNDYgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKQEAgLTM2MSw3ICszNjEsNiBAQCA8dGl0bGU+R2VuZXJhdGVkIENvbHVtbnM8L3Rp dGxlPgogICAgc3RvcmFnZSBhbmQgaXMgY29tcHV0ZWQgd2hlbiBpdCBpcyByZWFkLiAgVGh1 cywgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4KICAgIGlzIHNpbWlsYXIgdG8gYSB2aWV3 IGFuZCBhIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1uIGlzIHNpbWlsYXIgdG8gYQogICAgbWF0 ZXJpYWxpemVkIHZpZXcgKGV4Y2VwdCB0aGF0IGl0IGlzIGFsd2F5cyB1cGRhdGVkIGF1dG9t YXRpY2FsbHkpLgotICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBj dXJyZW50bHkgaW1wbGVtZW50cyBvbmx5IHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucy4KICAg PC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMzcxLDEyICszNzAsMTIgQEAgPHRpdGxlPkdlbmVy YXRlZCBDb2x1bW5zPC90aXRsZT4KIENSRUFURSBUQUJMRSBwZW9wbGUgKAogICAgIC4uLiwK ICAgICBoZWlnaHRfY20gbnVtZXJpYywKLSAgICBoZWlnaHRfaW4gbnVtZXJpYyA8ZW1waGFz aXM+R0VORVJBVEVEIEFMV0FZUyBBUyAoaGVpZ2h0X2NtIC8gMi41NCkgU1RPUkVEPC9lbXBo YXNpcz4KKyAgICBoZWlnaHRfaW4gbnVtZXJpYyA8ZW1waGFzaXM+R0VORVJBVEVEIEFMV0FZ UyBBUyAoaGVpZ2h0X2NtIC8gMi41NCk8L2VtcGhhc2lzPgogKTsKIDwvcHJvZ3JhbWxpc3Rp bmc+Ci0gICBUaGUga2V5d29yZCA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IG11c3QgYmUg c3BlY2lmaWVkIHRvIGNob29zZSB0aGUKLSAgIHN0b3JlZCBraW5kIG9mIGdlbmVyYXRlZCBj b2x1bW4uICBTZWUgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXRhYmxlIi8+IGZvcgotICAg bW9yZSBkZXRhaWxzLgorICAgQSBnZW5lcmF0ZWQgY29sdW1uIGlzIGJ5IGRlZmF1bHQgb2Yg dGhlIHZpcnR1YWwga2luZC4gIFVzZSB0aGUga2V5d29yZHMKKyAgIDxsaXRlcmFsPlZJUlRV QUw8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gdG8gbWFrZSB0aGUg Y2hvaWNlCisgICBleHBsaWNpdC4gIFNlZSA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldGFi bGUiLz4gZm9yIG1vcmUgZGV0YWlscy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtNDQy LDEyICs0NDEsMTggQEAgPHRpdGxlPkdlbmVyYXRlZCBDb2x1bW5zPC90aXRsZT4KICAgICAg IDxsaXN0aXRlbT4KICAgICAgICA8cGFyYT4KICAgICAgICAgSWYgYSBwYXJlbnQgY29sdW1u IGlzIGEgZ2VuZXJhdGVkIGNvbHVtbiwgaXRzIGNoaWxkIGNvbHVtbiBtdXN0IGFsc28KLSAg ICAgICAgYmUgYSBnZW5lcmF0ZWQgY29sdW1uOyBob3dldmVyLCB0aGUgY2hpbGQgY29sdW1u IGNhbiBoYXZlIGEKLSAgICAgICAgZGlmZmVyZW50IGdlbmVyYXRpb24gZXhwcmVzc2lvbi4g IFRoZSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gdGhhdCBpcworICAgICAgICBiZSBhIGdlbmVy YXRlZCBjb2x1bW4gb2YgdGhlIHNhbWUga2luZCAoc3RvcmVkIG9yIHZpcnR1YWwpOyBob3dl dmVyLAorICAgICAgICB0aGUgY2hpbGQgY29sdW1uIGNhbiBoYXZlIGEgZGlmZmVyZW50IGdl bmVyYXRpb24gZXhwcmVzc2lvbi4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4K KyAgICAgICAgRm9yIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucywgdGhlIGdlbmVyYXRpb24g ZXhwcmVzc2lvbiB0aGF0IGlzCiAgICAgICAgIGFjdHVhbGx5IGFwcGxpZWQgZHVyaW5nIGlu c2VydCBvciB1cGRhdGUgb2YgYSByb3cgaXMgdGhlIG9uZQotICAgICAgICBhc3NvY2lhdGVk IHdpdGggdGhlIHRhYmxlIHRoYXQgdGhlIHJvdyBpcyBwaHlzaWNhbGx5IGluLgotICAgICAg ICAoVGhpcyBpcyB1bmxpa2UgdGhlIGJlaGF2aW9yIGZvciBjb2x1bW4gZGVmYXVsdHM6IGZv ciB0aG9zZSwgdGhlCi0gICAgICAgIGRlZmF1bHQgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRo ZSB0YWJsZSBuYW1lZCBpbiB0aGUgcXVlcnkgYXBwbGllcy4pCisgICAgICAgIGFzc29jaWF0 ZWQgd2l0aCB0aGUgdGFibGUgdGhhdCB0aGUgcm93IGlzIHBoeXNpY2FsbHkgaW4uICAoVGhp cyBpcworICAgICAgICB1bmxpa2UgdGhlIGJlaGF2aW9yIGZvciBjb2x1bW4gZGVmYXVsdHM6 IGZvciB0aG9zZSwgdGhlIGRlZmF1bHQgdmFsdWUKKyAgICAgICAgYXNzb2NpYXRlZCB3aXRo IHRoZSB0YWJsZSBuYW1lZCBpbiB0aGUgcXVlcnkgYXBwbGllcy4pICBGb3IgdmlydHVhbAor ICAgICAgICBnZW5lcmF0ZWQgY29sdW1ucywgdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBv ZiB0aGUgdGFibGUgbmFtZWQgaW4gdGhlCisgICAgICAgIHF1ZXJ5IGFwcGxpZXMgd2hlbiBh IHRhYmxlIGlzIHJlYWQuCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAg ICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFi bGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbAppbmRleCA1ZDM1 MmFiZjk5MS4uZjg5Zjg1ZmIxOTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwK QEAgLTI3MSw2ICsyNzEsMTEgQEAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KICAgICAg IGluIHRoZSBjb2x1bW4gaXMgcmV3cml0dGVuIGFuZCBhbGwgdGhlIGZ1dHVyZSBjaGFuZ2Vz IHdpbGwgYXBwbHkgdGhlIG5ldwogICAgICAgZ2VuZXJhdGlvbiBleHByZXNzaW9uLgogICAg ICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gaXMgY3VycmVudGx5 IG9ubHkgc3VwcG9ydGVkIGZvciBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMgKG5vdAorICAg ICAgdmlydHVhbCBvbmVzKS4KKyAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8 L3Zhcmxpc3RlbnRyeT4KIApAQCAtMjgzLDEwICsyODgsMTUgQEAgPHRpdGxlPkRlc2NyaXB0 aW9uPC90aXRsZT4KICAgICAgIGxvbmdlciBhcHBseSB0aGUgZ2VuZXJhdGlvbiBleHByZXNz aW9uLgogICAgICA8L3BhcmE+CiAKKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gaXMg Y3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGZvciBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMg KG5vdAorICAgICAgdmlydHVhbCBvbmVzKS4KKyAgICAgPC9wYXJhPgorCiAgICAgIDxwYXJh PgogICAgICAgSWYgPGxpdGVyYWw+RFJPUCBFWFBSRVNTSU9OIElGIEVYSVNUUzwvbGl0ZXJh bD4gaXMgc3BlY2lmaWVkIGFuZCB0aGUKLSAgICAgIGNvbHVtbiBpcyBub3QgYSBzdG9yZWQg Z2VuZXJhdGVkIGNvbHVtbiwgbm8gZXJyb3IgaXMgdGhyb3duLiAgSW4gdGhpcwotICAgICAg Y2FzZSBhIG5vdGljZSBpcyBpc3N1ZWQgaW5zdGVhZC4KKyAgICAgIGNvbHVtbiBpcyBub3Qg YSBnZW5lcmF0ZWQgY29sdW1uLCBubyBlcnJvciBpcyB0aHJvd24uICBJbiB0aGlzIGNhc2Ug YQorICAgICAgbm90aWNlIGlzIGlzc3VlZCBpbnN0ZWFkLgogICAgICA8L3BhcmE+CiAgICAg PC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sCmluZGV4IGRjNGI5MDc1OTkwLi4yMWI1ZDZhMTRk MCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbApA QCAtNDcsNyArNDcsNyBAQAogICBOVUxMIHwKICAgQ0hFQ0sgKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgWyBOTyBJTkhFUklU IF0gfAogICBERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxl PiB8Ci0gIEdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9l eHByPC9yZXBsYWNlYWJsZT4gKSBTVE9SRUQgfQorICBHRU5FUkFURUQgQUxXQVlTIEFTICgg PHJlcGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVwbGFjZWFibGU+ICkgWyBTVE9SRUQg fCBWSVJUVUFMIF0gfQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCkBA IC0yNzUsNyArMjc1LDcgQEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAgPC92YXJs aXN0ZW50cnk+CiAKICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgPHRlcm0+PGxpdGVyYWw+R0VO RVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxh Y2VhYmxlPiApIFNUT1JFRDwvbGl0ZXJhbD48aW5kZXh0ZXJtPjxwcmltYXJ5PmdlbmVyYXRl ZCBjb2x1bW48L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorICAgIDx0ZXJtPjxsaXRl cmFsPkdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHBy PC9yZXBsYWNlYWJsZT4gKSBbIFNUT1JFRCB8IFZJUlRVQUwgXTwvbGl0ZXJhbD48aW5kZXh0 ZXJtPjxwcmltYXJ5PmdlbmVyYXRlZCBjb2x1bW48L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90 ZXJtPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBUaGlzIGNsYXVzZSBj cmVhdGVzIHRoZSBjb2x1bW4gYXMgYSA8Zmlyc3R0ZXJtPmdlbmVyYXRlZApAQCAtMjg0LDEw ICsyODQsMTMgQEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAgICA8L3BhcmE+CiAK ICAgICAgPHBhcmE+Ci0gICAgICBUaGUga2V5d29yZCA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVy YWw+IGlzIHJlcXVpcmVkIHRvIHNpZ25pZnkgdGhhdCB0aGUKKyAgICAgIFdoZW4gPGxpdGVy YWw+VklSVFVBTDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUgY29sdW1uIHdpbGwgYmUK KyAgICAgIGNvbXB1dGVkIHdoZW4gaXQgaXMgcmVhZC4gIChUaGUgZm9yZWlnbi1kYXRhIHdy YXBwZXIgd2lsbCBzZWUgaXQgYXMgYQorICAgICAgbnVsbCB2YWx1ZSBpbiBuZXcgcm93cyBh bmQgbWF5IGNob29zZSB0byBzdG9yZSBpdCBhcyBhIG51bGwgdmFsdWUgb3IKKyAgICAgIGln bm9yZSBpdCBhbHRvZ2V0aGVyLikgIFdoZW4gPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBp cyBzcGVjaWZpZWQsIHRoZQogICAgICAgY29sdW1uIHdpbGwgYmUgY29tcHV0ZWQgb24gd3Jp dGUuICAoVGhlIGNvbXB1dGVkIHZhbHVlIHdpbGwgYmUgcHJlc2VudGVkCiAgICAgICB0byB0 aGUgZm9yZWlnbi1kYXRhIHdyYXBwZXIgZm9yIHN0b3JhZ2UgYW5kIG11c3QgYmUgcmV0dXJu ZWQgb24KLSAgICAgIHJlYWRpbmcuKQorICAgICAgcmVhZGluZy4pICA8bGl0ZXJhbD5WSVJU VUFMPC9saXRlcmFsPiBpcyB0aGUgZGVmYXVsdC4KICAgICAgPC9wYXJhPgogCiAgICAgIDxw YXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggZjE5MzA2ZTc3NjAu LjZiY2EzMmZmMzgzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJs ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKQEAgLTY1 LDcgKzY1LDcgQEAKICAgTlVMTCB8CiAgIENIRUNLICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIFsgTk8gSU5IRVJJVCBdIHwK ICAgREVGQVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gfAot ICBHRU5FUkFURUQgQUxXQVlTIEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwv cmVwbGFjZWFibGU+ICkgU1RPUkVEIHwKKyAgR0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBs YWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFsgU1RPUkVEIHwgVklS VFVBTCBdIHwKICAgR0VORVJBVEVEIHsgQUxXQVlTIHwgQlkgREVGQVVMVCB9IEFTIElERU5U SVRZIFsgKCA8cmVwbGFjZWFibGU+c2VxdWVuY2Vfb3B0aW9uczwvcmVwbGFjZWFibGU+ICkg XSB8CiAgIFVOSVFVRSBbIE5VTExTIFsgTk9UIF0gRElTVElOQ1QgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFibGU+IHwKICAg UFJJTUFSWSBLRVkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFt ZXRlcnM8L3JlcGxhY2VhYmxlPiB8CkBAIC03MjAsOCArNzIwLDkgQEAgPHRpdGxlPlBhcmFt ZXRlcnM8L3RpdGxlPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5JTkNMVURJTkcgR0VORVJB VEVEPC9saXRlcmFsPjwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBh cmE+Ci0gICAgICAgICAgQW55IGdlbmVyYXRpb24gZXhwcmVzc2lvbnMgb2YgY29waWVkIGNv bHVtbiBkZWZpbml0aW9ucyB3aWxsIGJlCi0gICAgICAgICAgY29waWVkLiAgQnkgZGVmYXVs dCwgbmV3IGNvbHVtbnMgd2lsbCBiZSByZWd1bGFyIGJhc2UgY29sdW1ucy4KKyAgICAgICAg ICBBbnkgZ2VuZXJhdGlvbiBleHByZXNzaW9ucyBhcyB3ZWxsIGFzIHRoZSBzdG9yZWQvdmly dHVhbCBjaG9pY2Ugb2YKKyAgICAgICAgICBjb3BpZWQgY29sdW1uIGRlZmluaXRpb25zIHdp bGwgYmUgY29waWVkLiAgQnkgZGVmYXVsdCwgbmV3IGNvbHVtbnMKKyAgICAgICAgICB3aWxs IGJlIHJlZ3VsYXIgYmFzZSBjb2x1bW5zLgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8 L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtODk3LDcgKzg5OCw3IEBA IDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgIDwvdmFybGlzdGVudHJ5PgogCiAgICA8 dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldGFibGUtcGFybXMtZ2VuZXJhdGVkLXN0b3Jl ZCI+Ci0gICAgPHRlcm0+PGxpdGVyYWw+R0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNl YWJsZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFNUT1JFRDwvbGl0ZXJhbD48 aW5kZXh0ZXJtPjxwcmltYXJ5PmdlbmVyYXRlZCBjb2x1bW48L3ByaW1hcnk+PC9pbmRleHRl cm0+PC90ZXJtPgorICAgIDx0ZXJtPjxsaXRlcmFsPkdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8 cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBbIFNUT1JFRCB8 IFZJUlRVQUwgXTwvbGl0ZXJhbD48aW5kZXh0ZXJtPjxwcmltYXJ5PmdlbmVyYXRlZCBjb2x1 bW48L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KICAgICAg PHBhcmE+CiAgICAgICBUaGlzIGNsYXVzZSBjcmVhdGVzIHRoZSBjb2x1bW4gYXMgYSA8Zmly c3R0ZXJtPmdlbmVyYXRlZApAQCAtOTA2LDggKzkwNywxMSBAQCA8dGl0bGU+UGFyYW1ldGVy czwvdGl0bGU+CiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KLSAgICAgIFRoZSBrZXl3 b3JkIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gaXMgcmVxdWlyZWQgdG8gc2lnbmlmeSB0 aGF0IHRoZQotICAgICAgY29sdW1uIHdpbGwgYmUgY29tcHV0ZWQgb24gd3JpdGUgYW5kIHdp bGwgYmUgc3RvcmVkIG9uIGRpc2suCisgICAgICBXaGVuIDxsaXRlcmFsPlZJUlRVQUw8L2xp dGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlIGNvbHVtbiB3aWxsIGJlCisgICAgICBjb21wdXRl ZCB3aGVuIGl0IGlzIHJlYWQsIGFuZCBpdCB3aWxsIG5vdCBvY2N1cHkgYW55IHN0b3JhZ2Uu ICBXaGVuCisgICAgICA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwg dGhlIGNvbHVtbiB3aWxsIGJlIGNvbXB1dGVkIG9uCisgICAgICB3cml0ZSBhbmQgd2lsbCBi ZSBzdG9yZWQgb24gZGlzay4gIDxsaXRlcmFsPlZJUlRVQUw8L2xpdGVyYWw+IGlzIHRoZQor ICAgICAgZGVmYXVsdC4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgpAQCAtMjM4MCw5 ICsyMzg0LDkgQEAgPHRpdGxlPk11bHRpcGxlIElkZW50aXR5IENvbHVtbnM8L3RpdGxlPgog ICAgPHRpdGxlPkdlbmVyYXRlZCBDb2x1bW5zPC90aXRsZT4KIAogICAgPHBhcmE+Ci0gICAg VGhlIG9wdGlvbiA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IGlzIG5vdCBzdGFuZGFyZCBi dXQgaXMgYWxzbyB1c2VkIGJ5Ci0gICAgb3RoZXIgU1FMIGltcGxlbWVudGF0aW9ucy4gIFRo ZSBTUUwgc3RhbmRhcmQgZG9lcyBub3Qgc3BlY2lmeSB0aGUgc3RvcmFnZQotICAgIG9mIGdl bmVyYXRlZCBjb2x1bW5zLgorICAgIFRoZSBvcHRpb25zIDxsaXRlcmFsPlNUT1JFRDwvbGl0 ZXJhbD4gYW5kIDxsaXRlcmFsPlZJUlRVQUw8L2xpdGVyYWw+IGFyZQorICAgIG5vdCBzdGFu ZGFyZCBidXQgYXJlIGFsc28gdXNlZCBieSBvdGhlciBTUUwgaW1wbGVtZW50YXRpb25zLiAg VGhlIFNRTAorICAgIHN0YW5kYXJkIGRvZXMgbm90IHNwZWNpZnkgdGhlIHN0b3JhZ2Ugb2Yg Z2VuZXJhdGVkIGNvbHVtbnMuCiAgICA8L3BhcmE+CiAgIDwvcmVmc2VjdDI+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RyaWdnZXIuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3RyaWdnZXIuc2dtbAppbmRleCA5ODJhYjZmM2VlNC4uNzUyZmU1 MDg2MGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RyaWdnZXIuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90cmlnZ2VyLnNnbWwKQEAgLTI3OSw3 ICsyNzksNyBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgICAgIDxwYXJhPgogICAg ICAgPGxpdGVyYWw+SU5TVEVBRCBPRiBVUERBVEU8L2xpdGVyYWw+IGV2ZW50cyBkbyBub3Qg YWxsb3cgYSBsaXN0IG9mIGNvbHVtbnMuCiAgICAgICBBIGNvbHVtbiBsaXN0IGNhbm5vdCBi ZSBzcGVjaWZpZWQgd2hlbiByZXF1ZXN0aW5nIHRyYW5zaXRpb24gcmVsYXRpb25zLAotICAg ICAgZWl0aGVyLgorICAgICAgZWl0aGVyLiAgVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBh cmUgbm90IHN1cHBvcnRlZCBpbiB0aGUgY29sdW1uIGxpc3QuCiAgICAgIDwvcGFyYT4KICAg ICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvdHJpZ2dlci5zZ21sIGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbAppbmRleCAz MTYyNjUzNmEyZS4uNTk1M2QyNGFlOGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC90cmln Z2VyLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbApAQCAtMjg5LDYgKzI4 OSwxMCBAQCA8dGl0bGU+T3ZlcnZpZXcgb2YgVHJpZ2dlciBCZWhhdmlvcjwvdGl0bGU+CiAg ICAgPGxpdGVyYWw+QkVGT1JFPC9saXRlcmFsPiB0cmlnZ2VyLiAgQ2hhbmdlcyB0byB0aGUg dmFsdWUgb2YgYSBnZW5lcmF0ZWQKICAgICBjb2x1bW4gaW4gYSA8bGl0ZXJhbD5CRUZPUkU8 L2xpdGVyYWw+IHRyaWdnZXIgYXJlIGlnbm9yZWQgYW5kIHdpbGwgYmUKICAgICBvdmVyd3Jp dHRlbi4KKyAgICBWaXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBuZXZlciBjb21wdXRl ZCB3aGVuIHRyaWdnZXJzIGZpcmUuICBJbiB0aGUgQworICAgIGxhbmd1YWdlIGludGVyZmFj ZSwgdGhlaXIgY29udGVudCBpcyB1bmRlZmluZWQgaW4gYSB0cmlnZ2VyIGZ1bmN0aW9uLgor ICAgIEhpZ2hlci1sZXZlbCBwcm9ncmFtbWluZyBsYW5ndWFnZXMgc2hvdWxkIHByZXZlbnQg YWNjZXNzIHRvIHZpcnR1YWwKKyAgICBnZW5lcmF0ZWQgY29sdW1ucyBpbiB0cmlnZ2Vycy4K ICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvY29tbW9uL3R1cGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVz Yy5jCmluZGV4IDQ3Mzc5ZmVmMjIwLi4xMzg0MGJhNTMzYyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2NvbW1vbi90dXBkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2NvbW1vbi90dXBkZXNjLmMKQEAgLTE5MCw2ICsxOTAsNyBAQCBDcmVhdGVUdXBsZURlc2ND b3B5Q29uc3RyKFR1cGxlRGVzYyB0dXBkZXNjKQogCiAJCWNweS0+aGFzX25vdF9udWxsID0g Y29uc3RyLT5oYXNfbm90X251bGw7CiAJCWNweS0+aGFzX2dlbmVyYXRlZF9zdG9yZWQgPSBj b25zdHItPmhhc19nZW5lcmF0ZWRfc3RvcmVkOworCQljcHktPmhhc19nZW5lcmF0ZWRfdmly dHVhbCA9IGNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsOwogCiAJCWlmICgoY3B5LT5u dW1fZGVmdmFsID0gY29uc3RyLT5udW1fZGVmdmFsKSA+IDApCiAJCXsKQEAgLTQ5NCw2ICs0 OTUsOCBAQCBlcXVhbFR1cGxlRGVzY3MoVHVwbGVEZXNjIHR1cGRlc2MxLCBUdXBsZURlc2Mg dHVwZGVzYzIpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCWlmIChjb25zdHIxLT5oYXNfZ2VuZXJh dGVkX3N0b3JlZCAhPSBjb25zdHIyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCkKIAkJCXJldHVy biBmYWxzZTsKKwkJaWYgKGNvbnN0cjEtPmhhc19nZW5lcmF0ZWRfdmlydHVhbCAhPSBjb25z dHIyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwpCisJCQlyZXR1cm4gZmFsc2U7CiAJCW4gPSBj b25zdHIxLT5udW1fZGVmdmFsOwogCQlpZiAobiAhPSAoaW50KSBjb25zdHIyLT5udW1fZGVm dmFsKQogCQkJcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvaW5kZXhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwppbmRl eCAzMDkzODllMjBkMi4uYzdjOTkxYWQ1N2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2luZGV4Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21k cy5jCkBAIC0xMDg1LDYgKzEwODUsOSBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkv KgogCSAqIFdlIGRpc2FsbG93IGluZGV4ZXMgb24gc3lzdGVtIGNvbHVtbnMuICBUaGV5IHdv dWxkIG5vdCBuZWNlc3NhcmlseSBnZXQKIAkgKiB1cGRhdGVkIGNvcnJlY3RseSwgYW5kIHRo ZXkgZG9uJ3Qgc2VlbSB1c2VmdWwgYW55d2F5LgorCSAqCisJICogQWxzbyBkaXNhbGxvdyB2 aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIGluZGV4ZXMgKHVzZSBleHByZXNzaW9uCisJ ICogaW5kZXggaW5zdGVhZCkuCiAJICovCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRleElu Zm8tPmlpX051bUluZGV4QXR0cnM7IGkrKykKIAl7CkBAIC0xMDk0LDE0ICsxMDk3LDIyIEBA IERlZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJp bmRleCBjcmVhdGlvbiBvbiBzeXN0ZW0gY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsK KworCisJCWlmIChUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0bm8g LSAxKS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24gdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKIAl9CiAKIAkvKgotCSAqIEFs c28gY2hlY2sgZm9yIHN5c3RlbSBjb2x1bW5zIHVzZWQgaW4gZXhwcmVzc2lvbnMgb3IgcHJl ZGljYXRlcy4KKwkgKiBBbHNvIGNoZWNrIGZvciBzeXN0ZW0gYW5kIGdlbmVyYXRlZCBjb2x1 bW5zIHVzZWQgaW4gZXhwcmVzc2lvbnMgb3IKKwkgKiBwcmVkaWNhdGVzLgogCSAqLwogCWlm IChpbmRleEluZm8tPmlpX0V4cHJlc3Npb25zIHx8IGluZGV4SW5mby0+aWlfUHJlZGljYXRl KQogCXsKIAkJQml0bWFwc2V0ICAqaW5kZXhhdHRycyA9IE5VTEw7CisJCWludAkJCWo7CiAK IAkJcHVsbF92YXJhdHRub3MoKE5vZGUgKikgaW5kZXhJbmZvLT5paV9FeHByZXNzaW9ucywg MSwgJmluZGV4YXR0cnMpOwogCQlwdWxsX3ZhcmF0dG5vcygoTm9kZSAqKSBpbmRleEluZm8t PmlpX1ByZWRpY2F0ZSwgMSwgJmluZGV4YXR0cnMpOwpAQCAtMTExNCw2ICsxMTI1LDIyIEBA IERlZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24g c3lzdGVtIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CiAJCX0KKworCQkvKgorCQkg KiBYWFggVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiBpbmRleCBleHByZXNzaW9ucyBv ciBwcmVkaWNhdGVzCisJCSAqIGNvdWxkIGJlIHN1cHBvcnRlZCwgYnV0IGl0IG5lZWRzIHN1 cHBvcnQgaW4KKwkJICogUmVsYXRpb25HZXRJbmRleEV4cHJlc3Npb25zKCkgYW5kIFJlbGF0 aW9uR2V0SW5kZXhQcmVkaWNhdGUoKS4KKwkJICovCisJCWogPSAtMTsKKwkJd2hpbGUgKChq ID0gYm1zX25leHRfbWVtYmVyKGluZGV4YXR0cnMsIGopKSA+PSAwKQorCQl7CisJCQlBdHRy TnVtYmVyCWF0dG5vID0gaiArIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXI7 CisKKwkJCWlmIChUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0bm8g LSAxKS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24gdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKwkJfQogCX0KIAogCS8q IElzIGluZGV4IHNhZmUgZm9yIG90aGVycyB0byBpZ25vcmU/ICBTZWUgc2V0X2luZGV4c2Fm ZV9wcm9jZmxhZ3MoKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Rh dHNjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwppbmRleCAxZGIz ZWY2OWQyMi4uZmQ1NmU0NzJkODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3N0YXRzY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCkBA IC0yNDYsNiArMjQ2LDExIEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpz dG10KQogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAog CQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBvbiBzeXN0ZW0gY29sdW1ucyBp cyBub3Qgc3VwcG9ydGVkIikpKTsKIAorCQkJaWYgKGF0dEZvcm0tPmF0dGdlbmVyYXRlZCA9 PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBl cnJtc2coInN0YXRpc3RpY3MgY3JlYXRpb24gb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKwogCQkJLyogRGlzYWxsb3cgZGF0YSB0eXBlcyB3 aXRob3V0IGEgbGVzcy10aGFuIG9wZXJhdG9yICovCiAJCQl0eXBlID0gbG9va3VwX3R5cGVf Y2FjaGUoYXR0Rm9ybS0+YXR0dHlwaWQsIFRZUEVDQUNIRV9MVF9PUFIpOwogCQkJaWYgKHR5 cGUtPmx0X29wciA9PSBJbnZhbGlkT2lkKQpAQCAtMjY5LDYgKzI3NCwxMSBAQCBDcmVhdGVT dGF0aXN0aWNzKENyZWF0ZVN0YXRzU3RtdCAqc3RtdCkKIAkJCQkJCShlcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJCSBlcnJtc2coInN0YXRpc3RpY3Mg Y3JlYXRpb24gb24gc3lzdGVtIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CiAKKwkJ CWlmIChnZXRfYXR0Z2VuZXJhdGVkKHJlbGlkLCB2YXItPnZhcmF0dG5vKSA9PSBBVFRSSUJV VEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coInN0 YXRpc3RpY3MgY3JlYXRpb24gb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpcyBub3Qg c3VwcG9ydGVkIikpKTsKKwogCQkJLyogRGlzYWxsb3cgZGF0YSB0eXBlcyB3aXRob3V0IGEg bGVzcy10aGFuIG9wZXJhdG9yICovCiAJCQl0eXBlID0gbG9va3VwX3R5cGVfY2FjaGUodmFy LT52YXJ0eXBlLCBUWVBFQ0FDSEVfTFRfT1BSKTsKIAkJCWlmICh0eXBlLT5sdF9vcHIgPT0g SW52YWxpZE9pZCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggOTU4MDA3Y2Ez MTYuLmZhOGZjM2JkZTU2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMjkz OSw2ICsyOTM5LDEyIEBAIE1lcmdlQXR0cmlidXRlcyhMaXN0ICpjb2x1bW5zLCBjb25zdCBM aXN0ICpzdXBlcnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkJCQkJCQkgZXJyaGludCgi QSBjaGlsZCB0YWJsZSBjb2x1bW4gY2Fubm90IGJlIGdlbmVyYXRlZCB1bmxlc3MgaXRzIHBh cmVudCBjb2x1bW4gaXMuIikpKTsKIAkJCQkJfQogCisJCQkJCWlmIChjb2xkZWYtPmdlbmVy YXRlZCAmJiByZXN0ZGVmLT5nZW5lcmF0ZWQgJiYgY29sZGVmLT5nZW5lcmF0ZWQgIT0gcmVz dGRlZi0+Z2VuZXJhdGVkKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX0NPTFVNTl9ERUZJTklUSU9OKSwKKwkJCQkJCQkJIGVycm1z ZygiY29sdW1uIFwiJXNcIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlm ZmVyZW50IGtpbmQiLAorCQkJCQkJCQkJCXJlc3RkZWYtPmNvbG5hbWUpKSk7CisKIAkJCQkJ LyoKIAkJCQkJICogT3ZlcnJpZGUgdGhlIHBhcmVudCdzIGRlZmF1bHQgdmFsdWUgZm9yIHRo aXMgY29sdW1uCiAJCQkJCSAqIChjb2xkZWYtPmNvb2tlZF9kZWZhdWx0KSB3aXRoIHRoZSBw YXJ0aXRpb24ncyBsb2NhbApAQCAtMzIxMCw2ICszMjE2LDEyIEBAIE1lcmdlQ2hpbGRBdHRy aWJ1dGUoTGlzdCAqaW5oX2NvbHVtbnMsIGludCBleGlzdF9hdHRubywgaW50IG5ld2NvbF9h dHRubywgY29uc3QKIAkJCQkJIGVycmhpbnQoIkEgY2hpbGQgdGFibGUgY29sdW1uIGNhbm5v dCBiZSBnZW5lcmF0ZWQgdW5sZXNzIGl0cyBwYXJlbnQgY29sdW1uIGlzLiIpKSk7CiAJfQog CisJaWYgKGluaGRlZi0+Z2VuZXJhdGVkICYmIG5ld2RlZi0+Z2VuZXJhdGVkICYmIG5ld2Rl Zi0+Z2VuZXJhdGVkICE9IGluaGRlZi0+Z2VuZXJhdGVkKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fREVGSU5JVElPTiksCisJCQkJ IGVycm1zZygiY29sdW1uIFwiJXNcIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4g b2YgZGlmZmVyZW50IGtpbmQiLAorCQkJCQkJaW5oZGVmLT5jb2xuYW1lKSkpOworCiAJLyoK IAkgKiBJZiBuZXcgZGVmIGhhcyBhIGRlZmF1bHQsIG92ZXJyaWRlIHByZXZpb3VzIGRlZmF1 bHQKIAkgKi8KQEAgLTU5OTgsNyArNjAxMCw3IEBAIEFUUmV3cml0ZVRhYmxlKEFsdGVyZWRU YWJsZUluZm8gKnRhYiwgT2lkIE9JRE5ld0hlYXAsIExPQ0tNT0RFIGxvY2ttb2RlKQogCQl7 CiAJCQljYXNlIENPTlNUUl9DSEVDSzoKIAkJCQluZWVkc2NhbiA9IHRydWU7Ci0JCQkJY29u LT5xdWFsc3RhdGUgPSBFeGVjUHJlcGFyZUV4cHIoKEV4cHIgKikgY29uLT5xdWFsLCBlc3Rh dGUpOworCQkJCWNvbi0+cXVhbHN0YXRlID0gRXhlY1ByZXBhcmVFeHByKChFeHByICopIGV4 cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHByKGNvbi0+cXVhbCwgbmV3cmVsID8gbmV3 cmVsIDogb2xkcmVsKSwgZXN0YXRlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQ09OU1RSX0ZP UkVJR046CiAJCQkJLyogTm90aGluZyB0byBkbyBoZXJlICovCkBAIC03NjgzLDYgKzc2OTUs NyBAQCBBVEV4ZWNTZXROb3ROdWxsKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24g cmVsLAogCQkJCSBjb25zdCBjaGFyICpjb2xOYW1lLCBMT0NLTU9ERSBsb2NrbW9kZSkKIHsK IAlIZWFwVHVwbGUJdHVwbGU7CisJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0VHVwOwogCUF0dHJO dW1iZXIJYXR0bnVtOwogCVJlbGF0aW9uCWF0dHJfcmVsOwogCU9iamVjdEFkZHJlc3MgYWRk cmVzczsKQEAgLTc2OTksOCArNzcxMiw4IEBAIEFURXhlY1NldE5vdE51bGwoQWx0ZXJlZFRh YmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfQ09MVU1OKSwKIAkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9u IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCiAJCQkJCQljb2xOYW1lLCBSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShyZWwpKSkpOwotCi0JYXR0bnVtID0gKChGb3JtX3BnX2F0dHJpYnV0ZSkg R0VUU1RSVUNUKHR1cGxlKSktPmF0dG51bTsKKwlhdHRUdXAgPSAoRm9ybV9wZ19hdHRyaWJ1 dGUpIEdFVFNUUlVDVCh0dXBsZSk7CisJYXR0bnVtID0gYXR0VHVwLT5hdHRudW07CiAKIAkv KiBQcmV2ZW50IHRoZW0gZnJvbSBhbHRlcmluZyBhIHN5c3RlbSBhdHRyaWJ1dGUgKi8KIAlp ZiAoYXR0bnVtIDw9IDApCkBAIC03NzA5LDEyICs3NzIyLDIwIEBAIEFURXhlY1NldE5vdE51 bGwoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQkJIGVycm1zZygi Y2Fubm90IGFsdGVyIHN5c3RlbSBjb2x1bW4gXCIlc1wiIiwKIAkJCQkJCWNvbE5hbWUpKSk7 CiAKKwkvKiBUT0RPOiBzZWUgdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbigpICovCisJaWYg KGF0dFR1cC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCisJCQkJIGVycm1zZygibm90LW51bGwgY29uc3RyYWludHMgYXJlIG5vdCBz dXBwb3J0ZWQgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyIpLAorCQkJCSBlcnJkZXRh aWwoIkNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIGEgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1uLiIsCisJCQkJCQkgICBjb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKSkpOworCiAJLyoKIAkgKiBPa2F5LCBhY3R1YWxseSBwZXJmb3JtIHRoZSBj YXRhbG9nIGNoYW5nZSAuLi4gaWYgbmVlZGVkCiAJICovCi0JaWYgKCEoKEZvcm1fcGdfYXR0 cmlidXRlKSBHRVRTVFJVQ1QodHVwbGUpKS0+YXR0bm90bnVsbCkKKwlpZiAoIWF0dFR1cC0+ YXR0bm90bnVsbCkKIAl7Ci0JCSgoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVDVCh0dXBs ZSkpLT5hdHRub3RudWxsID0gdHJ1ZTsKKwkJYXR0VHVwLT5hdHRub3RudWxsID0gdHJ1ZTsK IAogCQlDYXRhbG9nVHVwbGVVcGRhdGUoYXR0cl9yZWwsICZ0dXBsZS0+dF9zZWxmLCB0dXBs ZSk7CiAKQEAgLTc3MjUsNyArNzc0Niw3IEBAIEFURXhlY1NldE5vdE51bGwoQWx0ZXJlZFRh YmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCSAqIGFscmVhZHkgZm91bmQgdGhhdCB3 ZSBtdXN0IHZlcmlmeSBzb21lIG90aGVyIG5vdC1udWxsIGNvbnN0cmFpbnQuCiAJCSAqLwog CQlpZiAoIXRhYi0+dmVyaWZ5X25ld19ub3RudWxsICYmCi0JCQkhTm90TnVsbEltcGxpZWRC eVJlbENvbnN0cmFpbnRzKHJlbCwgKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRTVFJVQ1QodHVw bGUpKSkKKwkJCSFOb3ROdWxsSW1wbGllZEJ5UmVsQ29uc3RyYWludHMocmVsLCBhdHRUdXAp KQogCQl7CiAJCQkvKiBUZWxsIFBoYXNlIDMgaXQgbmVlZHMgdG8gdGVzdCB0aGUgY29uc3Ry YWludCAqLwogCQkJdGFiLT52ZXJpZnlfbmV3X25vdG51bGwgPSB0cnVlOwpAQCAtODMwNyw3 ICs4MzI4LDE4IEBAIEFURXhlY1NldEV4cHJlc3Npb24oQWx0ZXJlZFRhYmxlSW5mbyAqdGFi LCBSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsCiAJCQkJIGVycm1zZygiY2Fu bm90IGFsdGVyIHN5c3RlbSBjb2x1bW4gXCIlc1wiIiwKIAkJCQkJCWNvbE5hbWUpKSk7CiAK LQlpZiAoYXR0VHVwLT5hdHRnZW5lcmF0ZWQgIT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9S RUQpCisJLyoKKwkgKiBUT0RPOiBUaGlzIGNvdWxkIGJlIGRvbmUsIGJ1dCBpdCB3b3VsZCBu ZWVkIGEgZGlmZmVyZW50IGltcGxlbWVudGF0aW9uOgorCSAqIG5vIHJld3JpdGluZywgYnV0 IHN0aWxsIG5lZWQgdG8gcmVjaGVjayBhbnkgY29uc3RyYWludHMuCisJICovCisJaWYgKGF0 dFR1cC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCisJCQkJIGVycm1zZygiQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBu b3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIiksCisJCQkJIGVy cmRldGFpbCgiQ29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgYSB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW4uIiwKKwkJCQkJCSAgIGNvbE5hbWUsIFJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHJlbCkpKSk7CisKKwlpZiAoIWF0dFR1cC0+YXR0Z2VuZXJhdGVkKQogCQll cmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVS RVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRp b24gXCIlc1wiIGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4iLApAQCAtODQ2NCwxNyArODQ5 NiwzMCBAQCBBVEV4ZWNEcm9wRXhwcmVzc2lvbihSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIg KmNvbE5hbWUsIGJvb2wgbWlzc2luZ19vaywgTE9DS01PRAogCQkJCSBlcnJtc2coImNhbm5v dCBhbHRlciBzeXN0ZW0gY29sdW1uIFwiJXNcIiIsCiAJCQkJCQljb2xOYW1lKSkpOwogCi0J aWYgKGF0dFR1cC0+YXR0Z2VuZXJhdGVkICE9IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVE KQorCS8qCisJICogVE9ETzogVGhpcyBjb3VsZCBiZSBkb25lLCBidXQgaXQgd291bGQgbmVl ZCBhIHRhYmxlIHJld3JpdGUgdG8KKwkgKiBtYXRlcmlhbGl6ZSB0aGUgZ2VuZXJhdGVkIHZh bHVlcy4gIE5vdGUgdGhhdCBmb3IgdGhlIHRpbWUgYmVpbmcsIHdlCisJICogc3RpbGwgZXJy b3Igd2l0aCBtaXNzaW5nX29rLCBzbyB0aGF0IHdlIGRvbid0IHNpbGVudGx5IGxlYXZlIHRo ZSBjb2x1bW4KKwkgKiBhcyBnZW5lcmF0ZWQuCisJICovCisJaWYgKGF0dFR1cC0+YXR0Z2Vu ZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJ IGVycm1zZygiQUxURVIgVEFCTEUgLyBEUk9QIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRl ZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyIpLAorCQkJCSBlcnJkZXRhaWwoIkNv bHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQg Y29sdW1uLiIsCisJCQkJCQkgICBjb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShy ZWwpKSkpOworCisJaWYgKCFhdHRUdXAtPmF0dGdlbmVyYXRlZCkKIAl7CiAJCWlmICghbWlz c2luZ19vaykKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfT0JK RUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAotCQkJCQkgZXJybXNnKCJjb2x1bW4g XCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSBzdG9yZWQgZ2VuZXJhdGVkIGNv bHVtbiIsCisJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wi IGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4iLAogCQkJCQkJCWNvbE5hbWUsIFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CiAJCWVsc2UKIAkJewogCQkJZXJlcG9ydChOT1RJ Q0UsCi0JCQkJCShlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlz IG5vdCBhIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1uLCBza2lwcGluZyIsCisJCQkJCShlcnJt c2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIG5vdCBhIGdlbmVyYXRl ZCBjb2x1bW4sIHNraXBwaW5nIiwKIAkJCQkJCQljb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShyZWwpKSkpOwogCQkJaGVhcF9mcmVldHVwbGUodHVwbGUpOwogCQkJdGFibGVf Y2xvc2UoYXR0cmVsYXRpb24sIFJvd0V4Y2x1c2l2ZUxvY2spOwpAQCAtOTY5Niw2ICs5NzQx LDE5IEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJl ZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQkJCQkgZXJybXNnKCJpbnZhbGlk ICVzIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCBjb250YWluaW5nIGdlbmVy YXRlZCBjb2x1bW4iLAogCQkJCQkJCQkiT04gREVMRVRFIikpKTsKIAkJfQorCisJCS8qCisJ CSAqIEZLcyBvbiB2aXJ0dWFsIGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQuICBUaGlzIHdv dWxkIHJlcXVpcmUKKwkJICogdmFyaW91cyBhZGRpdGlvbmFsIHN1cHBvcnQgaW4gcmlfdHJp Z2dlcnMuYywgaW5jbHVkaW5nIHNwZWNpYWwKKwkJICogaGFuZGxpbmcgaW4gcmlfTnVsbENo ZWNrKCksIHJpX0tleXNFcXVhbCgpLAorCQkgKiBSSV9GS2V5X2ZrX3VwZF9jaGVja19yZXF1 aXJlZCgpIChzaW5jZSBhbGwgdmlydHVhbCBjb2x1bW5zIGFwcGVhcgorCQkgKiBhcyBOVUxM IHRoZXJlKS4gIEFsc28gbm90IHJlYWxseSBwcmFjdGljYWwgYXMgbG9uZyBhcyB5b3UgY2Fu J3QKKwkJICogaW5kZXggdmlydHVhbCBjb2x1bW5zLgorCQkgKi8KKwkJaWYgKGF0dGdlbmVy YXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJ CSBlcnJtc2coImZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzIG9uIHZpcnR1YWwgZ2VuZXJhdGVk IGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKSkpOwogCX0KIAogCS8qCkBAIC0xMTY1OSw3 ICsxMTcxNyw3IEBAIEFURXhlY1ZhbGlkYXRlQ29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBS ZWxhdGlvbiByZWwsIGNoYXIgKmNvbnN0ck5hbWUsCiAJCQl2YWwgPSBTeXNDYWNoZUdldEF0 dHJOb3ROdWxsKENPTlNUUk9JRCwgdHVwbGUsCiAJCQkJCQkJCQkJIEFudW1fcGdfY29uc3Ry YWludF9jb25iaW4pOwogCQkJY29uYmluID0gVGV4dERhdHVtR2V0Q1N0cmluZyh2YWwpOwot CQkJbmV3Y29uLT5xdWFsID0gKE5vZGUgKikgc3RyaW5nVG9Ob2RlKGNvbmJpbik7CisJCQlu ZXdjb24tPnF1YWwgPSAoTm9kZSAqKSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fZXhw cihzdHJpbmdUb05vZGUoY29uYmluKSwgcmVsKTsKIAogCQkJLyogRmluZCBvciBjcmVhdGUg d29yayBxdWV1ZSBlbnRyeSBmb3IgdGhpcyB0YWJsZSAqLwogCQkJdGFiID0gQVRHZXRRdWV1 ZUVudHJ5KHdxdWV1ZSwgcmVsKTsKQEAgLTEyNzAwLDggKzEyNzU4LDEyIEBAIEFUUHJlcEFs dGVyQ29sdW1uVHlwZShMaXN0ICoqd3F1ZXVlLAogCQkJCQkgICBsaXN0X21ha2UxX29pZChy ZWwtPnJkX3JlbC0+cmVsdHlwZSksCiAJCQkJCSAgIDApOwogCi0JaWYgKHRhYi0+cmVsa2lu ZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8Ci0JCXRhYi0+cmVsa2luZCA9PSBSRUxLSU5EX1BB UlRJVElPTkVEX1RBQkxFKQorCWlmIChhdHRUdXAtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJV VEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJeworCQkvKiBkbyBub3RoaW5nICovCisJfQorCWVs c2UgaWYgKHRhYi0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8CisJCQkgdGFiLT5y ZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCiAJewogCQkvKgogCQkgKiBT ZXQgdXAgYW4gZXhwcmVzc2lvbiB0byB0cmFuc2Zvcm0gdGhlIG9sZCBkYXRhIHZhbHVlIHRv IHRoZSBuZXcKQEAgLTE3ODU4LDggKzE3OTIwLDExIEBAIENvbXB1dGVQYXJ0aXRpb25BdHRy cyhQYXJzZVN0YXRlICpwc3RhdGUsIFJlbGF0aW9uIHJlbCwgTGlzdCAqcGFydFBhcmFtcywg QXR0ck51CiAJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgcGVsZW0tPmxvY2F0 aW9uKSkpOwogCiAJCQkvKgotCQkJICogR2VuZXJhdGVkIGNvbHVtbnMgY2Fubm90IHdvcms6 IFRoZXkgYXJlIGNvbXB1dGVkIGFmdGVyIEJFRk9SRQotCQkJICogdHJpZ2dlcnMsIGJ1dCBw YXJ0aXRpb24gcm91dGluZyBpcyBkb25lIGJlZm9yZSBhbGwgdHJpZ2dlcnMuCisJCQkgKiBT dG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMgY2Fubm90IHdvcms6IFRoZXkgYXJlIGNvbXB1dGVk IGFmdGVyCisJCQkgKiBCRUZPUkUgdHJpZ2dlcnMsIGJ1dCBwYXJ0aXRpb24gcm91dGluZyBp cyBkb25lIGJlZm9yZSBhbGwKKwkJCSAqIHRyaWdnZXJzLiAgTWF5YmUgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucyBjb3VsZCBiZSBtYWRlIHRvCisJCQkgKiB3b3JrLCBidXQgdGhlbiB0 aGV5IHdvdWxkIG5lZWQgdG8gYmUgaGFuZGxlZCBhcyBhbiBleHByZXNzaW9uCisJCQkgKiBi ZWxvdy4KIAkJCSAqLwogCQkJaWYgKGF0dGZvcm0tPmF0dGdlbmVyYXRlZCkKIAkJCQllcmVw b3J0KEVSUk9SLApAQCAtMTc5NDEsOSArMTgwMDYsMTIgQEAgQ29tcHV0ZVBhcnRpdGlvbkF0 dHJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmVsYXRpb24gcmVsLCBMaXN0ICpwYXJ0UGFyYW1z LCBBdHRyTnUKIAkJCQl9CiAKIAkJCQkvKgotCQkJCSAqIEdlbmVyYXRlZCBjb2x1bW5zIGNh bm5vdCB3b3JrOiBUaGV5IGFyZSBjb21wdXRlZCBhZnRlcgotCQkJCSAqIEJFRk9SRSB0cmln Z2VycywgYnV0IHBhcnRpdGlvbiByb3V0aW5nIGlzIGRvbmUgYmVmb3JlIGFsbAotCQkJCSAq IHRyaWdnZXJzLgorCQkJCSAqIFN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBjYW5ub3Qgd29y azogVGhleSBhcmUgY29tcHV0ZWQKKwkJCQkgKiBhZnRlciBCRUZPUkUgdHJpZ2dlcnMsIGJ1 dCBwYXJ0aXRpb24gcm91dGluZyBpcyBkb25lIGJlZm9yZQorCQkJCSAqIGFsbCB0cmlnZ2Vy cy4gIFZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgY291bGQgcHJvYmFibHkKKwkJCQkgKiB3 b3JrLCBidXQgaXQgd291bGQgcmVxdWlyZSBtb3JlIHdvcmsgZWxzZXdoZXJlIChmb3IgZXhh bXBsZQorCQkJCSAqIFNFVCBFWFBSRVNTSU9OIHdvdWxkIG5lZWQgdG8gY2hlY2sgd2hldGhl ciB0aGUgY29sdW1uIGlzCisJCQkJICogdXNlZCBpbiBwYXJ0aXRpb24ga2V5cykuICBTZWVt cyBzYWZlciB0byBwcm9oaWJpdCBmb3Igbm93LgogCQkJCSAqLwogCQkJCWkgPSAtMTsKIAkJ CQl3aGlsZSAoKGkgPSBibXNfbmV4dF9tZW1iZXIoZXhwcl9hdHRycywgaSkpID49IDApCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy90cmlnZ2VyLmMKaW5kZXggOTVkZTQwMmZhNjUuLjkyYzhjOTgyNGUyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAi cGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFydGl0aW9uaW5nL3BhcnRk ZXNjLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRl SGFuZGxlci5oIgogI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZU1hbmlwLmgiCiAjaW5jbHVk ZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAidXRpbHMvYWNsLmgiCkBAIC0xMDEsNiAr MTAyLDcgQEAgc3RhdGljIHZvaWQgQWZ0ZXJUcmlnZ2VyU2F2ZUV2ZW50KEVTdGF0ZSAqZXN0 YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQkJCQkJCQkgIGJvb2wgaXNfY3Jvc3Nw YXJ0X3VwZGF0ZSk7CiBzdGF0aWMgdm9pZCBBZnRlclRyaWdnZXJFbmxhcmdlUXVlcnlTdGF0 ZSh2b2lkKTsKIHN0YXRpYyBib29sIGJlZm9yZV9zdG10X3RyaWdnZXJzX2ZpcmVkKE9pZCBy ZWxpZCwgQ21kVHlwZSBjbWRUeXBlKTsKK3N0YXRpYyB2b2lkIGNoZWNrX21vZGlmaWVkX3Zp cnR1YWxfZ2VuZXJhdGVkKFR1cGxlRGVzYyB0dXBkZXNjLCBIZWFwVHVwbGUgdHVwbGUpOwog CiAKIC8qCkBAIC02NDEsNyArNjQzLDggQEAgQ3JlYXRlVHJpZ2dlckZpcmluZ09uKENyZWF0 ZVRyaWdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJaWYgKFRS SUdHRVJfRk9SX0JFRk9SRSh0Z3R5cGUpICYmCiAJCQkJCQl2YXItPnZhcmF0dG5vID09IDAg JiYKIAkJCQkJCVJlbGF0aW9uR2V0RGVzY3IocmVsKS0+Y29uc3RyICYmCi0JCQkJCQlSZWxh dGlvbkdldERlc2NyKHJlbCktPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF9zdG9yZWQpCisJCQkJ CQkoUmVsYXRpb25HZXREZXNjcihyZWwpLT5jb25zdHItPmhhc19nZW5lcmF0ZWRfc3RvcmVk IHx8CisJCQkJCQkgUmVsYXRpb25HZXREZXNjcihyZWwpLT5jb25zdHItPmhhc19nZW5lcmF0 ZWRfdmlydHVhbCkpCiAJCQkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAogCQkJCQkJCQkgZXJybXNnKCJC RUZPUkUgdHJpZ2dlcidzIFdIRU4gY29uZGl0aW9uIGNhbm5vdCByZWZlcmVuY2UgTkVXIGdl bmVyYXRlZCBjb2x1bW5zIiksCkBAIC05NDIsNiArOTQ1LDEzIEBAIENyZWF0ZVRyaWdnZXJG aXJpbmdPbihDcmVhdGVUcmlnU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcs CiAJCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBkb2Vz IG5vdCBleGlzdCIsCiAJCQkJCQkJCW5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJl bCkpKSk7CiAKKwkJCS8qIEN1cnJlbnRseSBkb2Vzbid0IHdvcmsuICovCisJCQlpZiAoVHVw bGVEZXNjQXR0cihSZWxhdGlvbkdldERlc2NyKHJlbCksIGF0dG51bSAtIDEpLT5hdHRnZW5l cmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQkJCWVycm1zZygidmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRl ZCBhcyB0cmlnZ2VyIGNvbHVtbnMiKSwKKwkJCQkJCWVycmRldGFpbCgiQ29sdW1uIFwiJXNc IiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4iLCBuYW1lKSk7CisKIAkJCS8qIENo ZWNrIGZvciBkdXBsaWNhdGVzICovCiAJCQlmb3IgKGogPSBpIC0gMTsgaiA+PSAwOyBqLS0p CiAJCQl7CkBAIC0yNTAxLDYgKzI1MTEsOCBAQCBFeGVjQlJJbnNlcnRUcmlnZ2VycyhFU3Rh dGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJfQogCQllbHNlIGlmIChu ZXd0dXBsZSAhPSBvbGR0dXBsZSkKIAkJeworCQkJY2hlY2tfbW9kaWZpZWRfdmlydHVhbF9n ZW5lcmF0ZWQoUmVsYXRpb25HZXREZXNjcihyZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2MpLCBu ZXd0dXBsZSk7CisKIAkJCUV4ZWNGb3JjZVN0b3JlSGVhcFR1cGxlKG5ld3R1cGxlLCBzbG90 LCBmYWxzZSk7CiAKIAkJCS8qCkBAIC0zMDU4LDYgKzMwNzAsOCBAQCBFeGVjQlJVcGRhdGVU cmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgRVBRU3RhdGUgKmVwcXN0YXRlLAogCQl9CiAJCWVs c2UgaWYgKG5ld3R1cGxlICE9IG9sZHR1cGxlKQogCQl7CisJCQljaGVja19tb2RpZmllZF92 aXJ0dWFsX2dlbmVyYXRlZChSZWxhdGlvbkdldERlc2NyKHJlbGluZm8tPnJpX1JlbGF0aW9u RGVzYyksIG5ld3R1cGxlKTsKKwogCQkJRXhlY0ZvcmNlU3RvcmVIZWFwVHVwbGUobmV3dHVw bGUsIG5ld3Nsb3QsIGZhbHNlKTsKIAogCQkJLyoKQEAgLTM0ODgsNiArMzUwMiw3IEBAIFRy aWdnZXJFbmFibGVkKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAog CiAJCQlvbGRDb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVl cnlfY3h0KTsKIAkJCXRncXVhbCA9IHN0cmluZ1RvTm9kZSh0cmlnZ2VyLT50Z3F1YWwpOwor CQkJdGdxdWFsID0gKE5vZGUgKikgZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4cHIo dGdxdWFsLCByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2MpOwogCQkJLyogQ2hhbmdlIHJlZmVy ZW5jZXMgdG8gT0xEIGFuZCBORVcgdG8gSU5ORVJfVkFSIGFuZCBPVVRFUl9WQVIgKi8KIAkJ CUNoYW5nZVZhck5vZGVzKHRncXVhbCwgUFJTMl9PTERfVkFSTk8sIElOTkVSX1ZBUiwgMCk7 CiAJCQlDaGFuZ2VWYXJOb2Rlcyh0Z3F1YWwsIFBSUzJfTkVXX1ZBUk5PLCBPVVRFUl9WQVIs IDApOwpAQCAtNjU5MywzICs2NjA4LDM0IEBAIHBnX3RyaWdnZXJfZGVwdGgoUEdfRlVOQ1RJ T05fQVJHUykKIHsKIAlQR19SRVRVUk5fSU5UMzIoTXlUcmlnZ2VyRGVwdGgpOwogfQorCisv KgorICogQ2hlY2sgd2hldGhlciBhIHRyaWdnZXIgbW9kaWZpZWQgYSB2aXJ0dWFsIGdlbmVy YXRlZCBjb2x1bW4gYW5kIGVycm9yIGlmCisgKiBzby4KKyAqCisgKiBXZSBuZWVkIHRvIGNo ZWNrIHRoaXMgc28gdGhhdCB3ZSBkb24ndCBlbmQgdXAgc3RvcmluZyBhIG5vbi1udWxsIHZh bHVlIGluIGEKKyAqIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4KKyAqCisgKiBXZSBkb24n dCBuZWVkIHRvIGNoZWNrIGZvciBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMsIHNpbmNlIHRo b3NlIHdpbGwgYmUKKyAqIG92ZXJ3cml0dGVuIGxhdGVyIGFueXdheS4KKyAqLworc3RhdGlj IHZvaWQKK2NoZWNrX21vZGlmaWVkX3ZpcnR1YWxfZ2VuZXJhdGVkKFR1cGxlRGVzYyB0dXBk ZXNjLCBIZWFwVHVwbGUgdHVwbGUpCit7CisJaWYgKCEodHVwZGVzYy0+Y29uc3RyICYmIHR1 cGRlc2MtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKSkKKwkJcmV0dXJuOworCisJ Zm9yIChpbnQgaSA9IDA7IGkgPCB0dXBkZXNjLT5uYXR0czsgaSsrKQorCXsKKwkJaWYgKFR1 cGxlRGVzY0F0dHIodHVwZGVzYywgaSktPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VO RVJBVEVEX1ZJUlRVQUwpCisJCXsKKwkJCWJvb2wJCWlzbnVsbDsKKworCQkJZmFzdGdldGF0 dHIodHVwbGUsIGkgKyAxLCB0dXBkZXNjLCAmaXNudWxsKTsKKwkJCWlmICghaXNudWxsKQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0VfUl9JX0VfVFJJ R0dFUl9QUk9UT0NPTF9WSU9MQVRFRCksCisJCQkJCQkgZXJybXNnKCJ0cmlnZ2VyIG1vZGlm aWVkIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbiB2YWx1ZSIpKSk7CisJCX0KKwl9Cit9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCA4NTIxODYzMTJjNS4u M2VlZGRjODEzMTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpA QCAtMjAwMSw2ICsyMDAxLDEwIEBAIENoZWNrVmFyU2xvdENvbXBhdGliaWxpdHkoVHVwbGVU YWJsZVNsb3QgKnNsb3QsIGludCBhdHRudW0sIE9pZCB2YXJ0eXBlKQogCiAJCWF0dHIgPSBU dXBsZURlc2NBdHRyKHNsb3RfdHVwZGVzYywgYXR0bnVtIC0gMSk7CiAKKwkJLyogSW50ZXJu YWwgZXJyb3I6IHNvbWVib2R5IGZvcmdvdCB0byBleHBhbmQgaXQuICovCisJCWlmIChhdHRy LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJZWxv ZyhFUlJPUiwgInVuZXhwZWN0ZWQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHJlZmVyZW5j ZSIpOworCiAJCWlmIChhdHRyLT5hdHRpc2Ryb3BwZWQpCiAJCQllcmVwb3J0KEVSUk9SLAog CQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNNYWluLmMKaW5kZXggNGQ3YzkyZDYzYzEuLmQ4MjE3MDc4NWJmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTE3NDgsNiArMTc0OCw3IEBAIEV4ZWNSZWxDaGVjayhS ZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQkJRXhwcgkgICAqY2hlY2tjb25zdHI7 CiAKIAkJCWNoZWNrY29uc3RyID0gc3RyaW5nVG9Ob2RlKGNoZWNrW2ldLmNjYmluKTsKKwkJ CWNoZWNrY29uc3RyID0gKEV4cHIgKikgZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4 cHIoKE5vZGUgKikgY2hlY2tjb25zdHIsIHJlbCk7CiAJCQlyZXN1bHRSZWxJbmZvLT5yaV9D b25zdHJhaW50RXhwcnNbaV0gPQogCQkJCUV4ZWNQcmVwYXJlRXhwcihjaGVja2NvbnN0ciwg ZXN0YXRlKTsKIAkJfQpAQCAtMjI5NSw3ICsyMjk2LDkgQEAgRXhlY0J1aWxkU2xvdFZhbHVl RGVzY3JpcHRpb24oT2lkIHJlbG9pZCwKIAogCQlpZiAodGFibGVfcGVybSB8fCBjb2x1bW5f cGVybSkKIAkJewotCQkJaWYgKHNsb3QtPnR0c19pc251bGxbaV0pCisJCQlpZiAoYXR0LT5h dHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCXZhbCA9 ICJ2aXJ0dWFsIjsKKwkJCWVsc2UgaWYgKHNsb3QtPnR0c19pc251bGxbaV0pCiAJCQkJdmFs ID0gIm51bGwiOwogCQkJZWxzZQogCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggMjhm ZWQ5ZDg3ZjYuLjAxZGVkYmZjMzk2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv YW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTU2Miw2 ICs1NjIsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVs ZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dp bmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRT UkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzR2Vu ZXJhdGVkVmlydHVhbCA9IHBzdGF0ZS0+cF9oYXNHZW5lcmF0ZWRWaXJ0dWFsOwogCiAJYXNz aWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC05ODgsNiArOTg5LDcg QEAgdHJhbnNmb3JtSW5zZXJ0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEluc2VydFN0bXQg KnN0bXQpCiAKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JG czsKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+ aGFzR2VuZXJhdGVkVmlydHVhbCA9IHBzdGF0ZS0+cF9oYXNHZW5lcmF0ZWRWaXJ0dWFsOwog CiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xNDUzLDYg KzE0NTUsNyBAQCB0cmFuc2Zvcm1TZWxlY3RTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2Vs ZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dp bmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRT UkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzR2Vu ZXJhdGVkVmlydHVhbCA9IHBzdGF0ZS0+cF9oYXNHZW5lcmF0ZWRWaXJ0dWFsOwogCiAJZm9y ZWFjaChsLCBzdG10LT5sb2NraW5nQ2xhdXNlKQogCXsKQEAgLTE2NzksNiArMTY4Miw3IEBA IHRyYW5zZm9ybVZhbHVlc0NsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQg KnN0bXQpCiAJcXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihwc3RhdGUtPnBfam9pbmxp c3QsIE5VTEwpOwogCiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5r czsKKwlxcnktPmhhc0dlbmVyYXRlZFZpcnR1YWwgPSBwc3RhdGUtPnBfaGFzR2VuZXJhdGVk VmlydHVhbDsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApA QCAtMTkzMCw2ICsxOTM0LDcgQEAgdHJhbnNmb3JtU2V0T3BlcmF0aW9uU3RtdChQYXJzZVN0 YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9 IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3Rh dGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdn czsKKwlxcnktPmhhc0dlbmVyYXRlZFZpcnR1YWwgPSBwc3RhdGUtPnBfaGFzR2VuZXJhdGVk VmlydHVhbDsKIAogCWZvcmVhY2gobCwgbG9ja2luZ0NsYXVzZSkKIAl7CkBAIC0yNDA0LDYg KzI0MDksNyBAQCB0cmFuc2Zvcm1SZXR1cm5TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmV0 dXJuU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dp bmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRT UkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzR2Vu ZXJhdGVkVmlydHVhbCA9IHBzdGF0ZS0+cF9oYXNHZW5lcmF0ZWRWaXJ0dWFsOwogCiAJYXNz aWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0yNDcxLDYgKzI0Nzcs NyBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3Rt dCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRT UkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5 LT5oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gcHN0YXRlLT5wX2hhc0dlbmVyYXRlZFZpcnR1YWw7 CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI4Mzcs NiArMjg0NCw3IEBAIHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IFBMQXNzaWduU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5w X2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNU YXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+ aGFzR2VuZXJhdGVkVmlydHVhbCA9IHBzdGF0ZS0+cF9oYXNHZW5lcmF0ZWRWaXJ0dWFsOwog CiAJZm9yZWFjaChsLCBzc3RtdC0+bG9ja2luZ0NsYXVzZSkKIAl7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpp bmRleCA0ZDU4Mjk1MGI3Mi4uNmM4MDQwNWM0OGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjQx LDcgKzY0MSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8c3RyPgkJ b3B0X2V4aXN0aW5nX3dpbmRvd19uYW1lCiAldHlwZSA8Ym9vbGVhbj4gb3B0X2lmX25vdF9l eGlzdHMKICV0eXBlIDxib29sZWFuPiBvcHRfdW5pcXVlX251bGxfdHJlYXRtZW50Ci0ldHlw ZSA8aXZhbD4JZ2VuZXJhdGVkX3doZW4gb3ZlcnJpZGVfa2luZAorJXR5cGUgPGl2YWw+CWdl bmVyYXRlZF93aGVuIG92ZXJyaWRlX2tpbmQgb3B0X3ZpcnR1YWxfb3Jfc3RvcmVkCiAldHlw ZSA8cGFydHNwZWM+CVBhcnRpdGlvblNwZWMgT3B0UGFydGl0aW9uU3BlYwogJXR5cGUgPHBh cnRlbGVtPglwYXJ0X2VsZW0KICV0eXBlIDxsaXN0PgkJcGFydF9wYXJhbXMKQEAgLTc5MSw3 ICs3OTEsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAq cmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVVOTElTVEVOIFVOTE9H R0VEIFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAKIAlWQUNVVU0gVkFMSUQgVkFMSURBVEUg VkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlORwotCVZF UkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9MQVRJTEUKKwlWRVJCT1NFIFZFUlNJT05f UCBWSUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUKIAogCVdIRU4gV0hFUkUgV0hJVEVTUEFD RV9QIFdJTkRPVyBXSVRIIFdJVEhJTiBXSVRIT1VUIFdPUksgV1JBUFBFUiBXUklURQogCkBA IC00MDI1LDcgKzQwMjUsNyBAQCBDb2xDb25zdHJhaW50RWxlbToKIAkJCQkJbi0+bG9jYXRp b24gPSBAMTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgR0VORVJBVEVE IGdlbmVyYXRlZF93aGVuIEFTICcoJyBhX2V4cHIgJyknIFNUT1JFRAorCQkJfCBHRU5FUkFU RUQgZ2VuZXJhdGVkX3doZW4gQVMgJygnIGFfZXhwciAnKScgb3B0X3ZpcnR1YWxfb3Jfc3Rv cmVkCiAJCQkJewogCQkJCQlDb25zdHJhaW50ICpuID0gbWFrZU5vZGUoQ29uc3RyYWludCk7 CiAKQEAgLTQwMzMsNiArNDAzMyw3IEBAIENvbENvbnN0cmFpbnRFbGVtOgogCQkJCQluLT5n ZW5lcmF0ZWRfd2hlbiA9ICQyOwogCQkJCQluLT5yYXdfZXhwciA9ICQ1OwogCQkJCQluLT5j b29rZWRfZXhwciA9IE5VTEw7CisJCQkJCW4tPmdlbmVyYXRlZF9raW5kID0gJDc7CiAJCQkJ CW4tPmxvY2F0aW9uID0gQDE7CiAKIAkJCQkJLyoKQEAgLTQwNzksNiArNDA4MCwxMiBAQCBn ZW5lcmF0ZWRfd2hlbjoKIAkJCXwgQlkgREVGQVVMVAl7ICQkID0gQVRUUklCVVRFX0lERU5U SVRZX0JZX0RFRkFVTFQ7IH0KIAkJOwogCitvcHRfdmlydHVhbF9vcl9zdG9yZWQ6CisJCQlT VE9SRUQJCQl7ICQkID0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQ7IH0KKwkJCXwgVklS VFVBTAkJeyAkJCA9IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTDsgfQorCQkJfCAvKkVN UFRZKi8JCXsgJCQgPSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUw7IH0KKwkJOworCiAv KgogICogQ29uc3RyYWludEF0dHIgcmVwcmVzZW50cyBjb25zdHJhaW50IGF0dHJpYnV0ZXMs IHdoaWNoIHdlIHBhcnNlIGFzIGlmCiAgKiB0aGV5IHdlcmUgaW5kZXBlbmRlbnQgY29uc3Ry YWludCBjbGF1c2VzLCBpbiBvcmRlciB0byBhdm9pZCBzaGlmdC9yZWR1Y2UKQEAgLTE3ODgy LDYgKzE3ODg5LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBWRVJTSU9OX1AKIAkJ CXwgVklFVwogCQkJfCBWSUVXUworCQkJfCBWSVJUVUFMCiAJCQl8IFZPTEFUSUxFCiAJCQl8 IFdISVRFU1BBQ0VfUAogCQkJfCBXSVRISU4KQEAgLTE4NTM4LDYgKzE4NTQ2LDcgQEAgYmFy ZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBWRVJTSU9OX1AKIAkJCXwgVklFVwogCQkJfCBWSUVX UworCQkJfCBWSVJUVUFMCiAJCQl8IFZPTEFUSUxFCiAJCQl8IFdIRU4KIAkJCXwgV0hJVEVT UEFDRV9QCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKaW5kZXggODExODAzNjQ5NWIu LjQ4NTI0YWMzZmMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xh dXNlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jCkBAIC0yMDcs NiArMjA3LDEwIEBAIHNldFRhcmdldFRhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VW YXIgKnJlbGF0aW9uLAogCXBzdGF0ZS0+cF90YXJnZXRfcmVsYXRpb24gPSBwYXJzZXJPcGVu VGFibGUocHN0YXRlLCByZWxhdGlvbiwKIAkJCQkJCQkJCQkJCVJvd0V4Y2x1c2l2ZUxvY2sp OwogCisJaWYgKHBzdGF0ZS0+cF90YXJnZXRfcmVsYXRpb24tPnJkX2F0dC0+Y29uc3RyICYm CisJCXBzdGF0ZS0+cF90YXJnZXRfcmVsYXRpb24tPnJkX2F0dC0+Y29uc3RyLT5oYXNfZ2Vu ZXJhdGVkX3ZpcnR1YWwpCisJCXBzdGF0ZS0+cF9oYXNHZW5lcmF0ZWRWaXJ0dWFsID0gdHJ1 ZTsKKwogCS8qCiAJICogTm93IGJ1aWxkIGFuIFJURSBhbmQgYSBQYXJzZU5hbWVzcGFjZUl0 ZW0uCiAJICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRp b24uYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCmluZGV4IDJmNjRl YWYwZTM3Li5iODY0NzQ5ZjA5YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3JlbGF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9u LmMKQEAgLTcwNCw3ICs3MDQsMTEgQEAgc2Nhbk5TSXRlbUZvckNvbHVtbihQYXJzZVN0YXRl ICpwc3RhdGUsIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtLAogCQkJCQkJY29sbmFtZSks CiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwogCi0JLyog SW4gZ2VuZXJhdGVkIGNvbHVtbiwgbm8gc3lzdGVtIGNvbHVtbiBpcyBhbGxvd2VkIGV4Y2Vw dCB0YWJsZU9pZCAqLworCS8qCisJICogSW4gZ2VuZXJhdGVkIGNvbHVtbiwgbm8gc3lzdGVt IGNvbHVtbiBpcyBhbGxvd2VkIGV4Y2VwdCB0YWJsZU9pZC4KKwkgKiAoUmVxdWlyZWQgZm9y IHN0b3JlZCBnZW5lcmF0ZWQsIGJ1dCB3ZSBhbHNvIGRvIGl0IGZvciB2aXJ0dWFsIGdlbmVy YXRlZAorCSAqIGZvciBub3cgZm9yIGNvbnNpc3RlbmN5LikKKwkgKi8KIAlpZiAocHN0YXRl LT5wX2V4cHJfa2luZCA9PSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTiAmJgogCQlhdHRu dW0gPCBJbnZhbGlkQXR0ck51bWJlciAmJiBhdHRudW0gIT0gVGFibGVPaWRBdHRyaWJ1dGVO dW1iZXIpCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0xNTExLDYgKzE1MTUsOSBAQCBhZGRSYW5n ZVRhYmxlRW50cnkoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCXJ0ZS0+ZXJlZiA9IG1ha2VBbGlh cyhyZWZuYW1lLCBOSUwpOwogCWJ1aWxkUmVsYXRpb25BbGlhc2VzKHJlbC0+cmRfYXR0LCBh bGlhcywgcnRlLT5lcmVmKTsKIAorCWlmIChyZWwtPnJkX2F0dC0+Y29uc3RyICYmIHJlbC0+ cmRfYXR0LT5jb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKKwkJcHN0YXRlLT5wX2hh c0dlbmVyYXRlZFZpcnR1YWwgPSB0cnVlOworCiAJLyoKIAkgKiBTZXQgZmxhZ3MgYW5kIGlu aXRpYWxpemUgYWNjZXNzIHBlcm1pc3Npb25zLgogCSAqCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYwppbmRleCA2MzljZmE0NDNlMi4uMGFlNzMxODYxYTYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtNzYwLDEwICs3NjAsMzYgQEAgdHJhbnNmb3Jt Q29sdW1uRGVmaW5pdGlvbihDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBDb2x1bW5EZWYgKmNv bHVtbikKIAkJCQkJCQkJCWNvbHVtbi0+Y29sbmFtZSwgY3h0LT5yZWxhdGlvbi0+cmVsbmFt ZSksCiAJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihjeHQtPnBzdGF0ZSwKIAkJCQkJCQkJ CQkJCWNvbnN0cmFpbnQtPmxvY2F0aW9uKSkpOwotCQkJCWNvbHVtbi0+Z2VuZXJhdGVkID0g QVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQ7CisJCQkJY29sdW1uLT5nZW5lcmF0ZWQgPSBj b25zdHJhaW50LT5nZW5lcmF0ZWRfa2luZDsKIAkJCQljb2x1bW4tPnJhd19kZWZhdWx0ID0g Y29uc3RyYWludC0+cmF3X2V4cHI7CiAJCQkJQXNzZXJ0KGNvbnN0cmFpbnQtPmNvb2tlZF9l eHByID09IE5VTEwpOwogCQkJCXNhd19nZW5lcmF0ZWQgPSB0cnVlOworCisJCQkJLyoKKwkJ CQkgKiBUT0RPOiBQcmV2ZW50IHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgZnJvbSBoYXZp bmcgYQorCQkJCSAqIGRvbWFpbiB0eXBlLiAgV2Ugd291bGQgaGF2ZSB0byBlbmZvcmNlIGRv bWFpbiBjb25zdHJhaW50cworCQkJCSAqIHdoZW4gY29sdW1ucyB1bmRlcmx5aW5nIHRoZSBn ZW5lcmF0ZWQgY29sdW1uIGNoYW5nZS4gIFRoaXMKKwkJCQkgKiBjb3VsZCBwb3NzaWJseSBi ZSBpbXBsZW1lbnRlZCwgYnV0IGl0J3Mgbm90LgorCQkJCSAqCisJCQkJICogWFhYIElmIGNv bHVtbi0+dHlwZU5hbWUgaXMgbm90IHNldCwgdGhlbiB0aGlzIGNvbHVtbgorCQkJCSAqIGRl ZmluaXRpb24gaXMgcHJvYmFibHkgYSBwYXJ0aXRpb24gZGVmaW5pdGlvbiBhbmQgd2lsbAor CQkJCSAqIHByZXN1bWFibHkgZ2V0IGl0cyBwcmUtdmV0dGVkIHR5cGUgZnJvbSBlbHNld2hl cmUuICBJZiB0aGF0CisJCQkJICogZG9lc24ndCBob2xkLCBtYXliZSB0aGlzIGNoZWNrIG5l ZWRzIHRvIGJlIG1vdmVkIGVsc2V3aGVyZS4KKwkJCQkgKi8KKwkJCQlpZiAoY29sdW1uLT5n ZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMICYmIGNvbHVtbi0+dHlw ZU5hbWUpCisJCQkJeworCQkJCQlUeXBlCQljdHlwZTsKKworCQkJCQljdHlwZSA9IHR5cGVu YW1lVHlwZShjeHQtPnBzdGF0ZSwgY29sdW1uLT50eXBlTmFtZSwgTlVMTCk7CisJCQkJCWlm ICgoKEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKGN0eXBlKSktPnR5cHR5cGUgPT0gVFlQVFlQ RV9ET01BSU4pCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJCSBlcnJtc2coInZpcnR1YWwg Z2VuZXJhdGVkIGNvbHVtbiBcIiVzXCIgY2Fubm90IGhhdmUgYSBkb21haW4gdHlwZSIsCisJ CQkJCQkJCQkJY29sdW1uLT5jb2xuYW1lKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlv bihjeHQtPnBzdGF0ZSwKKwkJCQkJCQkJCQkJCQljb2x1bW4tPmxvY2F0aW9uKSkpOworCQkJ CQlSZWxlYXNlU3lzQ2FjaGUoY3R5cGUpOworCQkJCX0KIAkJCQlicmVhazsKIAogCQkJY2Fz ZSBDT05TVFJfQ0hFQ0s6CkBAIC04NDgsNiArODc0LDE4IEBAIHRyYW5zZm9ybUNvbHVtbkRl ZmluaXRpb24oQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgQ29sdW1uRGVmICpjb2x1bW4pCiAJ CQkJCQkJY29sdW1uLT5jb2xuYW1lLCBjeHQtPnJlbGF0aW9uLT5yZWxuYW1lKSwKIAkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihjeHQtPnBzdGF0ZSwKIAkJCQkJCQkJCQljb25zdHJhaW50 LT5sb2NhdGlvbikpKTsKKworCQkvKgorCQkgKiBUT0RPOiBTdHJhaWdodGZvcndhcmQgbm90 LW51bGwgY29uc3RyYWludHMgd29uJ3Qgd29yayBvbiB2aXJ0dWFsCisJCSAqIGdlbmVyYXRl ZCBjb2x1bW5zLCBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1cHBvcnQgZm9yIGV4cGFuZGluZyB0 aGUKKwkJICogY29sdW1uIHdoZW4gdGhlIGNvbnN0cmFpbnQgaXMgY2hlY2tlZC4gIE1heWJl IHdlIGNvdWxkIGNvbnZlcnQgdGhlCisJCSAqIG5vdC1udWxsIGNvbnN0cmFpbnQgaW50byBh IGZ1bGwgY2hlY2sgY29uc3RyYWludCwgc28gdGhhdCB0aGUKKwkJICogZ2VuZXJhdGlvbiBl eHByZXNzaW9uIGNhbiBiZSBleHBhbmRlZCBhdCBjaGVjayB0aW1lLgorCQkgKi8KKwkJaWYg KGNvbHVtbi0+aXNfbm90X251bGwgJiYgY29sdW1uLT5nZW5lcmF0ZWQgPT0gQVRUUklCVVRF X0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJub3QtbnVs bCBjb25zdHJhaW50cyBhcmUgbm90IHN1cHBvcnRlZCBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW5zIikpKTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bn b3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggZDJiMzVjZmI5NmQuLmU0NGVjOGFlNjQ0IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisr KyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTI3 LDYgKzI3LDcgQEAKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2FscHJvdG8uaCIKICNp bmNsdWRlICJyZXBsaWNhdGlvbi9vcmlnaW4uaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9w Z291dHB1dC5oIgorI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNs dWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCiAjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCkBAIC05OTYsNyArOTk3LDcgQEAgcGdvdXRwdXRf cm93X2ZpbHRlcl9pbml0KFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25z LAogCQkJCWNvbnRpbnVlOwogCiAJCQlmb3JlYWNoKGxjLCByZm5vZGVzW2lkeF0pCi0JCQkJ ZmlsdGVycyA9IGxhcHBlbmQoZmlsdGVycywgc3RyaW5nVG9Ob2RlKChjaGFyICopIGxmaXJz dChsYykpKTsKKwkJCQlmaWx0ZXJzID0gbGFwcGVuZChmaWx0ZXJzLCBleHBhbmRfZ2VuZXJh dGVkX2NvbHVtbnNfaW5fZXhwcihzdHJpbmdUb05vZGUoKGNoYXIgKikgbGZpcnN0KGxjKSks IHJlbGF0aW9uKSk7CiAKIAkJCS8qIGNvbWJpbmUgdGhlIHJvdyBmaWx0ZXIgYW5kIGNhY2hl IHRoZSBFeHByU3RhdGUgKi8KIAkJCXJmbm9kZSA9IG1ha2Vfb3JjbGF1c2UoZmlsdGVycyk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMgYi9z cmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKaW5kZXggOGEyOWZiYmM0NjUu LjJlNWI0OGE1MzNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVI YW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCkBA IC04OSw2ICs4OSw4IEBAIHN0YXRpYyBMaXN0ICptYXRjaExvY2tzKENtZFR5cGUgZXZlbnQs IFJlbGF0aW9uIHJlbGF0aW9uLAogCQkJCQkJaW50IHZhcm5vLCBRdWVyeSAqcGFyc2V0cmVl LCBib29sICpoYXNVcGRhdGUpOwogc3RhdGljIFF1ZXJ5ICpmaXJlUklScnVsZXMoUXVlcnkg KnBhcnNldHJlZSwgTGlzdCAqYWN0aXZlUklScyk7CiBzdGF0aWMgQml0bWFwc2V0ICphZGp1 c3Rfdmlld19jb2x1bW5fc2V0KEJpdG1hcHNldCAqY29scywgTGlzdCAqdGFyZ2V0bGlzdCk7 CitzdHJ1Y3QgZXhwYW5kX2dlbmVyYXRlZF9jb250ZXh0Oworc3RhdGljIFF1ZXJ5ICpleHBh bmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fcXVlcnkoUXVlcnkgKnF1ZXJ5LCBzdHJ1Y3QgZXhw YW5kX2dlbmVyYXRlZF9jb250ZXh0ICpjb250ZXh0KTsKIAogCiAvKgpAQCAtOTczLDcgKzk3 NSw4IEBAIHJld3JpdGVUYXJnZXRMaXN0SVUoTGlzdCAqdGFyZ2V0TGlzdCwKIAkJaWYgKGF0 dF90dXAtPmF0dGdlbmVyYXRlZCkKIAkJewogCQkJLyoKLQkJCSAqIHN0b3JlZCBnZW5lcmF0 ZWQgY29sdW1uIHdpbGwgYmUgZml4ZWQgaW4gZXhlY3V0b3IKKwkJCSAqIHZpcnR1YWwgZ2Vu ZXJhdGVkIGNvbHVtbiBzdG9yZXMgYSBudWxsIHZhbHVlOyBzdG9yZWQgZ2VuZXJhdGVkCisJ CQkgKiBjb2x1bW4gd2lsbCBiZSBmaXhlZCBpbiBleGVjdXRvcgogCQkJICovCiAJCQluZXdf dGxlID0gTlVMTDsKIAkJfQpAQCAtNDM0MSw2ICs0MzQ0LDE1MCBAQCBSZXdyaXRlUXVlcnko UXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqcmV3cml0ZV9ldmVudHMsIGludCBvcmlnX3J0X2xl bmd0aCkKIH0KIAogCitzdGF0aWMgTm9kZSAqCitleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNf aW5fZXhwcl9tdXRhdG9yKE5vZGUgKm5vZGUsIFJlbGF0aW9uIHJlbCkKK3sKKwlpZiAobm9k ZSA9PSBOVUxMKQorCQlyZXR1cm4gTlVMTDsKKworCWlmIChJc0Eobm9kZSwgVmFyKSkKKwl7 CisJCVZhcgkJICAgKnYgPSAoVmFyICopIG5vZGU7CisJCUF0dHJOdW1iZXIJYXR0bnVtID0g di0+dmFyYXR0bm87CisKKwkJaWYgKGF0dG51bSA+IDAgJiYgVHVwbGVEZXNjQXR0cihSZWxh dGlvbkdldERlc2NyKHJlbCksIGF0dG51bSAtIDEpLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklC VVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQl7CisJCQlub2RlID0gYnVpbGRfY29sdW1uX2Rl ZmF1bHQocmVsLCBhdHRudW0pOworCQkJaWYgKG5vZGUgPT0gTlVMTCkKKwkJCQllbG9nKEVS Uk9SLCAibm8gZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZvdW5kIGZvciBjb2x1bW4gbnVtYmVy ICVkIG9mIHRhYmxlIFwiJXNcIiIsCisJCQkJCSBhdHRudW0sIFJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbCkpOworCQkJQ2hhbmdlVmFyTm9kZXMobm9kZSwgMSwgdi0+dmFybm8sIDAp OworCQl9CisKKwkJcmV0dXJuIG5vZGU7CisJfQorCWVsc2UKKwkJcmV0dXJuIGV4cHJlc3Np b25fdHJlZV9tdXRhdG9yKG5vZGUsIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHBy X211dGF0b3IsIHJlbCk7Cit9CisKKworTm9kZSAqCitleHBhbmRfZ2VuZXJhdGVkX2NvbHVt bnNfaW5fZXhwcihOb2RlICpub2RlLCBSZWxhdGlvbiByZWwpCit7CisJVHVwbGVEZXNjCXR1 cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwlpZiAodHVwZGVzYy0+Y29uc3Ry ICYmIHR1cGRlc2MtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCQlyZXR1cm4g ZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwKKwkJCQkJCQkJCSAgIGV4cGFuZF9nZW5l cmF0ZWRfY29sdW1uc19pbl9leHByX211dGF0b3IsCisJCQkJCQkJCQkgICByZWwpOworCWVs c2UKKwkJcmV0dXJuIG5vZGU7Cit9CisKK3N0cnVjdCBleHBhbmRfZ2VuZXJhdGVkX2NvbnRl eHQKK3sKKwkvKiBsaXN0IG9mIHJhbmdlIHRhYmxlcywgaW5uZXJtb3N0IGxhc3QgKi8KKwlM aXN0CSAgICpydGFibGVzOworfTsKKworc3RhdGljIE5vZGUgKgorZXhwYW5kX2dlbmVyYXRl ZF9jb2x1bW5zX2luX3F1ZXJ5X211dGF0b3IoTm9kZSAqbm9kZSwgc3RydWN0IGV4cGFuZF9n ZW5lcmF0ZWRfY29udGV4dCAqY29udGV4dCkKK3sKKwlpZiAobm9kZSA9PSBOVUxMKQorCQly ZXR1cm4gTlVMTDsKKworCWlmIChJc0Eobm9kZSwgVmFyKSkKKwl7CisJCVZhcgkJICAgKnYg PSAoVmFyICopIG5vZGU7CisJCU9pZAkJCXJlbGlkOworCQlBdHRyTnVtYmVyCWF0dG51bTsK KwkJTGlzdAkgICAqcnRhYmxlID0gbGlzdF9udGhfbm9kZShMaXN0LAorCQkJCQkJCQkJCSAg IGNvbnRleHQtPnJ0YWJsZXMsCisJCQkJCQkJCQkJICAgbGlzdF9sZW5ndGgoY29udGV4dC0+ cnRhYmxlcykgLSB2LT52YXJsZXZlbHN1cCAtIDEpOworCisJCXJlbGlkID0gcnRfZmV0Y2go di0+dmFybm8sIHJ0YWJsZSktPnJlbGlkOworCQlhdHRudW0gPSB2LT52YXJhdHRubzsKKwor CQlpZiAoIXJlbGlkIHx8ICFhdHRudW0pCisJCQlyZXR1cm4gbm9kZTsKKworCQlpZiAoZ2V0 X2F0dGdlbmVyYXRlZChyZWxpZCwgYXR0bnVtKSA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJ UlRVQUwpCisJCXsKKwkJCVJlbGF0aW9uCXJ0X2VudHJ5X3JlbGF0aW9uID0gdGFibGVfb3Bl bihyZWxpZCwgTm9Mb2NrKTsKKworCQkJbm9kZSA9IGJ1aWxkX2NvbHVtbl9kZWZhdWx0KHJ0 X2VudHJ5X3JlbGF0aW9uLCBhdHRudW0pOworCQkJaWYgKG5vZGUgPT0gTlVMTCkKKwkJCQll bG9nKEVSUk9SLCAibm8gZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZvdW5kIGZvciBjb2x1bW4g bnVtYmVyICVkIG9mIHRhYmxlIFwiJXNcIiIsCisJCQkJCSBhdHRudW0sIFJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJ0X2VudHJ5X3JlbGF0aW9uKSk7CisJCQlDaGFuZ2VWYXJOb2Rlcyhu b2RlLCAxLCB2LT52YXJubywgdi0+dmFybGV2ZWxzdXApOworCisJCQl0YWJsZV9jbG9zZShy dF9lbnRyeV9yZWxhdGlvbiwgTm9Mb2NrKTsKKwkJfQorCisJCXJldHVybiBub2RlOworCX0K KwllbHNlIGlmIChJc0Eobm9kZSwgUXVlcnkpKQorCXsKKwkJUXVlcnkJICAgKnF1ZXJ5ID0g KFF1ZXJ5ICopIG5vZGU7CisKKwkJcXVlcnkgPSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNf aW5fcXVlcnkocXVlcnksIGNvbnRleHQpOworCisJCXJldHVybiAoTm9kZSAqKSBxdWVyeTsK Kwl9CisJZWxzZQorCQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgZXhw YW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX3F1ZXJ5X211dGF0b3IsIGNvbnRleHQpOworfQor CisvKgorICogRXhwYW5kIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gYSBRdWVyeS4g IFdlIGRvIHNvbWUgb3B0aW1pemF0aW9ucyBoZXJlCisgKiB0byBhdm9pZCBkaWdnaW5nIHRo cm91Z2ggdGhlIHdob2xlIFF1ZXJ5IHVubGVzcyBuZWNlc3NhcnkuCisgKi8KK3N0YXRpYyBR dWVyeSAqCitleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fcXVlcnkoUXVlcnkgKnF1ZXJ5 LCBzdHJ1Y3QgZXhwYW5kX2dlbmVyYXRlZF9jb250ZXh0ICpjb250ZXh0KQoreworCWNvbnRl eHQtPnJ0YWJsZXMgPSBsYXBwZW5kKGNvbnRleHQtPnJ0YWJsZXMsIHF1ZXJ5LT5ydGFibGUp OworCisJLyoKKwkgKiBJZiBhbnkgdGFibGUgaW4gdGhlIHF1ZXJ5IGhhcyBhIHZpcnR1YWwg Y29sdW1uIG9yIHRoZXJlIGlzIGEgc3VibGluaywKKwkgKiB0aGVuIHdlIG5lZWQgdG8gZG8g dGhlIHdob2xlIHdhbGsuCisJICovCisJaWYgKHF1ZXJ5LT5oYXNHZW5lcmF0ZWRWaXJ0dWFs IHx8IHF1ZXJ5LT5oYXNTdWJMaW5rcykKKwl7CisJCXF1ZXJ5ID0gcXVlcnlfdHJlZV9tdXRh dG9yKHF1ZXJ5LAorCQkJCQkJCQkgICBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fcXVl cnlfbXV0YXRvciwKKwkJCQkJCQkJICAgY29udGV4dCwKKwkJCQkJCQkJICAgUVRXX0RPTlRf Q09QWV9RVUVSWSk7CisJfQorCisJLyoKKwkgKiBFbHNlIHdlIG9ubHkgbmVlZCB0byBwcm9j ZXNzIHN1YnF1ZXJpZXMuCisJICovCisJZWxzZQorCXsKKwkJTGlzdENlbGwgICAqbGM7CisK KwkJZm9yZWFjaChsYywgcXVlcnktPnJ0YWJsZSkKKwkJeworCQkJUmFuZ2VUYmxFbnRyeSAq cnRlID0gKFJhbmdlVGJsRW50cnkgKikgbGZpcnN0KGxjKTsKKworCQkJaWYgKHJ0ZS0+cnRl a2luZCA9PSBSVEVfU1VCUVVFUlkpCisJCQkJcnRlLT5zdWJxdWVyeSA9IGV4cGFuZF9nZW5l cmF0ZWRfY29sdW1uc19pbl9xdWVyeShydGUtPnN1YnF1ZXJ5LCBjb250ZXh0KTsKKwkJfQor CisJCWZvcmVhY2gobGMsIHF1ZXJ5LT5jdGVMaXN0KQorCQl7CisJCQlDb21tb25UYWJsZUV4 cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKKworCQkJY3RlLT5j dGVxdWVyeSA9IChOb2RlICopIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9xdWVyeShj YXN0Tm9kZShRdWVyeSwgY3RlLT5jdGVxdWVyeSksIGNvbnRleHQpOworCQl9CisJfQorCisJ Y29udGV4dC0+cnRhYmxlcyA9IGxpc3RfdHJ1bmNhdGUoY29udGV4dC0+cnRhYmxlcywgbGlz dF9sZW5ndGgoY29udGV4dC0+cnRhYmxlcykgLSAxKTsKKworCXJldHVybiBxdWVyeTsKK30K KworCiAvKgogICogUXVlcnlSZXdyaXRlIC0KICAqCSAgUHJpbWFyeSBlbnRyeSBwb2ludCB0 byB0aGUgcXVlcnkgcmV3cml0ZXIuCkBAIC00Mzk2LDYgKzQ1NDMsMjEgQEAgUXVlcnlSZXdy aXRlKFF1ZXJ5ICpwYXJzZXRyZWUpCiAJLyoKIAkgKiBTdGVwIDMKIAkgKgorCSAqIEV4cGFu ZCB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zLgorCSAqLworCWZvcmVhY2gobCwgcXVlcnls aXN0KQorCXsKKwkJUXVlcnkJICAgKnF1ZXJ5ID0gKFF1ZXJ5ICopIGxmaXJzdChsKTsKKwkJ c3RydWN0IGV4cGFuZF9nZW5lcmF0ZWRfY29udGV4dCBjb250ZXh0OworCisJCWNvbnRleHQu cnRhYmxlcyA9IE5JTDsKKworCQlxdWVyeSA9IGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19p bl9xdWVyeShxdWVyeSwgJmNvbnRleHQpOworCX0KKworCS8qCisJICogU3RlcCA0CisJICoK IAkgKiBEZXRlcm1pbmUgd2hpY2gsIGlmIGFueSwgb2YgdGhlIHJlc3VsdGluZyBxdWVyaWVz IGlzIHN1cHBvc2VkIHRvIHNldAogCSAqIHRoZSBjb21tYW5kLXJlc3VsdCB0YWc7IGFuZCB1 cGRhdGUgdGhlIGNhblNldFRhZyBmaWVsZHMgYWNjb3JkaW5nbHkuCiAJICoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BhcnRjYWNoZS5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcGFydGNhY2hlLmMKaW5kZXggYmVlYzZjZGRiYzQuLjFkZWU3YzFlODk5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wYXJ0Y2FjaGUuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wYXJ0Y2FjaGUuYwpAQCAtMjYsNiArMjYsNyBA QAogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9v cHRpbWl6ZXIuaCIKICNpbmNsdWRlICJwYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5oIgorI2lu Y2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxz L21lbXV0aWxzLmgiCkBAIC0xNDgsNiArMTQ5LDggQEAgUmVsYXRpb25CdWlsZFBhcnRpdGlv bktleShSZWxhdGlvbiByZWxhdGlvbikKIAkJZXhwciA9IHN0cmluZ1RvTm9kZShleHByU3Ry aW5nKTsKIAkJcGZyZWUoZXhwclN0cmluZyk7CiAKKwkJZXhwciA9IGV4cGFuZF9nZW5lcmF0 ZWRfY29sdW1uc19pbl9leHByKGV4cHIsIHJlbGF0aW9uKTsKKwogCQkvKgogCQkgKiBSdW4g dGhlIGV4cHJlc3Npb25zIHRocm91Z2ggY29uc3Qtc2ltcGxpZmljYXRpb24gc2luY2UgdGhl IHBsYW5uZXIKIAkJICogd2lsbCBiZSBjb21wYXJpbmcgdGhlbSB0byBzaW1pbGFybHktcHJv Y2Vzc2VkIHF1YWwgY2xhdXNlIG9wZXJhbmRzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNh Y2hlLmMKaW5kZXggYjA5ZjZhOTBlNDQuLjc0NzMyMmU4MTM2IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3JlbGNhY2hlLmMKQEAgLTU4OCw2ICs1ODgsOCBAQCBSZWxhdGlvbkJ1aWxkVHVw bGVEZXNjKFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJY29uc3RyLT5oYXNfbm90X251bGwgPSB0 cnVlOwogCQlpZiAoYXR0cC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURf U1RPUkVEKQogCQkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCA9IHRydWU7CisJCWlm IChhdHRwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQor CQkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwgPSB0cnVlOwogCQlpZiAoYXR0cC0+ YXR0aGFzZGVmKQogCQkJbmRlZisrOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBlMzI0MDcwODI4 NC4uZjRiMTQ3ZTQ4YjQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMTYwMDQsNiArMTYwMDQsOSBA QCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0Ymlu Zm8pCiAJCQkJCQlpZiAodGJpbmZvLT5hdHRnZW5lcmF0ZWRbal0gPT0gQVRUUklCVVRFX0dF TkVSQVRFRF9TVE9SRUQpCiAJCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiBHRU5FUkFU RUQgQUxXQVlTIEFTICglcykgU1RPUkVEIiwKIAkJCQkJCQkJCQkJICB0YmluZm8tPmF0dHJk ZWZzW2pdLT5hZGVmX2V4cHIpOworCQkJCQkJZWxzZSBpZiAodGJpbmZvLT5hdHRnZW5lcmF0 ZWRbal0gPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCQkJCWFwcGVuZFBR RXhwQnVmZmVyKHEsICIgR0VORVJBVEVEIEFMV0FZUyBBUyAoJXMpIiwKKwkJCQkJCQkJCQkJ ICB0YmluZm8tPmF0dHJkZWZzW2pdLT5hZGVmX2V4cHIpOwogCQkJCQkJZWxzZQogCQkJCQkJ CWFwcGVuZFBRRXhwQnVmZmVyKHEsICIgREVGQVVMVCAlcyIsCiAJCQkJCQkJCQkJCSAgdGJp bmZvLT5hdHRyZGVmc1tqXS0+YWRlZl9leHByKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKaW5kZXggZDNkZDg3ODRkNjQuLjc5NDYxMGVlMDEwIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbApAQCAtMzU5NSwxMiArMzU5NSwxNCBAQAogCQljcmVhdGVfb3JkZXIgPT4g MywKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFRBQkxFIGR1bXBfdGVzdC50ZXN0X3RhYmxl X2dlbmVyYXRlZCAoCiAJCQkJCQkgICBjb2wxIGludCBwcmltYXJ5IGtleSwKLQkJCQkJCSAg IGNvbDIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGNvbDEgKiAyKSBzdG9yZWQKKwkJCQkJ CSAgIGNvbDIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGNvbDEgKiAyKSBzdG9yZWQsCisJ CQkJCQkgICBjb2wzIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChjb2wxICogMykgdmlydHVh bAogCQkJCQkgICApOycsCiAJCXJlZ2V4cCA9PiBxci9eCiAJCQlcUUNSRUFURSBUQUJMRSBk dW1wX3Rlc3QudGVzdF90YWJsZV9nZW5lcmF0ZWQgKFxFXG4KIAkJCVxzK1xRY29sMSBpbnRl Z2VyIE5PVCBOVUxMLFxFXG4KLQkJCVxzK1xRY29sMiBpbnRlZ2VyIEdFTkVSQVRFRCBBTFdB WVMgQVMgKChjb2wxICogMikpIFNUT1JFRFxFXG4KKwkJCVxzK1xRY29sMiBpbnRlZ2VyIEdF TkVSQVRFRCBBTFdBWVMgQVMgKChjb2wxICogMikpIFNUT1JFRCxcRVxuCisJCQlccytcUWNv bDMgaW50ZWdlciBHRU5FUkFURUQgQUxXQVlTIEFTICgoY29sMSAqIDMpKVxFXG4KIAkJCVwp OwogCQkJL3htcywKIAkJbGlrZSA9PgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBmNjdiZjBiODkyNS4uNzQ3 NGE0ODE1NTkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0yMDg5LDYgKzIwODksMTIgQEAgZGVzY3JpYmVP bmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkJCSAgIFBR Z2V0dmFsdWUocmVzLCBpLCBhdHRyZGVmX2NvbCkpOwogCQkJCW11c3RmcmVlID0gdHJ1ZTsK IAkJCX0KKwkJCWVsc2UgaWYgKGdlbmVyYXRlZFswXSA9PSBBVFRSSUJVVEVfR0VORVJBVEVE X1ZJUlRVQUwpCisJCQl7CisJCQkJZGVmYXVsdF9zdHIgPSBwc3ByaW50ZigiZ2VuZXJhdGVk IGFsd2F5cyBhcyAoJXMpIiwKKwkJCQkJCQkJCSAgIFBRZ2V0dmFsdWUocmVzLCBpLCBhdHRy ZGVmX2NvbCkpOworCQkJCW11c3RmcmVlID0gdHJ1ZTsKKwkJCX0KIAkJCWVsc2UKIAkJCQlk ZWZhdWx0X3N0ciA9IFBRZ2V0dmFsdWUocmVzLCBpLCBhdHRyZGVmX2NvbCk7CiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90dXBkZXNjLmggYi9zcmMvaW5jbHVkZS9hY2Nl c3MvdHVwZGVzYy5oCmluZGV4IDg5MzBhMjhkNjYwLi42ZWY0MDI0OTU4MyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3R1cGRlc2MuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nl c3MvdHVwZGVzYy5oCkBAIC00Myw2ICs0Myw3IEBAIHR5cGVkZWYgc3RydWN0IFR1cGxlQ29u c3RyCiAJdWludDE2CQludW1fY2hlY2s7CiAJYm9vbAkJaGFzX25vdF9udWxsOwogCWJvb2wJ CWhhc19nZW5lcmF0ZWRfc3RvcmVkOworCWJvb2wJCWhhc19nZW5lcmF0ZWRfdmlydHVhbDsK IH0gVHVwbGVDb25zdHI7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2F0dHJpYnV0ZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaApp bmRleCAxYzYyYjhiZmNiNS4uOGYxNThkYzYwODMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19h dHRyaWJ1dGUuaApAQCAtMjM0LDYgKzIzNCw3IEBAIE1BS0VfU1lTQ0FDSEUoQVRUTlVNLCBw Z19hdHRyaWJ1dGVfcmVsaWRfYXR0bnVtX2luZGV4LCAxMjgpOwogI2RlZmluZQkJICBBVFRS SUJVVEVfSURFTlRJVFlfQllfREVGQVVMVCAnZCcKIAogI2RlZmluZQkJICBBVFRSSUJVVEVf R0VORVJBVEVEX1NUT1JFRAkncycKKyNkZWZpbmUJCSAgQVRUUklCVVRFX0dFTkVSQVRFRF9W SVJUVUFMCSd2JwogCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NFX1RPX0NMSUVOVF9DT0RFICov CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBkZGZlZDAyZGIyMi4uMzE2M2ZmZjdk YjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9z 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 ZXhwZWN0ZWQvcGx0Y2xfdHJpZ2dlci5vdXQKaW5kZXggMDA4ZWExOTUwOTUuLjNiZjYzYmE2 MTMzIDEwMDY0NAotLS0gYS9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3RyaWdnZXIub3V0 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 Yy9wbC90Y2wvcGx0Y2wuYwppbmRleCAxOGQxNGEyYjk4Mi4uZmMyMzk5ZmM5NzggMTAwNjQ0 Ci0tLSBhL3NyYy9wbC90Y2wvcGx0Y2wuYworKysgYi9zcmMvcGwvdGNsL3BsdGNsLmMKQEAg LTMxMTQsNiArMzExNCw5IEBAIHBsdGNsX2J1aWxkX3R1cGxlX2FyZ3VtZW50KEhlYXBUdXBs ZSB0dXBsZSwgVHVwbGVEZXNjIHR1cGRlc2MsIGJvb2wgaW5jbHVkZV9nZW5lCiAJCQkvKiBk b24ndCBpbmNsdWRlIHVubGVzcyByZXF1ZXN0ZWQgKi8KIAkJCWlmICghaW5jbHVkZV9nZW5l cmF0ZWQpCiAJCQkJY29udGludWU7CisJCQkvKiBuZXZlciBpbmNsdWRlIHZpcnR1YWwgY29s dW1ucyAqLworCQkJaWYgKGF0dC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFU RURfVklSVFVBTCkKKwkJCQljb250aW51ZTsKIAkJfQogCiAJCS8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdp dCBhL3NyYy9wbC90Y2wvc3FsL3BsdGNsX3RyaWdnZXIuc3FsIGIvc3JjL3BsL3RjbC9zcWwv cGx0Y2xfdHJpZ2dlci5zcWwKaW5kZXggMmRiNzVhMzMzYTAuLmU0YWNmNmE1ZmQ5IDEwMDY0 NAotLS0gYS9zcmMvcGwvdGNsL3NxbC9wbHRjbF90cmlnZ2VyLnNxbAorKysgYi9zcmMvcGwv dGNsL3NxbC9wbHRjbF90cmlnZ2VyLnNxbApAQCAtNzMsNyArNzMsOCBAQCBDUkVBVEUgVEFC TEUgdHJpZ2dlcl90ZXN0ICgKIAogQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0 ZWQgKAogICAgaSBpbnQsCi0gICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikg U1RPUkVECisgICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVELAor ICAgayBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDMpIFZJUlRVQUwKICk7CiAKIENS RUFURSBWSUVXIHRyaWdnZXJfdGVzdF92aWV3IEFTIFNFTEVDVCBpLCB2IEZST00gdHJpZ2dl cl90ZXN0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVf dGFibGVfbGlrZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJs ZV9saWtlLm91dAppbmRleCAwZWQ5NGYxZDJmYi4uNGVmOGEzMzg1OGMgMTAwNjQ0Ci0tLSBh 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 ZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKaW5kZXggZGQ3NGExYTlmMGIuLmM3NGQ2YjRl NWNmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9z dG9yZWQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0 b3JlZC5vdXQKQEAgLTEsNSArMSw1IEBACiAtLSBzYW5pdHkgY2hlY2sgb2Ygc3lzdGVtIGNh dGFsb2cKLVNFTEVDVCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdf YXR0cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycpOworU0VMRUNU IGF0dHJlbGlkLCBhdHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hF UkUgYXR0Z2VuZXJhdGVkIE5PVCBJTiAoJycsICdzJywgJ3YnKTsKICBhdHRyZWxpZCB8IGF0 dG5hbWUgfCBhdHRnZW5lcmF0ZWQgCiAtLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLQogKDAgcm93cykKQEAgLTEwOTEsOSArMTA5MSw5IEBAIFNFTEVDVCAqIEZST00gZ3Rl c3QyOTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGEgU0VUIEVYUFJFU1NJ T04gQVMgKGEgKiAzKTsgIC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRp b24gImd0ZXN0MjkiIGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4KIEFMVEVSIFRBQkxFIGd0 ZXN0MjkgQUxURVIgQ09MVU1OIGEgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKLUVSUk9S OiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgc3RvcmVkIGdl bmVyYXRlZCBjb2x1bW4KK0VSUk9SOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3Qy OSIgaXMgbm90IGEgZ2VuZXJhdGVkIGNvbHVtbgogQUxURVIgVEFCTEUgZ3Rlc3QyOSBBTFRF UiBDT0xVTU4gYSBEUk9QIEVYUFJFU1NJT04gSUYgRVhJU1RTOyAgLS0gbm90aWNlCi1OT1RJ Q0U6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBzdG9yZWQg Z2VuZXJhdGVkIGNvbHVtbiwgc2tpcHBpbmcKK05PVElDRTogIGNvbHVtbiAiYSIgb2YgcmVs YXRpb24gImd0ZXN0MjkiIGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4sIHNraXBwaW5nCiAt LSBDaGFuZ2UgdGhlIGV4cHJlc3Npb24KIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09M VU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3Qy OTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0 b3JlZC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFs Lm91dApzaW1pbGFyaXR5IGluZGV4IDcwJQpjb3B5IGZyb20gc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9nZW5lcmF0ZWRfc3RvcmVkLm91dApjb3B5IHRvIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwub3V0CmluZGV4IGRkNzRhMWE5ZjBiLi4xNmM4 ZTBlZGUxNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0 ZWRfc3RvcmVkLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRl ZF92aXJ0dWFsLm91dApAQCAtMSwxNSArMSwxNSBAQAogLS0gc2FuaXR5IGNoZWNrIG9mIHN5 c3RlbSBjYXRhbG9nCi1TRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBG Uk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnKTsK K1NFTEVDVCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmli dXRlIFdIRVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycsICd2Jyk7CiAgYXR0cmVs aWQgfCBhdHRuYW1lIHwgYXR0Z2VuZXJhdGVkIAogLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKLUNSRUFURSBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3Jl ZF90ZXN0czsKLUdSQU5UIFVTQUdFIE9OIFNDSEVNQSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3Rz IFRPIFBVQkxJQzsKLVNFVCBzZWFyY2hfcGF0aCA9IGdlbmVyYXRlZF9zdG9yZWRfdGVzdHM7 Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoNTUpIFNUT1JFRCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QxIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JF RCk7Ci1TRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0LCBp c19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJlc3Npb24gRlJPTSBp bmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJh dGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMjsKK0NSRUFURSBTQ0hFTUEgZ2VuZXJh dGVkX3ZpcnR1YWxfdGVzdHM7CitHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgZ2VuZXJhdGVkX3Zp cnR1YWxfdGVzdHMgVE8gUFVCTElDOworU0VUIHNlYXJjaF9wYXRoID0gZ2VuZXJhdGVkX3Zp cnR1YWxfdGVzdHM7CitDUkVBVEUgVEFCTEUgZ3Rlc3QwIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoNTUpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxF IGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBWSVJUVUFMKTsKK1NFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29s dW1uX2RlZmF1bHQsIGlzX251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdlbmVyYXRpb25fZXhw cmVzc2lvbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdIRVJFIHRhYmxlX3Nj aGVtYSA9ICdnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cycgT1JERVIgQlkgMSwgMjsKICB0YWJs ZV9uYW1lIHwgY29sdW1uX25hbWUgfCBjb2x1bW5fZGVmYXVsdCB8IGlzX251bGxhYmxlIHwg aXNfZ2VuZXJhdGVkIHwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIAogLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZ3Rlc3QwICAgICB8IGEgICAgICAgICAg IHwgICAgICAgICAgICAgICAgfCBOTyAgICAgICAgICB8IE5FVkVSICAgICAgICB8IApAQCAt MTgsODkgKzE4LDg5IEBAIFNFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29sdW1u X2RlZmF1bHQsIGlzX251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdlbmVyCiAgZ3Rlc3QxICAg ICB8IGIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCBZRVMgICAgICAgICB8IEFMV0FZ UyAgICAgICB8IChhICogMikKICg0IHJvd3MpCiAKLVNFTEVDVCB0YWJsZV9uYW1lLCBjb2x1 bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1 bW5fY29sdW1uX3VzYWdlIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfc3RvcmVk X3Rlc3RzJyBPUkRFUiBCWSAxLCAyLCAzOworU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9u YW1lLCBkZXBlbmRlbnRfY29sdW1uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbl9j b2x1bW5fdXNhZ2UgV0hFUkUgdGFibGVfc2NoZW1hID0gJ2dlbmVyYXRlZF92aXJ0dWFsX3Rl c3RzJyBPUkRFUiBCWSAxLCAyLCAzOwogIHRhYmxlX25hbWUgfCBjb2x1bW5fbmFtZSB8IGRl cGVuZGVudF9jb2x1bW4gCiAtLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0KICBndGVzdDEgICAgIHwgYSAgICAgICAgICAgfCBiCiAoMSByb3cpCiAKIFxk IGd0ZXN0MQotICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90 ZXN0cy5ndGVzdDEiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90 ZXN0cy5ndGVzdDEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBh ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKLSBiICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChh ICogMikgc3RvcmVkCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpCiBJbmRleGVzOgogICAgICJndGVzdDFf cGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChhKQogCiAtLSBkdXBsaWNhdGUgZ2VuZXJhdGVk Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAzKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8xIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRVQUwpOwogRVJST1I6ICBtdWx0aXBsZSBn ZW5lcmF0aW9uIGNsYXVzZXMgc3BlY2lmaWVkIGZvciBjb2x1bW4gImIiIG9mIHRhYmxlICJn dGVzdF9lcnJfMSIKLUxJTkUgMTogLi4uQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFNUT1JFRCBHRU5FUkFURUQgLi4uCitMSU5FIDE6IC4uLlJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgR0VORVJBVEVEIC4u LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KIC0tIHJlZmVyZW5jZXMgdG8gb3RoZXIgZ2VuZXJhdGVkIGNvbHVtbnMs IGluY2x1ZGluZyBzZWxmLXJlZmVyZW5jZXMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikg U1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTCk7CiBFUlJPUjog IGNhbm5vdCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiAiYiIgaW4gY29sdW1uIGdlbmVyYXRpb24g ZXhwcmVzc2lvbgotTElORSAxOiAuLi4yYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBTVE8uLi4KK0xJTkUgMTogLi4uMmEgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSLi4u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgogREVUQUlMOiAgQSBnZW5lcmF0ZWQgY29sdW1uIGNhbm5vdCByZWZlcmVu Y2UgYW5vdGhlciBnZW5lcmF0ZWQgY29sdW1uLgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8y YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBTVE9SRUQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAzKSBTVE9SRUQpOwor Q1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBjIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChiICogMykgVklSVFVBTCk7CiBFUlJPUjogIGNhbm5vdCB1c2UgZ2VuZXJhdGVk IGNvbHVtbiAiYiIgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbgotTElORSAxOiAu Li5BWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIg KiAzKSBTVE8uLi4KK0xJTkUgMTogLi4uWVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBjIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChiICogMykgVklSLi4uCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAg QSBnZW5lcmF0ZWQgY29sdW1uIGNhbm5vdCByZWZlcmVuY2UgYW5vdGhlciBnZW5lcmF0ZWQg Y29sdW1uLgogLS0gYSB3aG9sZS1yb3cgdmFyIGlzIGEgc2VsZi1yZWZlcmVuY2Ugb24gc3Rl cm9pZHMsIHNvIGRpc2FsbG93IHRoYXQgdG9vCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJj IChhIGludCBQUklNQVJZIEtFWSwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChu dW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgU1RPUkVEKTsKKyAgICBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgVklSVFVBTCk7CiBFUlJPUjog IGNhbm5vdCB1c2Ugd2hvbGUtcm93IHZhcmlhYmxlIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4 cHJlc3Npb24KLUxJTkUgMjogICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bV9u dWxscyhndGVzdF9lcnJfMmMpKSBTVE9SLi4uCitMSU5FIDI6ICAgICBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgVklSVC4uLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDog IFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBjb2x1bW4gdG8gZGVwZW5kIG9uIGl0 cyBvd24gdmFsdWUuCiAtLSBpbnZhbGlkIHJlZmVyZW5jZQotQ1JFQVRFIFRBQkxFIGd0ZXN0 X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YyAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzMgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogMikgVklSVFVBTCk7CiBF UlJPUjogIGNvbHVtbiAiYyIgZG9lcyBub3QgZXhpc3QKLUxJTkUgMTogLi4uXzMgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogMikgU1RPLi4u CitMSU5FIDE6IC4uLl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYyAqIDIpIFZJUi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGdlbmVyYXRpb24gZXhwcmVz c2lvbiBtdXN0IGJlIGltbXV0YWJsZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80IChhIGlu dCBQUklNQVJZIEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdBWVMgQVMg KHJhbmRvbSgpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80IChhIGludCBQ UklNQVJZIEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJh bmRvbSgpKSBWSVJUVUFMKTsKIEVSUk9SOiAgZ2VuZXJhdGlvbiBleHByZXNzaW9uIGlzIG5v dCBpbW11dGFibGUKIC0tIC4uLiBidXQgYmUgc3VyZSB0aGF0IHRoZSBpbW11dGFiaWxpdHkg dGVzdCBpcyBhY2N1cmF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQsIGIgdGV4dCBH RU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcgc2VjJykgU1RPUkVEKTsKK0NSRUFURSBUQUJM RSBndGVzdDIgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnIHNl YycpIFZJUlRVQUwpOwogRFJPUCBUQUJMRSBndGVzdDI7CiAtLSBjYW5ub3QgaGF2ZSBkZWZh dWx0L2lkZW50aXR5IGFuZCBnZW5lcmF0ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfNWEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBERUZBVUxUIDUgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzVhIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgREVGQVVMVCA1IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBWSVJUVUFMKTsKIEVSUk9SOiAgYm90aCBkZWZhdWx0IGFuZCBnZW5lcmF0aW9uIGV4cHJl c3Npb24gc3BlY2lmaWVkIGZvciBjb2x1bW4gImIiIG9mIHRhYmxlICJndGVzdF9lcnJfNWEi CiBMSU5FIDE6IC4uLiBndGVzdF9lcnJfNWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBE RUZBVUxUIDUgR0VORVJBVEVEIC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLUNSRUFURSBUQUJMRSBndGVzdF9l cnJfNWIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIGlk ZW50aXR5IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X2Vycl81YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgaWRlbnRpdHkgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwp OwogRVJST1I6ICBib3RoIGlkZW50aXR5IGFuZCBnZW5lcmF0aW9uIGV4cHJlc3Npb24gc3Bl Y2lmaWVkIGZvciBjb2x1bW4gImIiIG9mIHRhYmxlICJndGVzdF9lcnJfNWIiCiBMSU5FIDE6 IC4uLnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgaWRlbnRpdHkg R0VORVJBVEVEIC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIHJlZmVyZW5jZSB0byBzeXN0ZW0gY29sdW1u IG5vdCBhbGxvd2VkIGluIGdlbmVyYXRlZCBjb2x1bW4KIC0tIChleGNlcHQgdGFibGVvaWQs IHdoaWNoIHdlIHRlc3QgYmVsb3cpCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChhIGlu dCBQUklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcp IFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChhIGludCBQUklNQVJZIEtF WSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcpIFZJUlRVQUwpOwog RVJST1I6ICBjYW5ub3QgdXNlIHN5c3RlbSBjb2x1bW4gInhtaW4iIGluIGNvbHVtbiBnZW5l cmF0aW9uIGV4cHJlc3Npb24KIExJTkUgMTogLi4uYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIg Ym9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh4bWluIDw+IDM3Li4uCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0g dmFyaW91cyBwcm9oaWJpdGVkIGNvbnN0cnVjdHMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJf N2EgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhdmco YSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdhIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZnKGEpKSBWSVJUVUFMKTsKIEVS Uk9SOiAgYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdl bmVyYXRpb24gZXhwcmVzc2lvbnMKLUxJTkUgMTogLi4uN2EgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhdmcoYSkpIFNULi4uCitMSU5FIDE6IC4u LjdhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZn KGEpKSBWSS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2IgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChyb3dfbnVtYmVyKCkg T1ZFUiAoT1JERVIgQlkgYSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdi IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAocm93X251 bWJlcigpIE9WRVIgKE9SREVSIEJZIGEpKSBWSVJUVUFMKTsKIEVSUk9SOiAgd2luZG93IGZ1 bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lv bnMKIExJTkUgMTogLi4uN2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChyb3dfbnVtYmVyLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotQ1JFQVRFIFRBQkxFIGd0ZXN0 X2Vycl83YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KChTRUxFQ1QgYSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdjIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKFNFTEVDVCBhKSkg VklSVFVBTCk7CiBFUlJPUjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gY29sdW1uIGdlbmVy YXRpb24gZXhwcmVzc2lvbgogTElORSAxOiAuLi43YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkuLi4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi1DUkVB VEUgVEFCTEUgZ3Rlc3RfZXJyXzdkIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoZ2VuZXJhdGVfc2VyaWVzKDEsIGEpKSBTVE9SRUQpOworQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl83ZCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGdlbmVyYXRlX3NlcmllcygxLCBhKSkgVklSVFVBTCk7CiBFUlJPUjog IHNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBjb2x1bW4gZ2Vu ZXJhdGlvbiBleHByZXNzaW9ucwogTElORSAxOiAuLi43ZCAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3MuLi4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAt LSBHRU5FUkFURUQgQlkgREVGQVVMVCBub3QgYWxsb3dlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0 X2Vycl84IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQg QVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl84IChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgKGEgKiAyKSBWSVJU VUFMKTsKIEVSUk9SOiAgZm9yIGEgZ2VuZXJhdGVkIGNvbHVtbiwgR0VORVJBVEVEIEFMV0FZ UyBtdXN0IGJlIHNwZWNpZmllZAogTElORSAxOiAuLi5FIGd0ZXN0X2Vycl84IChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQuLi4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCkBA IC0xNTMsMTYgKzE1MywxMCBAQCBTRUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MSBXSEVSRSBiID0g NCBPUkRFUiBCWSBhOwogIDIgfCA0CiAoMSByb3cpCiAKLS0tIHRlc3QgdGhhdCBvdmVyZmxv dyBlcnJvciBoYXBwZW5zIG9uIHdyaXRlCistLSB0ZXN0IHRoYXQgb3ZlcmZsb3cgZXJyb3Ig aGFwcGVucyBvbiByZWFkCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgyMDAwMDAwMDAw KTsKLUVSUk9SOiAgaW50ZWdlciBvdXQgb2YgcmFuZ2UKIFNFTEVDVCAqIEZST00gZ3Rlc3Qx OwotIGEgfCBiIAotLS0tKy0tLQotIDIgfCA0Ci0gMSB8IDIKLSgyIHJvd3MpCi0KK0VSUk9S OiAgaW50ZWdlciBvdXQgb2YgcmFuZ2UKIERFTEVURSBGUk9NIGd0ZXN0MSBXSEVSRSBhID0g MjAwMDAwMDAwMDsKIC0tIHRlc3Qgd2l0aCBqb2lucwogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAo eCBpbnQsIHkgaW50KTsKQEAgLTIwMyw4ICsxOTcsOCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3Rt ICgKICAgaWQgaW50IFBSSU1BUlkgS0VZLAogICBmMSBpbnQsCiAgIGYyIGludCwKLSAgZjMg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxICogMikgU1RPUkVELAotICBmNCBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQKKyAgZjMgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGYxICogMikgVklSVFVBTCwKKyAgZjQgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYyICogMikgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0bSBWQUxVRVMgKDEs IDUsIDEwMCk7CiBNRVJHRSBJTlRPIGd0ZXN0bSB0IFVTSU5HIChWQUxVRVMgKDEsIDEwKSwg KDIsIDIwKSkgdihpZCwgZjEpIE9OIHQuaWQgPSB2LmlkCkBAIC0yNzMsMTEgKzI2NywxMSBA QCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MV8xOwogKDAgcm93cykKIAogXGQgZ3Rlc3QxXzEKLSAg ICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDFf MSIKLSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3Qx XzEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAg ICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3Rv cmVkCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJh dGVkIGFsd2F5cyBhcyAoYSAqIDIpCiBJbmhlcml0czogZ3Rlc3QxCiAKIElOU0VSVCBJTlRP IGd0ZXN0MV8xIFZBTFVFUyAoNCk7CkBAIC0yOTYsMTIgKzI5MCwxMiBAQCBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MTsKIAogLS0gY2FuJ3QgaGF2ZSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMg YSBjaGlsZCBvZiBub3JtYWwgY29sdW1uCiBDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsIChh IGludCwgYiBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQs IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpIElOSEVSSVRTIChn dGVzdF9ub3JtYWwpOyAgLS0gZXJyb3IKK0NSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hp bGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCkg SU5IRVJJVFMgKGd0ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgogTk9USUNFOiAgbWVyZ2luZyBj b2x1bW4gImEiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KIE5PVElDRTogIG1lcmdpbmcg Y29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCiBFUlJPUjogIGNoaWxkIGNv bHVtbiAiYiIgc3BlY2lmaWVzIGdlbmVyYXRpb24gZXhwcmVzc2lvbgogSElOVDogIEEgY2hp bGQgdGFibGUgY29sdW1uIGNhbm5vdCBiZSBnZW5lcmF0ZWQgdW5sZXNzIGl0cyBwYXJlbnQg Y29sdW1uIGlzLgotQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxF IGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCBJTkhF UklUIGd0ZXN0X25vcm1hbDsgIC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAiYiIgaW4gY2hp bGQgdGFibGUgbXVzdCBub3QgYmUgYSBnZW5lcmF0ZWQgY29sdW1uCiBEUk9QIFRBQkxFIGd0 ZXN0X25vcm1hbCwgZ3Rlc3Rfbm9ybWFsX2NoaWxkOwpAQCAtMzEyLDIzICszMDYsNDEgQEAg RVJST1I6ICBjb2x1bW4gImIiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBidXQg c3BlY2lmaWVzIGRlZmF1bHQKIENSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVy cm9yCiBOT1RJQ0U6ICBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5p dGlvbgogRVJST1I6ICBjb2x1bW4gImIiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVt biBidXQgc3BlY2lmaWVzIGlkZW50aXR5Ci1DUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBTVE9SRUQpIElOSEVSSVRTIChn dGVzdDEpOyAgLS0gb2ssIG92ZXJyaWRlcyBwYXJlbnQKK0NSRUFURSBUQUJMRSBndGVzdHgg KHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNUT1JFRCkgSU5I RVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJvcgorTk9USUNFOiAgbWVyZ2luZyBjb2x1bW4gImIi IHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KK0VSUk9SOiAgY29sdW1uICJiIiBpbmhlcml0 cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQKK0NSRUFURSBUQUJM RSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFZJ UlRVQUwpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gb2ssIG92ZXJyaWRlcyBwYXJlbnQKIE5P VElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCiBc ZCsgZ3Rlc3R4Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFi bGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3R4IgotIENvbHVtbiB8ICBUeXBlICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAg ICAgICAgIHwgU3RvcmFnZSB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAotLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLQotIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAg ICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVy YXRlZCBhbHdheXMgYXMgKGEgKiAyMikgc3RvcmVkIHwgcGxhaW4gICB8ICAgICAgICAgICAg ICB8IAotIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAg ICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVy YXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0eCIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIHwgU3RvcmFn ZSB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMjIpIHwgcGxh aW4gICB8ICAgICAgICAgICAgICB8IAorIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgIHwg ICAgICAgICAgICAgIHwgCiBJbmhlcml0czogZ3Rlc3QxCiAKK0lOU0VSVCBJTlRPIGd0ZXN0 eCAoYSwgeCkgVkFMVUVTICgxMSwgMjIpOworU0VMRUNUICogRlJPTSBndGVzdDE7CisgYSAg fCBiICAKKy0tLS0rLS0tLQorICAzIHwgIDYKKyAgNCB8ICA4CisgMTEgfCAyMgorKDMgcm93 cykKKworU0VMRUNUICogRlJPTSBndGVzdHg7CisgYSAgfCAgYiAgfCB4ICAKKy0tLS0rLS0t LS0rLS0tLQorIDExIHwgMjQyIHwgMjIKKygxIHJvdykKKwogQ1JFQVRFIFRBQkxFIGd0ZXN0 eHhfMSAoYSBpbnQgTk9UIE5VTEwsIGIgaW50KTsKIEFMVEVSIFRBQkxFIGd0ZXN0eHhfMSBJ TkhFUklUIGd0ZXN0MTsgIC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAiYiIgaW4gY2hpbGQg dGFibGUgbXVzdCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4KLUNSRUFURSBUQUJMRSBndGVzdHh4 XzMgKGEgaW50IE5PVCBOVUxMLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg U1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdHh4XzMgKGEgaW50IE5PVCBOVUxMLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBn dGVzdHh4XzMgSU5IRVJJVCBndGVzdDE7ICAtLSBvawotQ1JFQVRFIFRBQkxFIGd0ZXN0eHhf NCAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwgYSBpbnQgTk9U IE5VTEwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfNCAoYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwsIGEgaW50IE5PVCBOVUxMKTsKIEFMVEVSIFRBQkxFIGd0 ZXN0eHhfNCBJTkhFUklUIGd0ZXN0MTsgIC0tIG9rCiAtLSB0ZXN0IG11bHRpcGxlIGluaGVy aXRhbmNlIG1pc21hdGNoZXMKIENSRUFURSBUQUJMRSBndGVzdHkgKHggaW50LCBiIGludCBE RUZBVUxUIDU1KTsKQEAgLTM0MSwyOCArMzUzLDI4IEBAIENSRUFURSBUQUJMRSBndGVzdDFf eSAoKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gZXJyb3IKIE5PVElDRTogIG1l cmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYiIKIEVS Uk9SOiAgaW5oZXJpdGVkIGNvbHVtbiAiYiIgaGFzIGEgZ2VuZXJhdGlvbiBjb25mbGljdAog RFJPUCBUQUJMRSBndGVzdHk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0eSAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyMikgVklSVFVB TCk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5 KTsgIC0tIGVycm9yCiBOT1RJQ0U6ICBtZXJnaW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZp bml0aW9ucyBvZiBjb2x1bW4gImIiCiBFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgY29u ZmxpY3RpbmcgZ2VuZXJhdGlvbiBleHByZXNzaW9ucwogSElOVDogIFRvIHJlc29sdmUgdGhl IGNvbmZsaWN0LCBzcGVjaWZ5IGEgZ2VuZXJhdGlvbiBleHByZXNzaW9uIGV4cGxpY2l0bHku Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHgg KyAxKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBvaworQ1JFQVRF IFRBQkxFIGd0ZXN0MV95IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICsgMSkgVklS VFVBTCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIG9rCiBOT1RJQ0U6ICBtZXJn aW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImIiCiBOT1RJ Q0U6ICBtb3ZpbmcgYW5kIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZp bml0aW9uCiBERVRBSUw6ICBVc2VyLXNwZWNpZmllZCBjb2x1bW4gbW92ZWQgdG8gdGhlIHBv c2l0aW9uIG9mIHRoZSBpbmhlcml0ZWQgY29sdW1uLgogXGQgZ3Rlc3QxX3kKLSAgICAgICAg ICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDFfeSIKLSBD b2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QxX3kiCisg Q29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERl ZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzICh4ICsgMSkgc3RvcmVkCisg YiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoeCArIDEpCiAgeCAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCiBJbmhlcml0czogZ3Rlc3QxLAogICAgICAgICAgIGd0ZXN0eQogCiAtLSB0ZXN0 IGNvcnJlY3QgaGFuZGxpbmcgb2YgR0VORVJBVEVEIGNvbHVtbiB0aGF0J3Mgb25seSBpbiBj aGlsZAogQ1JFQVRFIFRBQkxFIGd0ZXN0cCAoZjEgaW50KTsKLUNSRUFURSBUQUJMRSBndGVz dGMgKGYyIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMSsxKSBTVE9SRUQpIElOSEVSSVRT KGd0ZXN0cCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RjIChmMiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjErMSkgVklSVFVBTCkgSU5IRVJJVFMoZ3Rlc3RwKTsKIElOU0VSVCBJTlRPIGd0 ZXN0YyB2YWx1ZXMoNDIpOwogVEFCTEUgZ3Rlc3RjOwogIGYxIHwgZjIgCkBAIC0zNzksOCAr MzkxLDggQEAgVEFCTEUgZ3Rlc3RjOwogCiBEUk9QIFRBQkxFIGd0ZXN0cCBDQVNDQURFOwog Tk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBndGVzdGMKLS0tIHRlc3Qgc3RvcmVk IHVwZGF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAzKSBTVE9SRUQpOworLS0gdGVzdCB1cGRhdGUgWFhYCitDUkVBVEUg VEFCTEUgZ3Rlc3QzIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMp IFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QzIChhKSBWQUxVRVMgKDEpLCAoMiksICgz KSwgKE5VTEwpOwogU0VMRUNUICogRlJPTSBndGVzdDMgT1JERVIgQlkgYTsKICBhIHwgYiAK QEAgLTQwMSw3ICs0MTMsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBhOwog ICAgIHwgICAKICg0IHJvd3MpCiAKLUNSRUFURSBUQUJMRSBndGVzdDNhIChhIHRleHQsIGIg dGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcrJyB8fCBhKSBTVE9SRUQpOworQ1JF QVRFIFRBQkxFIGd0ZXN0M2EgKGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgfHwgJysnIHx8IGEpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QzYSAoYSkgVkFM VUVTICgnYScpLCAoJ2InKSwgKCdjJyksIChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3Qz YSBPUkRFUiBCWSBhOwogIGEgfCAgYiAgCkBAIC00NjYsNyArNDc4LDcgQEAgU0VMRUNUICog RlJPTSBndGVzdDMgT1JERVIgQlkgYTsKICg0IHJvd3MpCiAKIC0tIG51bGwgdmFsdWVzCi1D UkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoTlVMTCkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChOVUxMKSBWSVJUVUFM KTsKIElOU0VSVCBJTlRPIGd0ZXN0MiBWQUxVRVMgKDEpOwogU0VMRUNUICogRlJPTSBndGVz dDI7CiAgYSB8IGIgCkBAIC00NzUsNyArNDg3LDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDI7 CiAoMSByb3cpCiAKIC0tIHNpbXBsZSBjb2x1bW4gcmVmZXJlbmNlIGZvciB2YXJsZW5hIHR5 cGVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfdmFybGVuYSAoYSB2YXJjaGFyLCBiIHZhcmNoYXIg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF92 YXJsZW5hIChhIHZhcmNoYXIsIGIgdmFyY2hhciBHRU5FUkFURUQgQUxXQVlTIEFTIChhKSBW SVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0X3ZhcmxlbmEgKGEpIFZBTFVFUygnMDEyMzQ1 Njc4OTAxMjM0NTY3ODknKTsKIElOU0VSVCBJTlRPIGd0ZXN0X3ZhcmxlbmEgKGEpIFZBTFVF UyhOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3RfdmFybGVuYSBPUkRFUiBCWSBhOwpAQCAt NDkwLDcgKzUwMiw3IEBAIERST1AgVEFCTEUgZ3Rlc3RfdmFybGVuYTsKIENSRUFURSBUWVBF IGRvdWJsZV9pbnQgYXMgKGEgaW50LCBiIGludCk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3Q0ICgK ICAgICBhIGludCwKLSAgICBiIGRvdWJsZV9pbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEg KiAyLCBhICogMykpIFNUT1JFRAorICAgIGIgZG91YmxlX2ludCBHRU5FUkFURUQgQUxXQVlT IEFTICgoYSAqIDIsIGEgKiAzKSkgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0NCBW QUxVRVMgKDEpLCAoNik7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0NDsKQEAgLTUwNSwxMSArNTE3 LDExIEBAIERST1AgVFlQRSBkb3VibGVfaW50OwogLS0gdXNpbmcgdGFibGVvaWQgaXMgYWxs b3dlZAogQ1JFQVRFIFRBQkxFIGd0ZXN0X3RhYmxlb2lkICgKICAgYSBpbnQgUFJJTUFSWSBL RVksCi0gIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCA9ICdndGVzdF90 YWJsZW9pZCc6OnJlZ2NsYXNzKSBTVE9SRUQKKyAgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMg QVMgKHRhYmxlb2lkID0gJ2d0ZXN0X3RhYmxlb2lkJzo6cmVnY2xhc3MpIFZJUlRVQUwKICk7 CiBJTlNFUlQgSU5UTyBndGVzdF90YWJsZW9pZCBWQUxVRVMgKDEpLCAoMik7CiBBTFRFUiBU QUJMRSBndGVzdF90YWJsZW9pZCBBREQgQ09MVU1OCi0gIGMgcmVnY2xhc3MgR0VORVJBVEVE IEFMV0FZUyBBUyAodGFibGVvaWQpIFNUT1JFRDsKKyAgYyByZWdjbGFzcyBHRU5FUkFURUQg QUxXQVlTIEFTICh0YWJsZW9pZCkgVklSVFVBTDsKIFNFTEVDVCAqIEZST00gZ3Rlc3RfdGFi bGVvaWQ7CiAgYSB8IGIgfCAgICAgICBjICAgICAgICAKIC0tLSstLS0rLS0tLS0tLS0tLS0t LS0tLQpAQCAtNTE4LDcgKzUzMCw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3RfdGFibGVvaWQ7 CiAoMiByb3dzKQogCiAtLSBkcm9wIGNvbHVtbiBiZWhhdmlvcgotQ1JFQVRFIFRBQkxFIGd0 ZXN0MTAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYiAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMCAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklS VFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdDEwIERST1AgQ09MVU1OIGI7ICAtLSBmYWlscwog RVJST1I6ICBjYW5ub3QgZHJvcCBjb2x1bW4gYiBvZiB0YWJsZSBndGVzdDEwIGJlY2F1c2Ug b3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKIERFVEFJTDogIGNvbHVtbiBjIG9mIHRhYmxl IGd0ZXN0MTAgZGVwZW5kcyBvbiBjb2x1bW4gYiBvZiB0YWJsZSBndGVzdDEwCkBAIC01MjYs MzAgKzUzOCwzMSBAQCBISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUg ZGVwZW5kZW50IG9iamVjdHMgdG9vLgogQUxURVIgVEFCTEUgZ3Rlc3QxMCBEUk9QIENPTFVN TiBiIENBU0NBREU7ICAtLSBkcm9wcyBjIHRvbwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBjb2x1bW4gYyBvZiB0YWJsZSBndGVzdDEwCiBcZCBndGVzdDEwCi0gICAgICBUYWJsZSAi Z2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDEwIgorICAgICAgVGFibGUgImdlbmVyYXRl ZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MTAiCiAgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgRGVmYXVsdCAKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAogSW5kZXhlczoKICAgICAiZ3Rlc3QxMF9wa2V5IiBQUklNQVJZIEtF WSwgYnRyZWUgKGEpCiAKLUNSRUFURSBUQUJMRSBndGVzdDEwYSAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRF IFRBQkxFIGd0ZXN0MTBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3QxMGEgRFJPUCBD T0xVTU4gYjsKIElOU0VSVCBJTlRPIGd0ZXN0MTBhIChhKSBWQUxVRVMgKDEpOwogLS0gcHJp dmlsZWdlcwogQ1JFQVRFIFVTRVIgcmVncmVzc191c2VyMTE7Ci1DUkVBVEUgVEFCTEUgZ3Rl c3QxMXMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYiAqIDIpIFNUT1JFRCk7Ci1JTlNFUlQgSU5UTyBndGVzdDExcyBWQUxVRVMgKDEs IDEwKSwgKDIsIDIwKTsKLUdSQU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rlc3QxMXMgVE8gcmVn cmVzc191c2VyMTE7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMXYgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwpOwor SU5TRVJUIElOVE8gZ3Rlc3QxMXYgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7CitHUkFOVCBT RUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTF2IFRPIHJlZ3Jlc3NfdXNlcjExOwogQ1JFQVRFIEZV TkNUSU9OIGdmMShhIGludCkgUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUIGEgKiAzICQkIElN TVVUQUJMRSBMQU5HVUFHRSBTUUw7CiBSRVZPS0UgQUxMIE9OIEZVTkNUSU9OIGdmMShpbnQp IEZST00gUFVCTElDOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MTJzIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdmMShiKSkgU1RPUkVEKTsK LUlOU0VSVCBJTlRPIGd0ZXN0MTJzIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOworQ1JFQVRF IFRBQkxFIGd0ZXN0MTJ2IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGdmMShiKSkgVklSVFVBTCk7CitJTlNFUlQgSU5UTyBndGVzdDEy diBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKIEdSQU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rl c3QxMnMgVE8gcmVncmVzc191c2VyMTE7CitFUlJPUjogIHJlbGF0aW9uICJndGVzdDEycyIg ZG9lcyBub3QgZXhpc3QKIFNFVCBST0xFIHJlZ3Jlc3NfdXNlcjExOwotU0VMRUNUIGEsIGIg RlJPTSBndGVzdDExczsgIC0tIG5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1pc3Npb24gZGVu aWVkIGZvciB0YWJsZSBndGVzdDExcwotU0VMRUNUIGEsIGMgRlJPTSBndGVzdDExczsgIC0t IGFsbG93ZWQKK1NFTEVDVCBhLCBiIEZST00gZ3Rlc3QxMXY7ICAtLSBub3QgYWxsb3dlZAor RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgZ3Rlc3QxMXYKK1NFTEVDVCBh LCBjIEZST00gZ3Rlc3QxMXY7ICAtLSBhbGxvd2VkCiAgYSB8IGMgIAogLS0tKy0tLS0KICAx IHwgMjAKQEAgLTU1OCwyMzEgKzU3MSwxMzkgQEAgU0VMRUNUIGEsIGMgRlJPTSBndGVzdDEx czsgIC0tIGFsbG93ZWQKIAogU0VMRUNUIGdmMSgxMCk7ICAtLSBub3QgYWxsb3dlZAogRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgZnVuY3Rpb24gZ2YxCi1TRUxFQ1QgYSwgYyBG Uk9NIGd0ZXN0MTJzOyAgLS0gYWxsb3dlZAotIGEgfCBjICAKLS0tLSstLS0tCi0gMSB8IDMw Ci0gMiB8IDYwCi0oMiByb3dzKQotCitTRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTJ2OyAgLS0g bm90IGFsbG93ZWQ7IFRPRE86IG91Z2h0IHRvIGJlIGFsbG93ZWQKK0VSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHRhYmxlIGd0ZXN0MTJ2CiBSRVNFVCBST0xFOwogRFJPUCBGVU5D VElPTiBnZjEoaW50KTsgIC0tIGZhaWwKIEVSUk9SOiAgY2Fubm90IGRyb3AgZnVuY3Rpb24g Z2YxKGludGVnZXIpIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKLURFVEFJ TDogIGNvbHVtbiBjIG9mIHRhYmxlIGd0ZXN0MTJzIGRlcGVuZHMgb24gZnVuY3Rpb24gZ2Yx KGludGVnZXIpCitERVRBSUw6ICBjb2x1bW4gYyBvZiB0YWJsZSBndGVzdDEydiBkZXBlbmRz IG9uIGZ1bmN0aW9uIGdmMShpbnRlZ2VyKQogSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURF IHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KLURST1AgVEFCTEUgZ3Rlc3Qx MXMsIGd0ZXN0MTJzOworRFJPUCBUQUJMRSBndGVzdDExdiwgZ3Rlc3QxMnY7CiBEUk9QIEZV TkNUSU9OIGdmMShpbnQpOwogRFJPUCBVU0VSIHJlZ3Jlc3NfdXNlcjExOwogLS0gY2hlY2sg Y29uc3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIwIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBDSEVDSyAoYiA8IDUw KSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIENIRUNLIChiIDwgNTApKTsKIElO U0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMTApOyAgLS0gb2sKIElOU0VSVCBJTlRP IGd0ZXN0MjAgKGEpIFZBTFVFUyAoMzApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogRVJS T1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAiZ3Rlc3QyMCIgdmlvbGF0ZXMgY2hlY2sgY29u c3RyYWludCAiZ3Rlc3QyMF9iX2NoZWNrIgotREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFp bnMgKDMwLCA2MCkuCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoMzAsIHZpcnR1 YWwpLgogQUxURVIgVEFCTEUgZ3Rlc3QyMCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lP TiBBUyAoYSAqIDEwMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50Ci1FUlJPUjogIGNoZWNr IGNvbnN0cmFpbnQgImd0ZXN0MjBfYl9jaGVjayIgb2YgcmVsYXRpb24gImd0ZXN0MjAiIGlz IHZpb2xhdGVkIGJ5IHNvbWUgcm93CitFUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJF U1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucwor REVUQUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMCIgaXMgYSB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW4uCiBBTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVNTiBi IFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7ICAtLSBvawotQ1JFQVRFIFRBQkxFIGd0ZXN0 MjBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCk7CitFUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMg bm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAg Q29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW4uCitDUkVBVEUgVEFCTEUgZ3Rlc3QyMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBJTlNFUlQgSU5U TyBndGVzdDIwYSAoYSkgVkFMVUVTICgxMCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYSAoYSkg VkFMVUVTICgzMCk7CiBBTFRFUiBUQUJMRSBndGVzdDIwYSBBREQgQ0hFQ0sgKGIgPCA1MCk7 ICAtLSBmYWlscyBvbiBleGlzdGluZyByb3cKIEVSUk9SOiAgY2hlY2sgY29uc3RyYWludCAi Z3Rlc3QyMGFfYl9jaGVjayIgb2YgcmVsYXRpb24gImd0ZXN0MjBhIiBpcyB2aW9sYXRlZCBi eSBzb21lIHJvdwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjBiIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFC TEUgZ3Rlc3QyMGIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgVklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYiAoYSkgVkFMVUVT ICgxMCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYiAoYSkgVkFMVUVTICgzMCk7CiBBTFRFUiBU QUJMRSBndGVzdDIwYiBBREQgQ09OU1RSQUlOVCBjaGsgQ0hFQ0sgKGIgPCA1MCkgTk9UIFZB TElEOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGIgVkFMSURBVEUgQ09OU1RSQUlOVCBjaGs7ICAt LSBmYWlscyBvbiBleGlzdGluZyByb3cKIEVSUk9SOiAgY2hlY2sgY29uc3RyYWludCAiY2hr IiBvZiByZWxhdGlvbiAiZ3Rlc3QyMGIiIGlzIHZpb2xhdGVkIGJ5IHNvbWUgcm93Ci0tLSBu b3QtbnVsbCBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjFhIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSBTVE9S RUQgTk9UIE5VTEwpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMSk7ICAt LSBvawotSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRl cyBjb25zdHJhaW50Ci1FUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiByZWxh dGlvbiAiZ3Rlc3QyMWEiIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQKLURFVEFJTDog IEZhaWxpbmcgcm93IGNvbnRhaW5zICgwLCBudWxsKS4KLUNSRUFURSBUQUJMRSBndGVzdDIx YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxp ZihhLCAwKSkgU1RPUkVEKTsKKy0tIG5vdC1udWxsIGNvbnN0cmFpbnRzIChjdXJyZW50bHkg bm90IHN1cHBvcnRlZCkKK0NSRUFURSBUQUJMRSBndGVzdDIxYSAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCBO T1QgTlVMTCk7CitFUlJPUjogIG5vdC1udWxsIGNvbnN0cmFpbnRzIGFyZSBub3Qgc3VwcG9y dGVkIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy MWEgKGEpIFZBTFVFUyAoMSk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIxYSAoYSkg VkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKK0NSRUFURSBUQUJMRSBndGVz dDIxYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51 bGxpZihhLCAwKSkgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdDIxYiBBTFRFUiBDT0xV TU4gYiBTRVQgTk9UIE5VTEw7Ci1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgx KTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIHZp b2xhdGVzIGNvbnN0cmFpbnQKLUVSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gImIiIG9m IHJlbGF0aW9uICJndGVzdDIxYiIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAotREVU QUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAsIG51bGwpLgorRVJST1I6ICBub3QtbnVs bCBjb25zdHJhaW50cyBhcmUgbm90IHN1cHBvcnRlZCBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDIxYiIgaXMg YSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCistLUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChh KSBWQUxVRVMgKDEpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVF UyAoMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CiBBTFRFUiBUQUJMRSBndGVzdDIxYiBB TFRFUiBDT0xVTU4gYiBEUk9QIE5PVCBOVUxMOwotSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEp IFZBTFVFUyAoMCk7ICAtLSBvayBub3cKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZB TFVFUyAoMCk7ICAtLSBvayBub3cKIC0tIGluZGV4IGNvbnN0cmFpbnRzCi1DUkVBVEUgVEFC TEUgZ3Rlc3QyMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhIC8gMikgU1RPUkVEIFVOSVFVRSk7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxV RVMgKDIpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgzKTsKLUVSUk9SOiAgZHVw bGljYXRlIGtleSB2YWx1ZSB2aW9sYXRlcyB1bmlxdWUgY29uc3RyYWludCAiZ3Rlc3QyMmFf Yl9rZXkiCi1ERVRBSUw6ICBLZXkgKGIpPSgxKSBhbHJlYWR5IGV4aXN0cy4KLUlOU0VSVCBJ TlRPIGd0ZXN0MjJhIFZBTFVFUyAoNCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyMmIgKGEgaW50 LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8gMikgU1RPUkVELCBQUklNQVJZIEtF WSAoYSwgYikpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmIgVkFMVUVTICgyKTsKLUlOU0VSVCBJ TlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7Ci1FUlJPUjogIGR1cGxpY2F0ZSBrZXkgdmFsdWUg dmlvbGF0ZXMgdW5pcXVlIGNvbnN0cmFpbnQgImd0ZXN0MjJiX3BrZXkiCi1ERVRBSUw6ICBL ZXkgKGEsIGIpPSgyLCAxKSBhbHJlYWR5IGV4aXN0cy4KK0NSRUFURSBUQUJMRSBndGVzdDIy YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAy KSBWSVJUVUFMIFVOSVFVRSk7CitFUlJPUjogIGluZGV4IGNyZWF0aW9uIG9uIHZpcnR1YWwg Z2VuZXJhdGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZAorLS1JTlNFUlQgSU5UTyBndGVz dDIyYSBWQUxVRVMgKDIpOworLS1JTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDMpOwor LS1JTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0 MjJiIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFZJUlRVQUws IFBSSU1BUlkgS0VZIChhLCBiKSk7CitFUlJPUjogIGluZGV4IGNyZWF0aW9uIG9uIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZAorLS1JTlNFUlQgSU5UTyBn dGVzdDIyYiBWQUxVRVMgKDIpOworLS1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIp OwogLS0gaW5kZXhlcwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJjIChhIGludCwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7Ci1DUkVBVEUgSU5ERVggZ3Rlc3Qy MmNfYl9pZHggT04gZ3Rlc3QyMmMgKGIpOwotQ1JFQVRFIElOREVYIGd0ZXN0MjJjX2V4cHJf aWR4IE9OIGd0ZXN0MjJjICgoYiAqIDMpKTsKLUNSRUFURSBJTkRFWCBndGVzdDIyY19wcmVk X2lkeCBPTiBndGVzdDIyYyAoYSkgV0hFUkUgYiA+IDA7Ci1cZCBndGVzdDIyYwotICAgICAg ICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjJjIgot IENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAg ICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBh ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBiICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChh ICogMikgc3RvcmVkCi1JbmRleGVzOgotICAgICJndGVzdDIyY19iX2lkeCIgYnRyZWUgKGIp Ci0gICAgImd0ZXN0MjJjX2V4cHJfaWR4IiBidHJlZSAoKGIgKiAzKSkKLSAgICAiZ3Rlc3Qy MmNfcHJlZF9pZHgiIGJ0cmVlIChhKSBXSEVSRSBiID4gMAotCi1JTlNFUlQgSU5UTyBndGVz dDIyYyBWQUxVRVMgKDEpLCAoMiksICgzKTsKLVNFVCBlbmFibGVfc2Vxc2NhbiBUTyBvZmY7 Ci1TRVQgZW5hYmxlX2JpdG1hcHNjYW4gVE8gb2ZmOwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0OwotICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBJbmRleCBTY2FuIHVzaW5nIGd0ZXN0MjJjX2JfaWR4 IG9uIGd0ZXN0MjJjCi0gICBJbmRleCBDb25kOiAoYiA9IDQpCi0oMiByb3dzKQotCi1TRUxF Q1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0OwotIGEgfCBiIAotLS0tKy0tLQotIDIg fCA0Ci0oMSByb3cpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVz dDIyYyBXSEVSRSBiICogMyA9IDY7Ci0gICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rlc3QyMmNfZXhwcl9pZHggb24g Z3Rlc3QyMmMKLSAgIEluZGV4IENvbmQ6ICgoYiAqIDMpID0gNikKLSgyIHJvd3MpCi0KLVNF TEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSA2OwotIGEgfCBiIAotLS0tKy0t LQotIDEgfCAyCi0oMSByb3cpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7Ci0gICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rlc3QyMmNf cHJlZF9pZHggb24gZ3Rlc3QyMmMKLSAgIEluZGV4IENvbmQ6IChhID0gMSkKLSgyIHJvd3Mp Ci0KLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwotIGEg fCBiIAotLS0tKy0tLQotIDEgfCAyCi0oMSByb3cpCi0KLUFMVEVSIFRBQkxFIGd0ZXN0MjJj IEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNCk7Ci1BTkFMWVpFIGd0 ZXN0MjJjOwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdI RVJFIGIgPSA4OwotICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBJ bmRleCBTY2FuIHVzaW5nIGd0ZXN0MjJjX2JfaWR4IG9uIGd0ZXN0MjJjCi0gICBJbmRleCBD b25kOiAoYiA9IDgpCi0oMiByb3dzKQotCi1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJF IGIgPSA4OwotIGEgfCBiIAotLS0tKy0tLQotIDIgfCA4Ci0oMSByb3cpCi0KLUVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDEyOwot ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBJbmRleCBT Y2FuIHVzaW5nIGd0ZXN0MjJjX2V4cHJfaWR4IG9uIGd0ZXN0MjJjCi0gICBJbmRleCBDb25k OiAoKGIgKiAzKSA9IDEyKQotKDIgcm93cykKLQotU0VMRUNUICogRlJPTSBndGVzdDIyYyBX SEVSRSBiICogMyA9IDEyOwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCA0Ci0oMSByb3cpCi0K LUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0g MSBBTkQgYiA+IDA7Ci0gICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rlc3QyMmNfcHJlZF9pZHggb24gZ3Rlc3QyMmMK LSAgIEluZGV4IENvbmQ6IChhID0gMSkKLSgyIHJvd3MpCi0KLVNFTEVDVCAqIEZST00gZ3Rl c3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCA0 Ci0oMSByb3cpCi0KLVJFU0VUIGVuYWJsZV9zZXFzY2FuOwotUkVTRVQgZW5hYmxlX2JpdG1h cHNjYW47CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19i X2lkeCBPTiBndGVzdDIyYyAoYik7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19leHByX2lk eCBPTiBndGVzdDIyYyAoKGIgKiAzKSk7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19wcmVk X2lkeCBPTiBndGVzdDIyYyAoYSkgV0hFUkUgYiA+IDA7CistLVxkIGd0ZXN0MjJjCistLUlO U0VSVCBJTlRPIGd0ZXN0MjJjIFZBTFVFUyAoMSksICgyKSwgKDMpOworLS1TRVQgZW5hYmxl X3NlcXNjYW4gVE8gb2ZmOworLS1TRVQgZW5hYmxlX2JpdG1hcHNjYW4gVE8gb2ZmOworLS1F WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDQ7 CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDQ7CistLUVYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDY7CistLVNF TEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSA2OworLS1FWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwor LS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKKy0tQUxU RVIgVEFCTEUgZ3Rlc3QyMmMgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEg KiA0KTsKKy0tQU5BTFlaRSBndGVzdDIyYzsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA4OworLS1TRUxFQ1QgKiBGUk9NIGd0ZXN0 MjJjIFdIRVJFIGIgPSA4OworLS1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g Z3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBX SEVSRSBiICogMyA9IDEyOworLS1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g Z3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOworLS1TRUxFQ1QgKiBGUk9NIGd0ZXN0 MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKKy0tUkVTRVQgZW5hYmxlX3NlcXNjYW47Cist LVJFU0VUIGVuYWJsZV9iaXRtYXBzY2FuOwogLS0gZm9yZWlnbiBrZXlzCiBDUkVBVEUgVEFC TEUgZ3Rlc3QyM2EgKHggaW50IFBSSU1BUlkgS0VZLCB5IGludCk7Ci1JTlNFUlQgSU5UTyBn dGVzdDIzYSBWQUxVRVMgKDEsIDExKSwgKDIsIDIyKSwgKDMsIDMzKTsKLUNSRUFURSBUQUJM RSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gVVBEQVRFIENB U0NBREUpOyAgLS0gZXJyb3IKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM2EgVkFMVUVTICgxLCAx MSksICgyLCAyMiksICgzLCAzMyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBS RUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBVUERBVEUgQ0FTQ0FERSk7ICAtLSBlcnJvcgog RVJST1I6ICBpbnZhbGlkIE9OIFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgY29udGFpbmluZyBnZW5lcmF0ZWQgY29sdW1uCi1DUkVBVEUgVEFCTEUgZ3Rlc3Qy M3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgU1RPUkVEIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9OIERFTEVURSBTRVQgTlVMTCk7 ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJFTkNFUyBn dGVzdDIzYSAoeCkgT04gREVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9yCiBFUlJPUjogIGlu dmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCBjb250 YWluaW5nIGdlbmVyYXRlZCBjb2x1bW4KLUNSRUFURSBUQUJMRSBndGVzdDIzYiAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQg UkVGRVJFTkNFUyBndGVzdDIzYSAoeCkpOwotXGQgZ3Rlc3QyM2IKLSAgICAgICAgICAgICAg ICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDIzYiIKLSBDb2x1bW4g fCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gYSAgICAgIHwg aW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0 b3JlZAotSW5kZXhlczoKLSAgICAiZ3Rlc3QyM2JfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVl IChhKQotRm9yZWlnbi1rZXkgY29uc3RyYWludHM6Ci0gICAgImd0ZXN0MjNiX2JfZmtleSIg Rk9SRUlHTiBLRVkgKGIpIFJFRkVSRU5DRVMgZ3Rlc3QyM2EoeCkKLQotSU5TRVJUIElOVE8g Z3Rlc3QyM2IgVkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxV RVMgKDUpOyAgLS0gZXJyb3IKLUVSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAi Z3Rlc3QyM2IiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgImd0ZXN0MjNiX2Jf ZmtleSIKLURFVEFJTDogIEtleSAoYik9KDEwKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAi Z3Rlc3QyM2EiLgotQUxURVIgVEFCTEUgZ3Rlc3QyM2IgQUxURVIgQ09MVU1OIGIgU0VUIEVY UFJFU1NJT04gQVMgKGEgKiA1KTsgLS0gZXJyb3IKLUVSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0 ZSBvbiB0YWJsZSAiZ3Rlc3QyM2IiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg Imd0ZXN0MjNiX2JfZmtleSIKLURFVEFJTDogIEtleSAoYik9KDUpIGlzIG5vdCBwcmVzZW50 IGluIHRhYmxlICJndGVzdDIzYSIuCi1BTFRFUiBUQUJMRSBndGVzdDIzYiBBTFRFUiBDT0xV TU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDEpOyAtLSBvawotRFJPUCBUQUJMRSBndGVz dDIzYjsKLURST1AgVEFCTEUgZ3Rlc3QyM2E7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHgg aW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMikgU1RPUkVELCBQUklNQVJZ IEtFWSAoeSkpOwotSU5TRVJUIElOVE8gZ3Rlc3QyM3AgVkFMVUVTICgxKSwgKDIpLCAoMyk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4 KSk7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzIG9uIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQKKy0tXGQgZ3Rlc3QyM2IKKy0tSU5TRVJU IElOVE8gZ3Rlc3QyM2IgVkFMVUVTICgxKTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0 MjNiIFZBTFVFUyAoNSk7ICAtLSBlcnJvcgorLS1BTFRFUiBUQUJMRSBndGVzdDIzYiBBTFRF UiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDUpOyAtLSBlcnJvcgorLS1BTFRF UiBUQUJMRSBndGVzdDIzYiBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAq IDEpOyAtLSBvaworLS1EUk9QIFRBQkxFIGd0ZXN0MjNiOworLS1EUk9QIFRBQkxFIGd0ZXN0 MjNhOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjNwICh4IGludCwgeSBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoeCAqIDIpIFZJUlRVQUwsIFBSSU1BUlkgS0VZICh5KSk7CitFUlJPUjogIGlu ZGV4IGNyZWF0aW9uIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaXMgbm90IHN1cHBv cnRlZAorLS1JTlNFUlQgSU5UTyBndGVzdDIzcCBWQUxVRVMgKDEpLCAoMiksICgzKTsKIENS RUFURSBUQUJMRSBndGVzdDIzcSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IFJFRkVSRU5D RVMgZ3Rlc3QyM3AgKHkpKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMSwgMik7 ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgyLCA1KTsgIC0tIGVycm9y Ci1FUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgImd0ZXN0MjNxIiB2aW9sYXRl cyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJndGVzdDIzcV9iX2ZrZXkiCi1ERVRBSUw6ICBL ZXkgKGIpPSg1KSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAiZ3Rlc3QyM3AiLgorRVJST1I6 ICByZWxhdGlvbiAiZ3Rlc3QyM3AiIGRvZXMgbm90IGV4aXN0CistLUlOU0VSVCBJTlRPIGd0 ZXN0MjNxIFZBTFVFUyAoMSwgMik7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIzcSBW QUxVRVMgKDIsIDUpOyAgLS0gZXJyb3IKIC0tIGRvbWFpbnMKIENSRUFURSBET01BSU4gZ3Rl c3Rkb21haW4xIEFTIGludCBDSEVDSyAoVkFMVUUgPCAxMCk7Ci1DUkVBVEUgVEFCTEUgZ3Rl c3QyNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4xIEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBTVE9SRUQpOwotSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVT ICg0KTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDYpOyAgLS0g ZXJyb3IKLUVSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBndGVzdGRvbWFpbjEgdmlvbGF0ZXMg Y2hlY2sgY29uc3RyYWludCAiZ3Rlc3Rkb21haW4xX2NoZWNrIgorQ1JFQVRFIFRBQkxFIGd0 ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgVklSVFVBTCk7CitFUlJPUjogIHZpcnR1YWwgZ2VuZXJhdGVkIGNv bHVtbiAiYiIgY2Fubm90IGhhdmUgYSBkb21haW4gdHlwZQorTElORSAxOiBDUkVBVEUgVEFC TEUgZ3Rlc3QyNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4xIEdFTkUuLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCist LUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNCk7ICAtLSBvaworLS1JTlNFUlQg SU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDYpOyAgLS0gZXJyb3IKIC0tIHR5cGVkIHRhYmxl cyAoY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQpCiBDUkVBVEUgVFlQRSBndGVzdF90eXBlIEFT IChmMSBpbnRlZ2VyLCBmMiB0ZXh0LCBmMyBiaWdpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0 MjggT0YgZ3Rlc3RfdHlwZSAoZjEgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMg KGYyICoyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjggT0YgZ3Rlc3RfdHlwZSAo ZjEgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICoyKSBWSVJUVUFMKTsK IEVSUk9SOiAgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdHlwZWQg dGFibGVzCiBEUk9QIFRZUEUgZ3Rlc3RfdHlwZSBDQVNDQURFOwogLS0gcGFydGl0aW9uaW5n IGNhc2VzCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFyZW50IChmMSBkYXRlIE5PVCBOVUxMLCBm MiBiaWdpbnQsIGYzIGJpZ2ludCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMSk7CiBDUkVBVEUg VEFCTEUgZ3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCi0gICAgZjMg V0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVECisgICAg ZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTAog KSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykgVE8gKCcyMDE2LTA4LTAxJyk7IC0t IGVycm9yCiBFUlJPUjogIGNoaWxkIGNvbHVtbiAiZjMiIHNwZWNpZmllcyBnZW5lcmF0aW9u IGV4cHJlc3Npb24KIEhJTlQ6ICBBIGNoaWxkIHRhYmxlIGNvbHVtbiBjYW5ub3QgYmUgZ2Vu ZXJhdGVkIHVubGVzcyBpdHMgcGFyZW50IGNvbHVtbiBpcy4KLUNSRUFURSBUQUJMRSBndGVz dF9jaGlsZCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2No aWxkIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQg QUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50 IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0w Ny0wMScpIFRPICgnMjAxNi0wOC0wMScpOyAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImYz IiBpbiBjaGlsZCB0YWJsZSBtdXN0IG5vdCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4KIERST1Ag VEFCTEUgZ3Rlc3RfcGFyZW50LCBndGVzdF9jaGlsZDsKLUNSRUFURSBUQUJMRSBndGVzdF9w YXJlbnQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYxKTsK K0NSRUFURSBUQUJMRSBndGVzdF9wYXJlbnQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2lu dCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFS VElUSU9OIEJZIFJBTkdFIChmMSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgUEFSVElU SU9OIE9GIGd0ZXN0X3BhcmVudAogICBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykg VE8gKCcyMDE2LTA4LTAxJyk7ICAtLSBpbmhlcml0cyBnZW4gZXhwcgogQ1JFQVRFIFRBQkxF IGd0ZXN0X2NoaWxkMiBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKLSAgICBmMyBXSVRI IE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyMikgU1RPUkVEICAtLSBvdmVy cmlkZXMgZ2VuIGV4cHIKKyAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBB UyAoZjIgKiAyMikgVklSVFVBTCAgLS0gb3ZlcnJpZGVzIGdlbiBleHByCiApIEZPUiBWQUxV RVMgRlJPTSAoJzIwMTYtMDgtMDEnKSBUTyAoJzIwMTYtMDktMDEnKTsKIENSRUFURSBUQUJM RSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCiAgICAgZjMgREVG QVVMVCA0MiAgLS0gZXJyb3IKQEAgLTc5Miw2ICs3MTMsMTAgQEAgQ1JFQVRFIFRBQkxFIGd0 ZXN0X2NoaWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKICAgICBmMyBXSVRIIE9Q VElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSAgLS0gZXJyb3IKICkgRk9SIFZB TFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOwogRVJST1I6ICBp ZGVudGl0eSBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHBhcnRpdGlvbnMKK0NSRUFU RSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCisgICAg ZjMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQgIC0tIGVycm9yCispIEZP UiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsKK0VSUk9S OiAgY29sdW1uICJmMyIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1uIG9mIGRpZmZl cmVudCBraW5kCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxM LCBmMiBiaWdpbnQsIGYzIGJpZ2ludCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRU QUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0w MScpIFRPICgnMjAxNi0xMC0wMScpOyAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImYzIiBp biBjaGlsZCB0YWJsZSBtdXN0IGJlIGEgZ2VuZXJhdGVkIGNvbHVtbgpAQCAtODA1LDMzICs3 MzAsMzMgQEAgQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rl c3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDkKIEVSUk9SOiAgdGFibGUgImd0 ZXN0X2NoaWxkMyIgYmVpbmcgYXR0YWNoZWQgY29udGFpbnMgYW4gaWRlbnRpdHkgY29sdW1u ICJmMyIKIERFVEFJTDogIFRoZSBuZXcgcGFydGl0aW9uIG1heSBub3QgY29udGFpbiBhbiBp ZGVudGl0eSBjb2x1bW4uCiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKLUNSRUFURSBUQUJM RSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUg Z3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBH RU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDMzKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0 ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZS T00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBcZCBndGVzdF9jaGlsZAot ICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3Rf Y2hpbGQiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAg ICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rl c3RfY2hpbGQiCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAg ICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAg ICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2lu dCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAgICAg ICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIpIHN0b3JlZAor IGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoZjIgKiAyKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVF UyBGUk9NICgnMDctMDEtMjAxNicpIFRPICgnMDgtMDEtMjAxNicpCiAKIFxkIGd0ZXN0X2No aWxkMgotICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMu Z3Rlc3RfY2hpbGQyIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxf dGVzdHMuZ3Rlc3RfY2hpbGQyIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYy ICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmln aW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAq IDIyKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMjIpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3Bh cmVudCBGT1IgVkFMVUVTIEZST00gKCcwOC0wMS0yMDE2JykgVE8gKCcwOS0wMS0yMDE2JykK IAogXGQgZ3Rlc3RfY2hpbGQzCi0gICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVk X3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZDMiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAg Ci0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIFRhYmxlICJnZW5l cmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9jaGlsZDMiCisgQ29sdW1uIHwgIFR5cGUgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAK Ky0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5v dCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAK LSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBh bHdheXMgYXMgKGYyICogMzMpIHN0b3JlZAorIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAzMykKIFBhcnRpdGlv biBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA5LTAxLTIwMTYnKSBUTyAo JzEwLTAxLTIwMTYnKQogCiBJTlNFUlQgSU5UTyBndGVzdF9wYXJlbnQgKGYxLCBmMikgVkFM VUVTICgnMjAxNi0wNy0xNScsIDEpOwpAQCAtODQyLDcgKzc2Nyw3IEBAIFNFTEVDVCB0YWJs ZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9wYXJlbnQgT1JERVIgQlkgMSwgMiwgMzsK IC0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tKy0tLS0KICBndGVzdF9jaGlsZCAg fCAwNy0xNS0yMDE2IHwgIDEgfCAgMgogIGd0ZXN0X2NoaWxkICB8IDA3LTE1LTIwMTYgfCAg MiB8ICA0Ci0gZ3Rlc3RfY2hpbGQyIHwgMDgtMTUtMjAxNiB8ICAzIHwgNjYKKyBndGVzdF9j aGlsZDIgfCAwOC0xNS0yMDE2IHwgIDMgfCAgNgogKDMgcm93cykKIAogVVBEQVRFIGd0ZXN0 X3BhcmVudCBTRVQgZjEgPSBmMSArIDYwIFdIRVJFIGYyID0gMTsKQEAgLTg1MCw5NSArNzc1 LDEwMSBAQCBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50 IE9SREVSIEJZIDEsIDIsIDM7CiAgICB0YWJsZW9pZCAgIHwgICAgIGYxICAgICB8IGYyIHwg ZjMgCiAtLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLSstLS0tCiAgZ3Rlc3RfY2hp bGQgIHwgMDctMTUtMjAxNiB8ICAyIHwgIDQKLSBndGVzdF9jaGlsZDIgfCAwOC0xNS0yMDE2 IHwgIDMgfCA2NgotIGd0ZXN0X2NoaWxkMyB8IDA5LTEzLTIwMTYgfCAgMSB8IDMzCisgZ3Rl c3RfY2hpbGQyIHwgMDgtMTUtMjAxNiB8ICAzIHwgIDYKKyBndGVzdF9jaGlsZDMgfCAwOS0x My0yMDE2IHwgIDEgfCAgMgogKDMgcm93cykKIAogLS0gYWx0ZXIgb25seSBwYXJlbnQncyBh bmQgb25lIGNoaWxkJ3MgZ2VuZXJhdGlvbiBleHByZXNzaW9uCiBBTFRFUiBUQUJMRSBPTkxZ IGd0ZXN0X3BhcmVudCBBTFRFUiBDT0xVTU4gZjMgU0VUIEVYUFJFU1NJT04gQVMgKGYyICog NCk7CitFUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBv cnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29sdW1uICJm MyIgb2YgcmVsYXRpb24gImd0ZXN0X3BhcmVudCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW4uCiBBTFRFUiBUQUJMRSBndGVzdF9jaGlsZCBBTFRFUiBDT0xVTU4gZjMgU0VUIEVY UFJFU1NJT04gQVMgKGYyICogMTApOworRVJST1I6ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBS RVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMK K0RFVEFJTDogIENvbHVtbiAiZjMiIG9mIHJlbGF0aW9uICJndGVzdF9jaGlsZCIgaXMgYSB2 aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCiBcZCBndGVzdF9wYXJlbnQKLSAgICAgICAgICAg UGFydGl0aW9uZWQgdGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfcGFyZW50 IgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICBQYXJ0aXRpb25lZCB0YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rl c3RfcGFyZW50IgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg ICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEg ICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdp bnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiA0KSBzdG9yZWQK KyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBh bHdheXMgYXMgKGYyICogMikKIFBhcnRpdGlvbiBrZXk6IFJBTkdFIChmMSkKIE51bWJlciBv ZiBwYXJ0aXRpb25zOiAzIChVc2UgXGQrIHRvIGxpc3QgdGhlbS4pCiAKIFxkIGd0ZXN0X2No aWxkCi0gICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5n dGVzdF9jaGlsZCIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rl c3RzLmd0ZXN0X2NoaWxkIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAg fCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAxMCkg c3RvcmVkCisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5l cmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBG T1IgVkFMVUVTIEZST00gKCcwNy0wMS0yMDE2JykgVE8gKCcwOC0wMS0yMDE2JykKIAogXGQg Z3Rlc3RfY2hpbGQyCi0gICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3Jl ZF90ZXN0cy5ndGVzdF9jaGlsZDIiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgCi0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRf dmlydHVhbF90ZXN0cy5ndGVzdF9jaGlsZDIiCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxs IHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAg ICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKGYyICogMjIpIHN0b3JlZAorIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyMikKIFBhcnRpdGlvbiBvZjog Z3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA4LTAxLTIwMTYnKSBUTyAoJzA5LTAx LTIwMTYnKQogCiBcZCBndGVzdF9jaGlsZDMKLSAgICAgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMyIKLSBDb2x1bW4gfCAgVHlwZSAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAg ICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgVGFi bGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkMyIKKyBDb2x1bW4gfCAg VHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgRGVmYXVsdCAgICAg ICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAg ICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAzMykgc3RvcmVkCisgZjMgICAgIHwgYmlnaW50IHwg ICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDMzKQog UGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9NICgnMDktMDEtMjAx NicpIFRPICgnMTAtMDEtMjAxNicpCiAKIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICog RlJPTSBndGVzdF9wYXJlbnQgT1JERVIgQlkgMSwgMiwgMzsKICAgIHRhYmxlb2lkICAgfCAg ICAgZjEgICAgIHwgZjIgfCBmMyAKIC0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t Ky0tLS0KLSBndGVzdF9jaGlsZCAgfCAwNy0xNS0yMDE2IHwgIDIgfCAyMAotIGd0ZXN0X2No aWxkMiB8IDA4LTE1LTIwMTYgfCAgMyB8IDY2Ci0gZ3Rlc3RfY2hpbGQzIHwgMDktMTMtMjAx NiB8ICAxIHwgMzMKKyBndGVzdF9jaGlsZCAgfCAwNy0xNS0yMDE2IHwgIDIgfCAgNAorIGd0 ZXN0X2NoaWxkMiB8IDA4LTE1LTIwMTYgfCAgMyB8ICA2CisgZ3Rlc3RfY2hpbGQzIHwgMDkt MTMtMjAxNiB8ICAxIHwgIDIKICgzIHJvd3MpCiAKIC0tIGFsdGVyIGdlbmVyYXRpb24gZXhw cmVzc2lvbiBvZiBwYXJlbnQgYW5kIGFsbCBpdHMgY2hpbGRyZW4gYWx0b2dldGhlcgogQUxU RVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFMVEVSIENPTFVNTiBmMyBTRVQgRVhQUkVTU0lPTiBB UyAoZjIgKiAyKTsKK0VSUk9SOiAgQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBu b3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitERVRBSUw6ICBD b2x1bW4gImYzIiBvZiByZWxhdGlvbiAiZ3Rlc3RfcGFyZW50IiBpcyBhIHZpcnR1YWwgZ2Vu ZXJhdGVkIGNvbHVtbi4KIFxkIGd0ZXN0X3BhcmVudAotICAgICAgICAgICBQYXJ0aXRpb25l ZCB0YWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9wYXJlbnQiCi0gQ29sdW1u IHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1 bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIFBh cnRpdGlvbmVkIHRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9wYXJlbnQi CisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRl ICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAg ICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIpIHN0b3JlZAorIGYzICAgICB8 IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAo ZjIgKiAyKQogUGFydGl0aW9uIGtleTogUkFOR0UgKGYxKQogTnVtYmVyIG9mIHBhcnRpdGlv bnM6IDMgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKIAogXGQgZ3Rlc3RfY2hpbGQKLSAgICAg ICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxk IgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2No aWxkIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAg ICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwg ZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKSBzdG9yZWQKKyBmMyAg ICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKGYyICogMikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJP TSAoJzA3LTAxLTIwMTYnKSBUTyAoJzA4LTAxLTIwMTYnKQogCiBcZCBndGVzdF9jaGlsZDIK LSAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3Rf Y2hpbGQyIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0 ZXN0X2NoaWxkMiIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg ZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBi aWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKSBzdG9y ZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRl ZCBhbHdheXMgYXMgKGYyICogMjIpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1Ig VkFMVUVTIEZST00gKCcwOC0wMS0yMDE2JykgVE8gKCcwOS0wMS0yMDE2JykKIAogXGQgZ3Rl c3RfY2hpbGQzCi0gICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rl c3RzLmd0ZXN0X2NoaWxkMyIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVh bF90ZXN0cy5ndGVzdF9jaGlsZDMiCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAg ZjIgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBi aWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYy ICogMikgc3RvcmVkCisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAg fCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDMzKQogUGFydGl0aW9uIG9mOiBndGVzdF9w YXJlbnQgRk9SIFZBTFVFUyBGUk9NICgnMDktMDEtMjAxNicpIFRPICgnMTAtMDEtMjAxNicp CiAKIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9wYXJlbnQgT1JE RVIgQlkgMSwgMiwgMzsKQEAgLTk1MSw1NCArODgyLDU0IEBAIFNFTEVDVCB0YWJsZW9pZDo6 cmVnY2xhc3MsICogRlJPTSBndGVzdF9wYXJlbnQgT1JERVIgQlkgMSwgMiwgMzsKIAogLS0g d2UgbGVhdmUgdGhlc2UgdGFibGVzIGFyb3VuZCBmb3IgcHVycG9zZXMgb2YgdGVzdGluZyBk dW1wL3JlbG9hZC91cGdyYWRlCiAtLSBnZW5lcmF0ZWQgY29sdW1ucyBpbiBwYXJ0aXRpb24g a2V5IChub3QgYWxsb3dlZCkKLUNSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0 ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo ZjIgKiAyKSBTVE9SRUQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjMpOworQ1JFQVRFIFRBQkxF IGd0ZXN0X3BhcnRfa2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2lu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBS QU5HRSAoZjMpOwogRVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1bW4gaW4gcGFy dGl0aW9uIGtleQotTElORSAxOiAuLi5FTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RP UkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKK0xJTkUgMTogLi4uTkVSQVRFRCBBTFdB WVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgogREVUQUlMOiAgQ29sdW1uICJmMyIgaXMgYSBnZW5lcmF0ZWQgY29sdW1u LgotQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBi aWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCkg UEFSVElUSU9OIEJZIFJBTkdFICgoZjMgKiAzKSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFy dF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFICgoZjMg KiAzKSk7CiBFUlJPUjogIGNhbm5vdCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiBpbiBwYXJ0aXRp b24ga2V5Ci1MSU5FIDE6IC4uLkVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJ VElPTiBCWSBSQU5HRSAoKGYzICogMykpOworTElORSAxOiAuLi5EIEFMV0FZUyBBUyAoZjIg KiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CiBERVRBSUw6ICBDb2x1bW4gImYzIiBpcyBhIGdlbmVyYXRlZCBjb2x1bW4uCiAtLSBBTFRF UiBUQUJMRSAuLi4gQUREIENPTFVNTgogQ1JFQVRFIFRBQkxFIGd0ZXN0MjUgKGEgaW50IFBS SU1BUlkgS0VZKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjUgVkFMVUVTICgzKSwgKDQpOwotQUxU RVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBTVE9SRUQsIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICog Myk7CitBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4gYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwsIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9O IEFTIChhICogMyk7CitFUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMg bm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAg Q29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyNSIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW4uCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjUgT1JERVIgQlkgYTsKLSBhIHwgYiAg Ci0tLS0rLS0tLQotIDMgfCAgOQotIDQgfCAxMgorIGEgCistLS0KKyAzCisgNAogKDIgcm93 cykKIAotQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGIgKiA0KSBTVE9SRUQ7ICAtLSBlcnJvcgotRVJST1I6ICBjYW5ub3QgdXNl IGdlbmVyYXRlZCBjb2x1bW4gImIiIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24K LURFVEFJTDogIEEgZ2VuZXJhdGVkIGNvbHVtbiBjYW5ub3QgcmVmZXJlbmNlIGFub3RoZXIg Z2VuZXJhdGVkIGNvbHVtbi4KLUFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTICh6ICogNCkgU1RPUkVEOyAgLS0gZXJyb3IKK0FMVEVS IFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChi ICogNCkgVklSVFVBTDsgIC0tIGVycm9yCitFUlJPUjogIGNvbHVtbiAiYiIgZG9lcyBub3Qg ZXhpc3QKK0FMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQg QUxXQVlTIEFTICh6ICogNCkgVklSVFVBTDsgIC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAi eiIgZG9lcyBub3QgZXhpc3QKIEFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBjIGlu dCBERUZBVUxUIDQyLAotICBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGMgKiA0KSBTVE9SRUQ7CisgIEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYyAqIDQpIFZJUlRVQUw7CiBBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4gZCBp bnQgREVGQVVMVCAxMDE7CiBBTFRFUiBUQUJMRSBndGVzdDI1IEFMVEVSIENPTFVNTiBkIFNF VCBEQVRBIFRZUEUgZmxvYXQ4LAotICBBREQgQ09MVU1OIHkgZmxvYXQ4IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGQgKiA0KSBTVE9SRUQ7CisgIEFERCBDT0xVTU4geSBmbG9hdDggR0VORVJB VEVEIEFMV0FZUyBBUyAoZCAqIDQpIFZJUlRVQUw7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjUg T1JERVIgQlkgYTsKLSBhIHwgYiAgfCBjICB8ICB4ICB8ICBkICB8ICB5ICAKLS0tLSstLS0t Ky0tLS0rLS0tLS0rLS0tLS0rLS0tLS0KLSAzIHwgIDkgfCA0MiB8IDE2OCB8IDEwMSB8IDQw NAotIDQgfCAxMiB8IDQyIHwgMTY4IHwgMTAxIHwgNDA0CisgYSB8IGMgIHwgIHggIHwgIGQg IHwgIHkgIAorLS0tKy0tLS0rLS0tLS0rLS0tLS0rLS0tLS0KKyAzIHwgNDIgfCAxNjggfCAx MDEgfCA0MDQKKyA0IHwgNDIgfCAxNjggfCAxMDEgfCA0MDQKICgyIHJvd3MpCiAKIFxkIGd0 ZXN0MjUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0 ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjUiCi0gQ29sdW1uIHwgICAgICAgVHlwZSAgICAgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQg ICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QyNSIKKyBDb2x1bW4gfCAgICAg ICBUeXBlICAgICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAg ICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgICAgICAgICAgfCAg ICAgICAgICAgfCBub3QgbnVsbCB8IAotIGIgICAgICB8IGludGVnZXIgICAgICAgICAgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAzKSBzdG9y ZWQKICBjICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAg fCA0MgotIHggICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGMgKiA0KSBzdG9yZWQKKyB4ICAgICAgfCBpbnRl Z2VyICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChjICogNCkKICBkICAgICAgfCBkb3VibGUgcHJlY2lzaW9uIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAxMDEKLSB5ICAgICAgfCBkb3VibGUgcHJlY2lzaW9uIHwgICAgICAgICAg IHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkICogNDo6ZG91YmxlIHByZWNp c2lvbikgc3RvcmVkCisgeSAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZCAqIDQ6OmRvdWJsZSBwcmVjaXNp b24pCiBJbmRleGVzOgogICAgICJndGVzdDI1X3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAo YSkKIApAQCAtMTAwNiw3ICs5MzcsNyBAQCBJbmRleGVzOgogQ1JFQVRFIFRBQkxFIGd0ZXN0 MjcgKAogICAgIGEgaW50LAogICAgIGIgaW50LAotICAgIHggaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKChhICsgYikgKiAyKSBTVE9SRUQKKyAgICB4IGludCBHRU5FUkFURUQgQUxXQVlT IEFTICgoYSArIGIpICogMikgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjcgKGEs IGIpIFZBTFVFUyAoMywgNyksICg0LCAxMSk7CiBBTFRFUiBUQUJMRSBndGVzdDI3IEFMVEVS IENPTFVNTiBhIFRZUEUgdGV4dDsgIC0tIGVycm9yCkBAIC0xMDE0LDEyICs5NDUsMTIgQEAg RVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSBvZiBhIGNvbHVtbiB1c2VkIGJ5IGEgZ2VuZXJh dGVkIGNvbHVtbgogREVUQUlMOiAgQ29sdW1uICJhIiBpcyB1c2VkIGJ5IGdlbmVyYXRlZCBj b2x1bW4gIngiLgogQUxURVIgVEFCTEUgZ3Rlc3QyNyBBTFRFUiBDT0xVTU4geCBUWVBFIG51 bWVyaWM7CiBcZCBndGVzdDI3Ci0gICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2Vu ZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI3IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAg ICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI3IgorIENv bHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGIgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIHggICAgICB8IG51bWVyaWMgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKCgoYSArIGIpICog MikpIHN0b3JlZAorIHggICAgICB8IG51bWVyaWMgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKCgoYSArIGIpICogMikpCiAKIFNFTEVDVCAqIEZST00g Z3Rlc3QyNzsKICBhIHwgYiAgfCB4ICAKQEAgLTEwMzIsMjAgKzk2MywxOSBAQCBBTFRFUiBU QUJMRSBndGVzdDI3IEFMVEVSIENPTFVNTiB4IFRZUEUgYm9vbGVhbiBVU0lORyB4IDw+IDA7 ICAtLSBlcnJvcgogRVJST1I6ICBnZW5lcmF0aW9uIGV4cHJlc3Npb24gZm9yIGNvbHVtbiAi eCIgY2Fubm90IGJlIGNhc3QgYXV0b21hdGljYWxseSB0byB0eXBlIGJvb2xlYW4KIEFMVEVS IFRBQkxFIGd0ZXN0MjcgQUxURVIgQ09MVU1OIHggRFJPUCBERUZBVUxUOyAgLS0gZXJyb3IK IEVSUk9SOiAgY29sdW1uICJ4IiBvZiByZWxhdGlvbiAiZ3Rlc3QyNyIgaXMgYSBnZW5lcmF0 ZWQgY29sdW1uCi1ISU5UOiAgVXNlIEFMVEVSIFRBQkxFIC4uLiBBTFRFUiBDT0xVTU4gLi4u IERST1AgRVhQUkVTU0lPTiBpbnN0ZWFkLgogLS0gSXQncyBwb3NzaWJsZSB0byBhbHRlciB0 aGUgY29sdW1uIHR5cGVzIHRoaXMgd2F5OgogQUxURVIgVEFCTEUgZ3Rlc3QyNwogICBEUk9Q IENPTFVNTiB4LAogICBBTFRFUiBDT0xVTU4gYSBUWVBFIGJpZ2ludCwKICAgQUxURVIgQ09M VU1OIGIgVFlQRSBiaWdpbnQsCi0gIEFERCBDT0xVTU4geCBiaWdpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoKGEgKyBiKSAqIDIpIFNUT1JFRDsKKyAgQUREIENPTFVNTiB4IGJpZ2ludCBH RU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikgVklSVFVBTDsKIFxkIGd0ZXN0MjcK LSAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5n dGVzdDI3IgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3Zp cnR1YWxfdGVzdHMuZ3Rlc3QyNyIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAKKy0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAogIGIgICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0geCAg ICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzICgoYSArIGIpICogMikgc3RvcmVkCisgeCAgICAgIHwgYmlnaW50IHwgICAgICAgICAg IHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzICgoYSArIGIpICogMikKIAogLS0g SWRlYWxseSB5b3UgY291bGQganVzdCBkbyB0aGlzLCBidXQgbm90IHRvZGF5IChhbmQgc2hv dWxkIHggY2hhbmdlIHR5cGU/KToKIEFMVEVSIFRBQkxFIGd0ZXN0MjcKQEAgLTEwNTQsMTIg Kzk4NCwxMiBAQCBBTFRFUiBUQUJMRSBndGVzdDI3CiBFUlJPUjogIGNhbm5vdCBhbHRlciB0 eXBlIG9mIGEgY29sdW1uIHVzZWQgYnkgYSBnZW5lcmF0ZWQgY29sdW1uCiBERVRBSUw6ICBD b2x1bW4gImEiIGlzIHVzZWQgYnkgZ2VuZXJhdGVkIGNvbHVtbiAieCIuCiBcZCBndGVzdDI3 Ci0gICAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMu Z3Rlc3QyNyIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92 aXJ0dWFsX3Rlc3RzLmd0ZXN0MjciCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgCistLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKICBiICAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIHgg ICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoKGEgKyBiKSAqIDIpIHN0b3JlZAorIHggICAgICB8IGJpZ2ludCB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoKGEgKyBiKSAqIDIpCiAKIFNF TEVDVCAqIEZST00gZ3Rlc3QyNzsKICBhIHwgYiAgfCB4ICAKQEAgLTEwNzEsNyArMTAwMSw3 IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNzsKIC0tIEFMVEVSIFRBQkxFIC4uLiBBTFRFUiBD T0xVTU4gLi4uIERST1AgRVhQUkVTU0lPTgogQ1JFQVRFIFRBQkxFIGd0ZXN0MjkgKAogICAg IGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQK KyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTAogKTsKIElO U0VSVCBJTlRPIGd0ZXN0MjkgKGEpIFZBTFVFUyAoMyksICg0KTsKIFNFTEVDVCAqIEZST00g Z3Rlc3QyOTsKQEAgLTEwODIsMTA3ICsxMDEyLDExOCBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0 Mjk7CiAoMiByb3dzKQogCiBcZCBndGVzdDI5Ci0gICAgICAgICAgICAgICAgICAgIFRhYmxl ICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjkiCi0gQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIFRhYmxl ICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI5IgorIENvbHVtbiB8ICBUeXBlICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAK Ky0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQog CiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBhIFNFVCBFWFBSRVNTSU9OIEFT IChhICogMyk7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9uICJn dGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uCiBBTFRFUiBUQUJMRSBndGVzdDI5 IEFMVEVSIENPTFVNTiBhIERST1AgRVhQUkVTU0lPTjsgIC0tIGVycm9yCi1FUlJPUjogIGNv bHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlzIG5vdCBhIHN0b3JlZCBnZW5lcmF0 ZWQgY29sdW1uCitFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlz IG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4KIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09M VU1OIGEgRFJPUCBFWFBSRVNTSU9OIElGIEVYSVNUUzsgIC0tIG5vdGljZQotTk9USUNFOiAg Y29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgc3RvcmVkIGdlbmVy YXRlZCBjb2x1bW4sIHNraXBwaW5nCitOT1RJQ0U6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9u ICJndGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uLCBza2lwcGluZwogLS0gQ2hh bmdlIHRoZSBleHByZXNzaW9uCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBi IFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CitFUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VU IEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1ucworREVUQUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgYSB2 aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7Ci0gYSB8 IGIgIAotLS0tKy0tLS0KLSAzIHwgIDkKLSA0IHwgMTIKKyBhIHwgYiAKKy0tLSstLS0KKyAz IHwgNgorIDQgfCA4CiAoMiByb3dzKQogCiBcZCBndGVzdDI5Ci0gICAgICAgICAgICAgICAg ICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjkiCi0gQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQg ICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI5IgorIENvbHVtbiB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAg ICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDMpIHN0b3JlZAorIGIgICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMg KGEgKiAyKQogCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBiIERST1AgRVhQ UkVTU0lPTjsKK0VSUk9SOiAgQUxURVIgVEFCTEUgLyBEUk9QIEVYUFJFU1NJT04gaXMgbm90 IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29s dW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW4uCiBJTlNFUlQgSU5UTyBndGVzdDI5IChhKSBWQUxVRVMgKDUpOwogSU5TRVJUIElO VE8gZ3Rlc3QyOSAoYSwgYikgVkFMVUVTICg2LCA2Nik7CitFUlJPUjogIGNhbm5vdCBpbnNl cnQgYSBub24tREVGQVVMVCB2YWx1ZSBpbnRvIGNvbHVtbiAiYiIKK0RFVEFJTDogIENvbHVt biAiYiIgaXMgYSBnZW5lcmF0ZWQgY29sdW1uLgogU0VMRUNUICogRlJPTSBndGVzdDI5Owog IGEgfCBiICAKIC0tLSstLS0tCi0gMyB8ICA5Ci0gNCB8IDEyCi0gNSB8ICAgCi0gNiB8IDY2 Ci0oNCByb3dzKQorIDMgfCAgNgorIDQgfCAgOAorIDUgfCAxMAorKDMgcm93cykKIAogXGQg Z3Rlc3QyOQotICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOSIK LSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAot LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0Mjki CisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAg IERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg ICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikKIAogLS0gY2hlY2sgdGhh dCBkZXBlbmRlbmNpZXMgYmV0d2VlbiBjb2x1bW5zIGhhdmUgYWxzbyBiZWVuIHJlbW92ZWQK IEFMVEVSIFRBQkxFIGd0ZXN0MjkgRFJPUCBDT0xVTU4gYTsgIC0tIHNob3VsZCBub3QgZHJv cCBiCitFUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiBhIG9mIHRhYmxlIGd0ZXN0MjkgYmVj YXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgY29sdW1uIGIgb2Yg dGFibGUgZ3Rlc3QyOSBkZXBlbmRzIG9uIGNvbHVtbiBhIG9mIHRhYmxlIGd0ZXN0MjkKK0hJ TlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0 cyB0b28uCiBcZCBndGVzdDI5Ci0gICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0 cy5ndGVzdDI5IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 IERlZmF1bHQgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0KLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK KyAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3Qy OSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAg ICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQogCiAt LSB3aXRoIGluaGVyaXRhbmNlCiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMCAoCiAgICAgYSBpbnQs Ci0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorICAgIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMCiApOwogQ1JFQVRFIFRB QkxFIGd0ZXN0MzBfMSAoKSBJTkhFUklUUyAoZ3Rlc3QzMCk7CiBBTFRFUiBUQUJMRSBndGVz dDMwIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsKK0VSUk9SOiAgQUxURVIgVEFC TEUgLyBEUk9QIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3Qz MCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCiBcZCBndGVzdDMwCi0gICAgICBU YWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDMwIgotIENvbHVtbiB8ICBUeXBl ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCi0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBU YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QzMCIKKyBDb2x1bW4gfCAgVHlw ZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAg ICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVy YXRlZCBhbHdheXMgYXMgKGEgKiAyKQogTnVtYmVyIG9mIGNoaWxkIHRhYmxlczogMSAoVXNl IFxkKyB0byBsaXN0IHRoZW0uKQogCiBcZCBndGVzdDMwXzEKLSAgICAgVGFibGUgImdlbmVy YXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QzMF8xIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJnZW5l cmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDMwXzEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAorLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBi ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChhICogMikKIEluaGVyaXRzOiBndGVzdDMwCiAKIERST1AgVEFCTEUgZ3Rlc3Qz MCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBndGVzdDMwXzEK IENSRUFURSBUQUJMRSBndGVzdDMwICgKICAgICBhIGludCwKLSAgICBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElO SEVSSVRTIChndGVzdDMwKTsKIEFMVEVSIFRBQkxFIE9OTFkgZ3Rlc3QzMCBBTFRFUiBDT0xV TU4gYiBEUk9QIEVYUFJFU1NJT047ICAtLSBlcnJvcgogRVJST1I6ICBBTFRFUiBUQUJMRSAv IERST1AgRVhQUkVTU0lPTiBtdXN0IGJlIGFwcGxpZWQgdG8gY2hpbGQgdGFibGVzIHRvbwog XGQgZ3Rlc3QzMAotICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3Jl ZF90ZXN0cy5ndGVzdDMwIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1 YWxfdGVzdHMuZ3Rlc3QzMCIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGIgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKGEgKiAyKSBzdG9yZWQKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAg ICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikKIE51bWJlciBvZiBjaGlsZCB0 YWJsZXM6IDEgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKIAogXGQgZ3Rlc3QzMF8xCi0gICAg ICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QzMF8x IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDMw XzEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAg ICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3Rv cmVkCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJh dGVkIGFsd2F5cyBhcyAoYSAqIDIpCiBJbmhlcml0czogZ3Rlc3QzMAogCiBBTFRFUiBUQUJM RSBndGVzdDMwXzEgQUxURVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IK QEAgLTExOTAsNyArMTEzMSw3IEBAIEVSUk9SOiAgY2Fubm90IGRyb3AgZ2VuZXJhdGlvbiBl eHByZXNzaW9uIGZyb20gaW5oZXJpdGVkIGNvbHVtbgogLS0gdHJpZ2dlcnMKIENSRUFURSBU QUJMRSBndGVzdDI2ICgKICAgICBhIGludCBQUklNQVJZIEtFWSwKLSAgICBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7CiBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJp Z2dlcl9mdW5jKCkgUkVUVVJOUyB0cmlnZ2VyCiAgIExBTkdVQUdFIHBscGdzcWwKQEAgLTEy NDMsNyArMTE4NCw3IEBAIENSRUFURSBUUklHR0VSIGd0ZXN0NCBBRlRFUiBJTlNFUlQgT1Ig VVBEQVRFIE9OIGd0ZXN0MjYKICAgRVhFQ1VURSBQUk9DRURVUkUgZ3Rlc3RfdHJpZ2dlcl9m dW5jKCk7CiBJTlNFUlQgSU5UTyBndGVzdDI2IChhKSBWQUxVRVMgKC0yKSwgKDApLCAoMyk7 CiBJTkZPOiAgZ3Rlc3QyOiBCRUZPUkU6IG5ldyA9ICgtMiwpCi1JTkZPOiAgZ3Rlc3Q0OiBB RlRFUjogbmV3ID0gKC0yLC00KQorSU5GTzogIGd0ZXN0NDogQUZURVI6IG5ldyA9ICgtMiwp CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JERVIgQlkgYTsKICBhICB8IGIgIAogLS0tLSst LS0tCkBAIC0xMjUzLDEyICsxMTk0LDEyIEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRF UiBCWSBhOwogKDMgcm93cykKIAogVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSBhICogLTI7Ci1J TkZPOiAgZ3Rlc3QxOiBCRUZPUkU6IG9sZCA9ICgtMiwtNCkKK0lORk86ICBndGVzdDE6IEJF Rk9SRTogb2xkID0gKC0yLCkKIElORk86ICBndGVzdDE6IEJFRk9SRTogbmV3ID0gKDQsKQot SU5GTzogIGd0ZXN0MzogQUZURVI6IG9sZCA9ICgtMiwtNCkKLUlORk86ICBndGVzdDM6IEFG VEVSOiBuZXcgPSAoNCw4KQotSU5GTzogIGd0ZXN0NDogQUZURVI6IG9sZCA9ICgzLDYpCi1J TkZPOiAgZ3Rlc3Q0OiBBRlRFUjogbmV3ID0gKC02LC0xMikKK0lORk86ICBndGVzdDM6IEFG VEVSOiBvbGQgPSAoLTIsKQorSU5GTzogIGd0ZXN0MzogQUZURVI6IG5ldyA9ICg0LCkKK0lO Rk86ICBndGVzdDQ6IEFGVEVSOiBvbGQgPSAoMywpCitJTkZPOiAgZ3Rlc3Q0OiBBRlRFUjog bmV3ID0gKC02LCkKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwogIGEgIHwg IGIgIAogLS0tLSstLS0tLQpAQCAtMTI2OCw4ICsxMjA5LDggQEAgU0VMRUNUICogRlJPTSBn dGVzdDI2IE9SREVSIEJZIGE7CiAoMyByb3dzKQogCiBERUxFVEUgRlJPTSBndGVzdDI2IFdI RVJFIGEgPSAtNjsKLUlORk86ICBndGVzdDE6IEJFRk9SRTogb2xkID0gKC02LC0xMikKLUlO Rk86ICBndGVzdDM6IEFGVEVSOiBvbGQgPSAoLTYsLTEyKQorSU5GTzogIGd0ZXN0MTogQkVG T1JFOiBvbGQgPSAoLTYsKQorSU5GTzogIGd0ZXN0MzogQUZURVI6IG9sZCA9ICgtNiwpCiBT RUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JERVIgQlkgYTsKICBhIHwgYiAKIC0tLSstLS0KQEAg LTEyODAsNiArMTIyMSw4IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwog RFJPUCBUUklHR0VSIGd0ZXN0MSBPTiBndGVzdDI2OwogRFJPUCBUUklHR0VSIGd0ZXN0MiBP TiBndGVzdDI2OwogRFJPUCBUUklHR0VSIGd0ZXN0MyBPTiBndGVzdDI2OworLS0gY2hlY2sg ZGlzYWxsb3dlZCBtb2RpZmljYXRpb24gb2YgdmlydHVhbCBjb2x1bW5zCistLSBUT0RPCiAt LSBDaGVjayB0aGF0IGFuIFVQREFURSBvZiAiYSIgZmlyZXMgdGhlIHRyaWdnZXIgZm9yIFVQ REFURSBPRiBiLCBwZXIKIC0tIFNRTCBzdGFuZGFyZC4KIENSRUFURSBGVU5DVElPTiBndGVz dF90cmlnZ2VyX2Z1bmMzKCkgUkVUVVJOUyB0cmlnZ2VyCkBAIC0xMjkzLDkgKzEyMzYsMTEg QEAgJCQ7CiBDUkVBVEUgVFJJR0dFUiBndGVzdDExIEJFRk9SRSBVUERBVEUgT0YgYiBPTiBn dGVzdDI2CiAgIEZPUiBFQUNIIFJPVwogICBFWEVDVVRFIFBST0NFRFVSRSBndGVzdF90cmln Z2VyX2Z1bmMzKCk7CitFUlJPUjogIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5v dCBzdXBwb3J0ZWQgYXMgdHJpZ2dlciBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImIiIGlz IGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgogVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAx IFdIRVJFIGEgPSAwOwotTk9USUNFOiAgT0sKIERST1AgVFJJR0dFUiBndGVzdDExIE9OIGd0 ZXN0MjY7CitFUlJPUjogIHRyaWdnZXIgImd0ZXN0MTEiIGZvciB0YWJsZSAiZ3Rlc3QyNiIg ZG9lcyBub3QgZXhpc3QKIFRSVU5DQVRFIGd0ZXN0MjY7CiAtLSBjaGVjayB0aGF0IG1vZGlm aWNhdGlvbnMgb2Ygc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGluIHRyaWdnZXJzIGRvCiAt LSBub3QgZ2V0IHByb3BhZ2F0ZWQKQEAgLTEzMTksMTQgKzEyNjQsMTMgQEAgQ1JFQVRFIFRS SUdHRVIgZ3Rlc3QxMl8wMyBCRUZPUkUgVVBEQVRFIE9OIGd0ZXN0MjYKICAgRVhFQ1VURSBQ Uk9DRURVUkUgZ3Rlc3RfdHJpZ2dlcl9mdW5jKCk7CiBJTlNFUlQgSU5UTyBndGVzdDI2IChh KSBWQUxVRVMgKDEpOwogVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAxMSBXSEVSRSBhID0gMTsK LUlORk86ICBndGVzdDEyXzAxOiBCRUZPUkU6IG9sZCA9ICgxLDIpCitJTkZPOiAgZ3Rlc3Qx Ml8wMTogQkVGT1JFOiBvbGQgPSAoMSwpCiBJTkZPOiAgZ3Rlc3QxMl8wMTogQkVGT1JFOiBu ZXcgPSAoMTEsKQotSU5GTzogIGd0ZXN0MTJfMDM6IEJFRk9SRTogb2xkID0gKDEsMikKLUlO Rk86ICBndGVzdDEyXzAzOiBCRUZPUkU6IG5ldyA9ICgxMCwpCitFUlJPUjogIHRyaWdnZXIg bW9kaWZpZWQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHZhbHVlCiBTRUxFQ1QgKiBGUk9N IGd0ZXN0MjYgT1JERVIgQlkgYTsKLSBhICB8IGIgIAotLS0tLSstLS0tCi0gMTAgfCAyMAor IGEgfCBiIAorLS0tKy0tLQorIDEgfCAyCiAoMSByb3cpCiAKIC0tIExJS0UgSU5DTFVESU5H IEdFTkVSQVRFRCBhbmQgZHJvcHBlZCBjb2x1bW4gaGFuZGxpbmcKQEAgLTEzMzQsMjIgKzEy NzgsMjIgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjhhICgKICAgYSBpbnQsCiAgIGIgaW50LAog ICBjIGludCwKLSAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRAor ICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTAogKTsKIEFMVEVS IFRBQkxFIGd0ZXN0MjhhIERST1AgQ09MVU1OIGE7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOGIg KExJS0UgZ3Rlc3QyOGEgSU5DTFVESU5HIEdFTkVSQVRFRCk7CiBcZCBndGVzdDI4KgotICAg ICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0Mjhh IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI4 YSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAg ICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGIgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGMgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAotIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIgKiAyKSBzdG9yZWQKKyB4ICAg ICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChiICogMikKIAotICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3Rv cmVkX3Rlc3RzLmd0ZXN0MjhiIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmly dHVhbF90ZXN0cy5ndGVzdDI4YiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGMg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIHggICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIg KiAyKSBzdG9yZWQKKyB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAg fCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChiICogMikKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUKaW5kZXggZDRiYmMwZGIyNWIuLmZiY2U4MmNmN2U0IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTY4LDYgKzY4LDkgQEAgdGVzdDogc2VsZWN0X2lu dG8gc2VsZWN0X2Rpc3RpbmN0IHNlbGVjdF9kaXN0aW5jdF9vbiBzZWxlY3RfaW1wbGljaXQg c2VsZWN0X2hhdmkKICMgLS0tLS0tLS0tLQogdGVzdDogYnJpbiBnaW4gZ2lzdCBzcGdpc3Qg cHJpdmlsZWdlcyBpbml0X3ByaXZzIHNlY3VyaXR5X2xhYmVsIGNvbGxhdGUgbWF0dmlldyBs b2NrIHJlcGxpY2FfaWRlbnRpdHkgcm93c2VjdXJpdHkgb2JqZWN0X2FkZHJlc3MgdGFibGVz YW1wbGUgZ3JvdXBpbmdzZXRzIGRyb3Bfb3BlcmF0b3IgcGFzc3dvcmQgaWRlbnRpdHkgZ2Vu ZXJhdGVkX3N0b3JlZCBqb2luX2hhc2gKIAorIyBUT0RPOiBmaW5kIGEgcGxhY2UgZm9yIHRo aXMgKGFib3ZlIGdyb3VwIGlzIGZ1bGwpCit0ZXN0OiBnZW5lcmF0ZWRfdmlydHVhbAorCiAj IC0tLS0tLS0tLS0KICMgQWRkaXRpb25hbCBCUklOIHRlc3RzCiAjIC0tLS0tLS0tLS0KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbAppbmRleCA0OTI5 ZDM3M2EyZi4uM2FlNDJhOTkyNzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2NyZWF0ZV90YWJsZV9saWtlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVh dGVfdGFibGVfbGlrZS5zcWwKQEAgLTUxLDcgKzUxLDcgQEAgQ1JFQVRFIFRBQkxFIHRlc3Rf bGlrZV9pZF8zIChMSUtFIHRlc3RfbGlrZV9pZF8xIElOQ0xVRElORyBJREVOVElUWSk7CiBT RUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9pZF8zOyAgLS0gaWRlbnRpdHkgd2FzIGNvcGllZCBh bmQgYXBwbGllZAogRFJPUCBUQUJMRSB0ZXN0X2xpa2VfaWRfMSwgdGVzdF9saWtlX2lkXzIs IHRlc3RfbGlrZV9pZF8zOwogCi1DUkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8xIChhIGlu dCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgdGVzdF9saWtlX2dlbl8xIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJ UlRVQUwpOwogXGQgdGVzdF9saWtlX2dlbl8xCiBJTlNFUlQgSU5UTyB0ZXN0X2xpa2VfZ2Vu XzEgKGEpIFZBTFVFUyAoMSk7CiBTRUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9nZW5fMTsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwKaW5kZXggYzE4ZTBl MWY2NTUuLjAzZWExOTU0OTAzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9n ZW5lcmF0ZWRfc3RvcmVkLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0 ZWRfc3RvcmVkLnNxbApAQCAtMSw1ICsxLDUgQEAKIC0tIHNhbml0eSBjaGVjayBvZiBzeXN0 ZW0gY2F0YWxvZwotU0VMRUNUIGF0dHJlbGlkLCBhdHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJP TSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0Z2VuZXJhdGVkIE5PVCBJTiAoJycsICdzJyk7CitT RUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0 ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnLCAndicpOwogCiAKIENSRUFU RSBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0czsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCnNpbWlsYXJpdHkgaW5kZXggNzQlCmNvcHkgZnJv bSBzcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbApjb3B5IHRvIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF92aXJ0dWFsLnNxbAppbmRleCBjMThlMGUx ZjY1NS4uYjFjNDQyMWMzZWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dl bmVyYXRlZF9zdG9yZWQuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRl ZF92aXJ0dWFsLnNxbApAQCAtMSw1NSArMSw1NSBAQAogLS0gc2FuaXR5IGNoZWNrIG9mIHN5 c3RlbSBjYXRhbG9nCi1TRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBG Uk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnKTsK K1NFTEVDVCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmli dXRlIFdIRVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycsICd2Jyk7CiAKIAotQ1JF QVRFIFNDSEVNQSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzOwotR1JBTlQgVVNBR0UgT04gU0NI RU1BIGdlbmVyYXRlZF9zdG9yZWRfdGVzdHMgVE8gUFVCTElDOwotU0VUIHNlYXJjaF9wYXRo ID0gZ2VuZXJhdGVkX3N0b3JlZF90ZXN0czsKK0NSRUFURSBTQ0hFTUEgZ2VuZXJhdGVkX3Zp cnR1YWxfdGVzdHM7CitHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgZ2VuZXJhdGVkX3ZpcnR1YWxf dGVzdHMgVE8gUFVCTElDOworU0VUIHNlYXJjaF9wYXRoID0gZ2VuZXJhdGVkX3ZpcnR1YWxf dGVzdHM7CiAKLUNSRUFURSBUQUJMRSBndGVzdDAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTICg1NSkgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVz dDEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDAgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICg1NSkgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUg Z3Rlc3QxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFZJUlRVQUwpOwogCi1TRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNv bHVtbl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4 cHJlc3Npb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9z Y2hlbWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMjsKK1NFTEVD VCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29sdW1uX2RlZmF1bHQsIGlzX251bGxhYmxl LCBpc19nZW5lcmF0ZWQsIGdlbmVyYXRpb25fZXhwcmVzc2lvbiBGUk9NIGluZm9ybWF0aW9u X3NjaGVtYS5jb2x1bW5zIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfdmlydHVh bF90ZXN0cycgT1JERVIgQlkgMSwgMjsKIAotU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9u YW1lLCBkZXBlbmRlbnRfY29sdW1uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbl9j b2x1bW5fdXNhZ2UgV0hFUkUgdGFibGVfc2NoZW1hID0gJ2dlbmVyYXRlZF9zdG9yZWRfdGVz dHMnIE9SREVSIEJZIDEsIDIsIDM7CitTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUs IGRlcGVuZGVudF9jb2x1bW4gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uX2NvbHVt bl91c2FnZSBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMn IE9SREVSIEJZIDEsIDIsIDM7CiAKIFxkIGd0ZXN0MQogCiAtLSBkdXBsaWNhdGUgZ2VuZXJh dGVkCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAzKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8xIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRVQUwpOwogCiAtLSByZWZlcmVuY2Vz IHRvIG90aGVyIGdlbmVyYXRlZCBjb2x1bW5zLCBpbmNsdWRpbmcgc2VsZi1yZWZlcmVuY2Vz Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRCk7Ci1DUkVBVEUgVEFCTEUgZ3Rl c3RfZXJyXzJiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFNU T1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJhIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X2Vycl8yYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChi ICogMykgVklSVFVBTCk7CiAtLSBhIHdob2xlLXJvdyB2YXIgaXMgYSBzZWxmLXJlZmVyZW5j ZSBvbiBzdGVyb2lkcywgc28gZGlzYWxsb3cgdGhhdCB0b28KIENSRUFURSBUQUJMRSBndGVz dF9lcnJfMmMgKGEgaW50IFBSSU1BUlkgS0VZLAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKG51bV9udWxscyhndGVzdF9lcnJfMmMpKSBTVE9SRUQpOworICAgIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKG51bV9udWxscyhndGVzdF9lcnJfMmMpKSBWSVJUVUFMKTsK IAogLS0gaW52YWxpZCByZWZlcmVuY2UKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMyAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiAyKSBTVE9S RUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDIpIFZJUlRVQUwpOwogCiAtLSBnZW5lcmF0 aW9uIGV4cHJlc3Npb24gbXVzdCBiZSBpbW11dGFibGUKLUNSRUFURSBUQUJMRSBndGVzdF9l cnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91YmxlIHByZWNpc2lvbiBHRU5FUkFURUQg QUxXQVlTIEFTIChyYW5kb20oKSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJf NCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91YmxlIHByZWNpc2lvbiBHRU5FUkFURUQgQUxX QVlTIEFTIChyYW5kb20oKSkgVklSVFVBTCk7CiAtLSAuLi4gYnV0IGJlIHN1cmUgdGhhdCB0 aGUgaW1tdXRhYmlsaXR5IHRlc3QgaXMgYWNjdXJhdGUKLUNSRUFURSBUQUJMRSBndGVzdDIg KGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnIHNlYycpIFNUT1JF RCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgfHwgJyBzZWMnKSBWSVJUVUFMKTsKIERST1AgVEFCTEUgZ3Rlc3QyOwogCiAt LSBjYW5ub3QgaGF2ZSBkZWZhdWx0L2lkZW50aXR5IGFuZCBnZW5lcmF0ZWQKLUNSRUFURSBU QUJMRSBndGVzdF9lcnJfNWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBERUZBVUxUIDUg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7Ci1DUkVBVEUgVEFCTEUgZ3Rl c3RfZXJyXzViIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyBpZGVudGl0eSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFU RSBUQUJMRSBndGVzdF9lcnJfNWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBERUZBVUxU IDUgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl81YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgaWRlbnRpdHkgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwog CiAtLSByZWZlcmVuY2UgdG8gc3lzdGVtIGNvbHVtbiBub3QgYWxsb3dlZCBpbiBnZW5lcmF0 ZWQgY29sdW1uCiAtLSAoZXhjZXB0IHRhYmxlb2lkLCB3aGljaCB3ZSB0ZXN0IGJlbG93KQot Q1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl82YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgYm9vbCBH RU5FUkFURUQgQUxXQVlTIEFTICh4bWluIDw+IDM3KSBTVE9SRUQpOworQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl82YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgYm9vbCBHRU5FUkFURUQgQUxX QVlTIEFTICh4bWluIDw+IDM3KSBWSVJUVUFMKTsKIAogLS0gdmFyaW91cyBwcm9oaWJpdGVk IGNvbnN0cnVjdHMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2EgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhdmcoYSkpIFNUT1JFRCk7Ci1DUkVB VEUgVEFCTEUgZ3Rlc3RfZXJyXzdiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAocm93X251bWJlcigpIE9WRVIgKE9SREVSIEJZIGEpKSBTVE9SRUQp OwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkpIFNUT1JFRCk7Ci1DUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzdkIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZ2VuZXJhdGVfc2VyaWVzKDEsIGEpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGF2ZyhhKSkgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdiIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAocm93X251bWJl cigpIE9WRVIgKE9SREVSIEJZIGEpKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9l cnJfN2MgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgo U0VMRUNUIGEpKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2QgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zZXJp ZXMoMSwgYSkpIFZJUlRVQUwpOwogCiAtLSBHRU5FUkFURUQgQlkgREVGQVVMVCBub3QgYWxs b3dlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZ IERFRkFVTFQgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIAogSU5TRVJUIElOVE8gZ3Rlc3QxIFZB TFVFUyAoMSk7CiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgyLCBERUZBVUxUKTsgIC0t IG9rCkBAIC03MCw3ICs3MCw3IEBAIENSRUFURSBUQUJMRSBndGVzdF9lcnJfOCAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIChhICoKIFNFTEVD VCBhLCBiLCBiICogMiBBUyBiMiBGUk9NIGd0ZXN0MSBPUkRFUiBCWSBhOwogU0VMRUNUIGEs IGIgRlJPTSBndGVzdDEgV0hFUkUgYiA9IDQgT1JERVIgQlkgYTsKIAotLS0gdGVzdCB0aGF0 IG92ZXJmbG93IGVycm9yIGhhcHBlbnMgb24gd3JpdGUKKy0tIHRlc3QgdGhhdCBvdmVyZmxv dyBlcnJvciBoYXBwZW5zIG9uIHJlYWQKIElOU0VSVCBJTlRPIGd0ZXN0MSBWQUxVRVMgKDIw MDAwMDAwMDApOwogU0VMRUNUICogRlJPTSBndGVzdDE7CiBERUxFVEUgRlJPTSBndGVzdDEg V0hFUkUgYSA9IDIwMDAwMDAwMDA7CkBAIC05Myw4ICs5Myw4IEBAIENSRUFURSBUQUJMRSBn dGVzdG0gKAogICBpZCBpbnQgUFJJTUFSWSBLRVksCiAgIGYxIGludCwKICAgZjIgaW50LAot ICBmMyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjEgKiAyKSBTVE9SRUQsCi0gIGY0IGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRAorICBmMyBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoZjEgKiAyKSBWSVJUVUFMLAorICBmNCBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMCiApOwogSU5TRVJUIElOVE8gZ3Rlc3RtIFZBTFVF UyAoMSwgNSwgMTAwKTsKIE1FUkdFIElOVE8gZ3Rlc3RtIHQgVVNJTkcgKFZBTFVFUyAoMSwg MTApLCAoMiwgMjApKSB2KGlkLCBmMSkgT04gdC5pZCA9IHYuaWQKQEAgLTEzNCwyMiArMTM0 LDI2IEBAIENSRUFURSBUQUJMRSBndGVzdDFfMSAoKSBJTkhFUklUUyAoZ3Rlc3QxKTsKIAog LS0gY2FuJ3QgaGF2ZSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMgYSBjaGlsZCBvZiBub3Jt YWwgY29sdW1uCiBDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsIChhIGludCwgYiBpbnQpOwot Q1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdF9ub3JtYWwpOyAg LS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBn dGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMikgVklSVFVBTCkgSU5IRVJJVFMgKGd0ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgorQ1JF QVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X25vcm1hbF9j aGlsZCBJTkhFUklUIGd0ZXN0X25vcm1hbDsgIC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0 X25vcm1hbCwgZ3Rlc3Rfbm9ybWFsX2NoaWxkOwogCiAtLSB0ZXN0IGluaGVyaXRhbmNlIG1p c21hdGNoZXMgYmV0d2VlbiBwYXJlbnQgYW5kIGNoaWxkCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4 ICh4IGludCwgYiBpbnQgREVGQVVMVCAxMCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJv cgogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgSURFTlRJVFkpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJM RSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNU T1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywgb3ZlcnJpZGVzIHBhcmVudAorQ1JF QVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVycm9yCitDUkVBVEUgVEFC TEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBW SVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIG9rLCBvdmVycmlkZXMgcGFyZW50CiBc ZCsgZ3Rlc3R4CitJTlNFUlQgSU5UTyBndGVzdHggKGEsIHgpIFZBTFVFUyAoMTEsIDIyKTsK K1NFTEVDVCAqIEZST00gZ3Rlc3QxOworU0VMRUNUICogRlJPTSBndGVzdHg7CiAKIENSRUFU RSBUQUJMRSBndGVzdHh4XzEgKGEgaW50IE5PVCBOVUxMLCBiIGludCk7CiBBTFRFUiBUQUJM RSBndGVzdHh4XzEgSU5IRVJJVCBndGVzdDE7ICAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0 ZXN0eHhfMyAoYSBpbnQgTk9UIE5VTEwsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfMyAoYSBpbnQgTk9UIE5VTEws IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRB QkxFIGd0ZXN0eHhfMyBJTkhFUklUIGd0ZXN0MTsgIC0tIG9rCi1DUkVBVEUgVEFCTEUgZ3Rl c3R4eF80IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBhIGlu dCBOT1QgTlVMTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3R4eF80IChiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgVklSVFVBTCwgYSBpbnQgTk9UIE5VTEwpOwogQUxURVIgVEFC TEUgZ3Rlc3R4eF80IElOSEVSSVQgZ3Rlc3QxOyAgLS0gb2sKIAogLS0gdGVzdCBtdWx0aXBs ZSBpbmhlcml0YW5jZSBtaXNtYXRjaGVzCkBAIC0xNjEsMjggKzE2NSwyOCBAQCBDUkVBVEUg VEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MV95ICgp IElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBlcnJvcgogRFJPUCBUQUJMRSBndGVz dHk7CiAKLUNSRUFURSBUQUJMRSBndGVzdHkgKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTICh4ICogMjIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIyKSBWSVJUVUFMKTsKIENSRUFURSBU QUJMRSBndGVzdDFfeSAoKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gZXJyb3IK LUNSRUFURSBUQUJMRSBndGVzdDFfeSAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAr IDEpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIG9rCitDUkVBVEUg VEFCTEUgZ3Rlc3QxX3kgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKyAxKSBWSVJU VUFMKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gb2sKIFxkIGd0ZXN0MV95CiAK IC0tIHRlc3QgY29ycmVjdCBoYW5kbGluZyBvZiBHRU5FUkFURUQgY29sdW1uIHRoYXQncyBv bmx5IGluIGNoaWxkCiBDUkVBVEUgVEFCTEUgZ3Rlc3RwIChmMSBpbnQpOwotQ1JFQVRFIFRB QkxFIGd0ZXN0YyAoZjIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxKzEpIFNUT1JFRCkg SU5IRVJJVFMoZ3Rlc3RwKTsKK0NSRUFURSBUQUJMRSBndGVzdGMgKGYyIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMSsxKSBWSVJUVUFMKSBJTkhFUklUUyhndGVzdHApOwogSU5TRVJU IElOVE8gZ3Rlc3RjIHZhbHVlcyg0Mik7CiBUQUJMRSBndGVzdGM7CiBVUERBVEUgZ3Rlc3Rw IFNFVCBmMSA9IGYxICogMTA7CiBUQUJMRSBndGVzdGM7CiBEUk9QIFRBQkxFIGd0ZXN0cCBD QVNDQURFOwogCi0tLSB0ZXN0IHN0b3JlZCB1cGRhdGUKLUNSRUFURSBUQUJMRSBndGVzdDMg KGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RPUkVEKTsKKy0t IHRlc3QgdXBkYXRlIFhYWAorQ1JFQVRFIFRBQkxFIGd0ZXN0MyAoYSBpbnQsIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0 MyAoYSkgVkFMVUVTICgxKSwgKDIpLCAoMyksIChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rl c3QzIE9SREVSIEJZIGE7CiBVUERBVEUgZ3Rlc3QzIFNFVCBhID0gMjIgV0hFUkUgYSA9IDI7 CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBhOwogCi1DUkVBVEUgVEFCTEUgZ3Rl c3QzYSAoYSB0ZXh0LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnKycgfHwg YSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDNhIChhIHRleHQsIGIgdGV4dCBHRU5F UkFURUQgQUxXQVlTIEFTIChhIHx8ICcrJyB8fCBhKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRP IGd0ZXN0M2EgKGEpIFZBTFVFUyAoJ2EnKSwgKCdiJyksICgnYycpLCAoTlVMTCk7CiBTRUxF Q1QgKiBGUk9NIGd0ZXN0M2EgT1JERVIgQlkgYTsKIFVQREFURSBndGVzdDNhIFNFVCBhID0g J2JiJyBXSEVSRSBhID0gJ2InOwpAQCAtMjIyLDEyICsyMjYsMTIgQEAgQ1JFQVRFIFRBQkxF IGd0ZXN0M2EgKGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJysn IHx8IGEpIFNUT1JFRCkKIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAKIC0t IG51bGwgdmFsdWVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoTlVMTCkgU1RPUkVEKTsKK0NSRUFURSBUQUJM RSBndGVzdDIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChOVUxMKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0MiBWQUxVRVMgKDEpOwogU0VM RUNUICogRlJPTSBndGVzdDI7CiAKIC0tIHNpbXBsZSBjb2x1bW4gcmVmZXJlbmNlIGZvciB2 YXJsZW5hIHR5cGVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfdmFybGVuYSAoYSB2YXJjaGFyLCBi IHZhcmNoYXIgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSkgU1RPUkVEKTsKK0NSRUFURSBUQUJM RSBndGVzdF92YXJsZW5hIChhIHZhcmNoYXIsIGIgdmFyY2hhciBHRU5FUkFURUQgQUxXQVlT IEFTIChhKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0X3ZhcmxlbmEgKGEpIFZBTFVF UygnMDEyMzQ1Njc4OTAxMjM0NTY3ODknKTsKIElOU0VSVCBJTlRPIGd0ZXN0X3ZhcmxlbmEg KGEpIFZBTFVFUyhOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3RfdmFybGVuYSBPUkRFUiBC WSBhOwpAQCAtMjM3LDcgKzI0MSw3IEBAIENSRUFURSBUQUJMRSBndGVzdF92YXJsZW5hIChh IHZhcmNoYXIsIGIgdmFyY2hhciBHRU5FUkFURUQgQUxXQVlTIEFTIChhKSBTVE9SRUQpCiBD UkVBVEUgVFlQRSBkb3VibGVfaW50IGFzIChhIGludCwgYiBpbnQpOwogQ1JFQVRFIFRBQkxF IGd0ZXN0NCAoCiAgICAgYSBpbnQsCi0gICAgYiBkb3VibGVfaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKChhICogMiwgYSAqIDMpKSBTVE9SRUQKKyAgICBiIGRvdWJsZV9pbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoKGEgKiAyLCBhICogMykpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5U TyBndGVzdDQgVkFMVUVTICgxKSwgKDYpOwogU0VMRUNUICogRlJPTSBndGVzdDQ7CkBAIC0y NDgsMTY4ICsyNTIsMTY4IEBAIENSRUFURSBUQUJMRSBndGVzdDQgKAogLS0gdXNpbmcgdGFi bGVvaWQgaXMgYWxsb3dlZAogQ1JFQVRFIFRBQkxFIGd0ZXN0X3RhYmxlb2lkICgKICAgYSBp bnQgUFJJTUFSWSBLRVksCi0gIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9p ZCA9ICdndGVzdF90YWJsZW9pZCc6OnJlZ2NsYXNzKSBTVE9SRUQKKyAgYiBib29sIEdFTkVS QVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkID0gJ2d0ZXN0X3RhYmxlb2lkJzo6cmVnY2xhc3Mp IFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdF90YWJsZW9pZCBWQUxVRVMgKDEpLCAo Mik7CiBBTFRFUiBUQUJMRSBndGVzdF90YWJsZW9pZCBBREQgQ09MVU1OCi0gIGMgcmVnY2xh c3MgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQpIFNUT1JFRDsKKyAgYyByZWdjbGFz cyBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCkgVklSVFVBTDsKIFNFTEVDVCAqIEZS T00gZ3Rlc3RfdGFibGVvaWQ7CiAKIC0tIGRyb3AgY29sdW1uIGJlaGF2aW9yCi1DUkVBVEUg VEFCTEUgZ3Rlc3QxMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDEwIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIg KiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTAgRFJPUCBDT0xVTU4gYjsgIC0t IGZhaWxzCiBBTFRFUiBUQUJMRSBndGVzdDEwIERST1AgQ09MVU1OIGIgQ0FTQ0FERTsgIC0t IGRyb3BzIGMgdG9vCiAKIFxkIGd0ZXN0MTAKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MTBhIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNU T1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBn dGVzdDEwYSBEUk9QIENPTFVNTiBiOwogSU5TRVJUIElOVE8gZ3Rlc3QxMGEgKGEpIFZBTFVF UyAoMSk7CiAKIC0tIHByaXZpbGVnZXMKIENSRUFURSBVU0VSIHJlZ3Jlc3NfdXNlcjExOwog Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QxMXMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRCk7Ci1JTlNFUlQgSU5UTyBn dGVzdDExcyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKLUdSQU5UIFNFTEVDVCAoYSwgYykg T04gZ3Rlc3QxMXMgVE8gcmVncmVzc191c2VyMTE7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMXYg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YiAqIDIpIFZJUlRVQUwpOworSU5TRVJUIElOVE8gZ3Rlc3QxMXYgVkFMVUVTICgxLCAxMCks ICgyLCAyMCk7CitHUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTF2IFRPIHJlZ3Jlc3Nf dXNlcjExOwogCiBDUkVBVEUgRlVOQ1RJT04gZ2YxKGEgaW50KSBSRVRVUk5TIGludCBBUyAk JCBTRUxFQ1QgYSAqIDMgJCQgSU1NVVRBQkxFIExBTkdVQUdFIFNRTDsKIFJFVk9LRSBBTEwg T04gRlVOQ1RJT04gZ2YxKGludCkgRlJPTSBQVUJMSUM7CiAKLUNSRUFURSBUQUJMRSBndGVz dDEycyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChnZjEoYikpIFNUT1JFRCk7Ci1JTlNFUlQgSU5UTyBndGVzdDEycyBWQUxVRVMgKDEs IDEwKSwgKDIsIDIwKTsKK0NSRUFURSBUQUJMRSBndGVzdDEydiAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZjEoYikpIFZJUlRVQUwp OworSU5TRVJUIElOVE8gZ3Rlc3QxMnYgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7CiBHUkFO VCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTJzIFRPIHJlZ3Jlc3NfdXNlcjExOwogCiBTRVQg Uk9MRSByZWdyZXNzX3VzZXIxMTsKLVNFTEVDVCBhLCBiIEZST00gZ3Rlc3QxMXM7ICAtLSBu b3QgYWxsb3dlZAotU0VMRUNUIGEsIGMgRlJPTSBndGVzdDExczsgIC0tIGFsbG93ZWQKK1NF TEVDVCBhLCBiIEZST00gZ3Rlc3QxMXY7ICAtLSBub3QgYWxsb3dlZAorU0VMRUNUIGEsIGMg RlJPTSBndGVzdDExdjsgIC0tIGFsbG93ZWQKIFNFTEVDVCBnZjEoMTApOyAgLS0gbm90IGFs bG93ZWQKLVNFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMnM7ICAtLSBhbGxvd2VkCitTRUxFQ1Qg YSwgYyBGUk9NIGd0ZXN0MTJ2OyAgLS0gbm90IGFsbG93ZWQ7IFRPRE86IG91Z2h0IHRvIGJl IGFsbG93ZWQKIFJFU0VUIFJPTEU7CiAKIERST1AgRlVOQ1RJT04gZ2YxKGludCk7ICAtLSBm YWlsCi1EUk9QIFRBQkxFIGd0ZXN0MTFzLCBndGVzdDEyczsKK0RST1AgVEFCTEUgZ3Rlc3Qx MXYsIGd0ZXN0MTJ2OwogRFJPUCBGVU5DVElPTiBnZjEoaW50KTsKIERST1AgVVNFUiByZWdy ZXNzX3VzZXIxMTsKIAogLS0gY2hlY2sgY29uc3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVz dDIwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCBDSEVDSyAoYiA8IDUwKSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMCAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJU VUFMIENIRUNLIChiIDwgNTApKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAo MTApOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMzApOyAgLS0g dmlvbGF0ZXMgY29uc3RyYWludAogCiBBTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVN TiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMTAwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFp bnQKIEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04g QVMgKGEgKiAzKTsgIC0tIG9rCiAKLUNSRUFURSBUQUJMRSBndGVzdDIwYSAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOwor Q1JFQVRFIFRBQkxFIGd0ZXN0MjBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGEg KGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGEgKGEpIFZBTFVFUyAoMzAp OwogQUxURVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENIRUNLIChiIDwgNTApOyAgLS0gZmFpbHMg b24gZXhpc3Rpbmcgcm93CiAKLUNSRUFURSBUQUJMRSBndGVzdDIwYiAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JF QVRFIFRBQkxFIGd0ZXN0MjBiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEp IFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVFUyAoMzApOwog QUxURVIgVEFCTEUgZ3Rlc3QyMGIgQUREIENPTlNUUkFJTlQgY2hrIENIRUNLIChiIDwgNTAp IE5PVCBWQUxJRDsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBiIFZBTElEQVRFIENPTlNUUkFJTlQg Y2hrOyAgLS0gZmFpbHMgb24gZXhpc3Rpbmcgcm93CiAKLS0tIG5vdC1udWxsIGNvbnN0cmFp bnRzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFNUT1JFRCBOT1QgTlVMTCk7Ci1J TlNFUlQgSU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5U TyBndGVzdDIxYSAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKKy0t IG5vdC1udWxsIGNvbnN0cmFpbnRzIChjdXJyZW50bHkgbm90IHN1cHBvcnRlZCkKK0NSRUFU RSBUQUJMRSBndGVzdDIxYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCBOT1QgTlVMTCk7CistLUlOU0VSVCBJ TlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rl c3QyMWEgKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CiAKLUNSRUFU RSBUQUJMRSBndGVzdDIxYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKG51bGxpZihhLCAwKSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIx YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxp ZihhLCAwKSkgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdDIxYiBBTFRFUiBDT0xVTU4g YiBTRVQgTk9UIE5VTEw7Ci1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgxKTsg IC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xh dGVzIGNvbnN0cmFpbnQKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7 ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIHZp b2xhdGVzIGNvbnN0cmFpbnQKIEFMVEVSIFRBQkxFIGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBi IERST1AgTk9UIE5VTEw7Ci1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsg IC0tIG9rIG5vdworLS1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0t IG9rIG5vdwogCiAtLSBpbmRleCBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJh IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIp IFNUT1JFRCBVTklRVUUpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgyKTsKLUlO U0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoMyk7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYSBW QUxVRVMgKDQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJiIChhIGludCwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAvIDIpIFNUT1JFRCwgUFJJTUFSWSBLRVkgKGEsIGIpKTsKLUlO U0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYiBW QUxVRVMgKDIpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFZJUlRVQUwgVU5JUVVFKTsKKy0t SU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgyKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy MmEgVkFMVUVTICgzKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICg0KTsKK0NS RUFURSBUQUJMRSBndGVzdDIyYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgLyAyKSBWSVJUVUFMLCBQUklNQVJZIEtFWSAoYSwgYikpOworLS1JTlNFUlQgSU5UTyBn dGVzdDIyYiBWQUxVRVMgKDIpOworLS1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIp OwogCiAtLSBpbmRleGVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKLUNSRUFURSBJTkRFWCBndGVz dDIyY19iX2lkeCBPTiBndGVzdDIyYyAoYik7Ci1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfZXhw cl9pZHggT04gZ3Rlc3QyMmMgKChiICogMykpOwotQ1JFQVRFIElOREVYIGd0ZXN0MjJjX3By ZWRfaWR4IE9OIGd0ZXN0MjJjIChhKSBXSEVSRSBiID4gMDsKLVxkIGd0ZXN0MjJjCi0KLUlO U0VSVCBJTlRPIGd0ZXN0MjJjIFZBTFVFUyAoMSksICgyKSwgKDMpOwotU0VUIGVuYWJsZV9z ZXFzY2FuIFRPIG9mZjsKLVNFVCBlbmFibGVfYml0bWFwc2NhbiBUTyBvZmY7Ci1FWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDQ7Ci1TRUxF Q1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0OwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKLVNFTEVDVCAqIEZST00g Z3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSA2OwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLVNFTEVDVCAqIEZST00g Z3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwotCi1BTFRFUiBUQUJMRSBndGVzdDIy YyBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDQpOwotQU5BTFlaRSBn dGVzdDIyYzsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBX SEVSRSBiID0gODsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7Ci1FWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAx MjsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKLUVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+ IDA7Ci1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLVJF U0VUIGVuYWJsZV9zZXFzY2FuOwotUkVTRVQgZW5hYmxlX2JpdG1hcHNjYW47CitDUkVBVEUg VEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTCk7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVzdDIy YyAoYik7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19leHByX2lkeCBPTiBndGVzdDIyYyAo KGIgKiAzKSk7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19wcmVkX2lkeCBPTiBndGVzdDIy YyAoYSkgV0hFUkUgYiA+IDA7CistLVxkIGd0ZXN0MjJjCisKKy0tSU5TRVJUIElOVE8gZ3Rl c3QyMmMgVkFMVUVTICgxKSwgKDIpLCAoMyk7CistLVNFVCBlbmFibGVfc2Vxc2NhbiBUTyBv ZmY7CistLVNFVCBlbmFibGVfYml0bWFwc2NhbiBUTyBvZmY7CistLUVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKKy0tU0VMRUNUICog RlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKKy0tU0VMRUNUICogRlJPTSBn dGVzdDIyYyBXSEVSRSBiICogMyA9IDY7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7CistLVNFTEVDVCAqIEZS T00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOworCistLUFMVEVSIFRBQkxFIGd0 ZXN0MjJjIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNCk7CistLUFO QUxZWkUgZ3Rlc3QyMmM7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBn dGVzdDIyYyBXSEVSRSBiID0gODsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBi ID0gODsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdI RVJFIGIgKiAzID0gMTI7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMg PSAxMjsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdI RVJFIGEgPSAxIEFORCBiID4gMDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBh ID0gMSBBTkQgYiA+IDA7CistLVJFU0VUIGVuYWJsZV9zZXFzY2FuOworLS1SRVNFVCBlbmFi bGVfYml0bWFwc2NhbjsKIAogLS0gZm9yZWlnbiBrZXlzCiBDUkVBVEUgVEFCTEUgZ3Rlc3Qy M2EgKHggaW50IFBSSU1BUlkgS0VZLCB5IGludCk7Ci1JTlNFUlQgSU5UTyBndGVzdDIzYSBW QUxVRVMgKDEsIDExKSwgKDIsIDIyKSwgKDMsIDMzKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy M2EgVkFMVUVTICgxLCAxMSksICgyLCAyMiksICgzLCAzMyk7CiAKLUNSRUFURSBUQUJMRSBn dGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gVVBEQVRFIENBU0NB REUpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNF UyBndGVzdDIzYSAoeCkgT04gREVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9yCitDUkVBVEUg VEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgVklSVFVBTCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBVUERB VEUgQ0FTQ0FERSk7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwg UkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gREVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9y CiAKLUNSRUFURSBUQUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAo eCkpOwotXGQgZ3Rlc3QyM2IKK0NSRUFURSBUQUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIFJFRkVS RU5DRVMgZ3Rlc3QyM2EgKHgpKTsKKy0tXGQgZ3Rlc3QyM2IKIAotSU5TRVJUIElOVE8gZ3Rl c3QyM2IgVkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMg KDUpOyAgLS0gZXJyb3IKLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNF VCBFWFBSRVNTSU9OIEFTIChhICogNSk7IC0tIGVycm9yCi1BTFRFUiBUQUJMRSBndGVzdDIz YiBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDEpOyAtLSBvaworLS1J TlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDEpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8g Z3Rlc3QyM2IgVkFMVUVTICg1KTsgIC0tIGVycm9yCistLUFMVEVSIFRBQkxFIGd0ZXN0MjNi IEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNSk7IC0tIGVycm9yCist LUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFT IChhICogMSk7IC0tIG9rCiAKLURST1AgVEFCTEUgZ3Rlc3QyM2I7Ci1EUk9QIFRBQkxFIGd0 ZXN0MjNhOworLS1EUk9QIFRBQkxFIGd0ZXN0MjNiOworLS1EUk9QIFRBQkxFIGd0ZXN0MjNh OwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHggaW50LCB5IGludCBHRU5FUkFURUQgQUxX QVlTIEFTICh4ICogMikgU1RPUkVELCBQUklNQVJZIEtFWSAoeSkpOwotSU5TRVJUIElOVE8g Z3Rlc3QyM3AgVkFMVUVTICgxKSwgKDIpLCAoMyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3Ag KHggaW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMikgVklSVFVBTCwgUFJJ TUFSWSBLRVkgKHkpKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM3AgVkFMVUVTICgxKSwgKDIp LCAoMyk7CiAKIENSRUFURSBUQUJMRSBndGVzdDIzcSAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IFJFRkVSRU5DRVMgZ3Rlc3QyM3AgKHkpKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjNxIFZB TFVFUyAoMSwgMik7ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgyLCA1 KTsgIC0tIGVycm9yCistLUlOU0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMSwgMik7ICAt LSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIzcSBWQUxVRVMgKDIsIDUpOyAgLS0gZXJyb3IK IAogLS0gZG9tYWlucwogQ1JFQVRFIERPTUFJTiBndGVzdGRvbWFpbjEgQVMgaW50IENIRUNL IChWQUxVRSA8IDEwKTsKLUNSRUFURSBUQUJMRSBndGVzdDI0IChhIGludCBQUklNQVJZIEtF WSwgYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7 Ci1JTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKLUlOU0VSVCBJ TlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0 ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgVklSVFVBTCk7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZB TFVFUyAoNCk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDYp OyAgLS0gZXJyb3IKIAogLS0gdHlwZWQgdGFibGVzIChjdXJyZW50bHkgbm90IHN1cHBvcnRl ZCkKIENSRUFURSBUWVBFIGd0ZXN0X3R5cGUgQVMgKGYxIGludGVnZXIsIGYyIHRleHQsIGYz IGJpZ2ludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRI IE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKjIpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRIIE9QVElPTlMgR0VORVJBVEVE IEFMV0FZUyBBUyAoZjIgKjIpIFZJUlRVQUwpOwogRFJPUCBUWVBFIGd0ZXN0X3R5cGUgQ0FT Q0FERTsKIAogLS0gcGFydGl0aW9uaW5nIGNhc2VzCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFy ZW50IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCkgUEFSVElUSU9O IEJZIFJBTkdFIChmMSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9G IGd0ZXN0X3BhcmVudCAoCi0gICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYyICogMikgU1RPUkVECisgICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdB WVMgQVMgKGYyICogMikgVklSVFVBTAogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAx JykgVE8gKCcyMDE2LTA4LTAxJyk7IC0tIGVycm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfY2hp bGQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGYyICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9jaGlsZCAo ZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjIgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRB Q0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEn KSBUTyAoJzIwMTYtMDgtMDEnKTsgLS0gZXJyb3IKIERST1AgVEFCTEUgZ3Rlc3RfcGFyZW50 LCBndGVzdF9jaGlsZDsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBO T1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIg KiAyKSBTVE9SRUQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0Ug KGYxKTsKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZCBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFy ZW50CiAgIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBUTyAoJzIwMTYtMDgtMDEn KTsgIC0tIGluaGVyaXRzIGdlbiBleHByCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQyIFBB UlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAotICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDIyKSBTVE9SRUQgIC0tIG92ZXJyaWRlcyBnZW4gZXhwcgor ICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIyKSBWSVJU VUFMICAtLSBvdmVycmlkZXMgZ2VuIGV4cHIKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0w OC0wMScpIFRPICgnMjAxNi0wOS0wMScpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQ QVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKICAgICBmMyBERUZBVUxUIDQyICAtLSBlcnJv cgpAQCAtNDE3LDYgKzQyMSw5IEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElU SU9OIE9GIGd0ZXN0X3BhcmVudCAoCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJ VElPTiBPRiBndGVzdF9wYXJlbnQgKAogICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQg QUxXQVlTIEFTIElERU5USVRZICAtLSBlcnJvcgogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2 LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQz IFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAorICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYyICogMikgU1RPUkVEICAtLSBlcnJvcgorKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2 LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQz IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCk7CiBBTFRFUiBUQUJM RSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVF UyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOyAtLSBlcnJvcgogRFJP UCBUQUJMRSBndGVzdF9jaGlsZDM7CkBAIC00MjYsNyArNDMzLDcgQEAgQ1JFQVRFIFRBQkxF IGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQg REVGQVVMVCA0Mik7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBO VUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZ KTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2No aWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7 IC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKLUNSRUFURSBUQUJMRSBndGVz dF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Rf Y2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDMzKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3Bh cmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcy MDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBcZCBndGVzdF9jaGlsZAogXGQgZ3Rl c3RfY2hpbGQyCkBAIC00NTcsMjEgKzQ2NCwyMSBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hp bGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQg QUxXQQogLS0gd2UgbGVhdmUgdGhlc2UgdGFibGVzIGFyb3VuZCBmb3IgcHVycG9zZXMgb2Yg dGVzdGluZyBkdW1wL3JlbG9hZC91cGdyYWRlCiAKIC0tIGdlbmVyYXRlZCBjb2x1bW5zIGlu IHBhcnRpdGlvbiBrZXkgKG5vdCBhbGxvd2VkKQotQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRf a2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQg QUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7Ci1D UkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2lu dCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJU SVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsKK0NSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tl eSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKK0NS RUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50 LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJU SVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsKIAogLS0gQUxURVIgVEFCTEUgLi4uIEFERCBD T0xVTU4KIENSRUFURSBUQUJMRSBndGVzdDI1IChhIGludCBQUklNQVJZIEtFWSk7CiBJTlNF UlQgSU5UTyBndGVzdDI1IFZBTFVFUyAoMyksICg0KTsKLUFMVEVSIFRBQkxFIGd0ZXN0MjUg QUREIENPTFVNTiBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBB TFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOworQUxURVIgVEFCTEUg Z3Rlc3QyNSBBREQgQ09MVU1OIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBW SVJUVUFMLCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOwogU0VM RUNUICogRlJPTSBndGVzdDI1IE9SREVSIEJZIGE7Ci1BTFRFUiBUQUJMRSBndGVzdDI1IEFE RCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDQpIFNUT1JFRDsgIC0t IGVycm9yCi1BTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoeiAqIDQpIFNUT1JFRDsgIC0tIGVycm9yCitBTFRFUiBUQUJMRSBndGVz dDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDQpIFZJUlRV QUw7ICAtLSBlcnJvcgorQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKHogKiA0KSBWSVJUVUFMOyAgLS0gZXJyb3IKIEFMVEVSIFRB QkxFIGd0ZXN0MjUgQUREIENPTFVNTiBjIGludCBERUZBVUxUIDQyLAotICBBREQgQ09MVU1O IHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiA0KSBTVE9SRUQ7CisgIEFERCBDT0xV TU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDQpIFZJUlRVQUw7CiBBTFRFUiBU QUJMRSBndGVzdDI1IEFERCBDT0xVTU4gZCBpbnQgREVGQVVMVCAxMDE7CiBBTFRFUiBUQUJM RSBndGVzdDI1IEFMVEVSIENPTFVNTiBkIFNFVCBEQVRBIFRZUEUgZmxvYXQ4LAotICBBREQg Q09MVU1OIHkgZmxvYXQ4IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGQgKiA0KSBTVE9SRUQ7Cisg IEFERCBDT0xVTU4geSBmbG9hdDggR0VORVJBVEVEIEFMV0FZUyBBUyAoZCAqIDQpIFZJUlRV QUw7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjUgT1JERVIgQlkgYTsKIFxkIGd0ZXN0MjUKIApA QCAtNDc5LDcgKzQ4Niw3IEBAIENSRUFURSBUQUJMRSBndGVzdDI1IChhIGludCBQUklNQVJZ IEtFWSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNyAoCiAgICAgYSBpbnQsCiAgICAgYiBpbnQs Ci0gICAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFNUT1JFRAor ICAgIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBWSVJUVUFMCiAp OwogSU5TRVJUIElOVE8gZ3Rlc3QyNyAoYSwgYikgVkFMVUVTICgzLCA3KSwgKDQsIDExKTsK IEFMVEVSIFRBQkxFIGd0ZXN0MjcgQUxURVIgQ09MVU1OIGEgVFlQRSB0ZXh0OyAgLS0gZXJy b3IKQEAgLTQ5Myw3ICs1MDAsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QyNyAoCiAgIERST1Ag Q09MVU1OIHgsCiAgIEFMVEVSIENPTFVNTiBhIFRZUEUgYmlnaW50LAogICBBTFRFUiBDT0xV TU4gYiBUWVBFIGJpZ2ludCwKLSAgQUREIENPTFVNTiB4IGJpZ2ludCBHRU5FUkFURUQgQUxX QVlTIEFTICgoYSArIGIpICogMikgU1RPUkVEOworICBBREQgQ09MVU1OIHggYmlnaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBWSVJUVUFMOwogXGQgZ3Rlc3QyNwog LS0gSWRlYWxseSB5b3UgY291bGQganVzdCBkbyB0aGlzLCBidXQgbm90IHRvZGF5IChhbmQg c2hvdWxkIHggY2hhbmdlIHR5cGU/KToKIEFMVEVSIFRBQkxFIGd0ZXN0MjcKQEAgLTUwNSw3 ICs1MTIsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QyNyAoCiAtLSBBTFRFUiBUQUJMRSAuLi4g QUxURVIgQ09MVU1OIC4uLiBEUk9QIEVYUFJFU1NJT04KIENSRUFURSBUQUJMRSBndGVzdDI5 ICgKICAgICBhIGludCwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg U1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwK ICk7CiBJTlNFUlQgSU5UTyBndGVzdDI5IChhKSBWQUxVRVMgKDMpLCAoNCk7CiBTRUxFQ1Qg KiBGUk9NIGd0ZXN0Mjk7CkBAIC01MzIsNyArNTM5LDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0 MjkgKAogLS0gd2l0aCBpbmhlcml0YW5jZQogQ1JFQVRFIFRBQkxFIGd0ZXN0MzAgKAogICAg IGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQK KyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTAogKTsKIENS RUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5IRVJJVFMgKGd0ZXN0MzApOwogQUxURVIgVEFC TEUgZ3Rlc3QzMCBBTFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJFU1NJT047CkBAIC01NDEsNyAr NTQ4LDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MzBfMSAoKSBJTkhFUklUUyAoZ3Rlc3QzMCk7 CiBEUk9QIFRBQkxFIGd0ZXN0MzAgQ0FTQ0FERTsKIENSRUFURSBUQUJMRSBndGVzdDMwICgK ICAgICBhIGludCwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RP UkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7 CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsKIEFMVEVS IFRBQkxFIE9OTFkgZ3Rlc3QzMCBBTFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJFU1NJT047ICAt LSBlcnJvcgpAQCAtNTUyLDcgKzU1OSw3IEBAIENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkg SU5IRVJJVFMgKGd0ZXN0MzApOwogLS0gdHJpZ2dlcnMKIENSRUFURSBUQUJMRSBndGVzdDI2 ICgKICAgICBhIGludCBQUklNQVJZIEtFWSwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFZJUlRVQUwKICk7CiAKIENSRUFURSBGVU5DVElPTiBndGVzdF90cmlnZ2VyX2Z1bmMo KSBSRVRVUk5TIHRyaWdnZXIKQEAgLTYxNCw2ICs2MjEsOSBAQCBDUkVBVEUgVFJJR0dFUiBn dGVzdDQgQUZURVIgSU5TRVJUIE9SIFVQREFURSBPTiBndGVzdDI2CiBEUk9QIFRSSUdHRVIg Z3Rlc3QyIE9OIGd0ZXN0MjY7CiBEUk9QIFRSSUdHRVIgZ3Rlc3QzIE9OIGd0ZXN0MjY7CiAK Ky0tIGNoZWNrIGRpc2FsbG93ZWQgbW9kaWZpY2F0aW9uIG9mIHZpcnR1YWwgY29sdW1ucwor LS0gVE9ETworCiAtLSBDaGVjayB0aGF0IGFuIFVQREFURSBvZiAiYSIgZmlyZXMgdGhlIHRy aWdnZXIgZm9yIFVQREFURSBPRiBiLCBwZXIKIC0tIFNRTCBzdGFuZGFyZC4KIENSRUFURSBG VU5DVElPTiBndGVzdF90cmlnZ2VyX2Z1bmMzKCkgUkVUVVJOUyB0cmlnZ2VyCkBAIC02Njcs NyArNjc3LDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjhhICgKICAgYSBpbnQsCiAgIGIgaW50 LAogICBjIGludCwKLSAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JF RAorICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTAogKTsKIAog QUxURVIgVEFCTEUgZ3Rlc3QyOGEgRFJPUCBDT0xVTU4gYTsKZGlmZiAtLWdpdCBhL3NyYy90 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 LS0gCjIuNDQuMAoK --------------F047WaubqlPplDDt3NrCHCXm--