<?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>136355</bug_id>
          
          <creation_ts>2014-08-28 16:29:44 -0700</creation_ts>
          <short_desc>[EFL] Remove E_Dbus dependency</short_desc>
          <delta_ts>2015-05-19 21:53:03 -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>139120</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>tmpsantos</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1032091</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-08-28 16:29:44 -0700</bug_when>
    <thetext>Since EFL 1.8, E_Dbus is deprecated.

Now we depends E_Dbus because of Battery Status and we can use eldbus instead of E_Dbus for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032112</commentid>
    <comment_count>1</comment_count>
      <attachid>237335</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-08-28 18:28:53 -0700</bug_when>
    <thetext>Created attachment 237335
WorkInProgress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049605</commentid>
    <comment_count>2</comment_count>
      <attachid>241815</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-11-18 14:53:44 -0800</bug_when>
    <thetext>Created attachment 241815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049609</commentid>
    <comment_count>3</comment_count>
      <attachid>241818</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-11-18 15:04:44 -0800</bug_when>
    <thetext>Created attachment 241818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051073</commentid>
    <comment_count>4</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-11-26 04:45:40 -0800</bug_when>
    <thetext>gyuyoung, could you review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051075</commentid>
    <comment_count>5</comment_count>
      <attachid>241818</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-26 04:56:57 -0800</bug_when>
    <thetext>Comment on attachment 241818
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=241818&amp;action=review

Patch looks fine to me. However I feel I need to take a look this patch further. Let me do it tomorrow.

&gt; Source/WebCore/platform/efl/BatteryProviderEfl.cpp:158
&gt; +    if (type != 2) // BATTERY

I don&apos;t understand What does &quot;// BATTERY&quot; comment means.

&gt; Source/WebCore/platform/efl/BatteryProviderEfl.cpp:181
&gt; +        Eldbus_Object* object = eldbus_object_get(static_cast&lt;BatteryProviderEfl*&gt;(data)-&gt;connection(), BUS, path);

Don&apos;t we need to check if object is null ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051202</commentid>
    <comment_count>6</comment_count>
      <attachid>242260</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-11-27 22:10:17 -0800</bug_when>
    <thetext>Created attachment 242260
rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051203</commentid>
    <comment_count>7</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-11-27 22:11:04 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 241818 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=241818&amp;action=review
&gt; 
&gt; Patch looks fine to me. However I feel I need to take a look this patch
&gt; further. Let me do it tomorrow.
&gt; 
&gt; &gt; Source/WebCore/platform/efl/BatteryProviderEfl.cpp:158
&gt; &gt; +    if (type != 2) // BATTERY
&gt; 
&gt; I don&apos;t understand What does &quot;// BATTERY&quot; comment means.
&gt; 
&gt; &gt; Source/WebCore/platform/efl/BatteryProviderEfl.cpp:181
&gt; &gt; +        Eldbus_Object* object = eldbus_object_get(static_cast&lt;BatteryProviderEfl*&gt;(data)-&gt;connection(), BUS, path);
&gt; 
&gt; Don&apos;t we need to check if object is null ?

Sure, rebased with what you addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051204</commentid>
    <comment_count>8</comment_count>
      <attachid>242260</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-27 22:12:47 -0800</bug_when>
    <thetext>Comment on attachment 242260
rebased

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051209</commentid>
    <comment_count>9</comment_count>
      <attachid>242260</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-27 23:03:54 -0800</bug_when>
    <thetext>Comment on attachment 242260
rebased

Clearing flags on attachment: 242260

Committed r176555: &lt;http://trac.webkit.org/changeset/176555&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051210</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-27 23:04:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096167</commentid>
    <comment_count>11</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2015-05-19 21:53:03 -0700</bug_when>
    <thetext>*** Bug 101866 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237335</attachid>
            <date>2014-08-28 18:28:53 -0700</date>
            <delta_ts>2014-11-18 14:53:39 -0800</delta_ts>
            <desc>WorkInProgress</desc>
            <filename>bug-136355-20140829102845.patch</filename>
            <type>text/plain</type>
            <size>16350</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjAxNzYyOTliZjc4OWEy
OGM3ZTRlZDI4MTIyM2MwNjI4NjAzODYxZi4uMDg3MDc5ZjMyYTI5YWEyNDJkOGE1MDNjOTFiYTc1
NGMwODc4MTc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTA4LTI4ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBSZW1vdmUg
RV9EYnVzIGRlcGVuZGVuY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNjM1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEltcGxlbWVudCBCYXR0ZXJ5IFN0YXR1cyB0byB1c2UgRWxkYnVzCisKKyAgICAg
ICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQmF0dGVyeVBy
b3ZpZGVyRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6QmF0
dGVyeVByb3ZpZGVyRWZsKToKKyAgICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6
fkJhdHRlcnlQcm92aWRlckVmbCk6CisgICAgICAgIChXZWJDb3JlOjpiYXR0ZXJ5UHJvcGVydGll
cyk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VUeXBlQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6ZW51bWVyYXRlRGV2aWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlk
ZXJFZmw6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVy
RWZsOjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZs
OjpzZXRCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVm
bDo6dGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlk
ZXJFZmw6OmdldEJhdHRlcnlTdGF0dXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QmF0
dGVyeVByb3ZpZGVyRWZsOjpzZXRCYXR0ZXJ5Q2xpZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmg6CisgICAgICAgIChXZWJDb3JlOjpCYXR0
ZXJ5UHJvdmlkZXJFZmw6OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVBy
b3ZpZGVyRWZsOjp+QmF0dGVyeVByb3ZpZGVyRWZsKTogRGVsZXRlZC4KKwogMjAxNC0wOC0yOCAg
RGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQ2xpZW50
cyB0aGF0IGluY2x1ZGUgV2ViQ29yZVRocmVhZC5oIGZhaWwgdG8gYnVpbGQgYWZ0ZXIgPGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3MjgxNC8+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNt
YWtlCmluZGV4IDVhZmM4MTA0MDg4YjRlZmMyZDZhYzJjZGQyNTUwMmEyNzhkZWJiOWEuLmE4OWY2
MDBiZWExM2I4ZTJlYmMwNmFkYmFmM2UwNzUyNTUxMTc2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZs
LmNtYWtlCkBAIC0yMzQsMTUgKzIzNCw2IEBAIGlmIChXVEZfVVNFX0dFT0NMVUUyKQogICAgICkK
IGVuZGlmICgpCiAKLWlmIChFTkFCTEVfQkFUVEVSWV9TVEFUVVMgT1IgKEVGTF9SRVFVSVJFRF9W
RVJTSU9OIFZFUlNJT05fTEVTUyAxLjgpKQotICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUyAke0RCVVNfSU5DTFVERV9ESVJTfSkKLSAgICBsaXN0KEFQUEVORCBXZWJD
b3JlX0lOQ0xVREVfRElSRUNUT1JJRVMgJHtFX0RCVVNfSU5DTFVERV9ESVJTfSkKLSAgICBsaXN0
KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMgJHtFX0RCVVNfRVVLSVRfSU5DTFVE
RV9ESVJTfSkKLSAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyAke0RCVVNfTElCUkFS
SUVTfSkKLSAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyAke0VfREJVU19MSUJSQVJJ
RVN9KQotICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7RV9EQlVTX0VVS0lUX0xJ
QlJBUklFU30pCi1lbmRpZiAoKQotCiBpZiAoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkKICAg
ICAjIEZJWE1FOiBHQU1FUEFEX0RFUFJFQ0FURUQgaXMgbGVnYWN5IGltcGxlbWVudGF0aW9uLiBO
ZWVkIHRvIGJlIHJlbW92ZWQuCiAgICAgbGlzdChSRU1PVkVfSVRFTSBXZWJDb3JlX0lOQ0xVREVf
RElSRUNUT1JJRVMKQEAgLTI3Niw2ICsyNjcsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJB
UklFUwogICAgICR7RURKRV9MSUJSQVJJRVN9CiAgICAgJHtFRVpFX0xJQlJBUklFU30KICAgICAk
e0VJTkFfTElCUkFSSUVTfQorICAgICR7RUxEQlVTX0xJQlJBUklFU30KICAgICAke0VPX0xJQlJB
UklFU30KICAgICAke0VWQVNfTElCUkFSSUVTfQogICAgICR7Rk9OVENPTkZJR19MSUJSQVJJRVN9
CkBAIC0zMDQsNiArMjk2LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgJHtFREpFX0lOQ0xVREVfRElSU30KICAgICAke0VFWkVfSU5DTFVERV9ESVJTfQog
ICAgICR7RUlOQV9JTkNMVURFX0RJUlN9CisgICAgJHtFTERCVVNfSU5DTFVERV9ESVJTfQogICAg
ICR7RVZBU19JTkNMVURFX0RJUlN9CiAgICAgJHtGUkVFVFlQRTJfSU5DTFVERV9ESVJTfQogICAg
ICR7R0VPQ0xVRV9JTkNMVURFX0RJUlN9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9CYXR0ZXJ5UHJvdmlkZXJFZmwuY3BwCmluZGV4IDFiZTllMWQyNTU5Njk2N2I2MjM2YTA1
NjY0ZGU4ZDZlOWI5N2ViNmUuLjdmOGZlY2RhZjc1OTVjOTk5M2JmMTYwNjBiNzU2NmQ2NWJmNWU4
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9CYXR0ZXJ5UHJvdmlk
ZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9CYXR0ZXJ5UHJvdmlk
ZXJFZmwuY3BwCkBAIC0yMSwxOCArMjEsMjYgQEAKICNpbmNsdWRlICJCYXR0ZXJ5UHJvdmlkZXJF
ZmwuaCIKIAogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKLQogI2luY2x1ZGUgIkJhdHRlcnlQ
cm92aWRlckVmbENsaWVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlIDxF
X1VraXQuaD4KICNpbmNsdWRlIDxsaW1pdHM+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY29u
c3QgY2hhciBCVVNbXSA9ICJvcmcuZnJlZWRlc2t0b3AuVVBvd2VyIjsKK2NvbnN0IGNoYXIgUEFU
SFtdID0gIi9vcmcvZnJlZWRlc2t0b3AvVVBvd2VyIjsKK2NvbnN0IGNoYXIgSUZBQ0VbXSA9ICJv
cmcuZnJlZWRlc2t0b3AuVVBvd2VyIjsKKwogQmF0dGVyeVByb3ZpZGVyRWZsOjpCYXR0ZXJ5UHJv
dmlkZXJFZmwoQmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50KiBjbGllbnQpCiAgICAgOiBtX2NsaWVu
dChjbGllbnQpCi0gICAgLCBtX3RpbWVyKHRoaXMsICZCYXR0ZXJ5UHJvdmlkZXJFZmw6OnRpbWVy
RmlyZWQpCiAgICAgLCBtX2JhdHRlcnlTdGF0dXNSZWZyZXNoSW50ZXJ2YWwoMS4wKQorICAgICwg
bV9jb25uZWN0aW9uKG51bGxwdHIpCisgICAgLCBtX29iamVjdChudWxscHRyKQorICAgICwgbV9w
cm94eShudWxscHRyKQoreworfQorCitCYXR0ZXJ5UHJvdmlkZXJFZmw6On5CYXR0ZXJ5UHJvdmlk
ZXJFZmwoKQogewogfQogCkBAIC00MSwxMzggKzQ5LDE0MyBAQCBCYXR0ZXJ5U3RhdHVzKiBCYXR0
ZXJ5UHJvdmlkZXJFZmw6OmJhdHRlcnlTdGF0dXMoKSBjb25zdAogICAgIHJldHVybiBtX2JhdHRl
cnlTdGF0dXMuZ2V0KCk7CiB9CiAKLXZvaWQgQmF0dGVyeVByb3ZpZGVyRWZsOjpzdGFydFVwZGF0
aW5nKCkKK3N0YXRpYyB2b2lkIGJhdHRlcnlQcm9wZXJ0aWVzKHZvaWQqIGRhdGEsIGNvbnN0IEVs
ZGJ1c19NZXNzYWdlKiBtZXNzYWdlLCBFbGRidXNfUGVuZGluZyopCiB7Ci0gICAgaWYgKG1fdGlt
ZXIuaXNBY3RpdmUoKSkKKyAgICBpZiAoZWxkYnVzX21lc3NhZ2VfZXJyb3JfZ2V0KG1lc3NhZ2Us
IG51bGxwdHIsIG51bGxwdHIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWVfZGJ1c19p
bml0KCkpCisgICAgRWxkYnVzX01lc3NhZ2VfSXRlciogYXJyYXk7CisgICAgaWYgKCFlbGRidXNf
bWVzc2FnZV9hcmd1bWVudHNfZ2V0KG1lc3NhZ2UsICJhe3N2fSIsICZhcnJheSkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGlmICghZV91a2l0X2luaXQoKSkgewotICAgICAgICBlX2RidXNfc2h1
dGRvd24oKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBib29sIGNoYXJnaW5nID0gZmFs
c2U7CisgICAgYm9vbCBjaGFyZ2luZ0NoYW5nZWQgPSBmYWxzZTsKIAotICAgIG1fdGltZXIuc3Rh
cnRSZXBlYXRpbmcobV9iYXR0ZXJ5U3RhdHVzUmVmcmVzaEludGVydmFsKTsKLX0KKyAgICBib29s
IGNoYXJnaW5nVGltZUNoYW5nZWQgPSBmYWxzZTsKKyAgICBkb3VibGUgY2hhcmdpbmdUaW1lOwog
Ci12b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6c3RvcFVwZGF0aW5nKCkKLXsKLSAgICBpZiAoIW1f
dGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgcmV0dXJuOworICAgIGJvb2wgZGlzY2hhcmdpbmdU
aW1lQ2hhbmdlZCA9IGZhbHNlOworICAgIGRvdWJsZSBkaXNjaGFyZ2luZ1RpbWU7CiAKLSAgICBt
X3RpbWVyLnN0b3AoKTsKLSAgICBlX3VraXRfc2h1dGRvd24oKTsKLSAgICBlX2RidXNfc2h1dGRv
d24oKTsKLX0KKyAgICBib29sIGxldmVsQ2hhbmdlZCA9IGZhbHNlOworICAgIGRvdWJsZSBsZXZl
bDsKKworICAgIEVsZGJ1c19NZXNzYWdlX0l0ZXIqIGRpY3Q7CisgICAgd2hpbGUgKGVsZGJ1c19t
ZXNzYWdlX2l0ZXJfZ2V0X2FuZF9uZXh0KGFycmF5LCAnZScsICZkaWN0KSkgeworICAgICAgICBj
aGFyKiBrZXk7CisgICAgICAgIEVsZGJ1c19NZXNzYWdlX0l0ZXIqIHZhcmlhbnQ7CisgICAgICAg
IGlmICghZWxkYnVzX21lc3NhZ2VfaXRlcl9hcmd1bWVudHNfZ2V0KGRpY3QsICJzdiIsICZrZXks
ICZ2YXJpYW50KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmICghc3RyY21w
KGtleSwgIlRpbWVUb0VtcHR5IikpIHsKKyAgICAgICAgICAgIGludDY0X3QgZW1wdHkgPSAwOwor
ICAgICAgICAgICAgZWxkYnVzX21lc3NhZ2VfaXRlcl9hcmd1bWVudHNfZ2V0KHZhcmlhbnQsICJ4
IiwgJmVtcHR5KTsKKyAgICAgICAgICAgIGlmIChlbXB0eSA+IDApCisgICAgICAgICAgICAgICAg
Y2hhcmdpbmcgPSBmYWxzZTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjaGFy
Z2luZyA9IHRydWU7CisKKyAgICAgICAgICAgIHN0YXRpYyBib29sIGNoYXJnaW5nU3RhdHVzID0g
ZmFsc2U7CisgICAgICAgICAgICBpZiAoY2hhcmdpbmdTdGF0dXMgIT0gY2hhcmdpbmcpIHsKKyAg
ICAgICAgICAgICAgICBjaGFyZ2luZ0NoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGNo
YXJnaW5nU3RhdHVzID0gY2hhcmdpbmc7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CiAKLXZvaWQgQmF0dGVyeVByb3ZpZGVyRWZsOjpzZXRCYXR0ZXJ5U3RhdHVzKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEJhdHRlcnlTdGF0dXM+IGJhdHRlcnlTdGF0
dXMpCi17Ci0gICAgbV9iYXR0ZXJ5U3RhdHVzID0gYmF0dGVyeVN0YXR1czsKLSAgICBtX2NsaWVu
dC0+ZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhldmVudFR5cGUsIG1fYmF0dGVyeVN0YXR1cyk7Cisg
ICAgQmF0dGVyeVByb3ZpZGVyRWZsKiBjbGllbnQgPSBzdGF0aWNfY2FzdDxCYXR0ZXJ5UHJvdmlk
ZXJFZmwqPihkYXRhKTsKKyAgICBXVEY6OlJlZlB0cjxCYXR0ZXJ5U3RhdHVzPiBiYXR0ZXJ5U3Rh
dHVzID0gQmF0dGVyeVN0YXR1czo6Y3JlYXRlKGNoYXJnaW5nLCBjaGFyZ2luZ1RpbWUsIGRpc2No
YXJnaW5nVGltZSwgbGV2ZWwpOworICAgIGlmIChjaGFyZ2luZ0NoYW5nZWQpCisgICAgICAgIGNs
aWVudC0+c2V0QmF0dGVyeVN0YXR1cyhldmVudE5hbWVzKCkuY2hhcmdpbmdjaGFuZ2VFdmVudCwg
YmF0dGVyeVN0YXR1cyk7CisgICAgaWYgKGNoYXJnaW5nVGltZUNoYW5nZWQpCisgICAgICAgIGNs
aWVudC0+c2V0QmF0dGVyeVN0YXR1cyhldmVudE5hbWVzKCkuY2hhcmdpbmd0aW1lY2hhbmdlRXZl
bnQsIGJhdHRlcnlTdGF0dXMpOworICAgIGlmIChkaXNjaGFyZ2luZ1RpbWVDaGFuZ2VkKQorICAg
ICAgICBjbGllbnQtPnNldEJhdHRlcnlTdGF0dXMoZXZlbnROYW1lcygpLmRpc2NoYXJnaW5ndGlt
ZWNoYW5nZUV2ZW50LCBiYXR0ZXJ5U3RhdHVzKTsKKyAgICBpZiAobGV2ZWxDaGFuZ2VkKQorICAg
ICAgICBjbGllbnQtPnNldEJhdHRlcnlTdGF0dXMoZXZlbnROYW1lcygpLmxldmVsY2hhbmdlRXZl
bnQsIGJhdHRlcnlTdGF0dXMpOwogfQogCi12b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6dGltZXJG
aXJlZChUaW1lcjxCYXR0ZXJ5UHJvdmlkZXJFZmw+KiB0aW1lcikKK3N0YXRpYyB2b2lkIGRldmlj
ZVR5cGVDYWxsYmFjayh2b2lkKiBkYXRhLCBjb25zdCBFbGRidXNfTWVzc2FnZSogbWVzc2FnZSwg
RWxkYnVzX1BlbmRpbmcqKQogewotICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZt
X3RpbWVyKTsKLSAgICBFX0RCdXNfQ29ubmVjdGlvbiogZWRidXNDb25uZWN0aW9uID0gZV9kYnVz
X2J1c19nZXQoREJVU19CVVNfU1lTVEVNKTsKLSAgICBpZiAoZWRidXNDb25uZWN0aW9uKQotICAg
ICAgICBlX3Vwb3dlcl9nZXRfYWxsX2RldmljZXMoZWRidXNDb25uZWN0aW9uLCBnZXRCYXR0ZXJ5
U3RhdHVzLCBzdGF0aWNfY2FzdDx2b2lkKj4odGhpcykpOwotfQorICAgIEVsZGJ1c19Qcm94eSog
cHJveHkgPSBzdGF0aWNfY2FzdDxFbGRidXNfUHJveHkqPihkYXRhKTsKKyAgICBpZiAoZWxkYnVz
X21lc3NhZ2VfZXJyb3JfZ2V0KG1lc3NhZ2UsIG51bGxwdHIsIG51bGxwdHIpKSB7CisgICAgICAg
IC8vIEZJWE1FOgorICAgICAgICByZXR1cm47CisgICAgfQogCi12b2lkIEJhdHRlcnlQcm92aWRl
ckVmbDo6Z2V0QmF0dGVyeVN0YXR1cyh2b2lkKiBkYXRhLCB2b2lkKiByZXBseURhdGEsIERCdXNF
cnJvciogZEJ1c0Vycm9yKQotewotICAgIEVfVWtpdF9HZXRfQWxsX0RldmljZXNfUmV0dXJuKiBl
dWtpdERldmljZU5hbWVzID0gc3RhdGljX2Nhc3Q8RV9Va2l0X0dldF9BbGxfRGV2aWNlc19SZXR1
cm4qPihyZXBseURhdGEpOwotICAgIGlmICghZXVraXREZXZpY2VOYW1lcyB8fCAhZXVraXREZXZp
Y2VOYW1lcy0+c3RyaW5ncyB8fCBkYnVzX2Vycm9yX2lzX3NldChkQnVzRXJyb3IpKSB7Ci0gICAg
ICAgICBkYnVzX2Vycm9yX2ZyZWUoZEJ1c0Vycm9yKTsKLSAgICAgICAgIHJldHVybjsKKyAgICBF
bGRidXNfTWVzc2FnZV9JdGVyKiB2YXJpYW50OworICAgIGlmICghZWxkYnVzX21lc3NhZ2VfYXJn
dW1lbnRzX2dldChtZXNzYWdlLCAidiIsICZ2YXJpYW50KSkgeworICAgICAgICAvLyBGSVhNRQor
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgRV9EQnVzX0Nvbm5lY3Rpb24qIGVkYnVzQ29u
bmVjdGlvbiA9IGVfZGJ1c19idXNfZ2V0KERCVVNfQlVTX1NZU1RFTSk7Ci0gICAgRWluYV9MaXN0
KiBsaXN0OwotICAgIHZvaWQqIGRldmljZU5hbWU7Ci0gICAgRUlOQV9MSVNUX0ZPUkVBQ0goZXVr
aXREZXZpY2VOYW1lcy0+c3RyaW5ncywgbGlzdCwgZGV2aWNlTmFtZSkKLSAgICAgICAgZV91cG93
ZXJfZ2V0X2FsbF9wcm9wZXJ0aWVzKGVkYnVzQ29ubmVjdGlvbiwgc3RhdGljX2Nhc3Q8Y2hhcio+
KGRldmljZU5hbWUpLCBzZXRCYXR0ZXJ5Q2xpZW50LCBkYXRhKTsKKyAgICB1bnNpZ25lZCB0eXBl
ID0gMDsKKyAgICBlbGRidXNfbWVzc2FnZV9pdGVyX2FyZ3VtZW50c19nZXQodmFyaWFudCwgInUi
LCAmdHlwZSk7CisgICAgaWYgKHR5cGUgIT0gMikgLy8gQkFUVEVSWQorICAgICAgICByZXR1cm47
CisKKyAgICBlbGRidXNfcHJveHlfcHJvcGVydHlfZ2V0X2FsbChwcm94eSwgYmF0dGVyeVByb3Bl
cnRpZXMsIGRhdGEpOwogfQogCi12b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6c2V0QmF0dGVyeUNs
aWVudCh2b2lkKiBkYXRhLCB2b2lkKiByZXBseURhdGEsIERCdXNFcnJvciogZEJ1c0Vycm9yKQor
c3RhdGljIHZvaWQgZW51bWVyYXRlRGV2aWNlcyh2b2lkKiBkYXRhLCBjb25zdCBFbGRidXNfTWVz
c2FnZSogbWVzc2FnZSwgRWxkYnVzX1BlbmRpbmcqKQogewotICAgIEVfVWtpdF9HZXRfQWxsX1By
b3BlcnRpZXNfUmV0dXJuKiBldWtpdFByb3BlcnR5TmFtZXMgPSBzdGF0aWNfY2FzdDxFX1VraXRf
R2V0X0FsbF9Qcm9wZXJ0aWVzX1JldHVybio+KHJlcGx5RGF0YSk7CisgICAgaWYgKGVsZGJ1c19t
ZXNzYWdlX2Vycm9yX2dldChtZXNzYWdlLCBudWxscHRyLCBudWxscHRyKSkKKyAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKCFldWtpdFByb3BlcnR5TmFtZXMgfHwgZGJ1c19lcnJvcl9pc19zZXQo
ZEJ1c0Vycm9yKSkgewotICAgICAgICBkYnVzX2Vycm9yX2ZyZWUoZEJ1c0Vycm9yKTsKKyAgICBF
bGRidXNfTWVzc2FnZV9JdGVyKiBhcnJheTsKKyAgICBpZiAoIWVsZGJ1c19tZXNzYWdlX2FyZ3Vt
ZW50c19nZXQobWVzc2FnZSwgImFvIiwgJmFycmF5KSkKICAgICAgICAgcmV0dXJuOworCisgICAg
Y2hhciogcGF0aDsKKyAgICB3aGlsZSAoZWxkYnVzX21lc3NhZ2VfaXRlcl9nZXRfYW5kX25leHQo
YXJyYXksICdvJywgJnBhdGgpKSB7CisgICAgICAgIGlmICghcGF0aCB8fCAhcGF0aFswXSkKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIEVsZGJ1c19PYmplY3QqIG9iamVjdCA9IGVsZGJ1
c19vYmplY3RfZ2V0KHN0YXRpY19jYXN0PEJhdHRlcnlQcm92aWRlckVmbCo+KGRhdGEpLT5jb25u
ZWN0aW9uKCksIEJVUywgcGF0aCk7CisgICAgICAgIEVsZGJ1c19Qcm94eSogcHJveHkgPSBlbGRi
dXNfcHJveHlfZ2V0KG9iamVjdCwgIm9yZy5mcmVlZGVza3RvcC5VUG93ZXIuRGV2aWNlIik7Cisg
ICAgICAgIGVsZGJ1c19wcm94eV9kYXRhX3NldChwcm94eSwgIl9wcm92aWRlciIsIGRhdGEpOwor
ICAgICAgICBlbGRidXNfcHJveHlfcHJvcGVydHlfZ2V0KHByb3h5LCAiVHlwZSIsIGRldmljZVR5
cGVDYWxsYmFjaywgcHJveHkpOwogICAgIH0KK30KIAotICAgIGlmICghZXVraXRQcm9wZXJ0eU5h
bWVzLT5wcm9wZXJ0aWVzKQordm9pZCBCYXR0ZXJ5UHJvdmlkZXJFZmw6OnN0YXJ0VXBkYXRpbmco
KQoreworICAgIGlmIChtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIEVfVWtp
dF9Qcm9wZXJ0eSogcHJvcGVydHkgPSBzdGF0aWNfY2FzdDxFX1VraXRfUHJvcGVydHkqPihlaW5h
X2hhc2hfZmluZChldWtpdFByb3BlcnR5TmFtZXMtPnByb3BlcnRpZXMsICJUeXBlIikpOwotICAg
IGlmICghcHJvcGVydHkgfHwgcHJvcGVydHktPnZhbC51ICE9IEVfVVBPV0VSX1NPVVJDRV9CQVRU
RVJZKQorICAgIGlmICghZWxkYnVzX2luaXQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQmF0
dGVyeVByb3ZpZGVyRWZsKiBjbGllbnQgPSBzdGF0aWNfY2FzdDxCYXR0ZXJ5UHJvdmlkZXJFZmwq
PihkYXRhKTsKLSAgICBCYXR0ZXJ5U3RhdHVzKiBjbGllbnRCYXR0ZXJ5U3RhdHVzID0gY2xpZW50
LT5iYXR0ZXJ5U3RhdHVzKCk7Ci0gICAgYm9vbCBjaGFyZ2luZyA9IGZhbHNlOwotICAgIGJvb2wg
Y2hhcmdpbmdDaGFuZ2VkID0gZmFsc2U7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGNoYXJnaW5nU3Rh
dGUgPSAwOworICAgIG1fY29ubmVjdGlvbiA9IGVsZGJ1c19jb25uZWN0aW9uX2dldChFTERCVVNf
Q09OTkVDVElPTl9UWVBFX1NZU1RFTSk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4o
bV9jb25uZWN0aW9uKTsKIAotICAgIHByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8RV9Va2l0X1Byb3Bl
cnR5Kj4oZWluYV9oYXNoX2ZpbmQoZXVraXRQcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0aWVzLCAiU3Rh
dGUiKSk7Ci0gICAgaWYgKCFwcm9wZXJ0eSkKKyAgICBtX29iamVjdCA9IGVsZGJ1c19vYmplY3Rf
Z2V0KG1fY29ubmVjdGlvbiwgQlVTLCBQQVRIKTsKKyAgICBpZiAoIW1fb2JqZWN0KSB7CisgICAg
ICAgIGVsZGJ1c19jb25uZWN0aW9uX3VucmVmKG1fY29ubmVjdGlvbik7CisgICAgICAgIG1fY29u
bmVjdGlvbiA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIWNsaWVudEJhdHRl
cnlTdGF0dXMgfHwgY2hhcmdpbmdTdGF0ZSAhPSBwcm9wZXJ0eS0+dmFsLnUpIHsKLSAgICAgICAg
Y2hhcmdpbmdDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgY2hhcmdpbmdTdGF0ZSA9IHByb3BlcnR5
LT52YWwudTsKLSAgICAgICAgKGNoYXJnaW5nU3RhdGUgPT0gRV9VUE9XRVJfU1RBVEVfRlVMTCB8
fCBjaGFyZ2luZ1N0YXRlID09IEVfVVBPV0VSX1NUQVRFX0NIQVJHSU5HKSA/IGNoYXJnaW5nID0g
dHJ1ZSA6IGNoYXJnaW5nID0gZmFsc2U7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNoYXJnaW5nID0g
Y2xpZW50QmF0dGVyeVN0YXR1cy0+Y2hhcmdpbmcoKTsKLQotICAgIGJvb2wgY2hhcmdpbmdUaW1l
Q2hhbmdlZCA9IGZhbHNlOwotICAgIGJvb2wgZGlzY2hhcmdpbmdUaW1lQ2hhbmdlZCA9IGZhbHNl
OwotICAgIGRvdWJsZSBjaGFyZ2luZ1RpbWUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OmluZmluaXR5KCk7Ci0gICAgZG91YmxlIGRpc2NoYXJnaW5nVGltZSA9IHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKLQotICAgIGlmIChjaGFyZ2luZykgewotICAgICAg
ICBpZiAoIWNsaWVudEJhdHRlcnlTdGF0dXMgfHwgY2xpZW50QmF0dGVyeVN0YXR1cy0+ZGlzY2hh
cmdpbmdUaW1lKCkgIT0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKQot
ICAgICAgICAgICAgZGlzY2hhcmdpbmdUaW1lQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAgIGRpc2No
YXJnaW5nVGltZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKLSAg
ICAgICAgcHJvcGVydHkgPSBzdGF0aWNfY2FzdDxFX1VraXRfUHJvcGVydHkqPihlaW5hX2hhc2hf
ZmluZChldWtpdFByb3BlcnR5TmFtZXMtPnByb3BlcnRpZXMsICJUaW1lVG9GdWxsIikpOwotICAg
ICAgICBpZiAoIXByb3BlcnR5KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoIWNs
aWVudEJhdHRlcnlTdGF0dXMgfHwgY2xpZW50QmF0dGVyeVN0YXR1cy0+Y2hhcmdpbmdUaW1lKCkg
IT0gcHJvcGVydHktPnZhbC54KQotICAgICAgICAgICAgY2hhcmdpbmdUaW1lQ2hhbmdlZCA9IHRy
dWU7Ci0gICAgICAgIGNoYXJnaW5nVGltZSA9IHByb3BlcnR5LT52YWwueDsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBpZiAoIWNsaWVudEJhdHRlcnlTdGF0dXMgfHwgY2xpZW50QmF0dGVyeVN0YXR1
cy0+Y2hhcmdpbmdUaW1lKCkgIT0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0
eSgpKQotICAgICAgICAgICAgY2hhcmdpbmdUaW1lQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAgIGNo
YXJnaW5nVGltZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKLSAg
ICAgICAgcHJvcGVydHkgPSBzdGF0aWNfY2FzdDxFX1VraXRfUHJvcGVydHkqPihlaW5hX2hhc2hf
ZmluZChldWtpdFByb3BlcnR5TmFtZXMtPnByb3BlcnRpZXMsICJUaW1lVG9FbXB0eSIpKTsKLSAg
ICAgICAgaWYgKCFwcm9wZXJ0eSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKCFj
bGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGNsaWVudEJhdHRlcnlTdGF0dXMtPmRpc2NoYXJnaW5nVGlt
ZSgpICE9IHByb3BlcnR5LT52YWwueCkKLSAgICAgICAgICAgIGRpc2NoYXJnaW5nVGltZUNoYW5n
ZWQgPSB0cnVlOwotICAgICAgICBkaXNjaGFyZ2luZ1RpbWUgPSBwcm9wZXJ0eS0+dmFsLng7CiAg
ICAgfQogCi0gICAgYm9vbCBsZXZlbENoYW5nZWQgPSBmYWxzZTsKLSAgICBwcm9wZXJ0eSA9IHN0
YXRpY19jYXN0PEVfVWtpdF9Qcm9wZXJ0eSo+KGVpbmFfaGFzaF9maW5kKGV1a2l0UHJvcGVydHlO
YW1lcy0+cHJvcGVydGllcywgIlBlcmNlbnRhZ2UiKSk7Ci0gICAgaWYgKCFwcm9wZXJ0eSkKKyAg
ICBtX3Byb3h5ID0gZWxkYnVzX3Byb3h5X2dldChtX29iamVjdCwgSUZBQ0UpOworICAgIGlmICgh
bV9wcm94eSkgeworICAgICAgICBlbGRidXNfb2JqZWN0X3VucmVmKG1fb2JqZWN0KTsKKyAgICAg
ICAgZWxkYnVzX2Nvbm5lY3Rpb25fdW5yZWYobV9jb25uZWN0aW9uKTsKKyAgICAgICAgbV9jb25u
ZWN0aW9uID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIGRvdWJsZSBs
ZXZlbCA9IHByb3BlcnR5LT52YWwuZCAvIDEwMDsKLSAgICBpZiAoIWNsaWVudEJhdHRlcnlTdGF0
dXMgfHwgY2xpZW50QmF0dGVyeVN0YXR1cy0+bGV2ZWwoKSAhPSBsZXZlbCkKLSAgICAgICAgbGV2
ZWxDaGFuZ2VkID0gdHJ1ZTsKKyAgICBlbGRidXNfcHJveHlfY2FsbChtX3Byb3h5LCAiRW51bWVy
YXRlRGV2aWNlcyIsIGVudW1lcmF0ZURldmljZXMsIHRoaXMsIC0xLCAiIik7Cit9CiAKLSAgICBX
VEY6OlJlZlB0cjxCYXR0ZXJ5U3RhdHVzPiBiYXR0ZXJ5U3RhdHVzID0gQmF0dGVyeVN0YXR1czo6
Y3JlYXRlKGNoYXJnaW5nLCBjaGFyZ2luZ1RpbWUsIGRpc2NoYXJnaW5nVGltZSwgbGV2ZWwpOwot
ICAgIGlmIChjaGFyZ2luZ0NoYW5nZWQpCi0gICAgICAgIGNsaWVudC0+c2V0QmF0dGVyeVN0YXR1
cyhldmVudE5hbWVzKCkuY2hhcmdpbmdjaGFuZ2VFdmVudCwgYmF0dGVyeVN0YXR1cyk7Ci0gICAg
aWYgKGNoYXJnaW5nVGltZUNoYW5nZWQpCi0gICAgICAgIGNsaWVudC0+c2V0QmF0dGVyeVN0YXR1
cyhldmVudE5hbWVzKCkuY2hhcmdpbmd0aW1lY2hhbmdlRXZlbnQsIGJhdHRlcnlTdGF0dXMpOwot
ICAgIGlmIChkaXNjaGFyZ2luZ1RpbWVDaGFuZ2VkKQotICAgICAgICBjbGllbnQtPnNldEJhdHRl
cnlTdGF0dXMoZXZlbnROYW1lcygpLmRpc2NoYXJnaW5ndGltZWNoYW5nZUV2ZW50LCBiYXR0ZXJ5
U3RhdHVzKTsKLSAgICBpZiAobGV2ZWxDaGFuZ2VkKQotICAgICAgICBjbGllbnQtPnNldEJhdHRl
cnlTdGF0dXMoZXZlbnROYW1lcygpLmxldmVsY2hhbmdlRXZlbnQsIGJhdHRlcnlTdGF0dXMpOwor
dm9pZCBCYXR0ZXJ5UHJvdmlkZXJFZmw6OnN0b3BVcGRhdGluZygpCit7CisgICAgZWxkYnVzX3No
dXRkb3duKCk7Cit9CisKK3ZvaWQgQmF0dGVyeVByb3ZpZGVyRWZsOjpzZXRCYXR0ZXJ5U3RhdHVz
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEJhdHRlcnlTdGF0dXM+
IGJhdHRlcnlTdGF0dXMpCit7CisgICAgbV9iYXR0ZXJ5U3RhdHVzID0gYmF0dGVyeVN0YXR1czsK
KyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhldmVudFR5cGUsIG1fYmF0dGVy
eVN0YXR1cyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9CYXR0ZXJ5UHJvdmlkZXJFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9CYXR0
ZXJ5UHJvdmlkZXJFZmwuaAppbmRleCBiYjRiYjdmMDRiZGRkZWM0YjFlYTAwNGE5YTljMTY3NDEx
NjVjM2UwLi5jNWM4ZmI3ZDQ0YjcyYTQzZWZmMWRmMTY0OTNjODI5ZmE3MTFjNDY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5oCkBAIC0y
NSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiQmF0dGVyeUNsaWVudC5oIgogI2luY2x1ZGUgIkJhdHRl
cnlTdGF0dXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPEVsZGJ1cy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiB0eXBlZGVmIHN0cnVjdCBEQnVzRXJy
b3IgREJ1c0Vycm9yOwpAQCAtMzUsOCArMzYsOCBAQCBjbGFzcyBCYXR0ZXJ5UHJvdmlkZXJFZmxD
bGllbnQ7CiAKIGNsYXNzIEJhdHRlcnlQcm92aWRlckVmbCB7CiBwdWJsaWM6Ci0gICAgQmF0dGVy
eVByb3ZpZGVyRWZsKEJhdHRlcnlQcm92aWRlckVmbENsaWVudCopOwotICAgIH5CYXR0ZXJ5UHJv
dmlkZXJFZmwoKSB7IH0KKyAgICBleHBsaWNpdCBCYXR0ZXJ5UHJvdmlkZXJFZmwoQmF0dGVyeVBy
b3ZpZGVyRWZsQ2xpZW50Kik7CisgICAgfkJhdHRlcnlQcm92aWRlckVmbCgpOwogCiAgICAgdmly
dHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5n
KCk7CkBAIC00NCwxNSArNDUsMTUgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QmF0dGVyeVN0YXR1
cyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxCYXR0ZXJ5U3RhdHVz
Pik7CiAgICAgQmF0dGVyeVN0YXR1cyogYmF0dGVyeVN0YXR1cygpIGNvbnN0OwogCisgICAgRWxk
YnVzX0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb247IH0KIHBy
aXZhdGU6Ci0gICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPEJhdHRlcnlQcm92aWRlckVmbD4qKTsK
LSAgICBzdGF0aWMgdm9pZCBnZXRCYXR0ZXJ5U3RhdHVzKHZvaWQqIGRhdGEsIHZvaWQqIHJlcGx5
RGF0YSwgREJ1c0Vycm9yKik7Ci0gICAgc3RhdGljIHZvaWQgc2V0QmF0dGVyeUNsaWVudCh2b2lk
KiBkYXRhLCB2b2lkKiByZXBseURhdGEsIERCdXNFcnJvciopOwotCiAgICAgQmF0dGVyeVByb3Zp
ZGVyRWZsQ2xpZW50KiBtX2NsaWVudDsKLSAgICBUaW1lcjxCYXR0ZXJ5UHJvdmlkZXJFZmw+IG1f
dGltZXI7CiAgICAgUmVmUHRyPEJhdHRlcnlTdGF0dXM+IG1fYmF0dGVyeVN0YXR1czsKICAgICBj
b25zdCBkb3VibGUgbV9iYXR0ZXJ5U3RhdHVzUmVmcmVzaEludGVydmFsOworCisgICAgRWxkYnVz
X0Nvbm5lY3Rpb24qIG1fY29ubmVjdGlvbjsKKyAgICBFbGRidXNfT2JqZWN0KiBtX29iamVjdDsK
KyAgICBFbGRidXNfUHJveHkqIG1fcHJveHk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmlu
ZGV4IGYwZTM2MTdlNDk4Zjg2YTQ2MTQ4MDE0ZmYxMzFmYjZiZTk2ODJlZGMuLjhmMDQ1MmMxMTQ4
MjFhZTFiMjk3NTZiNjFhMTEyYjc3MjBlNjJhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC0x
OTQsOSArMTk0LDggQEAgaWYgKFdURl9PU19VTklYKQogICAgIGFkZF9kZWZpbml0aW9ucygtRFhQ
X1VOSVgpCiBlbmRpZiAoV1RGX09TX1VOSVgpCiAKLWlmIChFTkFCTEVfQkFUVEVSWV9TVEFUVVMg
T1IgKEVGTF9SRVFVSVJFRF9WRVJTSU9OIFZFUlNJT05fTEVTUyAxLjgpKQotICAgIGZpbmRfcGFj
a2FnZShEQnVzIFJFUVVJUkVEKQotICAgIGZpbmRfcGFja2FnZShFX0RCdXMgMS43IENPTVBPTkVO
VFMgRVVLaXQpCitpZiAoRU5BQkxFX0JBVFRFUllfU1RBVFVTKQorICAgIGZpbmRfcGFja2FnZShF
bGRidXMgJHtFRkxfUkVRVUlSRURfVkVSU0lPTn0gJHtFRkxfQ09ORklHX01PREV9KQogZW5kaWYg
KCkKIAogaWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVfV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEv
Q2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGUzN2E4YWZkNDdlYmM2MDk1ODZlZWVjZjZlNzNl
YmI4ZTYxNjcwZjMuLjhkN2RhNmExMTE0ODkxODM0NTYzYjdiYTc2N2ZhZWI2MmY2ZGU2M2QgMTAw
NjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAx
NC0wOC0yOCAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF0gUmVtb3ZlIEVfRGJ1cyBkZXBlbmRlbmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYzNTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOiBS
ZW1vdmUgRV9EYnVzIGRlcGVuZGVuY3kKKwogMjAxNC0wOC0yOCAgQnJpYW4gSi4gQnVyZyAgPGJ1
cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CiAKICAgICAgICAgV2ViSW5zcGVjdG9yVUkuZnJhbWV3b3Jr
IGlzIG5vdCBidWlsdCBmb3IgdGhlICJBbGwgU291cmNlIiBYY29kZSBzY2hlbWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241815</attachid>
            <date>2014-11-18 14:53:44 -0800</date>
            <delta_ts>2014-11-18 15:04:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136355-20141119075349.patch</filename>
            <type>text/plain</type>
            <size>21427</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY2ZTM1NzA5N2VjYTlm
NzYxZGI3MGJkYTQ2MWY3ZTZmMTc5YjYwMS4uNDE1YTRiMTY1MTBiZGFhMWI0NDAxNTJmYzJhNWI5
NzRjYTc3ZDEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTExLTE4ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBuYXZlcmNvcnAuY29tPgorCisgICAgICAgIFtFRkxdIFJlbW92
ZSBFX0RidXMgZGVwZW5kZW5jeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM2MzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRV9EYnVzIGlzIHRoZSBzaW1wbGUgd3JhcHBlciBvZiBEYnVzIGJ1dCBpdCBo
YXMgbm90IGJlZW4gbWFpbnRhaW5lZCBzaW5jZSBFRkwgMS44LgorICAgICAgICBJbnN0ZWFkLCBF
RkwgaW50cm9kdWNlZCBFbGRidXMsIHdoaWNoIGlzIGFsbW9zdCBzaW1pbGFyIHdpdGggRV9EYnVz
IGJ1dCBwcm92aWRlcyBtb3JlIGRidXMgbGlrZSBpbnRlcmZhY2UuCisKKyAgICAgICAgVGhpcyBw
YXRjaCByZXBsYWNlcyBFX0RidXMgaW1wbGVtZW50YXRpb24gdG8gRWxkYnVzLgorCisgICAgICAg
ICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92
aWRlckVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6OkJhdHRl
cnlQcm92aWRlckVmbCk6CisgICAgICAgIChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6On5C
YXR0ZXJ5UHJvdmlkZXJFZmwpOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZs
OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6YmF0dGVyeVByb3BlcnRpZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6YmF0dGVyeVByb3BlcnRpZXNDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6ZGV2aWNlVHlwZUNhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6ZW51bWVyYXRlRGV2aWNlcyk6CisgICAgICAg
IChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpzZXRCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6dGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6OmdldEJhdHRlcnlTdGF0dXMpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpzZXRCYXR0ZXJ5Q2xp
ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZs
Lmg6CisgICAgICAgIChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6OmNvbm5lY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpzZXRTaWduYWxIYW5kbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6fkJhdHRlcnlQcm92aWRlckVm
bCk6IERlbGV0ZWQuCisKIDIwMTQtMTEtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgYSBtb3JlIGNvcnJlY3Qgd2F5IHRvIGNvbXBhcmUgZmxvYXRpbmcg
cG9pbnQgbnVtYmVycyBhbmQgdXNlIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWEzZmNmZDVkOTA2MzhhNWFl
NDUzMTZlMjgzNWMzNGNjMmQyMzEzZi4uZDc4N2Y2ZTIyMTk1MjZjNzZiMjBiYjRmODM1ZTk1ZjY0
ZWEwNDliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTExLTE4ICBSeXVhbiBD
aG9pICA8cnl1YW4uY2hvaUBuYXZlcmNvcnAuY29tPgorCisgICAgICAgIFtFRkxdIFJlbW92ZSBF
X0RidXMgZGVwZW5kZW5jeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM2MzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbWFpbi5jcHA6IEFkZGVkIGluaXQvc2h1
dGRvd24gZm9yIGVsZGJ1cy4KKyAgICAgICAgKFdlYktpdDo6RXdrTWFpbjo6aW5pdGlhbGl6ZSk6
CisgICAgICAgIChXZWJLaXQ6OkV3a01haW46OmZpbmFsaXplKToKKyAgICAgICAgKFdlYktpdDo6
RXdrTWFpbjo6c2h1dGRvd25Jbml0aWFsaXplZEVGTE1vZHVsZXMpOgorCiAyMDE0LTExLTA5ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbW9yZSBjb3Jy
ZWN0IHdheSB0byBjb21wYXJlIGZsb2F0aW5nIHBvaW50IG51bWJlcnMgYW5kIHVzZSBpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA4ODhjNTQ1ZmNhZmI3ZWMxYzRmNGM0NzRlOTE4ZTEy
ZGQyODgyYzlmLi5jOGQyZjU1MWJmODhjYTUyNzFmZTk2ZWQ4YjJmZWJhYzIyN2U3NmU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMjU4LDE1ICsyNTgsNiBAQCBpZiAoV1RGX1VTRV9H
RU9DTFVFMikKICAgICApCiBlbmRpZiAoKQogCi1pZiAoRU5BQkxFX0JBVFRFUllfU1RBVFVTIE9S
IChFRkxfUkVRVUlSRURfVkVSU0lPTiBWRVJTSU9OX0xFU1MgMS44KSkKLSAgICBsaXN0KEFQUEVO
RCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMgJHtEQlVTX0lOQ0xVREVfRElSU30pCi0gICAg
bGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTICR7RV9EQlVTX0lOQ0xVREVf
RElSU30pCi0gICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTICR7RV9E
QlVTX0VVS0lUX0lOQ0xVREVfRElSU30pCi0gICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJ
RVMgJHtEQlVTX0xJQlJBUklFU30pCi0gICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMg
JHtFX0RCVVNfTElCUkFSSUVTfSkKLSAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyAk
e0VfREJVU19FVUtJVF9MSUJSQVJJRVN9KQotZW5kaWYgKCkKLQogaWYgKEVOQUJMRV9HQU1FUEFE
X0RFUFJFQ0FURUQpCiAgICAgIyBGSVhNRTogR0FNRVBBRF9ERVBSRUNBVEVEIGlzIGxlZ2FjeSBp
bXBsZW1lbnRhdGlvbi4gTmVlZCB0byBiZSByZW1vdmVkLgogICAgIGxpc3QoUkVNT1ZFX0lURU0g
V2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCkBAIC0yOTQsNiArMjg1LDcgQEAgbGlzdChBUFBF
TkQgV2ViQ29yZV9MSUJSQVJJRVMKICAgICAke0VESkVfTElCUkFSSUVTfQogICAgICR7RUVaRV9M
SUJSQVJJRVN9CiAgICAgJHtFSU5BX0xJQlJBUklFU30KKyAgICAke0VMREJVU19MSUJSQVJJRVN9
CiAgICAgJHtFT19MSUJSQVJJRVN9CiAgICAgJHtFVkFTX0xJQlJBUklFU30KICAgICAke0ZPTlRD
T05GSUdfTElCUkFSSUVTfQpAQCAtMzI0LDYgKzMxNiw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7RURKRV9JTkNMVURFX0RJUlN9CiAgICAgJHtFRVpF
X0lOQ0xVREVfRElSU30KICAgICAke0VJTkFfSU5DTFVERV9ESVJTfQorICAgICR7RUxEQlVTX0lO
Q0xVREVfRElSU30KICAgICAke0VWQVNfSU5DTFVERV9ESVJTfQogICAgICR7RlJFRVRZUEUyX0lO
Q0xVREVfRElSU30KICAgICAke0dFT0NMVUVfSU5DTFVERV9ESVJTfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmNwcAppbmRleCBkYjU1ZDM4
M2U4ZjQwNDA4YThlOTM5Y2UxODAzNzliMjRhNGIzMzI5Li5jMGY0YWM2OTRmZTY4OTRhMjZlZGM4
ZDRjYmE1OThhMTU0MjRhMTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmNwcApAQCAtMjEsMTggKzIxLDI2IEBACiAjaW5jbHVkZSAi
QmF0dGVyeVByb3ZpZGVyRWZsLmgiCiAKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCi0KICNp
bmNsdWRlICJCYXR0ZXJ5UHJvdmlkZXJFZmxDbGllbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCi0jaW5jbHVkZSA8RV9Va2l0Lmg+CiAjaW5jbHVkZSA8bGltaXRzPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NvbnN0IGNoYXIgQlVTW10gPSAib3JnLmZyZWVkZXNrdG9wLlVQb3dlciI7
Citjb25zdCBjaGFyIFBBVEhbXSA9ICIvb3JnL2ZyZWVkZXNrdG9wL1VQb3dlciI7Citjb25zdCBj
aGFyIElGQUNFW10gPSAib3JnLmZyZWVkZXNrdG9wLlVQb3dlciI7CisKIEJhdHRlcnlQcm92aWRl
ckVmbDo6QmF0dGVyeVByb3ZpZGVyRWZsKEJhdHRlcnlQcm92aWRlckVmbENsaWVudCogY2xpZW50
KQogICAgIDogbV9jbGllbnQoY2xpZW50KQotICAgICwgbV90aW1lcih0aGlzLCAmQmF0dGVyeVBy
b3ZpZGVyRWZsOjp0aW1lckZpcmVkKQotICAgICwgbV9iYXR0ZXJ5U3RhdHVzUmVmcmVzaEludGVy
dmFsKDEuMCkKKyAgICAsIG1fY29ubmVjdGlvbihudWxscHRyKQorICAgICwgbV9vYmplY3QobnVs
bHB0cikKKyAgICAsIG1fcHJveHkobnVsbHB0cikKKyAgICAsIG1fc2lnbmFsSGFuZGxlcihudWxs
cHRyKQoreworfQorCitCYXR0ZXJ5UHJvdmlkZXJFZmw6On5CYXR0ZXJ5UHJvdmlkZXJFZmwoKQog
ewogfQogCkBAIC00MSwxNDEgKzQ5LDE3NyBAQCBCYXR0ZXJ5U3RhdHVzKiBCYXR0ZXJ5UHJvdmlk
ZXJFZmw6OmJhdHRlcnlTdGF0dXMoKSBjb25zdAogICAgIHJldHVybiBtX2JhdHRlcnlTdGF0dXMu
Z2V0KCk7CiB9CiAKLXZvaWQgQmF0dGVyeVByb3ZpZGVyRWZsOjpzdGFydFVwZGF0aW5nKCkKK3Zv
aWQgQmF0dGVyeVByb3ZpZGVyRWZsOjpzdG9wVXBkYXRpbmcoKQogewotICAgIGlmIChtX3RpbWVy
LmlzQWN0aXZlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghZV9kYnVzX2luaXQoKSkK
LSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3NpZ25hbEhhbmRsZXIpIHsKKyAgICAgICAgZWxk
YnVzX3NpZ25hbF9oYW5kbGVyX2RlbChtX3NpZ25hbEhhbmRsZXIpOworICAgICAgICBtX3NpZ25h
bEhhbmRsZXIgPSBudWxscHRyOworICAgIH0KIAotICAgIGlmICghZV91a2l0X2luaXQoKSkgewot
ICAgICAgICBlX2RidXNfc2h1dGRvd24oKTsKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3By
b3h5KSB7CisgICAgICAgIGVsZGJ1c19wcm94eV91bnJlZihtX3Byb3h5KTsKKyAgICAgICAgbV9w
cm94eSA9IG51bGxwdHI7CisgICAgfQorICAgIGlmIChtX29iamVjdCkgeworICAgICAgICBlbGRi
dXNfb2JqZWN0X3VucmVmKG1fb2JqZWN0KTsKKyAgICAgICAgbV9vYmplY3QgPSBudWxscHRyOwog
ICAgIH0KIAotICAgIG1fdGltZXIuc3RhcnRSZXBlYXRpbmcobV9iYXR0ZXJ5U3RhdHVzUmVmcmVz
aEludGVydmFsKTsKKyAgICBpZiAobV9jb25uZWN0aW9uKSB7CisgICAgICAgIGVsZGJ1c19jb25u
ZWN0aW9uX3VucmVmKG1fY29ubmVjdGlvbik7CisgICAgICAgIG1fY29ubmVjdGlvbiA9IG51bGxw
dHI7CisgICAgfQogfQogCi12b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6c3RvcFVwZGF0aW5nKCkK
K3N0YXRpYyB2b2lkIGJhdHRlcnlQcm9wZXJ0aWVzKHZvaWQqIGRhdGEsIGNvbnN0IEVsZGJ1c19N
ZXNzYWdlKiBtZXNzYWdlLCBFbGRidXNfUGVuZGluZyopCiB7Ci0gICAgaWYgKCFtX3RpbWVyLmlz
QWN0aXZlKCkpCisgICAgaWYgKGVsZGJ1c19tZXNzYWdlX2Vycm9yX2dldChtZXNzYWdlLCBudWxs
cHRyLCBudWxscHRyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV90aW1lci5zdG9wKCk7Ci0g
ICAgZV91a2l0X3NodXRkb3duKCk7Ci0gICAgZV9kYnVzX3NodXRkb3duKCk7Ci19CisgICAgRWxk
YnVzX01lc3NhZ2VfSXRlciogYXJyYXk7CisgICAgaWYgKCFlbGRidXNfbWVzc2FnZV9hcmd1bWVu
dHNfZ2V0KG1lc3NhZ2UsICJhe3N2fSIsICZhcnJheSkpCisgICAgICAgIHJldHVybjsKIAotdm9p
ZCBCYXR0ZXJ5UHJvdmlkZXJFZmw6OnNldEJhdHRlcnlTdGF0dXMoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIFBhc3NSZWZQdHI8QmF0dGVyeVN0YXR1cz4gYmF0dGVyeVN0YXR1cykKLXsK
LSAgICBtX2JhdHRlcnlTdGF0dXMgPSBiYXR0ZXJ5U3RhdHVzOwotICAgIG1fY2xpZW50LT5kaWRD
aGFuZ2VCYXR0ZXJ5U3RhdHVzKGV2ZW50VHlwZSwgbV9iYXR0ZXJ5U3RhdHVzKTsKKyAgICBCYXR0
ZXJ5UHJvdmlkZXJFZmwqIGNsaWVudCA9IHN0YXRpY19jYXN0PEJhdHRlcnlQcm92aWRlckVmbCo+
KGRhdGEpOworICAgIEJhdHRlcnlTdGF0dXMqIGNsaWVudEJhdHRlcnlTdGF0dXMgPSBjbGllbnQt
PmJhdHRlcnlTdGF0dXMoKTsKKyAgICBib29sIGNoYXJnaW5nID0gZmFsc2U7CisgICAgYm9vbCBj
aGFyZ2luZ0NoYW5nZWQgPSBmYWxzZTsKKworICAgIGJvb2wgY2hhcmdpbmdUaW1lQ2hhbmdlZCA9
IGZhbHNlOworICAgIGludDY0X3QgY2hhcmdpbmdUaW1lOworCisgICAgYm9vbCBkaXNjaGFyZ2lu
Z1RpbWVDaGFuZ2VkID0gZmFsc2U7CisgICAgaW50NjRfdCBkaXNjaGFyZ2luZ1RpbWU7CisKKyAg
ICBib29sIGxldmVsQ2hhbmdlZCA9IGZhbHNlOworICAgIGRvdWJsZSBsZXZlbDsKKworICAgIEVs
ZGJ1c19NZXNzYWdlX0l0ZXIqIGRpY3Q7CisgICAgd2hpbGUgKGVsZGJ1c19tZXNzYWdlX2l0ZXJf
Z2V0X2FuZF9uZXh0KGFycmF5LCAnZScsICZkaWN0KSkgeworICAgICAgICBjaGFyKiBrZXk7Cisg
ICAgICAgIEVsZGJ1c19NZXNzYWdlX0l0ZXIqIHZhcmlhbnQ7CisgICAgICAgIGlmICghZWxkYnVz
X21lc3NhZ2VfaXRlcl9hcmd1bWVudHNfZ2V0KGRpY3QsICJzdiIsICZrZXksICZ2YXJpYW50KSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmICghc3RyY21wKGtleSwgIlN0YXRl
IikpIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIHN0YXRlOworICAgICAgICAgICAgZWxkYnVzX21l
c3NhZ2VfaXRlcl9hcmd1bWVudHNfZ2V0KHZhcmlhbnQsICJ1IiwgJnN0YXRlKTsKKyAgICAgICAg
ICAgIGlmIChzdGF0ZSA9PSAxKSAvLyBDaGFyZ2luZworICAgICAgICAgICAgICAgIGNoYXJnaW5n
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICghY2xpZW50QmF0dGVyeVN0YXR1cyB8fCBjaGFyZ2lu
ZyAhPSBjbGllbnRCYXR0ZXJ5U3RhdHVzLT5jaGFyZ2luZygpKQorICAgICAgICAgICAgICAgIGNo
YXJnaW5nQ2hhbmdlZCA9IHRydWU7CisKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwg
IlRpbWVUb0VtcHR5IikpIHsKKyAgICAgICAgICAgIGVsZGJ1c19tZXNzYWdlX2l0ZXJfYXJndW1l
bnRzX2dldCh2YXJpYW50LCAieCIsICZkaXNjaGFyZ2luZ1RpbWUpOworICAgICAgICAgICAgaWYg
KCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGRpc2NoYXJnaW5nVGltZSAhPSBjbGllbnRCYXR0ZXJ5
U3RhdHVzLT5kaXNjaGFyZ2luZ1RpbWUoKSkKKyAgICAgICAgICAgICAgICBkaXNjaGFyZ2luZ1Rp
bWVDaGFuZ2VkID0gdHJ1ZTsKKworICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiVGlt
ZVRvRnVsbCIpKSB7CisgICAgICAgICAgICBlbGRidXNfbWVzc2FnZV9pdGVyX2FyZ3VtZW50c19n
ZXQodmFyaWFudCwgIngiLCAmY2hhcmdpbmdUaW1lKTsKKyAgICAgICAgICAgIGlmICghY2xpZW50
QmF0dGVyeVN0YXR1cyB8fCBjaGFyZ2luZ1RpbWUgIT0gY2xpZW50QmF0dGVyeVN0YXR1cy0+Y2hh
cmdpbmdUaW1lKCkpCisgICAgICAgICAgICAgICAgY2hhcmdpbmdUaW1lQ2hhbmdlZCA9IHRydWU7
CisKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgIlBlcmNlbnRhZ2UiKSkgeworICAg
ICAgICAgICAgZWxkYnVzX21lc3NhZ2VfaXRlcl9hcmd1bWVudHNfZ2V0KHZhcmlhbnQsICJkIiwg
JmxldmVsKTsKKyAgICAgICAgICAgIGlmICghY2xpZW50QmF0dGVyeVN0YXR1cyB8fCBsZXZlbCAh
PSBjbGllbnRCYXR0ZXJ5U3RhdHVzLT5sZXZlbCgpICogMTAwKQorICAgICAgICAgICAgICAgIGxl
dmVsQ2hhbmdlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBSZWZQdHI8QmF0dGVy
eVN0YXR1cz4gYmF0dGVyeVN0YXR1cyA9IEJhdHRlcnlTdGF0dXM6OmNyZWF0ZShjaGFyZ2luZywg
Y2hhcmdpbmdUaW1lLCBkaXNjaGFyZ2luZ1RpbWUsIGxldmVsIC8gMTAwKTsKKyAgICBpZiAoY2hh
cmdpbmdDaGFuZ2VkKQorICAgICAgICBjbGllbnQtPnNldEJhdHRlcnlTdGF0dXMoZXZlbnROYW1l
cygpLmNoYXJnaW5nY2hhbmdlRXZlbnQsIGJhdHRlcnlTdGF0dXMpOworICAgIGlmIChjaGFyZ2lu
Z1RpbWVDaGFuZ2VkKQorICAgICAgICBjbGllbnQtPnNldEJhdHRlcnlTdGF0dXMoZXZlbnROYW1l
cygpLmNoYXJnaW5ndGltZWNoYW5nZUV2ZW50LCBiYXR0ZXJ5U3RhdHVzKTsKKyAgICBpZiAoZGlz
Y2hhcmdpbmdUaW1lQ2hhbmdlZCkKKyAgICAgICAgY2xpZW50LT5zZXRCYXR0ZXJ5U3RhdHVzKGV2
ZW50TmFtZXMoKS5kaXNjaGFyZ2luZ3RpbWVjaGFuZ2VFdmVudCwgYmF0dGVyeVN0YXR1cyk7Cisg
ICAgaWYgKGxldmVsQ2hhbmdlZCkKKyAgICAgICAgY2xpZW50LT5zZXRCYXR0ZXJ5U3RhdHVzKGV2
ZW50TmFtZXMoKS5sZXZlbGNoYW5nZUV2ZW50LCBiYXR0ZXJ5U3RhdHVzKTsKIH0KIAotdm9pZCBC
YXR0ZXJ5UHJvdmlkZXJFZmw6OnRpbWVyRmlyZWQoVGltZXIqIHRpbWVyKQorc3RhdGljIHZvaWQg
YmF0dGVyeVByb3BlcnRpZXNDaGFuZ2VkKHZvaWQqIGRhdGEsIGNvbnN0IEVsZGJ1c19NZXNzYWdl
KikKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90aW1lcik7Ci0gICAg
RV9EQnVzX0Nvbm5lY3Rpb24qIGVkYnVzQ29ubmVjdGlvbiA9IGVfZGJ1c19idXNfZ2V0KERCVVNf
QlVTX1NZU1RFTSk7Ci0gICAgaWYgKGVkYnVzQ29ubmVjdGlvbikKLSAgICAgICAgZV91cG93ZXJf
Z2V0X2FsbF9kZXZpY2VzKGVkYnVzQ29ubmVjdGlvbiwgZ2V0QmF0dGVyeVN0YXR1cywgc3RhdGlj
X2Nhc3Q8dm9pZCo+KHRoaXMpKTsKKyAgICBFbGRidXNfUHJveHkqIHByb3h5ID0gc3RhdGljX2Nh
c3Q8RWxkYnVzX1Byb3h5Kj4oZGF0YSk7CisgICAgQmF0dGVyeVByb3ZpZGVyRWZsKiBwcm92aWRl
ciA9IHN0YXRpY19jYXN0PEJhdHRlcnlQcm92aWRlckVmbCo+KGVsZGJ1c19wcm94eV9kYXRhX2dl
dChwcm94eSwgIl9wcm92aWRlciIpKTsKKyAgICBlbGRidXNfcHJveHlfcHJvcGVydHlfZ2V0X2Fs
bChwcm94eSwgYmF0dGVyeVByb3BlcnRpZXMsIHByb3ZpZGVyKTsKIH0KIAotdm9pZCBCYXR0ZXJ5
UHJvdmlkZXJFZmw6OmdldEJhdHRlcnlTdGF0dXModm9pZCogZGF0YSwgdm9pZCogcmVwbHlEYXRh
LCBEQnVzRXJyb3IqIGRCdXNFcnJvcikKK3ZvaWQgQmF0dGVyeVByb3ZpZGVyRWZsOjpkZXZpY2VU
eXBlQ2FsbGJhY2sodm9pZCogZGF0YSwgY29uc3QgRWxkYnVzX01lc3NhZ2UqIG1lc3NhZ2UsIEVs
ZGJ1c19QZW5kaW5nKikKIHsKLSAgICBFX1VraXRfR2V0X0FsbF9EZXZpY2VzX1JldHVybiogZXVr
aXREZXZpY2VOYW1lcyA9IHN0YXRpY19jYXN0PEVfVWtpdF9HZXRfQWxsX0RldmljZXNfUmV0dXJu
Kj4ocmVwbHlEYXRhKTsKLSAgICBpZiAoIWV1a2l0RGV2aWNlTmFtZXMgfHwgIWV1a2l0RGV2aWNl
TmFtZXMtPnN0cmluZ3MgfHwgZGJ1c19lcnJvcl9pc19zZXQoZEJ1c0Vycm9yKSkgewotICAgICAg
ICAgZGJ1c19lcnJvcl9mcmVlKGRCdXNFcnJvcik7Ci0gICAgICAgICByZXR1cm47Ci0gICAgfQor
ICAgIGlmIChlbGRidXNfbWVzc2FnZV9lcnJvcl9nZXQobWVzc2FnZSwgbnVsbHB0ciwgbnVsbHB0
cikpCisgICAgICAgIHJldHVybjsKKworICAgIEVsZGJ1c19NZXNzYWdlX0l0ZXIqIHZhcmlhbnQ7
CisgICAgaWYgKCFlbGRidXNfbWVzc2FnZV9hcmd1bWVudHNfZ2V0KG1lc3NhZ2UsICJ2IiwgJnZh
cmlhbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICB1bnNpZ25lZCB0eXBlID0gMDsKKyAgICBl
bGRidXNfbWVzc2FnZV9pdGVyX2FyZ3VtZW50c19nZXQodmFyaWFudCwgInUiLCAmdHlwZSk7Cisg
ICAgaWYgKHR5cGUgIT0gMikgLy8gQkFUVEVSWQorICAgICAgICByZXR1cm47CiAKLSAgICBFX0RC
dXNfQ29ubmVjdGlvbiogZWRidXNDb25uZWN0aW9uID0gZV9kYnVzX2J1c19nZXQoREJVU19CVVNf
U1lTVEVNKTsKLSAgICBFaW5hX0xpc3QqIGxpc3Q7Ci0gICAgdm9pZCogZGV2aWNlTmFtZTsKLSAg
ICBFSU5BX0xJU1RfRk9SRUFDSChldWtpdERldmljZU5hbWVzLT5zdHJpbmdzLCBsaXN0LCBkZXZp
Y2VOYW1lKQotICAgICAgICBlX3Vwb3dlcl9nZXRfYWxsX3Byb3BlcnRpZXMoZWRidXNDb25uZWN0
aW9uLCBzdGF0aWNfY2FzdDxjaGFyKj4oZGV2aWNlTmFtZSksIHNldEJhdHRlcnlDbGllbnQsIGRh
dGEpOworICAgIEVsZGJ1c19Qcm94eSogcHJveHkgPSBzdGF0aWNfY2FzdDxFbGRidXNfUHJveHkq
PihkYXRhKTsKKyAgICBCYXR0ZXJ5UHJvdmlkZXJFZmwqIHByb3ZpZGVyID0gc3RhdGljX2Nhc3Q8
QmF0dGVyeVByb3ZpZGVyRWZsKj4oZWxkYnVzX3Byb3h5X2RhdGFfZ2V0KHByb3h5LCAiX3Byb3Zp
ZGVyIikpOworICAgIGVsZGJ1c19wcm94eV9wcm9wZXJ0eV9nZXRfYWxsKHByb3h5LCBiYXR0ZXJ5
UHJvcGVydGllcywgcHJvdmlkZXIpOworICAgIHByb3ZpZGVyLT5zZXRTaWduYWxIYW5kbGVyKGVs
ZGJ1c19wcm94eV9zaWduYWxfaGFuZGxlcl9hZGQocHJveHksICJDaGFuZ2VkIiwgYmF0dGVyeVBy
b3BlcnRpZXNDaGFuZ2VkLCBwcm94eSkpOwogfQogCi12b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6
c2V0QmF0dGVyeUNsaWVudCh2b2lkKiBkYXRhLCB2b2lkKiByZXBseURhdGEsIERCdXNFcnJvciog
ZEJ1c0Vycm9yKQordm9pZCBCYXR0ZXJ5UHJvdmlkZXJFZmw6OmVudW1lcmF0ZURldmljZXModm9p
ZCogZGF0YSwgY29uc3QgRWxkYnVzX01lc3NhZ2UqIG1lc3NhZ2UsIEVsZGJ1c19QZW5kaW5nKikK
IHsKLSAgICBFX1VraXRfR2V0X0FsbF9Qcm9wZXJ0aWVzX1JldHVybiogZXVraXRQcm9wZXJ0eU5h
bWVzID0gc3RhdGljX2Nhc3Q8RV9Va2l0X0dldF9BbGxfUHJvcGVydGllc19SZXR1cm4qPihyZXBs
eURhdGEpOworICAgIGlmIChlbGRidXNfbWVzc2FnZV9lcnJvcl9nZXQobWVzc2FnZSwgbnVsbHB0
ciwgbnVsbHB0cikpCisgICAgICAgIHJldHVybjsKIAotICAgIGlmICghZXVraXRQcm9wZXJ0eU5h
bWVzIHx8IGRidXNfZXJyb3JfaXNfc2V0KGRCdXNFcnJvcikpIHsKLSAgICAgICAgZGJ1c19lcnJv
cl9mcmVlKGRCdXNFcnJvcik7CisgICAgRWxkYnVzX01lc3NhZ2VfSXRlciogYXJyYXk7CisgICAg
aWYgKCFlbGRidXNfbWVzc2FnZV9hcmd1bWVudHNfZ2V0KG1lc3NhZ2UsICJhbyIsICZhcnJheSkp
CiAgICAgICAgIHJldHVybjsKKworICAgIGNoYXIqIHBhdGg7CisgICAgd2hpbGUgKGVsZGJ1c19t
ZXNzYWdlX2l0ZXJfZ2V0X2FuZF9uZXh0KGFycmF5LCAnbycsICZwYXRoKSkgeworICAgICAgICBp
ZiAoIXBhdGggfHwgIXBhdGhbMF0pCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBFbGRi
dXNfT2JqZWN0KiBvYmplY3QgPSBlbGRidXNfb2JqZWN0X2dldChzdGF0aWNfY2FzdDxCYXR0ZXJ5
UHJvdmlkZXJFZmwqPihkYXRhKS0+Y29ubmVjdGlvbigpLCBCVVMsIHBhdGgpOworICAgICAgICBF
bGRidXNfUHJveHkqIHByb3h5ID0gZWxkYnVzX3Byb3h5X2dldChvYmplY3QsICJvcmcuZnJlZWRl
c2t0b3AuVVBvd2VyLkRldmljZSIpOworICAgICAgICBlbGRidXNfcHJveHlfZGF0YV9zZXQocHJv
eHksICJfcHJvdmlkZXIiLCBkYXRhKTsKKyAgICAgICAgZWxkYnVzX3Byb3h5X3Byb3BlcnR5X2dl
dChwcm94eSwgIlR5cGUiLCBkZXZpY2VUeXBlQ2FsbGJhY2ssIHByb3h5KTsKICAgICB9Cit9CiAK
LSAgICBpZiAoIWV1a2l0UHJvcGVydHlOYW1lcy0+cHJvcGVydGllcykKK3ZvaWQgQmF0dGVyeVBy
b3ZpZGVyRWZsOjpzdGFydFVwZGF0aW5nKCkKK3sKKyAgICBpZiAobV9jb25uZWN0aW9uKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBFX1VraXRfUHJvcGVydHkqIHByb3BlcnR5ID0gc3RhdGljX2Nh
c3Q8RV9Va2l0X1Byb3BlcnR5Kj4oZWluYV9oYXNoX2ZpbmQoZXVraXRQcm9wZXJ0eU5hbWVzLT5w
cm9wZXJ0aWVzLCAiVHlwZSIpKTsKLSAgICBpZiAoIXByb3BlcnR5IHx8IHByb3BlcnR5LT52YWwu
dSAhPSBFX1VQT1dFUl9TT1VSQ0VfQkFUVEVSWSkKKyAgICBpZiAoIWVsZGJ1c19pbml0KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIEJhdHRlcnlQcm92aWRlckVmbCogY2xpZW50ID0gc3RhdGlj
X2Nhc3Q8QmF0dGVyeVByb3ZpZGVyRWZsKj4oZGF0YSk7Ci0gICAgQmF0dGVyeVN0YXR1cyogY2xp
ZW50QmF0dGVyeVN0YXR1cyA9IGNsaWVudC0+YmF0dGVyeVN0YXR1cygpOwotICAgIGJvb2wgY2hh
cmdpbmcgPSBmYWxzZTsKLSAgICBib29sIGNoYXJnaW5nQ2hhbmdlZCA9IGZhbHNlOwotICAgIHN0
YXRpYyB1bnNpZ25lZCBjaGFyZ2luZ1N0YXRlID0gMDsKKyAgICBtX2Nvbm5lY3Rpb24gPSBlbGRi
dXNfY29ubmVjdGlvbl9nZXQoRUxEQlVTX0NPTk5FQ1RJT05fVFlQRV9TWVNURU0pOworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOKG1fY29ubmVjdGlvbik7CiAKLSAgICBwcm9wZXJ0eSA9
IHN0YXRpY19jYXN0PEVfVWtpdF9Qcm9wZXJ0eSo+KGVpbmFfaGFzaF9maW5kKGV1a2l0UHJvcGVy
dHlOYW1lcy0+cHJvcGVydGllcywgIlN0YXRlIikpOwotICAgIGlmICghcHJvcGVydHkpCisgICAg
bV9vYmplY3QgPSBlbGRidXNfb2JqZWN0X2dldChtX2Nvbm5lY3Rpb24sIEJVUywgUEFUSCk7Cisg
ICAgaWYgKCFtX29iamVjdCkgeworICAgICAgICBlbGRidXNfY29ubmVjdGlvbl91bnJlZihtX2Nv
bm5lY3Rpb24pOworICAgICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgICAgICByZXR1
cm47Ci0gICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGNoYXJnaW5nU3RhdGUgIT0gcHJv
cGVydHktPnZhbC51KSB7Ci0gICAgICAgIGNoYXJnaW5nQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAg
IGNoYXJnaW5nU3RhdGUgPSBwcm9wZXJ0eS0+dmFsLnU7Ci0gICAgICAgIChjaGFyZ2luZ1N0YXRl
ID09IEVfVVBPV0VSX1NUQVRFX0ZVTEwgfHwgY2hhcmdpbmdTdGF0ZSA9PSBFX1VQT1dFUl9TVEFU
RV9DSEFSR0lORykgPyBjaGFyZ2luZyA9IHRydWUgOiBjaGFyZ2luZyA9IGZhbHNlOwotICAgIH0g
ZWxzZQotICAgICAgICBjaGFyZ2luZyA9IGNsaWVudEJhdHRlcnlTdGF0dXMtPmNoYXJnaW5nKCk7
Ci0KLSAgICBib29sIGNoYXJnaW5nVGltZUNoYW5nZWQgPSBmYWxzZTsKLSAgICBib29sIGRpc2No
YXJnaW5nVGltZUNoYW5nZWQgPSBmYWxzZTsKLSAgICBkb3VibGUgY2hhcmdpbmdUaW1lID0gc3Rk
OjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOwotICAgIGRvdWJsZSBkaXNjaGFy
Z2luZ1RpbWUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7Ci0KLSAg
ICBpZiAoY2hhcmdpbmcpIHsKLSAgICAgICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGNs
aWVudEJhdHRlcnlTdGF0dXMtPmRpc2NoYXJnaW5nVGltZSgpICE9IHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6aW5maW5pdHkoKSkKLSAgICAgICAgICAgIGRpc2NoYXJnaW5nVGltZUNoYW5n
ZWQgPSB0cnVlOwotICAgICAgICBkaXNjaGFyZ2luZ1RpbWUgPSBzdGQ6Om51bWVyaWNfbGltaXRz
PGRvdWJsZT46OmluZmluaXR5KCk7Ci0gICAgICAgIHByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8RV9V
a2l0X1Byb3BlcnR5Kj4oZWluYV9oYXNoX2ZpbmQoZXVraXRQcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0
aWVzLCAiVGltZVRvRnVsbCIpKTsKLSAgICAgICAgaWYgKCFwcm9wZXJ0eSkKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGNsaWVudEJhdHRl
cnlTdGF0dXMtPmNoYXJnaW5nVGltZSgpICE9IHByb3BlcnR5LT52YWwueCkKLSAgICAgICAgICAg
IGNoYXJnaW5nVGltZUNoYW5nZWQgPSB0cnVlOwotICAgICAgICBjaGFyZ2luZ1RpbWUgPSBwcm9w
ZXJ0eS0+dmFsLng7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3Rh
dHVzIHx8IGNsaWVudEJhdHRlcnlTdGF0dXMtPmNoYXJnaW5nVGltZSgpICE9IHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSkKLSAgICAgICAgICAgIGNoYXJnaW5nVGltZUNo
YW5nZWQgPSB0cnVlOwotICAgICAgICBjaGFyZ2luZ1RpbWUgPSBzdGQ6Om51bWVyaWNfbGltaXRz
PGRvdWJsZT46OmluZmluaXR5KCk7Ci0gICAgICAgIHByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8RV9V
a2l0X1Byb3BlcnR5Kj4oZWluYV9oYXNoX2ZpbmQoZXVraXRQcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0
aWVzLCAiVGltZVRvRW1wdHkiKSk7Ci0gICAgICAgIGlmICghcHJvcGVydHkpCi0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIGlmICghY2xpZW50QmF0dGVyeVN0YXR1cyB8fCBjbGllbnRCYXR0
ZXJ5U3RhdHVzLT5kaXNjaGFyZ2luZ1RpbWUoKSAhPSBwcm9wZXJ0eS0+dmFsLngpCi0gICAgICAg
ICAgICBkaXNjaGFyZ2luZ1RpbWVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgZGlzY2hhcmdpbmdU
aW1lID0gcHJvcGVydHktPnZhbC54OwogICAgIH0KIAotICAgIGJvb2wgbGV2ZWxDaGFuZ2VkID0g
ZmFsc2U7Ci0gICAgcHJvcGVydHkgPSBzdGF0aWNfY2FzdDxFX1VraXRfUHJvcGVydHkqPihlaW5h
X2hhc2hfZmluZChldWtpdFByb3BlcnR5TmFtZXMtPnByb3BlcnRpZXMsICJQZXJjZW50YWdlIikp
OwotICAgIGlmICghcHJvcGVydHkpCisgICAgbV9wcm94eSA9IGVsZGJ1c19wcm94eV9nZXQobV9v
YmplY3QsIElGQUNFKTsKKyAgICBpZiAoIW1fcHJveHkpIHsKKyAgICAgICAgZWxkYnVzX29iamVj
dF91bnJlZihtX29iamVjdCk7CisgICAgICAgIG1fb2JqZWN0ID0gbnVsbHB0cjsKKyAgICAgICAg
ZWxkYnVzX2Nvbm5lY3Rpb25fdW5yZWYobV9jb25uZWN0aW9uKTsKKyAgICAgICAgbV9jb25uZWN0
aW9uID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIGRvdWJsZSBsZXZl
bCA9IHByb3BlcnR5LT52YWwuZCAvIDEwMDsKLSAgICBpZiAoIWNsaWVudEJhdHRlcnlTdGF0dXMg
fHwgY2xpZW50QmF0dGVyeVN0YXR1cy0+bGV2ZWwoKSAhPSBsZXZlbCkKLSAgICAgICAgbGV2ZWxD
aGFuZ2VkID0gdHJ1ZTsKLQotICAgIFdURjo6UmVmUHRyPEJhdHRlcnlTdGF0dXM+IGJhdHRlcnlT
dGF0dXMgPSBCYXR0ZXJ5U3RhdHVzOjpjcmVhdGUoY2hhcmdpbmcsIGNoYXJnaW5nVGltZSwgZGlz
Y2hhcmdpbmdUaW1lLCBsZXZlbCk7Ci0gICAgaWYgKGNoYXJnaW5nQ2hhbmdlZCkKLSAgICAgICAg
Y2xpZW50LT5zZXRCYXR0ZXJ5U3RhdHVzKGV2ZW50TmFtZXMoKS5jaGFyZ2luZ2NoYW5nZUV2ZW50
LCBiYXR0ZXJ5U3RhdHVzKTsKLSAgICBpZiAoY2hhcmdpbmdUaW1lQ2hhbmdlZCkKLSAgICAgICAg
Y2xpZW50LT5zZXRCYXR0ZXJ5U3RhdHVzKGV2ZW50TmFtZXMoKS5jaGFyZ2luZ3RpbWVjaGFuZ2VF
dmVudCwgYmF0dGVyeVN0YXR1cyk7Ci0gICAgaWYgKGRpc2NoYXJnaW5nVGltZUNoYW5nZWQpCi0g
ICAgICAgIGNsaWVudC0+c2V0QmF0dGVyeVN0YXR1cyhldmVudE5hbWVzKCkuZGlzY2hhcmdpbmd0
aW1lY2hhbmdlRXZlbnQsIGJhdHRlcnlTdGF0dXMpOwotICAgIGlmIChsZXZlbENoYW5nZWQpCi0g
ICAgICAgIGNsaWVudC0+c2V0QmF0dGVyeVN0YXR1cyhldmVudE5hbWVzKCkubGV2ZWxjaGFuZ2VF
dmVudCwgYmF0dGVyeVN0YXR1cyk7CisgICAgZWxkYnVzX3Byb3h5X2NhbGwobV9wcm94eSwgIkVu
dW1lcmF0ZURldmljZXMiLCBlbnVtZXJhdGVEZXZpY2VzLCB0aGlzLCAtMSwgIiIpOwogfQogCit2
b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6c2V0QmF0dGVyeVN0YXR1cyhjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxCYXR0ZXJ5U3RhdHVzPiBiYXR0ZXJ5U3RhdHVzKQor
eworICAgIG1fYmF0dGVyeVN0YXR1cyA9IGJhdHRlcnlTdGF0dXM7CisgICAgbV9jbGllbnQtPmRp
ZENoYW5nZUJhdHRlcnlTdGF0dXMoZXZlbnRUeXBlLCBtX2JhdHRlcnlTdGF0dXMpOwogfQogCit9
CiAjZW5kaWYgLy8gQkFUVEVSWV9TVEFUVVMKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5oCmluZGV4IDQzMTM4ZWEwNmZiYzY5NmNkODk0MDkz
NTkxZmE5YWJlZThhZjNiODQuLjZiNTQ3NDNlYTIxNmZlMjFkMjVjZmM0NmRhZDE2NjgxMDdhNWRh
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9CYXR0ZXJ5UHJvdmlk
ZXJFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVy
RWZsLmgKQEAgLTI0LDE5ICsyNCwxNyBAQAogCiAjaW5jbHVkZSAiQmF0dGVyeUNsaWVudC5oIgog
I2luY2x1ZGUgIkJhdHRlcnlTdGF0dXMuaCIKLSNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUg
PEVsZGJ1cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCi10eXBlZGVm
IHN0cnVjdCBEQnVzRXJyb3IgREJ1c0Vycm9yOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEJhdHRlcnlQcm92aWRlckVmbENsaWVudDsKIAogY2xhc3MgQmF0dGVyeVByb3ZpZGVyRWZs
IHsKIHB1YmxpYzoKLSAgICBCYXR0ZXJ5UHJvdmlkZXJFZmwoQmF0dGVyeVByb3ZpZGVyRWZsQ2xp
ZW50Kik7Ci0gICAgfkJhdHRlcnlQcm92aWRlckVmbCgpIHsgfQorICAgIGV4cGxpY2l0IEJhdHRl
cnlQcm92aWRlckVmbChCYXR0ZXJ5UHJvdmlkZXJFZmxDbGllbnQqKTsKKyAgICB+QmF0dGVyeVBy
b3ZpZGVyRWZsKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZp
cnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKQEAgLTQ1LDE4ICs0MywyMiBAQCBwdWJsaWM6CiAg
ICAgQmF0dGVyeVN0YXR1cyogYmF0dGVyeVN0YXR1cygpIGNvbnN0OwogCiBwcml2YXRlOgotICAg
IHZvaWQgdGltZXJGaXJlZChUaW1lciopOwotICAgIHN0YXRpYyB2b2lkIGdldEJhdHRlcnlTdGF0
dXModm9pZCogZGF0YSwgdm9pZCogcmVwbHlEYXRhLCBEQnVzRXJyb3IqKTsKLSAgICBzdGF0aWMg
dm9pZCBzZXRCYXR0ZXJ5Q2xpZW50KHZvaWQqIGRhdGEsIHZvaWQqIHJlcGx5RGF0YSwgREJ1c0Vy
cm9yKik7CisgICAgc3RhdGljIHZvaWQgZW51bWVyYXRlRGV2aWNlcyh2b2lkKiBkYXRhLCBjb25z
dCBFbGRidXNfTWVzc2FnZSosIEVsZGJ1c19QZW5kaW5nKik7CisgICAgc3RhdGljIHZvaWQgZGV2
aWNlVHlwZUNhbGxiYWNrKHZvaWQqIGRhdGEsIGNvbnN0IEVsZGJ1c19NZXNzYWdlKiwgRWxkYnVz
X1BlbmRpbmcqKTsKKworICAgIEVsZGJ1c19Db25uZWN0aW9uKiBjb25uZWN0aW9uKCkgeyByZXR1
cm4gbV9jb25uZWN0aW9uOyB9CisgICAgdm9pZCBzZXRTaWduYWxIYW5kbGVyKEVsZGJ1c19TaWdu
YWxfSGFuZGxlciogc2lnbmFsSGFuZGxlcikgeyBtX3NpZ25hbEhhbmRsZXIgPSBzaWduYWxIYW5k
bGVyOyB9CiAKICAgICBCYXR0ZXJ5UHJvdmlkZXJFZmxDbGllbnQqIG1fY2xpZW50OwotICAgIFRp
bWVyIG1fdGltZXI7CiAgICAgUmVmUHRyPEJhdHRlcnlTdGF0dXM+IG1fYmF0dGVyeVN0YXR1czsK
LSAgICBjb25zdCBkb3VibGUgbV9iYXR0ZXJ5U3RhdHVzUmVmcmVzaEludGVydmFsOworCisgICAg
RWxkYnVzX0Nvbm5lY3Rpb24qIG1fY29ubmVjdGlvbjsKKyAgICBFbGRidXNfT2JqZWN0KiBtX29i
amVjdDsKKyAgICBFbGRidXNfUHJveHkqIG1fcHJveHk7CisgICAgRWxkYnVzX1NpZ25hbF9IYW5k
bGVyKiBtX3NpZ25hbEhhbmRsZXI7CiB9OwogCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQkFUVEVS
WV9TVEFUVVMpCiAjZW5kaWYgLy8gQmF0dGVyeVByb3ZpZGVyRWZsX2gKLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX21haW4uY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX21haW4uY3BwCmluZGV4IDI3YmZmYzk5NWU4MzA4
YzhhYzFjY2M2MWVkZTkzMWY2NGU3Yzg4MGEuLjBhOWYxZjViNTAwOTk2YzBkY2U5YmExMjA2ZmYy
MmIxOWQ2MzIwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19tYWluLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
bWFpbi5jcHAKQEAgLTM2LDYgKzM2LDEwIEBACiAjaW5jbHVkZSA8RWNvcmVfWC5oPgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisjaW5jbHVkZSA8RWxkYnVzLmg+CisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGVudW0gY2xhc3MgRUZMTW9kdWxlSW5pdEZhaWx1
cmUgewpAQCAtNDYsNyArNTAsMTAgQEAgZW51bSBjbGFzcyBFRkxNb2R1bGVJbml0RmFpbHVyZSB7
CiAgICAgRWNvcmVJbWYsCiAgICAgRWZyZWV0LAogICAgIEVjb3JlWCwKLSAgICBFZGplCisgICAg
RWRqZSwKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisgICAgRWxkYnVzCisjZW5kaWYKIH07
CiAKIEV3a01haW46OkV3a01haW4oKQpAQCAtMTI4LDYgKzEzNSwxMyBAQCBpbnQgRXdrTWFpbjo6
aW5pdGlhbGl6ZSgpCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAorI2lmIEVOQUJMRShCQVRU
RVJZX1NUQVRVUykKKyAgICBpZiAoIWVsZGJ1c19pbml0KCkpIHsKKyAgICAgICAgQ1JJVElDQUwo
IkNvdWxkIG5vdCBpbml0IGVsZGJ1cy4iKTsKKyAgICAgICAgc2h1dGRvd25Jbml0aWFsaXplZEVG
TE1vZHVsZXMoRUZMTW9kdWxlSW5pdEZhaWx1cmU6OkVsZGJ1cyk7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKyNlbmRpZgogICAgIGlmICghZWNvcmVfbWFpbl9sb29wX2dsaWJfaW50ZWdyYXRl
KCkpIHsKICAgICAgICAgV0FSTigiRWNvcmUgd2FzIG5vdCBjb21waWxlZCB3aXRoIEdMaWIgc3Vw
cG9ydCwgc29tZSBwbHVnaW5zIHdpbGwgbm90ICIKICAgICAgICAgICAgICJ3b3JrIChpZTogQWRv
YmUgRmxhc2gpIik7CkBAIC0xNDEsNiArMTU1LDkgQEAgaW50IEV3a01haW46OmZpbmFsaXplKCkK
ICAgICBpZiAoLS1tX2luaXRDb3VudCkKICAgICAgICAgcmV0dXJuIG1faW5pdENvdW50OwogCisj
aWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorICAgIGVsZGJ1c19zaHV0ZG93bigpOworI2VuZGlm
CiAgICAgZWRqZV9zaHV0ZG93bigpOwogI2lmZGVmIEhBVkVfRUNPUkVfWAogICAgIGVjb3JlX3hf
c2h1dGRvd24oKTsKQEAgLTE2MCw2ICsxNzcsMTAgQEAgaW50IEV3a01haW46OmZpbmFsaXplKCkK
IHZvaWQgRXdrTWFpbjo6c2h1dGRvd25Jbml0aWFsaXplZEVGTE1vZHVsZXMoRUZMTW9kdWxlSW5p
dEZhaWx1cmUgbW9kdWxlKQogewogICAgIHN3aXRjaCAobW9kdWxlKSB7CisjaWYgRU5BQkxFKEJB
VFRFUllfU1RBVFVTKQorICAgIGNhc2UgRUZMTW9kdWxlSW5pdEZhaWx1cmU6OkVsZGJ1czoKKyAg
ICAgICAgZWxkYnVzX3NodXRkb3duKCk7CisjZW5kaWYKICAgICBjYXNlIEVGTE1vZHVsZUluaXRG
YWlsdXJlOjpFZGplOgogI2lmZGVmIEhBVkVfRUNPUkVfWAogICAgICAgICBlY29yZV94X3NodXRk
b3duKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IGI4N2EwMTIzY2VkZTgzZDExZDlhZDNhMDU5
ZmI1YjY4OWRhZTg5ZjUuLjViZGIwMWEzZGYzMTNjNzI4MzAxYjYwM2I2OTI5ZDA4MzlkNzgxZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9j
bWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC0xOTUsOSArMTk1LDggQEAgaWYgKFdURl9PU19VTklY
KQogICAgIGFkZF9kZWZpbml0aW9ucygtRFhQX1VOSVgpCiBlbmRpZiAoV1RGX09TX1VOSVgpCiAK
LWlmIChFTkFCTEVfQkFUVEVSWV9TVEFUVVMgT1IgKEVGTF9SRVFVSVJFRF9WRVJTSU9OIFZFUlNJ
T05fTEVTUyAxLjgpKQotICAgIGZpbmRfcGFja2FnZShEQnVzIFJFUVVJUkVEKQotICAgIGZpbmRf
cGFja2FnZShFX0RCdXMgMS43IENPTVBPTkVOVFMgRVVLaXQpCitpZiAoRU5BQkxFX0JBVFRFUllf
U1RBVFVTKQorICAgIGZpbmRfcGFja2FnZShFbGRidXMgJHtFRkxfUkVRVUlSRURfVkVSU0lPTn0g
JHtFRkxfQ09ORklHX01PREV9KQogZW5kaWYgKCkKIAogaWYgKEVOQUJMRV9WSURFTyBPUiBFTkFC
TEVfV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDhk
NDEzYTIxZjEyZTE1NDMzYTA4ZDEyYTFiYTVhM2E5MjQzNTgyNTcuLmYxMGJlZDFiZTZiYWJmM2E5
ZTlhNzNiMTE1MDEzYWJlZDEwOTM0YjIgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0xMS0xOCAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNo
b2lAbmF2ZXJjb3JwLmNvbT4KKworICAgICAgICBbRUZMXSBSZW1vdmUgRV9EYnVzIGRlcGVuZGVu
Y3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjM1
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVfRGJ1
cyBpcyB0aGUgc2ltcGxlIHdyYXBwZXIgb2YgRGJ1cyBidXQgaXQgaGFzIG5vdCBiZWVuIG1haW50
YWluZWQgc2luY2UgRUZMIDEuOC4KKyAgICAgICAgSW5zdGVhZCwgRUZMIGludHJvZHVjZWQgRWxk
YnVzLCB3aGljaCBpcyBhbG1vc3Qgc2ltaWxhciB3aXRoIEVfRGJ1cyBidXQgcHJvdmlkZXMgbW9y
ZSBkYnVzIGxpa2UgaW50ZXJmYWNlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgRV9E
YnVzIGltcGxlbWVudGF0aW9uIHRvIEVsZGJ1cy4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlOgorCiAyMDE0LTExLTA3ICBFdmEgQmFsYXpzZmFsdmkgIDxldmFiLnUt
c3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gUmVxdWlyZSBhdCBs
ZWFzdCBFRkwgMS45IGlmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSBhZnRlciByMTc1MDk4Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241818</attachid>
            <date>2014-11-18 15:04:44 -0800</date>
            <delta_ts>2014-11-27 22:10:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136355-20141119080450.patch</filename>
            <type>text/plain</type>
            <size>25244</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY2ZTM1NzA5N2VjYTlm
NzYxZGI3MGJkYTQ2MWY3ZTZmMTc5YjYwMS4uNzZmYTQyYTQzNGViMzUzYzJlOTU0YzRlNTNlYmMw
ZGY5MmEzNzk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTExLTE4ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBuYXZlcmNvcnAuY29tPgorCisgICAgICAgIFtFRkxdIFJlbW92
ZSBFX0RidXMgZGVwZW5kZW5jeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM2MzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRV9EYnVzIGlzIHRoZSBzaW1wbGUgd3JhcHBlciBvZiBEYnVzIGJ1dCBpdCBo
YXMgbm90IGJlZW4gbWFpbnRhaW5lZCBzaW5jZSBFRkwgMS44LgorICAgICAgICBJbnN0ZWFkLCBF
RkwgaW50cm9kdWNlZCBFbGRidXMsIHdoaWNoIGlzIGFsbW9zdCBzaW1pbGFyIHdpdGggRV9EYnVz
IGJ1dCBwcm92aWRlcyBtb3JlIGRidXMgbGlrZSBpbnRlcmZhY2UuCisgICAgICAgIFRoaXMgcGF0
Y2ggcmVwbGFjZXMgRV9EYnVzIGltcGxlbWVudGF0aW9uIHRvIEVsZGJ1cy4KKworICAgICAgICAq
IFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9CYXR0ZXJ5UHJvdmlk
ZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpCYXR0ZXJ5
UHJvdmlkZXJFZmwpOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjp+QmF0
dGVyeVByb3ZpZGVyRWZsKToKKyAgICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJhdHRlcnlQcm9wZXJ0aWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmJhdHRlcnlQcm9wZXJ0aWVzQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6OmRldmljZVR5cGVDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6OmVudW1lcmF0ZURldmljZXMpOgorICAgICAgICAo
V2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6c2V0QmF0dGVyeVN0YXR1cyk6CisgICAgICAgIChX
ZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6OnRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpnZXRCYXR0ZXJ5U3RhdHVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6c2V0QmF0dGVyeUNsaWVu
dCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5o
OgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpjb25uZWN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6c2V0U2lnbmFsSGFuZGxlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6On5CYXR0ZXJ5UHJvdmlkZXJFZmwp
OiBEZWxldGVkLgorCiAyMDE0LTExLTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGEgbW9yZSBjb3JyZWN0IHdheSB0byBjb21wYXJlIGZsb2F0aW5nIHBv
aW50IG51bWJlcnMgYW5kIHVzZSBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDVhM2ZjZmQ1ZDkwNjM4YTVhZTQ1
MzE2ZTI4MzVjMzRjYzJkMjMxM2YuLmQ3ODdmNmUyMjE5NTI2Yzc2YjIwYmI0ZjgzNWU5NWY2NGVh
MDQ5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0xMS0xOCAgUnl1YW4gQ2hv
aSAgPHJ5dWFuLmNob2lAbmF2ZXJjb3JwLmNvbT4KKworICAgICAgICBbRUZMXSBSZW1vdmUgRV9E
YnVzIGRlcGVuZGVuY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNjM1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX21haW4uY3BwOiBBZGRlZCBpbml0L3NodXRk
b3duIGZvciBlbGRidXMuCisgICAgICAgIChXZWJLaXQ6OkV3a01haW46OmluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViS2l0OjpFd2tNYWluOjpmaW5hbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OkV3
a01haW46OnNodXRkb3duSW5pdGlhbGl6ZWRFRkxNb2R1bGVzKToKKwogMjAxNC0xMS0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIG1vcmUgY29ycmVj
dCB3YXkgdG8gY29tcGFyZSBmbG9hdGluZyBwb2ludCBudW1iZXJzIGFuZCB1c2UgaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1FZmwuY21ha2UKaW5kZXggODg4YzU0NWZjYWZiN2VjMWM0ZjRjNDc0ZTkxOGUxMmRk
Mjg4MmM5Zi4uYzhkMmY1NTFiZjg4Y2E1MjcxZmU5NmVkOGIyZmViYWMyMjdlNzZlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTI1OCwxNSArMjU4LDYgQEAgaWYgKFdURl9VU0VfR0VP
Q0xVRTIpCiAgICAgKQogZW5kaWYgKCkKIAotaWYgKEVOQUJMRV9CQVRURVJZX1NUQVRVUyBPUiAo
RUZMX1JFUVVJUkVEX1ZFUlNJT04gVkVSU0lPTl9MRVNTIDEuOCkpCi0gICAgbGlzdChBUFBFTkQg
V2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTICR7REJVU19JTkNMVURFX0RJUlN9KQotICAgIGxp
c3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAke0VfREJVU19JTkNMVURFX0RJ
UlN9KQotICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAke0VfREJV
U19FVUtJVF9JTkNMVURFX0RJUlN9KQotICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVT
ICR7REJVU19MSUJSQVJJRVN9KQotICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7
RV9EQlVTX0xJQlJBUklFU30pCi0gICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgJHtF
X0RCVVNfRVVLSVRfTElCUkFSSUVTfSkKLWVuZGlmICgpCi0KIGlmIChFTkFCTEVfR0FNRVBBRF9E
RVBSRUNBVEVEKQogICAgICMgRklYTUU6IEdBTUVQQURfREVQUkVDQVRFRCBpcyBsZWdhY3kgaW1w
bGVtZW50YXRpb24uIE5lZWQgdG8gYmUgcmVtb3ZlZC4KICAgICBsaXN0KFJFTU9WRV9JVEVNIFdl
YkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwpAQCAtMjk0LDYgKzI4NSw3IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfTElCUkFSSUVTCiAgICAgJHtFREpFX0xJQlJBUklFU30KICAgICAke0VFWkVfTElC
UkFSSUVTfQogICAgICR7RUlOQV9MSUJSQVJJRVN9CisgICAgJHtFTERCVVNfTElCUkFSSUVTfQog
ICAgICR7RU9fTElCUkFSSUVTfQogICAgICR7RVZBU19MSUJSQVJJRVN9CiAgICAgJHtGT05UQ09O
RklHX0xJQlJBUklFU30KQEAgLTMyNCw2ICszMTYsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lO
Q0xVREVfRElSRUNUT1JJRVMKICAgICAke0VESkVfSU5DTFVERV9ESVJTfQogICAgICR7RUVaRV9J
TkNMVURFX0RJUlN9CiAgICAgJHtFSU5BX0lOQ0xVREVfRElSU30KKyAgICAke0VMREJVU19JTkNM
VURFX0RJUlN9CiAgICAgJHtFVkFTX0lOQ0xVREVfRElSU30KICAgICAke0ZSRUVUWVBFMl9JTkNM
VURFX0RJUlN9CiAgICAgJHtHRU9DTFVFX0lOQ0xVREVfRElSU30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9CYXR0ZXJ5UHJvdmlkZXJFZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5jcHAKaW5kZXggZGI1NWQzODNl
OGY0MDQwOGE4ZTkzOWNlMTgwMzc5YjI0YTRiMzMyOS4uYzBmNGFjNjk0ZmU2ODk0YTI2ZWRjOGQ0
Y2JhNTk4YTE1NDI0YTEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0JhdHRlcnlQcm92aWRlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0JhdHRlcnlQcm92aWRlckVmbC5jcHAKQEAgLTIxLDE4ICsyMSwyNiBAQAogI2luY2x1ZGUgIkJh
dHRlcnlQcm92aWRlckVmbC5oIgogCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQotCiAjaW5j
bHVkZSAiQmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgotI2luY2x1ZGUgPEVfVWtpdC5oPgogI2luY2x1ZGUgPGxpbWl0cz4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjb25zdCBjaGFyIEJVU1tdID0gIm9yZy5mcmVlZGVza3RvcC5VUG93ZXIiOwor
Y29uc3QgY2hhciBQQVRIW10gPSAiL29yZy9mcmVlZGVza3RvcC9VUG93ZXIiOworY29uc3QgY2hh
ciBJRkFDRVtdID0gIm9yZy5mcmVlZGVza3RvcC5VUG93ZXIiOworCiBCYXR0ZXJ5UHJvdmlkZXJF
Zmw6OkJhdHRlcnlQcm92aWRlckVmbChCYXR0ZXJ5UHJvdmlkZXJFZmxDbGllbnQqIGNsaWVudCkK
ICAgICA6IG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fdGltZXIodGhpcywgJkJhdHRlcnlQcm92
aWRlckVmbDo6dGltZXJGaXJlZCkKLSAgICAsIG1fYmF0dGVyeVN0YXR1c1JlZnJlc2hJbnRlcnZh
bCgxLjApCisgICAgLCBtX2Nvbm5lY3Rpb24obnVsbHB0cikKKyAgICAsIG1fb2JqZWN0KG51bGxw
dHIpCisgICAgLCBtX3Byb3h5KG51bGxwdHIpCisgICAgLCBtX3NpZ25hbEhhbmRsZXIobnVsbHB0
cikKK3sKK30KKworQmF0dGVyeVByb3ZpZGVyRWZsOjp+QmF0dGVyeVByb3ZpZGVyRWZsKCkKIHsK
IH0KIApAQCAtNDEsMTQxICs0OSwxNzcgQEAgQmF0dGVyeVN0YXR1cyogQmF0dGVyeVByb3ZpZGVy
RWZsOjpiYXR0ZXJ5U3RhdHVzKCkgY29uc3QKICAgICByZXR1cm4gbV9iYXR0ZXJ5U3RhdHVzLmdl
dCgpOwogfQogCi12b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6c3RhcnRVcGRhdGluZygpCit2b2lk
IEJhdHRlcnlQcm92aWRlckVmbDo6c3RvcFVwZGF0aW5nKCkKIHsKLSAgICBpZiAobV90aW1lci5p
c0FjdGl2ZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWVfZGJ1c19pbml0KCkpCi0g
ICAgICAgIHJldHVybjsKKyAgICBpZiAobV9zaWduYWxIYW5kbGVyKSB7CisgICAgICAgIGVsZGJ1
c19zaWduYWxfaGFuZGxlcl9kZWwobV9zaWduYWxIYW5kbGVyKTsKKyAgICAgICAgbV9zaWduYWxI
YW5kbGVyID0gbnVsbHB0cjsKKyAgICB9CiAKLSAgICBpZiAoIWVfdWtpdF9pbml0KCkpIHsKLSAg
ICAgICAgZV9kYnVzX3NodXRkb3duKCk7Ci0gICAgICAgIHJldHVybjsKKyAgICBpZiAobV9wcm94
eSkgeworICAgICAgICBlbGRidXNfcHJveHlfdW5yZWYobV9wcm94eSk7CisgICAgICAgIG1fcHJv
eHkgPSBudWxscHRyOworICAgIH0KKyAgICBpZiAobV9vYmplY3QpIHsKKyAgICAgICAgZWxkYnVz
X29iamVjdF91bnJlZihtX29iamVjdCk7CisgICAgICAgIG1fb2JqZWN0ID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBtX3RpbWVyLnN0YXJ0UmVwZWF0aW5nKG1fYmF0dGVyeVN0YXR1c1JlZnJlc2hJ
bnRlcnZhbCk7CisgICAgaWYgKG1fY29ubmVjdGlvbikgeworICAgICAgICBlbGRidXNfY29ubmVj
dGlvbl91bnJlZihtX2Nvbm5lY3Rpb24pOworICAgICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRy
OworICAgIH0KIH0KIAotdm9pZCBCYXR0ZXJ5UHJvdmlkZXJFZmw6OnN0b3BVcGRhdGluZygpCitz
dGF0aWMgdm9pZCBiYXR0ZXJ5UHJvcGVydGllcyh2b2lkKiBkYXRhLCBjb25zdCBFbGRidXNfTWVz
c2FnZSogbWVzc2FnZSwgRWxkYnVzX1BlbmRpbmcqKQogewotICAgIGlmICghbV90aW1lci5pc0Fj
dGl2ZSgpKQorICAgIGlmIChlbGRidXNfbWVzc2FnZV9lcnJvcl9nZXQobWVzc2FnZSwgbnVsbHB0
ciwgbnVsbHB0cikpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fdGltZXIuc3RvcCgpOwotICAg
IGVfdWtpdF9zaHV0ZG93bigpOwotICAgIGVfZGJ1c19zaHV0ZG93bigpOwotfQorICAgIEVsZGJ1
c19NZXNzYWdlX0l0ZXIqIGFycmF5OworICAgIGlmICghZWxkYnVzX21lc3NhZ2VfYXJndW1lbnRz
X2dldChtZXNzYWdlLCAiYXtzdn0iLCAmYXJyYXkpKQorICAgICAgICByZXR1cm47CiAKLXZvaWQg
QmF0dGVyeVByb3ZpZGVyRWZsOjpzZXRCYXR0ZXJ5U3RhdHVzKGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEJhdHRlcnlTdGF0dXM+IGJhdHRlcnlTdGF0dXMpCi17Ci0g
ICAgbV9iYXR0ZXJ5U3RhdHVzID0gYmF0dGVyeVN0YXR1czsKLSAgICBtX2NsaWVudC0+ZGlkQ2hh
bmdlQmF0dGVyeVN0YXR1cyhldmVudFR5cGUsIG1fYmF0dGVyeVN0YXR1cyk7CisgICAgQmF0dGVy
eVByb3ZpZGVyRWZsKiBjbGllbnQgPSBzdGF0aWNfY2FzdDxCYXR0ZXJ5UHJvdmlkZXJFZmwqPihk
YXRhKTsKKyAgICBCYXR0ZXJ5U3RhdHVzKiBjbGllbnRCYXR0ZXJ5U3RhdHVzID0gY2xpZW50LT5i
YXR0ZXJ5U3RhdHVzKCk7CisgICAgYm9vbCBjaGFyZ2luZyA9IGZhbHNlOworICAgIGJvb2wgY2hh
cmdpbmdDaGFuZ2VkID0gZmFsc2U7CisKKyAgICBib29sIGNoYXJnaW5nVGltZUNoYW5nZWQgPSBm
YWxzZTsKKyAgICBpbnQ2NF90IGNoYXJnaW5nVGltZTsKKworICAgIGJvb2wgZGlzY2hhcmdpbmdU
aW1lQ2hhbmdlZCA9IGZhbHNlOworICAgIGludDY0X3QgZGlzY2hhcmdpbmdUaW1lOworCisgICAg
Ym9vbCBsZXZlbENoYW5nZWQgPSBmYWxzZTsKKyAgICBkb3VibGUgbGV2ZWw7CisKKyAgICBFbGRi
dXNfTWVzc2FnZV9JdGVyKiBkaWN0OworICAgIHdoaWxlIChlbGRidXNfbWVzc2FnZV9pdGVyX2dl
dF9hbmRfbmV4dChhcnJheSwgJ2UnLCAmZGljdCkpIHsKKyAgICAgICAgY2hhcioga2V5OworICAg
ICAgICBFbGRidXNfTWVzc2FnZV9JdGVyKiB2YXJpYW50OworICAgICAgICBpZiAoIWVsZGJ1c19t
ZXNzYWdlX2l0ZXJfYXJndW1lbnRzX2dldChkaWN0LCAic3YiLCAma2V5LCAmdmFyaWFudCkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoIXN0cmNtcChrZXksICJTdGF0ZSIp
KSB7CisgICAgICAgICAgICB1bnNpZ25lZCBzdGF0ZTsKKyAgICAgICAgICAgIGVsZGJ1c19tZXNz
YWdlX2l0ZXJfYXJndW1lbnRzX2dldCh2YXJpYW50LCAidSIsICZzdGF0ZSk7CisgICAgICAgICAg
ICBpZiAoc3RhdGUgPT0gMSkgLy8gQ2hhcmdpbmcKKyAgICAgICAgICAgICAgICBjaGFyZ2luZyA9
IHRydWU7CisgICAgICAgICAgICBpZiAoIWNsaWVudEJhdHRlcnlTdGF0dXMgfHwgY2hhcmdpbmcg
IT0gY2xpZW50QmF0dGVyeVN0YXR1cy0+Y2hhcmdpbmcoKSkKKyAgICAgICAgICAgICAgICBjaGFy
Z2luZ0NoYW5nZWQgPSB0cnVlOworCisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJU
aW1lVG9FbXB0eSIpKSB7CisgICAgICAgICAgICBlbGRidXNfbWVzc2FnZV9pdGVyX2FyZ3VtZW50
c19nZXQodmFyaWFudCwgIngiLCAmZGlzY2hhcmdpbmdUaW1lKTsKKyAgICAgICAgICAgIGlmICgh
Y2xpZW50QmF0dGVyeVN0YXR1cyB8fCBkaXNjaGFyZ2luZ1RpbWUgIT0gY2xpZW50QmF0dGVyeVN0
YXR1cy0+ZGlzY2hhcmdpbmdUaW1lKCkpCisgICAgICAgICAgICAgICAgZGlzY2hhcmdpbmdUaW1l
Q2hhbmdlZCA9IHRydWU7CisKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgIlRpbWVU
b0Z1bGwiKSkgeworICAgICAgICAgICAgZWxkYnVzX21lc3NhZ2VfaXRlcl9hcmd1bWVudHNfZ2V0
KHZhcmlhbnQsICJ4IiwgJmNoYXJnaW5nVGltZSk7CisgICAgICAgICAgICBpZiAoIWNsaWVudEJh
dHRlcnlTdGF0dXMgfHwgY2hhcmdpbmdUaW1lICE9IGNsaWVudEJhdHRlcnlTdGF0dXMtPmNoYXJn
aW5nVGltZSgpKQorICAgICAgICAgICAgICAgIGNoYXJnaW5nVGltZUNoYW5nZWQgPSB0cnVlOwor
CisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJQZXJjZW50YWdlIikpIHsKKyAgICAg
ICAgICAgIGVsZGJ1c19tZXNzYWdlX2l0ZXJfYXJndW1lbnRzX2dldCh2YXJpYW50LCAiZCIsICZs
ZXZlbCk7CisgICAgICAgICAgICBpZiAoIWNsaWVudEJhdHRlcnlTdGF0dXMgfHwgbGV2ZWwgIT0g
Y2xpZW50QmF0dGVyeVN0YXR1cy0+bGV2ZWwoKSAqIDEwMCkKKyAgICAgICAgICAgICAgICBsZXZl
bENoYW5nZWQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgUmVmUHRyPEJhdHRlcnlT
dGF0dXM+IGJhdHRlcnlTdGF0dXMgPSBCYXR0ZXJ5U3RhdHVzOjpjcmVhdGUoY2hhcmdpbmcsIGNo
YXJnaW5nVGltZSwgZGlzY2hhcmdpbmdUaW1lLCBsZXZlbCAvIDEwMCk7CisgICAgaWYgKGNoYXJn
aW5nQ2hhbmdlZCkKKyAgICAgICAgY2xpZW50LT5zZXRCYXR0ZXJ5U3RhdHVzKGV2ZW50TmFtZXMo
KS5jaGFyZ2luZ2NoYW5nZUV2ZW50LCBiYXR0ZXJ5U3RhdHVzKTsKKyAgICBpZiAoY2hhcmdpbmdU
aW1lQ2hhbmdlZCkKKyAgICAgICAgY2xpZW50LT5zZXRCYXR0ZXJ5U3RhdHVzKGV2ZW50TmFtZXMo
KS5jaGFyZ2luZ3RpbWVjaGFuZ2VFdmVudCwgYmF0dGVyeVN0YXR1cyk7CisgICAgaWYgKGRpc2No
YXJnaW5nVGltZUNoYW5nZWQpCisgICAgICAgIGNsaWVudC0+c2V0QmF0dGVyeVN0YXR1cyhldmVu
dE5hbWVzKCkuZGlzY2hhcmdpbmd0aW1lY2hhbmdlRXZlbnQsIGJhdHRlcnlTdGF0dXMpOworICAg
IGlmIChsZXZlbENoYW5nZWQpCisgICAgICAgIGNsaWVudC0+c2V0QmF0dGVyeVN0YXR1cyhldmVu
dE5hbWVzKCkubGV2ZWxjaGFuZ2VFdmVudCwgYmF0dGVyeVN0YXR1cyk7CiB9CiAKLXZvaWQgQmF0
dGVyeVByb3ZpZGVyRWZsOjp0aW1lckZpcmVkKFRpbWVyKiB0aW1lcikKK3N0YXRpYyB2b2lkIGJh
dHRlcnlQcm9wZXJ0aWVzQ2hhbmdlZCh2b2lkKiBkYXRhLCBjb25zdCBFbGRidXNfTWVzc2FnZSop
CiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOwotICAgIEVf
REJ1c19Db25uZWN0aW9uKiBlZGJ1c0Nvbm5lY3Rpb24gPSBlX2RidXNfYnVzX2dldChEQlVTX0JV
U19TWVNURU0pOwotICAgIGlmIChlZGJ1c0Nvbm5lY3Rpb24pCi0gICAgICAgIGVfdXBvd2VyX2dl
dF9hbGxfZGV2aWNlcyhlZGJ1c0Nvbm5lY3Rpb24sIGdldEJhdHRlcnlTdGF0dXMsIHN0YXRpY19j
YXN0PHZvaWQqPih0aGlzKSk7CisgICAgRWxkYnVzX1Byb3h5KiBwcm94eSA9IHN0YXRpY19jYXN0
PEVsZGJ1c19Qcm94eSo+KGRhdGEpOworICAgIEJhdHRlcnlQcm92aWRlckVmbCogcHJvdmlkZXIg
PSBzdGF0aWNfY2FzdDxCYXR0ZXJ5UHJvdmlkZXJFZmwqPihlbGRidXNfcHJveHlfZGF0YV9nZXQo
cHJveHksICJfcHJvdmlkZXIiKSk7CisgICAgZWxkYnVzX3Byb3h5X3Byb3BlcnR5X2dldF9hbGwo
cHJveHksIGJhdHRlcnlQcm9wZXJ0aWVzLCBwcm92aWRlcik7CiB9CiAKLXZvaWQgQmF0dGVyeVBy
b3ZpZGVyRWZsOjpnZXRCYXR0ZXJ5U3RhdHVzKHZvaWQqIGRhdGEsIHZvaWQqIHJlcGx5RGF0YSwg
REJ1c0Vycm9yKiBkQnVzRXJyb3IpCit2b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6ZGV2aWNlVHlw
ZUNhbGxiYWNrKHZvaWQqIGRhdGEsIGNvbnN0IEVsZGJ1c19NZXNzYWdlKiBtZXNzYWdlLCBFbGRi
dXNfUGVuZGluZyopCiB7Ci0gICAgRV9Va2l0X0dldF9BbGxfRGV2aWNlc19SZXR1cm4qIGV1a2l0
RGV2aWNlTmFtZXMgPSBzdGF0aWNfY2FzdDxFX1VraXRfR2V0X0FsbF9EZXZpY2VzX1JldHVybio+
KHJlcGx5RGF0YSk7Ci0gICAgaWYgKCFldWtpdERldmljZU5hbWVzIHx8ICFldWtpdERldmljZU5h
bWVzLT5zdHJpbmdzIHx8IGRidXNfZXJyb3JfaXNfc2V0KGRCdXNFcnJvcikpIHsKLSAgICAgICAg
IGRidXNfZXJyb3JfZnJlZShkQnVzRXJyb3IpOwotICAgICAgICAgcmV0dXJuOwotICAgIH0KKyAg
ICBpZiAoZWxkYnVzX21lc3NhZ2VfZXJyb3JfZ2V0KG1lc3NhZ2UsIG51bGxwdHIsIG51bGxwdHIp
KQorICAgICAgICByZXR1cm47CisKKyAgICBFbGRidXNfTWVzc2FnZV9JdGVyKiB2YXJpYW50Owor
ICAgIGlmICghZWxkYnVzX21lc3NhZ2VfYXJndW1lbnRzX2dldChtZXNzYWdlLCAidiIsICZ2YXJp
YW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdW5zaWduZWQgdHlwZSA9IDA7CisgICAgZWxk
YnVzX21lc3NhZ2VfaXRlcl9hcmd1bWVudHNfZ2V0KHZhcmlhbnQsICJ1IiwgJnR5cGUpOworICAg
IGlmICh0eXBlICE9IDIpIC8vIEJBVFRFUlkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgRV9EQnVz
X0Nvbm5lY3Rpb24qIGVkYnVzQ29ubmVjdGlvbiA9IGVfZGJ1c19idXNfZ2V0KERCVVNfQlVTX1NZ
U1RFTSk7Ci0gICAgRWluYV9MaXN0KiBsaXN0OwotICAgIHZvaWQqIGRldmljZU5hbWU7Ci0gICAg
RUlOQV9MSVNUX0ZPUkVBQ0goZXVraXREZXZpY2VOYW1lcy0+c3RyaW5ncywgbGlzdCwgZGV2aWNl
TmFtZSkKLSAgICAgICAgZV91cG93ZXJfZ2V0X2FsbF9wcm9wZXJ0aWVzKGVkYnVzQ29ubmVjdGlv
biwgc3RhdGljX2Nhc3Q8Y2hhcio+KGRldmljZU5hbWUpLCBzZXRCYXR0ZXJ5Q2xpZW50LCBkYXRh
KTsKKyAgICBFbGRidXNfUHJveHkqIHByb3h5ID0gc3RhdGljX2Nhc3Q8RWxkYnVzX1Byb3h5Kj4o
ZGF0YSk7CisgICAgQmF0dGVyeVByb3ZpZGVyRWZsKiBwcm92aWRlciA9IHN0YXRpY19jYXN0PEJh
dHRlcnlQcm92aWRlckVmbCo+KGVsZGJ1c19wcm94eV9kYXRhX2dldChwcm94eSwgIl9wcm92aWRl
ciIpKTsKKyAgICBlbGRidXNfcHJveHlfcHJvcGVydHlfZ2V0X2FsbChwcm94eSwgYmF0dGVyeVBy
b3BlcnRpZXMsIHByb3ZpZGVyKTsKKyAgICBwcm92aWRlci0+c2V0U2lnbmFsSGFuZGxlcihlbGRi
dXNfcHJveHlfc2lnbmFsX2hhbmRsZXJfYWRkKHByb3h5LCAiQ2hhbmdlZCIsIGJhdHRlcnlQcm9w
ZXJ0aWVzQ2hhbmdlZCwgcHJveHkpKTsKIH0KIAotdm9pZCBCYXR0ZXJ5UHJvdmlkZXJFZmw6OnNl
dEJhdHRlcnlDbGllbnQodm9pZCogZGF0YSwgdm9pZCogcmVwbHlEYXRhLCBEQnVzRXJyb3IqIGRC
dXNFcnJvcikKK3ZvaWQgQmF0dGVyeVByb3ZpZGVyRWZsOjplbnVtZXJhdGVEZXZpY2VzKHZvaWQq
IGRhdGEsIGNvbnN0IEVsZGJ1c19NZXNzYWdlKiBtZXNzYWdlLCBFbGRidXNfUGVuZGluZyopCiB7
Ci0gICAgRV9Va2l0X0dldF9BbGxfUHJvcGVydGllc19SZXR1cm4qIGV1a2l0UHJvcGVydHlOYW1l
cyA9IHN0YXRpY19jYXN0PEVfVWtpdF9HZXRfQWxsX1Byb3BlcnRpZXNfUmV0dXJuKj4ocmVwbHlE
YXRhKTsKKyAgICBpZiAoZWxkYnVzX21lc3NhZ2VfZXJyb3JfZ2V0KG1lc3NhZ2UsIG51bGxwdHIs
IG51bGxwdHIpKQorICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWV1a2l0UHJvcGVydHlOYW1l
cyB8fCBkYnVzX2Vycm9yX2lzX3NldChkQnVzRXJyb3IpKSB7Ci0gICAgICAgIGRidXNfZXJyb3Jf
ZnJlZShkQnVzRXJyb3IpOworICAgIEVsZGJ1c19NZXNzYWdlX0l0ZXIqIGFycmF5OworICAgIGlm
ICghZWxkYnVzX21lc3NhZ2VfYXJndW1lbnRzX2dldChtZXNzYWdlLCAiYW8iLCAmYXJyYXkpKQog
ICAgICAgICByZXR1cm47CisKKyAgICBjaGFyKiBwYXRoOworICAgIHdoaWxlIChlbGRidXNfbWVz
c2FnZV9pdGVyX2dldF9hbmRfbmV4dChhcnJheSwgJ28nLCAmcGF0aCkpIHsKKyAgICAgICAgaWYg
KCFwYXRoIHx8ICFwYXRoWzBdKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgRWxkYnVz
X09iamVjdCogb2JqZWN0ID0gZWxkYnVzX29iamVjdF9nZXQoc3RhdGljX2Nhc3Q8QmF0dGVyeVBy
b3ZpZGVyRWZsKj4oZGF0YSktPmNvbm5lY3Rpb24oKSwgQlVTLCBwYXRoKTsKKyAgICAgICAgRWxk
YnVzX1Byb3h5KiBwcm94eSA9IGVsZGJ1c19wcm94eV9nZXQob2JqZWN0LCAib3JnLmZyZWVkZXNr
dG9wLlVQb3dlci5EZXZpY2UiKTsKKyAgICAgICAgZWxkYnVzX3Byb3h5X2RhdGFfc2V0KHByb3h5
LCAiX3Byb3ZpZGVyIiwgZGF0YSk7CisgICAgICAgIGVsZGJ1c19wcm94eV9wcm9wZXJ0eV9nZXQo
cHJveHksICJUeXBlIiwgZGV2aWNlVHlwZUNhbGxiYWNrLCBwcm94eSk7CiAgICAgfQorfQogCi0g
ICAgaWYgKCFldWtpdFByb3BlcnR5TmFtZXMtPnByb3BlcnRpZXMpCit2b2lkIEJhdHRlcnlQcm92
aWRlckVmbDo6c3RhcnRVcGRhdGluZygpCit7CisgICAgaWYgKG1fY29ubmVjdGlvbikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgRV9Va2l0X1Byb3BlcnR5KiBwcm9wZXJ0eSA9IHN0YXRpY19jYXN0
PEVfVWtpdF9Qcm9wZXJ0eSo+KGVpbmFfaGFzaF9maW5kKGV1a2l0UHJvcGVydHlOYW1lcy0+cHJv
cGVydGllcywgIlR5cGUiKSk7Ci0gICAgaWYgKCFwcm9wZXJ0eSB8fCBwcm9wZXJ0eS0+dmFsLnUg
IT0gRV9VUE9XRVJfU09VUkNFX0JBVFRFUlkpCisgICAgaWYgKCFlbGRidXNfaW5pdCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBCYXR0ZXJ5UHJvdmlkZXJFZmwqIGNsaWVudCA9IHN0YXRpY19j
YXN0PEJhdHRlcnlQcm92aWRlckVmbCo+KGRhdGEpOwotICAgIEJhdHRlcnlTdGF0dXMqIGNsaWVu
dEJhdHRlcnlTdGF0dXMgPSBjbGllbnQtPmJhdHRlcnlTdGF0dXMoKTsKLSAgICBib29sIGNoYXJn
aW5nID0gZmFsc2U7Ci0gICAgYm9vbCBjaGFyZ2luZ0NoYW5nZWQgPSBmYWxzZTsKLSAgICBzdGF0
aWMgdW5zaWduZWQgY2hhcmdpbmdTdGF0ZSA9IDA7CisgICAgbV9jb25uZWN0aW9uID0gZWxkYnVz
X2Nvbm5lY3Rpb25fZ2V0KEVMREJVU19DT05ORUNUSU9OX1RZUEVfU1lTVEVNKTsKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtX2Nvbm5lY3Rpb24pOwogCi0gICAgcHJvcGVydHkgPSBz
dGF0aWNfY2FzdDxFX1VraXRfUHJvcGVydHkqPihlaW5hX2hhc2hfZmluZChldWtpdFByb3BlcnR5
TmFtZXMtPnByb3BlcnRpZXMsICJTdGF0ZSIpKTsKLSAgICBpZiAoIXByb3BlcnR5KQorICAgIG1f
b2JqZWN0ID0gZWxkYnVzX29iamVjdF9nZXQobV9jb25uZWN0aW9uLCBCVVMsIFBBVEgpOworICAg
IGlmICghbV9vYmplY3QpIHsKKyAgICAgICAgZWxkYnVzX2Nvbm5lY3Rpb25fdW5yZWYobV9jb25u
ZWN0aW9uKTsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJu
OwotICAgIGlmICghY2xpZW50QmF0dGVyeVN0YXR1cyB8fCBjaGFyZ2luZ1N0YXRlICE9IHByb3Bl
cnR5LT52YWwudSkgewotICAgICAgICBjaGFyZ2luZ0NoYW5nZWQgPSB0cnVlOwotICAgICAgICBj
aGFyZ2luZ1N0YXRlID0gcHJvcGVydHktPnZhbC51OwotICAgICAgICAoY2hhcmdpbmdTdGF0ZSA9
PSBFX1VQT1dFUl9TVEFURV9GVUxMIHx8IGNoYXJnaW5nU3RhdGUgPT0gRV9VUE9XRVJfU1RBVEVf
Q0hBUkdJTkcpID8gY2hhcmdpbmcgPSB0cnVlIDogY2hhcmdpbmcgPSBmYWxzZTsKLSAgICB9IGVs
c2UKLSAgICAgICAgY2hhcmdpbmcgPSBjbGllbnRCYXR0ZXJ5U3RhdHVzLT5jaGFyZ2luZygpOwot
Ci0gICAgYm9vbCBjaGFyZ2luZ1RpbWVDaGFuZ2VkID0gZmFsc2U7Ci0gICAgYm9vbCBkaXNjaGFy
Z2luZ1RpbWVDaGFuZ2VkID0gZmFsc2U7Ci0gICAgZG91YmxlIGNoYXJnaW5nVGltZSA9IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKLSAgICBkb3VibGUgZGlzY2hhcmdp
bmdUaW1lID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOwotCi0gICAg
aWYgKGNoYXJnaW5nKSB7Ci0gICAgICAgIGlmICghY2xpZW50QmF0dGVyeVN0YXR1cyB8fCBjbGll
bnRCYXR0ZXJ5U3RhdHVzLT5kaXNjaGFyZ2luZ1RpbWUoKSAhPSBzdGQ6Om51bWVyaWNfbGltaXRz
PGRvdWJsZT46OmluZmluaXR5KCkpCi0gICAgICAgICAgICBkaXNjaGFyZ2luZ1RpbWVDaGFuZ2Vk
ID0gdHJ1ZTsKLSAgICAgICAgZGlzY2hhcmdpbmdUaW1lID0gc3RkOjpudW1lcmljX2xpbWl0czxk
b3VibGU+OjppbmZpbml0eSgpOwotICAgICAgICBwcm9wZXJ0eSA9IHN0YXRpY19jYXN0PEVfVWtp
dF9Qcm9wZXJ0eSo+KGVpbmFfaGFzaF9maW5kKGV1a2l0UHJvcGVydHlOYW1lcy0+cHJvcGVydGll
cywgIlRpbWVUb0Z1bGwiKSk7Ci0gICAgICAgIGlmICghcHJvcGVydHkpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIGlmICghY2xpZW50QmF0dGVyeVN0YXR1cyB8fCBjbGllbnRCYXR0ZXJ5
U3RhdHVzLT5jaGFyZ2luZ1RpbWUoKSAhPSBwcm9wZXJ0eS0+dmFsLngpCi0gICAgICAgICAgICBj
aGFyZ2luZ1RpbWVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgY2hhcmdpbmdUaW1lID0gcHJvcGVy
dHktPnZhbC54OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghY2xpZW50QmF0dGVyeVN0YXR1
cyB8fCBjbGllbnRCYXR0ZXJ5U3RhdHVzLT5jaGFyZ2luZ1RpbWUoKSAhPSBzdGQ6Om51bWVyaWNf
bGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpCi0gICAgICAgICAgICBjaGFyZ2luZ1RpbWVDaGFu
Z2VkID0gdHJ1ZTsKLSAgICAgICAgY2hhcmdpbmdUaW1lID0gc3RkOjpudW1lcmljX2xpbWl0czxk
b3VibGU+OjppbmZpbml0eSgpOwotICAgICAgICBwcm9wZXJ0eSA9IHN0YXRpY19jYXN0PEVfVWtp
dF9Qcm9wZXJ0eSo+KGVpbmFfaGFzaF9maW5kKGV1a2l0UHJvcGVydHlOYW1lcy0+cHJvcGVydGll
cywgIlRpbWVUb0VtcHR5IikpOwotICAgICAgICBpZiAoIXByb3BlcnR5KQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBpZiAoIWNsaWVudEJhdHRlcnlTdGF0dXMgfHwgY2xpZW50QmF0dGVy
eVN0YXR1cy0+ZGlzY2hhcmdpbmdUaW1lKCkgIT0gcHJvcGVydHktPnZhbC54KQotICAgICAgICAg
ICAgZGlzY2hhcmdpbmdUaW1lQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAgIGRpc2NoYXJnaW5nVGlt
ZSA9IHByb3BlcnR5LT52YWwueDsKICAgICB9CiAKLSAgICBib29sIGxldmVsQ2hhbmdlZCA9IGZh
bHNlOwotICAgIHByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8RV9Va2l0X1Byb3BlcnR5Kj4oZWluYV9o
YXNoX2ZpbmQoZXVraXRQcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0aWVzLCAiUGVyY2VudGFnZSIpKTsK
LSAgICBpZiAoIXByb3BlcnR5KQorICAgIG1fcHJveHkgPSBlbGRidXNfcHJveHlfZ2V0KG1fb2Jq
ZWN0LCBJRkFDRSk7CisgICAgaWYgKCFtX3Byb3h5KSB7CisgICAgICAgIGVsZGJ1c19vYmplY3Rf
dW5yZWYobV9vYmplY3QpOworICAgICAgICBtX29iamVjdCA9IG51bGxwdHI7CisgICAgICAgIGVs
ZGJ1c19jb25uZWN0aW9uX3VucmVmKG1fY29ubmVjdGlvbik7CisgICAgICAgIG1fY29ubmVjdGlv
biA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBkb3VibGUgbGV2ZWwg
PSBwcm9wZXJ0eS0+dmFsLmQgLyAxMDA7Ci0gICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8
IGNsaWVudEJhdHRlcnlTdGF0dXMtPmxldmVsKCkgIT0gbGV2ZWwpCi0gICAgICAgIGxldmVsQ2hh
bmdlZCA9IHRydWU7Ci0KLSAgICBXVEY6OlJlZlB0cjxCYXR0ZXJ5U3RhdHVzPiBiYXR0ZXJ5U3Rh
dHVzID0gQmF0dGVyeVN0YXR1czo6Y3JlYXRlKGNoYXJnaW5nLCBjaGFyZ2luZ1RpbWUsIGRpc2No
YXJnaW5nVGltZSwgbGV2ZWwpOwotICAgIGlmIChjaGFyZ2luZ0NoYW5nZWQpCi0gICAgICAgIGNs
aWVudC0+c2V0QmF0dGVyeVN0YXR1cyhldmVudE5hbWVzKCkuY2hhcmdpbmdjaGFuZ2VFdmVudCwg
YmF0dGVyeVN0YXR1cyk7Ci0gICAgaWYgKGNoYXJnaW5nVGltZUNoYW5nZWQpCi0gICAgICAgIGNs
aWVudC0+c2V0QmF0dGVyeVN0YXR1cyhldmVudE5hbWVzKCkuY2hhcmdpbmd0aW1lY2hhbmdlRXZl
bnQsIGJhdHRlcnlTdGF0dXMpOwotICAgIGlmIChkaXNjaGFyZ2luZ1RpbWVDaGFuZ2VkKQotICAg
ICAgICBjbGllbnQtPnNldEJhdHRlcnlTdGF0dXMoZXZlbnROYW1lcygpLmRpc2NoYXJnaW5ndGlt
ZWNoYW5nZUV2ZW50LCBiYXR0ZXJ5U3RhdHVzKTsKLSAgICBpZiAobGV2ZWxDaGFuZ2VkKQotICAg
ICAgICBjbGllbnQtPnNldEJhdHRlcnlTdGF0dXMoZXZlbnROYW1lcygpLmxldmVsY2hhbmdlRXZl
bnQsIGJhdHRlcnlTdGF0dXMpOworICAgIGVsZGJ1c19wcm94eV9jYWxsKG1fcHJveHksICJFbnVt
ZXJhdGVEZXZpY2VzIiwgZW51bWVyYXRlRGV2aWNlcywgdGhpcywgLTEsICIiKTsKIH0KIAordm9p
ZCBCYXR0ZXJ5UHJvdmlkZXJFZmw6OnNldEJhdHRlcnlTdGF0dXMoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIFBhc3NSZWZQdHI8QmF0dGVyeVN0YXR1cz4gYmF0dGVyeVN0YXR1cykKK3sK
KyAgICBtX2JhdHRlcnlTdGF0dXMgPSBiYXR0ZXJ5U3RhdHVzOworICAgIG1fY2xpZW50LT5kaWRD
aGFuZ2VCYXR0ZXJ5U3RhdHVzKGV2ZW50VHlwZSwgbV9iYXR0ZXJ5U3RhdHVzKTsKIH0KIAorfQog
I2VuZGlmIC8vIEJBVFRFUllfU1RBVFVTCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9CYXR0ZXJ5UHJvdmlkZXJFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9CYXR0ZXJ5UHJvdmlkZXJFZmwuaAppbmRleCA0MzEzOGVhMDZmYmM2OTZjZDg5NDA5MzU5
MWZhOWFiZWU4YWYzYjg0Li42YjU0NzQzZWEyMTZmZTIxZDI1Y2ZjNDZkYWQxNjY4MTA3YTVkYTgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVy
RWZsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVm
bC5oCkBAIC0yNCwxOSArMjQsMTcgQEAKIAogI2luY2x1ZGUgIkJhdHRlcnlDbGllbnQuaCIKICNp
bmNsdWRlICJCYXR0ZXJ5U3RhdHVzLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDxF
bGRidXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAotdHlwZWRlZiBz
dHJ1Y3QgREJ1c0Vycm9yIERCdXNFcnJvcjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBCYXR0ZXJ5UHJvdmlkZXJFZmxDbGllbnQ7CiAKIGNsYXNzIEJhdHRlcnlQcm92aWRlckVmbCB7
CiBwdWJsaWM6Ci0gICAgQmF0dGVyeVByb3ZpZGVyRWZsKEJhdHRlcnlQcm92aWRlckVmbENsaWVu
dCopOwotICAgIH5CYXR0ZXJ5UHJvdmlkZXJFZmwoKSB7IH0KKyAgICBleHBsaWNpdCBCYXR0ZXJ5
UHJvdmlkZXJFZmwoQmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50Kik7CisgICAgfkJhdHRlcnlQcm92
aWRlckVmbCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKICAgICB2aXJ0
dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7CkBAIC00NSwxOCArNDMsMjIgQEAgcHVibGljOgogICAg
IEJhdHRlcnlTdGF0dXMqIGJhdHRlcnlTdGF0dXMoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICB2
b2lkIHRpbWVyRmlyZWQoVGltZXIqKTsKLSAgICBzdGF0aWMgdm9pZCBnZXRCYXR0ZXJ5U3RhdHVz
KHZvaWQqIGRhdGEsIHZvaWQqIHJlcGx5RGF0YSwgREJ1c0Vycm9yKik7Ci0gICAgc3RhdGljIHZv
aWQgc2V0QmF0dGVyeUNsaWVudCh2b2lkKiBkYXRhLCB2b2lkKiByZXBseURhdGEsIERCdXNFcnJv
ciopOworICAgIHN0YXRpYyB2b2lkIGVudW1lcmF0ZURldmljZXModm9pZCogZGF0YSwgY29uc3Qg
RWxkYnVzX01lc3NhZ2UqLCBFbGRidXNfUGVuZGluZyopOworICAgIHN0YXRpYyB2b2lkIGRldmlj
ZVR5cGVDYWxsYmFjayh2b2lkKiBkYXRhLCBjb25zdCBFbGRidXNfTWVzc2FnZSosIEVsZGJ1c19Q
ZW5kaW5nKik7CisKKyAgICBFbGRidXNfQ29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJu
IG1fY29ubmVjdGlvbjsgfQorICAgIHZvaWQgc2V0U2lnbmFsSGFuZGxlcihFbGRidXNfU2lnbmFs
X0hhbmRsZXIqIHNpZ25hbEhhbmRsZXIpIHsgbV9zaWduYWxIYW5kbGVyID0gc2lnbmFsSGFuZGxl
cjsgfQogCiAgICAgQmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50KiBtX2NsaWVudDsKLSAgICBUaW1l
ciBtX3RpbWVyOwogICAgIFJlZlB0cjxCYXR0ZXJ5U3RhdHVzPiBtX2JhdHRlcnlTdGF0dXM7Ci0g
ICAgY29uc3QgZG91YmxlIG1fYmF0dGVyeVN0YXR1c1JlZnJlc2hJbnRlcnZhbDsKKworICAgIEVs
ZGJ1c19Db25uZWN0aW9uKiBtX2Nvbm5lY3Rpb247CisgICAgRWxkYnVzX09iamVjdCogbV9vYmpl
Y3Q7CisgICAgRWxkYnVzX1Byb3h5KiBtX3Byb3h5OworICAgIEVsZGJ1c19TaWduYWxfSGFuZGxl
ciogbV9zaWduYWxIYW5kbGVyOwogfTsKIAogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllf
U1RBVFVTKQogI2VuZGlmIC8vIEJhdHRlcnlQcm92aWRlckVmbF9oCi0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19tYWluLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19tYWluLmNwcAppbmRleCAyN2JmZmM5OTVlODMwOGM4
YWMxY2NjNjFlZGU5MzFmNjRlN2M4ODBhLi4wYTlmMWY1YjUwMDk5NmMwZGNlOWJhMTIwNmZmMjJi
MTlkNjMyMDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfbWFpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX21h
aW4uY3BwCkBAIC0zNiw2ICszNiwxMCBAQAogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNlbmRpZgog
CisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorI2luY2x1ZGUgPEVsZGJ1cy5oPgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNzIEVGTE1vZHVsZUluaXRGYWlsdXJl
IHsKQEAgLTQ2LDcgKzUwLDEwIEBAIGVudW0gY2xhc3MgRUZMTW9kdWxlSW5pdEZhaWx1cmUgewog
ICAgIEVjb3JlSW1mLAogICAgIEVmcmVldCwKICAgICBFY29yZVgsCi0gICAgRWRqZQorICAgIEVk
amUsCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorICAgIEVsZGJ1cworI2VuZGlmCiB9Owog
CiBFd2tNYWluOjpFd2tNYWluKCkKQEAgLTEyOCw2ICsxMzUsMTMgQEAgaW50IEV3a01haW46Omlu
aXRpYWxpemUoKQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKKyNpZiBFTkFCTEUoQkFUVEVS
WV9TVEFUVVMpCisgICAgaWYgKCFlbGRidXNfaW5pdCgpKSB7CisgICAgICAgIENSSVRJQ0FMKCJD
b3VsZCBub3QgaW5pdCBlbGRidXMuIik7CisgICAgICAgIHNodXRkb3duSW5pdGlhbGl6ZWRFRkxN
b2R1bGVzKEVGTE1vZHVsZUluaXRGYWlsdXJlOjpFbGRidXMpOworICAgICAgICByZXR1cm4gMDsK
KyAgICB9CisjZW5kaWYKICAgICBpZiAoIWVjb3JlX21haW5fbG9vcF9nbGliX2ludGVncmF0ZSgp
KSB7CiAgICAgICAgIFdBUk4oIkVjb3JlIHdhcyBub3QgY29tcGlsZWQgd2l0aCBHTGliIHN1cHBv
cnQsIHNvbWUgcGx1Z2lucyB3aWxsIG5vdCAiCiAgICAgICAgICAgICAid29yayAoaWU6IEFkb2Jl
IEZsYXNoKSIpOwpAQCAtMTQxLDYgKzE1NSw5IEBAIGludCBFd2tNYWluOjpmaW5hbGl6ZSgpCiAg
ICAgaWYgKC0tbV9pbml0Q291bnQpCiAgICAgICAgIHJldHVybiBtX2luaXRDb3VudDsKIAorI2lm
IEVOQUJMRShCQVRURVJZX1NUQVRVUykKKyAgICBlbGRidXNfc2h1dGRvd24oKTsKKyNlbmRpZgog
ICAgIGVkamVfc2h1dGRvd24oKTsKICNpZmRlZiBIQVZFX0VDT1JFX1gKICAgICBlY29yZV94X3No
dXRkb3duKCk7CkBAIC0xNjAsNiArMTc3LDEwIEBAIGludCBFd2tNYWluOjpmaW5hbGl6ZSgpCiB2
b2lkIEV3a01haW46OnNodXRkb3duSW5pdGlhbGl6ZWRFRkxNb2R1bGVzKEVGTE1vZHVsZUluaXRG
YWlsdXJlIG1vZHVsZSkKIHsKICAgICBzd2l0Y2ggKG1vZHVsZSkgeworI2lmIEVOQUJMRShCQVRU
RVJZX1NUQVRVUykKKyAgICBjYXNlIEVGTE1vZHVsZUluaXRGYWlsdXJlOjpFbGRidXM6CisgICAg
ICAgIGVsZGJ1c19zaHV0ZG93bigpOworI2VuZGlmCiAgICAgY2FzZSBFRkxNb2R1bGVJbml0RmFp
bHVyZTo6RWRqZToKICNpZmRlZiBIQVZFX0VDT1JFX1gKICAgICAgICAgZWNvcmVfeF9zaHV0ZG93
bigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRFX0RCdXMuY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvRmluZEVfREJ1cy5jbWFrZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI1
NjI0MmQyZTAxNzc5NDI1ZmY2M2ZkOGM5OWMxM2RiN2U5NDE1YS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvY21ha2UvRmluZEVfREJ1cy5jbWFr
ZQorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLSMgLSBUcnkgdG8gZmluZCBFX0RCdXMK
LSMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCi0jCi0jICBFX0RCVVNfRk9VTkQgLSBzeXN0
ZW0gaGFzIEVfREJ1cyBpbnN0YWxsZWQuCi0jICBFX0RCVVNfSU5DTFVERV9ESVJTIC0gZGlyZWN0
b3JpZXMgd2hpY2ggY29udGFpbiB0aGUgRV9EQnVzIGhlYWRlcnMuCi0jICBFX0RCVVNfTElCUkFS
SUVTIC0gbGlicmFyaWVzIHJlcXVpcmVkIHRvIGxpbmsgYWdhaW5zdCBFX0RCdXMuCi0jCi0jIE9w
dGlvbmFsbHksIHRoZSBDT01QT05FTlRTIGtleXdvcmQgY2FuIGJlIHBhc3NlZCB0byBmaW5kX3Bh
Y2thZ2UoKQotIyBhbmQgYWRkaXRpb25hbCBFX0RCdXMgbGlicmFyaWVzIGNhbiBiZSBsb29rZWQg
Zm9yLiBDdXJyZW50bHksIHRoZQotIyBmb2xsb3dpbmcgbGlicmFyaWVzIGNhbiBiZSBzZWFyY2hl
ZCwgYW5kIHRoZXkgZGVmaW5lIHRoZSBmb2xsb3dpbmcKLSMgdmFyaWFibGVzIGlmIGZvdW5kOgot
IwotIyAgRVVLSVQgLSBFX0RCVVNfRVVLSVRfSU5DTFVERV9ESVJTIGFuZCBFX0RCVVNfRVVLSVRf
TElCUkFSSUVTCi0jCi0jIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0
OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKLSMgSVMnJyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKLSMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0jIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7Ci0jIE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LAotIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUgotIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCi0jIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbmNsdWRlKEVGTEhlbHBlcnMpCi0KLUZJTkRf
RUZMX0xJQlJBUlkoRV9EQlVTCi0gICAgSEVBREVSUyBFX0RCdXMuaAotICAgIEhFQURFUl9QUkVG
SVhFUyBlX2RidXMtMQotICAgIExJQlJBUlkgZWRidXMKLSkKLQotIyBDb21wb25lbnRzLgotRklO
RF9FRkxfTElCUkFSWShFX0RCVVNfRVVLSVQKLSAgICBIRUFERVJTIEVfVWtpdC5oCi0gICAgSEVB
REVSX1BSRUZJWEVTIGVfZGJ1cy0xCi0gICAgTElCUkFSWSBldWtpdAotKQotCi1mb3JlYWNoIChf
Y29tcG9uZW50ICR7RV9EQnVzX0ZJTkRfQ09NUE9ORU5UU30pCi0gICAgc2V0KF9lX2RidXNfY29t
cG9uZW50ICJFX0RCVVNfJHtfY29tcG9uZW50fSIpCi0gICAgc3RyaW5nKFRPVVBQRVIgJHtfZV9k
YnVzX2NvbXBvbmVudH0gX1VQUEVSX05BTUUpCi0KLSAgICBsaXN0KEFQUEVORCBfRV9EQlVTX1JF
UVVJUkVEX0NPTVBPTkVOVF9WQVJTICR7X1VQUEVSX05BTUV9X0lOQ0xVREVfRElSUyAke19VUFBF
Ul9OQU1FfV9MSUJSQVJJRVMpCi1lbmRmb3JlYWNoICgpCi0KLWluY2x1ZGUoRmluZFBhY2thZ2VI
YW5kbGVTdGFuZGFyZEFyZ3MpCi1GSU5EX1BBQ0tBR0VfSEFORExFX1NUQU5EQVJEX0FSR1MoRV9E
QnVzIFJFUVVJUkVEX1ZBUlMgRV9EQlVTX0lOQ0xVREVfRElSUyBFX0RCVVNfTElCUkFSSUVTICR7
X0VfREJVU19SRVFVSVJFRF9DT01QT05FTlRfVkFSU30KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVkVSU0lPTl9WQVIgICBFX0RCVVNfVkVSU0lPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNF
ZmwuY21ha2UKaW5kZXggYjg3YTAxMjNjZWRlODNkMTFkOWFkM2EwNTlmYjViNjg5ZGFlODlmNS4u
NWJkYjAxYTNkZjMxM2M3MjgzMDFiNjAzYjY5MjlkMDgzOWQ3ODFmNSAxMDA2NDQKLS0tIGEvU291
cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwu
Y21ha2UKQEAgLTE5NSw5ICsxOTUsOCBAQCBpZiAoV1RGX09TX1VOSVgpCiAgICAgYWRkX2RlZmlu
aXRpb25zKC1EWFBfVU5JWCkKIGVuZGlmIChXVEZfT1NfVU5JWCkKIAotaWYgKEVOQUJMRV9CQVRU
RVJZX1NUQVRVUyBPUiAoRUZMX1JFUVVJUkVEX1ZFUlNJT04gVkVSU0lPTl9MRVNTIDEuOCkpCi0g
ICAgZmluZF9wYWNrYWdlKERCdXMgUkVRVUlSRUQpCi0gICAgZmluZF9wYWNrYWdlKEVfREJ1cyAx
LjcgQ09NUE9ORU5UUyBFVUtpdCkKK2lmIChFTkFCTEVfQkFUVEVSWV9TVEFUVVMpCisgICAgZmlu
ZF9wYWNrYWdlKEVsZGJ1cyAke0VGTF9SRVFVSVJFRF9WRVJTSU9OfSAke0VGTF9DT05GSUdfTU9E
RX0pCiBlbmRpZiAoKQogCiBpZiAoRU5BQkxFX1ZJREVPIE9SIEVOQUJMRV9XRUJfQVVESU8pCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTY2ZDdk
MDE4MzJjYWYxOGFhZTkzYjEzMjIwYmRlNWU1NzNkOGEwYy4uMTFlMDI2NDRiNzk5NGI3MjU3Y2Jl
OTk3Yjg2YzNhOGU3YThlOWFhZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE0LTExLTE4ICBSeXVhbiBDaG9pICA8
cnl1YW4uY2hvaUBuYXZlcmNvcnAuY29tPgorCisgICAgICAgIFtFRkxdIFJlbW92ZSBFX0RidXMg
ZGVwZW5kZW5jeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM2MzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBNaW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50eHQ6IFJlbW92ZWQgRV9EQlVTIGluY2x1
ZGVzLgorCiAyMDE0LTExLTA5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBnZW5lcmF0ZS1ndGtkb2Mgc2hvdWxkIGlnbm9yZSBpbnZh
bGlkIGZpbGVzCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50
eHQgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50eHQKaW5kZXggZWNlN2MyYTFh
ZGQxNzNiMTg3MTk5NWYyODczZTFkMTRkOTgwY2U0OC4uODdlZGU5ZDAwYzI4YjY2OTJiYjQ1NzYw
ODM2ZjQ1NTA0ODlmY2EwMiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtl
TGlzdHMudHh0CisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9DTWFrZUxpc3RzLnR4dApAQCAt
MjMsNyArMjMsNiBAQCBzZXQoTWluaUJyb3dzZXJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7
RUVUX0lOQ0xVREVfRElSU30KICAgICAke0VPX0lOQ0xVREVfRElSU30KICAgICAke0RCVVNfSU5D
TFVERV9ESVJTfQotICAgICR7RV9EQlVTX0lOQ0xVREVfRElSU30KICAgICAke0VGUkVFVF9JTkNM
VURFX0RJUlN9CiAgICAgJHtFSU5BX0lOQ0xVREVfRElSU30KICAgICAke0VMREJVU19JTkNMVURF
X0RJUlN9CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggOGQ0MTNhMjFm
MTJlMTU0MzNhMDhkMTJhMWJhNWEzYTkyNDM1ODI1Ny4uOTNhOWQ1MjI3MDUwZTkwNjVmNmU4MTUw
ODU1NTQwNWI4Mzc2NjNiNSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDE0LTExLTE4ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBuYXZl
cmNvcnAuY29tPgorCisgICAgICAgIFtFRkxdIFJlbW92ZSBFX0RidXMgZGVwZW5kZW5jeQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MzU1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21h
a2UvRmluZEVfREJ1cy5jbWFrZTogUmVtb3ZlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0
aW9uc0VmbC5jbWFrZToKKwogMjAxNC0xMS0wNyAgRXZhIEJhbGF6c2ZhbHZpICA8ZXZhYi51LXN6
ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFJlcXVpcmUgYXQgbGVh
c3QgRUZMIDEuOSBpZiBFTkFCTEUoQUNDRVNTSUJJTElUWSkgYWZ0ZXIgcjE3NTA5OAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242260</attachid>
            <date>2014-11-27 22:10:17 -0800</date>
            <delta_ts>2014-11-27 23:03:54 -0800</delta_ts>
            <desc>rebased</desc>
            <filename>bug-136355-20141128151039.patch</filename>
            <type>text/plain</type>
            <size>25148</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYwZjg3ODE0ZWEzMDJh
MWY1MjgyYTUyYjE0MDJkNjE2ODNkN2RiNi4uMTRjNDYxMmJhMGI5NDc4ZTkwYjNjNWU4Mjc4OTU0
MmNjYjUyNzJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTExLTI3ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBuYXZlcmNvcnAuY29tPgorCisgICAgICAgIFtFRkxdIFJlbW92
ZSBFX0RidXMgZGVwZW5kZW5jeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM2MzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRV9EYnVzIGlzIHRoZSBzaW1wbGUgd3JhcHBlciBvZiBEYnVzIGJ1dCBpdCBo
YXMgbm90IGJlZW4gbWFpbnRhaW5lZCBzaW5jZSBFRkwgMS44LgorICAgICAgICBJbnN0ZWFkLCBF
RkwgaW50cm9kdWNlZCBFbGRidXMsIHdoaWNoIGlzIGFsbW9zdCBzaW1pbGFyIHdpdGggRV9EYnVz
IGJ1dCBwcm92aWRlcyBtb3JlIGRidXMgbGlrZSBpbnRlcmZhY2UuCisgICAgICAgIFRoaXMgcGF0
Y2ggcmVwbGFjZXMgRV9EYnVzIGltcGxlbWVudGF0aW9uIHRvIEVsZGJ1cy4KKworICAgICAgICAq
IFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9CYXR0ZXJ5UHJvdmlk
ZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpCYXR0ZXJ5
UHJvdmlkZXJFZmwpOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjp+QmF0
dGVyeVByb3ZpZGVyRWZsKToKKyAgICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJhdHRlcnlQcm9wZXJ0aWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmJhdHRlcnlQcm9wZXJ0aWVzQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6OmRldmljZVR5cGVDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6OmVudW1lcmF0ZURldmljZXMpOgorICAgICAgICAo
V2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6c2V0QmF0dGVyeVN0YXR1cyk6CisgICAgICAgIChX
ZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6OnRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpnZXRCYXR0ZXJ5U3RhdHVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6c2V0QmF0dGVyeUNsaWVu
dCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5o
OgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsOjpjb25uZWN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbDo6c2V0U2lnbmFsSGFuZGxlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmw6On5CYXR0ZXJ5UHJvdmlkZXJFZmwp
OiBEZWxldGVkLgorCiAyMDE0LTExLTI3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBDcmFzaFRyYWNlcjogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50IGF0
IGNvbS5hcHBsZS5XZWJDb3JlOiBXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRh
dGVTbmFwc2hvdCArIDEwOApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU1NmY3NGJjNDI5MmViNTUxYzQ2MTJmNDgy
MmNmN2RlMTA1NWU2OWEuLjFjNzAwOTg4MjEwZmFmZmIxZDhjMmRiOWI1MDE3NTQ4Y2MzNjY4ODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0xMS0yNyAgUnl1YW4gQ2hvaSAgPHJ5
dWFuLmNob2lAbmF2ZXJjb3JwLmNvbT4KKworICAgICAgICBbRUZMXSBSZW1vdmUgRV9EYnVzIGRl
cGVuZGVuY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNjM1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX21haW4uY3BwOiBBZGRlZCBpbml0L3NodXRkb3duIGZv
ciBlbGRidXMuCisgICAgICAgIChXZWJLaXQ6OkV3a01haW46OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViS2l0OjpFd2tNYWluOjpmaW5hbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OkV3a01haW46
OnNodXRkb3duSW5pdGlhbGl6ZWRFRkxNb2R1bGVzKToKKwogMjAxNC0xMS0yNSAgQW5kZXJzIENh
cmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1c2VyIGNvbnRl
bnQgaGFuZGxpbmcgZnJvbSBQYWdlR3JvdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXgg
ODg4YzU0NWZjYWZiN2VjMWM0ZjRjNDc0ZTkxOGUxMmRkMjg4MmM5Zi4uYzhkMmY1NTFiZjg4Y2E1
MjcxZmU5NmVkOGIyZmViYWMyMjdlNzZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKQEAg
LTI1OCwxNSArMjU4LDYgQEAgaWYgKFdURl9VU0VfR0VPQ0xVRTIpCiAgICAgKQogZW5kaWYgKCkK
IAotaWYgKEVOQUJMRV9CQVRURVJZX1NUQVRVUyBPUiAoRUZMX1JFUVVJUkVEX1ZFUlNJT04gVkVS
U0lPTl9MRVNTIDEuOCkpCi0gICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9S
SUVTICR7REJVU19JTkNMVURFX0RJUlN9KQotICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUyAke0VfREJVU19JTkNMVURFX0RJUlN9KQotICAgIGxpc3QoQVBQRU5EIFdl
YkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAke0VfREJVU19FVUtJVF9JTkNMVURFX0RJUlN9KQot
ICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7REJVU19MSUJSQVJJRVN9KQotICAg
IGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7RV9EQlVTX0xJQlJBUklFU30pCi0gICAg
bGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgJHtFX0RCVVNfRVVLSVRfTElCUkFSSUVTfSkK
LWVuZGlmICgpCi0KIGlmIChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKQogICAgICMgRklYTUU6
IEdBTUVQQURfREVQUkVDQVRFRCBpcyBsZWdhY3kgaW1wbGVtZW50YXRpb24uIE5lZWQgdG8gYmUg
cmVtb3ZlZC4KICAgICBsaXN0KFJFTU9WRV9JVEVNIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklF
UwpAQCAtMjk0LDYgKzI4NSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTCiAgICAg
JHtFREpFX0xJQlJBUklFU30KICAgICAke0VFWkVfTElCUkFSSUVTfQogICAgICR7RUlOQV9MSUJS
QVJJRVN9CisgICAgJHtFTERCVVNfTElCUkFSSUVTfQogICAgICR7RU9fTElCUkFSSUVTfQogICAg
ICR7RVZBU19MSUJSQVJJRVN9CiAgICAgJHtGT05UQ09ORklHX0xJQlJBUklFU30KQEAgLTMyNCw2
ICszMTYsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAk
e0VESkVfSU5DTFVERV9ESVJTfQogICAgICR7RUVaRV9JTkNMVURFX0RJUlN9CiAgICAgJHtFSU5B
X0lOQ0xVREVfRElSU30KKyAgICAke0VMREJVU19JTkNMVURFX0RJUlN9CiAgICAgJHtFVkFTX0lO
Q0xVREVfRElSU30KICAgICAke0ZSRUVUWVBFMl9JTkNMVURFX0RJUlN9CiAgICAgJHtHRU9DTFVF
X0lOQ0xVREVfRElSU30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9C
YXR0ZXJ5UHJvdmlkZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRl
cnlQcm92aWRlckVmbC5jcHAKaW5kZXggNGU3OWNlYzQ1NTkyZTBkNjEwNmM1MjdjMGQ3NGQxYjky
MjhjNTRkZS4uNTQ4ZTMxYmM2ZTE4NzQ3NzZlZTJkNDQ5MTJmYTQ0Yjk4OWFlZjFhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5jcHAK
QEAgLTIxLDE4ICsyMSwyNCBAQAogI2luY2x1ZGUgIkJhdHRlcnlQcm92aWRlckVmbC5oIgogCiAj
aWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQotCiAjaW5jbHVkZSAiQmF0dGVyeVByb3ZpZGVyRWZs
Q2xpZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgPEVfVWtpdC5oPgog
I2luY2x1ZGUgPGxpbWl0cz4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjb25zdCBjaGFyIEJV
U1tdID0gIm9yZy5mcmVlZGVza3RvcC5VUG93ZXIiOworCiBCYXR0ZXJ5UHJvdmlkZXJFZmw6OkJh
dHRlcnlQcm92aWRlckVmbChCYXR0ZXJ5UHJvdmlkZXJFZmxDbGllbnQqIGNsaWVudCkKICAgICA6
IG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fdGltZXIoKnRoaXMsICZCYXR0ZXJ5UHJvdmlkZXJF
Zmw6OnRpbWVyRmlyZWQpCi0gICAgLCBtX2JhdHRlcnlTdGF0dXNSZWZyZXNoSW50ZXJ2YWwoMS4w
KQorICAgICwgbV9jb25uZWN0aW9uKG51bGxwdHIpCisgICAgLCBtX29iamVjdChudWxscHRyKQor
ICAgICwgbV9wcm94eShudWxscHRyKQorICAgICwgbV9zaWduYWxIYW5kbGVyKG51bGxwdHIpCit7
Cit9CisKK0JhdHRlcnlQcm92aWRlckVmbDo6fkJhdHRlcnlQcm92aWRlckVmbCgpCiB7CiB9CiAK
QEAgLTQxLDEzNyArNDcsMTgyIEBAIEJhdHRlcnlTdGF0dXMqIEJhdHRlcnlQcm92aWRlckVmbDo6
YmF0dGVyeVN0YXR1cygpIGNvbnN0CiAgICAgcmV0dXJuIG1fYmF0dGVyeVN0YXR1cy5nZXQoKTsK
IH0KIAotdm9pZCBCYXR0ZXJ5UHJvdmlkZXJFZmw6OnN0YXJ0VXBkYXRpbmcoKQordm9pZCBCYXR0
ZXJ5UHJvdmlkZXJFZmw6OnN0b3BVcGRhdGluZygpCiB7Ci0gICAgaWYgKG1fdGltZXIuaXNBY3Rp
dmUoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFlX2RidXNfaW5pdCgpKQotICAgICAg
ICByZXR1cm47CisgICAgaWYgKG1fc2lnbmFsSGFuZGxlcikgeworICAgICAgICBlbGRidXNfc2ln
bmFsX2hhbmRsZXJfZGVsKG1fc2lnbmFsSGFuZGxlcik7CisgICAgICAgIG1fc2lnbmFsSGFuZGxl
ciA9IG51bGxwdHI7CisgICAgfQogCi0gICAgaWYgKCFlX3VraXRfaW5pdCgpKSB7Ci0gICAgICAg
IGVfZGJ1c19zaHV0ZG93bigpOwotICAgICAgICByZXR1cm47CisgICAgaWYgKG1fcHJveHkpIHsK
KyAgICAgICAgZWxkYnVzX3Byb3h5X3VucmVmKG1fcHJveHkpOworICAgICAgICBtX3Byb3h5ID0g
bnVsbHB0cjsKKyAgICB9CisgICAgaWYgKG1fb2JqZWN0KSB7CisgICAgICAgIGVsZGJ1c19vYmpl
Y3RfdW5yZWYobV9vYmplY3QpOworICAgICAgICBtX29iamVjdCA9IG51bGxwdHI7CiAgICAgfQog
Ci0gICAgbV90aW1lci5zdGFydFJlcGVhdGluZyhtX2JhdHRlcnlTdGF0dXNSZWZyZXNoSW50ZXJ2
YWwpOworICAgIGlmIChtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgZWxkYnVzX2Nvbm5lY3Rpb25f
dW5yZWYobV9jb25uZWN0aW9uKTsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKyAg
ICB9CiB9CiAKLXZvaWQgQmF0dGVyeVByb3ZpZGVyRWZsOjpzdG9wVXBkYXRpbmcoKQorc3RhdGlj
IHZvaWQgYmF0dGVyeVByb3BlcnRpZXModm9pZCogZGF0YSwgY29uc3QgRWxkYnVzX01lc3NhZ2Uq
IG1lc3NhZ2UsIEVsZGJ1c19QZW5kaW5nKikKIHsKLSAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUo
KSkKKyAgICBpZiAoZWxkYnVzX21lc3NhZ2VfZXJyb3JfZ2V0KG1lc3NhZ2UsIG51bGxwdHIsIG51
bGxwdHIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3RpbWVyLnN0b3AoKTsKLSAgICBlX3Vr
aXRfc2h1dGRvd24oKTsKLSAgICBlX2RidXNfc2h1dGRvd24oKTsKLX0KKyAgICBFbGRidXNfTWVz
c2FnZV9JdGVyKiBhcnJheTsKKyAgICBpZiAoIWVsZGJ1c19tZXNzYWdlX2FyZ3VtZW50c19nZXQo
bWVzc2FnZSwgImF7c3Z9IiwgJmFycmF5KSkKKyAgICAgICAgcmV0dXJuOwogCi12b2lkIEJhdHRl
cnlQcm92aWRlckVmbDo6c2V0QmF0dGVyeVN0YXR1cyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgUGFzc1JlZlB0cjxCYXR0ZXJ5U3RhdHVzPiBiYXR0ZXJ5U3RhdHVzKQotewotICAgIG1f
YmF0dGVyeVN0YXR1cyA9IGJhdHRlcnlTdGF0dXM7Ci0gICAgbV9jbGllbnQtPmRpZENoYW5nZUJh
dHRlcnlTdGF0dXMoZXZlbnRUeXBlLCBtX2JhdHRlcnlTdGF0dXMpOworICAgIEJhdHRlcnlQcm92
aWRlckVmbCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8QmF0dGVyeVByb3ZpZGVyRWZsKj4oZGF0YSk7
CisgICAgQmF0dGVyeVN0YXR1cyogY2xpZW50QmF0dGVyeVN0YXR1cyA9IGNsaWVudC0+YmF0dGVy
eVN0YXR1cygpOworICAgIGJvb2wgY2hhcmdpbmcgPSBmYWxzZTsKKyAgICBib29sIGNoYXJnaW5n
Q2hhbmdlZCA9IGZhbHNlOworCisgICAgYm9vbCBjaGFyZ2luZ1RpbWVDaGFuZ2VkID0gZmFsc2U7
CisgICAgaW50NjRfdCBjaGFyZ2luZ1RpbWU7CisKKyAgICBib29sIGRpc2NoYXJnaW5nVGltZUNo
YW5nZWQgPSBmYWxzZTsKKyAgICBpbnQ2NF90IGRpc2NoYXJnaW5nVGltZTsKKworICAgIGJvb2wg
bGV2ZWxDaGFuZ2VkID0gZmFsc2U7CisgICAgZG91YmxlIGxldmVsOworCisgICAgRWxkYnVzX01l
c3NhZ2VfSXRlciogZGljdDsKKyAgICB3aGlsZSAoZWxkYnVzX21lc3NhZ2VfaXRlcl9nZXRfYW5k
X25leHQoYXJyYXksICdlJywgJmRpY3QpKSB7CisgICAgICAgIGNoYXIqIGtleTsKKyAgICAgICAg
RWxkYnVzX01lc3NhZ2VfSXRlciogdmFyaWFudDsKKyAgICAgICAgaWYgKCFlbGRidXNfbWVzc2Fn
ZV9pdGVyX2FyZ3VtZW50c19nZXQoZGljdCwgInN2IiwgJmtleSwgJnZhcmlhbnQpKQorICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKCFzdHJjbXAoa2V5LCAiU3RhdGUiKSkgewor
ICAgICAgICAgICAgdW5zaWduZWQgc3RhdGU7CisgICAgICAgICAgICBlbGRidXNfbWVzc2FnZV9p
dGVyX2FyZ3VtZW50c19nZXQodmFyaWFudCwgInUiLCAmc3RhdGUpOworICAgICAgICAgICAgaWYg
KHN0YXRlID09IDEpIC8vIENoYXJnaW5nCisgICAgICAgICAgICAgICAgY2hhcmdpbmcgPSB0cnVl
OworICAgICAgICAgICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGNoYXJnaW5nICE9IGNs
aWVudEJhdHRlcnlTdGF0dXMtPmNoYXJnaW5nKCkpCisgICAgICAgICAgICAgICAgY2hhcmdpbmdD
aGFuZ2VkID0gdHJ1ZTsKKworICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiVGltZVRv
RW1wdHkiKSkgeworICAgICAgICAgICAgZWxkYnVzX21lc3NhZ2VfaXRlcl9hcmd1bWVudHNfZ2V0
KHZhcmlhbnQsICJ4IiwgJmRpc2NoYXJnaW5nVGltZSk7CisgICAgICAgICAgICBpZiAoIWNsaWVu
dEJhdHRlcnlTdGF0dXMgfHwgZGlzY2hhcmdpbmdUaW1lICE9IGNsaWVudEJhdHRlcnlTdGF0dXMt
PmRpc2NoYXJnaW5nVGltZSgpKQorICAgICAgICAgICAgICAgIGRpc2NoYXJnaW5nVGltZUNoYW5n
ZWQgPSB0cnVlOworCisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJUaW1lVG9GdWxs
IikpIHsKKyAgICAgICAgICAgIGVsZGJ1c19tZXNzYWdlX2l0ZXJfYXJndW1lbnRzX2dldCh2YXJp
YW50LCAieCIsICZjaGFyZ2luZ1RpbWUpOworICAgICAgICAgICAgaWYgKCFjbGllbnRCYXR0ZXJ5
U3RhdHVzIHx8IGNoYXJnaW5nVGltZSAhPSBjbGllbnRCYXR0ZXJ5U3RhdHVzLT5jaGFyZ2luZ1Rp
bWUoKSkKKyAgICAgICAgICAgICAgICBjaGFyZ2luZ1RpbWVDaGFuZ2VkID0gdHJ1ZTsKKworICAg
ICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiUGVyY2VudGFnZSIpKSB7CisgICAgICAgICAg
ICBlbGRidXNfbWVzc2FnZV9pdGVyX2FyZ3VtZW50c19nZXQodmFyaWFudCwgImQiLCAmbGV2ZWwp
OworICAgICAgICAgICAgaWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGxldmVsICE9IGNsaWVu
dEJhdHRlcnlTdGF0dXMtPmxldmVsKCkgKiAxMDApCisgICAgICAgICAgICAgICAgbGV2ZWxDaGFu
Z2VkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFJlZlB0cjxCYXR0ZXJ5U3RhdHVz
PiBiYXR0ZXJ5U3RhdHVzID0gQmF0dGVyeVN0YXR1czo6Y3JlYXRlKGNoYXJnaW5nLCBjaGFyZ2lu
Z1RpbWUsIGRpc2NoYXJnaW5nVGltZSwgbGV2ZWwgLyAxMDApOworICAgIGlmIChjaGFyZ2luZ0No
YW5nZWQpCisgICAgICAgIGNsaWVudC0+c2V0QmF0dGVyeVN0YXR1cyhldmVudE5hbWVzKCkuY2hh
cmdpbmdjaGFuZ2VFdmVudCwgYmF0dGVyeVN0YXR1cyk7CisgICAgaWYgKGNoYXJnaW5nVGltZUNo
YW5nZWQpCisgICAgICAgIGNsaWVudC0+c2V0QmF0dGVyeVN0YXR1cyhldmVudE5hbWVzKCkuY2hh
cmdpbmd0aW1lY2hhbmdlRXZlbnQsIGJhdHRlcnlTdGF0dXMpOworICAgIGlmIChkaXNjaGFyZ2lu
Z1RpbWVDaGFuZ2VkKQorICAgICAgICBjbGllbnQtPnNldEJhdHRlcnlTdGF0dXMoZXZlbnROYW1l
cygpLmRpc2NoYXJnaW5ndGltZWNoYW5nZUV2ZW50LCBiYXR0ZXJ5U3RhdHVzKTsKKyAgICBpZiAo
bGV2ZWxDaGFuZ2VkKQorICAgICAgICBjbGllbnQtPnNldEJhdHRlcnlTdGF0dXMoZXZlbnROYW1l
cygpLmxldmVsY2hhbmdlRXZlbnQsIGJhdHRlcnlTdGF0dXMpOwogfQogCi12b2lkIEJhdHRlcnlQ
cm92aWRlckVmbDo6dGltZXJGaXJlZCgpCitzdGF0aWMgdm9pZCBiYXR0ZXJ5UHJvcGVydGllc0No
YW5nZWQodm9pZCogZGF0YSwgY29uc3QgRWxkYnVzX01lc3NhZ2UqKQogewotICAgIEVfREJ1c19D
b25uZWN0aW9uKiBlZGJ1c0Nvbm5lY3Rpb24gPSBlX2RidXNfYnVzX2dldChEQlVTX0JVU19TWVNU
RU0pOwotICAgIGlmIChlZGJ1c0Nvbm5lY3Rpb24pCi0gICAgICAgIGVfdXBvd2VyX2dldF9hbGxf
ZGV2aWNlcyhlZGJ1c0Nvbm5lY3Rpb24sIGdldEJhdHRlcnlTdGF0dXMsIHN0YXRpY19jYXN0PHZv
aWQqPih0aGlzKSk7CisgICAgRWxkYnVzX1Byb3h5KiBwcm94eSA9IHN0YXRpY19jYXN0PEVsZGJ1
c19Qcm94eSo+KGRhdGEpOworICAgIEJhdHRlcnlQcm92aWRlckVmbCogcHJvdmlkZXIgPSBzdGF0
aWNfY2FzdDxCYXR0ZXJ5UHJvdmlkZXJFZmwqPihlbGRidXNfcHJveHlfZGF0YV9nZXQocHJveHks
ICJfcHJvdmlkZXIiKSk7CisgICAgZWxkYnVzX3Byb3h5X3Byb3BlcnR5X2dldF9hbGwocHJveHks
IGJhdHRlcnlQcm9wZXJ0aWVzLCBwcm92aWRlcik7CiB9CiAKLXZvaWQgQmF0dGVyeVByb3ZpZGVy
RWZsOjpnZXRCYXR0ZXJ5U3RhdHVzKHZvaWQqIGRhdGEsIHZvaWQqIHJlcGx5RGF0YSwgREJ1c0Vy
cm9yKiBkQnVzRXJyb3IpCit2b2lkIEJhdHRlcnlQcm92aWRlckVmbDo6ZGV2aWNlVHlwZUNhbGxi
YWNrKHZvaWQqIGRhdGEsIGNvbnN0IEVsZGJ1c19NZXNzYWdlKiBtZXNzYWdlLCBFbGRidXNfUGVu
ZGluZyopCiB7Ci0gICAgRV9Va2l0X0dldF9BbGxfRGV2aWNlc19SZXR1cm4qIGV1a2l0RGV2aWNl
TmFtZXMgPSBzdGF0aWNfY2FzdDxFX1VraXRfR2V0X0FsbF9EZXZpY2VzX1JldHVybio+KHJlcGx5
RGF0YSk7Ci0gICAgaWYgKCFldWtpdERldmljZU5hbWVzIHx8ICFldWtpdERldmljZU5hbWVzLT5z
dHJpbmdzIHx8IGRidXNfZXJyb3JfaXNfc2V0KGRCdXNFcnJvcikpIHsKLSAgICAgICAgIGRidXNf
ZXJyb3JfZnJlZShkQnVzRXJyb3IpOwotICAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAo
ZWxkYnVzX21lc3NhZ2VfZXJyb3JfZ2V0KG1lc3NhZ2UsIG51bGxwdHIsIG51bGxwdHIpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBFbGRidXNfTWVzc2FnZV9JdGVyKiB2YXJpYW50OworICAgIGlm
ICghZWxkYnVzX21lc3NhZ2VfYXJndW1lbnRzX2dldChtZXNzYWdlLCAidiIsICZ2YXJpYW50KSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgdW5zaWduZWQgdHlwZSA9IDA7CisgICAgZWxkYnVzX21l
c3NhZ2VfaXRlcl9hcmd1bWVudHNfZ2V0KHZhcmlhbnQsICJ1IiwgJnR5cGUpOworICAgIGlmICh0
eXBlICE9IDIpCisgICAgICAgIHJldHVybjsKIAotICAgIEVfREJ1c19Db25uZWN0aW9uKiBlZGJ1
c0Nvbm5lY3Rpb24gPSBlX2RidXNfYnVzX2dldChEQlVTX0JVU19TWVNURU0pOwotICAgIEVpbmFf
TGlzdCogbGlzdDsKLSAgICB2b2lkKiBkZXZpY2VOYW1lOwotICAgIEVJTkFfTElTVF9GT1JFQUNI
KGV1a2l0RGV2aWNlTmFtZXMtPnN0cmluZ3MsIGxpc3QsIGRldmljZU5hbWUpCi0gICAgICAgIGVf
dXBvd2VyX2dldF9hbGxfcHJvcGVydGllcyhlZGJ1c0Nvbm5lY3Rpb24sIHN0YXRpY19jYXN0PGNo
YXIqPihkZXZpY2VOYW1lKSwgc2V0QmF0dGVyeUNsaWVudCwgZGF0YSk7CisgICAgRWxkYnVzX1By
b3h5KiBwcm94eSA9IHN0YXRpY19jYXN0PEVsZGJ1c19Qcm94eSo+KGRhdGEpOworICAgIEJhdHRl
cnlQcm92aWRlckVmbCogcHJvdmlkZXIgPSBzdGF0aWNfY2FzdDxCYXR0ZXJ5UHJvdmlkZXJFZmwq
PihlbGRidXNfcHJveHlfZGF0YV9nZXQocHJveHksICJfcHJvdmlkZXIiKSk7CisgICAgZWxkYnVz
X3Byb3h5X3Byb3BlcnR5X2dldF9hbGwocHJveHksIGJhdHRlcnlQcm9wZXJ0aWVzLCBwcm92aWRl
cik7CisgICAgcHJvdmlkZXItPnNldFNpZ25hbEhhbmRsZXIoZWxkYnVzX3Byb3h5X3NpZ25hbF9o
YW5kbGVyX2FkZChwcm94eSwgIkNoYW5nZWQiLCBiYXR0ZXJ5UHJvcGVydGllc0NoYW5nZWQsIHBy
b3h5KSk7CiB9CiAKLXZvaWQgQmF0dGVyeVByb3ZpZGVyRWZsOjpzZXRCYXR0ZXJ5Q2xpZW50KHZv
aWQqIGRhdGEsIHZvaWQqIHJlcGx5RGF0YSwgREJ1c0Vycm9yKiBkQnVzRXJyb3IpCit2b2lkIEJh
dHRlcnlQcm92aWRlckVmbDo6ZW51bWVyYXRlRGV2aWNlcyh2b2lkKiBkYXRhLCBjb25zdCBFbGRi
dXNfTWVzc2FnZSogbWVzc2FnZSwgRWxkYnVzX1BlbmRpbmcqKQogewotICAgIEVfVWtpdF9HZXRf
QWxsX1Byb3BlcnRpZXNfUmV0dXJuKiBldWtpdFByb3BlcnR5TmFtZXMgPSBzdGF0aWNfY2FzdDxF
X1VraXRfR2V0X0FsbF9Qcm9wZXJ0aWVzX1JldHVybio+KHJlcGx5RGF0YSk7CisgICAgaWYgKGVs
ZGJ1c19tZXNzYWdlX2Vycm9yX2dldChtZXNzYWdlLCBudWxscHRyLCBudWxscHRyKSkKKyAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKCFldWtpdFByb3BlcnR5TmFtZXMgfHwgZGJ1c19lcnJvcl9p
c19zZXQoZEJ1c0Vycm9yKSkgewotICAgICAgICBkYnVzX2Vycm9yX2ZyZWUoZEJ1c0Vycm9yKTsK
KyAgICBFbGRidXNfTWVzc2FnZV9JdGVyKiBhcnJheTsKKyAgICBpZiAoIWVsZGJ1c19tZXNzYWdl
X2FyZ3VtZW50c19nZXQobWVzc2FnZSwgImFvIiwgJmFycmF5KSkKICAgICAgICAgcmV0dXJuOwor
CisgICAgY2hhciogcGF0aDsKKyAgICB3aGlsZSAoZWxkYnVzX21lc3NhZ2VfaXRlcl9nZXRfYW5k
X25leHQoYXJyYXksICdvJywgJnBhdGgpKSB7CisgICAgICAgIGlmICghcGF0aCB8fCAhcGF0aFsw
XSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIEVsZGJ1c19PYmplY3QqIG9iamVjdCA9
IGVsZGJ1c19vYmplY3RfZ2V0KHN0YXRpY19jYXN0PEJhdHRlcnlQcm92aWRlckVmbCo+KGRhdGEp
LT5jb25uZWN0aW9uKCksIEJVUywgcGF0aCk7CisgICAgICAgIGlmICghb2JqZWN0KQorICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgRWxkYnVzX1Byb3h5KiBwcm94eSA9IGVsZGJ1c19w
cm94eV9nZXQob2JqZWN0LCAib3JnLmZyZWVkZXNrdG9wLlVQb3dlci5EZXZpY2UiKTsKKyAgICAg
ICAgaWYgKCFwcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGVsZGJ1c19w
cm94eV9kYXRhX3NldChwcm94eSwgIl9wcm92aWRlciIsIGRhdGEpOworICAgICAgICBlbGRidXNf
cHJveHlfcHJvcGVydHlfZ2V0KHByb3h5LCAiVHlwZSIsIGRldmljZVR5cGVDYWxsYmFjaywgcHJv
eHkpOwogICAgIH0KK30KIAotICAgIGlmICghZXVraXRQcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0aWVz
KQordm9pZCBCYXR0ZXJ5UHJvdmlkZXJFZmw6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIGlmICht
X2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIEVfVWtpdF9Qcm9wZXJ0eSogcHJv
cGVydHkgPSBzdGF0aWNfY2FzdDxFX1VraXRfUHJvcGVydHkqPihlaW5hX2hhc2hfZmluZChldWtp
dFByb3BlcnR5TmFtZXMtPnByb3BlcnRpZXMsICJUeXBlIikpOwotICAgIGlmICghcHJvcGVydHkg
fHwgcHJvcGVydHktPnZhbC51ICE9IEVfVVBPV0VSX1NPVVJDRV9CQVRURVJZKQorICAgIGlmICgh
ZWxkYnVzX2luaXQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQmF0dGVyeVByb3ZpZGVyRWZs
KiBjbGllbnQgPSBzdGF0aWNfY2FzdDxCYXR0ZXJ5UHJvdmlkZXJFZmwqPihkYXRhKTsKLSAgICBC
YXR0ZXJ5U3RhdHVzKiBjbGllbnRCYXR0ZXJ5U3RhdHVzID0gY2xpZW50LT5iYXR0ZXJ5U3RhdHVz
KCk7Ci0gICAgYm9vbCBjaGFyZ2luZyA9IGZhbHNlOwotICAgIGJvb2wgY2hhcmdpbmdDaGFuZ2Vk
ID0gZmFsc2U7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGNoYXJnaW5nU3RhdGUgPSAwOworICAgIG1f
Y29ubmVjdGlvbiA9IGVsZGJ1c19jb25uZWN0aW9uX2dldChFTERCVVNfQ09OTkVDVElPTl9UWVBF
X1NZU1RFTSk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obV9jb25uZWN0aW9uKTsK
IAotICAgIHByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8RV9Va2l0X1Byb3BlcnR5Kj4oZWluYV9oYXNo
X2ZpbmQoZXVraXRQcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0aWVzLCAiU3RhdGUiKSk7Ci0gICAgaWYg
KCFwcm9wZXJ0eSkKKyAgICBtX29iamVjdCA9IGVsZGJ1c19vYmplY3RfZ2V0KG1fY29ubmVjdGlv
biwgQlVTLCAiL29yZy9mcmVlZGVza3RvcC9VUG93ZXIiKTsKKyAgICBpZiAoIW1fb2JqZWN0KSB7
CisgICAgICAgIGVsZGJ1c19jb25uZWN0aW9uX3VucmVmKG1fY29ubmVjdGlvbik7CisgICAgICAg
IG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIWNsaWVu
dEJhdHRlcnlTdGF0dXMgfHwgY2hhcmdpbmdTdGF0ZSAhPSBwcm9wZXJ0eS0+dmFsLnUpIHsKLSAg
ICAgICAgY2hhcmdpbmdDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgY2hhcmdpbmdTdGF0ZSA9IHBy
b3BlcnR5LT52YWwudTsKLSAgICAgICAgKGNoYXJnaW5nU3RhdGUgPT0gRV9VUE9XRVJfU1RBVEVf
RlVMTCB8fCBjaGFyZ2luZ1N0YXRlID09IEVfVVBPV0VSX1NUQVRFX0NIQVJHSU5HKSA/IGNoYXJn
aW5nID0gdHJ1ZSA6IGNoYXJnaW5nID0gZmFsc2U7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNoYXJn
aW5nID0gY2xpZW50QmF0dGVyeVN0YXR1cy0+Y2hhcmdpbmcoKTsKLQotICAgIGJvb2wgY2hhcmdp
bmdUaW1lQ2hhbmdlZCA9IGZhbHNlOwotICAgIGJvb2wgZGlzY2hhcmdpbmdUaW1lQ2hhbmdlZCA9
IGZhbHNlOwotICAgIGRvdWJsZSBjaGFyZ2luZ1RpbWUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRv
dWJsZT46OmluZmluaXR5KCk7Ci0gICAgZG91YmxlIGRpc2NoYXJnaW5nVGltZSA9IHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKLQotICAgIGlmIChjaGFyZ2luZykgewot
ICAgICAgICBpZiAoIWNsaWVudEJhdHRlcnlTdGF0dXMgfHwgY2xpZW50QmF0dGVyeVN0YXR1cy0+
ZGlzY2hhcmdpbmdUaW1lKCkgIT0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0
eSgpKQotICAgICAgICAgICAgZGlzY2hhcmdpbmdUaW1lQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAg
IGRpc2NoYXJnaW5nVGltZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHko
KTsKLSAgICAgICAgcHJvcGVydHkgPSBzdGF0aWNfY2FzdDxFX1VraXRfUHJvcGVydHkqPihlaW5h
X2hhc2hfZmluZChldWtpdFByb3BlcnR5TmFtZXMtPnByb3BlcnRpZXMsICJUaW1lVG9GdWxsIikp
OwotICAgICAgICBpZiAoIXByb3BlcnR5KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBp
ZiAoIWNsaWVudEJhdHRlcnlTdGF0dXMgfHwgY2xpZW50QmF0dGVyeVN0YXR1cy0+Y2hhcmdpbmdU
aW1lKCkgIT0gcHJvcGVydHktPnZhbC54KQotICAgICAgICAgICAgY2hhcmdpbmdUaW1lQ2hhbmdl
ZCA9IHRydWU7Ci0gICAgICAgIGNoYXJnaW5nVGltZSA9IHByb3BlcnR5LT52YWwueDsKLSAgICB9
IGVsc2UgewotICAgICAgICBpZiAoIWNsaWVudEJhdHRlcnlTdGF0dXMgfHwgY2xpZW50QmF0dGVy
eVN0YXR1cy0+Y2hhcmdpbmdUaW1lKCkgIT0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpp
bmZpbml0eSgpKQotICAgICAgICAgICAgY2hhcmdpbmdUaW1lQ2hhbmdlZCA9IHRydWU7Ci0gICAg
ICAgIGNoYXJnaW5nVGltZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHko
KTsKLSAgICAgICAgcHJvcGVydHkgPSBzdGF0aWNfY2FzdDxFX1VraXRfUHJvcGVydHkqPihlaW5h
X2hhc2hfZmluZChldWtpdFByb3BlcnR5TmFtZXMtPnByb3BlcnRpZXMsICJUaW1lVG9FbXB0eSIp
KTsKLSAgICAgICAgaWYgKCFwcm9wZXJ0eSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
aWYgKCFjbGllbnRCYXR0ZXJ5U3RhdHVzIHx8IGNsaWVudEJhdHRlcnlTdGF0dXMtPmRpc2NoYXJn
aW5nVGltZSgpICE9IHByb3BlcnR5LT52YWwueCkKLSAgICAgICAgICAgIGRpc2NoYXJnaW5nVGlt
ZUNoYW5nZWQgPSB0cnVlOwotICAgICAgICBkaXNjaGFyZ2luZ1RpbWUgPSBwcm9wZXJ0eS0+dmFs
Lng7CiAgICAgfQogCi0gICAgYm9vbCBsZXZlbENoYW5nZWQgPSBmYWxzZTsKLSAgICBwcm9wZXJ0
eSA9IHN0YXRpY19jYXN0PEVfVWtpdF9Qcm9wZXJ0eSo+KGVpbmFfaGFzaF9maW5kKGV1a2l0UHJv
cGVydHlOYW1lcy0+cHJvcGVydGllcywgIlBlcmNlbnRhZ2UiKSk7Ci0gICAgaWYgKCFwcm9wZXJ0
eSkKKyAgICBtX3Byb3h5ID0gZWxkYnVzX3Byb3h5X2dldChtX29iamVjdCwgIm9yZy5mcmVlZGVz
a3RvcC5VUG93ZXIiKTsKKyAgICBpZiAoIW1fcHJveHkpIHsKKyAgICAgICAgZWxkYnVzX29iamVj
dF91bnJlZihtX29iamVjdCk7CisgICAgICAgIG1fb2JqZWN0ID0gbnVsbHB0cjsKKyAgICAgICAg
ZWxkYnVzX2Nvbm5lY3Rpb25fdW5yZWYobV9jb25uZWN0aW9uKTsKKyAgICAgICAgbV9jb25uZWN0
aW9uID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIGRvdWJsZSBsZXZl
bCA9IHByb3BlcnR5LT52YWwuZCAvIDEwMDsKLSAgICBpZiAoIWNsaWVudEJhdHRlcnlTdGF0dXMg
fHwgY2xpZW50QmF0dGVyeVN0YXR1cy0+bGV2ZWwoKSAhPSBsZXZlbCkKLSAgICAgICAgbGV2ZWxD
aGFuZ2VkID0gdHJ1ZTsKKyAgICBlbGRidXNfcHJveHlfY2FsbChtX3Byb3h5LCAiRW51bWVyYXRl
RGV2aWNlcyIsIGVudW1lcmF0ZURldmljZXMsIHRoaXMsIC0xLCAiIik7Cit9CiAKLSAgICBXVEY6
OlJlZlB0cjxCYXR0ZXJ5U3RhdHVzPiBiYXR0ZXJ5U3RhdHVzID0gQmF0dGVyeVN0YXR1czo6Y3Jl
YXRlKGNoYXJnaW5nLCBjaGFyZ2luZ1RpbWUsIGRpc2NoYXJnaW5nVGltZSwgbGV2ZWwpOwotICAg
IGlmIChjaGFyZ2luZ0NoYW5nZWQpCi0gICAgICAgIGNsaWVudC0+c2V0QmF0dGVyeVN0YXR1cyhl
dmVudE5hbWVzKCkuY2hhcmdpbmdjaGFuZ2VFdmVudCwgYmF0dGVyeVN0YXR1cyk7Ci0gICAgaWYg
KGNoYXJnaW5nVGltZUNoYW5nZWQpCi0gICAgICAgIGNsaWVudC0+c2V0QmF0dGVyeVN0YXR1cyhl
dmVudE5hbWVzKCkuY2hhcmdpbmd0aW1lY2hhbmdlRXZlbnQsIGJhdHRlcnlTdGF0dXMpOwotICAg
IGlmIChkaXNjaGFyZ2luZ1RpbWVDaGFuZ2VkKQotICAgICAgICBjbGllbnQtPnNldEJhdHRlcnlT
dGF0dXMoZXZlbnROYW1lcygpLmRpc2NoYXJnaW5ndGltZWNoYW5nZUV2ZW50LCBiYXR0ZXJ5U3Rh
dHVzKTsKLSAgICBpZiAobGV2ZWxDaGFuZ2VkKQotICAgICAgICBjbGllbnQtPnNldEJhdHRlcnlT
dGF0dXMoZXZlbnROYW1lcygpLmxldmVsY2hhbmdlRXZlbnQsIGJhdHRlcnlTdGF0dXMpOwordm9p
ZCBCYXR0ZXJ5UHJvdmlkZXJFZmw6OnNldEJhdHRlcnlTdGF0dXMoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIFBhc3NSZWZQdHI8QmF0dGVyeVN0YXR1cz4gYmF0dGVyeVN0YXR1cykKK3sK
KyAgICBtX2JhdHRlcnlTdGF0dXMgPSBiYXR0ZXJ5U3RhdHVzOworICAgIG1fY2xpZW50LT5kaWRD
aGFuZ2VCYXR0ZXJ5U3RhdHVzKGV2ZW50VHlwZSwgbV9iYXR0ZXJ5U3RhdHVzKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVm
bC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0JhdHRlcnlQcm92aWRlckVmbC5oCmlu
ZGV4IDhmMjE4NDMzM2I1NjA2ZTMwNjNmYWQ4NGI2MTdlMTY1ZDcxZTZlMjYuLjgxZWQ5YmMwYjM4
MmI5NzhmZjVmMjQ0NjYxZjRlODk0ZjNhMWM2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9CYXR0ZXJ5UHJvdmlkZXJFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvQmF0dGVyeVByb3ZpZGVyRWZsLmgKQEAgLTI0LDE5ICsyNCwxNyBAQAogCiAj
aW5jbHVkZSAiQmF0dGVyeUNsaWVudC5oIgogI2luY2x1ZGUgIkJhdHRlcnlTdGF0dXMuaCIKLSNp
bmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPEVsZGJ1cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZy5oPgogCi10eXBlZGVmIHN0cnVjdCBEQnVzRXJyb3IgREJ1c0Vycm9yOwot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJhdHRlcnlQcm92aWRlckVmbENsaWVudDsK
IAogY2xhc3MgQmF0dGVyeVByb3ZpZGVyRWZsIHsKIHB1YmxpYzoKLSAgICBCYXR0ZXJ5UHJvdmlk
ZXJFZmwoQmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50Kik7Ci0gICAgfkJhdHRlcnlQcm92aWRlckVm
bCgpIHsgfQorICAgIGV4cGxpY2l0IEJhdHRlcnlQcm92aWRlckVmbChCYXR0ZXJ5UHJvdmlkZXJF
ZmxDbGllbnQqKTsKKyAgICB+QmF0dGVyeVByb3ZpZGVyRWZsKCk7CiAKICAgICB2aXJ0dWFsIHZv
aWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKQEAg
LTQ1LDE0ICs0MywxOSBAQCBwdWJsaWM6CiAgICAgQmF0dGVyeVN0YXR1cyogYmF0dGVyeVN0YXR1
cygpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIHZvaWQgdGltZXJGaXJlZCgpOwotICAgIHN0YXRp
YyB2b2lkIGdldEJhdHRlcnlTdGF0dXModm9pZCogZGF0YSwgdm9pZCogcmVwbHlEYXRhLCBEQnVz
RXJyb3IqKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRCYXR0ZXJ5Q2xpZW50KHZvaWQqIGRhdGEsIHZv
aWQqIHJlcGx5RGF0YSwgREJ1c0Vycm9yKik7CisgICAgc3RhdGljIHZvaWQgZW51bWVyYXRlRGV2
aWNlcyh2b2lkKiBkYXRhLCBjb25zdCBFbGRidXNfTWVzc2FnZSosIEVsZGJ1c19QZW5kaW5nKik7
CisgICAgc3RhdGljIHZvaWQgZGV2aWNlVHlwZUNhbGxiYWNrKHZvaWQqIGRhdGEsIGNvbnN0IEVs
ZGJ1c19NZXNzYWdlKiwgRWxkYnVzX1BlbmRpbmcqKTsKKworICAgIEVsZGJ1c19Db25uZWN0aW9u
KiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uOyB9CisgICAgdm9pZCBzZXRTaWdu
YWxIYW5kbGVyKEVsZGJ1c19TaWduYWxfSGFuZGxlciogc2lnbmFsSGFuZGxlcikgeyBtX3NpZ25h
bEhhbmRsZXIgPSBzaWduYWxIYW5kbGVyOyB9CiAKICAgICBCYXR0ZXJ5UHJvdmlkZXJFZmxDbGll
bnQqIG1fY2xpZW50OwotICAgIFRpbWVyIG1fdGltZXI7CiAgICAgUmVmUHRyPEJhdHRlcnlTdGF0
dXM+IG1fYmF0dGVyeVN0YXR1czsKLSAgICBjb25zdCBkb3VibGUgbV9iYXR0ZXJ5U3RhdHVzUmVm
cmVzaEludGVydmFsOworCisgICAgRWxkYnVzX0Nvbm5lY3Rpb24qIG1fY29ubmVjdGlvbjsKKyAg
ICBFbGRidXNfT2JqZWN0KiBtX29iamVjdDsKKyAgICBFbGRidXNfUHJveHkqIG1fcHJveHk7Cisg
ICAgRWxkYnVzX1NpZ25hbF9IYW5kbGVyKiBtX3NpZ25hbEhhbmRsZXI7CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbWFpbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbWFpbi5jcHAKaW5kZXggMjdiZmZj
OTk1ZTgzMDhjOGFjMWNjYzYxZWRlOTMxZjY0ZTdjODgwYS4uMGE5ZjFmNWI1MDA5OTZjMGRjZTli
YTEyMDZmZjIyYjE5ZDYzMjA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX21haW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19tYWluLmNwcApAQCAtMzYsNiArMzYsMTAgQEAKICNpbmNsdWRlIDxFY29yZV9YLmg+
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKyNpbmNsdWRlIDxFbGRidXMu
aD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51bSBjbGFzcyBFRkxNb2R1bGVJ
bml0RmFpbHVyZSB7CkBAIC00Niw3ICs1MCwxMCBAQCBlbnVtIGNsYXNzIEVGTE1vZHVsZUluaXRG
YWlsdXJlIHsKICAgICBFY29yZUltZiwKICAgICBFZnJlZXQsCiAgICAgRWNvcmVYLAotICAgIEVk
amUKKyAgICBFZGplLAorI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKyAgICBFbGRidXMKKyNl
bmRpZgogfTsKIAogRXdrTWFpbjo6RXdrTWFpbigpCkBAIC0xMjgsNiArMTM1LDEzIEBAIGludCBF
d2tNYWluOjppbml0aWFsaXplKCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCisjaWYgRU5B
QkxFKEJBVFRFUllfU1RBVFVTKQorICAgIGlmICghZWxkYnVzX2luaXQoKSkgeworICAgICAgICBD
UklUSUNBTCgiQ291bGQgbm90IGluaXQgZWxkYnVzLiIpOworICAgICAgICBzaHV0ZG93bkluaXRp
YWxpemVkRUZMTW9kdWxlcyhFRkxNb2R1bGVJbml0RmFpbHVyZTo6RWxkYnVzKTsKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorI2VuZGlmCiAgICAgaWYgKCFlY29yZV9tYWluX2xvb3BfZ2xpYl9p
bnRlZ3JhdGUoKSkgewogICAgICAgICBXQVJOKCJFY29yZSB3YXMgbm90IGNvbXBpbGVkIHdpdGgg
R0xpYiBzdXBwb3J0LCBzb21lIHBsdWdpbnMgd2lsbCBub3QgIgogICAgICAgICAgICAgIndvcmsg
KGllOiBBZG9iZSBGbGFzaCkiKTsKQEAgLTE0MSw2ICsxNTUsOSBAQCBpbnQgRXdrTWFpbjo6Zmlu
YWxpemUoKQogICAgIGlmICgtLW1faW5pdENvdW50KQogICAgICAgICByZXR1cm4gbV9pbml0Q291
bnQ7CiAKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisgICAgZWxkYnVzX3NodXRkb3duKCk7
CisjZW5kaWYKICAgICBlZGplX3NodXRkb3duKCk7CiAjaWZkZWYgSEFWRV9FQ09SRV9YCiAgICAg
ZWNvcmVfeF9zaHV0ZG93bigpOwpAQCAtMTYwLDYgKzE3NywxMCBAQCBpbnQgRXdrTWFpbjo6Zmlu
YWxpemUoKQogdm9pZCBFd2tNYWluOjpzaHV0ZG93bkluaXRpYWxpemVkRUZMTW9kdWxlcyhFRkxN
b2R1bGVJbml0RmFpbHVyZSBtb2R1bGUpCiB7CiAgICAgc3dpdGNoIChtb2R1bGUpIHsKKyNpZiBF
TkFCTEUoQkFUVEVSWV9TVEFUVVMpCisgICAgY2FzZSBFRkxNb2R1bGVJbml0RmFpbHVyZTo6RWxk
YnVzOgorICAgICAgICBlbGRidXNfc2h1dGRvd24oKTsKKyNlbmRpZgogICAgIGNhc2UgRUZMTW9k
dWxlSW5pdEZhaWx1cmU6OkVkamU6CiAjaWZkZWYgSEFWRV9FQ09SRV9YCiAgICAgICAgIGVjb3Jl
X3hfc2h1dGRvd24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kRV9EQnVzLmNtYWtl
IGIvU291cmNlL2NtYWtlL0ZpbmRFX0RCdXMuY21ha2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDJiNTYyNDJkMmUwMTc3OTQyNWZmNjNmZDhjOTljMTNkYjdlOTQxNWEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL2NtYWtlL0ZpbmRF
X0RCdXMuY21ha2UKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0jIC0gVHJ5IHRvIGZp
bmQgRV9EQnVzCi0jIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQotIwotIyAgRV9EQlVTX0ZP
VU5EIC0gc3lzdGVtIGhhcyBFX0RCdXMgaW5zdGFsbGVkLgotIyAgRV9EQlVTX0lOQ0xVREVfRElS
UyAtIGRpcmVjdG9yaWVzIHdoaWNoIGNvbnRhaW4gdGhlIEVfREJ1cyBoZWFkZXJzLgotIyAgRV9E
QlVTX0xJQlJBUklFUyAtIGxpYnJhcmllcyByZXF1aXJlZCB0byBsaW5rIGFnYWluc3QgRV9EQnVz
LgotIwotIyBPcHRpb25hbGx5LCB0aGUgQ09NUE9ORU5UUyBrZXl3b3JkIGNhbiBiZSBwYXNzZWQg
dG8gZmluZF9wYWNrYWdlKCkKLSMgYW5kIGFkZGl0aW9uYWwgRV9EQnVzIGxpYnJhcmllcyBjYW4g
YmUgbG9va2VkIGZvci4gQ3VycmVudGx5LCB0aGUKLSMgZm9sbG93aW5nIGxpYnJhcmllcyBjYW4g
YmUgc2VhcmNoZWQsIGFuZCB0aGV5IGRlZmluZSB0aGUgZm9sbG93aW5nCi0jIHZhcmlhYmxlcyBp
ZiBmb3VuZDoKLSMKLSMgIEVVS0lUIC0gRV9EQlVTX0VVS0lUX0lOQ0xVREVfRElSUyBhbmQgRV9E
QlVTX0VVS0lUX0xJQlJBUklFUwotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9y
YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
Ci0jIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCi0j
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOwotIyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKLSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgotIyBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW5jbHVkZShFRkxIZWxwZXJz
KQotCi1GSU5EX0VGTF9MSUJSQVJZKEVfREJVUwotICAgIEhFQURFUlMgRV9EQnVzLmgKLSAgICBI
RUFERVJfUFJFRklYRVMgZV9kYnVzLTEKLSAgICBMSUJSQVJZIGVkYnVzCi0pCi0KLSMgQ29tcG9u
ZW50cy4KLUZJTkRfRUZMX0xJQlJBUlkoRV9EQlVTX0VVS0lUCi0gICAgSEVBREVSUyBFX1VraXQu
aAotICAgIEhFQURFUl9QUkVGSVhFUyBlX2RidXMtMQotICAgIExJQlJBUlkgZXVraXQKLSkKLQot
Zm9yZWFjaCAoX2NvbXBvbmVudCAke0VfREJ1c19GSU5EX0NPTVBPTkVOVFN9KQotICAgIHNldChf
ZV9kYnVzX2NvbXBvbmVudCAiRV9EQlVTXyR7X2NvbXBvbmVudH0iKQotICAgIHN0cmluZyhUT1VQ
UEVSICR7X2VfZGJ1c19jb21wb25lbnR9IF9VUFBFUl9OQU1FKQotCi0gICAgbGlzdChBUFBFTkQg
X0VfREJVU19SRVFVSVJFRF9DT01QT05FTlRfVkFSUyAke19VUFBFUl9OQU1FfV9JTkNMVURFX0RJ
UlMgJHtfVVBQRVJfTkFNRX1fTElCUkFSSUVTKQotZW5kZm9yZWFjaCAoKQotCi1pbmNsdWRlKEZp
bmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQotRklORF9QQUNLQUdFX0hBTkRMRV9TVEFOREFS
RF9BUkdTKEVfREJ1cyBSRVFVSVJFRF9WQVJTIEVfREJVU19JTkNMVURFX0RJUlMgRV9EQlVTX0xJ
QlJBUklFUyAke19FX0RCVVNfUkVRVUlSRURfQ09NUE9ORU5UX1ZBUlN9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFUlNJT05fVkFSICAgRV9EQlVTX1ZFUlNJT04p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDNmODQ0ZDEyMTNlMjVmMzc3ZjY5NjIwYjExZDI4NGUw
ZTQ2YjM2NjcuLmMyZmE3NjIxYWIyOWY3NDc2Y2I0MDhjN2RmOTZjNDVkOTNiMWE2MzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlCkBAIC0xODYsOSArMTg2LDggQEAgaWYgKFdURl9PU19VTklYKQogICAg
IGFkZF9kZWZpbml0aW9ucygtRFhQX1VOSVgpCiBlbmRpZiAoV1RGX09TX1VOSVgpCiAKLWlmIChF
TkFCTEVfQkFUVEVSWV9TVEFUVVMgT1IgKEVGTF9SRVFVSVJFRF9WRVJTSU9OIFZFUlNJT05fTEVT
UyAxLjgpKQotICAgIGZpbmRfcGFja2FnZShEQnVzIFJFUVVJUkVEKQotICAgIGZpbmRfcGFja2Fn
ZShFX0RCdXMgMS43IENPTVBPTkVOVFMgRVVLaXQpCitpZiAoRU5BQkxFX0JBVFRFUllfU1RBVFVT
KQorICAgIGZpbmRfcGFja2FnZShFbGRidXMgJHtFRkxfUkVRVUlSRURfVkVSU0lPTn0gJHtFRkxf
Q09ORklHX01PREV9KQogZW5kaWYgKCkKIAogaWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVfV0VC
X0FVRElPKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGU1NWMxY2M0MzVjYzhmMTY1YjQ1YzJkNTczZGRiNTYwM2JlYzMyODkuLmUxZGYwNjNhOThi
MDE5YzZmM2Y0OThhNTVlNzU1MjBjYTBjZWIxYzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNC0xMS0yNyAgUnl1
YW4gQ2hvaSAgPHJ5dWFuLmNob2lAbmF2ZXJjb3JwLmNvbT4KKworICAgICAgICBbRUZMXSBSZW1v
dmUgRV9EYnVzIGRlcGVuZGVuY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzNjM1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0OiBSZW1vdmVkIEVf
REJVUyBpbmNsdWRlcy4KKwogMjAxNC0xMS0yNiAgQWtvcyBLaXNzICA8YWtpc3NAaW5mLnUtc3pl
Z2VkLmh1PgogCiAgICAgICAgIFtFRkxdW0dUS10gQnVtcCB1cCBGREUgcmVsb2NhdGlvbiBmaXhp
bmcgcGF0Y2ggdG8gdmVyc2lvbiBhY2NlcHRlZCB0byBMTFZNIHRydW5rLgpkaWZmIC0tZ2l0IGEv
VG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvTWluaUJyb3dzZXIv
ZWZsL0NNYWtlTGlzdHMudHh0CmluZGV4IGVjZTdjMmExYWRkMTczYjE4NzE5OTVmMjg3M2UxZDE0
ZDk4MGNlNDguLjg3ZWRlOWQwMGMyOGI2NjkyYmI0NTc2MDgzNmY0NTUwNDg5ZmNhMDIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9N
aW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50eHQKQEAgLTIzLDcgKzIzLDYgQEAgc2V0KE1pbmlC
cm93c2VyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0VFVF9JTkNMVURFX0RJUlN9CiAgICAg
JHtFT19JTkNMVURFX0RJUlN9CiAgICAgJHtEQlVTX0lOQ0xVREVfRElSU30KLSAgICAke0VfREJV
U19JTkNMVURFX0RJUlN9CiAgICAgJHtFRlJFRVRfSU5DTFVERV9ESVJTfQogICAgICR7RUlOQV9J
TkNMVURFX0RJUlN9CiAgICAgJHtFTERCVVNfSU5DTFVERV9ESVJTfQpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGMyYTc4OWY3NGI2YmM5MDVlZGRlZTgwNjBiMjYzZGRi
N2ExY2U4YzYuLjkwMjJiMGY2MmIwYmZmYmJmYmJjMmVmYjM2ZDQzMjE5ZWViMzFiOWYgMTAwNjQ0
Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0x
MS0yNyAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAbmF2ZXJjb3JwLmNvbT4KKworICAgICAgICBb
RUZMXSBSZW1vdmUgRV9EYnVzIGRlcGVuZGVuY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjM1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRFX0RCdXMuY21ha2U6IFJl
bW92ZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2U6CisKIDIwMTQt
MTEtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBPcHRpb25zR1RLLmNtYWtlIGFuZCBORVdTIGZvciAyLjcu
MSByZWxlYXNlLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>