From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#21020: 24.4; `display-time-world' tampers with TZ Date: Sun, 26 Jul 2015 00:09:40 -0700 Organization: UCLA Computer Science Department Message-ID: <55B487B4.7060709@cs.ucla.edu> References: <87twtd9l2w.fsf@example.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010405080708080809030701" X-Trace: ger.gmane.org 1437894641 26857 80.91.229.3 (26 Jul 2015 07:10:41 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 26 Jul 2015 07:10:41 +0000 (UTC) Cc: 21020@debbugs.gnu.org To: "William G. Gardella" Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jul 26 09:10:27 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZJG4m-0007OV-Rn for geb-bug-gnu-emacs@m.gmane.org; Sun, 26 Jul 2015 09:10:25 +0200 Original-Received: from localhost ([::1]:49540 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZJG4l-00066R-OC for geb-bug-gnu-emacs@m.gmane.org; Sun, 26 Jul 2015 03:10:23 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38322) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZJG4a-000662-3h for bug-gnu-emacs@gnu.org; Sun, 26 Jul 2015 03:10:19 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZJG4S-0007QM-32 for bug-gnu-emacs@gnu.org; Sun, 26 Jul 2015 03:10:12 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:57367) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZJG4R-0007Pu-VX for bug-gnu-emacs@gnu.org; Sun, 26 Jul 2015 03:10:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZJG4R-0001Ql-BB for bug-gnu-emacs@gnu.org; Sun, 26 Jul 2015 03:10:03 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: <87twtd9l2w.fsf@example.com> Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 26 Jul 2015 07:10:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21020 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 21020-submit@debbugs.gnu.org id=B21020.14378945895476 (code B ref 21020); Sun, 26 Jul 2015 07:10:03 +0000 Original-Received: (at 21020) by debbugs.gnu.org; 26 Jul 2015 07:09:49 +0000 Original-Received: from localhost ([127.0.0.1]:58814 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZJG4D-0001QE-3L for submit@debbugs.gnu.org; Sun, 26 Jul 2015 03:09:49 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:54524) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZJG4A-0001Q5-Cc for 21020@debbugs.gnu.org; Sun, 26 Jul 2015 03:09:46 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 881FA16099B; Sun, 26 Jul 2015 00:09:45 -0700 (PDT) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id T5nPLs9J2KpC; Sun, 26 Jul 2015 00:09:40 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 88264160CB6; Sun, 26 Jul 2015 00:09:40 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 5epqxBcewKhY; Sun, 26 Jul 2015 00:09:40 -0700 (PDT) Original-Received: from [192.168.1.9] (pool-100-32-155-148.lsanca.fios.verizon.net [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 475D416099B; Sun, 26 Jul 2015 00:09:40 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:105130 Archived-At: This is a multi-part message in MIME format. --------------010405080708080809030701 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Thanks for the bug report. Improving Emacs time zones has been on my TODO list for ages, and the report prompted me to do that. Attached is a patch which works for me on GNU/Linux. I'm CC'ing this to Eli to give him a heads-up in case it has implications on MS-Windows. --------------010405080708080809030701 Content-Type: text/plain; charset=UTF-8; name="0001-New-optional-ZONE-arg-for-format-time-string-etc.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-New-optional-ZONE-arg-for-format-time-string-etc.txt" RnJvbSAzZGJjN2E3YzNlMzAyYTMxYmJhNGZhYzI1OWQzZWYyMzcyNzQ5NDU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDI2IEp1bCAyMDE1IDAwOjAxOjM0IC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gTmV3IG9wdGlvbmFsIFpPTkUgYXJnIGZvciBmb3JtYXQtdGltZS1zdHJpbmcgZXRjLgoK VGhpcyBzaW1wbGlmaWVzIHRpbWUgY29udmVyc2lvbnMgaW4gb3RoZXIgdGltZSB6b25lcy4K SXQgYWxzbyBwcmV2ZW50cyBkaXNwbGF5LXRpbWUtd29ybGQgdGFtcGVyaW5nIHdpdGggVFog KEJ1ZyMyMTAyMCkuCiogYWRtaW4vYWRtaW4uZWwgKGFkZC1yZWxlYXNlLWxvZ3MpOgpVc2Ug aW1wcm92ZWQgYWRkLWxvZy10aW1lLWZvcm1hdCBBUEkuCiogYWRtaW4vbWVyZ2UtZ251bGli IChHTlVMSUJfTU9EVUxFUyk6IEFkZCB0aW1lX3J6LCB0aW1lZ20uCihHTlVMSUJfVE9PTF9G TEFHUyk6IEF2b2lkIGZsZXhtZW1iZXIsIHNldGVudiwgdW5zZXRlbnYuCiogY29uZmlndXJl LmFjICh0emFsbG9jKTogUmVtb3ZlIHRlc3QgZm9yIHRoaXMsIHNpbmNlCkVtYWNzIG5vIGxv bmdlciB1c2VzIEhBVkVfVFpBTExPQyBkaXJlY3RseS4KKiBkb2MvbGlzcHJlZi9vcy50ZXhp IChUaW1lIG9mIERheSwgVGltZSBDb252ZXJzaW9uKQooVGltZSBQYXJzaW5nKToKKiBldGMv TkVXUzogRG9jdW1lbnQgdGhlIG5ldyBiZWhhdmlvci4KTWVyZ2UgZnJvbSBnbnVsaWIsIGlu Y29ycG9yYXRpbmc6CjIwMTUtMDctMjUgc3RyZnRpbWU6IGZpeCBuZXdseS1pbnRyb2R1Y2Vk IGJ1ZyBvbiBTb2xhcmlzCjIwMTUtMDctMjMgZnByaW50ZnRpbWUsIHN0cmZ0aW1lOiB1c2Ug dGltZXpvbmVfdCBhcmdzCiogbGliL2dudWxpYi5taywgbTQvZ251bGliLWNvbXAubTQ6IFJl Z2VuZXJhdGUuCiogbGliL3N0cmZ0aW1lLmMsIGxpYi9zdHJmdGltZS5oLCBsaWIvdGltZS5p bi5oLCBtNC9zeXNfdGltZV9oLm00OgoqIG00L3RpbWVfaC5tNDoKVXBkYXRlIGZyb20gZ251 bGliLgoqIGxpYi90aW1lX3J6LmMsIGxpYi90aW1lZ20uYywgbTQvdGltZV9yei5tNCwgbTQv dGltZWdtLm00OgoqIHNyYy90aW1lX3J6LmM6IE5ldyBmaWxlcyBmcm9tIGdudWxpYi4KKiBs aXNwL3RpbWUtc3RhbXAuZWwgKHRpbWUtc3RhbXAtc3RyaW5nKToKKiBsaXNwL3RpbWUuZWwg KGRpc3BsYXktdGltZS13b3JsZC1saXN0KQooZGlzcGxheS10aW1lLXdvcmxkLWRpc3BsYXkp OgpVc2UgbmV3IEFQSSwgd2l0aCB0aW1lIHpvbmUgYXJnLgoqIGxpc3AvdGltZS5lbCAoZGlz cGxheS10aW1lLXdvcmxkLWRpc3BsYXkpOgpGaXggcmFjZSB3aGVuIGN1cnJlbnQtdGltZSBh ZHZhbmNlcyB3aGlsZSB3ZSdyZSBydW5uaW5nLgoqIGxpc3AvdmMvYWRkLWxvZy5lbCAoYWRk LWxvZy1pc284NjAxLXRpbWUtem9uZSkKKGFkZC1sb2ctaXNvODYwMS10aW1lLXN0cmluZyk6 IEFjY2VwdCBvcHRpb25hbCB0aW1lIHpvbmUgYXJnLgoqIGxpc3AvdmMvYWRkLWxvZy5lbCAo YWRkLWNoYW5nZS1sb2ctZW50cnkpOgoqIGxpc3AvdmMvbG9nLWVkaXQuZWwgKGxvZy1lZGl0 LWNoYW5nZWxvZy1vdXJzLXApOiBVc2UgbmV3IGFyZy4KKiBzcmMvY29uZl9wb3N0LmggKGdl dGVudl9UWiwgc2V0ZW52X1RaKTogTmV3IG1hY3Jvcy4KKGVtYWNzX2dldGVudl9UWiwgZW1h Y3Nfc2V0ZW52X1RaKTogTmV3IGRlY2xzLgoqIHNyYy9lZGl0Zm5zLmM6IEluY2x1ZGUgZXJy bm8uaC4KKHNldF90aW1lX3pvbmVfcnVsZSk6IE9taXQgdW5uZWNlc3NhcnkgZm9yd2FyZCBk ZWNsLgooaW5pdGlhbF90eik6IFJlbW92ZSwgcmVwbGFjaW5nIHdpdGggLi4uCihsb2NhbF90 eiwgd2FsbF9jbG9ja190eiwgdXRjX3R6KTogTmV3IHN0YXRpYyB2YXJzIGFuZCBjb25zdGFu dHMuCih0emVxbGVuKTogTmV3IGNvbnN0YW50OyBwcmVmZXIgaXQgdG8gKHNpemVvZiAiVFo9 IiAtIDEpLgooZW1hY3NfbG9jYWx0aW1lX3J6LCBlbWFjc19ta3RpbWVfeiwgeHR6YWxsb2Ms IHh0emZyZWUpCih0emxvb2t1cCk6IE5ldyBzdGF0aWMgZnVuY3Rpb25zLgooaW5pdF9lZGl0 Zm5zKTogTmV3IGFyZyBEVU1QSU5HLiAgQWxsIHVzZXMgY2hhbmdlZC4KKGluaXRfZWRpdGZu cyk6IE9taXQgbW9zdCBpbml0aWFsaXphdGlvbiBpZiBkdW1waW5nLCBub3QgaWYKIWluaXRp YWxpemVkLiAgSW5pdGlhbGl6ZSB3YWxsX2Nsb2NrX3R6IGFuZCBsb2NhbF90ei4KKGVtYWNz X25tZW1mdGltZSwgZm9ybWF0X3RpbWVfc3RyaW5nKTogVGltZSB6b25lIGFyZ3VtZW50IGNh biBub3cKYmUgYW55IHRpbWUgem9uZSwgbm90IGp1c3QgYSBib29sZWFuIGZvciBVVEMgb3Ig bG9jYWwgdGltZS4gIEFsbApjYWxsZXJzIGNoYW5nZWQuCihGZm9ybWF0X3RpbWVfc3RyaW5n LCBGZW5jb2RlX3RpbWUsIEZjdXJyZW50X3RpbWVfc3RyaW5nKQooRmN1cnJlbnRfdGltZV96 b25lKTogTmV3IG9wdGlvbmFsIGFyZyBaT05FLgooRmRlY29kZV90aW1lLCBGc2V0X3RpbWVf em9uZV9ydWxlKTogWk9ORSBhcmcgY2FuIG5vdyBhbHNvIHRha2UKdGhlIHNhbWUgZm9ybSBh cyB3aXRoIHRoZSBvdGhlciBuZXcgYWRkaXRpb25zLgooZGVjb2RlX3RpbWVfem9uZSk6IFJl bW92ZTsgbm8gbG9uZ2VyIG5lZWRlZC4KKHR6dmFsYnVmKTogTm93IGZpbGUtc2NvcGUuCihl bWFjc19nZXRlbnZfVFosIGVtYWNzX3NldGVudl9UWik6IE5ldyBmdW5jdGlvbnMuCihzeW1z X29mX2VkaXRmbnMpOiBEZWZpbmUgUXdhbGwuCiogc3JjL2VkaXRmbnMuYyAobWt0aW1lX3op IFshSEFWRV9UWkFMTE9DXToKKiBzcmMvc3lzdGltZS5oIChta3RpbWVfeiwgdGltZXpvbmVf dCwgdHphbGxvYywgdHpmcmVlKQpbIUhBVkVfVFpBTExPQ106ClJlbW92ZTsgbm93IHN1cHBs aWVkIGJ5IGdudWxpYi4KKiBzcmMvZW1hY3MuYyAobWFpbik6Ciogc3JjL2xpc3AuaCAoaW5p dF9lZGl0Zm5zKTogQWRqdXN0IHRvIGluaXRfZWRpdGZucyBBUEkgY2hhbmdlLgotLS0KIGFk bWluL2FkbWluLmVsICAgICAgfCAgIDYgKy0KIGFkbWluL21lcmdlLWdudWxpYiAgfCAgIDgg Ky0KIGNvbmZpZ3VyZS5hYyAgICAgICAgfCAgIDIgKy0KIGRvYy9saXNwcmVmL29zLnRleGkg fCAgODAgKysrKysrLS0tLS0KIGV0Yy9ORVdTICAgICAgICAgICAgfCAgIDkgKysKIGxpYi9n bnVsaWIubWsgICAgICAgfCAgNDIgKysrKy0tCiBsaWIvc3RyZnRpbWUuYyAgICAgIHwgIDY0 ICsrKy0tLS0tLQogbGliL3N0cmZ0aW1lLmggICAgICB8ICAgNyArLQogbGliL3RpbWUuaW4u aCAgICAgICB8ICAxOSArKysKIGxpYi90aW1lX3J6LmMgICAgICAgfCAzNzQgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL3RpbWVn bS5jICAgICAgICB8ICAzOCArKysrKysKIGxpc3AvdGltZS1zdGFtcC5lbCAgfCAgMTIgKy0K IGxpc3AvdGltZS5lbCAgICAgICAgfCAgMzMgKystLS0KIGxpc3AvdmMvYWRkLWxvZy5lbCAg fCAgMjMgKystLQogbGlzcC92Yy9sb2ctZWRpdC5lbCB8ICAgMyArLQogbTQvZ251bGliLWNv bXAubTQgICB8ICA0MyArKysrLS0KIG00L3N5c190aW1lX2gubTQgICAgfCAgIDEgKwogbTQv dGltZV9oLm00ICAgICAgICB8ICAgMSArCiBtNC90aW1lX3J6Lm00ICAgICAgIHwgIDIxICsr KwogbTQvdGltZWdtLm00ICAgICAgICB8ICAyNiArKysrCiBzcmMvY29uZl9wb3N0LmggICAg IHwgICA3ICsKIHNyYy9lZGl0Zm5zLmMgICAgICAgfCAzMjQgKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvZW1hY3MuYyAgICAgICAgIHwgICAy ICstCiBzcmMvbGlzcC5oICAgICAgICAgIHwgICAyICstCiBzcmMvc3lzdGltZS5oICAgICAg IHwgIDE0IC0tCiBzcmMvdGltZV9yei5jICAgICAgIHwgICAwCiAyNiBmaWxlcyBjaGFuZ2Vk LCA4NjMgaW5zZXJ0aW9ucygrKSwgMjk4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGxpYi90aW1lX3J6LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvdGltZWdtLmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBtNC90aW1lX3J6Lm00CiBjcmVhdGUgbW9kZSAxMDA2NDQgbTQv dGltZWdtLm00CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3RpbWVfcnouYwoKZGlmZiAtLWdp dCBhL2FkbWluL2FkbWluLmVsIGIvYWRtaW4vYWRtaW4uZWwKaW5kZXggOTNlOTEyNC4uMjY3 ZjJjNCAxMDA2NDQKLS0tIGEvYWRtaW4vYWRtaW4uZWwKKysrIGIvYWRtaW4vYWRtaW4uZWwK QEAgLTM4LDE0ICszOCwxMiBAQCBPcHRpb25hbCBhcmd1bWVudCBEQVRFIGlzIHRoZSByZWxl YXNlIGRhdGUsIGRlZmF1bHQgdG9kYXkuIgogCQkJCQkgIGVtYWNzLW1pbm9yLXZlcnNpb24p KQogCQkgICAgIChyZWFkLXN0cmluZyAiUmVsZWFzZSBkYXRlOiAiCiAJCQkJICAocHJvZ24g KHJlcXVpcmUgJ2FkZC1sb2cpCi0JCQkJCSAobGV0ICgoYWRkLWxvZy10aW1lLXpvbmUtcnVs ZSB0KSkKLQkJCQkJICAgKGZ1bmNhbGwgYWRkLWxvZy10aW1lLWZvcm1hdCkpKSkpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBhZGQtbG9n LXRpbWUtZm9ybWF0IG5pbCB0KSkpKSkKICAgKHNldHEgcm9vdCAoZXhwYW5kLWZpbGUtbmFt ZSByb290KSkKICAgKHVubGVzcyAoZmlsZS1leGlzdHMtcCAoZXhwYW5kLWZpbGUtbmFtZSAi c3JjL2VtYWNzLmMiIHJvb3QpKQogICAgICh1c2VyLWVycm9yICIlcyBkb2Vzbid0IHNlZW0g dG8gYmUgdGhlIHJvb3Qgb2YgYW4gRW1hY3Mgc291cmNlIHRyZWUiIHJvb3QpKQogICAocmVx dWlyZSAnYWRkLWxvZykKLSAgKG9yIGRhdGUgKHNldHEgZGF0ZSAobGV0ICgoYWRkLWxvZy10 aW1lLXpvbmUtcnVsZSB0KSkKLQkJCShmdW5jYWxsIGFkZC1sb2ctdGltZS1mb3JtYXQpKSkp CisgIChvciBkYXRlIChzZXRxIGRhdGUgKGZ1bmNhbGwgYWRkLWxvZy10aW1lLWZvcm1hdCBu aWwgdCkpKQogICAobGV0KiAoKGxvZ3MgKHByb2Nlc3MtbGluZXMgImZpbmQiIHJvb3QgIi1u YW1lIiAiQ2hhbmdlTG9nIikpCiAJIChlbnRyeSAoZm9ybWF0ICIlcyAgJXMgIDwlcz5cblxu XHQqIFZlcnNpb24gJXMgcmVsZWFzZWQuXG5cbiIKIAkJCWRhdGUKZGlmZiAtLWdpdCBhL2Fk bWluL21lcmdlLWdudWxpYiBiL2FkbWluL21lcmdlLWdudWxpYgppbmRleCBlNzkxMGE2Li45 NjNjM2EwIDEwMDc1NQotLS0gYS9hZG1pbi9tZXJnZS1nbnVsaWIKKysrIGIvYWRtaW4vbWVy Z2UtZ251bGliCkBAIC0zNywyMCArMzcsMjAgQEAgR05VTElCX01PRFVMRVM9JwogICBwaXBl MiBwc2VsZWN0IHB0aHJlYWRfc2lnbWFzayBwdXRlbnYgcWNvcHktYWNsIHJlYWRsaW5rIHJl YWRsaW5rYXQKICAgc2lnMnN0ciBzb2NrbGVuIHN0YXQtdGltZSBzdGRhbGlnbiBzdGRkZWYg c3RkaW8KICAgc3RwY3B5IHN0cmZ0aW1lIHN0cnRvaW1heCBzdHJ0b3VtYXggc3ltbGluayBz eXNfc3RhdAotICBzeXNfdGltZSB0aW1lIHRpbWVfciB0aW1lci10aW1lIHRpbWVzcGVjLWFk ZCB0aW1lc3BlYy1zdWIKKyAgc3lzX3RpbWUgdGltZSB0aW1lX3IgdGltZV9yeiB0aW1lZ20g dGltZXItdGltZSB0aW1lc3BlYy1hZGQgdGltZXNwZWMtc3ViCiAgIHVuc2V0ZW52IHVwZGF0 ZS1jb3B5cmlnaHQgdXRpbWVucwogICB2bGEgd2FybmluZ3MKICcKIAogR05VTElCX1RPT0xf RkxBR1M9JwogICAtLWF2b2lkPWNsb3NlIC0tYXZvaWQ9ZHVwCi0gIC0tYXZvaWQ9ZmNoZGly IC0tYXZvaWQ9ZnN0YXQKKyAgLS1hdm9pZD1mY2hkaXIgLS1hdm9pZD1mbGV4bWVtYmVyIC0t YXZvaWQ9ZnN0YXQKICAgLS1hdm9pZD1tYWxsb2MtcG9zaXggLS1hdm9pZD1tc3ZjLWludmFs IC0tYXZvaWQ9bXN2Yy1ub3Rocm93CiAgIC0tYXZvaWQ9b3BlbiAtLWF2b2lkPW9wZW5hdC1k aWUgLS1hdm9pZD1vcGVuZGlyCiAgIC0tYXZvaWQ9cmFpc2UKLSAgLS1hdm9pZD1zYXZlLWN3 ZCAtLWF2b2lkPXNlbGVjdCAtLWF2b2lkPXNpZ3Byb2NtYXNrCisgIC0tYXZvaWQ9c2F2ZS1j d2QgLS1hdm9pZD1zZWxlY3QgLS1hdm9pZD1zZXRlbnYgLS1hdm9pZD1zaWdwcm9jbWFzawog ICAtLWF2b2lkPXN0ZGFyZyAtLWF2b2lkPXN0ZGJvb2wKLSAgLS1hdm9pZD10aHJlYWRsaWIK KyAgLS1hdm9pZD10aHJlYWRsaWIgLS1hdm9pZD11bnNldGVudgogICAtLWNvbmRpdGlvbmFs LWRlcGVuZGVuY2llcyAtLWltcG9ydCAtLW5vLWNoYW5nZWxvZyAtLW5vLXZjLWZpbGVzCiAg IC0tbWFrZWZpbGUtbmFtZT1nbnVsaWIubWsKICcKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5h YyBiL2NvbmZpZ3VyZS5hYwppbmRleCBiNThjN2RlLi4xOWI4YjlkIDEwMDY0NAotLS0gYS9j b25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC00MDAwLDcgKzQwMDAsNyBAQCBB Q19TVUJTVChLUkI0TElCKQogCiBBQ19DSEVDS19IRUFERVJTKHZhbGdyaW5kL3ZhbGdyaW5k LmgpCiAKLUFDX0NIRUNLX0ZVTkNTX09OQ0UodHphbGxvYyB0enNldCkKK0FDX0NIRUNLX0ZV TkNTX09OQ0UodHpzZXQpCiAKIG9rX3NvX2Zhcj15ZXMKIEFDX0NIRUNLX0ZVTkMoc29ja2V0 LCAsIG9rX3NvX2Zhcj1ubykKZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL29zLnRleGkgYi9k b2MvbGlzcHJlZi9vcy50ZXhpCmluZGV4IDBjMzliZTkuLjRiNWExYjQgMTAwNjQ0Ci0tLSBh L2RvYy9saXNwcmVmL29zLnRleGkKKysrIGIvZG9jL2xpc3ByZWYvb3MudGV4aQpAQCAtMTIz NCw3ICsxMjM0LDcgQEAgdGhyZWUtZWxlbWVudCBsaXN0cywgd2l0aCBvbWl0dGVkIEB2YXJ7 bWljcm9zZWN9IGFuZCBAdmFye3BpY29zZWN9CiBjb21wb25lbnRzIGRlZmF1bHRpbmcgdG8g emVyby4KIAogQGNpbmRleCB0aW1lIHZhbHVlCi0gIEZ1bmN0aW9uIGFyZ3VtZW50cywgZS5n LiwgdGhlIEB2YXJ7dGltZS12YWx1ZX0gYXJndW1lbnQgdG8KKyAgRnVuY3Rpb24gYXJndW1l bnRzLCBlLmcuLCB0aGUgQHZhcnt0aW1lfSBhcmd1bWVudCB0bwogQGNvZGV7Y3VycmVudC10 aW1lLXN0cmluZ30sIGFjY2VwdCBhIG1vcmUtZ2VuZXJhbCBAZGZue3RpbWUgdmFsdWV9CiBm b3JtYXQsIHdoaWNoIGNhbiBiZSBhIGxpc3Qgb2YgaW50ZWdlcnMgYXMgYWJvdmUsIG9yIGEg c2luZ2xlIG51bWJlcgogZm9yIHNlY29uZHMgc2luY2UgdGhlIGVwb2NoLCBvciBAY29kZXtu aWx9IGZvciB0aGUgY3VycmVudCB0aW1lLiAgWW91CkBAIC0xMjQ0LDcgKzEyNDQsNyBAQCBv ZiBpbnRlZ2VycyB1c2luZyBAY29kZXtzZWNvbmRzLXRvLXRpbWV9LCBhbmQgaW50byBvdGhl ciBmb3JtcyB1c2luZwogQGNvZGV7ZGVjb2RlLXRpbWV9IGFuZCBAY29kZXtmbG9hdC10aW1l fS4gIFRoZXNlIGZ1bmN0aW9ucyBhcmUKIGRlc2NyaWJlZCBpbiB0aGUgZm9sbG93aW5nIHNl Y3Rpb25zLgogCi1AZGVmdW4gY3VycmVudC10aW1lLXN0cmluZyAmb3B0aW9uYWwgdGltZS12 YWx1ZQorQGRlZnVuIGN1cnJlbnQtdGltZS1zdHJpbmcgJm9wdGlvbmFsIHRpbWUgem9uZQog VGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBjdXJyZW50IHRpbWUgYW5kIGRhdGUgYXMgYSBo dW1hbi1yZWFkYWJsZQogc3RyaW5nLiAgVGhlIGZvcm1hdCBkb2VzIG5vdCB2YXJ5IGZvciB0 aGUgaW5pdGlhbCBwYXJ0IG9mIHRoZSBzdHJpbmcsCiB3aGljaCBjb250YWlucyB0aGUgZGF5 IG9mIHdlZWssIG1vbnRoLCBkYXkgb2YgbW9udGgsIGFuZCB0aW1lIG9mIGRheQpAQCAtMTI1 NSw4ICsxMjU1LDkgQEAgY2hhcmFjdGVycyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0 cmluZyByYXRoZXIgdGhhbiBmcm9tIHRoZSBlbmQsCiBhcyB0aGUgeWVhciBtaWdodCBub3Qg aGF2ZSBleGFjdGx5IGZvdXIgZGlnaXRzLCBhbmQgYWRkaXRpb25hbAogaW5mb3JtYXRpb24g bWF5IHNvbWUgZGF5IGJlIGFkZGVkIGF0IHRoZSBlbmQuCiAKLVRoZSBhcmd1bWVudCBAdmFy e3RpbWUtdmFsdWV9LCBpZiBnaXZlbiwgc3BlY2lmaWVzIGEgdGltZSB0byBmb3JtYXQsCi1p bnN0ZWFkIG9mIHRoZSBjdXJyZW50IHRpbWUuCitUaGUgYXJndW1lbnQgQHZhcnt0aW1lfSwg aWYgZ2l2ZW4sIHNwZWNpZmllcyBhIHRpbWUgdG8gZm9ybWF0LAoraW5zdGVhZCBvZiB0aGUg Y3VycmVudCB0aW1lLiAgVGhlIG9wdGlvbmFsIGFyZ3VtZW50IEB2YXJ7em9uZX0KK2RlZmF1 bHRzIHRvIHRoZSBjdXJyZW50IHRpbWUgem9uZSBydWxlLgogCiBAZXhhbXBsZQogQGdyb3Vw CkBAIC0xMjc1LDkgKzEyNzYsOSBAQCBtdWx0aXBsZSBvZiAxMDAwLCBidXQgdGhpcyBtYXkg Y2hhbmdlIGFzIGhpZ2hlci1yZXNvbHV0aW9uIGNsb2NrcwogYmVjb21lIGF2YWlsYWJsZS4K IEBlbmQgZGVmdW4KIAotQGRlZnVuIGZsb2F0LXRpbWUgJm9wdGlvbmFsIHRpbWUtdmFsdWUK K0BkZWZ1biBmbG9hdC10aW1lICZvcHRpb25hbCB0aW1lCiBUaGlzIGZ1bmN0aW9uIHJldHVy bnMgdGhlIGN1cnJlbnQgdGltZSBhcyBhIGZsb2F0aW5nLXBvaW50IG51bWJlciBvZgotc2Vj b25kcyBzaW5jZSB0aGUgZXBvY2guICBUaGUgb3B0aW9uYWwgYXJndW1lbnQgQHZhcnt0aW1l LXZhbHVlfSwgaWYKK3NlY29uZHMgc2luY2UgdGhlIGVwb2NoLiAgVGhlIG9wdGlvbmFsIGFy Z3VtZW50IEB2YXJ7dGltZX0sIGlmCiBnaXZlbiwgc3BlY2lmaWVzIGEgdGltZSB0byBjb252 ZXJ0IGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgdGltZS4KIAogQGVtcGh7V2FybmluZ306IFNp bmNlIHRoZSByZXN1bHQgaXMgZmxvYXRpbmcgcG9pbnQsIGl0IG1heSBub3QgYmUKQEAgLTEy ODYsMTQgKzEyODcsMTQgQEAgZXhhY3QuICBEbyBub3QgdXNlIHRoaXMgZnVuY3Rpb24gaWYg cHJlY2lzZSB0aW1lIHN0YW1wcyBhcmUgcmVxdWlyZWQuCiBAY29kZXt0aW1lLXRvLXNlY29u ZHN9IGlzIGFuIGFsaWFzIGZvciB0aGlzIGZ1bmN0aW9uLgogQGVuZCBkZWZ1bgogCi1AZGVm dW4gc2Vjb25kcy10by10aW1lIHRpbWUtdmFsdWUKK0BkZWZ1biBzZWNvbmRzLXRvLXRpbWUg dGltZQogVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBhIHRpbWUgdmFsdWUgdG8gbGlzdC1vZi1p bnRlZ2VyIGZvcm0uCi1Gb3IgZXhhbXBsZSwgaWYgQHZhcnt0aW1lLXZhbHVlfSBpcyBhIG51 bWJlciwgQGNvZGV7KHRpbWUtdG8tc2Vjb25kcwotKHNlY29uZHMtdG8tdGltZSBAdmFye3Rp bWUtdmFsdWV9KSl9IGVxdWFscyB0aGUgbnVtYmVyIHVubGVzcyBvdmVyZmxvdworRm9yIGV4 YW1wbGUsIGlmIEB2YXJ7dGltZX0gaXMgYSBudW1iZXIsIEBjb2Rleyh0aW1lLXRvLXNlY29u ZHMKKyhzZWNvbmRzLXRvLXRpbWUgQHZhcnt0aW1lfSkpfSBlcXVhbHMgdGhlIG51bWJlciB1 bmxlc3Mgb3ZlcmZsb3cKIG9yIHJvdW5kaW5nIGVycm9ycyBvY2N1ci4KIEBlbmQgZGVmdW4K IAotQGRlZnVuIGN1cnJlbnQtdGltZS16b25lICZvcHRpb25hbCB0aW1lLXZhbHVlCitAZGVm dW4gY3VycmVudC10aW1lLXpvbmUgJm9wdGlvbmFsIHRpbWUgem9uZQogQGNpbmRleCB0aW1l IHpvbmUsIGN1cnJlbnQKIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGxpc3QgZGVzY3JpYmlu ZyB0aGUgdGltZSB6b25lIHRoYXQgdGhlIHVzZXIgaXMKIGluLgpAQCAtMTMwOSwxNSArMTMx MCwyNyBAQCBhZGp1c3RtZW50LCB0aGVuIHRoZSB2YWx1ZSBpcyBjb25zdGFudCB0aHJvdWdo IHRpbWUuCiBJZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBkb2Vzbid0IHN1cHBseSBhbGwgdGhl IGluZm9ybWF0aW9uIG5lY2Vzc2FyeSB0bwogY29tcHV0ZSB0aGUgdmFsdWUsIHRoZSB1bmtu b3duIGVsZW1lbnRzIG9mIHRoZSBsaXN0IGFyZSBAY29kZXtuaWx9LgogCi1UaGUgYXJndW1l bnQgQHZhcnt0aW1lLXZhbHVlfSwgaWYgZ2l2ZW4sIHNwZWNpZmllcyBhIHRpbWUgdmFsdWUg dG8KLWFuYWx5emUgaW5zdGVhZCBvZiB0aGUgY3VycmVudCB0aW1lLgorVGhlIGFyZ3VtZW50 IEB2YXJ7dGltZX0sIGlmIGdpdmVuLCBzcGVjaWZpZXMgYSB0aW1lIHZhbHVlIHRvCithbmFs eXplIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgdGltZS4gIFRoZSBvcHRpb25hbCBhcmd1bWVu dCBAdmFye3pvbmV9CitkZWZhdWx0cyB0byB0aGUgY3VycmVudCB0aW1lIHpvbmUgcnVsZS4K IEBlbmQgZGVmdW4KIAotVGhlIGN1cnJlbnQgdGltZSB6b25lIGlzIGRldGVybWluZWQgYnkg dGhlIEBlbnZ7VFp9IGVudmlyb25tZW50CitAdmluZGV4IFRaLCBlbnZpcm9ubWVudCB2YXJp YWJsZQorVGhlIGRlZmF1bHQgdGltZSB6b25lIGlzIGRldGVybWluZWQgYnkgdGhlIEBlbnZ7 VFp9IGVudmlyb25tZW50CiB2YXJpYWJsZS4gIEB4cmVme1N5c3RlbSBFbnZpcm9ubWVudH0u ICBGb3IgZXhhbXBsZSwgeW91IGNhbiB0ZWxsIEVtYWNzCi10byB1c2UgdW5pdmVyc2FsIHRp bWUgd2l0aCBAY29kZXsoc2V0ZW52ICJUWiIgIlVUQzAiKX0uICBJZiBAZW52e1RafQotaXMg bm90IGluIHRoZSBlbnZpcm9ubWVudCwgRW1hY3MgdXNlcyBhIHBsYXRmb3JtLWRlcGVuZGVu dCBkZWZhdWx0Ci10aW1lIHpvbmUuCit0byBkZWZhdWx0IHRvIHVuaXZlcnNhbCB0aW1lIHdp dGggQGNvZGV7KHNldGVudiAiVFoiICJVVEMwIil9LiAgSWYKK0BlbnZ7VFp9IGlzIG5vdCBp biB0aGUgZW52aXJvbm1lbnQsIEVtYWNzIHVzZXMgc3lzdGVtIHdhbGwgY2xvY2sgdGltZSwK K3doaWNoIGlzIGEgcGxhdGZvcm0tZGVwZW5kZW50IGRlZmF1bHQgdGltZSB6b25lLgorCitA Y2luZGV4IHRpbWUgem9uZSBydWxlCitGdW5jdGlvbnMgdGhhdCBjb252ZXJ0IHRvIGFuZCBm cm9tIGxvY2FsIHRpbWUgYWNjZXB0IGFuIG9wdGlvbmFsCitAZGZue3RpbWUgem9uZSBydWxl fSBhcmd1bWVudCwgd2hpY2ggc3BlY2lmaWVzIHRoZSBjb252ZXJzaW9uJ3MgdGltZQorem9u ZSBhbmQgZGF5bGlnaHQgc2F2aW5nIHRpbWUgaGlzdG9yeS4gIElmIHRoZSB0aW1lIHpvbmUg cnVsZSBpcworb21pdHRlZCBvciBAY29kZXtuaWx9LCB0aGUgY29udmVyc2lvbiB1c2VzIEVt YWNzJ3MgZGVmYXVsdCB0aW1lIHpvbmUuCitJZiBpdCBpcyBAY29kZXt0fSwgdGhlIGNvbnZl cnNpb24gdXNlcyBVbml2ZXJzYWwgVGltZS4gIElmIGl0IGlzCitAY29kZXt3YWxsfSwgdGhl IGNvbnZlcnNpb24gdXNlcyB0aGUgc3lzdGVtIHdhbGwgY2xvY2sgdGltZS4gIElmIGl0IGlz CithIHN0cmluZywgdGhlIGNvbnZlcnNpb24gdXNlcyB0aGUgdGltZSB6b25lIHJ1bGUgZXF1 aXZhbGVudCB0byBzZXR0aW5nCitAZW52e1RafSB0byB0aGF0IHN0cmluZy4KIAogQG5vZGUg VGltZSBDb252ZXJzaW9uCiBAc2VjdGlvbiBUaW1lIENvbnZlcnNpb24KQEAgLTEzNDAsMTMg KzEzNTMsMTQgQEAgY291bnQgdGhlIG51bWJlciBvZiB5ZWFycyBzaW5jZSB0aGUgeWVhciAx IEIuQy4sIGFuZCBkbyBub3Qgc2tpcCB6ZXJvCiBhcyB0cmFkaXRpb25hbCBHcmVnb3JpYW4g eWVhcnMgZG87IGZvciBleGFtcGxlLCB0aGUgeWVhciBudW1iZXIKIEBtaW51c3t9MzcgcmVw cmVzZW50cyB0aGUgR3JlZ29yaWFuIHllYXIgMzggQi5DQC4KIAotQGRlZnVuIGRlY29kZS10 aW1lICZvcHRpb25hbCB0aW1lLXZhbHVlCitAZGVmdW4gZGVjb2RlLXRpbWUgJm9wdGlvbmFs IHRpbWUgem9uZQogVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBhIHRpbWUgdmFsdWUgaW50byBj YWxlbmRyaWNhbCBpbmZvcm1hdGlvbi4gIElmCi15b3UgZG9uJ3Qgc3BlY2lmeSBAdmFye3Rp bWUtdmFsdWV9LCBpdCBkZWNvZGVzIHRoZSBjdXJyZW50IHRpbWUuICBUaGUgcmV0dXJuCit5 b3UgZG9uJ3Qgc3BlY2lmeSBAdmFye3RpbWV9LCBpdCBkZWNvZGVzIHRoZSBjdXJyZW50IHRp bWUsIGFuZCBzaW1pbGFybHkKK0B2YXJ7em9uZX0gZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQg dGltZSB6b25lIHJ1bGUuICBUaGUgcmV0dXJuCiB2YWx1ZSBpcyBhIGxpc3Qgb2YgbmluZSBl bGVtZW50cywgYXMgZm9sbG93czoKIAogQGV4YW1wbGUKLShAdmFye3NlY29uZHN9IEB2YXJ7 bWludXRlc30gQHZhcntob3VyfSBAdmFye2RheX0gQHZhcnttb250aH0gQHZhcnt5ZWFyfSBA dmFye2Rvd30gQHZhcntkc3R9IEB2YXJ7em9uZX0pCisoQHZhcntzZWNvbmRzfSBAdmFye21p bnV0ZXN9IEB2YXJ7aG91cn0gQHZhcntkYXl9IEB2YXJ7bW9udGh9IEB2YXJ7eWVhcn0gQHZh cntkb3d9IEB2YXJ7ZHN0fSBAdmFye3V0Y29mZn0pCiBAZW5kIGV4YW1wbGUKIAogSGVyZSBp cyB3aGF0IHRoZSBlbGVtZW50cyBtZWFuOgpAQCAtMTM3MCwxMyArMTM4NCwxMyBAQCBUaGUg ZGF5IG9mIHdlZWssIGFzIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA2LCB3aGVyZSAwIHN0 YW5kcyBmb3IKIFN1bmRheS4KIEBpdGVtIGRzdAogQGNvZGV7dH0gaWYgZGF5bGlnaHQgc2F2 aW5nIHRpbWUgaXMgZWZmZWN0LCBvdGhlcndpc2UgQGNvZGV7bmlsfS4KLUBpdGVtIHpvbmUK LUFuIGludGVnZXIgaW5kaWNhdGluZyB0aGUgdGltZSB6b25lLCBhcyB0aGUgbnVtYmVyIG9m IHNlY29uZHMgZWFzdCBvZgotR3JlZW53aWNoLgorQGl0ZW0gdXRjb2ZmCitBbiBpbnRlZ2Vy IGluZGljYXRpbmcgdGhlIFVUQyBvZmZzZXQgaW4gc2Vjb25kcywgaS5lLiwgdGhlIG51bWJl ciBvZgorc2Vjb25kcyBlYXN0IG9mIEdyZWVud2ljaC4KIEBlbmQgdGFibGUKIAogQHN0cm9u Z3tDb21tb24gTGlzcCBOb3RlOn0gQ29tbW9uIExpc3AgaGFzIGRpZmZlcmVudCBtZWFuaW5n cyBmb3IKLUB2YXJ7ZG93fSBhbmQgQHZhcnt6b25lfS4KK0B2YXJ7ZG93fSBhbmQgQHZhcnt1 dGNvZmZ9LgogQGVuZCBkZWZ1bgogCiBAZGVmdW4gZW5jb2RlLXRpbWUgc2Vjb25kcyBtaW51 dGVzIGhvdXIgZGF5IG1vbnRoIHllYXIgJm9wdGlvbmFsIHpvbmUKQEAgLTEzODksMTIgKzE0 MDMsMTEgQEAgWWVhciBudW1iZXJzIGxlc3MgdGhhbiAxMDAgYXJlIG5vdCB0cmVhdGVkIHNw ZWNpYWxseS4gIElmIHlvdSB3YW50IHRoZW0KIHRvIHN0YW5kIGZvciB5ZWFycyBhYm92ZSAx OTAwLCBvciB5ZWFycyBhYm92ZSAyMDAwLCB5b3UgbXVzdCBhbHRlciB0aGVtCiB5b3Vyc2Vs ZiBiZWZvcmUgeW91IGNhbGwgQGNvZGV7ZW5jb2RlLXRpbWV9LgogCi1UaGUgb3B0aW9uYWwg YXJndW1lbnQgQHZhcnt6b25lfSBkZWZhdWx0cyB0byB0aGUgY3VycmVudCB0aW1lIHpvbmUg YW5kCi1pdHMgZGF5bGlnaHQgc2F2aW5nIHRpbWUgcnVsZXMuICBJZiBzcGVjaWZpZWQsIGl0 IGNhbiBiZSBlaXRoZXIgYSBsaXN0Ci0oYXMgeW91IHdvdWxkIGdldCBmcm9tIEBjb2Rle2N1 cnJlbnQtdGltZS16b25lfSksIGEgc3RyaW5nIGFzIGluIHRoZQotQGVudntUWn0gZW52aXJv bm1lbnQgdmFyaWFibGUsIEBjb2Rle3R9IGZvciBVbml2ZXJzYWwgVGltZSwgb3IgYW4KLWlu dGVnZXIgKGFzIHlvdSB3b3VsZCBnZXQgZnJvbSBAY29kZXtkZWNvZGUtdGltZX0pLiAgVGhl IHNwZWNpZmllZAotem9uZSBpcyB1c2VkIHdpdGhvdXQgYW55IGZ1cnRoZXIgYWx0ZXJhdGlv biBmb3IgZGF5bGlnaHQgc2F2aW5nIHRpbWUuCitUaGUgb3B0aW9uYWwgYXJndW1lbnQgQHZh cnt6b25lfSBkZWZhdWx0cyB0byB0aGUgY3VycmVudCB0aW1lIHpvbmUgcnVsZS4KK0luIGFk ZGl0aW9uIHRvIHRoZSB1c3VhbCB0aW1lIHpvbmUgcnVsZSB2YWx1ZXMsIGl0IGNhbiBhbHNv IGJlIGEgbGlzdAorKGFzIHlvdSB3b3VsZCBnZXQgZnJvbSBAY29kZXtjdXJyZW50LXRpbWUt em9uZX0pIG9yIGFuIGludGVnZXIgKGFzCitmcm9tIEBjb2Rle2RlY29kZS10aW1lfSksIGFw cGxpZWQgd2l0aG91dCBhbnkgZnVydGhlciBhbHRlcmF0aW9uIGZvcgorZGF5bGlnaHQgc2F2 aW5nIHRpbWUuCiAKIElmIHlvdSBwYXNzIG1vcmUgdGhhbiBzZXZlbiBhcmd1bWVudHMgdG8g QGNvZGV7ZW5jb2RlLXRpbWV9LCB0aGUgZmlyc3QKIHNpeCBhcmUgdXNlZCBhcyBAdmFye3Nl Y29uZHN9IHRocm91Z2ggQHZhcnt5ZWFyfSwgdGhlIGxhc3QgYXJndW1lbnQgaXMKQEAgLTE0 MzAsMTEgKzE0NDMsMTIgQEAgVGhpcyBmdW5jdGlvbiBwYXJzZXMgdGhlIHRpbWUtc3RyaW5n IEB2YXJ7c3RyaW5nfSBhbmQgcmV0dXJucyB0aGUKIGNvcnJlc3BvbmRpbmcgdGltZSB2YWx1 ZS4KIEBlbmQgZGVmdW4KIAotQGRlZnVuIGZvcm1hdC10aW1lLXN0cmluZyBmb3JtYXQtc3Ry aW5nICZvcHRpb25hbCB0aW1lLXZhbHVlIHVuaXZlcnNhbAorQGRlZnVuIGZvcm1hdC10aW1l LXN0cmluZyBmb3JtYXQtc3RyaW5nICZvcHRpb25hbCB0aW1lIHpvbmUKIAotVGhpcyBmdW5j dGlvbiBjb252ZXJ0cyBAdmFye3RpbWUtdmFsdWV9IChvciB0aGUgY3VycmVudCB0aW1lLCBp ZgotQHZhcnt0aW1lLXZhbHVlfSBpcyBvbWl0dGVkKSB0byBhIHN0cmluZyBhY2NvcmRpbmcg dG8KLUB2YXJ7Zm9ybWF0LXN0cmluZ30uICBUaGUgYXJndW1lbnQKK1RoaXMgZnVuY3Rpb24g Y29udmVydHMgQHZhcnt0aW1lfSAob3IgdGhlIGN1cnJlbnQgdGltZSwgaWYKK0B2YXJ7dGlt ZX0gaXMgb21pdHRlZCkgdG8gYSBzdHJpbmcgYWNjb3JkaW5nIHRvCitAdmFye2Zvcm1hdC1z dHJpbmd9LiAgVGhlIGNvbnZlcnNpb24gdXNlcyB0aGUgdGltZSB6b25lIHJ1bGUgQHZhcnt6 b25lfQorKG9yIHRoZSBjdXJyZW50IHRpbWUgem9uZSBydWxlLCBpZiBvbWl0dGVkKS4gIFRo ZSBhcmd1bWVudAogQHZhcntmb3JtYXQtc3RyaW5nfSBtYXkgY29udGFpbiBAc2FtcHslfS1z ZXF1ZW5jZXMgd2hpY2ggc2F5IHRvCiBzdWJzdGl0dXRlIHBhcnRzIG9mIHRoZSB0aW1lLiAg SGVyZSBpcyBhIHRhYmxlIG9mIHdoYXQgdGhlCiBAc2FtcHslfS1zZXF1ZW5jZXMgbWVhbjoK ZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggNjY2Y2NjZi4uNWJiN2Ew MCAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysrIGIvZXRjL05FV1MKQEAgLTEwMTQsNiArMTAx NCwxNSBAQCBrZXkgd29ya3MpIGJ5IHR5cGluZyDigJhBLVvigJkgYW5kIOKAmEEtXeKAmS4K ICsrKwogKiogVGltZS1yZWxhdGVkIGNoYW5nZXM6CiAKKyoqKiBUaW1lIGNvbnZlcnNpb24g ZnVuY3Rpb25zIG5vdyBhY2NlcHQgYW4gb3B0aW9uYWwgWk9ORSBhcmd1bWVudAordGhhdCBz cGVjaWZpZXMgdGhlIHRpbWUgem9uZSBydWxlcyBmb3IgY29udmVyc2lvbi4gIFpPTkUgaXMg b21pdHRlZCBvcgorbmlsIGZvciBFbWFjcyBsb2NhbCB0aW1lLCB0IGZvciBVbml2ZXJzYWwg VGltZSwg4oCYd2FsbOKAmSBmb3Igc3lzdGVtIHdhbGwKK2Nsb2NrIHRpbWUsIG9yIGEgc3Ry aW5nIGFzIGluIOKAmHNldC10aW1lLXpvbmUtcnVsZeKAmSBmb3IgYSB0aW1lIHpvbmUKK3J1 bGUuICBUaGUgYWZmZWN0ZWQgZnVuY3Rpb25zIGFyZSDigJhjdXJyZW50LXRpbWUtc3RyaW5n 4oCZLAor4oCYY3VycmVudC10aW1lLXpvbmXigJksIOKAmGRlY29kZS10aW1l4oCZLCBhbmQg 4oCYZm9ybWF0LXRpbWUtc3RyaW5n4oCZLiAgVGhlCitmdW5jdGlvbiDigJhlbmNvZGUtdGlt ZeKAmSwgd2hpY2ggYWxyZWFkeSBhY2NlcHRlZCBhIHNpbXBsZSB0aW1lIHpvbmUgcnVsZQor YXJndW1lbnQsIGhhcyBiZWVuIGV4dGVuZGVkIHRvIGFjY2VwdCBhbGwgdGhlIG5ldyBmb3Jt cy4KKwogKioqIFRpbWUtcmVsYXRlZCBmdW5jdGlvbnMgbm93IGNvbnNpc3RlbnRseSBhY2Nl cHQgbnVtYmVycwogKHJlcHJlc2VudGluZyBzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaCkgYW5k IG5pbCAocmVwcmVzZW50aW5nIHRoZQogY3VycmVudCB0aW1lKSBhcyB3ZWxsIGFzIHRoZSB1 c3VhbCBsaXN0LW9mLWludGVnZXIgcmVwcmVzZW50YXRpb24uCmRpZmYgLS1naXQgYS9saWIv Z251bGliLm1rIGIvbGliL2dudWxpYi5tawppbmRleCAyZGQwZWY4Li4xY2ExMmEyIDEwMDY0 NAotLS0gYS9saWIvZ251bGliLm1rCisrKyBiL2xpYi9nbnVsaWIubWsKQEAgLTIxLDcgKzIx LDcgQEAKICMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIGFzIHRoZSByZXN0IG9mIHRo YXQgcHJvZ3JhbS4KICMKICMgR2VuZXJhdGVkIGJ5IGdudWxpYi10b29sLgotIyBSZXByb2R1 Y2UgYnk6IGdudWxpYi10b29sIC0taW1wb3J0IC0tZGlyPS4gLS1saWI9bGliZ251IC0tc291 cmNlLWJhc2U9bGliIC0tbTQtYmFzZT1tNCAtLWRvYy1iYXNlPWRvYyAtLXRlc3RzLWJhc2U9 dGVzdHMgLS1hdXgtZGlyPWJ1aWxkLWF1eCAtLWF2b2lkPWNsb3NlIC0tYXZvaWQ9ZHVwIC0t YXZvaWQ9ZmNoZGlyIC0tYXZvaWQ9ZnN0YXQgLS1hdm9pZD1tYWxsb2MtcG9zaXggLS1hdm9p ZD1tc3ZjLWludmFsIC0tYXZvaWQ9bXN2Yy1ub3Rocm93IC0tYXZvaWQ9b3BlbiAtLWF2b2lk PW9wZW5hdC1kaWUgLS1hdm9pZD1vcGVuZGlyIC0tYXZvaWQ9cmFpc2UgLS1hdm9pZD1zYXZl LWN3ZCAtLWF2b2lkPXNlbGVjdCAtLWF2b2lkPXNpZ3Byb2NtYXNrIC0tYXZvaWQ9c3RkYXJn IC0tYXZvaWQ9c3RkYm9vbCAtLWF2b2lkPXRocmVhZGxpYiAtLW1ha2VmaWxlLW5hbWU9Z251 bGliLm1rIC0tY29uZGl0aW9uYWwtZGVwZW5kZW5jaWVzIC0tbm8tbGlidG9vbCAtLW1hY3Jv LXByZWZpeD1nbCAtLW5vLXZjLWZpbGVzIGFsbG9jYS1vcHQgYmluYXJ5LWlvIGJ5dGVzd2Fw IGMtY3R5cGUgYy1zdHJjYXNlIGNhcmVhZGxpbmthdCBjbG9zZS1zdHJlYW0gY291bnQtb25l LWJpdHMgY291bnQtdHJhaWxpbmctemVyb3MgY3J5cHRvL21kNSBjcnlwdG8vc2hhMSBjcnlw dG8vc2hhMjU2IGNyeXB0by9zaGE1MTIgZHRvYXN0ciBkdG90aW1lc3BlYyBkdXAyIGVudmly b24gZXhlY2luZm8gZmFjY2Vzc2F0IGZjbnRsIGZjbnRsLWggZmRhdGFzeW5jIGZkb3BlbmRp ciBmaWxlbW9kZSBmc3RhdGF0IGZzeW5jIGdldGxvYWRhdmcgZ2V0b3B0LWdudSBnZXR0aW1l IGdldHRpbWVvZmRheSBnaXRsb2ctdG8tY2hhbmdlbG9nIGludHByb3BzIGxhcmdlZmlsZSBs c3RhdCBtYW55d2FybmluZ3MgbWVtcmNociBta29zdGVtcCBta3RpbWUgcGlwZTIgcHNlbGVj dCBwdGhyZWFkX3NpZ21hc2sgcHV0ZW52IHFjb3B5LWFjbCByZWFkbGluayByZWFkbGlua2F0 IHNpZzJzdHIgc29ja2xlbiBzdGF0LXRpbWUgc3RkYWxpZ24gc3RkZGVmIHN0ZGlvIHN0cGNw eSBzdHJmdGltZSBzdHJ0b2ltYXggc3RydG91bWF4IHN5bWxpbmsgc3lzX3N0YXQgc3lzX3Rp bWUgdGltZSB0aW1lX3IgdGltZXItdGltZSB0aW1lc3BlYy1hZGQgdGltZXNwZWMtc3ViIHVu c2V0ZW52IHVwZGF0ZS1jb3B5cmlnaHQgdXRpbWVucyB2bGEgd2FybmluZ3MKKyMgUmVwcm9k dWNlIGJ5OiBnbnVsaWItdG9vbCAtLWltcG9ydCAtLWRpcj0uIC0tbGliPWxpYmdudSAtLXNv dXJjZS1iYXNlPWxpYiAtLW00LWJhc2U9bTQgLS1kb2MtYmFzZT1kb2MgLS10ZXN0cy1iYXNl PXRlc3RzIC0tYXV4LWRpcj1idWlsZC1hdXggLS1hdm9pZD1jbG9zZSAtLWF2b2lkPWR1cCAt LWF2b2lkPWZjaGRpciAtLWF2b2lkPWZsZXhtZW1iZXIgLS1hdm9pZD1mc3RhdCAtLWF2b2lk PW1hbGxvYy1wb3NpeCAtLWF2b2lkPW1zdmMtaW52YWwgLS1hdm9pZD1tc3ZjLW5vdGhyb3cg LS1hdm9pZD1vcGVuIC0tYXZvaWQ9b3BlbmF0LWRpZSAtLWF2b2lkPW9wZW5kaXIgLS1hdm9p ZD1yYWlzZSAtLWF2b2lkPXNhdmUtY3dkIC0tYXZvaWQ9c2VsZWN0IC0tYXZvaWQ9c2V0ZW52 IC0tYXZvaWQ9c2lncHJvY21hc2sgLS1hdm9pZD1zdGRhcmcgLS1hdm9pZD1zdGRib29sIC0t YXZvaWQ9dGhyZWFkbGliIC0tYXZvaWQ9dW5zZXRlbnYgLS1tYWtlZmlsZS1uYW1lPWdudWxp Yi5tayAtLWNvbmRpdGlvbmFsLWRlcGVuZGVuY2llcyAtLW5vLWxpYnRvb2wgLS1tYWNyby1w cmVmaXg9Z2wgLS1uby12Yy1maWxlcyBhbGxvY2Etb3B0IGJpbmFyeS1pbyBieXRlc3dhcCBj LWN0eXBlIGMtc3RyY2FzZSBjYXJlYWRsaW5rYXQgY2xvc2Utc3RyZWFtIGNvdW50LW9uZS1i aXRzIGNvdW50LXRyYWlsaW5nLXplcm9zIGNyeXB0by9tZDUgY3J5cHRvL3NoYTEgY3J5cHRv L3NoYTI1NiBjcnlwdG8vc2hhNTEyIGR0b2FzdHIgZHRvdGltZXNwZWMgZHVwMiBlbnZpcm9u IGV4ZWNpbmZvIGZhY2Nlc3NhdCBmY250bCBmY250bC1oIGZkYXRhc3luYyBmZG9wZW5kaXIg ZmlsZW1vZGUgZnN0YXRhdCBmc3luYyBnZXRsb2FkYXZnIGdldG9wdC1nbnUgZ2V0dGltZSBn ZXR0aW1lb2ZkYXkgZ2l0bG9nLXRvLWNoYW5nZWxvZyBpbnRwcm9wcyBsYXJnZWZpbGUgbHN0 YXQgbWFueXdhcm5pbmdzIG1lbXJjaHIgbWtvc3RlbXAgbWt0aW1lIHBpcGUyIHBzZWxlY3Qg cHRocmVhZF9zaWdtYXNrIHB1dGVudiBxY29weS1hY2wgcmVhZGxpbmsgcmVhZGxpbmthdCBz aWcyc3RyIHNvY2tsZW4gc3RhdC10aW1lIHN0ZGFsaWduIHN0ZGRlZiBzdGRpbyBzdHBjcHkg c3RyZnRpbWUgc3RydG9pbWF4IHN0cnRvdW1heCBzeW1saW5rIHN5c19zdGF0IHN5c190aW1l IHRpbWUgdGltZV9yIHRpbWVfcnogdGltZWdtIHRpbWVyLXRpbWUgdGltZXNwZWMtYWRkIHRp bWVzcGVjLXN1YiB1bnNldGVudiB1cGRhdGUtY29weXJpZ2h0IHV0aW1lbnMgdmxhIHdhcm5p bmdzCiAKIAogTU9TVExZQ0xFQU5GSUxFUyArPSBjb3JlICouc3RhY2tkdW1wCkBAIC02NTUs NiArNjU1LDE3IEBAIEVYVFJBX2xpYmdudV9hX1NPVVJDRVMgKz0gbWt0aW1lLmMKIAogIyMg ZW5kICAgZ251bGliIG1vZHVsZSBta3RpbWUKIAorIyMgYmVnaW4gZ251bGliIG1vZHVsZSBt a3RpbWUtaW50ZXJuYWwKKworaWYgZ2xfR05VTElCX0VOQUJMRURfNTI2NDI5NGFhMGE1NTU3 NTQxYjUzYzhjNzQxZjdmMzEKKworZW5kaWYKK0VYVFJBX0RJU1QgKz0gbWt0aW1lLWludGVy bmFsLmggbWt0aW1lLmMKKworRVhUUkFfbGliZ251X2FfU09VUkNFUyArPSBta3RpbWUuYwor CisjIyBlbmQgICBnbnVsaWIgbW9kdWxlIG1rdGltZS1pbnRlcm5hbAorCiAjIyBiZWdpbiBn bnVsaWIgbW9kdWxlIG9wZW5hdC1oCiAKIGlmIGdsX0dOVUxJQl9FTkFCTEVEXzAzZTBhYWFk NGNiODljYTc1NzY1M2JkMzY3YTZjY2I3CkBAIC0xNTg5LDEwICsxNjAwLDEyIEBAIHRpbWUu aDogdGltZS5pbi5oICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoQ1hYREVGU19I KSAkKEFSR19OT05OVUxMX0gpICQoCiAJICAgICAgLWUgJ3MvQCcnR05VTElCX1NUUlBUSU1F JydALyQoR05VTElCX1NUUlBUSU1FKS9nJyBcCiAJICAgICAgLWUgJ3MvQCcnR05VTElCX1RJ TUVHTScnQC8kKEdOVUxJQl9USU1FR00pL2cnIFwKIAkgICAgICAtZSAncy9AJydHTlVMSUJf VElNRV9SJydALyQoR05VTElCX1RJTUVfUikvZycgXAorCSAgICAgIC1lICdzL0AnJ0dOVUxJ Ql9USU1FX1JaJydALyQoR05VTElCX1RJTUVfUlopL2cnIFwKIAkgICAgICAtZSAnc3xAJydI QVZFX0RFQ0xfTE9DQUxUSU1FX1InJ0B8JChIQVZFX0RFQ0xfTE9DQUxUSU1FX1IpfGcnIFwK IAkgICAgICAtZSAnc3xAJydIQVZFX05BTk9TTEVFUCcnQHwkKEhBVkVfTkFOT1NMRUVQKXxn JyBcCiAJICAgICAgLWUgJ3N8QCcnSEFWRV9TVFJQVElNRScnQHwkKEhBVkVfU1RSUFRJTUUp fGcnIFwKIAkgICAgICAtZSAnc3xAJydIQVZFX1RJTUVHTScnQHwkKEhBVkVfVElNRUdNKXxn JyBcCisJICAgICAgLWUgJ3N8QCcnSEFWRV9USU1FWk9ORV9UJydAfCQoSEFWRV9USU1FWk9O RV9UKXxnJyBcCiAJICAgICAgLWUgJ3N8QCcnUkVQTEFDRV9HTVRJTUUnJ0B8JChSRVBMQUNF X0dNVElNRSl8ZycgXAogCSAgICAgIC1lICdzfEAnJ1JFUExBQ0VfTE9DQUxUSU1FJydAfCQo UkVQTEFDRV9MT0NBTFRJTUUpfGcnIFwKIAkgICAgICAtZSAnc3xAJydSRVBMQUNFX0xPQ0FM VElNRV9SJydAfCQoUkVQTEFDRV9MT0NBTFRJTUVfUil8ZycgXApAQCAtMTYyNCw2ICsxNjM3 LDI0IEBAIEVYVFJBX2xpYmdudV9hX1NPVVJDRVMgKz0gdGltZV9yLmMKIAogIyMgZW5kICAg Z251bGliIG1vZHVsZSB0aW1lX3IKIAorIyMgYmVnaW4gZ251bGliIG1vZHVsZSB0aW1lX3J6 CisKKworRVhUUkFfRElTVCArPSB0aW1lX3J6LmMKKworRVhUUkFfbGliZ251X2FfU09VUkNF UyArPSB0aW1lX3J6LmMKKworIyMgZW5kICAgZ251bGliIG1vZHVsZSB0aW1lX3J6CisKKyMj IGJlZ2luIGdudWxpYiBtb2R1bGUgdGltZWdtCisKKworRVhUUkFfRElTVCArPSBta3RpbWUt aW50ZXJuYWwuaCB0aW1lZ20uYworCitFWFRSQV9saWJnbnVfYV9TT1VSQ0VTICs9IHRpbWVn bS5jCisKKyMjIGVuZCAgIGdudWxpYiBtb2R1bGUgdGltZWdtCisKICMjIGJlZ2luIGdudWxp YiBtb2R1bGUgdGltZXNwZWMKIAogbGliZ251X2FfU09VUkNFUyArPSB0aW1lc3BlYy5jCkBA IC0xODA2LDE1ICsxODM3LDYgQEAgRVhUUkFfRElTVCArPSB1bmlzdGQuaW4uaAogCiAjIyBl bmQgICBnbnVsaWIgbW9kdWxlIHVuaXN0ZAogCi0jIyBiZWdpbiBnbnVsaWIgbW9kdWxlIHVu c2V0ZW52Ci0KLQotRVhUUkFfRElTVCArPSB1bnNldGVudi5jCi0KLUVYVFJBX2xpYmdudV9h X1NPVVJDRVMgKz0gdW5zZXRlbnYuYwotCi0jIyBlbmQgICBnbnVsaWIgbW9kdWxlIHVuc2V0 ZW52Ci0KICMjIGJlZ2luIGdudWxpYiBtb2R1bGUgdXBkYXRlLWNvcHlyaWdodAogCiAKZGlm ZiAtLWdpdCBhL2xpYi9zdHJmdGltZS5jIGIvbGliL3N0cmZ0aW1lLmMKaW5kZXggMjQyNmFh ZS4uYzdjZWMyNiAxMDA2NDQKLS0tIGEvbGliL3N0cmZ0aW1lLmMKKysrIGIvbGliL3N0cmZ0 aW1lLmMKQEAgLTEyMSwyMiArMTIxLDExIEBAIGV4dGVybiBjaGFyICp0em5hbWVbXTsKIAog CiAjaWZkZWYgX0xJQkMKKyMgZGVmaW5lIG1rdGltZV96KHR6LCB0bSkgbWt0aW1lICh0bSkK ICMgZGVmaW5lIHR6bmFtZSBfX3R6bmFtZQogIyBkZWZpbmUgdHpzZXQgX190enNldAogI2Vu ZGlmCiAKLSNpZiAhSEFWRV9UTV9HTVRPRkYKLS8qIFBvcnRhYmxlIHN0YW5kYWxvbmUgYXBw bGljYXRpb25zIHNob3VsZCBzdXBwbHkgYSAidGltZS5oIiB0aGF0Ci0gICBkZWNsYXJlcyBh IFBPU0lYLWNvbXBsaWFudCBsb2NhbHRpbWVfciwgZm9yIHRoZSBiZW5lZml0IG9mIG9sZGVy Ci0gICBpbXBsZW1lbnRhdGlvbnMgdGhhdCBsYWNrIGxvY2FsdGltZV9yIG9yIGhhdmUgYSBu b25zdGFuZGFyZCBvbmUuCi0gICBTZWUgdGhlIGdudWxpYiB0aW1lX3IgbW9kdWxlIGZvciBv bmUgd2F5IHRvIGltcGxlbWVudCB0aGlzLiAgKi8KLSMgdW5kZWYgX19nbXRpbWVfcgotIyB1 bmRlZiBfX2xvY2FsdGltZV9yCi0jIGRlZmluZSBfX2dtdGltZV9yIGdtdGltZV9yCi0jIGRl ZmluZSBfX2xvY2FsdGltZV9yIGxvY2FsdGltZV9yCi0jZW5kaWYKLQotCiAjaWZuZGVmIEZQ UklOVEZUSU1FCiAjIGRlZmluZSBGUFJJTlRGVElNRSAwCiAjZW5kaWYKQEAgLTM4NSwxMiAr Mzc0LDcgQEAgaXNvX3dlZWtfZGF5cyAoaW50IHlkYXksIGludCB3ZGF5KQogCiAvKiBXaGVu IGNvbXBpbGluZyB0aGlzIGZpbGUsIEdOVSBhcHBsaWNhdGlvbnMgY2FuICNkZWZpbmUgbXlf c3RyZnRpbWUKICAgIHRvIGEgc3ltYm9sICh0eXBpY2FsbHkgbnN0cmZ0aW1lKSB0byBnZXQg YW4gZXh0ZW5kZWQgc3RyZnRpbWUgd2l0aAotICAgZXh0cmEgYXJndW1lbnRzIFVUIGFuZCBO Uy4gIEVtYWNzIGlzIGEgc3BlY2lhbCBjYXNlIGZvciBub3csIGJ1dAotICAgdGhpcyBFbWFj cy1zcGVjaWZpYyBjb2RlIGNhbiBiZSByZW1vdmVkIG9uY2UgRW1hY3MncyBjb25maWcuaAot ICAgZGVmaW5lcyBteV9zdHJmdGltZS4gICovCi0jaWYgZGVmaW5lZCBlbWFjcyAmJiAhZGVm aW5lZCBteV9zdHJmdGltZQotIyBkZWZpbmUgbXlfc3RyZnRpbWUgbnN0cmZ0aW1lCi0jZW5k aWYKKyAgIGV4dHJhIGFyZ3VtZW50cyBUWiBhbmQgTlMuICAqLwogCiAjaWYgRlBSSU5URlRJ TUUKICMgdW5kZWYgbXlfc3RyZnRpbWUKQEAgLTM5OCw4ICszODIsOSBAQCBpc29fd2Vla19k YXlzIChpbnQgeWRheSwgaW50IHdkYXkpCiAjZW5kaWYKIAogI2lmZGVmIG15X3N0cmZ0aW1l Ci0jIGRlZmluZSBleHRyYV9hcmdzICwgdXQsIG5zCi0jIGRlZmluZSBleHRyYV9hcmdzX3Nw ZWMgLCBpbnQgdXQsIGludCBucworIyB1bmRlZiBIQVZFX1RaU0VUCisjIGRlZmluZSBleHRy YV9hcmdzICwgdHosIG5zCisjIGRlZmluZSBleHRyYV9hcmdzX3NwZWMgLCB0aW1lem9uZV90 IHR6LCBpbnQgbnMKICNlbHNlCiAjIGlmIGRlZmluZWQgQ09NUElMRV9XSURFCiAjICBkZWZp bmUgbXlfc3RyZnRpbWUgd2NzZnRpbWUKQEAgLTQxMSw3ICszOTYsNyBAQCBpc29fd2Vla19k YXlzIChpbnQgeWRheSwgaW50IHdkYXkpCiAjIGRlZmluZSBleHRyYV9hcmdzCiAjIGRlZmlu ZSBleHRyYV9hcmdzX3NwZWMKIC8qIFdlIGRvbid0IGhhdmUgdGhpcyBpbmZvcm1hdGlvbiBp biBnZW5lcmFsLiAgKi8KLSMgZGVmaW5lIHV0IDAKKyMgZGVmaW5lIHR6IDEKICMgZGVmaW5l IG5zIDAKICNlbmRpZgogCkBAIC00ODMsNyArNDY4LDcgQEAgc3RyZnRpbWVfY2FzZV8gKGJv b2wgdXBjYXNlLCBTVFJFQU1fT1JfQ0hBUl9UICpzLAogICB6b25lID0gKGNvbnN0IGNoYXIg KikgdHAtPnRtX3pvbmU7CiAjZW5kaWYKICNpZiBIQVZFX1RaTkFNRQotICBpZiAodXQpCisg IGlmICghdHopCiAgICAgewogICAgICAgaWYgKCEgKHpvbmUgJiYgKnpvbmUpKQogICAgICAg ICB6b25lID0gIkdNVCI7CkBAIC00OTYsNyArNDgxLDEyIEBAIHN0cmZ0aW1lX2Nhc2VfIChi b29sIHVwY2FzZSwgU1RSRUFNX09SX0NIQVJfVCAqcywKICAgICAgIHR6c2V0ICgpOwogIyBl bmRpZgogICAgIH0KKyAgLyogVGhlIHR6c2V0KCkgY2FsbCBtaWdodCBoYXZlIGNoYW5nZWQg dGhlIHZhbHVlLiAgKi8KKyAgaWYgKCEoem9uZSAmJiAqem9uZSkgJiYgdHAtPnRtX2lzZHN0 ID49IDApCisgICAgem9uZSA9IHR6bmFtZVt0cC0+dG1faXNkc3QgIT0gMF07CiAjZW5kaWYK KyAgaWYgKCEgem9uZSkKKyAgICB6b25lID0gIiI7CiAKICAgaWYgKGhvdXIxMiA+IDEyKQog ICAgIGhvdXIxMiAtPSAxMjsKQEAgLTExNDQsNyArMTEzNCw3IEBAIHN0cmZ0aW1lX2Nhc2Vf IChib29sIHVwY2FzZSwgU1RSRUFNX09SX0NIQVJfVCAqcywKICAgICAgICAgICAgIHRpbWVf dCB0OwogCiAgICAgICAgICAgICBsdG0gPSAqdHA7Ci0gICAgICAgICAgICB0ID0gbWt0aW1l ICgmbHRtKTsKKyAgICAgICAgICAgIHQgPSBta3RpbWVfeiAodHosICZsdG0pOwogCiAgICAg ICAgICAgICAvKiBHZW5lcmF0ZSBzdHJpbmcgdmFsdWUgZm9yIFQgdXNpbmcgdGltZV90IGFy aXRobWV0aWM7CiAgICAgICAgICAgICAgICB0aGlzIHdvcmtzIGV2ZW4gaWYgc2l6ZW9mIChs b25nKSA8IHNpemVvZiAodGltZV90KS4gICovCkBAIC0xMzE5LDE0ICsxMzA5LDYgQEAgc3Ry ZnRpbWVfY2FzZV8gKGJvb2wgdXBjYXNlLCBTVFJFQU1fT1JfQ0hBUl9UICpzLAogICAgICAg ICAgICAgICB0b19sb3djYXNlID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotI2lmIEhBVkVf VFpOQU1FCi0gICAgICAgICAgLyogVGhlIHR6c2V0KCkgY2FsbCBtaWdodCBoYXZlIGNoYW5n ZWQgdGhlIHZhbHVlLiAgKi8KLSAgICAgICAgICBpZiAoISh6b25lICYmICp6b25lKSAmJiB0 cC0+dG1faXNkc3QgPj0gMCkKLSAgICAgICAgICAgIHpvbmUgPSB0em5hbWVbdHAtPnRtX2lz ZHN0ICE9IDBdOwotI2VuZGlmCi0gICAgICAgICAgaWYgKCEgem9uZSkKLSAgICAgICAgICAg IHpvbmUgPSAiIjsKLQogI2lmZGVmIENPTVBJTEVfV0lERQogICAgICAgICAgIHsKICAgICAg ICAgICAgIC8qIFRoZSB6b25lIHN0cmluZyBpcyBhbHdheXMgZ2l2ZW4gaW4gbXVsdGlieXRl IGZvcm0uICBXZSBoYXZlCkBAIC0xMzY2LDcgKzEzNDgsNyBAQCBzdHJmdGltZV9jYXNlXyAo Ym9vbCB1cGNhc2UsIFNUUkVBTV9PUl9DSEFSX1QgKnMsCiAjaWYgSEFWRV9UTV9HTVRPRkYK ICAgICAgICAgICAgIGRpZmYgPSB0cC0+dG1fZ210b2ZmOwogI2Vsc2UKLSAgICAgICAgICAg IGlmICh1dCkKKyAgICAgICAgICAgIGlmICghdHopCiAgICAgICAgICAgICAgIGRpZmYgPSAw OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICB7CkBAIC0xMzc1LDcgKzEzNTcs NyBAQCBzdHJmdGltZV9jYXNlXyAoYm9vbCB1cGNhc2UsIFNUUkVBTV9PUl9DSEFSX1QgKnMs CiAgICAgICAgICAgICAgICAgdGltZV90IGx0OwogCiAgICAgICAgICAgICAgICAgbHRtID0g KnRwOwotICAgICAgICAgICAgICAgIGx0ID0gbWt0aW1lICgmbHRtKTsKKyAgICAgICAgICAg ICAgICBsdCA9IG1rdGltZV96ICh0eiwgJmx0bSk7CiAKICAgICAgICAgICAgICAgICBpZiAo bHQgPT0gKHRpbWVfdCkgLTEpCiAgICAgICAgICAgICAgICAgICB7CkBAIC0xMzg0LDcgKzEz NjYsNyBAQCBzdHJmdGltZV9jYXNlXyAoYm9vbCB1cGNhc2UsIFNUUkVBTV9PUl9DSEFSX1Qg KnMsCiAgICAgICAgICAgICAgICAgICAgICAgIG9jY3VycmVkLiAgKi8KICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHRtIHRtOwogCi0gICAgICAgICAgICAgICAgICAgIGlmICghIF9f bG9jYWx0aW1lX3IgKCZsdCwgJnRtKQorICAgICAgICAgICAgICAgICAgICBpZiAoISBsb2Nh bHRpbWVfcnogKHR6LCAmbHQsICZ0bSkKICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICgo bHRtLnRtX3NlYyBeIHRtLnRtX3NlYykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IChsdG0udG1fbWluIF4gdG0udG1fbWluKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgKGx0bS50bV9ob3VyIF4gdG0udG1faG91cikKQEAgLTEzOTQsNyArMTM3Niw3IEBAIHN0 cmZ0aW1lX2Nhc2VfIChib29sIHVwY2FzZSwgU1RSRUFNX09SX0NIQVJfVCAqcywKICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAg ICAgICAgICAgIGlmICghIF9fZ210aW1lX3IgKCZsdCwgJmd0bSkpCisgICAgICAgICAgICAg ICAgaWYgKCEgbG9jYWx0aW1lX3J6ICgwLCAmbHQsICZndG0pKQogICAgICAgICAgICAgICAg ICAgYnJlYWs7CiAKICAgICAgICAgICAgICAgICBkaWZmID0gdG1fZGlmZiAoJmx0bSwgJmd0 bSk7CkBAIC0xNDczLDE1ICsxNDU1LDMgQEAgbXlfc3RyZnRpbWUgKFNUUkVBTV9PUl9DSEFS X1QgKnMsIFNUUkZUSU1FX0FSRyAoc2l6ZV90IG1heHNpemUpCiAjaWYgZGVmaW5lZCBfTElC QyAmJiAhIEZQUklOVEZUSU1FCiBsaWJjX2hpZGRlbl9kZWYgKG15X3N0cmZ0aW1lKQogI2Vu ZGlmCi0KLQotI2lmIGRlZmluZWQgZW1hY3MgJiYgISBGUFJJTlRGVElNRQotLyogRm9yIEVt YWNzIHdlIGhhdmUgYSBzZXBhcmF0ZSBpbnRlcmZhY2Ugd2hpY2ggY29ycmVzcG9uZHMgdG8g dGhlIG5vcm1hbAotICAgc3RyZnRpbWUgZnVuY3Rpb24gcGx1cyB0aGUgdXQgYXJndW1lbnQs IGJ1dCB3aXRob3V0IHRoZSBucyBhcmd1bWVudC4gICovCi1zaXplX3QKLWVtYWNzX3N0cmZ0 aW1ldSAoY2hhciAqcywgc2l6ZV90IG1heHNpemUsIGNvbnN0IGNoYXIgKmZvcm1hdCwKLSAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHRtICp0cCwgaW50IHV0KQotewotICByZXR1 cm4gbXlfc3RyZnRpbWUgKHMsIG1heHNpemUsIGZvcm1hdCwgdHAsIHV0LCAwKTsKLX0KLSNl bmRpZgpkaWZmIC0tZ2l0IGEvbGliL3N0cmZ0aW1lLmggYi9saWIvc3RyZnRpbWUuaAppbmRl eCAzOTY3YWZjLi4yY2U2Y2M1IDEwMDY0NAotLS0gYS9saWIvc3RyZnRpbWUuaAorKysgYi9s aWIvc3RyZnRpbWUuaApAQCAtMjMsMTEgKzIzLDEwIEBAIGV4dGVybiAiQyIgewogCiAvKiBK dXN0IGxpa2Ugc3RyZnRpbWUsIGJ1dCB3aXRoIHR3byBtb3JlIGFyZ3VtZW50czoKICAgIFBP U0lYIHJlcXVpcmVzIHRoYXQgc3RyZnRpbWUgdXNlIHRoZSBsb2NhbCB0aW1lem9uZSBpbmZv cm1hdGlvbi4KLSAgIFdoZW4gX19VVEMgaXMgbm9uemVybyBhbmQgdG0tPnRtX3pvbmUgaXMg TlVMTCBvciB0aGUgZW1wdHkgc3RyaW5nLAotICAgdXNlIFVUQyBpbnN0ZWFkLiAgVXNlIF9f TlMgYXMgdGhlIG51bWJlciBvZiBuYW5vc2Vjb25kcyBpbiB0aGUKLSAgICVOIGRpcmVjdGl2 ZS4gICovCisgICBVc2UgdGhlIHRpbWV6b25lIF9fVFogaW5zdGVhZC4gIFVzZSBfX05TIGFz IHRoZSBudW1iZXIgb2YKKyAgIG5hbm9zZWNvbmRzIGluIHRoZSAlTiBkaXJlY3RpdmUuICAq Lwogc2l6ZV90IG5zdHJmdGltZSAoY2hhciAqLCBzaXplX3QsIGNoYXIgY29uc3QgKiwgc3Ry dWN0IHRtIGNvbnN0ICosCi0gICAgICAgICAgICAgICAgICBpbnQgX191dGMsIGludCBfX25z KTsKKyAgICAgICAgICAgICAgICAgIHRpbWV6b25lX3QgX190eiwgaW50IF9fbnMpOwogCiAj aWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL2xpYi90aW1lLmluLmggYi9saWIv dGltZS5pbi5oCmluZGV4IDFhNmI3NDYuLmE5ODNmNDkgMTAwNjQ0Ci0tLSBhL2xpYi90aW1l LmluLmgKKysrIGIvbGliL3RpbWUuaW4uaApAQCAtMjMxLDYgKzIzMSwyNSBAQCBfR0xfQ1hY QUxJQVNfU1lTIChzdHJwdGltZSwgY2hhciAqLCAoY2hhciBjb25zdCAqcmVzdHJpY3QgX19i dWYsCiBfR0xfQ1hYQUxJQVNXQVJOIChzdHJwdGltZSk7CiAjIGVuZGlmCiAKKyMgaWYgZGVm aW5lZCBfR05VX1NPVVJDRSAmJiBAR05VTElCX1RJTUVfUlpAICYmICEgQEhBVkVfVElNRVpP TkVfVEAKK3R5cGVkZWYgc3RydWN0IHRtX3pvbmUgKnRpbWV6b25lX3Q7CitfR0xfRlVOQ0RF Q0xfU1lTICh0emFsbG9jLCB0aW1lem9uZV90LCAoY2hhciBjb25zdCAqX19uYW1lKSk7Citf R0xfQ1hYQUxJQVNfU1lTICh0emFsbG9jLCB0aW1lem9uZV90LCAoY2hhciBjb25zdCAqX19u YW1lKSk7CitfR0xfRlVOQ0RFQ0xfU1lTICh0emZyZWUsIHZvaWQsICh0aW1lem9uZV90IF9f dHopKTsKK19HTF9DWFhBTElBU19TWVMgKHR6ZnJlZSwgdm9pZCwgKHRpbWV6b25lX3QgX190 eikpOworX0dMX0ZVTkNERUNMX1NZUyAobG9jYWx0aW1lX3J6LCBzdHJ1Y3QgdG0gKiwKKyAg ICAgICAgICAgICAgICAgICh0aW1lem9uZV90IF9fdHosIHRpbWVfdCBjb25zdCAqcmVzdHJp Y3QgX190aW1lciwKKyAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0gKnJlc3RyaWN0IF9f cmVzdWx0KSBfR0xfQVJHX05PTk5VTEwgKCgyLCAzKSkpOworX0dMX0NYWEFMSUFTX1NZUyAo bG9jYWx0aW1lX3J6LCBzdHJ1Y3QgdG0gKiwKKyAgICAgICAgICAgICAgICAgICh0aW1lem9u ZV90IF9fdHosIHRpbWVfdCBjb25zdCAqcmVzdHJpY3QgX190aW1lciwKKyAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgdG0gKnJlc3RyaWN0IF9fcmVzdWx0KSk7CitfR0xfRlVOQ0RFQ0xf U1lTIChta3RpbWVfeiwgdGltZV90LAorICAgICAgICAgICAgICAgICAgKHRpbWV6b25lX3Qg X190eiwgc3RydWN0IHRtICpyZXN0cmljdCBfX3Jlc3VsdCkKKyAgICAgICAgICAgICAgICAg IF9HTF9BUkdfTk9OTlVMTCAoKDIpKSk7CitfR0xfQ1hYQUxJQVNfU1lTIChta3RpbWVfeiwg dGltZV90LAorICAgICAgICAgICAgICAgICAgKHRpbWV6b25lX3QgX190eiwgc3RydWN0IHRt ICpyZXN0cmljdCBfX3Jlc3VsdCkpOworIyBlbmRpZgorCiAvKiBDb252ZXJ0IFRNIHRvIGEg dGltZV90IHZhbHVlLCBhc3N1bWluZyBVVEMuICAqLwogIyBpZiBAR05VTElCX1RJTUVHTUAK ICMgIGlmIEBSRVBMQUNFX1RJTUVHTUAKZGlmZiAtLWdpdCBhL2xpYi90aW1lX3J6LmMgYi9s aWIvdGltZV9yei5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhNGQ3 ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvdGltZV9yei5jCkBAIC0wLDAgKzEsMzc0IEBA CisvKiBUaW1lIHpvbmUgZnVuY3Rpb25zIHN1Y2ggYXMgdHphbGxvYyBhbmQgbG9jYWx0aW1l X3J6CisKKyAgIENvcHlyaWdodCAyMDE1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyIG9w dGlvbikKKyAgIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZworICAgd2l0aCB0aGlzIHByb2dy YW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisK Ky8qIFdyaXR0ZW4gYnkgUGF1bCBFZ2dlcnQuICAqLworCisvKiBBbHRob3VnaCB0aGlzIG1v ZHVsZSBpcyBub3QgdGhyZWFkLXNhZmUsIGFueSByYWNlcyBzaG91bGQgYmUgZmFpcmx5Cisg ICByYXJlIGFuZCByZWFzb25hYmx5IGJlbmlnbi4gIEZvciBjb21wbGV0ZSB0aHJlYWQtc2Fm ZXR5LCB1c2UgYSBDCisgICBsaWJyYXJ5IHdpdGggYSB3b3JraW5nIHRpbWV6b25lX3QgdHlw ZSwgc28gdGhhdCB0aGlzIG1vZHVsZSBpcyBub3QKKyAgIG5lZWRlZC4gICovCisKKyNpbmNs dWRlIDxjb25maWcuaD4KKworI2luY2x1ZGUgPHRpbWUuaD4KKworI2luY2x1ZGUgPGVycm5v Lmg+CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1 ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaWYgIUhBVkVfVFpTRVQK K3N0YXRpYyB2b2lkIHR6c2V0ICh2b2lkKSB7IH0KKyNlbmRpZgorCisvKiBBIHRpbWUgem9u ZSBydWxlLiAgKi8KK3N0cnVjdCB0bV96b25lCit7CisgIC8qIE1vcmUgYWJicmV2aWF0aW9u cywgc2hvdWxkIHRoZXkgYmUgbmVlZGVkLiAgVGhlaXIgVFpfSVNfU0VUCisgICAgIG1lbWJl cnMgYXJlIHplcm8uICAqLworICB0aW1lem9uZV90IG5leHQ7CisKKyAgLyogSWYgbm9uemVy bywgdGhlIHJ1bGUgcmVwcmVzZW50cyB0aGUgVFogZW52aXJvbm1lbnQgdmFyaWFibGUgc2V0 CisgICAgIHRvIHRoZSBmaXJzdCAiYWJicmV2aWF0aW9uIiAodGhpcyBtYXkgYmUgdGhlIGVt cHR5IHN0cmluZykuCisgICAgIE90aGVyd2lzZSwgaXQgcmVwcmVzZW50cyBhbiB1bnNldCBU Wi4gICovCisgIGNoYXIgdHpfaXNfc2V0OworCisgIC8qIEEgc2VxdWVuY2Ugb2YgbnVsbC10 ZXJtaW5hdGVkIHN0cmluZ3MgcGFja2VkIG5leHQgdG8gZWFjaCBvdGhlci4KKyAgICAgVGhl IHN0cmluZ3MgYXJlIGZvbGxvd2VkIGJ5IGFuIGV4dHJhIG51bGwgYnl0ZS4gIElmIFRaX0lT X1NFVCwKKyAgICAgdGhlcmUgbXVzdCBiZSBhdCBsZWFzdCBvbmUgc3RyaW5nIGFuZCB0aGUg Zmlyc3Qgc3RyaW5nICh3aGljaCBpcworICAgICBhY3R1YWxseSBhIFRaIGVudmlyb25tZW50 IHZhbHVlIHZhbHVlKSBtYXkgYmUgZW1wdHkuICBPdGhlcndpc2UKKyAgICAgYWxsIHN0cmlu Z3MgbXVzdCBiZSBub25lbXB0eS4KKworICAgICBBYmJyZXZpYXRpb25zIGFyZSBzdG9yZWQg aGVyZSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgdmFsdWVzIG9mCisgICAgIHRtX3pvbmUgYW5k L29yIHR6bmFtZSB3b3VsZCBiZSBkZWFkIGFmdGVyIGNoYW5naW5nIFRaIGFuZCBjYWxsaW5n CisgICAgIHR6c2V0LiAgQWJicmV2aWF0aW9ucyBuZXZlciBtb3ZlIG9uY2UgYWxsb2NhdGVk LCBhbmQgYXJlIGxpdmUKKyAgICAgdW50aWwgdHpmcmVlIGlzIGNhbGxlZC4gICovCisgIGNo YXIgYWJicnNbRkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKK307CisKKy8qIFRoZSBhcHByb3hp bWF0ZSBzaXplIHRvIHVzZSBmb3Igc21hbGwgYWxsb2NhdGlvbiByZXF1ZXN0cy4gIFRoaXMg aXMKKyAgIHRoZSBsYXJnZXN0ICJzbWFsbCIgcmVxdWVzdCBmb3IgdGhlIEdOVSBDIGxpYnJh cnkgbWFsbG9jLiAgKi8KK2VudW0geyBERUZBVUxUX01YRkFTVCA9IDY0ICogc2l6ZW9mIChz aXplX3QpIC8gNCB9OworCisvKiBNaW5pbXVtIHNpemUgb2YgdGhlIEFCQlJTIG1lbWJlciBv ZiBzdHJ1Y3QgYWJici4gIEFCQlJTIGlzIGxhcmdlcgorICAgb25seSBpbiB0aGUgdW5saWtl bHkgY2FzZSB3aGVyZSBhbiBhYmJyZXZpYXRpb24gbG9uZ2VyIHRoYW4gdGhpcyBpcworICAg dXNlZC4gICovCitlbnVtIHsgQUJCUl9TSVpFX01JTiA9IERFRkFVTFRfTVhGQVNUIC0gb2Zm c2V0b2YgKHN0cnVjdCB0bV96b25lLCBhYmJycykgfTsKKworc3RhdGljIGNoYXIgY29uc3Qg VFpbXSA9ICJUWiI7CisKKy8qIE1hZ2ljIGNvb2tpZSB0aW1lem9uZV90IHZhbHVlLCBmb3Ig bG9jYWwgdGltZS4gIEl0IGRpZmZlcnMgZnJvbQorICAgTlVMTCBhbmQgZnJvbSBhbGwgb3Ro ZXIgdGltZXpvbmVfdCB2YWx1ZXMuICBPbmx5IHRoZSBhZGRyZXNzCisgICBtYXR0ZXJzOyB0 aGUgcG9pbnRlciBpcyBuZXZlciBkZXJlZmVyZW5jZWQuICAqLworc3RhdGljIHRpbWV6b25l X3QgY29uc3QgbG9jYWxfdHogPSAodGltZXpvbmVfdCkgMTsKKworI2lmIEhBVkVfVE1fWk9O RSB8fCBIQVZFX1RaTkFNRQorCisvKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgdmFsdWVzIEEgYW5k IEIgZGlmZmVyIGFjY29yZGluZyB0byB0aGUgcnVsZXMgZm9yCisgICB0bV9pc2RzdDogQSBh bmQgQiBkaWZmZXIgaWYgb25lIGlzIHplcm8gYW5kIHRoZSBvdGhlciBwb3NpdGl2ZS4gICov CitzdGF0aWMgYm9vbAoraXNkc3RfZGlmZmVyIChpbnQgYSwgaW50IGIpCit7CisgIHJldHVy biAhYSAhPSAhYiAmJiAwIDw9IGEgJiYgMCA8PSBiOworfQorCisvKiBSZXR1cm4gdHJ1ZSBp ZiBBIGFuZCBCIGFyZSBlcXVhbC4gICovCitzdGF0aWMgaW50CitlcXVhbF90bSAoY29uc3Qg c3RydWN0IHRtICphLCBjb25zdCBzdHJ1Y3QgdG0gKmIpCit7CisgIHJldHVybiAhICgoYS0+ dG1fc2VjIF4gYi0+dG1fc2VjKQorICAgICAgICAgICAgfCAoYS0+dG1fbWluIF4gYi0+dG1f bWluKQorICAgICAgICAgICAgfCAoYS0+dG1faG91ciBeIGItPnRtX2hvdXIpCisgICAgICAg ICAgICB8IChhLT50bV9tZGF5IF4gYi0+dG1fbWRheSkKKyAgICAgICAgICAgIHwgKGEtPnRt X21vbiBeIGItPnRtX21vbikKKyAgICAgICAgICAgIHwgKGEtPnRtX3llYXIgXiBiLT50bV95 ZWFyKQorICAgICAgICAgICAgfCBpc2RzdF9kaWZmZXIgKGEtPnRtX2lzZHN0LCBiLT50bV9p c2RzdCkpOworfQorCisjZW5kaWYKKworLyogQ29weSB0byBBQkJSUyB0aGUgYWJicmV2aWF0 aW9uIGF0IEFCQlIgd2l0aCBzaXplIEFCQlJfU0laRSAodGhpcworICAgaW5jbHVkZXMgaXRz IHRyYWlsaW5nIG51bGwgYnl0ZSkuICBBcHBlbmQgYW4gZXh0cmEgbnVsbCBieXRlIHRvCisg ICBtYXJrIHRoZSBlbmQgb2YgQUJCUlMuICAqLworc3RhdGljIHZvaWQKK2V4dGVuZF9hYmJy cyAoY2hhciAqYWJicnMsIGNoYXIgY29uc3QgKmFiYnIsIHNpemVfdCBhYmJyX3NpemUpCit7 CisgIG1lbWNweSAoYWJicnMsIGFiYnIsIGFiYnJfc2l6ZSk7CisgIGFiYnJzW2FiYnJfc2l6 ZV0gPSAnXDAnOworfQorCisvKiBSZXR1cm4gYSBuZXdseSBhbGxvY2F0ZWQgdGltZSB6b25l IGZvciBOQU1FLCBvciBOVUxMIG9uIGZhaWx1cmUuCisgICBBcyBhIHNwZWNpYWwgY2FzZSwg cmV0dXJuIGEgbm9uemVybyBjb25zdGFudCBmb3Igd2FsbCBjbG9jayB0aW1lLCBhCisgICBj b25zdGFudCB0aGF0IHN1cnZpdmVzIGZyZWVpbmcuICAqLwordGltZXpvbmVfdAordHphbGxv YyAoY2hhciBjb25zdCAqbmFtZSkKK3sKKyAgc2l6ZV90IG5hbWVfc2l6ZSA9IG5hbWUgPyBz dHJsZW4gKG5hbWUpICsgMSA6IDA7CisgIHNpemVfdCBhYmJyX3NpemUgPSBuYW1lX3NpemUg PCBBQkJSX1NJWkVfTUlOID8gQUJCUl9TSVpFX01JTiA6IG5hbWVfc2l6ZSArIDE7CisgIHRp bWV6b25lX3QgdHogPSBtYWxsb2MgKG9mZnNldG9mIChzdHJ1Y3QgdG1fem9uZSwgYWJicnMp ICsgYWJicl9zaXplKTsKKyAgaWYgKHR6KQorICAgIHsKKyAgICAgIHR6LT5uZXh0ID0gTlVM TDsKKyAgICAgIHR6LT50el9pc19zZXQgPSAhIW5hbWU7CisgICAgICBleHRlbmRfYWJicnMg KHR6LT5hYmJycywgbmFtZSwgbmFtZV9zaXplKTsKKyAgICB9CisgIHJldHVybiB0ejsKK30K KworI2lmIEhBVkVfVFpOQU1FCisvKiBJZiBUWk5BTUVfQUREUkVTUyBpcyBub25udWxsLCBh biBhc3NpZ25tZW50IG9mIGEgc2F2ZWQgYWJicmV2aWF0aW9uLgorICAgVFpOQU1FX0FERFJF U1Mgc2hvdWxkIGJlIGVpdGhlciBudWxsLCBvciAmdHpuYW1lWzBdLCBvciAmdHpuYW1lWzFd LgorICAgKlRaTkFNRV9BRERSRVNTID0gVFpOQU1FX1ZBTFVFIHNob3VsZCBiZSBkb25lIGFm dGVyIHJldmVydF90egorICAgKGluZGlyZWN0bHkpIGNhbGxzIHR6c2V0LCBzbyB0aGF0IHJl dmVydF90eiBjYW4gb3ZlcndyaXRlIHR6c2V0J3MKKyAgIGFzc2lnbm1lbnQgdG8gdHpuYW1l LiAgQWxzbywgaXQgc2hvdWxkIGJlIGRvbmUgYXQgdGhlIHN0YXJ0IG9mCisgICB0aGUgbmV4 dCBsb2NhbHRpbWVfdHogb3IgbWt0aW1lX3osIHRvIHVuZG8gdGhlIG92ZXJ3cml0ZS4gICov CitzdGF0aWMgY2hhciAqKnR6bmFtZV9hZGRyZXNzOworc3RhdGljIGNoYXIgKnR6bmFtZV92 YWx1ZTsKKyNlbmRpZgorCisvKiBTYXZlIGludG8gVFogYW55IG5vbnRyaXZpYWwgdGltZSB6 b25lIGFiYnJldmlhdGlvbiB1c2VkIGJ5IFRNLAorICAgYW5kIHVwZGF0ZSAqVE0gKG9yIHBy ZXBhcmUgdG8gdXBkYXRlIHR6bmFtZSkgaWYgdGhleSB1c2UgdGhlIGFiYnJldmlhdGlvbi4K KyAgIFJldHVybiB0cnVlIGlmIHN1Y2Nlc3NmdWwsIGZhbHNlIChzZXR0aW5nIGVycm5vKSBv dGhlcndpc2UuICAqLworc3RhdGljIGJvb2wKK3NhdmVfYWJiciAodGltZXpvbmVfdCB0eiwg c3RydWN0IHRtICp0bSkKK3sKKyNpZiBIQVZFX1RNX1pPTkUgfHwgSEFWRV9UWk5BTUUKKyAg Y2hhciBjb25zdCAqem9uZSA9IE5VTEw7CisgIGNoYXIgKip0em5hbWVfem9uZSA9IE5VTEw7 CisgIGNoYXIgKnpvbmVfY29weSA9IChjaGFyICopICIiOworIyBpZiBIQVZFX1RNX1pPTkUK KyAgem9uZSA9IHRtLT50bV96b25lOworIyBlbmRpZgorIyBpZiBIQVZFX1RaTkFNRQorICBp ZiAoISAoem9uZSAmJiAqem9uZSkgJiYgMCA8PSB0bS0+dG1faXNkc3QpCisgICAgem9uZSA9 ICoodHpuYW1lX3pvbmUgPSAmdHpuYW1lWzAgPCB0bS0+dG1faXNkc3RdKTsKKyMgZW5kaWYK KworICAvKiBObyBuZWVkIHRvIHJlcGxhY2UgbnVsbCB6b25lcywgb3Igem9uZXMgd2l0aGlu IHRoZSBzdHJ1Y3QgdG0uICAqLworICBpZiAoIXpvbmUgfHwgKChjaGFyICopIHRtIDw9IHpv bmUgJiYgem9uZSA8IChjaGFyICopICh0bSArIDEpKSkKKyAgICByZXR1cm4gdHJ1ZTsKKwor ICBpZiAoKnpvbmUpCisgICAgeworICAgICAgem9uZV9jb3B5ID0gdHotPmFiYnJzOworCisg ICAgICB3aGlsZSAoc3RyY21wICh6b25lX2NvcHksIHpvbmUpICE9IDApCisgICAgICAgIHsK KyAgICAgICAgICBpZiAoISAoKnpvbmVfY29weSB8fCAoem9uZV9jb3B5ID09IHR6LT5hYmJy cyAmJiB0ei0+dHpfaXNfc2V0KSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIHNp emVfdCB6b25lX3NpemUgPSBzdHJsZW4gKHpvbmUpICsgMTsKKyAgICAgICAgICAgICAgaWYg KHpvbmVfc2l6ZSA8IHR6LT5hYmJycyArIEFCQlJfU0laRV9NSU4gLSB6b25lX2NvcHkpCisg ICAgICAgICAgICAgICAgZXh0ZW5kX2FiYnJzICh6b25lX2NvcHksIHpvbmUsIHpvbmVfc2l6 ZSk7CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICB0eiA9IHR6LT5uZXh0ID0gdHphbGxvYyAoem9uZSk7CisgICAgICAgICAgICAg ICAgICBpZiAoIXR6KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg ICAgICAgICAgICAgICB0ei0+dHpfaXNfc2V0ID0gMDsKKyAgICAgICAgICAgICAgICAgIHpv bmVfY29weSA9IHR6LT5hYmJyczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg IGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgem9uZV9jb3B5ICs9IHN0cmxl biAoem9uZV9jb3B5KSArIDE7CisgICAgICAgICAgaWYgKCEqem9uZV9jb3B5ICYmIHR6LT5u ZXh0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICB0eiA9IHR6LT5uZXh0OworICAg ICAgICAgICAgICB6b25lX2NvcHkgPSB0ei0+YWJicnM7CisgICAgICAgICAgICB9CisgICAg ICAgIH0KKyAgICB9CisKKyAgLyogUmVwbGFjZSB0aGUgem9uZSBuYW1lIHNvIHRoYXQgaXRz IGxpZmV0aW1lIG1hdGNoZXMgdGhhdCBvZiBUWi4gICovCisjIGlmIEhBVkVfVE1fWk9ORQor ICBpZiAoIXR6bmFtZV96b25lKQorICAgIHRtLT50bV96b25lID0gem9uZV9jb3B5OworIyBl bmRpZgorIyBpZiBIQVZFX1RaTkFNRQorICB0em5hbWVfYWRkcmVzcyA9IHR6bmFtZV96b25l OworICB0em5hbWVfdmFsdWUgPSB6b25lX2NvcHk7CisjIGVuZGlmCisjZW5kaWYKKyAgcmV0 dXJuIHRydWU7Cit9CisKKy8qIEZyZWUgYSB0aW1lIHpvbmUuICAqLwordm9pZAordHpmcmVl ICh0aW1lem9uZV90IHR6KQoreworICBpZiAodHogIT0gbG9jYWxfdHopCisgICAgd2hpbGUg KHR6KQorICAgICAgeworICAgICAgICB0aW1lem9uZV90IG5leHQgPSB0ei0+bmV4dDsKKyAg ICAgICAgZnJlZSAodHopOworICAgICAgICB0eiA9IG5leHQ7CisgICAgICB9Cit9CisKKy8q IEdldCBhbmQgc2V0IHRoZSBUWiBlbnZpcm9ubWVudCB2YXJpYWJsZS4gIFRoZXNlIGZ1bmN0 aW9ucyBjYW4gYmUKKyAgIG92ZXJyaWRkZW4gYnkgcHJvZ3JhbXMgbGlrZSBFbWFjcyB0aGF0 IG1hbmFnZSB0aGVpciBvd24gZW52aXJvbm1lbnQuICAqLworCisjaWZuZGVmIGdldGVudl9U Wgorc3RhdGljIGNoYXIgKgorZ2V0ZW52X1RaICh2b2lkKQoreworICByZXR1cm4gZ2V0ZW52 IChUWik7Cit9CisjZW5kaWYKKworI2lmbmRlZiBzZXRlbnZfVFoKK3N0YXRpYyBpbnQKK3Nl dGVudl9UWiAoY2hhciBjb25zdCAqdHopCit7CisgIHJldHVybiB0eiA/IHNldGVudiAoVFos IHR6LCAxKSA6IHVuc2V0ZW52IChUWik7Cit9CisjZW5kaWYKKworLyogQ2hhbmdlIHRoZSBl bnZpcm9ubWVudCB0byBtYXRjaCB0aGUgc3BlY2lmaWVkIHRpbWV6b25lX3QgdmFsdWUuCisg ICBSZXR1cm4gdHJ1ZSBpZiBzdWNjZXNzZnVsLCBmYWxzZSAoc2V0dGluZyBlcnJubykgb3Ro ZXJ3aXNlLiAgKi8KK3N0YXRpYyBib29sCitjaGFuZ2VfZW52ICh0aW1lem9uZV90IHR6KQor eworICBpZiAoc2V0ZW52X1RaICh0ei0+dHpfaXNfc2V0ID8gdHotPmFiYnJzIDogTlVMTCkg IT0gMCkKKyAgICByZXR1cm4gZmFsc2U7CisgIHR6c2V0ICgpOworICByZXR1cm4gdHJ1ZTsK K30KKworLyogVGVtcG9yYXJpbHkgc2V0IHRoZSB0aW1lIHpvbmUgdG8gVFosIHdoaWNoIG11 c3Qgbm90IGJlIG51bGwuCisgICBSZXR1cm4gTE9DQUxfVFogaWYgdGhlIHRpbWUgem9uZSBz ZXR0aW5nIGlzIGFscmVhZHkgY29ycmVjdC4KKyAgIE90aGVyd2lzZSByZXR1cm4gYSBuZXds eSBhbGxvY2F0ZWQgdGltZSB6b25lIHJlcHJlc2VudGluZyB0aGUgb2xkCisgICBzZXR0aW5n LCBvciBOVUxMIChzZXR0aW5nIGVycm5vKSBvbiBmYWlsdXJlLiAgKi8KK3N0YXRpYyB0aW1l em9uZV90CitzZXRfdHogKHRpbWV6b25lX3QgdHopCit7CisgIGNoYXIgKmVudl90eiA9IGdl dGVudl9UWiAoKTsKKyAgaWYgKGVudl90egorICAgICAgPyB0ei0+dHpfaXNfc2V0ICYmIHN0 cmNtcCAodHotPmFiYnJzLCBlbnZfdHopID09IDAKKyAgICAgIDogIXR6LT50el9pc19zZXQp CisgICAgcmV0dXJuIGxvY2FsX3R6OworICBlbHNlCisgICAgeworICAgICAgdGltZXpvbmVf dCBvbGRfdHogPSB0emFsbG9jIChlbnZfdHopOworICAgICAgaWYgKCFvbGRfdHopCisgICAg ICAgIHJldHVybiBvbGRfdHo7CisgICAgICBpZiAoISBjaGFuZ2VfZW52ICh0eikpCisgICAg ICAgIHsKKyAgICAgICAgICBpbnQgc2F2ZWRfZXJybm8gPSBlcnJubzsKKyAgICAgICAgICB0 emZyZWUgKG9sZF90eik7CisgICAgICAgICAgZXJybm8gPSBzYXZlZF9lcnJubzsKKyAgICAg ICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgcmV0dXJuIG9sZF90ejsKKyAg ICB9Cit9CisKKy8qIFJlc3RvcmUgYW4gb2xkIHNldHRpbmcgcmV0dXJuZWQgYnkgc2V0X3R6 LiAgSXQgbXVzdCBub3QgYmUgbnVsbC4KKyAgIFJldHVybiB0cnVlIChwcmVzZXJ2aW5nIGVy cm5vKSBpZiBzdWNjZXNzZnVsLCBmYWxzZSAoc2V0dGluZyBlcnJubykKKyAgIG90aGVyd2lz ZS4gICovCitzdGF0aWMgYm9vbAorcmV2ZXJ0X3R6ICh0aW1lem9uZV90IHR6KQoreworICBp ZiAodHogPT0gbG9jYWxfdHopCisgICAgcmV0dXJuIHRydWU7CisgIGVsc2UKKyAgICB7Cisg ICAgICBpbnQgc2F2ZWRfZXJybm8gPSBlcnJubzsKKyAgICAgIGJvb2wgb2sgPSBjaGFuZ2Vf ZW52ICh0eik7CisgICAgICBpZiAoIW9rKQorICAgICAgICBzYXZlZF9lcnJubyA9IGVycm5v OworI2lmIEhBVkVfVFpOQU1FCisgICAgICBpZiAoIW9rKQorICAgICAgICB0em5hbWVfYWRk cmVzcyA9IE5VTEw7CisgICAgICBpZiAodHpuYW1lX2FkZHJlc3MpCisgICAgICAgIHsKKyAg ICAgICAgICBjaGFyICpvbGRfdmFsdWUgPSAqdHpuYW1lX2FkZHJlc3M7CisgICAgICAgICAg KnR6bmFtZV9hZGRyZXNzID0gdHpuYW1lX3ZhbHVlOworICAgICAgICAgIHR6bmFtZV92YWx1 ZSA9IG9sZF92YWx1ZTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICB0emZyZWUgKHR6KTsK KyAgICAgIGVycm5vID0gc2F2ZWRfZXJybm87CisgICAgICByZXR1cm4gb2s7CisgICAgfQor fQorCisvKiBSZXN0b3JlIGFuIG9sZCB0em5hbWUgc2V0dGluZyB0aGF0IHdhcyB0ZW1wb3Jh cmlseSBtdW5nZWQgYnkgcmV2ZXJ0X3R6LiAgKi8KK3N0YXRpYyB2b2lkCityZXN0b3JlX3R6 bmFtZSAodm9pZCkKK3sKKyNpZiBIQVZFX1RaTkFNRQorICBpZiAodHpuYW1lX2FkZHJlc3Mp CisgICAgeworICAgICAgKnR6bmFtZV9hZGRyZXNzID0gdHpuYW1lX3ZhbHVlOworICAgICAg dHpuYW1lX2FkZHJlc3MgPSBOVUxMOworICAgIH0KKyNlbmRpZgorfQorCisvKiBVc2UgdGlt ZSB6b25lIFRaIHRvIGNvbXB1dGUgbG9jYWx0aW1lX3IgKFQsIFRNKS4gICovCitzdHJ1Y3Qg dG0gKgorbG9jYWx0aW1lX3J6ICh0aW1lem9uZV90IHR6LCB0aW1lX3QgY29uc3QgKnQsIHN0 cnVjdCB0bSAqdG0pCit7CisgIHJlc3RvcmVfdHpuYW1lICgpOworCisgIGlmICghdHopCisg ICAgcmV0dXJuIGdtdGltZV9yICh0LCB0bSk7CisgIGVsc2UKKyAgICB7CisgICAgICB0aW1l em9uZV90IG9sZF90eiA9IHNldF90eiAodHopOworICAgICAgaWYgKG9sZF90eikKKyAgICAg ICAgeworICAgICAgICAgIHRtID0gbG9jYWx0aW1lX3IgKHQsIHRtKTsKKyAgICAgICAgICBp ZiAodG0gJiYgIXNhdmVfYWJiciAodHosIHRtKSkKKyAgICAgICAgICAgIHRtID0gTlVMTDsK KyAgICAgICAgICBpZiAocmV2ZXJ0X3R6IChvbGRfdHopKQorICAgICAgICAgICAgcmV0dXJu IHRtOworICAgICAgICB9CisgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIFVz ZSB0aW1lIHpvbmUgVFogdG8gY29tcHV0ZSBta3RpbWUgKFRNKS4gICovCit0aW1lX3QKK21r dGltZV96ICh0aW1lem9uZV90IHR6LCBzdHJ1Y3QgdG0gKnRtKQoreworICByZXN0b3JlX3R6 bmFtZSAoKTsKKworICBpZiAoIXR6KQorICAgIHJldHVybiB0aW1lZ20gKHRtKTsKKyAgZWxz ZQorICAgIHsKKyAgICAgIHRpbWV6b25lX3Qgb2xkX3R6ID0gc2V0X3R6ICh0eik7CisgICAg ICBpZiAob2xkX3R6KQorICAgICAgICB7CisgICAgICAgICAgdGltZV90IHQgPSBta3RpbWUg KHRtKTsKKyNpZiBIQVZFX1RNX1pPTkUgfHwgSEFWRV9UWk5BTUUKKyAgICAgICAgICB0aW1l X3QgYmFkdGltZSA9IC0xOworICAgICAgICAgIHN0cnVjdCB0bSB0bV8xOworICAgICAgICAg IGlmICgodCAhPSBiYWR0aW1lCisgICAgICAgICAgICAgICB8fCAobG9jYWx0aW1lX3IgKCZ0 LCAmdG1fMSkgJiYgZXF1YWxfdG0gKHRtLCAmdG1fMSkpKQorICAgICAgICAgICAgICAmJiAh c2F2ZV9hYmJyICh0eiwgdG0pKQorICAgICAgICAgICAgdCA9IGJhZHRpbWU7CisjZW5kaWYK KyAgICAgICAgICBpZiAocmV2ZXJ0X3R6IChvbGRfdHopKQorICAgICAgICAgICAgcmV0dXJu IHQ7CisgICAgICAgIH0KKyAgICAgIHJldHVybiAtMTsKKyAgICB9Cit9CmRpZmYgLS1naXQg YS9saWIvdGltZWdtLmMgYi9saWIvdGltZWdtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMTFjNDg1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYi90aW1lZ20uYwpA QCAtMCwwICsxLDM4IEBACisvKiBDb252ZXJ0IFVUQyBjYWxlbmRhciB0aW1lIHRvIHNpbXBs ZSB0aW1lLiAgTGlrZSBta3RpbWUgYnV0IGFzc3VtZXMgVVRDLgorCisgICBDb3B5cmlnaHQg KEMpIDE5OTQsIDE5OTcsIDIwMDMtMjAwNCwgMjAwNi0yMDA3LCAyMDA5LTIwMTUgRnJlZSBT b2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBDIExpYnJhcnkuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywg b3IgKGF0IHlvdXIgb3B0aW9uKQorICAgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LiAgKi8KKworI2lmbmRlZiBfTElCQworIyBpbmNsdWRlIDxjb25maWcuaD4KKyNl bmRpZgorCisjaW5jbHVkZSA8dGltZS5oPgorCisjaWZuZGVmIF9MSUJDCisjIHVuZGVmIF9f Z210aW1lX3IKKyMgZGVmaW5lIF9fZ210aW1lX3IgZ210aW1lX3IKKyMgZGVmaW5lIF9fbWt0 aW1lX2ludGVybmFsIG1rdGltZV9pbnRlcm5hbAorIyBpbmNsdWRlICJta3RpbWUtaW50ZXJu YWwuaCIKKyNlbmRpZgorCit0aW1lX3QKK3RpbWVnbSAoc3RydWN0IHRtICp0bXApCit7Cisg IHN0YXRpYyB0aW1lX3QgZ210aW1lX29mZnNldDsKKyAgdG1wLT50bV9pc2RzdCA9IDA7Cisg IHJldHVybiBfX21rdGltZV9pbnRlcm5hbCAodG1wLCBfX2dtdGltZV9yLCAmZ210aW1lX29m ZnNldCk7Cit9CmRpZmYgLS1naXQgYS9saXNwL3RpbWUtc3RhbXAuZWwgYi9saXNwL3RpbWUt c3RhbXAuZWwKaW5kZXggMjRlNWVmNC4uMWUwZmU5OSAxMDA2NDQKLS0tIGEvbGlzcC90aW1l LXN0YW1wLmVsCisrKyBiL2xpc3AvdGltZS1zdGFtcC5lbApAQCAtNDIwLDE2ICs0MjAsOCBA QCBmb3JtYXQgdGhlIHN0cmluZy4iCiAgIChvciB0cy1mb3JtYXQKICAgICAgIChzZXRxIHRz LWZvcm1hdCB0aW1lLXN0YW1wLWZvcm1hdCkpCiAgIChpZiAoc3RyaW5ncCB0cy1mb3JtYXQp Ci0gICAgICAoaWYgKHN0cmluZ3AgdGltZS1zdGFtcC10aW1lLXpvbmUpCi0JICAobGV0ICgo dHMtcmVhbC10aW1lLXpvbmUgKGdldGVudiAiVFoiKSkpCi0JICAgICh1bndpbmQtcHJvdGVj dAotCQkocHJvZ24KLQkJICAoc2V0ZW52ICJUWiIgdGltZS1zdGFtcC10aW1lLXpvbmUpCi0J CSAgKGZvcm1hdC10aW1lLXN0cmluZwotCQkgICAodGltZS1zdGFtcC1zdHJpbmctcHJlcHJv Y2VzcyB0cy1mb3JtYXQpKSkKLQkgICAgICAoc2V0ZW52ICJUWiIgdHMtcmVhbC10aW1lLXpv bmUpKSkKLQkoZm9ybWF0LXRpbWUtc3RyaW5nCi0JICh0aW1lLXN0YW1wLXN0cmluZy1wcmVw cm9jZXNzIHRzLWZvcm1hdCkpKQorICAgICAgKGZvcm1hdC10aW1lLXN0cmluZyAodGltZS1z dGFtcC1zdHJpbmctcHJlcHJvY2VzcyB0cy1mb3JtYXQpCisgICAgICAgICAgICAgICAgICAg ICAgICAgIG5pbCB0aW1lLXN0YW1wLXRpbWUtem9uZSkKICAgICA7OyBoYW5kbGUgdmVyc2lv biAxIGNvbXBhdGliaWxpdHkKICAgICAoY29uZCAoKG9yIChlcSB0aW1lLXN0YW1wLW9sZC1m b3JtYXQtd2FybiAnZXJyb3IpCiAJICAgICAgIChhbmQgKGVxIHRpbWUtc3RhbXAtb2xkLWZv cm1hdC13YXJuICdhc2spCmRpZmYgLS1naXQgYS9saXNwL3RpbWUuZWwgYi9saXNwL3RpbWUu ZWwKaW5kZXggYWUwZTU5OC4uZDM1ZjViOSAxMDA2NDQKLS0tIGEvbGlzcC90aW1lLmVsCisr KyBiL2xpc3AvdGltZS5lbApAQCAtMTYwLDE1ICsxNjAsOCBAQCBMQUJFTCBpcyBhIHN0cmlu ZyB0byBkaXNwbGF5IGFzIHRoZSBsYWJlbCBvZiB0aGF0IFRJTUVaT05FJ3MgdGltZS4iCiAo ZGVmY3VzdG9tIGRpc3BsYXktdGltZS13b3JsZC1saXN0CiAgIDs7IERldGVybWluZSBpZiB6 b25laW5mbyBzdHlsZSB0aW1lem9uZXMgYXJlIHN1cHBvcnRlZCBieSB0ZXN0aW5nIHRoYXQK ICAgOzsgQW1lcmljYS9OZXcgWW9yayBhbmQgRXVyb3BlL0xvbmRvbiByZXR1cm4gZGlmZmVy ZW50IHRpbWV6b25lcy4KLSAgKGxldCAoKG9sZC10eiAoZ2V0ZW52ICJUWiIpKQotCWdtdCBu eXQpCi0gICAgKHVud2luZC1wcm90ZWN0Ci0JKHByb2duCi0JICAoc2V0ZW52ICJUWiIgIkFt ZXJpY2EvTmV3X1lvcmsiKQotCSAgKHNldHEgbnl0IChmb3JtYXQtdGltZS1zdHJpbmcgIiV6 IikpCi0JICAoc2V0ZW52ICJUWiIgIkV1cm9wZS9Mb25kb24iKQotCSAgKHNldHEgZ210IChm b3JtYXQtdGltZS1zdHJpbmcgIiV6IikpKQotICAgICAgKHNldGVudiAiVFoiIG9sZC10eikp CisgIChsZXQgKChueXQgKGZvcm1hdC10aW1lLXN0cmluZyAiJXoiIG5pbCAiQW1lcmljYS9O ZXdfWW9yayIpKQorICAgICAgICAoZ210IChmb3JtYXQtdGltZS1zdHJpbmcgIiV6IiBuaWwg IkV1cm9wZS9Mb25kb24iKSkpCiAgICAgKGlmIChzdHJpbmctZXF1YWwgbnl0IGdtdCkKICAg ICAgICAgbGVnYWN5LXN0eWxlLXdvcmxkLWxpc3QKICAgICAgIHpvbmVpbmZvLXN0eWxlLXdv cmxkLWxpc3QpKQpAQCAtNTIzLDIxICs1MTYsMTkgQEAgU2VlIGBkaXNwbGF5LXRpbWUtd29y bGQnLiIKICAgIlJlcGxhY2UgY3VycmVudCBidWZmZXIgdGV4dCB3aXRoIHRpbWVzIGluIHZh cmlvdXMgem9uZXMsIGJhc2VkIG9uIEFMSVNULiIKICAgKGxldCAoKGluaGliaXQtcmVhZC1v bmx5IHQpCiAJKGJ1ZmZlci11bmRvLWxpc3QgdCkKLQkob2xkLXR6IChnZXRlbnYgIlRaIikp CisJKG5vdyAoY3VycmVudC10aW1lKSkKIAkobWF4LXdpZHRoIDApCiAJcmVzdWx0IGZtdCkK ICAgICAoZXJhc2UtYnVmZmVyKQotICAgICh1bndpbmQtcHJvdGVjdAotCShkb2xpc3QgKHpv bmUgYWxpc3QpCi0JICAobGV0KiAoKGxhYmVsIChjYWRyIHpvbmUpKQotCQkgKHdpZHRoIChz dHJpbmctd2lkdGggbGFiZWwpKSkKLQkgICAgKHNldGVudiAiVFoiIChjYXIgem9uZSkpCi0J ICAgIChwdXNoIChjb25zIGxhYmVsCi0JCQkoZm9ybWF0LXRpbWUtc3RyaW5nIGRpc3BsYXkt dGltZS13b3JsZC10aW1lLWZvcm1hdCkpCi0JCSAgcmVzdWx0KQotCSAgICAod2hlbiAoPiB3 aWR0aCBtYXgtd2lkdGgpCi0JICAgICAgKHNldHEgbWF4LXdpZHRoIHdpZHRoKSkpKQotICAg ICAgKHNldGVudiAiVFoiIG9sZC10eikpCisgICAgKGRvbGlzdCAoem9uZSBhbGlzdCkKKyAg ICAgIChsZXQqICgobGFiZWwgKGNhZHIgem9uZSkpCisJICAgICAod2lkdGggKHN0cmluZy13 aWR0aCBsYWJlbCkpKQorCShwdXNoIChjb25zIGxhYmVsCisJCSAgICAoZm9ybWF0LXRpbWUt c3RyaW5nIGRpc3BsYXktdGltZS13b3JsZC10aW1lLWZvcm1hdAorCQkJCQlub3cgKGNhciB6 b25lKSkpCisJICAgICAgcmVzdWx0KQorCSh3aGVuICg+IHdpZHRoIG1heC13aWR0aCkKKwkg IChzZXRxIG1heC13aWR0aCB3aWR0aCkpKSkKICAgICAoc2V0cSBmbXQgKGNvbmNhdCAiJS0i IChpbnQtdG8tc3RyaW5nIG1heC13aWR0aCkgInMgJXNcbiIpKQogICAgIChkb2xpc3QgKHRp bWVkYXRhIChucmV2ZXJzZSByZXN1bHQpKQogICAgICAgKGluc2VydCAoZm9ybWF0IGZtdCAo Y2FyIHRpbWVkYXRhKSAoY2RyIHRpbWVkYXRhKSkpKQpkaWZmIC0tZ2l0IGEvbGlzcC92Yy9h ZGQtbG9nLmVsIGIvbGlzcC92Yy9hZGQtbG9nLmVsCmluZGV4IGViN2U1YmYuLmM5MDQxM2Mg MTAwNjQ0Ci0tLSBhL2xpc3AvdmMvYWRkLWxvZy5lbAorKysgYi9saXNwL3ZjL2FkZC1sb2cu ZWwKQEAgLTU4MSw4ICs1ODEsOCBAQCBJZiB0LCB1c2UgdW5pdmVyc2FsIHRpbWUuIikKIChw dXQgJ2FkZC1sb2ctdGltZS16b25lLXJ1bGUgJ3NhZmUtbG9jYWwtdmFyaWFibGUKICAgICAg KGxhbWJkYSAoeCkgKG9yIChib29sZWFucCB4KSAoc3RyaW5ncCB4KSkpKQogCi0oZGVmdW4g YWRkLWxvZy1pc284NjAxLXRpbWUtem9uZSAoJm9wdGlvbmFsIHRpbWUpCi0gIChsZXQqICgo dXRjLW9mZnNldCAob3IgKGNhciAoY3VycmVudC10aW1lLXpvbmUgdGltZSkpIDApKQorKGRl ZnVuIGFkZC1sb2ctaXNvODYwMS10aW1lLXpvbmUgKCZvcHRpb25hbCB0aW1lIHpvbmUpCisg IChsZXQqICgodXRjLW9mZnNldCAob3IgKGNhciAoY3VycmVudC10aW1lLXpvbmUgdGltZSB6 b25lKSkgMCkpCiAJIChzaWduIChpZiAoPCB1dGMtb2Zmc2V0IDApID8tID8rKSkKIAkgKHNl YyAoYWJzIHV0Yy1vZmZzZXQpKQogCSAoc3MgKCUgc2VjIDYwKSkKQEAgLTU5NiwxMiArNTk2 LDExIEBAIElmIHQsIHVzZSB1bml2ZXJzYWwgdGltZS4iKQogCiAoZGVmdmFyIGFkZC1sb2ct aXNvODYwMS13aXRoLXRpbWUtem9uZSBuaWwpCiAKLShkZWZ1biBhZGQtbG9nLWlzbzg2MDEt dGltZS1zdHJpbmcgKCkKLSAgKGxldCAoKHRpbWUgKGZvcm1hdC10aW1lLXN0cmluZyAiJVkt JW0tJWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsIChlcSB0IGFk ZC1sb2ctdGltZS16b25lLXJ1bGUpKSkpCisoZGVmdW4gYWRkLWxvZy1pc284NjAxLXRpbWUt c3RyaW5nICgmb3B0aW9uYWwgdGltZSB6b25lKQorICAobGV0ICgoZGF0ZSAoZm9ybWF0LXRp bWUtc3RyaW5nICIlWS0lbS0lZCIgdGltZSB6b25lKSkpCiAgICAgKGlmIGFkZC1sb2ctaXNv ODYwMS13aXRoLXRpbWUtem9uZQotICAgICAgICAoY29uY2F0IHRpbWUgIiAiIChhZGQtbG9n LWlzbzg2MDEtdGltZS16b25lKSkKLSAgICAgIHRpbWUpKSkKKyAgICAgICAgKGNvbmNhdCBk YXRlICIgIiAoYWRkLWxvZy1pc284NjAxLXRpbWUtem9uZSB0aW1lIHpvbmUpKQorICAgICAg ZGF0ZSkpKQogCiAoZGVmdW4gY2hhbmdlLWxvZy1uYW1lICgpCiAgICJSZXR1cm4gKHN5c3Rl bS1kZXBlbmRlbnQpIGRlZmF1bHQgbmFtZSBmb3IgYSBjaGFuZ2UgbG9nIGZpbGUuIgpAQCAt ODQ4LDE0ICs4NDcsOCBAQCBub24tbmlsLCBvdGhlcndpc2UgaW4gbG9jYWwgdGltZS4iCiAg ICAgICAobGV0ICgobmV3LWVudHJpZXMKICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEg KGFkZHIpCiAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQKLSAgICAgICAgICAgICAg ICAgICAgICAgIChpZiAoc3RyaW5ncCBhZGQtbG9nLXRpbWUtem9uZS1ydWxlKQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsZXQgKCh0eiAoZ2V0ZW52ICJUWiIpKSkKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICh1bndpbmQtcHJvdGVjdAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChwcm9nbgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHNldGVudiAiVFoiIGFkZC1sb2ctdGltZS16b25lLXJ1bGUpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBhZGQtbG9nLXRpbWUt Zm9ybWF0KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldGVudiAiVFoi IHR6KSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGFkZC1sb2ctdGlt ZS1mb3JtYXQpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgYWRkLWxvZy10 aW1lLWZvcm1hdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsIGFkZC1s b2ctdGltZS16b25lLXJ1bGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAiIGZ1bGwt bmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgIiAgPCIgYWRkciAiPiIpKQogICAgICAg ICAgICAgICAgICAgICAgKGlmIChjb25zcCBtYWlsaW5nLWFkZHJlc3MpCmRpZmYgLS1naXQg YS9saXNwL3ZjL2xvZy1lZGl0LmVsIGIvbGlzcC92Yy9sb2ctZWRpdC5lbAppbmRleCBkNTk1 NDk3Li5hY2JkOWMwIDEwMDY0NAotLS0gYS9saXNwL3ZjL2xvZy1lZGl0LmVsCisrKyBiL2xp c3AvdmMvbG9nLWVkaXQuZWwKQEAgLTg3Miw3ICs4NzIsOCBAQCBSZXR1cm4gbm9uLW5pbCBp ZiBpdCBpcy4iCiAJCSAgKGFuZCAoYm91bmRwICd1c2VyLW1haWwtYWRkcmVzcykgdXNlci1t YWlsLWFkZHJlc3MpKSkKIAkodGltZSAob3IgKGFuZCAoYm91bmRwICdhZGQtbG9nLXRpbWUt Zm9ybWF0KQogCQkgICAgICAgKGZ1bmN0aW9ucCBhZGQtbG9nLXRpbWUtZm9ybWF0KQotCQkg ICAgICAgKGZ1bmNhbGwgYWRkLWxvZy10aW1lLWZvcm1hdCkpCisJCSAgICAgICAoZnVuY2Fs bCBhZGQtbG9nLXRpbWUtZm9ybWF0CisJCQkJbmlsIGFkZC1sb2ctdGltZS16b25lLXJ1bGUp KQogCQkgIChmb3JtYXQtdGltZS1zdHJpbmcgIiVZLSVtLSVkIikpKSkKICAgICAoaWYgKG51 bGwgbG9nLWVkaXQtY2hhbmdlbG9nLXVzZS1maXJzdCkKICAgICAgICAgKGxvb2tpbmctYXQg KHJlZ2V4cC1xdW90ZSAoZm9ybWF0ICIlcyAgJXMgIDwlcz4iIHRpbWUgbmFtZSBtYWlsKSkp CmRpZmYgLS1naXQgYS9tNC9nbnVsaWItY29tcC5tNCBiL200L2dudWxpYi1jb21wLm00Cmlu ZGV4IDA0MjVkMDIuLmNmNzFkN2UgMTAwNjQ0Ci0tLSBhL200L2dudWxpYi1jb21wLm00Cisr KyBiL200L2dudWxpYi1jb21wLm00CkBAIC05OCw2ICs5OCw3IEBAIEFDX0RFRlVOKFtnbF9F QVJMWV0sCiAgICMgQ29kZSBmcm9tIG1vZHVsZSBtZW1yY2hyOgogICAjIENvZGUgZnJvbSBt b2R1bGUgbWtvc3RlbXA6CiAgICMgQ29kZSBmcm9tIG1vZHVsZSBta3RpbWU6CisgICMgQ29k ZSBmcm9tIG1vZHVsZSBta3RpbWUtaW50ZXJuYWw6CiAgICMgQ29kZSBmcm9tIG1vZHVsZSBt dWx0aWFyY2g6CiAgICMgQ29kZSBmcm9tIG1vZHVsZSBub2NyYXNoOgogICAjIENvZGUgZnJv bSBtb2R1bGUgb3BlbmF0LWg6CkBAIC0xNDEsMTMgKzE0MiwxNCBAQCBBQ19ERUZVTihbZ2xf RUFSTFldLAogICAjIENvZGUgZnJvbSBtb2R1bGUgdGVtcG5hbWU6CiAgICMgQ29kZSBmcm9t IG1vZHVsZSB0aW1lOgogICAjIENvZGUgZnJvbSBtb2R1bGUgdGltZV9yOgorICAjIENvZGUg ZnJvbSBtb2R1bGUgdGltZV9yejoKKyAgIyBDb2RlIGZyb20gbW9kdWxlIHRpbWVnbToKICAg IyBDb2RlIGZyb20gbW9kdWxlIHRpbWVyLXRpbWU6CiAgICMgQ29kZSBmcm9tIG1vZHVsZSB0 aW1lc3BlYzoKICAgIyBDb2RlIGZyb20gbW9kdWxlIHRpbWVzcGVjLWFkZDoKICAgIyBDb2Rl IGZyb20gbW9kdWxlIHRpbWVzcGVjLXN1YjoKICAgIyBDb2RlIGZyb20gbW9kdWxlIHU2NDoK ICAgIyBDb2RlIGZyb20gbW9kdWxlIHVuaXN0ZDoKLSAgIyBDb2RlIGZyb20gbW9kdWxlIHVu c2V0ZW52OgogICAjIENvZGUgZnJvbSBtb2R1bGUgdXBkYXRlLWNvcHlyaWdodDoKICAgIyBD b2RlIGZyb20gbW9kdWxlIHV0aW1lbnM6CiAgICMgQ29kZSBmcm9tIG1vZHVsZSB2YXJhcnJh eXM6CkBAIC0zODUsMTUgKzM4NywyMCBAQCBBQ19ERUZVTihbZ2xfSU5JVF0sCiAgICAgZ2xf UFJFUkVRX1RJTUVfUgogICBmaQogICBnbF9USU1FX01PRFVMRV9JTkRJQ0FUT1IoW3RpbWVf cl0pCisgIGdsX1RJTUVfUloKKyAgaWYgdGVzdCAiJEhBVkVfVElNRVpPTkVfVCIgPSAwOyB0 aGVuCisgICAgQUNfTElCT0JKKFt0aW1lX3J6XSkKKyAgZmkKKyAgZ2xfVElNRV9NT0RVTEVf SU5ESUNBVE9SKFt0aW1lX3J6XSkKKyAgZ2xfRlVOQ19USU1FR00KKyAgaWYgdGVzdCAkSEFW RV9USU1FR00gPSAwIHx8IHRlc3QgJFJFUExBQ0VfVElNRUdNID0gMTsgdGhlbgorICAgIEFD X0xJQk9CSihbdGltZWdtXSkKKyAgICBnbF9QUkVSRVFfVElNRUdNCisgIGZpCisgIGdsX1RJ TUVfTU9EVUxFX0lORElDQVRPUihbdGltZWdtXSkKICAgZ2xfVElNRVJfVElNRQogICBnbF9U SU1FU1BFQwogICBnbF9VTklTVERfSAotICBnbF9GVU5DX1VOU0VURU5WCi0gIGlmIHRlc3Qg JEhBVkVfVU5TRVRFTlYgPSAwIHx8IHRlc3QgJFJFUExBQ0VfVU5TRVRFTlYgPSAxOyB0aGVu Ci0gICAgQUNfTElCT0JKKFt1bnNldGVudl0pCi0gICAgZ2xfUFJFUkVRX1VOU0VURU5WCi0g IGZpCi0gIGdsX1NURExJQl9NT0RVTEVfSU5ESUNBVE9SKFt1bnNldGVudl0pCiAgIGdsX1VU SU1FTlMKICAgQUNfQ19WQVJBUlJBWVMKICAgZ2xfZ251bGliX2VuYWJsZWRfMjYwOTQxYzBl NWRjNjdlYzllODdkMWZiMzIxYzMwMGI9ZmFsc2UKQEAgLTQwNCw2ICs0MTEsNyBAQCBBQ19E RUZVTihbZ2xfSU5JVF0sCiAgIGdsX2dudWxpYl9lbmFibGVkX2dldGdyb3Vwcz1mYWxzZQog ICBnbF9nbnVsaWJfZW5hYmxlZF9iZTQ1M2NlYzVlZWNmNTczMWEyNzRmMmRlN2YyZGIzNj1m YWxzZQogICBnbF9nbnVsaWJfZW5hYmxlZF9hOTc4Njg1MGU5OTlhZTY1YTgzNmE2MDQxZThl NWVkMT1mYWxzZQorICBnbF9nbnVsaWJfZW5hYmxlZF81MjY0Mjk0YWEwYTU1NTc1NDFiNTNj OGM3NDFmN2YzMT1mYWxzZQogICBnbF9nbnVsaWJfZW5hYmxlZF8wM2UwYWFhZDRjYjg5Y2E3 NTc2NTNiZDM2N2E2Y2NiNz1mYWxzZQogICBnbF9nbnVsaWJfZW5hYmxlZF9wYXRobWF4PWZh bHNlCiAgIGdsX2dudWxpYl9lbmFibGVkXzYwOTllOTczN2Y3NTdkYjM2YzQ3ZmE5ZDlmMDJl ODhjPWZhbHNlCkBAIC01MDYsNiArNTE0LDE3IEBAIEFDX0RFRlVOKFtnbF9JTklUXSwKICAg ICAgIGZpCiAgICAgZmkKICAgfQorICBmdW5jX2dsX2dudWxpYl9tNGNvZGVfNTI2NDI5NGFh MGE1NTU3NTQxYjUzYzhjNzQxZjdmMzEgKCkKKyAgeworICAgIGlmICEgJGdsX2dudWxpYl9l bmFibGVkXzUyNjQyOTRhYTBhNTU1NzU0MWI1M2M4Yzc0MWY3ZjMxOyB0aGVuCisgICAgICBn bF9GVU5DX01LVElNRV9JTlRFUk5BTAorICAgICAgaWYgdGVzdCAkUkVQTEFDRV9NS1RJTUUg PSAxOyB0aGVuCisgICAgICAgIEFDX0xJQk9CSihbbWt0aW1lXSkKKyAgICAgICAgZ2xfUFJF UkVRX01LVElNRQorICAgICAgZmkKKyAgICAgIGdsX2dudWxpYl9lbmFibGVkXzUyNjQyOTRh YTBhNTU1NzU0MWI1M2M4Yzc0MWY3ZjMxPXRydWUKKyAgICBmaQorICB9CiAgIGZ1bmNfZ2xf Z251bGliX200Y29kZV8wM2UwYWFhZDRjYjg5Y2E3NTc2NTNiZDM2N2E2Y2NiNyAoKQogICB7 CiAgICAgaWYgISAkZ2xfZ251bGliX2VuYWJsZWRfMDNlMGFhYWQ0Y2I4OWNhNzU3NjUzYmQz NjdhNmNjYjc7IHRoZW4KQEAgLTY1Myw2ICs2NzIsOSBAQCBBQ19ERUZVTihbZ2xfSU5JVF0s CiAgIGlmIHsgdGVzdCAkSEFWRV9ERUNMX1NUUlRPVU1BWCA9IDAgfHwgdGVzdCAkUkVQTEFD RV9TVFJUT1VNQVggPSAxOyB9ICYmIHRlc3QgJGFjX2N2X3R5cGVfdW5zaWduZWRfbG9uZ19s b25nX2ludCA9IHllczsgdGhlbgogICAgIGZ1bmNfZ2xfZ251bGliX200Y29kZV9zdHJ0b3Vs bAogICBmaQorICBpZiB0ZXN0ICRIQVZFX1RJTUVHTSA9IDAgfHwgdGVzdCAkUkVQTEFDRV9U SU1FR00gPSAxOyB0aGVuCisgICAgZnVuY19nbF9nbnVsaWJfbTRjb2RlXzUyNjQyOTRhYTBh NTU1NzU0MWI1M2M4Yzc0MWY3ZjMxCisgIGZpCiAgIG00X3BhdHRlcm5fYWxsb3coW15nbF9H TlVMSUJfRU5BQkxFRF9dKQogICBBTV9DT05ESVRJT05BTChbZ2xfR05VTElCX0VOQUJMRURf MjYwOTQxYzBlNWRjNjdlYzllODdkMWZiMzIxYzMwMGJdLCBbJGdsX2dudWxpYl9lbmFibGVk XzI2MDk0MWMwZTVkYzY3ZWM5ZTg3ZDFmYjMyMWMzMDBiXSkKICAgQU1fQ09ORElUSU9OQUwo W2dsX0dOVUxJQl9FTkFCTEVEX2RpcmZkXSwgWyRnbF9nbnVsaWJfZW5hYmxlZF9kaXJmZF0p CkBAIC02NjIsNiArNjg0LDcgQEAgQUNfREVGVU4oW2dsX0lOSVRdLAogICBBTV9DT05ESVRJ T05BTChbZ2xfR05VTElCX0VOQUJMRURfZ2V0Z3JvdXBzXSwgWyRnbF9nbnVsaWJfZW5hYmxl ZF9nZXRncm91cHNdKQogICBBTV9DT05ESVRJT05BTChbZ2xfR05VTElCX0VOQUJMRURfYmU0 NTNjZWM1ZWVjZjU3MzFhMjc0ZjJkZTdmMmRiMzZdLCBbJGdsX2dudWxpYl9lbmFibGVkX2Jl NDUzY2VjNWVlY2Y1NzMxYTI3NGYyZGU3ZjJkYjM2XSkKICAgQU1fQ09ORElUSU9OQUwoW2ds X0dOVUxJQl9FTkFCTEVEX2E5Nzg2ODUwZTk5OWFlNjVhODM2YTYwNDFlOGU1ZWQxXSwgWyRn bF9nbnVsaWJfZW5hYmxlZF9hOTc4Njg1MGU5OTlhZTY1YTgzNmE2MDQxZThlNWVkMV0pCisg IEFNX0NPTkRJVElPTkFMKFtnbF9HTlVMSUJfRU5BQkxFRF81MjY0Mjk0YWEwYTU1NTc1NDFi NTNjOGM3NDFmN2YzMV0sIFskZ2xfZ251bGliX2VuYWJsZWRfNTI2NDI5NGFhMGE1NTU3NTQx YjUzYzhjNzQxZjdmMzFdKQogICBBTV9DT05ESVRJT05BTChbZ2xfR05VTElCX0VOQUJMRURf MDNlMGFhYWQ0Y2I4OWNhNzU3NjUzYmQzNjdhNmNjYjddLCBbJGdsX2dudWxpYl9lbmFibGVk XzAzZTBhYWFkNGNiODljYTc1NzY1M2JkMzY3YTZjY2I3XSkKICAgQU1fQ09ORElUSU9OQUwo W2dsX0dOVUxJQl9FTkFCTEVEX3BhdGhtYXhdLCBbJGdsX2dudWxpYl9lbmFibGVkX3BhdGht YXhdKQogICBBTV9DT05ESVRJT05BTChbZ2xfR05VTElCX0VOQUJMRURfNjA5OWU5NzM3Zjc1 N2RiMzZjNDdmYTlkOWYwMmU4OGNdLCBbJGdsX2dudWxpYl9lbmFibGVkXzYwOTllOTczN2Y3 NTdkYjM2YzQ3ZmE5ZDlmMDJlODhjXSkKQEAgLTkzOCw2ICs5NjEsOCBAQCBBQ19ERUZVTihb Z2xfRklMRV9MSVNUXSwgWwogICBsaWIvdGVtcG5hbWUuaAogICBsaWIvdGltZS5pbi5oCiAg IGxpYi90aW1lX3IuYworICBsaWIvdGltZV9yei5jCisgIGxpYi90aW1lZ20uYwogICBsaWIv dGltZXNwZWMtYWRkLmMKICAgbGliL3RpbWVzcGVjLXN1Yi5jCiAgIGxpYi90aW1lc3BlYy5j CkBAIC05NDYsNyArOTcxLDYgQEAgQUNfREVGVU4oW2dsX0ZJTEVfTElTVF0sIFsKICAgbGli L3U2NC5oCiAgIGxpYi91bmlzdGQuYwogICBsaWIvdW5pc3RkLmluLmgKLSAgbGliL3Vuc2V0 ZW52LmMKICAgbGliL3V0aW1lbnMuYwogICBsaWIvdXRpbWVucy5oCiAgIGxpYi92ZXJpZnku aApAQCAtMTAxMSw3ICsxMDM1LDYgQEAgQUNfREVGVU4oW2dsX0ZJTEVfTElTVF0sIFsKICAg bTQvcmVhZGxpbmsubTQKICAgbTQvcmVhZGxpbmthdC5tNAogICBtNC9zZWN1cmVfZ2V0ZW52 Lm00Ci0gIG00L3NldGVudi5tNAogICBtNC9zaGExLm00CiAgIG00L3NoYTI1Ni5tNAogICBt NC9zaGE1MTIubTQKQEAgLTEwNDMsNiArMTA2Niw4IEBAIEFDX0RFRlVOKFtnbF9GSUxFX0xJ U1RdLCBbCiAgIG00L3RlbXBuYW1lLm00CiAgIG00L3RpbWVfaC5tNAogICBtNC90aW1lX3Iu bTQKKyAgbTQvdGltZV9yei5tNAorICBtNC90aW1lZ20ubTQKICAgbTQvdGltZXJfdGltZS5t NAogICBtNC90aW1lc3BlYy5tNAogICBtNC90bV9nbXRvZmYubTQKZGlmZiAtLWdpdCBhL200 L3N5c190aW1lX2gubTQgYi9tNC9zeXNfdGltZV9oLm00CmluZGV4IDUwMTMzYjkuLjI4Yzhi MWEgMTAwNjQ0Ci0tLSBhL200L3N5c190aW1lX2gubTQKKysrIGIvbTQvc3lzX3RpbWVfaC5t NApAQCAtMTA1LDYgKzEwNSw3IEBAIEFDX0RFRlVOKFtnbF9IRUFERVJfU1lTX1RJTUVfSF9E RUZBVUxUU10sCiAgIEhBVkVfR0VUVElNRU9GREFZPTE7ICAgICAgIEFDX1NVQlNUKFtIQVZF X0dFVFRJTUVPRkRBWV0pCiAgIEhBVkVfU1RSVUNUX1RJTUVWQUw9MTsgICAgIEFDX1NVQlNU KFtIQVZFX1NUUlVDVF9USU1FVkFMXSkKICAgSEFWRV9TWVNfVElNRV9IPTE7ICAgICAgICAg QUNfU1VCU1QoW0hBVkVfU1lTX1RJTUVfSF0pCisgIEhBVkVfVElNRVpPTkVfVD0wOyAgICAg ICAgIEFDX1NVQlNUKFtIQVZFX1RJTUVaT05FX1RdKQogICBSRVBMQUNFX0dFVFRJTUVPRkRB WT0wOyAgICBBQ19TVUJTVChbUkVQTEFDRV9HRVRUSU1FT0ZEQVldKQogICBSRVBMQUNFX1NU UlVDVF9USU1FVkFMPTA7ICBBQ19TVUJTVChbUkVQTEFDRV9TVFJVQ1RfVElNRVZBTF0pCiBd KQpkaWZmIC0tZ2l0IGEvbTQvdGltZV9oLm00IGIvbTQvdGltZV9oLm00CmluZGV4IGQ5YzQx YTQuLjc1NGI0NjkgMTAwNjQ0Ci0tLSBhL200L3RpbWVfaC5tNAorKysgYi9tNC90aW1lX2gu bTQKQEAgLTEwOSw2ICsxMDksNyBAQCBBQ19ERUZVTihbZ2xfSEVBREVSX1RJTUVfSF9ERUZB VUxUU10sCiAgIEdOVUxJQl9TVFJQVElNRT0wOyAgICAgICAgICAgICAgICAgICAgIEFDX1NV QlNUKFtHTlVMSUJfU1RSUFRJTUVdKQogICBHTlVMSUJfVElNRUdNPTA7ICAgICAgICAgICAg ICAgICAgICAgICBBQ19TVUJTVChbR05VTElCX1RJTUVHTV0pCiAgIEdOVUxJQl9USU1FX1I9 MDsgICAgICAgICAgICAgICAgICAgICAgIEFDX1NVQlNUKFtHTlVMSUJfVElNRV9SXSkKKyAg R05VTElCX1RJTUVfUlo9MDsgICAgICAgICAgICAgICAgICAgICAgQUNfU1VCU1QoW0dOVUxJ Ql9USU1FX1JaXSkKICAgZG5sIEFzc3VtZSBwcm9wZXIgR05VIGJlaGF2aW9yIHVubGVzcyBh bm90aGVyIG1vZHVsZSBzYXlzIG90aGVyd2lzZS4KICAgSEFWRV9ERUNMX0xPQ0FMVElNRV9S PTE7ICAgICAgICAgICAgICAgQUNfU1VCU1QoW0hBVkVfREVDTF9MT0NBTFRJTUVfUl0pCiAg IEhBVkVfTkFOT1NMRUVQPTE7ICAgICAgICAgICAgICAgICAgICAgIEFDX1NVQlNUKFtIQVZF X05BTk9TTEVFUF0pCmRpZmYgLS1naXQgYS9tNC90aW1lX3J6Lm00IGIvbTQvdGltZV9yei5t NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzFmMmMzCi0tLSAvZGV2 L251bGwKKysrIGIvbTQvdGltZV9yei5tNApAQCAtMCwwICsxLDIxIEBACitkbmwgVGltZSB6 b25lIGZ1bmN0aW9uczogdHphbGxvYywgbG9jYWx0aW1lX3J6LCBldGMuCisKK2RubCBDb3B5 cmlnaHQgKEMpIDIwMTUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhp cyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K K2RubCBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmli dXRlIGl0LAorZG5sIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworZG5sIFdyaXR0ZW4gYnkgUGF1bCBFZ2dl cnQuCisKK0FDX0RFRlVOKFtnbF9USU1FX1JaXSwKK1sKKyAgQUNfUkVRVUlSRShbZ2xfVVNF X1NZU1RFTV9FWFRFTlNJT05TXSkKKyAgQUNfUkVRVUlSRShbZ2xfSEVBREVSX1NZU19USU1F X0hfREVGQVVMVFNdKQorICBBQ19SRVFVSVJFKFtBQ19TVFJVQ1RfVElNRVpPTkVdKQorICBB Q19DSEVDS19GVU5DU19PTkNFKFt0enNldF0pCisKKyAgQUNfQ0hFQ0tfVFlQRVMoW3RpbWV6 b25lX3RdLCBbXSwgW10sIFtbI2luY2x1ZGUgPHRpbWUuaD5dXSkKKyAgaWYgdGVzdCAiJGFj X2N2X3R5cGVfdGltZXpvbmVfdCIgPSB5ZXM7IHRoZW4KKyAgICBIQVZFX1RJTUVaT05FX1Q9 MQorICBmaQorXSkKZGlmZiAtLWdpdCBhL200L3RpbWVnbS5tNCBiL200L3RpbWVnbS5tNApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTY4Yjk5Ci0tLSAvZGV2L251 bGwKKysrIGIvbTQvdGltZWdtLm00CkBAIC0wLDAgKzEsMjYgQEAKKyMgdGltZWdtLm00IHNl cmlhbCAxMQorZG5sIENvcHlyaWdodCAoQykgMjAwMywgMjAwNywgMjAwOS0yMDE1IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCitkbmwgZ2l2ZXMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKK2RubCB3aXRoIG9y IHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVz ZXJ2ZWQuCisKK0FDX0RFRlVOKFtnbF9GVU5DX1RJTUVHTV0sCitbCisgIEFDX1JFUVVJUkUo W2dsX0hFQURFUl9USU1FX0hfREVGQVVMVFNdKQorICBBQ19SRVFVSVJFKFtnbF9GVU5DX01L VElNRV0pCisgIFJFUExBQ0VfVElNRUdNPTAKKyAgQUNfQ0hFQ0tfRlVOQ1NfT05DRShbdGlt ZWdtXSkKKyAgaWYgdGVzdCAkYWNfY3ZfZnVuY190aW1lZ20gPSB5ZXM7IHRoZW4KKyAgICBp ZiB0ZXN0ICRnbF9jdl9mdW5jX3dvcmtpbmdfbWt0aW1lID0gbm87IHRoZW4KKyAgICAgICMg QXNzdW1lIHRoYXQgdGltZWdtIGlzIGJ1Z2d5IGlmIG1rdGltZSBpcy4KKyAgICAgIFJFUExB Q0VfVElNRUdNPTEKKyAgICBmaQorICBlbHNlCisgICAgSEFWRV9USU1FR009MAorICBmaQor XSkKKworIyBQcmVyZXF1aXNpdGVzIG9mIGxpYi90aW1lZ20uYy4KK0FDX0RFRlVOKFtnbF9Q UkVSRVFfVElNRUdNXSwgWworICA6CitdKQpkaWZmIC0tZ2l0IGEvc3JjL2NvbmZfcG9zdC5o IGIvc3JjL2NvbmZfcG9zdC5oCmluZGV4IDFhMDgwZmEuLjc4NWU1ZDcgMTAwNjQ0Ci0tLSBh L3NyYy9jb25mX3Bvc3QuaAorKysgYi9zcmMvY29uZl9wb3N0LmgKQEAgLTIwNiw2ICsyMDYs MTMgQEAgZXh0ZXJuIHZvaWQgX0RlYlByaW50IChjb25zdCBjaGFyICpmbXQsIC4uLik7CiAj ZGVmaW5lIFJFX1RSQU5TTEFURV9QKFRCTCkgKCFFUSAoVEJMLCBtYWtlX251bWJlciAoMCkp KQogI2VuZGlmCiAKKy8qIFRlbGwgdGltZV9yei5jIHRvIHVzZSBFbWFjcydzIGdldHRlciBh bmQgc2V0dGVyIGZvciBUWi4KKyAgIE9ubHkgRW1hY3MgdXNlcyB0aW1lX3J6IHNvIHRoaXMg aXMgT0suICAqLworI2RlZmluZSBnZXRlbnZfVFogZW1hY3NfZ2V0ZW52X1RaCisjZGVmaW5l IHNldGVudl9UWiBlbWFjc19zZXRlbnZfVFoKK2V4dGVybiBjaGFyICplbWFjc19nZXRlbnZf VFogKHZvaWQpOworZXh0ZXJuIGludCBlbWFjc19zZXRlbnZfVFogKGNoYXIgY29uc3QgKik7 CisKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KIApkaWZmIC0t Z2l0IGEvc3JjL2VkaXRmbnMuYyBiL3NyYy9lZGl0Zm5zLmMKaW5kZXggZTM5ZWVkNi4uOWZm MzlmOSAxMDA2NDQKLS0tIGEvc3JjL2VkaXRmbnMuYworKysgYi9zcmMvZWRpdGZucy5jCkBA IC00NCw4ICs0NCwxMCBAQCBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCiAjaW5jbHVkZSA8c3lzL3Jlc291 cmNlLmg+CiAjZW5kaWYKIAorI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZmxvYXQu aD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KKwogI2luY2x1ZGUgPGludHByb3BzLmg+CiAjaW5j bHVkZSA8c3RyZnRpbWUuaD4KICNpbmNsdWRlIDx2ZXJpZnkuaD4KQEAgLTY1LDkgKzY3LDgg QEAgZXh0ZXJuIExpc3BfT2JqZWN0IHczMl9nZXRfaW50ZXJuYWxfcnVuX3RpbWUgKHZvaWQp OwogI2VuZGlmCiAKIHN0YXRpYyBzdHJ1Y3QgbGlzcF90aW1lIGxpc3BfdGltZV9zdHJ1Y3Qg KExpc3BfT2JqZWN0LCBpbnQgKik7Ci1zdGF0aWMgdm9pZCBzZXRfdGltZV96b25lX3J1bGUg KGNoYXIgY29uc3QgKik7CiBzdGF0aWMgTGlzcF9PYmplY3QgZm9ybWF0X3RpbWVfc3RyaW5n IChjaGFyIGNvbnN0ICosIHB0cmRpZmZfdCwgc3RydWN0IHRpbWVzcGVjLAotCQkJCSAgICAg ICBib29sLCBzdHJ1Y3QgdG0gKik7CisJCQkJICAgICAgIExpc3BfT2JqZWN0LCBzdHJ1Y3Qg dG0gKik7CiBzdGF0aWMgbG9uZyBpbnQgdG1fZ210b2ZmIChzdHJ1Y3QgdG0gKik7CiBzdGF0 aWMgaW50IHRtX2RpZmYgKHN0cnVjdCB0bSAqLCBzdHJ1Y3QgdG0gKik7CiBzdGF0aWMgdm9p ZCB1cGRhdGVfYnVmZmVyX3Byb3BlcnRpZXMgKHB0cmRpZmZfdCwgcHRyZGlmZl90KTsKQEAg LTc2LDggKzc3LDEzIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9idWZmZXJfcHJvcGVydGllcyAo cHRyZGlmZl90LCBwdHJkaWZmX3QpOwogIyBkZWZpbmUgSEFWRV9UTV9HTVRPRkYgZmFsc2UK ICNlbmRpZgogCi0vKiBUaGUgc3RhcnR1cCB2YWx1ZSBvZiB0aGUgVFogZW52aXJvbm1lbnQg dmFyaWFibGU7IG51bGwgaWYgdW5zZXQuICAqLwotc3RhdGljIGNoYXIgY29uc3QgKmluaXRp YWxfdHo7CitlbnVtIHsgdHplcWxlbiA9IHNpemVvZiAiVFo9IiAtIDEgfTsKKworLyogVGlt ZSB6b25lcyBlcXVpdmFsZW50IHRvIGN1cnJlbnQgbG9jYWwgdGltZSwgdG8gd2FsbCBjbG9j ayB0aW1lLAorICAgYW5kIHRvIFVUQywgcmVzcGVjdGl2ZWx5LiAgKi8KK3N0YXRpYyB0aW1l em9uZV90IGxvY2FsX3R6Oworc3RhdGljIHRpbWV6b25lX3Qgd2FsbF9jbG9ja190ejsKK3N0 YXRpYyB0aW1lem9uZV90IGNvbnN0IHV0Y190eiA9IDA7CiAKIC8qIEEgdmFsaWQgYnV0IHVu bGlrZWx5IHNldHRpbmcgZm9yIHRoZSBUWiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KICAgIEl0 IGlzIE9LICh0aG91Z2ggYSBiaXQgc2xvd2VyKSBpZiB0aGUgdXNlciBjaG9vc2VzIHRoaXMg dmFsdWUuICAqLwpAQCAtOTQsOCArMTAwLDk3IEBAIGluaXRfYW5kX2NhY2hlX3N5c3RlbV9u YW1lICh2b2lkKQogICBjYWNoZWRfc3lzdGVtX25hbWUgPSBWc3lzdGVtX25hbWU7CiB9CiAK K3N0YXRpYyBzdHJ1Y3QgdG0gKgorZW1hY3NfbG9jYWx0aW1lX3J6ICh0aW1lem9uZV90IHR6 LCB0aW1lX3QgY29uc3QgKnQsIHN0cnVjdCB0bSAqdG0pCit7CisgIHRtID0gbG9jYWx0aW1l X3J6ICh0eiwgdCwgdG0pOworICBpZiAoIXRtICYmIGVycm5vID09IEVOT01FTSkKKyAgICBt ZW1vcnlfZnVsbCAoU0laRV9NQVgpOworICByZXR1cm4gdG07Cit9CisKK3N0YXRpYyB0aW1l X3QKK2VtYWNzX21rdGltZV96ICh0aW1lem9uZV90IHR6LCBzdHJ1Y3QgdG0gKnRtKQorewor ICBlcnJubyA9IDA7CisgIHRpbWVfdCB0ID0gbWt0aW1lX3ogKHR6LCB0bSk7CisgIGlmICh0 ID09ICh0aW1lX3QpIC0xICYmIGVycm5vID09IEVOT01FTSkKKyAgICBtZW1vcnlfZnVsbCAo U0laRV9NQVgpOworICByZXR1cm4gdDsKK30KKworLyogQWxsb2NhdGUgYSB0aW1lem9uZSwg c2lnbmFsaW5nIG9uIGZhaWx1cmUuICAqLworc3RhdGljIHRpbWV6b25lX3QKK3h0emFsbG9j IChjaGFyIGNvbnN0ICpuYW1lKQoreworICB0aW1lem9uZV90IHR6ID0gdHphbGxvYyAobmFt ZSk7CisgIGlmICghdHopCisgICAgbWVtb3J5X2Z1bGwgKFNJWkVfTUFYKTsKKyAgcmV0dXJu IHR6OworfQorCisvKiBGcmVlIGEgdGltZXpvbmUsIGV4Y2VwdCBkbyBub3QgZnJlZSB0aGUg dGltZSB6b25lIGZvciBsb2NhbCB0aW1lLgorICAgRnJlZWluZyB1dGNfdHogaXMgYWxzbyBh IG5vLW9wLiAgKi8KK3N0YXRpYyB2b2lkCit4dHpmcmVlICh0aW1lem9uZV90IHR6KQorewor ICBpZiAodHogIT0gbG9jYWxfdHopCisgICAgdHpmcmVlICh0eik7Cit9CisKKy8qIENvbnZl cnQgdGhlIExpc3AgdGltZSB6b25lIHJ1bGUgWk9ORSB0byBhIHRpbWV6b25lX3Qgb2JqZWN0 LgorICAgVGhlIHJldHVybmVkIHZhbHVlIGVpdGhlciBpcyAwLCBvciBpcyBMT0NBTF9UWiwg b3IgaXMgbmV3bHkgYWxsb2NhdGVkLgorICAgSWYgU0VUVFosIHNldCBFbWFjcyBsb2NhbCB0 aW1lIHRvIHRoZSB0aW1lIHpvbmUgcnVsZTsgb3RoZXJ3aXNlLAorICAgdGhlIGNhbGxlciBz aG91bGQgZXZlbnR1YWxseSBwYXNzIHRoZSByZXR1cm5lZCB2YWx1ZSB0byB4dHpmcmVlLiAg Ki8KK3N0YXRpYyB0aW1lem9uZV90Cit0emxvb2t1cCAoTGlzcF9PYmplY3Qgem9uZSwgYm9v bCBzZXR0eikKK3sKKyAgc3RhdGljIGNoYXIgY29uc3QgdHpidWZfZm9ybWF0W10gPSAiWFhY JXMlInBJImQ6JTAyZDolMDJkIjsKKyAgY2hhciB0emJ1ZltzaXplb2YgdHpidWZfZm9ybWF0 ICsgSU5UX1NUUkxFTl9CT1VORCAoRU1BQ1NfSU5UKV07CisgIGNoYXIgY29uc3QgKnpvbmVf c3RyaW5nOworICB0aW1lem9uZV90IG5ld190ejsKKworICBpZiAoTklMUCAoem9uZSkpCisg ICAgcmV0dXJuIGxvY2FsX3R6OworICBlbHNlIGlmIChFUSAoem9uZSwgUXQpKQorICAgIHsK KyAgICAgIHpvbmVfc3RyaW5nID0gIlVUQzAiOworICAgICAgbmV3X3R6ID0gdXRjX3R6Owor ICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGlmIChFUSAoem9uZSwgUXdhbGwpKQorCXpv bmVfc3RyaW5nID0gMDsKKyAgICAgIGVsc2UgaWYgKFNUUklOR1AgKHpvbmUpKQorCXpvbmVf c3RyaW5nID0gU1NEQVRBICh6b25lKTsKKyAgICAgIGVsc2UgaWYgKElOVEVHRVJQICh6b25l KSkKKwl7CisJICBFTUFDU19JTlQgYWJzem9uZSA9IGVhYnMgKFhJTlQgKHpvbmUpKSwgaG91 ciA9IGFic3pvbmUgLyAoNjAgKiA2MCk7CisJICBpbnQgbWluID0gKGFic3pvbmUgLyA2MCkg JSA2MCwgc2VjID0gYWJzem9uZSAlIDYwOworCSAgc3ByaW50ZiAodHpidWYsIHR6YnVmX2Zv cm1hdCwgJiItIltYSU5UICh6b25lKSA8IDBdLCBob3VyLCBtaW4sIHNlYyk7CisJICB6b25l X3N0cmluZyA9IHR6YnVmOworCX0KKyAgICAgIGVsc2UKKwl4c2lnbmFsMiAoUWVycm9yLCBi dWlsZF9zdHJpbmcgKCJJbnZhbGlkIHRpbWUgem9uZSBzcGVjaWZpY2F0aW9uIiksCisJCSAg em9uZSk7CisgICAgICBuZXdfdHogPSB4dHphbGxvYyAoem9uZV9zdHJpbmcpOworICAgIH0K KworICBpZiAoc2V0dHopCisgICAgeworICAgICAgYmxvY2tfaW5wdXQgKCk7CisgICAgICBl bWFjc19zZXRlbnZfVFogKHpvbmVfc3RyaW5nKTsKKyAgICAgIHRpbWV6b25lX3Qgb2xkX3R6 ID0gbG9jYWxfdHo7CisgICAgICBsb2NhbF90eiA9IG5ld190ejsKKyAgICAgIHR6ZnJlZSAo b2xkX3R6KTsKKyAgICAgIHVuYmxvY2tfaW5wdXQgKCk7CisgICAgfQorCisgIHJldHVybiBu ZXdfdHo7Cit9CisKIHZvaWQKLWluaXRfZWRpdGZucyAodm9pZCkKK2luaXRfZWRpdGZucyAo Ym9vbCBkdW1waW5nKQogewogICBjb25zdCBjaGFyICp1c2VyX25hbWU7CiAgIHJlZ2lzdGVy IGNoYXIgKnA7CkBAIC0xMDgsNyArMjAzLDcgQEAgaW5pdF9lZGl0Zm5zICh2b2lkKQogI2lm bmRlZiBDQU5OT1RfRFVNUAogICAvKiBXaGVuIGp1c3QgZHVtcGluZyBvdXQsIHNldCB0aGUg dGltZSB6b25lIHRvIGEga25vd24gdW5saWtlbHkgdmFsdWUKICAgICAgYW5kIHNraXAgdGhl IHJlc3Qgb2YgdGhpcyBmdW5jdGlvbi4gICovCi0gIGlmICghaW5pdGlhbGl6ZWQpCisgIGlm IChkdW1waW5nKQogICAgIHsKICMgaWZkZWYgSEFWRV9UWlNFVAogICAgICAgeHB1dGVudiAo ZHVtcF90el9zdHJpbmcpOwpAQCAtMTE5LDcgKzIxNCw2IEBAIGluaXRfZWRpdGZucyAodm9p ZCkKICNlbmRpZgogCiAgIGNoYXIgKnR6ID0gZ2V0ZW52ICgiVFoiKTsKLSAgaW5pdGlhbF90 eiA9IHR6OwogCiAjaWYgIWRlZmluZWQgQ0FOTk9UX0RVTVAgJiYgZGVmaW5lZCBIQVZFX1Ra U0VUCiAgIC8qIElmIHRoZSBleGVjdXRpb24gVFogaGFwcGVucyB0byBiZSB0aGUgc2FtZSBh cyB0aGUgZHVtcCBUWiwKQEAgLTEyNyw3ICsyMjEsNyBAQCBpbml0X2VkaXRmbnMgKHZvaWQp CiAgICAgIHRvIGZvcmNlIHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIHRvIHJlbG9h ZCB0aGUgVFogaW5mby4KICAgICAgVGhpcyBpcyBuZWVkZWQgb24gaW1wbGVtZW50YXRpb25z IHRoYXQgbG9hZCBUWiBpbmZvIGZyb20gZmlsZXMsCiAgICAgIHNpbmNlIHRoZSBUWiBmaWxl IGNvbnRlbnRzIG1heSBkaWZmZXIgYmV0d2VlbiBkdW1wIGFuZCBleGVjdXRpb24uICAqLwot ICBpZiAodHogJiYgc3RyY21wICh0eiwgJmR1bXBfdHpfc3RyaW5nW3NpemVvZiAiVFo9IiAt IDFdKSA9PSAwKQorICBpZiAodHogJiYgc3RyY21wICh0eiwgJmR1bXBfdHpfc3RyaW5nW3R6 ZXFsZW5dKSA9PSAwKQogICAgIHsKICAgICAgICsrKnR6OwogICAgICAgdHpzZXQgKCk7CkBA IC0xMzUsOSArMjI5LDEwIEBAIGluaXRfZWRpdGZucyAodm9pZCkKICAgICB9CiAjZW5kaWYK IAotICAvKiBDYWxsIHNldF90aW1lX3pvbmVfcnVsZSBub3csIHNvIHRoYXQgaXRzIGNhbGwg dG8gcHV0ZW52IGlzIGRvbmUKKyAgLyogU2V0IHRoZSB0aW1lIHpvbmUgcnVsZSBub3csIHNv IHRoYXQgdGhlIGNhbGwgdG8gcHV0ZW52IGlzIGRvbmUKICAgICAgYmVmb3JlIG11bHRpcGxl IHRocmVhZHMgYXJlIGFjdGl2ZS4gICovCi0gIHNldF90aW1lX3pvbmVfcnVsZSAodHopOwor ICB3YWxsX2Nsb2NrX3R6ID0geHR6YWxsb2MgKDApOworICB0emxvb2t1cCAodHogPyBidWls ZF9zdHJpbmcgKHR6KSA6IFF3YWxsLCB0cnVlKTsKIAogICBwdyA9IGdldHB3dWlkIChnZXR1 aWQgKCkpOwogI2lmZGVmIE1TRE9TCkBAIC0xMjA2LDcgKzEzMDEsNyBAQCBvZiB0aGUgdXNl ciB3aXRoIHRoYXQgdWlkLCBvciBuaWwgaWYgdGhlcmUgaXMgbm8gc3VjaCB1c2VyLiAgKi8p CiAgICAgIChUaGF0IGNhbiBoYXBwZW4gaWYgRW1hY3MgaXMgZHVtcGFibGUKICAgICAgYnV0 IHlvdSBkZWNpZGUgdG8gcnVuIGB0ZW1hY3MgLWwgbG9hZHVwJyBhbmQgbm90IGR1bXAuICAq LwogICBpZiAoTklMUCAoVnVzZXJfbG9naW5fbmFtZSkpCi0gICAgaW5pdF9lZGl0Zm5zICgp OworICAgIGluaXRfZWRpdGZucyAoZmFsc2UpOwogCiAgIGlmIChOSUxQICh1aWQpKQogICAg IHJldHVybiBWdXNlcl9sb2dpbl9uYW1lOwpAQCAtMTIyOSw3ICsxMzI0LDcgQEAgVGhpcyBp Z25vcmVzIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgTE9HTkFNRSBhbmQgVVNFUiwgc28g aXQgZGlmZmVycyBmcm9tCiAgICAgIChUaGF0IGNhbiBoYXBwZW4gaWYgRW1hY3MgaXMgZHVt cGFibGUKICAgICAgYnV0IHlvdSBkZWNpZGUgdG8gcnVuIGB0ZW1hY3MgLWwgbG9hZHVwJyBh bmQgbm90IGR1bXAuICAqLwogICBpZiAoTklMUCAoVnVzZXJfbG9naW5fbmFtZSkpCi0gICAg aW5pdF9lZGl0Zm5zICgpOworICAgIGluaXRfZWRpdGZucyAoZmFsc2UpOwogICByZXR1cm4g VnVzZXJfcmVhbF9sb2dpbl9uYW1lOwogfQogCkBAIC0xMzg0LDMwICsxNDc5LDYgQEAgY2hl Y2tfdGltZV92YWxpZGl0eSAoaW50IHZhbGlkaXR5KQogICAgIH0KIH0KIAotLyogQSBzdWJz dGl0dXRlIGZvciBta3RpbWVfeiBvbiBwbGF0Zm9ybXMgdGhhdCBsYWNrIGl0LiAgSXQncyBu b3QKLSAgIHRocmVhZC1zYWZlLCBidXQgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciBFbWFj cyBpbiB0eXBpY2FsIHVzZS4gICovCi0jaWZuZGVmIEhBVkVfVFpBTExPQwotc3RhdGljIHRp bWVfdAotbWt0aW1lX3ogKHRpbWV6b25lX3QgdHosIHN0cnVjdCB0bSAqdG0pCi17Ci0gIGNo YXIgKm9sZHR6ID0gZ2V0ZW52ICgiVFoiKTsKLSAgVVNFX1NBRkVfQUxMT0NBOwotICBpZiAo b2xkdHopCi0gICAgewotICAgICAgc2l6ZV90IG9sZHR6c2l6ZSA9IHN0cmxlbiAob2xkdHop ICsgMTsKLSAgICAgIGNoYXIgKm9sZHR6Y29weSA9IFNBRkVfQUxMT0NBIChvbGR0enNpemUp OwotICAgICAgb2xkdHogPSBzdHJjcHkgKG9sZHR6Y29weSwgb2xkdHopOwotICAgIH0KLSAg YmxvY2tfaW5wdXQgKCk7Ci0gIHNldF90aW1lX3pvbmVfcnVsZSAodHopOwotICB0aW1lX3Qg dCA9IG1rdGltZSAodG0pOwotICBzZXRfdGltZV96b25lX3J1bGUgKG9sZHR6KTsKLSAgdW5i bG9ja19pbnB1dCAoKTsKLSAgU0FGRV9GUkVFICgpOwotICByZXR1cm4gdDsKLX0KLSNlbmRp ZgotCiAvKiBSZXR1cm4gdGhlIHVwcGVyIHBhcnQgb2YgdGhlIHRpbWUgVCAoZXZlcnl0aGlu ZyBidXQgdGhlIGJvdHRvbSAxNiBiaXRzKS4gICovCiBzdGF0aWMgRU1BQ1NfSU5UCiBoaV90 aW1lICh0aW1lX3QgdCkKQEAgLTE4NDgsNyArMTkxOSw3IEBAIG9yIChpZiB5b3UgbmVlZCB0 aW1lIGFzIGEgc3RyaW5nKSBgZm9ybWF0LXRpbWUtc3RyaW5nJy4gICovKQogCiAvKiBXcml0 ZSBpbmZvcm1hdGlvbiBpbnRvIGJ1ZmZlciBTIG9mIHNpemUgTUFYU0laRSwgYWNjb3JkaW5n IHRvIHRoZQogICAgRk9STUFUIG9mIGxlbmd0aCBGT1JNQVRfTEVOLCB1c2luZyB0aW1lIGlu Zm9ybWF0aW9uIHRha2VuIGZyb20gKlRQLgotICAgRGVmYXVsdCB0byBVbml2ZXJzYWwgVGlt ZSBpZiBVVCwgbG9jYWwgdGltZSBvdGhlcndpc2UuCisgICBVc2UgdGhlIHRpbWUgem9uZSBz cGVjaWZpZWQgYnkgVFouCiAgICBVc2UgTlMgYXMgdGhlIG51bWJlciBvZiBuYW5vc2Vjb25k cyBpbiB0aGUgJU4gZGlyZWN0aXZlLgogICAgUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMg d3JpdHRlbiwgbm90IGluY2x1ZGluZyB0aGUgdGVybWluYXRpbmcKICAgICdcMCcuICBJZiBT IGlzIE5VTEwsIG5vdGhpbmcgd2lsbCBiZSB3cml0dGVuIGFueXdoZXJlOyBzbyB0bwpAQCAt MTg1OSw3ICsxOTMwLDcgQEAgb3IgKGlmIHlvdSBuZWVkIHRpbWUgYXMgYSBzdHJpbmcpIGBm b3JtYXQtdGltZS1zdHJpbmcnLiAgKi8pCiAgICBieXRlcyBpbiBGT1JNQVQgYW5kIGl0IGRv ZXMgbm90IHN1cHBvcnQgbmFub3NlY29uZHMuICAqLwogc3RhdGljIHNpemVfdAogZW1hY3Nf bm1lbWZ0aW1lIChjaGFyICpzLCBzaXplX3QgbWF4c2l6ZSwgY29uc3QgY2hhciAqZm9ybWF0 LAotCQkgc2l6ZV90IGZvcm1hdF9sZW4sIGNvbnN0IHN0cnVjdCB0bSAqdHAsIGJvb2wgdXQs IGludCBucykKKwkJIHNpemVfdCBmb3JtYXRfbGVuLCBjb25zdCBzdHJ1Y3QgdG0gKnRwLCB0 aW1lem9uZV90IHR6LCBpbnQgbnMpCiB7CiAgIHNpemVfdCB0b3RhbCA9IDA7CiAKQEAgLTE4 NzYsNyArMTk0Nyw3IEBAIGVtYWNzX25tZW1mdGltZSAoY2hhciAqcywgc2l6ZV90IG1heHNp emUsIGNvbnN0IGNoYXIgKmZvcm1hdCwKICAgICAgIGlmIChzKQogCXNbMF0gPSAnXDEnOwog Ci0gICAgICByZXN1bHQgPSBuc3RyZnRpbWUgKHMsIG1heHNpemUsIGZvcm1hdCwgdHAsIHV0 LCBucyk7CisgICAgICByZXN1bHQgPSBuc3RyZnRpbWUgKHMsIG1heHNpemUsIGZvcm1hdCwg dHAsIHR6LCBucyk7CiAKICAgICAgIGlmIChzKQogCXsKQEAgLTE5MDEsOCArMTk3Miw5IEBA IERFRlVOICgiZm9ybWF0LXRpbWUtc3RyaW5nIiwgRmZvcm1hdF90aW1lX3N0cmluZywgU2Zv cm1hdF90aW1lX3N0cmluZywgMSwgMywgMCwKIFRJTUUgaXMgc3BlY2lmaWVkIGFzIChISUdI IExPVyBVU0VDIFBTRUMpLCBhcyByZXR1cm5lZCBieQogYGN1cnJlbnQtdGltZScgb3IgYGZp bGUtYXR0cmlidXRlcycuICBUaGUgb2Jzb2xldGUgZm9ybSAoSElHSCAuIExPVykKIGlzIGFs c28gc3RpbGwgYWNjZXB0ZWQuCi1UaGUgdGhpcmQsIG9wdGlvbmFsLCBhcmd1bWVudCBVTklW RVJTQUwsIGlmIG5vbi1uaWwsIG1lYW5zIGRlc2NyaWJlIFRJTUUKLWFzIFVuaXZlcnNhbCBU aW1lOyBuaWwgbWVhbnMgZGVzY3JpYmUgVElNRSBpbiB0aGUgbG9jYWwgdGltZSB6b25lLgor VGhlIG9wdGlvbmFsIFpPTkUgaXMgb21pdHRlZCBvciBuaWwgZm9yIEVtYWNzIGxvY2FsIHRp bWUsIHQgZm9yCitVbml2ZXJzYWwgVGltZSwgYHdhbGwnIGZvciBzeXN0ZW0gd2FsbCBjbG9j ayB0aW1lLCBvciBhIHN0cmluZyBhcyBpbgorYHNldC10aW1lLXpvbmUtcnVsZScgZm9yIGEg dGltZSB6b25lIHJ1bGUuCiBUaGUgdmFsdWUgaXMgYSBjb3B5IG9mIEZPUk1BVC1TVFJJTkcs IGJ1dCB3aXRoIGNlcnRhaW4gY29uc3RydWN0cyByZXBsYWNlZAogYnkgdGV4dCB0aGF0IGRl c2NyaWJlcyB0aGUgc3BlY2lmaWVkIGRhdGUgYW5kIHRpbWUgaW4gVElNRToKIApAQCAtMTk1 MSw4ICsyMDIzLDggQEAgVGhlIG1vZGlmaWVycyBhcmUgYEUnIGFuZCBgTycuICBGb3IgY2Vy dGFpbiBjaGFyYWN0ZXJzIFgsCiAKIEZvciBleGFtcGxlLCB0byBwcm9kdWNlIGZ1bGwgSVNP IDg2MDEgZm9ybWF0LCB1c2UgIiVGVCVUJXoiLgogCi11c2FnZTogKGZvcm1hdC10aW1lLXN0 cmluZyBGT1JNQVQtU1RSSU5HICZvcHRpb25hbCBUSU1FIFVOSVZFUlNBTCkgICovKQotICAo TGlzcF9PYmplY3QgZm9ybWF0X3N0cmluZywgTGlzcF9PYmplY3QgdGltZXZhbCwgTGlzcF9P YmplY3QgdW5pdmVyc2FsKQordXNhZ2U6IChmb3JtYXQtdGltZS1zdHJpbmcgRk9STUFULVNU UklORyAmb3B0aW9uYWwgVElNRSBaT05FKSAgKi8pCisgIChMaXNwX09iamVjdCBmb3JtYXRf c3RyaW5nLCBMaXNwX09iamVjdCB0aW1ldmFsLCBMaXNwX09iamVjdCB6b25lKQogewogICBz dHJ1Y3QgdGltZXNwZWMgdCA9IGxpc3BfdGltZV9hcmd1bWVudCAodGltZXZhbCk7CiAgIHN0 cnVjdCB0bSB0bTsKQEAgLTE5NjEsMTIgKzIwMzMsMTIgQEAgdXNhZ2U6IChmb3JtYXQtdGlt ZS1zdHJpbmcgRk9STUFULVNUUklORyAmb3B0aW9uYWwgVElNRSBVTklWRVJTQUwpICAqLykK ICAgZm9ybWF0X3N0cmluZyA9IGNvZGVfY29udmVydF9zdHJpbmdfbm9yZWNvcmQgKGZvcm1h dF9zdHJpbmcsCiAJCQkJCQlWbG9jYWxlX2NvZGluZ19zeXN0ZW0sIDEpOwogICByZXR1cm4g Zm9ybWF0X3RpbWVfc3RyaW5nIChTU0RBVEEgKGZvcm1hdF9zdHJpbmcpLCBTQllURVMgKGZv cm1hdF9zdHJpbmcpLAotCQkJICAgICB0LCAhIE5JTFAgKHVuaXZlcnNhbCksICZ0bSk7CisJ CQkgICAgIHQsIHpvbmUsICZ0bSk7CiB9CiAKIHN0YXRpYyBMaXNwX09iamVjdAogZm9ybWF0 X3RpbWVfc3RyaW5nIChjaGFyIGNvbnN0ICpmb3JtYXQsIHB0cmRpZmZfdCBmb3JtYXRsZW4s Ci0JCSAgICBzdHJ1Y3QgdGltZXNwZWMgdCwgYm9vbCB1dCwgc3RydWN0IHRtICp0bXApCisJ CSAgICBzdHJ1Y3QgdGltZXNwZWMgdCwgTGlzcF9PYmplY3Qgem9uZSwgc3RydWN0IHRtICp0 bXApCiB7CiAgIGNoYXIgYnVmZmVyWzQwMDBdOwogICBjaGFyICpidWYgPSBidWZmZXI7CkBA IC0xOTc2LDM2ICsyMDQ4LDQ4IEBAIGZvcm1hdF90aW1lX3N0cmluZyAoY2hhciBjb25zdCAq Zm9ybWF0LCBwdHJkaWZmX3QgZm9ybWF0bGVuLAogICBpbnQgbnMgPSB0LnR2X25zZWM7CiAg IFVTRV9TQUZFX0FMTE9DQTsKIAotICB0bXAgPSB1dCA/IGdtdGltZV9yICgmdC50dl9zZWMs IHRtcCkgOiBsb2NhbHRpbWVfciAoJnQudHZfc2VjLCB0bXApOworICB0aW1lem9uZV90IHR6 ID0gdHpsb29rdXAgKHpvbmUsIGZhbHNlKTsKKyAgdG1wID0gZW1hY3NfbG9jYWx0aW1lX3J6 ICh0eiwgJnQudHZfc2VjLCB0bXApOwogICBpZiAoISB0bXApCi0gICAgdGltZV9vdmVyZmxv dyAoKTsKKyAgICB7CisgICAgICB4dHpmcmVlICh0eik7CisgICAgICB0aW1lX292ZXJmbG93 ICgpOworICAgIH0KICAgc3luY2hyb25pemVfc3lzdGVtX3RpbWVfbG9jYWxlICgpOwogCiAg IHdoaWxlICh0cnVlKQogICAgIHsKICAgICAgIGJ1ZlswXSA9ICdcMSc7Ci0gICAgICBsZW4g PSBlbWFjc19ubWVtZnRpbWUgKGJ1Ziwgc2l6ZSwgZm9ybWF0LCBmb3JtYXRsZW4sIHRtcCwg dXQsIG5zKTsKKyAgICAgIGxlbiA9IGVtYWNzX25tZW1mdGltZSAoYnVmLCBzaXplLCBmb3Jt YXQsIGZvcm1hdGxlbiwgdG1wLCB0eiwgbnMpOwogICAgICAgaWYgKCgwIDwgbGVuICYmIGxl biA8IHNpemUpIHx8IChsZW4gPT0gMCAmJiBidWZbMF0gPT0gJ1wwJykpCiAJYnJlYWs7CiAK ICAgICAgIC8qIEJ1ZmZlciB3YXMgdG9vIHNtYWxsLCBzbyBtYWtlIGl0IGJpZ2dlciBhbmQg dHJ5IGFnYWluLiAgKi8KLSAgICAgIGxlbiA9IGVtYWNzX25tZW1mdGltZSAoTlVMTCwgU0la RV9NQVgsIGZvcm1hdCwgZm9ybWF0bGVuLCB0bXAsIHV0LCBucyk7CisgICAgICBsZW4gPSBl bWFjc19ubWVtZnRpbWUgKE5VTEwsIFNJWkVfTUFYLCBmb3JtYXQsIGZvcm1hdGxlbiwgdG1w LCB0eiwgbnMpOwogICAgICAgaWYgKFNUUklOR19CWVRFU19CT1VORCA8PSBsZW4pCi0Jc3Ry aW5nX292ZXJmbG93ICgpOworCXsKKwkgIHh0emZyZWUgKHR6KTsKKwkgIHN0cmluZ19vdmVy ZmxvdyAoKTsKKwl9CiAgICAgICBzaXplID0gbGVuICsgMTsKICAgICAgIGJ1ZiA9IFNBRkVf QUxMT0NBIChzaXplKTsKICAgICB9CiAKKyAgeHR6ZnJlZSAodHopOwogICBidWZzdHJpbmcg PSBtYWtlX3VuaWJ5dGVfc3RyaW5nIChidWYsIGxlbik7CiAgIFNBRkVfRlJFRSAoKTsKICAg cmV0dXJuIGNvZGVfY29udmVydF9zdHJpbmdfbm9yZWNvcmQgKGJ1ZnN0cmluZywgVmxvY2Fs ZV9jb2Rpbmdfc3lzdGVtLCAwKTsKIH0KIAotREVGVU4gKCJkZWNvZGUtdGltZSIsIEZkZWNv ZGVfdGltZSwgU2RlY29kZV90aW1lLCAwLCAxLCAwLAotICAgICAgIGRvYzogLyogRGVjb2Rl IGEgdGltZSB2YWx1ZSBhcyAoU0VDIE1JTlVURSBIT1VSIERBWSBNT05USCBZRUFSIERPVyBE U1QgWk9ORSkuCitERUZVTiAoImRlY29kZS10aW1lIiwgRmRlY29kZV90aW1lLCBTZGVjb2Rl X3RpbWUsIDAsIDIsIDAsCisgICAgICAgZG9jOiAvKiBEZWNvZGUgYSB0aW1lIHZhbHVlIGFz IChTRUMgTUlOVVRFIEhPVVIgREFZIE1PTlRIIFlFQVIgRE9XIERTVCBVVENPRkYpLgogVGhl IG9wdGlvbmFsIFNQRUNJRklFRC1USU1FIHNob3VsZCBiZSBhIGxpc3Qgb2YgKEhJR0ggTE9X IC4gSUdOT1JFRCksCiBhcyBmcm9tIGBjdXJyZW50LXRpbWUnIGFuZCBgZmlsZS1hdHRyaWJ1 dGVzJywgb3IgbmlsIHRvIHVzZSB0aGUKIGN1cnJlbnQgdGltZS4gIFRoZSBvYnNvbGV0ZSBm b3JtIChISUdIIC4gTE9XKSBpcyBhbHNvIHN0aWxsIGFjY2VwdGVkLgorVGhlIG9wdGlvbmFs IFpPTkUgaXMgb21pdHRlZCBvciBuaWwgZm9yIEVtYWNzIGxvY2FsIHRpbWUsIHQgZm9yCitV bml2ZXJzYWwgVGltZSwgYHdhbGwnIGZvciBzeXN0ZW0gd2FsbCBjbG9jayB0aW1lLCBvciBh IHN0cmluZyBhcyBpbgorYHNldC10aW1lLXpvbmUtcnVsZScgZm9yIGEgdGltZSB6b25lIHJ1 bGUuCisKIFRoZSBsaXN0IGhhcyB0aGUgZm9sbG93aW5nIG5pbmUgbWVtYmVyczogU0VDIGlz IGFuIGludGVnZXIgYmV0d2VlbiAwCiBhbmQgNjA7IFNFQyBpcyA2MCBmb3IgYSBsZWFwIHNl Y29uZCwgd2hpY2ggb25seSBzb21lIG9wZXJhdGluZyBzeXN0ZW1zCiBzdXBwb3J0LiAgTUlO VVRFIGlzIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA1OS4gIEhPVVIgaXMgYW4gaW50ZWdl cgpAQCAtMjAxMywxNSArMjA5NywyMCBAQCBiZXR3ZWVuIDAgYW5kIDIzLiAgREFZIGlzIGFu IGludGVnZXIgYmV0d2VlbiAxIGFuZCAzMS4gIE1PTlRIIGlzIGFuCiBpbnRlZ2VyIGJldHdl ZW4gMSBhbmQgMTIuICBZRUFSIGlzIGFuIGludGVnZXIgaW5kaWNhdGluZyB0aGUKIGZvdXIt ZGlnaXQgeWVhci4gIERPVyBpcyB0aGUgZGF5IG9mIHdlZWssIGFuIGludGVnZXIgYmV0d2Vl biAwIGFuZCA2LAogd2hlcmUgMCBpcyBTdW5kYXkuICBEU1QgaXMgdCBpZiBkYXlsaWdodCBz YXZpbmcgdGltZSBpcyBpbiBlZmZlY3QsCi1vdGhlcndpc2UgbmlsLiAgWk9ORSBpcyBhbiBp bnRlZ2VyIGluZGljYXRpbmcgdGhlIG51bWJlciBvZiBzZWNvbmRzCi1lYXN0IG9mIEdyZWVu d2ljaC4gIChOb3RlIHRoYXQgQ29tbW9uIExpc3AgaGFzIGRpZmZlcmVudCBtZWFuaW5ncyBm b3IKLURPVyBhbmQgWk9ORS4pICAqLykKLSAgKExpc3BfT2JqZWN0IHNwZWNpZmllZF90aW1l KQorb3RoZXJ3aXNlIG5pbC4gIFVUQ09GRiBpcyBhbiBpbnRlZ2VyIGluZGljYXRpbmcgdGhl IFVUQyBvZmZzZXQgaW4KK3NlY29uZHMsIGkuZS4sIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBl YXN0IG9mIEdyZWVud2ljaC4gIChOb3RlIHRoYXQKK0NvbW1vbiBMaXNwIGhhcyBkaWZmZXJl bnQgbWVhbmluZ3MgZm9yIERPVyBhbmQgVVRDT0ZGLikKKwordXNhZ2U6IChkZWNvZGUtdGlt ZSAmb3B0aW9uYWwgVElNRSBaT05FKSAgKi8pCisgIChMaXNwX09iamVjdCBzcGVjaWZpZWRf dGltZSwgTGlzcF9PYmplY3Qgem9uZSkKIHsKICAgdGltZV90IHRpbWVfc3BlYyA9IGxpc3Bf c2Vjb25kc19hcmd1bWVudCAoc3BlY2lmaWVkX3RpbWUpOwogICBzdHJ1Y3QgdG0gbG9jYWxf dG0sIGdtdF90bTsKKyAgdGltZXpvbmVfdCB0eiA9IHR6bG9va3VwICh6b25lLCBmYWxzZSk7 CisgIHN0cnVjdCB0bSAqdG0gPSBlbWFjc19sb2NhbHRpbWVfcnogKHR6LCAmdGltZV9zcGVj LCAmbG9jYWxfdG0pOworICB4dHpmcmVlICh0eik7CiAKLSAgaWYgKCEgKGxvY2FsdGltZV9y ICgmdGltZV9zcGVjLCAmbG9jYWxfdG0pCisgIGlmICghICh0bQogCSAmJiBNT1NUX05FR0FU SVZFX0ZJWE5VTSAtIFRNX1lFQVJfQkFTRSA8PSBsb2NhbF90bS50bV95ZWFyCiAJICYmIGxv Y2FsX3RtLnRtX3llYXIgPD0gTU9TVF9QT1NJVElWRV9GSVhOVU0gLSBUTV9ZRUFSX0JBU0Up KQogICAgIHRpbWVfb3ZlcmZsb3cgKCk7CkBAIC0yMDU5LDM1ICsyMTQ4LDEzIEBAIGNoZWNr X3RtX21lbWJlciAoTGlzcF9PYmplY3Qgb2JqLCBpbnQgb2Zmc2V0KQogICByZXR1cm4gbiAt IG9mZnNldDsKIH0KIAotLyogRGVjb2RlIFpPTkUgYXMgYSB0aW1lIHpvbmUgc3BlY2lmaWNh dGlvbi4gICovCi0KLXN0YXRpYyBMaXNwX09iamVjdAotZGVjb2RlX3RpbWVfem9uZSAoTGlz cF9PYmplY3Qgem9uZSkKLXsKLSAgaWYgKEVRICh6b25lLCBRdCkpCi0gICAgcmV0dXJuIGJ1 aWxkX3N0cmluZyAoIlVUQzAiKTsKLSAgZWxzZSBpZiAoU1RSSU5HUCAoem9uZSkpCi0gICAg cmV0dXJuIHpvbmU7Ci0gIGVsc2UgaWYgKElOVEVHRVJQICh6b25lKSkKLSAgICB7Ci0gICAg ICBzdGF0aWMgY2hhciBjb25zdCB0emJ1Zl9mb3JtYXRbXSA9ICJYWFglcyUicEkiZDolMDJk OiUwMmQiOwotICAgICAgY2hhciB0emJ1ZltzaXplb2YgdHpidWZfZm9ybWF0ICsgSU5UX1NU UkxFTl9CT1VORCAoRU1BQ1NfSU5UKV07Ci0gICAgICBFTUFDU19JTlQgYWJzem9uZSA9IGVh YnMgKFhJTlQgKHpvbmUpKSwgem9uZV9ociA9IGFic3pvbmUgLyAoNjAgKiA2MCk7Ci0gICAg ICBpbnQgem9uZV9taW4gPSAoYWJzem9uZSAvIDYwKSAlIDYwLCB6b25lX3NlYyA9IGFic3pv bmUgJSA2MDsKLQotICAgICAgcmV0dXJuIG1ha2VfZm9ybWF0dGVkX3N0cmluZyAodHpidWYs IHR6YnVmX2Zvcm1hdCwgJiItIltYSU5UICh6b25lKSA8IDBdLAotCQkJCSAgICB6b25lX2hy LCB6b25lX21pbiwgem9uZV9zZWMpOwotICAgIH0KLSAgZWxzZQotICAgIHhzaWduYWwyIChR ZXJyb3IsIGJ1aWxkX3N0cmluZyAoIkludmFsaWQgdGltZSB6b25lIHNwZWNpZmljYXRpb24i KSwgem9uZSk7Ci19Ci0KIERFRlVOICgiZW5jb2RlLXRpbWUiLCBGZW5jb2RlX3RpbWUsIFNl bmNvZGVfdGltZSwgNiwgTUFOWSwgMCwKICAgICAgICBkb2M6IC8qIENvbnZlcnQgU0VDT05E LCBNSU5VVEUsIEhPVVIsIERBWSwgTU9OVEgsIFlFQVIgYW5kIFpPTkUgdG8gaW50ZXJuYWwg dGltZS4KIFRoaXMgaXMgdGhlIHJldmVyc2Ugb3BlcmF0aW9uIG9mIGBkZWNvZGUtdGltZScs IHdoaWNoIHNlZS4KLVpPTkUgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgdGltZSB6b25lIHJ1 bGUuICBUaGlzIGNhbgotYmUgYSBzdHJpbmcgb3IgdCAoYXMgZnJvbSBgc2V0LXRpbWUtem9u ZS1ydWxlJyksIG9yIGl0IGNhbiBiZSBhIGxpc3QKLVwoYXMgZnJvbSBgY3VycmVudC10aW1l LXpvbmUnKSBvciBhbiBpbnRlZ2VyIChhcyBmcm9tIGBkZWNvZGUtdGltZScpCitUaGUgb3B0 aW9uYWwgWk9ORSBpcyBvbWl0dGVkIG9yIG5pbCBmb3IgRW1hY3MgbG9jYWwgdGltZSwgdCBm b3IKK1VuaXZlcnNhbCBUaW1lLCBgd2FsbCcgZm9yIHN5c3RlbSB3YWxsIGNsb2NrIHRpbWUs IG9yIGEgc3RyaW5nIGFzIGluCitgc2V0LXRpbWUtem9uZS1ydWxlJyBmb3IgYSB0aW1lIHpv bmUgcnVsZS4gIEl0IGNhbiBhbHNvIGJlIGEgbGlzdCAoYXMKK2Zyb20gYGN1cnJlbnQtdGlt ZS16b25lJykgb3IgYW4gaW50ZWdlciAoYXMgZnJvbSBgZGVjb2RlLXRpbWUnKQogYXBwbGll ZCB3aXRob3V0IGNvbnNpZGVyYXRpb24gZm9yIGRheWxpZ2h0IHNhdmluZyB0aW1lLgogCiBZ b3UgY2FuIHBhc3MgbW9yZSB0aGFuIDcgYXJndW1lbnRzOyB0aGVuIHRoZSBmaXJzdCBzaXgg YXJndW1lbnRzCkBAIC0yMTIwLDE0ICsyMTg3LDkgQEAgdXNhZ2U6IChlbmNvZGUtdGltZSBT RUNPTkQgTUlOVVRFIEhPVVIgREFZIE1PTlRIIFlFQVIgJm9wdGlvbmFsIFpPTkUpICAqLykK IAogICBpZiAoQ09OU1AgKHpvbmUpKQogICAgIHpvbmUgPSBYQ0FSICh6b25lKTsKLSAgaWYg KE5JTFAgKHpvbmUpKQotICAgIHZhbHVlID0gbWt0aW1lICgmdG0pOwotICBlbHNlCi0gICAg ewotICAgICAgdGltZXpvbmVfdCB0eiA9IHR6YWxsb2MgKFNTREFUQSAoZGVjb2RlX3RpbWVf em9uZSAoem9uZSkpKTsKLSAgICAgIHZhbHVlID0gbWt0aW1lX3ogKHR6LCAmdG0pOwotICAg ICAgdHpmcmVlICh0eik7Ci0gICAgfQorICB0aW1lem9uZV90IHR6ID0gdHpsb29rdXAgKHpv bmUsIGZhbHNlKTsKKyAgdmFsdWUgPSBlbWFjc19ta3RpbWVfeiAodHosICZ0bSk7CisgIHh0 emZyZWUgKHR6KTsKIAogICBpZiAodmFsdWUgPT0gKHRpbWVfdCkgLTEpCiAgICAgdGltZV9v dmVyZmxvdyAoKTsKQEAgLTIxMzUsNyArMjE5Nyw4IEBAIHVzYWdlOiAoZW5jb2RlLXRpbWUg U0VDT05EIE1JTlVURSBIT1VSIERBWSBNT05USCBZRUFSICZvcHRpb25hbCBaT05FKSAgKi8p CiAgIHJldHVybiBsaXN0MmkgKGhpX3RpbWUgKHZhbHVlKSwgbG9fdGltZSAodmFsdWUpKTsK IH0KIAotREVGVU4gKCJjdXJyZW50LXRpbWUtc3RyaW5nIiwgRmN1cnJlbnRfdGltZV9zdHJp bmcsIFNjdXJyZW50X3RpbWVfc3RyaW5nLCAwLCAxLCAwLAorREVGVU4gKCJjdXJyZW50LXRp bWUtc3RyaW5nIiwgRmN1cnJlbnRfdGltZV9zdHJpbmcsIFNjdXJyZW50X3RpbWVfc3RyaW5n LAorICAgICAgIDAsIDIsIDAsCiAgICAgICAgZG9jOiAvKiBSZXR1cm4gdGhlIGN1cnJlbnQg bG9jYWwgdGltZSwgYXMgYSBodW1hbi1yZWFkYWJsZSBzdHJpbmcuCiBQcm9ncmFtcyBjYW4g dXNlIHRoaXMgZnVuY3Rpb24gdG8gZGVjb2RlIGEgdGltZSwKIHNpbmNlIHRoZSBudW1iZXIg b2YgY29sdW1ucyBpbiBlYWNoIGZpZWxkIGlzIGZpeGVkCkBAIC0yMTQ4LDE3ICsyMjExLDI0 IEBAIElmIFNQRUNJRklFRC1USU1FIGlzIGdpdmVuLCBpdCBpcyBhIHRpbWUgdG8gZm9ybWF0 IGluc3RlYWQgb2YgdGhlCiBjdXJyZW50IHRpbWUuICBUaGUgYXJndW1lbnQgc2hvdWxkIGhh dmUgdGhlIGZvcm0gKEhJR0ggTE9XIC4gSUdOT1JFRCkuCiBUaHVzLCB5b3UgY2FuIHVzZSB0 aW1lcyBvYnRhaW5lZCBmcm9tIGBjdXJyZW50LXRpbWUnIGFuZCBmcm9tCiBgZmlsZS1hdHRy aWJ1dGVzJy4gIFNQRUNJRklFRC1USU1FIGNhbiBhbHNvIGhhdmUgdGhlIGZvcm0gKEhJR0gg LiBMT1cpLAotYnV0IHRoaXMgaXMgY29uc2lkZXJlZCBvYnNvbGV0ZS4gICovKQotICAoTGlz cF9PYmplY3Qgc3BlY2lmaWVkX3RpbWUpCitidXQgdGhpcyBpcyBjb25zaWRlcmVkIG9ic29s ZXRlLgorCitUaGUgb3B0aW9uYWwgWk9ORSBpcyBvbWl0dGVkIG9yIG5pbCBmb3IgRW1hY3Mg bG9jYWwgdGltZSwgdCBmb3IKK1VuaXZlcnNhbCBUaW1lLCBgd2FsbCcgZm9yIHN5c3RlbSB3 YWxsIGNsb2NrIHRpbWUsIG9yIGEgc3RyaW5nIGFzIGluCitgc2V0LXRpbWUtem9uZS1ydWxl JyBmb3IgYSB0aW1lIHpvbmUgcnVsZS4gICovKQorICAoTGlzcF9PYmplY3Qgc3BlY2lmaWVk X3RpbWUsIExpc3BfT2JqZWN0IHpvbmUpCiB7CiAgIHRpbWVfdCB2YWx1ZSA9IGxpc3Bfc2Vj b25kc19hcmd1bWVudCAoc3BlY2lmaWVkX3RpbWUpOworICB0aW1lem9uZV90IHR6ID0gdHps b29rdXAgKHpvbmUsIGZhbHNlKTsKIAogICAvKiBDb252ZXJ0IHRvIGEgc3RyaW5nIGluIGN0 aW1lIGZvcm1hdCwgZXhjZXB0IHdpdGhvdXQgdGhlIHRyYWlsaW5nCiAgICAgIG5ld2xpbmUs IGFuZCB3aXRob3V0IHRoZSA0LWRpZ2l0IHllYXIgbGltaXQuICBEb24ndCB1c2UgYXNjdGlt ZQogICAgICBvciBjdGltZSwgYXMgdGhleSBtaWdodCBkdW1wIGNvcmUgaWYgdGhlIHllYXIg aXMgb3V0c2lkZSB0aGUKICAgICAgcmFuZ2UgLTk5OSAuLiA5OTk5LiAgKi8KICAgc3RydWN0 IHRtIHRtOwotICBpZiAoISBsb2NhbHRpbWVfciAoJnZhbHVlLCAmdG0pKQorICBzdHJ1Y3Qg dG0gKnRtcCA9IGVtYWNzX2xvY2FsdGltZV9yeiAodHosICZ2YWx1ZSwgJnRtKTsKKyAgeHR6 ZnJlZSAodHopOworICBpZiAoISB0bXApCiAgICAgdGltZV9vdmVyZmxvdyAoKTsKIAogICBz dGF0aWMgY2hhciBjb25zdCB3ZGF5X25hbWVbXVs0XSA9CkBAIC0yMjEwLDcgKzIyODAsNyBA QCB0bV9nbXRvZmYgKHN0cnVjdCB0bSAqYSkKICNlbmRpZgogfQogCi1ERUZVTiAoImN1cnJl bnQtdGltZS16b25lIiwgRmN1cnJlbnRfdGltZV96b25lLCBTY3VycmVudF90aW1lX3pvbmUs IDAsIDEsIDAsCitERUZVTiAoImN1cnJlbnQtdGltZS16b25lIiwgRmN1cnJlbnRfdGltZV96 b25lLCBTY3VycmVudF90aW1lX3pvbmUsIDAsIDIsIDAsCiAgICAgICAgZG9jOiAvKiBSZXR1 cm4gdGhlIG9mZnNldCBhbmQgbmFtZSBmb3IgdGhlIGxvY2FsIHRpbWUgem9uZS4KIFRoaXMg cmV0dXJucyBhIGxpc3Qgb2YgdGhlIGZvcm0gKE9GRlNFVCBOQU1FKS4KIE9GRlNFVCBpcyBh biBpbnRlZ2VyIG51bWJlciBvZiBzZWNvbmRzIGFoZWFkIG9mIFVUQyAoZWFzdCBvZiBHcmVl bndpY2gpLgpAQCAtMjIyMSwxMSArMjI5MSwxMyBAQCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBj dXJyZW50IHRpbWUuICBUaGUgYXJndW1lbnQgc2hvdWxkIGhhdmUgdGhlIGZvcm0KIChISUdI IExPVyAuIElHTk9SRUQpLiAgVGh1cywgeW91IGNhbiB1c2UgdGltZXMgb2J0YWluZWQgZnJv bQogYGN1cnJlbnQtdGltZScgYW5kIGZyb20gYGZpbGUtYXR0cmlidXRlcycuICBTUEVDSUZJ RUQtVElNRSBjYW4gYWxzbwogaGF2ZSB0aGUgZm9ybSAoSElHSCAuIExPVyksIGJ1dCB0aGlz IGlzIGNvbnNpZGVyZWQgb2Jzb2xldGUuCitPcHRpb25hbCBzZWNvbmQgYXJnIFpPTkUgaXMg b21pdHRlZCBvciBuaWwgZm9yIHRoZSBsb2NhbCB0aW1lIHpvbmUsIG9yCithIHN0cmluZyBh cyBpbiBgc2V0LXRpbWUtem9uZS1ydWxlJy4KIAogU29tZSBvcGVyYXRpbmcgc3lzdGVtcyBj YW5ub3QgcHJvdmlkZSBhbGwgdGhpcyBpbmZvcm1hdGlvbiB0byBFbWFjczsKIGluIHRoaXMg Y2FzZSwgYGN1cnJlbnQtdGltZS16b25lJyByZXR1cm5zIGEgbGlzdCBjb250YWluaW5nIG5p bCBmb3IKIHRoZSBkYXRhIGl0IGNhbid0IGZpbmQuICAqLykKLSAgKExpc3BfT2JqZWN0IHNw ZWNpZmllZF90aW1lKQorICAoTGlzcF9PYmplY3Qgc3BlY2lmaWVkX3RpbWUsIExpc3BfT2Jq ZWN0IHpvbmUpCiB7CiAgIHN0cnVjdCB0aW1lc3BlYyB2YWx1ZTsKICAgc3RydWN0IHRtIGxv Y2FsX3RtLCBnbXRfdG07CkBAIC0yMjMzLDcgKzIzMDUsOCBAQCB0aGUgZGF0YSBpdCBjYW4n dCBmaW5kLiAgKi8pCiAKICAgem9uZV9vZmZzZXQgPSBRbmlsOwogICB2YWx1ZSA9IG1ha2Vf dGltZXNwZWMgKGxpc3Bfc2Vjb25kc19hcmd1bWVudCAoc3BlY2lmaWVkX3RpbWUpLCAwKTsK LSAgem9uZV9uYW1lID0gZm9ybWF0X3RpbWVfc3RyaW5nICgiJVoiLCBzaXplb2YgIiVaIiAt IDEsIHZhbHVlLCAwLCAmbG9jYWxfdG0pOworICB6b25lX25hbWUgPSBmb3JtYXRfdGltZV9z dHJpbmcgKCIlWiIsIHNpemVvZiAiJVoiIC0gMSwgdmFsdWUsCisJCQkJICB6b25lLCAmbG9j YWxfdG0pOwogCiAgIGlmIChIQVZFX1RNX0dNVE9GRiB8fCBnbXRpbWVfciAoJnZhbHVlLnR2 X3NlYywgJmdtdF90bSkpCiAgICAgewpAQCAtMjI1OSw0MiArMjMzMiw0OCBAQCB0aGUgZGF0 YSBpdCBjYW4ndCBmaW5kLiAgKi8pCiB9CiAKIERFRlVOICgic2V0LXRpbWUtem9uZS1ydWxl IiwgRnNldF90aW1lX3pvbmVfcnVsZSwgU3NldF90aW1lX3pvbmVfcnVsZSwgMSwgMSwgMCwK LSAgICAgICBkb2M6IC8qIFNldCB0aGUgbG9jYWwgdGltZSB6b25lIHVzaW5nIFRaLCBhIHN0 cmluZyBzcGVjaWZ5aW5nIGEgdGltZSB6b25lIHJ1bGUuCi1JZiBUWiBpcyBuaWwsIHVzZSBp bXBsZW1lbnRhdGlvbi1kZWZpbmVkIGRlZmF1bHQgdGltZSB6b25lIGluZm9ybWF0aW9uLgot SWYgVFogaXMgdCwgdXNlIFVuaXZlcnNhbCBUaW1lLiAgSWYgVFogaXMgYW4gaW50ZWdlciwg aXQgaXMgdHJlYXRlZCBhcyBpbgotYGVuY29kZS10aW1lJy4KLQotSW5zdGVhZCBvZiBjYWxs aW5nIHRoaXMgZnVuY3Rpb24sIHlvdSB0eXBpY2FsbHkgd2FudCAoc2V0ZW52ICJUWiIgVFop LgotVGhhdCBjaGFuZ2VzIGJvdGggdGhlIGVudmlyb25tZW50IG9mIHRoZSBFbWFjcyBwcm9j ZXNzIGFuZCB0aGUKLXZhcmlhYmxlIGBwcm9jZXNzLWVudmlyb25tZW50Jywgd2hlcmVhcyBg c2V0LXRpbWUtem9uZS1ydWxlJyBhZmZlY3RzCi1vbmx5IHRoZSBmb3JtZXIuICAqLykKKyAg ICAgICBkb2M6IC8qIFNldCB0aGUgRW1hY3MgbG9jYWwgdGltZSB6b25lIHVzaW5nIFRaLCBh IHN0cmluZyBzcGVjaWZ5aW5nIGEgdGltZSB6b25lIHJ1bGUuCitJZiBUWiBpcyBuaWwgb3Ig YHdhbGwnLCB1c2Ugc3lzdGVtIHdhbGwgY2xvY2sgdGltZS4gIElmIFRaIGlzIHQsIHVzZQor VW5pdmVyc2FsIFRpbWUuICBJZiBUWiBpcyBhbiBpbnRlZ2VyLCB0cmVhdCBpdCBhcyBpbiBg ZW5jb2RlLXRpbWUnLgorCitJbnN0ZWFkIG9mIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgeW91 IHR5cGljYWxseSB3YW50IHNvbWV0aGluZyBlbHNlLgorVG8gdGVtcG9yYXJpbHkgdXNlIGEg ZGlmZmVyZW50IHRpbWUgem9uZSBydWxlIGZvciBqdXN0IG9uZSBpbnZvY2F0aW9uCitvZiBg ZGVjb2RlLXRpbWUnLCBgZW5jb2RlLXRpbWUnLCBvciBgZm9ybWF0LXRpbWUtc3RyaW5nJywg cGFzcyB0aGUKK2Z1bmN0aW9uIGEgWk9ORSBhcmd1bWVudC4gIFRvIGNoYW5nZSBsb2NhbCB0 aW1lIGNvbnNpc3RlbnRseQordGhyb3VnaG91dCBFbWFjcywgY2FsbCAoc2V0ZW52ICJUWiIg VFopOiB0aGlzIGNoYW5nZXMgYm90aCB0aGUKK2Vudmlyb25tZW50IG9mIHRoZSBFbWFjcyBw cm9jZXNzIGFuZCB0aGUgdmFyaWFibGUKK2Bwcm9jZXNzLWVudmlyb25tZW50Jywgd2hlcmVh cyBgc2V0LXRpbWUtem9uZS1ydWxlJyBhZmZlY3RzIG9ubHkgdGhlCitmb3JtZXIuICAqLykK ICAgKExpc3BfT2JqZWN0IHR6KQogewotICBjb25zdCBjaGFyICp0enN0cmluZyA9IE5JTFAg KHR6KSA/IGluaXRpYWxfdHogOiBTU0RBVEEgKGRlY29kZV90aW1lX3pvbmUgKHR6KSk7Cisg IHR6bG9va3VwIChOSUxQICh0eikgPyBRd2FsbCA6IHR6LCB0cnVlKTsKKyAgcmV0dXJuIFFu aWw7Cit9CiAKLSAgYmxvY2tfaW5wdXQgKCk7Ci0gIHNldF90aW1lX3pvbmVfcnVsZSAodHpz dHJpbmcpOwotICB1bmJsb2NrX2lucHV0ICgpOworLyogQSBidWZmZXIgaG9sZGluZyBhIHN0 cmluZyBvZiB0aGUgZm9ybSAiVFo9dmFsdWUiLCBpbnRlbmRlZAorICAgdG8gYmUgcGFydCBv ZiB0aGUgZW52aXJvbm1lbnQuICBJZiBUWiBpcyBzdXBwb3NlZCB0byBiZSB1bnNldCwKKyAg IHRoZSBidWZmZXIgc3RyaW5nIGlzICJ0Wj0iLiAgKi8KKyBzdGF0aWMgY2hhciAqdHp2YWxi dWY7CiAKLSAgcmV0dXJuIFFuaWw7CisvKiBHZXQgdGhlIGxvY2FsIHRpbWUgem9uZSBydWxl LiAgKi8KK2NoYXIgKgorZW1hY3NfZ2V0ZW52X1RaICh2b2lkKQoreworICByZXR1cm4gdHp2 YWxidWZbMF0gPT0gJ1QnID8gdHp2YWxidWYgKyB0emVxbGVuIDogMDsKIH0KIAotLyogU2V0 IHRoZSBsb2NhbCB0aW1lIHpvbmUgcnVsZSB0byBUWlNUUklORy4KKy8qIFNldCB0aGUgbG9j YWwgdGltZSB6b25lIHJ1bGUgdG8gVFpTVFJJTkcsIHdoaWNoIGNhbiBiZSBudWxsIHRvCisg ICBkZW5vdGUgd2FsbCBjbG9jayB0aW1lLiAgRG8gbm90IHJlY29yZCB0aGUgc2V0dGluZyBp biBMT0NBTF9UWi4KIAogICAgVGhpcyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkLXNhZmUsIGlu IHRoZW9yeSBiZWNhdXNlIHB1dGVudiBpcyBub3QsCiAgICBidXQgbW9zdGx5IGJlY2F1c2Ug b2YgdGhlIHN0YXRpYyBzdG9yYWdlIGl0IHVwZGF0ZXMuICBPdGhlciB0aHJlYWRzCiAgICB0 aGF0IGludm9rZSBsb2NhbHRpbWUgZXRjLiBtYXkgYmUgYWR2ZXJzZWx5IGFmZmVjdGVkIHdo aWxlIHRoaXMKICAgIGZ1bmN0aW9uIGlzIGV4ZWN1dGluZy4gICovCiAKLXN0YXRpYyB2b2lk Ci1zZXRfdGltZV96b25lX3J1bGUgKGNvbnN0IGNoYXIgKnR6c3RyaW5nKQoraW50CitlbWFj c19zZXRlbnZfVFogKGNvbnN0IGNoYXIgKnR6c3RyaW5nKQogewotICAvKiBBIGJ1ZmZlciBo b2xkaW5nIGEgc3RyaW5nIG9mIHRoZSBmb3JtICJUWj12YWx1ZSIsIGludGVuZGVkCi0gICAg IHRvIGJlIHBhcnQgb2YgdGhlIGVudmlyb25tZW50LiAgKi8KLSAgc3RhdGljIGNoYXIgKnR6 dmFsYnVmOwogICBzdGF0aWMgcHRyZGlmZl90IHR6dmFsYnVmc2l6ZTsKLQotICBpbnQgdHpl cWxlbiA9IHNpemVvZiAiVFo9IiAtIDE7CiAgIHB0cmRpZmZfdCB0enN0cmluZ2xlbiA9IHR6 c3RyaW5nID8gc3RybGVuICh0enN0cmluZykgOiAwOwogICBjaGFyICp0enZhbCA9IHR6dmFs YnVmOwogICBib29sIG5ld190enZhbGJ1ZiA9IHR6dmFsYnVmc2l6ZSA8PSB0emVxbGVuICsg dHpzdHJpbmdsZW47CkBAIC0yMzQ2LDkgKzI0MjUsNyBAQCBzZXRfdGltZV96b25lX3J1bGUg KGNvbnN0IGNoYXIgKnR6c3RyaW5nKQogICAgICAgeHB1dGVudiAodHp2YWwpOwogICAgIH0K IAotI2lmZGVmIEhBVkVfVFpTRVQKLSAgdHpzZXQgKCk7Ci0jZW5kaWYKKyAgcmV0dXJuIDA7 CiB9CiAMCiAvKiBJbnNlcnQgTkFSR1MgTGlzcCBvYmplY3RzIGluIHRoZSBhcnJheSBBUkdT IGJ5IGNhbGxpbmcgSU5TRVJUX0ZVTkMKQEAgLTQ5NDMsNiArNTAyMCw3IEBAIHZvaWQKIHN5 bXNfb2ZfZWRpdGZucyAodm9pZCkKIHsKICAgREVGU1lNIChRYnVmZmVyX2FjY2Vzc19mb250 aWZ5X2Z1bmN0aW9ucywgImJ1ZmZlci1hY2Nlc3MtZm9udGlmeS1mdW5jdGlvbnMiKTsKKyAg REVGU1lNIChRd2FsbCwgIndhbGwiKTsKIAogICBERUZWQVJfTElTUCAoImluaGliaXQtZmll bGQtdGV4dC1tb3Rpb24iLCBWaW5oaWJpdF9maWVsZF90ZXh0X21vdGlvbiwKIAkgICAgICAg ZG9jOiAvKiBOb24tbmlsIG1lYW5zIHRleHQgbW90aW9uIGNvbW1hbmRzIGRvbid0IG5vdGlj ZSBmaWVsZHMuICAqLyk7CmRpZmYgLS1naXQgYS9zcmMvZW1hY3MuYyBiL3NyYy9lbWFjcy5j CmluZGV4IDkzZmI1ODcuLjZlMzU0OTYgMTAwNjQ0Ci0tLSBhL3NyYy9lbWFjcy5jCisrKyBi L3NyYy9lbWFjcy5jCkBAIC0xNTUyLDcgKzE1NTIsNyBAQCBVc2luZyBhbiBFbWFjcyBjb25m aWd1cmVkIHdpdGggLS13aXRoLXgtdG9vbGtpdD1sdWNpZCBkb2VzIG5vdCBoYXZlIHRoaXMg cHJvYmxlbQogCiAgIC8qIFRoaXMgY2FsbHMgcHV0ZW52IGFuZCBzbyBtdXN0IHByZWNlZGUg aW5pdF9wcm9jZXNzX2VtYWNzLiAgQWxzbywKICAgICAgaXQgc2V0cyBWb3BlcmF0aW5nX3N5 c3RlbV9yZWxlYXNlLCB3aGljaCBpbml0X3Byb2Nlc3NfZW1hY3MgdXNlcy4gICovCi0gIGlu aXRfZWRpdGZucyAoKTsKKyAgaW5pdF9lZGl0Zm5zIChkdW1waW5nKTsKIAogICAvKiBUaGVz ZSB0d28gY2FsbCBwdXRlbnYuICAqLwogI2lmZGVmIEhBVkVfREJVUwpkaWZmIC0tZ2l0IGEv c3JjL2xpc3AuaCBiL3NyYy9saXNwLmgKaW5kZXggMzQxNjAzZi4uMDIxMDlkNyAxMDA2NDQK LS0tIGEvc3JjL2xpc3AuaAorKysgYi9zcmMvbGlzcC5oCkBAIC00MDU1LDcgKzQwNTUsNyBA QCBleHRlcm4gX05vcmV0dXJuIHZvaWQgdGltZV9vdmVyZmxvdyAodm9pZCk7CiBleHRlcm4g TGlzcF9PYmplY3QgbWFrZV9idWZmZXJfc3RyaW5nIChwdHJkaWZmX3QsIHB0cmRpZmZfdCwg Ym9vbCk7CiBleHRlcm4gTGlzcF9PYmplY3QgbWFrZV9idWZmZXJfc3RyaW5nX2JvdGggKHB0 cmRpZmZfdCwgcHRyZGlmZl90LCBwdHJkaWZmX3QsCiAJCQkJCSAgICBwdHJkaWZmX3QsIGJv b2wpOwotZXh0ZXJuIHZvaWQgaW5pdF9lZGl0Zm5zICh2b2lkKTsKK2V4dGVybiB2b2lkIGlu aXRfZWRpdGZucyAoYm9vbCk7CiBleHRlcm4gdm9pZCBzeW1zX29mX2VkaXRmbnMgKHZvaWQp OwogCiAvKiBEZWZpbmVkIGluIGJ1ZmZlci5jLiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9zeXN0 aW1lLmggYi9zcmMvc3lzdGltZS5oCmluZGV4IDc0NGFmMTcuLmFiYmU2MDEgMTAwNjQ0Ci0t LSBhL3NyYy9zeXN0aW1lLmgKKysrIGIvc3JjL3N5c3RpbWUuaApAQCAtMTA2LDIwICsxMDYs NiBAQCBleHRlcm4gc3RydWN0IHRpbWVzcGVjIGxpc3BfdG9fdGltZXNwZWMgKHN0cnVjdCBs aXNwX3RpbWUpOwogZXh0ZXJuIHN0cnVjdCB0aW1lc3BlYyBsaXNwX3RpbWVfYXJndW1lbnQg KExpc3BfT2JqZWN0KTsKICNlbmRpZgogCi0jaWZuZGVmIEhBVkVfVFpBTExPQwotIyB1bmRl ZiBta3RpbWVfegotIyB1bmRlZiB0aW1lem9uZV90Ci0jIHVuZGVmIHR6YWxsb2MKLSMgdW5k ZWYgdHpmcmVlCi0jIGRlZmluZSBta3RpbWVfeiBlbWFjc19ta3RpbWVfegotIyBkZWZpbmUg dGltZXpvbmVfdCBlbWFjc190aW1lem9uZV90Ci0jIGRlZmluZSB0emFsbG9jIGVtYWNzX3R6 YWxsb2MKLSMgZGVmaW5lIHR6ZnJlZSBlbWFjc190emZyZWUKLXR5cGVkZWYgY2hhciBjb25z dCAqdGltZXpvbmVfdDsKLUlOTElORSB0aW1lem9uZV90IHR6YWxsb2MgKGNoYXIgY29uc3Qg Km5hbWUpIHsgcmV0dXJuIG5hbWU7IH0KLUlOTElORSB2b2lkIHR6ZnJlZSAodGltZXpvbmVf dCB0eikgeyB9Ci0jZW5kaWYKLQogSU5MSU5FX0hFQURFUl9FTkQKIAogI2VuZGlmIC8qIEVN QUNTX1NZU1RJTUVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3RpbWVfcnouYyBiL3NyYy90aW1l X3J6LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLSAK Mi4xLjAKCg== --------------010405080708080809030701--