<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>90760</bug_id>
          
          <creation_ts>2012-07-09 00:33:45 -0700</creation_ts>
          <short_desc>[EFL] Battery status code needs refactoring to be reused in WebKit2</short_desc>
          <delta_ts>2012-07-09 23:43:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>90069</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>664699</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-09 00:33:45 -0700</bug_when>
    <thetext>We need to make the distinction between the BatteryProviderEfl which should be in WebCore and the BatteryClientEfl which should be in WebKit. We also need to define a BatteryProviderEflClient interface so that it can be implemented by clients.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664702</commentid>
    <comment_count>1</comment_count>
      <attachid>151201</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-09 00:43:20 -0700</bug_when>
    <thetext>Created attachment 151201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664780</commentid>
    <comment_count>2</comment_count>
      <attachid>151201</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-09 03:51:13 -0700</bug_when>
    <thetext>Comment on attachment 151201
Patch

Looks good refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665509</commentid>
    <comment_count>3</comment_count>
      <attachid>151201</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-09 23:42:56 -0700</bug_when>
    <thetext>Comment on attachment 151201
Patch

Clearing flags on attachment: 151201

Committed r122197: &lt;http://trac.webkit.org/changeset/122197&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665510</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-09 23:43:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151201</attachid>
            <date>2012-07-09 00:43:20 -0700</date>
            <delta_ts>2012-07-09 23:42:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>90760_efl_batteryprovider.patch</filename>
            <type>text/plain</type>
            <size>29611</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMWYwNTA2Li4yYTU2Mjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDctMDkgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXSBCYXR0ZXJ5IHN0YXR1cyBjb2RlIG5lZWRzIHJlZmFjdG9y
aW5nIHRvIGJlIHJldXNlZCBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MDc2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbmFtZSBCYXR0ZXJ5Q2xpZW50RWZsIHRvIEJhdHRlcnlQcm92
aWRlckVmbCBhbmQgcmVtb3ZlIGRlcGVuZGVuY3kKKyAgICAgICAgb24gQmF0dGVyeUNvbnRyb2xs
ZXIgYnkgaW50cm9kdWNpbmcgdGhlIEJhdHRlcnlQcm92aWRlckVmbENsaWVudAorICAgICAgICBp
bnRlcmZhY2UuIFRoaXMgd2lsbCBhbGxvdyByZXVzaW5nIHRoZSBCYXR0ZXJ5UHJvdmlkZXJFZmwg
Y2xhc3MKKyAgICAgICAgaW4gV2ViS2l0Mi4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEFscmVh
ZHkgdGVzdGVkIGJ5IGJhdHRlcnlzdGF0dXMvKi4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNt
YWtlOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9CYXR0ZXJ5UHJvdmlkZXJFZmwuY3BwOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlDbGllbnRFZmwuY3Bw
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJF
Zmw6OkJhdHRlcnlQcm92aWRlckVmbCk6CisgICAgICAgIChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlk
ZXJFZmw6OmJhdHRlcnlTdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVy
RWZsOjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVm
bDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6
c2V0QmF0dGVyeVN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6
OnRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpnZXRC
YXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6c2V0
QmF0dGVyeUNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVm
bC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQmF0dGVyeUNsaWVu
dEVmbC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChCYXR0ZXJ5UHJvdmlkZXJFZmwp
OgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjp+QmF0dGVyeVByb3ZpZGVy
RWZsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChCYXR0ZXJ5UHJvdmlkZXJFZmxD
bGllbnQpOgorCiAyMDEyLTA3LTA4ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5v
a2lhLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgYSBidWlsZCBmbGFnIGZvciBsb3cgcXVhbGl0
eSBKUEVHIGltYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA2MGNkNjM1Li4zMmEz
MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMjMsNyArMjMsNyBAQCBMSVNUKEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKICAgcGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwCiAg
IHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAotICBw
bGF0Zm9ybS9lZmwvQmF0dGVyeUNsaWVudEVmbC5jcHAKKyAgcGxhdGZvcm0vZWZsL0JhdHRlcnlQ
cm92aWRlckVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAKICAgcGxhdGZv
cm0vZWZsL0NvbG9yQ2hvb3NlckVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZs
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlDbGll
bnRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlDbGllbnRFZmwu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjY1YjNjLi4wMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9CYXR0ZXJ5Q2xpZW50RWZsLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDE4OSArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1z
dW5nIEVsZWN0cm9uaWNzCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJCYXR0ZXJ5Q2xpZW50RWZsLmgiCi0KLSNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCi0KLSNp
bmNsdWRlICJCYXR0ZXJ5Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNp
bmNsdWRlIDxFX1VraXQuaD4KLSNpbmNsdWRlIDxsaW1pdHM+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotQmF0dGVyeUNsaWVudEVmbDo6QmF0dGVyeUNsaWVudEVmbCgpCi0gICAgOiBtX2NvbnRy
b2xsZXIoMCkKLSAgICAsIG1fdGltZXIodGhpcywgJkJhdHRlcnlDbGllbnRFZmw6OnRpbWVyRmly
ZWQpCi0gICAgLCBtX2JhdHRlcnlTdGF0dXNSZWZyZXNoSW50ZXJ2YWwoMS4wKQotewotfQotCi1C
YXR0ZXJ5U3RhdHVzKiBCYXR0ZXJ5Q2xpZW50RWZsOjpiYXR0ZXJ5U3RhdHVzKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9iYXR0ZXJ5U3RhdHVzLmdldCgpOwotfQotCi12b2lkIEJhdHRlcnlDbGll
bnRFZmw6OnNldENvbnRyb2xsZXIoQmF0dGVyeUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCi17Ci0g
ICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKLX0KLQotdm9pZCBCYXR0ZXJ5Q2xpZW50RWZs
OjpzdGFydFVwZGF0aW5nKCkKLXsKLSAgICBpZiAobV90aW1lci5pc0FjdGl2ZSgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoIWVfZGJ1c19pbml0KCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmICghZV91a2l0X2luaXQoKSkgewotICAgICAgICBlX2RidXNfc2h1dGRvd24oKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fdGltZXIuc3RhcnRSZXBlYXRpbmcobV9iYXR0
ZXJ5U3RhdHVzUmVmcmVzaEludGVydmFsKTsKLX0KLQotdm9pZCBCYXR0ZXJ5Q2xpZW50RWZsOjpz
dG9wVXBkYXRpbmcoKQotewotICAgIG1fdGltZXIuc3RvcCgpOwotICAgIGVfdWtpdF9zaHV0ZG93
bigpOwotICAgIGVfZGJ1c19zaHV0ZG93bigpOwotfQotCi12b2lkIEJhdHRlcnlDbGllbnRFZmw6
OmJhdHRlcnlDb250cm9sbGVyRGVzdHJveWVkKCkKLXsKLSAgICBkZWxldGUgdGhpczsKLX0KLQot
dm9pZCBCYXR0ZXJ5Q2xpZW50RWZsOjpzZXRCYXR0ZXJ5U3RhdHVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEJhdHRlcnlTdGF0dXM+IGJhdHRlcnlTdGF0dXMpCi17
Ci0gICAgbV9iYXR0ZXJ5U3RhdHVzID0gYmF0dGVyeVN0YXR1czsKLSAgICBtX2NvbnRyb2xsZXIt
PmRpZENoYW5nZUJhdHRlcnlTdGF0dXMoZXZlbnRUeXBlLCBtX2JhdHRlcnlTdGF0dXMpOwotfQot
Ci12b2lkIEJhdHRlcnlDbGllbnRFZmw6OnRpbWVyRmlyZWQoVGltZXI8QmF0dGVyeUNsaWVudEVm
bD4qIHRpbWVyKQotewotICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVy
KTsKLSAgICBFX0RCdXNfQ29ubmVjdGlvbiogZWRidXNDb25uZWN0aW9uID0gZV9kYnVzX2J1c19n
ZXQoREJVU19CVVNfU1lTVEVNKTsKLSAgICBpZiAoZWRidXNDb25uZWN0aW9uKQotICAgICAgICBl
X3Vwb3dlcl9nZXRfYWxsX2RldmljZXMoZWRidXNDb25uZWN0aW9uLCBnZXRCYXR0ZXJ5U3RhdHVz
LCBzdGF0aWNfY2FzdDx2b2lkKj4odGhpcykpOwotfQotCi12b2lkIEJhdHRlcnlDbGllbnRFZmw6
OmdldEJhdHRlcnlTdGF0dXModm9pZCogZGF0YSwgdm9pZCogcmVwbHlEYXRhLCBEQnVzRXJyb3Iq
IGRCdXNFcnJvcikKLXsKLSAgICBFX1VraXRfR2V0X0FsbF9EZXZpY2VzX1JldHVybiogZXVraXRE
ZXZpY2VOYW1lcyA9IHN0YXRpY19jYXN0PEVfVWtpdF9HZXRfQWxsX0RldmljZXNfUmV0dXJuKj4o
cmVwbHlEYXRhKTsKLSAgICBpZiAoIWV1a2l0RGV2aWNlTmFtZXMgfHwgIWV1a2l0RGV2aWNlTmFt
ZXMtPnN0cmluZ3MgfHwgZGJ1c19lcnJvcl9pc19zZXQoZEJ1c0Vycm9yKSkgewotICAgICAgICAg
ZGJ1c19lcnJvcl9mcmVlKGRCdXNFcnJvcik7Ci0gICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgRV9EQnVzX0Nvbm5lY3Rpb24qIGVkYnVzQ29ubmVjdGlvbiA9IGVfZGJ1c19idXNfZ2V0KERC
VVNfQlVTX1NZU1RFTSk7Ci0gICAgRWluYV9MaXN0KiBsaXN0OwotICAgIHZvaWQqIGRldmljZU5h
bWU7Ci0gICAgRUlOQV9MSVNUX0ZPUkVBQ0goZXVraXREZXZpY2VOYW1lcy0+c3RyaW5ncywgbGlz
dCwgZGV2aWNlTmFtZSkKLSAgICAgICAgZV91cG93ZXJfZ2V0X2FsbF9wcm9wZXJ0aWVzKGVkYnVz
Q29ubmVjdGlvbiwgc3RhdGljX2Nhc3Q8Y2hhcio+KGRldmljZU5hbWUpLCBzZXRCYXR0ZXJ5Q2xp
ZW50LCBkYXRhKTsKLX0KLQotdm9pZCBCYXR0ZXJ5Q2xpZW50RWZsOjpzZXRCYXR0ZXJ5Q2xpZW50
KHZvaWQqIGRhdGEsIHZvaWQqIHJlcGx5RGF0YSwgREJ1c0Vycm9yKiBkQnVzRXJyb3IpCi17Ci0g
ICAgRV9Va2l0X0dldF9BbGxfUHJvcGVydGllc19SZXR1cm4qIGV1a2l0UHJvcGVydHlOYW1lcyA9
IHN0YXRpY19jYXN0PEVfVWtpdF9HZXRfQWxsX1Byb3BlcnRpZXNfUmV0dXJuKj4ocmVwbHlEYXRh
KTsKLQotICAgIGlmICghZXVraXRQcm9wZXJ0eU5hbWVzIHx8IGRidXNfZXJyb3JfaXNfc2V0KGRC
dXNFcnJvcikpIHsKLSAgICAgICAgZGJ1c19lcnJvcl9mcmVlKGRCdXNFcnJvcik7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIWV1a2l0UHJvcGVydHlOYW1lcy0+cHJvcGVydGll
cykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRV9Va2l0X1Byb3BlcnR5KiBwcm9wZXJ0eSA9IHN0
YXRpY19jYXN0PEVfVWtpdF9Qcm9wZXJ0eSo+KGVpbmFfaGFzaF9maW5kKGV1a2l0UHJvcGVydHlO
YW1lcy0+cHJvcGVydGllcywgIlR5cGUiKSk7Ci0gICAgaWYgKCFwcm9wZXJ0eSB8fCBwcm9wZXJ0
eS0+dmFsLnUgIT0gRV9VUE9XRVJfU09VUkNFX0JBVFRFUlkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIEJhdHRlcnlDbGllbnRFZmwqIGNsaWVudCA9IHN0YXRpY19jYXN0PEJhdHRlcnlDbGllbnRF
ZmwqPihkYXRhKTsKLSAgICBCYXR0ZXJ5U3RhdHVzKiBjbGllbnRCYXR0ZXJ5U3RhdHVzID0gY2xp
ZW50LT5iYXR0ZXJ5U3RhdHVzKCk7Ci0gICAgYm9vbCBjaGFyZ2luZyA9IGZhbHNlOwotICAgIGJv
b2wgY2hhcmdpbmdDaGFuZ2VkID0gZmFsc2U7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGNoYXJnaW5n
U3RhdGUgPSAwOwotCi0gICAgcHJvcGVydHkgPSBzdGF0aWNfY2FzdDxFX1VraXRfUHJvcGVydHkq
PihlaW5hX2hhc2hfZmluZChldWtpdFByb3BlcnR5TmFtZXMtPnByb3BlcnRpZXMsICJTdGF0ZSIp
KTsKLSAgICBpZiAoIXByb3BlcnR5KQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFjbGllbnRC
YXR0ZXJ5U3RhdHVzIHx8IGNoYXJnaW5nU3RhdGUgIT0gcHJvcGVydHktPnZhbC51KSB7Ci0gICAg
ICAgIGNoYXJnaW5nQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAgIGNoYXJnaW5nU3RhdGUgPSBwcm9w
ZXJ0eS0+dmFsLnU7Ci0gICAgICAgIChjaGFyZ2luZ1N0YXRlID09IEVfVVBPV0VSX1NUQVRFX0ZV
TEwgfHwgY2hhcmdpbmdTdGF0ZSA9PSBFX1VQT1dFUl9TVEFURV9DSEFSR0lORykgPyBjaGFyZ2lu
ZyA9IHRydWUgOiBjaGFyZ2luZyA9IGZhbHNlOwotICAgIH0gZWxzZQotICAgICAgICBjaGFyZ2lu
ZyA9IGNsaWVudEJhdHRlcnlTdGF0dXMtPmNoYXJnaW5nKCk7Ci0KLSAgICBib29sIGNoYXJnaW5n
VGltZUNoYW5nZWQgPSBmYWxzZTsKLSAgICBib29sIGRpc2NoYXJnaW5nVGltZUNoYW5nZWQgPSBm
YWxzZTsKLSAgICBkb3VibGUgY2hhcmdpbmdUaW1lID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjppbmZpbml0eSgpOwotICAgIGRvdWJsZSBkaXNjaGFyZ2luZ1RpbWUgPSBzdGQ6Om51bWVy
aWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7Ci0KLSAgICBpZiAoY2hhcmdpbmcpIHsKLSAg
ICAgICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGNsaWVudEJhdHRlcnlTdGF0dXMtPmRp
c2NoYXJnaW5nVGltZSgpICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHko
KSkKLSAgICAgICAgICAgIGRpc2NoYXJnaW5nVGltZUNoYW5nZWQgPSB0cnVlOwotICAgICAgICBk
aXNjaGFyZ2luZ1RpbWUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7
Ci0gICAgICAgIHByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8RV9Va2l0X1Byb3BlcnR5Kj4oZWluYV9o
YXNoX2ZpbmQoZXVraXRQcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0aWVzLCAiVGltZVRvRnVsbCIpKTsK
LSAgICAgICAgaWYgKCFwcm9wZXJ0eSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYg
KCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGNsaWVudEJhdHRlcnlTdGF0dXMtPmNoYXJnaW5nVGlt
ZSgpICE9IHByb3BlcnR5LT52YWwueCkKLSAgICAgICAgICAgIGNoYXJnaW5nVGltZUNoYW5nZWQg
PSB0cnVlOwotICAgICAgICBjaGFyZ2luZ1RpbWUgPSBwcm9wZXJ0eS0+dmFsLng7Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGNsaWVudEJhdHRlcnlT
dGF0dXMtPmNoYXJnaW5nVGltZSgpICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKSkKLSAgICAgICAgICAgIGNoYXJnaW5nVGltZUNoYW5nZWQgPSB0cnVlOwotICAgICAg
ICBjaGFyZ2luZ1RpbWUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7
Ci0gICAgICAgIHByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8RV9Va2l0X1Byb3BlcnR5Kj4oZWluYV9o
YXNoX2ZpbmQoZXVraXRQcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0aWVzLCAiVGltZVRvRW1wdHkiKSk7
Ci0gICAgICAgIGlmICghcHJvcGVydHkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlm
ICghY2xpZW50QmF0dGVyeVN0YXR1cyB8fCBjbGllbnRCYXR0ZXJ5U3RhdHVzLT5kaXNjaGFyZ2lu
Z1RpbWUoKSAhPSBwcm9wZXJ0eS0+dmFsLngpCi0gICAgICAgICAgICBkaXNjaGFyZ2luZ1RpbWVD
aGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgZGlzY2hhcmdpbmdUaW1lID0gcHJvcGVydHktPnZhbC54
OwotICAgIH0KLQotICAgIGRvdWJsZSBsZXZlbCA9IDA7Ci0gICAgYm9vbCBsZXZlbENoYW5nZWQg
PSBmYWxzZTsKLQotICAgIHByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8RV9Va2l0X1Byb3BlcnR5Kj4o
ZWluYV9oYXNoX2ZpbmQoZXVraXRQcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0aWVzLCAiUGVyY2VudGFn
ZSIpKTsKLSAgICBpZiAoIXByb3BlcnR5KQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFjbGll
bnRCYXR0ZXJ5U3RhdHVzIHx8IGNsaWVudEJhdHRlcnlTdGF0dXMtPmxldmVsKCkgIT0gcHJvcGVy
dHktPnZhbC5kKQotICAgICAgICBsZXZlbENoYW5nZWQgPSB0cnVlOwotICAgIGxldmVsID0gcHJv
cGVydHktPnZhbC5kOwotCi0gICAgV1RGOjpSZWZQdHI8QmF0dGVyeVN0YXR1cz4gYmF0dGVyeVN0
YXR1cyA9IEJhdHRlcnlTdGF0dXM6OmNyZWF0ZShjaGFyZ2luZywgY2hhcmdpbmdUaW1lLCBkaXNj
aGFyZ2luZ1RpbWUsIGxldmVsKTsKLSAgICBpZiAoY2hhcmdpbmdDaGFuZ2VkKQotICAgICAgICBj
bGllbnQtPnNldEJhdHRlcnlTdGF0dXMoZXZlbnROYW1lcygpLmNoYXJnaW5nY2hhbmdlRXZlbnQs
IGJhdHRlcnlTdGF0dXMpOwotICAgIGlmIChjaGFyZ2luZ1RpbWVDaGFuZ2VkKQotICAgICAgICBj
bGllbnQtPnNldEJhdHRlcnlTdGF0dXMoZXZlbnROYW1lcygpLmNoYXJnaW5ndGltZWNoYW5nZUV2
ZW50LCBiYXR0ZXJ5U3RhdHVzKTsKLSAgICBpZiAoZGlzY2hhcmdpbmdUaW1lQ2hhbmdlZCkKLSAg
ICAgICAgY2xpZW50LT5zZXRCYXR0ZXJ5U3RhdHVzKGV2ZW50TmFtZXMoKS5kaXNjaGFyZ2luZ3Rp
bWVjaGFuZ2VFdmVudCwgYmF0dGVyeVN0YXR1cyk7Ci0gICAgaWYgKGxldmVsQ2hhbmdlZCkKLSAg
ICAgICAgY2xpZW50LT5zZXRCYXR0ZXJ5U3RhdHVzKGV2ZW50TmFtZXMoKS5sZXZlbGNoYW5nZUV2
ZW50LCBiYXR0ZXJ5U3RhdHVzKTsKLX0KLQotfQotCi0jZW5kaWYgLy8gQkFUVEVSWV9TVEFUVVMK
LQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlDbGllbnRF
ZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9CYXR0ZXJ5Q2xpZW50RWZsLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5ZjE1MGYuLjAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlDbGllbnRFZmwuaAorKysgL2Rldi9udWxsCkBA
IC0xLDY0ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ry
b25pY3MKLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBCYXR0ZXJ5Q2xpZW50RWZsX2gKLSNkZWZpbmUgQmF0
dGVyeUNsaWVudEVmbF9oCi0KLSNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCi0KLSNpbmNsdWRl
ICJCYXR0ZXJ5Q2xpZW50LmgiCi0jaW5jbHVkZSAiQmF0dGVyeVN0YXR1cy5oIgotI2luY2x1ZGUg
IlRpbWVyLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+Ci0KLXR5cGVkZWYg
c3RydWN0IERCdXNFcnJvciBEQnVzRXJyb3I7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgQmF0dGVyeUNvbnRyb2xsZXI7Ci0KLWNsYXNzIEJhdHRlcnlDbGllbnRFZmwgOiBwdWJsaWMg
QmF0dGVyeUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgQmF0dGVyeUNsaWVudEVmbCgpOwotICAgIH5C
YXR0ZXJ5Q2xpZW50RWZsKCkgeyB9OwotCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIo
QmF0dGVyeUNvbnRyb2xsZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwot
ICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgYmF0dGVy
eUNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKLQotICAgIHZvaWQgc2V0QmF0dGVyeVN0YXR1cyhjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxCYXR0ZXJ5U3RhdHVzPik7Ci0g
ICAgQmF0dGVyeVN0YXR1cyogYmF0dGVyeVN0YXR1cygpIGNvbnN0OwotCi1wcml2YXRlOgotICAg
IHZvaWQgdGltZXJGaXJlZChUaW1lcjxCYXR0ZXJ5Q2xpZW50RWZsPiopOwotICAgIHN0YXRpYyB2
b2lkIGdldEJhdHRlcnlTdGF0dXModm9pZCogZGF0YSwgdm9pZCogcmVwbHlEYXRhLCBEQnVzRXJy
b3IqKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRCYXR0ZXJ5Q2xpZW50KHZvaWQqIGRhdGEsIHZvaWQq
IHJlcGx5RGF0YSwgREJ1c0Vycm9yKik7Ci0KLSAgICBCYXR0ZXJ5Q29udHJvbGxlciogbV9jb250
cm9sbGVyOwotICAgIFRpbWVyPEJhdHRlcnlDbGllbnRFZmw+IG1fdGltZXI7Ci0gICAgUmVmUHRy
PEJhdHRlcnlTdGF0dXM+IG1fYmF0dGVyeVN0YXR1czsKLSAgICBjb25zdCBkb3VibGUgbV9iYXR0
ZXJ5U3RhdHVzUmVmcmVzaEludGVydmFsOwotfTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKEJB
VFRFUllfU1RBVFVTKQotI2VuZGlmIC8vIEJhdHRlcnlDbGllbnRFZmxfaAotCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9CYXR0ZXJ5UHJvdmlkZXJFZmwuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1ZDAzMGEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmNwcApAQCAtMCww
ICsxLDE3OSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cworICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQmF0dGVyeVByb3Zp
ZGVyRWZsLmgiCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlICJCYXR0
ZXJ5UHJvdmlkZXJFZmxDbGllbnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVk
ZSA8RV9Va2l0Lmg+CisjaW5jbHVkZSA8bGltaXRzPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0JhdHRlcnlQcm92aWRlckVmbDo6QmF0dGVyeVByb3ZpZGVyRWZsKEJhdHRlcnlQcm92aWRlckVm
bENsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV90aW1lcih0
aGlzLCAmQmF0dGVyeVByb3ZpZGVyRWZsOjp0aW1lckZpcmVkKQorICAgICwgbV9iYXR0ZXJ5U3Rh
dHVzUmVmcmVzaEludGVydmFsKDEuMCkKK3sKK30KKworQmF0dGVyeVN0YXR1cyogQmF0dGVyeVBy
b3ZpZGVyRWZsOjpiYXR0ZXJ5U3RhdHVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iYXR0ZXJ5
U3RhdHVzLmdldCgpOworfQorCit2b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6c3RhcnRVcGRhdGlu
ZygpCit7CisgICAgaWYgKG1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKCFlX2RidXNfaW5pdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWVfdWtp
dF9pbml0KCkpIHsKKyAgICAgICAgZV9kYnVzX3NodXRkb3duKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBtX3RpbWVyLnN0YXJ0UmVwZWF0aW5nKG1fYmF0dGVyeVN0YXR1c1JlZnJl
c2hJbnRlcnZhbCk7Cit9CisKK3ZvaWQgQmF0dGVyeVByb3ZpZGVyRWZsOjpzdG9wVXBkYXRpbmco
KQoreworICAgIG1fdGltZXIuc3RvcCgpOworICAgIGVfdWtpdF9zaHV0ZG93bigpOworICAgIGVf
ZGJ1c19zaHV0ZG93bigpOworfQorCit2b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6c2V0QmF0dGVy
eVN0YXR1cyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxCYXR0ZXJ5
U3RhdHVzPiBiYXR0ZXJ5U3RhdHVzKQoreworICAgIG1fYmF0dGVyeVN0YXR1cyA9IGJhdHRlcnlT
dGF0dXM7CisgICAgbV9jbGllbnQtPmRpZENoYW5nZUJhdHRlcnlTdGF0dXMoZXZlbnRUeXBlLCBt
X2JhdHRlcnlTdGF0dXMpOworfQorCit2b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6dGltZXJGaXJl
ZChUaW1lcjxCYXR0ZXJ5UHJvdmlkZXJFZmw+KiB0aW1lcikKK3sKKyAgICBBU1NFUlRfVU5VU0VE
KHRpbWVyLCB0aW1lciA9PSAmbV90aW1lcik7CisgICAgRV9EQnVzX0Nvbm5lY3Rpb24qIGVkYnVz
Q29ubmVjdGlvbiA9IGVfZGJ1c19idXNfZ2V0KERCVVNfQlVTX1NZU1RFTSk7CisgICAgaWYgKGVk
YnVzQ29ubmVjdGlvbikKKyAgICAgICAgZV91cG93ZXJfZ2V0X2FsbF9kZXZpY2VzKGVkYnVzQ29u
bmVjdGlvbiwgZ2V0QmF0dGVyeVN0YXR1cywgc3RhdGljX2Nhc3Q8dm9pZCo+KHRoaXMpKTsKK30K
Kwordm9pZCBCYXR0ZXJ5UHJvdmlkZXJFZmw6OmdldEJhdHRlcnlTdGF0dXModm9pZCogZGF0YSwg
dm9pZCogcmVwbHlEYXRhLCBEQnVzRXJyb3IqIGRCdXNFcnJvcikKK3sKKyAgICBFX1VraXRfR2V0
X0FsbF9EZXZpY2VzX1JldHVybiogZXVraXREZXZpY2VOYW1lcyA9IHN0YXRpY19jYXN0PEVfVWtp
dF9HZXRfQWxsX0RldmljZXNfUmV0dXJuKj4ocmVwbHlEYXRhKTsKKyAgICBpZiAoIWV1a2l0RGV2
aWNlTmFtZXMgfHwgIWV1a2l0RGV2aWNlTmFtZXMtPnN0cmluZ3MgfHwgZGJ1c19lcnJvcl9pc19z
ZXQoZEJ1c0Vycm9yKSkgeworICAgICAgICAgZGJ1c19lcnJvcl9mcmVlKGRCdXNFcnJvcik7Cisg
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgRV9EQnVzX0Nvbm5lY3Rpb24qIGVkYnVzQ29u
bmVjdGlvbiA9IGVfZGJ1c19idXNfZ2V0KERCVVNfQlVTX1NZU1RFTSk7CisgICAgRWluYV9MaXN0
KiBsaXN0OworICAgIHZvaWQqIGRldmljZU5hbWU7CisgICAgRUlOQV9MSVNUX0ZPUkVBQ0goZXVr
aXREZXZpY2VOYW1lcy0+c3RyaW5ncywgbGlzdCwgZGV2aWNlTmFtZSkKKyAgICAgICAgZV91cG93
ZXJfZ2V0X2FsbF9wcm9wZXJ0aWVzKGVkYnVzQ29ubmVjdGlvbiwgc3RhdGljX2Nhc3Q8Y2hhcio+
KGRldmljZU5hbWUpLCBzZXRCYXR0ZXJ5Q2xpZW50LCBkYXRhKTsKK30KKwordm9pZCBCYXR0ZXJ5
UHJvdmlkZXJFZmw6OnNldEJhdHRlcnlDbGllbnQodm9pZCogZGF0YSwgdm9pZCogcmVwbHlEYXRh
LCBEQnVzRXJyb3IqIGRCdXNFcnJvcikKK3sKKyAgICBFX1VraXRfR2V0X0FsbF9Qcm9wZXJ0aWVz
X1JldHVybiogZXVraXRQcm9wZXJ0eU5hbWVzID0gc3RhdGljX2Nhc3Q8RV9Va2l0X0dldF9BbGxf
UHJvcGVydGllc19SZXR1cm4qPihyZXBseURhdGEpOworCisgICAgaWYgKCFldWtpdFByb3BlcnR5
TmFtZXMgfHwgZGJ1c19lcnJvcl9pc19zZXQoZEJ1c0Vycm9yKSkgeworICAgICAgICBkYnVzX2Vy
cm9yX2ZyZWUoZEJ1c0Vycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgh
ZXVraXRQcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0aWVzKQorICAgICAgICByZXR1cm47CisKKyAgICBF
X1VraXRfUHJvcGVydHkqIHByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8RV9Va2l0X1Byb3BlcnR5Kj4o
ZWluYV9oYXNoX2ZpbmQoZXVraXRQcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0aWVzLCAiVHlwZSIpKTsK
KyAgICBpZiAoIXByb3BlcnR5IHx8IHByb3BlcnR5LT52YWwudSAhPSBFX1VQT1dFUl9TT1VSQ0Vf
QkFUVEVSWSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQmF0dGVyeVByb3ZpZGVyRWZsKiBjbGll
bnQgPSBzdGF0aWNfY2FzdDxCYXR0ZXJ5UHJvdmlkZXJFZmwqPihkYXRhKTsKKyAgICBCYXR0ZXJ5
U3RhdHVzKiBjbGllbnRCYXR0ZXJ5U3RhdHVzID0gY2xpZW50LT5iYXR0ZXJ5U3RhdHVzKCk7Cisg
ICAgYm9vbCBjaGFyZ2luZyA9IGZhbHNlOworICAgIGJvb2wgY2hhcmdpbmdDaGFuZ2VkID0gZmFs
c2U7CisgICAgc3RhdGljIHVuc2lnbmVkIGNoYXJnaW5nU3RhdGUgPSAwOworCisgICAgcHJvcGVy
dHkgPSBzdGF0aWNfY2FzdDxFX1VraXRfUHJvcGVydHkqPihlaW5hX2hhc2hfZmluZChldWtpdFBy
b3BlcnR5TmFtZXMtPnByb3BlcnRpZXMsICJTdGF0ZSIpKTsKKyAgICBpZiAoIXByb3BlcnR5KQor
ICAgICAgICByZXR1cm47CisgICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGNoYXJnaW5n
U3RhdGUgIT0gcHJvcGVydHktPnZhbC51KSB7CisgICAgICAgIGNoYXJnaW5nQ2hhbmdlZCA9IHRy
dWU7CisgICAgICAgIGNoYXJnaW5nU3RhdGUgPSBwcm9wZXJ0eS0+dmFsLnU7CisgICAgICAgIChj
aGFyZ2luZ1N0YXRlID09IEVfVVBPV0VSX1NUQVRFX0ZVTEwgfHwgY2hhcmdpbmdTdGF0ZSA9PSBF
X1VQT1dFUl9TVEFURV9DSEFSR0lORykgPyBjaGFyZ2luZyA9IHRydWUgOiBjaGFyZ2luZyA9IGZh
bHNlOworICAgIH0gZWxzZQorICAgICAgICBjaGFyZ2luZyA9IGNsaWVudEJhdHRlcnlTdGF0dXMt
PmNoYXJnaW5nKCk7CisKKyAgICBib29sIGNoYXJnaW5nVGltZUNoYW5nZWQgPSBmYWxzZTsKKyAg
ICBib29sIGRpc2NoYXJnaW5nVGltZUNoYW5nZWQgPSBmYWxzZTsKKyAgICBkb3VibGUgY2hhcmdp
bmdUaW1lID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOworICAgIGRv
dWJsZSBkaXNjaGFyZ2luZ1RpbWUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmlu
aXR5KCk7CisKKyAgICBpZiAoY2hhcmdpbmcpIHsKKyAgICAgICAgaWYgKCFjbGllbnRCYXR0ZXJ5
U3RhdHVzIHx8IGNsaWVudEJhdHRlcnlTdGF0dXMtPmRpc2NoYXJnaW5nVGltZSgpICE9IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSkKKyAgICAgICAgICAgIGRpc2NoYXJn
aW5nVGltZUNoYW5nZWQgPSB0cnVlOworICAgICAgICBkaXNjaGFyZ2luZ1RpbWUgPSBzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CisgICAgICAgIHByb3BlcnR5ID0gc3Rh
dGljX2Nhc3Q8RV9Va2l0X1Byb3BlcnR5Kj4oZWluYV9oYXNoX2ZpbmQoZXVraXRQcm9wZXJ0eU5h
bWVzLT5wcm9wZXJ0aWVzLCAiVGltZVRvRnVsbCIpKTsKKyAgICAgICAgaWYgKCFwcm9wZXJ0eSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8
IGNsaWVudEJhdHRlcnlTdGF0dXMtPmNoYXJnaW5nVGltZSgpICE9IHByb3BlcnR5LT52YWwueCkK
KyAgICAgICAgICAgIGNoYXJnaW5nVGltZUNoYW5nZWQgPSB0cnVlOworICAgICAgICBjaGFyZ2lu
Z1RpbWUgPSBwcm9wZXJ0eS0+dmFsLng7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFjbGll
bnRCYXR0ZXJ5U3RhdHVzIHx8IGNsaWVudEJhdHRlcnlTdGF0dXMtPmNoYXJnaW5nVGltZSgpICE9
IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSkKKyAgICAgICAgICAgIGNo
YXJnaW5nVGltZUNoYW5nZWQgPSB0cnVlOworICAgICAgICBjaGFyZ2luZ1RpbWUgPSBzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CisgICAgICAgIHByb3BlcnR5ID0gc3Rh
dGljX2Nhc3Q8RV9Va2l0X1Byb3BlcnR5Kj4oZWluYV9oYXNoX2ZpbmQoZXVraXRQcm9wZXJ0eU5h
bWVzLT5wcm9wZXJ0aWVzLCAiVGltZVRvRW1wdHkiKSk7CisgICAgICAgIGlmICghcHJvcGVydHkp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmICghY2xpZW50QmF0dGVyeVN0YXR1cyB8
fCBjbGllbnRCYXR0ZXJ5U3RhdHVzLT5kaXNjaGFyZ2luZ1RpbWUoKSAhPSBwcm9wZXJ0eS0+dmFs
LngpCisgICAgICAgICAgICBkaXNjaGFyZ2luZ1RpbWVDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAg
ZGlzY2hhcmdpbmdUaW1lID0gcHJvcGVydHktPnZhbC54OworICAgIH0KKworICAgIGRvdWJsZSBs
ZXZlbCA9IDA7CisgICAgYm9vbCBsZXZlbENoYW5nZWQgPSBmYWxzZTsKKworICAgIHByb3BlcnR5
ID0gc3RhdGljX2Nhc3Q8RV9Va2l0X1Byb3BlcnR5Kj4oZWluYV9oYXNoX2ZpbmQoZXVraXRQcm9w
ZXJ0eU5hbWVzLT5wcm9wZXJ0aWVzLCAiUGVyY2VudGFnZSIpKTsKKyAgICBpZiAoIXByb3BlcnR5
KQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGNsaWVu
dEJhdHRlcnlTdGF0dXMtPmxldmVsKCkgIT0gcHJvcGVydHktPnZhbC5kKQorICAgICAgICBsZXZl
bENoYW5nZWQgPSB0cnVlOworICAgIGxldmVsID0gcHJvcGVydHktPnZhbC5kOworCisgICAgV1RG
OjpSZWZQdHI8QmF0dGVyeVN0YXR1cz4gYmF0dGVyeVN0YXR1cyA9IEJhdHRlcnlTdGF0dXM6OmNy
ZWF0ZShjaGFyZ2luZywgY2hhcmdpbmdUaW1lLCBkaXNjaGFyZ2luZ1RpbWUsIGxldmVsKTsKKyAg
ICBpZiAoY2hhcmdpbmdDaGFuZ2VkKQorICAgICAgICBjbGllbnQtPnNldEJhdHRlcnlTdGF0dXMo
ZXZlbnROYW1lcygpLmNoYXJnaW5nY2hhbmdlRXZlbnQsIGJhdHRlcnlTdGF0dXMpOworICAgIGlm
IChjaGFyZ2luZ1RpbWVDaGFuZ2VkKQorICAgICAgICBjbGllbnQtPnNldEJhdHRlcnlTdGF0dXMo
ZXZlbnROYW1lcygpLmNoYXJnaW5ndGltZWNoYW5nZUV2ZW50LCBiYXR0ZXJ5U3RhdHVzKTsKKyAg
ICBpZiAoZGlzY2hhcmdpbmdUaW1lQ2hhbmdlZCkKKyAgICAgICAgY2xpZW50LT5zZXRCYXR0ZXJ5
U3RhdHVzKGV2ZW50TmFtZXMoKS5kaXNjaGFyZ2luZ3RpbWVjaGFuZ2VFdmVudCwgYmF0dGVyeVN0
YXR1cyk7CisgICAgaWYgKGxldmVsQ2hhbmdlZCkKKyAgICAgICAgY2xpZW50LT5zZXRCYXR0ZXJ5
U3RhdHVzKGV2ZW50TmFtZXMoKS5sZXZlbGNoYW5nZUV2ZW50LCBiYXR0ZXJ5U3RhdHVzKTsKK30K
KworfQorCisjZW5kaWYgLy8gQkFUVEVSWV9TVEFUVVMKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmJiNGJiN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZu
ZGVmIEJhdHRlcnlQcm92aWRlckVmbF9oCisjZGVmaW5lIEJhdHRlcnlQcm92aWRlckVmbF9oCisK
KyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlICJCYXR0ZXJ5Q2xpZW50Lmgi
CisjaW5jbHVkZSAiQmF0dGVyeVN0YXR1cy5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK3R5cGVkZWYgc3RydWN0IERCdXNFcnJvciBE
QnVzRXJyb3I7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQmF0dGVyeVByb3ZpZGVy
RWZsQ2xpZW50OworCitjbGFzcyBCYXR0ZXJ5UHJvdmlkZXJFZmwgeworcHVibGljOgorICAgIEJh
dHRlcnlQcm92aWRlckVmbChCYXR0ZXJ5UHJvdmlkZXJFZmxDbGllbnQqKTsKKyAgICB+QmF0dGVy
eVByb3ZpZGVyRWZsKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwor
ICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKworICAgIHZvaWQgc2V0QmF0dGVyeVN0
YXR1cyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxCYXR0ZXJ5U3Rh
dHVzPik7CisgICAgQmF0dGVyeVN0YXR1cyogYmF0dGVyeVN0YXR1cygpIGNvbnN0OworCitwcml2
YXRlOgorICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxCYXR0ZXJ5UHJvdmlkZXJFZmw+Kik7Cisg
ICAgc3RhdGljIHZvaWQgZ2V0QmF0dGVyeVN0YXR1cyh2b2lkKiBkYXRhLCB2b2lkKiByZXBseURh
dGEsIERCdXNFcnJvciopOworICAgIHN0YXRpYyB2b2lkIHNldEJhdHRlcnlDbGllbnQodm9pZCog
ZGF0YSwgdm9pZCogcmVwbHlEYXRhLCBEQnVzRXJyb3IqKTsKKworICAgIEJhdHRlcnlQcm92aWRl
ckVmbENsaWVudCogbV9jbGllbnQ7CisgICAgVGltZXI8QmF0dGVyeVByb3ZpZGVyRWZsPiBtX3Rp
bWVyOworICAgIFJlZlB0cjxCYXR0ZXJ5U3RhdHVzPiBtX2JhdHRlcnlTdGF0dXM7CisgICAgY29u
c3QgZG91YmxlIG1fYmF0dGVyeVN0YXR1c1JlZnJlc2hJbnRlcnZhbDsKK307CisKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKyNlbmRpZiAvLyBCYXR0ZXJ5UHJvdmlkZXJF
ZmxfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQmF0dGVyeVBy
b3ZpZGVyRWZsQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQmF0dGVyeVBy
b3ZpZGVyRWZsQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzNl
ZDhkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9CYXR0
ZXJ5UHJvdmlkZXJFZmxDbGllbnQuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogIENvcHlyaWdo
dCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZm5kZWYgQmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50X2gKKyNkZWZp
bmUgQmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50X2gKKworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRV
UykKKworI2luY2x1ZGUgIkJhdHRlcnlTdGF0dXMuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBCYXR0ZXJ5UHJvdmlk
ZXJFZmxDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VCYXR0ZXJ5
U3RhdHVzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEJhdHRlcnlT
dGF0dXM+KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNlbmRpZiAvLyBCYXR0ZXJ5UHJvdmlkZXJFZmxDbGll
bnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBmZTUzMDEzLi41YmE5ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDEyLTA3LTA5ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRl
bC5jb20+CisKKyAgICAgICAgW0VGTF0gQmF0dGVyeSBzdGF0dXMgY29kZSBuZWVkcyByZWZhY3Rv
cmluZyB0byBiZSByZXVzZWQgaW4gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA3NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgQmF0dGVyeUNsaWVudEVmbCB0byBQbGF0Zm9ybUVmbC5j
bWFrZS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTA3LTA4ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIENoYW5n
ZSBub3RpZmljYXRpb25zIGRpcmVjdG9yeSBwYXRoIG9mIFdlYktpdF9JTkNMVURFX0RJUkVDVE9S
SUVTIGluIHRoZSBQbGF0Zm9ybUVmbC5jbWFrZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXgg
ZjhjNTY4Mi4uYTNmZDEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC05MSw2ICs5MSw3
IEBAIEVORElGICgpCiAKIExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgZWZsL1dlYkNv
cmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisgICAgZWZsL1dlYkNvcmVTdXBwb3J0
L0JhdHRlcnlDbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRF
ZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudEVmbC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA3NTVmNzliLi45Mjg3MGVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTItMDctMDkgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhl
LmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBCYXR0ZXJ5IHN0YXR1cyBjb2RlIG5l
ZWRzIHJlZmFjdG9yaW5nIHRvIGJlIHJldXNlZCBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDc2MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBCYXR0ZXJ5Q2xpZW50RWZsIHRvIFdl
YktpdCwgd2hpY2ggdXNlcyBCYXR0ZXJ5UHJvdmlkZXJFZmwgZnJvbQorICAgICAgICBXZWJDb3Jl
IGludGVybmFsbHkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50RWZs
LmNwcDogQWRkZWQuCisgICAgICAgIChCYXR0ZXJ5Q2xpZW50RWZsOjpCYXR0ZXJ5Q2xpZW50RWZs
KToKKyAgICAgICAgKEJhdHRlcnlDbGllbnRFZmw6OnNldENvbnRyb2xsZXIpOgorICAgICAgICAo
QmF0dGVyeUNsaWVudEVmbDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChCYXR0ZXJ5Q2xpZW50
RWZsOjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoQmF0dGVyeUNsaWVudEVmbDo6YmF0dGVyeUNv
bnRyb2xsZXJEZXN0cm95ZWQpOgorICAgICAgICAoQmF0dGVyeUNsaWVudEVmbDo6ZGlkQ2hhbmdl
QmF0dGVyeVN0YXR1cyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEVm
bC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlDbGll
bnRFZmwuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQmF0dGVyeUNsaWVudEVmbCk6
CisgICAgICAgIChCYXR0ZXJ5Q2xpZW50RWZsOjp+QmF0dGVyeUNsaWVudEVmbCk6CisgICAgICAg
ICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25ldyk6CisKIDIw
MTItMDctMDggIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4K
IAogICAgICAgICBbRUZMXSBSRUdSRVNTSU9OIChyMTIyMDM1KTogZnVsbHNjcmVlbi9leGl0LWZ1
bGwtc2NyZWVuLWlmcmFtZS5odG1sIGlzIGNyYXNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRFZmwuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MWRhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50RWZsLmNwcApAQCAtMCwwICsx
LDYwIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9y
YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJCYXR0ZXJ5Q2xpZW50RWZsLmgiCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9T
VEFUVVMpCisKKyNpbmNsdWRlICJCYXR0ZXJ5Q29udHJvbGxlci5oIgorCitCYXR0ZXJ5Q2xpZW50
RWZsOjpCYXR0ZXJ5Q2xpZW50RWZsKCkKKyAgICA6IG1fY29udHJvbGxlcigwKQorICAgICwgbV9w
cm92aWRlcih0aGlzKQoreworfQorCit2b2lkIEJhdHRlcnlDbGllbnRFZmw6OnNldENvbnRyb2xs
ZXIoV2ViQ29yZTo6QmF0dGVyeUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCit7CisgICAgbV9jb250
cm9sbGVyID0gY29udHJvbGxlcjsKK30KKwordm9pZCBCYXR0ZXJ5Q2xpZW50RWZsOjpzdGFydFVw
ZGF0aW5nKCkKK3sKKyAgICBtX3Byb3ZpZGVyLnN0YXJ0VXBkYXRpbmcoKTsKK30KKwordm9pZCBC
YXR0ZXJ5Q2xpZW50RWZsOjpzdG9wVXBkYXRpbmcoKQoreworICAgIG1fcHJvdmlkZXIuc3RvcFVw
ZGF0aW5nKCk7Cit9CisKK3ZvaWQgQmF0dGVyeUNsaWVudEVmbDo6YmF0dGVyeUNvbnRyb2xsZXJE
ZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIEJhdHRlcnlDbGllbnRF
Zmw6OmRpZENoYW5nZUJhdHRlcnlTdGF0dXMoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6QmF0dGVyeVN0YXR1cz4gc3RhdHVzKQoreworICAgIEFTU0VS
VChtX2NvbnRyb2xsZXIpOworICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlQmF0dGVyeVN0YXR1
cyhldmVudFR5cGUsIHN0YXR1cyk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQkFUVEVSWV9TVEFU
VVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5
Q2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xp
ZW50RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJhMTFlOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlD
bGllbnRFZmwuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBT
YW1zdW5nIEVsZWN0cm9uaWNzLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpZm5kZWYgQmF0dGVyeUNsaWVudEVmbF9oCisjZGVmaW5lIEJhdHRlcnlDbGllbnRFZmxf
aAorCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCisjaW5jbHVkZSAiQmF0dGVyeUNsaWVu
dC5oIgorI2luY2x1ZGUgIkJhdHRlcnlQcm92aWRlckVmbC5oIgorI2luY2x1ZGUgIkJhdHRlcnlQ
cm92aWRlckVmbENsaWVudC5oIgorI2luY2x1ZGUgIkJhdHRlcnlTdGF0dXMuaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBCYXR0ZXJ5
Q29udHJvbGxlcjsKK30KKworY2xhc3MgQmF0dGVyeUNsaWVudEVmbCA6IHB1YmxpYyBXZWJDb3Jl
OjpCYXR0ZXJ5Q2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50
IHsKK3B1YmxpYzoKKyAgICBCYXR0ZXJ5Q2xpZW50RWZsKCk7CisgICAgdmlydHVhbCB+QmF0dGVy
eUNsaWVudEVmbCgpIHsgfQorCisgICAgLy8gQmF0dGVyeUNsaWVudCBpbnRlcmZhY2UuCisgICAg
dmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoV2ViQ29yZTo6QmF0dGVyeUNvbnRyb2xsZXIqKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOworICAgIHZpcnR1YWwgdm9pZCBzdG9w
VXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYmF0dGVyeUNvbnRyb2xsZXJEZXN0cm95ZWQo
KTsKKworcHJpdmF0ZToKKyAgICAvLyBCYXR0ZXJ5UHJvdmlkZXJFZmxDbGllbnQgaW50ZXJmYWNl
LgorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkJhdHRlcnlTdGF0dXM+KTsKKwor
ICAgIFdlYkNvcmU6OkJhdHRlcnlDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgV2ViQ29y
ZTo6QmF0dGVyeVByb3ZpZGVyRWZsIG1fcHJvdmlkZXI7Cit9OworCisjZW5kaWYgLy8gRU5BQkxF
KEJBVFRFUllfU1RBVFVTKQorCisjZW5kaWYgLy8gQmF0dGVyeUNsaWVudEVmbF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBhOTg3NjlhLi4xYWU4M2ZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAKQEAgLTc1NCw3ICs3NTQsNyBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCi0gICAgV2ViQ29yZTo6
cHJvdmlkZUJhdHRlcnlUbyhwcml2LT5wYWdlLmdldCgpLCBuZXcgV2ViQ29yZTo6QmF0dGVyeUNs
aWVudEVmbCk7CisgICAgV2ViQ29yZTo6cHJvdmlkZUJhdHRlcnlUbyhwcml2LT5wYWdlLmdldCgp
LCBuZXcgQmF0dGVyeUNsaWVudEVmbCk7CiAjZW5kaWYKIAogICAgIHByaXYtPnBhZ2VTZXR0aW5n
cyA9IHByaXYtPnBhZ2UtPnNldHRpbmdzKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>