<?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>86113</bug_id>
          
          <creation_ts>2012-05-10 10:46:09 -0700</creation_ts>
          <short_desc>Replace WebMediaPlayer::bytesLoaded() with an explicit didLoadingProgress()</short_desc>
          <delta_ts>2012-06-04 13:41:30 -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>Media</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>
          <dependson>88007</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ami Fischman">fischman</reporter>
          <assigned_to name="Ami Fischman">fischman</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fischman</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>scherkus</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>620709</commentid>
    <comment_count>0</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-05-10 10:46:09 -0700</bug_when>
    <thetext>Today WebMediaPlayer::bytesLoaded() is used only to detect loading progress happening (in HTMLMediaElement::changeNetworkStateFromLoadingToIdle()).  Instead, WebMediaPlayer could expose a
bool didLoadingProgress();
method that returned whether loading progress happened since the last time this function was called.  This would allow simplifying WMP implementations that don&apos;t otherwise need to track counts of bytes buffered.

(I hear scherkus/eric.carlson/acolwell discussed this f2f; feel free to add color to this bug if there&apos;s more to it that I missed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620719</commentid>
    <comment_count>1</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2012-05-10 10:56:52 -0700</bug_when>
    <thetext>Yeah the idea was to let ports have more choice in deciding what the definition of &quot;progress&quot; is.

There are a few options:
  1) Monitor changes in buffered() TimeRanges (would this be sufficient?)
  2) Ask ports for a loading percentage (a more abstract version of what we have today)
  3) Ask ports a &quot;did you progress since the last time I asked you?&quot; method (what you propose here)

While (3) is a bit more complex I believe the added flexibility is warranted here. Monitoring changes in buffered() as well as a load percentage assumes that the underlying port is actually buffering. For example, what would a port report in (1) and (2) if it was an infinite live stream?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620756</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-10 11:23:56 -0700</bug_when>
    <thetext>bytesLoaded() is also used in HTMLMediaElement::progressEventTimerFired() BTW.

Anyway yes, this change proposed by Ami seems like a good approach to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638061</commentid>
    <comment_count>3</comment_count>
      <attachid>145005</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-05-31 00:36:45 -0700</bug_when>
    <thetext>Created attachment 145005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638064</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-31 00:39:28 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638068</commentid>
    <comment_count>5</comment_count>
      <attachid>145005</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-31 00:44:02 -0700</bug_when>
    <thetext>Comment on attachment 145005
Patch

Attachment 145005 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12866126</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638069</commentid>
    <comment_count>6</comment_count>
      <attachid>145005</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-31 00:46:41 -0700</bug_when>
    <thetext>Comment on attachment 145005
Patch

Attachment 145005 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12861204</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638075</commentid>
    <comment_count>7</comment_count>
      <attachid>145005</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-31 00:53:40 -0700</bug_when>
    <thetext>Comment on attachment 145005
Patch

Attachment 145005 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12868135</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638077</commentid>
    <comment_count>8</comment_count>
      <attachid>145010</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-05-31 00:55:10 -0700</bug_when>
    <thetext>Created attachment 145010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638424</commentid>
    <comment_count>9</comment_count>
      <attachid>145010</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-05-31 08:05:30 -0700</bug_when>
    <thetext>Comment on attachment 145010
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:374
&gt; +    unsigned currentMaxTimeLoaded = maxTimeLoaded();

&quot;unsigned&quot;? Do you really only want to report loading progress once every second?

&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:375
&gt; +    bool ret = currentMaxTimeLoaded != m_maxTimeLoadedAtLastDidLoadingProgress;

&quot;ret&quot;? Be bold, use a few more letters and spell out the name of the variable ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638480</commentid>
    <comment_count>10</comment_count>
      <attachid>145099</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-05-31 09:07:28 -0700</bug_when>
    <thetext>Created attachment 145099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638482</commentid>
    <comment_count>11</comment_count>
      <attachid>145010</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-05-31 09:08:44 -0700</bug_when>
    <thetext>Comment on attachment 145010
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:374
&gt;&gt; +    unsigned currentMaxTimeLoaded = maxTimeLoaded();
&gt; 
&gt; &quot;unsigned&quot;? Do you really only want to report loading progress once every second?

Nope; that was a bug.  Fixed.

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:375
&gt;&gt; +    bool ret = currentMaxTimeLoaded != m_maxTimeLoadedAtLastDidLoadingProgress;
&gt; 
&gt; &quot;ret&quot;? Be bold, use a few more letters and spell out the name of the variable ;-)

On your head be it when the Character Availability Crisis of 2012 hits webkit-dev worldwide!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638492</commentid>
    <comment_count>12</comment_count>
      <attachid>145099</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-05-31 09:21:49 -0700</bug_when>
    <thetext>Comment on attachment 145099
Patch

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

This looks correct to me. Not marking r+ pending review by abarth, dglazkov, fishd, jamesr, or tkent.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:1850
&gt; +    } else {
&gt; +        if (timedelta &gt; 3.0 &amp;&amp; !m_sentStalledEvent) {

Nit: this could be made into an &quot;else if ( ... ) { &quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638493</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-05-31 09:22:30 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 145010 [details])
&gt; &gt;&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:375
&gt; &gt;&gt; +    bool ret = currentMaxTimeLoaded != m_maxTimeLoadedAtLastDidLoadingProgress;
&gt; &gt; 
&gt; &gt; &quot;ret&quot;? Be bold, use a few more letters and spell out the name of the variable ;-)
&gt; 
&gt; On your head be it when the Character Availability Crisis of 2012 hits webkit-dev worldwide!

Oh dear, now I am in for it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638496</commentid>
    <comment_count>14</comment_count>
      <attachid>145099</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-05-31 09:26:12 -0700</bug_when>
    <thetext>Comment on attachment 145099
Patch

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:1850
&gt;&gt; +        if (timedelta &gt; 3.0 &amp;&amp; !m_sentStalledEvent) {
&gt; 
&gt; Nit: this could be made into an &quot;else if ( ... ) { &quot;

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638498</commentid>
    <comment_count>15</comment_count>
      <attachid>145104</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-05-31 09:26:36 -0700</bug_when>
    <thetext>Created attachment 145104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638501</commentid>
    <comment_count>16</comment_count>
      <attachid>145104</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-05-31 09:29:59 -0700</bug_when>
    <thetext>Comment on attachment 145104
Patch

Chromium WebKit API changes LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638566</commentid>
    <comment_count>17</comment_count>
      <attachid>145104</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-31 11:00:17 -0700</bug_when>
    <thetext>Comment on attachment 145104
Patch

Rejecting attachment 145104 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
webkit-commit-queue/Source/WebKit/chromium/webkit --revision 139747 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
48&gt;At revision 139747.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/12866281</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638571</commentid>
    <comment_count>18</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-05-31 11:03:38 -0700</bug_when>
    <thetext>Committed r119125: &lt;http://trac.webkit.org/changeset/119125&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638700</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-31 14:06:49 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 88007</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145005</attachid>
            <date>2012-05-31 00:36:45 -0700</date>
            <delta_ts>2012-05-31 00:54:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86113-20120531003644.patch</filename>
            <type>text/plain</type>
            <size>26700</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM2ZjcxMzIyNTVlNTFm
OGI3MTAxMGVlZTRiZTIyMjE3ODFlNWIzMy4uZDhhMDcyODVjOTdiYTViZjAxYjUyOGQzMWJiOTNh
NjM3OGYxYWU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA1LTMxICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBXZWJN
ZWRpYVBsYXllcjo6Ynl0ZXNMb2FkZWQoKSB3aXRoIGFuIGV4cGxpY2l0IGRpZExvYWRpbmdQcm9n
cmVzcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjExMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyBmdW5jdGlvbmFsaXR5LCBzbyBubyBuZXcgdGVzdHMuICBMb2FkaW5nIHByb2dyZXNzIGlz
IGFscmVhZHkgdGVzdGVkIGJ5IGV4aXN0aW5nIGxheW91dHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6c3RhcnRQcm9ncmVzc0V2ZW50VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6Y2hhbmdlTmV0d29ya1N0YXRlRnJvbUxvYWRpbmdUb0lkbGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3RhcnRQbGF5YmFja1Byb2dyZXNzVGlt
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OmRpZExvYWRpbmdQcm9ncmVzcyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OmRpZExvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5Lmg6CisgICAgICAg
IChNZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRMb2Fk
aW5nUHJvZ3Jlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVRVEtpdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkaWRM
b2FkaW5nUHJvZ3Jlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxh
eWVyUHJpdmF0ZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0
OjpNZWRpYVBsYXllclByaXZhdGVRdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRdDo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRl
UXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGlt
ZVZpc3VhbENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dDo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4
dC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2lu
Q0UuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZSk6CisKIDIwMTItMDUtMzEgIFNoYW5l
IFN0ZXBoZW5zICA8c2hhbmVzdGVwaGVuc0Bnb29nbGUuY29tPgogCiAgICAgICAgIHRleHQtZGVj
b3JhdGlvbiBzaG91bGQgbm90IGJlIHByb3BhZ2F0ZWQgdGhyb3VnaCBhYnNvbHV0ZWx5IHBvc2l0
aW9uZWQgZWxlbWVudHMgdG8gPGE+IHRhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
MjFmMDNhOTBhY2ZhNWFhYjYzZjMxMWY5MGEwMGYzZDJhYmMzOTdhNi4uYzA2M2Q3YjZjMDc1YWU1
OWU0MjIyNTJkNTkxN2EzYjc1OWExYjg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMi0wNS0zMSAgQW1pIEZpc2NobWFuICA8ZmlzY2htYW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJlcGxhY2UgV2ViTWVkaWFQbGF5ZXI6OmJ5dGVzTG9hZGVkKCkg
d2l0aCBhbiBleHBsaWNpdCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYxMTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgor
ICAgICAgICAoV2ViTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
OmRpZExvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oOgorICAgICAgICAoV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKToKKwogMjAxMi0wNS0z
MCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtQbGF0
Zm9ybV0gSW50cm9kdWNlIERlY2ltYWwgY2xhc3MgZm9yIE51bWJlci9SYW5nZSBpbnB1dCB0eXBl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYzRjNmJhNDU2
Mzg1MTZlYzY0YmY4Y2Q5ODU4NjMyYzVhNjk5M2ViOS4uZDUxMWY5NTgyMGY5ZTRjYzFkODdlZjA3
ZmYzNGQyZjJmMDA5OTI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC0yMTAsNyArMjEwLDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW0KICAgICAsIG1f
cmVhZHlTdGF0ZU1heGltdW0oSEFWRV9OT1RISU5HKQogICAgICwgbV92b2x1bWUoMS4wZikKICAg
ICAsIG1fbGFzdFNlZWtUaW1lKDApCi0gICAgLCBtX3ByZXZpb3VzUHJvZ3Jlc3MoMCkKICAgICAs
IG1fcHJldmlvdXNQcm9ncmVzc1RpbWUobnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCkpCiAg
ICAgLCBtX2xhc3RUaW1lVXBkYXRlRXZlbnRXYWxsVGltZSgwKQogICAgICwgbV9sYXN0VGltZVVw
ZGF0ZUV2ZW50TW92aWVUaW1lKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpCkBAIC0xMzc3
LDcgKzEzNzYsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0YXJ0UHJvZ3Jlc3NFdmVudFRp
bWVyKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcmV2aW91c1Byb2dyZXNzVGltZSA9IFdU
Rjo6Y3VycmVudFRpbWUoKTsKLSAgICBtX3ByZXZpb3VzUHJvZ3Jlc3MgPSAwOwogICAgIC8vIDM1
MG1zIGlzIG5vdCBtYWdpYywgaXQgaXMgaW4gdGhlIHNwZWMhCiAgICAgbV9wcm9ncmVzc0V2ZW50
VGltZXIuc3RhcnRSZXBlYXRpbmcoMC4zNTApOwogfQpAQCAtMTU4NCw3ICsxNTgyLDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtT
dGF0ZSBzdGF0ZSkKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2hhbmdlTmV0d29ya1N0YXRlRnJv
bUxvYWRpbmdUb0lkbGUoKQogewogICAgIG1fcHJvZ3Jlc3NFdmVudFRpbWVyLnN0b3AoKTsKLSAg
ICBpZiAoaGFzTWVkaWFDb250cm9scygpICYmIG1fcGxheWVyLT5ieXRlc0xvYWRlZCgpICE9IG1f
cHJldmlvdXNQcm9ncmVzcykKKyAgICBpZiAoaGFzTWVkaWFDb250cm9scygpICYmIG1fcGxheWVy
LT5kaWRMb2FkaW5nUHJvZ3Jlc3MoKSkKICAgICAgICAgbWVkaWFDb250cm9scygpLT5idWZmZXJp
bmdQcm9ncmVzc2VkKCk7CiAKICAgICAvLyBTY2hlZHVsZSBvbmUgbGFzdCBwcm9ncmVzcyBldmVu
dCBzbyB3ZSBndWFyYW50ZWUgdGhhdCBhdCBsZWFzdCBvbmUgaXMgZmlyZWQKQEAgLTE4MzcsMjUg
KzE4MzUsMjMgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpwcm9ncmVzc0V2ZW50VGltZXJGaXJl
ZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiopCiAgICAgaWYgKG1fbmV0d29ya1N0YXRlICE9IE5F
VFdPUktfTE9BRElORykKICAgICAgICAgcmV0dXJuOwogCi0gICAgdW5zaWduZWQgcHJvZ3Jlc3Mg
PSBtX3BsYXllci0+Ynl0ZXNMb2FkZWQoKTsKICAgICBkb3VibGUgdGltZSA9IFdURjo6Y3VycmVu
dFRpbWUoKTsKICAgICBkb3VibGUgdGltZWRlbHRhID0gdGltZSAtIG1fcHJldmlvdXNQcm9ncmVz
c1RpbWU7CiAKLSAgICBpZiAocHJvZ3Jlc3MgPT0gbV9wcmV2aW91c1Byb2dyZXNzKSB7Ci0gICAg
ICAgIGlmICh0aW1lZGVsdGEgPiAzLjAgJiYgIW1fc2VudFN0YWxsZWRFdmVudCkgewotICAgICAg
ICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc3RhbGxlZEV2ZW50KTsKLSAgICAgICAg
ICAgIG1fc2VudFN0YWxsZWRFdmVudCA9IHRydWU7Ci0gICAgICAgICAgICBzZXRTaG91bGREZWxh
eUxvYWRFdmVudChmYWxzZSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgeworICAgIGlmIChtX3Bs
YXllci0+ZGlkTG9hZGluZ1Byb2dyZXNzKCkpIHsKICAgICAgICAgc2NoZWR1bGVFdmVudChldmVu
dE5hbWVzKCkucHJvZ3Jlc3NFdmVudCk7Ci0gICAgICAgIG1fcHJldmlvdXNQcm9ncmVzcyA9IHBy
b2dyZXNzOwogICAgICAgICBtX3ByZXZpb3VzUHJvZ3Jlc3NUaW1lID0gdGltZTsKICAgICAgICAg
bV9zZW50U3RhbGxlZEV2ZW50ID0gZmFsc2U7CiAgICAgICAgIGlmIChyZW5kZXJlcigpKQogICAg
ICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKICAgICAgICAgaWYgKGhh
c01lZGlhQ29udHJvbHMoKSkKICAgICAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+YnVmZmVyaW5n
UHJvZ3Jlc3NlZCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICh0aW1lZGVsdGEgPiAzLjAg
JiYgIW1fc2VudFN0YWxsZWRFdmVudCkgeworICAgICAgICAgICAgc2NoZWR1bGVFdmVudChldmVu
dE5hbWVzKCkuc3RhbGxlZEV2ZW50KTsKKyAgICAgICAgICAgIG1fc2VudFN0YWxsZWRFdmVudCA9
IHRydWU7CisgICAgICAgICAgICBzZXRTaG91bGREZWxheUxvYWRFdmVudChmYWxzZSk7CisgICAg
ICAgIH0KICAgICB9CiB9CiAKQEAgLTI3MjMsNyArMjcxOSw2IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c3RhcnRQbGF5YmFja1Byb2dyZXNzVGltZXIoKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX3ByZXZpb3VzUHJvZ3Jlc3NUaW1lID0gV1RGOjpjdXJyZW50VGltZSgpOwotICAgIG1fcHJl
dmlvdXNQcm9ncmVzcyA9IDA7CiAgICAgbV9wbGF5YmFja1Byb2dyZXNzVGltZXIuc3RhcnRSZXBl
YXRpbmcobWF4VGltZXVwZGF0ZUV2ZW50RnJlcXVlbmN5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGFmMzBlYjEyMzkz
YmQxY2RiMjAwZGJiZTZhMDBkMTQ2ZmZhN2MxODAuLjkzNTczMzBlNDlkNjI1OTBlYzA3NDY1OTVj
OTI0NTg5ZTU3MTg0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgeyByZXR1cm4gVGltZVJh
bmdlczo6Y3JlYXRlKCk7IH0KIAogICAgIHZpcnR1YWwgdW5zaWduZWQgdG90YWxCeXRlcygpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29u
c3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3Qg
SW50U2l6ZSYpIHsgfQogCkBAIC02ODEsOSArNjgxLDkgQEAgZmxvYXQgTWVkaWFQbGF5ZXI6Om1h
eFRpbWVTZWVrYWJsZSgpCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bWF4VGltZVNlZWthYmxlKCk7
CiB9CiAKLXVuc2lnbmVkIE1lZGlhUGxheWVyOjpieXRlc0xvYWRlZCgpCitib29sIE1lZGlhUGxh
eWVyOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKQogewotICAgIHJldHVybiBtX3ByaXZhdGUtPmJ5dGVz
TG9hZGVkKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZGlkTG9hZGluZ1Byb2dyZXNzKCk7CiB9
CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGEwM2Fk
ZTcxYzdmMGM2Y2VhYmM5ODAwZGJlODc5MzZjZGJkZDIxMTEuLjUxNmYyZmU5ODgxZTYyYmJkNmVm
ZjhiMDNhNmYxMGY4YThhNjY1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjc4LDcgKzI3OCw3IEBAIHB1YmxpYzoKICAgICBQYXNz
UmVmUHRyPFRpbWVSYW5nZXM+IHNlZWthYmxlKCk7CiAgICAgZmxvYXQgbWF4VGltZVNlZWthYmxl
KCk7CiAKLSAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpOworICAgIGJvb2wgZGlkTG9hZGluZ1By
b2dyZXNzKCk7CiAKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKICAgICB2b2lkIHNldFZvbHVt
ZShmbG9hdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IGY3NmQ0OWUyMzgyYjIwOTgyYmNiMjc5Mzg2NDQ2MjA4
ZmVkNzNhN2YuLjA4NTI3OGUzZTA0MWY4MDUxMzdjNWE0MjA3ZWFmZDU4N2RlZWE5YzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCkBAIC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGZsb2F0IG1heFRp
bWVTZWVrYWJsZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdl
cz4gYnVmZmVyZWQoKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVzTG9h
ZGVkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgPSAw
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uY3BwCmluZGV4IDhmM2E4ZGZmYmZlZTU3MmJlMWYwYTM1OTM2YjhmMTkwOGU1YWIwM2Yu
LmRhMmU3MTNlZDEzYThkYWJjYmFmMzRlNDFlYzNjNTFlMDQ1YmU4YzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCkBAIC01
Nyw2ICs1Nyw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKiBwbGF5CiAgICAgLCBtX2NhY2hlZE1heFRp
bWVTZWVrYWJsZSgwKQogICAgICwgbV9jYWNoZWREdXJhdGlvbihpbnZhbGlkVGltZSgpKQogICAg
ICwgbV9yZXBvcnRlZER1cmF0aW9uKGludmFsaWRUaW1lKCkpCisgICAgLCBtX21heFRpbWVMb2Fk
ZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MoaW52YWxpZFRpbWUoKSkpCiAgICAgLCBtX3NlZWtU
byhpbnZhbGlkVGltZSgpKQogICAgICwgbV9yZXF1ZXN0ZWRSYXRlKDEpCiAgICAgLCBtX2RlbGF5
Q2FsbGJhY2tzKDApCkBAIC0zNjYsMTQgKzM2NywxNSBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246Om1heFRpbWVMb2FkZWQoKSBjb25zdAogICAgIHJldHVybiBtX2NhY2hl
ZE1heFRpbWVMb2FkZWQ7ICAgCiB9CiAKLXVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6Ynl0ZXNMb2FkZWQoKSBjb25zdAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246OmRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0CiB7Ci0gICAgZmxvYXQgZHVyID0g
ZHVyYXRpb24oKTsKLSAgICBpZiAoIWR1cikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgdW5zaWdu
ZWQgbG9hZGVkID0gdG90YWxCeXRlcygpICogbWF4VGltZUxvYWRlZCgpIC8gZHVyOwotICAgIExP
RyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Ynl0ZXNMb2FkZWQoJXAp
IC0gcmV0dXJuaW5nICVpIiwgdGhpcywgbG9hZGVkKTsKLSAgICByZXR1cm4gbG9hZGVkOworICAg
IGlmICghZHVyYXRpb24oKSB8fCAhdG90YWxCeXRlcygpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgdW5zaWduZWQgY3VycmVudE1heFRpbWVMb2FkZWQgPSBtYXhUaW1lTG9hZGVkKCk7Cisg
ICAgYm9vbCByZXQgPSBjdXJyZW50TWF4VGltZUxvYWRlZCAhPSBtX21heFRpbWVMb2FkZWRBdExh
c3REaWRMb2FkaW5nUHJvZ3Jlc3M7CisgICAgbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGlu
Z1Byb2dyZXNzID0gY3VycmVudE1heFRpbWVMb2FkZWQ7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoJXApIC0gcmV0dXJu
aW5nICVkIiwgdGhpcywgcmV0KTsKKyAgICByZXR1cm4gcmV0OwogfQogCiBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6aXNSZWFkeUZvclZpZGVvU2V0dXAoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCmlu
ZGV4IDcyMzAyMzQ2ZjgzZjNiZDVjNDRlMTIwMGI1NjU5N2JjNjg2ZGJhOTYuLjYzZmU2YWE0ZTEz
M2RmOWNjNTY0OTI1OWY4MjUzNjhmMGM1MDdkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTE0MCw3ICsxNDAsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRl
KCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9CiAgICAgdmlydHVhbCBmbG9hdCBtYXhU
aW1lU2Vla2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4g
YnVmZmVyZWQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29u
c3Q7CisgICAgdmlydHVhbCBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFp
bnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50
UmVjdCYpID0gMDsKQEAgLTI2Myw3ICsyNjMsNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgZmxv
YXQgbV9jYWNoZWRNYXhUaW1lU2Vla2FibGU7CiAgICAgbXV0YWJsZSBmbG9hdCBtX2NhY2hlZER1
cmF0aW9uOwogICAgIGZsb2F0IG1fcmVwb3J0ZWREdXJhdGlvbjsKLQorICAgIG11dGFibGUgZmxv
YXQgbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzOwogICAgIGZsb2F0IG1f
c2Vla1RvOwogICAgIGZsb2F0IG1fcmVxdWVzdGVkUmF0ZTsKICAgICBtdXRhYmxlIGludCBtX2Rl
bGF5Q2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxh
Y2tCZXJyeS5jcHAKaW5kZXggYWE3ODY3NjVhZWMzZTRhMTgwN2MyMDM2M2Y3MWI3YzhiMjkyMjkx
NS4uM2FjOTNlOGI0YzY3ZWQyZjE0ZmUzNjZhZjY1MTI2Mjg0MGExMTA5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclBy
aXZhdGVCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCkBAIC0yODgsMTAg
KzI4OCwxMCBAQCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZTo6YnVm
ZmVyZWQoKSBjb25zdAogICAgIHJldHVybiB0aW1lUmFuZ2VzLnJlbGVhc2UoKTsKIH0KIAotdW5z
aWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpieXRlc0xvYWRlZCgpIGNvbnN0Citib29sIE1lZGlh
UGxheWVyUHJpdmF0ZTo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGU6OnNldFNpemUoY29uc3QgSW50U2l6ZSYpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJp
dmF0ZUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCmluZGV4IDM2YzM2Zjg3ODU3YTIz
MThkYmFlYzcyOTdhOTA5MjJlNmJjOGQ4MjMuLjBhYzQ2NmJlYzhlZTg4ODExYTFiMTY0MGI3MzUy
YTkwOWM4NTM2NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxh
Y2tCZXJyeS5oCkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGZsb2F0IG1h
eFRpbWVTZWVrYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2Vz
PiBidWZmZXJlZCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBieXRlc0xvYWRlZCgp
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA1NzU3YTI3NDMxZDQz
NmE4NGNmY2JmNTY3YmE2NTM5ZGE2OGZjNzdiLi5kNjhhYjdmNDk2NTk3MWM1MjRiYjgzMzhjZmRl
YzkxNTBjZmEyYmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcApAQCAtMjIwLDYgKzIyMCw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAg
LCBtX3BsYXliYWNrUmF0ZSgxKQogICAgICwgbV9lcnJvck9jY3VyZWQoZmFsc2UpCiAgICAgLCBt
X21lZGlhRHVyYXRpb24oMCkKKyAgICAsIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQ
cm9ncmVzcygwKQogICAgICwgbV9zdGFydGVkQnVmZmVyaW5nKGZhbHNlKQogICAgICwgbV9maWxs
VGltZXIodGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZmlsbFRpbWVyRmlyZWQp
CiAgICAgLCBtX21heFRpbWVMb2FkZWQoMCkKQEAgLTkyMCwxNyArOTIxLDE1IEBAIGZsb2F0IE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4VGltZUxvYWRlZCgpIGNvbnN0CiAgICAgcmV0
dXJuIGxvYWRlZDsKIH0KIAotdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpi
eXRlc0xvYWRlZCgpIGNvbnN0Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlk
TG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcGxheUJpbikKLSAgICAgICAg
cmV0dXJuIDA7Ci0KLSAgICBpZiAoIW1fbWVkaWFEdXJhdGlvbikKLSAgICAgICAgcmV0dXJuIDA7
Ci0KLSAgICB1bnNpZ25lZCBsb2FkZWQgPSB0b3RhbEJ5dGVzKCkgKiBtYXhUaW1lTG9hZGVkKCkg
LyBtX21lZGlhRHVyYXRpb247Ci0gICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJieXRlc0xvYWRlZDog
JWQiLCBsb2FkZWQpOwotICAgIHJldHVybiBsb2FkZWQ7CisgICAgaWYgKCFtX3BsYXlCaW4gfHwg
IW1fbWVkaWFEdXJhdGlvbiB8fCAhdG90YWxCeXRlcygpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgZmxvYXQgY3VycmVudE1heFRpbWVMb2FkZWQgPSBtYXhUaW1lTG9hZGVkKCk7CisgICAg
Ym9vbCByZXQgPSBjdXJyZW50TWF4VGltZUxvYWRlZCAhPSBtX21heFRpbWVMb2FkZWRBdExhc3RE
aWRMb2FkaW5nUHJvZ3Jlc3M7CisgICAgbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1By
b2dyZXNzID0gY3VycmVudE1heFRpbWVMb2FkZWQ7CisgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJk
aWRMb2FkaW5nUHJvZ3Jlc3M6ICVkIiwgcmV0KTsKKyAgICByZXR1cm4gcmV0OwogfQogCiB1bnNp
Z25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDFiMGZmMjZl
NjBmYjZmNWVmMzFiNmVkNTAzMGM1MDZhYzEwZDk1YmQuLjM5ZWU5Y2U0YmZiY2I4MTIzYTAyM2M0
MTU3MmMzMGE2M2VjMWQzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmgKQEAgLTkwLDcgKzkwLDcgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAKICAgICAgICAg
ICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICAgICAgICAg
IGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwotICAgICAgICAgICAgdW5zaWduZWQgYnl0
ZXNMb2FkZWQoKSBjb25zdDsKKyAgICAgICAgICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkg
Y29uc3Q7CiAgICAgICAgICAgICB1bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAKICAgICAg
ICAgICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKQEAgLTE4MSw2ICsxODEsNyBAQCBjbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlIHsKICAgICAgICAgICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsKICAg
ICAgICAgICAgIGJvb2wgbV9kZWxheWluZ0xvYWQ7CiAgICAgICAgICAgICBib29sIG1fbWVkaWFE
dXJhdGlvbktub3duOworICAgICAgICAgICAgbXV0YWJsZSBmbG9hdCBtX21heFRpbWVMb2FkZWRB
dExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CiAjaWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAg
ICAgICAgICBSZWZQdHI8R1N0cmVhbWVyR1dvcmxkPiBtX2dzdEdXb3JsZDsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCAzMDg5YWUyZDQ2YjRkMjE0MDQ3ZWNiYmZkOTk5
NDdjZjE2YTM1MWQ3Li4wMTFlYzM2YTI1ZDE5ZGU2MTExZWQ1ODNjZDJiNmExNDRlMWM0MGE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtMTIxLDcgKzEyMSw3IEBAIHByaXZhdGU6
CiAgICAgCiAgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAg
IGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwotICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVk
KCkgY29uc3Q7CisgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdDsKICAgICB1bnNp
Z25lZCB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wp
OwpAQCAtMjEyLDYgKzIxMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ZpZGVvRnJhbWVIYXNE
cmF3bjsKICAgICBib29sIG1faXNBbGxvd2VkVG9SZW5kZXI7CiAgICAgYm9vbCBtX3ByaXZhdGVC
cm93c2luZzsKKyAgICBtdXRhYmxlIGZsb2F0IG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRp
bmdQcm9ncmVzczsKICNpZiBEUkFXX0ZSQU1FX1JBVEUKICAgICBpbnQgIG1fZnJhbWVDb3VudFdo
aWxlUGxheWluZzsKICAgICBkb3VibGUgbV90aW1lU3RhcnRlZFBsYXlpbmc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggOTg1OTllOTZiYTg1ZWMwMDMzY2U4MGZjN2Y3ZDY3ODJi
ZWY1N2ZlZS4uMzNlOGVlODA4NjczODE3OWU3MDg5NjA5MTBhOTUwOTg0YTk2NDBiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMjE0LDYgKzIxNCw3IEBAIE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0OjpNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRpYVBsYXllciogcGxheWVy
KQogICAgICwgbV92aWRlb0ZyYW1lSGFzRHJhd24oZmFsc2UpCiAgICAgLCBtX2lzQWxsb3dlZFRv
UmVuZGVyKGZhbHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmcoZmFsc2UpCisgICAgLCBtX21h
eFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MoMCkKICNpZiBEUkFXX0ZSQU1FX1JB
VEUKICAgICAsIG1fZnJhbWVDb3VudFdoaWxlUGxheWluZygwKQogICAgICwgbV90aW1lU3RhcnRl
ZFBsYXlpbmcoMCkKQEAgLTk0NSwxMiArOTQ2LDE0IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0OjptYXhUaW1lTG9hZGVkKCkgY29uc3QKICAgICByZXR1cm4gd2tRVE1vdmllTWF4VGlt
ZUxvYWRlZChtX3F0TW92aWUuZ2V0KCkpOyAKIH0KIAotdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQ6OmJ5dGVzTG9hZGVkKCkgY29uc3QKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQ6OmRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0CiB7Ci0gICAgZmxvYXQgZHVyID0gZHVyYXRp
b24oKTsKLSAgICBpZiAoIWR1cikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHRvdGFs
Qnl0ZXMoKSAqIG1heFRpbWVMb2FkZWQoKSAvIGR1cjsKKyAgICBpZiAoIWR1cmF0aW9uKCkgfHwg
IXRvdGFsQnl0ZXMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZsb2F0IGN1cnJlbnRN
YXhUaW1lTG9hZGVkID0gbWF4VGltZUxvYWRlZCgpOworICAgIGJvb2wgcmV0ID0gY3VycmVudE1h
eFRpbWVMb2FkZWQgIT0gbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzOwor
ICAgIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzcyA9IGN1cnJlbnRNYXhU
aW1lTG9hZGVkOworICAgIHJldHVybiByZXQ7CiB9CiAKIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Ojp0b3RhbEJ5dGVzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcAppbmRl
eCA5NTI5Y2Q0N2EwNzlhMGU0YjgxODI3ZTkzMzRkZjBlZGU1MmI1MWVmLi5jMDc0MTYwMmQ1YmQz
Yjc5YzBmYjUwZjBiNmJmY2E4MjBlNTNiODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwCkBA
IC0xMTYsNiArMTE2LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlUXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVF0KE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX2lzU2Vla2luZyhmYWxzZSkKICAgICAs
IG1fY29tcG9zaXRlZChmYWxzZSkKICAgICAsIG1fcHJlbG9hZChNZWRpYVBsYXllcjo6QXV0bykK
KyAgICAsIG1fYnl0ZXNMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MoMCkKICAgICAsIG1f
c3VwcHJlc3NOZXh0UGxheWJhY2tDaGFuZ2VkKGZhbHNlKQogewogICAgIG1fbWVkaWFQbGF5ZXIt
PnNldFZpZGVvT3V0cHV0KG1fdmlkZW9JdGVtKTsKQEAgLTM2MSwxMyArMzYyLDE3IEBAIGZsb2F0
IE1lZGlhUGxheWVyUHJpdmF0ZVF0OjptYXhUaW1lU2Vla2FibGUoKSBjb25zdAogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxmbG9hdD4obV9tZWRpYVBsYXllckNvbnRyb2wtPmF2YWlsYWJsZVBsYXli
YWNrUmFuZ2VzKCkubGF0ZXN0VGltZSgpKSAvIDEwMDAuMGY7CiB9CiAKLXVuc2lnbmVkIE1lZGlh
UGxheWVyUHJpdmF0ZVF0OjpieXRlc0xvYWRlZCgpIGNvbnN0Citib29sIE1lZGlhUGxheWVyUHJp
dmF0ZVF0OjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdAogeworICAgIHVuc2lnbmVkIGJ5dGVz
TG9hZGVkID0gMDsKICAgICBRTGF0aW4xU3RyaW5nIGJ5dGVzTG9hZGVkS2V5KCJieXRlcy1sb2Fk
ZWQiKTsKICAgICBpZiAobV9tZWRpYVBsYXllci0+YXZhaWxhYmxlRXh0ZW5kZWRNZXRhRGF0YSgp
LmNvbnRhaW5zKGJ5dGVzTG9hZGVkS2V5KSkKLSAgICAgICAgcmV0dXJuIG1fbWVkaWFQbGF5ZXIt
PmV4dGVuZGVkTWV0YURhdGEoYnl0ZXNMb2FkZWRLZXkpLnRvSW50KCk7Ci0KLSAgICByZXR1cm4g
bV9tZWRpYVBsYXllci0+YnVmZmVyU3RhdHVzKCk7CisgICAgICAgIGJ5dGVzTG9hZGVkID0gbV9t
ZWRpYVBsYXllci0+ZXh0ZW5kZWRNZXRhRGF0YShieXRlc0xvYWRlZEtleSkudG9JbnQoKTsKKyAg
ICBlbHNlCisgICAgICAgIGJ5dGVzTG9hZGVkID0gbV9tZWRpYVBsYXllci0+YnVmZmVyU3RhdHVz
KCk7CisgICAgYm9vbCByZXQgPSBieXRlc0xvYWRlZCAhPSBtX2J5dGVzTG9hZGVkQXRMYXN0RGlk
TG9hZGluZ1Byb2dyZXNzOworICAgIG1fYnl0ZXNMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jl
c3MgPSBieXRlc0xvYWRlZDsKKyAgICByZXR1cm4gcmV0OwogfQogCiB1bnNpZ25lZCBNZWRpYVBs
YXllclByaXZhdGVRdDo6dG90YWxCeXRlcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuaAppbmRl
eCA2N2Y2NGM3NGIzNzhhYjNjM2NhMGY3YWQ5NDc2NzY4ZGFlYThmZTM4Li5jNmZjYmQ4MzhkMTFk
ODNlNDc1NzUwOWY3YTIxNjk3ZjMzNDdkYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmgKQEAgLTg2
LDcgKzg2LDcgQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJl
ZCgpIGNvbnN0OwogICAgIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwotICAgIHVuc2ln
bmVkIGJ5dGVzTG9hZGVkKCkgY29uc3Q7CisgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdDsKICAgICB1bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFZp
c2libGUoYm9vbCk7CkBAIC0xNTYsNiArMTU2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNT
ZWVraW5nOwogICAgIGJvb2wgbV9jb21wb3NpdGVkOwogICAgIE1lZGlhUGxheWVyOjpQcmVsb2Fk
IG1fcHJlbG9hZDsKKyAgICBtdXRhYmxlIHVuc2lnbmVkIG1fYnl0ZXNMb2FkZWRBdExhc3REaWRM
b2FkaW5nUHJvZ3Jlc3M7CiAgICAgYm9vbCBtX2RlbGF5aW5nTG9hZDsKICAgICBTdHJpbmcgbV9t
ZWRpYVVybDsKICAgICBib29sIG1fc3VwcHJlc3NOZXh0UGxheWJhY2tDaGFuZ2VkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3Bw
CmluZGV4IGIwMDM3YzNhYjdlZjE2OTU3MjM3Zjg2MzkzNDhlZGRiMDgwYWIzNDMuLmY0MzQ2Nzcz
MDMwMzlmZGQ2OWY0NWFhMmEyZDFmZmJlODU1MzQwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1
YWxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKQEAgLTE4Myw2ICsx
ODMsNyBAQCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpNZWRpYVBs
YXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZQogICAgICwgbV9kZWxheWluZ0xvYWQoZmFs
c2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZyhmYWxzZSkKICAgICAsIG1fcHJlbG9hZChNZWRp
YVBsYXllcjo6QXV0bykKKyAgICAsIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9n
cmVzcygwKQogewogfQogCkBAIC01ODMsMTUgKzU4NCwxNCBAQCBmbG9hdCBNZWRpYVBsYXllclBy
aXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjptYXhUaW1lTG9hZGVkKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9tb3ZpZS0+bWF4VGltZUxvYWRlZCgpOyAKIH0KIAotdW5zaWduZWQgTWVkaWFQbGF5
ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6Ynl0ZXNMb2FkZWQoKSBjb25zdAorYm9v
bCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpkaWRMb2FkaW5nUHJv
Z3Jlc3MoKSBjb25zdAogewotICAgIGlmICghbV9tb3ZpZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgZmxvYXQgZHVyID0gZHVyYXRpb24oKTsKLSAgICBmbG9hdCBtYXhUaW1lID0gbWF4VGltZUxv
YWRlZCgpOwotICAgIGlmICghZHVyKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gdG90
YWxCeXRlcygpICogbWF4VGltZSAvIGR1cjsKKyAgICBpZiAoIW1fbW92aWUgfHwgIWR1cmF0aW9u
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmbG9hdCBjdXJyZW50TWF4VGltZUxvYWRl
ZCA9IG1heFRpbWVMb2FkZWQoKTsKKyAgICBib29sIHJldCA9IGN1cnJlbnRNYXhUaW1lTG9hZGVk
ICE9IG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzczsKKyAgICBtX21heFRp
bWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MgPSBjdXJyZW50TWF4VGltZUxvYWRlZDsK
KyAgICByZXR1cm4gcmV0OwogfQogCiB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1Rp
bWVWaXN1YWxDb250ZXh0Ojp0b3RhbEJ5dGVzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVW
aXN1YWxDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oCmluZGV4IDcwZmQyYTVkZjJj
MzAzNTE2MmU3NWZmMDJmZjdlNDIxZmMxOTNlNzEuLjRjNDRhZjQwMWViYjAzZmRiMmYzZmYxNDI0
Mjg1Nzk1MWY5MTExMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1
aWNrVGltZVZpc3VhbENvbnRleHQuaApAQCAtOTksNyArOTksNyBAQCBwcml2YXRlOgogICAgIAog
ICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICBmbG9hdCBt
YXhUaW1lU2Vla2FibGUoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0
OworICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgdG90
YWxCeXRlcygpIGNvbnN0OwogICAgIAogICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKQEAgLTIw
MSw2ICsyMDEsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX21vdmllVVJMOwogICAgIGJvb2wg
bV9wcml2YXRlQnJvd3Npbmc7CiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwor
ICAgIG11dGFibGUgZmxvYXQgbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNz
OwogI2lmIERSQVdfRlJBTUVfUkFURQogICAgIGRvdWJsZSBtX2ZyYW1lQ291bnRXaGlsZVBsYXlp
bmc7CiAgICAgZG91YmxlIG1fdGltZVN0YXJ0ZWRQbGF5aW5nOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJp
dmF0ZVdpbkNFLmgKaW5kZXggODYyOTM3MzU3ZWZjZjFmY2E5NWZlOWQ0OWEzYmM2Y2E4ODU5MjY3
Ny4uMGZhYTA0NTc4NGQ3MWJmYTg3MDY4ZGVmZGIwNjA2Njc0YzllYjcyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRl
V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRp
YVBsYXllclByaXZhdGVXaW5DRS5oCkBAIC03MCw2ICs3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAg
ICAgICAgIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OworICAgICAgICAvLyBGSVhNRTog
Ynl0ZXNMb2FkZWQoKSBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBkaWRMb2FkaW5nUHJvZ3Jlc3Mo
KSAoYnkgc29tZWJvZHkgd2hvIGNhbiBmaW5kIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGNs
YXNzKS4KICAgICAgICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKICAgICAgICAgdW5z
aWduZWQgdG90YWxCeXRlcygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAppbmRleCAzMzEyZjVmMjFmNDljMzFjNmZmMjY4MzI5NTBl
NmExMzVmNmI2YjJiLi40NDRhMmNjOTAxZjdlYzRmM2IwZjNiZGYyMTdhZTE5NDhkMmRlMzRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKQEAg
LTE0NCw3ICsxNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBOZXR3b3JrU3RhdGUgbmV0d29y
a1N0YXRlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkg
Y29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNMb2FkZWQo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3Qg
PSAwOwogCiAgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5jcHAKaW5kZXggMjQxMWQ5Yzc5NWRkNGI4MjRiYWEzNDZiMTEwMzdjMzFj
YjgzYzcxMC4uNDRlNTFjZDg3OTdiM2JlOWQwNDA1OTFmZTAyMDk5Y2ZhM2ZkNjRlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuY3BwCkBAIC01OTMsMTEgKzU5Myw5IEBAIHVuc2lnbmVkIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6dG90YWxCeXRlcygpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXVuc2lnbmVk
IFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Ynl0ZXNMb2FkZWQoKSBjb25zdAorYm9vbCBXZWJN
ZWRpYVBsYXllckNsaWVudEltcGw6OmRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0CiB7Ci0gICAg
aWYgKG1fd2ViTWVkaWFQbGF5ZXIpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4obV93ZWJNZWRpYVBsYXllci0+Ynl0ZXNMb2FkZWQoKSk7Ci0gICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIG1fd2ViTWVkaWFQbGF5ZXIgJiYgbV93ZWJNZWRpYVBsYXllci0+ZGlkTG9hZGluZ1By
b2dyZXNzKCk7CiB9CiAKIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzZXRTaXplKGNv
bnN0IEludFNpemUmIHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCmluZGV4IDcyMTcwZjc1MDQzNDlhZDg4NzFmNzc0
MWNiZWEwNzY4YmUxMjA4ZjguLjA4ODhkNWVlZWU4ODRkNTNlMzU4ZjFmNzU3MGQ4YTk3ZjNkZjQ1
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5oCkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
aW50IGRhdGFSYXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHRvdGFsQnl0ZXNLbm93bigp
IGNvbnN0OwogICAgIHZpcnR1YWwgdW5zaWduZWQgdG90YWxCeXRlcygpIGNvbnN0OwotICAgIHZp
cnR1YWwgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlk
TG9hZGluZ1Byb2dyZXNzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lk
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145010</attachid>
            <date>2012-05-31 00:55:10 -0700</date>
            <delta_ts>2012-05-31 09:08:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86113-20120531005510.patch</filename>
            <type>text/plain</type>
            <size>26673</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM2ZjcxMzIyNTVlNTFm
OGI3MTAxMGVlZTRiZTIyMjE3ODFlNWIzMy4uZDhhMDcyODVjOTdiYTViZjAxYjUyOGQzMWJiOTNh
NjM3OGYxYWU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA1LTMxICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBXZWJN
ZWRpYVBsYXllcjo6Ynl0ZXNMb2FkZWQoKSB3aXRoIGFuIGV4cGxpY2l0IGRpZExvYWRpbmdQcm9n
cmVzcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjExMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyBmdW5jdGlvbmFsaXR5LCBzbyBubyBuZXcgdGVzdHMuICBMb2FkaW5nIHByb2dyZXNzIGlz
IGFscmVhZHkgdGVzdGVkIGJ5IGV4aXN0aW5nIGxheW91dHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6c3RhcnRQcm9ncmVzc0V2ZW50VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6Y2hhbmdlTmV0d29ya1N0YXRlRnJvbUxvYWRpbmdUb0lkbGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3RhcnRQbGF5YmFja1Byb2dyZXNzVGlt
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OmRpZExvYWRpbmdQcm9ncmVzcyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OmRpZExvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5Lmg6CisgICAgICAg
IChNZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRMb2Fk
aW5nUHJvZ3Jlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVRVEtpdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkaWRM
b2FkaW5nUHJvZ3Jlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxh
eWVyUHJpdmF0ZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0
OjpNZWRpYVBsYXllclByaXZhdGVRdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRdDo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRl
UXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGlt
ZVZpc3VhbENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dDo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4
dC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2lu
Q0UuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZSk6CisKIDIwMTItMDUtMzEgIFNoYW5l
IFN0ZXBoZW5zICA8c2hhbmVzdGVwaGVuc0Bnb29nbGUuY29tPgogCiAgICAgICAgIHRleHQtZGVj
b3JhdGlvbiBzaG91bGQgbm90IGJlIHByb3BhZ2F0ZWQgdGhyb3VnaCBhYnNvbHV0ZWx5IHBvc2l0
aW9uZWQgZWxlbWVudHMgdG8gPGE+IHRhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
MjFmMDNhOTBhY2ZhNWFhYjYzZjMxMWY5MGEwMGYzZDJhYmMzOTdhNi4uYzA2M2Q3YjZjMDc1YWU1
OWU0MjIyNTJkNTkxN2EzYjc1OWExYjg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMi0wNS0zMSAgQW1pIEZpc2NobWFuICA8ZmlzY2htYW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJlcGxhY2UgV2ViTWVkaWFQbGF5ZXI6OmJ5dGVzTG9hZGVkKCkg
d2l0aCBhbiBleHBsaWNpdCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYxMTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgor
ICAgICAgICAoV2ViTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
OmRpZExvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oOgorICAgICAgICAoV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKToKKwogMjAxMi0wNS0z
MCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtQbGF0
Zm9ybV0gSW50cm9kdWNlIERlY2ltYWwgY2xhc3MgZm9yIE51bWJlci9SYW5nZSBpbnB1dCB0eXBl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYzRjNmJhNDU2
Mzg1MTZlYzY0YmY4Y2Q5ODU4NjMyYzVhNjk5M2ViOS4uZDUxMWY5NTgyMGY5ZTRjYzFkODdlZjA3
ZmYzNGQyZjJmMDA5OTI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC0yMTAsNyArMjEwLDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW0KICAgICAsIG1f
cmVhZHlTdGF0ZU1heGltdW0oSEFWRV9OT1RISU5HKQogICAgICwgbV92b2x1bWUoMS4wZikKICAg
ICAsIG1fbGFzdFNlZWtUaW1lKDApCi0gICAgLCBtX3ByZXZpb3VzUHJvZ3Jlc3MoMCkKICAgICAs
IG1fcHJldmlvdXNQcm9ncmVzc1RpbWUobnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCkpCiAg
ICAgLCBtX2xhc3RUaW1lVXBkYXRlRXZlbnRXYWxsVGltZSgwKQogICAgICwgbV9sYXN0VGltZVVw
ZGF0ZUV2ZW50TW92aWVUaW1lKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpCkBAIC0xMzc3
LDcgKzEzNzYsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0YXJ0UHJvZ3Jlc3NFdmVudFRp
bWVyKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcmV2aW91c1Byb2dyZXNzVGltZSA9IFdU
Rjo6Y3VycmVudFRpbWUoKTsKLSAgICBtX3ByZXZpb3VzUHJvZ3Jlc3MgPSAwOwogICAgIC8vIDM1
MG1zIGlzIG5vdCBtYWdpYywgaXQgaXMgaW4gdGhlIHNwZWMhCiAgICAgbV9wcm9ncmVzc0V2ZW50
VGltZXIuc3RhcnRSZXBlYXRpbmcoMC4zNTApOwogfQpAQCAtMTU4NCw3ICsxNTgyLDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtT
dGF0ZSBzdGF0ZSkKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2hhbmdlTmV0d29ya1N0YXRlRnJv
bUxvYWRpbmdUb0lkbGUoKQogewogICAgIG1fcHJvZ3Jlc3NFdmVudFRpbWVyLnN0b3AoKTsKLSAg
ICBpZiAoaGFzTWVkaWFDb250cm9scygpICYmIG1fcGxheWVyLT5ieXRlc0xvYWRlZCgpICE9IG1f
cHJldmlvdXNQcm9ncmVzcykKKyAgICBpZiAoaGFzTWVkaWFDb250cm9scygpICYmIG1fcGxheWVy
LT5kaWRMb2FkaW5nUHJvZ3Jlc3MoKSkKICAgICAgICAgbWVkaWFDb250cm9scygpLT5idWZmZXJp
bmdQcm9ncmVzc2VkKCk7CiAKICAgICAvLyBTY2hlZHVsZSBvbmUgbGFzdCBwcm9ncmVzcyBldmVu
dCBzbyB3ZSBndWFyYW50ZWUgdGhhdCBhdCBsZWFzdCBvbmUgaXMgZmlyZWQKQEAgLTE4MzcsMjUg
KzE4MzUsMjMgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpwcm9ncmVzc0V2ZW50VGltZXJGaXJl
ZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiopCiAgICAgaWYgKG1fbmV0d29ya1N0YXRlICE9IE5F
VFdPUktfTE9BRElORykKICAgICAgICAgcmV0dXJuOwogCi0gICAgdW5zaWduZWQgcHJvZ3Jlc3Mg
PSBtX3BsYXllci0+Ynl0ZXNMb2FkZWQoKTsKICAgICBkb3VibGUgdGltZSA9IFdURjo6Y3VycmVu
dFRpbWUoKTsKICAgICBkb3VibGUgdGltZWRlbHRhID0gdGltZSAtIG1fcHJldmlvdXNQcm9ncmVz
c1RpbWU7CiAKLSAgICBpZiAocHJvZ3Jlc3MgPT0gbV9wcmV2aW91c1Byb2dyZXNzKSB7Ci0gICAg
ICAgIGlmICh0aW1lZGVsdGEgPiAzLjAgJiYgIW1fc2VudFN0YWxsZWRFdmVudCkgewotICAgICAg
ICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc3RhbGxlZEV2ZW50KTsKLSAgICAgICAg
ICAgIG1fc2VudFN0YWxsZWRFdmVudCA9IHRydWU7Ci0gICAgICAgICAgICBzZXRTaG91bGREZWxh
eUxvYWRFdmVudChmYWxzZSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgeworICAgIGlmIChtX3Bs
YXllci0+ZGlkTG9hZGluZ1Byb2dyZXNzKCkpIHsKICAgICAgICAgc2NoZWR1bGVFdmVudChldmVu
dE5hbWVzKCkucHJvZ3Jlc3NFdmVudCk7Ci0gICAgICAgIG1fcHJldmlvdXNQcm9ncmVzcyA9IHBy
b2dyZXNzOwogICAgICAgICBtX3ByZXZpb3VzUHJvZ3Jlc3NUaW1lID0gdGltZTsKICAgICAgICAg
bV9zZW50U3RhbGxlZEV2ZW50ID0gZmFsc2U7CiAgICAgICAgIGlmIChyZW5kZXJlcigpKQogICAg
ICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKICAgICAgICAgaWYgKGhh
c01lZGlhQ29udHJvbHMoKSkKICAgICAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+YnVmZmVyaW5n
UHJvZ3Jlc3NlZCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICh0aW1lZGVsdGEgPiAzLjAg
JiYgIW1fc2VudFN0YWxsZWRFdmVudCkgeworICAgICAgICAgICAgc2NoZWR1bGVFdmVudChldmVu
dE5hbWVzKCkuc3RhbGxlZEV2ZW50KTsKKyAgICAgICAgICAgIG1fc2VudFN0YWxsZWRFdmVudCA9
IHRydWU7CisgICAgICAgICAgICBzZXRTaG91bGREZWxheUxvYWRFdmVudChmYWxzZSk7CisgICAg
ICAgIH0KICAgICB9CiB9CiAKQEAgLTI3MjMsNyArMjcxOSw2IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c3RhcnRQbGF5YmFja1Byb2dyZXNzVGltZXIoKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX3ByZXZpb3VzUHJvZ3Jlc3NUaW1lID0gV1RGOjpjdXJyZW50VGltZSgpOwotICAgIG1fcHJl
dmlvdXNQcm9ncmVzcyA9IDA7CiAgICAgbV9wbGF5YmFja1Byb2dyZXNzVGltZXIuc3RhcnRSZXBl
YXRpbmcobWF4VGltZXVwZGF0ZUV2ZW50RnJlcXVlbmN5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGFmMzBlYjEyMzkz
YmQxY2RiMjAwZGJiZTZhMDBkMTQ2ZmZhN2MxODAuLjkzNTczMzBlNDlkNjI1OTBlYzA3NDY1OTVj
OTI0NTg5ZTU3MTg0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgeyByZXR1cm4gVGltZVJh
bmdlczo6Y3JlYXRlKCk7IH0KIAogICAgIHZpcnR1YWwgdW5zaWduZWQgdG90YWxCeXRlcygpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29u
c3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3Qg
SW50U2l6ZSYpIHsgfQogCkBAIC02ODEsOSArNjgxLDkgQEAgZmxvYXQgTWVkaWFQbGF5ZXI6Om1h
eFRpbWVTZWVrYWJsZSgpCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bWF4VGltZVNlZWthYmxlKCk7
CiB9CiAKLXVuc2lnbmVkIE1lZGlhUGxheWVyOjpieXRlc0xvYWRlZCgpCitib29sIE1lZGlhUGxh
eWVyOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKQogewotICAgIHJldHVybiBtX3ByaXZhdGUtPmJ5dGVz
TG9hZGVkKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZGlkTG9hZGluZ1Byb2dyZXNzKCk7CiB9
CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGEwM2Fk
ZTcxYzdmMGM2Y2VhYmM5ODAwZGJlODc5MzZjZGJkZDIxMTEuLjUxNmYyZmU5ODgxZTYyYmJkNmVm
ZjhiMDNhNmYxMGY4YThhNjY1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjc4LDcgKzI3OCw3IEBAIHB1YmxpYzoKICAgICBQYXNz
UmVmUHRyPFRpbWVSYW5nZXM+IHNlZWthYmxlKCk7CiAgICAgZmxvYXQgbWF4VGltZVNlZWthYmxl
KCk7CiAKLSAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpOworICAgIGJvb2wgZGlkTG9hZGluZ1By
b2dyZXNzKCk7CiAKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKICAgICB2b2lkIHNldFZvbHVt
ZShmbG9hdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IGY3NmQ0OWUyMzgyYjIwOTgyYmNiMjc5Mzg2NDQ2MjA4
ZmVkNzNhN2YuLjA4NTI3OGUzZTA0MWY4MDUxMzdjNWE0MjA3ZWFmZDU4N2RlZWE5YzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCkBAIC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGZsb2F0IG1heFRp
bWVTZWVrYWJsZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdl
cz4gYnVmZmVyZWQoKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVzTG9h
ZGVkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgPSAw
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uY3BwCmluZGV4IDhmM2E4ZGZmYmZlZTU3MmJlMWYwYTM1OTM2YjhmMTkwOGU1YWIwM2Yu
LmUyYzk5YTYxYzc2NWIyYjJmZTBhZGM0OWMzMzhkYTc0Y2IzNmQ0MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCkBAIC01
Nyw2ICs1Nyw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKiBwbGF5CiAgICAgLCBtX2NhY2hlZE1heFRp
bWVTZWVrYWJsZSgwKQogICAgICwgbV9jYWNoZWREdXJhdGlvbihpbnZhbGlkVGltZSgpKQogICAg
ICwgbV9yZXBvcnRlZER1cmF0aW9uKGludmFsaWRUaW1lKCkpCisgICAgLCBtX21heFRpbWVMb2Fk
ZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MoaW52YWxpZFRpbWUoKSkKICAgICAsIG1fc2Vla1Rv
KGludmFsaWRUaW1lKCkpCiAgICAgLCBtX3JlcXVlc3RlZFJhdGUoMSkKICAgICAsIG1fZGVsYXlD
YWxsYmFja3MoMCkKQEAgLTM2NiwxNCArMzY3LDE1IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbjo6bWF4VGltZUxvYWRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2FjaGVk
TWF4VGltZUxvYWRlZDsgICAKIH0KIAotdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uOjpieXRlc0xvYWRlZCgpIGNvbnN0Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKIHsKLSAgICBmbG9hdCBkdXIgPSBk
dXJhdGlvbigpOwotICAgIGlmICghZHVyKQotICAgICAgICByZXR1cm4gMDsKLSAgICB1bnNpZ25l
ZCBsb2FkZWQgPSB0b3RhbEJ5dGVzKCkgKiBtYXhUaW1lTG9hZGVkKCkgLyBkdXI7Ci0gICAgTE9H
KE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpieXRlc0xvYWRlZCglcCkg
LSByZXR1cm5pbmcgJWkiLCB0aGlzLCBsb2FkZWQpOwotICAgIHJldHVybiBsb2FkZWQ7CisgICAg
aWYgKCFkdXJhdGlvbigpIHx8ICF0b3RhbEJ5dGVzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB1bnNpZ25lZCBjdXJyZW50TWF4VGltZUxvYWRlZCA9IG1heFRpbWVMb2FkZWQoKTsKKyAg
ICBib29sIHJldCA9IGN1cnJlbnRNYXhUaW1lTG9hZGVkICE9IG1fbWF4VGltZUxvYWRlZEF0TGFz
dERpZExvYWRpbmdQcm9ncmVzczsKKyAgICBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5n
UHJvZ3Jlc3MgPSBjdXJyZW50TWF4VGltZUxvYWRlZDsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb246OmRpZExvYWRpbmdQcm9ncmVzcyglcCkgLSByZXR1cm5p
bmcgJWQiLCB0aGlzLCByZXQpOworICAgIHJldHVybiByZXQ7CiB9CiAKIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjppc1JlYWR5Rm9yVmlkZW9TZXR1cCgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5k
ZXggNzIzMDIzNDZmODNmM2JkNWM0NGUxMjAwYjU2NTk3YmM2ODZkYmE5Ni4uNjNmZTZhYTRlMTMz
ZGY5Y2M1NjQ5MjU5ZjgyNTM2OGYwYzUwN2Q1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMTQwLDcgKzE0MCw3IEBAIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUo
KSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH0KICAgICB2aXJ0dWFsIGZsb2F0IG1heFRp
bWVTZWVrYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBi
dWZmZXJlZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRS
ZWN0JikgPSAwOwpAQCAtMjYzLDcgKzI2Myw3IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBmbG9h
dCBtX2NhY2hlZE1heFRpbWVTZWVrYWJsZTsKICAgICBtdXRhYmxlIGZsb2F0IG1fY2FjaGVkRHVy
YXRpb247CiAgICAgZmxvYXQgbV9yZXBvcnRlZER1cmF0aW9uOwotCisgICAgbXV0YWJsZSBmbG9h
dCBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CiAgICAgZmxvYXQgbV9z
ZWVrVG87CiAgICAgZmxvYXQgbV9yZXF1ZXN0ZWRSYXRlOwogICAgIG11dGFibGUgaW50IG1fZGVs
YXlDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFj
a0JlcnJ5LmNwcAppbmRleCBhYTc4Njc2NWFlYzNlNGExODA3YzIwMzYzZjcxYjdjOGIyOTIyOTE1
Li4zYWM5M2U4YjRjNjdlZDJmMTRmZTM2NmFmNjUxMjYyODQwYTExMDk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJp
dmF0ZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKQEAgLTI4OCwxMCAr
Mjg4LDEwIEBAIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlOjpidWZm
ZXJlZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRpbWVSYW5nZXMucmVsZWFzZSgpOwogfQogCi11bnNp
Z25lZCBNZWRpYVBsYXllclByaXZhdGU6OmJ5dGVzTG9hZGVkKCkgY29uc3QKK2Jvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdAogewogICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZTo6c2V0U2l6ZShjb25zdCBJbnRTaXplJikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2
YXRlQmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2ti
ZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgKaW5kZXggMzZjMzZmODc4NTdhMjMx
OGRiYWVjNzI5N2E5MDkyMmU2YmM4ZDgyMy4uMGFjNDY2YmVjOGVlODg4MTFhMWIxNjQwYjczNTJh
OTA5Yzg1MzY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFj
a0JlcnJ5LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZmxvYXQgbWF4
VGltZVNlZWthYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+
IGJ1ZmZlcmVkKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0OwogCiAg
ICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDU3NTdhMjc0MzFkNDM2
YTg0Y2ZjYmY1NjdiYTY1MzlkYTY4ZmM3N2IuLjlhNTZhMDliODRmYzMwZDE5YWU0OTUwZTBmY2Ux
NzUwZGE2OGYxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCkBAIC0yMjcsNiArMjI3LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAs
IG1fcHJlbG9hZChNZWRpYVBsYXllcjo6QXV0bykKICAgICAsIG1fZGVsYXlpbmdMb2FkKGZhbHNl
KQogICAgICwgbV9tZWRpYUR1cmF0aW9uS25vd24odHJ1ZSkKKyAgICAsIG1fbWF4VGltZUxvYWRl
ZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzcygwKQogICAgICwgbV92b2x1bWVUaW1lckhhbmRsZXIo
MCkKICAgICAsIG1fbXV0ZVRpbWVySGFuZGxlcigwKQogICAgICwgbV9oYXNWaWRlbyhmYWxzZSkK
QEAgLTkyMCwxNyArOTIxLDE1IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bWF4VGltZUxvYWRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGxvYWRlZDsKIH0KIAotdW5zaWduZWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpieXRlc0xvYWRlZCgpIGNvbnN0Citib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKIHsK
LSAgICBpZiAoIW1fcGxheUJpbikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoIW1fbWVk
aWFEdXJhdGlvbikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICB1bnNpZ25lZCBsb2FkZWQgPSB0
b3RhbEJ5dGVzKCkgKiBtYXhUaW1lTG9hZGVkKCkgLyBtX21lZGlhRHVyYXRpb247Ci0gICAgTE9H
X1ZFUkJPU0UoTWVkaWEsICJieXRlc0xvYWRlZDogJWQiLCBsb2FkZWQpOwotICAgIHJldHVybiBs
b2FkZWQ7CisgICAgaWYgKCFtX3BsYXlCaW4gfHwgIW1fbWVkaWFEdXJhdGlvbiB8fCAhdG90YWxC
eXRlcygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZmxvYXQgY3VycmVudE1heFRpbWVM
b2FkZWQgPSBtYXhUaW1lTG9hZGVkKCk7CisgICAgYm9vbCByZXQgPSBjdXJyZW50TWF4VGltZUxv
YWRlZCAhPSBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CisgICAgbV9t
YXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzID0gY3VycmVudE1heFRpbWVMb2Fk
ZWQ7CisgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJkaWRMb2FkaW5nUHJvZ3Jlc3M6ICVkIiwgcmV0
KTsKKyAgICByZXR1cm4gcmV0OwogfQogCiB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oCmluZGV4IDFiMGZmMjZlNjBmYjZmNWVmMzFiNmVkNTAzMGM1MDZhYzEw
ZDk1YmQuLjM5ZWU5Y2U0YmZiY2I4MTIzYTAyM2M0MTU3MmMzMGE2M2VjMWQzMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTkwLDcgKzkwLDcg
QEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZSB7CiAKICAgICAgICAgICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4g
YnVmZmVyZWQoKSBjb25zdDsKICAgICAgICAgICAgIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNv
bnN0OwotICAgICAgICAgICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKKyAgICAgICAg
ICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Q7CiAgICAgICAgICAgICB1bnNpZ25l
ZCB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAKICAgICAgICAgICAgIHZvaWQgc2V0VmlzaWJsZShib29s
KTsKQEAgLTE4MSw2ICsxODEsNyBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIg
OiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIE1lZGlh
UGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsKICAgICAgICAgICAgIGJvb2wgbV9kZWxheWluZ0xv
YWQ7CiAgICAgICAgICAgICBib29sIG1fbWVkaWFEdXJhdGlvbktub3duOworICAgICAgICAgICAg
bXV0YWJsZSBmbG9hdCBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CiAj
aWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAgICAgICAgICBSZWZQdHI8R1N0cmVhbWVyR1dv
cmxkPiBtX2dzdEdXb3JsZDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRl
eCAzMDg5YWUyZDQ2YjRkMjE0MDQ3ZWNiYmZkOTk5NDdjZjE2YTM1MWQ3Li4wMTFlYzM2YTI1ZDE5
ZGU2MTExZWQ1ODNjZDJiNmExNDRlMWM0MGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQu
aApAQCAtMTIxLDcgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgUGFzc1JlZlB0cjxUaW1l
UmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNv
bnN0OwotICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29uc3Q7CisgICAgYm9vbCBkaWRMb2Fk
aW5nUHJvZ3Jlc3MoKSBjb25zdDsKICAgICB1bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAg
ICAgCiAgICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wpOwpAQCAtMjEyLDYgKzIxMiw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3ZpZGVvRnJhbWVIYXNEcmF3bjsKICAgICBib29sIG1faXNBbGxvd2Vk
VG9SZW5kZXI7CiAgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZzsKKyAgICBtdXRhYmxlIGZsb2F0
IG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzczsKICNpZiBEUkFXX0ZSQU1F
X1JBVEUKICAgICBpbnQgIG1fZnJhbWVDb3VudFdoaWxlUGxheWluZzsKICAgICBkb3VibGUgbV90
aW1lU3RhcnRlZFBsYXlpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggOTg1
OTllOTZiYTg1ZWMwMDMzY2U4MGZjN2Y3ZDY3ODJiZWY1N2ZlZS4uMzNlOGVlODA4NjczODE3OWU3
MDg5NjA5MTBhOTUwOTg0YTk2NDBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpA
QCAtMjE0LDYgKzIxNCw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVRVEtpdChNZWRpYVBsYXllciogcGxheWVyKQogICAgICwgbV92aWRlb0ZyYW1lSGFzRHJh
d24oZmFsc2UpCiAgICAgLCBtX2lzQWxsb3dlZFRvUmVuZGVyKGZhbHNlKQogICAgICwgbV9wcml2
YXRlQnJvd3NpbmcoZmFsc2UpCisgICAgLCBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5n
UHJvZ3Jlc3MoMCkKICNpZiBEUkFXX0ZSQU1FX1JBVEUKICAgICAsIG1fZnJhbWVDb3VudFdoaWxl
UGxheWluZygwKQogICAgICwgbV90aW1lU3RhcnRlZFBsYXlpbmcoMCkKQEAgLTk0NSwxMiArOTQ2
LDE0IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjptYXhUaW1lTG9hZGVkKCkgY29u
c3QKICAgICByZXR1cm4gd2tRVE1vdmllTWF4VGltZUxvYWRlZChtX3F0TW92aWUuZ2V0KCkpOyAK
IH0KIAotdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmJ5dGVzTG9hZGVkKCkgY29u
c3QKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmRpZExvYWRpbmdQcm9ncmVzcygpIGNv
bnN0CiB7Ci0gICAgZmxvYXQgZHVyID0gZHVyYXRpb24oKTsKLSAgICBpZiAoIWR1cikKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHRvdGFsQnl0ZXMoKSAqIG1heFRpbWVMb2FkZWQoKSAv
IGR1cjsKKyAgICBpZiAoIWR1cmF0aW9uKCkgfHwgIXRvdGFsQnl0ZXMoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGZsb2F0IGN1cnJlbnRNYXhUaW1lTG9hZGVkID0gbWF4VGltZUxvYWRl
ZCgpOworICAgIGJvb2wgcmV0ID0gY3VycmVudE1heFRpbWVMb2FkZWQgIT0gbV9tYXhUaW1lTG9h
ZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzOworICAgIG1fbWF4VGltZUxvYWRlZEF0TGFzdERp
ZExvYWRpbmdQcm9ncmVzcyA9IGN1cnJlbnRNYXhUaW1lTG9hZGVkOworICAgIHJldHVybiByZXQ7
CiB9CiAKIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojp0b3RhbEJ5dGVzKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlh
UGxheWVyUHJpdmF0ZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcAppbmRleCA5NTI5Y2Q0N2EwNzlhMGU0YjgxODI3ZTkz
MzRkZjBlZGU1MmI1MWVmLi5jMDc0MTYwMmQ1YmQzYjc5YzBmYjUwZjBiNmJmY2E4MjBlNTNiODcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBs
YXllclByaXZhdGVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwCkBAIC0xMTYsNiArMTE2LDcgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlUXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0KE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAg
ICAgLCBtX2lzU2Vla2luZyhmYWxzZSkKICAgICAsIG1fY29tcG9zaXRlZChmYWxzZSkKICAgICAs
IG1fcHJlbG9hZChNZWRpYVBsYXllcjo6QXV0bykKKyAgICAsIG1fYnl0ZXNMb2FkZWRBdExhc3RE
aWRMb2FkaW5nUHJvZ3Jlc3MoMCkKICAgICAsIG1fc3VwcHJlc3NOZXh0UGxheWJhY2tDaGFuZ2Vk
KGZhbHNlKQogewogICAgIG1fbWVkaWFQbGF5ZXItPnNldFZpZGVvT3V0cHV0KG1fdmlkZW9JdGVt
KTsKQEAgLTM2MSwxMyArMzYyLDE3IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZVF0OjptYXhU
aW1lU2Vla2FibGUoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4obV9tZWRp
YVBsYXllckNvbnRyb2wtPmF2YWlsYWJsZVBsYXliYWNrUmFuZ2VzKCkubGF0ZXN0VGltZSgpKSAv
IDEwMDAuMGY7CiB9CiAKLXVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZVF0OjpieXRlc0xvYWRl
ZCgpIGNvbnN0Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZVF0OjpkaWRMb2FkaW5nUHJvZ3Jlc3Mo
KSBjb25zdAogeworICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkID0gMDsKICAgICBRTGF0aW4xU3Ry
aW5nIGJ5dGVzTG9hZGVkS2V5KCJieXRlcy1sb2FkZWQiKTsKICAgICBpZiAobV9tZWRpYVBsYXll
ci0+YXZhaWxhYmxlRXh0ZW5kZWRNZXRhRGF0YSgpLmNvbnRhaW5zKGJ5dGVzTG9hZGVkS2V5KSkK
LSAgICAgICAgcmV0dXJuIG1fbWVkaWFQbGF5ZXItPmV4dGVuZGVkTWV0YURhdGEoYnl0ZXNMb2Fk
ZWRLZXkpLnRvSW50KCk7Ci0KLSAgICByZXR1cm4gbV9tZWRpYVBsYXllci0+YnVmZmVyU3RhdHVz
KCk7CisgICAgICAgIGJ5dGVzTG9hZGVkID0gbV9tZWRpYVBsYXllci0+ZXh0ZW5kZWRNZXRhRGF0
YShieXRlc0xvYWRlZEtleSkudG9JbnQoKTsKKyAgICBlbHNlCisgICAgICAgIGJ5dGVzTG9hZGVk
ID0gbV9tZWRpYVBsYXllci0+YnVmZmVyU3RhdHVzKCk7CisgICAgYm9vbCByZXQgPSBieXRlc0xv
YWRlZCAhPSBtX2J5dGVzTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzOworICAgIG1fYnl0
ZXNMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MgPSBieXRlc0xvYWRlZDsKKyAgICByZXR1
cm4gcmV0OwogfQogCiB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVRdDo6dG90YWxCeXRlcygp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9N
ZWRpYVBsYXllclByaXZhdGVRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuaAppbmRleCA2N2Y2NGM3NGIzNzhhYjNjM2NhMGY3YWQ5
NDc2NzY4ZGFlYThmZTM4Li5jNmZjYmQ4MzhkMTFkODNlNDc1NzUwOWY3YTIxNjk3ZjMzNDdkYTBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBs
YXllclByaXZhdGVRdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L01lZGlhUGxheWVyUHJpdmF0ZVF0LmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogCiAgICAg
UGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgIGZsb2F0IG1heFRp
bWVTZWVrYWJsZSgpIGNvbnN0OwotICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29uc3Q7Cisg
ICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdDsKICAgICB1bnNpZ25lZCB0b3RhbEJ5
dGVzKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFZpc2libGUoYm9vbCk7CkBAIC0xNTYsNiArMTU2
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNTZWVraW5nOwogICAgIGJvb2wgbV9jb21wb3Np
dGVkOwogICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsKKyAgICBtdXRhYmxlIHVu
c2lnbmVkIG1fYnl0ZXNMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CiAgICAgYm9vbCBt
X2RlbGF5aW5nTG9hZDsKICAgICBTdHJpbmcgbV9tZWRpYVVybDsKICAgICBib29sIG1fc3VwcHJl
c3NOZXh0UGxheWJhY2tDaGFuZ2VkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCmluZGV4IGIwMDM3YzNhYjdlZjE2OTU3MjM3
Zjg2MzkzNDhlZGRiMDgwYWIzNDMuLmY0MzQ2NzczMDMwMzlmZGQ2OWY0NWFhMmEyZDFmZmJlODU1
MzQwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dC5jcHAKQEAgLTE4Myw2ICsxODMsNyBAQCBNZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0OjpNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxD
b250ZQogICAgICwgbV9kZWxheWluZ0xvYWQoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2lu
ZyhmYWxzZSkKICAgICAsIG1fcHJlbG9hZChNZWRpYVBsYXllcjo6QXV0bykKKyAgICAsIG1fbWF4
VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzcygwKQogewogfQogCkBAIC01ODMsMTUg
KzU4NCwxNCBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0
OjptYXhUaW1lTG9hZGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9tb3ZpZS0+bWF4VGltZUxvYWRl
ZCgpOyAKIH0KIAotdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29u
dGV4dDo6Ynl0ZXNMb2FkZWQoKSBjb25zdAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVRdWlja1Rp
bWVWaXN1YWxDb250ZXh0OjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdAogewotICAgIGlmICgh
bV9tb3ZpZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgZmxvYXQgZHVyID0gZHVyYXRpb24oKTsK
LSAgICBmbG9hdCBtYXhUaW1lID0gbWF4VGltZUxvYWRlZCgpOwotICAgIGlmICghZHVyKQotICAg
ICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gdG90YWxCeXRlcygpICogbWF4VGltZSAvIGR1cjsK
KyAgICBpZiAoIW1fbW92aWUgfHwgIWR1cmF0aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBmbG9hdCBjdXJyZW50TWF4VGltZUxvYWRlZCA9IG1heFRpbWVMb2FkZWQoKTsKKyAgICBi
b29sIHJldCA9IGN1cnJlbnRNYXhUaW1lTG9hZGVkICE9IG1fbWF4VGltZUxvYWRlZEF0TGFzdERp
ZExvYWRpbmdQcm9ncmVzczsKKyAgICBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJv
Z3Jlc3MgPSBjdXJyZW50TWF4VGltZUxvYWRlZDsKKyAgICByZXR1cm4gcmV0OwogfQogCiB1bnNp
Z25lZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Ojp0b3RhbEJ5dGVz
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dC5oCmluZGV4IDcwZmQyYTVkZjJjMzAzNTE2MmU3NWZmMDJmZjdlNDIxZmMxOTNl
NzEuLjRjNDRhZjQwMWViYjAzZmRiMmYzZmYxNDI0Mjg1Nzk1MWY5MTExMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaApAQCAt
OTksNyArOTksNyBAQCBwcml2YXRlOgogICAgIAogICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4g
YnVmZmVyZWQoKSBjb25zdDsKICAgICBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKSBjb25zdDsKLSAg
ICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0OworICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dy
ZXNzKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgdG90YWxCeXRlcygpIGNvbnN0OwogICAgIAogICAg
IHZvaWQgc2V0VmlzaWJsZShib29sKTsKQEAgLTIwMSw2ICsyMDEsNyBAQCBwcml2YXRlOgogICAg
IFN0cmluZyBtX21vdmllVVJMOwogICAgIGJvb2wgbV9wcml2YXRlQnJvd3Npbmc7CiAgICAgTWVk
aWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOworICAgIG11dGFibGUgZmxvYXQgbV9tYXhUaW1l
TG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzOwogI2lmIERSQVdfRlJBTUVfUkFURQogICAg
IGRvdWJsZSBtX2ZyYW1lQ291bnRXaGlsZVBsYXlpbmc7CiAgICAgZG91YmxlIG1fdGltZVN0YXJ0
ZWRQbGF5aW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmgKaW5kZXggODYyOTM3MzU3
ZWZjZjFmY2E5NWZlOWQ0OWEzYmM2Y2E4ODU5MjY3Ny4uMGZhYTA0NTc4NGQ3MWJmYTg3MDY4ZGVm
ZGIwNjA2Njc0YzllYjcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5oCkBAIC03
MCw2ICs3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBQYXNzUmVmUHRyPFRp
bWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgICAgIGZsb2F0IG1heFRpbWVTZWVrYWJs
ZSgpIGNvbnN0OworICAgICAgICAvLyBGSVhNRTogYnl0ZXNMb2FkZWQoKSBzaG91bGQgYmUgcmVw
bGFjZWQgd2l0aCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSAoYnkgc29tZWJvZHkgd2hvIGNhbiBmaW5k
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGNsYXNzKS4KICAgICAgICAgdW5zaWduZWQgYnl0
ZXNMb2FkZWQoKSBjb25zdDsKICAgICAgICAgdW5zaWduZWQgdG90YWxCeXRlcygpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXll
ci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAppbmRl
eCAzMzEyZjVmMjFmNDljMzFjNmZmMjY4MzI5NTBlNmExMzVmNmI2YjJiLi40NDRhMmNjOTAxZjdl
YzRmM2IwZjNiZGYyMTdhZTE5NDhkMmRlMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKQEAgLTE0NCw3ICsxNDQsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB1
bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNMb2FkZWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBi
b29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHVuc2lnbmVk
IGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGhh
c1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKaW5kZXggMjQx
MWQ5Yzc5NWRkNGI4MjRiYWEzNDZiMTEwMzdjMzFjYjgzYzcxMC4uNDRlNTFjZDg3OTdiM2JlOWQw
NDA1OTFmZTAyMDk5Y2ZhM2ZkNjRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCkBAIC01OTMsMTEgKzU5Myw5
IEBAIHVuc2lnbmVkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6dG90YWxCeXRlcygpIGNvbnN0
CiAgICAgcmV0dXJuIDA7CiB9CiAKLXVuc2lnbmVkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
Ynl0ZXNMb2FkZWQoKSBjb25zdAorYm9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmRpZExv
YWRpbmdQcm9ncmVzcygpIGNvbnN0CiB7Ci0gICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpCi0gICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV93ZWJNZWRpYVBsYXllci0+Ynl0ZXNM
b2FkZWQoKSk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fd2ViTWVkaWFQbGF5ZXIgJiYg
bV93ZWJNZWRpYVBsYXllci0+ZGlkTG9hZGluZ1Byb2dyZXNzKCk7CiB9CiAKIHZvaWQgV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5o
CmluZGV4IDcyMTcwZjc1MDQzNDlhZDg4NzFmNzc0MWNiZWEwNzY4YmUxMjA4ZjguLjA4ODhkNWVl
ZWU4ODRkNTNlMzU4ZjFmNzU3MGQ4YTk3ZjNkZjQ1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBAIC0xMjIsNyAr
MTIyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IGRhdGFSYXRlKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBib29sIHRvdGFsQnl0ZXNLbm93bigpIGNvbnN0OwogICAgIHZpcnR1YWwgdW5zaWdu
ZWQgdG90YWxCeXRlcygpIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0ZXNMb2FkZWQo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145099</attachid>
            <date>2012-05-31 09:07:28 -0700</date>
            <delta_ts>2012-05-31 09:26:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86113-20120531090727.patch</filename>
            <type>text/plain</type>
            <size>26850</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM2ZjcxMzIyNTVlNTFm
OGI3MTAxMGVlZTRiZTIyMjE3ODFlNWIzMy4uZDhhMDcyODVjOTdiYTViZjAxYjUyOGQzMWJiOTNh
NjM3OGYxYWU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA1LTMxICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBXZWJN
ZWRpYVBsYXllcjo6Ynl0ZXNMb2FkZWQoKSB3aXRoIGFuIGV4cGxpY2l0IGRpZExvYWRpbmdQcm9n
cmVzcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjExMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyBmdW5jdGlvbmFsaXR5LCBzbyBubyBuZXcgdGVzdHMuICBMb2FkaW5nIHByb2dyZXNzIGlz
IGFscmVhZHkgdGVzdGVkIGJ5IGV4aXN0aW5nIGxheW91dHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6c3RhcnRQcm9ncmVzc0V2ZW50VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6Y2hhbmdlTmV0d29ya1N0YXRlRnJvbUxvYWRpbmdUb0lkbGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3RhcnRQbGF5YmFja1Byb2dyZXNzVGlt
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OmRpZExvYWRpbmdQcm9ncmVzcyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OmRpZExvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5Lmg6CisgICAgICAg
IChNZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRMb2Fk
aW5nUHJvZ3Jlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVRVEtpdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkaWRM
b2FkaW5nUHJvZ3Jlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxh
eWVyUHJpdmF0ZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0
OjpNZWRpYVBsYXllclByaXZhdGVRdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRdDo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRl
UXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGlt
ZVZpc3VhbENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dDo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4
dC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2lu
Q0UuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZSk6CisKIDIwMTItMDUtMzEgIFNoYW5l
IFN0ZXBoZW5zICA8c2hhbmVzdGVwaGVuc0Bnb29nbGUuY29tPgogCiAgICAgICAgIHRleHQtZGVj
b3JhdGlvbiBzaG91bGQgbm90IGJlIHByb3BhZ2F0ZWQgdGhyb3VnaCBhYnNvbHV0ZWx5IHBvc2l0
aW9uZWQgZWxlbWVudHMgdG8gPGE+IHRhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
MjFmMDNhOTBhY2ZhNWFhYjYzZjMxMWY5MGEwMGYzZDJhYmMzOTdhNi4uYzA2M2Q3YjZjMDc1YWU1
OWU0MjIyNTJkNTkxN2EzYjc1OWExYjg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMi0wNS0zMSAgQW1pIEZpc2NobWFuICA8ZmlzY2htYW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJlcGxhY2UgV2ViTWVkaWFQbGF5ZXI6OmJ5dGVzTG9hZGVkKCkg
d2l0aCBhbiBleHBsaWNpdCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYxMTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgor
ICAgICAgICAoV2ViTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
OmRpZExvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oOgorICAgICAgICAoV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKToKKwogMjAxMi0wNS0z
MCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtQbGF0
Zm9ybV0gSW50cm9kdWNlIERlY2ltYWwgY2xhc3MgZm9yIE51bWJlci9SYW5nZSBpbnB1dCB0eXBl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYzRjNmJhNDU2
Mzg1MTZlYzY0YmY4Y2Q5ODU4NjMyYzVhNjk5M2ViOS4uZDUxMWY5NTgyMGY5ZTRjYzFkODdlZjA3
ZmYzNGQyZjJmMDA5OTI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC0yMTAsNyArMjEwLDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW0KICAgICAsIG1f
cmVhZHlTdGF0ZU1heGltdW0oSEFWRV9OT1RISU5HKQogICAgICwgbV92b2x1bWUoMS4wZikKICAg
ICAsIG1fbGFzdFNlZWtUaW1lKDApCi0gICAgLCBtX3ByZXZpb3VzUHJvZ3Jlc3MoMCkKICAgICAs
IG1fcHJldmlvdXNQcm9ncmVzc1RpbWUobnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCkpCiAg
ICAgLCBtX2xhc3RUaW1lVXBkYXRlRXZlbnRXYWxsVGltZSgwKQogICAgICwgbV9sYXN0VGltZVVw
ZGF0ZUV2ZW50TW92aWVUaW1lKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpCkBAIC0xMzc3
LDcgKzEzNzYsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0YXJ0UHJvZ3Jlc3NFdmVudFRp
bWVyKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcmV2aW91c1Byb2dyZXNzVGltZSA9IFdU
Rjo6Y3VycmVudFRpbWUoKTsKLSAgICBtX3ByZXZpb3VzUHJvZ3Jlc3MgPSAwOwogICAgIC8vIDM1
MG1zIGlzIG5vdCBtYWdpYywgaXQgaXMgaW4gdGhlIHNwZWMhCiAgICAgbV9wcm9ncmVzc0V2ZW50
VGltZXIuc3RhcnRSZXBlYXRpbmcoMC4zNTApOwogfQpAQCAtMTU4NCw3ICsxNTgyLDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtT
dGF0ZSBzdGF0ZSkKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2hhbmdlTmV0d29ya1N0YXRlRnJv
bUxvYWRpbmdUb0lkbGUoKQogewogICAgIG1fcHJvZ3Jlc3NFdmVudFRpbWVyLnN0b3AoKTsKLSAg
ICBpZiAoaGFzTWVkaWFDb250cm9scygpICYmIG1fcGxheWVyLT5ieXRlc0xvYWRlZCgpICE9IG1f
cHJldmlvdXNQcm9ncmVzcykKKyAgICBpZiAoaGFzTWVkaWFDb250cm9scygpICYmIG1fcGxheWVy
LT5kaWRMb2FkaW5nUHJvZ3Jlc3MoKSkKICAgICAgICAgbWVkaWFDb250cm9scygpLT5idWZmZXJp
bmdQcm9ncmVzc2VkKCk7CiAKICAgICAvLyBTY2hlZHVsZSBvbmUgbGFzdCBwcm9ncmVzcyBldmVu
dCBzbyB3ZSBndWFyYW50ZWUgdGhhdCBhdCBsZWFzdCBvbmUgaXMgZmlyZWQKQEAgLTE4MzcsMjUg
KzE4MzUsMjMgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpwcm9ncmVzc0V2ZW50VGltZXJGaXJl
ZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiopCiAgICAgaWYgKG1fbmV0d29ya1N0YXRlICE9IE5F
VFdPUktfTE9BRElORykKICAgICAgICAgcmV0dXJuOwogCi0gICAgdW5zaWduZWQgcHJvZ3Jlc3Mg
PSBtX3BsYXllci0+Ynl0ZXNMb2FkZWQoKTsKICAgICBkb3VibGUgdGltZSA9IFdURjo6Y3VycmVu
dFRpbWUoKTsKICAgICBkb3VibGUgdGltZWRlbHRhID0gdGltZSAtIG1fcHJldmlvdXNQcm9ncmVz
c1RpbWU7CiAKLSAgICBpZiAocHJvZ3Jlc3MgPT0gbV9wcmV2aW91c1Byb2dyZXNzKSB7Ci0gICAg
ICAgIGlmICh0aW1lZGVsdGEgPiAzLjAgJiYgIW1fc2VudFN0YWxsZWRFdmVudCkgewotICAgICAg
ICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc3RhbGxlZEV2ZW50KTsKLSAgICAgICAg
ICAgIG1fc2VudFN0YWxsZWRFdmVudCA9IHRydWU7Ci0gICAgICAgICAgICBzZXRTaG91bGREZWxh
eUxvYWRFdmVudChmYWxzZSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgeworICAgIGlmIChtX3Bs
YXllci0+ZGlkTG9hZGluZ1Byb2dyZXNzKCkpIHsKICAgICAgICAgc2NoZWR1bGVFdmVudChldmVu
dE5hbWVzKCkucHJvZ3Jlc3NFdmVudCk7Ci0gICAgICAgIG1fcHJldmlvdXNQcm9ncmVzcyA9IHBy
b2dyZXNzOwogICAgICAgICBtX3ByZXZpb3VzUHJvZ3Jlc3NUaW1lID0gdGltZTsKICAgICAgICAg
bV9zZW50U3RhbGxlZEV2ZW50ID0gZmFsc2U7CiAgICAgICAgIGlmIChyZW5kZXJlcigpKQogICAg
ICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKICAgICAgICAgaWYgKGhh
c01lZGlhQ29udHJvbHMoKSkKICAgICAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+YnVmZmVyaW5n
UHJvZ3Jlc3NlZCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICh0aW1lZGVsdGEgPiAzLjAg
JiYgIW1fc2VudFN0YWxsZWRFdmVudCkgeworICAgICAgICAgICAgc2NoZWR1bGVFdmVudChldmVu
dE5hbWVzKCkuc3RhbGxlZEV2ZW50KTsKKyAgICAgICAgICAgIG1fc2VudFN0YWxsZWRFdmVudCA9
IHRydWU7CisgICAgICAgICAgICBzZXRTaG91bGREZWxheUxvYWRFdmVudChmYWxzZSk7CisgICAg
ICAgIH0KICAgICB9CiB9CiAKQEAgLTI3MjMsNyArMjcxOSw2IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c3RhcnRQbGF5YmFja1Byb2dyZXNzVGltZXIoKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX3ByZXZpb3VzUHJvZ3Jlc3NUaW1lID0gV1RGOjpjdXJyZW50VGltZSgpOwotICAgIG1fcHJl
dmlvdXNQcm9ncmVzcyA9IDA7CiAgICAgbV9wbGF5YmFja1Byb2dyZXNzVGltZXIuc3RhcnRSZXBl
YXRpbmcobWF4VGltZXVwZGF0ZUV2ZW50RnJlcXVlbmN5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGFmMzBlYjEyMzkz
YmQxY2RiMjAwZGJiZTZhMDBkMTQ2ZmZhN2MxODAuLjkzNTczMzBlNDlkNjI1OTBlYzA3NDY1OTVj
OTI0NTg5ZTU3MTg0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgeyByZXR1cm4gVGltZVJh
bmdlczo6Y3JlYXRlKCk7IH0KIAogICAgIHZpcnR1YWwgdW5zaWduZWQgdG90YWxCeXRlcygpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29u
c3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3Qg
SW50U2l6ZSYpIHsgfQogCkBAIC02ODEsOSArNjgxLDkgQEAgZmxvYXQgTWVkaWFQbGF5ZXI6Om1h
eFRpbWVTZWVrYWJsZSgpCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bWF4VGltZVNlZWthYmxlKCk7
CiB9CiAKLXVuc2lnbmVkIE1lZGlhUGxheWVyOjpieXRlc0xvYWRlZCgpCitib29sIE1lZGlhUGxh
eWVyOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKQogewotICAgIHJldHVybiBtX3ByaXZhdGUtPmJ5dGVz
TG9hZGVkKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZGlkTG9hZGluZ1Byb2dyZXNzKCk7CiB9
CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGEwM2Fk
ZTcxYzdmMGM2Y2VhYmM5ODAwZGJlODc5MzZjZGJkZDIxMTEuLjUxNmYyZmU5ODgxZTYyYmJkNmVm
ZjhiMDNhNmYxMGY4YThhNjY1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjc4LDcgKzI3OCw3IEBAIHB1YmxpYzoKICAgICBQYXNz
UmVmUHRyPFRpbWVSYW5nZXM+IHNlZWthYmxlKCk7CiAgICAgZmxvYXQgbWF4VGltZVNlZWthYmxl
KCk7CiAKLSAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpOworICAgIGJvb2wgZGlkTG9hZGluZ1By
b2dyZXNzKCk7CiAKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKICAgICB2b2lkIHNldFZvbHVt
ZShmbG9hdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IGY3NmQ0OWUyMzgyYjIwOTgyYmNiMjc5Mzg2NDQ2MjA4
ZmVkNzNhN2YuLjA4NTI3OGUzZTA0MWY4MDUxMzdjNWE0MjA3ZWFmZDU4N2RlZWE5YzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCkBAIC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGZsb2F0IG1heFRp
bWVTZWVrYWJsZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdl
cz4gYnVmZmVyZWQoKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVzTG9h
ZGVkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgPSAw
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uY3BwCmluZGV4IDhmM2E4ZGZmYmZlZTU3MmJlMWYwYTM1OTM2YjhmMTkwOGU1YWIwM2Yu
LjczMTM0ZWQyYTI1ZjlkMTM4YWQ5MTFhYWUxZGU4ZTlkNGEyMDZjMTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCkBAIC01
Nyw2ICs1Nyw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKiBwbGF5CiAgICAgLCBtX2NhY2hlZE1heFRp
bWVTZWVrYWJsZSgwKQogICAgICwgbV9jYWNoZWREdXJhdGlvbihpbnZhbGlkVGltZSgpKQogICAg
ICwgbV9yZXBvcnRlZER1cmF0aW9uKGludmFsaWRUaW1lKCkpCisgICAgLCBtX21heFRpbWVMb2Fk
ZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MoaW52YWxpZFRpbWUoKSkKICAgICAsIG1fc2Vla1Rv
KGludmFsaWRUaW1lKCkpCiAgICAgLCBtX3JlcXVlc3RlZFJhdGUoMSkKICAgICAsIG1fZGVsYXlD
YWxsYmFja3MoMCkKQEAgLTM2NiwxNCArMzY3LDE1IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbjo6bWF4VGltZUxvYWRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2FjaGVk
TWF4VGltZUxvYWRlZDsgICAKIH0KIAotdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uOjpieXRlc0xvYWRlZCgpIGNvbnN0Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKIHsKLSAgICBmbG9hdCBkdXIgPSBk
dXJhdGlvbigpOwotICAgIGlmICghZHVyKQotICAgICAgICByZXR1cm4gMDsKLSAgICB1bnNpZ25l
ZCBsb2FkZWQgPSB0b3RhbEJ5dGVzKCkgKiBtYXhUaW1lTG9hZGVkKCkgLyBkdXI7Ci0gICAgTE9H
KE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpieXRlc0xvYWRlZCglcCkg
LSByZXR1cm5pbmcgJWkiLCB0aGlzLCBsb2FkZWQpOwotICAgIHJldHVybiBsb2FkZWQ7CisgICAg
aWYgKCFkdXJhdGlvbigpIHx8ICF0b3RhbEJ5dGVzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBmbG9hdCBjdXJyZW50TWF4VGltZUxvYWRlZCA9IG1heFRpbWVMb2FkZWQoKTsKKyAgICBi
b29sIGRpZExvYWRpbmdQcm9ncmVzcyA9IGN1cnJlbnRNYXhUaW1lTG9hZGVkICE9IG1fbWF4VGlt
ZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzczsKKyAgICBtX21heFRpbWVMb2FkZWRBdExh
c3REaWRMb2FkaW5nUHJvZ3Jlc3MgPSBjdXJyZW50TWF4VGltZUxvYWRlZDsKKyAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmRpZExvYWRpbmdQcm9ncmVzcygl
cCkgLSByZXR1cm5pbmcgJWQiLCB0aGlzLCBkaWRMb2FkaW5nUHJvZ3Jlc3MpOworICAgIHJldHVy
biBkaWRMb2FkaW5nUHJvZ3Jlc3M7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uOjppc1JlYWR5Rm9yVmlkZW9TZXR1cCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNzIzMDIzNDZmODNm
M2JkNWM0NGUxMjAwYjU2NTk3YmM2ODZkYmE5Ni4uNjNmZTZhYTRlMTMzZGY5Y2M1NjQ5MjU5Zjgy
NTM2OGYwYzUwN2Q1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMTQwLDcgKzE0MCw3IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX3JlYWR5U3RhdGU7IH0KICAgICB2aXJ0dWFsIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0
OwotICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNp
emUoY29uc3QgSW50U2l6ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikgPSAwOwpAQCAt
MjYzLDcgKzI2Myw3IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBmbG9hdCBtX2NhY2hlZE1heFRp
bWVTZWVrYWJsZTsKICAgICBtdXRhYmxlIGZsb2F0IG1fY2FjaGVkRHVyYXRpb247CiAgICAgZmxv
YXQgbV9yZXBvcnRlZER1cmF0aW9uOwotCisgICAgbXV0YWJsZSBmbG9hdCBtX21heFRpbWVMb2Fk
ZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CiAgICAgZmxvYXQgbV9zZWVrVG87CiAgICAgZmxv
YXQgbV9yZXF1ZXN0ZWRSYXRlOwogICAgIG11dGFibGUgaW50IG1fZGVsYXlDYWxsYmFja3M7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01l
ZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcAppbmRl
eCBhYTc4Njc2NWFlYzNlNGExODA3YzIwMzYzZjcxYjdjOGIyOTIyOTE1Li4zYWM5M2U4YjRjNjdl
ZDJmMTRmZTM2NmFmNjUxMjYyODQwYTExMDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKQEAgLTI4OCwxMCArMjg4LDEwIEBAIFBhc3NS
ZWZQdHI8VGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCgpIGNvbnN0CiAg
ICAgcmV0dXJuIHRpbWVSYW5nZXMucmVsZWFzZSgpOwogfQogCi11bnNpZ25lZCBNZWRpYVBsYXll
clByaXZhdGU6OmJ5dGVzTG9hZGVkKCkgY29uc3QKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpk
aWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZTo6c2V0U2l6ZShjb25zdCBJbnRTaXplJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXll
clByaXZhdGVCbGFja0JlcnJ5LmgKaW5kZXggMzZjMzZmODc4NTdhMjMxOGRiYWVjNzI5N2E5MDky
MmU2YmM4ZDgyMy4uMGFjNDY2YmVjOGVlODg4MTFhMWIxNjQwYjczNTJhOTA5Yzg1MzY1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRp
YVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgKQEAgLTgz
LDcgKzgzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZmxvYXQgbWF4VGltZVNlZWthYmxlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29u
c3Q7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lk
IHNldFNpemUoY29uc3QgSW50U2l6ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDU3NTdhMjc0MzFkNDM2YTg0Y2ZjYmY1NjdiYTY1
MzlkYTY4ZmM3N2IuLjgzOTcwOGVlOTc3NjAxNDgwYzI4ZDMwNjk5NjgxMWI4Y2EzOTE2MGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0y
MjcsNiArMjI3LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fcHJlbG9hZChNZWRp
YVBsYXllcjo6QXV0bykKICAgICAsIG1fZGVsYXlpbmdMb2FkKGZhbHNlKQogICAgICwgbV9tZWRp
YUR1cmF0aW9uS25vd24odHJ1ZSkKKyAgICAsIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRp
bmdQcm9ncmVzcygwKQogICAgICwgbV92b2x1bWVUaW1lckhhbmRsZXIoMCkKICAgICAsIG1fbXV0
ZVRpbWVySGFuZGxlcigwKQogICAgICwgbV9oYXNWaWRlbyhmYWxzZSkKQEAgLTkyMCwxNyArOTIx
LDE1IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4VGltZUxvYWRlZCgp
IGNvbnN0CiAgICAgcmV0dXJuIGxvYWRlZDsKIH0KIAotdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpieXRlc0xvYWRlZCgpIGNvbnN0Citib29sIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcGxh
eUJpbikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoIW1fbWVkaWFEdXJhdGlvbikKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICB1bnNpZ25lZCBsb2FkZWQgPSB0b3RhbEJ5dGVzKCkgKiBt
YXhUaW1lTG9hZGVkKCkgLyBtX21lZGlhRHVyYXRpb247Ci0gICAgTE9HX1ZFUkJPU0UoTWVkaWEs
ICJieXRlc0xvYWRlZDogJWQiLCBsb2FkZWQpOwotICAgIHJldHVybiBsb2FkZWQ7CisgICAgaWYg
KCFtX3BsYXlCaW4gfHwgIW1fbWVkaWFEdXJhdGlvbiB8fCAhdG90YWxCeXRlcygpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgZmxvYXQgY3VycmVudE1heFRpbWVMb2FkZWQgPSBtYXhUaW1l
TG9hZGVkKCk7CisgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MgPSBjdXJyZW50TWF4VGltZUxv
YWRlZCAhPSBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CisgICAgbV9t
YXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzID0gY3VycmVudE1heFRpbWVMb2Fk
ZWQ7CisgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJkaWRMb2FkaW5nUHJvZ3Jlc3M6ICVkIiwgZGlk
TG9hZGluZ1Byb2dyZXNzKTsKKyAgICByZXR1cm4gZGlkTG9hZGluZ1Byb2dyZXNzOwogfQogCiB1
bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDFiMGZm
MjZlNjBmYjZmNWVmMzFiNmVkNTAzMGM1MDZhYzEwZDk1YmQuLjM5ZWU5Y2U0YmZiY2I4MTIzYTAy
M2M0MTU3MmMzMGE2M2VjMWQzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKQEAgLTkwLDcgKzkwLDcgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAKICAgICAg
ICAgICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICAgICAg
ICAgIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwotICAgICAgICAgICAgdW5zaWduZWQg
Ynl0ZXNMb2FkZWQoKSBjb25zdDsKKyAgICAgICAgICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNz
KCkgY29uc3Q7CiAgICAgICAgICAgICB1bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAKICAg
ICAgICAgICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKQEAgLTE4MSw2ICsxODEsNyBAQCBjbGFz
cyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlIHsKICAgICAgICAgICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsK
ICAgICAgICAgICAgIGJvb2wgbV9kZWxheWluZ0xvYWQ7CiAgICAgICAgICAgICBib29sIG1fbWVk
aWFEdXJhdGlvbktub3duOworICAgICAgICAgICAgbXV0YWJsZSBmbG9hdCBtX21heFRpbWVMb2Fk
ZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CiAjaWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAg
ICAgICAgICAgICBSZWZQdHI8R1N0cmVhbWVyR1dvcmxkPiBtX2dzdEdXb3JsZDsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCAzMDg5YWUyZDQ2YjRkMjE0MDQ3ZWNiYmZk
OTk5NDdjZjE2YTM1MWQ3Li4wMTFlYzM2YTI1ZDE5ZGU2MTExZWQ1ODNjZDJiNmExNDRlMWM0MGE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtMTIxLDcgKzEyMSw3IEBAIHByaXZh
dGU6CiAgICAgCiAgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0Owog
ICAgIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwotICAgIHVuc2lnbmVkIGJ5dGVzTG9h
ZGVkKCkgY29uc3Q7CisgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdDsKICAgICB1
bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBzZXRWaXNpYmxlKGJv
b2wpOwpAQCAtMjEyLDYgKzIxMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ZpZGVvRnJhbWVI
YXNEcmF3bjsKICAgICBib29sIG1faXNBbGxvd2VkVG9SZW5kZXI7CiAgICAgYm9vbCBtX3ByaXZh
dGVCcm93c2luZzsKKyAgICBtdXRhYmxlIGZsb2F0IG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExv
YWRpbmdQcm9ncmVzczsKICNpZiBEUkFXX0ZSQU1FX1JBVEUKICAgICBpbnQgIG1fZnJhbWVDb3Vu
dFdoaWxlUGxheWluZzsKICAgICBkb3VibGUgbV90aW1lU3RhcnRlZFBsYXlpbmc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggOTg1OTllOTZiYTg1ZWMwMDMzY2U4MGZjN2Y3ZDY3
ODJiZWY1N2ZlZS4uMjkyNDlhYTc4ODdiOGYyM2QzYThkNTgxZWM1N2M4NzY5MWY3ODMwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMjE0LDYgKzIxNCw3IEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRpYVBsYXllciogcGxh
eWVyKQogICAgICwgbV92aWRlb0ZyYW1lSGFzRHJhd24oZmFsc2UpCiAgICAgLCBtX2lzQWxsb3dl
ZFRvUmVuZGVyKGZhbHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmcoZmFsc2UpCisgICAgLCBt
X21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MoMCkKICNpZiBEUkFXX0ZSQU1F
X1JBVEUKICAgICAsIG1fZnJhbWVDb3VudFdoaWxlUGxheWluZygwKQogICAgICwgbV90aW1lU3Rh
cnRlZFBsYXlpbmcoMCkKQEAgLTk0NSwxMiArOTQ2LDE0IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0OjptYXhUaW1lTG9hZGVkKCkgY29uc3QKICAgICByZXR1cm4gd2tRVE1vdmllTWF4
VGltZUxvYWRlZChtX3F0TW92aWUuZ2V0KCkpOyAKIH0KIAotdW5zaWduZWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQ6OmJ5dGVzTG9hZGVkKCkgY29uc3QKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQ6OmRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0CiB7Ci0gICAgZmxvYXQgZHVyID0gZHVy
YXRpb24oKTsKLSAgICBpZiAoIWR1cikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHRv
dGFsQnl0ZXMoKSAqIG1heFRpbWVMb2FkZWQoKSAvIGR1cjsKKyAgICBpZiAoIWR1cmF0aW9uKCkg
fHwgIXRvdGFsQnl0ZXMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZsb2F0IGN1cnJl
bnRNYXhUaW1lTG9hZGVkID0gbWF4VGltZUxvYWRlZCgpOworICAgIGJvb2wgZGlkTG9hZGluZ1By
b2dyZXNzID0gY3VycmVudE1heFRpbWVMb2FkZWQgIT0gbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlk
TG9hZGluZ1Byb2dyZXNzOworICAgIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9n
cmVzcyA9IGN1cnJlbnRNYXhUaW1lTG9hZGVkOworICAgIHJldHVybiBkaWRMb2FkaW5nUHJvZ3Jl
c3M7CiB9CiAKIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojp0b3RhbEJ5dGVzKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01l
ZGlhUGxheWVyUHJpdmF0ZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcAppbmRleCA5NTI5Y2Q0N2EwNzlhMGU0YjgxODI3
ZTkzMzRkZjBlZGU1MmI1MWVmLi4zYTMwN2NiMjc0OWNlNDMzMGU5OGNlNWUxMzUzZTU4NDE0OWI4
ODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRp
YVBsYXllclByaXZhdGVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwCkBAIC0xMTYsNiArMTE2LDcgQEAgTWVkaWFQ
bGF5ZXJQcml2YXRlUXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0KE1lZGlhUGxheWVyKiBwbGF5ZXIp
CiAgICAgLCBtX2lzU2Vla2luZyhmYWxzZSkKICAgICAsIG1fY29tcG9zaXRlZChmYWxzZSkKICAg
ICAsIG1fcHJlbG9hZChNZWRpYVBsYXllcjo6QXV0bykKKyAgICAsIG1fYnl0ZXNMb2FkZWRBdExh
c3REaWRMb2FkaW5nUHJvZ3Jlc3MoMCkKICAgICAsIG1fc3VwcHJlc3NOZXh0UGxheWJhY2tDaGFu
Z2VkKGZhbHNlKQogewogICAgIG1fbWVkaWFQbGF5ZXItPnNldFZpZGVvT3V0cHV0KG1fdmlkZW9J
dGVtKTsKQEAgLTM2MSwxMyArMzYyLDE3IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZVF0Ojpt
YXhUaW1lU2Vla2FibGUoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4obV9t
ZWRpYVBsYXllckNvbnRyb2wtPmF2YWlsYWJsZVBsYXliYWNrUmFuZ2VzKCkubGF0ZXN0VGltZSgp
KSAvIDEwMDAuMGY7CiB9CiAKLXVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZVF0OjpieXRlc0xv
YWRlZCgpIGNvbnN0Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZVF0OjpkaWRMb2FkaW5nUHJvZ3Jl
c3MoKSBjb25zdAogeworICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkID0gMDsKICAgICBRTGF0aW4x
U3RyaW5nIGJ5dGVzTG9hZGVkS2V5KCJieXRlcy1sb2FkZWQiKTsKICAgICBpZiAobV9tZWRpYVBs
YXllci0+YXZhaWxhYmxlRXh0ZW5kZWRNZXRhRGF0YSgpLmNvbnRhaW5zKGJ5dGVzTG9hZGVkS2V5
KSkKLSAgICAgICAgcmV0dXJuIG1fbWVkaWFQbGF5ZXItPmV4dGVuZGVkTWV0YURhdGEoYnl0ZXNM
b2FkZWRLZXkpLnRvSW50KCk7Ci0KLSAgICByZXR1cm4gbV9tZWRpYVBsYXllci0+YnVmZmVyU3Rh
dHVzKCk7CisgICAgICAgIGJ5dGVzTG9hZGVkID0gbV9tZWRpYVBsYXllci0+ZXh0ZW5kZWRNZXRh
RGF0YShieXRlc0xvYWRlZEtleSkudG9JbnQoKTsKKyAgICBlbHNlCisgICAgICAgIGJ5dGVzTG9h
ZGVkID0gbV9tZWRpYVBsYXllci0+YnVmZmVyU3RhdHVzKCk7CisgICAgYm9vbCBkaWRMb2FkaW5n
UHJvZ3Jlc3MgPSBieXRlc0xvYWRlZCAhPSBtX2J5dGVzTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1By
b2dyZXNzOworICAgIG1fYnl0ZXNMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MgPSBieXRl
c0xvYWRlZDsKKyAgICByZXR1cm4gZGlkTG9hZGluZ1Byb2dyZXNzOwogfQogCiB1bnNpZ25lZCBN
ZWRpYVBsYXllclByaXZhdGVRdDo6dG90YWxCeXRlcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQu
aAppbmRleCA2N2Y2NGM3NGIzNzhhYjNjM2NhMGY3YWQ5NDc2NzY4ZGFlYThmZTM4Li5jNmZjYmQ4
MzhkMTFkODNlNDc1NzUwOWY3YTIxNjk3ZjMzNDdkYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmgK
QEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBi
dWZmZXJlZCgpIGNvbnN0OwogICAgIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwotICAg
IHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29uc3Q7CisgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jl
c3MoKSBjb25zdDsKICAgICB1bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAKICAgICB2b2lk
IHNldFZpc2libGUoYm9vbCk7CkBAIC0xNTYsNiArMTU2LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faXNTZWVraW5nOwogICAgIGJvb2wgbV9jb21wb3NpdGVkOwogICAgIE1lZGlhUGxheWVyOjpQ
cmVsb2FkIG1fcHJlbG9hZDsKKyAgICBtdXRhYmxlIHVuc2lnbmVkIG1fYnl0ZXNMb2FkZWRBdExh
c3REaWRMb2FkaW5nUHJvZ3Jlc3M7CiAgICAgYm9vbCBtX2RlbGF5aW5nTG9hZDsKICAgICBTdHJp
bmcgbV9tZWRpYVVybDsKICAgICBib29sIG1fc3VwcHJlc3NOZXh0UGxheWJhY2tDaGFuZ2VkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxh
eWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQuY3BwCmluZGV4IGIwMDM3YzNhYjdlZjE2OTU3MjM3Zjg2MzkzNDhlZGRiMDgwYWIzNDMuLjdk
OWRjYWZlNjY3ZjU3MzM3NGNiZWFhNWE2M2VjZDdkYjAyMjgzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1Rp
bWVWaXN1YWxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKQEAgLTE4
Myw2ICsxODMsNyBAQCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpN
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZQogICAgICwgbV9kZWxheWluZ0xv
YWQoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZyhmYWxzZSkKICAgICAsIG1fcHJlbG9h
ZChNZWRpYVBsYXllcjo6QXV0bykKKyAgICAsIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRp
bmdQcm9ncmVzcygwKQogewogfQogCkBAIC01ODMsMTUgKzU4NCwxNCBAQCBmbG9hdCBNZWRpYVBs
YXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjptYXhUaW1lTG9hZGVkKCkgY29uc3QK
ICAgICByZXR1cm4gbV9tb3ZpZS0+bWF4VGltZUxvYWRlZCgpOyAKIH0KIAotdW5zaWduZWQgTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6Ynl0ZXNMb2FkZWQoKSBjb25z
dAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpkaWRMb2Fk
aW5nUHJvZ3Jlc3MoKSBjb25zdAogewotICAgIGlmICghbV9tb3ZpZSkKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgZmxvYXQgZHVyID0gZHVyYXRpb24oKTsKLSAgICBmbG9hdCBtYXhUaW1lID0gbWF4
VGltZUxvYWRlZCgpOwotICAgIGlmICghZHVyKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1
cm4gdG90YWxCeXRlcygpICogbWF4VGltZSAvIGR1cjsKKyAgICBpZiAoIW1fbW92aWUgfHwgIWR1
cmF0aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmbG9hdCBjdXJyZW50TWF4VGlt
ZUxvYWRlZCA9IG1heFRpbWVMb2FkZWQoKTsKKyAgICBib29sIGRpZExvYWRpbmdQcm9ncmVzcyA9
IGN1cnJlbnRNYXhUaW1lTG9hZGVkICE9IG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQ
cm9ncmVzczsKKyAgICBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MgPSBj
dXJyZW50TWF4VGltZUxvYWRlZDsKKyAgICByZXR1cm4gZGlkTG9hZGluZ1Byb2dyZXNzOwogfQog
CiB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Ojp0b3Rh
bEJ5dGVzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tU
aW1lVmlzdWFsQ29udGV4dC5oCmluZGV4IDcwZmQyYTVkZjJjMzAzNTE2MmU3NWZmMDJmZjdlNDIx
ZmMxOTNlNzEuLjRjNDRhZjQwMWViYjAzZmRiMmYzZmYxNDI0Mjg1Nzk1MWY5MTExMzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQu
aApAQCAtOTksNyArOTksNyBAQCBwcml2YXRlOgogICAgIAogICAgIFBhc3NSZWZQdHI8VGltZVJh
bmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKSBjb25z
dDsKLSAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0OworICAgIGJvb2wgZGlkTG9hZGlu
Z1Byb2dyZXNzKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgdG90YWxCeXRlcygpIGNvbnN0OwogICAg
IAogICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKQEAgLTIwMSw2ICsyMDEsNyBAQCBwcml2YXRl
OgogICAgIFN0cmluZyBtX21vdmllVVJMOwogICAgIGJvb2wgbV9wcml2YXRlQnJvd3Npbmc7CiAg
ICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOworICAgIG11dGFibGUgZmxvYXQgbV9t
YXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzOwogI2lmIERSQVdfRlJBTUVfUkFU
RQogICAgIGRvdWJsZSBtX2ZyYW1lQ291bnRXaGlsZVBsYXlpbmc7CiAgICAgZG91YmxlIG1fdGlt
ZVN0YXJ0ZWRQbGF5aW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmgKaW5kZXggODYy
OTM3MzU3ZWZjZjFmY2E5NWZlOWQ0OWEzYmM2Y2E4ODU5MjY3Ny4uMGZhYTA0NTc4NGQ3MWJmYTg3
MDY4ZGVmZGIwNjA2Njc0YzllYjcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luQ0UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5DRS5o
CkBAIC03MCw2ICs3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBQYXNzUmVm
UHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgICAgIGZsb2F0IG1heFRpbWVT
ZWVrYWJsZSgpIGNvbnN0OworICAgICAgICAvLyBGSVhNRTogYnl0ZXNMb2FkZWQoKSBzaG91bGQg
YmUgcmVwbGFjZWQgd2l0aCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSAoYnkgc29tZWJvZHkgd2hvIGNh
biBmaW5kIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGNsYXNzKS4KICAgICAgICAgdW5zaWdu
ZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKICAgICAgICAgdW5zaWduZWQgdG90YWxCeXRlcygpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRp
YVBsYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIu
aAppbmRleCAzMzEyZjVmMjFmNDljMzFjNmZmMjY4MzI5NTBlNmExMzVmNmI2YjJiLi40NDRhMmNj
OTAxZjdlYzRmM2IwZjNiZGYyMTdhZTE5NDhkMmRlMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKQEAgLTE0NCw3ICsxNDQsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgPSAwOwogCi0gICAgdmly
dHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNMb2FkZWQoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHVu
c2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBi
b29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKaW5k
ZXggMjQxMWQ5Yzc5NWRkNGI4MjRiYWEzNDZiMTEwMzdjMzFjYjgzYzcxMC4uNDRlNTFjZDg3OTdi
M2JlOWQwNDA1OTFmZTAyMDk5Y2ZhM2ZkNjRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCkBAIC01OTMsMTEg
KzU5Myw5IEBAIHVuc2lnbmVkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6dG90YWxCeXRlcygp
IGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXVuc2lnbmVkIFdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbDo6Ynl0ZXNMb2FkZWQoKSBjb25zdAorYm9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
OmRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0CiB7Ci0gICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIp
Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV93ZWJNZWRpYVBsYXllci0+
Ynl0ZXNMb2FkZWQoKSk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fd2ViTWVkaWFQbGF5
ZXIgJiYgbV93ZWJNZWRpYVBsYXllci0+ZGlkTG9hZGluZ1Byb2dyZXNzKCk7CiB9CiAKIHZvaWQg
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oCmluZGV4IDcyMTcwZjc1MDQzNDlhZDg4NzFmNzc0MWNiZWEwNzY4YmUxMjA4ZjguLjA4
ODhkNWVlZWU4ODRkNTNlMzU4ZjFmNzU3MGQ4YTk3ZjNkZjQ1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBAIC0x
MjIsNyArMTIyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IGRhdGFSYXRlKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBib29sIHRvdGFsQnl0ZXNLbm93bigpIGNvbnN0OwogICAgIHZpcnR1YWwg
dW5zaWduZWQgdG90YWxCeXRlcygpIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0ZXNM
b2FkZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwog
ICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5D
b250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145104</attachid>
            <date>2012-05-31 09:26:36 -0700</date>
            <delta_ts>2012-05-31 11:00:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86113-20120531092636.patch</filename>
            <type>text/plain</type>
            <size>26816</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM2ZjcxMzIyNTVlNTFm
OGI3MTAxMGVlZTRiZTIyMjE3ODFlNWIzMy4uZDhhMDcyODVjOTdiYTViZjAxYjUyOGQzMWJiOTNh
NjM3OGYxYWU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA1LTMxICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBXZWJN
ZWRpYVBsYXllcjo6Ynl0ZXNMb2FkZWQoKSB3aXRoIGFuIGV4cGxpY2l0IGRpZExvYWRpbmdQcm9n
cmVzcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjExMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyBmdW5jdGlvbmFsaXR5LCBzbyBubyBuZXcgdGVzdHMuICBMb2FkaW5nIHByb2dyZXNzIGlz
IGFscmVhZHkgdGVzdGVkIGJ5IGV4aXN0aW5nIGxheW91dHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6c3RhcnRQcm9ncmVzc0V2ZW50VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6Y2hhbmdlTmV0d29ya1N0YXRlRnJvbUxvYWRpbmdUb0lkbGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3RhcnRQbGF5YmFja1Byb2dyZXNzVGlt
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OmRpZExvYWRpbmdQcm9ncmVzcyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6OmRpZExvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5Lmg6CisgICAgICAg
IChNZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRMb2Fk
aW5nUHJvZ3Jlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVRVEtpdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkaWRM
b2FkaW5nUHJvZ3Jlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxh
eWVyUHJpdmF0ZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF0
OjpNZWRpYVBsYXllclByaXZhdGVRdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRdDo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRl
UXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGlt
ZVZpc3VhbENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dDo6ZGlkTG9hZGluZ1Byb2dyZXNzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4
dC5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2lu
Q0UuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZSk6CisKIDIwMTItMDUtMzEgIFNoYW5l
IFN0ZXBoZW5zICA8c2hhbmVzdGVwaGVuc0Bnb29nbGUuY29tPgogCiAgICAgICAgIHRleHQtZGVj
b3JhdGlvbiBzaG91bGQgbm90IGJlIHByb3BhZ2F0ZWQgdGhyb3VnaCBhYnNvbHV0ZWx5IHBvc2l0
aW9uZWQgZWxlbWVudHMgdG8gPGE+IHRhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
MjFmMDNhOTBhY2ZhNWFhYjYzZjMxMWY5MGEwMGYzZDJhYmMzOTdhNi4uYzA2M2Q3YjZjMDc1YWU1
OWU0MjIyNTJkNTkxN2EzYjc1OWExYjg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMi0wNS0zMSAgQW1pIEZpc2NobWFuICA8ZmlzY2htYW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJlcGxhY2UgV2ViTWVkaWFQbGF5ZXI6OmJ5dGVzTG9hZGVkKCkg
d2l0aCBhbiBleHBsaWNpdCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYxMTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgor
ICAgICAgICAoV2ViTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
OmRpZExvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oOgorICAgICAgICAoV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKToKKwogMjAxMi0wNS0z
MCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtQbGF0
Zm9ybV0gSW50cm9kdWNlIERlY2ltYWwgY2xhc3MgZm9yIE51bWJlci9SYW5nZSBpbnB1dCB0eXBl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYzRjNmJhNDU2
Mzg1MTZlYzY0YmY4Y2Q5ODU4NjMyYzVhNjk5M2ViOS4uMGFmNjA5ZmY4ODczNjFlMmRhMjlkYWM5
Njc3ZTgxODliOTBmZDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC0yMTAsNyArMjEwLDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW0KICAgICAsIG1f
cmVhZHlTdGF0ZU1heGltdW0oSEFWRV9OT1RISU5HKQogICAgICwgbV92b2x1bWUoMS4wZikKICAg
ICAsIG1fbGFzdFNlZWtUaW1lKDApCi0gICAgLCBtX3ByZXZpb3VzUHJvZ3Jlc3MoMCkKICAgICAs
IG1fcHJldmlvdXNQcm9ncmVzc1RpbWUobnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCkpCiAg
ICAgLCBtX2xhc3RUaW1lVXBkYXRlRXZlbnRXYWxsVGltZSgwKQogICAgICwgbV9sYXN0VGltZVVw
ZGF0ZUV2ZW50TW92aWVUaW1lKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpCkBAIC0xMzc3
LDcgKzEzNzYsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0YXJ0UHJvZ3Jlc3NFdmVudFRp
bWVyKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcmV2aW91c1Byb2dyZXNzVGltZSA9IFdU
Rjo6Y3VycmVudFRpbWUoKTsKLSAgICBtX3ByZXZpb3VzUHJvZ3Jlc3MgPSAwOwogICAgIC8vIDM1
MG1zIGlzIG5vdCBtYWdpYywgaXQgaXMgaW4gdGhlIHNwZWMhCiAgICAgbV9wcm9ncmVzc0V2ZW50
VGltZXIuc3RhcnRSZXBlYXRpbmcoMC4zNTApOwogfQpAQCAtMTU4NCw3ICsxNTgyLDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtT
dGF0ZSBzdGF0ZSkKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2hhbmdlTmV0d29ya1N0YXRlRnJv
bUxvYWRpbmdUb0lkbGUoKQogewogICAgIG1fcHJvZ3Jlc3NFdmVudFRpbWVyLnN0b3AoKTsKLSAg
ICBpZiAoaGFzTWVkaWFDb250cm9scygpICYmIG1fcGxheWVyLT5ieXRlc0xvYWRlZCgpICE9IG1f
cHJldmlvdXNQcm9ncmVzcykKKyAgICBpZiAoaGFzTWVkaWFDb250cm9scygpICYmIG1fcGxheWVy
LT5kaWRMb2FkaW5nUHJvZ3Jlc3MoKSkKICAgICAgICAgbWVkaWFDb250cm9scygpLT5idWZmZXJp
bmdQcm9ncmVzc2VkKCk7CiAKICAgICAvLyBTY2hlZHVsZSBvbmUgbGFzdCBwcm9ncmVzcyBldmVu
dCBzbyB3ZSBndWFyYW50ZWUgdGhhdCBhdCBsZWFzdCBvbmUgaXMgZmlyZWQKQEAgLTE4MzcsMjUg
KzE4MzUsMjEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpwcm9ncmVzc0V2ZW50VGltZXJGaXJl
ZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiopCiAgICAgaWYgKG1fbmV0d29ya1N0YXRlICE9IE5F
VFdPUktfTE9BRElORykKICAgICAgICAgcmV0dXJuOwogCi0gICAgdW5zaWduZWQgcHJvZ3Jlc3Mg
PSBtX3BsYXllci0+Ynl0ZXNMb2FkZWQoKTsKICAgICBkb3VibGUgdGltZSA9IFdURjo6Y3VycmVu
dFRpbWUoKTsKICAgICBkb3VibGUgdGltZWRlbHRhID0gdGltZSAtIG1fcHJldmlvdXNQcm9ncmVz
c1RpbWU7CiAKLSAgICBpZiAocHJvZ3Jlc3MgPT0gbV9wcmV2aW91c1Byb2dyZXNzKSB7Ci0gICAg
ICAgIGlmICh0aW1lZGVsdGEgPiAzLjAgJiYgIW1fc2VudFN0YWxsZWRFdmVudCkgewotICAgICAg
ICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc3RhbGxlZEV2ZW50KTsKLSAgICAgICAg
ICAgIG1fc2VudFN0YWxsZWRFdmVudCA9IHRydWU7Ci0gICAgICAgICAgICBzZXRTaG91bGREZWxh
eUxvYWRFdmVudChmYWxzZSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgeworICAgIGlmIChtX3Bs
YXllci0+ZGlkTG9hZGluZ1Byb2dyZXNzKCkpIHsKICAgICAgICAgc2NoZWR1bGVFdmVudChldmVu
dE5hbWVzKCkucHJvZ3Jlc3NFdmVudCk7Ci0gICAgICAgIG1fcHJldmlvdXNQcm9ncmVzcyA9IHBy
b2dyZXNzOwogICAgICAgICBtX3ByZXZpb3VzUHJvZ3Jlc3NUaW1lID0gdGltZTsKICAgICAgICAg
bV9zZW50U3RhbGxlZEV2ZW50ID0gZmFsc2U7CiAgICAgICAgIGlmIChyZW5kZXJlcigpKQogICAg
ICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKICAgICAgICAgaWYgKGhh
c01lZGlhQ29udHJvbHMoKSkKICAgICAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+YnVmZmVyaW5n
UHJvZ3Jlc3NlZCgpOworICAgIH0gZWxzZSBpZiAodGltZWRlbHRhID4gMy4wICYmICFtX3NlbnRT
dGFsbGVkRXZlbnQpIHsKKyAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc3RhbGxl
ZEV2ZW50KTsKKyAgICAgICAgbV9zZW50U3RhbGxlZEV2ZW50ID0gdHJ1ZTsKKyAgICAgICAgc2V0
U2hvdWxkRGVsYXlMb2FkRXZlbnQoZmFsc2UpOwogICAgIH0KIH0KIApAQCAtMjcyMyw3ICsyNzE3
LDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdGFydFBsYXliYWNrUHJvZ3Jlc3NUaW1lcigp
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcHJldmlvdXNQcm9ncmVzc1RpbWUgPSBXVEY6OmN1
cnJlbnRUaW1lKCk7Ci0gICAgbV9wcmV2aW91c1Byb2dyZXNzID0gMDsKICAgICBtX3BsYXliYWNr
UHJvZ3Jlc3NUaW1lci5zdGFydFJlcGVhdGluZyhtYXhUaW1ldXBkYXRlRXZlbnRGcmVxdWVuY3kp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKaW5kZXggYWYzMGViMTIzOTNiZDFjZGIyMDBkYmJlNmEwMGQxNDZmZmE3YzE4MC4uOTM1
NzMzMGU0OWQ2MjU5MGVjMDc0NjU5NWM5MjQ1ODllNTcxODQ4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTMxLDcgKzEzMSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQo
KSBjb25zdCB7IHJldHVybiBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsgfQogCiAgICAgdmlydHVhbCB1
bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgdW5z
aWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBib29s
IGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgeyB9CiAKQEAgLTY4MSw5ICs2ODEsOSBA
QCBmbG9hdCBNZWRpYVBsYXllcjo6bWF4VGltZVNlZWthYmxlKCkKICAgICByZXR1cm4gbV9wcml2
YXRlLT5tYXhUaW1lU2Vla2FibGUoKTsKIH0KIAotdW5zaWduZWQgTWVkaWFQbGF5ZXI6OmJ5dGVz
TG9hZGVkKCkKK2Jvb2wgTWVkaWFQbGF5ZXI6OmRpZExvYWRpbmdQcm9ncmVzcygpCiB7Ci0gICAg
cmV0dXJuIG1fcHJpdmF0ZS0+Ynl0ZXNMb2FkZWQoKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5k
aWRMb2FkaW5nUHJvZ3Jlc3MoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6c2V0U2l6ZShjb25z
dCBJbnRTaXplJiBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKaW5kZXggYTAzYWRlNzFjN2YwYzZjZWFiYzk4MDBkYmU4NzkzNmNkYmRkMjEx
MS4uNTE2ZjJmZTk4ODFlNjJiYmQ2ZWZmOGIwM2E2ZjEwZjhhOGE2NjU0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0yNzgsNyArMjc4
LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gc2Vla2FibGUoKTsKICAg
ICBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKTsKIAotICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCk7
CisgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKTsKIAogICAgIGZsb2F0IHZvbHVtZSgpIGNv
bnN0OwogICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggZjc2ZDQ5ZTIz
ODJiMjA5ODJiY2IyNzkzODY0NDYyMDhmZWQ3M2E3Zi4uMDg1Mjc4ZTNlMDQxZjgwNTEzN2M1YTQy
MDdlYWZkNTg3ZGVlYTljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTk2LDcgKzk2LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgZmxvYXQgbWF4VGltZVNlZWthYmxlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0ID0gMDsKIAotICAgIHZp
cnR1YWwgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29s
IGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRT
aXplKGNvbnN0IEludFNpemUmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggOGYzYThkZmZiZmVlNTcyYmUx
ZjBhMzU5MzZiOGYxOTA4ZTVhYjAzZi4uNzMxMzRlZDJhMjVmOWQxMzhhZDkxMWFhZTFkZThlOWQ0
YTIwNmMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTU3LDYgKzU3LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqIHBs
YXkKICAgICAsIG1fY2FjaGVkTWF4VGltZVNlZWthYmxlKDApCiAgICAgLCBtX2NhY2hlZER1cmF0
aW9uKGludmFsaWRUaW1lKCkpCiAgICAgLCBtX3JlcG9ydGVkRHVyYXRpb24oaW52YWxpZFRpbWUo
KSkKKyAgICAsIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzcyhpbnZhbGlk
VGltZSgpKQogICAgICwgbV9zZWVrVG8oaW52YWxpZFRpbWUoKSkKICAgICAsIG1fcmVxdWVzdGVk
UmF0ZSgxKQogICAgICwgbV9kZWxheUNhbGxiYWNrcygwKQpAQCAtMzY2LDE0ICszNjcsMTUgQEAg
ZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjptYXhUaW1lTG9hZGVkKCkgY29u
c3QKICAgICByZXR1cm4gbV9jYWNoZWRNYXhUaW1lTG9hZGVkOyAgIAogfQogCi11bnNpZ25lZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmJ5dGVzTG9hZGVkKCkgY29uc3QKK2Jvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25z
dAogewotICAgIGZsb2F0IGR1ciA9IGR1cmF0aW9uKCk7Ci0gICAgaWYgKCFkdXIpCi0gICAgICAg
IHJldHVybiAwOwotICAgIHVuc2lnbmVkIGxvYWRlZCA9IHRvdGFsQnl0ZXMoKSAqIG1heFRpbWVM
b2FkZWQoKSAvIGR1cjsKLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb246OmJ5dGVzTG9hZGVkKCVwKSAtIHJldHVybmluZyAlaSIsIHRoaXMsIGxvYWRlZCk7Ci0g
ICAgcmV0dXJuIGxvYWRlZDsKKyAgICBpZiAoIWR1cmF0aW9uKCkgfHwgIXRvdGFsQnl0ZXMoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZsb2F0IGN1cnJlbnRNYXhUaW1lTG9hZGVkID0g
bWF4VGltZUxvYWRlZCgpOworICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzID0gY3VycmVudE1h
eFRpbWVMb2FkZWQgIT0gbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzOwor
ICAgIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzcyA9IGN1cnJlbnRNYXhU
aW1lTG9hZGVkOworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bjo6ZGlkTG9hZGluZ1Byb2dyZXNzKCVwKSAtIHJldHVybmluZyAlZCIsIHRoaXMsIGRpZExvYWRp
bmdQcm9ncmVzcyk7CisgICAgcmV0dXJuIGRpZExvYWRpbmdQcm9ncmVzczsKIH0KIAogYm9vbCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmlzUmVhZHlGb3JWaWRlb1NldHVwKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaAppbmRleCA3MjMwMjM0NmY4M2YzYmQ1YzQ0ZTEyMDBiNTY1OTdiYzY4NmRiYTk2Li42M2Zl
NmFhNGUxMzNkZjljYzU2NDkyNTlmODI1MzY4ZjBjNTA3ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC0xNDAsNyArMTQw
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVh
ZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQogICAgIHZpcnR1YWwgZmxv
YXQgbWF4VGltZVNlZWthYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVS
YW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBieXRlc0xvYWRl
ZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJik7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEludFJlY3QmKSA9IDA7CkBAIC0yNjMsNyArMjYzLDcgQEAgcHJpdmF0ZToKICAgICBtdXRh
YmxlIGZsb2F0IG1fY2FjaGVkTWF4VGltZVNlZWthYmxlOwogICAgIG11dGFibGUgZmxvYXQgbV9j
YWNoZWREdXJhdGlvbjsKICAgICBmbG9hdCBtX3JlcG9ydGVkRHVyYXRpb247Ci0KKyAgICBtdXRh
YmxlIGZsb2F0IG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzczsKICAgICBm
bG9hdCBtX3NlZWtUbzsKICAgICBmbG9hdCBtX3JlcXVlc3RlZFJhdGU7CiAgICAgbXV0YWJsZSBp
bnQgbV9kZWxheUNhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJp
dmF0ZUJsYWNrQmVycnkuY3BwCmluZGV4IGFhNzg2NzY1YWVjM2U0YTE4MDdjMjAzNjNmNzFiN2M4
YjI5MjI5MTUuLjNhYzkzZThiNGM2N2VkMmYxNGZlMzY2YWY2NTEyNjI4NDBhMTEwOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQ
bGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcApAQCAt
Mjg4LDEwICsyODgsMTAgQEAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZh
dGU6OmJ1ZmZlcmVkKCkgY29uc3QKICAgICByZXR1cm4gdGltZVJhbmdlcy5yZWxlYXNlKCk7CiB9
CiAKLXVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZTo6Ynl0ZXNMb2FkZWQoKSBjb25zdAorYm9v
bCBNZWRpYVBsYXllclByaXZhdGU6OmRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0CiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRTaXplKGNvbnN0IEludFNpemUmKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBs
YXllclByaXZhdGVCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAppbmRleCAzNmMzNmY4
Nzg1N2EyMzE4ZGJhZWM3Mjk3YTkwOTIyZTZiYzhkODIzLi4wYWM0NjZiZWM4ZWU4ODgxMWExYjE2
NDBiNzM1MmE5MDljODUzNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJp
dmF0ZUJsYWNrQmVycnkuaApAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBm
bG9hdCBtYXhUaW1lU2Vla2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGlt
ZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0ZXNM
b2FkZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29u
c3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNTc1N2Ey
NzQzMWQ0MzZhODRjZmNiZjU2N2JhNjUzOWRhNjhmYzc3Yi4uODM5NzA4ZWU5Nzc2MDE0ODBjMjhk
MzA2OTk2ODExYjhjYTM5MTYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKQEAgLTIyNyw2ICsyMjcsNyBAQCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciogcGxheWVy
KQogICAgICwgbV9wcmVsb2FkKE1lZGlhUGxheWVyOjpBdXRvKQogICAgICwgbV9kZWxheWluZ0xv
YWQoZmFsc2UpCiAgICAgLCBtX21lZGlhRHVyYXRpb25Lbm93bih0cnVlKQorICAgICwgbV9tYXhU
aW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzKDApCiAgICAgLCBtX3ZvbHVtZVRpbWVy
SGFuZGxlcigwKQogICAgICwgbV9tdXRlVGltZXJIYW5kbGVyKDApCiAgICAgLCBtX2hhc1ZpZGVv
KGZhbHNlKQpAQCAtOTIwLDE3ICs5MjEsMTUgQEAgZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjptYXhUaW1lTG9hZGVkKCkgY29uc3QKICAgICByZXR1cm4gbG9hZGVkOwogfQogCi11
bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmJ5dGVzTG9hZGVkKCkgY29uc3QK
K2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdAogewotICAgIGlmICghbV9wbGF5QmluKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlm
ICghbV9tZWRpYUR1cmF0aW9uKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHVuc2lnbmVkIGxv
YWRlZCA9IHRvdGFsQnl0ZXMoKSAqIG1heFRpbWVMb2FkZWQoKSAvIG1fbWVkaWFEdXJhdGlvbjsK
LSAgICBMT0dfVkVSQk9TRShNZWRpYSwgImJ5dGVzTG9hZGVkOiAlZCIsIGxvYWRlZCk7Ci0gICAg
cmV0dXJuIGxvYWRlZDsKKyAgICBpZiAoIW1fcGxheUJpbiB8fCAhbV9tZWRpYUR1cmF0aW9uIHx8
ICF0b3RhbEJ5dGVzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmbG9hdCBjdXJyZW50
TWF4VGltZUxvYWRlZCA9IG1heFRpbWVMb2FkZWQoKTsKKyAgICBib29sIGRpZExvYWRpbmdQcm9n
cmVzcyA9IGN1cnJlbnRNYXhUaW1lTG9hZGVkICE9IG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExv
YWRpbmdQcm9ncmVzczsKKyAgICBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jl
c3MgPSBjdXJyZW50TWF4VGltZUxvYWRlZDsKKyAgICBMT0dfVkVSQk9TRShNZWRpYSwgImRpZExv
YWRpbmdQcm9ncmVzczogJWQiLCBkaWRMb2FkaW5nUHJvZ3Jlc3MpOworICAgIHJldHVybiBkaWRM
b2FkaW5nUHJvZ3Jlc3M7CiB9CiAKIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6dG90YWxCeXRlcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmgKaW5kZXggMWIwZmYyNmU2MGZiNmY1ZWYzMWI2ZWQ1MDMwYzUwNmFjMTBkOTVi
ZC4uMzllZTljZTRiZmJjYjgxMjNhMDIzYzQxNTcyYzMwYTYzZWMxZDMwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtOTAsNyArOTAsNyBAQCBj
bGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlIHsKIAogICAgICAgICAgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZm
ZXJlZCgpIGNvbnN0OwogICAgICAgICAgICAgZmxvYXQgbWF4VGltZVNlZWthYmxlKCkgY29uc3Q7
Ci0gICAgICAgICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0OworICAgICAgICAgICAg
Ym9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdDsKICAgICAgICAgICAgIHVuc2lnbmVkIHRv
dGFsQnl0ZXMoKSBjb25zdDsKIAogICAgICAgICAgICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wpOwpA
QCAtMTgxLDYgKzE4MSw3IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1
YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogICAgICAgICAgICAgTWVkaWFQbGF5
ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwogICAgICAgICAgICAgYm9vbCBtX2RlbGF5aW5nTG9hZDsK
ICAgICAgICAgICAgIGJvb2wgbV9tZWRpYUR1cmF0aW9uS25vd247CisgICAgICAgICAgICBtdXRh
YmxlIGZsb2F0IG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzczsKICNpZm5k
ZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICAgICAgICAgIFJlZlB0cjxHU3RyZWFtZXJHV29ybGQ+
IG1fZ3N0R1dvcmxkOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCmluZGV4IDMw
ODlhZTJkNDZiNGQyMTQwNDdlY2JiZmQ5OTk0N2NmMTZhMzUxZDcuLjAxMWVjMzZhMjVkMTlkZTYx
MTFlZDU4M2NkMmI2YTE0NGUxYzQwYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCkBA
IC0xMjEsNyArMTIxLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBQYXNzUmVmUHRyPFRpbWVSYW5n
ZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgZmxvYXQgbWF4VGltZVNlZWthYmxlKCkgY29uc3Q7
Ci0gICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKKyAgICBib29sIGRpZExvYWRpbmdQ
cm9ncmVzcygpIGNvbnN0OwogICAgIHVuc2lnbmVkIHRvdGFsQnl0ZXMoKSBjb25zdDsKICAgICAK
ICAgICB2b2lkIHNldFZpc2libGUoYm9vbCk7CkBAIC0yMTIsNiArMjEyLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fdmlkZW9GcmFtZUhhc0RyYXduOwogICAgIGJvb2wgbV9pc0FsbG93ZWRUb1Jl
bmRlcjsKICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nOworICAgIG11dGFibGUgZmxvYXQgbV9t
YXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzOwogI2lmIERSQVdfRlJBTUVfUkFU
RQogICAgIGludCAgbV9mcmFtZUNvdW50V2hpbGVQbGF5aW5nOwogICAgIGRvdWJsZSBtX3RpbWVT
dGFydGVkUGxheWluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCA5ODU5OWU5
NmJhODVlYzAwMzNjZTgwZmM3ZjdkNjc4MmJlZjU3ZmVlLi4yOTI0OWFhNzg4N2I4ZjIzZDNhOGQ1
ODFlYzU3Yzg3NjkxZjc4MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0y
MTQsNiArMjE0LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0KE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3ZpZGVvRnJhbWVIYXNEcmF3bihm
YWxzZSkKICAgICAsIG1faXNBbGxvd2VkVG9SZW5kZXIoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVC
cm93c2luZyhmYWxzZSkKKyAgICAsIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9n
cmVzcygwKQogI2lmIERSQVdfRlJBTUVfUkFURQogICAgICwgbV9mcmFtZUNvdW50V2hpbGVQbGF5
aW5nKDApCiAgICAgLCBtX3RpbWVTdGFydGVkUGxheWluZygwKQpAQCAtOTQ1LDEyICs5NDYsMTQg
QEAgZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Om1heFRpbWVMb2FkZWQoKSBjb25zdAog
ICAgIHJldHVybiB3a1FUTW92aWVNYXhUaW1lTG9hZGVkKG1fcXRNb3ZpZS5nZXQoKSk7IAogfQog
Ci11bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Ynl0ZXNMb2FkZWQoKSBjb25zdAor
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QK
IHsKLSAgICBmbG9hdCBkdXIgPSBkdXJhdGlvbigpOwotICAgIGlmICghZHVyKQotICAgICAgICBy
ZXR1cm4gMDsKLSAgICByZXR1cm4gdG90YWxCeXRlcygpICogbWF4VGltZUxvYWRlZCgpIC8gZHVy
OworICAgIGlmICghZHVyYXRpb24oKSB8fCAhdG90YWxCeXRlcygpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgZmxvYXQgY3VycmVudE1heFRpbWVMb2FkZWQgPSBtYXhUaW1lTG9hZGVkKCk7
CisgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MgPSBjdXJyZW50TWF4VGltZUxvYWRlZCAhPSBt
X21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CisgICAgbV9tYXhUaW1lTG9h
ZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzID0gY3VycmVudE1heFRpbWVMb2FkZWQ7CisgICAg
cmV0dXJuIGRpZExvYWRpbmdQcm9ncmVzczsKIH0KIAogdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQ6OnRvdGFsQnl0ZXMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUXQuY3BwCmluZGV4
IDk1MjljZDQ3YTA3OWEwZTRiODE4MjdlOTMzNGRmMGVkZTUyYjUxZWYuLjNhMzA3Y2IyNzQ5Y2U0
MzMwZTk4Y2U1ZTEzNTNlNTg0MTQ5Yjg4NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVRdC5jcHAKQEAg
LTExNiw2ICsxMTYsNyBAQCBNZWRpYVBsYXllclByaXZhdGVRdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UXQoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1faXNTZWVraW5nKGZhbHNlKQogICAgICwg
bV9jb21wb3NpdGVkKGZhbHNlKQogICAgICwgbV9wcmVsb2FkKE1lZGlhUGxheWVyOjpBdXRvKQor
ICAgICwgbV9ieXRlc0xvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzcygwKQogICAgICwgbV9z
dXBwcmVzc05leHRQbGF5YmFja0NoYW5nZWQoZmFsc2UpCiB7CiAgICAgbV9tZWRpYVBsYXllci0+
c2V0VmlkZW9PdXRwdXQobV92aWRlb0l0ZW0pOwpAQCAtMzYxLDEzICszNjIsMTcgQEAgZmxvYXQg
TWVkaWFQbGF5ZXJQcml2YXRlUXQ6Om1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGZsb2F0PihtX21lZGlhUGxheWVyQ29udHJvbC0+YXZhaWxhYmxlUGxheWJh
Y2tSYW5nZXMoKS5sYXRlc3RUaW1lKCkpIC8gMTAwMC4wZjsKIH0KIAotdW5zaWduZWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUXQ6OmJ5dGVzTG9hZGVkKCkgY29uc3QKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlUXQ6OmRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0CiB7CisgICAgdW5zaWduZWQgYnl0ZXNM
b2FkZWQgPSAwOwogICAgIFFMYXRpbjFTdHJpbmcgYnl0ZXNMb2FkZWRLZXkoImJ5dGVzLWxvYWRl
ZCIpOwogICAgIGlmIChtX21lZGlhUGxheWVyLT5hdmFpbGFibGVFeHRlbmRlZE1ldGFEYXRhKCku
Y29udGFpbnMoYnl0ZXNMb2FkZWRLZXkpKQotICAgICAgICByZXR1cm4gbV9tZWRpYVBsYXllci0+
ZXh0ZW5kZWRNZXRhRGF0YShieXRlc0xvYWRlZEtleSkudG9JbnQoKTsKLQotICAgIHJldHVybiBt
X21lZGlhUGxheWVyLT5idWZmZXJTdGF0dXMoKTsKKyAgICAgICAgYnl0ZXNMb2FkZWQgPSBtX21l
ZGlhUGxheWVyLT5leHRlbmRlZE1ldGFEYXRhKGJ5dGVzTG9hZGVkS2V5KS50b0ludCgpOworICAg
IGVsc2UKKyAgICAgICAgYnl0ZXNMb2FkZWQgPSBtX21lZGlhUGxheWVyLT5idWZmZXJTdGF0dXMo
KTsKKyAgICBib29sIGRpZExvYWRpbmdQcm9ncmVzcyA9IGJ5dGVzTG9hZGVkICE9IG1fYnl0ZXNM
b2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7CisgICAgbV9ieXRlc0xvYWRlZEF0TGFzdERp
ZExvYWRpbmdQcm9ncmVzcyA9IGJ5dGVzTG9hZGVkOworICAgIHJldHVybiBkaWRMb2FkaW5nUHJv
Z3Jlc3M7CiB9CiAKIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZVF0Ojp0b3RhbEJ5dGVzKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01l
ZGlhUGxheWVyUHJpdmF0ZVF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9NZWRpYVBsYXllclByaXZhdGVRdC5oCmluZGV4IDY3ZjY0Yzc0YjM3OGFiM2MzY2EwZjdhZDk0
NzY3NjhkYWVhOGZlMzguLmM2ZmNiZDgzOGQxMWQ4M2U0NzU3NTA5ZjdhMjE2OTdmMzM0N2RhMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxh
eWVyUHJpdmF0ZVF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
TWVkaWFQbGF5ZXJQcml2YXRlUXQuaApAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAKICAgICBQ
YXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgZmxvYXQgbWF4VGlt
ZVNlZWthYmxlKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKKyAg
ICBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0OwogICAgIHVuc2lnbmVkIHRvdGFsQnl0
ZXMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKQEAgLTE1Niw2ICsxNTYs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1NlZWtpbmc7CiAgICAgYm9vbCBtX2NvbXBvc2l0
ZWQ7CiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOworICAgIG11dGFibGUgdW5z
aWduZWQgbV9ieXRlc0xvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzczsKICAgICBib29sIG1f
ZGVsYXlpbmdMb2FkOwogICAgIFN0cmluZyBtX21lZGlhVXJsOwogICAgIGJvb2wgbV9zdXBwcmVz
c05leHRQbGF5YmFja0NoYW5nZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2
YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKaW5kZXggYjAwMzdjM2FiN2VmMTY5NTcyMzdm
ODYzOTM0OGVkZGIwODBhYjM0My4uN2Q5ZGNhZmU2NjdmNTczMzc0Y2JlYWE1YTYzZWNkN2RiMDIy
ODMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVW
aXN1YWxDb250ZXh0LmNwcApAQCAtMTgzLDYgKzE4Myw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVF1
aWNrVGltZVZpc3VhbENvbnRleHQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENv
bnRlCiAgICAgLCBtX2RlbGF5aW5nTG9hZChmYWxzZSkKICAgICAsIG1fcHJpdmF0ZUJyb3dzaW5n
KGZhbHNlKQogICAgICwgbV9wcmVsb2FkKE1lZGlhUGxheWVyOjpBdXRvKQorICAgICwgbV9tYXhU
aW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzKDApCiB7CiB9CiAKQEAgLTU4MywxNSAr
NTg0LDE0IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6
Om1heFRpbWVMb2FkZWQoKSBjb25zdAogICAgIHJldHVybiBtX21vdmllLT5tYXhUaW1lTG9hZGVk
KCk7IAogfQogCi11bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250
ZXh0OjpieXRlc0xvYWRlZCgpIGNvbnN0Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGlt
ZVZpc3VhbENvbnRleHQ6OmRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0CiB7Ci0gICAgaWYgKCFt
X21vdmllKQotICAgICAgICByZXR1cm4gMDsKLSAgICBmbG9hdCBkdXIgPSBkdXJhdGlvbigpOwot
ICAgIGZsb2F0IG1heFRpbWUgPSBtYXhUaW1lTG9hZGVkKCk7Ci0gICAgaWYgKCFkdXIpCi0gICAg
ICAgIHJldHVybiAwOwotICAgIHJldHVybiB0b3RhbEJ5dGVzKCkgKiBtYXhUaW1lIC8gZHVyOwor
ICAgIGlmICghbV9tb3ZpZSB8fCAhZHVyYXRpb24oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGZsb2F0IGN1cnJlbnRNYXhUaW1lTG9hZGVkID0gbWF4VGltZUxvYWRlZCgpOworICAgIGJv
b2wgZGlkTG9hZGluZ1Byb2dyZXNzID0gY3VycmVudE1heFRpbWVMb2FkZWQgIT0gbV9tYXhUaW1l
TG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzOworICAgIG1fbWF4VGltZUxvYWRlZEF0TGFz
dERpZExvYWRpbmdQcm9ncmVzcyA9IGN1cnJlbnRNYXhUaW1lTG9hZGVkOworICAgIHJldHVybiBk
aWRMb2FkaW5nUHJvZ3Jlc3M7CiB9CiAKIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNr
VGltZVZpc3VhbENvbnRleHQ6OnRvdGFsQnl0ZXMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGlt
ZVZpc3VhbENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgKaW5kZXggNzBmZDJhNWRm
MmMzMDM1MTYyZTc1ZmYwMmZmN2U0MjFmYzE5M2U3MS4uNGM0NGFmNDAxZWJiMDNmZGIyZjNmZjE0
MjQyODU3OTUxZjkxMTEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
UXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oCkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAgICAg
CiAgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgIGZsb2F0
IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwotICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29u
c3Q7CisgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdDsKICAgICB1bnNpZ25lZCB0
b3RhbEJ5dGVzKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wpOwpAQCAt
MjAxLDYgKzIwMSw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fbW92aWVVUkw7CiAgICAgYm9v
bCBtX3ByaXZhdGVCcm93c2luZzsKICAgICBNZWRpYVBsYXllcjo6UHJlbG9hZCBtX3ByZWxvYWQ7
CisgICAgbXV0YWJsZSBmbG9hdCBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jl
c3M7CiAjaWYgRFJBV19GUkFNRV9SQVRFCiAgICAgZG91YmxlIG1fZnJhbWVDb3VudFdoaWxlUGxh
eWluZzsKICAgICBkb3VibGUgbV90aW1lU3RhcnRlZFBsYXlpbmc7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5D
RS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQ
cml2YXRlV2luQ0UuaAppbmRleCA4NjI5MzczNTdlZmNmMWZjYTk1ZmU5ZDQ5YTNiYzZjYTg4NTky
Njc3Li4wZmFhMDQ1Nzg0ZDcxYmZhODcwNjhkZWZkYjA2MDY2NzRjOWViNzJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZh
dGVXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01l
ZGlhUGxheWVyUHJpdmF0ZVdpbkNFLmgKQEAgLTcwLDYgKzcwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsK
ICAgICAgICAgZmxvYXQgbWF4VGltZVNlZWthYmxlKCkgY29uc3Q7CisgICAgICAgIC8vIEZJWE1F
OiBieXRlc0xvYWRlZCgpIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIGRpZExvYWRpbmdQcm9ncmVz
cygpIChieSBzb21lYm9keSB3aG8gY2FuIGZpbmQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMg
Y2xhc3MpLgogICAgICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0OwogICAgICAgICB1
bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCmluZGV4IDMzMTJmNWYyMWY0OWMzMWM2ZmYyNjgzMjk1
MGU2YTEzNWY2YjZiMmIuLjQ0NGEyY2M5MDFmN2VjNGYzYjBmM2JkZjIxN2FlMTk0OGQyZGUzNGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaApA
QCAtMTQ0LDcgKzE0NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIE5ldHdvcmtTdGF0ZSBuZXR3
b3JrU3RhdGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBSZWFkeVN0YXRlIHJlYWR5U3RhdGUo
KSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc0xvYWRl
ZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXMoKSBjb25z
dCA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25z
dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBs
YXllckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCAyNDExZDljNzk1ZGQ0YjgyNGJhYTM0NmIxMTAzN2Mz
MWNiODNjNzEwLi40NGU1MWNkODc5N2IzYmU5ZDA0MDU5MWZlMDIwOTljZmEzZmQ2NGU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5jcHAKQEAgLTU5MywxMSArNTkzLDkgQEAgdW5zaWduZWQgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdW5zaWdu
ZWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpieXRlc0xvYWRlZCgpIGNvbnN0Citib29sIFdl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKIHsKLSAg
ICBpZiAobV93ZWJNZWRpYVBsYXllcikKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihtX3dlYk1lZGlhUGxheWVyLT5ieXRlc0xvYWRlZCgpKTsKLSAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gbV93ZWJNZWRpYVBsYXllciAmJiBtX3dlYk1lZGlhUGxheWVyLT5kaWRMb2FkaW5n
UHJvZ3Jlc3MoKTsKIH0KIAogdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnNldFNpemUo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKaW5kZXggNzIxNzBmNzUwNDM0OWFkODg3MWY3
NzQxY2JlYTA3NjhiZTEyMDhmOC4uMDg4OGQ1ZWVlZTg4NGQ1M2UzNThmMWY3NTcwZDhhOTdmM2Rm
NDU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmgKQEAgLTEyMiw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBpbnQgZGF0YVJhdGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgdG90YWxCeXRlc0tub3du
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB1bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3Q7Ci0gICAg
dmlydHVhbCB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBk
aWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwo=
</data>
<flag name="review"
          id="152152"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
    <flag name="commit-queue"
          id="152156"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>