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.96) (envelope-from ) id 1vX6Wp-001Eqx-1O for pgsql-hackers@arkaria.postgresql.org; Sat, 20 Dec 2025 23:38:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vX6Wn-00AvK4-2i for pgsql-hackers@arkaria.postgresql.org; Sat, 20 Dec 2025 23:38:26 +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.96) (envelope-from ) id 1vX6Wl-00AvJw-38 for pgsql-hackers@lists.postgresql.org; Sat, 20 Dec 2025 23:38:26 +0000 Received: from mail.postgrespro.ru ([93.174.132.70]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vX6Wa-001jV5-15 for pgsql-hackers@postgresql.org; Sat, 20 Dec 2025 23:38:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1766273887; bh=HoptxUIkRwoh3HClLuTfnMJ9esUeebrC+vVaDy7YbMc=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=vyYY01LaabIdkLZomAY2ydfcxYUK4FKldjJPfIOZYOJvBD/E5o/m8ExkNLFlf5Umj qnucfqa3YEHXVU14b/Zzg4W7M+QZs+kADd8BafQkCVQGz5YWsWepkApxMEfjmUDvUn vT4qwfBT2NmtmnYsPaDiBq1z8674TJe6x+wMQ3SchmX0fC1wFLsNR+8Mz1q9xOSvG/ VD3uRB72BXVHMFZqIW1B0VvdZNZ8NXwgPIWb2eGIbkJ0q85QGuk0FU0yheDp3Rfkd2 D2HF4UUEdxdWsQY1mS4LJMxRIZ5UTm3kZEJtyUqTn/qfCvCZKX2WaymHMIb3b8jB4K rVlUo92z3Ru0g== Received: from [10.111.222.0] (unknown [151.236.30.245]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: a.rybakina@postgrespro.ru) by mail.postgrespro.ru (Postfix/465) with ESMTPSA id ED49B60857; Sun, 21 Dec 2025 02:38:04 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------LO5tty50ZJRZk32bRvqIZqab" Message-ID: Date: Sun, 21 Dec 2025 02:36:42 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Vacuum statistics To: pgsql-hackers Cc: Alexander Korotkov , Amit Kapila , Jim Nasby , Bertrand Drouvot , Kirill Reshke , Andrei Zubkov , Masahiko Sawada , Melanie Plageman , jian he , a.lepikhov@postgrespro.ru, Sami Imseih , vignesh C , Ilia Evdokimov , Alena Rybakina References: <86f76aa5-1ab5-4e2e-9b15-405051852a2a@postgrespro.ru> <513f0188-b093-4cc8-98cf-4c324570d525@postgrespro.ru> <47a7b784-5218-43f2-96e3-65f9a729c5a5@tantorlabs.com> <5583261b-eede-4341-b3b1-91650fefc1cf@postgrespro.ru> <2a04ad18-5572-4633-848b-eb57209e7ac0@postgrespro.ru> <2f48399f-2959-4483-938f-64edb863ca76@postgrespro.ru> <18169b68-5b10-40fd-9657-be04f2bd0161@postgrespro.ru> <612819ad-beca-41fb-bb7f-d5a7c11f0045@yandex.ru> Content-Language: en-US From: Alena Rybakina In-Reply-To: <612819ad-beca-41fb-bb7f-d5a7c11f0045@yandex.ru> X-KSMG-AntiPhishing: NotDetected X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2025/12/20 20:24:00 #28056798 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 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. --------------LO5tty50ZJRZk32bRvqIZqab Content-Type: multipart/alternative; boundary="------------ne50LVlVbf8MV1sWWQalDyQU" --------------ne50LVlVbf8MV1sWWQalDyQU Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, I’ve added some changes to one of the approaches and also did additional cleanup and stabilization work on the vacuum statistics tests. Specifically: * I moved the vacuum statistics tests into the tests tab and made them more stable. For slower machines, vacuum is now triggered inside the statistics wait function. Previously, some backends didn’t have enough time to release the lock, which could lead to differences because the vacuum hadn’t fully completed yet. * I also ran the backend tests and fixed a couple of minor issues along the way. * I ran pgindent to clean up and normalize the formatting. For now, I’ve temporarily removed collecting statistics related to database-level errors when vacuum is forced to stop. I’m currently stuck on how to properly expose statistics for cluster-level objects, since their dbid is 0. At the moment, only the second test still looks odd, and I haven’t fully figured out why yet. It seems like aggressive vacuum can no longer be triggered the same way as before with the current gucs, but I’m still investigating this. Best regards, Alena Rybakina --------------ne50LVlVbf8MV1sWWQalDyQU Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Hi,
I’ve added some changes to one of the approaches and also did additional cleanup and stabilization work on the vacuum statistics tests. Specifically:

  • I moved the vacuum statistics tests into the tests tab and made them more stable. For slower machines, vacuum is now triggered inside the statistics wait function. Previously, some backends didn’t have enough time to release the lock, which could lead to differences because the vacuum hadn’t fully completed yet.
  • I also ran the backend tests and fixed a couple of minor issues along the way.
  • I ran pgindent to clean up and normalize the formatting.

For now, I’ve temporarily removed collecting statistics related to database-level errors when vacuum is forced to stop. I’m currently stuck on how to properly expose statistics for cluster-level objects, since their dbid is 0.

At the moment, only the second test still looks odd, and I haven’t fully figured out why yet. It seems like aggressive vacuum can no longer be triggered the same way as before with the current gucs, but I’m still investigating this.

Best regards,
Alena Rybakina

--------------ne50LVlVbf8MV1sWWQalDyQU-- --------------LO5tty50ZJRZk32bRvqIZqab Content-Type: text/plain; charset=UTF-8; name="v26-0001-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v26-0001-Machinery-for-grabbing-an-extended-vacuum-statistic"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSBmOTZkNTA3OTc3NGZlMTI5ZmZmMzI3NjFiYmE0YWI5MDg5ZTQ5MWJkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVHVlLCA5IERlYyAyMDI1IDA5OjU2OjM0ICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAxLzVdIE1hY2hpbmVyeSBmb3IgZ3JhYmJpbmcgYW4gZXh0ZW5kZWQgdmFj dXVtIHN0YXRpc3RpY3Mgb24KIHRhYmxlIHJlbGF0aW9ucy4KClZhbHVlIG9mIHRvdGFsX2Js a3NfaGl0LCB0b3RhbF9ibGtzX3JlYWQsIHRvdGFsX2Jsa3NfZGlydGllZCBhcmUgbnVtYmVy IG9mCmhpdHRlZCwgbWlzc2VkIGFuZCBkaXJ0aWVkIHBhZ2VzIGluIHNoYXJlZCBidWZmZXJz IGR1cmluZyBhIHZhY3V1bSBvcGVyYXRpb24KcmVzcGVjdGl2ZWx5LgoKdG90YWxfYmxrc19k aXJ0aWVkIG1lYW5zICdkaXJ0aWVkIG9ubHkgYnkgdGhpcyBhY3Rpb24nLiBTbywgaWYgdGhp cyBwYWdlIHdhcwpkaXJ0eSBiZWZvcmUgdGhlIHZhY3V1bSBvcGVyYXRpb24sIGl0IGRvZXNu J3QgY291bnQgdGhpcyBwYWdlIGFzICdkaXJ0aWVkJy4KClRoZSB0dXBsZXNfZGVsZXRlZCBw YXJhbWV0ZXIgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMgY2xlYW5lZCB1cCBieSB0aGUgdmFj dXVtCm9wZXJhdGlvbi4KClRoZSBkZWxheV90aW1lIHZhbHVlIG1lYW5zIHRvdGFsIHZhY3V1 bSBzbGVlcCB0aW1lIGluIHZhY3V1bSBkZWxheSBwb2ludC4KVGhlIHBhZ2VzX3JlbW92ZWQg dmFsdWUgaXMgdGhlIG51bWJlciBvZiBwYWdlcyBieSB3aGljaCB0aGUgcGh5c2ljYWwgZGF0 YQpzdG9yYWdlIG9mIHRoZSByZWxhdGlvbiB3YXMgcmVkdWNlZC4KVGhlIHZhbHVlIG9mIHBh Z2VzX2RlbGV0ZWQgcGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgb2YgZnJlZWQgcGFnZXMgaW4g dGhlIHRhYmxlCihmaWxlIHNpemUgbWF5IG5vdCBoYXZlIGNoYW5nZWQpLgoKVHJhY2tpbmcg b2YgSU8gZHVyaW5nIGFuIChhdXRvKXZhY3V1bSBvcGVyYXRpb24uCkludHJvZHVjZWQgdmFy aWFibGVzIGJsa19yZWFkX3RpbWUgYW5kIGJsa193cml0ZV90aW1lIHRyYWNrcyBvbmx5IGFj Y2VzcyB0bwpidWZmZXIgcGFnZXMgYW5kIGZsdXNoaW5nIHRoZW0gdG8gZGlzay4gUmVhZGlu ZyBvcGVyYXRpb24gaXMgdHJpdmlhbCwgYnV0CndyaXRpbmcgbWVhc3VyZW1lbnQgdGVjaG5p cXVlIGlzIG5vdCBvYnZpb3VzLgpTbywgZHVyaW5nIGEgdmFjdXVtIHdyaXRpbmcgdGltZSBj YW4gYmUgemVybyBpbmNyZW1lbnRlZCBiZWNhdXNlIG5vIGFueSBmbHVzaGluZwpvcGVyYXRp b25zIHdlcmUgcGVyZm9ybWVkLgoKU3lzdGVtIHRpbWUgYW5kIHVzZXIgdGltZSBhcmUgcGFy YW1ldGVycyB0aGF0IGRlc2NyaWJlcyBob3cgbXVjaCB0aW1lIGEgdmFjdXVtCm9wZXJhdGlv biBoYXMgc3BlbnQgaW4gZXhlY3V0aW5nIG9mIGNvZGUgaW4gdXNlciBzcGFjZSBhbmQga2Vy bmVsIHNwYWNlCmFjY29yZGluZ2x5LiBBbHNvLCBhY2N1bXVsYXRlIHRvdGFsIHRpbWUgb2Yg YSB2YWN1dW0gdGhhdCBpcyBhIGRpZmYgYmV0d2Vlbgp0aW1lc3RhbXBzIGluIHN0YXJ0IGFu ZCBmaW5pc2ggcG9pbnRzIGluIHRoZSB2YWN1dW0gY29kZS4KUmVtZW1iZXIgYWJvdXQgaWRs ZSB0aW1lLCB3aGVuIHZhY3V1bSB3YWl0ZWQgZm9yIElPIGFuZCBsb2Nrcywgc28gdG90YWwg dGltZQppc24ndCBlcXVhbCBhIHN1bSBvZiB1c2VyIGFuZCBzeXN0ZW0gdGltZSwgYnV0IG5v IGxlc3MuCgpwYWdlc19mcm96ZW4gaXMgYSBudW1iZXIgb2YgcGFnZXMgdGhhdCBhcmUgbWFy a2VkIGFzIGZyb3plbiBpbiB2bSBkdXJpbmcgdmFjdXVtLgpUaGlzIHBhcmFtZXRlciBpcyBp bmNyZW1lbnRlZCBpZiBwYWdlIGlzIG1hcmtlZCBhcyBhbGwtZnJvemVuLgpwYWdlc19hbGxf dmlzaWJsZSBpcyBhIG51bWJlciBvZiBwYWdlcyB0aGF0IGFyZSBtYXJrZWQgYXMgYWxsLXZp c2libGUgaW4gdm0gZHVyaW5nCnZhY3V1bS4KCndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQg aXMgYSBudW1iZXIgb2YgdGltZXMgd2hlbiB0aGUgdmFjdXVtIHN0YXJ0cyB1cmdlbnQgY2xl YW51cAp0byBwcmV2ZW50IHdyYXBhcm91bmQgcHJvYmxlbSB3aGljaCBpcyBjcml0aWNhbCBm b3IgdGhlIGRhdGFiYXNlLgoKQXV0aG9yczogQWxlbmEgUnliYWtpbmEgPGxlbmEucmliYWNr aW5hQHlhbmRleC5ydT4sCgkgQW5kcmVpIExlcGlraG92IDxhLmxlcGlraG92QHBvc3RncmVz cHJvLnJ1PiwKCSBBbmRyZWkgWnVia292IDxhLnp1YmtvdkBwb3N0Z3Jlc3Byby5ydT4KUmV2 aWV3ZWQtYnk6IERpbGlwIEt1bWFyIDxkaWxpcGJhbGF1dEBnbWFpbC5jb20+LCBNYXNhaGlr byBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4sCgkgICAgIElsaWEgRXZkb2tpbW92 IDxpbHlhLmV2ZG9raW1vdkB0YW50b3JsYWJzLmNvbT4sIGppYW4gaGUgPGppYW4udW5pdmVy c2FsaXR5QGdtYWlsLmNvbT4sCgkgICAgIEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBn bWFpbC5jb20+LCBBbGV4YW5kZXIgS29yb3Rrb3YgPGFla29yb3Rrb3ZAZ21haWwuY29tPiwK CSAgICAgSmltIE5hc2J5IDxqbmFzYnlAdXBncmFkZS5jb20+LCBTYW1pIEltc2VpaCA8c2Ft aW1zZWloQGdtYWlsLmNvbT4sCgkgICAgIEthcmluYSBMaXRza2V2aWNoIDxsaXRza2V2aWNo a2FyaW5hQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMgICAgICAgICAgfCAxNDUgKysrKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zp c2liaWxpdHltYXAuYyAgICAgICB8ICAxMCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3Rl bV92aWV3cy5zcWwgICAgICAgICAgfCAgNTIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bS5jICAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW1wYXJhbGxlbC5jICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMgIHwgIDQ2ICstCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICAgfCAgODYgKysrCiBzcmMvYmFja2VuZC91dGls cy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDE4ICsKIHNyYy9pbmNsdWRlL2Nv bW1hbmRzL3ZhY3V1bS5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9w Z3N0YXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOTIgKystCiAuLi4vdmFjdXVt LWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQgICAgfCAgNTMgKysKIHNyYy90ZXN0 L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgICAgICAgICB8ICAgMSArCiAuLi4vdmFj dXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5zcGVjICAgfCAgNTMgKysKIC4uLi90 LzA1MF92YWN1dW1fZXh0ZW5kaW5nX2Jhc2ljX3Rlc3QucGwgICAgICB8IDU3MSArKysrKysr KysrKysrKysrKysKIC4uLi90LzA1MV92YWN1dW1fZXh0ZW5kaW5nX2ZyZWV6ZV90ZXN0LnBs ICAgICB8IDM5NSArKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVs ZXMub3V0ICAgICAgICAgICB8ICA0NCArLQogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiAxOCBmaWxlcyBjaGFuZ2VkLCAxNTY1IGlu c2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1y ZWFkLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92 YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLnNwZWMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9yZWNvdmVyeS90LzA1MF92YWN1dW1fZXh0ZW5kaW5nX2Jhc2ljX3Rl c3QucGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWNvdmVyeS90LzA1MV92YWN1 dW1fZXh0ZW5kaW5nX2ZyZWV6ZV90ZXN0LnBsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jCmluZGV4IDMwNzc4YTE1NjM5Li42NmUwOWQwYTBjZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMjg5LDYgKzI4OSw3IEBAIHR5cGVkZWYg c3RydWN0IExWUmVsU3RhdGUKIAkvKiBFcnJvciByZXBvcnRpbmcgc3RhdGUgKi8KIAljaGFy CSAgICpkYm5hbWU7CiAJY2hhcgkgICAqcmVsbmFtZXNwYWNlOworCU9pZAkJCXJlbG9pZDsK IAljaGFyCSAgICpyZWxuYW1lOwogCWNoYXIJICAgKmluZG5hbWU7CQkvKiBDdXJyZW50IGlu ZGV4IG5hbWUgKi8KIAlCbG9ja051bWJlciBibGtubzsJCQkvKiB1c2VkIG9ubHkgZm9yIGhl YXAgb3BlcmF0aW9ucyAqLwpAQCAtNDA3LDYgKzQwOCwxMCBAQCB0eXBlZGVmIHN0cnVjdCBM VlJlbFN0YXRlCiAJICogYmVlbiBwZXJtYW5lbnRseSBkaXNhYmxlZC4KIAkgKi8KIAlCbG9j a051bWJlciBlYWdlcl9zY2FuX3JlbWFpbmluZ19mYWlsczsKKworCWludDMyCQl3cmFwYXJv dW5kX2ZhaWxzYWZlX2NvdW50OwkvKiBudW1iZXIgb2YgZW1lcmdlbmN5IHZhY3V1bXMgdG8K KwkJCQkJCQkJCQkJICogcHJldmVudCBhbnRpLXdyYXBhcm91bmQKKwkJCQkJCQkJCQkJICog c2h1dGRvd24gKi8KIH0gTFZSZWxTdGF0ZTsKIAogCkBAIC00MTgsNiArNDIzLDE4IEBAIHR5 cGVkZWYgc3RydWN0IExWU2F2ZWRFcnJJbmZvCiAJVmFjRXJyUGhhc2UgcGhhc2U7CiB9IExW U2F2ZWRFcnJJbmZvOwogCisvKgorICogQ291bnRlcnMgYW5kIHVzYWdlIGRhdGEgZm9yIGV4 dGVuZGVkIHN0YXRzIHRyYWNraW5nLgorICovCit0eXBlZGVmIHN0cnVjdCBMVkV4dFN0YXRD b3VudGVycworeworCVRpbWVzdGFtcFR6IHN0YXJ0dGltZTsKKwlXYWxVc2FnZQl3YWx1c2Fn ZTsKKwlCdWZmZXJVc2FnZSBidWZ1c2FnZTsKKwlkb3VibGUJCVZhY3V1bURlbGF5VGltZTsK KwlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsKKwlQZ1N0YXRfQ291bnRlciBibG9j a3NfaGl0OworfQkJCUxWRXh0U3RhdENvdW50ZXJzOwogCiAvKiBub24tZXhwb3J0IGZ1bmN0 aW9uIHByb3RvdHlwZXMgKi8KIHN0YXRpYyB2b2lkIGxhenlfc2Nhbl9oZWFwKExWUmVsU3Rh dGUgKnZhY3JlbCk7CkBAIC00ODcsNiArNTA0LDEwMiBAQCBzdGF0aWMgdm9pZCB1cGRhdGVf dmFjdXVtX2Vycm9yX2luZm8oTFZSZWxTdGF0ZSAqdmFjcmVsLAogc3RhdGljIHZvaWQgcmVz dG9yZV92YWN1dW1fZXJyb3JfaW5mbyhMVlJlbFN0YXRlICp2YWNyZWwsCiAJCQkJCQkJCQkg IGNvbnN0IExWU2F2ZWRFcnJJbmZvICpzYXZlZF92YWNyZWwpOwogCisvKiAtLS0tLS0tLS0t CisgKiBleHR2YWNfc3RhdHNfc3RhcnQoKSAtCisgKgorICogU2F2ZSBjdXQtb2ZmIHZhbHVl cyBvZiBleHRlbmRlZCB2YWN1dW0gY291bnRlcnMgYmVmb3JlIHN0YXJ0IG9mIGEgcmVsYXRp b24KKyAqIHByb2Nlc3NpbmcuCisgKiAtLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2b2lkCitl eHR2YWNfc3RhdHNfc3RhcnQoUmVsYXRpb24gcmVsLCBMVkV4dFN0YXRDb3VudGVycyAqIGNv dW50ZXJzKQoreworCVRpbWVzdGFtcFR6IHN0YXJ0dGltZTsKKworCW1lbXNldChjb3VudGVy cywgMCwgc2l6ZW9mKExWRXh0U3RhdENvdW50ZXJzKSk7CisKKwlzdGFydHRpbWUgPSBHZXRD dXJyZW50VGltZXN0YW1wKCk7CisKKwljb3VudGVycy0+c3RhcnR0aW1lID0gc3RhcnR0aW1l OworCWNvdW50ZXJzLT53YWx1c2FnZSA9IHBnV2FsVXNhZ2U7CisJY291bnRlcnMtPmJ1ZnVz YWdlID0gcGdCdWZmZXJVc2FnZTsKKwljb3VudGVycy0+VmFjdXVtRGVsYXlUaW1lID0gVmFj dXVtRGVsYXlUaW1lOworCWNvdW50ZXJzLT5ibG9ja3NfZmV0Y2hlZCA9IDA7CisJY291bnRl cnMtPmJsb2Nrc19oaXQgPSAwOworCisJaWYgKCFyZWwtPnBnc3RhdF9pbmZvIHx8ICFwZ3N0 YXRfdHJhY2tfY291bnRzKQorCisJCS8qCisJCSAqIGlmIHNvbWV0aGluZyBnb2VzIHdyb25n IG9yIHVzZXIgZG9lc24ndCB3YW50IHRvIHRyYWNrIGEgZGF0YWJhc2UKKwkJICogYWN0aXZp dHkgLSBqdXN0IHN1cHByZXNzIGl0LgorCQkgKi8KKwkJcmV0dXJuOworCisJY291bnRlcnMt PmJsb2Nrc19mZXRjaGVkID0gcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJsb2Nrc19mZXRj aGVkOworCWNvdW50ZXJzLT5ibG9ja3NfaGl0ID0gcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRz LmJsb2Nrc19oaXQ7Cit9CisKKy8qIC0tLS0tLS0tLS0KKyAqIGV4dHZhY19zdGF0c19lbmQo KSAtCisgKgorICoJQ2FsbGVkIHRvIGZpbmlzaCBhbiBleHRlbmRlZCB2YWN1dW0gc3RhdGlz dGljIGdhdGhlcmluZyBhbmQgZm9ybSBhIHJlcG9ydC4KKyAqIC0tLS0tLS0tLS0KKyAqLwor c3RhdGljIHZvaWQKK2V4dHZhY19zdGF0c19lbmQoUmVsYXRpb24gcmVsLCBMVkV4dFN0YXRD b3VudGVycyAqIGNvdW50ZXJzLAorCQkJCSBFeHRWYWNSZXBvcnQgKiByZXBvcnQpCit7CisJ V2FsVXNhZ2UJd2FsdXNhZ2U7CisJQnVmZmVyVXNhZ2UgYnVmdXNhZ2U7CisJVGltZXN0YW1w VHogZW5kdGltZTsKKwlsb25nCQlzZWNzOworCWludAkJCXVzZWNzOworCisJLyogQ2FsY3Vs YXRlIGRpZmZzIG9mIGdsb2JhbCBzdGF0IHBhcmFtZXRlcnMgb24gV0FMIGFuZCBidWZmZXIg dXNhZ2UuICovCisJbWVtc2V0KCZ3YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVzYWdlKSk7CisJ V2FsVXNhZ2VBY2N1bURpZmYoJndhbHVzYWdlLCAmcGdXYWxVc2FnZSwgJmNvdW50ZXJzLT53 YWx1c2FnZSk7CisKKwltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBzaXplb2YoQnVmZmVyVXNhZ2Up KTsKKwlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmdXNhZ2UsICZwZ0J1ZmZlclVzYWdlLCAm Y291bnRlcnMtPmJ1ZnVzYWdlKTsKKworCWVuZHRpbWUgPSBHZXRDdXJyZW50VGltZXN0YW1w KCk7CisJVGltZXN0YW1wRGlmZmVyZW5jZShjb3VudGVycy0+c3RhcnR0aW1lLCBlbmR0aW1l LCAmc2VjcywgJnVzZWNzKTsKKworCW1lbXNldChyZXBvcnQsIDAsIHNpemVvZihFeHRWYWNS ZXBvcnQpKTsKKworCS8qCisJICogRmlsbCBhZGRpdGlvbmFsIHN0YXRpc3RpY3Mgb24gYSB2 YWN1dW0gcHJvY2Vzc2luZyBvcGVyYXRpb24uCisJICovCisJcmVwb3J0LT50b3RhbF9ibGtz X3JlYWQgPSBidWZ1c2FnZS5sb2NhbF9ibGtzX3JlYWQgKyBidWZ1c2FnZS5zaGFyZWRfYmxr c19yZWFkOworCXJlcG9ydC0+dG90YWxfYmxrc19oaXQgPSBidWZ1c2FnZS5sb2NhbF9ibGtz X2hpdCArIGJ1ZnVzYWdlLnNoYXJlZF9ibGtzX2hpdDsKKwlyZXBvcnQtPnRvdGFsX2Jsa3Nf ZGlydGllZCA9IGJ1ZnVzYWdlLmxvY2FsX2Jsa3NfZGlydGllZCArIGJ1ZnVzYWdlLnNoYXJl ZF9ibGtzX2RpcnRpZWQ7CisJcmVwb3J0LT50b3RhbF9ibGtzX3dyaXR0ZW4gPSBidWZ1c2Fn ZS5zaGFyZWRfYmxrc193cml0dGVuOworCisJcmVwb3J0LT53YWxfcmVjb3JkcyA9IHdhbHVz YWdlLndhbF9yZWNvcmRzOworCXJlcG9ydC0+d2FsX2ZwaSA9IHdhbHVzYWdlLndhbF9mcGk7 CisJcmVwb3J0LT53YWxfYnl0ZXMgPSB3YWx1c2FnZS53YWxfYnl0ZXM7CisKKwlyZXBvcnQt PmJsa19yZWFkX3RpbWUgPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5sb2Nh bF9ibGtfcmVhZF90aW1lKTsKKwlyZXBvcnQtPmJsa19yZWFkX3RpbWUgKz0gSU5TVFJfVElN RV9HRVRfTUlMTElTRUMoYnVmdXNhZ2Uuc2hhcmVkX2Jsa19yZWFkX3RpbWUpOworCXJlcG9y dC0+YmxrX3dyaXRlX3RpbWUgPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5s b2NhbF9ibGtfd3JpdGVfdGltZSk7CisJcmVwb3J0LT5ibGtfd3JpdGVfdGltZSA9IElOU1RS X1RJTUVfR0VUX01JTExJU0VDKGJ1ZnVzYWdlLnNoYXJlZF9ibGtfd3JpdGVfdGltZSk7CisJ cmVwb3J0LT5kZWxheV90aW1lID0gVmFjdXVtRGVsYXlUaW1lIC0gY291bnRlcnMtPlZhY3V1 bURlbGF5VGltZTsKKworCXJlcG9ydC0+dG90YWxfdGltZSA9IHNlY3MgKiAxMDAwLiArIHVz ZWNzIC8gMTAwMC47CisKKwlpZiAoIXJlbC0+cGdzdGF0X2luZm8gfHwgIXBnc3RhdF90cmFj a19jb3VudHMpCisKKwkJLyoKKwkJICogaWYgc29tZXRoaW5nIGdvZXMgd3Jvbmcgb3IgYW4g dXNlciBkb2Vzbid0IHdhbnQgdG8gdHJhY2sgYSBkYXRhYmFzZQorCQkgKiBhY3Rpdml0eSAt IGp1c3Qgc3VwcHJlc3MgaXQuCisJCSAqLworCQlyZXR1cm47CisKKwlyZXBvcnQtPmJsa3Nf ZmV0Y2hlZCA9CisJCXJlbC0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9ja3NfZmV0Y2hlZCAt IGNvdW50ZXJzLT5ibG9ja3NfZmV0Y2hlZDsKKwlyZXBvcnQtPmJsa3NfaGl0ID0KKwkJcmVs LT5wZ3N0YXRfaW5mby0+Y291bnRzLmJsb2Nrc19oaXQgLSBjb3VudGVycy0+YmxvY2tzX2hp dDsKK30KIAogCiAvKgpAQCAtNjQ1LDYgKzc1OCwxMyBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVs YXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCUJ1ZmZlclVzYWdlIHN0 YXJ0YnVmZmVydXNhZ2UgPSBwZ0J1ZmZlclVzYWdlOwogCUVycm9yQ29udGV4dENhbGxiYWNr IGVycmNhbGxiYWNrOwogCWNoYXIJICAqKmluZG5hbWVzID0gTlVMTDsKKwlMVkV4dFN0YXRD b3VudGVycyBleHRWYWNDb3VudGVyczsKKwlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0Owor CUV4dFZhY1JlcG9ydCBhbGx6ZXJvOworCisJLyogSW5pdGlhbGl6ZSB2YWN1dW0gc3RhdGlz dGljcyAqLworCW1lbXNldCgmYWxsemVybywgMCwgc2l6ZW9mKEV4dFZhY1JlcG9ydCkpOwor CWV4dFZhY1JlcG9ydCA9IGFsbHplcm87CiAKIAl2ZXJib3NlID0gKHBhcmFtcy5vcHRpb25z ICYgVkFDT1BUX1ZFUkJPU0UpICE9IDA7CiAJaW5zdHJ1bWVudCA9ICh2ZXJib3NlIHx8IChB bUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYKQEAgLTY3Myw2ICs3OTMsOCBAQCBoZWFw X3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAog CQlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX1ZBQ1VVTV9TVEFSVEVE X0JZLAogCQkJCQkJCQkJIFBST0dSRVNTX1ZBQ1VVTV9TVEFSVEVEX0JZX01BTlVBTCk7CiAK KwlleHR2YWNfc3RhdHNfc3RhcnQocmVsLCAmZXh0VmFjQ291bnRlcnMpOworCiAJLyoKIAkg KiBTZXR1cCBlcnJvciB0cmFjZWJhY2sgc3VwcG9ydCBmb3IgZXJlcG9ydCgpIGZpcnN0LiAg VGhlIGlkZWEgaXMgdG8gc2V0CiAJICogdXAgYW4gZXJyb3IgY29udGV4dCBjYWxsYmFjayB0 byBkaXNwbGF5IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb24gYW55CkBAIC02ODksNiArODEx LDcgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1z IHBhcmFtcywKIAl2YWNyZWwtPmRibmFtZSA9IGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJh c2VJZCk7CiAJdmFjcmVsLT5yZWxuYW1lc3BhY2UgPSBnZXRfbmFtZXNwYWNlX25hbWUoUmVs YXRpb25HZXROYW1lc3BhY2UocmVsKSk7CiAJdmFjcmVsLT5yZWxuYW1lID0gcHN0cmR1cChS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKTsKKwl2YWNyZWwtPnJlbG9pZCA9IFJlbGF0 aW9uR2V0UmVsaWQocmVsKTsKIAl2YWNyZWwtPmluZG5hbWUgPSBOVUxMOwogCXZhY3JlbC0+ cGhhc2UgPSBWQUNVVU1fRVJSQ0JfUEhBU0VfVU5LTk9XTjsKIAl2YWNyZWwtPnZlcmJvc2Ug PSB2ZXJib3NlOwpAQCAtNzk3LDYgKzkyMCw3IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlv biByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJdmFjcmVsLT5hZ2dyZXNzaXZl ID0gdmFjdXVtX2dldF9jdXRvZmZzKHJlbCwgcGFyYW1zLCAmdmFjcmVsLT5jdXRvZmZzKTsK IAl2YWNyZWwtPnJlbF9wYWdlcyA9IG9yaWdfcmVsX3BhZ2VzID0gUmVsYXRpb25HZXROdW1i ZXJPZkJsb2NrcyhyZWwpOwogCXZhY3JlbC0+dmlzdGVzdCA9IEdsb2JhbFZpc1Rlc3RGb3Io cmVsKTsKKwl2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQgPSAwOwogCiAJLyog SW5pdGlhbGl6ZSBzdGF0ZSB1c2VkIHRvIHRyYWNrIG9sZGVzdCBleHRhbnQgWElEL01YSUQg Ki8KIAl2YWNyZWwtPk5ld1JlbGZyb3plblhpZCA9IHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RY bWluOwpAQCAtOTUxLDYgKzEwNzUsMjMgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJl bCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAkJCQkJCXZhY3JlbC0+TmV3UmVsZnJv emVuWGlkLCB2YWNyZWwtPk5ld1JlbG1pbk14aWQsCiAJCQkJCQkmZnJvemVueGlkX3VwZGF0 ZWQsICZtaW5tdWx0aV91cGRhdGVkLCBmYWxzZSk7CiAKKwkvKiBNYWtlIGdlbmVyaWMgZXh0 ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCAqLworCWV4dHZhY19zdGF0c19lbmQocmVsLCAm ZXh0VmFjQ291bnRlcnMsICZleHRWYWNSZXBvcnQpOworCisJLyogRmlsbCBoZWFwLXNwZWNp ZmljIGV4dGVuZGVkIHN0YXRzIGZpZWxkcyAqLworCWV4dFZhY1JlcG9ydC5wYWdlc19zY2Fu bmVkID0gdmFjcmVsLT5zY2FubmVkX3BhZ2VzOworCWV4dFZhY1JlcG9ydC5wYWdlc19yZW1v dmVkID0gdmFjcmVsLT5yZW1vdmVkX3BhZ2VzOworCWV4dFZhY1JlcG9ydC52bV9uZXdfZnJv emVuX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfZnJvemVuX3BhZ2VzOworCWV4dFZhY1JlcG9y dC52bV9uZXdfdmlzaWJsZV9wYWdlcyA9IHZhY3JlbC0+dm1fbmV3X3Zpc2libGVfcGFnZXM7 CisJZXh0VmFjUmVwb3J0LnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9IHZhY3JlbC0+ dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOworCWV4dFZhY1JlcG9ydC50dXBsZXNfZGVs ZXRlZCA9IHZhY3JlbC0+dHVwbGVzX2RlbGV0ZWQ7CisJZXh0VmFjUmVwb3J0LnR1cGxlc19m cm96ZW4gPSB2YWNyZWwtPnR1cGxlc19mcm96ZW47CisJZXh0VmFjUmVwb3J0LnJlY2VudGx5 X2RlYWRfdHVwbGVzID0gdmFjcmVsLT5yZWNlbnRseV9kZWFkX3R1cGxlczsKKwlleHRWYWNS ZXBvcnQubWlzc2VkX2RlYWRfdHVwbGVzID0gdmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXM7 CisJZXh0VmFjUmVwb3J0Lm1pc3NlZF9kZWFkX3BhZ2VzID0gdmFjcmVsLT5taXNzZWRfZGVh ZF9wYWdlczsKKwlleHRWYWNSZXBvcnQuaW5kZXhfdmFjdXVtX2NvdW50ID0gdmFjcmVsLT5u dW1faW5kZXhfc2NhbnM7CisJZXh0VmFjUmVwb3J0LndyYXBhcm91bmRfZmFpbHNhZmVfY291 bnQgPSB2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CisKIAkvKgogCSAqIFJl cG9ydCByZXN1bHRzIHRvIHRoZSBjdW11bGF0aXZlIHN0YXRzIHN5c3RlbSwgdG9vLgogCSAq CkBAIC05NjUsNyArMTEwNiw4IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIGNv bnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJCQkJCQkgTWF4KHZhY3JlbC0+bmV3X2xpdmVf dHVwbGVzLCAwKSwKIAkJCQkJCSB2YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzICsKIAkJ CQkJCSB2YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlcywKLQkJCQkJCSBzdGFydHRpbWUpOwor CQkJCQkJIHN0YXJ0dGltZSwKKwkJCQkJCSAmZXh0VmFjUmVwb3J0KTsKIAlwZ3N0YXRfcHJv Z3Jlc3NfZW5kX2NvbW1hbmQoKTsKIAogCWlmIChpbnN0cnVtZW50KQpAQCAtMzAxOSw2ICsz MTYxLDcgQEAgbGF6eV9jaGVja193cmFwYXJvdW5kX2ZhaWxzYWZlKExWUmVsU3RhdGUgKnZh Y3JlbCkKIAkJaW50NjQJCXByb2dyZXNzX3ZhbFszXSA9IHswLCAwLCBQUk9HUkVTU19WQUNV VU1fTU9ERV9GQUlMU0FGRX07CiAKIAkJVmFjdXVtRmFpbHNhZmVBY3RpdmUgPSB0cnVlOwor CQl2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQrKzsKIAogCQkvKgogCQkgKiBB YmFuZG9uIHVzZSBvZiBhIGJ1ZmZlciBhY2Nlc3Mgc3RyYXRlZ3kgdG8gYWxsb3cgdXNlIG9m IGFsbCBvZgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0 eW1hcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4 IGQxNDU4OGU5MmFlLi4zMDMwMjQyZDk4ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3Zpc2liaWxpdHltYXAuYwpAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94 bG9naW5zZXJ0LmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2d1dGlscy5oIgogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInBvcnQvcGdf Yml0dXRpbHMuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0 b3JhZ2Uvc21nci5oIgpAQCAtMTYxLDYgKzE2MiwxNSBAQCB2aXNpYmlsaXR5bWFwX2NsZWFy KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIHZtYnVmLCB1aW50 OCBmbGFncwogCiAJaWYgKG1hcFttYXBCeXRlXSAmIG1hc2spCiAJeworCQkvKgorCQkgKiBB cyBwYXJ0IG9mIHZhY3V1bSBzdGF0cywgdHJhY2sgaG93IG9mdGVuIGFsbC12aXNpYmxlIG9y IGFsbC1mcm96ZW4KKwkJICogYml0cyBhcmUgY2xlYXJlZC4KKwkJICovCisJCWlmIChtYXBb bWFwQnl0ZV0gPj4gbWFwT2Zmc2V0ICYgZmxhZ3MgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJ QkxFKQorCQkJcGdzdGF0X2NvdW50X3ZtX3Jldl9hbGxfdmlzaWJsZShyZWwpOworCQlpZiAo bWFwW21hcEJ5dGVdID4+IG1hcE9mZnNldCAmIGZsYWdzICYgVklTSUJJTElUWU1BUF9BTExf RlJPWkVOKQorCQkJcGdzdGF0X2NvdW50X3ZtX3Jldl9hbGxfZnJvemVuKHJlbCk7CisKIAkJ bWFwW21hcEJ5dGVdICY9IH5tYXNrOwogCiAJCU1hcmtCdWZmZXJEaXJ0eSh2bWJ1Zik7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggMGEwZjk1ZjZiYjkuLmZm YjQwN2Q0MTRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3 cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC03 MjcsNyArNzI3LDkgQEAgQ1JFQVRFIFZJRVcgcGdfc3RhdF9hbGxfdGFibGVzIEFTCiAgICAg ICAgICAgICBwZ19zdGF0X2dldF90b3RhbF9hdXRvdmFjdXVtX3RpbWUoQy5vaWQpIEFTIHRv dGFsX2F1dG92YWN1dW1fdGltZSwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3RvdGFsX2Fu YWx5emVfdGltZShDLm9pZCkgQVMgdG90YWxfYW5hbHl6ZV90aW1lLAogICAgICAgICAgICAg cGdfc3RhdF9nZXRfdG90YWxfYXV0b2FuYWx5emVfdGltZShDLm9pZCkgQVMgdG90YWxfYXV0 b2FuYWx5emVfdGltZSwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3N0YXRfcmVzZXRfdGlt ZShDLm9pZCkgQVMgc3RhdHNfcmVzZXQKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3N0YXRf cmVzZXRfdGltZShDLm9pZCkgQVMgc3RhdHNfcmVzZXQsCisgICAgICAgICAgICBwZ19zdGF0 X2dldF9yZXZfYWxsX2Zyb3plbl9wYWdlcyhDLm9pZCkgQVMgcmV2X2FsbF9mcm96ZW5fcGFn ZXMsCisgICAgICAgICAgICBwZ19zdGF0X2dldF9yZXZfYWxsX3Zpc2libGVfcGFnZXMoQy5v aWQpIEFTIHJldl9hbGxfdmlzaWJsZV9wYWdlcwogICAgIEZST00gcGdfY2xhc3MgQyBMRUZU IEpPSU4KICAgICAgICAgIHBnX2luZGV4IEkgT04gQy5vaWQgPSBJLmluZHJlbGlkCiAgICAg ICAgICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIE4gT04gKE4ub2lkID0gQy5yZWxuYW1lc3Bh Y2UpCkBAIC0xNDUyLDMgKzE0NTQsNTEgQEAgUkVWT0tFIEFMTCBPTiBwZ19haW9zIEZST00g UFVCTElDOwogR1JBTlQgU0VMRUNUIE9OIHBnX2Fpb3MgVE8gcGdfcmVhZF9hbGxfc3RhdHM7 CiBSRVZPS0UgRVhFQ1VURSBPTiBGVU5DVElPTiBwZ19nZXRfYWlvcygpIEZST00gUFVCTElD OwogR1JBTlQgRVhFQ1VURSBPTiBGVU5DVElPTiBwZ19nZXRfYWlvcygpIFRPIHBnX3JlYWRf YWxsX3N0YXRzOworLS0KKy0tIFNob3cgZXh0ZW5kZWQgY3VtdWxhdGl2ZSBzdGF0aXN0aWNz IG9uIGEgdmFjdXVtIG9wZXJhdGlvbiBvdmVyIGFsbCB0YWJsZXMgYW5kCistLSBkYXRhYmFz ZXMgb2YgdGhlIGluc3RhbmNlLgorLS0gVXNlIEludmFsaWQgT2lkICIwIiBhcyBhbiBpbnB1 dCByZWxhdGlvbiBpZCB0byBnZXQgc3RhdCBvbiBlYWNoIHRhYmxlIGluIGEKKy0tIGRhdGFi YXNlLgorLS0KKworQ1JFQVRFIFZJRVcgcGdfc3RhdF92YWN1dW1fdGFibGVzIEFTCitTRUxF Q1QKKyAgbnMubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAorICByZWwucmVsbmFtZSBBUyByZWxu YW1lLAorICBzdGF0cy5yZWxpZCBhcyByZWxpZCwKKworICBzdGF0cy50b3RhbF9ibGtzX3Jl YWQgQVMgdG90YWxfYmxrc19yZWFkLAorICBzdGF0cy50b3RhbF9ibGtzX2hpdCBBUyB0b3Rh bF9ibGtzX2hpdCwKKyAgc3RhdHMudG90YWxfYmxrc19kaXJ0aWVkIEFTIHRvdGFsX2Jsa3Nf ZGlydGllZCwKKyAgc3RhdHMudG90YWxfYmxrc193cml0dGVuIEFTIHRvdGFsX2Jsa3Nfd3Jp dHRlbiwKKworICBzdGF0cy5yZWxfYmxrc19yZWFkIEFTIHJlbF9ibGtzX3JlYWQsCisgIHN0 YXRzLnJlbF9ibGtzX2hpdCBBUyByZWxfYmxrc19oaXQsCisKKyAgc3RhdHMucGFnZXNfc2Nh bm5lZCBBUyBwYWdlc19zY2FubmVkLAorICBzdGF0cy5wYWdlc19yZW1vdmVkIEFTIHBhZ2Vz X3JlbW92ZWQsCisgIHN0YXRzLnZtX25ld19mcm96ZW5fcGFnZXMgQVMgdm1fbmV3X2Zyb3pl bl9wYWdlcywKKyAgc3RhdHMudm1fbmV3X3Zpc2libGVfcGFnZXMgQVMgdm1fbmV3X3Zpc2li bGVfcGFnZXMsCisgIHN0YXRzLnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyBBUyB2bV9u ZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsCisgIHN0YXRzLm1pc3NlZF9kZWFkX3BhZ2VzIEFT IG1pc3NlZF9kZWFkX3BhZ2VzLAorICBzdGF0cy50dXBsZXNfZGVsZXRlZCBBUyB0dXBsZXNf ZGVsZXRlZCwKKyAgc3RhdHMudHVwbGVzX2Zyb3plbiBBUyB0dXBsZXNfZnJvemVuLAorICBz dGF0cy5yZWNlbnRseV9kZWFkX3R1cGxlcyBBUyByZWNlbnRseV9kZWFkX3R1cGxlcywKKyAg c3RhdHMubWlzc2VkX2RlYWRfdHVwbGVzIEFTIG1pc3NlZF9kZWFkX3R1cGxlcywKKworICBz dGF0cy53cmFwYXJvdW5kX2ZhaWxzYWZlIEFTIHdyYXBhcm91bmRfZmFpbHNhZmUsCisgIHN0 YXRzLmluZGV4X3ZhY3V1bV9jb3VudCBBUyBpbmRleF92YWN1dW1fY291bnQsCisgIHN0YXRz LndhbF9yZWNvcmRzIEFTIHdhbF9yZWNvcmRzLAorICBzdGF0cy53YWxfZnBpIEFTIHdhbF9m cGksCisgIHN0YXRzLndhbF9ieXRlcyBBUyB3YWxfYnl0ZXMsCisKKyAgc3RhdHMuYmxrX3Jl YWRfdGltZSBBUyBibGtfcmVhZF90aW1lLAorICBzdGF0cy5ibGtfd3JpdGVfdGltZSBBUyBi bGtfd3JpdGVfdGltZSwKKworICBzdGF0cy5kZWxheV90aW1lIEFTIGRlbGF5X3RpbWUsCisg IHN0YXRzLnRvdGFsX3RpbWUgQVMgdG90YWxfdGltZQorCitGUk9NIHBnX2NsYXNzIHJlbAor ICBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiBucy5vaWQgPSByZWwucmVsbmFtZXNwYWNlLAor ICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMocmVsLm9pZCkgc3RhdHMKK1dI RVJFIHJlbC5yZWxraW5kID0gJ3InOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwppbmRleCAwNTI4 ZDFiNmVjYi4uZGQ1MTk0NDczODcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCkBAIC0xMTcs NiArMTE3LDkgQEAgcGdfYXRvbWljX3VpbnQzMiAqVmFjdXVtU2hhcmVkQ29zdEJhbGFuY2Ug PSBOVUxMOwogcGdfYXRvbWljX3VpbnQzMiAqVmFjdXVtQWN0aXZlTldvcmtlcnMgPSBOVUxM OwogaW50CQkJVmFjdXVtQ29zdEJhbGFuY2VMb2NhbCA9IDA7CiAKKy8qIEN1bXVsYXRpdmUg c3RvcmFnZSB0byByZXBvcnQgdG90YWwgdmFjdXVtIGRlbGF5IHRpbWUuICovCitkb3VibGUJ CVZhY3V1bURlbGF5VGltZSA9IDA7CS8qIG1zZWMuICovCisKIC8qIG5vbi1leHBvcnQgZnVu Y3Rpb24gcHJvdG90eXBlcyAqLwogc3RhdGljIExpc3QgKmV4cGFuZF92YWN1dW1fcmVsKFZh Y3V1bVJlbGF0aW9uICp2cmVsLAogCQkJCQkJCSAgIE1lbW9yeUNvbnRleHQgdmFjX2NvbnRl eHQsIGludCBvcHRpb25zKTsKQEAgLTI1MzYsNiArMjUzOSw3IEBAIHZhY3V1bV9kZWxheV9w b2ludChib29sIGlzX2FuYWx5emUpCiAJCQlleGl0KDEpOwogCiAJCVZhY3V1bUNvc3RCYWxh bmNlID0gMDsKKwkJVmFjdXVtRGVsYXlUaW1lICs9IG1zZWM7CiAKIAkJLyoKIAkJICogQmFs YW5jZSBhbmQgdXBkYXRlIGxpbWl0IHZhbHVlcyBmb3IgYXV0b3ZhY3V1bSB3b3JrZXJzLiBX ZSBtdXN0IGRvCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJh bGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCA4 YTM3YzA4ODcxYS4uMTE0Y2Q3YzMxZDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt cGFyYWxsZWwuYwpAQCAtMTA1NCw2ICsxMDU0LDcgQEAgcGFyYWxsZWxfdmFjdXVtX21haW4o ZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFNldCBjb3N0LWJhc2VkIHZh Y3V1bSBkZWxheSAqLwogCVZhY3V1bVVwZGF0ZUNvc3RzKCk7CiAJVmFjdXVtQ29zdEJhbGFu Y2UgPSAwOworCVZhY3V1bURlbGF5VGltZSA9IDA7CiAJVmFjdXVtQ29zdEJhbGFuY2VMb2Nh bCA9IDA7CiAJVmFjdXVtU2hhcmVkQ29zdEJhbGFuY2UgPSAmKHNoYXJlZC0+Y29zdF9iYWxh bmNlKTsKIAlWYWN1dW1BY3RpdmVOV29ya2VycyA9ICYoc2hhcmVkLT5hY3RpdmVfbndvcmtl cnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3Jl bGF0aW9uLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24u YwppbmRleCA1NWExMGMyOTlkYi4uMzYxNzEzNDc5ZTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCkBAIC00Nyw2ICs0Nyw4IEBAIHN0 YXRpYyB2b2lkIGFkZF90YWJzdGF0X3hhY3RfbGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpw Z3N0YXRfaW5mbywgaW50IG5lc3RfbGV2CiBzdGF0aWMgdm9pZCBlbnN1cmVfdGFic3RhdF94 YWN0X2xldmVsKFBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0X2luZm8pOwogc3RhdGljIHZv aWQgc2F2ZV90cnVuY2Ryb3BfY291bnRlcnMoUGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJh bnMsIGJvb2wgaXNfZHJvcCk7CiBzdGF0aWMgdm9pZCByZXN0b3JlX3RydW5jZHJvcF9jb3Vu dGVycyhQZ1N0YXRfVGFibGVYYWN0U3RhdHVzICp0cmFucyk7CitzdGF0aWMgdm9pZCBwZ3N0 YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVwb3J0ICogZHN0LCBFeHRWYWNS ZXBvcnQgKiBzcmMsCisJCQkJCQkJCQkJICAgYm9vbCBhY2N1bXVsYXRlX3JlbHR5cGVfc3Bl Y2lmaWNfaW5mbyk7CiAKIAogLyoKQEAgLTIwOCw3ICsyMTAsNyBAQCBwZ3N0YXRfZHJvcF9y ZWxhdGlvbihSZWxhdGlvbiByZWwpCiAgKi8KIHZvaWQKIHBnc3RhdF9yZXBvcnRfdmFjdXVt KFJlbGF0aW9uIHJlbCwgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywKLQkJCQkJIFBnU3Rh dF9Db3VudGVyIGRlYWR0dXBsZXMsIFRpbWVzdGFtcFR6IHN0YXJ0dGltZSkKKwkJCQkJIFBn U3RhdF9Db3VudGVyIGRlYWR0dXBsZXMsIFRpbWVzdGFtcFR6IHN0YXJ0dGltZSwgRXh0VmFj UmVwb3J0ICogcGFyYW1zKQogewogCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmOwogCVBn U3RhdFNoYXJlZF9SZWxhdGlvbiAqc2h0YWJlbnRyeTsKQEAgLTIzNCw2ICsyMzYsOCBAQCBw Z3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbiByZWwsIFBnU3RhdF9Db3VudGVyIGxpdmV0 dXBsZXMsCiAJdGFiZW50cnktPmxpdmVfdHVwbGVzID0gbGl2ZXR1cGxlczsKIAl0YWJlbnRy eS0+ZGVhZF90dXBsZXMgPSBkZWFkdHVwbGVzOwogCisJcGdzdGF0X2FjY3VtdWxhdGVfZXh0 dmFjX3N0YXRzKCZ0YWJlbnRyeS0+dmFjdXVtX2V4dCwgcGFyYW1zLCB0cnVlKTsKKwogCS8q CiAJICogSXQgaXMgcXVpdGUgcG9zc2libGUgdGhhdCBhIG5vbi1hZ2dyZXNzaXZlIFZBQ1VV TSBlbmRlZCB1cCBza2lwcGluZwogCSAqIHZhcmlvdXMgcGFnZXMsIGhvd2V2ZXIsIHdlJ2xs IHplcm8gdGhlIGluc2VydCBjb3VudGVyIGhlcmUgcmVnYXJkbGVzcy4KQEAgLTg4MCw2ICs4 ODQsOSBAQCBwZ3N0YXRfcmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRy eV9yZWYsIGJvb2wgbm93YWl0KQogCXRhYmVudHJ5LT5ibG9ja3NfZmV0Y2hlZCArPSBsc3Rh dHMtPmNvdW50cy5ibG9ja3NfZmV0Y2hlZDsKIAl0YWJlbnRyeS0+YmxvY2tzX2hpdCArPSBs c3RhdHMtPmNvdW50cy5ibG9ja3NfaGl0OwogCisJdGFiZW50cnktPnJldl9hbGxfZnJvemVu X3BhZ2VzICs9IGxzdGF0cy0+Y291bnRzLnJldl9hbGxfZnJvemVuX3BhZ2VzOworCXRhYmVu dHJ5LT5yZXZfYWxsX3Zpc2libGVfcGFnZXMgKz0gbHN0YXRzLT5jb3VudHMucmV2X2FsbF92 aXNpYmxlX3BhZ2VzOworCiAJLyogQ2xhbXAgbGl2ZV90dXBsZXMgaW4gY2FzZSBvZiBuZWdh dGl2ZSBkZWx0YV9saXZlX3R1cGxlcyAqLwogCXRhYmVudHJ5LT5saXZlX3R1cGxlcyA9IE1h eCh0YWJlbnRyeS0+bGl2ZV90dXBsZXMsIDApOwogCS8qIExpa2V3aXNlIGZvciBkZWFkX3R1 cGxlcyAqLwpAQCAtMTAwOSwzICsxMDE2LDQwIEBAIHJlc3RvcmVfdHJ1bmNkcm9wX2NvdW50 ZXJzKFBnU3RhdF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zKQogCQl0cmFucy0+dHVwbGVzX2Rl bGV0ZWQgPSB0cmFucy0+ZGVsZXRlZF9wcmVfdHJ1bmNkcm9wOwogCX0KIH0KKworc3RhdGlj IHZvaWQKK3Bnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cyhFeHRWYWNSZXBvcnQgKiBk c3QsIEV4dFZhY1JlcG9ydCAqIHNyYywKKwkJCQkJCQkgICBib29sIGFjY3VtdWxhdGVfcmVs dHlwZV9zcGVjaWZpY19pbmZvKQoreworCWRzdC0+dG90YWxfYmxrc19yZWFkICs9IHNyYy0+ dG90YWxfYmxrc19yZWFkOworCWRzdC0+dG90YWxfYmxrc19oaXQgKz0gc3JjLT50b3RhbF9i bGtzX2hpdDsKKwlkc3QtPnRvdGFsX2Jsa3NfZGlydGllZCArPSBzcmMtPnRvdGFsX2Jsa3Nf ZGlydGllZDsKKwlkc3QtPnRvdGFsX2Jsa3Nfd3JpdHRlbiArPSBzcmMtPnRvdGFsX2Jsa3Nf d3JpdHRlbjsKKwlkc3QtPndhbF9ieXRlcyArPSBzcmMtPndhbF9ieXRlczsKKwlkc3QtPndh bF9mcGkgKz0gc3JjLT53YWxfZnBpOworCWRzdC0+d2FsX3JlY29yZHMgKz0gc3JjLT53YWxf cmVjb3JkczsKKwlkc3QtPmJsa19yZWFkX3RpbWUgKz0gc3JjLT5ibGtfcmVhZF90aW1lOwor CWRzdC0+YmxrX3dyaXRlX3RpbWUgKz0gc3JjLT5ibGtfd3JpdGVfdGltZTsKKwlkc3QtPmRl bGF5X3RpbWUgKz0gc3JjLT5kZWxheV90aW1lOworCWRzdC0+dG90YWxfdGltZSArPSBzcmMt PnRvdGFsX3RpbWU7CisKKwlpZiAoIWFjY3VtdWxhdGVfcmVsdHlwZV9zcGVjaWZpY19pbmZv KQorCQlyZXR1cm47CisKKwlkc3QtPmJsa3NfZmV0Y2hlZCArPSBzcmMtPmJsa3NfZmV0Y2hl ZDsKKwlkc3QtPmJsa3NfaGl0ICs9IHNyYy0+Ymxrc19oaXQ7CisKKwlkc3QtPnBhZ2VzX3Nj YW5uZWQgKz0gc3JjLT5wYWdlc19zY2FubmVkOworCWRzdC0+cGFnZXNfcmVtb3ZlZCArPSBz cmMtPnBhZ2VzX3JlbW92ZWQ7CisJZHN0LT52bV9uZXdfZnJvemVuX3BhZ2VzICs9IHNyYy0+ dm1fbmV3X2Zyb3plbl9wYWdlczsKKwlkc3QtPnZtX25ld192aXNpYmxlX3BhZ2VzICs9IHNy Yy0+dm1fbmV3X3Zpc2libGVfcGFnZXM7CisJZHN0LT52bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMgKz0gc3JjLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXM7CisJZHN0LT50dXBs ZXNfZGVsZXRlZCArPSBzcmMtPnR1cGxlc19kZWxldGVkOworCWRzdC0+dHVwbGVzX2Zyb3pl biArPSBzcmMtPnR1cGxlc19mcm96ZW47CisJZHN0LT5yZWNlbnRseV9kZWFkX3R1cGxlcyAr PSBzcmMtPnJlY2VudGx5X2RlYWRfdHVwbGVzOworCWRzdC0+aW5kZXhfdmFjdXVtX2NvdW50 ICs9IHNyYy0+aW5kZXhfdmFjdXVtX2NvdW50OworCWRzdC0+d3JhcGFyb3VuZF9mYWlsc2Fm ZV9jb3VudCArPSBzcmMtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CisJZHN0LT5taXNz ZWRfZGVhZF9wYWdlcyArPSBzcmMtPm1pc3NlZF9kZWFkX3BhZ2VzOworCWRzdC0+bWlzc2Vk X2RlYWRfdHVwbGVzICs9IHNyYy0+bWlzc2VkX2RlYWRfdHVwbGVzOworCit9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IGVmNmZmZmU2MGI5Li5kN2RmZGEwYzFh NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKQEAgLTEwNiw2ICsxMDYs MTIgQEAgUEdfU1RBVF9HRVRfUkVMRU5UUllfSU5UNjQodHVwbGVzX3VwZGF0ZWQpCiAvKiBw Z19zdGF0X2dldF92YWN1dW1fY291bnQgKi8KIFBHX1NUQVRfR0VUX1JFTEVOVFJZX0lOVDY0 KHZhY3V1bV9jb3VudCkKIAorLyogcGdfc3RhdF9nZXRfcmV2X2Zyb3plbl9wYWdlcyAqLwor UEdfU1RBVF9HRVRfUkVMRU5UUllfSU5UNjQocmV2X2FsbF9mcm96ZW5fcGFnZXMpCisKKy8q IHBnX3N0YXRfZ2V0X3Jldl9hbGxfdmlzaWJsZV9wYWdlcyAqLworUEdfU1RBVF9HRVRfUkVM RU5UUllfSU5UNjQocmV2X2FsbF92aXNpYmxlX3BhZ2VzKQorCiAjZGVmaW5lIFBHX1NUQVRf R0VUX1JFTEVOVFJZX0ZMT0FUOChzdGF0KQkJCQkJCVwKIERhdHVtCQkJCQkJCQkJCQkJCQkJ XAogQ3BwQ29uY2F0KHBnX3N0YXRfZ2V0XyxzdGF0KShQR19GVU5DVElPTl9BUkdTKQkJCQkJ XApAQCAtMjMwNywzICsyMzEzLDgzIEBAIHBnX3N0YXRfaGF2ZV9zdGF0cyhQR19GVU5DVElP Tl9BUkdTKQogCiAJUEdfUkVUVVJOX0JPT0wocGdzdGF0X2hhdmVfZW50cnkoa2luZCwgZGJv aWQsIG9iamlkKSk7CiB9CisKKworLyoKKyAqIEdldCB0aGUgdmFjdXVtIHN0YXRpc3RpY3Mg Zm9yIHRoZSBoZWFwIHRhYmxlcy4KKyAqLworRGF0dW0KK3BnX3N0YXRfZ2V0X3ZhY3V1bV90 YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKK3sKKyNkZWZpbmUgUEdfU1RBVF9HRVRfVkFDVVVN X1RBQkxFU19TVEFUU19DT0xTIDI2CisKKwlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQo MCk7CisJUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnk7CisJRXh0VmFjUmVwb3J0ICpl eHR2YWN1dW07CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJRGF0dW0JCXZhbHVlc1tQR19TVEFU X0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRTX0NPTFNdID0gezB9OworCWJvb2wJCW51bGxzW1BH X1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MU10gPSB7MH07CisJY2hhcgkJYnVm WzI1Nl07CisJaW50CQkJaSA9IDA7CisKKwlpZiAoZ2V0X2NhbGxfcmVzdWx0X3R5cGUoZmNp bmZvLCBOVUxMLCAmdHVwZGVzYykgIT0gVFlQRUZVTkNfQ09NUE9TSVRFKQorCQllbG9nKEVS Uk9SLCAicmV0dXJuIHR5cGUgbXVzdCBiZSBhIHJvdyB0eXBlIik7CisKKwl0YWJlbnRyeSA9 IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsKKworCWlmICghdGFiZW50cnkp CisJeworCQlJbml0TWF0ZXJpYWxpemVkU1JGKGZjaW5mbywgMCk7CisJCVBHX1JFVFVSTl9W T0lEKCk7CisJfQorCWVsc2UKKwl7CisJCWV4dHZhY3V1bSA9ICYodGFiZW50cnktPnZhY3V1 bV9leHQpOworCX0KKworCWkgPSAwOworCisJdmFsdWVzW2krK10gPSBPYmplY3RJZEdldERh dHVtKHJlbGlkKTsKKworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0t PnRvdGFsX2Jsa3NfcmVhZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZh Y3V1bS0+dG90YWxfYmxrc19oaXQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShl eHR2YWN1dW0tPnRvdGFsX2Jsa3NfZGlydGllZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdl dERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc193cml0dGVuKTsKKworCXZhbHVlc1tpKytd ID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmJsa3NfZmV0Y2hlZCAtCisJCQkJCQkJCWV4 dHZhY3V1bS0+Ymxrc19oaXQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPmJsa3NfaGl0KTsKKworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPnBhZ2VzX3NjYW5uZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShl eHR2YWN1dW0tPnBhZ2VzX3JlbW92ZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bShleHR2YWN1dW0tPnZtX25ld19mcm96ZW5fcGFnZXMpOworCXZhbHVlc1tpKytdID0gSW50 NjRHZXREYXR1bShleHR2YWN1dW0tPnZtX25ld192aXNpYmxlX3BhZ2VzKTsKKwl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPm1pc3Nl ZF9kZWFkX3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVt LT50dXBsZXNfZGVsZXRlZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZh Y3V1bS0+dHVwbGVzX2Zyb3plbik7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+cmVjZW50bHlfZGVhZF90dXBsZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bShleHR2YWN1dW0tPm1pc3NlZF9kZWFkX3R1cGxlcyk7CisJdmFsdWVzW2krK10g PSBJbnQzMkdldERhdHVtKGV4dHZhY3V1bS0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7 CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+aW5kZXhfdmFjdXVt X2NvdW50KTsKKworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPndh bF9yZWNvcmRzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT53 YWxfZnBpKTsKKworCS8qIENvbnZlcnQgdG8gbnVtZXJpYywgbGlrZSBwZ19zdGF0X3N0YXRl bWVudHMgKi8KKwlzbnByaW50ZihidWYsIHNpemVvZiBidWYsIFVJTlQ2NF9GT1JNQVQsIGV4 dHZhY3V1bS0+d2FsX2J5dGVzKTsKKwl2YWx1ZXNbaSsrXSA9IERpcmVjdEZ1bmN0aW9uQ2Fs bDMobnVtZXJpY19pbiwKKwkJCQkJCQkJCSAgQ1N0cmluZ0dldERhdHVtKGJ1ZiksCisJCQkJ CQkJCQkgIE9iamVjdElkR2V0RGF0dW0oMCksCisJCQkJCQkJCQkgIEludDMyR2V0RGF0dW0o LTEpKTsKKworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtf cmVhZF90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+ YmxrX3dyaXRlX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFj dXVtLT5kZWxheV90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZh Y3V1bS0+dG90YWxfdGltZSk7CisKKwlBc3NlcnQoaSA9PSBQR19TVEFUX0dFVF9WQUNVVU1f VEFCTEVTX1NUQVRTX0NPTFMpOworCisJLyogUmV0dXJucyB0aGUgcmVjb3JkIGFzIERhdHVt ICovCisJUEdfUkVUVVJOX0RBVFVNKEhlYXBUdXBsZUdldERhdHVtKGhlYXBfZm9ybV90dXBs ZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKSkpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGRjOWUyMjU1ZjhhLi44Njc2 MzhmZTc0YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3Fs LmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5j b25mLnNhbXBsZQpAQCAtNjY5LDYgKzY2OSw3IEBACiAjdHJhY2tfd2FsX2lvX3RpbWluZyA9 IG9mZgogI3RyYWNrX2Z1bmN0aW9ucyA9IG5vbmUgICAgICAgICAgICAgICAgICMgbm9uZSwg cGwsIGFsbAogI3N0YXRzX2ZldGNoX2NvbnNpc3RlbmN5ID0gY2FjaGUgICAgICAgICMgY2Fj aGUsIG5vbmUsIHNuYXBzaG90CisjdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgPSBvZmYKIAog CiAjIC0gTW9uaXRvcmluZyAtCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBmZDk0 NDhlYzdiOS4uOTE1YTVhNzgyMmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAt MTI2MTIsNCArMTI2MTIsMjIgQEAKICAgcHJvYXJnbmFtZXMgPT4gJ3twaWQsaW9faWQsaW9f Z2VuZXJhdGlvbixzdGF0ZSxvcGVyYXRpb24sb2ZmLGxlbmd0aCx0YXJnZXQsaGFuZGxlX2Rh dGFfbGVuLHJhd19yZXN1bHQscmVzdWx0LHRhcmdldF9kZXNjLGZfc3luYyxmX2xvY2FsbWVt LGZfYnVmZmVyZWR9JywKICAgcHJvc3JjID0+ICdwZ19nZXRfYWlvcycgfSwKIAoreyBvaWQg PT4gJzgwMDEnLAorICBkZXNjciA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcyByZXR1 cm5zIHZhY3V1bSBzdGF0cyB2YWx1ZXMgZm9yIHRhYmxlJywKKyAgcHJvbmFtZSA9PiAncGdf c3RhdF9nZXRfdmFjdXVtX3RhYmxlcycsIHByb3Jvd3MgPT4gMTAwMCwgcHJvdm9sYXRpbGUg PT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLHByb2lzc3RyaWN0ID0+ICdmJywKKyAg cHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb2FsbGFy Z3R5cGVzID0+ICd7b2lkLG9pZCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4 LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDQsaW50 OCxpbnQ4LGludDgsbnVtZXJpYyxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxmbG9hdDh9JywKKyAg cHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne3JlbG9pZCxyZWxpZCx0 b3RhbF9ibGtzX3JlYWQsdG90YWxfYmxrc19oaXQsdG90YWxfYmxrc19kaXJ0aWVkLHRvdGFs X2Jsa3Nfd3JpdHRlbixyZWxfYmxrc19yZWFkLHJlbF9ibGtzX2hpdCxwYWdlc19zY2FubmVk LHBhZ2VzX3JlbW92ZWQsdm1fbmV3X2Zyb3plbl9wYWdlcyx2bV9uZXdfdmlzaWJsZV9wYWdl cyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsbWlzc2VkX2RlYWRfcGFnZXMsdHVwbGVz X2RlbGV0ZWQsdHVwbGVzX2Zyb3plbixyZWNlbnRseV9kZWFkX3R1cGxlcyxtaXNzZWRfZGVh ZF90dXBsZXMsd3JhcGFyb3VuZF9mYWlsc2FmZSxpbmRleF92YWN1dW1fY291bnQsd2FsX3Jl Y29yZHMsd2FsX2ZwaSx3YWxfYnl0ZXMsYmxrX3JlYWRfdGltZSxibGtfd3JpdGVfdGltZSxk ZWxheV90aW1lLHRvdGFsX3RpbWV9JywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF92YWN1 dW1fdGFibGVzJyB9LAorCisgIHsgb2lkID0+ICc4MDAyJywgZGVzY3IgPT4gJ3N0YXRpc3Rp Y3M6IG51bWJlciBvZiB0aW1lcyB0aGUgYWxsLXZpc2libGUgcGFnZXMgaW4gdGhlIHZpc2li aWxpdHkgbWFwIHdhcyByZW1vdmVkIGZvciBwYWdlcyBvZiB0YWJsZScsCisgIHByb25hbWUg PT4gJ3BnX3N0YXRfZ2V0X3Jldl9hbGxfdmlzaWJsZV9wYWdlcycsIHByb3ZvbGF0aWxlID0+ ICdzJywKKyAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJv YXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfcmV2X2FsbF92 aXNpYmxlX3BhZ2VzJyB9LAorICB7IG9pZCA9PiAnODAwMycsIGRlc2NyID0+ICdzdGF0aXN0 aWNzOiBudW1iZXIgb2YgdGltZXMgdGhlIGFsbC1mcm96ZW4gcGFnZXMgaW4gdGhlIHZpc2li aWxpdHkgbWFwIHdhcyByZW1vdmVkIGZvciBwYWdlcyBvZiB0YWJsZScsCisgIHByb25hbWUg PT4gJ3BnX3N0YXRfZ2V0X3Jldl9hbGxfZnJvemVuX3BhZ2VzJywgcHJvdm9sYXRpbGUgPT4g J3MnLAorICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9h cmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX2Zy b3plbl9wYWdlcycgfSwKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Zh Y3V1bS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKaW5kZXggMWYzMjkwYzdm YmYuLjZiOTk3YmM3ZmIxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1 dW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaApAQCAtMzMyLDYgKzMz Miw3IEBAIGV4dGVybiBQR0RMTElNUE9SVCBkb3VibGUgdmFjdXVtX21heF9lYWdlcl9mcmVl emVfZmFpbHVyZV9yYXRlOwogZXh0ZXJuIFBHRExMSU1QT1JUIHBnX2F0b21pY191aW50MzIg KlZhY3V1bVNoYXJlZENvc3RCYWxhbmNlOwogZXh0ZXJuIFBHRExMSU1QT1JUIHBnX2F0b21p Y191aW50MzIgKlZhY3V1bUFjdGl2ZU5Xb3JrZXJzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGlu dCBWYWN1dW1Db3N0QmFsYW5jZUxvY2FsOworZXh0ZXJuIFBHRExMSU1QT1JUIGRvdWJsZSBW YWN1dW1EZWxheVRpbWU7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIFZhY3V1bUZhaWxz YWZlQWN0aXZlOwogZXh0ZXJuIFBHRExMSU1QT1JUIGRvdWJsZSB2YWN1dW1fY29zdF9kZWxh eTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdz dGF0LmgKaW5kZXggNjcxNDM2MzE0NGEuLjQ2ZDEyZmEzYmQwIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaApAQCAtMTE0LDYg KzExNCw2NiBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfQmFja2VuZFN1YkVudHJ5CiAJUGdT dGF0X0NvdW50ZXIgY29uZmxpY3RfY291bnRbQ09ORkxJQ1RfTlVNX1RZUEVTXTsKIH0gUGdT dGF0X0JhY2tlbmRTdWJFbnRyeTsKIAorLyogLS0tLS0tLS0tLQorICoKKyAqIEV4dFZhY1Jl cG9ydAorICoKKyAqIEFkZGl0aW9uYWwgc3RhdGlzdGljcyBvZiB2YWN1dW0gcHJvY2Vzc2lu ZyBvdmVyIGEgaGVhcCByZWxhdGlvbi4KKyAqIHBhZ2VzX3JlbW92ZWQgaXMgdGhlIGFtb3Vu dCBieSB3aGljaCB0aGUgcGh5c2ljYWxseSBzaHJhbmssCisgKiBpZiBhbnkgKGllIHRoZSBj aGFuZ2UgaW4gaXRzIHRvdGFsIHNpemUgb24gZGlzaykKKyAqIHBhZ2VzX2RlbGV0ZWQgcmVm ZXIgdG8gZnJlZSBzcGFjZSB3aXRoaW4gdGhlIGluZGV4IGZpbGUKKyAqIC0tLS0tLS0tLS0K KyAqLwordHlwZWRlZiBzdHJ1Y3QgRXh0VmFjUmVwb3J0Cit7CisJLyoKKwkgKiBudW1iZXIg b2YgYmxvY2tzIG1pc3NlZCwgaGl0LCBkaXJ0aWVkIGFuZCB3cml0dGVuIGR1cmluZyBhIHZh Y3V1bSBvZgorCSAqIHNwZWNpZmljIHJlbGF0aW9uCisJICovCisJaW50NjQJCXRvdGFsX2Js a3NfcmVhZDsKKwlpbnQ2NAkJdG90YWxfYmxrc19oaXQ7CisJaW50NjQJCXRvdGFsX2Jsa3Nf ZGlydGllZDsKKwlpbnQ2NAkJdG90YWxfYmxrc193cml0dGVuOworCisJLyoKKwkgKiBibG9j a3MgbWlzc2VkIGFuZCBoaXQgZm9yIGp1c3QgdGhlIGhlYXAgZHVyaW5nIGEgdmFjdXVtIG9m IHNwZWNpZmljCisJICogcmVsYXRpb24KKwkgKi8KKwlpbnQ2NAkJYmxrc19mZXRjaGVkOwor CWludDY0CQlibGtzX2hpdDsKKworCS8qIFZhY3V1bSBXQUwgdXNhZ2Ugc3RhdHMgKi8KKwlp bnQ2NAkJd2FsX3JlY29yZHM7CS8qIHdhbCB1c2FnZTogbnVtYmVyIG9mIFdBTCByZWNvcmRz ICovCisJaW50NjQJCXdhbF9mcGk7CQkvKiB3YWwgdXNhZ2U6IG51bWJlciBvZiBXQUwgZnVs bCBwYWdlIGltYWdlcworCQkJCQkJCQkgKiBwcm9kdWNlZCAqLworCXVpbnQ2NAkJd2FsX2J5 dGVzOwkJLyogd2FsIHVzYWdlOiBzaXplIG9mIFdBTCByZWNvcmRzIHByb2R1Y2VkICovCisK KwkvKiBUaW1lIHN0YXRzLiAqLworCWRvdWJsZQkJYmxrX3JlYWRfdGltZTsJLyogdGltZSBz cGVudCByZWFkaW5nIHBhZ2VzLCBpbiBtc2VjICovCisJZG91YmxlCQlibGtfd3JpdGVfdGlt ZTsgLyogdGltZSBzcGVudCB3cml0aW5nIHBhZ2VzLCBpbiBtc2VjICovCisJZG91YmxlCQlk ZWxheV90aW1lOwkJLyogaG93IGxvbmcgdmFjdXVtIHNsZXB0IGluIHZhY3V1bSBkZWxheQor CQkJCQkJCQkgKiBwb2ludCwgaW4gbXNlYyAqLworCWRvdWJsZQkJdG90YWxfdGltZTsJCS8q IHRvdGFsIHRpbWUgb2YgYSB2YWN1dW0gb3BlcmF0aW9uLCBpbiBtc2VjICovCisKKwlpbnQ2 NAkJcGFnZXNfc2Nhbm5lZDsJLyogaGVhcCBwYWdlcyBleGFtaW5lZCAobm90IHNraXBwZWQg YnkgVk0pICovCisJaW50NjQJCXBhZ2VzX3JlbW92ZWQ7CS8qIGhlYXAgcGFnZXMgcmVtb3Zl ZCBieSB2YWN1dW0gInRydW5jYXRpb24iICovCisJaW50NjQJCXZtX25ld19mcm96ZW5fcGFn ZXM7CS8qIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcyBmcm96ZW4gKi8KKwlpbnQ2NAkJdm1fbmV3 X3Zpc2libGVfcGFnZXM7CS8qIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcyBhbGwtdmlzaWJsZSAq LworCWludDY0CQl2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXM7CS8qIHBhZ2VzIG1hcmtl ZCBpbiBWTSBhcworCQkJCQkJCQkJCQkJICogYWxsLXZpc2libGUgYW5kIGZyb3plbiAqLwor CWludDY0CQltaXNzZWRfZGVhZF90dXBsZXM7IC8qIHR1cGxlcyBub3QgcHJ1bmVkIGJ5IHZh Y3V1bSBkdWUgdG8KKwkJCQkJCQkJCSAqIGZhaWx1cmUgdG8gZ2V0IGEgY2xlYW51cCBsb2Nr ICovCisJaW50NjQJCW1pc3NlZF9kZWFkX3BhZ2VzOwkvKiBwYWdlcyB3aXRoIG1pc3NlZCBk ZWFkIHR1cGxlcyAqLworCWludDY0CQl0dXBsZXNfZGVsZXRlZDsgLyogdHVwbGVzIGRlbGV0 ZWQgYnkgdmFjdXVtICovCisJaW50NjQJCXR1cGxlc19mcm96ZW47CS8qIHR1cGxlcyBmcm96 ZW4gdXAgYnkgdmFjdXVtICovCisJaW50NjQJCXJlY2VudGx5X2RlYWRfdHVwbGVzOwkvKiBk ZWxldGVkIHR1cGxlcyB0aGF0IGFyZSBzdGlsbAorCQkJCQkJCQkJCSAqIHZpc2libGUgdG8g c29tZSB0cmFuc2FjdGlvbiAqLworCWludDY0CQlpbmRleF92YWN1dW1fY291bnQ7IC8qIHRo ZSBudW1iZXIgb2YgaW5kZXggdmFjdXVtaW5ncyAqLworCWludDMyCQl3cmFwYXJvdW5kX2Zh aWxzYWZlX2NvdW50OwkvKiBudW1iZXIgb2YgZW1lcmdlbmN5IHZhY3V1bXMgdG8KKwkJCQkJ CQkJCQkJICogcHJldmVudCBhbnRpLXdyYXBhcm91bmQKKwkJCQkJCQkJCQkJICogc2h1dGRv d24gKi8KK30JCQlFeHRWYWNSZXBvcnQ7CisKIC8qIC0tLS0tLS0tLS0KICAqIFBnU3RhdF9U YWJsZUNvdW50cwkJCVRoZSBhY3R1YWwgcGVyLXRhYmxlIGNvdW50cyBrZXB0IGJ5IGEgYmFj a2VuZAogICoKQEAgLTE1Niw2ICsyMTYsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1Rh YmxlQ291bnRzCiAKIAlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsKIAlQZ1N0YXRf Q291bnRlciBibG9ja3NfaGl0OworCisJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF92aXNpYmxl X3BhZ2VzOworCVBnU3RhdF9Db3VudGVyIHJldl9hbGxfZnJvemVuX3BhZ2VzOworCisJLyoK KwkgKiBBZGRpdGlvbmFsIGN1bXVsYXRpdmUgc3RhdCBvbiB2YWN1dW0gb3BlcmF0aW9ucy4g VXNlIGFuIGV4cGVuc2l2ZQorCSAqIHN0cnVjdHVyZSBhcyBhbiBhYnN0cmFjdGlvbiBmb3Ig ZGlmZmVyZW50IHR5cGVzIG9mIHJlbGF0aW9ucy4KKwkgKi8KKwlFeHRWYWNSZXBvcnQgdmFj dXVtX2V4dDsKIH0gUGdTdGF0X1RhYmxlQ291bnRzOwogCiAvKiAtLS0tLS0tLS0tCkBAIC0y MTQsNyArMjgzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1RhYmxlWGFjdFN0YXR1cwog ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgKi8KIAotI2RlZmluZSBQR1NUQVRfRklMRV9GT1JNQVRfSUQJMHgwMUE1 QkNCQgorI2RlZmluZSBQR1NUQVRfRklMRV9GT1JNQVRfSUQJMHgwMUE1QkNCQwogCiB0eXBl ZGVmIHN0cnVjdCBQZ1N0YXRfQXJjaGl2ZXJTdGF0cwogewpAQCAtMzc4LDYgKzQ0Nyw4IEBA IHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0REJFbnRyeQogCVBnU3RhdF9Db3VudGVyIHBh cmFsbGVsX3dvcmtlcnNfbGF1bmNoZWQ7CiAKIAlUaW1lc3RhbXBUeiBzdGF0X3Jlc2V0X3Rp bWVzdGFtcDsKKworCUV4dFZhY1JlcG9ydCB2YWN1dW1fZXh0OwkvKiBleHRlbmRlZCB2YWN1 dW0gc3RhdGlzdGljcyAqLwogfSBQZ1N0YXRfU3RhdERCRW50cnk7CiAKIHR5cGVkZWYgc3Ry dWN0IFBnU3RhdF9TdGF0RnVuY0VudHJ5CkBAIC00NjEsOCArNTMyLDEyIEBAIHR5cGVkZWYg c3RydWN0IFBnU3RhdF9TdGF0VGFiRW50cnkKIAlQZ1N0YXRfQ291bnRlciB0b3RhbF9hdXRv dmFjdXVtX3RpbWU7CiAJUGdTdGF0X0NvdW50ZXIgdG90YWxfYW5hbHl6ZV90aW1lOwogCVBn U3RhdF9Db3VudGVyIHRvdGFsX2F1dG9hbmFseXplX3RpbWU7Ci0KIAlUaW1lc3RhbXBUeiBz dGF0X3Jlc2V0X3RpbWU7CisKKwlQZ1N0YXRfQ291bnRlciByZXZfYWxsX3Zpc2libGVfcGFn ZXM7CisJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF9mcm96ZW5fcGFnZXM7CisKKwlFeHRWYWNS ZXBvcnQgdmFjdXVtX2V4dDsKIH0gUGdTdGF0X1N0YXRUYWJFbnRyeTsKIAogLyogLS0tLS0t CkBAIC02NzEsNyArNzQ2LDcgQEAgZXh0ZXJuIHZvaWQgcGdzdGF0X3VubGlua19yZWxhdGlv bihSZWxhdGlvbiByZWwpOwogCiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShS ZWxhdGlvbiByZWwsIFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsCiAJCQkJCQkJCSBQZ1N0 YXRfQ291bnRlciBkZWFkdHVwbGVzLAotCQkJCQkJCQkgVGltZXN0YW1wVHogc3RhcnR0aW1l KTsKKwkJCQkJCQkJIFRpbWVzdGFtcFR6IHN0YXJ0dGltZSwgRXh0VmFjUmVwb3J0ICogcGFy YW1zKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfYW5hbHl6ZShSZWxhdGlvbiByZWws CiAJCQkJCQkJCSAgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywgUGdTdGF0X0NvdW50ZXIg ZGVhZHR1cGxlcywKIAkJCQkJCQkJICBib29sIHJlc2V0Y291bnRlciwgVGltZXN0YW1wVHog c3RhcnR0aW1lKTsKQEAgLTcyMiw2ICs3OTcsMTcgQEAgZXh0ZXJuIHZvaWQgcGdzdGF0X3Jl cG9ydF9hbmFseXplKFJlbGF0aW9uIHJlbCwKIAkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRf cmVsYXRpb24ocmVsKSkJCQkJCQlcCiAJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy5i bG9ja3NfaGl0Kys7CQkJCVwKIAl9IHdoaWxlICgwKQorLyogYWNjdW11bGF0ZSB1bmZyb3pl biBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbiBwYWdlcyAqLworI2RlZmluZSBwZ3N0YXRf Y291bnRfdm1fcmV2X2FsbF92aXNpYmxlKHJlbCkJCQkJCQlcCisJZG8gewkJCQkJCQkJCQkJ CQkJCVwKKwkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlc CisJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy5yZXZfYWxsX3Zpc2libGVfcGFnZXMr KzsJXAorCX0gd2hpbGUgKDApCisjZGVmaW5lIHBnc3RhdF9jb3VudF92bV9yZXZfYWxsX2Zy b3plbihyZWwpCQkJCQkJXAorCWRvIHsJCQkJCQkJCQkJCQkJCQlcCisJCWlmIChwZ3N0YXRf c2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAorCQkJKHJlbCktPnBnc3RhdF9p bmZvLT5jb3VudHMucmV2X2FsbF9mcm96ZW5fcGFnZXMrKzsJXAorCX0gd2hpbGUgKDApCiAK IGV4dGVybiB2b2lkIHBnc3RhdF9jb3VudF9oZWFwX2luc2VydChSZWxhdGlvbiByZWwsIFBn U3RhdF9Db3VudGVyIG4pOwogZXh0ZXJuIHZvaWQgcGdzdGF0X2NvdW50X2hlYXBfdXBkYXRl KFJlbGF0aW9uIHJlbCwgYm9vbCBob3QsIGJvb2wgbmV3cGFnZSk7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFi bGUtcmVhZC5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVu ZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjg3ZjdlNDBiNGE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv aXNvbGF0aW9uL2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQu b3V0CkBAIC0wLDAgKzEsNTMgQEAKK3VudXNlZCBzdGVwIG5hbWU6IHMyX2RlbGV0ZQorUGFy c2VkIHRlc3Qgc3BlYyB3aXRoIDIgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246 IHMyX2luc2VydCBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUgczFfYmVnaW5fcmVwZWF0 YWJsZV9yZWFkIHMyX3VwZGF0ZSBzMl9pbnNlcnRfaW50ZXJydXB0IHMyX3ZhY3V1bSBzMl9w cmludF92YWN1dW1fc3RhdHNfdGFibGUgczFfY29tbWl0IHMyX2NoZWNrcG9pbnQgczJfdmFj dXVtIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQorc3RlcCBzMl9pbnNlcnQ6IElOU0VS VCBJTlRPIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uKGlkLCBpdmFsKSBTRUxFQ1QgaXZh bCwgaXZhbCUxMCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIEFzIGl2YWw7CitzdGVw IHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZTogCisgICAgU0VMRUNUCisgICAgdnQucmVs bmFtZSwgdnQudHVwbGVzX2RlbGV0ZWQsIHZ0LnJlY2VudGx5X2RlYWRfdHVwbGVzLCB2dC5t aXNzZWRfZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFkX3BhZ2VzLCB2dC50dXBsZXNfZnJv emVuCisgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKKyAg ICBXSEVSRSB2dC5yZWxuYW1lID0gJ3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uJyBBTkQg dnQucmVsaWQgPSBjLm9pZDsKKworcmVsbmFtZSAgICAgICAgICAgICAgICAgICB8dHVwbGVz X2RlbGV0ZWR8cmVjZW50bHlfZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfdHVwbGVzfG1pc3Nl ZF9kZWFkX3BhZ2VzfHR1cGxlc19mcm96ZW4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCit0ZXN0X3ZhY3V1bV9zdGF0X2lz b2xhdGlvbnwgICAgICAgICAgICAgMHwgICAgICAgICAgICAgICAgICAgMHwgICAgICAgICAg ICAgICAgIDB8ICAgICAgICAgICAgICAgIDB8ICAgICAgICAgICAgMAorKDEgcm93KQorCitz dGVwIHMxX2JlZ2luX3JlcGVhdGFibGVfcmVhZDogCisgIEJFR0lOIHRyYW5zYWN0aW9uIElT T0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CisgIHNlbGVjdCBjb3VudChpdmFsKSBm cm9tIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHdoZXJlIGlkPjkwMDsKKworY291bnQK Ky0tLS0tCisgIDEwMAorKDEgcm93KQorCitzdGVwIHMyX3VwZGF0ZTogVVBEQVRFIHRlc3Rf dmFjdXVtX3N0YXRfaXNvbGF0aW9uIFNFVCBpdmFsID0gaXZhbCArIDIgd2hlcmUgaWQgPiA5 MDA7CitzdGVwIHMyX2luc2VydF9pbnRlcnJ1cHQ6IElOU0VSVCBJTlRPIHRlc3RfdmFjdXVt X3N0YXRfaXNvbGF0aW9uIHZhbHVlcyAoMSwxKTsKK3N0ZXAgczJfdmFjdXVtOiBWQUNVVU0g dGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb247CitzdGVwIHMyX3ByaW50X3ZhY3V1bV9zdGF0 c190YWJsZTogCisgICAgU0VMRUNUCisgICAgdnQucmVsbmFtZSwgdnQudHVwbGVzX2RlbGV0 ZWQsIHZ0LnJlY2VudGx5X2RlYWRfdHVwbGVzLCB2dC5taXNzZWRfZGVhZF90dXBsZXMsIHZ0 Lm1pc3NlZF9kZWFkX3BhZ2VzLCB2dC50dXBsZXNfZnJvemVuCisgICAgRlJPTSBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKKyAgICBXSEVSRSB2dC5yZWxuYW1lID0g J3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uJyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKwor cmVsbmFtZSAgICAgICAgICAgICAgICAgICB8dHVwbGVzX2RlbGV0ZWR8cmVjZW50bHlfZGVh ZF90dXBsZXN8bWlzc2VkX2RlYWRfdHVwbGVzfG1pc3NlZF9kZWFkX3BhZ2VzfHR1cGxlc19m cm96ZW4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tCit0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAgICAgICAg MHwgICAgICAgICAgICAgICAgIDEwMHwgICAgICAgICAgICAgICAgIDB8ICAgICAgICAgICAg ICAgIDB8ICAgICAgICAgICAgMAorKDEgcm93KQorCitzdGVwIHMxX2NvbW1pdDogQ09NTUlU Oworc3RlcCBzMl9jaGVja3BvaW50OiBDSEVDS1BPSU5UOworc3RlcCBzMl92YWN1dW06IFZB Q1VVTSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbjsKK3N0ZXAgczJfcHJpbnRfdmFjdXVt X3N0YXRzX3RhYmxlOiAKKyAgICBTRUxFQ1QKKyAgICB2dC5yZWxuYW1lLCB2dC50dXBsZXNf ZGVsZXRlZCwgdnQucmVjZW50bHlfZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFkX3R1cGxl cywgdnQubWlzc2VkX2RlYWRfcGFnZXMsIHZ0LnR1cGxlc19mcm96ZW4KKyAgICBGUk9NIHBn X3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworICAgIFdIRVJFIHZ0LnJlbG5h bWUgPSAndGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24nIEFORCB2dC5yZWxpZCA9IGMub2lk OworCityZWxuYW1lICAgICAgICAgICAgICAgICAgIHx0dXBsZXNfZGVsZXRlZHxyZWNlbnRs eV9kZWFkX3R1cGxlc3xtaXNzZWRfZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfcGFnZXN8dHVw bGVzX2Zyb3plbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KK3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9ufCAgICAgICAg ICAgMTAwfCAgICAgICAgICAgICAgICAgMTAwfCAgICAgICAgICAgICAgICAgMHwgICAgICAg ICAgICAgICAgMHwgICAgICAgICAgMTAxCisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9zcmMvdGVzdC9pc29sYXRpb24v aXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IGYyZTA2N2IxZmJjLi4xYzIzMTQxODcwNiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQorKysgYi9z cmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCkBAIC05OCw2ICs5OCw3IEBA IHRlc3Q6IHRpbWVvdXRzCiB0ZXN0OiB2YWN1dW0tY29uY3VycmVudC1kcm9wCiB0ZXN0OiB2 YWN1dW0tY29uZmxpY3QKIHRlc3Q6IHZhY3V1bS1za2lwLWxvY2tlZAordGVzdDogdmFjdXVt LWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZAogdGVzdDogc3RhdHMKIHRlc3Q6IGhvcml6 b25zCiB0ZXN0OiBwcmVkaWNhdGUtaGFzaApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0 aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYyBiL3Ny Yy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1y ZWFkLnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU4OTNk ODk1NzNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Zh Y3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYwpAQCAtMCwwICsxLDUzIEBA CisjIFRlc3QgZm9yIGNoZWNraW5nIHJlY2VudGx5X2RlYWRfdHVwbGVzLCB0dXBsZXNfZGVs ZXRlZCBhbmQgZnJvemVuIHR1cGxlcyBpbiBwZ19zdGF0X3ZhY3V1bV90YWJsZXMuCisjIHJl Y2VudGx5X2RlYWRfdHVwbGVzIHZhbHVlcyBhcmUgY291bnRlZCB3aGVuIHZhY3V1bSBoYXNu J3QgY2xlYXJlZCB0dXBsZXMgYmVjYXVzZSB0aGV5IHdlcmUgZGVsZXRlZCByZWNlbnRseS4K KyMgcmVjZW50bHlfZGVhZF90dXBsZXMgYXJlbid0IGluY3JlYXNlZCBhZnRlciByZWxlYXNp bmcgbG9jayBjb21wYXJlZCB3aXRoIHR1cGxlc19kZWxldGVkLCB3aGljaCBpbmNyZWFzZWQK KyMgYnkgdGhlIHZhbHVlIG9mIHRoZSBjbGVhcmVkIHR1cGxlcyB0aGF0IHRoZSB2YWN1dW0g bWFuYWdlZCB0byBjbGVhci4KKworc2V0dXAKK3sKKyAgICBDUkVBVEUgVEFCTEUgdGVzdF92 YWN1dW1fc3RhdF9pc29sYXRpb24oaWQgaW50LCBpdmFsIGludCkgV0lUSCAoYXV0b3ZhY3V1 bV9lbmFibGVkID0gb2ZmKTsKKyAgICBTRVQgdHJhY2tfaW9fdGltaW5nID0gb247CisgICAg U0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvbic7Cit9CisKK3RlYXJkb3duCit7 CisgICAgRFJPUCBUQUJMRSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiBDQVNDQURFOwor ICAgIFJFU0VUIHRyYWNrX2lvX3RpbWluZzsKKyAgICBSRVNFVCB0cmFja192YWN1dW1fc3Rh dGlzdGljczsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMV9iZWdpbl9yZXBlYXRhYmxlX3Jl YWQgICB7CisgIEJFR0lOIHRyYW5zYWN0aW9uIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxF IFJFQUQ7CisgIHNlbGVjdCBjb3VudChpdmFsKSBmcm9tIHRlc3RfdmFjdXVtX3N0YXRfaXNv bGF0aW9uIHdoZXJlIGlkPjkwMDsKKyAgfQorc3RlcCBzMV9jb21taXQgICAgICAgICAgICAg ICAgICB7IENPTU1JVDsgfQorCitzZXNzaW9uIHMyCitzdGVwIHMyX2luc2VydCAgICAgICAg ICAgICAgICAgIHsgSU5TRVJUIElOVE8gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24oaWQs IGl2YWwpIFNFTEVDVCBpdmFsLCBpdmFsJTEwIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAw MCkgQXMgaXZhbDsgfQorc3RlcCBzMl91cGRhdGUgICAgICAgICAgICAgICAgICB7IFVQREFU RSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiBTRVQgaXZhbCA9IGl2YWwgKyAyIHdoZXJl IGlkID4gOTAwOyB9CitzdGVwIHMyX2RlbGV0ZSAgICAgICAgICAgICAgICAgIHsgREVMRVRF IEZST00gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24gd2hlcmUgaWQgPiA5MDA7IH0KK3N0 ZXAgczJfaW5zZXJ0X2ludGVycnVwdCAgICAgICAgeyBJTlNFUlQgSU5UTyB0ZXN0X3ZhY3V1 bV9zdGF0X2lzb2xhdGlvbiB2YWx1ZXMgKDEsMSk7IH0KK3N0ZXAgczJfdmFjdXVtICAgICAg ICAgICAgICAgICAgeyBWQUNVVU0gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb247IH0KK3N0 ZXAgczJfY2hlY2twb2ludCAgICAgICAgICAgICAgeyBDSEVDS1BPSU5UOyB9CitzdGVwIHMy X3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQoreworICAgIFNFTEVDVAorICAgIHZ0LnJlbG5h bWUsIHZ0LnR1cGxlc19kZWxldGVkLCB2dC5yZWNlbnRseV9kZWFkX3R1cGxlcywgdnQubWlz c2VkX2RlYWRfdHVwbGVzLCB2dC5taXNzZWRfZGVhZF9wYWdlcywgdnQudHVwbGVzX2Zyb3pl bgorICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCisgICAg V0hFUkUgdnQucmVsbmFtZSA9ICd0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbicgQU5EIHZ0 LnJlbGlkID0gYy5vaWQ7Cit9CisKK3Blcm11dGF0aW9uCisgICAgczJfaW5zZXJ0CisgICAg czJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlCisgICAgczFfYmVnaW5fcmVwZWF0YWJsZV9y ZWFkCisgICAgczJfdXBkYXRlCisgICAgczJfaW5zZXJ0X2ludGVycnVwdAorICAgIHMyX3Zh Y3V1bQorICAgIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQorICAgIHMxX2NvbW1pdAor ICAgIHMyX2NoZWNrcG9pbnQKKyAgICBzMl92YWN1dW0KKyAgICBzMl9wcmludF92YWN1dW1f c3RhdHNfdGFibGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWNvdmVyeS90LzA1MF92YWN1dW1fZXh0ZW5kaW5nX2Jhc2ljX3Rlc3QucGwg Yi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF92YWN1dW1fZXh0ZW5kaW5nX2Jhc2ljX3Rlc3Qu cGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdlMjVhM2ZlNjNm Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfdmFjdXVtX2V4 dGVuZGluZ19iYXNpY190ZXN0LnBsCkBAIC0wLDAgKzEsNTcxIEBACisjIENvcHlyaWdodCAo YykgMjAyNSBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorIyBUZXN0IGN1 bXVsYXRpdmUgdmFjdXVtIHN0YXRzIHN5c3RlbSB1c2luZyBUQVAKKyMKKyMgVGhpcyB0ZXN0 IHZhbGlkYXRlcyB0aGUgYWNjdXJhY3kgYW5kIGJlaGF2aW9yIG9mIGN1bXVsYXRpdmUgdmFj dXVtIHN0YXRpc3RpY3MKKyMgYWNyb3NzIHRhYmxlcyB1c2luZzoKKyMKKyMgICDigKIgcGdf c3RhdF92YWN1dW1fdGFibGVzCisjCisjIEEgcG9sbGluZyBoZWxwZXIgZnVuY3Rpb24gcmVw ZWF0ZWRseSBjaGVja3MgdGhlIHN0YXRzIHZpZXdzIHVudGlsIGV4cGVjdGVkCisjIGRlbHRh cyBhcHBlYXIgb3IgYSBjb25maWd1cmFibGUgdGltZW91dCBleHBpcmVzLiBUaGlzIGd1YXJh bnRlZXMgdGhhdAorIyBzdGF0cy1jb2xsZWN0b3IgcHJvcGFnYXRpb24gZGVsYXlzIGRvIG5v dCBsZWFkIHRvIGZsYWt5IHRlc3QgYmVoYXZpb3IuCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2Fy bmluZ3M7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FM OjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCisjLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisjIFRlc3QgaGFybmVzcyBzZXR1cAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorCitteSAkbm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3RhdF92 YWN1dW0nKTsKKyRub2RlLT5pbml0OworCisjIENvbmZpZ3VyZSB0aGUgc2VydmVyIGxvZ2dp bmcgbGV2ZWwgZm9yIHRoZSB0ZXN0Ciskbm9kZS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwu Y29uZicsIHF7CisgICAgbG9nX21pbl9tZXNzYWdlcyA9IG5vdGljZQorfSk7CisKK215ICRz dGRlcnI7CitteSAkYmFzZV9zdGF0czsKK215ICR3YWxzOworbXkgJGliYXNlX3N0YXRzOwor bXkgJGl3YWxzOworCiskbm9kZS0+c3RhcnQoCisgICAgJz4nID0+IFwkYmFzZV9zdGF0cywK KwknMj4nID0+IFwkc3RkZXJyCispOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisj IERhdGFiYXNlIGNyZWF0aW9uIGFuZCBpbml0aWFsaXphdGlvbgorIy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CisgICAgQ1JF QVRFIERBVEFCQVNFIHN0YXRpc3RpY192YWN1dW1fZGF0YWJhc2VfcmVncmVzc2lvbjsKK30p OworIyBNYWluIHRlc3QgZGF0YWJhc2UgbmFtZSBhbmQgbnVtYmVyIG9mIHJvd3MgdG8gaW5z ZXJ0CitteSAkZGJuYW1lICAgPSAnc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZV9yZWdyZXNz aW9uJzsKK215ICRzaXplX3RhYiA9IDEwMDA7CisKKyMgRW5hYmxlIHJlcXVpcmVkIHNlc3Np b24gc2V0dGluZ3MgYW5kIGZvcmNlIHRoZSBzdGF0cyBjb2xsZWN0b3IgdG8gZmx1c2ggbmV4 dAorJG5vZGUtPnNhZmVfcHNxbCgkZGJuYW1lLCBxeworICAgIFNFVCB0cmFja19mdW5jdGlv bnMgPSAnYWxsJzsKKyAgICBTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7Cit9 KTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDcmVhdGUgdGVzdCB0YWJsZSBh bmQgcG9wdWxhdGUgaXQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworJG5vZGUtPnNh ZmVfcHNxbCgKKyAgICAkZGJuYW1lLAorICAgICJDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGlu dCkKKyAgICAgICAgIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3Rv ciA9IDEwKTsKKyAgICAgSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsICRzaXplX3RhYikgQVMgZyh4KTsKKyAgICAgQU5BTFlaRSB2ZXN0YXQ7 IgorKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBUaW1pbmcgcGFyYW1ldGVy cyBmb3IgcG9sbGluZyBsb29wcworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitteSAk dGltZW91dCAgICA9IDMwOyAgICAgIyBvdmVyYWxsIHdhaXQgdGltZW91dCBpbiBzZWNvbmRz CitteSAkaW50ZXJ2YWwgICA9IDAuMDE1OyAgIyBwb2xsIGludGVydmFsIGluIHNlY29uZHMg KDE1IG1zKQorbXkgJHN0YXJ0X3RpbWUgPSB0aW1lKCk7CitteSAkdXBkYXRlZCAgICA9IDA7 CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgd2FpdF9mb3JfdmFjdXVtX3N0YXRz CisjCisjIFBvbGxzIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB1bnRpbCB0aGUgdGFibGUtbGV2 ZWwgY291bnRlcnMgZXhjZWVkCisjIHRoZSBwcm92aWRlZCBiYXNlbGluZXMsIG9yIHVudGls IHRoZSBjb25maWd1cmVkIHRpbWVvdXQgZWxhcHNlcy4KKyMKKyMgRXhwZWN0ZWQgbmFtZWQg YXJncyAoYmFzZWxpbmUgdmFsdWVzKToKKyMgICB0YWJfdHVwbGVzX2RlbGV0ZWQKKyMgICB0 YWJfd2FsX3JlY29yZHMKKyMKKyMgUmV0dXJuczogMSBpZiB0aGUgY29uZGl0aW9uIGlzIG1l dCBiZWZvcmUgdGltZW91dCwgMCBvdGhlcndpc2UuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisKK3N1YiB3YWl0X2Zvcl92YWN1dW1fc3RhdHMgeworICAgIG15ICglYXJncykgPSBA XzsKKyAgICBteSAkdGFiX3R1cGxlc19kZWxldGVkID0gJGFyZ3N7dGFiX3R1cGxlc19kZWxl dGVkfSBvciAwOworICAgIG15ICR0YWJfd2FsX3JlY29yZHMgICAgPSAkYXJnc3t0YWJfd2Fs X3JlY29yZHN9IG9yIDA7CisKKyAgICBteSAkc3RhcnQgPSB0aW1lKCk7CisgICAgd2hpbGUg KCh0aW1lKCkgLSAkc3RhcnQpIDwgJHRpbWVvdXQpIHsKKworICAgICAgICBteSAkcmVzdWx0 X3F1ZXJ5ID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAgICAgICAgICRkYm5hbWUsCisgICAg ICAgICAgICAiVkFDVVVNIHZlc3RhdDsKKyAgICAgICAgICAgICBTRUxFQ1QgdHVwbGVzX2Rl bGV0ZWQgPiAkdGFiX3R1cGxlc19kZWxldGVkIEFORCB3YWxfcmVjb3JkcyA+ICR0YWJfd2Fs X3JlY29yZHMKKyAgICAgICAgICAgICAgICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVz CisgICAgICAgICAgICAgICAgICBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7IgorICAgICAg ICApOworCisgICAgICAgIHJldHVybiAxIGlmICgkcmVzdWx0X3F1ZXJ5IGVxICd0Jyk7CisK KyAgICAgICAgc2xlZXAoJGludGVydmFsKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30K KworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBWYXJpYWJsZXMgdG8gaG9sZCB2YWN1 dW0tc3RhdCBzbmFwc2hvdHMgZm9yIGxhdGVyIGNvbXBhcmlzb25zCisjLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisKK215ICRwYWdlc19mcm96ZW4gPSAwOworbXkgJHR1cGxlc19kZWxl dGVkID0gMDsKK215ICRwYWdlc19zY2FubmVkID0gMDsKK215ICRwYWdlc19yZW1vdmVkID0g MDsKK215ICR3YWxfcmVjb3JkcyA9IDA7CitteSAkd2FsX2J5dGVzID0gMDsKK215ICR3YWxf ZnBpID0gMDsKKworbXkgJHBhZ2VzX2Zyb3plbl9wcmV2ID0gMDsKK215ICR0dXBsZXNfZGVs ZXRlZF9wcmV2ID0gMDsKK215ICRwYWdlc19zY2FubmVkX3ByZXYgPSAwOworbXkgJHBhZ2Vz X3JlbW92ZWRfcHJldiA9IDA7CitteSAkd2FsX3JlY29yZHNfcHJldiA9IDA7CitteSAkd2Fs X2J5dGVzX3ByZXYgPSAwOworbXkgJHdhbF9mcGlfcHJldiA9IDA7CisKKyMtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyMgZmV0Y2hfdmFjdXVtX3N0YXRzCisjCisjIFJlYWRzIGN1cnJl bnQgdmFsdWVzIG9mIHJlbGV2YW50IHZhY3V1bSBjb3VudGVycyBmb3IgdGhlIHRlc3QgdGFi bGUsCisjIHN0b3JpbmcgdGhlbSBpbiBwYWNrYWdlIHZhcmlhYmxlcyBmb3Igc3Vic2VxdWVu dCBjb21wYXJpc29ucy4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc3ViIGZldGNo X3ZhY3V1bV9zdGF0cyB7CisgICAgIyBmZXRjaCBhY3R1YWwgYmFzZSB2YWN1dW0gc3RhdGlz dGljcworICAgIG15ICRiYXNlX3N0YXRpc3RpY3MgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAg ICAgICAkZGJuYW1lLAorICAgICAgICAiU0VMRUNUIHZtX25ld19mcm96ZW5fcGFnZXMsIHR1 cGxlc19kZWxldGVkLCBwYWdlc19zY2FubmVkLCBwYWdlc19yZW1vdmVkLCB3YWxfcmVjb3Jk cywgd2FsX2J5dGVzLCB3YWxfZnBpCisgICAgICAgICAgIEZST00gcGdfc3RhdF92YWN1dW1f dGFibGVzCisgICAgICAgICAgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOyIKKyAgICApOwor CisgICAgJGJhc2Vfc3RhdGlzdGljcyA9fiBzL1xzKlx8XHMqLyAvZzsgICAjIHRyYW5zZm9y bSAiIHwgIiBpbnRvIHNwYWNlCisgICAgKCRwYWdlc19mcm96ZW4sICR0dXBsZXNfZGVsZXRl ZCwgJHBhZ2VzX3NjYW5uZWQsICRwYWdlc19yZW1vdmVkLCAkd2FsX3JlY29yZHMsICR3YWxf Ynl0ZXMsICR3YWxfZnBpKQorICAgICAgICA9IHNwbGl0IC9ccysvLCAkYmFzZV9zdGF0aXN0 aWNzOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIHNhdmVfdmFjdXVtX3N0 YXRzCisjCisjIFNhdmUgY3VycmVudCB2YWx1ZXMgKHByZXZpb3VzbHkgZmV0Y2hlZCBieSBm ZXRjaF92YWN1dW1fc3RhdHMpIHNvIHRoYXQgd2UKKyMgbGF0ZXIgZmV0Y2ggbmV3IHZhbHVl cyBhbmQgY29tcGFyZSB0aGVtLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3ViIHNh dmVfdmFjdXVtX3N0YXRzIHsKKyAgICAkcGFnZXNfZnJvemVuX3ByZXYgPSAkcGFnZXNfZnJv emVuOworICAgICR0dXBsZXNfZGVsZXRlZF9wcmV2ID0gJHR1cGxlc19kZWxldGVkOworICAg ICRwYWdlc19zY2FubmVkX3ByZXYgPSAkcGFnZXNfc2Nhbm5lZDsKKyAgICAkcGFnZXNfcmVt b3ZlZF9wcmV2ID0gJHBhZ2VzX3JlbW92ZWQ7CisgICAgJHdhbF9yZWNvcmRzX3ByZXYgPSAk d2FsX3JlY29yZHM7CisgICAgJHdhbF9ieXRlc19wcmV2ID0gJHdhbF9ieXRlczsKKyAgICAk d2FsX2ZwaV9wcmV2ID0gJHdhbF9mcGk7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyMgcHJpbnRfdmFjdXVtX3N0YXRzX29uX2Vycm9yCisjCisjIFByaW50IHZhbHVlcyBp biBjYXNlIG9mIGFuIGVycm9yCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdWIgcHJp bnRfdmFjdXVtX3N0YXRzX29uX2Vycm9yIHsKKyAgICBkaWFnKAorICAgICAgICAgICAgIlN0 YXRpc3RpY3MgaW4gdGhlIGZhaWxlZCB0ZXN0XG4iIC4KKyAgICAgICAgICAgICJUYWJsZSBz dGF0aXN0aWNzOlxuIiAuCisgICAgICAgICAgICAiICBCZWZvcmUgdGVzdDpcbiIgLgorICAg ICAgICAgICAgIiAgICBwYWdlc19mcm96ZW4gICAgICA9ICRwYWdlc19mcm96ZW5fcHJldlxu IiAuCisgICAgICAgICAgICAiICAgIHR1cGxlc19kZWxldGVkICAgID0gJHR1cGxlc19kZWxl dGVkX3ByZXZcbiIgLgorICAgICAgICAgICAgIiAgICBwYWdlc19zY2FubmVkICAgICA9ICRw YWdlc19zY2FubmVkX3ByZXZcbiIgLgorICAgICAgICAgICAgIiAgICBwYWdlc19yZW1vdmVk ICAgICA9ICRwYWdlc19yZW1vdmVkX3ByZXZcbiIgLgorICAgICAgICAgICAgIiAgICB3YWxf cmVjb3JkcyAgICAgICA9ICR3YWxfcmVjb3Jkc19wcmV2XG4iIC4KKyAgICAgICAgICAgICIg ICAgd2FsX2J5dGVzICAgICAgICAgPSAkd2FsX2J5dGVzX3ByZXZcbiIgLgorICAgICAgICAg ICAgIiAgICB3YWxfZnBpICAgICAgICAgICA9ICR3YWxfZnBpX3ByZXZcbiIgLgorICAgICAg ICAgICAgIiAgQWZ0ZXIgdGVzdDpcbiIgLgorICAgICAgICAgICAgIiAgICBwYWdlc19mcm96 ZW4gICAgICA9ICRwYWdlc19mcm96ZW5cbiIgLgorICAgICAgICAgICAgIiAgICB0dXBsZXNf ZGVsZXRlZCAgICA9ICR0dXBsZXNfZGVsZXRlZFxuIiAuCisgICAgICAgICAgICAiICAgIHBh Z2VzX3NjYW5uZWQgICAgID0gJHBhZ2VzX3NjYW5uZWRcbiIgLgorICAgICAgICAgICAgIiAg ICBwYWdlc19yZW1vdmVkICAgICA9ICRwYWdlc19yZW1vdmVkXG4iIC4KKyAgICAgICAgICAg ICIgICAgd2FsX3JlY29yZHMgICAgICAgPSAkd2FsX3JlY29yZHNcbiIgLgorICAgICAgICAg ICAgIiAgICB3YWxfYnl0ZXMgICAgICAgICA9ICR3YWxfYnl0ZXNcbiIgLgorICAgICAgICAg ICAgIiAgICB3YWxfZnBpICAgICAgICAgICA9ICR3YWxfZnBpXG4iCisgICAgKTsKK307CisK KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgZmV0Y2hfdmFjdXVtX3N0YXRzIGR1cmlu ZyBtaXNtYXRjaAorIworIyBQcmludCBjdXJyZW50IHZhbHVlcyBhbmQgb2xkIHZhbHVlcyBv ZiByZWxldmFudCB2YWN1dW0gY291bnRlcnMgZm9yIHRoZSB0ZXN0CisjIHRhYmxlLCBzdG9y aW5nIHRoZW0gaW4gcGFja2FnZSB2YXJpYWJsZXMgZm9yIHN1YnNlcXVlbnQgY29tcGFyaXNv bnMuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3N1YiBmZXRjaF9lcnJvcl9iYXNl X3RhYl92YWN1dW1fc3RhdGlzdGljcyB7CisKKyAgICAjIGZldGNoIGFjdHVhbCBiYXNlIHZh Y3V1bSBzdGF0aXN0aWNzCisgICAgbXkgJGJhc2Vfc3RhdGlzdGljcyA9ICRub2RlLT5zYWZl X3BzcWwoCisgICAgJGRibmFtZSwKKyAgICAiU0VMRUNUIHZtX25ld19mcm96ZW5fcGFnZXMs IHR1cGxlc19kZWxldGVkLCBwYWdlc19zY2FubmVkLCBwYWdlc19yZW1vdmVkCisgICAgICAg RlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMKKyAgICAgIFdIRVJFIHJlbG5hbWUgPSAndmVz dGF0JzsiCisgICAgKTsKKyAgICAkYmFzZV9zdGF0aXN0aWNzID1+IHMvXHMqXHxccyovIC9n OyAgICMgdHJhbnNmb3JtICIgfCAiIGluIHNwYWNlCisgICAgbXkgKCRjdXJfcGFnZXNfZnJv emVuLCAkY3VyX3R1cGxlc19kZWxldGVkLCAkY3VyX3BhZ2VzX3NjYW5uZWQsICRjdXJfcGFn ZXNfcmVtb3ZlZCkgPSBzcGxpdCAvXHMrLywgJGJhc2Vfc3RhdGlzdGljczsKKworICAgIGRp YWcoCisgICAgICAgICAgICAiQkFTRSBTVEFUUyBNSVNNQVRDSCBGT1IgVEFCTEU6XG4iIC4K KyAgICAgICAgICAgICIgIEJhc2VsaW5lOlxuIiAuCisgICAgICAgICAgICAiICAgIHBhZ2Vz X2Zyb3plbiAgICAgID0gJHBhZ2VzX2Zyb3plblxuIiAuCisgICAgICAgICAgICAiICAgIHR1 cGxlc19kZWxldGVkICAgID0gJHR1cGxlc19kZWxldGVkXG4iIC4KKyAgICAgICAgICAgICIg ICAgcGFnZXNfc2Nhbm5lZCAgICAgPSAkcGFnZXNfc2Nhbm5lZFxuIiAuCisgICAgICAgICAg ICAiICAgIHBhZ2VzX3JlbW92ZWQgICAgID0gJHBhZ2VzX3JlbW92ZWRcbiIgLgorICAgICAg ICAgICAgIiAgQ3VycmVudDpcbiIgLgorICAgICAgICAgICAgIiAgICBwYWdlc19mcm96ZW4g ICAgICA9ICRjdXJfcGFnZXNfZnJvemVuXG4iIC4KKyAgICAgICAgICAgICIgICAgdHVwbGVz X2RlbGV0ZWQgICAgPSAkY3VyX3R1cGxlc19kZWxldGVkXG4iIC4KKyAgICAgICAgICAgICIg ICAgcGFnZXNfc2Nhbm5lZCAgICAgPSAkY3VyX3BhZ2VzX3NjYW5uZWRcbiIgLgorICAgICAg ICAgICAgIiAgICBwYWdlc19yZW1vdmVkICAgICA9ICRjdXJfcGFnZXNfcmVtb3ZlZFxuIgor ICAgICk7Cit9CisKK3N1YiBmZXRjaF9lcnJvcl93YWxfdGFiX3ZhY3V1bV9zdGF0aXN0aWNz IHsKKworICAgIG15ICR3YWxfcmF3ID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAgICAgJGRi bmFtZSwKKyAgICAgICAgIlNFTEVDVCB3YWxfcmVjb3Jkcywgd2FsX2J5dGVzLCB3YWxfZnBp CisgICAgICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzCisgICAgICAgIFdIRVJFIHJl bG5hbWUgPSAndmVzdGF0JzsiCisgICAgKTsKKworICAgICR3YWxfcmF3ID1+IHMvXHMqXHxc cyovIC9nOyAgICMgdHJhbnNmb3JtICIgfCAiIGluIHNwYWNlCisgICAgbXkgKCRjdXJfd2Fs X3JlYywgJGN1cl93YWxfYnl0ZXMsICRjdXJfd2FsX2ZwaSkgPSBzcGxpdCAvXHMrLywgJHdh bF9yYXc7CisKKyAgICBkaWFnKAorICAgICAgICAgICAgIldBTCBTVEFUUyBNSVNNQVRDSCBG T1IgVEFCTEU6XG4iIC4KKyAgICAgICAgICAgICIgIEJhc2VsaW5lOlxuIiAuCisgICAgICAg ICAgICAiICAgIHdhbF9yZWNvcmRzID0gJHdhbF9yZWNvcmRzXG4iIC4KKyAgICAgICAgICAg ICIgICAgd2FsX2J5dGVzICAgPSAkd2FsX2J5dGVzXG4iIC4KKyAgICAgICAgICAgICIgICAg d2FsX2ZwaSAgICAgPSAkd2FsX2ZwaVxuIiAuCisgICAgICAgICAgICAiICBDdXJyZW50Olxu IiAuCisgICAgICAgICAgICAiICAgIHdhbF9yZWNvcmRzID0gJGN1cl93YWxfcmVjXG4iIC4K KyAgICAgICAgICAgICIgICAgd2FsX2J5dGVzICAgPSAkY3VyX3dhbF9ieXRlc1xuIiAuCisg ICAgICAgICAgICAiICAgIHdhbF9mcGkgICAgID0gJGN1cl93YWxfZnBpXG4iCisgICAgKTsK K30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBUZXN0IDE6IERlbGV0ZSBoYWxm IHRoZSByb3dzLCBydW4gVkFDVVVNLCBhbmQgd2FpdCBmb3Igc3RhdHMgdG8gYWR2YW5jZQor Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3VidGVzdCAnVGVzdCAxOiBEZWxldGUgaGFs ZiB0aGUgcm93cywgcnVuIFZBQ1VVTSwgYW5kIHdhaXQgZm9yIHN0YXRzIHRvIGFkdmFuY2Un ID0+IHN1YgoreworCiskbm9kZS0+c2FmZV9wc3FsKCRkYm5hbWUsICJERUxFVEUgRlJPTSB2 ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOyIpOworJG5vZGUtPnNhZmVfcHNxbCgkZGJuYW1lLCAi VkFDVVVNIHZlc3RhdDsiKTsKKworIyBQb2xsIHRoZSBzdGF0cyB2aWV3IHVudGlsIGV4cGVj dGVkIGRlbHRhcyBhcHBlYXIgb3IgdGltZW91dAorJHVwZGF0ZWQgPSB3YWl0X2Zvcl92YWN1 dW1fc3RhdHMoCisgICAgdGFiX3R1cGxlc19kZWxldGVkID0+IDAsCisgICAgdGFiX3dhbF9y ZWNvcmRzID0+IDAKKyk7CitvaygkdXBkYXRlZCwgJ3ZhY3V1bSBzdGF0cyB1cGRhdGVkIGFm dGVyIHZhY3V1bWluZyBoYWxmLWRlbGV0ZWQgdGFibGUgKHR1cGxlc19kZWxldGVkIGFuZCB3 YWxfZnBpIGFkdmFuY2VkKScpCisgIG9yIGRpYWcgIlRpbWVvdXQgd2FpdGluZyBmb3IgcGdf c3RhdHNfdmFjdXVtXyogdXBkYXRlIGFmdGVyICR0aW1lb3V0IHNlY29uZHMgYWZ0ZXIgdmFj dXVtaW5nIGhhbGYtZGVsZXRlZCB0YWJsZSI7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyMgQ2hlY2sgc3RhdGlzdGljcyBhZnRlciBoYWxmLXRhYmxlIGRlbGV0ZQorIy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEdldCBjdXJyZW50IHN0YXRpc3RpY3MKK2ZldGNo X3ZhY3V1bV9zdGF0cygpOworCitvaygkcGFnZXNfZnJvemVuID09ICRwYWdlc19mcm96ZW5f cHJldiwgJ3RhYmxlIHBhZ2VzX2Zyb3plbiBzdGF5IHRoZSBzYW1lJyk7CitvaygkdHVwbGVz X2RlbGV0ZWQgPiAkdHVwbGVzX2RlbGV0ZWRfcHJldiwgJ3RhYmxlIHR1cGxlc19kZWxldGVk IGhhcyBpbmNyZWFzZWQnKTsKK29rKCRwYWdlc19zY2FubmVkID4gJHBhZ2VzX3NjYW5uZWRf cHJldiwgJ3RhYmxlIHBhZ2VzX3NjYW5uZWQgaGFzIGluY3JlYXNlZCcpOworb2soJHBhZ2Vz X3JlbW92ZWQgPT0gJHBhZ2VzX3JlbW92ZWRfcHJldiwgJ3RhYmxlIHBhZ2VzX3JlbW92ZWQg c3RheSB0aGUgc2FtZScpOworb2soJHdhbF9yZWNvcmRzID4gJHdhbF9yZWNvcmRzX3ByZXYs ICd0YWJsZSB3YWxfcmVjb3JkcyBoYXMgaW5jcmVhc2VkJyk7Citvaygkd2FsX2J5dGVzID4g JHdhbF9ieXRlc19wcmV2LCAndGFibGUgd2FsX2J5dGVzIGhhcyBpbmNyZWFzZWQnKTsKK29r KCR3YWxfZnBpID4gJHdhbF9mcGlfcHJldiwgJ3RhYmxlIHdhbF9mcGkgaGFzIGluY3JlYXNl ZCcpOworCit9IG9yIHByaW50X3ZhY3V1bV9zdGF0c19vbl9lcnJvcigpOyAjIEVuZCBvZiBz dWJ0ZXN0CisKKyMgU2F2ZSBzdGF0aXN0aWNzIGZvciB0aGUgbmV4dCB0ZXN0CitzYXZlX3Zh Y3V1bV9zdGF0cygpOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgMjog RGVsZXRlIGFsbCByb3dzLCBydW4gVkFDVVVNLCBhbmQgd2FpdCBmb3Igc3RhdHMgdG8gYWR2 YW5jZQorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3VidGVzdCAnVGVzdCAyOiBEZWxl dGUgYWxsIHJvd3MsIHJ1biBWQUNVVU0sIGFuZCB3YWl0IGZvciBzdGF0cyB0byBhZHZhbmNl JyA9PiBzdWIKK3sKKworJG5vZGUtPnNhZmVfcHNxbCgkZGJuYW1lLCAiREVMRVRFIEZST00g dmVzdGF0OyIpOworJG5vZGUtPnNhZmVfcHNxbCgkZGJuYW1lLCAiVkFDVVVNIHZlc3RhdDsi KTsKKworJHVwZGF0ZWQgPSB3YWl0X2Zvcl92YWN1dW1fc3RhdHMoCisgICAgdGFiX3R1cGxl c19kZWxldGVkID0+ICR0dXBsZXNfZGVsZXRlZF9wcmV2LAorICAgIHRhYl93YWxfcmVjb3Jk cyA9PiAkd2FsX3JlY29yZHNfcHJldiwKKyk7CisKK29rKCR1cGRhdGVkLCAndmFjdXVtIHN0 YXRzIHVwZGF0ZWQgYWZ0ZXIgdmFjdXVtaW5nIGFsbC1kZWxldGVkIHRhYmxlICh0dXBsZXNf ZGVsZXRlZCBhbmQgd2FsX3JlY29yZHMgYWR2YW5jZWQpJykKKyAgb3IgZGlhZyAiVGltZW91 dCB3YWl0aW5nIGZvciBwZ19zdGF0c192YWN1dW1fKiB1cGRhdGUgYWZ0ZXIgJHRpbWVvdXQg c2Vjb25kcyBhZnRlciB2YWN1dW1pbmcgYWxsLWRlbGV0ZWQgdGFibGUiOworCisjLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisjIENoZWNrIHN0YXRpc3RpY3MgYWZ0ZXIgZnVsbCBkZWxl dGUKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBHZXQgY3VycmVudCBzdGF0aXN0 aWNzCitmZXRjaF92YWN1dW1fc3RhdHMoKTsKKworb2soJHBhZ2VzX2Zyb3plbiA9PSAkcGFn ZXNfZnJvemVuX3ByZXYsICd0YWJsZSBwYWdlc19mcm96ZW4gc3RheSB0aGUgc2FtZScpOwor b2soJHR1cGxlc19kZWxldGVkID4gJHR1cGxlc19kZWxldGVkX3ByZXYsICd0YWJsZSB0dXBs ZXNfZGVsZXRlZCBoYXMgaW5jcmVhc2VkJyk7CitvaygkcGFnZXNfc2Nhbm5lZCA+ICRwYWdl c19zY2FubmVkX3ByZXYsICd0YWJsZSBwYWdlc19zY2FubmVkIGhhcyBpbmNyZWFzZWQnKTsK K29rKCRwYWdlc19yZW1vdmVkID4gJHBhZ2VzX3JlbW92ZWRfcHJldiwgJ3RhYmxlIHBhZ2Vz X3JlbW92ZWQgaGFzIGluY3JlYXNlZCcpOworb2soJHdhbF9yZWNvcmRzID4gJHdhbF9yZWNv cmRzX3ByZXYsICd0YWJsZSB3YWxfcmVjb3JkcyBoYXMgaW5jcmVhc2VkJyk7Citvaygkd2Fs X2J5dGVzID4gJHdhbF9ieXRlc19wcmV2LCAndGFibGUgd2FsX2J5dGVzIGhhcyBpbmNyZWFz ZWQnKTsKK29rKCR3YWxfZnBpID09ICR3YWxfZnBpX3ByZXYsICd0YWJsZSB3YWxfZnBpIHN0 YXkgdGhlIHNhbWUnKTsKKworfSBvciBwcmludF92YWN1dW1fc3RhdHNfb25fZXJyb3IoKTsg IyBFbmQgb2Ygc3VidGVzdAorCisjIFNhdmUgc3RhdGlzdGljcyBmb3IgdGhlIG5leHQgdGVz dAorc2F2ZV92YWN1dW1fc3RhdHMoKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IyBUZXN0IDM6IFRlc3QgVkFDVVVNIEZVTEwg4oCUIGl0IHNob3VsZCBub3QgcmVwb3J0IHRv IHRoZSBzdGF0cyBjb2xsZWN0b3IKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N1YnRl c3QgJ1Rlc3QgMzogVGVzdCBWQUNVVU0gRlVMTCDigJQgaXQgc2hvdWxkIG5vdCByZXBvcnQg dG8gdGhlIHN0YXRzIGNvbGxlY3RvcicgPT4gc3ViCit7CisKKyRub2RlLT5zYWZlX3BzcWwo CisgICAgJGRibmFtZSwKKyAgICAiSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsICRzaXplX3RhYikgQVMgZyh4KTsKKyAgICAgQ0hFQ0tQT0lO VDsKKyAgICAgREVMRVRFIEZST00gdmVzdGF0OworICAgICBWQUNVVU0gRlVMTCB2ZXN0YXQ7 IgorKTsKKworIyBHZXQgY3VycmVudCBzdGF0aXN0aWNzCitmZXRjaF92YWN1dW1fc3RhdHMo KTsKKworb2soJHBhZ2VzX2Zyb3plbiA9PSAkcGFnZXNfZnJvemVuX3ByZXYsICd0YWJsZSBw YWdlc19mcm96ZW4gc3RheSB0aGUgc2FtZScpOworb2soJHR1cGxlc19kZWxldGVkID09ICR0 dXBsZXNfZGVsZXRlZF9wcmV2LCAndGFibGUgdHVwbGVzX2RlbGV0ZWQgc3RheSB0aGUgc2Ft ZScpOworb2soJHBhZ2VzX3NjYW5uZWQgPT0gJHBhZ2VzX3NjYW5uZWRfcHJldiwgJ3RhYmxl IHBhZ2VzX3NjYW5uZWQgc3RheSB0aGUgc2FtZScpOworb2soJHBhZ2VzX3JlbW92ZWQgPT0g JHBhZ2VzX3JlbW92ZWRfcHJldiwgJ3RhYmxlIHBhZ2VzX3JlbW92ZWQgc3RheSB0aGUgc2Ft ZScpOworb2soJHdhbF9yZWNvcmRzID09ICR3YWxfcmVjb3Jkc19wcmV2LCAndGFibGUgd2Fs X3JlY29yZHMgc3RheSB0aGUgc2FtZScpOworb2soJHdhbF9ieXRlcyA9PSAkd2FsX2J5dGVz X3ByZXYsICd0YWJsZSB3YWxfYnl0ZXMgc3RheSB0aGUgc2FtZScpOworb2soJHdhbF9mcGkg PT0gJHdhbF9mcGlfcHJldiwgJ3RhYmxlIHdhbF9mcGkgc3RheSB0aGUgc2FtZScpOworCit9 IG9yIHByaW50X3ZhY3V1bV9zdGF0c19vbl9lcnJvcigpOyAjIEVuZCBvZiBzdWJ0ZXN0CisK KyMgU2F2ZSBzdGF0aXN0aWNzIGZvciB0aGUgbmV4dCB0ZXN0CitzYXZlX3ZhY3V1bV9zdGF0 cygpOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgNDogVXBkYXRlIHRh YmxlLCBjaGVja3BvaW50LCBhbmQgVkFDVVVNIHRvIHByb3Zva2UgV0FML0ZQSSBhY2NvdW50 aW5nCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdWJ0ZXN0ICdUZXN0IDQ6IFVwZGF0 ZSB0YWJsZSwgY2hlY2twb2ludCwgYW5kIFZBQ1VVTSB0byBwcm92b2tlIFdBTC9GUEkgYWNj b3VudGluZycgPT4gc3ViCit7CisKKyRub2RlLT5zYWZlX3BzcWwoCisgICAgJGRibmFtZSwK KyAgICAiSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsICRzaXplX3RhYikgQVMgZyh4KTsKKyAgICAgQ0hFQ0tQT0lOVDsKKyAgICAgVVBEQVRF IHZlc3RhdCBTRVQgeCA9IHggKyAxMDAwOworICAgICBWQUNVVU0gdmVzdGF0OyIKKyk7CisK KyR1cGRhdGVkID0gd2FpdF9mb3JfdmFjdXVtX3N0YXRzKAorICAgIHRhYl90dXBsZXNfZGVs ZXRlZCA9PiAkdHVwbGVzX2RlbGV0ZWQsCisgICAgdGFiX3dhbF9yZWNvcmRzID0+ICR3YWxf cmVjb3JkcywKKyk7CisKK29rKCR1cGRhdGVkLCAndmFjdXVtIHN0YXRzIHVwZGF0ZWQgYWZ0 ZXIgdXBkYXRpbmcgdHVwbGVzIGluIHRoZSB0YWJsZSAodHVwbGVzX2RlbGV0ZWQgYW5kIHdh bF9yZWNvcmRzIGFkdmFuY2VkKScpCisgIG9yIGRpYWcgIlRpbWVvdXQgd2FpdGluZyBmb3Ig cGdfc3RhdHNfdmFjdXVtXyogdXBkYXRlIGFmdGVyICR0aW1lb3V0IHNlY29uZHMiOworCisj LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFZlcmlmeSBzdGF0aXN0aWNzIGFmdGVyIHVw ZGF0aW5nIHR1cGxlcyBhbmQgdmFjdXVtaW5nCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisKKyMgR2V0IGN1cnJlbnQgc3RhdGlzdGljcworZmV0Y2hfdmFjdXVtX3N0YXRzKCk7CisK K29rKCRwYWdlc19mcm96ZW4gPT0gJHBhZ2VzX2Zyb3plbl9wcmV2LCAndGFibGUgcGFnZXNf ZnJvemVuIHN0YXkgdGhlIHNhbWUnKTsKK29rKCR0dXBsZXNfZGVsZXRlZCA+ICR0dXBsZXNf ZGVsZXRlZF9wcmV2LCAndGFibGUgdHVwbGVzX2RlbGV0ZWQgaGFzIGluY3JlYXNlZCcpOwor b2soJHBhZ2VzX3NjYW5uZWQgPiAkcGFnZXNfc2Nhbm5lZF9wcmV2LCAndGFibGUgcGFnZXNf c2Nhbm5lZCBoYXMgaW5jcmVhc2VkJyk7CitvaygkcGFnZXNfcmVtb3ZlZCA9PSAkcGFnZXNf cmVtb3ZlZF9wcmV2LCAndGFibGUgcGFnZXNfcmVtb3ZlZCBzdGF5IHRoZSBzYW1lJyk7Citv aygkd2FsX3JlY29yZHMgPiAkd2FsX3JlY29yZHNfcHJldiwgJ3RhYmxlIHdhbF9yZWNvcmRz IGhhcyBpbmNyZWFzZWQnKTsKK29rKCR3YWxfYnl0ZXMgPiAkd2FsX2J5dGVzX3ByZXYsICd0 YWJsZSB3YWxfYnl0ZXMgaGFzIGluY3JlYXNlZCcpOworb2soJHdhbF9mcGkgPiAkd2FsX2Zw aV9wcmV2LCAndGFibGUgd2FsX2ZwaSBoYXMgaW5jcmVhc2VkJyk7CisKK30gb3IgcHJpbnRf dmFjdXVtX3N0YXRzX29uX2Vycm9yKCk7ICMgRW5kIG9mIHN1YnRlc3QKKworIyBTYXZlIHN0 YXRpc3RpY3MgZm9yIHRoZSBuZXh0IHRlc3QKK3NhdmVfdmFjdXVtX3N0YXRzKCk7CisKKyMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCA1OiBVcGRhdGUgdGFibGUsIHRyYW5j YXRlIGFuZCB2YWN1dW1pbmcKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N1YnRlc3Qg J1Rlc3QgNTogVXBkYXRlIHRhYmxlLCB0cmFuY2F0ZSBhbmQgdmFjdXVtaW5nJyA9PiBzdWIK K3sKKworJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAkZGJuYW1lLAorICAgICJJTlNFUlQgSU5U TyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgJHNpemVfdGFiKSBB UyBnKHgpOworICAgICBVUERBVEUgdmVzdGF0IFNFVCB4ID0geCArIDEwMDA7IgorKTsKKyRu b2RlLT5zYWZlX3BzcWwoJGRibmFtZSwgIlRSVU5DQVRFIHZlc3RhdDsiKTsKKyRub2RlLT5z YWZlX3BzcWwoJGRibmFtZSwgIkNIRUNLUE9JTlQ7Iik7Ciskbm9kZS0+c2FmZV9wc3FsKCRk Ym5hbWUsICJWQUNVVU0gdmVzdGF0OyIpOworCiskdXBkYXRlZCA9IHdhaXRfZm9yX3ZhY3V1 bV9zdGF0cygKKyAgICB0YWJfdHVwbGVzX2RlbGV0ZWQgPT4gMCwKKyAgICB0YWJfd2FsX3Jl Y29yZHMgPT4gJHdhbF9yZWNvcmRzX3ByZXYKKyk7CisKK29rKCR1cGRhdGVkLCAndmFjdXVt IHN0YXRzIHVwZGF0ZWQgYWZ0ZXIgdXBkYXRpbmcgdHVwbGVzIGFuZCB0cmFuY2F0aW9uIGlu IHRoZSB0YWJsZSAodHVwbGVzX2RlbGV0ZWQgYW5kIHdhbF9yZWNvcmRzIGFkdmFuY2VkKScp CisgIG9yIGRpYWcgIlRpbWVvdXQgd2FpdGluZyBmb3IgcGdfc3RhdHNfdmFjdXVtXyogdXBk YXRlIGFmdGVyICR0aW1lb3V0IHNlY29uZHMiOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisjIFZlcmlmeSBzdGF0aXN0aWNzIGFmdGVyIHVwZGF0aW5nIGZ1bGwgdGFibGUsIHZh Y3V1bSBhbmQgdHJhbmNhdGlvbgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEdl dCBjdXJyZW50IHN0YXRpc3RpY3MKK2ZldGNoX3ZhY3V1bV9zdGF0cygpOworCitvaygkcGFn ZXNfZnJvemVuID09ICRwYWdlc19mcm96ZW5fcHJldiwgJ3RhYmxlIHBhZ2VzX2Zyb3plbiBz dGF5IHRoZSBzYW1lJyk7CitvaygkdHVwbGVzX2RlbGV0ZWQgPT0gJHR1cGxlc19kZWxldGVk X3ByZXYsICd0YWJsZSB0dXBsZXNfZGVsZXRlZCBzdGF5IHRoZSBzYW1lJyk7CitvaygkcGFn ZXNfc2Nhbm5lZCA9PSAkcGFnZXNfc2Nhbm5lZF9wcmV2LCAndGFibGUgcGFnZXNfc2Nhbm5l ZCBzdGF5IHRoZSBzYW1lJyk7CitvaygkcGFnZXNfcmVtb3ZlZCA9PSAkcGFnZXNfcmVtb3Zl ZF9wcmV2LCAndGFibGUgcGFnZXNfcmVtb3ZlZCBzdGF5IHRoZSBzYW1lJyk7Citvaygkd2Fs X3JlY29yZHMgPiAkd2FsX3JlY29yZHNfcHJldiwgJ3RhYmxlIHdhbF9yZWNvcmRzIGhhcyBp bmNyZWFzZWQnKTsKK29rKCR3YWxfYnl0ZXMgPiAkd2FsX2J5dGVzX3ByZXYsICd0YWJsZSB3 YWxfYnl0ZXMgaGFzIGluY3JlYXNlZCcpOworb2soJHdhbF9mcGkgPT0gJHdhbF9mcGlfcHJl diwgJ3RhYmxlIHdhbF9mcGkgc3RheSB0aGUgc2FtZScpOworCit9IG9yIHByaW50X3ZhY3V1 bV9zdGF0c19vbl9lcnJvcigpOyAjIEVuZCBvZiBzdWJ0ZXN0CisKKyMgU2F2ZSBzdGF0aXN0 aWNzIGZvciB0aGUgbmV4dCB0ZXN0CitzYXZlX3ZhY3V1bV9zdGF0cygpOworCisjLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgNjogRGVsZXRlIGFsbCB0dXBsZXMgZnJvbSB0 YWJsZSwgdHJhbmNhdGUsIGFuZCB2YWN1dW1pbmcKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KK3N1YnRlc3QgJ1Rlc3QgNjogRGVsZXRlIGFsbCB0dXBsZXMgZnJvbSB0YWJsZSwgdHJh bmNhdGUsIGFuZCB2YWN1dW1pbmcnID0+IHN1YgoreworCiskbm9kZS0+c2FmZV9wc3FsKAor ICAgICRkYm5hbWUsCisgICAgIklOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCAkc2l6ZV90YWIpIEFTIGcoeCk7CisgICAgIERFTEVURSBGUk9N IHZlc3RhdDsKKyAgICAgVFJVTkNBVEUgdmVzdGF0OworICAgICBDSEVDS1BPSU5UOworICAg ICBWQUNVVU0gdmVzdGF0OyIKKyk7CisKKyR1cGRhdGVkID0gd2FpdF9mb3JfdmFjdXVtX3N0 YXRzKAorICAgIHRhYl90dXBsZXNfZGVsZXRlZCA9PiAwLAorICAgIHRhYl93YWxfcmVjb3Jk cyA9PiAkd2FsX3JlY29yZHMKKyk7CisKK29rKCR1cGRhdGVkLCAndmFjdXVtIHN0YXRzIHVw ZGF0ZWQgYWZ0ZXIgZGVsZXRpbmcgYWxsIHR1cGxlcyBhbmQgdHJhbmNhdGlvbiBpbiB0aGUg dGFibGUgKHR1cGxlc19kZWxldGVkIGFuZCB3YWxfcmVjb3JkcyBhZHZhbmNlZCknKQorICBv ciBkaWFnICJUaW1lb3V0IHdhaXRpbmcgZm9yIHBnX3N0YXRzX3ZhY3V1bV8qIHVwZGF0ZSBh ZnRlciAkdGltZW91dCBzZWNvbmRzIjsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IyBWZXJpZnkgc3RhdGlzdGljcyBhZnRlciB0YWJsZSB2YWN1dW0gYW5kIHRyYW5jYXRpb24K KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBHZXQgY3VycmVudCBzdGF0aXN0aWNz CitmZXRjaF92YWN1dW1fc3RhdHMoKTsKKworb2soJHBhZ2VzX2Zyb3plbiA9PSAkcGFnZXNf ZnJvemVuX3ByZXYsICd0YWJsZSBwYWdlc19mcm96ZW4gc3RheSB0aGUgc2FtZScpOworb2so JHR1cGxlc19kZWxldGVkID09ICR0dXBsZXNfZGVsZXRlZF9wcmV2LCAndGFibGUgdHVwbGVz X2RlbGV0ZWQgc3RheSB0aGUgc2FtZScpOworb2soJHBhZ2VzX3NjYW5uZWQgPT0gJHBhZ2Vz X3NjYW5uZWRfcHJldiwgJ3RhYmxlIHBhZ2VzX3NjYW5uZWQgc3RheSB0aGUgc2FtZScpOwor b2soJHBhZ2VzX3JlbW92ZWQgPT0gJHBhZ2VzX3JlbW92ZWRfcHJldiwgJ3RhYmxlIHBhZ2Vz X3JlbW92ZWQgc3RheSB0aGUgc2FtZScpOworb2soJHdhbF9yZWNvcmRzID4gJHdhbF9yZWNv cmRzX3ByZXYsICd0YWJsZSB3YWxfcmVjb3JkcyBoYXMgaW5jcmVhc2VkJyk7Citvaygkd2Fs X2J5dGVzID4gJHdhbF9ieXRlc19wcmV2LCAndGFibGUgd2FsX2J5dGVzIGhhcyBpbmNyZWFz ZWQnKTsKK29rKCR3YWxfZnBpID09ICR3YWxfZnBpX3ByZXYsICd0YWJsZSB3YWxfZnBpIHN0 YXkgdGhlIHNhbWUnKTsKKworfSBvciBwcmludF92YWN1dW1fc3RhdHNfb25fZXJyb3IoKTsg IyBFbmQgb2Ygc3VidGVzdAorCisjIFNhdmUgc3RhdGlzdGljcyBmb3IgdGhlIG5leHQgdGVz dAorc2F2ZV92YWN1dW1fc3RhdHMoKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCA4OiBDaGVjayBpZiB3ZSByZXR1cm4g c2luZ2xlIHZhY3V1bSBzdGF0aXN0aWNzIGZvciBwYXJ0aWN1bGFyIHJlbGF0aW9uIGZyb20g dGhlIGN1cnJlbnQgZGF0YWJhc2UKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisKK215ICRkYm9pZCA9ICRub2RlLT5zYWZlX3BzcWwoCisg ICAgJGRibmFtZSwKKyAgICAiU0VMRUNUIG9pZCBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRh dG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCk7IgorKTsKKworbXkgJHJlbG9pZCA9ICRub2Rl LT5zYWZlX3BzcWwoCisgICAgJGRibmFtZSwKKyAgICBxeworICAgICAgICBTRUxFQ1Qgb2lk IEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOworICAgIH0KKyk7CisK KyMgQ2hlY2sgaWYgd2UgY2FuIGdldCB2YWN1dW0gc3RhdGlzdGljcyBvZiBwYXJ0aWN1bGFy IGhlYXAgZWxhdGlvbiBpbiB0aGUgY3VycmVudCBkYXRhYmFzZQorJGJhc2Vfc3RhdHMgPSAk bm9kZS0+c2FmZV9wc3FsKAorICAgICRkYm5hbWUsCisgICAgIlNFTEVDVCBjb3VudCgqKSA9 IDEgRlJPTSBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKCRyZWxvaWQpOyIKKyk7Citvaygk YmFzZV9zdGF0cyBlcSAndCcsICdoZWFwIHZhY3V1bSBzdGF0cyByZXR1cm4gZnJvbSB0aGUg Y3VycmVudCByZWxhdGlvbiBhbmQgZGF0YWJhc2UgYXMgZXhwZWN0ZWQnKTsKKworIy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIyBUZXN0IDk6IENoZWNrIHJlbGF0aW9uLWxldmVsIHZh Y3V1bSBzdGF0aXN0aWNzIGZyb20gYW5vdGhlciBkYXRhYmFzZQorIy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorCiskYmFzZV9zdGF0cyA9ICRub2RlLT5zYWZlX3BzcWwoCisgICAgJ3Bv c3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID0gMAorICAgICBGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcworICAgICBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7IgorKTsKK29r KCRiYXNlX3N0YXRzIGVxICd0JywgJ2NoZWNrIHRoZSBwcmludGluZyBoZWFwIHZhY3V1bSBl eHRlbmRlZCBzdGF0aXN0aWNzIGZyb20gYW5vdGhlciBkYXRhYmFzZSBhcmUgbm90IGF2YWls YWJsZScpOworCiskcmVsb2lkID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAkZGJuYW1lLAor ICAgIHF7CisgICAgICAgIFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1l ID0gJ3BnX3NoZGVwZW5kJzsKKyAgICB9CispOworCisjIENoZWNrIGlmIHdlIGNhbiBnZXQg dmFjdXVtIHN0YXRpc3RpY3MgZm9yIGNsdXN0ZXIgcmVsYXRpb25zIChkYmlkID0gMCkKKyRi YXNlX3N0YXRzID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAkZGJuYW1lLAorICAgIHFxewor ICAgICAgICBTRUxFQ1QgY291bnQoKikgPSAxCisgICAgICAgIEZST00gcGdfc3RhdF9nZXRf dmFjdXVtX3RhYmxlcygkcmVsb2lkKTsKKyAgICB9CispOworCitpcygkYmFzZV9zdGF0cywg J3QnLCAndmFjdXVtIHN0YXRzIGZvciBjb21tb24gaGVhcCBvYmplY3RzIGF2YWlsYWJsZScp OworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgMTE6IENsZWFudXAgY2hl Y2tzOiBlbnN1cmUgZnVuY3Rpb25zIHJldHVybiBlbXB0eSBzZXRzIGZvciBPSUQgPSAwCisj LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyRub2RlLT5zYWZlX3BzcWwoJGRibmFtZSwg cXsKKyAgICBEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOworICAgIFZBQ1VVTTsKK30pOwor CisjIENoZWNrIHRoYXQgd2UgZG9uJ3QgcHJpbnQgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIGRl bGV0ZWQgb2JqZWN0cworJGJhc2Vfc3RhdHMgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICRk Ym5hbWUsCisgICAgcXsKKyAgICAgICAgU0VMRUNUIENPVU5UKCopID0gMAorICAgICAgICAg IEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbGlkID0gMDsKKyAgICB9Cisp Oworb2soJGJhc2Vfc3RhdHMgZXEgJ3QnLCAncGdfc3RhdF92YWN1dW1fdGFibGVzIGNvcnJl Y3RseSByZXR1cm5zIG5vIHJvd3MgZm9yIE9JRCA9IDAnKTsKKworJG5vZGUtPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorICAgICJEUk9QIERBVEFCQVNFICRkYm5hbWU7IgorKTsKKworJG5v ZGUtPnN0b3A7CisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVj b3ZlcnkvdC8wNTFfdmFjdXVtX2V4dGVuZGluZ19mcmVlemVfdGVzdC5wbCBiL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDUxX3ZhY3V1bV9leHRlbmRpbmdfZnJlZXplX3Rlc3QucGwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE5YjVkNmNiNzM5Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTFfdmFjdXVtX2V4dGVuZGluZ19m cmVlemVfdGVzdC5wbApAQCAtMCwwICsxLDM5NSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyMKKyMgVGVzdCBjdW11bGF0 aXZlIHZhY3V1bSBzdGF0cyBzeXN0ZW0gdXNpbmcgVEFQCisjCisjIEluIHNob3J0LCB0aGlz IHRlc3QgdmFsaWRhdGVzIHRoZSBjb3JyZWN0bmVzcyBhbmQgc3RhYmlsaXR5IG9mIGN1bXVs YXRpdmUKKyMgdmFjdXVtIHN0YXRpc3RpY3MgYWNjb3VudGluZyBhcm91bmQgZnJlZXppbmcs IHZpc2liaWxpdHksIGFuZCByZXZpc2lvbgorIyB0cmFja2luZyBhY3Jvc3MgbXVsdGlwbGUg VkFDVVVNcyBhbmQgYmFja2VuZCBvcGVyYXRpb25zLgorCit1c2Ugc3RyaWN0OwordXNlIHdh cm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNR TDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIyBUZXN0IGNsdXN0ZXIgc2V0dXAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ2V4dF9z dGF0X3ZhY3V1bScpOworJG5vZGUtPmluaXQ7CisKKyMgQ29uZmlndXJlIHRoZSBzZXJ2ZXIg Zm9yIGFnZ3Jlc3NpdmUgZnJlZXppbmcgYmVoYXZpb3IgdXNlZCBieSB0aGUgdGVzdAorIyBU aGVzZSBzZXR0aW5ncyBlbnN1cmUgdGhhdCBWQUNVVU0gYWx3YXlzIGZyZWV6ZXMgcGFnZXMg YWdncmVzc2l2ZWx5OgorIyAtIHZhY3V1bV9mcmVlemVfbWluX2FnZSA9IDA6IGZyZWV6ZSB0 dXBsZXMgYXMgc29vbiBhcyBwb3NzaWJsZSAobm8gYWdlIHJlcXVpcmVtZW50KQorIyAtIHZh Y3V1bV9mcmVlemVfdGFibGVfYWdlID0gMDogYWx3YXlzIHBlcmZvcm0gYWdncmVzc2l2ZSBz Y2FuIChzY2FuIGFsbCBwYWdlcykKKyMgLSB2YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9taW5f YWdlID0gMDogZnJlZXplIG11bHRpeGFjdHMgYXMgc29vbiBhcyBwb3NzaWJsZQorIyAtIHZh Y3V1bV9tdWx0aXhhY3RfZnJlZXplX3RhYmxlX2FnZSA9IDA6IGFsd2F5cyBwZXJmb3JtIGFn Z3Jlc3NpdmUgc2NhbiBmb3IgbXVsdGl4YWN0cworIyAtIHZhY3V1bV9tYXhfZWFnZXJfZnJl ZXplX2ZhaWx1cmVfcmF0ZSA9IDEuMDogZW5hYmxlIGFnZ3Jlc3NpdmUgZWFnZXIgc2Nhbm5p bmcgKDEwMCUgb2YgcGFnZXMpCisjIC0gdmFjdXVtX2ZhaWxzYWZlX2FnZSA9IDA6IGRpc2Fi bGUgZmFpbHNhZmUgKGZvciB0ZXN0aW5nKQorIyAtIHZhY3V1bV9tdWx0aXhhY3RfZmFpbHNh ZmVfYWdlID0gMDogZGlzYWJsZSBtdWx0aXhhY3QgZmFpbHNhZmUgKGZvciB0ZXN0aW5nKQor JG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCBxeworCWxvZ19taW5fbWVz c2FnZXMgPSBub3RpY2UKKwl2YWN1dW1fZnJlZXplX21pbl9hZ2UgPSAwCisJdmFjdXVtX2Zy ZWV6ZV90YWJsZV9hZ2UgPSAwCisJdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWluX2FnZSA9 IDAKKwl2YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV90YWJsZV9hZ2UgPSAwCisJdmFjdXVtX21h eF9lYWdlcl9mcmVlemVfZmFpbHVyZV9yYXRlID0gMS4wCisJdmFjdXVtX2ZhaWxzYWZlX2Fn ZSA9IDAKKwl2YWN1dW1fbXVsdGl4YWN0X2ZhaWxzYWZlX2FnZSA9IDAKK30pOworCiskbm9k ZS0+c3RhcnQoKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBEYXRhYmFzZSBj cmVhdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworCUNSRUFURSBEQVRBQkFTRSBz dGF0aXN0aWNfdmFjdXVtX2RhdGFiYXNlX3JlZ3Jlc3Npb247Cit9KTsKKworIyBNYWluIHRl c3QgZGF0YWJhc2UgbmFtZQorbXkgJGRibmFtZSA9ICdzdGF0aXN0aWNfdmFjdXVtX2RhdGFi YXNlX3JlZ3Jlc3Npb24nOworCisjIEVuYWJsZSBuZWNlc3Nhcnkgc2V0dGluZ3MgYW5kIGZv cmNlIHRoZSBzdGF0cyBjb2xsZWN0b3IgdG8gZmx1c2ggbmV4dAorJG5vZGUtPnNhZmVfcHNx bCgkZGJuYW1lLCBxeworICAgIFNFVCB0cmFja19mdW5jdGlvbnMgPSAnYWxsJzsKKyAgICBT RUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7Cit9KTsKKworIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIyBUaW1pbmcgcGFyYW1ldGVycyBmb3IgcG9sbGluZyBsb29wcwor Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitteSAkdGltZW91dCAgICA9IDMwOyAgICAg IyBvdmVyYWxsIHdhaXQgdGltZW91dCBpbiBzZWNvbmRzCitteSAkaW50ZXJ2YWwgICA9IDAu MDE1OyAgIyBwb2xsIGludGVydmFsIGluIHNlY29uZHMgKDE1IG1zKQorbXkgJHN0YXJ0X3Rp bWUgPSB0aW1lKCk7CitteSAkdXBkYXRlZCAgICA9IDA7CisKKyMgd2FpdF9mb3JfdmFjdXVt X3N0YXRzCisjCisjIFBvbGxzIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB1bnRpbCB0aGUgbmFt ZWQgY29sdW1ucyBleGNlZWQgdGhlIHByb3ZpZGVkCisjIGJhc2VsaW5lIHZhbHVlcyBvciB1 bnRpbCB0aW1lb3V0LiAgQ2FsbGVycyBzaG91bGQgcGFzczoKKyMKKyMgICB0YWJfZnJvemVu X2NvbHVtbiAgICAgICAgICAgPT4gJ3ZtX25ld19mcm96ZW5fcGFnZXMnICAgIyBjb2x1bW4g bmFtZSAoc3RyaW5nKSBvciAncmV2X2FsbF9mcm96ZW5fcGFnZXMnCisjICAgdGFiX3Zpc2li bGVfY29sdW1uICAgICAgICAgID0+ICd2bV9uZXdfdmlzaWJsZV9wYWdlcycgICMgY29sdW1u IG5hbWUgKHN0cmluZykgb3IgJ3Jldl9hbGxfdmlzaWJsZV9wYWdlcycKKyMgICB0YWJfYWxs X2Zyb3plbl9wYWdlc19jb3VudCAgPT4gMCAgICAgICAgICAgICAgICAgICAgICAgIyBiYXNl bGluZSBudW1lcmljCisjICAgdGFiX2FsbF92aXNpYmxlX3BhZ2VzX2NvdW50ID0+IDAgICAg ICAgICAgICAgICAgICAgICAgICMgYmFzZWxpbmUgbnVtZXJpYworIyAgIHJ1bl92YWN1dW0g ICAgICAgICAgICAgICAgICA9PiAwIG9yIDEgICAgICAgICAgICAgICAgICAjIGlmIHRydWUs IHJ1biB2YWN1dW1fc3FsIGJlZm9yZSBwb2xsaW5nCisjCisjIFJldHVybnM6IDEgaWYgdGhl IGNvbmRpdGlvbiBpcyBtZXQgYmVmb3JlIHRpbWVvdXQsIDAgb3RoZXJ3aXNlLgorc3ViIHdh aXRfZm9yX3ZhY3V1bV9zdGF0cyB7CisgICAgbXkgKCVhcmdzKSA9IEBfOworCisgICAgbXkg JHRhYl9mcm96ZW5fY29sdW1uICAgICAgICAgICA9ICRhcmdze3RhYl9mcm96ZW5fY29sdW1u fTsKKyAgICBteSAkdGFiX3Zpc2libGVfY29sdW1uICAgICAgICAgID0gJGFyZ3N7dGFiX3Zp c2libGVfY29sdW1ufTsKKyAgICBteSAkdGFiX2FsbF9mcm96ZW5fcGFnZXNfY291bnQgID0g JGFyZ3N7dGFiX2FsbF9mcm96ZW5fcGFnZXNfY291bnR9OworICAgIG15ICR0YWJfYWxsX3Zp c2libGVfcGFnZXNfY291bnQgPSAkYXJnc3t0YWJfYWxsX3Zpc2libGVfcGFnZXNfY291bnR9 OworICAgIG15ICRydW5fdmFjdXVtICAgICAgICAgICAgICAgICAgPSAkYXJnc3tydW5fdmFj dXVtfSA/IDEgOiAwOworICAgIG15ICRyZXN1bHRfcXVlcnk7CisKKyAgICBteSAkc3RhcnQg PSB0aW1lKCk7CisgICAgbXkgJHNxbDsKKworICAgIHdoaWxlICgodGltZSgpIC0gJHN0YXJ0 KSA8ICR0aW1lb3V0KSB7CisKKyAgICAgICAgaWYgKCRydW5fdmFjdXVtKSB7CisgICAgICAg ICAgICAkbm9kZS0+c2FmZV9wc3FsKCRkYm5hbWUsICdWQUNVVU0gKEZSRUVaRSwgVkVSQk9T RSkgdmVzdGF0Jyk7CisgICAgICAgICAgICAkc3FsID0gIgorICAgICAgICAgICAgICAgIFNF TEVDVCAoJHRhYl9mcm96ZW5fY29sdW1uID4gJHRhYl9hbGxfZnJvemVuX3BhZ2VzX2NvdW50 IEFORAorICAgICAgICAgICAgICAgICAgICAgICAgJHRhYl92aXNpYmxlX2NvbHVtbiA+ICR0 YWJfYWxsX3Zpc2libGVfcGFnZXNfY291bnQpCisgICAgICAgICAgICAgICAgICAgIEZST00g cGdfc3RhdF92YWN1dW1fdGFibGVzCisgICAgICAgICAgICAgICAgICAgIFdIRVJFIHJlbG5h bWUgPSAndmVzdGF0JyI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAg ICAkc3FsID0gIgorICAgICAgICAgICAgU0VMRUNUIChwZ19zdGF0X2dldF9yZXZfYWxsX2Zy b3plbl9wYWdlcyhjLm9pZCkgPiAkdGFiX2FsbF9mcm96ZW5fcGFnZXNfY291bnQgQU5ECisg ICAgICAgICAgICAgICAgICAgICBwZ19zdGF0X2dldF9yZXZfYWxsX3Zpc2libGVfcGFnZXMo Yy5vaWQpID4gJHRhYl9hbGxfdmlzaWJsZV9wYWdlc19jb3VudCkKKyAgICAgICAgICAgICAg ICBGUk9NIHBnX2NsYXNzIGMKKyAgICAgICAgICAgICAgICBXSEVSRSByZWxuYW1lID0gJ3Zl c3RhdCciOworICAgICAgICB9CisKKyAgICAgICAgJHJlc3VsdF9xdWVyeSA9ICRub2RlLT5z YWZlX3BzcWwoJGRibmFtZSwgJHNxbCk7CisKKyAgICAgICAgcmV0dXJuIDEgaWYgKGRlZmlu ZWQgJHJlc3VsdF9xdWVyeSAmJiAkcmVzdWx0X3F1ZXJ5IGVxICd0Jyk7CisKKyAgICAgICAg IyBzdWItc2Vjb25kIHNsZWVwCisgICAgICAgIHNsZWVwKCRpbnRlcnZhbCk7CisgICAgfQor CisgICAgcmV0dXJuIDA7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVmFy aWFibGVzIHRvIGhvbGQgdmFjdXVtIHN0YXRpc3RpY3Mgc25hcHNob3RzIGZvciBjb21wYXJp c29ucworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitteSAkdm1fbmV3X2Zyb3plbl9w YWdlczsKK215ICR2bV9uZXdfdmlzaWJsZV9wYWdlczsKKworbXkgJHJldl9hbGxfZnJvemVu X3BhZ2VzOworbXkgJHJldl9hbGxfdmlzaWJsZV9wYWdlczsKKworbXkgJHJlczsKKworIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBmZXRjaF92YWN1dW1fc3RhdHMKKyMKKyMgTG9h ZHMgY3VycmVudCB2YWx1ZXMgb2YgdGhlIHJlbGV2YW50IHZhY3V1bSBjb3VudGVycyBmb3Ig dGhlIHRlc3QgdGFibGUKKyMgaW50byB0aGUgcGFja2FnZS1sZXZlbCB2YXJpYWJsZXMgYWJv dmUgc28gdGVzdHMgY2FuIGNvbXBhcmUgbGF0ZXIuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisKK3N1YiBmZXRjaF92YWN1dW1fc3RhdHMgeworICAgICMgZmV0Y2ggYWN0dWFsIGJh c2UgdmFjdXVtIHN0YXRpc3RpY3MKKyAgICAkdm1fbmV3X2Zyb3plbl9wYWdlcyA9ICRub2Rl LT5zYWZlX3BzcWwoCisgICAgICAgICRkYm5hbWUsCisgICAgICAgICJTRUxFQ1QgdnQudm1f bmV3X2Zyb3plbl9wYWdlcworICAgICAgICAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxl cyB2dAorICAgICAgICAgIFdIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JzsiCisgICAgKTsK KworICAgICR2bV9uZXdfdmlzaWJsZV9wYWdlcyA9ICRub2RlLT5zYWZlX3BzcWwoCisgICAg ICAgICRkYm5hbWUsCisgICAgICAgICJTRUxFQ1QgdnQudm1fbmV3X3Zpc2libGVfcGFnZXMK KyAgICAgICAgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQKKyAgICAgICAgICBX SEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCc7IgorICAgICk7CisKKyAgICAkcmV2X2FsbF9m cm96ZW5fcGFnZXMgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICAgICAkZGJuYW1lLAorICAg ICAgICAiU0VMRUNUIHBnX3N0YXRfZ2V0X3Jldl9hbGxfZnJvemVuX3BhZ2VzKGMub2lkKQor ICAgICAgICAgICBGUk9NIHBnX2NsYXNzIGMKKyAgICAgICAgICBXSEVSRSBjLnJlbG5hbWUg PSAndmVzdGF0JzsiCisgICAgKTsKKworICAgICRyZXZfYWxsX3Zpc2libGVfcGFnZXMgPSAk bm9kZS0+c2FmZV9wc3FsKAorICAgICAgICAkZGJuYW1lLAorICAgICAgICAiU0VMRUNUIHBn X3N0YXRfZ2V0X3Jldl9hbGxfdmlzaWJsZV9wYWdlcyhjLm9pZCkKKyAgICAgICAgICAgRlJP TSBwZ19jbGFzcyBjCisgICAgICAgICAgV0hFUkUgYy5yZWxuYW1lID0gJ3Zlc3RhdCc7Igor ICAgICk7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgZmV0Y2hfdmFjdXVt X3N0YXRzIGR1cmluZyBtaXNtYXRjaAorIworIyBQcmludCBjdXJyZW50IHZhbHVlcyBhbmQg b2xkIHZhbHVlcyBvZiByZWxldmFudCB2YWN1dW0gY291bnRlcnMgZm9yIHRoZSB0ZXN0Cisj IHRhYmxlLCBzdG9yaW5nIHRoZW0gaW4gcGFja2FnZSB2YXJpYWJsZXMgZm9yIHN1YnNlcXVl bnQgY29tcGFyaXNvbnMuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3N1YiBmZXRj aF9lcnJvcl90YWJfdmFjdXVtX3N0YXRpc3RpY3MgeworICAgIG15ICglYXJncykgPSBAXzsK KworICAgICMgVmFsaWRhdGUgcHJlc2VuY2Ugb2YgcmVxdWlyZWQgYXJncyAoYWxsb3cgMCBh cyB2YWxpZCBudW1lcmljIGJhc2VsaW5lKQorICAgIGRpZSAidGFiX2NvbHVtbiByZXF1aXJl ZCIKKyAgICAgIHVubGVzcyBleGlzdHMgJGFyZ3N7dGFiX2NvbHVtbn0gJiYgZGVmaW5lZCAk YXJnc3t0YWJfY29sdW1ufTsKKyAgICBkaWUgInRhYl92YWx1ZSByZXF1aXJlZCIKKyAgICAg IHVubGVzcyBleGlzdHMgJGFyZ3N7dGFiX3ZhbHVlfTsKKworICAgIG15ICR0YWJfY29sdW1u ID0gJGFyZ3N7dGFiX2NvbHVtbn07CisgICAgbXkgJHRhYl92YWx1ZSAgPSAkYXJnc3t0YWJf dmFsdWV9OworCisgICAgIyBmZXRjaCBhY3R1YWwgYmFzZSB2YWN1dW0gc3RhdGlzdGljcwor ICAgIG15ICRjdXJfdmFsdWUgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICRkYm5hbWUsCisg ICAgIlNFTEVDVCAkdGFiX2NvbHVtbgorICAgICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFi bGVzCisgICAgICBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7IgorICAgICk7CisKKyAgICBk aWFnKCJNSVNNQVRDSCBGT1IgJHRhYl9jb2x1bW46IHRoZSBjdXJyZW50IHZhbHVlIGlzICRj dXJfdmFsdWUsIHdoaWxlIGl0IHNob3VsZCBiZSAkdGFiX3ZhbHVlIik7Cit9CisKKyMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCAxOiBDcmVhdGUgdGVzdCB0YWJsZSwgcG9w dWxhdGUgaXQgYW5kIHJ1biBhbiBpbml0aWFsIHZhY3V1bSB0byBmb3JjZSBmcmVlemluZwor Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiskbm9kZS0+c2FmZV9wc3FsKCRkYm5hbWUs IHF7CisJU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworCUNSRUFURSBUQUJM RSB2ZXN0YXQgKHggaW50KQorCQlXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZp bGxmYWN0b3IgPSAxMCk7CisJSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIGcoeCk7CisJVkFDVVVNIChGUkVFWkUsIFZFUkJP U0UpIHZlc3RhdDsKK30pOworCisjIFBvbGwgdGhlIHN0YXRzIHZpZXcgdW50aWwgdGhlIGV4 cGVjdGVkIGRlbHRhcyBhcHBlYXIgb3IgdGltZW91dC4KKyMgV2UgZG8gbm90IGV4cGVjdCBy ZXZfYWxsXyogY291bnRlcnMgdG8gY2hhbmdlIGhlcmUsIHNvIHdlIHBhc3MgLTEgZm9yIHRo ZW0uCiskdXBkYXRlZCA9IHdhaXRfZm9yX3ZhY3V1bV9zdGF0cygKKwkJCXRhYl9mcm96ZW5f Y29sdW1uID0+ICd2bV9uZXdfZnJvemVuX3BhZ2VzJywKKwkJCXRhYl92aXNpYmxlX2NvbHVt biA9PiAndm1fbmV3X3Zpc2libGVfcGFnZXMnLAorCQkJdGFiX2FsbF9mcm96ZW5fcGFnZXNf Y291bnQgPT4gMCwKKwkJCXRhYl9hbGxfdmlzaWJsZV9wYWdlc19jb3VudCA9PiAwLAorICAg ICAgcnVuX3ZhY3V1bSA9PiAxLAorKTsKKworb2soJHVwZGF0ZWQsCisgICAndmFjdXVtIHN0 YXRzIHVwZGF0ZWQgYWZ0ZXIgdmFjdXVtaW5nIHRoZSB0YWJsZSAodm1fbmV3X2Zyb3plbl9w YWdlcyBhbmQgdm1fbmV3X3Zpc2libGVfcGFnZXMgYWR2YW5jZWQpJykKKyAgb3IgZGlhZyAi VGltZW91dCB3YWl0aW5nIGZvciBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdG8gdXBkYXRlIGFm dGVyICR0aW1lb3V0IHNlY29uZHMgZHVyaW5nIHZhY3V1bSI7CisKKyMtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyMgU25hcHNob3QgY3VycmVudCBzdGF0aXN0aWNzIGZvciBsYXRlciBj b21wYXJpc29uCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2ZldGNoX3ZhY3V1bV9z dGF0cygpOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFZlcmlmeSBpbml0aWFs IHN0YXRpc3RpY3MgYWZ0ZXIgdmFjdXVtCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK KyRyZXMgPSAkbm9kZS0+c2FmZV9wc3FsKCRkYm5hbWUsIHF7CisgICAgU0VMRUNUIHZtX25l d19mcm96ZW5fcGFnZXMgPiAwIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJl bG5hbWUgPSAndmVzdGF0JzsKK30pOworb2soJHJlcyBlcSAndCcsICd2YWN1dW0gZnJvemUg c29tZSBwYWdlcywgYXMgZXhwZWN0ZWQnKSBvcgorICBmZXRjaF9lcnJvcl90YWJfdmFjdXVt X3N0YXRpc3RpY3ModGFiX2NvbHVtbiA9PiAndm1fbmV3X2Zyb3plbl9wYWdlcycsIHRhYl92 YWx1ZSA9PiAkdm1fbmV3X2Zyb3plbl9wYWdlcywpOworCiskcmVzID0gICRub2RlLT5zYWZl X3BzcWwoJGRibmFtZSwgcXsKKyAgICBTRUxFQ1Qgdm1fbmV3X3Zpc2libGVfcGFnZXMgPiAw IEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JzsK K30pOworb2soJHJlcyBlcSAndCcsICd2YWN1dW0gbWFya2VkIHBhZ2VzIGFsbC12aXNpYmxl LCBhcyBleHBlY3RlZCcpIG9yCisgIGZldGNoX2Vycm9yX3RhYl92YWN1dW1fc3RhdGlzdGlj cyh0YWJfY29sdW1uID0+ICd2bV9uZXdfdmlzaWJsZV9wYWdlcycsIHRhYl92YWx1ZSA9PiR2 bV9uZXdfdmlzaWJsZV9wYWdlcywpOworCiskcmVzID0gICRub2RlLT5zYWZlX3BzcWwoJGRi bmFtZSwgcXsKKyAgICBTRUxFQ1QgcGdfc3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMo Yy5vaWQpID0gMAorICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0CisgICAgSk9J TiBwZ19jbGFzcyBjIE9OIGMucmVsbmFtZSA9IHZ0LnJlbG5hbWUKKyAgICBXSEVSRSB2dC5y ZWxuYW1lID0gJ3Zlc3RhdCc7Cit9KTsKK29rKCRyZXMgZXEgJ3QnLCAndmFjdXVtIGRpZCBu b3QgaW5jcmVhc2UgZnJvemVuLXBhZ2UgcmV2aXNpb24gY291bnQsIGFzIGV4cGVjdGVkJykg b3IKKyAgZmV0Y2hfZXJyb3JfdGFiX3ZhY3V1bV9zdGF0aXN0aWNzKHRhYl9jb2x1bW4gPT4g J3Jldl9hbGxfZnJvemVuX3BhZ2VzJywgdGFiX3ZhbHVlID0+IDAsKTsKKworJHJlcyA9ICAk bm9kZS0+c2FmZV9wc3FsKCRkYm5hbWUsIHF7CisgICAgU0VMRUNUIHBnX3N0YXRfZ2V0X3Jl dl9hbGxfdmlzaWJsZV9wYWdlcyhjLm9pZCkgPSAwCisgICAgRlJPTSBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMgdnQKKyAgICBKT0lOIHBnX2NsYXNzIGMgT04gYy5yZWxuYW1lID0gdnQucmVs bmFtZQorICAgIFdIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JzsKK30pOworb2soJHJlcyBl cSAndCcsICd2YWN1dW0gZGlkIG5vdCBpbmNyZWFzZSB2aXNpYmxlLXBhZ2UgcmV2aXNpb24g Y291bnQsIGFzIGV4cGVjdGVkJykgb3IKKyAgZmV0Y2hfZXJyb3JfdGFiX3ZhY3V1bV9zdGF0 aXN0aWNzKHRhYl9jb2x1bW4gPT4gJ3Jldl9hbGxfdmlzaWJsZV9wYWdlcycsIHRhYl92YWx1 ZSA9PiAwLCk7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCAyOiBUcmln Z2VyIGJhY2tlbmQgdXBkYXRlcworIyBCYWNrZW5kIGFjdGl2aXR5IHNob3VsZCByZXNldCBw ZXItcGFnZSB2aXNpYmlsaXR5L2ZyZWV6ZSBtYXJrcyBhbmQgaW5jcmVtZW50IHJldmlzaW9u IGNvdW50ZXJzCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiskbm9kZS0+c2FmZV9wc3Fs KCRkYm5hbWUsIHF7CisgICAgVVBEQVRFIHZlc3RhdCBTRVQgeCA9IHggKyAxMDAxOworfSk7 CisKKyMgUG9sbCB1bnRpbCBzdGF0cyB1cGRhdGUgb3IgdGltZW91dC4KKyMgV2UgZG8gbm90 IGV4cGVjdCB2bV9uZXdfZnJvemVuX3BhZ2VzIG9yIHZtX25ld192aXNpYmxlX3BhZ2VzIHRv IGNoYW5nZSBoZXJlLAorIyBzbyB3ZSBwYXNzIC0xIGZvciB0aG9zZSBjb3VudGVycy4KKyR1 cGRhdGVkID0gd2FpdF9mb3JfdmFjdXVtX3N0YXRzKAorCQkJdGFiX2Zyb3plbl9jb2x1bW4g PT4gJ3Jldl9hbGxfZnJvemVuX3BhZ2VzJywKKwkJCXRhYl92aXNpYmxlX2NvbHVtbiA9PiAn cmV2X2FsbF92aXNpYmxlX3BhZ2VzJywKKwkJCXRhYl9hbGxfZnJvemVuX3BhZ2VzX2NvdW50 ID0+IDAsCisJCQl0YWJfYWxsX3Zpc2libGVfcGFnZXNfY291bnQgPT4gMCwKKyAgICAgIHJ1 bl92YWN1dW0gPT4gMCwKKyk7CitvaygkdXBkYXRlZCwKKyAgICd2YWN1dW0gc3RhdHMgdXBk YXRlZCBhZnRlciBiYWNrZW5kIHR1cGxlIHVwZGF0ZXMgKHJldl9hbGxfZnJvemVuX3BhZ2Vz IGFuZCByZXZfYWxsX3Zpc2libGVfcGFnZXMgYWR2YW5jZWQpJykKKyAgb3IgZGlhZyAiVGlt ZW91dCB3YWl0aW5nIGZvciBwZ19zdGF0c192YWN1dW1fKiB1cGRhdGUgYWZ0ZXIgJHRpbWVv dXQgc2Vjb25kcyI7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2hlY2sgdXBk YXRlZCBzdGF0aXN0aWNzIGFmdGVyIGJhY2tlbmQgYWN0aXZpdHkKKyMtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKworJHJlcyA9ICRub2RlLT5zYWZlX3BzcWwoJGRibmFtZSwKKwkiU0VM RUNUIHZtX25ld19mcm96ZW5fcGFnZXMgPSAkdm1fbmV3X2Zyb3plbl9wYWdlcyBGUk9NIHBn X3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7IgorKTsKK29r KCRyZXMgZXEgJ3QnLCAnYmFja2VuZCBhY3Rpdml0eSBkaWQgbm90IGluY3JlYXNlIHRoZSBm cm96ZW4tcGFnZSBjb3VudCcpIG9yCisgIGZldGNoX2Vycm9yX3RhYl92YWN1dW1fc3RhdGlz dGljcyh0YWJfY29sdW1uID0+ICd2bV9uZXdfZnJvemVuX3BhZ2VzJywgdGFiX3ZhbHVlID0+ ICR2bV9uZXdfZnJvemVuX3BhZ2VzLCk7CisKKyRyZXMgPSAkbm9kZS0+c2FmZV9wc3FsKCRk Ym5hbWUsCisJIlNFTEVDVCB2bV9uZXdfdmlzaWJsZV9wYWdlcyA9ICR2bV9uZXdfdmlzaWJs ZV9wYWdlcyBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zl c3RhdCc7IgorKTsKK29rKCRyZXMgZXEgJ3QnLCAnYmFja2VuZCBhY3Rpdml0eSBkaWQgbm90 IGluY3JlYXNlIHRoZSBhbGwtdmlzaWJsZSBwYWdlIGNvdW50Jykgb3IKKyAgZmV0Y2hfZXJy b3JfdGFiX3ZhY3V1bV9zdGF0aXN0aWNzKHRhYl9jb2x1bW4gPT4gJ3ZtX25ld192aXNpYmxl X3BhZ2VzJywgdGFiX3ZhbHVlID0+ICR2bV9uZXdfdmlzaWJsZV9wYWdlcywpOworCiskcmVz ID0gJG5vZGUtPnNhZmVfcHNxbCgkZGJuYW1lLAorCSJTRUxFQ1QgcGdfc3RhdF9nZXRfcmV2 X2FsbF9mcm96ZW5fcGFnZXMoYy5vaWQpID4gJHJldl9hbGxfZnJvemVuX3BhZ2VzCisJIEZS T00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0CisJIEpPSU4gcGdfY2xhc3MgYyBPTiBjLnJl bG5hbWUgPSB2dC5yZWxuYW1lCisJIFdIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JzsiCisp Oworb2soJHJlcyBlcSAndCcsICdiYWNrZW5kIGFjdGl2aXR5IGluY3JlYXNlZCBmcm96ZW4t cGFnZSByZXZpc2lvbiBjb3VudCcpIG9yCisgIGZldGNoX2Vycm9yX3RhYl92YWN1dW1fc3Rh dGlzdGljcyh0YWJfY29sdW1uID0+ICdyZXZfYWxsX2Zyb3plbl9wYWdlcycsIHRhYl92YWx1 ZSA9PiAkcmV2X2FsbF9mcm96ZW5fcGFnZXMsKTsKKworJHJlcyA9ICRub2RlLT5zYWZlX3Bz cWwoJGRibmFtZSwKKwkiU0VMRUNUIHBnX3N0YXRfZ2V0X3Jldl9hbGxfdmlzaWJsZV9wYWdl cyhjLm9pZCkgPiAkcmV2X2FsbF92aXNpYmxlX3BhZ2VzCisJIEZST00gcGdfc3RhdF92YWN1 dW1fdGFibGVzIHZ0CisJIEpPSU4gcGdfY2xhc3MgYyBPTiBjLnJlbG5hbWUgPSB2dC5yZWxu YW1lCisJIFdIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JzsiCispOworb2soJHJlcyBlcSAn dCcsICdiYWNrZW5kIGFjdGl2aXR5IGluY3JlYXNlZCB2aXNpYmxlLXBhZ2UgcmV2aXNpb24g Y291bnQnKSBvcgorICBmZXRjaF9lcnJvcl90YWJfdmFjdXVtX3N0YXRpc3RpY3ModGFiX2Nv bHVtbiA9PiAncmV2X2FsbF92aXNpYmxlX3BhZ2VzJywgdGFiX3ZhbHVlID0+ICRyZXZfYWxs X3Zpc2libGVfcGFnZXMsKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBVcGRh dGUgc2F2ZWQgc25hcHNob3RzCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2ZldGNo X3ZhY3V1bV9zdGF0cygpOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3Qg MzogRm9yY2UgYW5vdGhlciB2YWN1dW0gYWZ0ZXIgYmFja2VuZCBtb2RpZmljYXRpb25zIC0g dmFjdXVtIHNob3VsZCByZXN0b3JlIGZyZWV6ZS92aXNpYmlsaXR5CisjLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisKKyRub2RlLT5zYWZlX3BzcWwoJGRibmFtZSwgcXsgVkFDVVVNIChG UkVFWkUsIFZFUkJPU0UpIHZlc3RhdDsgfSk7CisKKyMgUG9sbCB1bnRpbCBzdGF0cyB1cGRh dGUgb3IgdGltZW91dC4KKyMgV2UgcGFzcyBjdXJyZW50IHNuYXBzaG90IHZhbHVlcyBmb3Ig dm1fbmV3X2Zyb3plbl9wYWdlcy92bV9uZXdfdmlzaWJsZV9wYWdlcyBhbmQgZXhwZWN0IHJl diBjb3VudGVycyB1bmNoYW5nZWQuCiskdXBkYXRlZCA9IHdhaXRfZm9yX3ZhY3V1bV9zdGF0 cygKKwkJCXRhYl9mcm96ZW5fY29sdW1uID0+ICd2bV9uZXdfZnJvemVuX3BhZ2VzJywKKwkJ CXRhYl92aXNpYmxlX2NvbHVtbiA9PiAndm1fbmV3X3Zpc2libGVfcGFnZXMnLAorCQkJdGFi X2FsbF9mcm96ZW5fcGFnZXNfY291bnQgPT4gJHZtX25ld19mcm96ZW5fcGFnZXMsCisJCQl0 YWJfYWxsX3Zpc2libGVfcGFnZXNfY291bnQgPT4gJHZtX25ld192aXNpYmxlX3BhZ2VzLAor ICAgICAgcnVuX3ZhY3V1bSA9PiAxLAorKTsKKworb2soJHVwZGF0ZWQsCisgICAndmFjdXVt IHN0YXRzIHVwZGF0ZWQgYWZ0ZXIgdmFjdXVtaW5nIHRoZSBhbGwtdXBkYXRlZCB0YWJsZSAo dm1fbmV3X2Zyb3plbl9wYWdlcyBhbmQgdm1fbmV3X3Zpc2libGVfcGFnZXMgYWR2YW5jZWQp JykKKyAgb3IgZGlhZyAiVGltZW91dCB3YWl0aW5nIGZvciBwZ19zdGF0X3ZhY3V1bV90YWJs ZXMgdG8gdXBkYXRlIGFmdGVyICR0aW1lb3V0IHNlY29uZHMgZHVyaW5nIHZhY3V1bSI7CisK KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVmVyaWZ5IHN0YXRpc3RpY3MgYWZ0ZXIg ZmluYWwgdmFjdXVtCisjIENoZWNrIHVwZGF0ZWQgc3RhdHMgYWZ0ZXIgYmFja2VuZCB3b3Jr CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiskcmVzID0gJG5vZGUtPnNhZmVfcHNxbCgk ZGJuYW1lLAorCSJTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyA+ICR2bV9uZXdfZnJvemVu X3BhZ2VzIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVz dGF0JzsiCispOworb2soJHJlcyBlcSAndCcsICd2YWN1dW0gZnJvemUgc29tZSBwYWdlcyBh ZnRlciBiYWNrZW5kIGFjdGl2aXR5LCBhcyBleHBlY3RlZCcpIG9yCisgIGZldGNoX2Vycm9y X3RhYl92YWN1dW1fc3RhdGlzdGljcyh0YWJfY29sdW1uID0+ICd2bV9uZXdfZnJvemVuX3Bh Z2VzJywgdGFiX3ZhbHVlID0+ICR2bV9uZXdfZnJvemVuX3BhZ2VzLCk7CisKKyRyZXMgPSAk bm9kZS0+c2FmZV9wc3FsKCRkYm5hbWUsCisJIlNFTEVDVCB2bV9uZXdfdmlzaWJsZV9wYWdl cyA+ICR2bV9uZXdfdmlzaWJsZV9wYWdlcyBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBX SEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7IgorKTsKK29rKCRyZXMgZXEgJ3QnLCAndmFjdXVt IG1hcmtlZCBwYWdlcyBhbGwtdmlzaWJsZSBhZnRlciBiYWNrZW5kIGFjdGl2aXR5LCBhcyBl eHBlY3RlZCcpIG9yCisgIGZldGNoX2Vycm9yX3RhYl92YWN1dW1fc3RhdGlzdGljcyh0YWJf Y29sdW1uID0+ICd2bV9uZXdfdmlzaWJsZV9wYWdlcycsIHRhYl92YWx1ZSA9PiAkdm1fbmV3 X3Zpc2libGVfcGFnZXMsKTsKKworJHJlcyA9ICRub2RlLT5zYWZlX3BzcWwoJGRibmFtZSwK KwkiU0VMRUNUIHBnX3N0YXRfZ2V0X3Jldl9hbGxfZnJvemVuX3BhZ2VzKGMub2lkKSA9ICRy ZXZfYWxsX2Zyb3plbl9wYWdlcworCSBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dAor CSBKT0lOIHBnX2NsYXNzIGMgT04gYy5yZWxuYW1lID0gdnQucmVsbmFtZQorCSBXSEVSRSB2 dC5yZWxuYW1lID0gJ3Zlc3RhdCc7IgorKTsKK29rKCRyZXMgZXEgJ3QnLCAndmFjdXVtIGRp ZCBub3QgaW5jcmVhc2UgZnJvemVuLXBhZ2UgcmV2aXNpb24gY291bnQgYWZ0ZXIgYmFja2Vu ZCBhY3Rpdml0eSwgYXMgZXhwZWN0ZWQnKSBvcgorICBmZXRjaF9lcnJvcl90YWJfdmFjdXVt X3N0YXRpc3RpY3ModGFiX2NvbHVtbiA9PiAncmV2X2FsbF9mcm96ZW5fcGFnZXMnLCB0YWJf dmFsdWUgPT4gJHJldl9hbGxfZnJvemVuX3BhZ2VzLCk7CisKKyRyZXMgPSAkbm9kZS0+c2Fm ZV9wc3FsKCRkYm5hbWUsCisJIlNFTEVDVCBwZ19zdGF0X2dldF9yZXZfYWxsX3Zpc2libGVf cGFnZXMoYy5vaWQpID0gJHJldl9hbGxfdmlzaWJsZV9wYWdlcworCSBGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcyB2dAorCSBKT0lOIHBnX2NsYXNzIGMgT04gYy5yZWxuYW1lID0gdnQu cmVsbmFtZQorCSBXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCc7IgorKTsKK29rKCRyZXMg ZXEgJ3QnLCAndmFjdXVtIGRpZCBub3QgaW5jcmVhc2UgdmlzaWJsZS1wYWdlIHJldmlzaW9u IGNvdW50IGFmdGVyIGJhY2tlbmQgYWN0aXZpdHksIGFzIGV4cGVjdGVkJykgb3IKKyAgZmV0 Y2hfZXJyb3JfdGFiX3ZhY3V1bV9zdGF0aXN0aWNzKHRhYl9jb2x1bW4gPT4gJ3Jldl9hbGxf dmlzaWJsZV9wYWdlcycsIHRhYl92YWx1ZSA9PiAkcmV2X2FsbF92aXNpYmxlX3BhZ2VzLCk7 CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2xlYW51cAorIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CisJRFJP UCBEQVRBQkFTRSBzdGF0aXN0aWNfdmFjdXVtX2RhdGFiYXNlX3JlZ3Jlc3Npb247Cit9KTsK KworJG5vZGUtPnN0b3A7Citkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ydWxlcy5vdXQKaW5kZXggNDI4NmMyNjZlMTcuLmU0YTc3ODc4YmViIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTg0NCw3ICsxODQ0LDkgQEAgcGdfc3Rh dF9hbGxfdGFibGVzfCBTRUxFQ1QgYy5vaWQgQVMgcmVsaWQsCiAgICAgcGdfc3RhdF9nZXRf dG90YWxfYXV0b3ZhY3V1bV90aW1lKGMub2lkKSBBUyB0b3RhbF9hdXRvdmFjdXVtX3RpbWUs CiAgICAgcGdfc3RhdF9nZXRfdG90YWxfYW5hbHl6ZV90aW1lKGMub2lkKSBBUyB0b3RhbF9h bmFseXplX3RpbWUsCiAgICAgcGdfc3RhdF9nZXRfdG90YWxfYXV0b2FuYWx5emVfdGltZShj Lm9pZCkgQVMgdG90YWxfYXV0b2FuYWx5emVfdGltZSwKLSAgICBwZ19zdGF0X2dldF9zdGF0 X3Jlc2V0X3RpbWUoYy5vaWQpIEFTIHN0YXRzX3Jlc2V0CisgICAgcGdfc3RhdF9nZXRfc3Rh dF9yZXNldF90aW1lKGMub2lkKSBBUyBzdGF0c19yZXNldCwKKyAgICBwZ19zdGF0X2dldF9y ZXZfYWxsX2Zyb3plbl9wYWdlcyhjLm9pZCkgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMsCisg ICAgcGdfc3RhdF9nZXRfcmV2X2FsbF92aXNpYmxlX3BhZ2VzKGMub2lkKSBBUyByZXZfYWxs X3Zpc2libGVfcGFnZXMKICAgIEZST00gKChwZ19jbGFzcyBjCiAgICAgIExFRlQgSk9JTiBw Z19pbmRleCBpIE9OICgoYy5vaWQgPSBpLmluZHJlbGlkKSkpCiAgICAgIExFRlQgSk9JTiBw Z19uYW1lc3BhY2UgbiBPTiAoKG4ub2lkID0gYy5yZWxuYW1lc3BhY2UpKSkKQEAgLTIyNjYs NyArMjI2OCw5IEBAIHBnX3N0YXRfc3lzX3RhYmxlc3wgU0VMRUNUIHJlbGlkLAogICAgIHRv dGFsX2F1dG92YWN1dW1fdGltZSwKICAgICB0b3RhbF9hbmFseXplX3RpbWUsCiAgICAgdG90 YWxfYXV0b2FuYWx5emVfdGltZSwKLSAgICBzdGF0c19yZXNldAorICAgIHN0YXRzX3Jlc2V0 LAorICAgIHJldl9hbGxfZnJvemVuX3BhZ2VzLAorICAgIHJldl9hbGxfdmlzaWJsZV9wYWdl cwogICAgRlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAgV0hFUkUgKChzY2hlbWFuYW1lID0g QU5ZIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hlbWEnOjpu YW1lXSkpIE9SIChzY2hlbWFuYW1lIH4gJ15wZ190b2FzdCc6OnRleHQpKTsKIHBnX3N0YXRf dXNlcl9mdW5jdGlvbnN8IFNFTEVDVCBwLm9pZCBBUyBmdW5jaWQsCkBAIC0yMzIxLDkgKzIz MjUsNDMgQEAgcGdfc3RhdF91c2VyX3RhYmxlc3wgU0VMRUNUIHJlbGlkLAogICAgIHRvdGFs X2F1dG92YWN1dW1fdGltZSwKICAgICB0b3RhbF9hbmFseXplX3RpbWUsCiAgICAgdG90YWxf YXV0b2FuYWx5emVfdGltZSwKLSAgICBzdGF0c19yZXNldAorICAgIHN0YXRzX3Jlc2V0LAor ICAgIHJldl9hbGxfZnJvemVuX3BhZ2VzLAorICAgIHJldl9hbGxfdmlzaWJsZV9wYWdlcwog ICAgRlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAgV0hFUkUgKChzY2hlbWFuYW1lIDw+IEFM TCAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5mb3JtYXRpb25fc2NoZW1hJzo6bmFt ZV0pKSBBTkQgKHNjaGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6OnRleHQpKTsKK3BnX3N0YXRf dmFjdXVtX3RhYmxlc3wgU0VMRUNUIG5zLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKKyAgICBy ZWwucmVsbmFtZSwKKyAgICBzdGF0cy5yZWxpZCwKKyAgICBzdGF0cy50b3RhbF9ibGtzX3Jl YWQsCisgICAgc3RhdHMudG90YWxfYmxrc19oaXQsCisgICAgc3RhdHMudG90YWxfYmxrc19k aXJ0aWVkLAorICAgIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICBzdGF0cy5yZWxf Ymxrc19yZWFkLAorICAgIHN0YXRzLnJlbF9ibGtzX2hpdCwKKyAgICBzdGF0cy5wYWdlc19z Y2FubmVkLAorICAgIHN0YXRzLnBhZ2VzX3JlbW92ZWQsCisgICAgc3RhdHMudm1fbmV3X2Zy b3plbl9wYWdlcywKKyAgICBzdGF0cy52bV9uZXdfdmlzaWJsZV9wYWdlcywKKyAgICBzdGF0 cy52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsCisgICAgc3RhdHMubWlzc2VkX2RlYWRf cGFnZXMsCisgICAgc3RhdHMudHVwbGVzX2RlbGV0ZWQsCisgICAgc3RhdHMudHVwbGVzX2Zy b3plbiwKKyAgICBzdGF0cy5yZWNlbnRseV9kZWFkX3R1cGxlcywKKyAgICBzdGF0cy5taXNz ZWRfZGVhZF90dXBsZXMsCisgICAgc3RhdHMud3JhcGFyb3VuZF9mYWlsc2FmZSwKKyAgICBz dGF0cy5pbmRleF92YWN1dW1fY291bnQsCisgICAgc3RhdHMud2FsX3JlY29yZHMsCisgICAg c3RhdHMud2FsX2ZwaSwKKyAgICBzdGF0cy53YWxfYnl0ZXMsCisgICAgc3RhdHMuYmxrX3Jl YWRfdGltZSwKKyAgICBzdGF0cy5ibGtfd3JpdGVfdGltZSwKKyAgICBzdGF0cy5kZWxheV90 aW1lLAorICAgIHN0YXRzLnRvdGFsX3RpbWUKKyAgIEZST00gKHBnX2NsYXNzIHJlbAorICAg ICBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiAoKG5zLm9pZCA9IHJlbC5yZWxuYW1lc3BhY2Up KSksCisgICAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKHJlbC5vaWQpIHN0 YXRzKHJlbGlkLCB0b3RhbF9ibGtzX3JlYWQsIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtz X2RpcnRpZWQsIHRvdGFsX2Jsa3Nfd3JpdHRlbiwgcmVsX2Jsa3NfcmVhZCwgcmVsX2Jsa3Nf aGl0LCBwYWdlc19zY2FubmVkLCBwYWdlc19yZW1vdmVkLCB2bV9uZXdfZnJvemVuX3BhZ2Vz LCB2bV9uZXdfdmlzaWJsZV9wYWdlcywgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLCBt aXNzZWRfZGVhZF9wYWdlcywgdHVwbGVzX2RlbGV0ZWQsIHR1cGxlc19mcm96ZW4sIHJlY2Vu dGx5X2RlYWRfdHVwbGVzLCBtaXNzZWRfZGVhZF90dXBsZXMsIHdyYXBhcm91bmRfZmFpbHNh ZmUsIGluZGV4X3ZhY3V1bV9jb3VudCwgd2FsX3JlY29yZHMsIHdhbF9mcGksIHdhbF9ieXRl cywgYmxrX3JlYWRfdGltZSwgYmxrX3dyaXRlX3RpbWUsIGRlbGF5X3RpbWUsIHRvdGFsX3Rp bWUpCisgIFdIRVJFIChyZWwucmVsa2luZCA9ICdyJzo6ImNoYXIiKTsKIHBnX3N0YXRfd2Fs fCBTRUxFQ1Qgd2FsX3JlY29yZHMsCiAgICAgd2FsX2ZwaSwKICAgICB3YWxfYnl0ZXMsCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCA5MDVmOWJjYTk1OS4uNjJmMmFj MTE2NTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTM5LDQgKzEz OSw0IEBAIHRlc3Q6IGZhc3RfZGVmYXVsdAogCiAjIHJ1biB0YWJsZXNwYWNlIHRlc3QgYXQg dGhlIGVuZCBiZWNhdXNlIGl0IGRyb3BzIHRoZSB0YWJsZXNwYWNlIGNyZWF0ZWQgZHVyaW5n CiAjIHNldHVwIHRoYXQgb3RoZXIgdGVzdHMgbWF5IHVzZS4KLXRlc3Q6IHRhYmxlc3BhY2UK K3Rlc3Q6IHRhYmxlc3BhY2UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjM5 LjUgKEFwcGxlIEdpdC0xNTQpCgo= --------------LO5tty50ZJRZk32bRvqIZqab Content-Type: text/plain; charset=UTF-8; name="v26-0002-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v26-0002-Machinery-for-grabbing-an-extended-vacuum-statistic"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSBkMDljMmY2ODhmYzg3NzZiMjM5YTM5ZjBjZDljZGE1NDg4ZGJhODEyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVHVlLCA5IERlYyAyMDI1IDEwOjU2OjU0ICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAyLzVdIE1hY2hpbmVyeSBmb3IgZ3JhYmJpbmcgYW4gZXh0ZW5kZWQgdmFj dXVtIHN0YXRpc3RpY3Mgb24gCiBpbmRleCByZWxhdGlvbnMuCgpUaGV5IGFyZSBnYXRoZXJl ZCBzZXBhcmF0ZWxseSBmcm9tIHRhYmxlIHN0YXRpc3RpY3MuCgpBcyBmb3IgdGFibGVzLCB3 ZSBnYXRoZXIgdmFjdXVtIHNoYXJlZCBidWZmZXJzIHN0YXRpc3RpY3MgZm9yIGluZGV4IHJl bGF0aW9ucyBsaWtlCnZhbHVlIG9mIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX3JlYWQs IHRvdGFsX2Jsa3NfZGlydGllZCwgd2FsIHN0YXRpc3RpY3MsIGlvIHRpbWUKZHVyaW5nIGZs dXNoaW5nIGJ1ZmZlciBwYWdlcyB0byBkaXNrLCBkZWxheSBhbmQgdG90YWwgdGltZS4KCkR1 ZSB0byB0aGUgZmFjdCB0aGF0IHN1Y2ggc3RhdGlzdGljcyBhcmUgY29tbW9uIGFzIGZvciB0 YWJsZXMsIGFzIGZvciBpbmRleGVzIHdlCnNldCB0aGVtIGluIHRoZSB1bmlvbiBFeHRWYWNS ZXBvcnQgc3RydWN0dXJlLiBXZSBvbmx5IGFkZGVkIHNvbWUgZGV0ZXJtaW5hdGlvbiAndHlw ZScKZmllbGQgdG8gaGlnaGxpZ2h0IHdoYXQga2luZCBiZWxvbmcgdG8gdGhlc2Ugc3RhdGlz dGljczogUEdTVEFUX0VYVFZBQ19UQUJMRSBvcgpQR1NUQVRfRVhUVkFDX0lOREVYLiBHZW5l cmFsbHksIFBHU1RBVF9FWFRWQUNfSU5WQUxJRCB0eXBlIGxlYWRzIHRvIHdyb25nIGNvZGUg cHJvY2Vzcy4KClNvbWUgc3RhdGlzdGljcyBiZWxvbmcgb25seSBvbmUgdHlwZSBvZiBib3Ro IHRhYmxlcyBvciBpbmRleGVzLiBTbywgd2UgYWRkZWQgc3Vic3RydWN0dXJlcwpzeWNoIHRh YmxlIGFuZCBpbmRleCBpbnNpZGUgRXh0VmFjUmVwb3J0IHN0cnVjdHVyZS4KClRoZXJlZm9y ZSwgd2UgZ2F0aGVyIG9ubHkgZm9yIHRhYmxlcyBzdWNoIHN0YXRpc3RpY3MgbGlrZSBudW1i ZXIgb2Ygc2Nhbm5lZCwgcmVtb3ZlZCBwYWdlcywKdGhlaXIgY2hhcmVjdGVyaXN0aWNzIGFj Y29yZGluZyBWTSAoYWxsLXZpc2libGUgYW5kIGZyb3plbikuIEluIGFkZGl0aW9uLCBmb3Ig dGFibGVzIHdlCmdhdGhlciBudW1iZXIgZnJvemVuLCBkZWxldGVkIGFuZCByZWNlbnRseSBk ZWFkIHR1cGxlcyBhbmQgaG93IG1hbnkgdGltZXMgdmFjdXVtIHByb2Nlc3NlZAppbmRleGVz IGZvciB0YWJsZXMuCgpDb250cm92ZXJzYWxseSBmb3IgaW5kZXhlcyB3ZSBnYXRoZXIgbnVt YmVyIG9mIGRlbGV0ZWQgcGFnZXMgYW5kIGRlbGV0ZWQgdHVwbGVzIG9ubHkuCgpBcyBmb3Ig dGFibGVzLCBkZWxldGVkIHBhZ2VzIGFuZCBkZWxldGVkIHR1cGxlcyByZWZsZWN0IHRoZSBv dmVyYWxsIHBlcmZvcm1hbmNlIG9mIHRoZSB2YWN1dW0KZm9yIHRoZSBpbmRleCByZWxhdGlv bnNoaXAuCgpTaW5jZSB0aGUgdmFjdXVtIGNsZWFucyB1cCByZWZlcmVuY2VzIHRvIHR1cGxl IGluZGV4ZXMgYmVmb3JlIGNsZWFuaW5nIHVwIHRhYmxlIHR1cGxlcywKd2hpY2ggYWRkcyBz b21lIGNvbXBsZXhpdHkgdG8gdGhlIHZhY3V1bSBwcm9jZXNzLCBuYW1lbHkgdGhlIHZhY3V1 bSBzd2l0Y2hlcyBmcm9tIGNsZWFuaW5nIHVwCmEgdGFibGUgdG8gaXRzIGluZGV4ZXMgYW5k IGJhY2sgZHVyaW5nIGl0cyBvcGVyYXRpb24sIHdlIG5lZWQgdG8gc2F2ZSB0aGUgdmFjdXVt IHN0YXRpc3RpY3MKY29sbGVjdGVkIGZvciB0aGUgaGVhcCBiZWZvcmUgaXQgc3RhcnRzIGNs ZWFuaW5nIHVwIHRoZSBpbmRleGVzLgpUaGF0J3Mgd2h5IGl0J3MgbmVjZXNzYXJ5IHRvIHRy YWNrIHRoZSB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdGhlIGhlYXAgc2V2ZXJhbCB0aW1lcyBk dXJpbmcKdGhlIHZhY3V1bSBwcm9jZWR1cmUuIFRvIGF2b2lkIHNlbmRpbmcgdGhlIHN0YXRp c3RpY3MgdG8gdGhlIEN1bXVsYXRpdmUgU3RhdGlzdGljcyBTeXN0ZW0Kc2V2ZXJhbCB0aW1l cywgd2Ugc2F2ZSB0aGVzZSBzdGF0aXN0aWNzIGluIHRoZSBMVlJlbFN0YXRlIHN0cnVjdHVy ZSBhbmQgb25seSBhZnRlciB2YWN1dW0KZmluaXNoZXMgY2xlYW5pbmcgdXAgdGhlIGhlYXAs IGl0IHNlbmRzIHRoZW0gdG8gdGhlIEN1bXVsYXRpdmUgU3RhdGlzdGljcyBTeXN0ZW0uCgpB dXRob3JzOiBBbGVuYSBSeWJha2luYSA8bGVuYS5yaWJhY2tpbmFAeWFuZGV4LnJ1PiwKICAg QW5kcmVpIExlcGlraG92IDxhLmxlcGlraG92QHBvc3RncmVzcHJvLnJ1PiwKICAgQW5kcmVp IFp1YmtvdiA8YS56dWJrb3ZAcG9zdGdyZXNwcm8ucnU+ClJldmlld2VkLWJ5OiBEaWxpcCBL dW1hciA8ZGlsaXBiYWxhdXRAZ21haWwuY29tPiwgTWFzYWhpa28gU2F3YWRhIDxzYXdhZGEu bXNoa0BnbWFpbC5jb20+LAogICAgICAgSWxpYSBFdmRva2ltb3YgPGlseWEuZXZkb2tpbW92 QHRhbnRvcmxhYnMuY29tPiwgamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29t PiwKICAgICAgIEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+LCBBbGV4 YW5kZXIgS29yb3Rrb3YgPGFla29yb3Rrb3ZAZ21haWwuY29tPiwKICAgICAgIEppbSBOYXNi eSA8am5hc2J5QHVwZ3JhZGUuY29tPiwgU2FtaSBJbXNlaWggPHNhbWltc2VpaEBnbWFpbC5j b20+LAogICAgICAgS2FyaW5hIExpdHNrZXZpY2ggPGxpdHNrZXZpY2hrYXJpbmFAZ21haWwu Y29tPgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgICAgICAg ICB8IDIzMiArKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsICAgICAgICAgIHwgIDMyICsrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFj dXVtcGFyYWxsZWwuYyAgICAgICAgIHwgIDEwICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF9yZWxhdGlvbi5jICB8ICA0NSArKy0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICAgfCAgOTIgKysrKysrLQogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9pbmNsdWRl L2NvbW1hbmRzL3ZhY3V1bS5oICAgICAgICAgICAgICAgICB8ICAyNSArKwogc3JjL2luY2x1 ZGUvcGdzdGF0LmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDc3ICsrKystLQogLi4u L3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQub3V0ICAgIHwgICA0ICstCiAu Li4vdC8wNTBfdmFjdXVtX2V4dGVuZGluZ19iYXNpY190ZXN0LnBsICAgICAgfCAyMzcgKysr KysrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAg ICAgICAgICAgfCAgMjIgKysKIDExIGZpbGVzIGNoYW5nZWQsIDY4MSBpbnNlcnRpb25zKCsp LCAxMDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j CmluZGV4IDY2ZTA5ZDBhMGNmLi43MTljZTkwZDk2ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYwpAQCAtMjkwLDYgKzI5MCw3IEBAIHR5cGVkZWYgc3RydWN0IExW UmVsU3RhdGUKIAljaGFyCSAgICpkYm5hbWU7CiAJY2hhcgkgICAqcmVsbmFtZXNwYWNlOwog CU9pZAkJCXJlbG9pZDsKKwlPaWQJCQlpbmRvaWQ7CiAJY2hhcgkgICAqcmVsbmFtZTsKIAlj aGFyCSAgICppbmRuYW1lOwkJLyogQ3VycmVudCBpbmRleCBuYW1lICovCiAJQmxvY2tOdW1i ZXIgYmxrbm87CQkJLyogdXNlZCBvbmx5IGZvciBoZWFwIG9wZXJhdGlvbnMgKi8KQEAgLTQx Miw2ICs0MTMsNyBAQCB0eXBlZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAJaW50MzIJCXdyYXBh cm91bmRfZmFpbHNhZmVfY291bnQ7CS8qIG51bWJlciBvZiBlbWVyZ2VuY3kgdmFjdXVtcyB0 bwogCQkJCQkJCQkJCQkgKiBwcmV2ZW50IGFudGktd3JhcGFyb3VuZAogCQkJCQkJCQkJCQkg KiBzaHV0ZG93biAqLworCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnRJZHg7CiB9IExWUmVs U3RhdGU7CiAKIApAQCAtNDIzLDE5ICs0MjUsNiBAQCB0eXBlZGVmIHN0cnVjdCBMVlNhdmVk RXJySW5mbwogCVZhY0VyclBoYXNlIHBoYXNlOwogfSBMVlNhdmVkRXJySW5mbzsKIAotLyoK LSAqIENvdW50ZXJzIGFuZCB1c2FnZSBkYXRhIGZvciBleHRlbmRlZCBzdGF0cyB0cmFja2lu Zy4KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgTFZFeHRTdGF0Q291bnRlcnMKLXsKLQlUaW1lc3Rh bXBUeiBzdGFydHRpbWU7Ci0JV2FsVXNhZ2UJd2FsdXNhZ2U7Ci0JQnVmZmVyVXNhZ2UgYnVm dXNhZ2U7Ci0JZG91YmxlCQlWYWN1dW1EZWxheVRpbWU7Ci0JUGdTdGF0X0NvdW50ZXIgYmxv Y2tzX2ZldGNoZWQ7Ci0JUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2hpdDsKLX0JCQlMVkV4dFN0 YXRDb3VudGVyczsKLQogLyogbm9uLWV4cG9ydCBmdW5jdGlvbiBwcm90b3R5cGVzICovCiBz dGF0aWMgdm9pZCBsYXp5X3NjYW5faGVhcChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGlj IHZvaWQgaGVhcF92YWN1dW1fZWFnZXJfc2Nhbl9zZXR1cChMVlJlbFN0YXRlICp2YWNyZWws CkBAIC01NjUsMjcgKzU1NCwyNSBAQCBleHR2YWNfc3RhdHNfZW5kKFJlbGF0aW9uIHJlbCwg TFZFeHRTdGF0Q291bnRlcnMgKiBjb3VudGVycywKIAllbmR0aW1lID0gR2V0Q3VycmVudFRp bWVzdGFtcCgpOwogCVRpbWVzdGFtcERpZmZlcmVuY2UoY291bnRlcnMtPnN0YXJ0dGltZSwg ZW5kdGltZSwgJnNlY3MsICZ1c2Vjcyk7CiAKLQltZW1zZXQocmVwb3J0LCAwLCBzaXplb2Yo RXh0VmFjUmVwb3J0KSk7Ci0KIAkvKgogCSAqIEZpbGwgYWRkaXRpb25hbCBzdGF0aXN0aWNz IG9uIGEgdmFjdXVtIHByb2Nlc3Npbmcgb3BlcmF0aW9uLgogCSAqLwotCXJlcG9ydC0+dG90 YWxfYmxrc19yZWFkID0gYnVmdXNhZ2UubG9jYWxfYmxrc19yZWFkICsgYnVmdXNhZ2Uuc2hh cmVkX2Jsa3NfcmVhZDsKLQlyZXBvcnQtPnRvdGFsX2Jsa3NfaGl0ID0gYnVmdXNhZ2UubG9j YWxfYmxrc19oaXQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19oaXQ7Ci0JcmVwb3J0LT50b3Rh bF9ibGtzX2RpcnRpZWQgPSBidWZ1c2FnZS5sb2NhbF9ibGtzX2RpcnRpZWQgKyBidWZ1c2Fn ZS5zaGFyZWRfYmxrc19kaXJ0aWVkOwotCXJlcG9ydC0+dG90YWxfYmxrc193cml0dGVuID0g YnVmdXNhZ2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbjsKKwlyZXBvcnQtPnRvdGFsX2Jsa3NfcmVh ZCArPSBidWZ1c2FnZS5sb2NhbF9ibGtzX3JlYWQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19y ZWFkOworCXJlcG9ydC0+dG90YWxfYmxrc19oaXQgKz0gYnVmdXNhZ2UubG9jYWxfYmxrc19o aXQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19oaXQ7CisJcmVwb3J0LT50b3RhbF9ibGtzX2Rp cnRpZWQgKz0gYnVmdXNhZ2UubG9jYWxfYmxrc19kaXJ0aWVkICsgYnVmdXNhZ2Uuc2hhcmVk X2Jsa3NfZGlydGllZDsKKwlyZXBvcnQtPnRvdGFsX2Jsa3Nfd3JpdHRlbiArPSBidWZ1c2Fn ZS5zaGFyZWRfYmxrc193cml0dGVuOwogCi0JcmVwb3J0LT53YWxfcmVjb3JkcyA9IHdhbHVz YWdlLndhbF9yZWNvcmRzOwotCXJlcG9ydC0+d2FsX2ZwaSA9IHdhbHVzYWdlLndhbF9mcGk7 Ci0JcmVwb3J0LT53YWxfYnl0ZXMgPSB3YWx1c2FnZS53YWxfYnl0ZXM7CisJcmVwb3J0LT53 YWxfcmVjb3JkcyArPSB3YWx1c2FnZS53YWxfcmVjb3JkczsKKwlyZXBvcnQtPndhbF9mcGkg Kz0gd2FsdXNhZ2Uud2FsX2ZwaTsKKwlyZXBvcnQtPndhbF9ieXRlcyArPSB3YWx1c2FnZS53 YWxfYnl0ZXM7CiAKLQlyZXBvcnQtPmJsa19yZWFkX3RpbWUgPSBJTlNUUl9USU1FX0dFVF9N SUxMSVNFQyhidWZ1c2FnZS5sb2NhbF9ibGtfcmVhZF90aW1lKTsKKwlyZXBvcnQtPmJsa19y ZWFkX3RpbWUgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2UubG9jYWxfYmxr X3JlYWRfdGltZSk7CiAJcmVwb3J0LT5ibGtfcmVhZF90aW1lICs9IElOU1RSX1RJTUVfR0VU X01JTExJU0VDKGJ1ZnVzYWdlLnNoYXJlZF9ibGtfcmVhZF90aW1lKTsKLQlyZXBvcnQtPmJs a193cml0ZV90aW1lID0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2UubG9jYWxf YmxrX3dyaXRlX3RpbWUpOwotCXJlcG9ydC0+YmxrX3dyaXRlX3RpbWUgPSBJTlNUUl9USU1F X0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5zaGFyZWRfYmxrX3dyaXRlX3RpbWUpOwotCXJlcG9y dC0+ZGVsYXlfdGltZSA9IFZhY3V1bURlbGF5VGltZSAtIGNvdW50ZXJzLT5WYWN1dW1EZWxh eVRpbWU7CisJcmVwb3J0LT5ibGtfd3JpdGVfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxM SVNFQyhidWZ1c2FnZS5sb2NhbF9ibGtfd3JpdGVfdGltZSk7CisJcmVwb3J0LT5ibGtfd3Jp dGVfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5zaGFyZWRfYmxr X3dyaXRlX3RpbWUpOworCXJlcG9ydC0+ZGVsYXlfdGltZSArPSBWYWN1dW1EZWxheVRpbWUg LSBjb3VudGVycy0+VmFjdXVtRGVsYXlUaW1lOwogCi0JcmVwb3J0LT50b3RhbF90aW1lID0g c2VjcyAqIDEwMDAuICsgdXNlY3MgLyAxMDAwLjsKKwlyZXBvcnQtPnRvdGFsX3RpbWUgKz0g c2VjcyAqIDEwMDAuICsgdXNlY3MgLyAxMDAwLjsKIAogCWlmICghcmVsLT5wZ3N0YXRfaW5m byB8fCAhcGdzdGF0X3RyYWNrX2NvdW50cykKIApAQCAtNTk1LDEyICs1ODIsMTIyIEBAIGV4 dHZhY19zdGF0c19lbmQoUmVsYXRpb24gcmVsLCBMVkV4dFN0YXRDb3VudGVycyAqIGNvdW50 ZXJzLAogCQkgKi8KIAkJcmV0dXJuOwogCi0JcmVwb3J0LT5ibGtzX2ZldGNoZWQgPQorCXJl cG9ydC0+Ymxrc19mZXRjaGVkICs9CiAJCXJlbC0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9j a3NfZmV0Y2hlZCAtIGNvdW50ZXJzLT5ibG9ja3NfZmV0Y2hlZDsKLQlyZXBvcnQtPmJsa3Nf aGl0ID0KKwlyZXBvcnQtPmJsa3NfaGl0ICs9CiAJCXJlbC0+cGdzdGF0X2luZm8tPmNvdW50 cy5ibG9ja3NfaGl0IC0gY291bnRlcnMtPmJsb2Nrc19oaXQ7CiB9CiAKK3ZvaWQKK2V4dHZh Y19zdGF0c19zdGFydF9pZHgoUmVsYXRpb24gcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQg KnN0YXRzLAorCQkJCQkgICBMVkV4dFN0YXRDb3VudGVyc0lkeCAqIGNvdW50ZXJzKQorewor CS8qIFNldCBpbml0aWFsIHZhbHVlcyBmb3IgY29tbW9uIGhlYXAgYW5kIGluZGV4IHN0YXRp c3RpY3MgKi8KKwlleHR2YWNfc3RhdHNfc3RhcnQocmVsLCAmY291bnRlcnMtPmNvbW1vbik7 CisJY291bnRlcnMtPnBhZ2VzX2RlbGV0ZWQgPSBjb3VudGVycy0+dHVwbGVzX3JlbW92ZWQg PSAwOworCisJaWYgKHN0YXRzICE9IE5VTEwpCisJeworCQkvKgorCQkgKiBYWFg6IFdoeSBk byB3ZSBuZWVkIHRoaXMgY29kZSBoZXJlPyBJZiBpdCBpcyBuZWVkZWQsIEkgZmVlbCBsYWNr IG9mCisJCSAqIGNvbW1lbnRzLCBkZXNjcmliaW5nIHRoZSByZWFzb24uCisJCSAqLworCQlj b3VudGVycy0+dHVwbGVzX3JlbW92ZWQgPSBzdGF0cy0+dHVwbGVzX3JlbW92ZWQ7CisJCWNv dW50ZXJzLT5wYWdlc19kZWxldGVkID0gc3RhdHMtPnBhZ2VzX2RlbGV0ZWQ7CisJfQorfQor Cit2b2lkCitleHR2YWNfc3RhdHNfZW5kX2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0Rl bGV0ZVJlc3VsdCAqc3RhdHMsCisJCQkJCSBMVkV4dFN0YXRDb3VudGVyc0lkeCAqIGNvdW50 ZXJzLCBFeHRWYWNSZXBvcnQgKiByZXBvcnQpCit7CisJbWVtc2V0KHJlcG9ydCwgMCwgc2l6 ZW9mKEV4dFZhY1JlcG9ydCkpOworCisJZXh0dmFjX3N0YXRzX2VuZChyZWwsICZjb3VudGVy cy0+Y29tbW9uLCByZXBvcnQpOworCXJlcG9ydC0+dHlwZSA9IFBHU1RBVF9FWFRWQUNfSU5E RVg7CisKKwlpZiAoc3RhdHMgIT0gTlVMTCkKKwl7CisJCS8qCisJCSAqIGlmIHNvbWV0aGlu ZyBnb2VzIHdyb25nIG9yIGFuIHVzZXIgZG9lc24ndCB3YW50IHRvIHRyYWNrIGEgZGF0YWJh c2UKKwkJICogYWN0aXZpdHkgLSBqdXN0IHN1cHByZXNzIGl0LgorCQkgKi8KKworCQkvKiBG aWxsIGluZGV4LXNwZWNpZmljIGV4dGVuZGVkIHN0YXRzIGZpZWxkcyAqLworCQlyZXBvcnQt PnR1cGxlc19kZWxldGVkID0KKwkJCXN0YXRzLT50dXBsZXNfcmVtb3ZlZCAtIGNvdW50ZXJz LT50dXBsZXNfcmVtb3ZlZDsKKwkJcmVwb3J0LT5pbmRleC5wYWdlc19kZWxldGVkID0KKwkJ CXN0YXRzLT5wYWdlc19kZWxldGVkIC0gY291bnRlcnMtPnBhZ2VzX2RlbGV0ZWQ7CisJfQor fQorCisvKiBBY2N1bXVsYXRlIHZhY3V1bSBzdGF0aXN0aWNzIGZvciBoZWFwLgorICoKKyAg KiBCZWNhdXNlIG9mIGNvbXBsZXhpdHkgb2YgdmFjdXVtIHByb2Nlc3Npbmc6IGl0IHN3aXRj aCBwcm9jZXNpbmcgYmV0d2VlbgorICAqIHRoZSBoZWFwIHJlbGF0aW9uIHRvIGluZGV4IHJl bGF0aW9ucyBhbmQgdmlzYSB2ZXJzYSwgd2UgbmVlZCB0byBzdG9yZQorICAqIGdhdGhlcmVk IHN0YXRpc3RpY3MgaW5mb3JtYXRpb24gZm9yIGhlYXAgcmVsYXRpb25zIHNldmVyYWwgdGlt ZXMgYmVmb3JlCisgICogdGhlIHZhY3V1bSBzdGFydHMgcHJvY2Vzc2luZyB0aGUgaW5kZXhl cyBhZ2Fpbi4KKyAgKgorICAqIEl0IGlzIG5lY2Vzc2FyeSB0byBnYXRoZXIgY29ycmVjdCBz dGF0aXN0aWNzIGluZm9ybWF0aW9uIGZvciBoZWFwIGFuZCBpbmRleGVzCisgICogb3RoZXJ3 aWNlIHRoZSBpbmRleCBzdGF0aXN0aWNzIGluZm9ybWF0aW9uIHdvdWxkIGJlIGFkZGVkIHRv IGhpcyBwYXJlbnQgaGVhcAorICAqIHN0YXRpc3RpY3MgaW5mb3JtYXRpb24gYW5kIGl0IHdv dWxkIGJlIGRpZmZpY3VsdCB0byBhbmFseXplIGl0IGxhdGVyLgorICAqCisgICogV2UgY2Fu J3Qgc3VidHJhY3QgdW5pb24gdmFjdXVtIHN0YXRpc3RpY3MgaW5mb3JtYXRpb24gZm9yIGlu ZGV4IGZyb20gdGhlIGhlYXAgcmVsYXRpb25zCisgICogYmVjYXVzZSBvZiB0b3RhbCBhbmQg ZGVsYXkgdGltZSB0aW1lIHN0YXRpc3RpY3MgY29sbGVjdGluZyBkdXJpbmcgcGFyYWxsZWwg dmFjdXVtCisgICogcHJvY3VkdXJlLgorKi8KK3N0YXRpYyB2b2lkCithY2N1bXVsYXRlX2hl YXBfdmFjdXVtX3N0YXRpc3RpY3MoTFZSZWxTdGF0ZSAqdmFjcmVsLCBFeHRWYWNSZXBvcnQg KiBleHRWYWNTdGF0cykKK3sKKwkvKiBGaWxsIGhlYXAtc3BlY2lmaWMgZXh0ZW5kZWQgc3Rh dHMgZmllbGRzICovCisJZXh0VmFjU3RhdHMtPnR5cGUgPSBQR1NUQVRfRVhUVkFDX1RBQkxF OworCWV4dFZhY1N0YXRzLT50YWJsZS5wYWdlc19zY2FubmVkID0gdmFjcmVsLT5zY2FubmVk X3BhZ2VzOworCWV4dFZhY1N0YXRzLT50YWJsZS5wYWdlc19yZW1vdmVkID0gdmFjcmVsLT5y ZW1vdmVkX3BhZ2VzOworCWV4dFZhY1N0YXRzLT50YWJsZS52bV9uZXdfZnJvemVuX3BhZ2Vz ID0gdmFjcmVsLT52bV9uZXdfZnJvemVuX3BhZ2VzOworCWV4dFZhY1N0YXRzLT50YWJsZS52 bV9uZXdfdmlzaWJsZV9wYWdlcyA9IHZhY3JlbC0+dm1fbmV3X3Zpc2libGVfcGFnZXM7CisJ ZXh0VmFjU3RhdHMtPnRhYmxlLnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9IHZhY3Jl bC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOworCWV4dFZhY1N0YXRzLT50dXBsZXNf ZGVsZXRlZCA9IHZhY3JlbC0+dHVwbGVzX2RlbGV0ZWQ7CisJZXh0VmFjU3RhdHMtPnRhYmxl LnR1cGxlc19mcm96ZW4gPSB2YWNyZWwtPnR1cGxlc19mcm96ZW47CisJZXh0VmFjU3RhdHMt PnRhYmxlLnJlY2VudGx5X2RlYWRfdHVwbGVzID0gdmFjcmVsLT5yZWNlbnRseV9kZWFkX3R1 cGxlczsKKwlleHRWYWNTdGF0cy0+dGFibGUucmVjZW50bHlfZGVhZF90dXBsZXMgPSB2YWNy ZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzOworCWV4dFZhY1N0YXRzLT50YWJsZS5taXNzZWRf ZGVhZF90dXBsZXMgPSB2YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlczsKKwlleHRWYWNTdGF0 cy0+dGFibGUubWlzc2VkX2RlYWRfcGFnZXMgPSB2YWNyZWwtPm1pc3NlZF9kZWFkX3BhZ2Vz OworCWV4dFZhY1N0YXRzLT50YWJsZS5pbmRleF92YWN1dW1fY291bnQgPSB2YWNyZWwtPm51 bV9pbmRleF9zY2FuczsKKwlleHRWYWNTdGF0cy0+dGFibGUud3JhcGFyb3VuZF9mYWlsc2Fm ZV9jb3VudCA9IHZhY3JlbC0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsKKworCWV4dFZh Y1N0YXRzLT5ibGtfcmVhZF90aW1lIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmJsa19y ZWFkX3RpbWU7CisJZXh0VmFjU3RhdHMtPmJsa193cml0ZV90aW1lIC09IHZhY3JlbC0+ZXh0 VmFjUmVwb3J0SWR4LmJsa193cml0ZV90aW1lOworCWV4dFZhY1N0YXRzLT50b3RhbF9ibGtz X2RpcnRpZWQgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgudG90YWxfYmxrc19kaXJ0aWVk OworCWV4dFZhY1N0YXRzLT50b3RhbF9ibGtzX2hpdCAtPSB2YWNyZWwtPmV4dFZhY1JlcG9y dElkeC50b3RhbF9ibGtzX2hpdDsKKwlleHRWYWNTdGF0cy0+dG90YWxfYmxrc19yZWFkIC09 IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LnRvdGFsX2Jsa3NfcmVhZDsKKwlleHRWYWNTdGF0 cy0+dG90YWxfYmxrc193cml0dGVuIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LnRvdGFs X2Jsa3Nfd3JpdHRlbjsKKwlleHRWYWNTdGF0cy0+d2FsX2J5dGVzIC09IHZhY3JlbC0+ZXh0 VmFjUmVwb3J0SWR4LndhbF9ieXRlczsKKwlleHRWYWNTdGF0cy0+d2FsX2ZwaSAtPSB2YWNy ZWwtPmV4dFZhY1JlcG9ydElkeC53YWxfZnBpOworCWV4dFZhY1N0YXRzLT53YWxfcmVjb3Jk cyAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC53YWxfcmVjb3JkczsKKworCWV4dFZhY1N0 YXRzLT50b3RhbF90aW1lIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LnRvdGFsX3RpbWU7 CisJZXh0VmFjU3RhdHMtPmRlbGF5X3RpbWUgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgu ZGVsYXlfdGltZTsKKworfQorCitzdGF0aWMgdm9pZAorYWNjdW11bGF0ZV9pZHhzX3ZhY3V1 bV9zdGF0aXN0aWNzKExWUmVsU3RhdGUgKnZhY3JlbCwgRXh0VmFjUmVwb3J0ICogZXh0VmFj SWR4U3RhdHMpCit7CisJLyogRmlsbCBoZWFwLXNwZWNpZmljIGV4dGVuZGVkIHN0YXRzIGZp ZWxkcyAqLworCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmJsa19yZWFkX3RpbWUgKz0gZXh0 VmFjSWR4U3RhdHMtPmJsa19yZWFkX3RpbWU7CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgu YmxrX3dyaXRlX3RpbWUgKz0gZXh0VmFjSWR4U3RhdHMtPmJsa193cml0ZV90aW1lOworCXZh Y3JlbC0+ZXh0VmFjUmVwb3J0SWR4LnRvdGFsX2Jsa3NfZGlydGllZCArPSBleHRWYWNJZHhT dGF0cy0+dG90YWxfYmxrc19kaXJ0aWVkOworCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LnRv dGFsX2Jsa3NfaGl0ICs9IGV4dFZhY0lkeFN0YXRzLT50b3RhbF9ibGtzX2hpdDsKKwl2YWNy ZWwtPmV4dFZhY1JlcG9ydElkeC50b3RhbF9ibGtzX3JlYWQgKz0gZXh0VmFjSWR4U3RhdHMt PnRvdGFsX2Jsa3NfcmVhZDsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC50b3RhbF9ibGtz X3dyaXR0ZW4gKz0gZXh0VmFjSWR4U3RhdHMtPnRvdGFsX2Jsa3Nfd3JpdHRlbjsKKwl2YWNy ZWwtPmV4dFZhY1JlcG9ydElkeC53YWxfYnl0ZXMgKz0gZXh0VmFjSWR4U3RhdHMtPndhbF9i eXRlczsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC53YWxfZnBpICs9IGV4dFZhY0lkeFN0 YXRzLT53YWxfZnBpOworCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LndhbF9yZWNvcmRzICs9 IGV4dFZhY0lkeFN0YXRzLT53YWxfcmVjb3JkczsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElk eC5kZWxheV90aW1lICs9IGV4dFZhY0lkeFN0YXRzLT5kZWxheV90aW1lOworCisJdmFjcmVs LT5leHRWYWNSZXBvcnRJZHgudG90YWxfdGltZSArPSBleHRWYWNJZHhTdGF0cy0+dG90YWxf dGltZTsKK30KKwogCiAvKgogICogSGVscGVyIHRvIHNldCB1cCB0aGUgZWFnZXIgc2Nhbm5p bmcgc3RhdGUgZm9yIHZhY3V1bWluZyBhIHNpbmdsZSByZWxhdGlvbi4KQEAgLTc2MCwxMSAr ODU3LDkgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFy YW1zIHBhcmFtcywKIAljaGFyCSAgKippbmRuYW1lcyA9IE5VTEw7CiAJTFZFeHRTdGF0Q291 bnRlcnMgZXh0VmFjQ291bnRlcnM7CiAJRXh0VmFjUmVwb3J0IGV4dFZhY1JlcG9ydDsKLQlF eHRWYWNSZXBvcnQgYWxsemVybzsKIAogCS8qIEluaXRpYWxpemUgdmFjdXVtIHN0YXRpc3Rp Y3MgKi8KLQltZW1zZXQoJmFsbHplcm8sIDAsIHNpemVvZihFeHRWYWNSZXBvcnQpKTsKLQll eHRWYWNSZXBvcnQgPSBhbGx6ZXJvOworCW1lbXNldCgmZXh0VmFjUmVwb3J0LCAwLCBzaXpl b2YoRXh0VmFjUmVwb3J0KSk7CiAKIAl2ZXJib3NlID0gKHBhcmFtcy5vcHRpb25zICYgVkFD T1BUX1ZFUkJPU0UpICE9IDA7CiAJaW5zdHJ1bWVudCA9ICh2ZXJib3NlIHx8IChBbUF1dG9W YWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYKQEAgLTgyMCw2ICs5MTUsOCBAQCBoZWFwX3ZhY3V1 bV9yZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCWVycmNh bGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsKIAllcnJvcl9jb250ZXh0 X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCisJbWVtc2V0KCZ2YWNyZWwtPmV4dFZhY1JlcG9y dElkeCwgMCwgc2l6ZW9mKEV4dFZhY1JlcG9ydCkpOworCiAJLyogU2V0IHVwIGhpZ2ggbGV2 ZWwgc3R1ZmYgYWJvdXQgcmVsIGFuZCBpdHMgaW5kZXhlcyAqLwogCXZhY3JlbC0+cmVsID0g cmVsOwogCXZhY19vcGVuX2luZGV4ZXModmFjcmVsLT5yZWwsIFJvd0V4Y2x1c2l2ZUxvY2ss ICZ2YWNyZWwtPm5pbmRleGVzLApAQCAtMTA3OCwyMCArMTE3NSw2IEBAIGhlYXBfdmFjdXVt X3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJLyogTWFr ZSBnZW5lcmljIGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgKi8KIAlleHR2YWNfc3Rh dHNfZW5kKHJlbCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVwb3J0KTsKIAotCS8qIEZp bGwgaGVhcC1zcGVjaWZpYyBleHRlbmRlZCBzdGF0cyBmaWVsZHMgKi8KLQlleHRWYWNSZXBv cnQucGFnZXNfc2Nhbm5lZCA9IHZhY3JlbC0+c2Nhbm5lZF9wYWdlczsKLQlleHRWYWNSZXBv cnQucGFnZXNfcmVtb3ZlZCA9IHZhY3JlbC0+cmVtb3ZlZF9wYWdlczsKLQlleHRWYWNSZXBv cnQudm1fbmV3X2Zyb3plbl9wYWdlcyA9IHZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlczsK LQlleHRWYWNSZXBvcnQudm1fbmV3X3Zpc2libGVfcGFnZXMgPSB2YWNyZWwtPnZtX25ld192 aXNpYmxlX3BhZ2VzOwotCWV4dFZhY1JlcG9ydC52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFn ZXMgPSB2YWNyZWwtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczsKLQlleHRWYWNSZXBv cnQudHVwbGVzX2RlbGV0ZWQgPSB2YWNyZWwtPnR1cGxlc19kZWxldGVkOwotCWV4dFZhY1Jl cG9ydC50dXBsZXNfZnJvemVuID0gdmFjcmVsLT50dXBsZXNfZnJvemVuOwotCWV4dFZhY1Jl cG9ydC5yZWNlbnRseV9kZWFkX3R1cGxlcyA9IHZhY3JlbC0+cmVjZW50bHlfZGVhZF90dXBs ZXM7Ci0JZXh0VmFjUmVwb3J0Lm1pc3NlZF9kZWFkX3R1cGxlcyA9IHZhY3JlbC0+bWlzc2Vk X2RlYWRfdHVwbGVzOwotCWV4dFZhY1JlcG9ydC5taXNzZWRfZGVhZF9wYWdlcyA9IHZhY3Jl bC0+bWlzc2VkX2RlYWRfcGFnZXM7Ci0JZXh0VmFjUmVwb3J0LmluZGV4X3ZhY3V1bV9jb3Vu dCA9IHZhY3JlbC0+bnVtX2luZGV4X3NjYW5zOwotCWV4dFZhY1JlcG9ydC53cmFwYXJvdW5k X2ZhaWxzYWZlX2NvdW50ID0gdmFjcmVsLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50Owot CiAJLyoKIAkgKiBSZXBvcnQgcmVzdWx0cyB0byB0aGUgY3VtdWxhdGl2ZSBzdGF0cyBzeXN0 ZW0sIHRvby4KIAkgKgpAQCAtMTEwMiw2ICsxMTg1LDEzIEBAIGhlYXBfdmFjdXVtX3JlbChS ZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJICogc29vbiBpbiBj YXNlcyB3aGVyZSB0aGUgZmFpbHNhZmUgcHJldmVudGVkIHNpZ25pZmljYW50IGFtb3VudHMg b2YgaGVhcAogCSAqIHZhY3V1bWluZy4KIAkgKi8KKworCS8qCisJICogTWFrZSBnZW5lcmlj IGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgYW5kIGZpbGwgaGVhcC1zcGVjaWZpYwor CSAqIGV4dGVuZGVkIHN0YXRzIGZpZWxkcy4KKwkgKi8KKwlleHR2YWNfc3RhdHNfZW5kKHZh Y3JlbC0+cmVsLCAmZXh0VmFjQ291bnRlcnMsICZleHRWYWNSZXBvcnQpOworCWFjY3VtdWxh dGVfaGVhcF92YWN1dW1fc3RhdGlzdGljcyh2YWNyZWwsICZleHRWYWNSZXBvcnQpOwogCXBn c3RhdF9yZXBvcnRfdmFjdXVtKHJlbCwKIAkJCQkJCSBNYXgodmFjcmVsLT5uZXdfbGl2ZV90 dXBsZXMsIDApLAogCQkJCQkJIHZhY3JlbC0+cmVjZW50bHlfZGVhZF90dXBsZXMgKwpAQCAt MjgxMSwxMCArMjkwMSwyMCBAQCBsYXp5X3ZhY3V1bV9hbGxfaW5kZXhlcyhMVlJlbFN0YXRl ICp2YWNyZWwpCiAJfQogCWVsc2UKIAl7CisJCUxWRXh0U3RhdENvdW50ZXJzIGNvdW50ZXJz OworCQlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0OworCisJCW1lbXNldCgmZXh0VmFjUmVw b3J0LCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CisKKwkJZXh0dmFjX3N0YXRzX3N0YXJ0 KHZhY3JlbC0+cmVsLCAmY291bnRlcnMpOworCiAJCS8qIE91dHNvdXJjZSBldmVyeXRoaW5n IHRvIHBhcmFsbGVsIHZhcmlhbnQgKi8KIAkJcGFyYWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxs X2luZGV4ZXModmFjcmVsLT5wdnMsIG9sZF9saXZlX3R1cGxlcywKIAkJCQkJCQkJCQkJdmFj cmVsLT5udW1faW5kZXhfc2NhbnMpOwogCisJCWV4dHZhY19zdGF0c19lbmQodmFjcmVsLT5y ZWwsICZjb3VudGVycywgJmV4dFZhY1JlcG9ydCk7CisJCWFjY3VtdWxhdGVfaWR4c192YWN1 dW1fc3RhdGlzdGljcyh2YWNyZWwsICZleHRWYWNSZXBvcnQpOworCiAJCS8qCiAJCSAqIERv IGEgcG9zdGNoZWNrIHRvIGNvbnNpZGVyIGFwcGx5aW5nIHdyYXBhcm91bmQgZmFpbHNhZmUg bm93LiAgTm90ZQogCQkgKiB0aGF0IHBhcmFsbGVsIFZBQ1VVTSBvbmx5IGdldHMgdGhlIHBy ZWNoZWNrIGFuZCB0aGlzIHBvc3RjaGVjay4KQEAgLTMyNDQsMTAgKzMzNDQsMjAgQEAgbGF6 eV9jbGVhbnVwX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAl9CiAJZWxzZQog CXsKKwkJTFZFeHRTdGF0Q291bnRlcnMgY291bnRlcnM7CisJCUV4dFZhY1JlcG9ydCBleHRW YWNSZXBvcnQ7CisKKwkJbWVtc2V0KCZleHRWYWNSZXBvcnQsIDAsIHNpemVvZihFeHRWYWNS ZXBvcnQpKTsKKworCQlleHR2YWNfc3RhdHNfc3RhcnQodmFjcmVsLT5yZWwsICZjb3VudGVy cyk7CisKIAkJLyogT3V0c291cmNlIGV2ZXJ5dGhpbmcgdG8gcGFyYWxsZWwgdmFyaWFudCAq LwogCQlwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5kZXhlcyh2YWNyZWwtPnB2cywg cmVsdHVwbGVzLAogCQkJCQkJCQkJCQl2YWNyZWwtPm51bV9pbmRleF9zY2FucywKIAkJCQkJ CQkJCQkJZXN0aW1hdGVkX2NvdW50KTsKKworCQlleHR2YWNfc3RhdHNfZW5kKHZhY3JlbC0+ cmVsLCAmY291bnRlcnMsICZleHRWYWNSZXBvcnQpOworCQlhY2N1bXVsYXRlX2lkeHNfdmFj dXVtX3N0YXRpc3RpY3ModmFjcmVsLCAmZXh0VmFjUmVwb3J0KTsKIAl9CiAKIAkvKiBSZXNl dCB0aGUgcHJvZ3Jlc3MgY291bnRlcnMgKi8KQEAgLTMyNzMsNiArMzM4MywxMSBAQCBsYXp5 X3ZhY3V1bV9vbmVfaW5kZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1 bHQgKmlzdGF0LAogewogCUluZGV4VmFjdXVtSW5mbyBpdmluZm87CiAJTFZTYXZlZEVycklu Zm8gc2F2ZWRfZXJyX2luZm87CisJTFZFeHRTdGF0Q291bnRlcnNJZHggZXh0VmFjQ291bnRl cnM7CisJRXh0VmFjUmVwb3J0IGV4dFZhY1JlcG9ydDsKKworCS8qIFNldCBpbml0aWFsIHN0 YXRpc3RpY3MgdmFsdWVzIHRvIGdhdGhlciB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdGhlIGlu ZGV4ICovCisJZXh0dmFjX3N0YXRzX3N0YXJ0X2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFj Q291bnRlcnMpOwogCiAJaXZpbmZvLmluZGV4ID0gaW5kcmVsOwogCWl2aW5mby5oZWFwcmVs ID0gdmFjcmVsLT5yZWw7CkBAIC0zMjkxLDYgKzM0MDYsNyBAQCBsYXp5X3ZhY3V1bV9vbmVf aW5kZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAog CSAqLwogCUFzc2VydCh2YWNyZWwtPmluZG5hbWUgPT0gTlVMTCk7CiAJdmFjcmVsLT5pbmRu YW1lID0gcHN0cmR1cChSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShpbmRyZWwpKTsKKwl2YWNy ZWwtPmluZG9pZCA9IFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVsKTsKIAl1cGRhdGVfdmFjdXVt X2Vycm9yX2luZm8odmFjcmVsLCAmc2F2ZWRfZXJyX2luZm8sCiAJCQkJCQkJIFZBQ1VVTV9F UlJDQl9QSEFTRV9WQUNVVU1fSU5ERVgsCiAJCQkJCQkJIEludmFsaWRCbG9ja051bWJlciwg SW52YWxpZE9mZnNldE51bWJlcik7CkBAIC0zMjk5LDYgKzM0MTUsMTUgQEAgbGF6eV92YWN1 dW1fb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICpp c3RhdCwKIAlpc3RhdCA9IHZhY19idWxrZGVsX29uZV9pbmRleCgmaXZpbmZvLCBpc3RhdCwg dmFjcmVsLT5kZWFkX2l0ZW1zLAogCQkJCQkJCQkgIHZhY3JlbC0+ZGVhZF9pdGVtc19pbmZv KTsKIAorCS8qIE1ha2UgZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCBmb3IgaW5kZXgg Ki8KKwlleHR2YWNfc3RhdHNfZW5kX2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRl cnMsICZleHRWYWNSZXBvcnQpOworCisJaWYgKCFQYXJhbGxlbFZhY3V1bUlzQWN0aXZlKHZh Y3JlbCkpCisJCWFjY3VtdWxhdGVfaWR4c192YWN1dW1fc3RhdGlzdGljcyh2YWNyZWwsICZl eHRWYWNSZXBvcnQpOworCisJcGdzdGF0X3JlcG9ydF92YWN1dW0oaW5kcmVsLAorCQkJCQkJ IDAsIDAsIDAsICZleHRWYWNSZXBvcnQpOworCiAJLyogUmV2ZXJ0IHRvIHRoZSBwcmV2aW91 cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICovCiAJcmVzdG9yZV92 YWN1dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7CiAJcGZyZWUodmFj cmVsLT5pbmRuYW1lKTsKQEAgLTMzMjMsNiArMzQ0OCwxMSBAQCBsYXp5X2NsZWFudXBfb25l X2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwK IHsKIAlJbmRleFZhY3V1bUluZm8gaXZpbmZvOwogCUxWU2F2ZWRFcnJJbmZvIHNhdmVkX2Vy cl9pbmZvOworCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0NvdW50ZXJzOworCUV4dFZh Y1JlcG9ydCBleHRWYWNSZXBvcnQ7CisKKwkvKiBTZXQgaW5pdGlhbCBzdGF0aXN0aWNzIHZh bHVlcyB0byBnYXRoZXIgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHRoZSBpbmRleCAqLworCWV4 dHZhY19zdGF0c19zdGFydF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZhY0NvdW50ZXJzKTsK IAogCWl2aW5mby5pbmRleCA9IGluZHJlbDsKIAlpdmluZm8uaGVhcHJlbCA9IHZhY3JlbC0+ cmVsOwpAQCAtMzM0MiwxMiArMzQ3MiwyMiBAQCBsYXp5X2NsZWFudXBfb25lX2luZGV4KFJl bGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIAkgKi8KIAlB c3NlcnQodmFjcmVsLT5pbmRuYW1lID09IE5VTEwpOwogCXZhY3JlbC0+aW5kbmFtZSA9IHBz dHJkdXAoUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoaW5kcmVsKSk7CisJdmFjcmVsLT5pbmRv aWQgPSBSZWxhdGlvbkdldFJlbGlkKGluZHJlbCk7CiAJdXBkYXRlX3ZhY3V1bV9lcnJvcl9p bmZvKHZhY3JlbCwgJnNhdmVkX2Vycl9pbmZvLAogCQkJCQkJCSBWQUNVVU1fRVJSQ0JfUEhB U0VfSU5ERVhfQ0xFQU5VUCwKIAkJCQkJCQkgSW52YWxpZEJsb2NrTnVtYmVyLCBJbnZhbGlk T2Zmc2V0TnVtYmVyKTsKIAogCWlzdGF0ID0gdmFjX2NsZWFudXBfb25lX2luZGV4KCZpdmlu Zm8sIGlzdGF0KTsKIAorCS8qIE1ha2UgZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCBm b3IgaW5kZXggKi8KKwlleHR2YWNfc3RhdHNfZW5kX2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0 VmFjQ291bnRlcnMsICZleHRWYWNSZXBvcnQpOworCisJaWYgKCFQYXJhbGxlbFZhY3V1bUlz QWN0aXZlKHZhY3JlbCkpCisJCWFjY3VtdWxhdGVfaWR4c192YWN1dW1fc3RhdGlzdGljcyh2 YWNyZWwsICZleHRWYWNSZXBvcnQpOworCisJcGdzdGF0X3JlcG9ydF92YWN1dW0oaW5kcmVs LAorCQkJCQkJIDAsIDAsIDAsICZleHRWYWNSZXBvcnQpOworCiAJLyogUmV2ZXJ0IHRvIHRo ZSBwcmV2aW91cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICovCiAJ cmVzdG9yZV92YWN1dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7CiAJ cGZyZWUodmFjcmVsLT5pbmRuYW1lKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdz LnNxbAppbmRleCBmZmI0MDdkNDE0Zi4uNDdiNmEwMGQyOTcgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRh bG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTE1MDIsMyArMTUwMiwzNSBAQCBGUk9NIHBnX2Ns YXNzIHJlbAogICBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiBucy5vaWQgPSByZWwucmVsbmFt ZXNwYWNlLAogICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMocmVsLm9pZCkg c3RhdHMKIFdIRVJFIHJlbC5yZWxraW5kID0gJ3InOworCitDUkVBVEUgVklFVyBwZ19zdGF0 X3ZhY3V1bV9pbmRleGVzIEFTCitTRUxFQ1QKKyAgcmVsLm9pZCBhcyByZWxpZCwKKyAgbnMu bnNwbmFtZSBBUyBzY2hlbWFuYW1lLAorICByZWwucmVsbmFtZSBBUyByZWxuYW1lLAorCisg IHRvdGFsX2Jsa3NfcmVhZCBBUyB0b3RhbF9ibGtzX3JlYWQsCisgIHRvdGFsX2Jsa3NfaGl0 IEFTIHRvdGFsX2Jsa3NfaGl0LAorICB0b3RhbF9ibGtzX2RpcnRpZWQgQVMgdG90YWxfYmxr c19kaXJ0aWVkLAorICB0b3RhbF9ibGtzX3dyaXR0ZW4gQVMgdG90YWxfYmxrc193cml0dGVu LAorCisgIHJlbF9ibGtzX3JlYWQgQVMgcmVsX2Jsa3NfcmVhZCwKKyAgcmVsX2Jsa3NfaGl0 IEFTIHJlbF9ibGtzX2hpdCwKKworICBwYWdlc19kZWxldGVkIEFTIHBhZ2VzX2RlbGV0ZWQs CisgIHR1cGxlc19kZWxldGVkIEFTIHR1cGxlc19kZWxldGVkLAorCisgIHdhbF9yZWNvcmRz IEFTIHdhbF9yZWNvcmRzLAorICB3YWxfZnBpIEFTIHdhbF9mcGksCisgIHdhbF9ieXRlcyBB UyB3YWxfYnl0ZXMsCisKKyAgYmxrX3JlYWRfdGltZSBBUyBibGtfcmVhZF90aW1lLAorICBi bGtfd3JpdGVfdGltZSBBUyBibGtfd3JpdGVfdGltZSwKKworICBkZWxheV90aW1lIEFTIGRl bGF5X3RpbWUsCisgIHRvdGFsX3RpbWUgQVMgdG90YWxfdGltZQorRlJPTQorICBwZ19jbGFz cyByZWwKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMub2lkID0gcmVsLnJlbG5hbWVz cGFjZSwKKyAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyhyZWwub2lkKSBz dGF0cworV0hFUkUgcmVsLnJlbGtpbmQgPSAnaSc7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXggMTE0Y2Q3 YzMxZDMuLjQzNDUwNjg1YjA5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFs bGVsLmMKQEAgLTg2OCw2ICs4NjgsOCBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19vbmVf aW5kZXgoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBSZWxhdGlvbiBpbmRyZWwsCiAJSW5k ZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCA9IE5VTEw7CiAJSW5kZXhCdWxrRGVsZXRlUmVz dWx0ICppc3RhdF9yZXM7CiAJSW5kZXhWYWN1dW1JbmZvIGl2aW5mbzsKKwlMVkV4dFN0YXRD b3VudGVyc0lkeCBleHRWYWNDb3VudGVyczsKKwlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0 OwogCiAJLyoKIAkgKiBVcGRhdGUgdGhlIHBvaW50ZXIgdG8gdGhlIGNvcnJlc3BvbmRpbmcg YnVsay1kZWxldGlvbiByZXN1bHQgaWYgc29tZW9uZQpAQCAtODc2LDYgKzg3OCw5IEBAIHBh cmFsbGVsX3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRleChQYXJhbGxlbFZhY3V1bVN0YXRlICpw dnMsIFJlbGF0aW9uIGluZHJlbCwKIAlpZiAoaW5kc3RhdHMtPmlzdGF0X3VwZGF0ZWQpCiAJ CWlzdGF0ID0gJihpbmRzdGF0cy0+aXN0YXQpOwogCisJLyogU2V0IGluaXRpYWwgc3RhdGlz dGljcyB2YWx1ZXMgdG8gZ2F0aGVyIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgaW5kZXgg Ki8KKwlleHR2YWNfc3RhdHNfc3RhcnRfaWR4KGluZHJlbCwgJihpbmRzdGF0cy0+aXN0YXQp LCAmZXh0VmFjQ291bnRlcnMpOworCiAJaXZpbmZvLmluZGV4ID0gaW5kcmVsOwogCWl2aW5m by5oZWFwcmVsID0gcHZzLT5oZWFwcmVsOwogCWl2aW5mby5hbmFseXplX29ubHkgPSBmYWxz ZTsKQEAgLTkwNCw2ICs5MDksMTEgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2lu ZGV4KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgUmVsYXRpb24gaW5kcmVsLAogCQkJCSBS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZShpbmRyZWwpKTsKIAl9CiAKKwkvKiBNYWtlIGV4dGVu ZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgZm9yIGluZGV4ICovCisJZXh0dmFjX3N0YXRzX2Vu ZF9pZHgoaW5kcmVsLCBpc3RhdF9yZXMsICZleHRWYWNDb3VudGVycywgJmV4dFZhY1JlcG9y dCk7CisJcGdzdGF0X3JlcG9ydF92YWN1dW0oaW5kcmVsLAorCQkJCQkJIDAsIDAsIDAsICZl eHRWYWNSZXBvcnQpOworCiAJLyoKIAkgKiBDb3B5IHRoZSBpbmRleCBidWxrLWRlbGV0aW9u IHJlc3VsdCByZXR1cm5lZCBmcm9tIGFtYnVsa2RlbGV0ZSBhbmQKIAkgKiBhbXZhY3V1bWNs ZWFudXAgdG8gdGhlIERTTSBzZWdtZW50IGlmIGl0J3MgdGhlIGZpcnN0IGN5Y2xlIGJlY2F1 c2UgdGhleQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 X3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRp b24uYwppbmRleCAzNjE3MTM0NzllOC4uNGJkNmFmYzM3OTQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCkBAIC0xMDM2LDIwICsxMDM2 LDM1IEBAIHBnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cyhFeHRWYWNSZXBvcnQgKiBk c3QsIEV4dFZhY1JlcG9ydCAqIHNyYywKIAlpZiAoIWFjY3VtdWxhdGVfcmVsdHlwZV9zcGVj aWZpY19pbmZvKQogCQlyZXR1cm47CiAKLQlkc3QtPmJsa3NfZmV0Y2hlZCArPSBzcmMtPmJs a3NfZmV0Y2hlZDsKLQlkc3QtPmJsa3NfaGl0ICs9IHNyYy0+Ymxrc19oaXQ7Ci0KLQlkc3Qt PnBhZ2VzX3NjYW5uZWQgKz0gc3JjLT5wYWdlc19zY2FubmVkOwotCWRzdC0+cGFnZXNfcmVt b3ZlZCArPSBzcmMtPnBhZ2VzX3JlbW92ZWQ7Ci0JZHN0LT52bV9uZXdfZnJvemVuX3BhZ2Vz ICs9IHNyYy0+dm1fbmV3X2Zyb3plbl9wYWdlczsKLQlkc3QtPnZtX25ld192aXNpYmxlX3Bh Z2VzICs9IHNyYy0+dm1fbmV3X3Zpc2libGVfcGFnZXM7Ci0JZHN0LT52bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXMgKz0gc3JjLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXM7Ci0J ZHN0LT50dXBsZXNfZGVsZXRlZCArPSBzcmMtPnR1cGxlc19kZWxldGVkOwotCWRzdC0+dHVw bGVzX2Zyb3plbiArPSBzcmMtPnR1cGxlc19mcm96ZW47Ci0JZHN0LT5yZWNlbnRseV9kZWFk X3R1cGxlcyArPSBzcmMtPnJlY2VudGx5X2RlYWRfdHVwbGVzOwotCWRzdC0+aW5kZXhfdmFj dXVtX2NvdW50ICs9IHNyYy0+aW5kZXhfdmFjdXVtX2NvdW50OwotCWRzdC0+d3JhcGFyb3Vu ZF9mYWlsc2FmZV9jb3VudCArPSBzcmMtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7Ci0J ZHN0LT5taXNzZWRfZGVhZF9wYWdlcyArPSBzcmMtPm1pc3NlZF9kZWFkX3BhZ2VzOwotCWRz dC0+bWlzc2VkX2RlYWRfdHVwbGVzICs9IHNyYy0+bWlzc2VkX2RlYWRfdHVwbGVzOworCWlm IChkc3QtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19JTlZBTElEKQorCQlkc3QtPnR5cGUgPSBz cmMtPnR5cGU7CiAKKwlBc3NlcnQoc3JjLT50eXBlID09IFBHU1RBVF9FWFRWQUNfSU5WQUxJ RCB8fCBzcmMtPnR5cGUgPT0gZHN0LT50eXBlKTsKKworCWlmIChkc3QtPnR5cGUgPT0gc3Jj LT50eXBlKQorCXsKKwkJZHN0LT5ibGtzX2ZldGNoZWQgKz0gc3JjLT5ibGtzX2ZldGNoZWQ7 CisJCWRzdC0+Ymxrc19oaXQgKz0gc3JjLT5ibGtzX2hpdDsKKworCQlpZiAoZHN0LT50eXBl ID09IFBHU1RBVF9FWFRWQUNfVEFCTEUpCisJCXsKKwkJCWRzdC0+dGFibGUucGFnZXNfc2Nh bm5lZCArPSBzcmMtPnRhYmxlLnBhZ2VzX3NjYW5uZWQ7CisJCQlkc3QtPnRhYmxlLnBhZ2Vz X3JlbW92ZWQgKz0gc3JjLT50YWJsZS5wYWdlc19yZW1vdmVkOworCQkJZHN0LT50YWJsZS52 bV9uZXdfZnJvemVuX3BhZ2VzICs9IHNyYy0+dGFibGUudm1fbmV3X2Zyb3plbl9wYWdlczsK KwkJCWRzdC0+dGFibGUudm1fbmV3X3Zpc2libGVfcGFnZXMgKz0gc3JjLT50YWJsZS52bV9u ZXdfdmlzaWJsZV9wYWdlczsKKwkJCWRzdC0+dGFibGUudm1fbmV3X3Zpc2libGVfZnJvemVu X3BhZ2VzICs9IHNyYy0+dGFibGUudm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOworCQkJ ZHN0LT50dXBsZXNfZGVsZXRlZCArPSBzcmMtPnR1cGxlc19kZWxldGVkOworCQkJZHN0LT50 YWJsZS50dXBsZXNfZnJvemVuICs9IHNyYy0+dGFibGUudHVwbGVzX2Zyb3plbjsKKwkJCWRz dC0+dGFibGUucmVjZW50bHlfZGVhZF90dXBsZXMgKz0gc3JjLT50YWJsZS5yZWNlbnRseV9k ZWFkX3R1cGxlczsKKwkJCWRzdC0+dGFibGUuaW5kZXhfdmFjdXVtX2NvdW50ICs9IHNyYy0+ dGFibGUuaW5kZXhfdmFjdXVtX2NvdW50OworCQkJZHN0LT50YWJsZS5taXNzZWRfZGVhZF9w YWdlcyArPSBzcmMtPnRhYmxlLm1pc3NlZF9kZWFkX3BhZ2VzOworCQkJZHN0LT50YWJsZS5t aXNzZWRfZGVhZF90dXBsZXMgKz0gc3JjLT50YWJsZS5taXNzZWRfZGVhZF90dXBsZXM7CisJ CQlkc3QtPnRhYmxlLndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQgKz0gc3JjLT50YWJsZS53 cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OworCQl9CisJCWVsc2UgaWYgKGRzdC0+dHlwZSA9 PSBQR1NUQVRfRVhUVkFDX0lOREVYKQorCQl7CisJCQlkc3QtPmluZGV4LnBhZ2VzX2RlbGV0 ZWQgKz0gc3JjLT5pbmRleC5wYWdlc19kZWxldGVkOworCQkJZHN0LT50dXBsZXNfZGVsZXRl ZCArPSBzcmMtPnR1cGxlc19kZWxldGVkOworCQl9CisJfQogfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvcGdzdGF0ZnVuY3MuYwppbmRleCBkN2RmZGEwYzFhNy4uNzU1NzUxYzNiNDYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0yMzYwLDE4ICsyMzYwLDE5IEBA IHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJ ZXh0dmFjdXVtLT5ibGtzX2hpdCk7CiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+Ymxrc19oaXQpOwogCi0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+cGFnZXNfc2Nhbm5lZCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+cGFnZXNfcmVtb3ZlZCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERh dHVtKGV4dHZhY3V1bS0+dm1fbmV3X2Zyb3plbl9wYWdlcyk7Ci0JdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dm1fbmV3X3Zpc2libGVfcGFnZXMpOwotCXZhbHVl c1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnZtX25ld192aXNpYmxlX2Zyb3pl bl9wYWdlcyk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+bWlz c2VkX2RlYWRfcGFnZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPnRhYmxlLnBhZ2VzX3NjYW5uZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bShleHR2YWN1dW0tPnRhYmxlLnBhZ2VzX3JlbW92ZWQpOworCXZhbHVlc1tpKytdID0gSW50 NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnZtX25ld19mcm96ZW5fcGFnZXMpOworCXZh bHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnZtX25ld192aXNp YmxlX3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50 YWJsZS52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMpOworCXZhbHVlc1tpKytdID0gSW50 NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLm1pc3NlZF9kZWFkX3BhZ2VzKTsKIAl2YWx1 ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50dXBsZXNfZGVsZXRlZCk7Ci0J dmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dHVwbGVzX2Zyb3plbik7 Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+cmVjZW50bHlfZGVh ZF90dXBsZXMpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPm1p c3NlZF9kZWFkX3R1cGxlcyk7Ci0JdmFsdWVzW2krK10gPSBJbnQzMkdldERhdHVtKGV4dHZh Y3V1bS0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+aW5kZXhfdmFjdXVtX2NvdW50KTsKKwl2YWx1ZXNbaSsr XSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJsZS50dXBsZXNfZnJvemVuKTsKKwl2 YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJsZS5yZWNlbnRseV9k ZWFkX3R1cGxlcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+ dGFibGUubWlzc2VkX2RlYWRfdHVwbGVzKTsKKworCXZhbHVlc1tpKytdID0gSW50MzJHZXRE YXR1bShleHR2YWN1dW0tPnRhYmxlLndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQpOworCXZh bHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLmluZGV4X3ZhY3V1 bV9jb3VudCk7CiAKIAl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT53 YWxfcmVjb3Jkcyk7CiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+ d2FsX2ZwaSk7CkBAIC0yMzkzLDMgKzIzOTQsNzIgQEAgcGdfc3RhdF9nZXRfdmFjdXVtX3Rh YmxlcyhQR19GVU5DVElPTl9BUkdTKQogCS8qIFJldHVybnMgdGhlIHJlY29yZCBhcyBEYXR1 bSAqLwogCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVwbGVHZXREYXR1bShoZWFwX2Zvcm1fdHVw bGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsKIH0KKworLyoKKyAqIEdldCB0aGUgdmFj dXVtIHN0YXRpc3RpY3MgZm9yIHRoZSBoZWFwIHRhYmxlcy4KKyAqLworRGF0dW0KK3BnX3N0 YXRfZ2V0X3ZhY3V1bV9pbmRleGVzKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisjZGVmaW5lIFBH X1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTCTE2CisKKwlPaWQJCQlyZWxpZCA9 IFBHX0dFVEFSR19PSUQoMCk7CisJUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnk7CisJ RXh0VmFjUmVwb3J0ICpleHR2YWN1dW07CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJRGF0dW0J CXZhbHVlc1tQR19TVEFUX0dFVF9WQUNVVU1fSU5ERVhfU1RBVFNfQ09MU10gPSB7MH07CisJ Ym9vbAkJbnVsbHNbUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFNdID0gezB9 OworCWNoYXIJCWJ1ZlsyNTZdOworCWludAkJCWkgPSAwOworCisJaWYgKGdldF9jYWxsX3Jl c3VsdF90eXBlKGZjaW5mbywgTlVMTCwgJnR1cGRlc2MpICE9IFRZUEVGVU5DX0NPTVBPU0lU RSkKKwkJZWxvZyhFUlJPUiwgInJldHVybiB0eXBlIG11c3QgYmUgYSByb3cgdHlwZSIpOwor CisJdGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShyZWxpZCk7CisKKwlp ZiAodGFiZW50cnkgPT0gTlVMTCkKKwl7CisJCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZv LCAwKTsKKwkJUEdfUkVUVVJOX1ZPSUQoKTsKKwl9CisJZWxzZQorCXsKKwkJZXh0dmFjdXVt ID0gJih0YWJlbnRyeS0+dmFjdXVtX2V4dCk7CisJfQorCisJaSA9IDA7CisKKwl2YWx1ZXNb aSsrXSA9IE9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19yZWFkKTsKKwl2YWx1ZXNbaSsrXSA9 IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX2hpdCk7CisJdmFsdWVzW2kr K10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19kaXJ0aWVkKTsKKwl2 YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX3dyaXR0 ZW4pOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Ymxrc19m ZXRjaGVkIC0KKwkJCQkJCQkJZXh0dmFjdXVtLT5ibGtzX2hpdCk7CisJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Ymxrc19oaXQpOworCisJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+aW5kZXgucGFnZXNfZGVsZXRlZCk7CisJdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dHVwbGVzX2RlbGV0ZWQpOwor CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+d2FsX3JlY29yZHMp OworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPndhbF9mcGkpOwor CisJLyogQ29udmVydCB0byBudW1lcmljLCBsaWtlIHBnX3N0YXRfc3RhdGVtZW50cyAqLwor CXNucHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1ZiwgVUlOVDY0X0ZPUk1BVCwgZXh0dmFjdXVtLT53 YWxfYnl0ZXMpOworCXZhbHVlc1tpKytdID0gRGlyZWN0RnVuY3Rpb25DYWxsMyhudW1lcmlj X2luLAorCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0oYnVmKSwKKwkJCQkJCQkJCSAgT2Jq ZWN0SWRHZXREYXR1bSgwKSwKKwkJCQkJCQkJCSAgSW50MzJHZXREYXR1bSgtMSkpOworCisJ dmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmJsa19yZWFkX3RpbWUp OworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtfd3JpdGVf dGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmRlbGF5 X3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT50b3Rh bF90aW1lKTsKKworCUFzc2VydChpID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFU U19DT0xTKTsKKworCS8qIFJldHVybnMgdGhlIHJlY29yZCBhcyBEYXR1bSAqLworCVBHX1JF VFVSTl9EQVRVTShIZWFwVHVwbGVHZXREYXR1bShoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywg dmFsdWVzLCBudWxscykpKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDkx NWE1YTc4MjJmLi5lOTU3NzgxYjYyMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBA IC0xMjYzMCw0ICsxMjYzMCwxMyBAQAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9yZXZf YWxsX2Zyb3plbl9wYWdlcycsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcGFyYWxsZWwg PT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCiAg IHByb3NyYyA9PiAncGdfc3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMnIH0sCit7IG9p ZCA9PiAnODAwNCcsCisgIGRlc2NyID0+ICdwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyBy ZXR1cm4gc3RhdHMgdmFsdWVzJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfdmFjdXVt X2luZGV4ZXMnLCBwcm9yb3dzID0+IDEwMDAsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0 dHlwZSA9PiAncmVjb3JkJyxwcm9pc3N0cmljdCA9PiAnZicsCisgIHByb3JldHNldCA9PiAn dCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne29p ZCxvaWQsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50 OCxudW1lcmljLGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OH0nLAorICBwcm9hcmdtb2Rl cyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmdu YW1lcyA9PiAne3JlbG9pZCxyZWxpZCx0b3RhbF9ibGtzX3JlYWQsdG90YWxfYmxrc19oaXQs dG90YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRlbixyZWxfYmxrc19yZWFkLHJl bF9ibGtzX2hpdCxwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkLHdhbF9yZWNvcmRzLHdh bF9mcGksd2FsX2J5dGVzLGJsa19yZWFkX3RpbWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGlt ZSx0b3RhbF90aW1lfScsCisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4 ZXMnIH0KIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oIGIv c3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKaW5kZXggNmI5OTdiYzdmYjEuLmI0OGFj ZTYwODRiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAorKysg Yi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaApAQCAtMjUsNiArMjUsNyBAQAogI2lu Y2x1ZGUgInN0b3JhZ2UvYnVmLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCiAjaW5j bHVkZSAidXRpbHMvcmVsY2FjaGUuaCIKKyNpbmNsdWRlICJwZ3N0YXQuaCIKIAogLyoKICAq IEZsYWdzIGZvciBhbXBhcmFsbGVsdmFjdXVtb3B0aW9ucyB0byBjb250cm9sIHRoZSBwYXJ0 aWNpcGF0aW9uIG9mIGJ1bGtkZWxldGUKQEAgLTMwMCw2ICszMDEsMjYgQEAgdHlwZWRlZiBz dHJ1Y3QgVmFjRGVhZEl0ZW1zSW5mbwogCWludDY0CQludW1faXRlbXM7CQkvKiBjdXJyZW50 ICMgb2YgZW50cmllcyAqLwogfSBWYWNEZWFkSXRlbXNJbmZvOwogCisvKgorICogQ291bnRl cnMgYW5kIHVzYWdlIGRhdGEgZm9yIGV4dGVuZGVkIHN0YXRzIHRyYWNraW5nLgorICovCit0 eXBlZGVmIHN0cnVjdCBMVkV4dFN0YXRDb3VudGVycworeworCVRpbWVzdGFtcFR6IHN0YXJ0 dGltZTsKKwlXYWxVc2FnZQl3YWx1c2FnZTsKKwlCdWZmZXJVc2FnZSBidWZ1c2FnZTsKKwlk b3VibGUJCVZhY3V1bURlbGF5VGltZTsKKwlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hl ZDsKKwlQZ1N0YXRfQ291bnRlciBibG9ja3NfaGl0OworfQkJCUxWRXh0U3RhdENvdW50ZXJz OworCit0eXBlZGVmIHN0cnVjdCBMVkV4dFN0YXRDb3VudGVyc0lkeAoreworCUxWRXh0U3Rh dENvdW50ZXJzIGNvbW1vbjsKKwlpbnQ2NAkJcGFnZXNfZGVsZXRlZDsKKwlpbnQ2NAkJdHVw bGVzX3JlbW92ZWQ7Cit9CQkJTFZFeHRTdGF0Q291bnRlcnNJZHg7CisKIC8qIEdVQyBwYXJh bWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgaW50IGRlZmF1bHRfc3RhdGlzdGljc190 YXJnZXQ7CS8qIFBHRExMSU1QT1JUIGZvciBQb3N0R0lTICovCiBleHRlcm4gUEdETExJTVBP UlQgaW50IHZhY3V1bV9mcmVlemVfbWluX2FnZTsKQEAgLTQxMyw0ICs0MzQsOCBAQCBleHRl cm4gZG91YmxlIGFubF9yYW5kb21fZnJhY3Qodm9pZCk7CiBleHRlcm4gZG91YmxlIGFubF9p bml0X3NlbGVjdGlvbl9zdGF0ZShpbnQgbik7CiBleHRlcm4gZG91YmxlIGFubF9nZXRfbmV4 dF9TKGRvdWJsZSB0LCBpbnQgbiwgZG91YmxlICpzdGF0ZXB0cik7CiAKK2V4dGVybiB2b2lk IGV4dHZhY19zdGF0c19zdGFydF9pZHgoUmVsYXRpb24gcmVsLCBJbmRleEJ1bGtEZWxldGVS ZXN1bHQgKnN0YXRzLAorCQkJCQkJCQkgICBMVkV4dFN0YXRDb3VudGVyc0lkeCAqIGNvdW50 ZXJzKTsKK2V4dGVybiB2b2lkIGV4dHZhY19zdGF0c19lbmRfaWR4KFJlbGF0aW9uIHJlbCwg SW5kZXhCdWxrRGVsZXRlUmVzdWx0ICpzdGF0cywKKwkJCQkJCQkJIExWRXh0U3RhdENvdW50 ZXJzSWR4ICogY291bnRlcnMsIEV4dFZhY1JlcG9ydCAqIHJlcG9ydCk7CiAjZW5kaWYJCQkJ CQkJLyogVkFDVVVNX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIv c3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5kZXggNDZkMTJmYTNiZDAuLmYyODgxZGJiNmY5IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0 YXQuaApAQCAtMTE0LDExICsxMTQsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X0JhY2tl bmRTdWJFbnRyeQogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2NvdW50W0NPTkZMSUNUX05V TV9UWVBFU107CiB9IFBnU3RhdF9CYWNrZW5kU3ViRW50cnk7CiAKKy8qIFR5cGUgb2YgRXh0 VmFjUmVwb3J0ICovCit0eXBlZGVmIGVudW0gRXh0VmFjUmVwb3J0VHlwZQoreworCVBHU1RB VF9FWFRWQUNfSU5WQUxJRCA9IDAsCisJUEdTVEFUX0VYVFZBQ19UQUJMRSA9IDEsCisJUEdT VEFUX0VYVFZBQ19JTkRFWCA9IDIKK30gRXh0VmFjUmVwb3J0VHlwZTsKKwogLyogLS0tLS0t LS0tLQogICoKICAqIEV4dFZhY1JlcG9ydAogICoKLSAqIEFkZGl0aW9uYWwgc3RhdGlzdGlj cyBvZiB2YWN1dW0gcHJvY2Vzc2luZyBvdmVyIGEgaGVhcCByZWxhdGlvbi4KKyAqIEFkZGl0 aW9uYWwgc3RhdGlzdGljcyBvZiB2YWN1dW0gcHJvY2Vzc2luZyBvdmVyIGEgcmVsYXRpb24u CiAgKiBwYWdlc19yZW1vdmVkIGlzIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHBoeXNpY2Fs bHkgc2hyYW5rLAogICogaWYgYW55IChpZSB0aGUgY2hhbmdlIGluIGl0cyB0b3RhbCBzaXpl IG9uIGRpc2spCiAgKiBwYWdlc19kZWxldGVkIHJlZmVyIHRvIGZyZWUgc3BhY2Ugd2l0aGlu IHRoZSBpbmRleCBmaWxlCkBAIC0xNTUsMjMgKzE2Myw1OCBAQCB0eXBlZGVmIHN0cnVjdCBF eHRWYWNSZXBvcnQKIAkJCQkJCQkJICogcG9pbnQsIGluIG1zZWMgKi8KIAlkb3VibGUJCXRv dGFsX3RpbWU7CQkvKiB0b3RhbCB0aW1lIG9mIGEgdmFjdXVtIG9wZXJhdGlvbiwgaW4gbXNl YyAqLwogCi0JaW50NjQJCXBhZ2VzX3NjYW5uZWQ7CS8qIGhlYXAgcGFnZXMgZXhhbWluZWQg KG5vdCBza2lwcGVkIGJ5IFZNKSAqLwotCWludDY0CQlwYWdlc19yZW1vdmVkOwkvKiBoZWFw IHBhZ2VzIHJlbW92ZWQgYnkgdmFjdXVtICJ0cnVuY2F0aW9uIiAqLwotCWludDY0CQl2bV9u ZXdfZnJvemVuX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgZnJvemVuICovCi0J aW50NjQJCXZtX25ld192aXNpYmxlX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMg YWxsLXZpc2libGUgKi8KLQlpbnQ2NAkJdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOwkv KiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMKLQkJCQkJCQkJCQkJCSAqIGFsbC12aXNpYmxlIGFu ZCBmcm96ZW4gKi8KLQlpbnQ2NAkJbWlzc2VkX2RlYWRfdHVwbGVzOyAvKiB0dXBsZXMgbm90 IHBydW5lZCBieSB2YWN1dW0gZHVlIHRvCi0JCQkJCQkJCQkgKiBmYWlsdXJlIHRvIGdldCBh IGNsZWFudXAgbG9jayAqLwotCWludDY0CQltaXNzZWRfZGVhZF9wYWdlczsJLyogcGFnZXMg d2l0aCBtaXNzZWQgZGVhZCB0dXBsZXMgKi8KIAlpbnQ2NAkJdHVwbGVzX2RlbGV0ZWQ7IC8q IHR1cGxlcyBkZWxldGVkIGJ5IHZhY3V1bSAqLwotCWludDY0CQl0dXBsZXNfZnJvemVuOwkv KiB0dXBsZXMgZnJvemVuIHVwIGJ5IHZhY3V1bSAqLwotCWludDY0CQlyZWNlbnRseV9kZWFk X3R1cGxlczsJLyogZGVsZXRlZCB0dXBsZXMgdGhhdCBhcmUgc3RpbGwKLQkJCQkJCQkJCQkg KiB2aXNpYmxlIHRvIHNvbWUgdHJhbnNhY3Rpb24gKi8KLQlpbnQ2NAkJaW5kZXhfdmFjdXVt X2NvdW50OyAvKiB0aGUgbnVtYmVyIG9mIGluZGV4IHZhY3V1bWluZ3MgKi8KLQlpbnQzMgkJ d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsJLyogbnVtYmVyIG9mIGVtZXJnZW5jeSB2YWN1 dW1zIHRvCi0JCQkJCQkJCQkJCSAqIHByZXZlbnQgYW50aS13cmFwYXJvdW5kCi0JCQkJCQkJ CQkJCSAqIHNodXRkb3duICovCisKKwlFeHRWYWNSZXBvcnRUeXBlIHR5cGU7CQkvKiBoZWFw LCBpbmRleCwgZXRjLiAqLworCisJLyogLS0tLS0tLS0tLQorCSAqCisJICogVGhlcmUgYXJl IHNlcGFyYXRlIG1ldHJpY3Mgb2Ygc3RhdGlzdGljIGZvciB0YWJsZXMgYW5kIGluZGV4ZXMs CisJICogd2hpY2ggY29sbGVjdCBkdXJpbmcgdmFjdXVtLgorCSAqIFRoZSB1bmlvbiBvcGVy YXRvciBhbGxvd3MgdG8gY29tYmluZSB0aGVzZSBzdGF0aXN0aWNzCisJICogc28gdGhhdCBl YWNoIG1ldHJpYyBpcyBhc3NpZ25lZCB0byBhIHNwZWNpZmljIGNsYXNzIG9mIGNvbGxlY3Rl ZCBzdGF0aXN0aWNzLgorCSAqIFN1Y2ggYSBjb21iaW5lZCBzdHJ1Y3R1cmUgd2FzIGNhbGxl ZCBwZXJfdHlwZV9zdGF0cy4KKwkgKiBUaGUgbmFtZSBvZiB0aGUgc3RydWN0dXJlIGl0c2Vs ZiBpcyBub3QgdXNlZCBhbnl3aGVyZSwKKwkgKiBpdCBleGlzdHMgb25seSBmb3IgdW5kZXJz dGFuZGluZyB0aGUgY29kZS4KKwkgKiAtLS0tLS0tLS0tCisJKi8KKwl1bmlvbgorCXsKKwkJ c3RydWN0CisJCXsKKwkJCWludDY0CQlwYWdlc19zY2FubmVkOwkvKiBoZWFwIHBhZ2VzIGV4 YW1pbmVkIChub3Qgc2tpcHBlZCBieQorCQkJCQkJCQkJCSAqIFZNKSAqLworCQkJaW50NjQJ CXBhZ2VzX3JlbW92ZWQ7CS8qIGhlYXAgcGFnZXMgcmVtb3ZlZCBieSB2YWN1dW0KKwkJCQkJ CQkJCQkgKiAidHJ1bmNhdGlvbiIgKi8KKwkJCWludDY0CQlwYWdlc19mcm96ZW47CS8qIHBh Z2VzIG1hcmtlZCBpbiBWTSBhcyBmcm96ZW4gKi8KKwkJCWludDY0CQlwYWdlc19hbGxfdmlz aWJsZTsJLyogcGFnZXMgbWFya2VkIGluIFZNIGFzCisJCQkJCQkJCQkJCSAqIGFsbC12aXNp YmxlICovCisJCQlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJLyogdHVwbGVzIGZyb3plbiB1cCBi eSB2YWN1dW0gKi8KKwkJCWludDY0CQlyZWNlbnRseV9kZWFkX3R1cGxlczsJLyogZGVsZXRl ZCB0dXBsZXMgdGhhdCBhcmUKKwkJCQkJCQkJCQkJCSAqIHN0aWxsIHZpc2libGUgdG8gc29t ZQorCQkJCQkJCQkJCQkJICogdHJhbnNhY3Rpb24gKi8KKwkJCWludDY0CQl2bV9uZXdfZnJv emVuX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMKKwkJCQkJCQkJCQkJCSAqIGZy b3plbiAqLworCQkJaW50NjQJCXZtX25ld192aXNpYmxlX3BhZ2VzOwkvKiBwYWdlcyBtYXJr ZWQgaW4gVk0gYXMKKwkJCQkJCQkJCQkJCSAqIGFsbC12aXNpYmxlICovCisJCQlpbnQ2NAkJ dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMK KwkJCQkJCQkJCQkJCQkJICogYWxsLXZpc2libGUgYW5kCisJCQkJCQkJCQkJCQkJCSAqIGZy b3plbiAqLworCQkJaW50NjQJCW1pc3NlZF9kZWFkX3R1cGxlczsgLyogdHVwbGVzIG5vdCBw cnVuZWQgYnkgdmFjdXVtIGR1ZQorCQkJCQkJCQkJCQkgKiB0byBmYWlsdXJlIHRvIGdldCBh IGNsZWFudXAKKwkJCQkJCQkJCQkJICogbG9jayAqLworCQkJaW50NjQJCW1pc3NlZF9kZWFk X3BhZ2VzOwkvKiBwYWdlcyB3aXRoIG1pc3NlZCBkZWFkIHR1cGxlcyAqLworCQkJaW50NjQJ CWluZGV4X3ZhY3V1bV9jb3VudDsgLyogbnVtYmVyIG9mIGluZGV4IHZhY3V1bWluZ3MgKi8K KwkJCWludDMyCQl3cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OwkvKiBudW1iZXIgb2YgZW1l cmdlbmN5CisJCQkJCQkJCQkJCQkJICogdmFjdXVtcyB0byBwcmV2ZW50CisJCQkJCQkJCQkJ CQkJICogYW50aS13cmFwYXJvdW5kCisJCQkJCQkJCQkJCQkJICogc2h1dGRvd24gKi8KKwkJ fQkJCXRhYmxlOworCQlzdHJ1Y3QKKwkJeworCQkJaW50NjQJCXBhZ2VzX2RlbGV0ZWQ7CS8q IG51bWJlciBvZiBwYWdlcyBkZWxldGVkIGJ5IHZhY3V1bSAqLworCQl9CQkJaW5kZXg7CisJ fSAvKiBwZXJfdHlwZV9zdGF0cyAqLyA7CiB9CQkJRXh0VmFjUmVwb3J0OwogCiAvKiAtLS0t LS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVt LWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQKaW5kZXgg ODdmN2U0MGI0YTYuLjZkOTYwNDIzOTEyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRp b24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQKKysr IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVw ZXRhYmxlLXJlYWQub3V0CkBAIC0zNCw3ICszNCw3IEBAIHN0ZXAgczJfcHJpbnRfdmFjdXVt X3N0YXRzX3RhYmxlOgogCiByZWxuYW1lICAgICAgICAgICAgICAgICAgIHx0dXBsZXNfZGVs ZXRlZHxyZWNlbnRseV9kZWFkX3R1cGxlc3xtaXNzZWRfZGVhZF90dXBsZXN8bWlzc2VkX2Rl YWRfcGFnZXN8dHVwbGVzX2Zyb3plbgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLXRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0 aW9ufCAgICAgICAgICAgICAwfCAgICAgICAgICAgICAgICAgMTAwfCAgICAgICAgICAgICAg ICAgMHwgICAgICAgICAgICAgICAgMHwgICAgICAgICAgICAwCit0ZXN0X3ZhY3V1bV9zdGF0 X2lzb2xhdGlvbnwgICAgICAgICAgICAgMHwgICAgICAgICAgICAgICAgIDYwMHwgICAgICAg ICAgICAgICAgIDB8ICAgICAgICAgICAgICAgIDB8ICAgICAgICAgICAgMAogKDEgcm93KQog CiBzdGVwIHMxX2NvbW1pdDogQ09NTUlUOwpAQCAtNDgsNiArNDgsNiBAQCBzdGVwIHMyX3By aW50X3ZhY3V1bV9zdGF0c190YWJsZToKIAogcmVsbmFtZSAgICAgICAgICAgICAgICAgICB8 dHVwbGVzX2RlbGV0ZWR8cmVjZW50bHlfZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfdHVwbGVz fG1pc3NlZF9kZWFkX3BhZ2VzfHR1cGxlc19mcm96ZW4KIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi10ZXN0X3ZhY3V1bV9z dGF0X2lzb2xhdGlvbnwgICAgICAgICAgIDEwMHwgICAgICAgICAgICAgICAgIDEwMHwgICAg ICAgICAgICAgICAgIDB8ICAgICAgICAgICAgICAgIDB8ICAgICAgICAgIDEwMQordGVzdF92 YWN1dW1fc3RhdF9pc29sYXRpb258ICAgICAgICAgICAzMDB8ICAgICAgICAgICAgICAgICA2 MDB8ICAgICAgICAgICAgICAgICAwfCAgICAgICAgICAgICAgICAwfCAgICAgICAgICAzMDMK ICgxIHJvdykKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfdmFjdXVt X2V4dGVuZGluZ19iYXNpY190ZXN0LnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfdmFj dXVtX2V4dGVuZGluZ19iYXNpY190ZXN0LnBsCmluZGV4IDdlMjVhM2ZlNjNmLi44ZjdiMWUy OTA5YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfdmFjdXVtX2V4dGVu ZGluZ19iYXNpY190ZXN0LnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3ZhY3V1 bV9leHRlbmRpbmdfYmFzaWNfdGVzdC5wbApAQCAtMiw5ICsyLDEwIEBACiAjIFRlc3QgY3Vt dWxhdGl2ZSB2YWN1dW0gc3RhdHMgc3lzdGVtIHVzaW5nIFRBUAogIwogIyBUaGlzIHRlc3Qg dmFsaWRhdGVzIHRoZSBhY2N1cmFjeSBhbmQgYmVoYXZpb3Igb2YgY3VtdWxhdGl2ZSB2YWN1 dW0gc3RhdGlzdGljcwotIyBhY3Jvc3MgdGFibGVzIHVzaW5nOgorIyBhY3Jvc3MgaGVhcCB0 YWJsZXMsIGluZGV4ZXMgdXNpbmc6CiAjCiAjICAg4oCiIHBnX3N0YXRfdmFjdXVtX3RhYmxl cworIyAgIOKAoiBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzCiAjCiAjIEEgcG9sbGluZyBoZWxw ZXIgZnVuY3Rpb24gcmVwZWF0ZWRseSBjaGVja3MgdGhlIHN0YXRzIHZpZXdzIHVudGlsIGV4 cGVjdGVkCiAjIGRlbHRhcyBhcHBlYXIgb3IgYSBjb25maWd1cmFibGUgdGltZW91dCBleHBp cmVzLiBUaGlzIGd1YXJhbnRlZXMgdGhhdApAQCAtNjIsNyArNjMsNyBAQCAkbm9kZS0+c2Fm ZV9wc3FsKCRkYm5hbWUsIHF7CiAKICRub2RlLT5zYWZlX3BzcWwoCiAgICAgJGRibmFtZSwK LSAgICAiQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpCisgICAgIkNSRUFURSBUQUJMRSB2 ZXN0YXQgKHggaW50IFBSSU1BUlkgS0VZKQogICAgICAgICAgV0lUSCAoYXV0b3ZhY3V1bV9l bmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOwogICAgICBJTlNFUlQgSU5UTyB2ZXN0 YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgJHNpemVfdGFiKSBBUyBnKHgp OwogICAgICBBTkFMWVpFIHZlc3RhdDsiCkBAIC04MCwxMiArODEsMTUgQEAgbXkgJHVwZGF0 ZWQgICAgPSAwOwogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyB3YWl0X2Zvcl92YWN1 dW1fc3RhdHMKICMKLSMgUG9sbHMgcGdfc3RhdF92YWN1dW1fdGFibGVzIHVudGlsIHRoZSB0 YWJsZS1sZXZlbCBjb3VudGVycyBleGNlZWQKLSMgdGhlIHByb3ZpZGVkIGJhc2VsaW5lcywg b3IgdW50aWwgdGhlIGNvbmZpZ3VyZWQgdGltZW91dCBlbGFwc2VzLgorIyBQb2xscyBwZ19z dGF0X3ZhY3V1bV90YWJsZXMgYW5kIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdW50aWwgYm90 aCB0aGUKKyMgdGFibGUtbGV2ZWwgYW5kIGluZGV4LWxldmVsIGNvdW50ZXJzIGV4Y2VlZCB0 aGUgcHJvdmlkZWQgYmFzZWxpbmVzLCBvciB1bnRpbAorIyB0aGUgY29uZmlndXJlZCB0aW1l b3V0IGVsYXBzZXMuCiAjCiAjIEV4cGVjdGVkIG5hbWVkIGFyZ3MgKGJhc2VsaW5lIHZhbHVl cyk6CiAjICAgdGFiX3R1cGxlc19kZWxldGVkCiAjICAgdGFiX3dhbF9yZWNvcmRzCisjICAg aWR4X3R1cGxlc19kZWxldGVkCisjICAgaWR4X3dhbF9yZWNvcmRzCiAjCiAjIFJldHVybnM6 IDEgaWYgdGhlIGNvbmRpdGlvbiBpcyBtZXQgYmVmb3JlIHRpbWVvdXQsIDAgb3RoZXJ3aXNl LgogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTQsNiArOTgsOCBAQCBzdWIgd2Fp dF9mb3JfdmFjdXVtX3N0YXRzIHsKICAgICBteSAoJWFyZ3MpID0gQF87CiAgICAgbXkgJHRh Yl90dXBsZXNfZGVsZXRlZCA9ICRhcmdze3RhYl90dXBsZXNfZGVsZXRlZH0gb3IgMDsKICAg ICBteSAkdGFiX3dhbF9yZWNvcmRzICAgID0gJGFyZ3N7dGFiX3dhbF9yZWNvcmRzfSBvciAw OworICAgIG15ICRpZHhfdHVwbGVzX2RlbGV0ZWQgPSAkYXJnc3tpZHhfdHVwbGVzX2RlbGV0 ZWR9IG9yIDA7CisgICAgbXkgJGlkeF93YWxfcmVjb3JkcyAgICA9ICRhcmdze2lkeF93YWxf cmVjb3Jkc30gb3IgMDsKIAogICAgIG15ICRzdGFydCA9IHRpbWUoKTsKICAgICB3aGlsZSAo KHRpbWUoKSAtICRzdGFydCkgPCAkdGltZW91dCkgewpAQCAtMTAxLDkgKzEwNywxNCBAQCBz dWIgd2FpdF9mb3JfdmFjdXVtX3N0YXRzIHsKICAgICAgICAgbXkgJHJlc3VsdF9xdWVyeSA9 ICRub2RlLT5zYWZlX3BzcWwoCiAgICAgICAgICAgICAkZGJuYW1lLAogICAgICAgICAgICAg IlZBQ1VVTSB2ZXN0YXQ7Ci0gICAgICAgICAgICAgU0VMRUNUIHR1cGxlc19kZWxldGVkID4g JHRhYl90dXBsZXNfZGVsZXRlZCBBTkQgd2FsX3JlY29yZHMgPiAkdGFiX3dhbF9yZWNvcmRz CisgICAgICAgICAgICAgU0VMRUNUCisgICAgICAgICAgICAgICAgKFNFTEVDVCAodHVwbGVz X2RlbGV0ZWQgPiAkdGFiX3R1cGxlc19kZWxldGVkIEFORCB3YWxfcmVjb3JkcyA+ICR0YWJf d2FsX3JlY29yZHMpCiAgICAgICAgICAgICAgICAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcwotICAgICAgICAgICAgICAgICAgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOyIKKyAg ICAgICAgICAgICAgICAgIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JykKKyAgICAgICAgICAg ICAgICBBTkQKKyAgICAgICAgICAgICAgICAoU0VMRUNUICh0dXBsZXNfZGVsZXRlZCA+ICRp ZHhfdHVwbGVzX2RlbGV0ZWQgQU5EIHdhbF9yZWNvcmRzID4gJGlkeF93YWxfcmVjb3JkcykK KyAgICAgICAgICAgICAgICAgIEZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcworICAgICAg ICAgICAgICAgICAgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScpOyIKICAgICAgICAg KTsKIAogICAgICAgICByZXR1cm4gMSBpZiAoJHJlc3VsdF9xdWVyeSBlcSAndCcpOwpAQCAt MTI2LDYgKzEzNywxMiBAQCBteSAkd2FsX3JlY29yZHMgPSAwOwogbXkgJHdhbF9ieXRlcyA9 IDA7CiBteSAkd2FsX2ZwaSA9IDA7CiAKK215ICRpbmRleF90dXBsZXNfZGVsZXRlZCA9IDA7 CitteSAkaW5kZXhfcGFnZXNfZGVsZXRlZCA9IDA7CitteSAkaW5kZXhfd2FsX3JlY29yZHMg PSAwOworbXkgJGluZGV4X3dhbF9ieXRlcyA9IDA7CitteSAkaW5kZXhfd2FsX2ZwaSA9IDA7 CisKIG15ICRwYWdlc19mcm96ZW5fcHJldiA9IDA7CiBteSAkdHVwbGVzX2RlbGV0ZWRfcHJl diA9IDA7CiBteSAkcGFnZXNfc2Nhbm5lZF9wcmV2ID0gMDsKQEAgLTEzNCwxMSArMTUxLDE3 IEBAIG15ICR3YWxfcmVjb3Jkc19wcmV2ID0gMDsKIG15ICR3YWxfYnl0ZXNfcHJldiA9IDA7 CiBteSAkd2FsX2ZwaV9wcmV2ID0gMDsKIAorbXkgJGluZGV4X3R1cGxlc19kZWxldGVkX3By ZXYgPSAwOworbXkgJGluZGV4X3BhZ2VzX2RlbGV0ZWRfcHJldiA9IDA7CitteSAkaW5kZXhf d2FsX3JlY29yZHNfcHJldiA9IDA7CitteSAkaW5kZXhfd2FsX2J5dGVzX3ByZXYgPSAwOwor bXkgJGluZGV4X3dhbF9mcGlfcHJldiA9IDA7CisKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICMgZmV0Y2hfdmFjdXVtX3N0YXRzCiAjCi0jIFJlYWRzIGN1cnJlbnQgdmFsdWVzIG9m IHJlbGV2YW50IHZhY3V1bSBjb3VudGVycyBmb3IgdGhlIHRlc3QgdGFibGUsCi0jIHN0b3Jp bmcgdGhlbSBpbiBwYWNrYWdlIHZhcmlhYmxlcyBmb3Igc3Vic2VxdWVudCBjb21wYXJpc29u cy4KKyMgUmVhZHMgY3VycmVudCB2YWx1ZXMgb2YgcmVsZXZhbnQgdmFjdXVtIGNvdW50ZXJz IGZvciB0aGUgdGVzdCB0YWJsZSBhbmQgaXRzCisjIHByaW1hcnkgaW5kZXgsIHN0b3Jpbmcg dGhlbSBpbiBwYWNrYWdlIHZhcmlhYmxlcyBmb3Igc3Vic2VxdWVudCBjb21wYXJpc29ucy4K ICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogc3ViIGZldGNoX3ZhY3V1bV9zdGF0cyB7 CkBAIC0xNTMsNiArMTc2LDE4IEBAIHN1YiBmZXRjaF92YWN1dW1fc3RhdHMgewogICAgICRi YXNlX3N0YXRpc3RpY3MgPX4gcy9ccypcfFxzKi8gL2c7ICAgIyB0cmFuc2Zvcm0gIiB8ICIg aW50byBzcGFjZQogICAgICgkcGFnZXNfZnJvemVuLCAkdHVwbGVzX2RlbGV0ZWQsICRwYWdl c19zY2FubmVkLCAkcGFnZXNfcmVtb3ZlZCwgJHdhbF9yZWNvcmRzLCAkd2FsX2J5dGVzLCAk d2FsX2ZwaSkKICAgICAgICAgPSBzcGxpdCAvXHMrLywgJGJhc2Vfc3RhdGlzdGljczsKKwor ICAgICMgLS0tIGluZGV4IHN0YXRzIC0tLQorICAgIG15ICRpbmRleF9iYXNlX3N0YXRpc3Rp Y3MgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICAgICAkZGJuYW1lLAorICAgICAgICAiU0VM RUNUIHR1cGxlc19kZWxldGVkLCBwYWdlc19kZWxldGVkLCB3YWxfcmVjb3Jkcywgd2FsX2J5 dGVzLCB3YWxfZnBpCisgICAgICAgICAgIEZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcwor ICAgICAgICAgIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknOyIKKyAgICApOworCisg ICAgJGluZGV4X2Jhc2Vfc3RhdGlzdGljcyA9fiBzL1xzKlx8XHMqLyAvZzsgICAjIHRyYW5z Zm9ybSAiIHwgIiBpbnRvIHNwYWNlCisgICAgKCRpbmRleF90dXBsZXNfZGVsZXRlZCwgJGlu ZGV4X3BhZ2VzX2RlbGV0ZWQsICRpbmRleF93YWxfcmVjb3JkcywgJGluZGV4X3dhbF9ieXRl cywgJGluZGV4X3dhbF9mcGkpCisgICAgICAgID0gc3BsaXQgL1xzKy8sICRpbmRleF9iYXNl X3N0YXRpc3RpY3M7CiB9CiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE2OSw2 ICsyMDQsMTIgQEAgc3ViIHNhdmVfdmFjdXVtX3N0YXRzIHsKICAgICAkd2FsX3JlY29yZHNf cHJldiA9ICR3YWxfcmVjb3JkczsKICAgICAkd2FsX2J5dGVzX3ByZXYgPSAkd2FsX2J5dGVz OwogICAgICR3YWxfZnBpX3ByZXYgPSAkd2FsX2ZwaTsKKworICAgICRpbmRleF90dXBsZXNf ZGVsZXRlZF9wcmV2ID0gJGluZGV4X3R1cGxlc19kZWxldGVkOworICAgICRpbmRleF9wYWdl c19kZWxldGVkX3ByZXYgPSAkaW5kZXhfcGFnZXNfZGVsZXRlZDsKKyAgICAkaW5kZXhfd2Fs X3JlY29yZHNfcHJldiA9ICRpbmRleF93YWxfcmVjb3JkczsKKyAgICAkaW5kZXhfd2FsX2J5 dGVzX3ByZXYgPSAkaW5kZXhfd2FsX2J5dGVzOworICAgICRpbmRleF93YWxfZnBpX3ByZXYg PSAkaW5kZXhfd2FsX2ZwaTsKIH0KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAt MTk1LDcgKzIzNiwyMCBAQCBzdWIgcHJpbnRfdmFjdXVtX3N0YXRzX29uX2Vycm9yIHsKICAg ICAgICAgICAgICIgICAgcGFnZXNfcmVtb3ZlZCAgICAgPSAkcGFnZXNfcmVtb3ZlZFxuIiAu CiAgICAgICAgICAgICAiICAgIHdhbF9yZWNvcmRzICAgICAgID0gJHdhbF9yZWNvcmRzXG4i IC4KICAgICAgICAgICAgICIgICAgd2FsX2J5dGVzICAgICAgICAgPSAkd2FsX2J5dGVzXG4i IC4KLSAgICAgICAgICAgICIgICAgd2FsX2ZwaSAgICAgICAgICAgPSAkd2FsX2ZwaVxuIgor ICAgICAgICAgICAgIiAgICB3YWxfZnBpICAgICAgICAgICA9ICR3YWxfZnBpXG4iIC4KKyAg ICAgICAgICAgICJJbmRleCBzdGF0aXN0aWNzOlxuIiAuCisgICAgICAgICAgICAiICAgQmVm b3JlIHRlc3Q6XG4iIC4KKyAgICAgICAgICAgICIgICAgdHVwbGVzX2RlbGV0ZWQgICAgPSAk aW5kZXhfdHVwbGVzX2RlbGV0ZWRfcHJldlxuIiAuCisgICAgICAgICAgICAiICAgIHBhZ2Vz X3JlbW92ZWQgICAgID0gJGluZGV4X3BhZ2VzX2RlbGV0ZWRfcHJldlxuIiAuCisgICAgICAg ICAgICAiICAgIHdhbF9yZWNvcmRzICAgICAgID0gJGluZGV4X3dhbF9yZWNvcmRzX3ByZXZc biIgLgorICAgICAgICAgICAgIiAgICB3YWxfYnl0ZXMgICAgICAgICA9ICRpbmRleF93YWxf Ynl0ZXNfcHJldlxuIiAuCisgICAgICAgICAgICAiICAgIHdhbF9mcGkgICAgICAgICAgID0g JGluZGV4X3dhbF9mcGlfcHJldlxuIiAuCisgICAgICAgICAgICAiICBBZnRlciB0ZXN0Olxu IiAuCisgICAgICAgICAgICAiICAgIHR1cGxlc19kZWxldGVkICAgID0gJGluZGV4X3R1cGxl c19kZWxldGVkXG4iIC4KKyAgICAgICAgICAgICIgICAgcGFnZXNfcmVtb3ZlZCAgICAgPSAk aW5kZXhfcGFnZXNfZGVsZXRlZFxuIiAuCisgICAgICAgICAgICAiICAgIHdhbF9yZWNvcmRz ICAgICAgID0gJGluZGV4X3dhbF9yZWNvcmRzXG4iIC4KKyAgICAgICAgICAgICIgICAgd2Fs X2J5dGVzICAgICAgICAgPSAkaW5kZXhfd2FsX2J5dGVzXG4iIC4KKyAgICAgICAgICAgICIg ICAgd2FsX2ZwaSAgICAgICAgICAgPSAkaW5kZXhfd2FsX2ZwaVxuIgogICAgICk7CiB9Owog CkBAIC0yMDMsNyArMjU3LDggQEAgc3ViIHByaW50X3ZhY3V1bV9zdGF0c19vbl9lcnJvciB7 CiAjIGZldGNoX3ZhY3V1bV9zdGF0cyBkdXJpbmcgbWlzbWF0Y2gKICMKICMgUHJpbnQgY3Vy cmVudCB2YWx1ZXMgYW5kIG9sZCB2YWx1ZXMgb2YgcmVsZXZhbnQgdmFjdXVtIGNvdW50ZXJz IGZvciB0aGUgdGVzdAotIyB0YWJsZSwgc3RvcmluZyB0aGVtIGluIHBhY2thZ2UgdmFyaWFi bGVzIGZvciBzdWJzZXF1ZW50IGNvbXBhcmlzb25zLgorIyB0YWJsZSBhbmQgaXRzIHByaW1h cnkgaW5kZXgsIHN0b3JpbmcgdGhlbSBpbiBwYWNrYWdlIHZhcmlhYmxlcyBmb3Igc3Vic2Vx dWVudAorIyBjb21wYXJpc29ucy4KICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogc3Vi IGZldGNoX2Vycm9yX2Jhc2VfdGFiX3ZhY3V1bV9zdGF0aXN0aWNzIHsKQEAgLTI1OCw2ICsz MTMsNTQgQEAgc3ViIGZldGNoX2Vycm9yX3dhbF90YWJfdmFjdXVtX3N0YXRpc3RpY3Mgewog ICAgICk7CiB9CiAKK3N1YiBmZXRjaF9lcnJvcl9iYXNlX2lkeF92YWN1dW1fc3RhdGlzdGlj cyB7CisKKyAgICAjIGZldGNoIGFjdHVhbCBiYXNlIHZhY3V1bSBzdGF0aXN0aWNzCisgICAg bXkgJGJhc2Vfc3RhdGlzdGljcyA9ICRub2RlLT5zYWZlX3BzcWwoCisgICAgJGRibmFtZSwK KyAgICAiU0VMRUNUIHR1cGxlc19kZWxldGVkLCBwYWdlc19kZWxldGVkCisgICAgICAgRlJP TSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzCisgICAgICBXSEVSRSByZWxuYW1lID0gJ3Zlc3Rh dF9wa2V5JzsiCisgICAgKTsKKyAgICAkYmFzZV9zdGF0aXN0aWNzID1+IHMvXHMqXHxccyov IC9nOyAgICMgdHJhbnNmb3JtICIgfCAiIGluIHNwYWNlCisgICAgbXkgKCRjdXJfdHVwbGVz X2RlbGV0ZWQsICRjdXJfcGFnZXNfZGVsZXRlZCkgPSBzcGxpdCAvXHMrLywgJGJhc2Vfc3Rh dGlzdGljczsKKworICAgIGRpYWcoCisgICAgICAgICAgICAiQkFTRSBTVEFUUyBNSVNNQVRD SCBGT1IgSU5ERVg6XG4iIC4KKyAgICAgICAgICAgICIgIEJhc2VsaW5lOlxuIiAuCisgICAg ICAgICAgICAiICAgIHR1cGxlc19kZWxldGVkICAgID0gJGluZGV4X3R1cGxlc19kZWxldGVk XG4iIC4KKyAgICAgICAgICAgICIgICAgcGFnZXNfcmVtb3ZlZCAgICAgPSAkaW5kZXhfcGFn ZXNfZGVsZXRlZFxuIiAuCisgICAgICAgICAgICAiICBDdXJyZW50OlxuIiAuCisgICAgICAg ICAgICAiICAgIHR1cGxlc19kZWxldGVkICAgID0gJGN1cl90dXBsZXNfZGVsZXRlZFxuIiAu CisgICAgICAgICAgICAiICAgIHBhZ2VzX2RlbGV0ZWQgICAgID0gJGN1cl9wYWdlc19kZWxl dGVkXG4iCisgICAgKTsKK30KKworc3ViIGZldGNoX2Vycm9yX3dhbF9pZHhfdmFjdXVtX3N0 YXRpc3RpY3MgeworCisgICAgbXkgJHdhbF9yYXcgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAg ICAgICAkZGJuYW1lLAorICAgICAgICAiU0VMRUNUIHdhbF9yZWNvcmRzLCB3YWxfYnl0ZXMs IHdhbF9mcGkKKyAgICAgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzCisgICAgICAg IFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknOyIKKyAgICApOworCisgICAgJHdhbF9y YXcgPX4gcy9ccypcfFxzKi8gL2c7ICAgIyB0cmFuc2Zvcm0gIiB8ICIgaW4gc3BhY2UKKyAg ICBteSAoJGN1cl93YWxfcmVjLCAkY3VyX3dhbF9ieXRlcywgJGN1cl93YWxfZnBpKSA9IHNw bGl0IC9ccysvLCAkd2FsX3JhdzsKKworICAgIGRpYWcoCisgICAgICAgICAgICAiV0FMIFNU QVRTIE1JU01BVENIIEZPUiBJTkRFWDpcbiIgLgorICAgICAgICAgICAgIiAgQmFzZWxpbmU6 XG4iIC4KKyAgICAgICAgICAgICIgICAgd2FsX3JlY29yZHMgPSAkaW5kZXhfd2FsX3JlY29y ZHNcbiIgLgorICAgICAgICAgICAgIiAgICB3YWxfYnl0ZXMgICA9ICRpbmRleF93YWxfYnl0 ZXNcbiIgLgorICAgICAgICAgICAgIiAgICB3YWxfZnBpICAgICA9ICRpbmRleF93YWxfZnBp XG4iIC4KKyAgICAgICAgICAgICIgIEN1cnJlbnQ6XG4iIC4KKyAgICAgICAgICAgICIgICAg d2FsX3JlY29yZHMgPSAkY3VyX3dhbF9yZWNcbiIgLgorICAgICAgICAgICAgIiAgICB3YWxf Ynl0ZXMgICA9ICRjdXJfd2FsX2J5dGVzXG4iIC4KKyAgICAgICAgICAgICIgICAgd2FsX2Zw aSAgICAgPSAkY3VyX3dhbF9mcGlcbiIKKyAgICApOworfQorCiAjLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAjIFRlc3QgMTogRGVsZXRlIGhhbGYgdGhlIHJvd3MsIHJ1biBWQUNVVU0s IGFuZCB3YWl0IGZvciBzdGF0cyB0byBhZHZhbmNlCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCkBAIC0yNzAsNyArMzczLDkgQEAgJG5vZGUtPnNhZmVfcHNxbCgkZGJuYW1lLCAiVkFD VVVNIHZlc3RhdDsiKTsKICMgUG9sbCB0aGUgc3RhdHMgdmlldyB1bnRpbCBleHBlY3RlZCBk ZWx0YXMgYXBwZWFyIG9yIHRpbWVvdXQKICR1cGRhdGVkID0gd2FpdF9mb3JfdmFjdXVtX3N0 YXRzKAogICAgIHRhYl90dXBsZXNfZGVsZXRlZCA9PiAwLAotICAgIHRhYl93YWxfcmVjb3Jk cyA9PiAwCisgICAgdGFiX3dhbF9yZWNvcmRzID0+IDAsCisgICAgaWR4X3R1cGxlc19kZWxl dGVkID0+IDAsCisgICAgaWR4X3dhbF9yZWNvcmRzID0+IDAsCiApOwogb2soJHVwZGF0ZWQs ICd2YWN1dW0gc3RhdHMgdXBkYXRlZCBhZnRlciB2YWN1dW1pbmcgaGFsZi1kZWxldGVkIHRh YmxlICh0dXBsZXNfZGVsZXRlZCBhbmQgd2FsX2ZwaSBhZHZhbmNlZCknKQogICBvciBkaWFn ICJUaW1lb3V0IHdhaXRpbmcgZm9yIHBnX3N0YXRzX3ZhY3V1bV8qIHVwZGF0ZSBhZnRlciAk dGltZW91dCBzZWNvbmRzIGFmdGVyIHZhY3V1bWluZyBoYWxmLWRlbGV0ZWQgdGFibGUiOwpA QCAtMjkwLDYgKzM5NSwxMiBAQCBvaygkd2FsX3JlY29yZHMgPiAkd2FsX3JlY29yZHNfcHJl diwgJ3RhYmxlIHdhbF9yZWNvcmRzIGhhcyBpbmNyZWFzZWQnKTsKIG9rKCR3YWxfYnl0ZXMg PiAkd2FsX2J5dGVzX3ByZXYsICd0YWJsZSB3YWxfYnl0ZXMgaGFzIGluY3JlYXNlZCcpOwog b2soJHdhbF9mcGkgPiAkd2FsX2ZwaV9wcmV2LCAndGFibGUgd2FsX2ZwaSBoYXMgaW5jcmVh c2VkJyk7CiAKK29rKCRpbmRleF9wYWdlc19kZWxldGVkID09ICRpbmRleF9wYWdlc19kZWxl dGVkX3ByZXYsICdpbmRleCBwYWdlc19kZWxldGVkIHN0YXkgdGhlIHNhbWUnKTsKK29rKCRp bmRleF90dXBsZXNfZGVsZXRlZCA+ICRpbmRleF90dXBsZXNfZGVsZXRlZF9wcmV2LCAnaW5k ZXggdHVwbGVzX2RlbGV0ZWQgaGFzIGluY3JlYXNlZCcpOworb2soJGluZGV4X3dhbF9yZWNv cmRzID4gJGluZGV4X3dhbF9yZWNvcmRzX3ByZXYsICdpbmRleCB3YWxfcmVjb3JkcyBoYXMg aW5jcmVhc2VkJyk7CitvaygkaW5kZXhfd2FsX2J5dGVzID4gJGluZGV4X3dhbF9ieXRlc19w cmV2LCAnaW5kZXggd2FsX2J5dGVzIGhhcyBpbmNyZWFzZWQnKTsKK29rKCRpbmRleF93YWxf ZnBpID09ICRpbmRleF93YWxfZnBpX3ByZXYsICdpbmRleCB3YWxfZnBpIHN0YXkgdGhlIHNh bWUnKTsKKwogfSBvciBwcmludF92YWN1dW1fc3RhdHNfb25fZXJyb3IoKTsgIyBFbmQgb2Yg c3VidGVzdAogCiAjIFNhdmUgc3RhdGlzdGljcyBmb3IgdGhlIG5leHQgdGVzdApAQCAtMzA3 LDYgKzQxOCw4IEBAICRub2RlLT5zYWZlX3BzcWwoJGRibmFtZSwgIlZBQ1VVTSB2ZXN0YXQ7 Iik7CiAkdXBkYXRlZCA9IHdhaXRfZm9yX3ZhY3V1bV9zdGF0cygKICAgICB0YWJfdHVwbGVz X2RlbGV0ZWQgPT4gJHR1cGxlc19kZWxldGVkX3ByZXYsCiAgICAgdGFiX3dhbF9yZWNvcmRz ID0+ICR3YWxfcmVjb3Jkc19wcmV2LAorICAgIGlkeF90dXBsZXNfZGVsZXRlZCA9PiAkaW5k ZXhfdHVwbGVzX2RlbGV0ZWRfcHJldiwKKyAgICBpZHhfd2FsX3JlY29yZHMgPT4gJGluZGV4 X3dhbF9yZWNvcmRzX3ByZXYsCiApOwogCiBvaygkdXBkYXRlZCwgJ3ZhY3V1bSBzdGF0cyB1 cGRhdGVkIGFmdGVyIHZhY3V1bWluZyBhbGwtZGVsZXRlZCB0YWJsZSAodHVwbGVzX2RlbGV0 ZWQgYW5kIHdhbF9yZWNvcmRzIGFkdmFuY2VkKScpCkBAIC0zMjcsNiArNDQwLDEyIEBAIG9r KCR3YWxfcmVjb3JkcyA+ICR3YWxfcmVjb3Jkc19wcmV2LCAndGFibGUgd2FsX3JlY29yZHMg aGFzIGluY3JlYXNlZCcpOwogb2soJHdhbF9ieXRlcyA+ICR3YWxfYnl0ZXNfcHJldiwgJ3Rh YmxlIHdhbF9ieXRlcyBoYXMgaW5jcmVhc2VkJyk7CiBvaygkd2FsX2ZwaSA9PSAkd2FsX2Zw aV9wcmV2LCAndGFibGUgd2FsX2ZwaSBzdGF5IHRoZSBzYW1lJyk7CiAKK29rKCRpbmRleF9w YWdlc19kZWxldGVkID4gJGluZGV4X3BhZ2VzX2RlbGV0ZWRfcHJldiwgJ2luZGV4IHBhZ2Vz X2RlbGV0ZWQgaGFzIGluY3JlYXNlZCcpOworb2soJGluZGV4X3R1cGxlc19kZWxldGVkID4g JGluZGV4X3R1cGxlc19kZWxldGVkX3ByZXYsICdpbmRleCB0dXBsZXNfZGVsZXRlZCBoYXMg aW5jcmVhc2VkJyk7CitvaygkaW5kZXhfd2FsX3JlY29yZHMgPiAkaW5kZXhfd2FsX3JlY29y ZHNfcHJldiwgJ2luZGV4IHdhbF9yZWNvcmRzIGhhcyBpbmNyZWFzZWQnKTsKK29rKCRpbmRl eF93YWxfYnl0ZXMgPiAkaW5kZXhfd2FsX2J5dGVzX3ByZXYsICdpbmRleCB3YWxfYnl0ZXMg aGFzIGluY3JlYXNlZCcpOworb2soJGluZGV4X3dhbF9mcGkgPT0gJGluZGV4X3dhbF9mcGlf cHJldiwgJ2luZGV4IHdhbF9mcGkgc3RheSB0aGUgc2FtZScpOworCiB9IG9yIHByaW50X3Zh Y3V1bV9zdGF0c19vbl9lcnJvcigpOyAjIEVuZCBvZiBzdWJ0ZXN0CiAKICMgU2F2ZSBzdGF0 aXN0aWNzIGZvciB0aGUgbmV4dCB0ZXN0CkBAIC0zNTcsNiArNDc2LDEyIEBAIG9rKCR3YWxf cmVjb3JkcyA9PSAkd2FsX3JlY29yZHNfcHJldiwgJ3RhYmxlIHdhbF9yZWNvcmRzIHN0YXkg dGhlIHNhbWUnKTsKIG9rKCR3YWxfYnl0ZXMgPT0gJHdhbF9ieXRlc19wcmV2LCAndGFibGUg d2FsX2J5dGVzIHN0YXkgdGhlIHNhbWUnKTsKIG9rKCR3YWxfZnBpID09ICR3YWxfZnBpX3By ZXYsICd0YWJsZSB3YWxfZnBpIHN0YXkgdGhlIHNhbWUnKTsKIAorb2soJGluZGV4X3BhZ2Vz X2RlbGV0ZWQgPT0gJGluZGV4X3BhZ2VzX2RlbGV0ZWRfcHJldiwgJ2luZGV4IHBhZ2VzX2Rl bGV0ZWQgc3RheSB0aGUgc2FtZScpOworb2soJGluZGV4X3R1cGxlc19kZWxldGVkID09ICRp bmRleF90dXBsZXNfZGVsZXRlZF9wcmV2LCAnaW5kZXggdHVwbGVzX2RlbGV0ZWQgc3RheSB0 aGUgc2FtZScpOworb2soJGluZGV4X3dhbF9yZWNvcmRzID09ICRpbmRleF93YWxfcmVjb3Jk c19wcmV2LCAnaW5kZXggd2FsX3JlY29yZHMgc3RheSB0aGUgc2FtZScpOworb2soJGluZGV4 X3dhbF9ieXRlcyA9PSAkaW5kZXhfd2FsX2J5dGVzX3ByZXYsICdpbmRleCB3YWxfYnl0ZXMg c3RheSB0aGUgc2FtZScpOworb2soJGluZGV4X3dhbF9mcGkgPT0gJGluZGV4X3dhbF9mcGlf cHJldiwgJ2luZGV4IHdhbF9mcGkgc3RheSB0aGUgc2FtZScpOworCiB9IG9yIHByaW50X3Zh Y3V1bV9zdGF0c19vbl9lcnJvcigpOyAjIEVuZCBvZiBzdWJ0ZXN0CiAKICMgU2F2ZSBzdGF0 aXN0aWNzIGZvciB0aGUgbmV4dCB0ZXN0CkBAIC0zNzksNiArNTA0LDggQEAgJG5vZGUtPnNh ZmVfcHNxbCgKICR1cGRhdGVkID0gd2FpdF9mb3JfdmFjdXVtX3N0YXRzKAogICAgIHRhYl90 dXBsZXNfZGVsZXRlZCA9PiAkdHVwbGVzX2RlbGV0ZWQsCiAgICAgdGFiX3dhbF9yZWNvcmRz ID0+ICR3YWxfcmVjb3JkcywKKyAgICBpZHhfdHVwbGVzX2RlbGV0ZWQgPT4gJGluZGV4X3R1 cGxlc19kZWxldGVkLAorICAgIGlkeF93YWxfcmVjb3JkcyA9PiAkaW5kZXhfd2FsX3JlY29y ZHMsCiApOwogCiBvaygkdXBkYXRlZCwgJ3ZhY3V1bSBzdGF0cyB1cGRhdGVkIGFmdGVyIHVw ZGF0aW5nIHR1cGxlcyBpbiB0aGUgdGFibGUgKHR1cGxlc19kZWxldGVkIGFuZCB3YWxfcmVj b3JkcyBhZHZhbmNlZCknKQpAQCAtMzk5LDYgKzUyNiwxMiBAQCBvaygkd2FsX3JlY29yZHMg PiAkd2FsX3JlY29yZHNfcHJldiwgJ3RhYmxlIHdhbF9yZWNvcmRzIGhhcyBpbmNyZWFzZWQn KTsKIG9rKCR3YWxfYnl0ZXMgPiAkd2FsX2J5dGVzX3ByZXYsICd0YWJsZSB3YWxfYnl0ZXMg aGFzIGluY3JlYXNlZCcpOwogb2soJHdhbF9mcGkgPiAkd2FsX2ZwaV9wcmV2LCAndGFibGUg d2FsX2ZwaSBoYXMgaW5jcmVhc2VkJyk7CiAKK29rKCRpbmRleF9wYWdlc19kZWxldGVkID4g JGluZGV4X3BhZ2VzX2RlbGV0ZWRfcHJldiwgJ2luZGV4IHBhZ2VzX2RlbGV0ZWQgaGFzIGlu Y3JlYXNlZCcpOworb2soJGluZGV4X3R1cGxlc19kZWxldGVkID4gJGluZGV4X3R1cGxlc19k ZWxldGVkX3ByZXYsICdpbmRleCB0dXBsZXNfZGVsZXRlZCBoYXMgaW5jcmVhc2VkJyk7Citv aygkaW5kZXhfd2FsX3JlY29yZHMgPiAkaW5kZXhfd2FsX3JlY29yZHNfcHJldiwgJ2luZGV4 IHdhbF9yZWNvcmRzIGhhcyBpbmNyZWFzZWQnKTsKK29rKCRpbmRleF93YWxfYnl0ZXMgPiAk aW5kZXhfd2FsX2J5dGVzX3ByZXYsICdpbmRleCB3YWxfYnl0ZXMgaGFzIGluY3JlYXNlZCcp Oworb2soJGluZGV4X3dhbF9mcGkgPiAkaW5kZXhfd2FsX2ZwaV9wcmV2LCAnaW5kZXggd2Fs X2ZwaSBoYXMgaW5jcmVhc2VkJyk7CisKIH0gb3IgcHJpbnRfdmFjdXVtX3N0YXRzX29uX2Vy cm9yKCk7ICMgRW5kIG9mIHN1YnRlc3QKIAogIyBTYXZlIHN0YXRpc3RpY3MgZm9yIHRoZSBu ZXh0IHRlc3QKQEAgLTQyMSw3ICs1NTQsOSBAQCAkbm9kZS0+c2FmZV9wc3FsKCRkYm5hbWUs ICJWQUNVVU0gdmVzdGF0OyIpOwogCiAkdXBkYXRlZCA9IHdhaXRfZm9yX3ZhY3V1bV9zdGF0 cygKICAgICB0YWJfdHVwbGVzX2RlbGV0ZWQgPT4gMCwKLSAgICB0YWJfd2FsX3JlY29yZHMg PT4gJHdhbF9yZWNvcmRzX3ByZXYKKyAgICB0YWJfd2FsX3JlY29yZHMgPT4gJHdhbF9yZWNv cmRzX3ByZXYsCisgICAgaWR4X3R1cGxlc19kZWxldGVkID0+IDAsCisgICAgaWR4X3dhbF9y ZWNvcmRzID0+IDAsCiApOwogCiBvaygkdXBkYXRlZCwgJ3ZhY3V1bSBzdGF0cyB1cGRhdGVk IGFmdGVyIHVwZGF0aW5nIHR1cGxlcyBhbmQgdHJhbmNhdGlvbiBpbiB0aGUgdGFibGUgKHR1 cGxlc19kZWxldGVkIGFuZCB3YWxfcmVjb3JkcyBhZHZhbmNlZCknKQpAQCAtNDQyLDYgKzU3 NywxMiBAQCBvaygkd2FsX3JlY29yZHMgPiAkd2FsX3JlY29yZHNfcHJldiwgJ3RhYmxlIHdh bF9yZWNvcmRzIGhhcyBpbmNyZWFzZWQnKTsKIG9rKCR3YWxfYnl0ZXMgPiAkd2FsX2J5dGVz X3ByZXYsICd0YWJsZSB3YWxfYnl0ZXMgaGFzIGluY3JlYXNlZCcpOwogb2soJHdhbF9mcGkg PT0gJHdhbF9mcGlfcHJldiwgJ3RhYmxlIHdhbF9mcGkgc3RheSB0aGUgc2FtZScpOwogCitv aygkaW5kZXhfcGFnZXNfZGVsZXRlZCA9PSAkaW5kZXhfcGFnZXNfZGVsZXRlZF9wcmV2LCAn aW5kZXggcGFnZXNfZGVsZXRlZCBzdGF5IHRoZSBzYW1lJyk7CitvaygkaW5kZXhfdHVwbGVz X2RlbGV0ZWQgPT0gJGluZGV4X3R1cGxlc19kZWxldGVkX3ByZXYsICdpbmRleCB0dXBsZXNf ZGVsZXRlZCBzdGF5IHRoZSBzYW1lJyk7CitvaygkaW5kZXhfd2FsX3JlY29yZHMgPT0gJGlu ZGV4X3dhbF9yZWNvcmRzX3ByZXYsICdpbmRleCB3YWxfcmVjb3JkcyBzdGF5IHRoZSBzYW1l Jyk7CitvaygkaW5kZXhfd2FsX2J5dGVzID09ICRpbmRleF93YWxfYnl0ZXNfcHJldiwgJ2lu ZGV4IHdhbF9ieXRlcyBzdGF5IHRoZSBzYW1lJyk7CitvaygkaW5kZXhfd2FsX2ZwaSA9PSAk aW5kZXhfd2FsX2ZwaV9wcmV2LCAnaW5kZXggd2FsX2ZwaSBzdGF5IHRoZSBzYW1lJyk7CisK IH0gb3IgcHJpbnRfdmFjdXVtX3N0YXRzX29uX2Vycm9yKCk7ICMgRW5kIG9mIHN1YnRlc3QK IAogIyBTYXZlIHN0YXRpc3RpY3MgZm9yIHRoZSBuZXh0IHRlc3QKQEAgLTQ2NCw3ICs2MDUs OSBAQCAkbm9kZS0+c2FmZV9wc3FsKAogCiAkdXBkYXRlZCA9IHdhaXRfZm9yX3ZhY3V1bV9z dGF0cygKICAgICB0YWJfdHVwbGVzX2RlbGV0ZWQgPT4gMCwKLSAgICB0YWJfd2FsX3JlY29y ZHMgPT4gJHdhbF9yZWNvcmRzCisgICAgdGFiX3dhbF9yZWNvcmRzID0+ICR3YWxfcmVjb3Jk cywKKyAgICBpZHhfdHVwbGVzX2RlbGV0ZWQgPT4gMCwKKyAgICBpZHhfd2FsX3JlY29yZHMg PT4gMCwKICk7CiAKIG9rKCR1cGRhdGVkLCAndmFjdXVtIHN0YXRzIHVwZGF0ZWQgYWZ0ZXIg ZGVsZXRpbmcgYWxsIHR1cGxlcyBhbmQgdHJhbmNhdGlvbiBpbiB0aGUgdGFibGUgKHR1cGxl c19kZWxldGVkIGFuZCB3YWxfcmVjb3JkcyBhZHZhbmNlZCknKQpAQCAtNDg1LDYgKzYyOCwx MiBAQCBvaygkd2FsX3JlY29yZHMgPiAkd2FsX3JlY29yZHNfcHJldiwgJ3RhYmxlIHdhbF9y ZWNvcmRzIGhhcyBpbmNyZWFzZWQnKTsKIG9rKCR3YWxfYnl0ZXMgPiAkd2FsX2J5dGVzX3By ZXYsICd0YWJsZSB3YWxfYnl0ZXMgaGFzIGluY3JlYXNlZCcpOwogb2soJHdhbF9mcGkgPT0g JHdhbF9mcGlfcHJldiwgJ3RhYmxlIHdhbF9mcGkgc3RheSB0aGUgc2FtZScpOwogCitvaygk aW5kZXhfcGFnZXNfZGVsZXRlZCA9PSAkaW5kZXhfcGFnZXNfZGVsZXRlZF9wcmV2LCAnaW5k ZXggcGFnZXNfZGVsZXRlZCBzdGF5IHRoZSBzYW1lJyk7CitvaygkaW5kZXhfdHVwbGVzX2Rl bGV0ZWQgPT0gJGluZGV4X3R1cGxlc19kZWxldGVkX3ByZXYsICdpbmRleCB0dXBsZXNfZGVs ZXRlZCBzdGF5IHRoZSBzYW1lJyk7CitvaygkaW5kZXhfd2FsX3JlY29yZHMgPT0gJGluZGV4 X3dhbF9yZWNvcmRzX3ByZXYsICdpbmRleCB3YWxfcmVjb3JkcyBzdGF5IHRoZSBzYW1lJyk7 CitvaygkaW5kZXhfd2FsX2J5dGVzID09ICRpbmRleF93YWxfYnl0ZXNfcHJldiwgJ2luZGV4 IHdhbF9ieXRlcyBzdGF5IHRoZSBzYW1lJyk7CitvaygkaW5kZXhfd2FsX2ZwaSA9PSAkaW5k ZXhfd2FsX2ZwaV9wcmV2LCAnaW5kZXggd2FsX2ZwaSBzdGF5IHRoZSBzYW1lJyk7CisKIH0g b3IgcHJpbnRfdmFjdXVtX3N0YXRzX29uX2Vycm9yKCk7ICMgRW5kIG9mIHN1YnRlc3QKIAog IyBTYXZlIHN0YXRpc3RpY3MgZm9yIHRoZSBuZXh0IHRlc3QKQEAgLTUxMyw2ICs2NjIsMzQg QEAgJGJhc2Vfc3RhdHMgPSAkbm9kZS0+c2FmZV9wc3FsKAogKTsKIG9rKCRiYXNlX3N0YXRz IGVxICd0JywgJ2hlYXAgdmFjdXVtIHN0YXRzIHJldHVybiBmcm9tIHRoZSBjdXJyZW50IHJl bGF0aW9uIGFuZCBkYXRhYmFzZSBhcyBleHBlY3RlZCcpOwogCiskcmVsb2lkID0gJG5vZGUt PnNhZmVfcHNxbCgKKyAgICAkZGJuYW1lLAorICAgIHF7CisgICAgICAgIFNFTEVDVCBvaWQg RlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JzsKKyAgICB9Cisp OworCisjIENoZWNrIGlmIHdlIGNhbiBnZXQgdmFjdXVtIHN0YXRpc3RpY3Mgb2YgcGFydGlj dWxhciBpbmRleCByZWxhdGlvbiBpbiB0aGUgY3VycmVudCBkYXRhYmFzZQorJGJhc2Vfc3Rh dHMgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICRkYm5hbWUsCisgICAgIlNFTEVDVCBjb3Vu dCgqKSA9IDEgRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzKCRkYm9pZCwgJHJlbG9pZCk7 IgorKTsKK29rKCRiYXNlX3N0YXRzIGVxICd0JywgJ2luZGV4IHZhY3V1bSBzdGF0cyByZXR1 cm4gZnJvbSB0aGUgY3VycmVudCByZWxhdGlvbiBhbmQgZGF0YWJhc2UgYXMgZXhwZWN0ZWQn KTsKKworIyBDaGVjayBpZiB3ZSByZXR1cm4gZW1wdHkgcmVzdWx0cyBpZiB2YWN1dW0gc3Rh dGlzdGljcyB3aXRoIHBhcnRpY3VsYXIgb2lkIGRvZXNuJ3QgZXhpc3QKKyRiYXNlX3N0YXRz ID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAkZGJuYW1lLAorICAgICJTRUxFQ1QgY291bnQo KikgPSAwIEZST00gcGdfc3RhdHNfdmFjdXVtX3RhYmxlcygkZGJvaWQsIDEpOyIKKyk7Citv aygkYmFzZV9zdGF0cyBlcSAndCcsICd0YWJsZSB2YWN1dW0gc3RhdHMgcmV0dXJuIG5vIHJv d3MsIGFzIGV4cGVjdGVkJyk7CisKKyRiYXNlX3N0YXRzID0gJG5vZGUtPnNhZmVfcHNxbCgK KyAgICAkZGJuYW1lLAorICAgICJTRUxFQ1QgY291bnQoKikgPSAwIEZST00gcGdfc3RhdF92 YWN1dW1faW5kZXhlcygkZGJvaWQsIDEpOyIKKyk7CitvaygkYmFzZV9zdGF0cyBlcSAndCcs ICdpbmRleCB2YWN1dW0gc3RhdHMgcmV0dXJuIG5vIHJvd3MsIGFzIGV4cGVjdGVkJyk7CisK KwogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBUZXN0IDk6IENoZWNrIHJlbGF0aW9u LWxldmVsIHZhY3V1bSBzdGF0aXN0aWNzIGZyb20gYW5vdGhlciBkYXRhYmFzZQogIy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTIzLDYgKzcwMCwxNCBAQCAkYmFzZV9zdGF0cyA9 ICRub2RlLT5zYWZlX3BzcWwoCiAgICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzCiAg ICAgIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JzsiCiApOworb2soJGJhc2Vfc3RhdHMgZXEg J3QnLCAnY2hlY2sgdGhlIHByaW50aW5nIHRhYmxlIHZhY3V1bSBleHRlbmRlZCBzdGF0aXN0 aWNzIGZyb20gYW5vdGhlciBkYXRhYmFzZSBhcmUgbm90IGF2YWlsYWJsZScpOworCiskYmFz ZV9zdGF0cyA9ICRub2RlLT5zYWZlX3BzcWwoCisgICAgJ3Bvc3RncmVzJywKKyAgICAiU0VM RUNUIGNvdW50KCopID0gMAorICAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMKKyAg ICAgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleSc7IgorKTsKIG9rKCRiYXNlX3N0YXRz IGVxICd0JywgJ2NoZWNrIHRoZSBwcmludGluZyBoZWFwIHZhY3V1bSBleHRlbmRlZCBzdGF0 aXN0aWNzIGZyb20gYW5vdGhlciBkYXRhYmFzZSBhcmUgbm90IGF2YWlsYWJsZScpOwogCiAk cmVsb2lkID0gJG5vZGUtPnNhZmVfcHNxbCgKQEAgLTU0Myw2ICs3MjgsMjMgQEAgJGJhc2Vf c3RhdHMgPSAkbm9kZS0+c2FmZV9wc3FsKAogCiBpcygkYmFzZV9zdGF0cywgJ3QnLCAndmFj dXVtIHN0YXRzIGZvciBjb21tb24gaGVhcCBvYmplY3RzIGF2YWlsYWJsZScpOwogCitteSAk aW5kb2lkID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAkZGJuYW1lLAorICAgIHF7CisgICAg ICAgIFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3BnX3NoZGVw ZW5kX3JlZmVyZW5jZV9pbmRleCc7CisgICAgfQorKTsKKworJGJhc2Vfc3RhdHMgPSAkbm9k ZS0+c2FmZV9wc3FsKAorICAgICRkYm5hbWUsCisgICAgcXF7CisgICAgICAgIFNFTEVDVCBj b3VudCgqKSA9IDEKKyAgICAgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzKDAsICRp bmRvaWQpOworICAgIH0KKyk7CisKK2lzKCRiYXNlX3N0YXRzLCAndCcsICd2YWN1dW0gc3Rh dHMgZm9yIGNvbW1vbiBpbmRleCBvYmplY3RzIGF2YWlsYWJsZScpOworCiAjLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAjIFRlc3QgMTE6IENsZWFudXAgY2hlY2tzOiBlbnN1cmUgZnVu Y3Rpb25zIHJldHVybiBlbXB0eSBzZXRzIGZvciBPSUQgPSAwCiAjLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCkBAIC01NjIsNiArNzY0LDE1IEBAICRiYXNlX3N0YXRzID0gJG5vZGUtPnNh ZmVfcHNxbCgKICk7CiBvaygkYmFzZV9zdGF0cyBlcSAndCcsICdwZ19zdGF0X3ZhY3V1bV90 YWJsZXMgY29ycmVjdGx5IHJldHVybnMgbm8gcm93cyBmb3IgT0lEID0gMCcpOwogCiskYmFz ZV9zdGF0cyA9ICRub2RlLT5zYWZlX3BzcWwoCisgICAgJGRibmFtZSwKKyAgICBxeworICAg ICAgICBTRUxFQ1QgQ09VTlQoKikgPSAwCisgICAgICAgICAgRlJPTSBwZ19zdGF0X3ZhY3V1 bV9pbmRleGVzIFdIRVJFIHJlbGlkID0gMDsKKyAgICB9CispOworb2soJGJhc2Vfc3RhdHMg ZXEgJ3QnLCAncGdfc3RhdF92YWN1dW1faW5kZXhlcyBjb3JyZWN0bHkgcmV0dXJucyBubyBy b3dzIGZvciBPSUQgPSAwJyk7CisKICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKICAg ICAiRFJPUCBEQVRBQkFTRSAkZGJuYW1lOyIKICk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnVsZXMub3V0CmluZGV4IGU0YTc3ODc4YmViLi43ZTYwMjkzOTRjYiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTIzMzAsNiArMjMzMCwyOCBAQCBwZ19zdGF0 X3VzZXJfdGFibGVzfCBTRUxFQ1QgcmVsaWQsCiAgICAgcmV2X2FsbF92aXNpYmxlX3BhZ2Vz CiAgICBGUk9NIHBnX3N0YXRfYWxsX3RhYmxlcwogICBXSEVSRSAoKHNjaGVtYW5hbWUgPD4g QUxMIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hlbWEnOjpu YW1lXSkpIEFORCAoc2NoZW1hbmFtZSAhfiAnXnBnX3RvYXN0Jzo6dGV4dCkpOworcGdfc3Rh dF92YWN1dW1faW5kZXhlc3wgU0VMRUNUIHJlbC5vaWQgQVMgcmVsaWQsCisgICAgbnMubnNw bmFtZSBBUyBzY2hlbWFuYW1lLAorICAgIHJlbC5yZWxuYW1lLAorICAgIHN0YXRzLnRvdGFs X2Jsa3NfcmVhZCwKKyAgICBzdGF0cy50b3RhbF9ibGtzX2hpdCwKKyAgICBzdGF0cy50b3Rh bF9ibGtzX2RpcnRpZWQsCisgICAgc3RhdHMudG90YWxfYmxrc193cml0dGVuLAorICAgIHN0 YXRzLnJlbF9ibGtzX3JlYWQsCisgICAgc3RhdHMucmVsX2Jsa3NfaGl0LAorICAgIHN0YXRz LnBhZ2VzX2RlbGV0ZWQsCisgICAgc3RhdHMudHVwbGVzX2RlbGV0ZWQsCisgICAgc3RhdHMu d2FsX3JlY29yZHMsCisgICAgc3RhdHMud2FsX2ZwaSwKKyAgICBzdGF0cy53YWxfYnl0ZXMs CisgICAgc3RhdHMuYmxrX3JlYWRfdGltZSwKKyAgICBzdGF0cy5ibGtfd3JpdGVfdGltZSwK KyAgICBzdGF0cy5kZWxheV90aW1lLAorICAgIHN0YXRzLnRvdGFsX3RpbWUKKyAgIEZST00g KHBnX2NsYXNzIHJlbAorICAgICBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiAoKG5zLm9pZCA9 IHJlbC5yZWxuYW1lc3BhY2UpKSksCisgICAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1f aW5kZXhlcyhyZWwub2lkKSBzdGF0cyhyZWxpZCwgdG90YWxfYmxrc19yZWFkLCB0b3RhbF9i bGtzX2hpdCwgdG90YWxfYmxrc19kaXJ0aWVkLCB0b3RhbF9ibGtzX3dyaXR0ZW4sIHJlbF9i bGtzX3JlYWQsIHJlbF9ibGtzX2hpdCwgcGFnZXNfZGVsZXRlZCwgdHVwbGVzX2RlbGV0ZWQs IHdhbF9yZWNvcmRzLCB3YWxfZnBpLCB3YWxfYnl0ZXMsIGJsa19yZWFkX3RpbWUsIGJsa193 cml0ZV90aW1lLCBkZWxheV90aW1lLCB0b3RhbF90aW1lKQorICBXSEVSRSAocmVsLnJlbGtp bmQgPSAnaSc6OiJjaGFyIik7CiBwZ19zdGF0X3ZhY3V1bV90YWJsZXN8IFNFTEVDVCBucy5u c3BuYW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgcmVsLnJlbG5hbWUsCiAgICAgc3RhdHMucmVs aWQsCi0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --------------LO5tty50ZJRZk32bRvqIZqab Content-Type: text/plain; charset=UTF-8; name="v26-0003-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v26-0003-Machinery-for-grabbing-an-extended-vacuum-statistic"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSAyMDUxZGIyNjAwNTY2ZGM4ODA0MGNlZTk3ODY4NDY5YWEzNTQ0MGQ3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCAxIFNlcCAyMDI1IDIxOjQzOjMzICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAzLzVdIE1hY2hpbmVyeSBmb3IgZ3JhYmJpbmcgYW4gZXh0ZW5kZWQgdmFj dXVtIHN0YXRpc3RpY3Mgb24KIGRhdGFiYXNlcy4KCkRhdGFiYXNlIHZhY3V1bSBzdGF0aXN0 aWNzIGluZm9ybWF0aW9uIGlzIHRoZSBjb2xsZWN0ZWQgZ2VuZXJhbAp2YWN1dW0gc3RhdGlz dGljcyBpbmRleGVzIGFuZCB0YWJsZXMgb3duZWQgYnkgdGhlIGRhdGFiYXNlcywgd2hpY2gK dGhleSBiZWxvbmcgdG8uCgpJbiBhZGRpdGlvbiB0byB0aGUgZmFjdCB0aGF0IHRoZXJlIGFy ZSBmYXIgZmV3ZXIgZGF0YWJhc2VzIGluIGEgc3lzdGVtCnRoYW4gcmVsYXRpb25zLCB2YWN1 dW0gc3RhdGlzdGljcyBmb3IgYSBkYXRhYmFzZSBjb250YWluIGZld2VyIHN0YXRpc3RpY3MK dGhhbiByZWxhdGlvbnMsIGJ1dCB0aGV5IGFyZSBlbm91Z2ggdG8gaW5kaWNhdGUgdGhhdCBz b21ldGhpbmcgbWF5IGJlCndyb25nIGluIHRoZSBzeXN0ZW0gYW5kIHByb21wdCB0aGUgYWRt aW5pc3RyYXRvciB0byBlbmFibGUgZXh0ZW5kZWQKbW9uaXRvcmluZyBmb3IgcmVsYXRpb25z LgoKU28sIGJ1ZmZlciwgd2FsLCBzdGF0aXN0aWNzIG9mIEkvTyB0aW1lIG9mIHJlYWQgYW5k IHdyaXRlbiBibG9ja3MKc3RhdGlzdGljcyB3aWxsIGJlIG9ic2VydmVkIGJlY2F1c2UgdGhl eSBhcmUgY29sbGVjdGVkIGZvciBib3RoCnRhYmxlcywgaW5kZXhlcy4gSW4gYWRkaXRpb24s IHdlIHNob3cgdGhlIG51bWJlciBvZiBlcnJvcnMgY2F1Z2h0CmR1cmluZyBvcGVyYXRpb24g b2YgdGhlIHZhY3V1bSBvbmx5IGZvciB0aGUgZXJyb3IgbGV2ZWwuCgp3cmFwYXJvdW5kX2Zh aWxzYWZlX2NvdW50IGlzIGEgbnVtYmVyIG9mIHRpbWVzIHdoZW4gdGhlIHZhY3V1bSBzdGFy dHMKdXJnZW50IGNsZWFudXAgdG8gcHJldmVudCB3cmFwYXJvdW5kIHByb2JsZW0gd2hpY2gg aXMgY3JpdGljYWwgZm9yCnRoZSBkYXRhYmFzZS4KCkF1dGhvcnM6IEFsZW5hIFJ5YmFraW5h IDxsZW5hLnJpYmFja2luYUB5YW5kZXgucnU+LAogICBBbmRyZWkgTGVwaWtob3YgPGEubGVw aWtob3ZAcG9zdGdyZXNwcm8ucnU+LAogICBBbmRyZWkgWnVia292IDxhLnp1YmtvdkBwb3N0 Z3Jlc3Byby5ydT4KUmV2aWV3ZWQtYnk6IERpbGlwIEt1bWFyIDxkaWxpcGJhbGF1dEBnbWFp bC5jb20+LCBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4sCiAgICAg ICBJbGlhIEV2ZG9raW1vdiA8aWx5YS5ldmRva2ltb3ZAdGFudG9ybGFicy5jb20+LCBqaWFu IGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+LAogICAgICAgS2lyaWxsIFJlc2hr ZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4sIEFsZXhhbmRlciBLb3JvdGtvdiA8YWVrb3Jv dGtvdkBnbWFpbC5jb20+LAogICAgICAgSmltIE5hc2J5IDxqbmFzYnlAdXBncmFkZS5jb20+ LCBTYW1pIEltc2VpaCA8c2FtaW1zZWloQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgMjYgKysrKysrKy0KIHNyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jICB8ICAxICsKIHNyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jICB8IDEzICsrKy0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jICAgICAgICAgICB8IDYyICsrKysr KysrKysrKysrKysrKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAg ICAgICAgICB8IDEzICsrKy0KIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA3ICstLQogLi4uL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxl LXJlYWQuc3BlYyAgIHwgIDYgKysKIC4uLi90LzA1MF92YWN1dW1fZXh0ZW5kaW5nX2Jhc2lj X3Rlc3QucGwgICAgICB8IDQ5ICsrKysrKysrKysrKy0tLQogLi4uL3QvMDUxX3ZhY3V1bV9l eHRlbmRpbmdfZnJlZXplX3Rlc3QucGwgICAgIHwgNDggKysrKystLS0tLS0tLS0KIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8IDE3ICsrKysrCiAx MSBmaWxlcyBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDcxOWNlOTBkOTZkLi5m Y2Q5MmE0M2RkYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAt NjYzLDcgKzY2Myw3IEBAIGFjY3VtdWxhdGVfaGVhcF92YWN1dW1fc3RhdGlzdGljcyhMVlJl bFN0YXRlICp2YWNyZWwsIEV4dFZhY1JlcG9ydCAqIGV4dFZhY1N0YXRzCiAJZXh0VmFjU3Rh dHMtPnRhYmxlLm1pc3NlZF9kZWFkX3R1cGxlcyA9IHZhY3JlbC0+bWlzc2VkX2RlYWRfdHVw bGVzOwogCWV4dFZhY1N0YXRzLT50YWJsZS5taXNzZWRfZGVhZF9wYWdlcyA9IHZhY3JlbC0+ bWlzc2VkX2RlYWRfcGFnZXM7CiAJZXh0VmFjU3RhdHMtPnRhYmxlLmluZGV4X3ZhY3V1bV9j b3VudCA9IHZhY3JlbC0+bnVtX2luZGV4X3NjYW5zOwotCWV4dFZhY1N0YXRzLT50YWJsZS53 cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50ID0gdmFjcmVsLT53cmFwYXJvdW5kX2ZhaWxzYWZl X2NvdW50OworCWV4dFZhY1N0YXRzLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50ID0gdmFj cmVsLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OwogCiAJZXh0VmFjU3RhdHMtPmJsa19y ZWFkX3RpbWUgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguYmxrX3JlYWRfdGltZTsKIAll eHRWYWNTdGF0cy0+YmxrX3dyaXRlX3RpbWUgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgu YmxrX3dyaXRlX3RpbWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3Rl bV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5k ZXggNDdiNmEwMGQyOTcuLmRjODZiMWVlMjEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0 ZW1fdmlld3Muc3FsCkBAIC0xNTMzLDQgKzE1MzMsMjggQEAgRlJPTQogICBwZ19jbGFzcyBy ZWwKICAgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMub2lkID0gcmVsLnJlbG5hbWVzcGFj ZSwKICAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyhyZWwub2lkKSBzdGF0 cwotV0hFUkUgcmVsLnJlbGtpbmQgPSAnaSc7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQorV0hFUkUgcmVsLnJlbGtpbmQgPSAnaSc7CisKK0NSRUFURSBWSUVXIHBnX3N0YXRfdmFj dXVtX2RhdGFiYXNlIEFTCitTRUxFQ1QKKyAgZGIub2lkIGFzIGRib2lkLAorICBkYi5kYXRu YW1lIEFTIGRibmFtZSwKKworICBzdGF0cy5kYl9ibGtzX3JlYWQgQVMgZGJfYmxrc19yZWFk LAorICBzdGF0cy5kYl9ibGtzX2hpdCBBUyBkYl9ibGtzX2hpdCwKKyAgc3RhdHMudG90YWxf Ymxrc19kaXJ0aWVkIEFTIHRvdGFsX2Jsa3NfZGlydGllZCwKKyAgc3RhdHMudG90YWxfYmxr c193cml0dGVuIEFTIHRvdGFsX2Jsa3Nfd3JpdHRlbiwKKworICBzdGF0cy53YWxfcmVjb3Jk cyBBUyB3YWxfcmVjb3JkcywKKyAgc3RhdHMud2FsX2ZwaSBBUyB3YWxfZnBpLAorICBzdGF0 cy53YWxfYnl0ZXMgQVMgd2FsX2J5dGVzLAorCisgIHN0YXRzLmJsa19yZWFkX3RpbWUgQVMg YmxrX3JlYWRfdGltZSwKKyAgc3RhdHMuYmxrX3dyaXRlX3RpbWUgQVMgYmxrX3dyaXRlX3Rp bWUsCisKKyAgc3RhdHMuZGVsYXlfdGltZSBBUyBkZWxheV90aW1lLAorICBzdGF0cy50b3Rh bF90aW1lIEFTIHRvdGFsX3RpbWUsCisgIHN0YXRzLndyYXBhcm91bmRfZmFpbHNhZmUgQVMg d3JhcGFyb3VuZF9mYWlsc2FmZQorRlJPTQorICBwZ19kYXRhYmFzZSBkYiwKKyAgTEFURVJB TCBwZ19zdGF0X2dldF92YWN1dW1fZGF0YWJhc2UoZGIub2lkKSBzdGF0czsKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS9wZ3N0YXRfZGF0YWJhc2UuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdF9kYXRhYmFzZS5jCmluZGV4IGIzMWYyMGQ0MWJjLi42NTIwN2QzMDM3OCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMKQEAgLTQ4 NSw2ICs0ODUsNyBAQCBwZ3N0YXRfZGF0YWJhc2VfZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVm ICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KQogCXBnc3RhdF91bmxvY2tfZW50cnkoZW50cnlf cmVmKTsKIAogCW1lbXNldChwZW5kaW5nZW50LCAwLCBzaXplb2YoKnBlbmRpbmdlbnQpKTsK KwltZW1zZXQoJihwZW5kaW5nZW50KS0+dmFjdXVtX2V4dCwgMCwgc2l6ZW9mKEV4dFZhY1Jl cG9ydCkpOwogCiAJcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fj dGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCmluZGV4IDRiZDZhZmMzNzk0Li4yNjc1YzU0MTM2 OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0 aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9u LmMKQEAgLTIxNSw2ICsyMTUsNyBAQCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbiBy ZWwsIFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsCiAJUGdTdGF0X0VudHJ5UmVmICplbnRy eV9yZWY7CiAJUGdTdGF0U2hhcmVkX1JlbGF0aW9uICpzaHRhYmVudHJ5OwogCVBnU3RhdF9T dGF0VGFiRW50cnkgKnRhYmVudHJ5OworCVBnU3RhdFNoYXJlZF9EYXRhYmFzZSAqZGJlbnRy eTsKIAlPaWQJCQlkYm9pZCA9IChyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQgPyBJbnZhbGlk T2lkIDogTXlEYXRhYmFzZUlkKTsKIAlUaW1lc3RhbXBUeiB0czsKIAlQZ1N0YXRfQ291bnRl ciBlbGFwc2VkdGltZTsKQEAgLTI3Myw2ICsyNzQsMTYgQEAgcGdzdGF0X3JlcG9ydF92YWN1 dW0oUmVsYXRpb24gcmVsLCBQZ1N0YXRfQ291bnRlciBsaXZldHVwbGVzLAogCSAqLwogCXBn c3RhdF9mbHVzaF9pbyhmYWxzZSk7CiAJKHZvaWQpIHBnc3RhdF9mbHVzaF9iYWNrZW5kKGZh bHNlLCBQR1NUQVRfQkFDS0VORF9GTFVTSF9JTyk7CisKKwlpZiAoZGJvaWQgIT0gSW52YWxp ZE9pZCkKKwl7CisJCWVudHJ5X3JlZiA9IHBnc3RhdF9nZXRfZW50cnlfcmVmX2xvY2tlZChQ R1NUQVRfS0lORF9EQVRBQkFTRSwKKwkJCQkJCQkJCQkJCWRib2lkLCBJbnZhbGlkT2lkLCBm YWxzZSk7CisJCWRiZW50cnkgPSAoUGdTdGF0U2hhcmVkX0RhdGFiYXNlICopIGVudHJ5X3Jl Zi0+c2hhcmVkX3N0YXRzOworCisJCXBnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cygm ZGJlbnRyeS0+c3RhdHMudmFjdXVtX2V4dCwgcGFyYW1zLCBmYWxzZSk7CisJCXBnc3RhdF91 bmxvY2tfZW50cnkoZW50cnlfcmVmKTsKKwl9CiB9CiAKIC8qCkBAIC0xMDMyLDYgKzEwNDMs NyBAQCBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVwb3J0ICogZHN0 LCBFeHRWYWNSZXBvcnQgKiBzcmMsCiAJZHN0LT5ibGtfd3JpdGVfdGltZSArPSBzcmMtPmJs a193cml0ZV90aW1lOwogCWRzdC0+ZGVsYXlfdGltZSArPSBzcmMtPmRlbGF5X3RpbWU7CiAJ ZHN0LT50b3RhbF90aW1lICs9IHNyYy0+dG90YWxfdGltZTsKKwlkc3QtPndyYXBhcm91bmRf ZmFpbHNhZmVfY291bnQgKz0gc3JjLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OwogCiAJ aWYgKCFhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5mbykKIAkJcmV0dXJuOwpAQCAt MTA1OSw3ICsxMDcxLDYgQEAgcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzKEV4dFZh Y1JlcG9ydCAqIGRzdCwgRXh0VmFjUmVwb3J0ICogc3JjLAogCQkJZHN0LT50YWJsZS5pbmRl eF92YWN1dW1fY291bnQgKz0gc3JjLT50YWJsZS5pbmRleF92YWN1dW1fY291bnQ7CiAJCQlk c3QtPnRhYmxlLm1pc3NlZF9kZWFkX3BhZ2VzICs9IHNyYy0+dGFibGUubWlzc2VkX2RlYWRf cGFnZXM7CiAJCQlkc3QtPnRhYmxlLm1pc3NlZF9kZWFkX3R1cGxlcyArPSBzcmMtPnRhYmxl Lm1pc3NlZF9kZWFkX3R1cGxlczsKLQkJCWRzdC0+dGFibGUud3JhcGFyb3VuZF9mYWlsc2Fm ZV9jb3VudCArPSBzcmMtPnRhYmxlLndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CiAJCX0K IAkJZWxzZSBpZiAoZHN0LT50eXBlID09IFBHU1RBVF9FWFRWQUNfSU5ERVgpCiAJCXsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5kZXggNzU1NzUxYzNiNDYuLjRlMjcx NGYyZTZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3Mu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMjM3MSw3 ICsyMzcxLDcgQEAgcGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcyhQR19GVU5DVElPTl9BUkdT KQogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnJlY2Vu dGx5X2RlYWRfdHVwbGVzKTsKIAl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFj dXVtLT50YWJsZS5taXNzZWRfZGVhZF90dXBsZXMpOwogCi0JdmFsdWVzW2krK10gPSBJbnQz MkdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUud3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7 CisJdmFsdWVzW2krK10gPSBJbnQzMkdldERhdHVtKGV4dHZhY3V1bS0+d3JhcGFyb3VuZF9m YWlsc2FmZV9jb3VudCk7CiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1 bS0+dGFibGUuaW5kZXhfdmFjdXVtX2NvdW50KTsKIAogCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bShleHR2YWN1dW0tPndhbF9yZWNvcmRzKTsKQEAgLTI0NjMsMyArMjQ2Myw2MyBA QCBwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyhQR19GVU5DVElPTl9BUkdTKQogCS8qIFJl dHVybnMgdGhlIHJlY29yZCBhcyBEYXR1bSAqLwogCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVw bGVHZXREYXR1bShoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsK IH0KKworRGF0dW0KK3BnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZShQR19GVU5DVElPTl9B UkdTKQoreworI2RlZmluZSBQR19TVEFUX0dFVF9WQUNVVU1fREFUQUJBU0VfU1RBVFNfQ09M UwkxNAorCisJT2lkCQkJZGJpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJUGdTdGF0X1N0YXRE QkVudHJ5ICpkYmVudHJ5OworCUV4dFZhY1JlcG9ydCAqZXh0dmFjdXVtOworCVR1cGxlRGVz Ywl0dXBkZXNjOworCURhdHVtCQl2YWx1ZXNbUEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNF X1NUQVRTX0NPTFNdID0gezB9OworCWJvb2wJCW51bGxzW1BHX1NUQVRfR0VUX1ZBQ1VVTV9E QVRBQkFTRV9TVEFUU19DT0xTXSA9IHswfTsKKwljaGFyCQlidWZbMjU2XTsKKwlpbnQJCQlp ID0gMDsKKworCWlmIChnZXRfY2FsbF9yZXN1bHRfdHlwZShmY2luZm8sIE5VTEwsICZ0dXBk ZXNjKSAhPSBUWVBFRlVOQ19DT01QT1NJVEUpCisJCWVsb2coRVJST1IsICJyZXR1cm4gdHlw ZSBtdXN0IGJlIGEgcm93IHR5cGUiKTsKKworCWRiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3Rh dF9kYmVudHJ5KGRiaWQpOworCisJaWYgKGRiZW50cnkgPT0gTlVMTCkKKwl7CisJCUluaXRN YXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCAwKTsKKwkJUEdfUkVUVVJOX1ZPSUQoKTsKKwl9CisJ ZWxzZQorCXsKKwkJZXh0dmFjdXVtID0gJihkYmVudHJ5LT52YWN1dW1fZXh0KTsKKwl9CisK KwlpID0gMDsKKworCXZhbHVlc1tpKytdID0gT2JqZWN0SWRHZXREYXR1bShkYmlkKTsKKwor CXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Jsa3NfcmVh ZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxr c19oaXQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRvdGFs X2Jsa3NfZGlydGllZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1 bS0+dG90YWxfYmxrc193cml0dGVuKTsKKworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bShleHR2YWN1dW0tPndhbF9yZWNvcmRzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0 dW0oZXh0dmFjdXVtLT53YWxfZnBpKTsKKworCS8qIENvbnZlcnQgdG8gbnVtZXJpYywgbGlr ZSBwZ19zdGF0X3N0YXRlbWVudHMgKi8KKwlzbnByaW50ZihidWYsIHNpemVvZiBidWYsIFVJ TlQ2NF9GT1JNQVQsIGV4dHZhY3V1bS0+d2FsX2J5dGVzKTsKKwl2YWx1ZXNbaSsrXSA9IERp cmVjdEZ1bmN0aW9uQ2FsbDMobnVtZXJpY19pbiwKKwkJCQkJCQkJCSAgQ1N0cmluZ0dldERh dHVtKGJ1ZiksCisJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0oMCksCisJCQkJCQkJCQkg IEludDMyR2V0RGF0dW0oLTEpKTsKKworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0o ZXh0dmFjdXVtLT5ibGtfcmVhZF90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERh dHVtKGV4dHZhY3V1bS0+YmxrX3dyaXRlX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4 R2V0RGF0dW0oZXh0dmFjdXVtLT5kZWxheV90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0 OEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfdGltZSk7CisJdmFsdWVzW2krK10gPSBJbnQz MkdldERhdHVtKGV4dHZhY3V1bS0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7CisKKwlB c3NlcnQoaSA9PSBQR19TVEFUX0dFVF9WQUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MUyk7CisK KwkvKiBSZXR1cm5zIHRoZSByZWNvcmQgYXMgRGF0dW0gKi8KKwlQR19SRVRVUk5fREFUVU0o SGVhcFR1cGxlR2V0RGF0dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVs bHMpKSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBlOTU3NzgxYjYyMy4u YzNhMmFkYjk2ZjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI2MzEsMTIg KzEyNjMxLDIxIEBACiAgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAnaW50 OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X3Jl dl9hbGxfZnJvemVuX3BhZ2VzJyB9LAogeyBvaWQgPT4gJzgwMDQnLAotICBkZXNjciA9PiAn cGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMgcmV0dXJuIHN0YXRzIHZhbHVlcycsCisgIGRl c2NyID0+ICdwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyByZXR1cm5zIHZhY3V1bSBzdGF0 cyB2YWx1ZXMgZm9yIGluZGV4JywKICAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfdmFjdXVt X2luZGV4ZXMnLCBwcm9yb3dzID0+IDEwMDAsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0 dHlwZSA9PiAncmVjb3JkJyxwcm9pc3N0cmljdCA9PiAnZicsCiAgIHByb3JldHNldCA9PiAn dCcsCiAgIHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9hbGxhcmd0eXBlcyA9PiAne29p ZCxvaWQsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50 OCxudW1lcmljLGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OH0nLAogICBwcm9hcmdtb2Rl cyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAogICBwcm9hcmdu YW1lcyA9PiAne3JlbG9pZCxyZWxpZCx0b3RhbF9ibGtzX3JlYWQsdG90YWxfYmxrc19oaXQs dG90YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRlbixyZWxfYmxrc19yZWFkLHJl bF9ibGtzX2hpdCxwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkLHdhbF9yZWNvcmRzLHdh bF9mcGksd2FsX2J5dGVzLGJsa19yZWFkX3RpbWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGlt ZSx0b3RhbF90aW1lfScsCi0gIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4 ZXMnIH0KKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcycgfSwKK3sg b2lkID0+ICc4MDA1JywKKyAgZGVzY3IgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFz ZSByZXR1cm5zIHZhY3V1bSBzdGF0cyB2YWx1ZXMgZm9yIGRhdGFiYXNlJywKKyAgcHJvbmFt ZSA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNlJywgcHJvcm93cyA9PiAxMDAwLCBw cm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcscHJvaXNzdHJpY3Qg PT4gJ2YnLAorICBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkJywK KyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsb2lkLGludDgsaW50OCxpbnQ4LGludDgsaW50 OCxpbnQ4LG51bWVyaWMsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGludDR9JywKKyAg cHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJv YXJnbmFtZXMgPT4gJ3tkYmlkLGRib2lkLGRiX2Jsa3NfcmVhZCxkYl9ibGtzX2hpdCx0b3Rh bF9ibGtzX2RpcnRpZWQsdG90YWxfYmxrc193cml0dGVuLHdhbF9yZWNvcmRzLHdhbF9mcGks d2FsX2J5dGVzLGJsa19yZWFkX3RpbWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSx0b3Rh bF90aW1lLHdyYXBhcm91bmRfZmFpbHNhZmV9JywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dl dF92YWN1dW1fZGF0YWJhc2UnIH0sCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0 YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4IGYyODgxZGJiNmY5Li5mM2JkYzFj MzhkZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1 ZGUvcGdzdGF0LmgKQEAgLTE2NSw2ICsxNjUsOSBAQCB0eXBlZGVmIHN0cnVjdCBFeHRWYWNS ZXBvcnQKIAogCWludDY0CQl0dXBsZXNfZGVsZXRlZDsgLyogdHVwbGVzIGRlbGV0ZWQgYnkg dmFjdXVtICovCiAKKwlpbnQzMgkJd3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsJLyogdGhl IG51bWJlciBvZiB0aW1lcyB0byBwcmV2ZW50CisJCQkJCQkJCQkJCSAqIHdyYXBhcm91bmQg cHJvYmxlbSAqLworCiAJRXh0VmFjUmVwb3J0VHlwZSB0eXBlOwkJLyogaGVhcCwgaW5kZXgs IGV0Yy4gKi8KIAogCS8qIC0tLS0tLS0tLS0KQEAgLTIwNSwxMCArMjA4LDYgQEAgdHlwZWRl ZiBzdHJ1Y3QgRXh0VmFjUmVwb3J0CiAJCQkJCQkJCQkJCSAqIGxvY2sgKi8KIAkJCWludDY0 CQltaXNzZWRfZGVhZF9wYWdlczsJLyogcGFnZXMgd2l0aCBtaXNzZWQgZGVhZCB0dXBsZXMg Ki8KIAkJCWludDY0CQlpbmRleF92YWN1dW1fY291bnQ7IC8qIG51bWJlciBvZiBpbmRleCB2 YWN1dW1pbmdzICovCi0JCQlpbnQzMgkJd3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsJLyog bnVtYmVyIG9mIGVtZXJnZW5jeQotCQkJCQkJCQkJCQkJCSAqIHZhY3V1bXMgdG8gcHJldmVu dAotCQkJCQkJCQkJCQkJCSAqIGFudGktd3JhcGFyb3VuZAotCQkJCQkJCQkJCQkJCSAqIHNo dXRkb3duICovCiAJCX0JCQl0YWJsZTsKIAkJc3RydWN0CiAJCXsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1y ZWFkLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvdmFjdXVtLWV4dGVuZGluZy1p bi1yZXBldGFibGUtcmVhZC5zcGVjCmluZGV4IDU4OTNkODk1NzNkLi5jZmVjMzE1OTU4MCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmct aW4tcmVwZXRhYmxlLXJlYWQuc3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mv dmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5zcGVjCkBAIC0xOCw2ICsxOCw5 IEBAIHRlYXJkb3duCiB9CiAKIHNlc3Npb24gczEKK3NldHVwCQl7CisgICAgU0VUIHRyYWNr X3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvbic7CisgICAgfQogc3RlcCBzMV9iZWdpbl9yZXBl YXRhYmxlX3JlYWQgICB7CiAgIEJFR0lOIHRyYW5zYWN0aW9uIElTT0xBVElPTiBMRVZFTCBS RVBFQVRBQkxFIFJFQUQ7CiAgIHNlbGVjdCBjb3VudChpdmFsKSBmcm9tIHRlc3RfdmFjdXVt X3N0YXRfaXNvbGF0aW9uIHdoZXJlIGlkPjkwMDsKQEAgLTI1LDYgKzI4LDkgQEAgc3RlcCBz MV9iZWdpbl9yZXBlYXRhYmxlX3JlYWQgICB7CiBzdGVwIHMxX2NvbW1pdCAgICAgICAgICAg ICAgICAgIHsgQ09NTUlUOyB9CiAKIHNlc3Npb24gczIKK3NldHVwCQl7CisgICAgU0VUIHRy YWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvbic7CisgICAgfQogc3RlcCBzMl9pbnNlcnQg ICAgICAgICAgICAgICAgICB7IElOU0VSVCBJTlRPIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0 aW9uKGlkLCBpdmFsKSBTRUxFQ1QgaXZhbCwgaXZhbCUxMCBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLDEwMDApIEFzIGl2YWw7IH0KIHN0ZXAgczJfdXBkYXRlICAgICAgICAgICAgICAgICAg eyBVUERBVEUgdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24gU0VUIGl2YWwgPSBpdmFsICsg MiB3aGVyZSBpZCA+IDkwMDsgfQogc3RlcCBzMl9kZWxldGUgICAgICAgICAgICAgICAgICB7 IERFTEVURSBGUk9NIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHdoZXJlIGlkID4gOTAw OyB9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF92YWN1dW1fZXh0ZW5k aW5nX2Jhc2ljX3Rlc3QucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF92YWN1dW1fZXh0 ZW5kaW5nX2Jhc2ljX3Rlc3QucGwKaW5kZXggOGY3YjFlMjkwOWIuLmJkM2NiNTQ0ZTMwIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF92YWN1dW1fZXh0ZW5kaW5nX2Jh c2ljX3Rlc3QucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfdmFjdXVtX2V4dGVu ZGluZ19iYXNpY190ZXN0LnBsCkBAIC0yLDEwICsyLDExIEBACiAjIFRlc3QgY3VtdWxhdGl2 ZSB2YWN1dW0gc3RhdHMgc3lzdGVtIHVzaW5nIFRBUAogIwogIyBUaGlzIHRlc3QgdmFsaWRh dGVzIHRoZSBhY2N1cmFjeSBhbmQgYmVoYXZpb3Igb2YgY3VtdWxhdGl2ZSB2YWN1dW0gc3Rh dGlzdGljcwotIyBhY3Jvc3MgaGVhcCB0YWJsZXMsIGluZGV4ZXMgdXNpbmc6CisjIGFjcm9z cyBoZWFwIHRhYmxlcywgaW5kZXhlcywgYW5kIGRhdGFiYXNlcyB1c2luZzoKICMKICMgICDi gKIgcGdfc3RhdF92YWN1dW1fdGFibGVzCiAjICAg4oCiIHBnX3N0YXRfdmFjdXVtX2luZGV4 ZXMKKyMgICDigKIgcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UKICMKICMgQSBwb2xsaW5nIGhl bHBlciBmdW5jdGlvbiByZXBlYXRlZGx5IGNoZWNrcyB0aGUgc3RhdHMgdmlld3MgdW50aWwg ZXhwZWN0ZWQKICMgZGVsdGFzIGFwcGVhciBvciBhIGNvbmZpZ3VyYWJsZSB0aW1lb3V0IGV4 cGlyZXMuIFRoaXMgZ3VhcmFudGVlcyB0aGF0CkBAIC02NzIsMjAgKzY3MywyMCBAQCAkcmVs b2lkID0gJG5vZGUtPnNhZmVfcHNxbCgKICMgQ2hlY2sgaWYgd2UgY2FuIGdldCB2YWN1dW0g c3RhdGlzdGljcyBvZiBwYXJ0aWN1bGFyIGluZGV4IHJlbGF0aW9uIGluIHRoZSBjdXJyZW50 IGRhdGFiYXNlCiAkYmFzZV9zdGF0cyA9ICRub2RlLT5zYWZlX3BzcWwoCiAgICAgJGRibmFt ZSwKLSAgICAiU0VMRUNUIGNvdW50KCopID0gMSBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4 ZXMoJGRib2lkLCAkcmVsb2lkKTsiCisgICAgIlNFTEVDVCBjb3VudCgqKSA9IDEgRlJPTSBw Z19zdGF0X2dldF92YWN1dW1faW5kZXhlcygkcmVsb2lkKTsiCiApOwogb2soJGJhc2Vfc3Rh dHMgZXEgJ3QnLCAnaW5kZXggdmFjdXVtIHN0YXRzIHJldHVybiBmcm9tIHRoZSBjdXJyZW50 IHJlbGF0aW9uIGFuZCBkYXRhYmFzZSBhcyBleHBlY3RlZCcpOwogCiAjIENoZWNrIGlmIHdl IHJldHVybiBlbXB0eSByZXN1bHRzIGlmIHZhY3V1bSBzdGF0aXN0aWNzIHdpdGggcGFydGlj dWxhciBvaWQgZG9lc24ndCBleGlzdAogJGJhc2Vfc3RhdHMgPSAkbm9kZS0+c2FmZV9wc3Fs KAogICAgICRkYm5hbWUsCi0gICAgIlNFTEVDVCBjb3VudCgqKSA9IDAgRlJPTSBwZ19zdGF0 c192YWN1dW1fdGFibGVzKCRkYm9pZCwgMSk7IgorICAgICJTRUxFQ1QgY291bnQoKikgPSAw IEZST00gcGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcygxKTsiCiApOwogb2soJGJhc2Vfc3Rh dHMgZXEgJ3QnLCAndGFibGUgdmFjdXVtIHN0YXRzIHJldHVybiBubyByb3dzLCBhcyBleHBl Y3RlZCcpOwogCiAkYmFzZV9zdGF0cyA9ICRub2RlLT5zYWZlX3BzcWwoCiAgICAgJGRibmFt ZSwKLSAgICAiU0VMRUNUIGNvdW50KCopID0gMCBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4 ZXMoJGRib2lkLCAxKTsiCisgICAgIlNFTEVDVCBjb3VudCgqKSA9IDAgRlJPTSBwZ19zdGF0 X2dldF92YWN1dW1faW5kZXhlcygxKTsiCiApOwogb2soJGJhc2Vfc3RhdHMgZXEgJ3QnLCAn aW5kZXggdmFjdXVtIHN0YXRzIHJldHVybiBubyByb3dzLCBhcyBleHBlY3RlZCcpOwogCkBA IC03MDgsNyArNzA5LDMxIEBAICRiYXNlX3N0YXRzID0gJG5vZGUtPnNhZmVfcHNxbCgKICAg ICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzCiAgICAgIFdIRVJFIHJlbG5hbWUgPSAn dmVzdGF0X3BrZXknOyIKICk7Ci1vaygkYmFzZV9zdGF0cyBlcSAndCcsICdjaGVjayB0aGUg cHJpbnRpbmcgaGVhcCB2YWN1dW0gZXh0ZW5kZWQgc3RhdGlzdGljcyBmcm9tIGFub3RoZXIg ZGF0YWJhc2UgYXJlIG5vdCBhdmFpbGFibGUnKTsKK29rKCRiYXNlX3N0YXRzIGVxICd0Jywg J2NoZWNrIHRoZSBwcmludGluZyBpbmRleCB2YWN1dW0gZXh0ZW5kZWQgc3RhdGlzdGljcyBm cm9tIGFub3RoZXIgZGF0YWJhc2UgYXJlIG5vdCBhdmFpbGFibGUnKTsKKworIy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgMTA6IENoZWNrIGRhdGFiYXNlLWxl dmVsIHZhY3V1bSBzdGF0aXN0aWNzIGZyb20gdGhlIGN1cnJlbnQgYW5kIGFub3RoZXIgZGF0 YWJhc2UKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiskYmFzZV9zdGF0 cyA9ICRub2RlLT5zYWZlX3BzcWwoCisgICAgJGRibmFtZSwKKyAgICAiU0VMRUNUIGRiX2Js a3NfaGl0ID4gMCBBTkQgdG90YWxfYmxrc19kaXJ0aWVkID4gMAorICAgICAgICAgICAgQU5E IHRvdGFsX2Jsa3Nfd3JpdHRlbiA+IDAgQU5EIHdhbF9yZWNvcmRzID4gMAorICAgICAgICAg ICAgQU5EIHdhbF9mcGkgPiAwIEFORCB3YWxfYnl0ZXMgPiAwCisgICAgIEZST00gcGdfc3Rh dF92YWN1dW1fZGF0YWJhc2UsIHBnX2RhdGFiYXNlCisgICAgIFdIRVJFIHBnX2RhdGFiYXNl LmRhdG5hbWUgPSAnJGRibmFtZScKKyAgICAgICAgICAgIEFORCBwZ19kYXRhYmFzZS5vaWQg PSBwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZS5kYm9pZDsiCispOworb2soJGJhc2Vfc3RhdHMg ZXEgJ3QnLCAnY2hlY2sgZGF0YWJhc2UtbGV2ZWwgdmFjdXVtIHN0YXRzIGZyb20gdGhlIGN1 cnJlbnQgZGF0YWJhc2UgYXJlIGF2YWlsYWJsZScpOworCiskYmFzZV9zdGF0cyA9ICRub2Rl LT5zYWZlX3BzcWwoCisgICAgJ3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID4g MAorICAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX2RhdGFiYXNlLCBwZ19kYXRhYmFzZQorICAg ICBXSEVSRSBwZ19kYXRhYmFzZS5kYXRuYW1lID0gJyRkYm5hbWUnCisgICAgICAgICAgICBB TkQgcGdfZGF0YWJhc2Uub2lkID0gcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UuZGJvaWQ7Igor KTsKK29rKCRiYXNlX3N0YXRzIGVxICd0JywgJ2NoZWNrIGRhdGFiYXNlLWxldmVsIHZhY3V1 bSBzdGF0cyBmcm9tIGFub3RoZXIgZGF0YWJhc2UgYXJlIGF2YWlsYWJsZScpOwogCiAkcmVs b2lkID0gJG5vZGUtPnNhZmVfcHNxbCgKICAgICAkZGJuYW1lLApAQCAtNzM5LDcgKzc2NCw3 IEBAICRiYXNlX3N0YXRzID0gJG5vZGUtPnNhZmVfcHNxbCgKICAgICAkZGJuYW1lLAogICAg IHFxewogICAgICAgICBTRUxFQ1QgY291bnQoKikgPSAxCi0gICAgICAgIEZST00gcGdfc3Rh dF92YWN1dW1faW5kZXhlcygwLCAkaW5kb2lkKTsKKyAgICAgICAgRlJPTSBwZ19zdGF0X2dl dF92YWN1dW1faW5kZXhlcygkaW5kb2lkKTsKICAgICB9CiApOwogCkBAIC03NzMsOCArNzk4 LDE4IEBAICRiYXNlX3N0YXRzID0gJG5vZGUtPnNhZmVfcHNxbCgKICk7CiBvaygkYmFzZV9z dGF0cyBlcSAndCcsICdwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIGNvcnJlY3RseSByZXR1cm5z IG5vIHJvd3MgZm9yIE9JRCA9IDAnKTsKIAorJGJhc2Vfc3RhdHMgPSAkbm9kZS0+c2FmZV9w c3FsKAorICAgICdwb3N0Z3JlcycsCisgICAgcXsKKyAgICAgICAgU0VMRUNUIENPVU5UKCop ID0gMAorICAgICAgICAgIEZST00gcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UgV0hFUkUgZGJv aWQgPSAwOworICAgIH0KKyk7CitvaygkYmFzZV9zdGF0cyBlcSAndCcsICdwZ19zdGF0X3Zh Y3V1bV9kYXRhYmFzZSBjb3JyZWN0bHkgcmV0dXJucyBubyByb3dzIGZvciBPSUQgPSAwJyk7 CisKICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKLSAgICAiRFJPUCBEQVRBQkFTRSAk ZGJuYW1lOyIKKyAgICAiRFJPUCBEQVRBQkFTRSAkZGJuYW1lOworICAgICBWQUNVVU07Igog KTsKIAogJG5vZGUtPnN0b3A7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1 MV92YWN1dW1fZXh0ZW5kaW5nX2ZyZWV6ZV90ZXN0LnBsIGIvc3JjL3Rlc3QvcmVjb3Zlcnkv dC8wNTFfdmFjdXVtX2V4dGVuZGluZ19mcmVlemVfdGVzdC5wbAppbmRleCBhOWI1ZDZjYjcz OS4uNzUyOGYyMDA5OGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUxX3Zh Y3V1bV9leHRlbmRpbmdfZnJlZXplX3Rlc3QucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3Zlcnkv dC8wNTFfdmFjdXVtX2V4dGVuZGluZ19mcmVlemVfdGVzdC5wbApAQCAtOTEsMTEgKzkxLDE3 IEBAIHN1YiB3YWl0X2Zvcl92YWN1dW1fc3RhdHMgewogCiAgICAgbXkgJHN0YXJ0ID0gdGlt ZSgpOwogICAgIG15ICRzcWw7CisgICAgbXkgJHZhY3V1bV9ydW4gPSAwOworCisgICAgIyBS dW4gVkFDVVVNIG9uY2UgaWYgcmVxdWVzdGVkLCBiZWZvcmUgcG9sbGluZworICAgIGlmICgk cnVuX3ZhY3V1bSkgeworICAgICAgICAkbm9kZS0+c2FmZV9wc3FsKCRkYm5hbWUsICdWQUNV VU0gKEZSRUVaRSwgVkVSQk9TRSkgdmVzdGF0Jyk7CisgICAgICAgICR2YWN1dW1fcnVuID0g MTsKKyAgICB9CiAKICAgICB3aGlsZSAoKHRpbWUoKSAtICRzdGFydCkgPCAkdGltZW91dCkg ewogCiAgICAgICAgIGlmICgkcnVuX3ZhY3V1bSkgewotICAgICAgICAgICAgJG5vZGUtPnNh ZmVfcHNxbCgkZGJuYW1lLCAnVkFDVVVNIChGUkVFWkUsIFZFUkJPU0UpIHZlc3RhdCcpOwog ICAgICAgICAgICAgJHNxbCA9ICIKICAgICAgICAgICAgICAgICBTRUxFQ1QgKCR0YWJfZnJv emVuX2NvbHVtbiA+ICR0YWJfYWxsX2Zyb3plbl9wYWdlc19jb3VudCBBTkQKICAgICAgICAg ICAgICAgICAgICAgICAgICR0YWJfdmlzaWJsZV9jb2x1bW4gPiAkdGFiX2FsbF92aXNpYmxl X3BhZ2VzX2NvdW50KQpAQCAtMjEzLDIwICsyMTksNiBAQCAkbm9kZS0+c2FmZV9wc3FsKCRk Ym5hbWUsIHF7CiAJVkFDVVVNIChGUkVFWkUsIFZFUkJPU0UpIHZlc3RhdDsKIH0pOwogCi0j IFBvbGwgdGhlIHN0YXRzIHZpZXcgdW50aWwgdGhlIGV4cGVjdGVkIGRlbHRhcyBhcHBlYXIg b3IgdGltZW91dC4KLSMgV2UgZG8gbm90IGV4cGVjdCByZXZfYWxsXyogY291bnRlcnMgdG8g Y2hhbmdlIGhlcmUsIHNvIHdlIHBhc3MgLTEgZm9yIHRoZW0uCi0kdXBkYXRlZCA9IHdhaXRf Zm9yX3ZhY3V1bV9zdGF0cygKLQkJCXRhYl9mcm96ZW5fY29sdW1uID0+ICd2bV9uZXdfZnJv emVuX3BhZ2VzJywKLQkJCXRhYl92aXNpYmxlX2NvbHVtbiA9PiAndm1fbmV3X3Zpc2libGVf cGFnZXMnLAotCQkJdGFiX2FsbF9mcm96ZW5fcGFnZXNfY291bnQgPT4gMCwKLQkJCXRhYl9h bGxfdmlzaWJsZV9wYWdlc19jb3VudCA9PiAwLAotICAgICAgcnVuX3ZhY3V1bSA9PiAxLAot KTsKLQotb2soJHVwZGF0ZWQsCi0gICAndmFjdXVtIHN0YXRzIHVwZGF0ZWQgYWZ0ZXIgdmFj dXVtaW5nIHRoZSB0YWJsZSAodm1fbmV3X2Zyb3plbl9wYWdlcyBhbmQgdm1fbmV3X3Zpc2li bGVfcGFnZXMgYWR2YW5jZWQpJykKLSAgb3IgZGlhZyAiVGltZW91dCB3YWl0aW5nIGZvciBw Z19zdGF0X3ZhY3V1bV90YWJsZXMgdG8gdXBkYXRlIGFmdGVyICR0aW1lb3V0IHNlY29uZHMg ZHVyaW5nIHZhY3V1bSI7Ci0KICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgU25hcHNo b3QgY3VycmVudCBzdGF0aXN0aWNzIGZvciBsYXRlciBjb21wYXJpc29uCiAjLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCkBAIC0yMzgsNyArMjMwLDcgQEAgZmV0Y2hfdmFjdXVtX3N0YXRz KCk7CiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICRyZXMgPSAkbm9kZS0+c2FmZV9w c3FsKCRkYm5hbWUsIHF7Ci0gICAgU0VMRUNUIHZtX25ld19mcm96ZW5fcGFnZXMgPiAwIEZS T00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JzsKKyAg ICBTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyA9IDAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90 YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOwogfSk7CiBvaygkcmVzIGVxICd0Jywg J3ZhY3V1bSBmcm96ZSBzb21lIHBhZ2VzLCBhcyBleHBlY3RlZCcpIG9yCiAgIGZldGNoX2Vy cm9yX3RhYl92YWN1dW1fc3RhdGlzdGljcyh0YWJfY29sdW1uID0+ICd2bV9uZXdfZnJvemVu X3BhZ2VzJywgdGFiX3ZhbHVlID0+ICR2bV9uZXdfZnJvemVuX3BhZ2VzLCk7CkBAIC0zMzUs MzIgKzMyNywyNCBAQCBmZXRjaF92YWN1dW1fc3RhdHMoKTsKIAogJG5vZGUtPnNhZmVfcHNx bCgkZGJuYW1lLCBxeyBWQUNVVU0gKEZSRUVaRSwgVkVSQk9TRSkgdmVzdGF0OyB9KTsKIAot IyBQb2xsIHVudGlsIHN0YXRzIHVwZGF0ZSBvciB0aW1lb3V0LgotIyBXZSBwYXNzIGN1cnJl bnQgc25hcHNob3QgdmFsdWVzIGZvciB2bV9uZXdfZnJvemVuX3BhZ2VzL3ZtX25ld192aXNp YmxlX3BhZ2VzIGFuZCBleHBlY3QgcmV2IGNvdW50ZXJzIHVuY2hhbmdlZC4KLSR1cGRhdGVk ID0gd2FpdF9mb3JfdmFjdXVtX3N0YXRzKAotCQkJdGFiX2Zyb3plbl9jb2x1bW4gPT4gJ3Zt X25ld19mcm96ZW5fcGFnZXMnLAotCQkJdGFiX3Zpc2libGVfY29sdW1uID0+ICd2bV9uZXdf dmlzaWJsZV9wYWdlcycsCi0JCQl0YWJfYWxsX2Zyb3plbl9wYWdlc19jb3VudCA9PiAkdm1f bmV3X2Zyb3plbl9wYWdlcywKLQkJCXRhYl9hbGxfdmlzaWJsZV9wYWdlc19jb3VudCA9PiAk dm1fbmV3X3Zpc2libGVfcGFnZXMsCi0gICAgICBydW5fdmFjdXVtID0+IDEsCi0pOwotCi1v aygkdXBkYXRlZCwKLSAgICd2YWN1dW0gc3RhdHMgdXBkYXRlZCBhZnRlciB2YWN1dW1pbmcg dGhlIGFsbC11cGRhdGVkIHRhYmxlICh2bV9uZXdfZnJvemVuX3BhZ2VzIGFuZCB2bV9uZXdf dmlzaWJsZV9wYWdlcyBhZHZhbmNlZCknKQotICBvciBkaWFnICJUaW1lb3V0IHdhaXRpbmcg Zm9yIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB0byB1cGRhdGUgYWZ0ZXIgJHRpbWVvdXQgc2Vj b25kcyBkdXJpbmcgdmFjdXVtIjsKLQogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBW ZXJpZnkgc3RhdGlzdGljcyBhZnRlciBmaW5hbCB2YWN1dW0KICMgQ2hlY2sgdXBkYXRlZCBz dGF0cyBhZnRlciBiYWNrZW5kIHdvcmsKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor IyBGZXRjaCB1cGRhdGVkIHN0YXRpc3RpY3MgdG8gZ2V0IHRoZSBuZXcgYmFzZWxpbmUgZm9y IGNvbXBhcmlzb24KK215ICRvbGRfdm1fbmV3X2Zyb3plbl9wYWdlcyA9ICR2bV9uZXdfZnJv emVuX3BhZ2VzOworbXkgJG9sZF92bV9uZXdfdmlzaWJsZV9wYWdlcyA9ICR2bV9uZXdfdmlz aWJsZV9wYWdlczsKK2ZldGNoX3ZhY3V1bV9zdGF0cygpOworCiAkcmVzID0gJG5vZGUtPnNh ZmVfcHNxbCgkZGJuYW1lLAotCSJTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyA+ICR2bV9u ZXdfZnJvemVuX3BhZ2VzIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5h bWUgPSAndmVzdGF0JzsiCisJIlNFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzID0gJG9sZF92 bV9uZXdfZnJvemVuX3BhZ2VzIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJl bG5hbWUgPSAndmVzdGF0JzsiCiApOwogb2soJHJlcyBlcSAndCcsICd2YWN1dW0gZnJvemUg c29tZSBwYWdlcyBhZnRlciBiYWNrZW5kIGFjdGl2aXR5LCBhcyBleHBlY3RlZCcpIG9yCiAg IGZldGNoX2Vycm9yX3RhYl92YWN1dW1fc3RhdGlzdGljcyh0YWJfY29sdW1uID0+ICd2bV9u ZXdfZnJvemVuX3BhZ2VzJywgdGFiX3ZhbHVlID0+ICR2bV9uZXdfZnJvemVuX3BhZ2VzLCk7 CiAKICRyZXMgPSAkbm9kZS0+c2FmZV9wc3FsKCRkYm5hbWUsCi0JIlNFTEVDVCB2bV9uZXdf dmlzaWJsZV9wYWdlcyA+ICR2bV9uZXdfdmlzaWJsZV9wYWdlcyBGUk9NIHBnX3N0YXRfdmFj dXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7IgorCSJTRUxFQ1Qgdm1fbmV3 X3Zpc2libGVfcGFnZXMgPiAkb2xkX3ZtX25ld192aXNpYmxlX3BhZ2VzIEZST00gcGdfc3Rh dF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JzsiCiApOwogb2soJHJl cyBlcSAndCcsICd2YWN1dW0gbWFya2VkIHBhZ2VzIGFsbC12aXNpYmxlIGFmdGVyIGJhY2tl bmQgYWN0aXZpdHksIGFzIGV4cGVjdGVkJykgb3IKICAgZmV0Y2hfZXJyb3JfdGFiX3ZhY3V1 bV9zdGF0aXN0aWNzKHRhYl9jb2x1bW4gPT4gJ3ZtX25ld192aXNpYmxlX3BhZ2VzJywgdGFi X3ZhbHVlID0+ICR2bV9uZXdfdmlzaWJsZV9wYWdlcywpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3J1bGVzLm91dAppbmRleCA3ZTYwMjkzOTRjYi4uYjYyN2M4NWUzMzIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0yMzMwLDYgKzIzMzAsMjMgQEAgcGdf c3RhdF91c2VyX3RhYmxlc3wgU0VMRUNUIHJlbGlkLAogICAgIHJldl9hbGxfdmlzaWJsZV9w YWdlcwogICAgRlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAgV0hFUkUgKChzY2hlbWFuYW1l IDw+IEFMTCAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5mb3JtYXRpb25fc2NoZW1h Jzo6bmFtZV0pKSBBTkQgKHNjaGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6OnRleHQpKTsKK3Bn X3N0YXRfdmFjdXVtX2RhdGFiYXNlfCBTRUxFQ1QgZGIub2lkIEFTIGRib2lkLAorICAgIGRi LmRhdG5hbWUgQVMgZGJuYW1lLAorICAgIHN0YXRzLmRiX2Jsa3NfcmVhZCwKKyAgICBzdGF0 cy5kYl9ibGtzX2hpdCwKKyAgICBzdGF0cy50b3RhbF9ibGtzX2RpcnRpZWQsCisgICAgc3Rh dHMudG90YWxfYmxrc193cml0dGVuLAorICAgIHN0YXRzLndhbF9yZWNvcmRzLAorICAgIHN0 YXRzLndhbF9mcGksCisgICAgc3RhdHMud2FsX2J5dGVzLAorICAgIHN0YXRzLmJsa19yZWFk X3RpbWUsCisgICAgc3RhdHMuYmxrX3dyaXRlX3RpbWUsCisgICAgc3RhdHMuZGVsYXlfdGlt ZSwKKyAgICBzdGF0cy50b3RhbF90aW1lLAorICAgIHN0YXRzLndyYXBhcm91bmRfZmFpbHNh ZmUsCisgICAgc3RhdHMuZXJyb3JzCisgICBGUk9NIHBnX2RhdGFiYXNlIGRiLAorICAgIExB VEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNlKGRiLm9pZCkgc3RhdHMoZGJvaWQs IGRiX2Jsa3NfcmVhZCwgZGJfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90YWxf Ymxrc193cml0dGVuLCB3YWxfcmVjb3Jkcywgd2FsX2ZwaSwgd2FsX2J5dGVzLCBibGtfcmVh ZF90aW1lLCBibGtfd3JpdGVfdGltZSwgZGVsYXlfdGltZSwgdG90YWxfdGltZSwgd3JhcGFy b3VuZF9mYWlsc2FmZSwgZXJyb3JzKTsKIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXN8IFNFTEVD VCByZWwub2lkIEFTIHJlbGlkLAogICAgIG5zLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAg ICByZWwucmVsbmFtZSwKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --------------LO5tty50ZJRZk32bRvqIZqab Content-Type: text/plain; charset=UTF-8; name="v26-0004-Vacuum-statistics-have-been-separated-from-regular.patch" Content-Disposition: attachment; filename*0="v26-0004-Vacuum-statistics-have-been-separated-from-regular."; filename*1="patch" Content-Transfer-Encoding: base64 RnJvbSAxMmY0NTk2YzI1ZTE1ZDFmNzU2NmI4NzMzNDYxNWFkMTEyY2ZiNjRlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogU3VuLCAyMSBEZWMgMjAyNSAwMTo0MDowNiArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggNC81XSBWYWN1dW0gc3RhdGlzdGljcyBoYXZlIGJlZW4gc2VwYXJhdGVk IGZyb20gcmVndWxhcgogcmVsYXRpb24gYW5kIGRhdGFiYXNlIHN0YXRpc3RpY3MgdG8gcmVk dWNlIG1lbW9yeSB1c2FnZS4gRGVkaWNhdGVkCiBQR1NUQVRfS0lORF9WQUNVVU1fUkVMQVRJ T04gYW5kIFBHU1RBVF9LSU5EX1ZBQ1VVTV9EQiBlbnRyaWVzIHdlcmUgYWRkZWQgdG8KIHRo ZSBzdGF0cyBjb2xsZWN0b3IgdG8gZWZmaWNpZW50bHkgYWxsb2NhdGUgbWVtb3J5IGZvciB2 YWN1dW0tc3BlY2lmaWMKIG1ldHJpY3MsIHdoaWNoIHJlcXVpcmUgc2lnbmlmaWNhbnRseSBt b3JlIHNwYWNlIHBlciByZWxhdGlvbi4KCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jICAgICAgICAgIHwgMTI0ICsrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2Nh dGFsb2cvaGVhcC5jICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL2luZGV4LmMgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgMTc3ICsrKysrKysrLS0tLS0t LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgICAgICAgICB8ICAg NSArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvTWFrZWZpbGUgICAgICAgICAgIHwg ICAxICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jICAgICAgICAgICB8 ICAzMCArKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5j ICB8ICAxMCArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9u LmMgIHwgIDc1ICstLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3Zh Y3V1bS5jICAgIHwgMjE0ICsrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3Bnc3RhdGZ1bmNzLmMgICAgICAgICAgIHwgMTQ5ICsrKysrKy0tLS0tLQogc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQgICAgIHwgICA2ICsKIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3Jj L2luY2x1ZGUvcGdzdGF0LmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjA4ICsrKysr KysrKy0tLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaCAgICAg ICAgICAgfCAgMTUgKysKIHNyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9raW5kLmggICAgICAg ICAgICAgICB8ICAgNCArLQogLi4uL3QvMDUwX3ZhY3V1bV9leHRlbmRpbmdfYmFzaWNfdGVz dC5wbCAgICAgIHwgIDIxICstCiAuLi4vdC8wNTFfdmFjdXVtX2V4dGVuZGluZ19mcmVlemVf dGVzdC5wbCAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQgICAgICAgICAgIHwgMTQ2ICsrKysrKy0tLS0tLQogMjAgZmlsZXMgY2hhbmdlZCwgNzM1 IGluc2VydGlvbnMoKyksIDQ1NiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfdmFjdXVtLmMKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggZmNkOTJhNDNkZGEuLjNmMWVkMDQwOTA4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC00MTMsNyArNDEz LDggQEAgdHlwZWRlZiBzdHJ1Y3QgTFZSZWxTdGF0ZQogCWludDMyCQl3cmFwYXJvdW5kX2Zh aWxzYWZlX2NvdW50OwkvKiBudW1iZXIgb2YgZW1lcmdlbmN5IHZhY3V1bXMgdG8KIAkJCQkJ CQkJCQkJICogcHJldmVudCBhbnRpLXdyYXBhcm91bmQKIAkJCQkJCQkJCQkJICogc2h1dGRv d24gKi8KLQlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0SWR4OworCisJUGdTdGF0X1ZhY3V1 bVJlbGF0aW9uQ291bnRzIGV4dFZhY1JlcG9ydElkeDsKIH0gTFZSZWxTdGF0ZTsKIAogCkBA IC01MDUsNiArNTA2LDkgQEAgZXh0dmFjX3N0YXRzX3N0YXJ0KFJlbGF0aW9uIHJlbCwgTFZF eHRTdGF0Q291bnRlcnMgKiBjb3VudGVycykKIHsKIAlUaW1lc3RhbXBUeiBzdGFydHRpbWU7 CiAKKwlpZiAoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwkJcmV0dXJuOwor CiAJbWVtc2V0KGNvdW50ZXJzLCAwLCBzaXplb2YoTFZFeHRTdGF0Q291bnRlcnMpKTsKIAog CXN0YXJ0dGltZSA9IEdldEN1cnJlbnRUaW1lc3RhbXAoKTsKQEAgLTUzNiw3ICs1NDAsNyBA QCBleHR2YWNfc3RhdHNfc3RhcnQoUmVsYXRpb24gcmVsLCBMVkV4dFN0YXRDb3VudGVycyAq IGNvdW50ZXJzKQogICovCiBzdGF0aWMgdm9pZAogZXh0dmFjX3N0YXRzX2VuZChSZWxhdGlv biByZWwsIExWRXh0U3RhdENvdW50ZXJzICogY291bnRlcnMsCi0JCQkJIEV4dFZhY1JlcG9y dCAqIHJlcG9ydCkKKwkJCQkgUGdTdGF0X0NvbW1vbkNvdW50cyAqIHJlcG9ydCkKIHsKIAlX YWxVc2FnZQl3YWx1c2FnZTsKIAlCdWZmZXJVc2FnZSBidWZ1c2FnZTsKQEAgLTU0NCw2ICs1 NDgsMTEgQEAgZXh0dmFjX3N0YXRzX2VuZChSZWxhdGlvbiByZWwsIExWRXh0U3RhdENvdW50 ZXJzICogY291bnRlcnMsCiAJbG9uZwkJc2VjczsKIAlpbnQJCQl1c2VjczsKIAorCWlmICgh cGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCQlyZXR1cm47CisKKwltZW1zZXQo cmVwb3J0LCAwLCBzaXplb2YoUGdTdGF0X0NvbW1vbkNvdW50cykpOworCiAJLyogQ2FsY3Vs YXRlIGRpZmZzIG9mIGdsb2JhbCBzdGF0IHBhcmFtZXRlcnMgb24gV0FMIGFuZCBidWZmZXIg dXNhZ2UuICovCiAJbWVtc2V0KCZ3YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVzYWdlKSk7CiAJ V2FsVXNhZ2VBY2N1bURpZmYoJndhbHVzYWdlLCAmcGdXYWxVc2FnZSwgJmNvdW50ZXJzLT53 YWx1c2FnZSk7CkBAIC01OTIsNiArNjAxLDkgQEAgdm9pZAogZXh0dmFjX3N0YXRzX3N0YXJ0 X2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsCiAJCQkJ CSAgIExWRXh0U3RhdENvdW50ZXJzSWR4ICogY291bnRlcnMpCiB7CisJaWYgKCFwZ3N0YXRf dHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJCXJldHVybjsKKwogCS8qIFNldCBpbml0aWFs IHZhbHVlcyBmb3IgY29tbW9uIGhlYXAgYW5kIGluZGV4IHN0YXRpc3RpY3MgKi8KIAlleHR2 YWNfc3RhdHNfc3RhcnQocmVsLCAmY291bnRlcnMtPmNvbW1vbik7CiAJY291bnRlcnMtPnBh Z2VzX2RlbGV0ZWQgPSBjb3VudGVycy0+dHVwbGVzX3JlbW92ZWQgPSAwOwpAQCAtNjA5LDEx ICs2MjEsMTUgQEAgZXh0dmFjX3N0YXRzX3N0YXJ0X2lkeChSZWxhdGlvbiByZWwsIEluZGV4 QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsCiAKIHZvaWQKIGV4dHZhY19zdGF0c19lbmRfaWR4 KFJlbGF0aW9uIHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICpzdGF0cywKLQkJCQkJIExW RXh0U3RhdENvdW50ZXJzSWR4ICogY291bnRlcnMsIEV4dFZhY1JlcG9ydCAqIHJlcG9ydCkK KwkJCQkJIExWRXh0U3RhdENvdW50ZXJzSWR4ICogY291bnRlcnMsIFBnU3RhdF9WYWN1dW1S ZWxhdGlvbkNvdW50cyAqIHJlcG9ydCkKIHsKLQltZW1zZXQocmVwb3J0LCAwLCBzaXplb2Yo RXh0VmFjUmVwb3J0KSk7CisJaWYgKCFwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3Mp CisJCXJldHVybjsKKworCW1lbXNldChyZXBvcnQsIDAsIHNpemVvZihQZ1N0YXRfVmFjdXVt UmVsYXRpb25Db3VudHMpKTsKKworCWV4dHZhY19zdGF0c19lbmQocmVsLCAmY291bnRlcnMt PmNvbW1vbiwgJnJlcG9ydC0+Y29tbW9uKTsKIAotCWV4dHZhY19zdGF0c19lbmQocmVsLCAm Y291bnRlcnMtPmNvbW1vbiwgcmVwb3J0KTsKIAlyZXBvcnQtPnR5cGUgPSBQR1NUQVRfRVhU VkFDX0lOREVYOwogCiAJaWYgKHN0YXRzICE9IE5VTEwpCkBAIC02MjQsNyArNjQwLDcgQEAg ZXh0dmFjX3N0YXRzX2VuZF9pZHgoUmVsYXRpb24gcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1 bHQgKnN0YXRzLAogCQkgKi8KIAogCQkvKiBGaWxsIGluZGV4LXNwZWNpZmljIGV4dGVuZGVk IHN0YXRzIGZpZWxkcyAqLwotCQlyZXBvcnQtPnR1cGxlc19kZWxldGVkID0KKwkJcmVwb3J0 LT5jb21tb24udHVwbGVzX2RlbGV0ZWQgPQogCQkJc3RhdHMtPnR1cGxlc19yZW1vdmVkIC0g Y291bnRlcnMtPnR1cGxlc19yZW1vdmVkOwogCQlyZXBvcnQtPmluZGV4LnBhZ2VzX2RlbGV0 ZWQgPQogCQkJc3RhdHMtPnBhZ2VzX2RlbGV0ZWQgLSBjb3VudGVycy0+cGFnZXNfZGVsZXRl ZDsKQEAgLTY0Nyw4ICs2NjMsMTEgQEAgZXh0dmFjX3N0YXRzX2VuZF9pZHgoUmVsYXRpb24g cmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0YXRzLAogICAqIHByb2N1ZHVyZS4KICov CiBzdGF0aWMgdm9pZAotYWNjdW11bGF0ZV9oZWFwX3ZhY3V1bV9zdGF0aXN0aWNzKExWUmVs U3RhdGUgKnZhY3JlbCwgRXh0VmFjUmVwb3J0ICogZXh0VmFjU3RhdHMpCithY2N1bXVsYXRl X2hlYXBfdmFjdXVtX3N0YXRpc3RpY3MoTFZSZWxTdGF0ZSAqdmFjcmVsLCBQZ1N0YXRfVmFj dXVtUmVsYXRpb25Db3VudHMgKiBleHRWYWNTdGF0cykKIHsKKwlpZiAoIXBnc3RhdF90cmFj a192YWN1dW1fc3RhdGlzdGljcykKKwkJcmV0dXJuOworCiAJLyogRmlsbCBoZWFwLXNwZWNp ZmljIGV4dGVuZGVkIHN0YXRzIGZpZWxkcyAqLwogCWV4dFZhY1N0YXRzLT50eXBlID0gUEdT VEFUX0VYVFZBQ19UQUJMRTsKIAlleHRWYWNTdGF0cy0+dGFibGUucGFnZXNfc2Nhbm5lZCA9 IHZhY3JlbC0+c2Nhbm5lZF9wYWdlczsKQEAgLTY1Niw0NiArNjc1LDQ1IEBAIGFjY3VtdWxh dGVfaGVhcF92YWN1dW1fc3RhdGlzdGljcyhMVlJlbFN0YXRlICp2YWNyZWwsIEV4dFZhY1Jl cG9ydCAqIGV4dFZhY1N0YXRzCiAJZXh0VmFjU3RhdHMtPnRhYmxlLnZtX25ld19mcm96ZW5f cGFnZXMgPSB2YWNyZWwtPnZtX25ld19mcm96ZW5fcGFnZXM7CiAJZXh0VmFjU3RhdHMtPnRh YmxlLnZtX25ld192aXNpYmxlX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9wYWdl czsKIAlleHRWYWNTdGF0cy0+dGFibGUudm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0g dmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXM7Ci0JZXh0VmFjU3RhdHMtPnR1 cGxlc19kZWxldGVkID0gdmFjcmVsLT50dXBsZXNfZGVsZXRlZDsKKwlleHRWYWNTdGF0cy0+ Y29tbW9uLnR1cGxlc19kZWxldGVkID0gdmFjcmVsLT50dXBsZXNfZGVsZXRlZDsKIAlleHRW YWNTdGF0cy0+dGFibGUudHVwbGVzX2Zyb3plbiA9IHZhY3JlbC0+dHVwbGVzX2Zyb3plbjsK IAlleHRWYWNTdGF0cy0+dGFibGUucmVjZW50bHlfZGVhZF90dXBsZXMgPSB2YWNyZWwtPnJl Y2VudGx5X2RlYWRfdHVwbGVzOwogCWV4dFZhY1N0YXRzLT50YWJsZS5yZWNlbnRseV9kZWFk X3R1cGxlcyA9IHZhY3JlbC0+cmVjZW50bHlfZGVhZF90dXBsZXM7CiAJZXh0VmFjU3RhdHMt PnRhYmxlLm1pc3NlZF9kZWFkX3R1cGxlcyA9IHZhY3JlbC0+bWlzc2VkX2RlYWRfdHVwbGVz OwogCWV4dFZhY1N0YXRzLT50YWJsZS5taXNzZWRfZGVhZF9wYWdlcyA9IHZhY3JlbC0+bWlz c2VkX2RlYWRfcGFnZXM7CiAJZXh0VmFjU3RhdHMtPnRhYmxlLmluZGV4X3ZhY3V1bV9jb3Vu dCA9IHZhY3JlbC0+bnVtX2luZGV4X3NjYW5zOwotCWV4dFZhY1N0YXRzLT53cmFwYXJvdW5k X2ZhaWxzYWZlX2NvdW50ID0gdmFjcmVsLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50Owor CWV4dFZhY1N0YXRzLT5jb21tb24ud3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCA9IHZhY3Jl bC0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsKIAotCWV4dFZhY1N0YXRzLT5ibGtfcmVh ZF90aW1lIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmJsa19yZWFkX3RpbWU7Ci0JZXh0 VmFjU3RhdHMtPmJsa193cml0ZV90aW1lIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmJs a193cml0ZV90aW1lOwotCWV4dFZhY1N0YXRzLT50b3RhbF9ibGtzX2RpcnRpZWQgLT0gdmFj cmVsLT5leHRWYWNSZXBvcnRJZHgudG90YWxfYmxrc19kaXJ0aWVkOwotCWV4dFZhY1N0YXRz LT50b3RhbF9ibGtzX2hpdCAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC50b3RhbF9ibGtz X2hpdDsKLQlleHRWYWNTdGF0cy0+dG90YWxfYmxrc19yZWFkIC09IHZhY3JlbC0+ZXh0VmFj UmVwb3J0SWR4LnRvdGFsX2Jsa3NfcmVhZDsKLQlleHRWYWNTdGF0cy0+dG90YWxfYmxrc193 cml0dGVuIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LnRvdGFsX2Jsa3Nfd3JpdHRlbjsK LQlleHRWYWNTdGF0cy0+d2FsX2J5dGVzIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4Lndh bF9ieXRlczsKLQlleHRWYWNTdGF0cy0+d2FsX2ZwaSAtPSB2YWNyZWwtPmV4dFZhY1JlcG9y dElkeC53YWxfZnBpOwotCWV4dFZhY1N0YXRzLT53YWxfcmVjb3JkcyAtPSB2YWNyZWwtPmV4 dFZhY1JlcG9ydElkeC53YWxfcmVjb3JkczsKKwlleHRWYWNTdGF0cy0+Y29tbW9uLmJsa19y ZWFkX3RpbWUgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLmJsa19yZWFkX3Rp bWU7CisJZXh0VmFjU3RhdHMtPmNvbW1vbi5ibGtfd3JpdGVfdGltZSAtPSB2YWNyZWwtPmV4 dFZhY1JlcG9ydElkeC5jb21tb24uYmxrX3dyaXRlX3RpbWU7CisJZXh0VmFjU3RhdHMtPmNv bW1vbi50b3RhbF9ibGtzX2RpcnRpZWQgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29t bW9uLnRvdGFsX2Jsa3NfZGlydGllZDsKKwlleHRWYWNTdGF0cy0+Y29tbW9uLnRvdGFsX2Js a3NfaGl0IC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmNvbW1vbi50b3RhbF9ibGtzX2hp dDsKKwlleHRWYWNTdGF0cy0+Y29tbW9uLnRvdGFsX2Jsa3NfcmVhZCAtPSB2YWNyZWwtPmV4 dFZhY1JlcG9ydElkeC5jb21tb24udG90YWxfYmxrc19yZWFkOworCWV4dFZhY1N0YXRzLT5j b21tb24udG90YWxfYmxrc193cml0dGVuIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmNv bW1vbi50b3RhbF9ibGtzX3dyaXR0ZW47CisJZXh0VmFjU3RhdHMtPmNvbW1vbi53YWxfYnl0 ZXMgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLndhbF9ieXRlczsKKwlleHRW YWNTdGF0cy0+Y29tbW9uLndhbF9mcGkgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29t bW9uLndhbF9mcGk7CisJZXh0VmFjU3RhdHMtPmNvbW1vbi53YWxfcmVjb3JkcyAtPSB2YWNy ZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24ud2FsX3JlY29yZHM7CiAKLQlleHRWYWNTdGF0 cy0+dG90YWxfdGltZSAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC50b3RhbF90aW1lOwot CWV4dFZhY1N0YXRzLT5kZWxheV90aW1lIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmRl bGF5X3RpbWU7CisJZXh0VmFjU3RhdHMtPmNvbW1vbi50b3RhbF90aW1lIC09IHZhY3JlbC0+ ZXh0VmFjUmVwb3J0SWR4LmNvbW1vbi50b3RhbF90aW1lOworCWV4dFZhY1N0YXRzLT5jb21t b24uZGVsYXlfdGltZSAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24uZGVsYXlf dGltZTsKIAogfQogCiBzdGF0aWMgdm9pZAotYWNjdW11bGF0ZV9pZHhzX3ZhY3V1bV9zdGF0 aXN0aWNzKExWUmVsU3RhdGUgKnZhY3JlbCwgRXh0VmFjUmVwb3J0ICogZXh0VmFjSWR4U3Rh dHMpCithY2N1bXVsYXRlX2lkeHNfdmFjdXVtX3N0YXRpc3RpY3MoTFZSZWxTdGF0ZSAqdmFj cmVsLCBQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKiBleHRWYWNJZHhTdGF0cykKIHsK IAkvKiBGaWxsIGhlYXAtc3BlY2lmaWMgZXh0ZW5kZWQgc3RhdHMgZmllbGRzICovCi0JdmFj cmVsLT5leHRWYWNSZXBvcnRJZHguYmxrX3JlYWRfdGltZSArPSBleHRWYWNJZHhTdGF0cy0+ YmxrX3JlYWRfdGltZTsKLQl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5ibGtfd3JpdGVfdGlt ZSArPSBleHRWYWNJZHhTdGF0cy0+YmxrX3dyaXRlX3RpbWU7Ci0JdmFjcmVsLT5leHRWYWNS ZXBvcnRJZHgudG90YWxfYmxrc19kaXJ0aWVkICs9IGV4dFZhY0lkeFN0YXRzLT50b3RhbF9i bGtzX2RpcnRpZWQ7Ci0JdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgudG90YWxfYmxrc19oaXQg Kz0gZXh0VmFjSWR4U3RhdHMtPnRvdGFsX2Jsa3NfaGl0OwotCXZhY3JlbC0+ZXh0VmFjUmVw b3J0SWR4LnRvdGFsX2Jsa3NfcmVhZCArPSBleHRWYWNJZHhTdGF0cy0+dG90YWxfYmxrc19y ZWFkOwotCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LnRvdGFsX2Jsa3Nfd3JpdHRlbiArPSBl eHRWYWNJZHhTdGF0cy0+dG90YWxfYmxrc193cml0dGVuOwotCXZhY3JlbC0+ZXh0VmFjUmVw b3J0SWR4LndhbF9ieXRlcyArPSBleHRWYWNJZHhTdGF0cy0+d2FsX2J5dGVzOwotCXZhY3Jl bC0+ZXh0VmFjUmVwb3J0SWR4LndhbF9mcGkgKz0gZXh0VmFjSWR4U3RhdHMtPndhbF9mcGk7 Ci0JdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgud2FsX3JlY29yZHMgKz0gZXh0VmFjSWR4U3Rh dHMtPndhbF9yZWNvcmRzOwotCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmRlbGF5X3RpbWUg Kz0gZXh0VmFjSWR4U3RhdHMtPmRlbGF5X3RpbWU7Ci0KLQl2YWNyZWwtPmV4dFZhY1JlcG9y dElkeC50b3RhbF90aW1lICs9IGV4dFZhY0lkeFN0YXRzLT50b3RhbF90aW1lOworCXZhY3Jl bC0+ZXh0VmFjUmVwb3J0SWR4LmNvbW1vbi5ibGtfcmVhZF90aW1lICs9IGV4dFZhY0lkeFN0 YXRzLT5jb21tb24uYmxrX3JlYWRfdGltZTsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5j b21tb24uYmxrX3dyaXRlX3RpbWUgKz0gZXh0VmFjSWR4U3RhdHMtPmNvbW1vbi5ibGtfd3Jp dGVfdGltZTsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24udG90YWxfYmxrc19k aXJ0aWVkICs9IGV4dFZhY0lkeFN0YXRzLT5jb21tb24udG90YWxfYmxrc19kaXJ0aWVkOwor CXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmNvbW1vbi50b3RhbF9ibGtzX2hpdCArPSBleHRW YWNJZHhTdGF0cy0+Y29tbW9uLnRvdGFsX2Jsa3NfaGl0OworCXZhY3JlbC0+ZXh0VmFjUmVw b3J0SWR4LmNvbW1vbi50b3RhbF9ibGtzX3JlYWQgKz0gZXh0VmFjSWR4U3RhdHMtPmNvbW1v bi50b3RhbF9ibGtzX3JlYWQ7CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLnRv dGFsX2Jsa3Nfd3JpdHRlbiArPSBleHRWYWNJZHhTdGF0cy0+Y29tbW9uLnRvdGFsX2Jsa3Nf d3JpdHRlbjsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24ud2FsX2J5dGVzICs9 IGV4dFZhY0lkeFN0YXRzLT5jb21tb24ud2FsX2J5dGVzOworCXZhY3JlbC0+ZXh0VmFjUmVw b3J0SWR4LmNvbW1vbi53YWxfZnBpICs9IGV4dFZhY0lkeFN0YXRzLT5jb21tb24ud2FsX2Zw aTsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24ud2FsX3JlY29yZHMgKz0gZXh0 VmFjSWR4U3RhdHMtPmNvbW1vbi53YWxfcmVjb3JkczsKKwl2YWNyZWwtPmV4dFZhY1JlcG9y dElkeC5jb21tb24uZGVsYXlfdGltZSArPSBleHRWYWNJZHhTdGF0cy0+Y29tbW9uLmRlbGF5 X3RpbWU7CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLnRvdGFsX3RpbWUgKz0g ZXh0VmFjSWR4U3RhdHMtPmNvbW1vbi50b3RhbF90aW1lOwogfQogCiAKQEAgLTg1NiwxMCAr ODc0LDEwIEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBh cmFtcyBwYXJhbXMsCiAJRXJyb3JDb250ZXh0Q2FsbGJhY2sgZXJyY2FsbGJhY2s7CiAJY2hh cgkgICoqaW5kbmFtZXMgPSBOVUxMOwogCUxWRXh0U3RhdENvdW50ZXJzIGV4dFZhY0NvdW50 ZXJzOwotCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CisJUGdTdGF0X1ZhY3V1bVJlbGF0 aW9uQ291bnRzIGV4dFZhY1JlcG9ydDsKIAogCS8qIEluaXRpYWxpemUgdmFjdXVtIHN0YXRp c3RpY3MgKi8KLQltZW1zZXQoJmV4dFZhY1JlcG9ydCwgMCwgc2l6ZW9mKEV4dFZhY1JlcG9y dCkpOworCW1lbXNldCgmZXh0VmFjUmVwb3J0LCAwLCBzaXplb2YoUGdTdGF0X1ZhY3V1bVJl bGF0aW9uQ291bnRzKSk7CiAKIAl2ZXJib3NlID0gKHBhcmFtcy5vcHRpb25zICYgVkFDT1BU X1ZFUkJPU0UpICE9IDA7CiAJaW5zdHJ1bWVudCA9ICh2ZXJib3NlIHx8IChBbUF1dG9WYWN1 dW1Xb3JrZXJQcm9jZXNzKCkgJiYKQEAgLTkxNSw3ICs5MzMsOCBAQCBoZWFwX3ZhY3V1bV9y ZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCWVycmNhbGxi YWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsKIAllcnJvcl9jb250ZXh0X3N0 YWNrID0gJmVycmNhbGxiYWNrOwogCi0JbWVtc2V0KCZ2YWNyZWwtPmV4dFZhY1JlcG9ydElk eCwgMCwgc2l6ZW9mKEV4dFZhY1JlcG9ydCkpOworCW1lbXNldCgmdmFjcmVsLT5leHRWYWNS ZXBvcnRJZHgsIDAsIHNpemVvZihQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMpKTsKKwlt ZW1zZXQoJmV4dFZhY1JlcG9ydC5jb21tb24sIDAsIHNpemVvZihQZ1N0YXRfQ29tbW9uQ291 bnRzKSk7CiAKIAkvKiBTZXQgdXAgaGlnaCBsZXZlbCBzdHVmZiBhYm91dCByZWwgYW5kIGl0 cyBpbmRleGVzICovCiAJdmFjcmVsLT5yZWwgPSByZWw7CkBAIC0xMTczLDcgKzExOTIsNyBA QCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFy YW1zLAogCQkJCQkJJmZyb3plbnhpZF91cGRhdGVkLCAmbWlubXVsdGlfdXBkYXRlZCwgZmFs c2UpOwogCiAJLyogTWFrZSBnZW5lcmljIGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQg Ki8KLQlleHR2YWNfc3RhdHNfZW5kKHJlbCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVw b3J0KTsKKwkvKiBleHR2YWNfc3RhdHNfZW5kKHJlbCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0 VmFjUmVwb3J0LmNvbW1vbik7ICovCiAKIAkvKgogCSAqIFJlcG9ydCByZXN1bHRzIHRvIHRo ZSBjdW11bGF0aXZlIHN0YXRzIHN5c3RlbSwgdG9vLgpAQCAtMTE5MCwxNCArMTIwOSwxNCBA QCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFy YW1zLAogCSAqIE1ha2UgZ2VuZXJpYyBleHRlbmRlZCB2YWN1dW0gc3RhdHMgcmVwb3J0IGFu ZCBmaWxsIGhlYXAtc3BlY2lmaWMKIAkgKiBleHRlbmRlZCBzdGF0cyBmaWVsZHMuCiAJICov Ci0JZXh0dmFjX3N0YXRzX2VuZCh2YWNyZWwtPnJlbCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0 VmFjUmVwb3J0KTsKKwlleHR2YWNfc3RhdHNfZW5kKHZhY3JlbC0+cmVsLCAmZXh0VmFjQ291 bnRlcnMsICZleHRWYWNSZXBvcnQuY29tbW9uKTsKIAlhY2N1bXVsYXRlX2hlYXBfdmFjdXVt X3N0YXRpc3RpY3ModmFjcmVsLCAmZXh0VmFjUmVwb3J0KTsKKwlwZ3N0YXRfcmVwb3J0X3Zh Y3V1bV9leHRzdGF0cyh2YWNyZWwtPnJlbG9pZCwgcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVk LCAmZXh0VmFjUmVwb3J0KTsKIAlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShyZWwsCiAJCQkJCQkg TWF4KHZhY3JlbC0+bmV3X2xpdmVfdHVwbGVzLCAwKSwKIAkJCQkJCSB2YWNyZWwtPnJlY2Vu dGx5X2RlYWRfdHVwbGVzICsKIAkJCQkJCSB2YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlcywK LQkJCQkJCSBzdGFydHRpbWUsCi0JCQkJCQkgJmV4dFZhY1JlcG9ydCk7CisJCQkJCQkgc3Rh cnR0aW1lKTsKIAlwZ3N0YXRfcHJvZ3Jlc3NfZW5kX2NvbW1hbmQoKTsKIAogCWlmIChpbnN0 cnVtZW50KQpAQCAtMjkwMiw5ICsyOTIxLDkgQEAgbGF6eV92YWN1dW1fYWxsX2luZGV4ZXMo TFZSZWxTdGF0ZSAqdmFjcmVsKQogCWVsc2UKIAl7CiAJCUxWRXh0U3RhdENvdW50ZXJzIGNv dW50ZXJzOwotCQlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0OworCQlQZ1N0YXRfVmFjdXVt UmVsYXRpb25Db3VudHMgZXh0VmFjUmVwb3J0OwogCi0JCW1lbXNldCgmZXh0VmFjUmVwb3J0 LCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CisJCW1lbXNldCgmZXh0VmFjUmVwb3J0LmNv bW1vbiwgMCwgc2l6ZW9mKFBnU3RhdF9Db21tb25Db3VudHMpKTsKIAogCQlleHR2YWNfc3Rh dHNfc3RhcnQodmFjcmVsLT5yZWwsICZjb3VudGVycyk7CiAKQEAgLTI5MTIsNyArMjkzMSw3 IEBAIGxhenlfdmFjdXVtX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJcGFy YWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxsX2luZGV4ZXModmFjcmVsLT5wdnMsIG9sZF9saXZl X3R1cGxlcywKIAkJCQkJCQkJCQkJdmFjcmVsLT5udW1faW5kZXhfc2NhbnMpOwogCi0JCWV4 dHZhY19zdGF0c19lbmQodmFjcmVsLT5yZWwsICZjb3VudGVycywgJmV4dFZhY1JlcG9ydCk7 CisJCWV4dHZhY19zdGF0c19lbmQodmFjcmVsLT5yZWwsICZjb3VudGVycywgJmV4dFZhY1Jl cG9ydC5jb21tb24pOwogCQlhY2N1bXVsYXRlX2lkeHNfdmFjdXVtX3N0YXRpc3RpY3ModmFj cmVsLCAmZXh0VmFjUmVwb3J0KTsKIAogCQkvKgpAQCAtMzM0NSw5ICszMzY0LDkgQEAgbGF6 eV9jbGVhbnVwX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAllbHNlCiAJewog CQlMVkV4dFN0YXRDb3VudGVycyBjb3VudGVyczsKLQkJRXh0VmFjUmVwb3J0IGV4dFZhY1Jl cG9ydDsKKwkJUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzIGV4dFZhY1JlcG9ydDsKIAot CQltZW1zZXQoJmV4dFZhY1JlcG9ydCwgMCwgc2l6ZW9mKEV4dFZhY1JlcG9ydCkpOworCQlt ZW1zZXQoJmV4dFZhY1JlcG9ydC5jb21tb24sIDAsIHNpemVvZihQZ1N0YXRfQ29tbW9uQ291 bnRzKSk7CiAKIAkJZXh0dmFjX3N0YXRzX3N0YXJ0KHZhY3JlbC0+cmVsLCAmY291bnRlcnMp OwogCkBAIC0zMzU2LDcgKzMzNzUsNyBAQCBsYXp5X2NsZWFudXBfYWxsX2luZGV4ZXMoTFZS ZWxTdGF0ZSAqdmFjcmVsKQogCQkJCQkJCQkJCQl2YWNyZWwtPm51bV9pbmRleF9zY2FucywK IAkJCQkJCQkJCQkJZXN0aW1hdGVkX2NvdW50KTsKIAotCQlleHR2YWNfc3RhdHNfZW5kKHZh Y3JlbC0+cmVsLCAmY291bnRlcnMsICZleHRWYWNSZXBvcnQpOworCQlleHR2YWNfc3RhdHNf ZW5kKHZhY3JlbC0+cmVsLCAmY291bnRlcnMsICZleHRWYWNSZXBvcnQuY29tbW9uKTsKIAkJ YWNjdW11bGF0ZV9pZHhzX3ZhY3V1bV9zdGF0aXN0aWNzKHZhY3JlbCwgJmV4dFZhY1JlcG9y dCk7CiAJfQogCkBAIC0zMzg0LDcgKzM0MDMsMTAgQEAgbGF6eV92YWN1dW1fb25lX2luZGV4 KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIAlJbmRl eFZhY3V1bUluZm8gaXZpbmZvOwogCUxWU2F2ZWRFcnJJbmZvIHNhdmVkX2Vycl9pbmZvOwog CUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0NvdW50ZXJzOwotCUV4dFZhY1JlcG9ydCBl eHRWYWNSZXBvcnQ7CisJUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzIGV4dFZhY1JlcG9y dDsKKworCW1lbXNldCgmZXh0VmFjUmVwb3J0LCAwLCBzaXplb2YoUGdTdGF0X1ZhY3V1bVJl bGF0aW9uQ291bnRzKSk7CisJbWVtc2V0KCZleHRWYWNSZXBvcnQuY29tbW9uLCAwLCBzaXpl b2YoUGdTdGF0X0NvbW1vbkNvdW50cykpOwogCiAJLyogU2V0IGluaXRpYWwgc3RhdGlzdGlj cyB2YWx1ZXMgdG8gZ2F0aGVyIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgaW5kZXggKi8K IAlleHR2YWNfc3RhdHNfc3RhcnRfaWR4KGluZHJlbCwgaXN0YXQsICZleHRWYWNDb3VudGVy cyk7CkBAIC0zNDIxLDggKzM0NDMsNyBAQCBsYXp5X3ZhY3V1bV9vbmVfaW5kZXgoUmVsYXRp b24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogCWlmICghUGFyYWxs ZWxWYWN1dW1Jc0FjdGl2ZSh2YWNyZWwpKQogCQlhY2N1bXVsYXRlX2lkeHNfdmFjdXVtX3N0 YXRpc3RpY3ModmFjcmVsLCAmZXh0VmFjUmVwb3J0KTsKIAotCXBnc3RhdF9yZXBvcnRfdmFj dXVtKGluZHJlbCwKLQkJCQkJCSAwLCAwLCAwLCAmZXh0VmFjUmVwb3J0KTsKKwlwZ3N0YXRf cmVwb3J0X3ZhY3V1bV9leHRzdGF0cyh2YWNyZWwtPmluZG9pZCwgaW5kcmVsLT5yZF9yZWwt PnJlbGlzc2hhcmVkLCAmZXh0VmFjUmVwb3J0KTsKIAogCS8qIFJldmVydCB0byB0aGUgcHJl dmlvdXMgcGhhc2UgaW5mb3JtYXRpb24gZm9yIGVycm9yIHRyYWNlYmFjayAqLwogCXJlc3Rv cmVfdmFjdXVtX2Vycm9yX2luZm8odmFjcmVsLCAmc2F2ZWRfZXJyX2luZm8pOwpAQCAtMzQ0 OSw3ICszNDcwLDcgQEAgbGF6eV9jbGVhbnVwX29uZV9pbmRleChSZWxhdGlvbiBpbmRyZWws IEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqaXN0YXQsCiAJSW5kZXhWYWN1dW1JbmZvIGl2aW5m bzsKIAlMVlNhdmVkRXJySW5mbyBzYXZlZF9lcnJfaW5mbzsKIAlMVkV4dFN0YXRDb3VudGVy c0lkeCBleHRWYWNDb3VudGVyczsKLQlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0OworCVBn U3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyBleHRWYWNSZXBvcnQ7CiAKIAkvKiBTZXQgaW5p dGlhbCBzdGF0aXN0aWNzIHZhbHVlcyB0byBnYXRoZXIgdmFjdXVtIHN0YXRpc3RpY3MgZm9y IHRoZSBpbmRleCAqLwogCWV4dHZhY19zdGF0c19zdGFydF9pZHgoaW5kcmVsLCBpc3RhdCwg JmV4dFZhY0NvdW50ZXJzKTsKQEAgLTM0ODUsOCArMzUwNiw3IEBAIGxhenlfY2xlYW51cF9v bmVfaW5kZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0 LAogCWlmICghUGFyYWxsZWxWYWN1dW1Jc0FjdGl2ZSh2YWNyZWwpKQogCQlhY2N1bXVsYXRl X2lkeHNfdmFjdXVtX3N0YXRpc3RpY3ModmFjcmVsLCAmZXh0VmFjUmVwb3J0KTsKIAotCXBn c3RhdF9yZXBvcnRfdmFjdXVtKGluZHJlbCwKLQkJCQkJCSAwLCAwLCAwLCAmZXh0VmFjUmVw b3J0KTsKKwlwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9leHRzdGF0cyhSZWxhdGlvbkdldFJlbGlk KGluZHJlbCksIGluZHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCwgJmV4dFZhY1JlcG9ydCk7 CiAKIAkvKiBSZXZlcnQgdG8gdGhlIHByZXZpb3VzIHBoYXNlIGluZm9ybWF0aW9uIGZvciBl cnJvciB0cmFjZWJhY2sgKi8KIAlyZXN0b3JlX3ZhY3V1bV9lcnJvcl9pbmZvKHZhY3JlbCwg JnNhdmVkX2Vycl9pbmZvKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVh cC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5kZXggMjY1Y2MzZTVmYmYuLjY4 MGI3NmI4ZWY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtMTg4Myw2ICsxODgzLDcgQEAgaGVh cF9kcm9wX3dpdGhfY2F0YWxvZyhPaWQgcmVsaWQpCiAKIAkvKiBlbnN1cmUgdGhhdCBzdGF0 cyBhcmUgZHJvcHBlZCBpZiB0cmFuc2FjdGlvbiBjb21taXRzICovCiAJcGdzdGF0X2Ryb3Bf cmVsYXRpb24ocmVsKTsKKwlwZ3N0YXRfdmFjdXVtX3JlbGF0aW9uX2RlbGV0ZV9wZW5kaW5n X2NiKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CiAKIAkvKgogCSAqIENsb3NlIHJlbGNhY2hl IGVudHJ5LCBidXQgKmtlZXAqIEFjY2Vzc0V4Y2x1c2l2ZUxvY2sgb24gdGhlIHJlbGF0aW9u CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL2luZGV4LmMKaW5kZXggOGRlYTU4YWQ5NmIuLmU5MDZmOWUxODU2IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9pbmRleC5jCkBAIC0yMzI3LDYgKzIzMjcsNyBAQCBpbmRleF9kcm9wKE9pZCBp bmRleElkLCBib29sIGNvbmN1cnJlbnQsIGJvb2wgY29uY3VycmVudF9sb2NrX21vZGUpCiAK IAkvKiBlbnN1cmUgdGhhdCBzdGF0cyBhcmUgZHJvcHBlZCBpZiB0cmFuc2FjdGlvbiBjb21t aXRzICovCiAJcGdzdGF0X2Ryb3BfcmVsYXRpb24odXNlckluZGV4UmVsYXRpb24pOworCXBn c3RhdF92YWN1dW1fcmVsYXRpb25fZGVsZXRlX3BlbmRpbmdfY2IoUmVsYXRpb25HZXRSZWxp ZCh1c2VySW5kZXhSZWxhdGlvbikpOwogCiAJLyoKIAkgKiBDbG9zZSBhbmQgZmx1c2ggdGhl IGluZGV4J3MgcmVsY2FjaGUgZW50cnksIHRvIGVuc3VyZSByZWxjYWNoZSBkb2Vzbid0CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggZGM4NmIxZWUyMTIuLjRl YzJhN2Q5ZjEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3 cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0x NDYyLDk5ICsxNDYyLDEwNCBAQCBHUkFOVCBFWEVDVVRFIE9OIEZVTkNUSU9OIHBnX2dldF9h aW9zKCkgVE8gcGdfcmVhZF9hbGxfc3RhdHM7CiAtLQogCiBDUkVBVEUgVklFVyBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMgQVMKLVNFTEVDVAotICBucy5uc3BuYW1lIEFTIHNjaGVtYW5hbWUs Ci0gIHJlbC5yZWxuYW1lIEFTIHJlbG5hbWUsCi0gIHN0YXRzLnJlbGlkIGFzIHJlbGlkLAot Ci0gIHN0YXRzLnRvdGFsX2Jsa3NfcmVhZCBBUyB0b3RhbF9ibGtzX3JlYWQsCi0gIHN0YXRz LnRvdGFsX2Jsa3NfaGl0IEFTIHRvdGFsX2Jsa3NfaGl0LAotICBzdGF0cy50b3RhbF9ibGtz X2RpcnRpZWQgQVMgdG90YWxfYmxrc19kaXJ0aWVkLAotICBzdGF0cy50b3RhbF9ibGtzX3dy aXR0ZW4gQVMgdG90YWxfYmxrc193cml0dGVuLAotCi0gIHN0YXRzLnJlbF9ibGtzX3JlYWQg QVMgcmVsX2Jsa3NfcmVhZCwKLSAgc3RhdHMucmVsX2Jsa3NfaGl0IEFTIHJlbF9ibGtzX2hp dCwKLQotICBzdGF0cy5wYWdlc19zY2FubmVkIEFTIHBhZ2VzX3NjYW5uZWQsCi0gIHN0YXRz LnBhZ2VzX3JlbW92ZWQgQVMgcGFnZXNfcmVtb3ZlZCwKLSAgc3RhdHMudm1fbmV3X2Zyb3pl bl9wYWdlcyBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLAotICBzdGF0cy52bV9uZXdfdmlzaWJs ZV9wYWdlcyBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcywKLSAgc3RhdHMudm1fbmV3X3Zpc2li bGVfZnJvemVuX3BhZ2VzIEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcywKLSAgc3Rh dHMubWlzc2VkX2RlYWRfcGFnZXMgQVMgbWlzc2VkX2RlYWRfcGFnZXMsCi0gIHN0YXRzLnR1 cGxlc19kZWxldGVkIEFTIHR1cGxlc19kZWxldGVkLAotICBzdGF0cy50dXBsZXNfZnJvemVu IEFTIHR1cGxlc19mcm96ZW4sCi0gIHN0YXRzLnJlY2VudGx5X2RlYWRfdHVwbGVzIEFTIHJl Y2VudGx5X2RlYWRfdHVwbGVzLAotICBzdGF0cy5taXNzZWRfZGVhZF90dXBsZXMgQVMgbWlz c2VkX2RlYWRfdHVwbGVzLAotCi0gIHN0YXRzLndyYXBhcm91bmRfZmFpbHNhZmUgQVMgd3Jh cGFyb3VuZF9mYWlsc2FmZSwKLSAgc3RhdHMuaW5kZXhfdmFjdXVtX2NvdW50IEFTIGluZGV4 X3ZhY3V1bV9jb3VudCwKLSAgc3RhdHMud2FsX3JlY29yZHMgQVMgd2FsX3JlY29yZHMsCi0g IHN0YXRzLndhbF9mcGkgQVMgd2FsX2ZwaSwKLSAgc3RhdHMud2FsX2J5dGVzIEFTIHdhbF9i eXRlcywKLQotICBzdGF0cy5ibGtfcmVhZF90aW1lIEFTIGJsa19yZWFkX3RpbWUsCi0gIHN0 YXRzLmJsa193cml0ZV90aW1lIEFTIGJsa193cml0ZV90aW1lLAotCi0gIHN0YXRzLmRlbGF5 X3RpbWUgQVMgZGVsYXlfdGltZSwKLSAgc3RhdHMudG90YWxfdGltZSBBUyB0b3RhbF90aW1l Ci0KLUZST00gcGdfY2xhc3MgcmVsCi0gIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9OIG5zLm9p ZCA9IHJlbC5yZWxuYW1lc3BhY2UsCi0gIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX3Rh YmxlcyhyZWwub2lkKSBzdGF0cwotV0hFUkUgcmVsLnJlbGtpbmQgPSAncic7CisgICAgU0VM RUNUCisgICAgICAgIE4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAorICAgICAgICBDLnJlbG5h bWUgQVMgcmVsbmFtZSwKKyAgICAgICAgUy5yZWxpZCBhcyByZWxpZCwKKworICAgICAgICBT LnRvdGFsX2Jsa3NfcmVhZCBBUyB0b3RhbF9ibGtzX3JlYWQsCisgICAgICAgIFMudG90YWxf Ymxrc19oaXQgQVMgdG90YWxfYmxrc19oaXQsCisgICAgICAgIFMudG90YWxfYmxrc19kaXJ0 aWVkIEFTIHRvdGFsX2Jsa3NfZGlydGllZCwKKyAgICAgICAgUy50b3RhbF9ibGtzX3dyaXR0 ZW4gQVMgdG90YWxfYmxrc193cml0dGVuLAorCisgICAgICAgIFMucmVsX2Jsa3NfcmVhZCBB UyByZWxfYmxrc19yZWFkLAorICAgICAgICBTLnJlbF9ibGtzX2hpdCBBUyByZWxfYmxrc19o aXQsCisKKyAgICAgICAgUy5wYWdlc19zY2FubmVkIEFTIHBhZ2VzX3NjYW5uZWQsCisgICAg ICAgIFMucGFnZXNfcmVtb3ZlZCBBUyBwYWdlc19yZW1vdmVkLAorICAgICAgICBTLnZtX25l d19mcm96ZW5fcGFnZXMgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcywKKyAgICAgICAgUy52bV9u ZXdfdmlzaWJsZV9wYWdlcyBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcywKKyAgICAgICAgUy52 bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgQVMgdm1fbmV3X3Zpc2libGVfZnJvemVuX3Bh Z2VzLAorICAgICAgICBTLm1pc3NlZF9kZWFkX3BhZ2VzIEFTIG1pc3NlZF9kZWFkX3BhZ2Vz LAorICAgICAgICBTLnR1cGxlc19kZWxldGVkIEFTIHR1cGxlc19kZWxldGVkLAorICAgICAg ICBTLnR1cGxlc19mcm96ZW4gQVMgdHVwbGVzX2Zyb3plbiwKKyAgICAgICAgUy5yZWNlbnRs eV9kZWFkX3R1cGxlcyBBUyByZWNlbnRseV9kZWFkX3R1cGxlcywKKyAgICAgICAgUy5taXNz ZWRfZGVhZF90dXBsZXMgQVMgbWlzc2VkX2RlYWRfdHVwbGVzLAorCisgICAgICAgIFMud3Jh cGFyb3VuZF9mYWlsc2FmZSBBUyB3cmFwYXJvdW5kX2ZhaWxzYWZlLAorICAgICAgICBTLmlu ZGV4X3ZhY3V1bV9jb3VudCBBUyBpbmRleF92YWN1dW1fY291bnQsCisgICAgICAgIFMud2Fs X3JlY29yZHMgQVMgd2FsX3JlY29yZHMsCisgICAgICAgIFMud2FsX2ZwaSBBUyB3YWxfZnBp LAorICAgICAgICBTLndhbF9ieXRlcyBBUyB3YWxfYnl0ZXMsCisKKyAgICAgICAgUy5ibGtf cmVhZF90aW1lIEFTIGJsa19yZWFkX3RpbWUsCisgICAgICAgIFMuYmxrX3dyaXRlX3RpbWUg QVMgYmxrX3dyaXRlX3RpbWUsCisKKyAgICAgICAgUy5kZWxheV90aW1lIEFTIGRlbGF5X3Rp bWUsCisgICAgICAgIFMudG90YWxfdGltZSBBUyB0b3RhbF90aW1lCisKKyAgICBGUk9NIHBn X2NsYXNzIEMgSk9JTgorICAgICAgICAgICAgcGdfbmFtZXNwYWNlIE4gT04gTi5vaWQgPSBD LnJlbG5hbWVzcGFjZSwKKyAgICAgICAgICAgIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVt X3RhYmxlcyhDLm9pZCkgUworICAgIFdIRVJFIEMucmVsa2luZCBJTiAoJ3InLCAndCcsICdt Jyk7CiAKIENSRUFURSBWSUVXIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgQVMKLVNFTEVDVAot ICByZWwub2lkIGFzIHJlbGlkLAotICBucy5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCi0gIHJl bC5yZWxuYW1lIEFTIHJlbG5hbWUsCisgICAgU0VMRUNUCisgICAgICAgICAgICBDLm9pZCBB UyByZWxpZCwKKyAgICAgICAgICAgIEkub2lkIEFTIGluZGV4cmVsaWQsCisgICAgICAgICAg ICBOLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKKyAgICAgICAgICAgIEMucmVsbmFtZSBBUyBy ZWxuYW1lLAorICAgICAgICAgICAgSS5yZWxuYW1lIEFTIGluZGV4cmVsbmFtZSwKIAotICB0 b3RhbF9ibGtzX3JlYWQgQVMgdG90YWxfYmxrc19yZWFkLAotICB0b3RhbF9ibGtzX2hpdCBB UyB0b3RhbF9ibGtzX2hpdCwKLSAgdG90YWxfYmxrc19kaXJ0aWVkIEFTIHRvdGFsX2Jsa3Nf ZGlydGllZCwKLSAgdG90YWxfYmxrc193cml0dGVuIEFTIHRvdGFsX2Jsa3Nfd3JpdHRlbiwK KyAgICAgICAgICAgIFMudG90YWxfYmxrc19yZWFkIEFTIHRvdGFsX2Jsa3NfcmVhZCwKKyAg ICAgICAgICAgIFMudG90YWxfYmxrc19oaXQgQVMgdG90YWxfYmxrc19oaXQsCisgICAgICAg ICAgICBTLnRvdGFsX2Jsa3NfZGlydGllZCBBUyB0b3RhbF9ibGtzX2RpcnRpZWQsCisgICAg ICAgICAgICBTLnRvdGFsX2Jsa3Nfd3JpdHRlbiBBUyB0b3RhbF9ibGtzX3dyaXR0ZW4sCiAK LSAgcmVsX2Jsa3NfcmVhZCBBUyByZWxfYmxrc19yZWFkLAotICByZWxfYmxrc19oaXQgQVMg cmVsX2Jsa3NfaGl0LAorICAgICAgICAgICAgUy5yZWxfYmxrc19yZWFkIEFTIHJlbF9ibGtz X3JlYWQsCisgICAgICAgICAgICBTLnJlbF9ibGtzX2hpdCBBUyByZWxfYmxrc19oaXQsCiAK LSAgcGFnZXNfZGVsZXRlZCBBUyBwYWdlc19kZWxldGVkLAotICB0dXBsZXNfZGVsZXRlZCBB UyB0dXBsZXNfZGVsZXRlZCwKKyAgICAgICAgICAgIFMucGFnZXNfZGVsZXRlZCBBUyBwYWdl c19kZWxldGVkLAorICAgICAgICAgICAgUy50dXBsZXNfZGVsZXRlZCBBUyB0dXBsZXNfZGVs ZXRlZCwKIAotICB3YWxfcmVjb3JkcyBBUyB3YWxfcmVjb3JkcywKLSAgd2FsX2ZwaSBBUyB3 YWxfZnBpLAotICB3YWxfYnl0ZXMgQVMgd2FsX2J5dGVzLAorICAgICAgICAgICAgUy53YWxf cmVjb3JkcyBBUyB3YWxfcmVjb3JkcywKKyAgICAgICAgICAgIFMud2FsX2ZwaSBBUyB3YWxf ZnBpLAorICAgICAgICAgICAgUy53YWxfYnl0ZXMgQVMgd2FsX2J5dGVzLAogCi0gIGJsa19y ZWFkX3RpbWUgQVMgYmxrX3JlYWRfdGltZSwKLSAgYmxrX3dyaXRlX3RpbWUgQVMgYmxrX3dy aXRlX3RpbWUsCisgICAgICAgICAgICBTLmJsa19yZWFkX3RpbWUgQVMgYmxrX3JlYWRfdGlt ZSwKKyAgICAgICAgICAgIFMuYmxrX3dyaXRlX3RpbWUgQVMgYmxrX3dyaXRlX3RpbWUsCiAK LSAgZGVsYXlfdGltZSBBUyBkZWxheV90aW1lLAotICB0b3RhbF90aW1lIEFTIHRvdGFsX3Rp bWUKLUZST00KLSAgcGdfY2xhc3MgcmVsCi0gIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9OIG5z Lm9pZCA9IHJlbC5yZWxuYW1lc3BhY2UsCi0gIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVt X2luZGV4ZXMocmVsLm9pZCkgc3RhdHMKLVdIRVJFIHJlbC5yZWxraW5kID0gJ2knOworICAg ICAgICAgICAgUy5kZWxheV90aW1lIEFTIGRlbGF5X3RpbWUsCisgICAgICAgICAgICBTLnRv dGFsX3RpbWUgQVMgdG90YWxfdGltZQorICAgIEZST00KKyAgICAgICAgICAgIHBnX2NsYXNz IEMgSk9JTgorICAgICAgICAgICAgcGdfaW5kZXggWCBPTiBDLm9pZCA9IFguaW5kcmVsaWQg Sk9JTgorICAgICAgICAgICAgcGdfY2xhc3MgSSBPTiBJLm9pZCA9IFguaW5kZXhyZWxpZAor ICAgICAgICAgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBOIE9OIChOLm9pZCA9IEMucmVs bmFtZXNwYWNlKSwKKyAgICAgICAgICAgIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX2lu ZGV4ZXMoSS5vaWQpIFMKKyAgICBXSEVSRSBDLnJlbGtpbmQgSU4gKCdyJywgJ3QnLCAnbScp OwogCiBDUkVBVEUgVklFVyBwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZSBBUwotU0VMRUNUCi0g IGRiLm9pZCBhcyBkYm9pZCwKLSAgZGIuZGF0bmFtZSBBUyBkYm5hbWUsCi0KLSAgc3RhdHMu ZGJfYmxrc19yZWFkIEFTIGRiX2Jsa3NfcmVhZCwKLSAgc3RhdHMuZGJfYmxrc19oaXQgQVMg ZGJfYmxrc19oaXQsCi0gIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCBBUyB0b3RhbF9ibGtz X2RpcnRpZWQsCi0gIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiBBUyB0b3RhbF9ibGtzX3dy aXR0ZW4sCi0KLSAgc3RhdHMud2FsX3JlY29yZHMgQVMgd2FsX3JlY29yZHMsCi0gIHN0YXRz LndhbF9mcGkgQVMgd2FsX2ZwaSwKLSAgc3RhdHMud2FsX2J5dGVzIEFTIHdhbF9ieXRlcywK LQotICBzdGF0cy5ibGtfcmVhZF90aW1lIEFTIGJsa19yZWFkX3RpbWUsCi0gIHN0YXRzLmJs a193cml0ZV90aW1lIEFTIGJsa193cml0ZV90aW1lLAotCi0gIHN0YXRzLmRlbGF5X3RpbWUg QVMgZGVsYXlfdGltZSwKLSAgc3RhdHMudG90YWxfdGltZSBBUyB0b3RhbF90aW1lLAotICBz dGF0cy53cmFwYXJvdW5kX2ZhaWxzYWZlIEFTIHdyYXBhcm91bmRfZmFpbHNhZmUKLUZST00K LSAgcGdfZGF0YWJhc2UgZGIsCi0gIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFi YXNlKGRiLm9pZCkgc3RhdHM7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorICAgIFNF TEVDVAorICAgICAgICAgICAgRC5vaWQgYXMgZGJvaWQsCisgICAgICAgICAgICBELmRhdG5h bWUgQVMgZGJuYW1lLAorCisgICAgICAgICAgICBTLmRiX2Jsa3NfcmVhZCBBUyBkYl9ibGtz X3JlYWQsCisgICAgICAgICAgICBTLmRiX2Jsa3NfaGl0IEFTIGRiX2Jsa3NfaGl0LAorICAg ICAgICAgICAgUy50b3RhbF9ibGtzX2RpcnRpZWQgQVMgdG90YWxfYmxrc19kaXJ0aWVkLAor ICAgICAgICAgICAgUy50b3RhbF9ibGtzX3dyaXR0ZW4gQVMgdG90YWxfYmxrc193cml0dGVu LAorCisgICAgICAgICAgICBTLndhbF9yZWNvcmRzIEFTIHdhbF9yZWNvcmRzLAorICAgICAg ICAgICAgUy53YWxfZnBpIEFTIHdhbF9mcGksCisgICAgICAgICAgICBTLndhbF9ieXRlcyBB UyB3YWxfYnl0ZXMsCisKKyAgICAgICAgICAgIFMuYmxrX3JlYWRfdGltZSBBUyBibGtfcmVh ZF90aW1lLAorICAgICAgICAgICAgUy5ibGtfd3JpdGVfdGltZSBBUyBibGtfd3JpdGVfdGlt ZSwKKworICAgICAgICAgICAgUy5kZWxheV90aW1lIEFTIGRlbGF5X3RpbWUsCisgICAgICAg ICAgICBTLnRvdGFsX3RpbWUgQVMgdG90YWxfdGltZSwKKyAgICAgICAgICAgIFMud3JhcGFy b3VuZF9mYWlsc2FmZSBBUyB3cmFwYXJvdW5kX2ZhaWxzYWZlLAorICAgICAgICAgICAgUy5l cnJvcnMgQVMgZXJyb3JzCisgICAgRlJPTQorICAgICAgICAgICAgcGdfZGF0YWJhc2UgRCwK KyAgICAgICAgICAgIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNlKEQub2lk KSBTOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jCmluZGV4IGQxZjNiZTg5YjM1Li5i ZjNjZDNiMWNjOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5k cy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYwpAQCAtMTgxNSw2 ICsxODE1LDcgQEAgZHJvcGRiKGNvbnN0IGNoYXIgKmRibmFtZSwgYm9vbCBtaXNzaW5nX29r LCBib29sIGZvcmNlKQogCSAqIFRlbGwgdGhlIGN1bXVsYXRpdmUgc3RhdHMgc3lzdGVtIHRv IGZvcmdldCBpdCBpbW1lZGlhdGVseSwgdG9vLgogCSAqLwogCXBnc3RhdF9kcm9wX2RhdGFi YXNlKGRiX2lkKTsKKwlwZ3N0YXRfZHJvcF92YWN1dW1fZGF0YWJhc2UoZGJfaWQpOwogCiAJ LyoKIAkgKiBFeGNlcHQgZm9yIHRoZSBkZWxldGlvbiBvZiB0aGUgY2F0YWxvZyByb3csIHN1 YnNlcXVlbnQgYWN0aW9ucyBhcmUgbm90CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFy YWxsZWwuYwppbmRleCA0MzQ1MDY4NWIwOS4uYzdkZDJiYjUyZjYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtODY5LDcgKzg2OSw3IEBAIHBhcmFsbGVs X3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRleChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIFJl bGF0aW9uIGluZHJlbCwKIAlJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0X3JlczsKIAlJ bmRleFZhY3V1bUluZm8gaXZpbmZvOwogCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0Nv dW50ZXJzOwotCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CisJUGdTdGF0X1ZhY3V1bVJl bGF0aW9uQ291bnRzIGV4dFZhY1JlcG9ydDsKIAogCS8qCiAJICogVXBkYXRlIHRoZSBwb2lu dGVyIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJ1bGstZGVsZXRpb24gcmVzdWx0IGlmIHNvbWVv bmUKQEAgLTkxMSw4ICs5MTEsNyBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19vbmVfaW5k ZXgoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBSZWxhdGlvbiBpbmRyZWwsCiAKIAkvKiBN YWtlIGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgZm9yIGluZGV4ICovCiAJZXh0dmFj X3N0YXRzX2VuZF9pZHgoaW5kcmVsLCBpc3RhdF9yZXMsICZleHRWYWNDb3VudGVycywgJmV4 dFZhY1JlcG9ydCk7Ci0JcGdzdGF0X3JlcG9ydF92YWN1dW0oaW5kcmVsLAotCQkJCQkJIDAs IDAsIDAsICZleHRWYWNSZXBvcnQpOworCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2V4dHN0YXRz KFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVsKSwgaW5kcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVk LCAmZXh0VmFjUmVwb3J0KTsKIAogCS8qCiAJICogQ29weSB0aGUgaW5kZXggYnVsay1kZWxl dGlvbiByZXN1bHQgcmV0dXJuZWQgZnJvbSBhbWJ1bGtkZWxldGUgYW5kCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L01ha2VmaWxlCmluZGV4IDljMjQ0M2UxZWNkLi4xODNmNzUxNGQyZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvTWFrZWZpbGUKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvTWFrZWZpbGUKQEAgLTI3LDYgKzI3LDcgQEAg T0JKUyA9IFwKIAlwZ3N0YXRfZnVuY3Rpb24ubyBcCiAJcGdzdGF0X2lvLm8gXAogCXBnc3Rh dF9yZWxhdGlvbi5vIFwKKwlwZ3N0YXRfdmFjdXVtLm8gXAogCXBnc3RhdF9yZXBsc2xvdC5v IFwKIAlwZ3N0YXRfc2htZW0ubyBcCiAJcGdzdGF0X3NscnUubyBcCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdC5jCmluZGV4IGYzMTdjNmU4ZTkwLi5jZGM5Y2FiMDFjZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKQEAgLTIwMyw3ICsyMDMsNyBAQCBz dGF0aWMgaW5saW5lIGJvb2wgcGdzdGF0X2lzX2tpbmRfdmFsaWQoUGdTdGF0X0tpbmQga2lu ZCk7CiAKIGJvb2wJCXBnc3RhdF90cmFja19jb3VudHMgPSBmYWxzZTsKIGludAkJCXBnc3Rh dF9mZXRjaF9jb25zaXN0ZW5jeSA9IFBHU1RBVF9GRVRDSF9DT05TSVNURU5DWV9DQUNIRTsK LQorYm9vbAkJcGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzID0gZmFsc2U7CiAKIC8q IC0tLS0tLS0tLS0KICAqIHN0YXRlIHNoYXJlZCB3aXRoIHBnc3RhdF8qLmMKQEAgLTQ4Miw2 ICs0ODIsMzQgQEAgc3RhdGljIGNvbnN0IFBnU3RhdF9LaW5kSW5mbyBwZ3N0YXRfa2luZF9i dWlsdGluX2luZm9zW1BHU1RBVF9LSU5EX0JVSUxUSU5fU0laRV0KIAkJLnJlc2V0X2FsbF9j YiA9IHBnc3RhdF93YWxfcmVzZXRfYWxsX2NiLAogCQkuc25hcHNob3RfY2IgPSBwZ3N0YXRf d2FsX3NuYXBzaG90X2NiLAogCX0sCisJW1BHU1RBVF9LSU5EX1ZBQ1VVTV9EQl0gPSB7CisJ CS5uYW1lID0gInZhY3V1bSBzdGF0aXN0aWNzIiwKKworCQkuZml4ZWRfYW1vdW50ID0gZmFs c2UsCisJCS53cml0ZV90b19maWxlID0gdHJ1ZSwKKwkJLyogc28gcGdfc3RhdF9kYXRhYmFz ZSBlbnRyaWVzIGNhbiBiZSBzZWVuIGluIGFsbCBkYXRhYmFzZXMgKi8KKwkJLmFjY2Vzc2Vk X2Fjcm9zc19kYXRhYmFzZXMgPSB0cnVlLAorCisJCS5zaGFyZWRfc2l6ZSA9IHNpemVvZihQ Z1N0YXRTaGFyZWRfVmFjdXVtREIpLAorCQkuc2hhcmVkX2RhdGFfb2ZmID0gb2Zmc2V0b2Yo UGdTdGF0U2hhcmVkX1ZhY3V1bURCLCBzdGF0cyksCisJCS5zaGFyZWRfZGF0YV9sZW4gPSBz aXplb2YoKChQZ1N0YXRTaGFyZWRfVmFjdXVtREIgKikgMCktPnN0YXRzKSwKKwkJLnBlbmRp bmdfc2l6ZSA9IHNpemVvZihQZ1N0YXRfVmFjdXVtREJDb3VudHMpLAorCisJCS5mbHVzaF9w ZW5kaW5nX2NiID0gcGdzdGF0X3ZhY3V1bV9kYl9mbHVzaF9jYiwKKwl9LAorCVtQR1NUQVRf S0lORF9WQUNVVU1fUkVMQVRJT05dID0geworCQkubmFtZSA9ICJ2YWN1dW0gc3RhdGlzdGlj cyIsCisKKwkJLmZpeGVkX2Ftb3VudCA9IGZhbHNlLAorCQkud3JpdGVfdG9fZmlsZSA9IHRy dWUsCisKKwkJLnNoYXJlZF9zaXplID0gc2l6ZW9mKFBnU3RhdFNoYXJlZF9WYWN1dW1SZWxh dGlvbiksCisJCS5zaGFyZWRfZGF0YV9vZmYgPSBvZmZzZXRvZihQZ1N0YXRTaGFyZWRfVmFj dXVtUmVsYXRpb24sIHN0YXRzKSwKKwkJLnNoYXJlZF9kYXRhX2xlbiA9IHNpemVvZigoKFBn U3RhdFNoYXJlZF9WYWN1dW1SZWxhdGlvbiAqKSAwKS0+c3RhdHMpLAorCQkucGVuZGluZ19z aXplID0gc2l6ZW9mKFBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmcpLAorCisJCS5mbHVz aF9wZW5kaW5nX2NiID0gcGdzdGF0X3ZhY3V1bV9yZWxhdGlvbl9mbHVzaF9jYgorCX0sCiB9 OwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 X2RhdGFiYXNlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJh c2UuYwppbmRleCA2NTIwN2QzMDM3OC4uODBlNmM3YzIyOWEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCkBAIC00Niw2ICs0NiwxNSBA QCBwZ3N0YXRfZHJvcF9kYXRhYmFzZShPaWQgZGF0YWJhc2VpZCkKIAlwZ3N0YXRfZHJvcF90 cmFuc2FjdGlvbmFsKFBHU1RBVF9LSU5EX0RBVEFCQVNFLCBkYXRhYmFzZWlkLCBJbnZhbGlk T2lkKTsKIH0KIAorLyoKKyAqIFJlbW92ZSBlbnRyeSBmb3IgdGhlIGRhdGFiYXNlIGJlaW5n IGRyb3BwZWQuCisgKi8KK3ZvaWQKK3Bnc3RhdF9kcm9wX3ZhY3V1bV9kYXRhYmFzZShPaWQg ZGF0YWJhc2VpZCkKK3sKKwlwZ3N0YXRfZHJvcF90cmFuc2FjdGlvbmFsKFBHU1RBVF9LSU5E X1ZBQ1VVTV9EQiwgZGF0YWJhc2VpZCwgSW52YWxpZE9pZCk7Cit9CisKIC8qCiAgKiBDYWxs ZWQgZnJvbSBhdXRvdmFjdXVtLmMgdG8gcmVwb3J0IHN0YXJ0dXAgb2YgYW4gYXV0b3ZhY3V1 bSBwcm9jZXNzLgogICogV2UgYXJlIGNhbGxlZCBiZWZvcmUgSW5pdFBvc3RncmVzIGlzIGRv bmUsIHNvIGNhbid0IHJlbHkgb24gTXlEYXRhYmFzZUlkOwpAQCAtNDg1LDcgKzQ5NCw2IEBA IHBnc3RhdF9kYXRhYmFzZV9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwg Ym9vbCBub3dhaXQpCiAJcGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOwogCiAJbWVt c2V0KHBlbmRpbmdlbnQsIDAsIHNpemVvZigqcGVuZGluZ2VudCkpOwotCW1lbXNldCgmKHBl bmRpbmdlbnQpLT52YWN1dW1fZXh0LCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CiAKIAly ZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3Bnc3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 X3JlbGF0aW9uLmMKaW5kZXggMjY3NWM1NDEzNjkuLmU4NjY1ZDIzMDk5IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwpAQCAtNDcsOCAr NDcsNiBAQCBzdGF0aWMgdm9pZCBhZGRfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9UYWJs ZVN0YXR1cyAqcGdzdGF0X2luZm8sIGludCBuZXN0X2xldgogc3RhdGljIHZvaWQgZW5zdXJl X3RhYnN0YXRfeGFjdF9sZXZlbChQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvKTsK IHN0YXRpYyB2b2lkIHNhdmVfdHJ1bmNkcm9wX2NvdW50ZXJzKFBnU3RhdF9UYWJsZVhhY3RT dGF0dXMgKnRyYW5zLCBib29sIGlzX2Ryb3ApOwogc3RhdGljIHZvaWQgcmVzdG9yZV90cnVu Y2Ryb3BfY291bnRlcnMoUGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnMpOwotc3RhdGlj IHZvaWQgcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzKEV4dFZhY1JlcG9ydCAqIGRz dCwgRXh0VmFjUmVwb3J0ICogc3JjLAotCQkJCQkJCQkJCSAgIGJvb2wgYWNjdW11bGF0ZV9y ZWx0eXBlX3NwZWNpZmljX2luZm8pOwogCiAKIC8qCkBAIC0yMTAsMTIgKzIwOCwxMSBAQCBw Z3N0YXRfZHJvcF9yZWxhdGlvbihSZWxhdGlvbiByZWwpCiAgKi8KIHZvaWQKIHBnc3RhdF9y ZXBvcnRfdmFjdXVtKFJlbGF0aW9uIHJlbCwgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywK LQkJCQkJIFBnU3RhdF9Db3VudGVyIGRlYWR0dXBsZXMsIFRpbWVzdGFtcFR6IHN0YXJ0dGlt ZSwgRXh0VmFjUmVwb3J0ICogcGFyYW1zKQorCQkJCQkgUGdTdGF0X0NvdW50ZXIgZGVhZHR1 cGxlcywgVGltZXN0YW1wVHogc3RhcnR0aW1lKQogewogCVBnU3RhdF9FbnRyeVJlZiAqZW50 cnlfcmVmOwogCVBnU3RhdFNoYXJlZF9SZWxhdGlvbiAqc2h0YWJlbnRyeTsKIAlQZ1N0YXRf U3RhdFRhYkVudHJ5ICp0YWJlbnRyeTsKLQlQZ1N0YXRTaGFyZWRfRGF0YWJhc2UgKmRiZW50 cnk7CiAJT2lkCQkJZGJvaWQgPSAocmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkID8gSW52YWxp ZE9pZCA6IE15RGF0YWJhc2VJZCk7CiAJVGltZXN0YW1wVHogdHM7CiAJUGdTdGF0X0NvdW50 ZXIgZWxhcHNlZHRpbWU7CkBAIC0yMzcsOCArMjM0LDYgQEAgcGdzdGF0X3JlcG9ydF92YWN1 dW0oUmVsYXRpb24gcmVsLCBQZ1N0YXRfQ291bnRlciBsaXZldHVwbGVzLAogCXRhYmVudHJ5 LT5saXZlX3R1cGxlcyA9IGxpdmV0dXBsZXM7CiAJdGFiZW50cnktPmRlYWRfdHVwbGVzID0g ZGVhZHR1cGxlczsKIAotCXBnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cygmdGFiZW50 cnktPnZhY3V1bV9leHQsIHBhcmFtcywgdHJ1ZSk7Ci0KIAkvKgogCSAqIEl0IGlzIHF1aXRl IHBvc3NpYmxlIHRoYXQgYSBub24tYWdncmVzc2l2ZSBWQUNVVU0gZW5kZWQgdXAgc2tpcHBp bmcKIAkgKiB2YXJpb3VzIHBhZ2VzLCBob3dldmVyLCB3ZSdsbCB6ZXJvIHRoZSBpbnNlcnQg Y291bnRlciBoZXJlIHJlZ2FyZGxlc3MuCkBAIC0yNzQsMTYgKzI2OSw2IEBAIHBnc3RhdF9y ZXBvcnRfdmFjdXVtKFJlbGF0aW9uIHJlbCwgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywK IAkgKi8KIAlwZ3N0YXRfZmx1c2hfaW8oZmFsc2UpOwogCSh2b2lkKSBwZ3N0YXRfZmx1c2hf YmFja2VuZChmYWxzZSwgUEdTVEFUX0JBQ0tFTkRfRkxVU0hfSU8pOwotCi0JaWYgKGRib2lk ICE9IEludmFsaWRPaWQpCi0JewotCQllbnRyeV9yZWYgPSBwZ3N0YXRfZ2V0X2VudHJ5X3Jl Zl9sb2NrZWQoUEdTVEFUX0tJTkRfREFUQUJBU0UsCi0JCQkJCQkJCQkJCQlkYm9pZCwgSW52 YWxpZE9pZCwgZmFsc2UpOwotCQlkYmVudHJ5ID0gKFBnU3RhdFNoYXJlZF9EYXRhYmFzZSAq KSBlbnRyeV9yZWYtPnNoYXJlZF9zdGF0czsKLQotCQlwZ3N0YXRfYWNjdW11bGF0ZV9leHR2 YWNfc3RhdHMoJmRiZW50cnktPnN0YXRzLnZhY3V1bV9leHQsIHBhcmFtcywgZmFsc2UpOwot CQlwZ3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7Ci0JfQogfQogCiAvKgpAQCAtOTE4 LDYgKzkwMywxMiBAQCBwZ3N0YXRfcmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVm ICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KQogCXJldHVybiB0cnVlOwogfQogCit2b2lkCitw Z3N0YXRfdmFjdXVtX3JlbGF0aW9uX2RlbGV0ZV9wZW5kaW5nX2NiKE9pZCByZWxpZCkKK3sK KwlwZ3N0YXRfZHJvcF90cmFuc2FjdGlvbmFsKFBHU1RBVF9LSU5EX1ZBQ1VVTV9SRUxBVElP TiwgcmVsaWQsIEludmFsaWRPaWQpOworfQorCiB2b2lkCiBwZ3N0YXRfcmVsYXRpb25fZGVs ZXRlX3BlbmRpbmdfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYpCiB7CkBAIC0xMDI3 LDU1ICsxMDE4LDMgQEAgcmVzdG9yZV90cnVuY2Ryb3BfY291bnRlcnMoUGdTdGF0X1RhYmxl WGFjdFN0YXR1cyAqdHJhbnMpCiAJCXRyYW5zLT50dXBsZXNfZGVsZXRlZCA9IHRyYW5zLT5k ZWxldGVkX3ByZV90cnVuY2Ryb3A7CiAJfQogfQotCi1zdGF0aWMgdm9pZAotcGdzdGF0X2Fj Y3VtdWxhdGVfZXh0dmFjX3N0YXRzKEV4dFZhY1JlcG9ydCAqIGRzdCwgRXh0VmFjUmVwb3J0 ICogc3JjLAotCQkJCQkJCSAgIGJvb2wgYWNjdW11bGF0ZV9yZWx0eXBlX3NwZWNpZmljX2lu Zm8pCi17Ci0JZHN0LT50b3RhbF9ibGtzX3JlYWQgKz0gc3JjLT50b3RhbF9ibGtzX3JlYWQ7 Ci0JZHN0LT50b3RhbF9ibGtzX2hpdCArPSBzcmMtPnRvdGFsX2Jsa3NfaGl0OwotCWRzdC0+ dG90YWxfYmxrc19kaXJ0aWVkICs9IHNyYy0+dG90YWxfYmxrc19kaXJ0aWVkOwotCWRzdC0+ dG90YWxfYmxrc193cml0dGVuICs9IHNyYy0+dG90YWxfYmxrc193cml0dGVuOwotCWRzdC0+ d2FsX2J5dGVzICs9IHNyYy0+d2FsX2J5dGVzOwotCWRzdC0+d2FsX2ZwaSArPSBzcmMtPndh bF9mcGk7Ci0JZHN0LT53YWxfcmVjb3JkcyArPSBzcmMtPndhbF9yZWNvcmRzOwotCWRzdC0+ YmxrX3JlYWRfdGltZSArPSBzcmMtPmJsa19yZWFkX3RpbWU7Ci0JZHN0LT5ibGtfd3JpdGVf dGltZSArPSBzcmMtPmJsa193cml0ZV90aW1lOwotCWRzdC0+ZGVsYXlfdGltZSArPSBzcmMt PmRlbGF5X3RpbWU7Ci0JZHN0LT50b3RhbF90aW1lICs9IHNyYy0+dG90YWxfdGltZTsKLQlk c3QtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQgKz0gc3JjLT53cmFwYXJvdW5kX2ZhaWxz YWZlX2NvdW50OwotCi0JaWYgKCFhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5mbykK LQkJcmV0dXJuOwotCi0JaWYgKGRzdC0+dHlwZSA9PSBQR1NUQVRfRVhUVkFDX0lOVkFMSUQp Ci0JCWRzdC0+dHlwZSA9IHNyYy0+dHlwZTsKLQotCUFzc2VydChzcmMtPnR5cGUgPT0gUEdT VEFUX0VYVFZBQ19JTlZBTElEIHx8IHNyYy0+dHlwZSA9PSBkc3QtPnR5cGUpOwotCi0JaWYg KGRzdC0+dHlwZSA9PSBzcmMtPnR5cGUpCi0JewotCQlkc3QtPmJsa3NfZmV0Y2hlZCArPSBz cmMtPmJsa3NfZmV0Y2hlZDsKLQkJZHN0LT5ibGtzX2hpdCArPSBzcmMtPmJsa3NfaGl0Owot Ci0JCWlmIChkc3QtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19UQUJMRSkKLQkJewotCQkJZHN0 LT50YWJsZS5wYWdlc19zY2FubmVkICs9IHNyYy0+dGFibGUucGFnZXNfc2Nhbm5lZDsKLQkJ CWRzdC0+dGFibGUucGFnZXNfcmVtb3ZlZCArPSBzcmMtPnRhYmxlLnBhZ2VzX3JlbW92ZWQ7 Ci0JCQlkc3QtPnRhYmxlLnZtX25ld19mcm96ZW5fcGFnZXMgKz0gc3JjLT50YWJsZS52bV9u ZXdfZnJvemVuX3BhZ2VzOwotCQkJZHN0LT50YWJsZS52bV9uZXdfdmlzaWJsZV9wYWdlcyAr PSBzcmMtPnRhYmxlLnZtX25ld192aXNpYmxlX3BhZ2VzOwotCQkJZHN0LT50YWJsZS52bV9u ZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgKz0gc3JjLT50YWJsZS52bV9uZXdfdmlzaWJsZV9m cm96ZW5fcGFnZXM7Ci0JCQlkc3QtPnR1cGxlc19kZWxldGVkICs9IHNyYy0+dHVwbGVzX2Rl bGV0ZWQ7Ci0JCQlkc3QtPnRhYmxlLnR1cGxlc19mcm96ZW4gKz0gc3JjLT50YWJsZS50dXBs ZXNfZnJvemVuOwotCQkJZHN0LT50YWJsZS5yZWNlbnRseV9kZWFkX3R1cGxlcyArPSBzcmMt PnRhYmxlLnJlY2VudGx5X2RlYWRfdHVwbGVzOwotCQkJZHN0LT50YWJsZS5pbmRleF92YWN1 dW1fY291bnQgKz0gc3JjLT50YWJsZS5pbmRleF92YWN1dW1fY291bnQ7Ci0JCQlkc3QtPnRh YmxlLm1pc3NlZF9kZWFkX3BhZ2VzICs9IHNyYy0+dGFibGUubWlzc2VkX2RlYWRfcGFnZXM7 Ci0JCQlkc3QtPnRhYmxlLm1pc3NlZF9kZWFkX3R1cGxlcyArPSBzcmMtPnRhYmxlLm1pc3Nl ZF9kZWFkX3R1cGxlczsKLQkJfQotCQllbHNlIGlmIChkc3QtPnR5cGUgPT0gUEdTVEFUX0VY VFZBQ19JTkRFWCkKLQkJewotCQkJZHN0LT5pbmRleC5wYWdlc19kZWxldGVkICs9IHNyYy0+ aW5kZXgucGFnZXNfZGVsZXRlZDsKLQkJCWRzdC0+dHVwbGVzX2RlbGV0ZWQgKz0gc3JjLT50 dXBsZXNfZGVsZXRlZDsKLQkJfQotCX0KLX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdF92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF92YWN1dW0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMzQwZWUyNGYyNmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9wZ3N0YXRfdmFjdXVtLmMKQEAgLTAsMCArMSwyMTQgQEAKKyNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5jbHVkZSAidXRpbHMv cGdzdGF0X2ludGVybmFsLmgiCisjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKKworLyog LS0tLS0tLS0tLQorICogR1VDIHBhcmFtZXRlcnMKKyAqIC0tLS0tLS0tLS0KKyAqLworYm9v bAkJcGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzX2Zvcl9yZWxhdGlvbnMgPSBmYWxz ZTsKKworI2RlZmluZSBBQ0NVTVVMQVRFX0ZJRUxEKGZpZWxkKSBkc3QtPmZpZWxkICs9IHNy Yy0+ZmllbGQ7CisKKyNkZWZpbmUgQUNDVU1VTEFURV9TVUJGSUVMRChzdWJzdHJ1Y3QsIGZp ZWxkKSBcCisgICAgKGRzdC0+c3Vic3RydWN0LmZpZWxkICs9IHNyYy0+c3Vic3RydWN0LmZp ZWxkKQorCitzdGF0aWMgdm9pZAorcGdzdGF0X2FjY3VtdWxhdGVfY29tbW9uKFBnU3RhdF9D b21tb25Db3VudHMgKiBkc3QsIGNvbnN0IFBnU3RhdF9Db21tb25Db3VudHMgKiBzcmMpCit7 CisJQUNDVU1VTEFURV9GSUVMRCh0b3RhbF9ibGtzX3JlYWQpOworCUFDQ1VNVUxBVEVfRklF TEQodG90YWxfYmxrc19oaXQpOworCUFDQ1VNVUxBVEVfRklFTEQodG90YWxfYmxrc19kaXJ0 aWVkKTsKKwlBQ0NVTVVMQVRFX0ZJRUxEKHRvdGFsX2Jsa3Nfd3JpdHRlbik7CisKKwlBQ0NV TVVMQVRFX0ZJRUxEKGJsa3NfZmV0Y2hlZCk7CisJQUNDVU1VTEFURV9GSUVMRChibGtzX2hp dCk7CisKKwlBQ0NVTVVMQVRFX0ZJRUxEKHdhbF9yZWNvcmRzKTsKKwlBQ0NVTVVMQVRFX0ZJ RUxEKHdhbF9mcGkpOworCUFDQ1VNVUxBVEVfRklFTEQod2FsX2J5dGVzKTsKKworCUFDQ1VN VUxBVEVfRklFTEQoYmxrX3JlYWRfdGltZSk7CisJQUNDVU1VTEFURV9GSUVMRChibGtfd3Jp dGVfdGltZSk7CisJQUNDVU1VTEFURV9GSUVMRChkZWxheV90aW1lKTsKKwlBQ0NVTVVMQVRF X0ZJRUxEKHRvdGFsX3RpbWUpOworCisJQUNDVU1VTEFURV9GSUVMRCh0dXBsZXNfZGVsZXRl ZCk7CisJQUNDVU1VTEFURV9GSUVMRCh3cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50KTsKK30K Kworc3RhdGljIHZvaWQKK3Bnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0c19yZWxhdGlv bnMoUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICogZHN0LCBQZ1N0YXRfVmFjdXVtUmVs YXRpb25Db3VudHMgKiBzcmMpCit7CisJaWYgKCFwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRp c3RpY3MpCisJCXJldHVybjsKKworCWlmIChkc3QtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19J TlZBTElEKQorCQlkc3QtPnR5cGUgPSBzcmMtPnR5cGU7CisKKwlBc3NlcnQoc3JjLT50eXBl ICE9IFBHU1RBVF9FWFRWQUNfSU5WQUxJRCAmJiBzcmMtPnR5cGUgIT0gUEdTVEFUX0VYVFZB Q19EQiAmJiBzcmMtPnR5cGUgPT0gZHN0LT50eXBlKTsKKworCXBnc3RhdF9hY2N1bXVsYXRl X2NvbW1vbigmZHN0LT5jb21tb24sICZzcmMtPmNvbW1vbik7CisKKwlBQ0NVTVVMQVRFX1NV QkZJRUxEKGNvbW1vbiwgYmxrc19mZXRjaGVkKTsKKwlBQ0NVTVVMQVRFX1NVQkZJRUxEKGNv bW1vbiwgYmxrc19oaXQpOworCisJaWYgKGRzdC0+dHlwZSA9PSBQR1NUQVRfRVhUVkFDX1RB QkxFKQorCXsKKwkJQUNDVU1VTEFURV9TVUJGSUVMRChjb21tb24sIHR1cGxlc19kZWxldGVk KTsKKwkJQUNDVU1VTEFURV9TVUJGSUVMRCh0YWJsZSwgcGFnZXNfc2Nhbm5lZCk7CisJCUFD Q1VNVUxBVEVfU1VCRklFTEQodGFibGUsIHBhZ2VzX3JlbW92ZWQpOworCQlBQ0NVTVVMQVRF X1NVQkZJRUxEKHRhYmxlLCB2bV9uZXdfZnJvemVuX3BhZ2VzKTsKKwkJQUNDVU1VTEFURV9T VUJGSUVMRCh0YWJsZSwgdm1fbmV3X3Zpc2libGVfcGFnZXMpOworCQlBQ0NVTVVMQVRFX1NV QkZJRUxEKHRhYmxlLCB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMpOworCQlBQ0NVTVVM QVRFX1NVQkZJRUxEKHRhYmxlLCB0dXBsZXNfZnJvemVuKTsKKwkJQUNDVU1VTEFURV9TVUJG SUVMRCh0YWJsZSwgcmVjZW50bHlfZGVhZF90dXBsZXMpOworCQlBQ0NVTVVMQVRFX1NVQkZJ RUxEKHRhYmxlLCBpbmRleF92YWN1dW1fY291bnQpOworCQlBQ0NVTVVMQVRFX1NVQkZJRUxE KHRhYmxlLCBtaXNzZWRfZGVhZF9wYWdlcyk7CisJCUFDQ1VNVUxBVEVfU1VCRklFTEQodGFi bGUsIG1pc3NlZF9kZWFkX3R1cGxlcyk7CisJfQorCWVsc2UgaWYgKGRzdC0+dHlwZSA9PSBQ R1NUQVRfRVhUVkFDX0lOREVYKQorCXsKKwkJQUNDVU1VTEFURV9TVUJGSUVMRChjb21tb24s IHR1cGxlc19kZWxldGVkKTsKKwkJQUNDVU1VTEFURV9TVUJGSUVMRChpbmRleCwgcGFnZXNf ZGVsZXRlZCk7CisJfQorfQorCitzdGF0aWMgdm9pZAorcGdzdGF0X2FjY3VtdWxhdGVfZXh0 dmFjX3N0YXRzX2RiKFBnU3RhdF9WYWN1dW1EQkNvdW50cyAqIGRzdCwgUGdTdGF0X1ZhY3V1 bURCQ291bnRzICogc3JjKQoreworCWlmICghcGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0 aWNzKQorCQlyZXR1cm47CisKKwlwZ3N0YXRfYWNjdW11bGF0ZV9jb21tb24oJmRzdC0+Y29t bW9uLCAmc3JjLT5jb21tb24pOworfQorCisvKgorICogUmVwb3J0IHRoYXQgdGhlIHRhYmxl IHdhcyBqdXN0IHZhY3V1bWVkIGFuZCBmbHVzaCBzdGF0aXN0aWNzLgorICovCit2b2lkCitw Z3N0YXRfcmVwb3J0X3ZhY3V1bV9leHRzdGF0cyhPaWQgdGFibGVvaWQsIGJvb2wgc2hhcmVk LAorCQkJCQkJCSAgUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICogcGFyYW1zKQorewor CVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmOworCVBnU3RhdFNoYXJlZF9WYWN1dW1SZWxh dGlvbiAqc2h0YWJlbnRyeTsKKwlQZ1N0YXRTaGFyZWRfVmFjdXVtREIgKnNoZGJlbnRyeTsK KwlPaWQJCQlkYm9pZCA9IChzaGFyZWQgPyBJbnZhbGlkT2lkIDogTXlEYXRhYmFzZUlkKTsK KworCWlmICghcGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCQlyZXR1cm47CisK KwllbnRyeV9yZWYgPSBwZ3N0YXRfZ2V0X2VudHJ5X3JlZl9sb2NrZWQoUEdTVEFUX0tJTkRf VkFDVVVNX1JFTEFUSU9OLAorCQkJCQkJCQkJCQlkYm9pZCwgdGFibGVvaWQsIGZhbHNlKTsK KwlzaHRhYmVudHJ5ID0gKFBnU3RhdFNoYXJlZF9WYWN1dW1SZWxhdGlvbiAqKSBlbnRyeV9y ZWYtPnNoYXJlZF9zdGF0czsKKwlwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHNfcmVs YXRpb25zKCZzaHRhYmVudHJ5LT5zdGF0cywgcGFyYW1zKTsKKworCXBnc3RhdF91bmxvY2tf ZW50cnkoZW50cnlfcmVmKTsKKworCisJZW50cnlfcmVmID0gcGdzdGF0X2dldF9lbnRyeV9y ZWZfbG9ja2VkKFBHU1RBVF9LSU5EX1ZBQ1VVTV9EQiwKKwkJCQkJCQkJCQkJZGJvaWQsIElu dmFsaWRPaWQsIGZhbHNlKTsKKworCXNoZGJlbnRyeSA9IChQZ1N0YXRTaGFyZWRfVmFjdXVt REIgKikgZW50cnlfcmVmLT5zaGFyZWRfc3RhdHM7CisKKwlwZ3N0YXRfYWNjdW11bGF0ZV9j b21tb24oJnNoZGJlbnRyeS0+c3RhdHMuY29tbW9uLCAmcGFyYW1zLT5jb21tb24pOworCisJ cGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOworfQorCisvKgorICogRmx1c2ggb3V0 IHBlbmRpbmcgc3RhdHMgZm9yIHRoZSBlbnRyeQorICoKKyAqIElmIG5vd2FpdCBpcyB0cnVl LCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgZmFsc2UgaWYgbG9jayBjb3VsZCBub3QKKyAqIGlt bWVkaWF0ZWx5IGFjcXVpcmVkLCBvdGhlcndpc2UgdHJ1ZSBpcyByZXR1cm5lZC4KKyAqLwor Ym9vbAorcGdzdGF0X3ZhY3V1bV9yZWxhdGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYg KmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCit7CisJUGdTdGF0U2hhcmVkX1ZhY3V1bVJlbGF0 aW9uICpzaHRhYnN0YXRzOworCVBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmcgKnBlbmRp bmdlbnQ7CS8qIHRhYmxlIGVudHJ5IG9mIHNoYXJlZCBzdGF0cyAqLworCisJcGVuZGluZ2Vu dCA9IChQZ1N0YXRfUmVsYXRpb25WYWN1dW1QZW5kaW5nICopIGVudHJ5X3JlZi0+cGVuZGlu ZzsKKwlzaHRhYnN0YXRzID0gKFBnU3RhdFNoYXJlZF9WYWN1dW1SZWxhdGlvbiAqKSBlbnRy eV9yZWYtPnNoYXJlZF9zdGF0czsKKworCS8qCisJICogSWdub3JlIGVudHJpZXMgdGhhdCBk aWRuJ3QgYWNjdW11bGF0ZSBhbnkgYWN0dWFsIGNvdW50cy4KKwkgKi8KKwlpZiAocGdfbWVt b3J5X2lzX2FsbF96ZXJvcygmcGVuZGluZ2VudCwKKwkJCQkJCQkgICBzaXplb2Yoc3RydWN0 IFBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmcpKSkKKwkJcmV0dXJuIHRydWU7CisKKwlp ZiAoIXBnc3RhdF9sb2NrX2VudHJ5KGVudHJ5X3JlZiwgbm93YWl0KSkKKwl7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwlwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHNfcmVsYXRp b25zKCYoc2h0YWJzdGF0cy0+c3RhdHMpLCAmKHBlbmRpbmdlbnQtPmNvdW50cykpOworCisJ cGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOworCisJcmV0dXJuIHRydWU7Cit9CisK Ky8qCisgKiBTdXBwb3J0IGZ1bmN0aW9uIGZvciB0aGUgU1FMLWNhbGxhYmxlIHBnc3RhdCog ZnVuY3Rpb25zLiBSZXR1cm5zCisgKiB0aGUgdmFjdXVtIGNvbGxlY3RlZCBzdGF0aXN0aWNz IGZvciBvbmUgcmVsYXRpb24gb3IgTlVMTC4KKyAqLworUGdTdGF0X1ZhY3V1bVJlbGF0aW9u Q291bnRzICoKK3Bnc3RhdF9mZXRjaF9zdGF0X3ZhY3V1bV90YWJlbnRyeShPaWQgcmVsaWQs IE9pZCBkYmlkKQoreworCXJldHVybiAoUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICop CisJCXBnc3RhdF9mZXRjaF9lbnRyeShQR1NUQVRfS0lORF9WQUNVVU1fUkVMQVRJT04sIGRi aWQsIHJlbGlkKTsKK30KKworUGdTdGF0X1ZhY3V1bURCQ291bnRzICoKK3Bnc3RhdF9mZXRj aF9zdGF0X3ZhY3V1bV9kYmVudHJ5KE9pZCBkYmlkKQoreworCXJldHVybiAoUGdTdGF0X1Zh Y3V1bURCQ291bnRzICopCisJCXBnc3RhdF9mZXRjaF9lbnRyeShQR1NUQVRfS0lORF9WQUNV VU1fREIsIGRiaWQsIEludmFsaWRPaWQpOworfQorCitib29sCitwZ3N0YXRfdmFjdXVtX2Ri X2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCkKK3sK KwlQZ1N0YXRTaGFyZWRfVmFjdXVtREIgKnNoYXJlZGVudDsKKwlQZ1N0YXRfVmFjdXVtREJD b3VudHMgKnBlbmRpbmdlbnQ7CisKKwlwZW5kaW5nZW50ID0gKFBnU3RhdF9WYWN1dW1EQkNv dW50cyAqKSBlbnRyeV9yZWYtPnBlbmRpbmc7CisJc2hhcmVkZW50ID0gKFBnU3RhdFNoYXJl ZF9WYWN1dW1EQiAqKSBlbnRyeV9yZWYtPnNoYXJlZF9zdGF0czsKKworCWlmICghcGdzdGF0 X2xvY2tfZW50cnkoZW50cnlfcmVmLCBub3dhaXQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkv KiBUaGUgZW50cnkgd2FzIHN1Y2Nlc3NmdWxseSBmbHVzaGVkLCBhZGQgdGhlIHNhbWUgdG8g ZGF0YWJhc2Ugc3RhdHMgKi8KKwlwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHNfZGIo JihzaGFyZWRlbnQtPnN0YXRzKSwgcGVuZGluZ2VudCk7CisKKwlwZ3N0YXRfdW5sb2NrX2Vu dHJ5KGVudHJ5X3JlZik7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIEZpbmQgb3Ig Y3JlYXRlIGEgbG9jYWwgUGdTdGF0X1ZhY3V1bURCQ291bnRzIGVudHJ5IGZvciBkYm9pZC4K KyAqLworUGdTdGF0X1ZhY3V1bURCQ291bnRzICoKK3Bnc3RhdF9wcmVwX3ZhY3V1bV9kYXRh YmFzZV9wZW5kaW5nKE9pZCBkYm9pZCkKK3sKKwlQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3Jl ZjsKKworCS8qCisJICogVGhpcyBzaG91bGQgbm90IHJlcG9ydCBzdGF0cyBvbiBkYXRhYmFz ZSBvYmplY3RzIGJlZm9yZSBoYXZpbmcKKwkgKiBjb25uZWN0ZWQgdG8gYSBkYXRhYmFzZS4K KwkgKi8KKwlBc3NlcnQoIU9pZElzVmFsaWQoZGJvaWQpIHx8IE9pZElzVmFsaWQoTXlEYXRh YmFzZUlkKSk7CisKKwllbnRyeV9yZWYgPSBwZ3N0YXRfcHJlcF9wZW5kaW5nX2VudHJ5KFBH U1RBVF9LSU5EX1ZBQ1VVTV9EQiwgZGJvaWQsIEludmFsaWRPaWQsCisJCQkJCQkJCQkJICBO VUxMKTsKKworCWlmIChlbnRyeV9yZWYgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwly ZXR1cm4gZW50cnlfcmVmLT5wZW5kaW5nOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0 ZnVuY3MuYwppbmRleCA0ZTI3MTRmMmU2YS4uMGE2NGYwMzRhM2YgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0yMzE0LDcgKzIzMTQsNiBAQCBwZ19zdGF0X2hh dmVfc3RhdHMoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fQk9PTChwZ3N0YXRfaGF2 ZV9lbnRyeShraW5kLCBkYm9pZCwgb2JqaWQpKTsKIH0KIAotCiAvKgogICogR2V0IHRoZSB2 YWN1dW0gc3RhdGlzdGljcyBmb3IgdGhlIGhlYXAgdGFibGVzLgogICovCkBAIC0yMzI0LDQx ICsyMzIzLDQ1IEBAIHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMoUEdfRlVOQ1RJT05fQVJH UykKICNkZWZpbmUgUEdfU1RBVF9HRVRfVkFDVVVNX1RBQkxFU19TVEFUU19DT0xTIDI2CiAK IAlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7Ci0JUGdTdGF0X1N0YXRUYWJFbnRy eSAqdGFiZW50cnk7Ci0JRXh0VmFjUmVwb3J0ICpleHR2YWN1dW07CisJUGdTdGF0X1ZhY3V1 bVJlbGF0aW9uQ291bnRzICpleHR2YWN1dW07CisJUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291 bnRzICpwZW5kaW5nOwogCVR1cGxlRGVzYwl0dXBkZXNjOwogCURhdHVtCQl2YWx1ZXNbUEdf U1RBVF9HRVRfVkFDVVVNX1RBQkxFU19TVEFUU19DT0xTXSA9IHswfTsKIAlib29sCQludWxs c1tQR19TVEFUX0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRTX0NPTFNdID0gezB9OwogCWNoYXIJ CWJ1ZlsyNTZdOwogCWludAkJCWkgPSAwOwogCisJLyogQnVpbGQgYSB0dXBsZSBkZXNjcmlw dG9yIGZvciBvdXIgcmVzdWx0IHR5cGUgKi8KIAlpZiAoZ2V0X2NhbGxfcmVzdWx0X3R5cGUo ZmNpbmZvLCBOVUxMLCAmdHVwZGVzYykgIT0gVFlQRUZVTkNfQ09NUE9TSVRFKQogCQllbG9n KEVSUk9SLCAicmV0dXJuIHR5cGUgbXVzdCBiZSBhIHJvdyB0eXBlIik7CiAKLQl0YWJlbnRy eSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsKKwlwZW5kaW5nID0gcGdz dGF0X2ZldGNoX3N0YXRfdmFjdXVtX3RhYmVudHJ5KHJlbGlkLCBNeURhdGFiYXNlSWQpOwog Ci0JaWYgKCF0YWJlbnRyeSkKLQl7Ci0JCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCAw KTsKLQkJUEdfUkVUVVJOX1ZPSUQoKTsKLQl9Ci0JZWxzZQorCWlmICghcGVuZGluZykKIAl7 Ci0JCWV4dHZhY3V1bSA9ICYodGFiZW50cnktPnZhY3V1bV9leHQpOworCQlwZW5kaW5nID0g cGdzdGF0X2ZldGNoX3N0YXRfdmFjdXVtX3RhYmVudHJ5KHJlbGlkLCAwKTsKKworCQlpZiAo IXBlbmRpbmcpCisJCXsKKwkJCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCAwKTsKKwkJ CVBHX1JFVFVSTl9WT0lEKCk7CisJCX0KIAl9CiAKKwlleHR2YWN1dW0gPSBwZW5kaW5nOwor CiAJaSA9IDA7CiAKIAl2YWx1ZXNbaSsrXSA9IE9iamVjdElkR2V0RGF0dW0ocmVsaWQpOwog Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19y ZWFkKTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9i bGtzX2hpdCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90 YWxfYmxrc19kaXJ0aWVkKTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFj dXVtLT50b3RhbF9ibGtzX3dyaXR0ZW4pOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bShleHR2YWN1dW0tPmNvbW1vbi50b3RhbF9ibGtzX3JlYWQpOworCXZhbHVlc1tpKytdID0g SW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3RhbF9ibGtzX2hpdCk7CisJdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX2Jsa3Nf ZGlydGllZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29t bW9uLnRvdGFsX2Jsa3Nfd3JpdHRlbik7CiAKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0 dW0oZXh0dmFjdXVtLT5ibGtzX2ZldGNoZWQgLQotCQkJCQkJCQlleHR2YWN1dW0tPmJsa3Nf aGl0KTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtzX2hp dCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLmJs a3NfZmV0Y2hlZCAtCisJCQkJCQkJCWV4dHZhY3V1bS0+Y29tbW9uLmJsa3NfaGl0KTsKKwl2 YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uYmxrc19oaXQp OwogCiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUucGFn ZXNfc2Nhbm5lZCk7CiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+ dGFibGUucGFnZXNfcmVtb3ZlZCk7CkBAIC0yMzY2LDI4ICsyMzY5LDI4IEBAIHBnX3N0YXRf Z2V0X3ZhY3V1bV90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJsZS52bV9uZXdfdmlzaWJsZV9wYWdlcyk7CiAJ dmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUudm1fbmV3X3Zp c2libGVfZnJvemVuX3BhZ2VzKTsKIAl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0 dmFjdXVtLT50YWJsZS5taXNzZWRfZGVhZF9wYWdlcyk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+dHVwbGVzX2RlbGV0ZWQpOworCXZhbHVlc1tpKytdID0g SW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50dXBsZXNfZGVsZXRlZCk7CiAJdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUudHVwbGVzX2Zyb3pl bik7CiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUucmVj ZW50bHlfZGVhZF90dXBsZXMpOwogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPnRhYmxlLm1pc3NlZF9kZWFkX3R1cGxlcyk7CiAKLQl2YWx1ZXNbaSsrXSA9IElu dDMyR2V0RGF0dW0oZXh0dmFjdXVtLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50KTsKKwl2 YWx1ZXNbaSsrXSA9IEludDMyR2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24ud3JhcGFyb3Vu ZF9mYWlsc2FmZV9jb3VudCk7CiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZh Y3V1bS0+dGFibGUuaW5kZXhfdmFjdXVtX2NvdW50KTsKIAotCXZhbHVlc1tpKytdID0gSW50 NjRHZXREYXR1bShleHR2YWN1dW0tPndhbF9yZWNvcmRzKTsKLQl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0oZXh0dmFjdXVtLT53YWxfZnBpKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0 R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24ud2FsX3JlY29yZHMpOworCXZhbHVlc1tpKytd ID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi53YWxfZnBpKTsKIAogCS8qIENv bnZlcnQgdG8gbnVtZXJpYywgbGlrZSBwZ19zdGF0X3N0YXRlbWVudHMgKi8KLQlzbnByaW50 ZihidWYsIHNpemVvZiBidWYsIFVJTlQ2NF9GT1JNQVQsIGV4dHZhY3V1bS0+d2FsX2J5dGVz KTsKKwlzbnByaW50ZihidWYsIHNpemVvZiBidWYsIFVJTlQ2NF9GT1JNQVQsIGV4dHZhY3V1 bS0+Y29tbW9uLndhbF9ieXRlcyk7CiAJdmFsdWVzW2krK10gPSBEaXJlY3RGdW5jdGlvbkNh bGwzKG51bWVyaWNfaW4sCiAJCQkJCQkJCQkgIENTdHJpbmdHZXREYXR1bShidWYpLAogCQkJ CQkJCQkJICBPYmplY3RJZEdldERhdHVtKDApLAogCQkJCQkJCQkJICBJbnQzMkdldERhdHVt KC0xKSk7CiAKLQl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+Ymxr X3JlYWRfdGltZSk7Ci0JdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0t PmJsa193cml0ZV90aW1lKTsKLQl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZh Y3V1bS0+ZGVsYXlfdGltZSk7Ci0JdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2 YWN1dW0tPnRvdGFsX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0 dmFjdXVtLT5jb21tb24uYmxrX3JlYWRfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhH ZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi5ibGtfd3JpdGVfdGltZSk7CisJdmFsdWVzW2kr K10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi5kZWxheV90aW1lKTsKKwl2 YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX3Rp bWUpOwogCiAJQXNzZXJ0KGkgPT0gUEdfU1RBVF9HRVRfVkFDVVVNX1RBQkxFU19TVEFUU19D T0xTKTsKIApAQCAtMjQwNCw4ICsyNDA3LDggQEAgcGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4 ZXMoUEdfRlVOQ1RJT05fQVJHUykKICNkZWZpbmUgUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVY X1NUQVRTX0NPTFMJMTYKIAogCU9pZAkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKLQlQ Z1N0YXRfU3RhdFRhYkVudHJ5ICp0YWJlbnRyeTsKLQlFeHRWYWNSZXBvcnQgKmV4dHZhY3V1 bTsKKwlQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKmV4dHZhY3V1bTsKKwlQZ1N0YXRf VmFjdXVtUmVsYXRpb25Db3VudHMgKnBlbmRpbmc7CiAJVHVwbGVEZXNjCXR1cGRlc2M7CiAJ RGF0dW0JCXZhbHVlc1tQR19TVEFUX0dFVF9WQUNVVU1fSU5ERVhfU1RBVFNfQ09MU10gPSB7 MH07CiAJYm9vbAkJbnVsbHNbUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFNd ID0gezB9OwpAQCAtMjQxNSw0OCArMjQxOCw1MSBAQCBwZ19zdGF0X2dldF92YWN1dW1faW5k ZXhlcyhQR19GVU5DVElPTl9BUkdTKQogCWlmIChnZXRfY2FsbF9yZXN1bHRfdHlwZShmY2lu Zm8sIE5VTEwsICZ0dXBkZXNjKSAhPSBUWVBFRlVOQ19DT01QT1NJVEUpCiAJCWVsb2coRVJS T1IsICJyZXR1cm4gdHlwZSBtdXN0IGJlIGEgcm93IHR5cGUiKTsKIAotCXRhYmVudHJ5ID0g cGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVsaWQpOworCXBlbmRpbmcgPSBwZ3N0YXRf ZmV0Y2hfc3RhdF92YWN1dW1fdGFiZW50cnkocmVsaWQsIE15RGF0YWJhc2VJZCk7CiAKLQlp ZiAodGFiZW50cnkgPT0gTlVMTCkKLQl7Ci0JCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZv LCAwKTsKLQkJUEdfUkVUVVJOX1ZPSUQoKTsKLQl9Ci0JZWxzZQorCWlmICghcGVuZGluZykK IAl7Ci0JCWV4dHZhY3V1bSA9ICYodGFiZW50cnktPnZhY3V1bV9leHQpOworCQlwZW5kaW5n ID0gcGdzdGF0X2ZldGNoX3N0YXRfdmFjdXVtX3RhYmVudHJ5KHJlbGlkLCAwKTsKKworCQlp ZiAoIXBlbmRpbmcpCisJCXsKKwkJCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCAwKTsK KwkJCVBHX1JFVFVSTl9WT0lEKCk7CisJCX0KIAl9CiAKKwlleHR2YWN1dW0gPSBwZW5kaW5n OworCiAJaSA9IDA7CiAKIAl2YWx1ZXNbaSsrXSA9IE9iamVjdElkR2V0RGF0dW0ocmVsaWQp OwogCi0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxr c19yZWFkKTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3Rh bF9ibGtzX2hpdCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+ dG90YWxfYmxrc19kaXJ0aWVkKTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0 dmFjdXVtLT50b3RhbF9ibGtzX3dyaXR0ZW4pOworCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3RhbF9ibGtzX3JlYWQpOworCXZhbHVlc1tpKytd ID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3RhbF9ibGtzX2hpdCk7CisJ dmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX2Js a3NfZGlydGllZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+ Y29tbW9uLnRvdGFsX2Jsa3Nfd3JpdHRlbik7CiAKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0 RGF0dW0oZXh0dmFjdXVtLT5ibGtzX2ZldGNoZWQgLQotCQkJCQkJCQlleHR2YWN1dW0tPmJs a3NfaGl0KTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtz X2hpdCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9u LmJsa3NfZmV0Y2hlZCAtCisJCQkJCQkJCWV4dHZhY3V1bS0+Y29tbW9uLmJsa3NfaGl0KTsK Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uYmxrc19o aXQpOwogCiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+aW5kZXgu cGFnZXNfZGVsZXRlZCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1 bS0+dHVwbGVzX2RlbGV0ZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPmNvbW1vbi50dXBsZXNfZGVsZXRlZCk7CiAKLQl2YWx1ZXNbaSsrXSA9IEludDY0 R2V0RGF0dW0oZXh0dmFjdXVtLT53YWxfcmVjb3Jkcyk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+d2FsX2ZwaSk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdl dERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLndhbF9yZWNvcmRzKTsKKwl2YWx1ZXNbaSsrXSA9 IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24ud2FsX2ZwaSk7CiAKIAkvKiBDb252 ZXJ0IHRvIG51bWVyaWMsIGxpa2UgcGdfc3RhdF9zdGF0ZW1lbnRzICovCi0Jc25wcmludGYo YnVmLCBzaXplb2YgYnVmLCBVSU5UNjRfRk9STUFULCBleHR2YWN1dW0tPndhbF9ieXRlcyk7 CisJc25wcmludGYoYnVmLCBzaXplb2YgYnVmLCBVSU5UNjRfRk9STUFULCBleHR2YWN1dW0t PmNvbW1vbi53YWxfYnl0ZXMpOwogCXZhbHVlc1tpKytdID0gRGlyZWN0RnVuY3Rpb25DYWxs MyhudW1lcmljX2luLAogCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0oYnVmKSwKIAkJCQkJ CQkJCSAgT2JqZWN0SWRHZXREYXR1bSgwKSwKIAkJCQkJCQkJCSAgSW50MzJHZXREYXR1bSgt MSkpOwogCi0JdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmJsa19y ZWFkX3RpbWUpOwotCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5i bGtfd3JpdGVfdGltZSk7Ci0JdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1 dW0tPmRlbGF5X3RpbWUpOwotCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFj dXVtLT50b3RhbF90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZh Y3V1bS0+Y29tbW9uLmJsa19yZWFkX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0 RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uYmxrX3dyaXRlX3RpbWUpOworCXZhbHVlc1tpKytd ID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uZGVsYXlfdGltZSk7CisJdmFs dWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3RhbF90aW1l KTsKIAogCUFzc2VydChpID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xT KTsKIApAQCAtMjQ3MCw4ICsyNDc2LDggQEAgcGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNl KFBHX0ZVTkNUSU9OX0FSR1MpCiAjZGVmaW5lIFBHX1NUQVRfR0VUX1ZBQ1VVTV9EQVRBQkFT RV9TVEFUU19DT0xTCTE0CiAKIAlPaWQJCQlkYmlkID0gUEdfR0VUQVJHX09JRCgwKTsKLQlQ Z1N0YXRfU3RhdERCRW50cnkgKmRiZW50cnk7Ci0JRXh0VmFjUmVwb3J0ICpleHR2YWN1dW07 CisJUGdTdGF0X1ZhY3V1bURCQ291bnRzICpleHR2YWN1dW07CisJUGdTdGF0X1ZhY3V1bURC Q291bnRzICpwZW5kaW5nOwogCVR1cGxlRGVzYwl0dXBkZXNjOwogCURhdHVtCQl2YWx1ZXNb UEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNFX1NUQVRTX0NPTFNdID0gezB9OwogCWJvb2wJ CW51bGxzW1BHX1NUQVRfR0VUX1ZBQ1VVTV9EQVRBQkFTRV9TVEFUU19DT0xTXSA9IHswfTsK QEAgLTI0ODEsNDIgKzI0ODcsNDEgQEAgcGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNlKFBH X0ZVTkNUSU9OX0FSR1MpCiAJaWYgKGdldF9jYWxsX3Jlc3VsdF90eXBlKGZjaW5mbywgTlVM TCwgJnR1cGRlc2MpICE9IFRZUEVGVU5DX0NPTVBPU0lURSkKIAkJZWxvZyhFUlJPUiwgInJl dHVybiB0eXBlIG11c3QgYmUgYSByb3cgdHlwZSIpOwogCi0JZGJlbnRyeSA9IHBnc3RhdF9m ZXRjaF9zdGF0X2RiZW50cnkoZGJpZCk7CisJcGVuZGluZyA9IHBnc3RhdF9mZXRjaF9zdGF0 X3ZhY3V1bV9kYmVudHJ5KGRiaWQpOwogCi0JaWYgKGRiZW50cnkgPT0gTlVMTCkKKwlpZiAo IXBlbmRpbmcpCiAJewogCQlJbml0TWF0ZXJpYWxpemVkU1JGKGZjaW5mbywgMCk7CiAJCVBH X1JFVFVSTl9WT0lEKCk7CiAJfQotCWVsc2UKLQl7Ci0JCWV4dHZhY3V1bSA9ICYoZGJlbnRy eS0+dmFjdXVtX2V4dCk7Ci0JfQorCisJZXh0dmFjdXVtID0gcGVuZGluZzsKIAogCWkgPSAw OwogCiAJdmFsdWVzW2krK10gPSBPYmplY3RJZEdldERhdHVtKGRiaWQpOwogCi0JdmFsdWVz W2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19yZWFkKTsKLQl2 YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX2hpdCk7 Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19k aXJ0aWVkKTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3Rh bF9ibGtzX3dyaXR0ZW4pOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPmNvbW1vbi50b3RhbF9ibGtzX3JlYWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3RhbF9ibGtzX2hpdCk7CisJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX2Jsa3NfZGlydGllZCk7 CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFs X2Jsa3Nfd3JpdHRlbik7CiAKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFj dXVtLT53YWxfcmVjb3Jkcyk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZh Y3V1bS0+d2FsX2ZwaSk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1 bS0+Y29tbW9uLndhbF9yZWNvcmRzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT5jb21tb24ud2FsX2ZwaSk7CiAKIAkvKiBDb252ZXJ0IHRvIG51bWVyaWMs IGxpa2UgcGdfc3RhdF9zdGF0ZW1lbnRzICovCi0Jc25wcmludGYoYnVmLCBzaXplb2YgYnVm LCBVSU5UNjRfRk9STUFULCBleHR2YWN1dW0tPndhbF9ieXRlcyk7CisJc25wcmludGYoYnVm LCBzaXplb2YgYnVmLCBVSU5UNjRfRk9STUFULCBleHR2YWN1dW0tPmNvbW1vbi53YWxfYnl0 ZXMpOwogCXZhbHVlc1tpKytdID0gRGlyZWN0RnVuY3Rpb25DYWxsMyhudW1lcmljX2luLAog CQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0oYnVmKSwKIAkJCQkJCQkJCSAgT2JqZWN0SWRH ZXREYXR1bSgwKSwKIAkJCQkJCQkJCSAgSW50MzJHZXREYXR1bSgtMSkpOwogCi0JdmFsdWVz W2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmJsa19yZWFkX3RpbWUpOwotCXZh bHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtfd3JpdGVfdGltZSk7 Ci0JdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmRlbGF5X3RpbWUp OwotCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF90aW1l KTsKLQl2YWx1ZXNbaSsrXSA9IEludDMyR2V0RGF0dW0oZXh0dmFjdXVtLT53cmFwYXJvdW5k X2ZhaWxzYWZlX2NvdW50KTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZh Y3V1bS0+Y29tbW9uLmJsa19yZWFkX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0 RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uYmxrX3dyaXRlX3RpbWUpOworCXZhbHVlc1tpKytd ID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uZGVsYXlfdGltZSk7CisJdmFs dWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3RhbF90aW1l KTsKKwl2YWx1ZXNbaSsrXSA9IEludDMyR2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24ud3Jh cGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7CisJdmFsdWVzW2krK10gPSBJbnQzMkdldERhdHVt KGV4dHZhY3V1bS0+ZXJyb3JzKTsKIAogCUFzc2VydChpID09IFBHX1NUQVRfR0VUX1ZBQ1VV TV9EQVRBQkFTRV9TVEFUU19DT0xTKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1 Y19wYXJhbWV0ZXJzLmRhdAppbmRleCAzYjlkODM0OTA3OC4uNjMxZGYzYTU3YzMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CkBAIC0zMDg0LDYg KzMwODQsMTIgQEAKICAgYm9vdF92YWwgPT4gJ2ZhbHNlJywKIH0sCiAKK3sgbmFtZSA9PiAn dHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MnLCB0eXBlID0+ICdib29sJywgY29udGV4dCA9PiAn UEdDX1NVU0VUJywgZ3JvdXAgPT4gJ1NUQVRTX0NVTVVMQVRJVkUnLAorICBzaG9ydF9kZXNj ID0+ICdDb2xsZWN0cyB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdmFjdXVtIGFjdGl2aXR5Lics CisgIHZhcmlhYmxlID0+ICdwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MnLAorICBi b290X3ZhbCA9PiAnZmFsc2UnLAorfSwKKwogeyBuYW1lID0+ICd0cmFja193YWxfaW9fdGlt aW5nJywgdHlwZSA9PiAnYm9vbCcsIGNvbnRleHQgPT4gJ1BHQ19TVVNFVCcsIGdyb3VwID0+ ICdTVEFUU19DVU1VTEFUSVZFJywKICAgc2hvcnRfZGVzYyA9PiAnQ29sbGVjdHMgdGltaW5n IHN0YXRpc3RpY3MgZm9yIFdBTCBJL08gYWN0aXZpdHkuJywKICAgdmFyaWFibGUgPT4gJ3Ry YWNrX3dhbF9pb190aW1pbmcnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv dmFjdXVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAppbmRleCBiNDhhY2U2 MDg0Yi4uNmU4NWIwOGFhODkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Zh Y3V1bS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCkBAIC00MzcsNSAr NDM3LDUgQEAgZXh0ZXJuIGRvdWJsZSBhbmxfZ2V0X25leHRfUyhkb3VibGUgdCwgaW50IG4s IGRvdWJsZSAqc3RhdGVwdHIpOwogZXh0ZXJuIHZvaWQgZXh0dmFjX3N0YXRzX3N0YXJ0X2lk eChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsCiAJCQkJCQkJ CSAgIExWRXh0U3RhdENvdW50ZXJzSWR4ICogY291bnRlcnMpOwogZXh0ZXJuIHZvaWQgZXh0 dmFjX3N0YXRzX2VuZF9pZHgoUmVsYXRpb24gcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQg KnN0YXRzLAotCQkJCQkJCQkgTFZFeHRTdGF0Q291bnRlcnNJZHggKiBjb3VudGVycywgRXh0 VmFjUmVwb3J0ICogcmVwb3J0KTsKKwkJCQkJCQkJIExWRXh0U3RhdENvdW50ZXJzSWR4ICog Y291bnRlcnMsIFBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyAqIHJlcG9ydCk7CiAjZW5k aWYJCQkJCQkJLyogVkFDVVVNX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3Rh dC5oIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5kZXggZjNiZGMxYzM4ZGYuLjYxZDQ4OGYx YmY4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVk ZS9wZ3N0YXQuaApAQCAtMTE5LDU0ICsxMTksMTAwIEBAIHR5cGVkZWYgZW51bSBFeHRWYWNS ZXBvcnRUeXBlCiB7CiAJUEdTVEFUX0VYVFZBQ19JTlZBTElEID0gMCwKIAlQR1NUQVRfRVhU VkFDX1RBQkxFID0gMSwKLQlQR1NUQVRfRVhUVkFDX0lOREVYID0gMgotfSBFeHRWYWNSZXBv cnRUeXBlOworCVBHU1RBVF9FWFRWQUNfSU5ERVggPSAyLAorCVBHU1RBVF9FWFRWQUNfREIg PSAzLAorfQkJCUV4dFZhY1JlcG9ydFR5cGU7CiAKIC8qIC0tLS0tLS0tLS0KKyAqIFBnU3Rh dF9UYWJsZUNvdW50cwkJCVRoZSBhY3R1YWwgcGVyLXRhYmxlIGNvdW50cyBrZXB0IGJ5IGEg YmFja2VuZAogICoKLSAqIEV4dFZhY1JlcG9ydAorICogVGhpcyBzdHJ1Y3Qgc2hvdWxkIGNv bnRhaW4gb25seSBhY3R1YWwgZXZlbnQgY291bnRlcnMsIGJlY2F1c2Ugd2UgbWFrZSB1c2UK KyAqIG9mIHBnX21lbW9yeV9pc19hbGxfemVyb3MoKSB0byBkZXRlY3Qgd2hldGhlciB0aGVy ZSBhcmUgYW55IHN0YXRzIHVwZGF0ZXMKKyAqIHRvIGFwcGx5LgogICoKLSAqIEFkZGl0aW9u YWwgc3RhdGlzdGljcyBvZiB2YWN1dW0gcHJvY2Vzc2luZyBvdmVyIGEgcmVsYXRpb24uCi0g KiBwYWdlc19yZW1vdmVkIGlzIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHBoeXNpY2FsbHkg c2hyYW5rLAotICogaWYgYW55IChpZSB0aGUgY2hhbmdlIGluIGl0cyB0b3RhbCBzaXplIG9u IGRpc2spCi0gKiBwYWdlc19kZWxldGVkIHJlZmVyIHRvIGZyZWUgc3BhY2Ugd2l0aGluIHRo ZSBpbmRleCBmaWxlCisgKiBJdCBpcyBhIGNvbXBvbmVudCBvZiBQZ1N0YXRfVGFibGVTdGF0 dXMgKHdpdGhpbi1iYWNrZW5kIHN0YXRlKS4KKyAqCisgKiBOb3RlOiBmb3IgYSB0YWJsZSwg dHVwbGVzX3JldHVybmVkIGlzIHRoZSBudW1iZXIgb2YgdHVwbGVzIHN1Y2Nlc3NmdWxseQor ICogZmV0Y2hlZCBieSBoZWFwX2dldG5leHQsIHdoaWxlIHR1cGxlc19mZXRjaGVkIGlzIHRo ZSBudW1iZXIgb2YgdHVwbGVzCisgKiBzdWNjZXNzZnVsbHkgZmV0Y2hlZCBieSBoZWFwX2Zl dGNoIHVuZGVyIHRoZSBjb250cm9sIG9mIGJpdG1hcCBpbmRleHNjYW5zLgorICogRm9yIGFu IGluZGV4LCB0dXBsZXNfcmV0dXJuZWQgaXMgdGhlIG51bWJlciBvZiBpbmRleCBlbnRyaWVz IHJldHVybmVkIGJ5CisgKiB0aGUgaW5kZXggQU0sIHdoaWxlIHR1cGxlc19mZXRjaGVkIGlz IHRoZSBudW1iZXIgb2YgdHVwbGVzIHN1Y2Nlc3NmdWxseQorICogZmV0Y2hlZCBieSBoZWFw X2ZldGNoIHVuZGVyIHRoZSBjb250cm9sIG9mIHNpbXBsZSBpbmRleHNjYW5zIGZvciB0aGlz IGluZGV4LgorICoKKyAqIHR1cGxlc19pbnNlcnRlZC91cGRhdGVkL2RlbGV0ZWQvaG90X3Vw ZGF0ZWQvbmV3cGFnZV91cGRhdGVkIGNvdW50IGF0dGVtcHRlZAorICogYWN0aW9ucywgcmVn YXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB0cmFuc2FjdGlvbiBjb21taXR0ZWQuICBkZWx0YV9s aXZlX3R1cGxlcywKKyAqIGRlbHRhX2RlYWRfdHVwbGVzLCBhbmQgY2hhbmdlZF90dXBsZXMg YXJlIHNldCBkZXBlbmRpbmcgb24gY29tbWl0IG9yIGFib3J0LgorICogTm90ZSB0aGF0IGRl bHRhX2xpdmVfdHVwbGVzIGFuZCBkZWx0YV9kZWFkX3R1cGxlcyBjYW4gYmUgbmVnYXRpdmUh CiAgKiAtLS0tLS0tLS0tCiAgKi8KLXR5cGVkZWYgc3RydWN0IEV4dFZhY1JlcG9ydAordHlw ZWRlZiBzdHJ1Y3QgUGdTdGF0X1RhYmxlQ291bnRzCiB7Ci0JLyoKLQkgKiBudW1iZXIgb2Yg YmxvY2tzIG1pc3NlZCwgaGl0LCBkaXJ0aWVkIGFuZCB3cml0dGVuIGR1cmluZyBhIHZhY3V1 bSBvZgotCSAqIHNwZWNpZmljIHJlbGF0aW9uCi0JICovCisJUGdTdGF0X0NvdW50ZXIgbnVt c2NhbnM7CisKKwlQZ1N0YXRfQ291bnRlciB0dXBsZXNfcmV0dXJuZWQ7CisJUGdTdGF0X0Nv dW50ZXIgdHVwbGVzX2ZldGNoZWQ7CisKKwlQZ1N0YXRfQ291bnRlciB0dXBsZXNfaW5zZXJ0 ZWQ7CisJUGdTdGF0X0NvdW50ZXIgdHVwbGVzX3VwZGF0ZWQ7CisJUGdTdGF0X0NvdW50ZXIg dHVwbGVzX2RlbGV0ZWQ7CisJUGdTdGF0X0NvdW50ZXIgdHVwbGVzX2hvdF91cGRhdGVkOwor CVBnU3RhdF9Db3VudGVyIHR1cGxlc19uZXdwYWdlX3VwZGF0ZWQ7CisJYm9vbAkJdHJ1bmNk cm9wcGVkOworCisJUGdTdGF0X0NvdW50ZXIgZGVsdGFfbGl2ZV90dXBsZXM7CisJUGdTdGF0 X0NvdW50ZXIgZGVsdGFfZGVhZF90dXBsZXM7CisJUGdTdGF0X0NvdW50ZXIgY2hhbmdlZF90 dXBsZXM7CisKKwlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsKKwlQZ1N0YXRfQ291 bnRlciBibG9ja3NfaGl0OworCisJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF92aXNpYmxlX3Bh Z2VzOworCVBnU3RhdF9Db3VudGVyIHJldl9hbGxfZnJvemVuX3BhZ2VzOworfSBQZ1N0YXRf VGFibGVDb3VudHM7CisKK3R5cGVkZWYgc3RydWN0IFBnU3RhdF9Db21tb25Db3VudHMKK3sK KwkvKiBibG9ja3MgKi8KIAlpbnQ2NAkJdG90YWxfYmxrc19yZWFkOwogCWludDY0CQl0b3Rh bF9ibGtzX2hpdDsKIAlpbnQ2NAkJdG90YWxfYmxrc19kaXJ0aWVkOwogCWludDY0CQl0b3Rh bF9ibGtzX3dyaXR0ZW47CiAKLQkvKgotCSAqIGJsb2NrcyBtaXNzZWQgYW5kIGhpdCBmb3Ig anVzdCB0aGUgaGVhcCBkdXJpbmcgYSB2YWN1dW0gb2Ygc3BlY2lmaWMKLQkgKiByZWxhdGlv bgotCSAqLworCS8qIGhlYXAgYmxvY2tzICovCiAJaW50NjQJCWJsa3NfZmV0Y2hlZDsKIAlp bnQ2NAkJYmxrc19oaXQ7CiAKLQkvKiBWYWN1dW0gV0FMIHVzYWdlIHN0YXRzICovCi0JaW50 NjQJCXdhbF9yZWNvcmRzOwkvKiB3YWwgdXNhZ2U6IG51bWJlciBvZiBXQUwgcmVjb3JkcyAq LwotCWludDY0CQl3YWxfZnBpOwkJLyogd2FsIHVzYWdlOiBudW1iZXIgb2YgV0FMIGZ1bGwg cGFnZSBpbWFnZXMKLQkJCQkJCQkJICogcHJvZHVjZWQgKi8KLQl1aW50NjQJCXdhbF9ieXRl czsJCS8qIHdhbCB1c2FnZTogc2l6ZSBvZiBXQUwgcmVjb3JkcyBwcm9kdWNlZCAqLworCS8q IFdBTCAqLworCWludDY0CQl3YWxfcmVjb3JkczsKKwlpbnQ2NAkJd2FsX2ZwaTsKKwl1aW50 NjQJCXdhbF9ieXRlczsKIAotCS8qIFRpbWUgc3RhdHMuICovCi0JZG91YmxlCQlibGtfcmVh ZF90aW1lOwkvKiB0aW1lIHNwZW50IHJlYWRpbmcgcGFnZXMsIGluIG1zZWMgKi8KLQlkb3Vi bGUJCWJsa193cml0ZV90aW1lOyAvKiB0aW1lIHNwZW50IHdyaXRpbmcgcGFnZXMsIGluIG1z ZWMgKi8KLQlkb3VibGUJCWRlbGF5X3RpbWU7CQkvKiBob3cgbG9uZyB2YWN1dW0gc2xlcHQg aW4gdmFjdXVtIGRlbGF5Ci0JCQkJCQkJCSAqIHBvaW50LCBpbiBtc2VjICovCi0JZG91Ymxl CQl0b3RhbF90aW1lOwkJLyogdG90YWwgdGltZSBvZiBhIHZhY3V1bSBvcGVyYXRpb24sIGlu IG1zZWMgKi8KKwkvKiBUaW1lICovCisJZG91YmxlCQlibGtfcmVhZF90aW1lOworCWRvdWJs ZQkJYmxrX3dyaXRlX3RpbWU7CisJZG91YmxlCQlkZWxheV90aW1lOworCWRvdWJsZQkJdG90 YWxfdGltZTsKIAotCWludDY0CQl0dXBsZXNfZGVsZXRlZDsgLyogdHVwbGVzIGRlbGV0ZWQg YnkgdmFjdXVtICovCisJLyogdHVwbGVzICovCisJaW50NjQJCXR1cGxlc19kZWxldGVkOwog Ci0JaW50MzIJCXdyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CS8qIHRoZSBudW1iZXIgb2Yg dGltZXMgdG8gcHJldmVudAotCQkJCQkJCQkJCQkgKiB3cmFwYXJvdW5kIHByb2JsZW0gKi8K KwkvKiBmYWlsc2FmZSAqLworCWludDMyCQl3cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50Owor fQkJCVBnU3RhdF9Db21tb25Db3VudHM7CisKKy8qIC0tLS0tLS0tLS0KKyAqCisgKiBQZ1N0 YXRfVmFjdXVtUmVsYXRpb25Db3VudHMKKyAqCisgKiBBZGRpdGlvbmFsIHN0YXRpc3RpY3Mg b2YgdmFjdXVtIHByb2Nlc3Npbmcgb3ZlciBhIHJlbGF0aW9uLgorICogcGFnZXNfcmVtb3Zl ZCBpcyB0aGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBwaHlzaWNhbGx5IHNocmFuaywKKyAqIGlm IGFueSAoaWUgdGhlIGNoYW5nZSBpbiBpdHMgdG90YWwgc2l6ZSBvbiBkaXNrKQorICogcGFn ZXNfZGVsZXRlZCByZWZlciB0byBmcmVlIHNwYWNlIHdpdGhpbiB0aGUgaW5kZXggZmlsZQor ICogLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVmFjdXVtUmVsYXRp b25Db3VudHMKK3sKKwlQZ1N0YXRfQ29tbW9uQ291bnRzIGNvbW1vbjsKIAogCUV4dFZhY1Jl cG9ydFR5cGUgdHlwZTsJCS8qIGhlYXAsIGluZGV4LCBldGMuICovCiAKQEAgLTE4NSw2ICsy MzEsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgRXh0VmFjUmVwb3J0CiAJewogCQlzdHJ1Y3QKIAkJ eworCQkJaW50NjQJCXR1cGxlc19mcm96ZW47CS8qIHR1cGxlcyBmcm96ZW4gdXAgYnkgdmFj dXVtICovCisJCQlpbnQ2NAkJcmVjZW50bHlfZGVhZF90dXBsZXM7CS8qIGRlbGV0ZWQgdHVw bGVzIHRoYXQgYXJlCisJCQkJCQkJCQkJCQkgKiBzdGlsbCB2aXNpYmxlIHRvIHNvbWUKKwkJ CQkJCQkJCQkJCSAqIHRyYW5zYWN0aW9uICovCisJCQlpbnQ2NAkJbWlzc2VkX2RlYWRfdHVw bGVzOyAvKiB0dXBsZXMgbm90IHBydW5lZCBieSB2YWN1dW0gZHVlCisJCQkJCQkJCQkJCSAq IHRvIGZhaWx1cmUgdG8gZ2V0IGEgY2xlYW51cAorCQkJCQkJCQkJCQkgKiBsb2NrICovCiAJ CQlpbnQ2NAkJcGFnZXNfc2Nhbm5lZDsJLyogaGVhcCBwYWdlcyBleGFtaW5lZCAobm90IHNr aXBwZWQgYnkKIAkJCQkJCQkJCQkgKiBWTSkgKi8KIAkJCWludDY0CQlwYWdlc19yZW1vdmVk OwkvKiBoZWFwIHBhZ2VzIHJlbW92ZWQgYnkgdmFjdXVtCkBAIC0xOTIsMTAgKzI0NSw2IEBA IHR5cGVkZWYgc3RydWN0IEV4dFZhY1JlcG9ydAogCQkJaW50NjQJCXBhZ2VzX2Zyb3plbjsJ LyogcGFnZXMgbWFya2VkIGluIFZNIGFzIGZyb3plbiAqLwogCQkJaW50NjQJCXBhZ2VzX2Fs bF92aXNpYmxlOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMKIAkJCQkJCQkJCQkJICogYWxs LXZpc2libGUgKi8KLQkJCWludDY0CQl0dXBsZXNfZnJvemVuOwkvKiB0dXBsZXMgZnJvemVu IHVwIGJ5IHZhY3V1bSAqLwotCQkJaW50NjQJCXJlY2VudGx5X2RlYWRfdHVwbGVzOwkvKiBk ZWxldGVkIHR1cGxlcyB0aGF0IGFyZQotCQkJCQkJCQkJCQkJICogc3RpbGwgdmlzaWJsZSB0 byBzb21lCi0JCQkJCQkJCQkJCQkgKiB0cmFuc2FjdGlvbiAqLwogCQkJaW50NjQJCXZtX25l d19mcm96ZW5fcGFnZXM7CS8qIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcwogCQkJCQkJCQkJCQkJ ICogZnJvemVuICovCiAJCQlpbnQ2NAkJdm1fbmV3X3Zpc2libGVfcGFnZXM7CS8qIHBhZ2Vz IG1hcmtlZCBpbiBWTSBhcwpAQCAtMjAzLDkgKzI1Miw2IEBAIHR5cGVkZWYgc3RydWN0IEV4 dFZhY1JlcG9ydAogCQkJaW50NjQJCXZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczsJLyog cGFnZXMgbWFya2VkIGluIFZNIGFzCiAJCQkJCQkJCQkJCQkJCSAqIGFsbC12aXNpYmxlIGFu ZAogCQkJCQkJCQkJCQkJCQkgKiBmcm96ZW4gKi8KLQkJCWludDY0CQltaXNzZWRfZGVhZF90 dXBsZXM7IC8qIHR1cGxlcyBub3QgcHJ1bmVkIGJ5IHZhY3V1bSBkdWUKLQkJCQkJCQkJCQkJ ICogdG8gZmFpbHVyZSB0byBnZXQgYSBjbGVhbnVwCi0JCQkJCQkJCQkJCSAqIGxvY2sgKi8K IAkJCWludDY0CQltaXNzZWRfZGVhZF9wYWdlczsJLyogcGFnZXMgd2l0aCBtaXNzZWQgZGVh ZCB0dXBsZXMgKi8KIAkJCWludDY0CQlpbmRleF92YWN1dW1fY291bnQ7IC8qIG51bWJlciBv ZiBpbmRleCB2YWN1dW1pbmdzICovCiAJCX0JCQl0YWJsZTsKQEAgLTIxNCw2MCArMjYwLDIx IEBAIHR5cGVkZWYgc3RydWN0IEV4dFZhY1JlcG9ydAogCQkJaW50NjQJCXBhZ2VzX2RlbGV0 ZWQ7CS8qIG51bWJlciBvZiBwYWdlcyBkZWxldGVkIGJ5IHZhY3V1bSAqLwogCQl9CQkJaW5k ZXg7CiAJfSAvKiBwZXJfdHlwZV9zdGF0cyAqLyA7Ci19CQkJRXh0VmFjUmVwb3J0OworfQkJ CVBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50czsKIAotLyogLS0tLS0tLS0tLQotICogUGdT dGF0X1RhYmxlQ291bnRzCQkJVGhlIGFjdHVhbCBwZXItdGFibGUgY291bnRzIGtlcHQgYnkg YSBiYWNrZW5kCi0gKgotICogVGhpcyBzdHJ1Y3Qgc2hvdWxkIGNvbnRhaW4gb25seSBhY3R1 YWwgZXZlbnQgY291bnRlcnMsIGJlY2F1c2Ugd2UgbWFrZSB1c2UKLSAqIG9mIHBnX21lbW9y eV9pc19hbGxfemVyb3MoKSB0byBkZXRlY3Qgd2hldGhlciB0aGVyZSBhcmUgYW55IHN0YXRz IHVwZGF0ZXMKLSAqIHRvIGFwcGx5LgotICoKLSAqIEl0IGlzIGEgY29tcG9uZW50IG9mIFBn U3RhdF9UYWJsZVN0YXR1cyAod2l0aGluLWJhY2tlbmQgc3RhdGUpLgotICoKLSAqIE5vdGU6 IGZvciBhIHRhYmxlLCB0dXBsZXNfcmV0dXJuZWQgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMg c3VjY2Vzc2Z1bGx5Ci0gKiBmZXRjaGVkIGJ5IGhlYXBfZ2V0bmV4dCwgd2hpbGUgdHVwbGVz X2ZldGNoZWQgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMKLSAqIHN1Y2Nlc3NmdWxseSBmZXRj aGVkIGJ5IGhlYXBfZmV0Y2ggdW5kZXIgdGhlIGNvbnRyb2wgb2YgYml0bWFwIGluZGV4c2Nh bnMuCi0gKiBGb3IgYW4gaW5kZXgsIHR1cGxlc19yZXR1cm5lZCBpcyB0aGUgbnVtYmVyIG9m IGluZGV4IGVudHJpZXMgcmV0dXJuZWQgYnkKLSAqIHRoZSBpbmRleCBBTSwgd2hpbGUgdHVw bGVzX2ZldGNoZWQgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMgc3VjY2Vzc2Z1bGx5Ci0gKiBm ZXRjaGVkIGJ5IGhlYXBfZmV0Y2ggdW5kZXIgdGhlIGNvbnRyb2wgb2Ygc2ltcGxlIGluZGV4 c2NhbnMgZm9yIHRoaXMgaW5kZXguCi0gKgotICogdHVwbGVzX2luc2VydGVkL3VwZGF0ZWQv ZGVsZXRlZC9ob3RfdXBkYXRlZC9uZXdwYWdlX3VwZGF0ZWQgY291bnQgYXR0ZW1wdGVkCi0g KiBhY3Rpb25zLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHRyYW5zYWN0aW9uIGNvbW1p dHRlZC4gIGRlbHRhX2xpdmVfdHVwbGVzLAotICogZGVsdGFfZGVhZF90dXBsZXMsIGFuZCBj aGFuZ2VkX3R1cGxlcyBhcmUgc2V0IGRlcGVuZGluZyBvbiBjb21taXQgb3IgYWJvcnQuCi0g KiBOb3RlIHRoYXQgZGVsdGFfbGl2ZV90dXBsZXMgYW5kIGRlbHRhX2RlYWRfdHVwbGVzIGNh biBiZSBuZWdhdGl2ZSEKLSAqIC0tLS0tLS0tLS0KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgUGdT dGF0X1RhYmxlQ291bnRzCit0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVmFjdXVtUmVsYXRpb25T dGF0dXMKIHsKLQlQZ1N0YXRfQ291bnRlciBudW1zY2FuczsKLQotCVBnU3RhdF9Db3VudGVy IHR1cGxlc19yZXR1cm5lZDsKLQlQZ1N0YXRfQ291bnRlciB0dXBsZXNfZmV0Y2hlZDsKLQot CVBnU3RhdF9Db3VudGVyIHR1cGxlc19pbnNlcnRlZDsKLQlQZ1N0YXRfQ291bnRlciB0dXBs ZXNfdXBkYXRlZDsKLQlQZ1N0YXRfQ291bnRlciB0dXBsZXNfZGVsZXRlZDsKLQlQZ1N0YXRf Q291bnRlciB0dXBsZXNfaG90X3VwZGF0ZWQ7Ci0JUGdTdGF0X0NvdW50ZXIgdHVwbGVzX25l d3BhZ2VfdXBkYXRlZDsKLQlib29sCQl0cnVuY2Ryb3BwZWQ7Ci0KLQlQZ1N0YXRfQ291bnRl ciBkZWx0YV9saXZlX3R1cGxlczsKLQlQZ1N0YXRfQ291bnRlciBkZWx0YV9kZWFkX3R1cGxl czsKLQlQZ1N0YXRfQ291bnRlciBjaGFuZ2VkX3R1cGxlczsKLQotCVBnU3RhdF9Db3VudGVy IGJsb2Nrc19mZXRjaGVkOwotCVBnU3RhdF9Db3VudGVyIGJsb2Nrc19oaXQ7Ci0KLQlQZ1N0 YXRfQ291bnRlciByZXZfYWxsX3Zpc2libGVfcGFnZXM7Ci0JUGdTdGF0X0NvdW50ZXIgcmV2 X2FsbF9mcm96ZW5fcGFnZXM7CisJT2lkCQkJaWQ7CQkJCS8qIHRhYmxlJ3MgT0lEICovCisJ Ym9vbAkJc2hhcmVkOwkJCS8qIGlzIGl0IGEgc2hhcmVkIGNhdGFsb2c/ICovCisJUGdTdGF0 X1ZhY3V1bVJlbGF0aW9uQ291bnRzIGNvdW50czsgLyogZXZlbnQgY291bnRzIHRvIGJlIHNl bnQgKi8KK30JCQlQZ1N0YXRfVmFjdXVtUmVsYXRpb25TdGF0dXM7CiAKLQkvKgotCSAqIEFk ZGl0aW9uYWwgY3VtdWxhdGl2ZSBzdGF0IG9uIHZhY3V1bSBvcGVyYXRpb25zLiBVc2UgYW4g ZXhwZW5zaXZlCi0JICogc3RydWN0dXJlIGFzIGFuIGFic3RyYWN0aW9uIGZvciBkaWZmZXJl bnQgdHlwZXMgb2YgcmVsYXRpb25zLgotCSAqLwotCUV4dFZhY1JlcG9ydCB2YWN1dW1fZXh0 OwotfSBQZ1N0YXRfVGFibGVDb3VudHM7Cit0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVmFjdXVt REJDb3VudHMKK3sKKwlPaWQJCQlkYmppZDsKKwlQZ1N0YXRfQ29tbW9uQ291bnRzIGNvbW1v bjsKKwlpbnQzMgkJZXJyb3JzOworfQkJCVBnU3RhdF9WYWN1dW1EQkNvdW50czsKIAogLyog LS0tLS0tLS0tLQogICogUGdTdGF0X1RhYmxlU3RhdHVzCQkJUGVyLXRhYmxlIHN0YXR1cyB3 aXRoaW4gYSBiYWNrZW5kCkBAIC0yOTMsNiArMzAwLDEyIEBAIHR5cGVkZWYgc3RydWN0IFBn U3RhdF9UYWJsZVN0YXR1cwogCVJlbGF0aW9uCXJlbGF0aW9uOwkJLyogcmVsIHRoYXQgaXMg dXNpbmcgdGhpcyBlbnRyeSAqLwogfSBQZ1N0YXRfVGFibGVTdGF0dXM7CiAKK3R5cGVkZWYg c3RydWN0IFBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmcKK3sKKwlPaWQJCQlpZDsJCQkJ LyogdGFibGUncyBPSUQgKi8KKwlQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgY291bnRz OyAvKiBldmVudCBjb3VudHMgdG8gYmUgc2VudCAqLworfQkJCVBnU3RhdF9SZWxhdGlvblZh Y3V1bVBlbmRpbmc7CisKIC8qIC0tLS0tLS0tLS0KICAqIFBnU3RhdF9UYWJsZVhhY3RTdGF0 dXMJCVBlci10YWJsZSwgcGVyLXN1YnRyYW5zYWN0aW9uIHN0YXR1cwogICogLS0tLS0tLS0t LQpAQCAtNDg5LDggKzUwMiw2IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0REJFbnRy eQogCVBnU3RhdF9Db3VudGVyIHBhcmFsbGVsX3dvcmtlcnNfbGF1bmNoZWQ7CiAKIAlUaW1l c3RhbXBUeiBzdGF0X3Jlc2V0X3RpbWVzdGFtcDsKLQotCUV4dFZhY1JlcG9ydCB2YWN1dW1f ZXh0OwkvKiBleHRlbmRlZCB2YWN1dW0gc3RhdGlzdGljcyAqLwogfSBQZ1N0YXRfU3RhdERC RW50cnk7CiAKIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0RnVuY0VudHJ5CkBAIC01Nzgs OCArNTg5LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXRUYWJFbnRyeQogCiAJUGdT dGF0X0NvdW50ZXIgcmV2X2FsbF92aXNpYmxlX3BhZ2VzOwogCVBnU3RhdF9Db3VudGVyIHJl dl9hbGxfZnJvemVuX3BhZ2VzOwotCi0JRXh0VmFjUmVwb3J0IHZhY3V1bV9leHQ7CiB9IFBn U3RhdF9TdGF0VGFiRW50cnk7CiAKIC8qIC0tLS0tLQpAQCAtNzg4LDcgKzc5Nyw3IEBAIGV4 dGVybiB2b2lkIHBnc3RhdF91bmxpbmtfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIAogZXh0 ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF92YWN1dW0oUmVsYXRpb24gcmVsLCBQZ1N0YXRfQ291 bnRlciBsaXZldHVwbGVzLAogCQkJCQkJCQkgUGdTdGF0X0NvdW50ZXIgZGVhZHR1cGxlcywK LQkJCQkJCQkJIFRpbWVzdGFtcFR6IHN0YXJ0dGltZSwgRXh0VmFjUmVwb3J0ICogcGFyYW1z KTsKKwkJCQkJCQkJIFRpbWVzdGFtcFR6IHN0YXJ0dGltZSk7CiBleHRlcm4gdm9pZCBwZ3N0 YXRfcmVwb3J0X2FuYWx5emUoUmVsYXRpb24gcmVsLAogCQkJCQkJCQkgIFBnU3RhdF9Db3Vu dGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRlYWR0dXBsZXMsCiAJCQkJCQkJCSAg Ym9vbCByZXNldGNvdW50ZXIsIFRpbWVzdGFtcFR6IHN0YXJ0dGltZSk7CkBAIC05MjQsNiAr OTMzLDE2IEBAIGV4dGVybiBpbnQJcGdzdGF0X2dldF90cmFuc2FjdGlvbmFsX2Ryb3BzKGJv b2wgaXNDb21taXQsIHN0cnVjdCB4bF94YWN0X3N0YXRzX2l0CiBleHRlcm4gdm9pZCBwZ3N0 YXRfZXhlY3V0ZV90cmFuc2FjdGlvbmFsX2Ryb3BzKGludCBuZHJvcHMsIHN0cnVjdCB4bF94 YWN0X3N0YXRzX2l0ZW0gKml0ZW1zLCBib29sIGlzX3JlZG8pOwogCiAKK2V4dGVybiB2b2lk IHBnc3RhdF9kcm9wX3ZhY3V1bV9kYXRhYmFzZShPaWQgZGF0YWJhc2VpZCk7CitleHRlcm4g dm9pZCBwZ3N0YXRfdmFjdXVtX3JlbGF0aW9uX2RlbGV0ZV9wZW5kaW5nX2NiKE9pZCByZWxp ZCk7CitleHRlcm4gdm9pZAorCQkJcGdzdGF0X3JlcG9ydF92YWN1dW1fZXh0c3RhdHMoT2lk IHRhYmxlb2lkLCBib29sIHNoYXJlZCwKKwkJCQkJCQkJCQkgIFBnU3RhdF9WYWN1dW1SZWxh dGlvbkNvdW50cyAqIHBhcmFtcyk7CitleHRlcm4gUGdTdGF0X1JlbGF0aW9uVmFjdXVtUGVu ZGluZyAqIGZpbmRfdmFjdXVtX3JlbGF0aW9uX2VudHJ5KE9pZCByZWxpZCk7CitleHRlcm4g UGdTdGF0X1ZhY3V1bURCQ291bnRzICogcGdzdGF0X3ByZXBfdmFjdXVtX2RhdGFiYXNlX3Bl bmRpbmcoT2lkIGRib2lkKTsKK2V4dGVybiBQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMg KiBwZ3N0YXRfZmV0Y2hfc3RhdF92YWN1dW1fdGFiZW50cnkoT2lkIHJlbGlkLCBPaWQgZGJp ZCk7CitQZ1N0YXRfVmFjdXVtREJDb3VudHMgKnBnc3RhdF9mZXRjaF9zdGF0X3ZhY3V1bV9k YmVudHJ5KE9pZCBkYmlkKTsKKwogLyoKICAqIEZ1bmN0aW9ucyBpbiBwZ3N0YXRfd2FsLmMK ICAqLwpAQCAtOTQwLDcgKzk1OSw4IEBAIGV4dGVybiBQZ1N0YXRfV2FsU3RhdHMgKnBnc3Rh dF9mZXRjaF9zdGF0X3dhbCh2b2lkKTsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHBnc3Rh dF90cmFja19jb3VudHM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IHBnc3RhdF90cmFja19m dW5jdGlvbnM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IHBnc3RhdF9mZXRjaF9jb25zaXN0 ZW5jeTsKLQorZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgcGdzdGF0X3RyYWNrX3ZhY3V1bV9z dGF0aXN0aWNzOworZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgcGdzdGF0X3RyYWNrX3ZhY3V1 bV9zdGF0aXN0aWNzX2Zvcl9yZWxhdGlvbnM7CiAKIC8qCiAgKiBWYXJpYWJsZXMgaW4gcGdz dGF0X2Jnd3JpdGVyLmMKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9p bnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFsLmgKaW5kZXgg N2RmZmFiOGRiZGQuLjRhYmU3MGNiNTRlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGls cy9wZ3N0YXRfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50 ZXJuYWwuaApAQCAtNTAwLDYgKzUwMCwxOCBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRTaGFy ZWRfUmVsYXRpb24KIAlQZ1N0YXRfU3RhdFRhYkVudHJ5IHN0YXRzOwogfSBQZ1N0YXRTaGFy ZWRfUmVsYXRpb247CiAKK3R5cGVkZWYgc3RydWN0IFBnU3RhdFNoYXJlZF9WYWN1dW1EQgor eworCVBnU3RhdFNoYXJlZF9Db21tb24gaGVhZGVyOworCVBnU3RhdF9WYWN1dW1EQkNvdW50 cyBzdGF0czsKK30JCQlQZ1N0YXRTaGFyZWRfVmFjdXVtREI7CisKK3R5cGVkZWYgc3RydWN0 IFBnU3RhdFNoYXJlZF9WYWN1dW1SZWxhdGlvbgoreworCVBnU3RhdFNoYXJlZF9Db21tb24g aGVhZGVyOworCVBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyBzdGF0czsKK30JCQlQZ1N0 YXRTaGFyZWRfVmFjdXVtUmVsYXRpb247CisKIHR5cGVkZWYgc3RydWN0IFBnU3RhdFNoYXJl ZF9GdW5jdGlvbgogewogCVBnU3RhdFNoYXJlZF9Db21tb24gaGVhZGVyOwpAQCAtNjc4LDYg KzY5MCw5IEBAIGV4dGVybiBQZ1N0YXRfRW50cnlSZWYgKnBnc3RhdF9mZXRjaF9wZW5kaW5n X2VudHJ5KFBnU3RhdF9LaW5kIGtpbmQsCiBleHRlcm4gdm9pZCAqcGdzdGF0X2ZldGNoX2Vu dHJ5KFBnU3RhdF9LaW5kIGtpbmQsIE9pZCBkYm9pZCwgdWludDY0IG9iamlkKTsKIGV4dGVy biB2b2lkIHBnc3RhdF9zbmFwc2hvdF9maXhlZChQZ1N0YXRfS2luZCBraW5kKTsKIAorYm9v bAkJcGdzdGF0X3ZhY3V1bV9kYl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3Jl ZiwgYm9vbCBub3dhaXQpOworZXh0ZXJuIGJvb2wgcGdzdGF0X3ZhY3V1bV9yZWxhdGlvbl9m bHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpOworCiAK IC8qCiAgKiBGdW5jdGlvbnMgaW4gcGdzdGF0X2FyY2hpdmVyLmMKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9raW5kLmggYi9zcmMvaW5jbHVkZS91dGlscy9wZ3N0 YXRfa2luZC5oCmluZGV4IGViNWYwYjNhZTZkLi41MmU4ODRmYmY4YiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2tpbmQuaAorKysgYi9zcmMvaW5jbHVkZS91dGls cy9wZ3N0YXRfa2luZC5oCkBAIC0zOCw5ICszOCwxMSBAQAogI2RlZmluZSBQR1NUQVRfS0lO RF9JTwkxMAogI2RlZmluZSBQR1NUQVRfS0lORF9TTFJVCTExCiAjZGVmaW5lIFBHU1RBVF9L SU5EX1dBTAkxMgorI2RlZmluZSBQR1NUQVRfS0lORF9WQUNVVU1fREIJMTMKKyNkZWZpbmUg UEdTVEFUX0tJTkRfVkFDVVVNX1JFTEFUSU9OCTE0CiAKICNkZWZpbmUgUEdTVEFUX0tJTkRf QlVJTFRJTl9NSU4gUEdTVEFUX0tJTkRfREFUQUJBU0UKLSNkZWZpbmUgUEdTVEFUX0tJTkRf QlVJTFRJTl9NQVggUEdTVEFUX0tJTkRfV0FMCisjZGVmaW5lIFBHU1RBVF9LSU5EX0JVSUxU SU5fTUFYIFBHU1RBVF9LSU5EX1ZBQ1VVTV9SRUxBVElPTgogI2RlZmluZSBQR1NUQVRfS0lO RF9CVUlMVElOX1NJWkUgKFBHU1RBVF9LSU5EX0JVSUxUSU5fTUFYICsgMSkKIAogLyogQ3Vz dG9tIHN0YXRzIGtpbmRzICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1 MF92YWN1dW1fZXh0ZW5kaW5nX2Jhc2ljX3Rlc3QucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90 LzA1MF92YWN1dW1fZXh0ZW5kaW5nX2Jhc2ljX3Rlc3QucGwKaW5kZXggYmQzY2I1NDRlMzAu LmUyZmQ1NDFmZDg5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF92YWN1 dW1fZXh0ZW5kaW5nX2Jhc2ljX3Rlc3QucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8w NTBfdmFjdXVtX2V4dGVuZGluZ19iYXNpY190ZXN0LnBsCkBAIC0yOCw2ICsyOCw3IEBAICRu b2RlLT5pbml0OwogIyBDb25maWd1cmUgdGhlIHNlcnZlciBsb2dnaW5nIGxldmVsIGZvciB0 aGUgdGVzdAogJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCBxewogICAg IGxvZ19taW5fbWVzc2FnZXMgPSBub3RpY2UKKyAgICB0cmFja192YWN1dW1fc3RhdGlzdGlj cyA9IG9uCiB9KTsKIAogbXkgJHN0ZGVycjsKQEAgLTY0LDggKzY1LDkgQEAgJG5vZGUtPnNh ZmVfcHNxbCgkZGJuYW1lLCBxewogCiAkbm9kZS0+c2FmZV9wc3FsKAogICAgICRkYm5hbWUs Ci0gICAgIkNSRUFURSBUQUJMRSB2ZXN0YXQgKHggaW50IFBSSU1BUlkgS0VZKQorICAgICJD UkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkKICAgICAgICAgIFdJVEggKGF1dG92YWN1dW1f ZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKKyAgICAgY3JlYXRlIGluZGV4IHZl c3RhdF9wa2V5IG9uIHZlc3RhdCAoeCk7CiAgICAgIElOU0VSVCBJTlRPIHZlc3RhdCBTRUxF Q1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAkc2l6ZV90YWIpIEFTIGcoeCk7CiAgICAg IEFOQUxZWkUgdmVzdGF0OyIKICk7CkBAIC0xMTUsNyArMTE3LDcgQEAgc3ViIHdhaXRfZm9y X3ZhY3V1bV9zdGF0cyB7CiAgICAgICAgICAgICAgICAgQU5ECiAgICAgICAgICAgICAgICAg KFNFTEVDVCAodHVwbGVzX2RlbGV0ZWQgPiAkaWR4X3R1cGxlc19kZWxldGVkIEFORCB3YWxf cmVjb3JkcyA+ICRpZHhfd2FsX3JlY29yZHMpCiAgICAgICAgICAgICAgICAgICBGUk9NIHBn X3N0YXRfdmFjdXVtX2luZGV4ZXMKLSAgICAgICAgICAgICAgICAgIFdIRVJFIHJlbG5hbWUg PSAndmVzdGF0X3BrZXknKTsiCisgICAgICAgICAgICAgICAgICBXSEVSRSBpbmRleHJlbG5h bWUgPSAndmVzdGF0X3BrZXknKTsiCiAgICAgICAgICk7CiAKICAgICAgICAgcmV0dXJuIDEg aWYgKCRyZXN1bHRfcXVlcnkgZXEgJ3QnKTsKQEAgLTE4Myw3ICsxODUsNyBAQCBzdWIgZmV0 Y2hfdmFjdXVtX3N0YXRzIHsKICAgICAgICAgJGRibmFtZSwKICAgICAgICAgIlNFTEVDVCB0 dXBsZXNfZGVsZXRlZCwgcGFnZXNfZGVsZXRlZCwgd2FsX3JlY29yZHMsIHdhbF9ieXRlcywg d2FsX2ZwaQogICAgICAgICAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMKLSAgICAg ICAgICBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JzsiCisgICAgICAgICAgV0hFUkUg aW5kZXhyZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JzsiCiAgICAgKTsKIAogICAgICRpbmRleF9i YXNlX3N0YXRpc3RpY3MgPX4gcy9ccypcfFxzKi8gL2c7ICAgIyB0cmFuc2Zvcm0gIiB8ICIg aW50byBzcGFjZQpAQCAtMzIxLDcgKzMyMyw3IEBAIHN1YiBmZXRjaF9lcnJvcl9iYXNlX2lk eF92YWN1dW1fc3RhdGlzdGljcyB7CiAgICAgJGRibmFtZSwKICAgICAiU0VMRUNUIHR1cGxl c19kZWxldGVkLCBwYWdlc19kZWxldGVkCiAgICAgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV9p bmRleGVzCi0gICAgICBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JzsiCisgICAgICBX SEVSRSBpbmRleHJlbG5hbWUgPSAndmVzdGF0X3BrZXknOyIKICAgICApOwogICAgICRiYXNl X3N0YXRpc3RpY3MgPX4gcy9ccypcfFxzKi8gL2c7ICAgIyB0cmFuc2Zvcm0gIiB8ICIgaW4g c3BhY2UKICAgICBteSAoJGN1cl90dXBsZXNfZGVsZXRlZCwgJGN1cl9wYWdlc19kZWxldGVk KSA9IHNwbGl0IC9ccysvLCAkYmFzZV9zdGF0aXN0aWNzOwpAQCAtMzQzLDcgKzM0NSw3IEBA IHN1YiBmZXRjaF9lcnJvcl93YWxfaWR4X3ZhY3V1bV9zdGF0aXN0aWNzIHsKICAgICAgICAg JGRibmFtZSwKICAgICAgICAgIlNFTEVDVCB3YWxfcmVjb3Jkcywgd2FsX2J5dGVzLCB3YWxf ZnBpCiAgICAgICAgIEZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcwotICAgICAgICBXSEVS RSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JzsiCisgICAgICAgIFdIRVJFIGluZGV4cmVsbmFt ZSA9ICd2ZXN0YXRfcGtleSc7IgogICAgICk7CiAKICAgICAkd2FsX3JhdyA9fiBzL1xzKlx8 XHMqLyAvZzsgICAjIHRyYW5zZm9ybSAiIHwgIiBpbiBzcGFjZQpAQCAtNzA3LDcgKzcwOSw3 IEBAICRiYXNlX3N0YXRzID0gJG5vZGUtPnNhZmVfcHNxbCgKICAgICAncG9zdGdyZXMnLAog ICAgICJTRUxFQ1QgY291bnQoKikgPSAwCiAgICAgIEZST00gcGdfc3RhdF92YWN1dW1faW5k ZXhlcwotICAgICBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JzsiCisgICAgIFdIRVJF IGluZGV4cmVsbmFtZSA9ICd2ZXN0YXRfcGtleSc7IgogKTsKIG9rKCRiYXNlX3N0YXRzIGVx ICd0JywgJ2NoZWNrIHRoZSBwcmludGluZyBpbmRleCB2YWN1dW0gZXh0ZW5kZWQgc3RhdGlz dGljcyBmcm9tIGFub3RoZXIgZGF0YWJhc2UgYXJlIG5vdCBhdmFpbGFibGUnKTsKIApAQCAt NzQyLDYgKzc0NCw5IEBAICRyZWxvaWQgPSAkbm9kZS0+c2FmZV9wc3FsKAogICAgIH0KICk7 CiAKKyMgUnVuIFZBQ1VVTSBvbiBzaGFyZWQgdGFibGUgdG8gZW5zdXJlIHN0YXRzIGVudHJ5 IGlzIGNyZWF0ZWQKKyRub2RlLT5zYWZlX3BzcWwoJGRibmFtZSwgIlZBQ1VVTSBwZ19zaGRl cGVuZDsiKTsKKwogIyBDaGVjayBpZiB3ZSBjYW4gZ2V0IHZhY3V1bSBzdGF0aXN0aWNzIGZv ciBjbHVzdGVyIHJlbGF0aW9ucyAoZGJpZCA9IDApCiAkYmFzZV9zdGF0cyA9ICRub2RlLT5z YWZlX3BzcWwoCiAgICAgJGRibmFtZSwKQEAgLTc2MCw2ICs3NjUsMTAgQEAgbXkgJGluZG9p ZCA9ICRub2RlLT5zYWZlX3BzcWwoCiAgICAgfQogKTsKIAorIyBSdW4gVkFDVVVNIG9uIHNo YXJlZCBpbmRleCB0byBlbnN1cmUgc3RhdHMgZW50cnkgaXMgY3JlYXRlZAorIyBOb3RlOiBW QUNVVU0gb24gdGhlIHRhYmxlIHdpbGwgYWxzbyB2YWN1dW0gaXRzIGluZGV4ZXMKKyRub2Rl LT5zYWZlX3BzcWwoJGRibmFtZSwgIlZBQ1VVTSBwZ19zaGRlcGVuZDsiKTsKKwogJGJhc2Vf c3RhdHMgPSAkbm9kZS0+c2FmZV9wc3FsKAogICAgICRkYm5hbWUsCiAgICAgcXF7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MV92YWN1dW1fZXh0ZW5kaW5nX2ZyZWV6 ZV90ZXN0LnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTFfdmFjdXVtX2V4dGVuZGluZ19m cmVlemVfdGVzdC5wbAppbmRleCA3NTI4ZjIwMDk4Yi4uMmExYzUwNmEyMmYgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUxX3ZhY3V1bV9leHRlbmRpbmdfZnJlZXplX3Rl c3QucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTFfdmFjdXVtX2V4dGVuZGluZ19m cmVlemVfdGVzdC5wbApAQCAtMzcsNiArMzcsNyBAQCAkbm9kZS0+YXBwZW5kX2NvbmYoJ3Bv c3RncmVzcWwuY29uZicsIHF7CiAJdmFjdXVtX21heF9lYWdlcl9mcmVlemVfZmFpbHVyZV9y YXRlID0gMS4wCiAJdmFjdXVtX2ZhaWxzYWZlX2FnZSA9IDAKIAl2YWN1dW1fbXVsdGl4YWN0 X2ZhaWxzYWZlX2FnZSA9IDAKKyAgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgPSBvbgogfSk7 CiAKICRub2RlLT5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApp bmRleCBiNjI3Yzg1ZTMzMi4uNGU4YjhiOGEyYjEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnVsZXMub3V0CkBAIC0yMzMwLDc3ICsyMzMwLDgxIEBAIHBnX3N0YXRfdXNlcl90YWJs ZXN8IFNFTEVDVCByZWxpZCwKICAgICByZXZfYWxsX3Zpc2libGVfcGFnZXMKICAgIEZST00g cGdfc3RhdF9hbGxfdGFibGVzCiAgIFdIRVJFICgoc2NoZW1hbmFtZSA8PiBBTEwgKEFSUkFZ WydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgQU5E IChzY2hlbWFuYW1lICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7Ci1wZ19zdGF0X3ZhY3V1bV9k YXRhYmFzZXwgU0VMRUNUIGRiLm9pZCBBUyBkYm9pZCwKLSAgICBkYi5kYXRuYW1lIEFTIGRi bmFtZSwKLSAgICBzdGF0cy5kYl9ibGtzX3JlYWQsCi0gICAgc3RhdHMuZGJfYmxrc19oaXQs Ci0gICAgc3RhdHMudG90YWxfYmxrc19kaXJ0aWVkLAotICAgIHN0YXRzLnRvdGFsX2Jsa3Nf d3JpdHRlbiwKLSAgICBzdGF0cy53YWxfcmVjb3JkcywKLSAgICBzdGF0cy53YWxfZnBpLAot ICAgIHN0YXRzLndhbF9ieXRlcywKLSAgICBzdGF0cy5ibGtfcmVhZF90aW1lLAotICAgIHN0 YXRzLmJsa193cml0ZV90aW1lLAotICAgIHN0YXRzLmRlbGF5X3RpbWUsCi0gICAgc3RhdHMu dG90YWxfdGltZSwKLSAgICBzdGF0cy53cmFwYXJvdW5kX2ZhaWxzYWZlLAotICAgIHN0YXRz LmVycm9ycwotICAgRlJPTSBwZ19kYXRhYmFzZSBkYiwKLSAgICBMQVRFUkFMIHBnX3N0YXRf Z2V0X3ZhY3V1bV9kYXRhYmFzZShkYi5vaWQpIHN0YXRzKGRib2lkLCBkYl9ibGtzX3JlYWQs IGRiX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQsIHRvdGFsX2Jsa3Nfd3JpdHRlbiwg d2FsX3JlY29yZHMsIHdhbF9mcGksIHdhbF9ieXRlcywgYmxrX3JlYWRfdGltZSwgYmxrX3dy aXRlX3RpbWUsIGRlbGF5X3RpbWUsIHRvdGFsX3RpbWUsIHdyYXBhcm91bmRfZmFpbHNhZmUs IGVycm9ycyk7Ci1wZ19zdGF0X3ZhY3V1bV9pbmRleGVzfCBTRUxFQ1QgcmVsLm9pZCBBUyBy ZWxpZCwKLSAgICBucy5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCi0gICAgcmVsLnJlbG5hbWUs Ci0gICAgc3RhdHMudG90YWxfYmxrc19yZWFkLAotICAgIHN0YXRzLnRvdGFsX2Jsa3NfaGl0 LAotICAgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCwKLSAgICBzdGF0cy50b3RhbF9ibGtz X3dyaXR0ZW4sCi0gICAgc3RhdHMucmVsX2Jsa3NfcmVhZCwKLSAgICBzdGF0cy5yZWxfYmxr c19oaXQsCi0gICAgc3RhdHMucGFnZXNfZGVsZXRlZCwKLSAgICBzdGF0cy50dXBsZXNfZGVs ZXRlZCwKLSAgICBzdGF0cy53YWxfcmVjb3JkcywKLSAgICBzdGF0cy53YWxfZnBpLAotICAg IHN0YXRzLndhbF9ieXRlcywKLSAgICBzdGF0cy5ibGtfcmVhZF90aW1lLAotICAgIHN0YXRz LmJsa193cml0ZV90aW1lLAotICAgIHN0YXRzLmRlbGF5X3RpbWUsCi0gICAgc3RhdHMudG90 YWxfdGltZQotICAgRlJPTSAocGdfY2xhc3MgcmVsCi0gICAgIEpPSU4gcGdfbmFtZXNwYWNl IG5zIE9OICgobnMub2lkID0gcmVsLnJlbG5hbWVzcGFjZSkpKSwKLSAgICBMQVRFUkFMIHBn X3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzKHJlbC5vaWQpIHN0YXRzKHJlbGlkLCB0b3RhbF9i bGtzX3JlYWQsIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQsIHRvdGFsX2Js a3Nfd3JpdHRlbiwgcmVsX2Jsa3NfcmVhZCwgcmVsX2Jsa3NfaGl0LCBwYWdlc19kZWxldGVk LCB0dXBsZXNfZGVsZXRlZCwgd2FsX3JlY29yZHMsIHdhbF9mcGksIHdhbF9ieXRlcywgYmxr X3JlYWRfdGltZSwgYmxrX3dyaXRlX3RpbWUsIGRlbGF5X3RpbWUsIHRvdGFsX3RpbWUpCi0g IFdIRVJFIChyZWwucmVsa2luZCA9ICdpJzo6ImNoYXIiKTsKLXBnX3N0YXRfdmFjdXVtX3Rh Ymxlc3wgU0VMRUNUIG5zLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKLSAgICByZWwucmVsbmFt ZSwKLSAgICBzdGF0cy5yZWxpZCwKLSAgICBzdGF0cy50b3RhbF9ibGtzX3JlYWQsCi0gICAg c3RhdHMudG90YWxfYmxrc19oaXQsCi0gICAgc3RhdHMudG90YWxfYmxrc19kaXJ0aWVkLAot ICAgIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiwKLSAgICBzdGF0cy5yZWxfYmxrc19yZWFk LAotICAgIHN0YXRzLnJlbF9ibGtzX2hpdCwKLSAgICBzdGF0cy5wYWdlc19zY2FubmVkLAot ICAgIHN0YXRzLnBhZ2VzX3JlbW92ZWQsCi0gICAgc3RhdHMudm1fbmV3X2Zyb3plbl9wYWdl cywKLSAgICBzdGF0cy52bV9uZXdfdmlzaWJsZV9wYWdlcywKLSAgICBzdGF0cy52bV9uZXdf dmlzaWJsZV9mcm96ZW5fcGFnZXMsCi0gICAgc3RhdHMubWlzc2VkX2RlYWRfcGFnZXMsCi0g ICAgc3RhdHMudHVwbGVzX2RlbGV0ZWQsCi0gICAgc3RhdHMudHVwbGVzX2Zyb3plbiwKLSAg ICBzdGF0cy5yZWNlbnRseV9kZWFkX3R1cGxlcywKLSAgICBzdGF0cy5taXNzZWRfZGVhZF90 dXBsZXMsCi0gICAgc3RhdHMud3JhcGFyb3VuZF9mYWlsc2FmZSwKLSAgICBzdGF0cy5pbmRl eF92YWN1dW1fY291bnQsCi0gICAgc3RhdHMud2FsX3JlY29yZHMsCi0gICAgc3RhdHMud2Fs X2ZwaSwKLSAgICBzdGF0cy53YWxfYnl0ZXMsCi0gICAgc3RhdHMuYmxrX3JlYWRfdGltZSwK LSAgICBzdGF0cy5ibGtfd3JpdGVfdGltZSwKLSAgICBzdGF0cy5kZWxheV90aW1lLAotICAg IHN0YXRzLnRvdGFsX3RpbWUKLSAgIEZST00gKHBnX2NsYXNzIHJlbAotICAgICBKT0lOIHBn X25hbWVzcGFjZSBucyBPTiAoKG5zLm9pZCA9IHJlbC5yZWxuYW1lc3BhY2UpKSksCi0gICAg TEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKHJlbC5vaWQpIHN0YXRzKHJlbGlk LCB0b3RhbF9ibGtzX3JlYWQsIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQs IHRvdGFsX2Jsa3Nfd3JpdHRlbiwgcmVsX2Jsa3NfcmVhZCwgcmVsX2Jsa3NfaGl0LCBwYWdl c19zY2FubmVkLCBwYWdlc19yZW1vdmVkLCB2bV9uZXdfZnJvemVuX3BhZ2VzLCB2bV9uZXdf dmlzaWJsZV9wYWdlcywgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLCBtaXNzZWRfZGVh ZF9wYWdlcywgdHVwbGVzX2RlbGV0ZWQsIHR1cGxlc19mcm96ZW4sIHJlY2VudGx5X2RlYWRf dHVwbGVzLCBtaXNzZWRfZGVhZF90dXBsZXMsIHdyYXBhcm91bmRfZmFpbHNhZmUsIGluZGV4 X3ZhY3V1bV9jb3VudCwgd2FsX3JlY29yZHMsIHdhbF9mcGksIHdhbF9ieXRlcywgYmxrX3Jl YWRfdGltZSwgYmxrX3dyaXRlX3RpbWUsIGRlbGF5X3RpbWUsIHRvdGFsX3RpbWUpCi0gIFdI RVJFIChyZWwucmVsa2luZCA9ICdyJzo6ImNoYXIiKTsKK3BnX3N0YXRfdmFjdXVtX2RhdGFi YXNlfCBTRUxFQ1QgZC5vaWQgQVMgZGJvaWQsCisgICAgZC5kYXRuYW1lIEFTIGRibmFtZSwK KyAgICBzLmRiX2Jsa3NfcmVhZCwKKyAgICBzLmRiX2Jsa3NfaGl0LAorICAgIHMudG90YWxf Ymxrc19kaXJ0aWVkLAorICAgIHMudG90YWxfYmxrc193cml0dGVuLAorICAgIHMud2FsX3Jl Y29yZHMsCisgICAgcy53YWxfZnBpLAorICAgIHMud2FsX2J5dGVzLAorICAgIHMuYmxrX3Jl YWRfdGltZSwKKyAgICBzLmJsa193cml0ZV90aW1lLAorICAgIHMuZGVsYXlfdGltZSwKKyAg ICBzLnRvdGFsX3RpbWUsCisgICAgcy53cmFwYXJvdW5kX2ZhaWxzYWZlLAorICAgIHMuZXJy b3JzCisgICBGUk9NIHBnX2RhdGFiYXNlIGQsCisgICAgTEFURVJBTCBwZ19zdGF0X2dldF92 YWN1dW1fZGF0YWJhc2UoZC5vaWQpIHMoZGJvaWQsIGRiX2Jsa3NfcmVhZCwgZGJfYmxrc19o aXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90YWxfYmxrc193cml0dGVuLCB3YWxfcmVjb3Jk cywgd2FsX2ZwaSwgd2FsX2J5dGVzLCBibGtfcmVhZF90aW1lLCBibGtfd3JpdGVfdGltZSwg ZGVsYXlfdGltZSwgdG90YWxfdGltZSwgd3JhcGFyb3VuZF9mYWlsc2FmZSwgZXJyb3JzKTsK K3BnX3N0YXRfdmFjdXVtX2luZGV4ZXN8IFNFTEVDVCBjLm9pZCBBUyByZWxpZCwKKyAgICBp Lm9pZCBBUyBpbmRleHJlbGlkLAorICAgIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAorICAg IGMucmVsbmFtZSwKKyAgICBpLnJlbG5hbWUgQVMgaW5kZXhyZWxuYW1lLAorICAgIHMudG90 YWxfYmxrc19yZWFkLAorICAgIHMudG90YWxfYmxrc19oaXQsCisgICAgcy50b3RhbF9ibGtz X2RpcnRpZWQsCisgICAgcy50b3RhbF9ibGtzX3dyaXR0ZW4sCisgICAgcy5yZWxfYmxrc19y ZWFkLAorICAgIHMucmVsX2Jsa3NfaGl0LAorICAgIHMucGFnZXNfZGVsZXRlZCwKKyAgICBz LnR1cGxlc19kZWxldGVkLAorICAgIHMud2FsX3JlY29yZHMsCisgICAgcy53YWxfZnBpLAor ICAgIHMud2FsX2J5dGVzLAorICAgIHMuYmxrX3JlYWRfdGltZSwKKyAgICBzLmJsa193cml0 ZV90aW1lLAorICAgIHMuZGVsYXlfdGltZSwKKyAgICBzLnRvdGFsX3RpbWUKKyAgIEZST00g KCgocGdfY2xhc3MgYworICAgICBKT0lOIHBnX2luZGV4IHggT04gKChjLm9pZCA9IHguaW5k cmVsaWQpKSkKKyAgICAgSk9JTiBwZ19jbGFzcyBpIE9OICgoaS5vaWQgPSB4LmluZGV4cmVs aWQpKSkKKyAgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuIE9OICgobi5vaWQgPSBjLnJl bG5hbWVzcGFjZSkpKSwKKyAgICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVz KGkub2lkKSBzKHJlbGlkLCB0b3RhbF9ibGtzX3JlYWQsIHRvdGFsX2Jsa3NfaGl0LCB0b3Rh bF9ibGtzX2RpcnRpZWQsIHRvdGFsX2Jsa3Nfd3JpdHRlbiwgcmVsX2Jsa3NfcmVhZCwgcmVs X2Jsa3NfaGl0LCBwYWdlc19kZWxldGVkLCB0dXBsZXNfZGVsZXRlZCwgd2FsX3JlY29yZHMs IHdhbF9mcGksIHdhbF9ieXRlcywgYmxrX3JlYWRfdGltZSwgYmxrX3dyaXRlX3RpbWUsIGRl bGF5X3RpbWUsIHRvdGFsX3RpbWUpCisgIFdIRVJFIChjLnJlbGtpbmQgPSBBTlkgKEFSUkFZ WydyJzo6ImNoYXIiLCAndCc6OiJjaGFyIiwgJ20nOjoiY2hhciJdKSk7CitwZ19zdGF0X3Zh Y3V1bV90YWJsZXN8IFNFTEVDVCBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKKyAgICBjLnJl bG5hbWUsCisgICAgcy5yZWxpZCwKKyAgICBzLnRvdGFsX2Jsa3NfcmVhZCwKKyAgICBzLnRv dGFsX2Jsa3NfaGl0LAorICAgIHMudG90YWxfYmxrc19kaXJ0aWVkLAorICAgIHMudG90YWxf Ymxrc193cml0dGVuLAorICAgIHMucmVsX2Jsa3NfcmVhZCwKKyAgICBzLnJlbF9ibGtzX2hp dCwKKyAgICBzLnBhZ2VzX3NjYW5uZWQsCisgICAgcy5wYWdlc19yZW1vdmVkLAorICAgIHMu dm1fbmV3X2Zyb3plbl9wYWdlcywKKyAgICBzLnZtX25ld192aXNpYmxlX3BhZ2VzLAorICAg IHMudm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLAorICAgIHMubWlzc2VkX2RlYWRfcGFn ZXMsCisgICAgcy50dXBsZXNfZGVsZXRlZCwKKyAgICBzLnR1cGxlc19mcm96ZW4sCisgICAg cy5yZWNlbnRseV9kZWFkX3R1cGxlcywKKyAgICBzLm1pc3NlZF9kZWFkX3R1cGxlcywKKyAg ICBzLndyYXBhcm91bmRfZmFpbHNhZmUsCisgICAgcy5pbmRleF92YWN1dW1fY291bnQsCisg ICAgcy53YWxfcmVjb3JkcywKKyAgICBzLndhbF9mcGksCisgICAgcy53YWxfYnl0ZXMsCisg ICAgcy5ibGtfcmVhZF90aW1lLAorICAgIHMuYmxrX3dyaXRlX3RpbWUsCisgICAgcy5kZWxh eV90aW1lLAorICAgIHMudG90YWxfdGltZQorICAgRlJPTSAocGdfY2xhc3MgYworICAgICBK T0lOIHBnX25hbWVzcGFjZSBuIE9OICgobi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkpKSwKKyAg ICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMoYy5vaWQpIHMocmVsaWQsIHRv dGFsX2Jsa3NfcmVhZCwgdG90YWxfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90 YWxfYmxrc193cml0dGVuLCByZWxfYmxrc19yZWFkLCByZWxfYmxrc19oaXQsIHBhZ2VzX3Nj YW5uZWQsIHBhZ2VzX3JlbW92ZWQsIHZtX25ld19mcm96ZW5fcGFnZXMsIHZtX25ld192aXNp YmxlX3BhZ2VzLCB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsIG1pc3NlZF9kZWFkX3Bh Z2VzLCB0dXBsZXNfZGVsZXRlZCwgdHVwbGVzX2Zyb3plbiwgcmVjZW50bHlfZGVhZF90dXBs ZXMsIG1pc3NlZF9kZWFkX3R1cGxlcywgd3JhcGFyb3VuZF9mYWlsc2FmZSwgaW5kZXhfdmFj dXVtX2NvdW50LCB3YWxfcmVjb3Jkcywgd2FsX2ZwaSwgd2FsX2J5dGVzLCBibGtfcmVhZF90 aW1lLCBibGtfd3JpdGVfdGltZSwgZGVsYXlfdGltZSwgdG90YWxfdGltZSkKKyAgV0hFUkUg KGMucmVsa2luZCA9IEFOWSAoQVJSQVlbJ3InOjoiY2hhciIsICd0Jzo6ImNoYXIiLCAnbSc6 OiJjaGFyIl0pKTsKIHBnX3N0YXRfd2FsfCBTRUxFQ1Qgd2FsX3JlY29yZHMsCiAgICAgd2Fs X2ZwaSwKICAgICB3YWxfYnl0ZXMsCi0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --------------LO5tty50ZJRZk32bRvqIZqab Content-Type: text/plain; charset=UTF-8; name="v26-0005-Add-documentation-about-the-system-views-that-are-us.patch" Content-Disposition: attachment; filename*0="v26-0005-Add-documentation-about-the-system-views-that-are-u"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSBjZmJmNTBjODVhZTliZmRmYjkxNjdkYWI0NDZiZjMyNTZlMzNkZGIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCAxOSBEZWMgMjAyNCAxMjo1Nzo0OSArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggNS81XSBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgc3lzdGVtIHZp ZXdzIHRoYXQgYXJlIHVzZWQgaW4KIHRoZSBtYWNoaW5lcnkgb2YgdmFjdXVtIHN0YXRpc3Rp Y3MuCgotLS0KIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCB8IDc1NSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3NTUgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBi L2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAppbmRleCAxNjJjNzZiNzI5YS4uNTA1 NzhjYWU5MGQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKQEAgLTU2NTQsNCArNTY1NCw3 NTkgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFyZWRf eGFjdHMgcHB4CiAgIDwvdGFibGU+CiAgPC9zZWN0MT4KIAorPHNlY3QxIGlkPSJ2aWV3LXBn LXN0YXQtdmFjdXVtLWRhdGFiYXNlIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRf dmFjdXVtX2RhdGFiYXNlPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6 b25lPSJ2aWV3LXBnLXN0YXQtdmFjdXVtLWRhdGFiYXNlIj4KKyAgIDxwcmltYXJ5PnBnX3N0 YXRfdmFjdXVtX2RhdGFiYXNlPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFy YT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX3N0YXRfdmFjdXVtX2RhdGFiYXNlPC9z dHJ1Y3RuYW1lPiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cgZm9yIGVhY2ggZGF0YWJhc2Ug aW4gdGhlIGN1cnJlbnQgY2x1c3Rlciwgc2hvd2luZyBzdGF0aXN0aWNzIGFib3V0CisgICB2 YWN1dW1pbmcgdGhhdCBkYXRhYmFzZS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZTwvc3RydWN0bmFtZT4g Q29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmRi aWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBPSUQgb2YgYSBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJl ciBvZiBkYXRhYmFzZSBibG9ja3MgcmVhZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAg ICBwZXJmb3JtZWQgb24gdGhpcyBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD50b3RhbF9ibGtzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRp bWVzIGRhdGFiYXNlIGJsb2NrcyB3ZXJlIGZvdW5kIGluIHRoZQorICAgICAgICBidWZmZXIg Y2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxr c19kaXJ0aWVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIGRp cnRpZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxr c193cml0dGVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHdy aXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX3JlY29y ZHM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgcmVjb3JkcyBnZW5lcmF0 ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgZGF0 YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2ZwaTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBmdWxsIHBhZ2UgaW1hZ2VzIGdlbmVy YXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBk YXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfYnl0ZXM8 L3N0cnVjdGZpZWxkPiA8dHlwZT5udW1lcmljPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIFRvdGFsIGFtb3VudCBvZiBXQUwgYnl0ZXMgZ2VuZXJhdGVk IGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGRhdGFi YXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa19yZWFkX3RpbWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCByZWFkaW5nIGRhdGFiYXNlIGJsb2NrcyBi eSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRhYmFz ZSwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGlt aW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfd3JpdGVfdGltZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgICBUaW1lIHNwZW50IHdyaXRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBvcGVy YXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNl Y29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5h YmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPmRlbGF5X3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCBz bGVlcGluZyBpbiBhIHZhY3V1bSBkZWxheSBwb2ludCBieSB2YWN1dW0gb3BlcmF0aW9ucyBw ZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRzIChz ZWUgPHhyZWYgbGlua2VuZD0icnVudGltZS1jb25maWctcmVzb3VyY2UtdmFjdXVtLWNvc3Qi Lz4KKyAgICAgICAgZm9yIGRldGFpbHMpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnN5c3RlbV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFN5c3RlbSBDUFUgdGltZSBv ZiB2YWN1dW1pbmcgdGhpcyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnVzZXJfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBl PmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBV c2VyIENQVSB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNlY29u ZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfdGltZTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBUb3RhbCB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIGRhdGFiYXNlLCBp biBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d3Jh cGFyb3VuZF9mYWlsc2FmZV9jb3VudDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVz IHRoZSB2YWN1dW0gd2FzIHJ1biB0byBwcmV2ZW50IGEgd3JhcGFyb3VuZCBwcm9ibGVtLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lcnJvcnM8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiB0aW1lcyB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gdGhp cyBkYXRhYmFzZQorICAgICAgICB3ZXJlIGludGVycnVwdGVkIG9uIGFueSBlcnJvcnMKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90 Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworICA8c2VjdDEgaWQ9InZpZXctcGct c3RhdC12YWN1dW0taW5kZXhlcyI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3Zh Y3V1bV9pbmRleGVzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25l PSJ2aWV3LXBnLXN0YXQtdmFjdXVtLWluZGV4ZXMiPgorICAgPHByaW1hcnk+cGdfc3RhdF92 YWN1dW1faW5kZXhlczwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+Cisg ICBUaGUgdmlldyA8c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV9pbmRleGVzPC9zdHJ1Y3Ru YW1lPiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cgZm9yIGVhY2ggaW5kZXggaW4gdGhlIGN1 cnJlbnQgZGF0YWJhc2UgKGluY2x1ZGluZyBUT0FTVAorICAgdGFibGUgaW5kZXhlcyksIHNo b3dpbmcgc3RhdGlzdGljcyBhYm91dCB2YWN1dW1pbmcgdGhhdCBzcGVjaWZpYyBpbmRleC4K KyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0 X3ZhY3V1bV9pbmRleGVzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3Jv dXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5v aWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPSUQgb2Yg YW4gaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c2NoZW1hPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhpcyBpbmRleCBpcyBpbgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxuYW1lPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IE5hbWUgb2YgdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD50b3RhbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkYXRhYmFzZSBi bG9ja3MgcmVhZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24g dGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9i bGtzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIGRhdGFiYXNlIGJsb2Nr cyB3ZXJlIGZvdW5kIGluIHRoZQorICAgICAgICBidWZmZXIgY2FjaGUgYnkgdmFjdXVtIG9w ZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19kaXJ0aWVkPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIGRpcnRpZWQgYnkgdmFjdXVtIG9wZXJh dGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc193cml0dGVuPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHdyaXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlv bnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+cmVsX2Jsa3NfcmVhZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmlu dDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVy IG9mIGJsb2NrcyB2YWN1dW0gb3BlcmF0aW9ucyByZWFkIGZyb20gdGhpcworICAgICAgICBp bmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxfYmxrc19oaXQ8 L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1lcyBibG9ja3Mgb2YgdGhpcyBpbmRleCB3 ZXJlIGFscmVhZHkgZm91bmQKKyAgICAgICAgaW4gdGhlIGJ1ZmZlciBjYWNoZSBieSB2YWN1 dW0gb3BlcmF0aW9ucywgc28gdGhhdCBhIHJlYWQgd2FzIG5vdCBuZWNlc3NhcnkKKyAgICAg ICAgKHRoaXMgb25seSBpbmNsdWRlcyBoaXRzIGluIHRoZQorICAgICAgICBwcm9qZWN0OyBi dWZmZXIgY2FjaGUsIG5vdCB0aGUgb3BlcmF0aW5nIHN5c3RlbSdzIGZpbGUgc3lzdGVtIGNh Y2hlKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wYWdlc19kZWxldGVk PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgcGFnZXMgZGVsZXRlZCBieSB2YWN1dW0gb3Bl cmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBpbmRleAorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD50dXBsZXNfZGVsZXRlZDwvc3RydWN0ZmllbGQ+IDx0 eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAg TnVtYmVyIG9mIGRlYWQgdHVwbGVzIHZhY3V1bSBvcGVyYXRpb25zIGRlbGV0ZWQgZnJvbSB0 aGlzIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndhbF9yZWNv cmRzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIHJlY29yZHMgZ2VuZXJh dGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGlu ZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndhbF9mcGk8L3N0cnVj dGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgZnVsbCBwYWdlIGltYWdlcyBnZW5lcmF0 ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5k ZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2J5dGVzPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+bnVtZXJpYzwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBUb3RhbCBhbW91bnQgb2YgV0FMIGJ5dGVzIGdlbmVyYXRlZCBieSB2 YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBpbmRleAorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfcmVhZF90aW1lPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgICBUaW1lIHNwZW50IHJlYWRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBv cGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIGluZGV4LCBpbiBtaWxsaXNl Y29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5h YmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPmJsa193cml0ZV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50 IHdyaXRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBvcGVyYXRpb25zIHBlcmZvcm1l ZCBvbgorICAgICAgICB0aGlzIGluZGV4LCBpbiBtaWxsaXNlY29uZHMgKGlmIDx4cmVmIGxp bmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5hYmxlZCwKKyAgICAgICAgb3Ro ZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmRlbGF5 X3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCBzbGVlcGluZyBpbiBhIHZhY3V1 bSBkZWxheSBwb2ludCBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAg ICAgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRzIChzZWUgPHhyZWYgbGlua2VuZD0icnVu dGltZS1jb25maWctcmVzb3VyY2UtdmFjdXVtLWNvc3QiLz4KKyAgICAgICAgZm9yIGRldGFp bHMpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnN5c3RlbV90aW1lPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIFN5c3RlbSBDUFUgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRl eCwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnVzZXJfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBVc2VyIENQVSB0aW1lIG9mIHZhY3V1bWlu ZyB0aGlzIGluZGV4LCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+dG90YWxfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCB0aW1lIG9m IHZhY3V1bWluZyB0aGlzIGluZGV4LCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAg PC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJ2aWV3LXBnLXN0YXQtdmFjdXVt LXRhYmxlcyI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV90YWJsZXM8 L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9InZpZXctcGctc3Rh dC12YWN1dW0tdGFibGVzIj4KKyAgIDxwcmltYXJ5PnBnX3N0YXRfdmFjdXVtX3RhYmxlczwv cHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgdmlldyA8c3Ry dWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV90YWJsZXM8L3N0cnVjdG5hbWU+IHdpbGwgY29udGFp bgorICAgb25lIHJvdyBmb3IgZWFjaCB0YWJsZSBpbiB0aGUgY3VycmVudCBkYXRhYmFzZSAo aW5jbHVkaW5nIFRPQVNUCisgICB0YWJsZXMpLCBzaG93aW5nIHN0YXRpc3RpY3MgYWJvdXQg dmFjdXVtaW5nIHRoYXQgc3BlY2lmaWMgdGFibGUuCisgIDwvcGFyYT4KKworICA8dGFibGU+ CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3RhdF92YWN1dW1fdGFibGVzPC9zdHJ1Y3Ru YW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFk PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRi b2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cmVsaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBPSUQgb2YgYSB0YWJsZQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE5hbWUgb2YgdGhl IHNjaGVtYSB0aGlzIHRhYmxlIGlzIGluCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnJlbG5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGlzIHRhYmxlCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfcmVhZDwvc3RydWN0 ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyByZWFkIGJ5IHZhY3V1bSBvcGVy YXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfaGl0PC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBO dW1iZXIgb2YgdGltZXMgZGF0YWJhc2UgYmxvY2tzIHdlcmUgZm91bmQgaW4gdGhlCisgICAg ICAgIGJ1ZmZlciBjYWNoZSBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3Jt ZWQgb24gdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50 b3RhbF9ibGtzX2RpcnRpZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBibG9ja3Mgd3Jp dHRlbiBkaXJlY3RseSBieSB2YWN1dW0gb3IgYXV0byB2YWN1dW0uCisgICAgICAgIEJsb2Nr cyB0aGF0IGFyZSBkaXJ0aWVkIGJ5IGEgdmFjdXVtIHByb2Nlc3MgY2FuIGJlIHdyaXR0ZW4g b3V0IGJ5IGFub3RoZXIgcHJvY2Vzcy4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+dG90YWxfYmxrc193cml0dGVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0 YWJhc2UgYmxvY2tzIHdyaXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVy Zm9ybWVkIG9uIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cmVsX2Jsa3NfcmVhZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGJsb2NrcyB2YWN1 dW0gb3BlcmF0aW9ucyByZWFkIGZyb20gdGhpcworICAgICAgICB0YWJsZQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxfYmxrc19oaXQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg IE51bWJlciBvZiB0aW1lcyBibG9ja3Mgb2YgdGhpcyB0YWJsZSB3ZXJlIGFscmVhZHkgZm91 bmQKKyAgICAgICAgaW4gdGhlIGJ1ZmZlciBjYWNoZSBieSB2YWN1dW0gb3BlcmF0aW9ucywg c28gdGhhdCBhIHJlYWQgd2FzIG5vdCBuZWNlc3NhcnkKKyAgICAgICAgKHRoaXMgb25seSBp bmNsdWRlcyBoaXRzIGluIHRoZQorICAgICAgICBwcm9qZWN0OyBidWZmZXIgY2FjaGUsIG5v dCB0aGUgb3BlcmF0aW5nIHN5c3RlbSdzIGZpbGUgc3lzdGVtIGNhY2hlKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wYWdlc19zY2FubmVkPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgcGFnZXMgZXhhbWluZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAg ICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+cGFnZXNfcmVtb3ZlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBhZ2Vz IHJlbW92ZWQgZnJvbSB0aGUgcGh5c2ljYWwgc3RvcmFnZSBieSB2YWN1dW0gb3BlcmF0aW9u cworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52bV9uZXdfZnJvemVuX3BhZ2VzPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBO dW1iZXIgb2YgdGhlIG51bWJlciBvZiBwYWdlcyBuZXdseSBzZXQgYWxsLWZyb3plbiBieSB2 YWN1dW0KKyAgICAgICAgaW4gdGhlIHZpc2liaWxpdHkgbWFwLgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD52bV9uZXdfdmlzaWJsZV9wYWdlczwvc3RydWN0ZmllbGQ+ IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICAgTnVtYmVyIG9mIHRoZSBudW1iZXIgb2YgcGFnZXMgbmV3bHkgc2V0IGFsbC12aXNpYmxl IGJ5IHZhY3V1bQorICAgICAgICBpbiB0aGUgdmlzaWJpbGl0eSBtYXAuCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRoZSBudW1iZXIgb2YgcGFnZXMgbmV3bHkgc2V0 IGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuCisgICAgICAgIGJ5IHZhY3V1bSBpbiB0aGUg dmlzaWJpbGl0eSBtYXAuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnR1 cGxlc19kZWxldGVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGVhZCB0dXBsZXMgdmFj dXVtIG9wZXJhdGlvbnMgZGVsZXRlZCBmcm9tIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dHVwbGVzX2Zyb3plbjwvc3RydWN0ZmllbGQ+IDx0eXBl PmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVt YmVyIG9mIHR1cGxlcyBvZiB0aGlzIHRhYmxlIHRoYXQgdmFjdXVtIG9wZXJhdGlvbnMgbWFy a2VkIGFzCisgICAgICAgIGZyb3plbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5yZWNlbnRseV9kZWFkX3R1cGxlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRl YWQgdHVwbGVzIHZhY3V1bSBvcGVyYXRpb25zIGxlZnQgaW4gdGhpcyB0YWJsZSBkdWUKKyAg ICAgICAgdG8gdGhlaXIgdmlzaWJpbGl0eSBpbiB0cmFuc2FjdGlvbnMKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5taXNzZWRfZGVhZF90dXBsZXM8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiBmdWxseSBERUFEIChub3QganVzdCBSRUNFTlRMWV9ERUFEKSB0dXBs ZXMgIHRoYXQgY291bGQgbm90IGJlCisgICAgICAgIHBydW5lZCBkdWUgdG8gZmFpbHVyZSB0 byBhY3F1aXJlIGEgY2xlYW51cCBsb2NrIG9uIGEgaGVhcCBwYWdlLgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5pbmRleF92YWN1dW1fY291bnQ8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiB0aW1lcyBpbmRleGVzIG9uIHRoaXMgdGFibGUgd2VyZSB2YWN1dW1l ZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53cmFwYXJvdW5kX2ZhaWxz YWZlX2NvdW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgdGhlIHZhY3V1bSB3 YXMgcnVuIHRvIHByZXZlbnQgYSB3cmFwYXJvdW5kIHByb2JsZW0uCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPm1pc3NlZF9kZWFkX3BhZ2VzPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgcGFnZXMgdGhhdCBoYWQgYXQgbGVhc3Qgb25lIG1pc3NlZF9kZWFkX3R1 cGxlcy4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX3JlY29yZHM8 L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgcmVjb3JkcyBnZW5lcmF0ZWQg YnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2ZwaTwvc3RydWN0Zmll bGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBmdWxsIHBhZ2UgaW1hZ2VzIGdlbmVyYXRlZCBi eSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0YWJsZQor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfYnl0ZXM8L3N0cnVjdGZp ZWxkPiA8dHlwZT5udW1lcmljPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgIFRvdGFsIGFtb3VudCBvZiBXQUwgYnl0ZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1 bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa19yZWFkX3RpbWU8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIFRpbWUgc3BlbnQgcmVhZGluZyBkYXRhYmFzZSBibG9ja3MgYnkgdmFjdXVtIG9wZXJh dGlvbnMgcGVyZm9ybWVkIG9uCisgICAgICAgIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25k cyAoaWYgPHhyZWYgbGlua2VuZD0iZ3VjLXRyYWNrLWlvLXRpbWluZyIvPiBpcyBlbmFibGVk LAorICAgICAgICBvdGhlcndpc2UgemVybykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+YmxrX3dyaXRlX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUgc3BlbnQgd3Jp dGluZyBkYXRhYmFzZSBibG9ja3MgYnkgdmFjdXVtIG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9u CisgICAgICAgIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcyAoaWYgPHhyZWYgbGlua2Vu ZD0iZ3VjLXRyYWNrLWlvLXRpbWluZyIvPiBpcyBlbmFibGVkLAorICAgICAgICBvdGhlcndp c2UgemVybykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZGVsYXlfdGlt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50IHNsZWVwaW5nIGluIGEgdmFjdXVtIGRl bGF5IHBvaW50IGJ5IHZhY3V1bSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0 aGlzIHRhYmxlLCBpbiBtaWxsaXNlY29uZHMgKHNlZSA8eHJlZiBsaW5rZW5kPSJydW50aW1l LWNvbmZpZy1yZXNvdXJjZS12YWN1dW0tY29zdCIvPgorICAgICAgICBmb3IgZGV0YWlscykK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c3lzdGVtX3RpbWU8L3N0cnVj dGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgU3lzdGVtIENQVSB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIHRhYmxlLCBp biBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dXNl cl90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgIFVzZXIgQ1BVIHRpbWUgb2YgdmFjdXVtaW5nIHRo aXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD50b3RhbF90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIHRpbWUgb2YgdmFj dXVtaW5nIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3Rh YmxlPgorICA8cGFyYT5Db2x1bW5zIDxzdHJ1Y3RmaWVsZD50b3RhbF8qPC9zdHJ1Y3RmaWVs ZD4sIDxzdHJ1Y3RmaWVsZD53YWxfKjwvc3RydWN0ZmllbGQ+CisgICAgYW5kIDxzdHJ1Y3Rm aWVsZD5ibGtfKjwvc3RydWN0ZmllbGQ+IGluY2x1ZGUgZGF0YSBvbiB2YWN1dW1pbmcgaW5k ZXhlcyBvbiB0aGlzIHRhYmxlLCB3aGlsZSBjb2x1bW5zCisgICAgPHN0cnVjdGZpZWxkPnN5 c3RlbV90aW1lPC9zdHJ1Y3RmaWVsZD4gYW5kIDxzdHJ1Y3RmaWVsZD51c2VyX3RpbWU8L3N0 cnVjdGZpZWxkPiBvbmx5IGluY2x1ZGUgZGF0YQorICAgIG9uIHZhY3V1bWluZyB0aGUgaGVh cC48L3BhcmE+CisgPC9zZWN0MT4KIDwvY2hhcHRlcj4KLS0gCjIuMzkuNSAoQXBwbGUgR2l0 LTE1NCkKCg== --------------LO5tty50ZJRZk32bRvqIZqab--