Subject: Re: port-arm/34684 (OMAP patch 5/5: OSK5912 board support)
To: None <christos@NetBSD.org, gnats-admin@netbsd.org,>
From: Bucky Katz <bucky@picovex.com>
List: netbsd-bugs
Date: 01/06/2007 05:00:16
The following reply was made to PR port-arm/34684; it has been noted by GNATS.

From: Bucky Katz <bucky@picovex.com>
To: gnats-bugs@NetBSD.org
Cc: christos@NetBSD.org, gnats-admin@netbsd.org,
	netbsd-bugs@netbsd.org, Bucky Katz <bucky@picovex.com>
Subject: Re: port-arm/34684 (OMAP patch 5/5: OSK5912 board support)
Date: Fri, 05 Jan 2007 20:38:40 -0800

 --=-=-=
 
 christos@zoulas.com (Christos Zoulas) writes:
 
 > The following reply was made to PR port-arm/34684; it has been noted by GNATS.
 >
 > From: christos@zoulas.com (Christos Zoulas)
 > To: gnats-bugs@NetBSD.org, gnats-admin@netbsd.org,
 > 	netbsd-bugs@netbsd.org, Bucky Katz <bucky@picovex.com>
 > Cc: 
 > Subject: Re: port-arm/34684 (OMAP patch 5/5: OSK5912 board support)
 > Date: Fri, 5 Jan 2007 23:13:01 -0500
 >
 >  On Jan 6,  3:55am, bucky@picovex.com (Bucky Katz) wrote:
 >  -- Subject: Re: port-arm/34684 (OMAP patch 5/5: OSK5912 board support)
 >  
 >  |  It's not part of that patch and it needs to be applied because it
 >  |  contains the board support for the OSK591 machdep as well as the conf
 >  |  files for that board.
 >  
 >  Bucky, can you please cvs update and send me an updated patch? I tried
 >  to apply patch 5 and it seems to have reversed another patch you send us.
 >  
 >  chridtos
 >  
 
 Here, finally, is the last patch needed to bring the cvs tree into agreement with what we've sent you, adding generic TOD clock to arm
 
 
 --=-=-=
 Content-Type: application/octet-stream
 Content-Disposition: attachment; filename=patch.rtc
 Content-Transfer-Encoding: base64
 Content-Description: generic tod support for arm
 
 c3JjL3N5cy9hcmNoL2FybS9lcDkzeHgvZXBjbGsuYwotLS0gLi4vY3ZzL3NyYy9zeXMvYXJjaC9h
 cm0vZXA5M3h4L2VwY2xrLmMJMjAwNi0wOS0xMCAyMDowMjoxOC4wMDAwMDAwMDAgLTA3MDAKKysr
 IHNyYy9zeXMvYXJjaC9hcm0vZXA5M3h4L2VwY2xrLmMJMjAwNy0wMS0wNSAxODo0Njo1OC4wMDAw
 MDAwMDAgLTA4MDAKQEAgLTMyNCw5MyArMzI0LDMgQEAKIAkJdGlja3MgPSBUSU1FUjRWQUwoKTsK
 IAl9CiB9Ci0KLSNpZm5kZWYgX19IQVZFX0dFTkVSSUNfVE9EUgotCi10b2RyX2NoaXBfaGFuZGxl
 X3QgdG9kcl9oYW5kbGU7Ci0KLS8qCi0gKiB0b2RyX2F0dGFjaDoKLSAqCi0gKglTZXQgdGhlIHNw
 ZWNpZmllZCB0aW1lLW9mLWRheSByZWdpc3RlciBhcyB0aGUgc3lzdGVtIHJlYWwtdGltZSBjbG9j
 ay4KLSAqLwotdm9pZAotdG9kcl9hdHRhY2godG9kcl9jaGlwX2hhbmRsZV90IHRvZHIpCi17Ci0K
 LQlpZiAodG9kcl9oYW5kbGUpCi0JCXBhbmljKCJ0b2RyX2F0dGFjaDogcnRjIGFscmVhZHkgY29u
 ZmlndXJlZCIpOwotCXRvZHJfaGFuZGxlID0gdG9kcjsKLX0KLQotLyoKLSAqIGluaXR0b2RyOgot
 ICoKLSAqCUluaXRpYWxpemUgdGltZSBmcm9tIHRoZSB0aW1lLW9mLWRheSByZWdpc3Rlci4KLSAq
 LwotI2RlZmluZQlNSU5ZRUFSCQkyMDAzCS8qIG1pbmltdW0gcGxhdXNpYmxlIHllYXIgKi8KLXZv
 aWQKLWluaXR0b2RyKHRpbWVfdCBiYXNlKQotewotCXRpbWVfdCBkZWx0YXQ7Ci0JaW50IGJhZGJh
 c2U7Ci0KLQlpZiAoYmFzZSA8IChNSU5ZRUFSIC0gMTk3MCkgKiBTRUNZUikgewotCQlwcmludGYo
 IldBUk5JTkc6IHByZXBvc3Rlcm91cyB0aW1lIGluIGZpbGUgc3lzdGVtXG4iKTsKLQkJLyogcmVh
 ZCB0aGUgc3lzdGVtIGNsb2NrIGFueXdheSAqLwotCQliYXNlID0gKE1JTllFQVIgLSAxOTcwKSAq
 IFNFQ1lSOwotCQliYWRiYXNlID0gMTsKLQl9IGVsc2UKLQkJYmFkYmFzZSA9IDA7Ci0KLQlpZiAo
 dG9kcl9oYW5kbGUgPT0gTlVMTCB8fAotCSAgICB0b2RyX2dldHRpbWUodG9kcl9oYW5kbGUsICZ0
 aW1lKSAhPSAwIHx8Ci0JICAgIHRpbWUudHZfc2VjID09IDApIHsKLQkJLyoKLQkJICogQmVsaWV2
 ZSB0aGUgdGltZSBpbiB0aGUgZmlsZSBzeXN0ZW0gZm9yIGxhY2sgb2YKLQkJICogYW55dGhpbmcg
 YmV0dGVyLCByZXNldHRpbmcgdGhlIFRPRFIuCi0JCSAqLwotCQl0aW1lLnR2X3NlYyA9IGJhc2U7
 Ci0JCXRpbWUudHZfdXNlYyA9IDA7Ci0JCWlmICh0b2RyX2hhbmRsZSAhPSBOVUxMICYmICFiYWRi
 YXNlKSB7Ci0JCQlwcmludGYoIldBUk5JTkc6IHByZXBvc3Rlcm91cyBjbG9jayBjaGlwIHRpbWVc
 biIpOwotCQkJcmVzZXR0b2RyKCk7Ci0JCX0KLQkJZ290byBiYWQ7Ci0JfQotCi0JaWYgKCFiYWRi
 YXNlKSB7Ci0JCS8qCi0JCSAqIFNlZSBpZiB3ZSBnYWluZWQvbG9zdCB0d28gb3IgbW9yZSBkYXlz
 OyBpZgotCQkgKiBzbywgYXNzdW1lIHNvbWV0aGluZyBpcyBhbWlzcy4KLQkJICovCi0JCWRlbHRh
 dCA9IHRpbWUudHZfc2VjIC0gYmFzZTsKLQkJaWYgKGRlbHRhdCA8IDApCi0JCQlkZWx0YXQgPSAt
 ZGVsdGF0OwotCQlpZiAoZGVsdGF0IDwgMiAqIFNFQ0RBWSkKLQkJCXJldHVybjsJCS8qIGFsbCBp
 cyB3ZWxsICovCi0JCXByaW50ZigiV0FSTklORzogY2xvY2sgJXMgJWxkIGRheXNcbiIsCi0JCSAg
 ICB0aW1lLnR2X3NlYyA8IGJhc2UgPyAibG9zdCIgOiAiZ2FpbmVkIiwKLQkJICAgIChsb25nKWRl
 bHRhdCAvIFNFQ0RBWSk7Ci0JfQotIGJhZDoKLQlwcmludGYoIldBUk5JTkc6IENIRUNLIEFORCBS
 RVNFVCBUSEUgREFURSFcbiIpOwotfQotCi0vKgotICogcmVzZXR0b2RyOgotICoKLSAqCVJlc2V0
 IHRoZSB0aW1lLW9mLWRheSByZWdpc3RlciB3aXRoIHRoZSBjdXJyZW50IHRpbWUuCi0gKi8KLXZv
 aWQKLXJlc2V0dG9kcih2b2lkKQotewotCi0JaWYgKHRpbWUudHZfc2VjID09IDApCi0JCXJldHVy
 bjsKLQotCWlmICh0b2RyX2hhbmRsZSAhPSBOVUxMICYmCi0JICAgIHRvZHJfc2V0dGltZSh0b2Ry
 X2hhbmRsZSwgJnRpbWUpICE9IDApCi0JCXByaW50ZigicmVzZXR0b2RyOiBmYWlsZWQgdG8gc2V0
 IHRpbWVcbiIpOwotfQotI2VuZGlmCnNyYy9zeXMvYXJjaC9hcm0vZm9vdGJyaWRnZS9mb290YnJp
 ZGdlLmMKLS0tIC4uL2N2cy9zcmMvc3lzL2FyY2gvYXJtL2Zvb3RicmlkZ2UvZm9vdGJyaWRnZS5j
 CTIwMDUtMTItMTEgMTk6MDM6MjQuMDAwMDAwMDAwIC0wODAwCisrKyBzcmMvc3lzL2FyY2gvYXJt
 L2Zvb3RicmlkZ2UvZm9vdGJyaWRnZS5jCTIwMDctMDEtMDUgMTg6NDY6NTguMDAwMDAwMDAwIC0w
 ODAwCkBAIC0yMTYsMTQgKzIxNiw2IEBACiAJZmJhLmZiYV9wYmEucGJhX2JyaWRnZXRhZyA9IE5V
 TEw7CiAJY29uZmlnX2ZvdW5kX2lhKHNlbGYsICJwY2lidXMiLCAmZmJhLmZiYV9wYmEsIHBjaWJ1
 c3ByaW50KTsKIAotCS8qIEF0dGFjaCBhIHRpbWUtb2YtZGF5IGNsb2NrIGRldmljZSAqLwotCWZi
 YS5mYmFfdGNhLnRhX25hbWUgPSAidG9kY2xvY2siOwotCWZiYS5mYmFfdGNhLnRhX3J0Y19hcmcg
 PSBOVUxMOwotCWZiYS5mYmFfdGNhLnRhX3J0Y193cml0ZSA9IE5VTEw7Ci0JZmJhLmZiYV90Y2Eu
 dGFfcnRjX3JlYWQgPSBOVUxMOwotCWZiYS5mYmFfdGNhLnRhX2ZsYWdzID0gVE9EQ0xPQ0tfRkxB
 R19GQUtFOwotCWNvbmZpZ19mb3VuZF9pYShzZWxmLCAidG9kc2VydmljZSIsICZmYmEuZmJhX3Rj
 YSwgZm9vdGJyaWRnZV9wcmludCk7IAotCiAJLyogQXR0YWNoIHVhcnQgZGV2aWNlICovCiAJZmJh
 LmZiYV9mY2EuZmNhX25hbWUgPSAiZmNvbSI7CiAJZmJhLmZiYV9mY2EuZmNhX2lvdCA9IHNjLT5z
 Y19pb3Q7CnNyYy9zeXMvYXJjaC9hcm0vZm9vdGJyaWRnZS9mb290YnJpZGdldmFyLmgKLS0tIC4u
 L2N2cy9zcmMvc3lzL2FyY2gvYXJtL2Zvb3RicmlkZ2UvZm9vdGJyaWRnZXZhci5oCTIwMDUtMTIt
 MTEgMTk6MDM6MjQuMDAwMDAwMDAwIC0wODAwCisrKyBzcmMvc3lzL2FyY2gvYXJtL2Zvb3Ricmlk
 Z2UvZm9vdGJyaWRnZXZhci5oCTIwMDctMDEtMDUgMTg6NDY6NTguMDAwMDAwMDAwIC0wODAwCkBA
 IC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSA8bWFjaGluZS9idXMuaD4KICNpbmNsdWRlIDxtYWNo
 aW5lL3J0Yy5oPgogI2luY2x1ZGUgPGRldi9wY2kvcGNpdmFyLmg+Ci0jaW5jbHVkZSA8YXJtL2Zv
 b3RicmlkZ2UvdG9kY2xvY2t2YXIuaD4KIAogLyoKICAqIERDMjEyODUgc29mdGMgc3RydWN0dXJl
 LgpAQCAtNzcsNyArNzYsNiBAQAogCQlidXNfc3BhY2VfaGFuZGxlX3QgZmJhX2lvaDsJLyogQnVz
 IGhhbmRsZSAqLwogCX0gZmJhX2ZiYTsKIAlzdHJ1Y3QgcGNpYnVzX2F0dGFjaF9hcmdzIGZiYV9w
 YmE7CS8qIHBjaSBhdHRhY2ggYXJncyAqLwotCXN0cnVjdCB0b2RjbG9ja19hdHRhY2hfYXJncyBm
 YmFfdGNhOwogCXN0cnVjdCBmY29tX2F0dGFjaF9hcmdzIHsKIAkJY29uc3QgY2hhciAqZmNhX25h
 bWU7CiAJCWJ1c19zcGFjZV90YWdfdCBmY2FfaW90OwpzcmMvc3lzL2FyY2gvYXJtL2Zvb3Ricmlk
 Z2UvaXNhL2RzcnRjLmMKLS0tIC4uL2N2cy9zcmMvc3lzL2FyY2gvYXJtL2Zvb3RicmlkZ2UvaXNh
 L2RzcnRjLmMJMjAwNi0wOS0xMSAyMDowMjowNS4wMDAwMDAwMDAgLTA3MDAKKysrIHNyYy9zeXMv
 YXJjaC9hcm0vZm9vdGJyaWRnZS9pc2EvZHNydGMuYwkyMDA3LTAxLTA1IDE4OjQ2OjU4LjAwMDAw
 MDAwMCAtMDgwMApAQCAtNDUsOSArNDUsNyBAQAogI2luY2x1ZGUgPHN5cy9jb25mLmg+CiAjaW5j
 bHVkZSA8c3lzL2RldmljZS5oPgogCi0jaW5jbHVkZSA8bWFjaGluZS9ydGMuaD4KLQotI2luY2x1
 ZGUgPGFybS9mb290YnJpZGdlL3RvZGNsb2NrdmFyLmg+CisjaW5jbHVkZSA8ZGV2L2Nsb2NrX3N1
 YnIuaD4KICNpbmNsdWRlIDxhcm0vZm9vdGJyaWRnZS9pc2EvZHMxNjg3cmVnLmg+CiAKICNpbmNs
 dWRlIDxkZXYvaXNhL2lzYXZhci5oPgpAQCAtNTgsNiArNTYsNyBAQAogCXN0cnVjdCBkZXZpY2UJ
 c2NfZGV2OwogCWJ1c19zcGFjZV90YWdfdAlzY19pb3Q7CiAJYnVzX3NwYWNlX2hhbmRsZV90IHNj
 X2lvaDsKKwlzdHJ1Y3QgdG9kcl9jaGlwX2hhbmRsZSBzY190b2RyOwogfTsKIAogdm9pZCBkc3J0
 Y2F0dGFjaChzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsIHN0cnVjdCBkZXZpY2UgKnNlbGYsIHZvaWQg
 KmF1eCk7CkBAIC02OSw4ICs2OCw4IEBACiB2b2lkIGRzMTY4N19yYW1fd3JpdGUoc3RydWN0IGRz
 cnRjX3NvZnRjICpzYywgaW50IGFkZHIsIGludCBkYXRhKTsKICNlbmRpZgogc3RhdGljIHZvaWQg
 ZHMxNjg3X2Jhbmtfc2VsZWN0KHN0cnVjdCBkc3J0Y19zb2Z0YyAqLCBpbnQpOwotc3RhdGljIGlu
 dCBkc3J0Y193cml0ZSh2b2lkICosIHJ0Y190ICopOwotc3RhdGljIGludCBkc3J0Y19yZWFkKHZv
 aWQgKiwgcnRjX3QgKik7CitzdGF0aWMgaW50IGRzcnRjX3dyaXRlKHRvZHJfY2hpcF9oYW5kbGVf
 dCwgc3RydWN0IGNsb2NrX3ltZGhtcyAqKTsKK3N0YXRpYyBpbnQgZHNydGNfcmVhZCh0b2RyX2No
 aXBfaGFuZGxlX3QsIHN0cnVjdCBjbG9ja195bWRobXMgKik7CiAKIGludAogZHMxNjg3X3JlYWQo
 c3RydWN0IGRzcnRjX3NvZnRjICpzYywgaW50IGFkZHIpCkBAIC0xNDYsNDAgKzE0NSwzOCBAQAog
 I2VuZGlmCiAKIHN0YXRpYyBpbnQKLWRzcnRjX3dyaXRlKHZvaWQgKmFyZywgcnRjX3QgKnJ0YykK
 K2RzcnRjX3dyaXRlKHRvZHJfY2hpcF9oYW5kbGVfdCB0Yywgc3RydWN0IGNsb2NrX3ltZGhtcyAq
 ZHQpCiB7Ci0Jc3RydWN0IGRzcnRjX3NvZnRjICpzYyA9IGFyZzsKKwlzdHJ1Y3QgZHNydGNfc29m
 dGMgKnNjID0gdGMtPmNvb2tpZTsKIAotCWRzMTY4N193cml0ZShzYywgUlRDX1NFQ09ORFMsIHJ0
 Yy0+cnRjX3NlYyk7Ci0JZHMxNjg3X3dyaXRlKHNjLCBSVENfTUlOVVRFUywgcnRjLT5ydGNfbWlu
 KTsKLQlkczE2ODdfd3JpdGUoc2MsIFJUQ19IT1VSUywgcnRjLT5ydGNfaG91cik7Ci0JZHMxNjg3
 X3dyaXRlKHNjLCBSVENfREFZT0ZNT05USCwgcnRjLT5ydGNfZGF5KTsKLQlkczE2ODdfd3JpdGUo
 c2MsIFJUQ19NT05USCwgcnRjLT5ydGNfbW9uKTsKLQlkczE2ODdfd3JpdGUoc2MsIFJUQ19ZRUFS
 LCBydGMtPnJ0Y195ZWFyKTsKKwlkczE2ODdfd3JpdGUoc2MsIFJUQ19TRUNPTkRTLCBkdC0+ZHRf
 c2VjKTsKKwlkczE2ODdfd3JpdGUoc2MsIFJUQ19NSU5VVEVTLCBkdC0+ZHRfbWluKTsKKwlkczE2
 ODdfd3JpdGUoc2MsIFJUQ19IT1VSUywgZHQtPmR0X2hvdXIpOworCWRzMTY4N193cml0ZShzYywg
 UlRDX0RBWU9GTU9OVEgsIGR0LT5kdF9kYXkpOworCWRzMTY4N193cml0ZShzYywgUlRDX01PTlRI
 LCBkdC0+ZHRfbW9uKTsKKwlkczE2ODdfd3JpdGUoc2MsIFJUQ19ZRUFSLCBkdC0+ZHRfeWVhciAl
 IDEwMCk7CiAJZHMxNjg3X2Jhbmtfc2VsZWN0KHNjLCAxKTsKLQlkczE2ODdfd3JpdGUoc2MsIFJU
 Q19DRU5UVVJZLCBydGMtPnJ0Y19jZW4pOworCWRzMTY4N193cml0ZShzYywgUlRDX0NFTlRVUlks
 IGR0LT5kdF95ZWFyIC8gMTAwKTsKIAlkczE2ODdfYmFua19zZWxlY3Qoc2MsIDApOwotCXJldHVy
 bigxKTsKKwlyZXR1cm4oMCk7CiB9CiAKIHN0YXRpYyBpbnQKLWRzcnRjX3JlYWQodm9pZCAqYXJn
 LCBydGNfdCAqcnRjKQorZHNydGNfcmVhZCh0b2RyX2NoaXBfaGFuZGxlX3QgdGMsIHN0cnVjdCBj
 bG9ja195bWRobXMgKmR0KQogewotCXN0cnVjdCBkc3J0Y19zb2Z0YyAqc2MgPSBhcmc7CisJc3Ry
 dWN0IGRzcnRjX3NvZnRjICpzYyA9IHRjLT5jb29raWU7CiAKLQlydGMtPnJ0Y19taWNybyA9IDA7
 Ci0JcnRjLT5ydGNfY2VudGkgPSAwOwotCXJ0Yy0+cnRjX3NlYyAgID0gZHMxNjg3X3JlYWQoc2Ms
 IFJUQ19TRUNPTkRTKTsKLQlydGMtPnJ0Y19taW4gICA9IGRzMTY4N19yZWFkKHNjLCBSVENfTUlO
 VVRFUyk7Ci0JcnRjLT5ydGNfaG91ciAgPSBkczE2ODdfcmVhZChzYywgUlRDX0hPVVJTKTsKLQly
 dGMtPnJ0Y19kYXkgICA9IGRzMTY4N19yZWFkKHNjLCBSVENfREFZT0ZNT05USCk7Ci0JcnRjLT5y
 dGNfbW9uICAgPSBkczE2ODdfcmVhZChzYywgUlRDX01PTlRIKTsKLQlydGMtPnJ0Y195ZWFyICA9
 IGRzMTY4N19yZWFkKHNjLCBSVENfWUVBUik7CisJZHQtPmR0X3NlYyAgID0gZHMxNjg3X3JlYWQo
 c2MsIFJUQ19TRUNPTkRTKTsKKwlkdC0+ZHRfbWluICAgPSBkczE2ODdfcmVhZChzYywgUlRDX01J
 TlVURVMpOworCWR0LT5kdF9ob3VyICA9IGRzMTY4N19yZWFkKHNjLCBSVENfSE9VUlMpOworCWR0
 LT5kdF9kYXkgICA9IGRzMTY4N19yZWFkKHNjLCBSVENfREFZT0ZNT05USCk7CisJZHQtPmR0X21v
 biAgID0gZHMxNjg3X3JlYWQoc2MsIFJUQ19NT05USCk7CisJZHQtPmR0X3llYXIgID0gZHMxNjg3
 X3JlYWQoc2MsIFJUQ19ZRUFSKTsKIAlkczE2ODdfYmFua19zZWxlY3Qoc2MsIDEpOwotCXJ0Yy0+
 cnRjX2NlbiAgID0gZHMxNjg3X3JlYWQoc2MsIFJUQ19DRU5UVVJZKTsgCisJZHQtPmR0X3llYXIg
 ICs9IGRzMTY4N19yZWFkKHNjLCBSVENfQ0VOVFVSWSkgKiAxMDA7CiAJZHMxNjg3X2Jhbmtfc2Vs
 ZWN0KHNjLCAwKTsKIAotCXJldHVybigxKTsKKwlyZXR1cm4oMCk7CiB9CiAKIC8qIGRldmljZSBh
 bmQgYXR0YWNoIHN0cnVjdHVyZXMgKi8KQEAgLTIyMiw3ICsyMTksNiBAQAogewogCXN0cnVjdCBk
 c3J0Y19zb2Z0YyAqc2MgPSAoc3RydWN0IGRzcnRjX3NvZnRjICopc2VsZjsKIAlzdHJ1Y3QgaXNh
 X2F0dGFjaF9hcmdzICppYSA9IGF1eDsKLQlzdHJ1Y3QgdG9kY2xvY2tfYXR0YWNoX2FyZ3MgdGE7
 CiAJCiAJc2MtPnNjX2lvdCA9IGlhLT5pYV9pb3Q7CiAJaWYgKGJ1c19zcGFjZV9tYXAoc2MtPnNj
 X2lvdCwgaWEtPmlhX2lvWzBdLmlyX2FkZHIsCkBAIC0yMzgsMTIgKzIzNCwxMCBAQAogCQlwcmlu
 dGYoIjogbGl0aGl1bSBjZWxsIGlzIGRlYWQsIFJUQyB1bnJlbGlhYmxlIik7CiAJcHJpbnRmKCJc
 biIpOwogCi0JdGEudGFfbmFtZSA9ICJ0b2RjbG9jayI7Ci0JdGEudGFfcnRjX2FyZyA9IHNjOwot
 CXRhLnRhX3J0Y193cml0ZSA9IGRzcnRjX3dyaXRlOyAKLQl0YS50YV9ydGNfcmVhZCA9IGRzcnRj
 X3JlYWQ7Ci0JdGEudGFfZmxhZ3MgPSAwOwotCWNvbmZpZ19mb3VuZChzZWxmLCAmdGEsIE5VTEwp
 OworCXNjLT5zY190b2RyLnRvZHJfZ2V0dGltZV95bWRobXMgPSBkc3J0Y19yZWFkOworCXNjLT5z
 Y190b2RyLnRvZHJfc2V0dGltZV95bWRobXMgPSBkc3J0Y193cml0ZTsKKwlzYy0+c2NfdG9kci5j
 b29raWUgPSBzYzsKKwl0b2RyX2F0dGFjaCgmc2MtPnNjX3RvZHIpOwogfQogCiAvKiBFbmQgb2Yg
 ZHNydGMuYyAqLwpzcmMvc3lzL2FyY2gvYXJtL2l4cDEyeDAvaXhwMTJ4MF9jbGsuYwotLS0gLi4v
 Y3ZzL3NyYy9zeXMvYXJjaC9hcm0vaXhwMTJ4MC9peHAxMngwX2Nsay5jCTIwMDUtMTItMTEgMTk6
 MDM6MjUuMDAwMDAwMDAwIC0wODAwCisrKyBzcmMvc3lzL2FyY2gvYXJtL2l4cDEyeDAvaXhwMTJ4
 MF9jbGsuYwkyMDA3LTAxLTA1IDE4OjQ2OjU4LjAwMDAwMDAwMCAtMDgwMApAQCAtMzY1LDE2ICsz
 NjUsMyBAQAogCQlvdGljayA9IHRpY2tzOwogCX0KIH0KLQotdm9pZAotcmVzZXR0b2RyKHZvaWQp
 Ci17Ci19Ci0KLXZvaWQKLWluaXR0b2RyKHRpbWVfdCBiYXNlKQotewotCi0JdGltZS50dl9zZWMg
 PSBiYXNlOwotCXRpbWUudHZfdXNlYyA9IDA7Ci19CnNyYy9zeXMvYXJjaC9hcm0vczNjMnh4MC9z
 M2MyNHgwX2Nsay5jCi0tLSAuLi9jdnMvc3JjL3N5cy9hcmNoL2FybS9zM2MyeHgwL3MzYzI0eDBf
 Y2xrLmMJMjAwNS0xMi0yNCAxOTowNToxNC4wMDAwMDAwMDAgLTA4MDAKKysrIHNyYy9zeXMvYXJj
 aC9hcm0vczNjMnh4MC9zM2MyNHgwX2Nsay5jCTIwMDctMDEtMDUgMTg6NDY6NTguMDAwMDAwMDAw
 IC0wODAwCkBAIC0yMzAsMjkgKzIzMCw2IEBACiAJLypOT1RSRUFDSEVEKi8KIH0KIAotLyoKLSAq
 IGluaXR0b2RyOgotICoKLSAqCUluaXRpYWxpemUgdGltZSBmcm9tIHRoZSB0aW1lLW9mLWRheSBy
 ZWdpc3Rlci4KLSAqLwotdm9pZAotaW5pdHRvZHIodGltZV90IGJhc2UpCi17Ci0KLQl0aW1lLnR2
 X3NlYyA9IGJhc2U7Ci0JdGltZS50dl91c2VjID0gMDsKLX0KLQotLyoKLSAqIHJlc2V0dG9kcjoK
 LSAqCi0gKglSZXNldCB0aGUgdGltZS1vZi1kYXkgcmVnaXN0ZXIgd2l0aCB0aGUgY3VycmVudCB0
 aW1lLgotICovCi12b2lkCi1yZXNldHRvZHIodm9pZCkKLXsKLX0KLQogdm9pZAogc2V0c3RhdGNs
 b2NrcmF0ZShpbnQgbmV3aHopCiB7CnNyYy9zeXMvYXJjaC9hcm0vczNjMnh4MC9zM2MyODAwX2Ns
 ay5jCi0tLSAuLi9jdnMvc3JjL3N5cy9hcmNoL2FybS9zM2MyeHgwL3MzYzI4MDBfY2xrLmMJMjAw
 NS0xMi0yNCAxOTowNToxNC4wMDAwMDAwMDAgLTA4MDAKKysrIHNyYy9zeXMvYXJjaC9hcm0vczNj
 Mnh4MC9zM2MyODAwX2Nsay5jCTIwMDctMDEtMDUgMTg6NDY6NTguMDAwMDAwMDAwIC0wODAwCkBA
 IC0yMzgsMjkgKzIzOCw2IEBACiAJLypOT1RSRUFDSEVEKi8KIH0KIAotLyoKLSAqIGluaXR0b2Ry
 OgotICoKLSAqCUluaXRpYWxpemUgdGltZSBmcm9tIHRoZSB0aW1lLW9mLWRheSByZWdpc3Rlci4K
 LSAqLwotdm9pZAotaW5pdHRvZHIodGltZV90IGJhc2UpCi17Ci0KLQl0aW1lLnR2X3NlYyA9IGJh
 c2U7Ci0JdGltZS50dl91c2VjID0gMDsKLX0KLQotLyoKLSAqIHJlc2V0dG9kcjoKLSAqCi0gKglS
 ZXNldCB0aGUgdGltZS1vZi1kYXkgcmVnaXN0ZXIgd2l0aCB0aGUgY3VycmVudCB0aW1lLgotICov
 Ci12b2lkCi1yZXNldHRvZHIodm9pZCkKLXsKLX0KLQogdm9pZAogc2V0c3RhdGNsb2NrcmF0ZShp
 bnQgbmV3aHopCiB7CnNyYy9zeXMvYXJjaC9hcm0veHNjYWxlL2JlY2NfdGltZXIuYwotLS0gLi4v
 Y3ZzL3NyYy9zeXMvYXJjaC9hcm0veHNjYWxlL2JlY2NfdGltZXIuYwkyMDA2LTA5LTEwIDIwOjAy
 OjE4LjAwMDAwMDAwMCAtMDcwMAorKysgc3JjL3N5cy9hcmNoL2FybS94c2NhbGUvYmVjY190aW1l
 ci5jCTIwMDctMDEtMDUgMTg6NDY6NTguMDAwMDAwMDAwIC0wODAwCkBAIC0yNjYsOTUgKzI2Niw2
 IEBACiAJfQogfQogCi0jaWZuZGVmIF9fSEFWRV9HRU5FUklDX1RPRFIKLQotdG9kcl9jaGlwX2hh
 bmRsZV90IHRvZHJfaGFuZGxlOwotCi0vKgotICogdG9kcl9hdHRhY2g6Ci0gKgotICoJU2V0IHRo
 ZSBzcGVjaWZpZWQgdGltZS1vZi1kYXkgcmVnaXN0ZXIgYXMgdGhlIHN5c3RlbSByZWFsLXRpbWUg
 Y2xvY2suCi0gKi8KLXZvaWQKLXRvZHJfYXR0YWNoKHRvZHJfY2hpcF9oYW5kbGVfdCB0b2RyKQot
 ewotCi0JaWYgKHRvZHJfaGFuZGxlKQotCQlwYW5pYygidG9kcl9hdHRhY2g6IHJ0YyBhbHJlYWR5
 IGNvbmZpZ3VyZWQiKTsKLQl0b2RyX2hhbmRsZSA9IHRvZHI7Ci19Ci0KLS8qCi0gKiBpbml0dG9k
 cjoKLSAqCi0gKglJbml0aWFsaXplIHRpbWUgZnJvbSB0aGUgdGltZS1vZi1kYXkgcmVnaXN0ZXIu
 Ci0gKi8KLSNkZWZpbmUJTUlOWUVBUgkJMjAwMwkvKiBtaW5pbXVtIHBsYXVzaWJsZSB5ZWFyICov
 Ci12b2lkCi1pbml0dG9kcih0aW1lX3QgYmFzZSkKLXsKLQl0aW1lX3QgZGVsdGF0OwotCWludCBi
 YWRiYXNlOwotCi0JaWYgKGJhc2UgPCAoTUlOWUVBUiAtIDE5NzApICogU0VDWVIpIHsKLQkJcHJp
 bnRmKCJXQVJOSU5HOiBwcmVwb3N0ZXJvdXMgdGltZSBpbiBmaWxlIHN5c3RlbSIpOwotCQkvKiBy
 ZWFkIHRoZSBzeXN0ZW0gY2xvY2sgYW55d2F5ICovCi0JCWJhc2UgPSAoTUlOWUVBUiAtIDE5NzAp
 ICogU0VDWVI7Ci0JCWJhZGJhc2UgPSAxOwotCX0gZWxzZQotCQliYWRiYXNlID0gMDsKLQotCWlm
 ICh0b2RyX2hhbmRsZSA9PSBOVUxMIHx8Ci0JICAgIHRvZHJfZ2V0dGltZSh0b2RyX2hhbmRsZSwg
 JnRpbWUpICE9IDAgfHwgdGltZS50dl9zZWMgPT0gMCkgewotCQkvKgotCQkgKiBCZWxpZXZlIHRo
 ZSB0aW1lIGluIHRoZSBmaWxlIHN5c3RlbSBmb3IgbGFjayBvZgotCQkgKiBhbnl0aGluZyBiZXR0
 ZXIsIHJlc2V0dGluZyB0aGUgVE9EUi4KLQkJICovCi0JCXRpbWUudHZfc2VjID0gYmFzZTsKLQkJ
 dGltZS50dl91c2VjID0gMDsKLQkJaWYgKHRvZHJfaGFuZGxlICE9IE5VTEwgJiYgIWJhZGJhc2Up
 IHsKLQkJCXByaW50ZigiV0FSTklORzogcHJlcG9zdGVyb3VzIGNsb2NrIGNoaXAgdGltZVxuIik7
 Ci0JCQlyZXNldHRvZHIoKTsKLQkJfQotCQlnb3RvIGJhZDsKLQl9Ci0KLQlpZiAoIWJhZGJhc2Up
 IHsKLQkJLyoKLQkJICogU2VlIGlmIHdlIGdhaW5lZC9sb3N0IHR3byBvciBtb3JlIGRheXM7IGlm
 Ci0JCSAqIHNvLCBhc3N1bWUgc29tZXRoaW5nIGlzIGFtaXNzLgotCQkgKi8KLQkJZGVsdGF0ID0g
 dGltZS50dl9zZWMgLSBiYXNlOwotCQlpZiAoZGVsdGF0IDwgMCkKLQkJCWRlbHRhdCA9IC1kZWx0
 YXQ7Ci0JCWlmIChkZWx0YXQgPCAyICogU0VDREFZKQotCQkJcmV0dXJuOwkJLyogYWxsIGlzIHdl
 bGwgKi8KLQkJcHJpbnRmKCJXQVJOSU5HOiBjbG9jayAlcyAlbGQgZGF5c1xuIiwKLQkJICAgIHRp
 bWUudHZfc2VjIDwgYmFzZSA/ICJsb3N0IiA6ICJnYWluZWQiLAotCQkgICAgKGxvbmcpZGVsdGF0
 IC8gU0VDREFZKTsKLQl9Ci0gYmFkOgotCXByaW50ZigiV0FSTklORzogQ0hFQ0sgQU5EIFJFU0VU
 IFRIRSBEQVRFIVxuIik7Ci19Ci0KLS8qCi0gKiByZXNldHRvZHI6Ci0gKgotICoJUmVzZXQgdGhl
 IHRpbWUtb2YtZGF5IHJlZ2lzdGVyIHdpdGggdGhlIGN1cnJlbnQgdGltZS4KLSAqLwotdm9pZAot
 cmVzZXR0b2RyKHZvaWQpCi17Ci0KLQlpZiAodGltZS50dl9zZWMgPT0gMCkKLQkJcmV0dXJuOwot
 Ci0JaWYgKHRvZHJfaGFuZGxlICE9IE5VTEwgJiYKLQkgICAgdG9kcl9zZXR0aW1lKHRvZHJfaGFu
 ZGxlLCAmdGltZSkgIT0gMCkKLQkJcHJpbnRmKCJyZXNldHRvZHI6IGZhaWxlZCB0byBzZXQgdGlt
 ZVxuIik7Ci19Ci0jZW5kaWYJLyogX19IQVZFX0dFTkVSSUNfVE9EUiAqLwotCiAvKgogICogY2xv
 Y2toYW5kbGVyOgogICoKc3JjL3N5cy9hcmNoL2FybS94c2NhbGUvaTgwMzIxX3RpbWVyLmMKLS0t
 IC4uL2N2cy9zcmMvc3lzL2FyY2gvYXJtL3hzY2FsZS9pODAzMjFfdGltZXIuYwkyMDA2LTA5LTEw
 IDIwOjAyOjE4LjAwMDAwMDAwMCAtMDcwMAorKysgc3JjL3N5cy9hcmNoL2FybS94c2NhbGUvaTgw
 MzIxX3RpbWVyLmMJMjAwNy0wMS0wNSAxODo0Njo1OC4wMDAwMDAwMDAgLTA4MDAKQEAgLTQxNiw5
 NSArNDE2LDYgQEAKIAl9CiB9CiAKLSNpZm5kZWYgX19IQVZFX0dFTkVSSUNfVE9EUgotdG9kcl9j
 aGlwX2hhbmRsZV90IHRvZHJfaGFuZGxlOwotCi0vKgotICogdG9kcl9hdHRhY2g6Ci0gKgotICoJ
 U2V0IHRoZSBzcGVjaWZpZWQgdGltZS1vZi1kYXkgcmVnaXN0ZXIgYXMgdGhlIHN5c3RlbSByZWFs
 LXRpbWUgY2xvY2suCi0gKi8KLXZvaWQKLXRvZHJfYXR0YWNoKHRvZHJfY2hpcF9oYW5kbGVfdCB0
 b2RyKQotewotCi0JaWYgKHRvZHJfaGFuZGxlKQotCQlwYW5pYygidG9kcl9hdHRhY2g6IHJ0YyBh
 bHJlYWR5IGNvbmZpZ3VyZWQiKTsKLQl0b2RyX2hhbmRsZSA9IHRvZHI7Ci19Ci0KLS8qCi0gKiBp
 bml0dG9kcjoKLSAqCi0gKglJbml0aWFsaXplIHRpbWUgZnJvbSB0aGUgdGltZS1vZi1kYXkgcmVn
 aXN0ZXIuCi0gKi8KLSNkZWZpbmUJTUlOWUVBUgkJMjAwMwkvKiBtaW5pbXVtIHBsYXVzaWJsZSB5
 ZWFyICovCi12b2lkCi1pbml0dG9kcih0aW1lX3QgYmFzZSkKLXsKLQl0aW1lX3QgZGVsdGF0Owot
 CWludCBiYWRiYXNlOwotCi0JaWYgKGJhc2UgPCAoTUlOWUVBUiAtIDE5NzApICogU0VDWVIpIHsK
 LQkJcHJpbnRmKCJXQVJOSU5HOiBwcmVwb3N0ZXJvdXMgdGltZSBpbiBmaWxlIHN5c3RlbSIpOwot
 CQkvKiByZWFkIHRoZSBzeXN0ZW0gY2xvY2sgYW55d2F5ICovCi0JCWJhc2UgPSAoTUlOWUVBUiAt
 IDE5NzApICogU0VDWVI7Ci0JCWJhZGJhc2UgPSAxOwotCX0gZWxzZQotCQliYWRiYXNlID0gMDsK
 LQotCWlmICh0b2RyX2hhbmRsZSA9PSBOVUxMIHx8Ci0JICAgIHRvZHJfZ2V0dGltZSh0b2RyX2hh
 bmRsZSwgJnRpbWUpICE9IDAgfHwKLQkgICAgdGltZS50dl9zZWMgPT0gMCkgewotCQkvKgotCQkg
 KiBCZWxpZXZlIHRoZSB0aW1lIGluIHRoZSBmaWxlIHN5c3RlbSBmb3IgbGFjayBvZgotCQkgKiBh
 bnl0aGluZyBiZXR0ZXIsIHJlc2V0dGluZyB0aGUgVE9EUi4KLQkJICovCi0JCXRpbWUudHZfc2Vj
 ID0gYmFzZTsKLQkJdGltZS50dl91c2VjID0gMDsKLQkJaWYgKHRvZHJfaGFuZGxlICE9IE5VTEwg
 JiYgIWJhZGJhc2UpIHsKLQkJCXByaW50ZigiV0FSTklORzogcHJlcG9zdGVyb3VzIGNsb2NrIGNo
 aXAgdGltZVxuIik7Ci0JCQlyZXNldHRvZHIoKTsKLQkJfQotCQlnb3RvIGJhZDsKLQl9Ci0KLQlp
 ZiAoIWJhZGJhc2UpIHsKLQkJLyoKLQkJICogU2VlIGlmIHdlIGdhaW5lZC9sb3N0IHR3byBvciBt
 b3JlIGRheXM7IGlmCi0JCSAqIHNvLCBhc3N1bWUgc29tZXRoaW5nIGlzIGFtaXNzLgotCQkgKi8K
 LQkJZGVsdGF0ID0gdGltZS50dl9zZWMgLSBiYXNlOwotCQlpZiAoZGVsdGF0IDwgMCkKLQkJCWRl
 bHRhdCA9IC1kZWx0YXQ7Ci0JCWlmIChkZWx0YXQgPCAyICogU0VDREFZKQotCQkJcmV0dXJuOwkJ
 LyogYWxsIGlzIHdlbGwgKi8KLQkJcHJpbnRmKCJXQVJOSU5HOiBjbG9jayAlcyAlbGQgZGF5c1xu
 IiwKLQkJICAgIHRpbWUudHZfc2VjIDwgYmFzZSA/ICJsb3N0IiA6ICJnYWluZWQiLAotCQkgICAg
 KGxvbmcpZGVsdGF0IC8gU0VDREFZKTsKLQl9Ci0gYmFkOgotCXByaW50ZigiV0FSTklORzogQ0hF
 Q0sgQU5EIFJFU0VUIFRIRSBEQVRFIVxuIik7Ci19Ci0KLS8qCi0gKiByZXNldHRvZHI6Ci0gKgot
 ICoJUmVzZXQgdGhlIHRpbWUtb2YtZGF5IHJlZ2lzdGVyIHdpdGggdGhlIGN1cnJlbnQgdGltZS4K
 LSAqLwotdm9pZAotcmVzZXR0b2RyKHZvaWQpCi17Ci0KLQlpZiAodGltZS50dl9zZWMgPT0gMCkK
 LQkJcmV0dXJuOwotCi0JaWYgKHRvZHJfaGFuZGxlICE9IE5VTEwgJiYKLQkgICAgdG9kcl9zZXR0
 aW1lKHRvZHJfaGFuZGxlLCAmdGltZSkgIT0gMCkKLQkJcHJpbnRmKCJyZXNldHRvZHI6IGZhaWxl
 ZCB0byBzZXQgdGltZVxuIik7Ci19Ci0jZW5kaWYKLQogLyoKICAqIGNsb2NraGFuZGxlcjoKICAq
 CnNyYy9zeXMvYXJjaC9hcm0veHNjYWxlL2l4cDQyNV90aW1lci5jCi0tLSAuLi9jdnMvc3JjL3N5
 cy9hcmNoL2FybS94c2NhbGUvaXhwNDI1X3RpbWVyLmMJMjAwNi0wOS0xMCAyMDowMjoxOC4wMDAw
 MDAwMDAgLTA3MDAKKysrIHNyYy9zeXMvYXJjaC9hcm0veHNjYWxlL2l4cDQyNV90aW1lci5jCTIw
 MDctMDEtMDUgMTg6NDY6NTguMDAwMDAwMDAwIC0wODAwCkBAIC0yOTAsOTggKzI5MCw2IEBACiAJ
 fQogfQogCi0KLSNpZm5kZWYgX19IQVZFX0dFTkVSSUNfVE9EUgotCi10b2RyX2NoaXBfaGFuZGxl
 X3QgdG9kcl9oYW5kbGU7Ci0KLS8qCi0gKiB0b2RyX2F0dGFjaDoKLSAqCi0gKglTZXQgdGhlIHNw
 ZWNpZmllZCB0aW1lLW9mLWRheSByZWdpc3RlciBhcyB0aGUgc3lzdGVtIHJlYWwtdGltZSBjbG9j
 ay4KLSAqLwotdm9pZAotdG9kcl9hdHRhY2godG9kcl9jaGlwX2hhbmRsZV90IHRvZHIpCi17Ci0K
 LQlpZiAodG9kcl9oYW5kbGUpCi0JCXBhbmljKCJ0b2RyX2F0dGFjaDogcnRjIGFscmVhZHkgY29u
 ZmlndXJlZCIpOwotCXRvZHJfaGFuZGxlID0gdG9kcjsKLX0KLQotLyoKLSAqIGluaXR0b2RyOgot
 ICoKLSAqCUluaXRpYWxpemUgdGltZSBmcm9tIHRoZSB0aW1lLW9mLWRheSByZWdpc3Rlci4KLSAq
 LwotI2RlZmluZQlNSU5ZRUFSCQkyMDAzCS8qIG1pbmltdW0gcGxhdXNpYmxlIHllYXIgKi8KLXZv
 aWQKLWluaXR0b2RyKHRpbWVfdCBiYXNlKQotewotCXRpbWVfdCBkZWx0YXQ7Ci0JaW50IGJhZGJh
 c2U7Ci0KLQlpZiAoYmFzZSA8IChNSU5ZRUFSIC0gMTk3MCkgKiBTRUNZUikgewotCQlwcmludGYo
 IldBUk5JTkc6IHByZXBvc3Rlcm91cyB0aW1lIGluIGZpbGUgc3lzdGVtIik7Ci0JCS8qIHJlYWQg
 dGhlIHN5c3RlbSBjbG9jayBhbnl3YXkgKi8KLQkJYmFzZSA9IChNSU5ZRUFSIC0gMTk3MCkgKiBT
 RUNZUjsKLQkJYmFkYmFzZSA9IDE7Ci0JfSBlbHNlCi0JCWJhZGJhc2UgPSAwOwotCi0JaWYgKHRv
 ZHJfaGFuZGxlID09IE5VTEwgfHwKLQkgICAgdG9kcl9nZXR0aW1lKHRvZHJfaGFuZGxlLCAmdGlt
 ZSkgIT0gMCB8fAotCSAgICB0aW1lLnR2X3NlYyA9PSAwKSB7Ci0JCS8qCi0JCSAqIEJlbGlldmUg
 dGhlIHRpbWUgaW4gdGhlIGZpbGUgc3lzdGVtIGZvciBsYWNrIG9mCi0JCSAqIGFueXRoaW5nIGJl
 dHRlciwgcmVzZXR0aW5nIHRoZSBUT0RSLgotCQkgKi8KLQkJdGltZS50dl9zZWMgPSBiYXNlOwot
 CQl0aW1lLnR2X3VzZWMgPSAwOwotCQlpZiAodG9kcl9oYW5kbGUgIT0gTlVMTCAmJiAhYmFkYmFz
 ZSkgewotCQkJcHJpbnRmKCJXQVJOSU5HOiBwcmVwb3N0ZXJvdXMgY2xvY2sgY2hpcCB0aW1lXG4i
 KTsKLQkJCXJlc2V0dG9kcigpOwotCQl9Ci0JCWdvdG8gYmFkOwotCX0KLQotCWlmICghYmFkYmFz
 ZSkgewotCQkvKgotCQkgKiBTZWUgaWYgd2UgZ2FpbmVkL2xvc3QgdHdvIG9yIG1vcmUgZGF5czsg
 aWYKLQkJICogc28sIGFzc3VtZSBzb21ldGhpbmcgaXMgYW1pc3MuCi0JCSAqLwotCQlkZWx0YXQg
 PSB0aW1lLnR2X3NlYyAtIGJhc2U7Ci0JCWlmIChkZWx0YXQgPCAwKQotCQkJZGVsdGF0ID0gLWRl
 bHRhdDsKLQkJaWYgKGRlbHRhdCA8IDIgKiBTRUNEQVkpCi0JCQlyZXR1cm47CQkvKiBhbGwgaXMg
 d2VsbCAqLwotCQlwcmludGYoIldBUk5JTkc6IGNsb2NrICVzICVsZCBkYXlzXG4iLAotCQkgICAg
 dGltZS50dl9zZWMgPCBiYXNlID8gImxvc3QiIDogImdhaW5lZCIsCi0JCSAgICAobG9uZylkZWx0
 YXQgLyBTRUNEQVkpOwotCX0KLSBiYWQ6Ci0JcHJpbnRmKCJXQVJOSU5HOiBDSEVDSyBBTkQgUkVT
 RVQgVEhFIERBVEUhXG4iKTsKLX0KLQotLyoKLSAqIHJlc2V0dG9kcjoKLSAqCi0gKglSZXNldCB0
 aGUgdGltZS1vZi1kYXkgcmVnaXN0ZXIgd2l0aCB0aGUgY3VycmVudCB0aW1lLgotICovCi12b2lk
 Ci1yZXNldHRvZHIodm9pZCkKLXsKLQotCWlmICh0aW1lLnR2X3NlYyA9PSAwKQotCQlyZXR1cm47
 Ci0KLQlpZiAodG9kcl9oYW5kbGUgIT0gTlVMTCAmJgotCSAgICB0b2RyX3NldHRpbWUodG9kcl9o
 YW5kbGUsICZ0aW1lKSAhPSAwKQotCQlwcmludGYoInJlc2V0dG9kcjogZmFpbGVkIHRvIHNldCB0
 aW1lXG4iKTsKLX0KLQotI2VuZGlmCi0KIC8qCiAgKiBpeHBjbGtfaW50cjoKICAqCnNyYy9zeXMv
 YXJjaC9ldmJhcm0vaWZwZ2EvcGwwMzBfcnRjLmMKLS0tIC4uL2N2cy9zcmMvc3lzL2FyY2gvZXZi
 YXJtL2lmcGdhL3BsMDMwX3J0Yy5jCTIwMDUtMTItMTEgMTk6MDM6MzAuMDAwMDAwMDAwIC0wODAw
 CisrKyBzcmMvc3lzL2FyY2gvZXZiYXJtL2lmcGdhL3BsMDMwX3J0Yy5jCTIwMDctMDEtMDUgMTg6
 NDY6NTguMDAwMDAwMDAwIC0wODAwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8c3lzL2tl
 cm5lbC5oPgogI2luY2x1ZGUgPHN5cy90aW1lLmg+CiAjaW5jbHVkZSA8c3lzL2RldmljZS5oPgor
 I2luY2x1ZGUgPGRldi9jbG9ja19zdWJyLmg+CiAKICNpbmNsdWRlIDxhcm0vY3B1ZnVuYy5oPgog
 I2luY2x1ZGUgPG1hY2hpbmUvaW50ci5oPgpAQCAtNTMsMjAgKzU0LDE3IEBACiAJc3RydWN0IGRl
 dmljZQkJICAgIHNjX2RldjsKIAlidXNfc3BhY2VfdGFnX3QJCSAgICBzY19pb3Q7CiAJYnVzX3Nw
 YWNlX2hhbmRsZV90CSAgICBzY19pb2g7CisJc3RydWN0IHRvZHJfY2hpcF9oYW5kbGUJICAgIHNj
 X3RvZHI7CiB9OwogCiBzdGF0aWMgaW50ICBwbHJ0Y19wcm9iZSAgKHN0cnVjdCBkZXZpY2UgKiwg
 c3RydWN0IGNmZGF0YSAqLCB2b2lkICopOwogc3RhdGljIHZvaWQgcGxydGNfYXR0YWNoIChzdHJ1
 Y3QgZGV2aWNlICosIHN0cnVjdCBkZXZpY2UgKiwgdm9pZCAqKTsKK3N0YXRpYyBpbnQgcGxydGNf
 Z2V0dGltZSh0b2RyX2NoaXBfaGFuZGxlX3QsIHZvbGF0aWxlIHN0cnVjdCB0aW1ldmFsICopOwor
 c3RhdGljIGludCBwbHJ0Y19zZXR0aW1lKHRvZHJfY2hpcF9oYW5kbGVfdCwgdm9sYXRpbGUgc3Ry
 dWN0IHRpbWV2YWwgKik7CiAKIENGQVRUQUNIX0RFQ0wocGxydGMsIHNpemVvZihzdHJ1Y3QgcGxy
 dGNfc29mdGMpLAogICAgIHBscnRjX3Byb2JlLCBwbHJ0Y19hdHRhY2gsIE5VTEwsIE5VTEwpOwog
 Ci0vKiBSZW1lbWJlciBvdXIgaGFuZGxlLCBzaW5jZSBpdCBpc24ndCBwYXNzZWQgaW4gYnkgaW5p
 dHRvZHIgYW5kCi0gICByZXNldHRvZHIuICAqLwotc3RhdGljIHN0cnVjdCBwbHJ0Y19zb2Z0YyAq
 cGxydGNfc2M7Ci0KLXN0YXRpYyBpbnQgdGltZXNldCA9IDA7Ci0KIHN0YXRpYyBpbnQKIHBscnRj
 X3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBhcmVudCwgc3RydWN0IGNmZGF0YSAqY2YsIHZvaWQgKmF1
 eCkKIHsKQEAgLTg2LDQ2ICs4NCwyOCBAQAogCQlyZXR1cm47CiAJfQogCi0JcGxydGNfc2MgPSBz
 YzsKKwlzYy0+c2NfdG9kci5jb29raWUgPSBzYzsKKwlzYy0+c2NfdG9kci50b2RyX2dldHRpbWUg
 PSBwbHJ0Y19nZXR0aW1lOworCXNjLT5zY190b2RyLnRvZHJfc2V0dGltZSA9IHBscnRjX3NldHRp
 bWU7CiAKIAlwcmludGYoIlxuIik7CiB9CiAKLXZvaWQKLWluaXR0b2RyKHRpbWVfdCBiYXNlKQor
 c3RhdGljIGludAorcGxydGNfZ2V0dGltZSh0b2RyX2NoaXBfaGFuZGxlX3QgdGNoLCB2b2xhdGls
 ZSBzdHJ1Y3QgdGltZXZhbCAqdHZwKQogewotCXRpbWVfdCBydGNfdGltZTsKLQlzdHJ1Y3QgcGxy
 dGNfc29mdGMgKnNjID0gcGxydGNfc2M7Ci0KLQlpZiAoc2MgPT0gTlVMTCkKLQkJcGFuaWMoIlJU
 QyBub3QgYXR0YWNoZWQiKTsKLQotCS8qIERlZmF1bHQgdG8gdGhlIHN1Z2dlc3RlZCB0aW1lLCBi
 dXQgcmVwbGFjZSB0aGF0IHdpdGggb25lIGZyb20gdGhlCi0JICAgUlRDIGlmIGl0IHNlZW1zIG1v
 cmUgc2Vuc2libGUuICAqLwotCXJ0Y190aW1lID0gYnVzX3NwYWNlX3JlYWRfNChzYy0+c2NfaW90
 LCBzYy0+c2NfaW9oLCBJRlBHQV9SVENfRFIpOwotCQotCXRpbWUudHZfdXNlYyA9IDA7Ci0JdGlt
 ZS50dl9zZWMgPSBydGNfdGltZTsKLQotCXRpbWVzZXQgPSAxOworCXN0cnVjdCBwbHJ0Y19zb2Z0
 YyAqc2MgPSB0Y2gtPmNvb2tpZTsKIAotCWlmIChiYXNlID4gcnRjX3RpbWUpIHsKLQkJcHJpbnRm
 KCJpbml0dG9kcjogcnRjIHZhbHVlIHN1c3BlY3QsIGlnbm9yaW5nIGl0LlxuIik7Ci0JCXRpbWUu
 dHZfdXNlYyA9IDA7Ci0JCXRpbWUudHZfc2VjID0gYmFzZTsKLQkJcmV0dXJuOwotCX0KKwl0dnAt
 PnR2X3NlYyA9IGJ1c19zcGFjZV9yZWFkXzQoc2MtPnNjX2lvdCwgc2MtPnNjX2lvaCwgSUZQR0Ff
 UlRDX0RSKTsKKwl0dnAtPnR2X3VzZWMgPSAwOworCXJldHVybiAwOwogfQogCi12b2lkCi1yZXNl
 dHRvZHIoKQorc3RhdGljIGludAorcGxydGNfc2V0dGltZSh0b2RyX2NoaXBfaGFuZGxlX3QgdGNo
 LCB2b2xhdGlsZSBzdHJ1Y3QgdGltZXZhbCAqdHZwKQogewotCXN0cnVjdCBwbHJ0Y19zb2Z0YyAq
 c2MgPSBwbHJ0Y19zYzsKLQotCS8qIFRoZSB0aW1lIGhhc24ndCBiZWVuIHNldCB5ZXQsIHNvIGF2
 b2lkIHdyaXRpbmcgYSBkdWJpb3VzIHZhbHVlCi0JICAgdG8gdGhlIFJUQy4gICovCi0JaWYgKCF0
 aW1lc2V0KQotCQlyZXR1cm47CisJc3RydWN0IHBscnRjX3NvZnRjICpzYyA9IHRjaC0+Y29va2ll
 OwogCi0JYnVzX3NwYWNlX3dyaXRlXzQoc2MtPnNjX2lvdCwgc2MtPnNjX2lvaCwgSUZQR0FfUlRD
 X0xSLCB0aW1lLnR2X3NlYyk7CisJYnVzX3NwYWNlX3dyaXRlXzQoc2MtPnNjX2lvdCwgc2MtPnNj
 X2lvaCwgSUZQR0FfUlRDX0xSLCB0dnAtPnR2X3NlYyk7CisJcmV0dXJuIDA7CiB9CnNyYy9zeXMv
 YXJjaC9ldmJhcm0vaW5jbHVkZS90eXBlcy5oCi0tLSAuLi9jdnMvc3JjL3N5cy9hcmNoL2V2YmFy
 bS9pbmNsdWRlL3R5cGVzLmgJMjAwNi0wOS0wMyAyMDowMToxNC4wMDAwMDAwMDAgLTA3MDAKKysr
 IHNyYy9zeXMvYXJjaC9ldmJhcm0vaW5jbHVkZS90eXBlcy5oCTIwMDctMDEtMDUgMTg6NDY6NTgu
 MDAwMDAwMDAwIC0wODAwCkBAIC05LDUgKzksNiBAQAogI2RlZmluZQlfX0hBVkVfR0VORVJJQ19T
 T0ZUX0lOVEVSUlVQVFMKICNlbmRpZgogI2RlZmluZQlfX0hBVkVfREVWSUNFX1JFR0lTVEVSCisj
 ZGVmaW5lCV9fSEFWRV9HRU5FUklDX1RPRFIKIAogI2VuZGlmCnNyYy9zeXMvYXJjaC9ldmJhcm0v
 aXE4MDMxMC9pcTgwMzEwX3RpbWVyLmMKLS0tIC4uL2N2cy9zcmMvc3lzL2FyY2gvZXZiYXJtL2lx
 ODAzMTAvaXE4MDMxMF90aW1lci5jCTIwMDUtMTItMjQgMTk6MDU6MjAuMDAwMDAwMDAwIC0wODAw
 CisrKyBzcmMvc3lzL2FyY2gvZXZiYXJtL2lxODAzMTAvaXE4MDMxMF90aW1lci5jCTIwMDctMDEt
 MDUgMTg6NDY6NTguMDAwMDAwMDAwIC0wODAwCkBAIC0zMTksOTMgKzMxOSw2IEBACiAJfQogfQog
 Ci10b2RyX2NoaXBfaGFuZGxlX3QgdG9kcl9oYW5kbGU7Ci0KLS8qCi0gKiB0b2RyX2F0dGFjaDoK
 LSAqCi0gKglTZXQgdGhlIHNwZWNpZmllZCB0aW1lLW9mLWRheSByZWdpc3RlciBhcyB0aGUgc3lz
 dGVtIHJlYWwtdGltZSBjbG9jay4KLSAqLwotdm9pZAotdG9kcl9hdHRhY2godG9kcl9jaGlwX2hh
 bmRsZV90IHRvZHIpCi17Ci0KLQlpZiAodG9kcl9oYW5kbGUpCi0JCXBhbmljKCJ0b2RyX2F0dGFj
 aDogcnRjIGFscmVhZHkgY29uZmlndXJlZCIpOwotCXRvZHJfaGFuZGxlID0gdG9kcjsKLX0KLQot
 LyoKLSAqIGluaXR0b2RyOgotICoKLSAqCUluaXRpYWxpemUgdGltZSBmcm9tIHRoZSB0aW1lLW9m
 LWRheSByZWdpc3Rlci4KLSAqLwotI2RlZmluZQlNSU5ZRUFSCQkyMDAzCS8qIG1pbmltdW0gcGxh
 dXNpYmxlIHllYXIgKi8KLXZvaWQKLWluaXR0b2RyKHRpbWVfdCBiYXNlKQotewotCXRpbWVfdCBk
 ZWx0YXQ7Ci0JaW50IGJhZGJhc2U7Ci0KLQlpZiAoYmFzZSA8IChNSU5ZRUFSIC0gMTk3MCkgKiBT
 RUNZUikgewotCQlwcmludGYoIldBUk5JTkc6IHByZXBvc3Rlcm91cyB0aW1lIGluIGZpbGUgc3lz
 dGVtIik7Ci0JCS8qIHJlYWQgdGhlIHN5c3RlbSBjbG9jayBhbnl3YXkgKi8KLQkJYmFzZSA9IChN
 SU5ZRUFSIC0gMTk3MCkgKiBTRUNZUjsKLQkJYmFkYmFzZSA9IDE7Ci0JfSBlbHNlCi0JCWJhZGJh
 c2UgPSAwOwotCi0JaWYgKHRvZHJfaGFuZGxlID09IE5VTEwgfHwKLQkgICAgdG9kcl9nZXR0aW1l
 KHRvZHJfaGFuZGxlLCAmdGltZSkgIT0gMCB8fAotCSAgICB0aW1lLnR2X3NlYyA9PSAwKSB7Ci0J
 CS8qCi0JCSAqIEJlbGlldmUgdGhlIHRpbWUgaW4gdGhlIGZpbGUgc3lzdGVtIGZvciBsYWNrIG9m
 Ci0JCSAqIGFueXRoaW5nIGJldHRlciwgcmVzZXR0aW5nIHRoZSBUT0RSLgotCQkgKi8KLQkJdGlt
 ZS50dl9zZWMgPSBiYXNlOwotCQl0aW1lLnR2X3VzZWMgPSAwOwotCQlpZiAodG9kcl9oYW5kbGUg
 IT0gTlVMTCAmJiAhYmFkYmFzZSkgewotCQkJcHJpbnRmKCJXQVJOSU5HOiBwcmVwb3N0ZXJvdXMg
 Y2xvY2sgY2hpcCB0aW1lXG4iKTsKLQkJCXJlc2V0dG9kcigpOwotCQl9Ci0JCWdvdG8gYmFkOwot
 CX0KLQotCWlmICghYmFkYmFzZSkgewotCQkvKgotCQkgKiBTZWUgaWYgd2UgZ2FpbmVkL2xvc3Qg
 dHdvIG9yIG1vcmUgZGF5czsgaWYKLQkJICogc28sIGFzc3VtZSBzb21ldGhpbmcgaXMgYW1pc3Mu
 Ci0JCSAqLwotCQlkZWx0YXQgPSB0aW1lLnR2X3NlYyAtIGJhc2U7Ci0JCWlmIChkZWx0YXQgPCAw
 KQotCQkJZGVsdGF0ID0gLWRlbHRhdDsKLQkJaWYgKGRlbHRhdCA8IDIgKiBTRUNEQVkpCi0JCQly
 ZXR1cm47CQkvKiBhbGwgaXMgd2VsbCAqLwotCQlwcmludGYoIldBUk5JTkc6IGNsb2NrICVzICVs
 ZCBkYXlzXG4iLAotCQkgICAgdGltZS50dl9zZWMgPCBiYXNlID8gImxvc3QiIDogImdhaW5lZCIs
 Ci0JCSAgICAobG9uZylkZWx0YXQgLyBTRUNEQVkpOwotCX0KLSBiYWQ6Ci0JcHJpbnRmKCJXQVJO
 SU5HOiBDSEVDSyBBTkQgUkVTRVQgVEhFIERBVEUhXG4iKTsKLX0KLQotLyoKLSAqIHJlc2V0dG9k
 cjoKLSAqCi0gKglSZXNldCB0aGUgdGltZS1vZi1kYXkgcmVnaXN0ZXIgd2l0aCB0aGUgY3VycmVu
 dCB0aW1lLgotICovCi12b2lkCi1yZXNldHRvZHIodm9pZCkKLXsKLQotCWlmICh0aW1lLnR2X3Nl
 YyA9PSAwKQotCQlyZXR1cm47Ci0KLQlpZiAodG9kcl9oYW5kbGUgIT0gTlVMTCAmJgotCSAgICB0
 b2RyX3NldHRpbWUodG9kcl9oYW5kbGUsICZ0aW1lKSAhPSAwKQotCQlwcmludGYoInJlc2V0dG9k
 cjogZmFpbGVkIHRvIHNldCB0aW1lXG4iKTsKLX0KLQogLyoKICAqIGNsb2NraGFuZGxlcjoKICAq
 Cg==
 --=-=-=--