<?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>84281</bug_id>
          
          <creation_ts>2012-04-18 14:32:36 -0700</creation_ts>
          <short_desc>[Chromium] Schedule texture uploads based on hard-coded timer and vsync.</short_desc>
          <delta_ts>2012-08-22 11:49:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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>81004</dependson>
    
    <dependson>92596</dependson>
    
    <dependson>93293</dependson>
    
    <dependson>94012</dependson>
          <blocked>86008</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Reveman">reveman</reporter>
          <assigned_to name="David Reveman">reveman</assigned_to>
          <cc>brianderson</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>jbates</cc>
    
    <cc>kbr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>605097</commentid>
    <comment_count>0</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-04-18 14:32:36 -0700</bug_when>
    <thetext>Improve interaction between vsync and texture uploads by performing uploads in smaller batches and use a hard-coded timer to emulate upload completion. This greatly reduces the chance of the compositor missing a vsync due to being busy with texture uploads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605128</commentid>
    <comment_count>1</comment_count>
      <attachid>137777</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-04-18 14:55:22 -0700</bug_when>
    <thetext>Created attachment 137777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608101</commentid>
    <comment_count>2</comment_count>
      <attachid>137777</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-23 15:38:35 -0700</bug_when>
    <thetext>Comment on attachment 137777
Patch

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

This is looking good. A few high level comments.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.h:57
&gt; +    virtual double maxResourceUpdateTime() const = 0;

expectedSecondsToPerformNextBlahBlah()?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:557
&gt; +    return textureUpdateTickRate + 0.002;

maybe a // to explain rationale for this constant. I think I follow, but i&apos;ll forget a week from now. :)

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:825
&gt; +    m_currentTextureUpdateTimer.clear();

You can avoid recreating the timer every time and just persist the timer and startOneShot every time.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:826
&gt; +    m_schedulerOnImplThread-&gt;didUpdateMoreResourcesComplete();

I&apos;m a little confused at the role of this timer in the throttled case... where do we tell the updater to check the fences? Or is the idea that this just causes the scheduler to re-hammer schedulActionUpdateMore and then that in-turn cauess a fence-check?

What if we move this timer into the ccscheduler [but not the state machine]? E.g. have scheduler set a timer that calls back to itself that then just hammers the allocator again...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617719</commentid>
    <comment_count>3</comment_count>
      <attachid>140552</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-05-07 10:54:12 -0700</bug_when>
    <thetext>Created attachment 140552
Patch

Rebased on current version of 81004.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617738</commentid>
    <comment_count>4</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-05-07 11:13:39 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 137777 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137777&amp;action=review
&gt; 
&gt; This is looking good. A few high level comments.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.h:57
&gt; &gt; +    virtual double maxResourceUpdateTime() const = 0;
&gt; 
&gt; expectedSecondsToPerformNextBlahBlah()?

Done. Now expectedSecondsToPerformNextUpdateMoreResources().

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:557
&gt; &gt; +    return textureUpdateTickRate + 0.002;
&gt; 
&gt; maybe a // to explain rationale for this constant. I think I follow, but i&apos;ll forget a week from now. :)

Moved this into CCScheduler::nextAction() and used variable names that hopefully makes it very clear what this is for.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:825
&gt; &gt; +    m_currentTextureUpdateTimer.clear();
&gt; 
&gt; You can avoid recreating the timer every time and just persist the timer and startOneShot every time.

done.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:826
&gt; &gt; +    m_schedulerOnImplThread-&gt;didUpdateMoreResourcesComplete();
&gt; 
&gt; I&apos;m a little confused at the role of this timer in the throttled case... where do we tell the updater to check the fences? Or is the idea that this just causes the scheduler to re-hammer schedulActionUpdateMore and then that in-turn cauess a fence-check?

Yes, all the current throttled texture uploader does is make sure we don&apos;t go beyond a certain limit of pending texture uploads. The texture uploader just wont perform any uploads when the limit is reached. It&apos;s currently up to the CCProxy to determine how frequently to hammer the uploader. CCThreadProxy currently uses textureUpdateTickRate=0.004.

&gt; 
&gt; What if we move this timer into the ccscheduler [but not the state machine]? E.g. have scheduler set a timer that calls back to itself that then just hammers the allocator again...

The textureUpdateTickRate constant belongs on the same place as the textureUpdatesPerTick constant. Maybe we should move both of these into ccscheduler but to avoid having this patch grow again I&apos;d prefer to leave that for a follow up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617984</commentid>
    <comment_count>5</comment_count>
      <attachid>140600</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-05-07 15:11:12 -0700</bug_when>
    <thetext>Created attachment 140600
Patch

Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618042</commentid>
    <comment_count>6</comment_count>
      <attachid>140600</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-05-07 15:53:33 -0700</bug_when>
    <thetext>Comment on attachment 140600
Patch

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

Nat should look at the scheduler changes, but here are some comments to get you started.

Is this something we want to do for 20 or wait for post-20?  My gut is that we could probably use some time playing with this to shake out any unexpected issues before we try to get it on a release train.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp:145
&gt; +    const double secondsOfPadding = 0.002;

I&apos;m not sure what this number is supposed to represent. Can haz comment?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:51
&gt; +static const size_t textureUpdatesPerTick = 4;

this is a big change. can you take some traces of scrolling with 30-40 tiles updated/frame and verify that we don&apos;t get limited more than the GPU can handle?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:557
&gt; +    static PassOwnPtr&lt;CCThreadProxyTextureUpdateTimer&gt; create(CCThreadProxy* proxy) { return adoptPtr(new CCThreadProxyTextureUpdateTimer(proxy)); }

probably worth expanding this out

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:559
&gt; +    virtual void onTimerFired()

OVERRIDE please</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618140</commentid>
    <comment_count>7</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-05-07 17:17:37 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 140600 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140600&amp;action=review
&gt; 
&gt; Nat should look at the scheduler changes, but here are some comments to get you started.
&gt; 
&gt; Is this something we want to do for 20 or wait for post-20?  My gut is that we could probably use some time playing with this to shake out any unexpected issues before we try to get it on a release train.

I don&apos;t think it makes sense to land this unless the throttled texture uploader can be enabled, which depends on http://code.google.com/p/chromium/issues/detail?id=123414 getting fixed. 

I&apos;d be more comfortable landing all this post 20 but if the query bug is quickly solved and Nat likes to see this in 20, I&apos;m OK landing it and staying on top of any issues it might cause.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp:145
&gt; &gt; +    const double secondsOfPadding = 0.002;
&gt; 
&gt; I&apos;m not sure what this number is supposed to represent. Can haz comment?

This constant is just for adding some padding to make it less likely that we schedule texture uploads that will prevent us from drawing in a timely manner when the next vsync tick comes around. I&apos;m removing the constant from this patch as with the current timing returned from expectedSecondsToPerformNextUpdateMoreResources() this isn&apos;t really useful. We probably want to add this back later but it wont make any difference right now.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:51
&gt; &gt; +static const size_t textureUpdatesPerTick = 4;
&gt; 
&gt; this is a big change. can you take some traces of scrolling with 30-40 tiles updated/frame and verify that we don&apos;t get limited more than the GPU can handle?

4 is a bit low. This shouldn&apos;t matter much once we start adjusting the tick rate based on the timing results returned by our queries but that&apos;s for another patch.

The updates per tick should be set to 11.52 to keep the current upload cost estimate which is: 2.88 uploads/ms

Based on my traces on the latest chromeos hardware, 16 seems closer to the optimal number of updates/tick there but I&apos;ll set it to 12 for now as I would prefer to keep a change to the upload cost estimate in a separate patch.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:557
&gt; &gt; +    static PassOwnPtr&lt;CCThreadProxyTextureUpdateTimer&gt; create(CCThreadProxy* proxy) { return adoptPtr(new CCThreadProxyTextureUpdateTimer(proxy)); }

done.

&gt; 
&gt; probably worth expanding this out
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:559
&gt; &gt; +    virtual void onTimerFired()
&gt; 
&gt; OVERRIDE please

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618154</commentid>
    <comment_count>8</comment_count>
      <attachid>140633</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-05-07 17:31:26 -0700</bug_when>
    <thetext>Created attachment 140633
Patch

Remove secondsOfPadding and  change textureUpdatesPerTick to 12</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618185</commentid>
    <comment_count>9</comment_count>
      <attachid>140633</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-05-07 18:05:49 -0700</bug_when>
    <thetext>Comment on attachment 140633
Patch

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

So this LGTM, but I think its a little awkward that &quot;texturpeUpdateComplete&quot; really means &quot;tell the texture uploader to try doing a bit more.&quot; I&apos;d be happier with better naming that doesn&apos;t imply that the actual uploads are done. But, &lt;/bikeshed&gt;

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h:151
&gt; +    void textureUpdateCompleteOnImplThread();

I&apos;m a little bugged by this, as noted by overall nit. Alkso, textureUpdate or textureUpload? Isn&apos;t this uploading? Lets make sure all the nomenclature is normalized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618277</commentid>
    <comment_count>10</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-05-07 21:13:06 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 140633 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140633&amp;action=review
&gt; 
&gt; So this LGTM, but I think its a little awkward that &quot;texturpeUpdateComplete&quot; really means &quot;tell the texture uploader to try doing a bit more.&quot; I&apos;d be happier with better naming that doesn&apos;t imply that the actual uploads are done. But, &lt;/bikeshed&gt;

How about I follow up with a patch that does the following?

CCSchedulerClient::scheduledActionUpdateMoreResources() -&gt; CCSchedulerClient::scheduledActionBeginUpdateMoreResources()

CCScheduler::didUpdateMoreResourcesComplete() -&gt; CCScheduler::didEndUpdateMoreResources()

CCThreadProxy::textureUpdateCompleteOnImplThread() -&gt;
CCThreadProxy::endTextureUpdatesOnImplThread()

I think that would better describe how the new system works:

1. We begin a texture update period.
2. The proxy, updater and uploader does whatever it can during this period.
3. and then calls didEndUpdateMoreResources().

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h:151
&gt; &gt; +    void textureUpdateCompleteOnImplThread();
&gt; 
&gt; I&apos;m a little bugged by this, as noted by overall nit. Alkso, textureUpdate or textureUpload? Isn&apos;t this uploading? Lets make sure all the nomenclature is normalized.

textureUpdate is correct here as the proxy only interacts with the texture updater. The texture updater will perform both texture uploads and texture copies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618547</commentid>
    <comment_count>11</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-05-08 08:50:59 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; How about I follow up with a patch that does the following?
&gt; 
&gt; CCSchedulerClient::scheduledActionUpdateMoreResources() -&gt; CCSchedulerClient::scheduledActionBeginUpdateMoreResources()
&gt; 
&gt; CCScheduler::didUpdateMoreResourcesComplete() -&gt; CCScheduler::didEndUpdateMoreResources()
&gt; 
&gt; CCThreadProxy::textureUpdateCompleteOnImplThread() -&gt;
&gt; CCThreadProxy::endTextureUpdatesOnImplThread()
&gt; 
&gt; I think that would better describe how the new system works:
&gt; 
&gt; 1. We begin a texture update period.
&gt; 2. The proxy, updater and uploader does whatever it can during this period.
&gt; 3. and then calls didEndUpdateMoreResources().
&gt; 

SGTM
 might work the word &quot;try&quot; in there...

And is it update or upload?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618548</commentid>
    <comment_count>12</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-05-08 08:51:29 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; And is it update or upload?

Oh, I see. This is really messing with my head.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629618</commentid>
    <comment_count>13</comment_count>
      <attachid>140633</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-05-21 15:39:40 -0700</bug_when>
    <thetext>Comment on attachment 140633
Patch

Clearing review flag, let&apos;s do https://bugs.webkit.org/show_bug.cgi?id=86898 first.  Having scheduler-type logic spread around multiple classes scares me a lot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641118</commentid>
    <comment_count>14</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-04 19:22:18 -0700</bug_when>
    <thetext>Hey David, want to do a hangout to figure out how to move this patch forward? Its good stuff, I think we just have to make the scheduling logic more palatable. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641536</commentid>
    <comment_count>15</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-05 07:42:08 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Hey David, want to do a hangout to figure out how to move this patch forward? Its good stuff, I think we just have to make the scheduling logic more palatable. :)

Sorry I dropped the ball on this one. Last time I looked at this, moving the timer code to CCScheduler isn&apos;t all that straight forward. I&apos;ll need to add a CCResourceUpdateRateController class that uses a CCTimeSource so that we can properly unit test it. It will make this patch quite a bit larger but I think it&apos;s the right way to do it. Let me know if you have any other ideas.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641704</commentid>
    <comment_count>16</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-05 10:46:03 -0700</bug_when>
    <thetext>I&apos;m not convinced we need to move this to the scheduler, and in fact, that sounds like a lot of complexity. Thats why I suggested a GVC. If I can re-convince myself of this suspicion, I can talk with JamesR and reconcile his concerns with my point of view. But, the first step is I think reviewing the problem space on a whiteboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647341</commentid>
    <comment_count>17</comment_count>
      <attachid>147164</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-12 14:30:31 -0700</bug_when>
    <thetext>Created attachment 147164
Patch

Make texture upload throttling transparent to CCScheduler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647344</commentid>
    <comment_count>18</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-12 14:32:33 -0700</bug_when>
    <thetext>The latest attached patch includes some the initial changes to make texture upload throttling transparent to CCScheduler. It adds a timeLimit argument to scheduledActionUpdateMoreResources, which allows the client to perform texture uploads for a certain amount of time. This doesn&apos;t yet move the timer code into CCTextureUpdater (more about this below) which I&apos;ll work on next but would like some feedback on these initial changes first.

The challenge with moving the timing code into CCTextureUpdater is that the GC3D and TextureUploader/Copier are currently passed as arguments to CCTextureUpdater::update and it would be inappropriate to hold on to these pointers past the return of that call. My current plan is to pass these pointers to the CCTextureUpdater constructor instead along with the CCTimer that the updater will use. Does that sound reasonable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647423</commentid>
    <comment_count>19</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-12 15:42:04 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; The challenge with moving the timing code into CCTextureUpdater is that the GC3D and TextureUploader/Copier are currently passed as arguments to CCTextureUpdater::update and it would be inappropriate to hold on to these pointers past the return of that call. My current plan is to pass these pointers to the CCTextureUpdater constructor instead along with the CCTimer that the updater will use. Does that sound reasonable?

So it will hold onto both gc3d and uploader pointers?

Have you thought about moving the entire updater to the lrc? Then just havign the proxies call to LRC as needed? I feel like something is wrong with our basic design here that is causing us unnecessary pain. If we could figure out a refactoring that reduces this complexity, it&apos;d be great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647424</commentid>
    <comment_count>20</comment_count>
      <attachid>147164</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-12 15:45:37 -0700</bug_when>
    <thetext>Comment on attachment 147164
Patch

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

Not quite. We need to seal stuff inside the updater. If that means moving the updater to LRC, so be it.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.h:61
&gt; +    virtual void scheduledActionUpdateMoreResources(double timeLimit) = 0;

timeLimitMonotonic

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:51
&gt; +static const size_t textureUpdatesPerTick = 12;

This moves into the updater, right?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:547
&gt; +class CCThreadProxyTextureUpdateTimer : public CCTimer, CCTimerClient {

Why is this on the proxy? You should be able to pass in an impl thread and have the updater construct a timer inside itself.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:628
&gt; +    m_schedulerOnImplThread-&gt;setVisible(m_layerTreeHostImpl-&gt;visible());

why did this move?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:909
&gt; +void CCThreadProxy::textureUpdateOnImplThread()

this should be inside the updater!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647453</commentid>
    <comment_count>21</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-12 16:18:45 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 147164 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147164&amp;action=review
&gt; 
&gt; Not quite. We need to seal stuff inside the updater. If that means moving the updater to LRC, so be it.

OK, maybe this was confusing but as I mentioned in my previous comment, I&apos;m interested in some feedback to make sure the CCScheduler changes are good before I attempt to move the timer code into the texture updater. This patch is not complete. It&apos;s just a first step. Please ignore the fact that the timer code still lives in CCThreadProxy when looking at it.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.h:61
&gt; &gt; +    virtual void scheduledActionUpdateMoreResources(double timeLimit) = 0;
&gt; 
&gt; timeLimitMonotonic

Sure, I&apos;ll fix that.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:51
&gt; &gt; +static const size_t textureUpdatesPerTick = 12;
&gt; 
&gt; This moves into the updater, right?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:547
&gt; &gt; +class CCThreadProxyTextureUpdateTimer : public CCTimer, CCTimerClient {
&gt; 
&gt; Why is this on the proxy? You should be able to pass in an impl thread and have the updater construct a timer inside itself.

Yes, please ignore this for now. This is the next step.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:628
&gt; &gt; +    m_schedulerOnImplThread-&gt;setVisible(m_layerTreeHostImpl-&gt;visible());
&gt; 
&gt; why did this move?

This had to move as a result of the changes to CCScheduler. scheduledActionCommit() is now only called as a result of the vsyncTick, which means that the m_schedulerOnImplThread-&gt;setVisible() call will likely cause a draw to happen. Draw happening before m_layerTreeHostImpl-&gt;commitComplete() is called confuses our unit tests. They expect commitComplete() to be called before a draw happens, which I think is reasonably behavior.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:909
&gt; &gt; +void CCThreadProxy::textureUpdateOnImplThread()
&gt; 
&gt; this should be inside the updater!

Same as above, ignore for now.

If the CCScheduler changes look alright to you then I&apos;ll go ahead and start working on moving the timer code into the texture updater.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647463</commentid>
    <comment_count>22</comment_count>
      <attachid>147164</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-12 16:34:47 -0700</bug_when>
    <thetext>Comment on attachment 147164
Patch

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

Oh, I get it. My bad, sorry for the grumpypants. :)

This looks goodish. Some thoughts below.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp:167
&gt; +                m_stateMachine.beginUpdateMoreResourcesComplete(false);

Can we delete this state on the state machine? I&apos;m thinking we can make the state machine just track what frame number it last did a saUMR and not do more than one... this is sort of how we prevent draws too.

&gt;&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:628
&gt;&gt;&gt; +    m_schedulerOnImplThread-&gt;setVisible(m_layerTreeHostImpl-&gt;visible());
&gt;&gt; 
&gt;&gt; why did this move?
&gt; 
&gt; This had to move as a result of the changes to CCScheduler. scheduledActionCommit() is now only called as a result of the vsyncTick, which means that the m_schedulerOnImplThread-&gt;setVisible() call will likely cause a draw to happen. Draw happening before m_layerTreeHostImpl-&gt;commitComplete() is called confuses our unit tests. They expect commitComplete() to be called before a draw happens, which I think is reasonably behavior.

Maybe the real bug is that we draw inside scheduledActionCommit? I&apos;m wondering if we should just have some code in ccscheduler that says &quot;i&apos;m in processscheduledactions&quot; -- - calling psa inside psa will nop...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647507</commentid>
    <comment_count>23</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-12 17:13:45 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 147164 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147164&amp;action=review
&gt; 
&gt; Oh, I get it. My bad, sorry for the grumpypants. :)
&gt; 
&gt; This looks goodish. Some thoughts below.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp:167
&gt; &gt; +                m_stateMachine.beginUpdateMoreResourcesComplete(false);
&gt; 
&gt; Can we delete this state on the state machine? I&apos;m thinking we can make the state machine just track what frame number it last did a saUMR and not do more than one... this is sort of how we prevent draws too.

That sounds reasonable but to keep this patch minimal and try to land it soon I&apos;d prefer to avoid this change for now if possible?

&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:628
&gt; &gt;&gt;&gt; +    m_schedulerOnImplThread-&gt;setVisible(m_layerTreeHostImpl-&gt;visible());
&gt; &gt;&gt; 
&gt; &gt;&gt; why did this move?
&gt; &gt; 
&gt; &gt; This had to move as a result of the changes to CCScheduler. scheduledActionCommit() is now only called as a result of the vsyncTick, which means that the m_schedulerOnImplThread-&gt;setVisible() call will likely cause a draw to happen. Draw happening before m_layerTreeHostImpl-&gt;commitComplete() is called confuses our unit tests. They expect commitComplete() to be called before a draw happens, which I think is reasonably behavior.
&gt; 
&gt; Maybe the real bug is that we draw inside scheduledActionCommit? I&apos;m wondering if we should just have some code in ccscheduler that says &quot;i&apos;m in processscheduledactions&quot; -- - calling psa inside psa will nop...

Yes, that&apos;s probably a good idea. Can we fix this separately?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649962</commentid>
    <comment_count>24</comment_count>
      <attachid>147755</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-15 00:25:16 -0700</bug_when>
    <thetext>Created attachment 147755
Patch

Add CCTextureUpdateController class and move all timing code into this class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650447</commentid>
    <comment_count>25</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-15 13:09:53 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; (From update of attachment 147164 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147164&amp;action=review
&gt; &gt; 
&gt; &gt; Oh, I get it. My bad, sorry for the grumpypants. :)
&gt; &gt; 
&gt; &gt; This looks goodish. Some thoughts below.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp:167
&gt; &gt; &gt; +                m_stateMachine.beginUpdateMoreResourcesComplete(false);
&gt; &gt; 
&gt; &gt; Can we delete this state on the state machine? I&apos;m thinking we can make the state machine just track what frame number it last did a saUMR and not do more than one... this is sort of how we prevent draws too.
&gt; 
&gt; That sounds reasonable but to keep this patch minimal and try to land it soon I&apos;d prefer to avoid this change for now if possible?
&gt; 
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:628
&gt; &gt; &gt;&gt;&gt; +    m_schedulerOnImplThread-&gt;setVisible(m_layerTreeHostImpl-&gt;visible());
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; why did this move?
&gt; &gt; &gt; 
&gt; &gt; &gt; This had to move as a result of the changes to CCScheduler. scheduledActionCommit() is now only called as a result of the vsyncTick, which means that the m_schedulerOnImplThread-&gt;setVisible() call will likely cause a draw to happen. Draw happening before m_layerTreeHostImpl-&gt;commitComplete() is called confuses our unit tests. They expect commitComplete() to be called before a draw happens, which I think is reasonably behavior.
&gt; &gt; 
&gt; &gt; Maybe the real bug is that we draw inside scheduledActionCommit? I&apos;m wondering if we should just have some code in ccscheduler that says &quot;i&apos;m in processscheduledactions&quot; -- - calling psa inside psa will nop...
&gt; 
&gt; Yes, that&apos;s probably a good idea. Can we fix this separately?

I dont think I&apos;m comfortable landing this for m21. The only pressure to land it is self-created, and while I understand you want to be done with it, I&apos;d prefer we do this right. So, given that, can you think through how to work around these issues?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650448</commentid>
    <comment_count>26</comment_count>
      <attachid>147755</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-15 13:12:25 -0700</bug_when>
    <thetext>Comment on attachment 147755
Patch

In particular, I think we should remove the updatespending state on the state machine and have the current updater be *owned* by LRC. Commit can set it directly and the proxy will just tick it. This fixes the ownership issues and allows us to have a considerably simper design I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650504</commentid>
    <comment_count>27</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-15 14:21:56 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 147755 [details])
&gt; In particular, I think we should remove the updatespending state on the state machine and have the current updater be *owned* by LRC. Commit can set it directly and the proxy will just tick it. This fixes the ownership issues and allows us to have a considerably simper design I think.

I&apos;d like the updatesPending state change to land separately and I don&apos;t mind if that&apos;s done before we land this patch if that&apos;s what you prefer.

Making the current texture updater *owned* by LRC is not a trivial change. The texture updater is currently used for appending updates before the LRC is even created. So either we have to change LRC initialization significantly or change the texture updater.

The CCTextureUpdateController class in the current patch is making the necessary texture updater changes without changing the current CCTextureUpdater class. It would be relatively easy to move this new CCTextureUpdateController instance into the LRC.

If you prefer to change LRC initialization, then I&apos;d like to see that done in a separate patch that we land before this one.

I&apos;m comfortable landing the current patch as I&apos;m confident it won&apos;t cause regressions unrelated to the feature it implements. This will change if we add the updatesPending state change and/or LRC initialization changes to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650523</commentid>
    <comment_count>28</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-15 14:35:57 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; (From update of attachment 147755 [details] [details])
&gt; &gt; In particular, I think we should remove the updatespending state on the state machine and have the current updater be *owned* by LRC. Commit can set it directly and the proxy will just tick it. This fixes the ownership issues and allows us to have a considerably simper design I think.
&gt; 
&gt; I&apos;d like the updatesPending state change to land separately and I don&apos;t mind if that&apos;s done before we land this patch if that&apos;s what you prefer.
&gt; 
&gt; Making the current texture updater *owned* by LRC is not a trivial change. The texture updater is currently used for appending updates before the LRC is even created.

Hmm, I don&apos;t think this is true - we currently can&apos;t do any painting work until we initialize the LRC because we need to know the MAX_TEXTURE_SIZE before we can figure out what our tile size is.  So I think we always initialize the LRC before we hit any code that could want to queue texture updates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650546</commentid>
    <comment_count>29</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-15 15:01:43 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (In reply to comment #27)
&gt; &gt; (In reply to comment #26)
&gt; &gt; &gt; (From update of attachment 147755 [details] [details] [details])
&gt; &gt; &gt; In particular, I think we should remove the updatespending state on the state machine and have the current updater be *owned* by LRC. Commit can set it directly and the proxy will just tick it. This fixes the ownership issues and allows us to have a considerably simper design I think.
&gt; &gt; 
&gt; &gt; I&apos;d like the updatesPending state change to land separately and I don&apos;t mind if that&apos;s done before we land this patch if that&apos;s what you prefer.
&gt; &gt; 
&gt; &gt; Making the current texture updater *owned* by LRC is not a trivial change. The texture updater is currently used for appending updates before the LRC is even created.
&gt; 
&gt; Hmm, I don&apos;t think this is true - we currently can&apos;t do any painting work until we initialize the LRC because we need to know the MAX_TEXTURE_SIZE before we can figure out what our tile size is.  So I think we always initialize the LRC before we hit any code that could want to queue texture updates.

I checked and it looks like my memory is correct - we _always_ initialize the LRC before doing any updates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650557</commentid>
    <comment_count>30</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-15 15:08:11 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (In reply to comment #27)
&gt; &gt; (In reply to comment #26)
&gt; &gt; &gt; (From update of attachment 147755 [details] [details] [details])
&gt; &gt; &gt; In particular, I think we should remove the updatespending state on the state machine and have the current updater be *owned* by LRC. Commit can set it directly and the proxy will just tick it. This fixes the ownership issues and allows us to have a considerably simper design I think.
&gt; &gt; 
&gt; &gt; I&apos;d like the updatesPending state change to land separately and I don&apos;t mind if that&apos;s done before we land this patch if that&apos;s what you prefer.
&gt; &gt; 
&gt; &gt; Making the current texture updater *owned* by LRC is not a trivial change. The texture updater is currently used for appending updates before the LRC is even created.
&gt; 
&gt; Hmm, I don&apos;t think this is true - we currently can&apos;t do any painting work until we initialize the LRC because we need to know the MAX_TEXTURE_SIZE before we can figure out what our tile size is.  So I think we always initialize the LRC before we hit any code that could want to queue texture updates.

Yes, sorry. I got that a bit wrong. We haven&apos;t actually started appending any updates to the updater at the time we initialize the LRC. We instantiate the updater on the impl thread before posting a beginFrame. Execution of beginFrame() on the main thread then calls CCLayerTreeHost::updateLayers(updater) with the updater and that will cause the LRC to be initialized.

So we could potentially make the LRC own the updater and still append updates to it. Will require a bit of refactoring to CCThreadProxy and LTH though. Is this what we want? It seems unnecessarily complicated to pass the texture updater pointer to beginFrame just for it to append updates to it. Maybe just have the main thread produce a vector of updates and pass it to the impl thread with beginFrameComplete?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650609</commentid>
    <comment_count>31</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-15 16:13:57 -0700</bug_when>
    <thetext>Instead of having the proxy own the updater, lets make it ephemral.

beginFrame *allocates* a new updater every time it runs and passes it to beginFrameCompleteOnImplThread. Then, we have LRC ownptr an updater which is initially null. The bfacOnImplThread passownptr&apos;s its updater to the LRC.

Et voila.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650622</commentid>
    <comment_count>32</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-15 16:34:18 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; Instead of having the proxy own the updater, lets make it ephemral.
&gt; 
&gt; beginFrame *allocates* a new updater every time it runs and passes it to beginFrameCompleteOnImplThread. Then, we have LRC ownptr an updater which is initially null. The bfacOnImplThread passownptr&apos;s its updater to the LRC.
&gt; 
&gt; Et voila.

OK, that&apos;s close to what my current patch is doing. beginFrame allocates a new updater every time it runs and passes it to beginFrameCompleteOnImplThread.

The difference is beginFrameCompleteOnImplThread in my patch then passes textureupdater to the constructor of CCTextureUpdateController along with GC3D, TextureCopier, Uploader, Allocator, etc which are needed to perform updates.

So unless we keep the CCTextureUpdateController class, I&apos;d need to add some way to pass GC3D, TextureUploader and such to the texture updater as those are not available on the main thread where the updater is created.

I think I prefer the CCTextureUpdateController class over setters for GC3D, TextureCopier, etc on the texture updater.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650648</commentid>
    <comment_count>33</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-15 17:45:55 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; 
&gt; I think I prefer the CCTextureUpdateController class over setters for GC3D, TextureCopier, etc on the texture updater.

Disagree. I think we should late-add these functions when the texture updater gets bound to a lrc. It has no need for those pointers until then, and (in fact) use of those pointers is unsafe on the main thread at all times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650649</commentid>
    <comment_count>34</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-15 17:46:43 -0700</bug_when>
    <thetext>When you get this on the LRC, then I think can fold this all into a single virtual TextureUpdater class that has two subclasses -- one for streaming and one for old-style. I vastly prefer this to 4 classes as is currently proposed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652638</commentid>
    <comment_count>35</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-06-19 11:32:08 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #32)
&gt; &gt; 
&gt; &gt; I think I prefer the CCTextureUpdateController class over setters for GC3D, TextureCopier, etc on the texture updater.
&gt; 
&gt; Disagree. I think we should late-add these functions when the texture updater gets bound to a lrc. It has no need for those pointers until then, and (in fact) use of those pointers is unsafe on the main thread at all times.

Not sure you get my point. Using any of these pointers on the main thread is of course unsafe.

I think it&apos;s a bad idea to expose the same interface to the painting system on the main thread as the update system on the impl thread. If we just add timing code to CCTextureUpdater and you no longer provide a GC3D pointer to the CCTextureUpdater::update() function, the only way to know that calling update() on the main thread is invalid is by looking at the details of the CCTextureUpdater implementation!

I think the best approach is to expose one interface on the main thread (lets call it TextureUpdaterQueue) with append functions and another on the impl thread (TextureUpdater) with update functions.

We can either have CCTextureUpdater implement both interfaces or we can have separate instances and pass the ownership of the TextureUpdaterQueue instance to the TextureUpdater during beginFrameComplete. I like the later as it allows us to pass the CCTimer and the GC3D reference to the TextureUpdater constructor rather than late-add them using setters.

My current patch does this but to keep the size of the patch reasonable: TextureUpdaterQueue=CCTextureUpdater, TextureUpdater=CCTextureUpdateController and the update(GC3D*) function is kept in the CCTextureUpdater class so that the changes to the single thread proxy and unit tests are minimal.

Whatever we decide is the right approach, I think the re-factoring should land prior to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682024</commentid>
    <comment_count>36</comment_count>
      <attachid>155294</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-07-30 08:14:36 -0700</bug_when>
    <thetext>Created attachment 155294
Patch

New patch that depends on CCTextureUpdater re-factoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688450</commentid>
    <comment_count>37</comment_count>
      <attachid>156769</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-06 15:02:42 -0700</bug_when>
    <thetext>Created attachment 156769
Patch

Rebase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688694</commentid>
    <comment_count>38</comment_count>
      <attachid>156832</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-06 19:17:33 -0700</bug_when>
    <thetext>Created attachment 156832
Patch

Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690603</commentid>
    <comment_count>39</comment_count>
      <attachid>156832</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-08-08 12:16:04 -0700</bug_when>
    <thetext>Comment on attachment 156832
Patch

I&apos;m a little confused about who should be responsible for the timing part of this, but maybe I don&apos;t understand the state machine enough.  I would have thought that the state machine would just spin on ACTION_BEGIN_UPDATE_MORE_RESOURCES, rather than having a CCTimer in the texture update controller controlling its own scheduling (in a way).  Passing a time to the controller to abort sounds good to me, but I&apos;m having trouble understanding how the outer loop should be controlled.

nduca: Can you give this a review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691677</commentid>
    <comment_count>40</comment_count>
      <attachid>156832</attachid>
    <who name="Brian Anderson">brianderson</who>
    <bug_when>2012-08-09 12:17:47 -0700</bug_when>
    <thetext>Comment on attachment 156832
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdateController.cpp:148
&gt; +    return WTF::monotonicallyIncreasingTime();

John is working on a patch that will make CCDelayBasedTimeSource use a highResolutionMonotonicallyIncreasing time, which will not be compatible with this.  When this should also use highResolutionMonotonicallyIncreasing will depend on when https://bugs.webkit.org/show_bug.cgi?id=93316 lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691698</commentid>
    <comment_count>41</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-09 12:44:21 -0700</bug_when>
    <thetext>(In reply to comment #40)
&gt; (From update of attachment 156832 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156832&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdateController.cpp:148
&gt; &gt; +    return WTF::monotonicallyIncreasingTime();
&gt; 
&gt; John is working on a patch that will make CCDelayBasedTimeSource use a highResolutionMonotonicallyIncreasing time, which will not be compatible with this.  When this should also use highResolutionMonotonicallyIncreasing will depend on when https://bugs.webkit.org/show_bug.cgi?id=93316 lands.

OK, thanks for the heads up. Seems like a simple adjustment that I&apos;ll make sure to get done if 93316 lands before this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692882</commentid>
    <comment_count>42</comment_count>
      <attachid>157811</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-10 14:33:06 -0700</bug_when>
    <thetext>Created attachment 157811
Patch

Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696126</commentid>
    <comment_count>43</comment_count>
      <attachid>157811</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-08-15 10:47:26 -0700</bug_when>
    <thetext>Comment on attachment 157811
Patch

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

This looks good, I like it. A few questions...

&gt; Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp:152
&gt; +    return m_timeSource-&gt;nextTickTime();

how does this work in the case where throttling is off? E.g. vsync disabled?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp:178
&gt;                  m_updateMoreResourcesPending = true;

are we still using this bool?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp:180
&gt; +                m_stateMachine.beginUpdateMoreResourcesComplete(false);

when do we set it to true?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696675</commentid>
    <comment_count>44</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-15 20:19:56 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; (From update of attachment 157811 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=157811&amp;action=review
&gt; 
&gt; This looks good, I like it. A few questions...
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp:152
&gt; &gt; +    return m_timeSource-&gt;nextTickTime();
&gt; 
&gt; how does this work in the case where throttling is off? E.g. vsync disabled?

Just about to upload a new patch that handles this properly. I made CCFrameRateController::nextTickTime() return WTF::monotonicallyIncreasingTime() when vsync is disabled and adjusted the CCTextureUpdateController to complete uploads in a finite amount of time which is something we needed anyhow.

https://bugs.webkit.org/show_bug.cgi?id=94175 needs to be fixed for disabled vsync to work properly but that&apos;s separate issue.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp:178
&gt; &gt;                  m_updateMoreResourcesPending = true;
&gt; 
&gt; are we still using this bool?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCScheduler.cpp:180
&gt; &gt; +                m_stateMachine.beginUpdateMoreResourcesComplete(false);
&gt; 
&gt; when do we set it to true?

m_updateMoreResourcesPending is used to issue a m_stateMachine.beginUpdateMoreResourcesComplete(m_client-&gt;hasMoreResourceUpdates()) call when we receive a vsync tick. We&apos;ve gone back and worth on this before and the decision was to not have the state machine API changes required to remove these variables as part of this patch. I think that&apos;s good idea. We can of course follow up with a patch that cleans up the state machine API after landing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696680</commentid>
    <comment_count>45</comment_count>
      <attachid>158699</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-15 20:25:22 -0700</bug_when>
    <thetext>Created attachment 158699
Patch

Support for disabled vsync and make updating complete in a finite amount of time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696761</commentid>
    <comment_count>46</comment_count>
      <attachid>158699</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-08-15 22:58:05 -0700</bug_when>
    <thetext>Comment on attachment 158699
Patch

Makes sense to me. Thanks for refreshing my memory. Enne, this LGTM if you want to give it the official stamp of goodness plus any nitting you might have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697242</commentid>
    <comment_count>47</comment_count>
      <attachid>158699</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-16 10:00:48 -0700</bug_when>
    <thetext>Comment on attachment 158699
Patch

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

R=me, but the time faking stuff is due for a cleanup. It&apos;s hard to reason about what clock different systems are using.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp:155
&gt; +    return WTF::monotonicallyIncreasingTime();

no WTF:: - monotonicallyIncreasingTime() is in the global namespace and not overridden by anything here

you should also move the &lt;wtf/CurrentTime.h&gt; #include from CCFRC.h to CCFRC.cpp - I&apos;ve no idea why it would be in the header.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdateController.h:58
&gt; +    virtual double monotonicallyIncreasingTime() const;

we really should pick a new name rather than aliasing a global symbol</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697308</commentid>
    <comment_count>48</comment_count>
      <attachid>158863</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-16 11:32:06 -0700</bug_when>
    <thetext>Created attachment 158863
Patch

Rename monotonicallyIncreasingTime() to monotonicTimeNow() and move wtf/CurrentTime.h include to CCFRC.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697375</commentid>
    <comment_count>49</comment_count>
      <attachid>158863</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-16 12:42:38 -0700</bug_when>
    <thetext>Comment on attachment 158863
Patch

Clearing flags on attachment: 158863

Committed r125800: &lt;http://trac.webkit.org/changeset/125800&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697376</commentid>
    <comment_count>50</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-16 12:42:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697791</commentid>
    <comment_count>51</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-08-16 18:43:33 -0700</bug_when>
    <thetext>Reverted r125800 for reason:

Hypothesis that this change caused gpu_throughput_tests to start timing out on all platforms on the Chromium GPU canaries.

Committed r125843: &lt;http://trac.webkit.org/changeset/125843&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698882</commentid>
    <comment_count>52</comment_count>
      <attachid>159255</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-17 18:44:38 -0700</bug_when>
    <thetext>Created attachment 159255
Patch

Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699807</commentid>
    <comment_count>53</comment_count>
      <attachid>159255</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 12:50:40 -0700</bug_when>
    <thetext>Comment on attachment 159255
Patch

Clearing flags on attachment: 159255

Committed r126055: &lt;http://trac.webkit.org/changeset/126055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699808</commentid>
    <comment_count>54</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 12:50:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701199</commentid>
    <comment_count>55</comment_count>
      <attachid>159255</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-08-21 15:35:28 -0700</bug_when>
    <thetext>Comment on attachment 159255
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp:159
&gt; +    return monotonicallyIncreasingTime();

I think this is wrong and causes things to break scheduling if !m_isTimeSourceThrottling.
Down in CCTextureUpdateController::updateMoreTexturesIfEnoughTimeRemaining this causes hasTimeRemaining to always be false, so we never start uploading until the next vsync tick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701261</commentid>
    <comment_count>56</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-21 16:19:18 -0700</bug_when>
    <thetext>(In reply to comment #55)
&gt; (From update of attachment 159255 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=159255&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp:159
&gt; &gt; +    return monotonicallyIncreasingTime();
&gt; 
&gt; I think this is wrong and causes things to break scheduling if !m_isTimeSourceThrottling.
&gt; Down in CCTextureUpdateController::updateMoreTexturesIfEnoughTimeRemaining this causes hasTimeRemaining to always be false, so we never start uploading until the next vsync tick.

This is currently the expected behavior. Not having any updates initiated until we get a vsync tick might seem a bit awkward but shouldn&apos;t have any real effect as there shouldn&apos;t be any delay until the next vsync tick when !m_isTimeSourceThrottling.

Do you think the problem you&apos;re seeing is this https://bugs.webkit.org/show_bug.cgi?id=94645 ? That problem existed before this patch landed but probably much more likely to be causing problems now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702006</commentid>
    <comment_count>57</comment_count>
      <attachid>159954</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-08-22 09:34:23 -0700</bug_when>
    <thetext>Created attachment 159954
Chromium trace showing frame throttling

It looks like this patch is throttling all animations (e.g., scrolling, requestAnimationFrame) to half of the nominal frame rate. For example, see http://diden.net/test/cycle16-raf.html, or try scrolling the page with the compositor fps graph visible. Attached is a trace I took while scrolling a page via the scrollbar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702126</commentid>
    <comment_count>58</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-22 11:49:12 -0700</bug_when>
    <thetext>(In reply to comment #57)
&gt; Created an attachment (id=159954) [details]
&gt; Chromium trace showing frame throttling
&gt; 
&gt; It looks like this patch is throttling all animations (e.g., scrolling, requestAnimationFrame) to half of the nominal frame rate. For example, see http://diden.net/test/cycle16-raf.html, or try scrolling the page with the compositor fps graph visible. Attached is a trace I took while scrolling a page via the scrollbar.

Thanks for the example. The problem is https://bugs.webkit.org/show_bug.cgi?id=94719 and the fix attached to that bug seem to get the frame rate to where it should be.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137777</attachid>
            <date>2012-04-18 14:55:22 -0700</date>
            <delta_ts>2012-05-07 10:54:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>texture-upload-streaming.diff</filename>
            <type>text/plain</type>
            <size>29338</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKaW5kZXggYjY4OGE3
OC4uNzA0ZWZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5j
cHAKQEAgLTE2MSw0ICsxNjEsMTIgQEAgdm9pZCBDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpwb3N0
TmV4dFRpY2tUYXNrKGRvdWJsZSBub3cpCiAgICAgbV90aWNrVGFyZ2V0ID0gbmV3VGlja1Rhcmdl
dDsKIH0KIAorZG91YmxlIENDRGVsYXlCYXNlZFRpbWVTb3VyY2U6Om5leHRUaWNrVGltZSgpIGNv
bnN0Cit7CisgICAgaWYgKCFtX2hhc1RpY2tUYXJnZXQpCisgICAgICAgIHJldHVybiBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKworICAgIHJldHVybiBtX3RpY2tUYXJnZXQ7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaAppbmRleCA5OTc5NWRi
Li42ZjIzZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5oCkBA
IC00Nyw2ICs0Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhY3RpdmUoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBtX3N0YXRlICE9IFNUQVRFX0lOQUNUSVZFOyB9CiAKKyAgICB2aXJ0dWFsIGRvdWJsZSBu
ZXh0VGlja1RpbWUoKSBjb25zdCBPVkVSUklERTsKKwogICAgIC8vIENDVGltZXJDbGllbnQgaW1w
bGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIG9uVGltZXJGaXJlZCgpIE9WRVJSSURFOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcAppbmRleCA4NGE3Y2Iz
Li41N2Q1YzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAK
QEAgLTEwNSw0ICsxMDUsOSBAQCB2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6ZGlkQWJvcnRB
bGxQZW5kaW5nRnJhbWVzKCkKICAgICBtX251bUZyYW1lc1BlbmRpbmcgPSAwOwogfQogCitkb3Vi
bGUgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpuZXh0VGlja1RpbWUoKQoreworICAgIHJldHVybiBt
X3RpbWVTb3VyY2UtPm5leHRUaWNrVGltZSgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJh
bWVSYXRlQ29udHJvbGxlci5oCmluZGV4IDU3MzRkNGEuLjdhMWRhZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZEZpbmlzaEZyYW1lKCk7CiAgICAgdm9pZCBkaWRBYm9ydEFsbFBlbmRpbmdGcmFt
ZXMoKTsKICAgICB2b2lkIHNldE1heEZyYW1lc1BlbmRpbmcoaW50KTsgLy8gMCBmb3IgdW5saW1p
dGVkLgorICAgIGRvdWJsZSBuZXh0VGlja1RpbWUoKTsKIAogcHJvdGVjdGVkOgogICAgIGZyaWVu
ZCBjbGFzcyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJUaW1lU291cmNlQWRhcHRlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2NoZWR1bGVyLmNwcAppbmRleCAzZDA5ZTQ0Li41MjRkZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVs
ZXIuY3BwCkBAIC0xMDcsMTQgKzEwNywxOSBAQCB2b2lkIENDU2NoZWR1bGVyOjpkaWRSZWNyZWF0
ZUNvbnRleHQoKQogICAgIHByb2Nlc3NTY2hlZHVsZWRBY3Rpb25zKCk7CiB9CiAKLXZvaWQgQ0NT
Y2hlZHVsZXI6OnZzeW5jVGljaygpCit2b2lkIENDU2NoZWR1bGVyOjpkaWRVcGRhdGVNb3JlUmVz
b3VyY2VzQ29tcGxldGUoKQogeworICAgIFRSQUNFX0VWRU5UKCJDQ1NjaGVkdWxlcjo6ZGlkVXBk
YXRlTW9yZVJlc291cmNlc0NvbXBsZXRlIiwgdGhpcywgMCk7CiAgICAgaWYgKG1fdXBkYXRlTW9y
ZVJlc291cmNlc1BlbmRpbmcpIHsKICAgICAgICAgbV91cGRhdGVNb3JlUmVzb3VyY2VzUGVuZGlu
ZyA9IGZhbHNlOwogICAgICAgICBtX3N0YXRlTWFjaGluZS5iZWdpblVwZGF0ZU1vcmVSZXNvdXJj
ZXNDb21wbGV0ZShtX2NsaWVudC0+aGFzTW9yZVJlc291cmNlVXBkYXRlcygpKTsKICAgICB9Ci0g
ICAgVFJBQ0VfRVZFTlQoIkNDU2NoZWR1bGVyOjp2c3luY1RpY2siLCB0aGlzLCAwKTsKKyAgICBw
cm9jZXNzU2NoZWR1bGVkQWN0aW9ucygpOworfQogCit2b2lkIENDU2NoZWR1bGVyOjp2c3luY1Rp
Y2soKQoreworICAgIFRSQUNFX0VWRU5UKCJDQ1NjaGVkdWxlcjo6dnN5bmNUaWNrIiwgdGhpcywg
MCk7CiAgICAgbV9zdGF0ZU1hY2hpbmUuZGlkRW50ZXJWU3luYygpOwogICAgIHByb2Nlc3NTY2hl
ZHVsZWRBY3Rpb25zKCk7CiAgICAgbV9zdGF0ZU1hY2hpbmUuZGlkTGVhdmVWU3luYygpOwpAQCAt
MTIzLDYgKzEyOCwxMSBAQCB2b2lkIENDU2NoZWR1bGVyOjp2c3luY1RpY2soKQogQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmU6OkFjdGlvbiBDQ1NjaGVkdWxlcjo6bmV4dEFjdGlvbigpCiB7CiAgICAg
bV9zdGF0ZU1hY2hpbmUuc2V0Q2FuRHJhdyhtX2NsaWVudC0+Y2FuRHJhdygpKTsKKworICAgIGJv
b2wgaGFzUmVkcmF3UGVuZGluZyA9IG1fc3RhdGVNYWNoaW5lLnJlZHJhd1BlbmRpbmcoKTsKKyAg
ICBib29sIGhhc1RpbWVSZW1haW5pbmcgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSA8
IG1fZnJhbWVSYXRlQ29udHJvbGxlci0+bmV4dFRpY2tUaW1lKCkgLSBtX2NsaWVudC0+bWF4UmVz
b3VyY2VVcGRhdGVUaW1lKCk7CisgICAgbV9zdGF0ZU1hY2hpbmUuc2V0Q2FuVXBkYXRlTW9yZVJl
c291cmNlcyghaGFzUmVkcmF3UGVuZGluZyB8fCBoYXNUaW1lUmVtYWluaW5nKTsKKwogICAgIHJl
dHVybiBtX3N0YXRlTWFjaGluZS5uZXh0QWN0aW9uKCk7CiB9CiAKQEAgLTE0OCwxNiArMTU4LDEx
IEBAIHZvaWQgQ0NTY2hlZHVsZXI6OnByb2Nlc3NTY2hlZHVsZWRBY3Rpb25zKCkKICAgICAgICAg
ICAgIG1fY2xpZW50LT5zY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lKCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lO
X1VQREFURV9NT1JFX1JFU09VUkNFUzoKLSAgICAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZWRB
Y3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCk7Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LT5o
YXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBJZiB3ZSB3ZXJl
IGp1c3QgdG9sZCB0byB1cGRhdGUgcmVzb3VyY2VzLCBidXQgdGhlcmUgYXJlIG5vCi0gICAgICAg
ICAgICAgICAgLy8gbW9yZSBwZW5kaW5nLCB0aGVuIHRlbGwgdGhlIHN0YXRlIG1hY2hpbmUgdGhh
dCB0aGUKLSAgICAgICAgICAgICAgICAvLyBiZWdpblVwZGF0ZU1vcmVSZXNvdXJjZXMgY29tcGxl
dGVkLiBJZiBtb3JlIGFyZSBwZW5kaW5nLAotICAgICAgICAgICAgICAgIC8vIHRoZW4gd2Ugd2ls
bCBhY2sgdGhlIHVwZGF0ZSBhdCB0aGUgbmV4dCBkcmF3LgotICAgICAgICAgICAgICAgIG1fdXBk
YXRlTW9yZVJlc291cmNlc1BlbmRpbmcgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBtX3N0YXRl
TWFjaGluZS5iZWdpblVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZShmYWxzZSk7Ci0gICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIGlmIChtX2NsaWVudC0+aGFzTW9yZVJlc291cmNlVXBk
YXRlcygpKSB7CisgICAgICAgICAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlZEFjdGlvblVwZGF0
ZU1vcmVSZXNvdXJjZXMoKTsKICAgICAgICAgICAgICAgICBtX3VwZGF0ZU1vcmVSZXNvdXJjZXNQ
ZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIG1fc3Rh
dGVNYWNoaW5lLmJlZ2luVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKGZhbHNlKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJ
T05fQ09NTUlUOgogICAgICAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlZEFjdGlvbkNvbW1pdCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDU2NoZWR1bGVyLmgKaW5kZXggNWZiMWZlNy4uYzQzZWJjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Nj
aGVkdWxlci5oCkBAIC01NCw2ICs1NCw3IEBAIGNsYXNzIENDU2NoZWR1bGVyQ2xpZW50IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FuRHJhdygpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
aGFzTW9yZVJlc291cmNlVXBkYXRlcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBt
YXhSZXNvdXJjZVVwZGF0ZVRpbWUoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpID0gMDsKICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0
aW9uRHJhd0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJZlBvc3NpYmxl
KCkgPSAwOwpAQCAtOTYsNiArOTcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRMb3NlQ29udGV4
dCgpOwogICAgIHZvaWQgZGlkUmVjcmVhdGVDb250ZXh0KCk7CiAKKyAgICB2b2lkIGRpZFVwZGF0
ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZSgpOworCiAgICAgYm9vbCBjb21taXRQZW5kaW5nKCkgY29u
c3QgeyByZXR1cm4gbV9zdGF0ZU1hY2hpbmUuY29tbWl0UGVuZGluZygpOyB9CiAgICAgYm9vbCBy
ZWRyYXdQZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZU1hY2hpbmUucmVkcmF3UGVuZGlu
ZygpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lLmNwcApp
bmRleCAxYzk0MmUzLi42MmU0YjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXJT
dGF0ZU1hY2hpbmUuY3BwCkBAIC00MSw2ICs0MSw3IEBAIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
OjpDQ1NjaGVkdWxlclN0YXRlTWFjaGluZSgpCiAgICAgLCBtX3Zpc2libGUoZmFsc2UpCiAgICAg
LCBtX2NhbkRyYXcodHJ1ZSkKICAgICAsIG1fZHJhd0lmUG9zc2libGVGYWlsZWQoZmFsc2UpCisg
ICAgLCBtX2NhblVwZGF0ZU1vcmVSZXNvdXJjZXMoZmFsc2UpCiAgICAgLCBtX2NvbnRleHRTdGF0
ZShDT05URVhUX0FDVElWRSkKIHsKIH0KQEAgLTcwLDYgKzcxLDE1IEBAIGJvb2wgQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmU6OnNob3VsZERyYXcoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQog
Citib29sIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpzaG91bGRVcGRhdGVNb3JlUmVzb3VyY2Vz
KCkgY29uc3QKK3sKKyAgICBpZiAobV91cGRhdGVNb3JlUmVzb3VyY2VzUGVuZGluZykKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghbV9jYW5VcGRhdGVNb3JlUmVzb3VyY2VzKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIENDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lOjpBY3Rpb24gQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6Om5leHRBY3Rpb24oKSBj
b25zdAogewogICAgIHN3aXRjaCAobV9jb21taXRTdGF0ZSkgewpAQCAtOTYsNyArMTA2LDcgQEAg
Q0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFjdGlvbiBDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6
bmV4dEFjdGlvbigpIGNvbnN0CiAgICAgY2FzZSBDT01NSVRfU1RBVEVfVVBEQVRJTkdfUkVTT1VS
Q0VTOgogICAgICAgICBpZiAoc2hvdWxkRHJhdygpKQogICAgICAgICAgICAgcmV0dXJuIG1fbmVl
ZHNGb3JjZWRSZWRyYXcgPyBBQ1RJT05fRFJBV19GT1JDRUQgOiBBQ1RJT05fRFJBV19JRl9QT1NT
SUJMRTsKLSAgICAgICAgaWYgKCFtX3VwZGF0ZU1vcmVSZXNvdXJjZXNQZW5kaW5nKQorICAgICAg
ICBpZiAoc2hvdWxkVXBkYXRlTW9yZVJlc291cmNlcygpKQogICAgICAgICAgICAgcmV0dXJuIEFD
VElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVM7CiAgICAgICAgIHJldHVybiBBQ1RJT05f
Tk9ORTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lLmgKaW5kZXgg
MmVjZmQxYy4uZjY0ODAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFj
aGluZS5oCkBAIC0xMjIsNiArMTIyLDkgQEAgcHVibGljOgogICAgIC8vIHdoZW4gc3VjaCBiZWhh
dmlvciB3b3VsZCBiZSB1bmRlc2lyYWJsZS4KICAgICB2b2lkIHNldENhbkRyYXcoYm9vbCBjYW4p
IHsgbV9jYW5EcmF3ID0gY2FuOyB9CiAKKyAgICAvLyBJbmRpY2F0ZXMgd2hldGhlciB1cGRhdGlu
ZyByZXNvdXJjZXMgd291bGQsIGF0IHRoaXMgdGltZSwgbWFrZSBzZW5zZS4KKyAgICB2b2lkIHNl
dENhblVwZGF0ZU1vcmVSZXNvdXJjZXMoYm9vbCBjYW4pIHsgbV9jYW5VcGRhdGVNb3JlUmVzb3Vy
Y2VzID0gY2FuOyB9CisKICAgICB2b2lkIGRpZExvc2VDb250ZXh0KCk7CiAgICAgdm9pZCBkaWRS
ZWNyZWF0ZUNvbnRleHQoKTsKIApAQCAtMTI5LDYgKzEzMiw3IEBAIHByb3RlY3RlZDoKICAgICBi
b29sIHNob3VsZERyYXdGb3JjZWQoKSBjb25zdDsKICAgICBib29sIHNob3VsZERyYXcoKSBjb25z
dDsKICAgICBib29sIGhhc0RyYXduVGhpc0ZyYW1lKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRV
cGRhdGVNb3JlUmVzb3VyY2VzKCkgY29uc3Q7CiAKICAgICBDb21taXRTdGF0ZSBtX2NvbW1pdFN0
YXRlOwogCkBAIC0xNDMsNiArMTQ3LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV92aXNpYmxl
OwogICAgIGJvb2wgbV9jYW5EcmF3OwogICAgIGJvb2wgbV9kcmF3SWZQb3NzaWJsZUZhaWxlZDsK
KyAgICBib29sIG1fY2FuVXBkYXRlTW9yZVJlc291cmNlczsKICAgICBDb250ZXh0U3RhdGUgbV9j
b250ZXh0U3RhdGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IDVjNjQx
MTQuLjVlNWE3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC00Nyw3ICs0Nywx
MCBAQCBuYW1lc3BhY2UgewogCiAvLyBOdW1iZXIgb2YgdGV4dHVyZXMgdG8gdXBkYXRlIHdpdGgg
ZWFjaCBjYWxsIHRvCiAvLyBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkuCi1z
dGF0aWMgY29uc3Qgc2l6ZV90IHRleHR1cmVVcGRhdGVzUGVyRnJhbWUgPSA0ODsKK3N0YXRpYyBj
b25zdCBzaXplX3QgdGV4dHVyZVVwZGF0ZXNQZXJUaWNrID0gNDsKKworLy8gTWVhc3VyZWQgaW4g
c2Vjb25kcy4KK3N0YXRpYyBjb25zdCBkb3VibGUgdGV4dHVyZVVwZGF0ZVRpY2tSYXRlID0gMC4w
MDQ7CiAKIC8vIE1lYXN1cmVkIGluIHNlY29uZHMuCiBzdGF0aWMgY29uc3QgZG91YmxlIGNvbnRl
eHRSZWNyZWF0aW9uVGlja1JhdGUgPSAwLjAzOwpAQCAtNTA1LDYgKzUwOCwyNSBAQCB2b2lkIEND
VGhyZWFkUHJveHk6OmJlZ2luRnJhbWUoKQogICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29t
cGxldGUoKTsKIH0KIAorY2xhc3MgQ0NUaHJlYWRQcm94eVRleHR1cmVVcGRhdGVUaW1lciA6IHB1
YmxpYyBDQ1RpbWVyLCBDQ1RpbWVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093
blB0cjxDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0ZVRpbWVyPiBjcmVhdGUoQ0NUaHJlYWRQcm94
eSogcHJveHkpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0
ZVRpbWVyKHByb3h5KSk7IH0KKworICAgIHZpcnR1YWwgdm9pZCBvblRpbWVyRmlyZWQoKQorICAg
IHsKKyAgICAgICAgbV9wcm94eS0+dGV4dHVyZVVwZGF0ZUNvbXBsZXRlT25JbXBsVGhyZWFkKCk7
CisgICAgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IENDVGhyZWFkUHJveHlUZXh0dXJlVXBk
YXRlVGltZXIoQ0NUaHJlYWRQcm94eSogcHJveHkpCisgICAgICAgIDogQ0NUaW1lcihDQ1Byb3h5
OjppbXBsVGhyZWFkKCksIHRoaXMpCisgICAgICAgICwgbV9wcm94eShwcm94eSkKKyAgICB7Cisg
ICAgfQorCisgICAgQ0NUaHJlYWRQcm94eSogbV9wcm94eTsKK307CisKIHZvaWQgQ0NUaHJlYWRQ
cm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBj
b21wbGV0aW9uKQogewogICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1l
Q29tcGxldGVPbkltcGxUaHJlYWQiLCB0aGlzLCAwKTsKQEAgLTUzMCw2ICs1NTIsMTEgQEAgYm9v
bCBDQ1RocmVhZFByb3h5OjpoYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkgY29uc3QKICAgICByZXR1
cm4gbV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxUaHJlYWQtPmhhc01vcmVVcGRhdGVzKCk7
CiB9CiAKK2RvdWJsZSBDQ1RocmVhZFByb3h5OjptYXhSZXNvdXJjZVVwZGF0ZVRpbWUoKSBjb25z
dAoreworICAgIHJldHVybiB0ZXh0dXJlVXBkYXRlVGlja1JhdGUgKyAwLjAwMjsKK30KKwogYm9v
bCBDQ1RocmVhZFByb3h5OjpjYW5EcmF3KCkKIHsKICAgICBBU1NFUlQoaXNJbXBsVGhyZWFkKCkp
OwpAQCAtNTQxLDggKzU2OCwxMCBAQCBib29sIENDVGhyZWFkUHJveHk6OmNhbkRyYXcoKQogdm9p
ZCBDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkKIHsK
ICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9y
ZVJlc291cmNlcyIsIHRoaXMsIDApOworICAgIG1fY3VycmVudFRleHR1cmVVcGRhdGVUaW1lciA9
IENDVGhyZWFkUHJveHlUZXh0dXJlVXBkYXRlVGltZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICBtX2N1
cnJlbnRUZXh0dXJlVXBkYXRlVGltZXItPnN0YXJ0T25lU2hvdCh0ZXh0dXJlVXBkYXRlVGlja1Jh
dGUpOwogICAgIEFTU0VSVChtX2N1cnJlbnRUZXh0dXJlVXBkYXRlck9uSW1wbFRocmVhZCk7Ci0g
ICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxUaHJlYWQtPnVwZGF0ZShtX2xheWVyVHJl
ZUhvc3RJbXBsLT5jb250ZXh0KCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmNvbnRlbnRzVGV4dHVy
ZUFsbG9jYXRvcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1
cmVDb3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJl
VXBsb2FkZXIoKSwgdGV4dHVyZVVwZGF0ZXNQZXJGcmFtZSk7CisgICAgbV9jdXJyZW50VGV4dHVy
ZVVwZGF0ZXJPbkltcGxUaHJlYWQtPnVwZGF0ZShtX2xheWVyVHJlZUhvc3RJbXBsLT5jb250ZXh0
KCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmNvbnRlbnRzVGV4dHVyZUFsbG9jYXRvcigpLCBtX2xh
eWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVDb3BpZXIoKSwgbV9sYXll
clRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlVXBsb2FkZXIoKSwgdGV4dHVy
ZVVwZGF0ZXNQZXJUaWNrKTsKIH0KIAogdm9pZCBDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rp
b25Db21taXQoKQpAQCAtNzYwLDcgKzc4OSw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0RnVs
bFJvb3RMYXllckRhbWFnZU9uSW1wbFRocmVhZCgpCiAKIHNpemVfdCBDQ1RocmVhZFByb3h5Ojpt
YXhQYXJ0aWFsVGV4dHVyZVVwZGF0ZXMoKSBjb25zdAogewotICAgIHJldHVybiB0ZXh0dXJlVXBk
YXRlc1BlckZyYW1lOworICAgIHJldHVybiB0ZXh0dXJlVXBkYXRlc1BlclRpY2s7CiB9CiAKIHZv
aWQgQ0NUaHJlYWRQcm94eTo6c2V0Rm9udEF0bGFzKFBhc3NPd25QdHI8Q0NGb250QXRsYXM+IGZv
bnRBdGxhcykKQEAgLTc4OSw0ICs4MTgsMTIgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpyZWNyZWF0
ZUNvbnRleHRPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24sIEcKICAg
ICBjb21wbGV0aW9uLT5zaWduYWwoKTsKIH0KIAordm9pZCBDQ1RocmVhZFByb3h5Ojp0ZXh0dXJl
VXBkYXRlQ29tcGxldGVPbkltcGxUaHJlYWQoKQoreworICAgIEFTU0VSVChpc0ltcGxUaHJlYWQo
KSk7CisgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OnRleHR1cmVVcGRhdGVDb21wbGV0
ZU9uSW1wbFRocmVhZCIsIHRoaXMsIDApOworICAgIG1fY3VycmVudFRleHR1cmVVcGRhdGVUaW1l
ci5jbGVhcigpOworICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFkLT5kaWRVcGRhdGVNb3JlUmVz
b3VyY2VzQ29tcGxldGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQ
cm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aHJlYWRQcm94eS5oCmluZGV4IGY5Njk3ZDMuLjJjZjdiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFBy
b3h5LmgKQEAgLTQzLDYgKzQzLDcgQEAgY2xhc3MgQ0NTY29wZWRUaHJlYWRQcm94eTsKIGNsYXNz
IENDVGV4dHVyZVVwZGF0ZXI7CiBjbGFzcyBDQ1RocmVhZDsKIGNsYXNzIENDVGhyZWFkUHJveHlD
b250ZXh0UmVjcmVhdGlvblRpbWVyOworY2xhc3MgQ0NUaHJlYWRQcm94eVRleHR1cmVVcGRhdGVU
aW1lcjsKIAogY2xhc3MgQ0NUaHJlYWRQcm94eSA6IHB1YmxpYyBDQ1Byb3h5LCBDQ0xheWVyVHJl
ZUhvc3RJbXBsQ2xpZW50LCBDQ1NjaGVkdWxlckNsaWVudCB7CiBwdWJsaWM6CkBAIC04Myw2ICs4
NCw3IEBAIHB1YmxpYzoKICAgICAvLyBDQ1NjaGVkdWxlckNsaWVudCBpbXBsZW1lbnRhdGlvbgog
ICAgIHZpcnR1YWwgYm9vbCBjYW5EcmF3KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGhh
c01vcmVSZXNvdXJjZVVwZGF0ZXMoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGRvdWJs
ZSBtYXhSZXNvdXJjZVVwZGF0ZVRpbWUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgQ0NT
Y2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dh
cElmUG9zc2libGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0aW9uRHJh
d0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBGb3JjZWQoKSBPVkVSUklE
RTsKQEAgLTkzLDYgKzk1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDQ1Ro
cmVhZFByb3h5KENDTGF5ZXJUcmVlSG9zdCopOwogICAgIGZyaWVuZCBjbGFzcyBDQ1RocmVhZFBy
b3h5Q29udGV4dFJlY3JlYXRpb25UaW1lcjsKKyAgICBmcmllbmQgY2xhc3MgQ0NUaHJlYWRQcm94
eVRleHR1cmVVcGRhdGVUaW1lcjsKIAogICAgIC8vIFNldCBvbiBpbXBsIHRocmVhZCwgcmVhZCBv
biBtYWluIHRocmVhZC4KICAgICBzdHJ1Y3QgQmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlIHsKQEAg
LTEzOCw2ICsxNDEsNyBAQCBwcml2YXRlOgogICAgIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3
YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJbnRlcm5hbChib29sIGZvcmNlZERy
YXcpOwogICAgIHZvaWQgc2V0Rm9udEF0bGFzT25JbXBsVGhyZWFkKFBhc3NPd25QdHI8Q0NGb250
QXRsYXM+KTsKICAgICB2b2lkIGZvcmNlU2VyaWFsaXplT25Td2FwQnVmZmVyc09uSW1wbFRocmVh
ZChDQ0NvbXBsZXRpb25FdmVudCopOworICAgIHZvaWQgdGV4dHVyZVVwZGF0ZUNvbXBsZXRlT25J
bXBsVGhyZWFkKCk7CiAKICAgICAvLyBBY2Nlc3NlZCBvbiBtYWluIHRocmVhZCBvbmx5LgogICAg
IGJvb2wgbV9hbmltYXRlUmVxdWVzdGVkOwpAQCAtMTc1LDYgKzE3OSw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gU2V0IHdoZW4gdGhlIG1haW4gdGhyZWFkIGlzIHdhaXRpbmcgb24gYSBjb21taXQgdG8g
Y29tcGxldGUuCiAgICAgQ0NDb21wbGV0aW9uRXZlbnQqIG1fY29tbWl0Q29tcGxldGlvbkV2ZW50
T25JbXBsVGhyZWFkOwogICAgIE93blB0cjxDQ1RleHR1cmVVcGRhdGVyPiBtX2N1cnJlbnRUZXh0
dXJlVXBkYXRlck9uSW1wbFRocmVhZDsKKyAgICBPd25QdHI8Q0NUaHJlYWRQcm94eVRleHR1cmVV
cGRhdGVUaW1lcj4gbV9jdXJyZW50VGV4dHVyZVVwZGF0ZVRpbWVyOwogCiAgICAgLy8gU2V0IHdo
ZW4gdGhlIG5leHQgZHJhdyBzaG91bGQgcG9zdCBkaWRDb21taXRBbmREcmF3RnJhbWUgdG8gdGhl
IG1haW4gdGhyZWFkLgogICAgIGJvb2wgbV9uZXh0RnJhbWVJc05ld2x5Q29tbWl0dGVkRnJhbWVP
bkltcGxUaHJlYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RpbWVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCmluZGV4IGRjY2I0NzAuLmMzNjRkOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGltZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENDVGltZVNvdXJjZUNsaWVudCopID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWN0aXZlKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIG5leHRUaWNrVGltZSgpIGNvbnN0ID0gMDsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hl
ZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LmNwcAppbmRleCBlNGE1ZDdjLi5lY2Y0NWIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyU3RhdGVN
YWNoaW5lVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVk
dWxlclN0YXRlTWFjaGluZVRlc3QuY3BwCkBAIC0xOTgsNiArMTk4LDcgQEAgVEVTVChDQ1NjaGVk
dWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RDb21taXRBZnRlckZhaWxlZERyYXdBbGxvd3NEcmF3
SW5TYW1lRnJhbWUKIAogICAgIC8vIEZpbmlzaCB0aGUgY29tbWl0LgogICAgIHN0YXRlLmJlZ2lu
RnJhbWVDb21wbGV0ZSgpOworICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1
ZSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5f
VVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwogICAgIHN0YXRlLnVw
ZGF0ZVN0YXRlKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01P
UkVfUkVTT1VSQ0VTKTsKICAgICBzdGF0ZS5iZWdpblVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0
ZShmYWxzZSk7CkBAIC0yNDgsNiArMjQ5LDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGlu
ZVRlc3QsIFRlc3RDb21taXRBZnRlckZhaWxlZEFuZFN1Y2Nlc3NmdWxEcmF3RG9lc05vdEEKIAog
ICAgIC8vIEZpbmlzaCB0aGUgY29tbWl0LgogICAgIHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0ZSgp
OworICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQRUNU
X0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVT
T1VSQ0VTLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwogICAgIHN0YXRlLnVwZGF0ZVN0YXRlKENDU2No
ZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTKTsK
ICAgICBzdGF0ZS5iZWdpblVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZShmYWxzZSk7CkBAIC00
NjEsNiArNDYzLDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RVcGRh
dGVzX05vUmVkcmF3X09uZVJvdW5kT2ZVcGRhdGVzKQogICAgIHN0YXRlLnNldENvbW1pdFN0YXRl
KENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfVVBEQVRJTkdfUkVTT1VSQ0VT
KTsKICAgICBzdGF0ZS5zZXROZWVkc1JlZHJhdyhmYWxzZSk7CiAgICAgc3RhdGUuc2V0VXBkYXRl
TW9yZVJlc291cmNlc1BlbmRpbmcoZmFsc2UpOworICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVS
ZXNvdXJjZXModHJ1ZSk7CiAgICAgc3RhdGUuc2V0VmlzaWJsZSh0cnVlKTsKIAogICAgIC8vIFZl
cmlmeSB3ZSBiZWdpbiB1cGRhdGUsIGJvdGggZm9yIHZzeW5jIGFuZCBub3QgdnN5bmMuCkBAIC00
ODksNiArNDkyLDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RVcGRh
dGVzX05vUmVkcmF3X1R3b1JvdW5kc09mVXBkYXRlcykKICAgICBzdGF0ZS5zZXRDb21taXRTdGF0
ZShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRFX1VQREFUSU5HX1JFU09VUkNF
Uyk7CiAgICAgc3RhdGUuc2V0TmVlZHNSZWRyYXcoZmFsc2UpOwogICAgIHN0YXRlLnNldFVwZGF0
ZU1vcmVSZXNvdXJjZXNQZW5kaW5nKGZhbHNlKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3Jl
UmVzb3VyY2VzKHRydWUpOwogICAgIHN0YXRlLnNldFZpc2libGUodHJ1ZSk7CiAKICAgICAvLyBW
ZXJpZnkgdGhlIHVwZGF0ZSBiZWdpbnMsIGJvdGggZm9yIHZzeW5jIGFuZCBub3QgdnN5bmMuCkBA
IC01NDUsNiArNTQ5LDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RV
cGRhdGVzX1dpdGhSZWRyYXdfT25lUm91bmRPZlVwZGF0ZXMpCiAgICAgc3RhdGUuc2V0Q29tbWl0
U3RhdGUoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9VUERBVElOR19SRVNP
VVJDRVMpOwogICAgIHN0YXRlLnNldE5lZWRzUmVkcmF3KHRydWUpOwogICAgIHN0YXRlLnNldFVw
ZGF0ZU1vcmVSZXNvdXJjZXNQZW5kaW5nKGZhbHNlKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVN
b3JlUmVzb3VyY2VzKHRydWUpOwogICAgIHN0YXRlLnNldFZpc2libGUodHJ1ZSk7CiAgICAgRVhQ
RUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVf
UkVTT1VSQ0VTLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwogCkBAIC02MDQsNiArNjA5LDcgQEAgVEVT
VChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RTZXROZWVkc0NvbW1pdElzTm90TG9z
dCkKIAogICAgIC8vIExldCB0aGUgZnJhbWUgZmluaXNoLgogICAgIHN0YXRlLmJlZ2luRnJhbWVD
b21wbGV0ZSgpOworICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAg
ICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfVVBEQVRJ
TkdfUkVTT1VSQ0VTLCBzdGF0ZS5jb21taXRTdGF0ZSgpKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hl
ZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVMsIHN0
YXRlLm5leHRBY3Rpb24oKSk7CiAgICAgc3RhdGUudXBkYXRlU3RhdGUoQ0NTY2hlZHVsZXJTdGF0
ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVMpOwpAQCAtNjQ2LDYg
KzY1Miw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0RnVsbEN5Y2xl
KQogCiAgICAgLy8gVGVsbCB0aGUgc2NoZWR1bGVyIHRoZSBmcmFtZSBmaW5pc2hlZC4KICAgICBz
dGF0ZS5iZWdpbkZyYW1lQ29tcGxldGUoKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVz
b3VyY2VzKHRydWUpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09N
TUlUX1NUQVRFX1VQREFUSU5HX1JFU09VUkNFUywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CiAgICAg
RVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01P
UkVfUkVTT1VSQ0VTLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwogCkBAIC02OTcsNiArNzA0LDcgQEAg
VEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RGdWxsQ3ljbGVXaXRoQ29tbWl0
UmVxdWVzdEluYmV0d2VlbikKIAogICAgIC8vIFRlbGwgdGhlIHNjaGVkdWxlciB0aGUgZnJhbWUg
ZmluaXNoZWQuCiAgICAgc3RhdGUuYmVnaW5GcmFtZUNvbXBsZXRlKCk7CisgICAgc3RhdGUuc2V0
Q2FuVXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJT
dGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9VUERBVElOR19SRVNPVVJDRVMsIHN0YXRlLmNvbW1p
dFN0YXRlKCkpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9O
X0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUubmV4dEFjdGlvbigpKTsKIApAQCAt
NzU0LDYgKzc2Miw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0R29l
c0ludmlzaWJsZU1pZENvbW1pdCkKIAogICAgIC8vIFRlbGwgdGhlIHNjaGVkdWxlciB0aGUgZnJh
bWUgZmluaXNoZWQKICAgICBzdGF0ZS5iZWdpbkZyYW1lQ29tcGxldGUoKTsKKyAgICBzdGF0ZS5z
ZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKHRydWUpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxl
clN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRFX1VQREFUSU5HX1JFU09VUkNFUywgc3RhdGUuY29t
bWl0U3RhdGUoKSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJ
T05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwogCkBA
IC04NjEsNiArODcwLDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RD
b250ZXh0TG9zdFdoaWxlQ29tbWl0SW5Qcm9ncmVzcykKIAogICAgIC8vIEZpbmlzaCB0aGUgZnJh
bWUsIHVwZGF0ZSByZXNvdXJjZXMsIGFuZCBjb21taXQuCiAgICAgc3RhdGUuYmVnaW5GcmFtZUNv
bXBsZXRlKCk7CisgICAgc3RhdGUuc2V0Q2FuVXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsKICAg
ICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVf
TU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5leHRBY3Rpb24oKSk7CiAgICAgc3RhdGUudXBkYXRlU3Rh
dGUoc3RhdGUubmV4dEFjdGlvbigpKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1h
Y2hpbmU6OkFDVElPTl9OT05FLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwpAQCAtOTA1LDYgKzkxNSw3
IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0Q29udGV4dExvc3RXaGls
ZUNvbW1pdEluUHJvZ3Jlc3NBbmRBbm90aGVyCiAKICAgICAvLyBGaW5pc2ggdGhlIGZyYW1lLCB1
cGRhdGUgcmVzb3VyY2VzLCBhbmQgY29tbWl0LgogICAgIHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0
ZSgpOworICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQ
RUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVf
UkVTT1VSQ0VTLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwogICAgIHN0YXRlLnVwZGF0ZVN0YXRlKHN0
YXRlLm5leHRBY3Rpb24oKSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
OjpBQ1RJT05fTk9ORSwgc3RhdGUubmV4dEFjdGlvbigpKTsKQEAgLTk3MSw2ICs5ODIsNyBAQCBU
RVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdCwgVGVzdEJlZ2luRnJhbWVXaGVuQ29tbWl0
SW5Qcm9ncmVzcykKICAgICBzdGF0ZS5zZXROZWVkc0ZvcmNlZENvbW1pdCh0cnVlKTsKIAogICAg
IHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0ZSgpOworICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVS
ZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpB
Q1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwog
ICAgIHN0YXRlLnVwZGF0ZVN0YXRlKHN0YXRlLm5leHRBY3Rpb24oKSk7CiAgICAgRVhQRUNUX0VR
KENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fTk9ORSwgc3RhdGUubmV4dEFjdGlvbigp
KTsKQEAgLTk5Myw0ICsxMDA1LDUyIEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0
LCBUZXN0QmVnaW5GcmFtZVdoZW5Db250ZXh0TG9zdCkKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9GUkFNRSwgc3RhdGUubmV4dEFjdGlvbigpKTsK
IH0KIAorVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RDYW5VcGRhdGVNb3Jl
UmVzb3VyY2VzKQoreworICAgIFN0YXRlTWFjaGluZSBzdGF0ZTsKKyAgICBzdGF0ZS5zZXRWaXNp
YmxlKHRydWUpOworICAgIHN0YXRlLnNldE5lZWRzUmVkcmF3KHRydWUpOworCisgICAgLy8gU3Rh
cnQgY2xlYW4gYW5kIHNldCBjb21taXQuCisgICAgc3RhdGUuc2V0TmVlZHNDb21taXQodHJ1ZSk7
CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fRlJB
TUUsIHN0YXRlLm5leHRBY3Rpb24oKSk7CisKKyAgICAvLyBCZWdpbiB0aGUgZnJhbWUuCisgICAg
c3RhdGUudXBkYXRlU3RhdGUoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9G
UkFNRSk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RB
VEVfRlJBTUVfSU5fUFJPR1JFU1MsIHN0YXRlLmNvbW1pdFN0YXRlKCkpOworICAgIEVYUEVDVF9G
QUxTRShzdGF0ZS5uZWVkc0NvbW1pdCgpKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0
ZU1hY2hpbmU6OkFDVElPTl9OT05FLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOworCisgICAgLy8gVGVs
bCB0aGUgc2NoZWR1bGVyIHRoZSBmcmFtZSBmaW5pc2hlZC4KKyAgICBzdGF0ZS5iZWdpbkZyYW1l
Q29tcGxldGUoKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKHRydWUpOwor
ICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRFX1VQREFU
SU5HX1JFU09VUkNFUywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CisgICAgRVhQRUNUX0VRKENDU2No
ZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBz
dGF0ZS5uZXh0QWN0aW9uKCkpOworCisgICAgLy8gVGVsbCB0aGUgc2NoZWR1bGVyIHRoZSB1cGRh
dGUgYmVnYW4gYW5kIGZpbmlzaGVkLgorICAgIHN0YXRlLnVwZGF0ZVN0YXRlKENDU2NoZWR1bGVy
U3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTKTsKKyAgICBz
dGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKGZhbHNlKTsKKyAgICBzdGF0ZS5iZWdpblVw
ZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZSh0cnVlKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9VUERBVElOR19SRVNPVVJDRVMsIHN0YXRlLmNv
bW1pdFN0YXRlKCkpOworICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNU
SU9OX05PTkUsIHN0YXRlLm5leHRBY3Rpb24oKSk7CisKKyAgICAvLyBBdCB2c3luYywgZHJhdy4K
KyAgICBzdGF0ZS5kaWRFbnRlclZTeW5jKCk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lOjpBQ1RJT05fRFJBV19JRl9QT1NTSUJMRSwgc3RhdGUubmV4dEFjdGlvbigpKTsK
KyAgICBzdGF0ZS51cGRhdGVTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0RS
QVdfSUZfUE9TU0lCTEUpOworICAgIHN0YXRlLmRpZERyYXdJZlBvc3NpYmxlQ29tcGxldGVkKHRy
dWUpOworICAgIHN0YXRlLmRpZExlYXZlVlN5bmMoKTsKKworICAgIC8vIFRlbGwgdGhlIHNjaGVk
dWxlciB0aGF0IHdlIGNhbiB1cGRhdGUgbW9yZSByZXNvdXJjZXMuCisgICAgc3RhdGUuc2V0Q2Fu
VXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0
ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9VUERBVElOR19SRVNPVVJDRVMsIHN0YXRlLmNvbW1pdFN0
YXRlKCkpOworICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JF
R0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUubmV4dEFjdGlvbigpKTsKKworICAgIC8v
IFRlbGwgdGhlIHNjaGVkdWxlciB0aGUgc2Vjb25kIHVwZGF0ZSBiZWdhbiBhbmQgZmluaXNoZWQK
KyAgICBzdGF0ZS51cGRhdGVTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JF
R0lOX1VQREFURV9NT1JFX1JFU09VUkNFUyk7CisgICAgc3RhdGUuYmVnaW5VcGRhdGVNb3JlUmVz
b3VyY2VzQ29tcGxldGUoZmFsc2UpOworICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFj
aGluZTo6Q09NTUlUX1NUQVRFX1JFQURZX1RPX0NPTU1JVCwgc3RhdGUuY29tbWl0U3RhdGUoKSk7
CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQ09NTUlULCBz
dGF0ZS5uZXh0QWN0aW9uKCkpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHAKaW5kZXggMTEyODJiNC4uZDRmMzY1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0LmNwcApAQCAt
NDgsMTAgKzQ4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9kcmF3V2lsbEhhcHBlbiA9IHRydWU7
CiAgICAgICAgIG1fc3dhcFdpbGxIYXBwZW5JZkRyYXdIYXBwZW5zID0gdHJ1ZTsKICAgICAgICAg
bV9udW1EcmF3cyA9IDA7CisgICAgICAgIG1fbWF4UmVzb3VyY2VVcGRhdGVUaW1lID0gMDsKICAg
ICB9CiAKICAgICB2b2lkIHNldEhhc01vcmVSZXNvdXJjZVVwZGF0ZXMoYm9vbCBiKSB7IG1faGFz
TW9yZVJlc291cmNlVXBkYXRlcyA9IGI7IH0KICAgICB2b2lkIHNldENhbkRyYXcoYm9vbCBiKSB7
IG1fY2FuRHJhdyA9IGI7IH0KKyAgICB2b2lkIHNldE1heFJlc291cmNlVXBkYXRlVGltZShkb3Vi
bGUgdCkgeyBtX21heFJlc291cmNlVXBkYXRlVGltZSA9IHQ7IH0KIAogICAgIGludCBudW1EcmF3
cygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtRHJhd3M7IH0KICAgICBpbnQgbnVtQWN0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4obV9hY3Rpb25zLnNpemUoKSk7IH0KQEAgLTY3
LDYgKzY5LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGNhbkRyYXcoKSBPVkVSUklE
RSB7IHJldHVybiBtX2NhbkRyYXc7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFzTW9yZVJlc291cmNl
VXBkYXRlcygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faGFzTW9yZVJlc291cmNlVXBkYXRl
czsgfQorICAgIHZpcnR1YWwgZG91YmxlIG1heFJlc291cmNlVXBkYXRlVGltZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIG1fbWF4UmVzb3VyY2VVcGRhdGVUaW1lOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKSBPVkVSUklERSB7IG1fYWN0aW9ucy5wdXNo
X2JhY2soInNjaGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUiKTsgfQogICAgIHZpcnR1YWwgQ0NTY2hl
ZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcElm
UG9zc2libGUoKSBPVkVSUklERQogICAgIHsKQEAgLTkzLDYgKzk2LDcgQEAgcHJvdGVjdGVkOgog
ICAgIGJvb2wgbV9jYW5EcmF3OwogICAgIGJvb2wgbV9kcmF3V2lsbEhhcHBlbjsKICAgICBib29s
IG1fc3dhcFdpbGxIYXBwZW5JZkRyYXdIYXBwZW5zOworICAgIGRvdWJsZSBtX21heFJlc291cmNl
VXBkYXRlVGltZTsKICAgICBpbnQgbV9udW1EcmF3czsKICAgICBzdGQ6OnZlY3Rvcjxjb25zdCBj
aGFyKj4gbV9hY3Rpb25zOwogfTsKQEAgLTExMiwxMiArMTE2LDEwIEBAIFRFU1QoQ0NTY2hlZHVs
ZXJUZXN0LCBSZXF1ZXN0Q29tbWl0KQogICAgIGNsaWVudC5yZXNldCgpOwogCiAgICAgLy8gU2lu
Y2UsIGhhc01vcmVSZXNvdXJjZVVwZGF0ZXMgaXMgc2V0IHRvIGZhbHNlLAotICAgIC8vIGJlZ2lu
RnJhbWVDb21wbGV0ZSBzaG91bGQgdXBkYXRlTW9yZVJlc291cmNlcywgdGhlbgotICAgIC8vIGNv
bW1pdAorICAgIC8vIGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQganVzdCBjb21taXQKICAgICBz
Y2hlZHVsZXItPmJlZ2luRnJhbWVDb21wbGV0ZSgpOwotICAgIEVYUEVDVF9FUSgyLCBjbGllbnQu
bnVtQWN0aW9ucygpKTsKLSAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvblVwZGF0ZU1v
cmVSZXNvdXJjZXMiLCBjbGllbnQuYWN0aW9uKDApKTsKLSAgICBFWFBFQ1RfU1RSRVEoInNjaGVk
dWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMSkpOworICAgIEVYUEVDVF9FUSgxLCBj
bGllbnQubnVtQWN0aW9ucygpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvbkNv
bW1pdCIsIGNsaWVudC5hY3Rpb24oMCkpOwogICAgIEVYUEVDVF9UUlVFKHRpbWVTb3VyY2UtPmFj
dGl2ZSgpKTsKICAgICBjbGllbnQucmVzZXQoKTsKIApAQCAtMTQ5LDEyICsxNTEsMTAgQEAgVEVT
VChDQ1NjaGVkdWxlclRlc3QsIFJlcXVlc3RDb21taXRBZnRlckJlZ2luRnJhbWUpCiAgICAgc2No
ZWR1bGVyLT5zZXROZWVkc0NvbW1pdCgpOwogCiAgICAgLy8gU2luY2UsIGhhc01vcmVSZXNvdXJj
ZVVwZGF0ZXMgaXMgc2V0IHRvIGZhbHNlLCBhbmQgYW5vdGhlciBjb21taXQgaXMKLSAgICAvLyBu
ZWVkZWQsIGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQgdXBkYXRlTW9yZVJlc291cmNlcywgdGhl
biBjb21taXQsIHRoZW4KLSAgICAvLyBiZWdpbiBhbm90aGVyIGZyYW1lLgorICAgIC8vIG5lZWRl
ZCwgYmVnaW5GcmFtZUNvbXBsZXRlIHNob3VsZCBjb21taXQsIHRoZW4gYmVnaW4gYW5vdGhlciBm
cmFtZS4KICAgICBzY2hlZHVsZXItPmJlZ2luRnJhbWVDb21wbGV0ZSgpOwotICAgIEVYUEVDVF9F
USgyLCBjbGllbnQubnVtQWN0aW9ucygpKTsKLSAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFj
dGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMiLCBjbGllbnQuYWN0aW9uKDApKTsKLSAgICBFWFBFQ1Rf
U1RSRVEoInNjaGVkdWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMSkpOworICAgIEVY
UEVDVF9FUSgxLCBjbGllbnQubnVtQWN0aW9ucygpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInNjaGVk
dWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMCkpOwogICAgIGNsaWVudC5yZXNldCgp
OwogCiAgICAgLy8gVGljayBzaG91bGQgZHJhdyBidXQgdGhlbiBiZWdpbiBhbm90aGVyIGZyYW1l
LgpAQCAtNDE5LDQgKzQxOSw2OCBAQCBURVNUKENDU2NoZWR1bGVyVGVzdCwgTm9CZWdpbkZyYW1l
V2hlblN3YXBGYWlsc0R1cmluZ0ZvcmNlZENvbW1pdCkKICAgICBFWFBFQ1RfRVEoMCwgY29udHJv
bGxlclB0ci0+bnVtRnJhbWVzUGVuZGluZygpKTsKIH0KIAorVEVTVChDQ1NjaGVkdWxlclRlc3Qs
IFVwZGF0ZU1vcmVSZXNvdXJjZXMpCit7CisgICAgRmFrZUNDU2NoZWR1bGVyQ2xpZW50IGNsaWVu
dDsKKyAgICBSZWZQdHI8RmFrZUNDVGltZVNvdXJjZT4gdGltZVNvdXJjZSA9IGFkb3B0UmVmKG5l
dyBGYWtlQ0NUaW1lU291cmNlKCkpOworICAgIE93blB0cjxDQ1NjaGVkdWxlcj4gc2NoZWR1bGVy
ID0gQ0NTY2hlZHVsZXI6OmNyZWF0ZSgmY2xpZW50LCBhZG9wdFB0cihuZXcgQ0NGcmFtZVJhdGVD
b250cm9sbGVyKHRpbWVTb3VyY2UpKSk7CisgICAgc2NoZWR1bGVyLT5zZXRWaXNpYmxlKHRydWUp
OworCisgICAgLy8gU2V0TmVlZHNDb21taXQgc2hvdWxkIGJlZ2luIHRoZSBmcmFtZS4KKyAgICBz
Y2hlZHVsZXItPnNldE5lZWRzQ29tbWl0KCk7CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5udW1B
Y3Rpb25zKCkpOworICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSIs
IGNsaWVudC5hY3Rpb24oMCkpOworICAgIGNsaWVudC5yZXNldCgpOworCisgICAgLy8gU2luY2Us
IGhhc01vcmVSZXNvdXJjZVVwZGF0ZXMgaXMgc2V0IHRvIHRydWUsIGJlZ2luRnJhbWVDb21wbGV0
ZSBzaG91bGQKKyAgICAvLyB1cGRhdGVNb3JlUmVzb3VyY2VzLgorICAgIGNsaWVudC5zZXRIYXNN
b3JlUmVzb3VyY2VVcGRhdGVzKHRydWUpOworICAgIHNjaGVkdWxlci0+YmVnaW5GcmFtZUNvbXBs
ZXRlKCk7CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIEVYUEVD
VF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIGNsaWVudC5hY3Rp
b24oMCkpOworICAgIGNsaWVudC5yZXNldCgpOworCisgICAgY2xpZW50LnNldEhhc01vcmVSZXNv
dXJjZVVwZGF0ZXModHJ1ZSk7CisgICAgc2NoZWR1bGVyLT5kaWRVcGRhdGVNb3JlUmVzb3VyY2Vz
Q29tcGxldGUoKTsKKyAgICBFWFBFQ1RfRVEoMSwgY2xpZW50Lm51bUFjdGlvbnMoKSk7CisgICAg
RVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIiwgY2xpZW50
LmFjdGlvbigwKSk7CisgICAgY2xpZW50LnJlc2V0KCk7CisKKyAgICAvLyBTaW5jZSwgU2V0TmVl
ZFJlZHJhdyBpcyBzZXQgdG8gdHJ1ZSwgcmVzb3VyY2UgdXBkYXRlcyBzaG91bGQgYmUKKyAgICAv
LyBhdm9pZGVkIGFzIHdlIGdldCBjbG9zZSB0byB0aGUgbmV4dCB0aWNrIHRpbWUuCisgICAgc2No
ZWR1bGVyLT5zZXROZWVkc1JlZHJhdygpOworICAgIEVYUEVDVF9UUlVFKHNjaGVkdWxlci0+cmVk
cmF3UGVuZGluZygpKTsKKyAgICBFWFBFQ1RfVFJVRSh0aW1lU291cmNlLT5hY3RpdmUoKSk7Cisg
ICAgRVhQRUNUX0VRKDAsIGNsaWVudC5udW1EcmF3cygpKTsKKworICAgIC8vIFNpbmNlLCBtYXhS
ZXNvdXJjZVVwZGF0ZVRpbWUgaXMgNSBzZWNvbmRzIGFuZCBuZXh0VGlja1RpbWUgaXMgMQorICAg
IC8vIHNlY29uZCBhd2F5LCBkaWRVcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUgc2hvdWxkIG5v
dCBiZWdpbiBhbm90aGVyCisgICAgLy8gdXBkYXRlLgorICAgIGNsaWVudC5zZXRIYXNNb3JlUmVz
b3VyY2VVcGRhdGVzKHRydWUpOworICAgIGNsaWVudC5zZXRNYXhSZXNvdXJjZVVwZGF0ZVRpbWUo
NSk7CisgICAgdGltZVNvdXJjZS0+c2V0TmV4dFRpY2tUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpICsgMSk7CisgICAgc2NoZWR1bGVyLT5kaWRVcGRhdGVNb3JlUmVzb3VyY2VzQ29t
cGxldGUoKTsKKyAgICBFWFBFQ1RfRVEoMCwgY2xpZW50Lm51bUFjdGlvbnMoKSk7CisgICAgY2xp
ZW50LnJlc2V0KCk7CisKKyAgICAvLyBTaW5jZSwgbWF4UmVzb3VyY2VVcGRhdGVUaW1lIGlzIDUg
c2Vjb25kcyBhbmQgbmV4dFRpY2tUaW1lIGlzIDEwCisgICAgLy8gc2Vjb25kcyBhd2F5LCBkaWRV
cGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUgc2hvdWxkIGJlZ2luIGFub3RoZXIKKyAgICAvLyB1
cGRhdGUuCisgICAgY2xpZW50LnNldEhhc01vcmVSZXNvdXJjZVVwZGF0ZXModHJ1ZSk7CisgICAg
Y2xpZW50LnNldE1heFJlc291cmNlVXBkYXRlVGltZSg1KTsKKyAgICB0aW1lU291cmNlLT5zZXRO
ZXh0VGlja1RpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgKyAxMCk7CisgICAgc2No
ZWR1bGVyLT5kaWRVcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoKTsKKyAgICBFWFBFQ1RfRVEo
MSwgY2xpZW50Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rp
b25VcGRhdGVNb3JlUmVzb3VyY2VzIiwgY2xpZW50LmFjdGlvbigwKSk7CisgICAgY2xpZW50LnJl
c2V0KCk7CisKKyAgICAvLyBTaW5jZSwgaGFzTW9yZVJlc291cmNlVXBkYXRlcyBpcyBzZXQgdG8g
ZmFsc2UsCisgICAgLy8gZGlkVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlIHNob3VsZCBjb21t
aXQuCisgICAgY2xpZW50LnNldEhhc01vcmVSZXNvdXJjZVVwZGF0ZXMoZmFsc2UpOworICAgIHNj
aGVkdWxlci0+ZGlkVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKCk7CisgICAgRVhQRUNUX0VR
KDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0
aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigwKSk7CisgICAgY2xpZW50LnJlc2V0KCk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJU
ZXN0Q29tbW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVz
dENvbW1vbi5oCmluZGV4IDYyNTdlYzguLmYyZWM0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3RDb21tb24uaApAQCAtODYsNiArODYs
NyBAQCBjbGFzcyBGYWtlQ0NUaW1lU291cmNlIDogcHVibGljIFdlYkNvcmU6OkNDVGltZVNvdXJj
ZSB7CiBwdWJsaWM6CiAgICAgRmFrZUNDVGltZVNvdXJjZSgpCiAgICAgICAgIDogbV9hY3RpdmUo
ZmFsc2UpCisgICAgICAgICwgbV9uZXh0VGlja1RpbWUoMCkKICAgICAgICAgLCBtX2NsaWVudCgw
KSB7IH0KIAogICAgIHZpcnR1YWwgfkZha2VDQ1RpbWVTb3VyY2UoKSB7IH0KQEAgLTkzLDYgKzk0
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoV2ViQ29yZTo6Q0NUaW1l
U291cmNlQ2xpZW50KiBjbGllbnQpIE9WRVJSSURFIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wgYikgT1ZFUlJJREUgeyBtX2FjdGl2ZSA9IGI7
IH0KICAgICB2aXJ0dWFsIGJvb2wgYWN0aXZlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9h
Y3RpdmU7IH0KKyAgICB2aXJ0dWFsIGRvdWJsZSBuZXh0VGlja1RpbWUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX25leHRUaWNrVGltZTsgfQogCiAgICAgdm9pZCB0aWNrKCkKICAgICB7CkBA
IC0xMDEsOCArMTAzLDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fY2xpZW50LT5vblRpbWVy
VGljaygpOwogICAgIH0KIAorICAgIHZvaWQgc2V0TmV4dFRpY2tUaW1lKGRvdWJsZSBuZXh0VGlj
a1RpbWUpIHsgbV9uZXh0VGlja1RpbWUgPSBuZXh0VGlja1RpbWU7IH0KKwogcHJvdGVjdGVkOgog
ICAgIGJvb2wgbV9hY3RpdmU7CisgICAgZG91YmxlIG1fbmV4dFRpY2tUaW1lOwogICAgIFdlYkNv
cmU6OkNDVGltZVNvdXJjZUNsaWVudCogbV9jbGllbnQ7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140552</attachid>
            <date>2012-05-07 10:54:12 -0700</date>
            <delta_ts>2012-05-07 15:11:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>texture-upload-streaming.diff</filename>
            <type>text/plain</type>
            <size>31596</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKaW5kZXggYjY4OGE3
OC4uNzA0ZWZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5j
cHAKQEAgLTE2MSw0ICsxNjEsMTIgQEAgdm9pZCBDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpwb3N0
TmV4dFRpY2tUYXNrKGRvdWJsZSBub3cpCiAgICAgbV90aWNrVGFyZ2V0ID0gbmV3VGlja1Rhcmdl
dDsKIH0KIAorZG91YmxlIENDRGVsYXlCYXNlZFRpbWVTb3VyY2U6Om5leHRUaWNrVGltZSgpIGNv
bnN0Cit7CisgICAgaWYgKCFtX2hhc1RpY2tUYXJnZXQpCisgICAgICAgIHJldHVybiBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKworICAgIHJldHVybiBtX3RpY2tUYXJnZXQ7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaAppbmRleCA5OTc5NWRi
Li42ZjIzZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5oCkBA
IC00Nyw2ICs0Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhY3RpdmUoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBtX3N0YXRlICE9IFNUQVRFX0lOQUNUSVZFOyB9CiAKKyAgICB2aXJ0dWFsIGRvdWJsZSBu
ZXh0VGlja1RpbWUoKSBjb25zdCBPVkVSUklERTsKKwogICAgIC8vIENDVGltZXJDbGllbnQgaW1w
bGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIG9uVGltZXJGaXJlZCgpIE9WRVJSSURFOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcAppbmRleCA4NGE3Y2Iz
Li41N2Q1YzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAK
QEAgLTEwNSw0ICsxMDUsOSBAQCB2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6ZGlkQWJvcnRB
bGxQZW5kaW5nRnJhbWVzKCkKICAgICBtX251bUZyYW1lc1BlbmRpbmcgPSAwOwogfQogCitkb3Vi
bGUgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpuZXh0VGlja1RpbWUoKQoreworICAgIHJldHVybiBt
X3RpbWVTb3VyY2UtPm5leHRUaWNrVGltZSgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJh
bWVSYXRlQ29udHJvbGxlci5oCmluZGV4IDU3MzRkNGEuLjdhMWRhZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZEZpbmlzaEZyYW1lKCk7CiAgICAgdm9pZCBkaWRBYm9ydEFsbFBlbmRpbmdGcmFt
ZXMoKTsKICAgICB2b2lkIHNldE1heEZyYW1lc1BlbmRpbmcoaW50KTsgLy8gMCBmb3IgdW5saW1p
dGVkLgorICAgIGRvdWJsZSBuZXh0VGlja1RpbWUoKTsKIAogcHJvdGVjdGVkOgogICAgIGZyaWVu
ZCBjbGFzcyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJUaW1lU291cmNlQWRhcHRlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2NoZWR1bGVyLmNwcAppbmRleCA4NGI4NDIzLi5iNGE2NDFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVs
ZXIuY3BwCkBAIC0xMTksMTQgKzExOSwxOSBAQCB2b2lkIENDU2NoZWR1bGVyOjpkaWRSZWNyZWF0
ZUNvbnRleHQoKQogICAgIHByb2Nlc3NTY2hlZHVsZWRBY3Rpb25zKCk7CiB9CiAKLXZvaWQgQ0NT
Y2hlZHVsZXI6OnZzeW5jVGljaygpCit2b2lkIENDU2NoZWR1bGVyOjpkaWRVcGRhdGVNb3JlUmVz
b3VyY2VzQ29tcGxldGUoKQogeworICAgIFRSQUNFX0VWRU5UKCJDQ1NjaGVkdWxlcjo6ZGlkVXBk
YXRlTW9yZVJlc291cmNlc0NvbXBsZXRlIiwgdGhpcywgMCk7CiAgICAgaWYgKG1fdXBkYXRlTW9y
ZVJlc291cmNlc1BlbmRpbmcpIHsKICAgICAgICAgbV91cGRhdGVNb3JlUmVzb3VyY2VzUGVuZGlu
ZyA9IGZhbHNlOwogICAgICAgICBtX3N0YXRlTWFjaGluZS5iZWdpblVwZGF0ZU1vcmVSZXNvdXJj
ZXNDb21wbGV0ZShtX2NsaWVudC0+aGFzTW9yZVJlc291cmNlVXBkYXRlcygpKTsKICAgICB9Ci0g
ICAgVFJBQ0VfRVZFTlQoIkNDU2NoZWR1bGVyOjp2c3luY1RpY2siLCB0aGlzLCAwKTsKKyAgICBw
cm9jZXNzU2NoZWR1bGVkQWN0aW9ucygpOworfQogCit2b2lkIENDU2NoZWR1bGVyOjp2c3luY1Rp
Y2soKQoreworICAgIFRSQUNFX0VWRU5UKCJDQ1NjaGVkdWxlcjo6dnN5bmNUaWNrIiwgdGhpcywg
MCk7CiAgICAgbV9zdGF0ZU1hY2hpbmUuZGlkRW50ZXJWU3luYygpOwogICAgIHByb2Nlc3NTY2hl
ZHVsZWRBY3Rpb25zKCk7CiAgICAgbV9zdGF0ZU1hY2hpbmUuZGlkTGVhdmVWU3luYygpOwpAQCAt
MTM1LDYgKzE0MCwxMiBAQCB2b2lkIENDU2NoZWR1bGVyOjp2c3luY1RpY2soKQogQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmU6OkFjdGlvbiBDQ1NjaGVkdWxlcjo6bmV4dEFjdGlvbigpCiB7CiAgICAg
bV9zdGF0ZU1hY2hpbmUuc2V0Q2FuRHJhdyhtX2NsaWVudC0+Y2FuRHJhdygpKTsKKworICAgIGJv
b2wgaGFzUmVkcmF3UGVuZGluZyA9IG1fc3RhdGVNYWNoaW5lLnJlZHJhd1BlbmRpbmcoKTsKKyAg
ICBjb25zdCBkb3VibGUgc2Vjb25kc09mUGFkZGluZyA9IDAuMDAyOworICAgIGJvb2wgaGFzVGlt
ZVJlbWFpbmluZyA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIDwgbV9mcmFtZVJhdGVD
b250cm9sbGVyLT5uZXh0VGlja1RpbWUoKSAtIG1fY2xpZW50LT5leHBlY3RlZFNlY29uZHNUb1Bl
cmZvcm1OZXh0VXBkYXRlTW9yZVJlc291cmNlcygpIC0gc2Vjb25kc09mUGFkZGluZzsKKyAgICBt
X3N0YXRlTWFjaGluZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKCFoYXNSZWRyYXdQZW5kaW5n
IHx8IGhhc1RpbWVSZW1haW5pbmcpOworCiAgICAgcmV0dXJuIG1fc3RhdGVNYWNoaW5lLm5leHRB
Y3Rpb24oKTsKIH0KIApAQCAtMTYwLDE2ICsxNzEsMTEgQEAgdm9pZCBDQ1NjaGVkdWxlcjo6cHJv
Y2Vzc1NjaGVkdWxlZEFjdGlvbnMoKQogICAgICAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlZEFj
dGlvbkJlZ2luRnJhbWUoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENDU2No
ZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTOgot
ICAgICAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMo
KTsKLSAgICAgICAgICAgIGlmICghbV9jbGllbnQtPmhhc01vcmVSZXNvdXJjZVVwZGF0ZXMoKSkg
ewotICAgICAgICAgICAgICAgIC8vIElmIHdlIHdlcmUganVzdCB0b2xkIHRvIHVwZGF0ZSByZXNv
dXJjZXMsIGJ1dCB0aGVyZSBhcmUgbm8KLSAgICAgICAgICAgICAgICAvLyBtb3JlIHBlbmRpbmcs
IHRoZW4gdGVsbCB0aGUgc3RhdGUgbWFjaGluZSB0aGF0IHRoZQotICAgICAgICAgICAgICAgIC8v
IGJlZ2luVXBkYXRlTW9yZVJlc291cmNlcyBjb21wbGV0ZWQuIElmIG1vcmUgYXJlIHBlbmRpbmcs
Ci0gICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSB3aWxsIGFjayB0aGUgdXBkYXRlIGF0IHRoZSBu
ZXh0IGRyYXcuCi0gICAgICAgICAgICAgICAgbV91cGRhdGVNb3JlUmVzb3VyY2VzUGVuZGluZyA9
IGZhbHNlOwotICAgICAgICAgICAgICAgIG1fc3RhdGVNYWNoaW5lLmJlZ2luVXBkYXRlTW9yZVJl
c291cmNlc0NvbXBsZXRlKGZhbHNlKTsKLSAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
aWYgKG1fY2xpZW50LT5oYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkpIHsKKyAgICAgICAgICAgICAg
ICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpOwogICAgICAg
ICAgICAgICAgIG1fdXBkYXRlTW9yZVJlc291cmNlc1BlbmRpbmcgPSB0cnVlOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbV9zdGF0ZU1hY2hpbmUuYmVnaW5VcGRhdGVNb3Jl
UmVzb3VyY2VzQ29tcGxldGUoZmFsc2UpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9DT01NSVQ6CiAgICAgICAgICAgICBt
X2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuaAppbmRl
eCAwZTY5NzE2Li5kZmRlMjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmgKQEAgLTU0LDYgKzU0LDcg
QEAgY2xhc3MgQ0NTY2hlZHVsZXJDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBj
YW5EcmF3KCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIGV4cGVjdGVkU2Vjb25kc1RvUGVyZm9ybU5l
eHRVcGRhdGVNb3JlUmVzb3VyY2VzKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNj
aGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKSA9IDA7CiAgICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFj
dGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwSWZQb3NzaWJs
ZSgpID0gMDsKQEAgLTEwMSw2ICsxMDIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRMb3NlQ29u
dGV4dCgpOwogICAgIHZvaWQgZGlkUmVjcmVhdGVDb250ZXh0KCk7CiAKKyAgICB2b2lkIGRpZFVw
ZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZSgpOworCiAgICAgYm9vbCBjb21taXRQZW5kaW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9zdGF0ZU1hY2hpbmUuY29tbWl0UGVuZGluZygpOyB9CiAgICAgYm9v
bCByZWRyYXdQZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZU1hY2hpbmUucmVkcmF3UGVu
ZGluZygpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lLmNw
cAppbmRleCBkYTM3NzliLi5iNDIyYmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmUuY3BwCkBAIC00Myw2ICs0Myw3IEBAIENDU2NoZWR1bGVyU3RhdGVNYWNo
aW5lOjpDQ1NjaGVkdWxlclN0YXRlTWFjaGluZSgpCiAgICAgLCBtX2NhbkJlZ2luRnJhbWUoZmFs
c2UpCiAgICAgLCBtX2NhbkRyYXcodHJ1ZSkKICAgICAsIG1fZHJhd0lmUG9zc2libGVGYWlsZWQo
ZmFsc2UpCisgICAgLCBtX2NhblVwZGF0ZU1vcmVSZXNvdXJjZXMoZmFsc2UpCiAgICAgLCBtX3Rl
eHR1cmVTdGF0ZShMQVlFUl9URVhUVVJFX1NUQVRFX1VOTE9DS0VEKQogICAgICwgbV9jb250ZXh0
U3RhdGUoQ09OVEVYVF9BQ1RJVkUpCiB7CkBAIC0xMDUsNiArMTA2LDE1IEBAIGJvb2wgQ0NTY2hl
ZHVsZXJTdGF0ZU1hY2hpbmU6OnNob3VsZEFjcXVpcmVMYXllclRleHR1cmVzRm9yTWFpblRocmVh
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENDU2NoZWR1bGVyU3RhdGVN
YWNoaW5lOjpzaG91bGRVcGRhdGVNb3JlUmVzb3VyY2VzKCkgY29uc3QKK3sKKyAgICBpZiAobV91
cGRhdGVNb3JlUmVzb3VyY2VzUGVuZGluZykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
ICghbV9jYW5VcGRhdGVNb3JlUmVzb3VyY2VzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBY3Rpb24gQ0NTY2hl
ZHVsZXJTdGF0ZU1hY2hpbmU6Om5leHRBY3Rpb24oKSBjb25zdAogewogICAgIGlmIChzaG91bGRB
Y3F1aXJlTGF5ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQoKSkKQEAgLTEzMyw3ICsxNDMsNyBAQCBD
Q1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QWN0aW9uIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpu
ZXh0QWN0aW9uKCkgY29uc3QKICAgICBjYXNlIENPTU1JVF9TVEFURV9VUERBVElOR19SRVNPVVJD
RVM6CiAgICAgICAgIGlmIChzaG91bGREcmF3KCkpCiAgICAgICAgICAgICByZXR1cm4gbV9uZWVk
c0ZvcmNlZFJlZHJhdyA/IEFDVElPTl9EUkFXX0ZPUkNFRCA6IEFDVElPTl9EUkFXX0lGX1BPU1NJ
QkxFOwotICAgICAgICBpZiAoIW1fdXBkYXRlTW9yZVJlc291cmNlc1BlbmRpbmcpCisgICAgICAg
IGlmIChzaG91bGRVcGRhdGVNb3JlUmVzb3VyY2VzKCkpCiAgICAgICAgICAgICByZXR1cm4gQUNU
SU9OX0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUzsKICAgICAgICAgcmV0dXJuIEFDVElPTl9O
T05FOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUuaAppbmRleCBm
M2MyZjYzLi5kMmUwM2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNo
aW5lLmgKQEAgLTEzOCw2ICsxMzgsOSBAQCBwdWJsaWM6CiAgICAgLy8gd2hlbiBzdWNoIGJlaGF2
aW9yIHdvdWxkIGJlIHVuZGVzaXJhYmxlLgogICAgIHZvaWQgc2V0Q2FuRHJhdyhib29sIGNhbikg
eyBtX2NhbkRyYXcgPSBjYW47IH0KIAorICAgIC8vIEluZGljYXRlcyB3aGV0aGVyIHVwZGF0aW5n
IHJlc291cmNlcyB3b3VsZCwgYXQgdGhpcyB0aW1lLCBtYWtlIHNlbnNlLgorICAgIHZvaWQgc2V0
Q2FuVXBkYXRlTW9yZVJlc291cmNlcyhib29sIGNhbikgeyBtX2NhblVwZGF0ZU1vcmVSZXNvdXJj
ZXMgPSBjYW47IH0KKwogICAgIHZvaWQgZGlkTG9zZUNvbnRleHQoKTsKICAgICB2b2lkIGRpZFJl
Y3JlYXRlQ29udGV4dCgpOwogCkBAIC0xNDgsNiArMTUxLDcgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgc2hvdWxkRHJhdygpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQWNxdWlyZUxheWVyVGV4dHVy
ZXNGb3JNYWluVGhyZWFkKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNEcmF3blRoaXNGcmFtZSgpIGNv
bnN0OworICAgIGJvb2wgc2hvdWxkVXBkYXRlTW9yZVJlc291cmNlcygpIGNvbnN0OwogCiAgICAg
Q29tbWl0U3RhdGUgbV9jb21taXRTdGF0ZTsKIApAQCAtMTY0LDYgKzE2OCw3IEBAIHByb3RlY3Rl
ZDoKICAgICBib29sIG1fY2FuQmVnaW5GcmFtZTsKICAgICBib29sIG1fY2FuRHJhdzsKICAgICBi
b29sIG1fZHJhd0lmUG9zc2libGVGYWlsZWQ7CisgICAgYm9vbCBtX2NhblVwZGF0ZU1vcmVSZXNv
dXJjZXM7CiAgICAgVGV4dHVyZVN0YXRlIG1fdGV4dHVyZVN0YXRlOwogICAgIENvbnRleHRTdGF0
ZSBtX2NvbnRleHRTdGF0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IDRi
MjU4YTkuLjE2NmViZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC00OCw3ICs0
OCwxMCBAQCBuYW1lc3BhY2UgewogCiAvLyBOdW1iZXIgb2YgdGV4dHVyZXMgdG8gdXBkYXRlIHdp
dGggZWFjaCBjYWxsIHRvCiAvLyBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCku
Ci1zdGF0aWMgY29uc3Qgc2l6ZV90IHRleHR1cmVVcGRhdGVzUGVyRnJhbWUgPSA0ODsKK3N0YXRp
YyBjb25zdCBzaXplX3QgdGV4dHVyZVVwZGF0ZXNQZXJUaWNrID0gNDsKKworLy8gTWVhc3VyZWQg
aW4gc2Vjb25kcy4KK3N0YXRpYyBjb25zdCBkb3VibGUgdGV4dHVyZVVwZGF0ZVRpY2tSYXRlID0g
MC4wMDQ7CiAKIC8vIE1lYXN1cmVkIGluIHNlY29uZHMuCiBzdGF0aWMgY29uc3QgZG91YmxlIGNv
bnRleHRSZWNyZWF0aW9uVGlja1JhdGUgPSAwLjAzOwpAQCAtNTMwLDYgKzUzMywyNSBAQCB2b2lk
IENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWUoKQogICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0
Q29tcGxldGUoKTsKIH0KIAorY2xhc3MgQ0NUaHJlYWRQcm94eVRleHR1cmVVcGRhdGVUaW1lciA6
IHB1YmxpYyBDQ1RpbWVyLCBDQ1RpbWVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c093blB0cjxDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0ZVRpbWVyPiBjcmVhdGUoQ0NUaHJlYWRQ
cm94eSogcHJveHkpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1RocmVhZFByb3h5VGV4dHVyZVVw
ZGF0ZVRpbWVyKHByb3h5KSk7IH0KKworICAgIHZpcnR1YWwgdm9pZCBvblRpbWVyRmlyZWQoKQor
ICAgIHsKKyAgICAgICAgbV9wcm94eS0+dGV4dHVyZVVwZGF0ZUNvbXBsZXRlT25JbXBsVGhyZWFk
KCk7CisgICAgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IENDVGhyZWFkUHJveHlUZXh0dXJl
VXBkYXRlVGltZXIoQ0NUaHJlYWRQcm94eSogcHJveHkpCisgICAgICAgIDogQ0NUaW1lcihDQ1By
b3h5OjppbXBsVGhyZWFkKCksIHRoaXMpCisgICAgICAgICwgbV9wcm94eShwcm94eSkKKyAgICB7
CisgICAgfQorCisgICAgQ0NUaHJlYWRQcm94eSogbV9wcm94eTsKK307CisKIHZvaWQgQ0NUaHJl
YWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50
KiBjb21wbGV0aW9uKQogewogICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5OjpiZWdpbkZy
YW1lQ29tcGxldGVPbkltcGxUaHJlYWQiLCB0aGlzLCAwKTsKQEAgLTU1NSw2ICs1NzcsMTEgQEAg
Ym9vbCBDQ1RocmVhZFByb3h5OjpoYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxUaHJlYWQtPmhhc01vcmVVcGRhdGVz
KCk7CiB9CiAKK2RvdWJsZSBDQ1RocmVhZFByb3h5OjpleHBlY3RlZFNlY29uZHNUb1BlcmZvcm1O
ZXh0VXBkYXRlTW9yZVJlc291cmNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRleHR1cmVVcGRh
dGVUaWNrUmF0ZTsKK30KKwogYm9vbCBDQ1RocmVhZFByb3h5OjpjYW5EcmF3KCkKIHsKICAgICBB
U1NFUlQoaXNJbXBsVGhyZWFkKCkpOwpAQCAtNTY2LDggKzU5MywxMSBAQCBib29sIENDVGhyZWFk
UHJveHk6OmNhbkRyYXcoKQogdm9pZCBDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRh
dGVNb3JlUmVzb3VyY2VzKCkKIHsKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6c2No
ZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIHRoaXMsIDApOworICAgIGlmICghbV9j
dXJyZW50VGV4dHVyZVVwZGF0ZVRpbWVyKQorICAgICAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRl
VGltZXIgPSBDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0ZVRpbWVyOjpjcmVhdGUodGhpcyk7Cisg
ICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZVRpbWVyLT5zdGFydE9uZVNob3QodGV4dHVyZVVwZGF0
ZVRpY2tSYXRlKTsKICAgICBBU1NFUlQobV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxUaHJl
YWQpOwotICAgIG1fY3VycmVudFRleHR1cmVVcGRhdGVyT25JbXBsVGhyZWFkLT51cGRhdGUobV9s
YXllclRyZWVIb3N0SW1wbC0+Y29udGV4dCgpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5jb250ZW50
c1RleHR1cmVBbGxvY2F0b3IoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigp
LT50ZXh0dXJlQ29waWVyKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+
dGV4dHVyZVVwbG9hZGVyKCksIHRleHR1cmVVcGRhdGVzUGVyRnJhbWUpOworICAgIG1fY3VycmVu
dFRleHR1cmVVcGRhdGVyT25JbXBsVGhyZWFkLT51cGRhdGUobV9sYXllclRyZWVIb3N0SW1wbC0+
Y29udGV4dCgpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5jb250ZW50c1RleHR1cmVBbGxvY2F0b3Io
KSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlQ29waWVyKCks
IG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZVVwbG9hZGVyKCks
IHRleHR1cmVVcGRhdGVzUGVyVGljayk7CiB9CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2NoZWR1
bGVkQWN0aW9uQ29tbWl0KCkKQEAgLTgzNSw3ICs4NjUsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6
OnNldEZ1bGxSb290TGF5ZXJEYW1hZ2VPbkltcGxUaHJlYWQoKQogCiBzaXplX3QgQ0NUaHJlYWRQ
cm94eTo6bWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdGV4
dHVyZVVwZGF0ZXNQZXJGcmFtZTsKKyAgICByZXR1cm4gdGV4dHVyZVVwZGF0ZXNQZXJUaWNrOwog
fQogCiB2b2lkIENDVGhyZWFkUHJveHk6OnNldEZvbnRBdGxhcyhQYXNzT3duUHRyPENDRm9udEF0
bGFzPiBmb250QXRsYXMpCkBAIC04NjUsNCArODk1LDExIEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6
cmVjcmVhdGVDb250ZXh0T25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9u
LCBHCiAgICAgY29tcGxldGlvbi0+c2lnbmFsKCk7CiB9CiAKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6
dGV4dHVyZVVwZGF0ZUNvbXBsZXRlT25JbXBsVGhyZWFkKCkKK3sKKyAgICBBU1NFUlQoaXNJbXBs
VGhyZWFkKCkpOworICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5Ojp0ZXh0dXJlVXBkYXRl
Q29tcGxldGVPbkltcGxUaHJlYWQiLCB0aGlzLCAwKTsKKyAgICBtX3NjaGVkdWxlck9uSW1wbFRo
cmVhZC0+ZGlkVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAppbmRleCAyOTE1YTgxLi42MDQ5Y2U0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCkBAIC00Myw2ICs0Myw3IEBAIGNsYXNzIENDU2Nv
cGVkVGhyZWFkUHJveHk7CiBjbGFzcyBDQ1RleHR1cmVVcGRhdGVyOwogY2xhc3MgQ0NUaHJlYWQ7
CiBjbGFzcyBDQ1RocmVhZFByb3h5Q29udGV4dFJlY3JlYXRpb25UaW1lcjsKK2NsYXNzIENDVGhy
ZWFkUHJveHlUZXh0dXJlVXBkYXRlVGltZXI7CiAKIGNsYXNzIENDVGhyZWFkUHJveHkgOiBwdWJs
aWMgQ0NQcm94eSwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCwgQ0NTY2hlZHVsZXJDbGllbnQg
ewogcHVibGljOgpAQCAtODYsNiArODcsNyBAQCBwdWJsaWM6CiAgICAgLy8gQ0NTY2hlZHVsZXJD
bGllbnQgaW1wbGVtZW50YXRpb24KICAgICB2aXJ0dWFsIGJvb2wgY2FuRHJhdygpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBoYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBkb3VibGUgZXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4dFVwZGF0
ZU1vcmVSZXNvdXJjZXMoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVkQWN0aW9uQmVnaW5GcmFtZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgQ0NTY2hlZHVsZWRB
Y3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcElmUG9zc2li
bGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBS
ZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBGb3JjZWQoKSBPVkVSUklERTsKQEAgLTk3
LDYgKzk5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDQ1RocmVhZFByb3h5
KENDTGF5ZXJUcmVlSG9zdCopOwogICAgIGZyaWVuZCBjbGFzcyBDQ1RocmVhZFByb3h5Q29udGV4
dFJlY3JlYXRpb25UaW1lcjsKKyAgICBmcmllbmQgY2xhc3MgQ0NUaHJlYWRQcm94eVRleHR1cmVV
cGRhdGVUaW1lcjsKIAogICAgIC8vIFNldCBvbiBpbXBsIHRocmVhZCwgcmVhZCBvbiBtYWluIHRo
cmVhZC4KICAgICBzdHJ1Y3QgQmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlIHsKQEAgLTE0NSw2ICsx
NDgsNyBAQCBwcml2YXRlOgogICAgIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQg
c2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJbnRlcm5hbChib29sIGZvcmNlZERyYXcpOwogICAg
IHZvaWQgc2V0Rm9udEF0bGFzT25JbXBsVGhyZWFkKFBhc3NPd25QdHI8Q0NGb250QXRsYXM+KTsK
ICAgICB2b2lkIGZvcmNlU2VyaWFsaXplT25Td2FwQnVmZmVyc09uSW1wbFRocmVhZChDQ0NvbXBs
ZXRpb25FdmVudCopOworICAgIHZvaWQgdGV4dHVyZVVwZGF0ZUNvbXBsZXRlT25JbXBsVGhyZWFk
KCk7CiAKICAgICAvLyBBY2Nlc3NlZCBvbiBtYWluIHRocmVhZCBvbmx5LgogICAgIGJvb2wgbV9h
bmltYXRlUmVxdWVzdGVkOwpAQCAtMTg2LDYgKzE5MCw3IEBAIHByaXZhdGU6CiAgICAgQ0NDb21w
bGV0aW9uRXZlbnQqIG1fdGV4dHVyZUFjcXVpc2l0aW9uQ29tcGxldGlvbkV2ZW50T25JbXBsVGhy
ZWFkOwogCiAgICAgT3duUHRyPENDVGV4dHVyZVVwZGF0ZXI+IG1fY3VycmVudFRleHR1cmVVcGRh
dGVyT25JbXBsVGhyZWFkOworICAgIE93blB0cjxDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0ZVRp
bWVyPiBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlVGltZXI7CiAKICAgICAvLyBTZXQgd2hlbiB0aGUg
bmV4dCBkcmF3IHNob3VsZCBwb3N0IGRpZENvbW1pdEFuZERyYXdGcmFtZSB0byB0aGUgbWFpbiB0
aHJlYWQuCiAgICAgYm9vbCBtX25leHRGcmFtZUlzTmV3bHlDb21taXR0ZWRGcmFtZU9uSW1wbFRo
cmVhZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGltZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUaW1lU291cmNlLmgKaW5kZXggZGNjYjQ3MC4uYzM2NGQ5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaW1l
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaW1lU291cmNlLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRDbGllbnQoQ0NUaW1lU291cmNlQ2xpZW50KikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRBY3RpdmUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhY3RpdmUoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBkb3VibGUgbmV4dFRpY2tUaW1lKCkgY29uc3QgPSAwOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhv
c3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
VGVzdC5jcHAKaW5kZXggZjIzODJiMy4uOWFmYmFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCkBAIC0xODE1LDcgKzE4
MTUsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBDb21wb3NpdG9yRmFrZVdlYkdyYXBoaWNz
Q29udGV4dDNEV2l0aFRleHR1cmVUcmFja2luZyogY29udGV4dCA9IHN0YXRpY19jYXN0PENvbXBv
c2l0b3JGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0RXaXRoVGV4dHVyZVRyYWNraW5nKj4oR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlOjpleHRyYWN0V2ViR3JhcGhpY3NDb250ZXh0M0QoaW1wbC0+Y29u
dGV4dCgpKSk7CiAKLSAgICAgICAgc3dpdGNoIChpbXBsLT5mcmFtZU51bWJlcigpKSB7CisgICAg
ICAgIHN3aXRjaCAoaW1wbC0+c291cmNlRnJhbWVOdW1iZXIoKSkgewogICAgICAgICBjYXNlIDA6
CiAgICAgICAgICAgICAvLyBOdW1iZXIgb2YgdGV4dHVyZXMgc2hvdWxkIGJlIHR3by4KICAgICAg
ICAgICAgIEVYUEVDVF9FUSgyLCBjb250ZXh0LT5udW1UZXh0dXJlcygpKTsKQEAgLTE4ODQsMTQg
KzE4ODQsMTQgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQ29tcG9zaXRvckZha2VXZWJHcmFw
aGljc0NvbnRleHQzRFdpdGhUZXh0dXJlVHJhY2tpbmcqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxD
b21wb3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEV2l0aFRleHR1cmVUcmFja2luZyo+KEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFjdFdlYkdyYXBoaWNzQ29udGV4dDNEKGltcGwt
PmNvbnRleHQoKSkpOwogCi0gICAgICAgIC8vIE51bWJlciBvZiB0ZXh0dXJlcyB1c2VkIGZvciBk
cmF3aW5nIHNob3VsZCB0d28gZXhjZXB0IGZvciBmcmFtZSA0CisgICAgICAgIC8vIE51bWJlciBv
ZiB0ZXh0dXJlcyB1c2VkIGZvciBkcmF3aW5nIHNob3VsZCBiZSB0d28gZXhjZXB0IGZvciBmcmFt
ZSA0CiAgICAgICAgIC8vIHdoZXJlIHRoZSB2aWV3cG9ydCBvbmx5IGNvbnRhaW5zIG9uZSBsYXll
ci4KLSAgICAgICAgaWYgKGltcGwtPmZyYW1lTnVtYmVyKCkgPT0gNCkKKyAgICAgICAgaWYgKGlt
cGwtPnNvdXJjZUZyYW1lTnVtYmVyKCkgPT0gMykKICAgICAgICAgICAgIEVYUEVDVF9FUSgxLCBj
b250ZXh0LT5udW1Vc2VkVGV4dHVyZXMoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIEVY
UEVDVF9FUSgyLCBjb250ZXh0LT5udW1Vc2VkVGV4dHVyZXMoKSk7CiAKLSAgICAgICAgaWYgKGlt
cGwtPmZyYW1lTnVtYmVyKCkgPCA1KSB7CisgICAgICAgIGlmIChpbXBsLT5zb3VyY2VGcmFtZU51
bWJlcigpIDwgNCkgewogICAgICAgICAgICAgY29udGV4dC0+cmVzZXRVc2VkVGV4dHVyZXMoKTsK
ICAgICAgICAgICAgIHBvc3RTZXROZWVkc0FuaW1hdGVBbmRDb21taXRUb01haW5UaHJlYWQoKTsK
ICAgICAgICAgICAgIHBvc3RTZXROZWVkc1JlZHJhd1RvTWFpblRocmVhZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRl
c3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclN0YXRlTWFj
aGluZVRlc3QuY3BwCmluZGV4IDI3MzFjNzYuLmUyMDg4MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRl
c3QuY3BwCkBAIC0yMjMsNiArMjIzLDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRl
c3QsIFRlc3RDb21taXRBZnRlckZhaWxlZERyYXdBbGxvd3NEcmF3SW5TYW1lRnJhbWUKIAogICAg
IC8vIEZpbmlzaCB0aGUgY29tbWl0LgogICAgIHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0ZSgpOwor
ICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQRUNUX0VR
KENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VS
Q0VTLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwogICAgIHN0YXRlLnVwZGF0ZVN0YXRlKENDU2NoZWR1
bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTKTsKICAg
ICBzdGF0ZS5iZWdpblVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZShmYWxzZSk7CkBAIC0yNzQs
NiArMjc1LDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RDb21taXRB
ZnRlckZhaWxlZEFuZFN1Y2Nlc3NmdWxEcmF3RG9lc05vdEEKIAogICAgIC8vIEZpbmlzaCB0aGUg
Y29tbWl0LgogICAgIHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0ZSgpOworICAgIHN0YXRlLnNldENh
blVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBzdGF0ZS5uZXh0
QWN0aW9uKCkpOwogICAgIHN0YXRlLnVwZGF0ZVN0YXRlKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
OjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTKTsKICAgICBzdGF0ZS5iZWdpblVw
ZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZShmYWxzZSk7CkBAIC00ODksNiArNDkxLDcgQEAgVEVT
VChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RVcGRhdGVzX05vUmVkcmF3X09uZVJv
dW5kT2ZVcGRhdGVzKQogICAgIHN0YXRlLnNldENvbW1pdFN0YXRlKENDU2NoZWR1bGVyU3RhdGVN
YWNoaW5lOjpDT01NSVRfU1RBVEVfVVBEQVRJTkdfUkVTT1VSQ0VTKTsKICAgICBzdGF0ZS5zZXRO
ZWVkc1JlZHJhdyhmYWxzZSk7CiAgICAgc3RhdGUuc2V0VXBkYXRlTW9yZVJlc291cmNlc1BlbmRp
bmcoZmFsc2UpOworICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAg
ICAgc3RhdGUuc2V0VmlzaWJsZSh0cnVlKTsKIAogICAgIC8vIFZlcmlmeSB3ZSBiZWdpbiB1cGRh
dGUsIGJvdGggZm9yIHZzeW5jIGFuZCBub3QgdnN5bmMuCkBAIC01MTcsNiArNTIwLDcgQEAgVEVT
VChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RVcGRhdGVzX05vUmVkcmF3X1R3b1Jv
dW5kc09mVXBkYXRlcykKICAgICBzdGF0ZS5zZXRDb21taXRTdGF0ZShDQ1NjaGVkdWxlclN0YXRl
TWFjaGluZTo6Q09NTUlUX1NUQVRFX1VQREFUSU5HX1JFU09VUkNFUyk7CiAgICAgc3RhdGUuc2V0
TmVlZHNSZWRyYXcoZmFsc2UpOwogICAgIHN0YXRlLnNldFVwZGF0ZU1vcmVSZXNvdXJjZXNQZW5k
aW5nKGZhbHNlKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKHRydWUpOwog
ICAgIHN0YXRlLnNldFZpc2libGUodHJ1ZSk7CiAKICAgICAvLyBWZXJpZnkgdGhlIHVwZGF0ZSBi
ZWdpbnMsIGJvdGggZm9yIHZzeW5jIGFuZCBub3QgdnN5bmMuCkBAIC01NzMsNiArNTc3LDcgQEAg
VEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RVcGRhdGVzX1dpdGhSZWRyYXdf
T25lUm91bmRPZlVwZGF0ZXMpCiAgICAgc3RhdGUuc2V0Q29tbWl0U3RhdGUoQ0NTY2hlZHVsZXJT
dGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9VUERBVElOR19SRVNPVVJDRVMpOwogICAgIHN0YXRl
LnNldE5lZWRzUmVkcmF3KHRydWUpOwogICAgIHN0YXRlLnNldFVwZGF0ZU1vcmVSZXNvdXJjZXNQ
ZW5kaW5nKGZhbHNlKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKHRydWUp
OwogICAgIHN0YXRlLnNldFZpc2libGUodHJ1ZSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVy
U3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBzdGF0ZS5u
ZXh0QWN0aW9uKCkpOwogCkBAIC02MzMsNiArNjM4LDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRl
TWFjaGluZVRlc3QsIFRlc3RTZXROZWVkc0NvbW1pdElzTm90TG9zdCkKIAogICAgIC8vIExldCB0
aGUgZnJhbWUgZmluaXNoLgogICAgIHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0ZSgpOworICAgIHN0
YXRlLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQRUNUX0VRKENDU2No
ZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfVVBEQVRJTkdfUkVTT1VSQ0VTLCBzdGF0
ZS5jb21taXRTdGF0ZSgpKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6
OkFDVElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5leHRBY3Rpb24oKSk7
CiAgICAgc3RhdGUudXBkYXRlU3RhdGUoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9C
RUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVMpOwpAQCAtNjc2LDYgKzY4Miw3IEBAIFRFU1QoQ0NT
Y2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0RnVsbEN5Y2xlKQogCiAgICAgLy8gVGVsbCB0
aGUgc2NoZWR1bGVyIHRoZSBmcmFtZSBmaW5pc2hlZC4KICAgICBzdGF0ZS5iZWdpbkZyYW1lQ29t
cGxldGUoKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKHRydWUpOwogICAg
IEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRFX1VQREFUSU5H
X1JFU09VUkNFUywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1
bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBzdGF0
ZS5uZXh0QWN0aW9uKCkpOwogCkBAIC03MjgsNiArNzM1LDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0
YXRlTWFjaGluZVRlc3QsIFRlc3RGdWxsQ3ljbGVXaXRoQ29tbWl0UmVxdWVzdEluYmV0d2VlbikK
IAogICAgIC8vIFRlbGwgdGhlIHNjaGVkdWxlciB0aGUgZnJhbWUgZmluaXNoZWQuCiAgICAgc3Rh
dGUuYmVnaW5GcmFtZUNvbXBsZXRlKCk7CisgICAgc3RhdGUuc2V0Q2FuVXBkYXRlTW9yZVJlc291
cmNlcyh0cnVlKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkNPTU1J
VF9TVEFURV9VUERBVElOR19SRVNPVVJDRVMsIHN0YXRlLmNvbW1pdFN0YXRlKCkpOwogICAgIEVY
UEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lOX1VQREFURV9NT1JF
X1JFU09VUkNFUywgc3RhdGUubmV4dEFjdGlvbigpKTsKIApAQCAtNzg2LDYgKzc5NCw3IEBAIFRF
U1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0R29lc0ludmlzaWJsZU1pZENvbW1p
dCkKIAogICAgIC8vIFRlbGwgdGhlIHNjaGVkdWxlciB0aGUgZnJhbWUgZmluaXNoZWQKICAgICBz
dGF0ZS5iZWdpbkZyYW1lQ29tcGxldGUoKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVz
b3VyY2VzKHRydWUpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09N
TUlUX1NUQVRFX1VQREFUSU5HX1JFU09VUkNFUywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CiAgICAg
RVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01P
UkVfUkVTT1VSQ0VTLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwogCkBAIC04OTYsNiArOTA1LDcgQEAg
VEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RDb250ZXh0TG9zdFdoaWxlQ29t
bWl0SW5Qcm9ncmVzcykKIAogICAgIC8vIEZpbmlzaCB0aGUgZnJhbWUsIHVwZGF0ZSByZXNvdXJj
ZXMsIGFuZCBjb21taXQuCiAgICAgc3RhdGUuYmVnaW5GcmFtZUNvbXBsZXRlKCk7CisgICAgc3Rh
dGUuc2V0Q2FuVXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hl
ZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVMsIHN0
YXRlLm5leHRBY3Rpb24oKSk7CiAgICAgc3RhdGUudXBkYXRlU3RhdGUoc3RhdGUubmV4dEFjdGlv
bigpKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9OT05F
LCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwpAQCAtOTQxLDYgKzk1MSw3IEBAIFRFU1QoQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0Q29udGV4dExvc3RXaGlsZUNvbW1pdEluUHJvZ3Jlc3NB
bmRBbm90aGVyCiAKICAgICAvLyBGaW5pc2ggdGhlIGZyYW1lLCB1cGRhdGUgcmVzb3VyY2VzLCBh
bmQgY29tbWl0LgogICAgIHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0ZSgpOworICAgIHN0YXRlLnNl
dENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVy
U3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBzdGF0ZS5u
ZXh0QWN0aW9uKCkpOwogICAgIHN0YXRlLnVwZGF0ZVN0YXRlKHN0YXRlLm5leHRBY3Rpb24oKSk7
CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fTk9ORSwgc3Rh
dGUubmV4dEFjdGlvbigpKTsKQEAgLTEwMTgsNiArMTAyOSw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJT
dGF0ZU1hY2hpbmVUZXN0LCBUZXN0QmVnaW5GcmFtZVdoZW5Db21taXRJblByb2dyZXNzKQogICAg
IHN0YXRlLnNldE5lZWRzRm9yY2VkQ29tbWl0KHRydWUpOwogCiAgICAgc3RhdGUuYmVnaW5GcmFt
ZUNvbXBsZXRlKCk7CisgICAgc3RhdGUuc2V0Q2FuVXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsK
ICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERB
VEVfTU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5leHRBY3Rpb24oKSk7CiAgICAgc3RhdGUudXBkYXRl
U3RhdGUoc3RhdGUubmV4dEFjdGlvbigpKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0
ZU1hY2hpbmU6OkFDVElPTl9OT05FLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwpAQCAtMTA0MSw0ICsx
MDUzLDUzIEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0QmVnaW5GcmFt
ZVdoZW5Db250ZXh0TG9zdCkKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6
OkFDVElPTl9CRUdJTl9GUkFNRSwgc3RhdGUubmV4dEFjdGlvbigpKTsKIH0KIAorVEVTVChDQ1Nj
aGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKQorewor
ICAgIFN0YXRlTWFjaGluZSBzdGF0ZTsKKyAgICBzdGF0ZS5zZXRWaXNpYmxlKHRydWUpOworICAg
IHN0YXRlLnNldE5lZWRzUmVkcmF3KHRydWUpOworICAgIHN0YXRlLnNldENhbkJlZ2luRnJhbWUo
dHJ1ZSk7CisKKyAgICAvLyBTdGFydCBjbGVhbiBhbmQgc2V0IGNvbW1pdC4KKyAgICBzdGF0ZS5z
ZXROZWVkc0NvbW1pdCh0cnVlKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hp
bmU6OkFDVElPTl9CRUdJTl9GUkFNRSwgc3RhdGUubmV4dEFjdGlvbigpKTsKKworICAgIC8vIEJl
Z2luIHRoZSBmcmFtZS4KKyAgICBzdGF0ZS51cGRhdGVTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFj
aGluZTo6QUNUSU9OX0JFR0lOX0ZSQU1FKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0
ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9GUkFNRV9JTl9QUk9HUkVTUywgc3RhdGUuY29tbWl0U3Rh
dGUoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHN0YXRlLm5lZWRzQ29tbWl0KCkpOworICAgIEVYUEVD
VF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX05PTkUsIHN0YXRlLm5leHRBY3Rp
b24oKSk7CisKKyAgICAvLyBUZWxsIHRoZSBzY2hlZHVsZXIgdGhlIGZyYW1lIGZpbmlzaGVkLgor
ICAgIHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0ZSgpOworICAgIHN0YXRlLnNldENhblVwZGF0ZU1v
cmVSZXNvdXJjZXModHJ1ZSk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
OjpDT01NSVRfU1RBVEVfVVBEQVRJTkdfUkVTT1VSQ0VTLCBzdGF0ZS5jb21taXRTdGF0ZSgpKTsK
KyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERB
VEVfTU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5leHRBY3Rpb24oKSk7CisKKyAgICAvLyBUZWxsIHRo
ZSBzY2hlZHVsZXIgdGhlIHVwZGF0ZSBiZWdhbiBhbmQgZmluaXNoZWQuCisgICAgc3RhdGUudXBk
YXRlU3RhdGUoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9S
RV9SRVNPVVJDRVMpOworICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXMoZmFsc2Up
OworICAgIHN0YXRlLmJlZ2luVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKHRydWUpOworICAg
IEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRFX1VQREFUSU5H
X1JFU09VUkNFUywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1
bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fTk9ORSwgc3RhdGUubmV4dEFjdGlvbigpKTsKKworICAg
IC8vIEF0IHZzeW5jLCBkcmF3LgorICAgIHN0YXRlLmRpZEVudGVyVlN5bmMoKTsKKyAgICBFWFBF
Q1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9EUkFXX0lGX1BPU1NJQkxFLCBz
dGF0ZS5uZXh0QWN0aW9uKCkpOworICAgIHN0YXRlLnVwZGF0ZVN0YXRlKENDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lOjpBQ1RJT05fRFJBV19JRl9QT1NTSUJMRSk7CisgICAgc3RhdGUuZGlkRHJhd0lm
UG9zc2libGVDb21wbGV0ZWQodHJ1ZSk7CisgICAgc3RhdGUuZGlkTGVhdmVWU3luYygpOworCisg
ICAgLy8gVGVsbCB0aGUgc2NoZWR1bGVyIHRoYXQgd2UgY2FuIHVwZGF0ZSBtb3JlIHJlc291cmNl
cy4KKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKHRydWUpOworICAgIEVYUEVD
VF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRFX1VQREFUSU5HX1JFU09V
UkNFUywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBzdGF0ZS5uZXh0
QWN0aW9uKCkpOworCisgICAgLy8gVGVsbCB0aGUgc2NoZWR1bGVyIHRoZSBzZWNvbmQgdXBkYXRl
IGJlZ2FuIGFuZCBmaW5pc2hlZAorICAgIHN0YXRlLnVwZGF0ZVN0YXRlKENDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTKTsKKyAgICBzdGF0
ZS5iZWdpblVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZShmYWxzZSk7CisgICAgRVhQRUNUX0VR
KENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfUkVBRFlfVE9fQ09NTUlULCBz
dGF0ZS5jb21taXRTdGF0ZSgpKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hp
bmU6OkFDVElPTl9DT01NSVQsIHN0YXRlLm5leHRBY3Rpb24oKSk7Cit9CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0LmNwcAppbmRleCA0MTI1
MDg4Li5jNDM1MDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
U2NoZWR1bGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Nj
aGVkdWxlclRlc3QuY3BwCkBAIC00OCwxMCArNDgsMTIgQEAgcHVibGljOgogICAgICAgICBtX2Ry
YXdXaWxsSGFwcGVuID0gdHJ1ZTsKICAgICAgICAgbV9zd2FwV2lsbEhhcHBlbklmRHJhd0hhcHBl
bnMgPSB0cnVlOwogICAgICAgICBtX251bURyYXdzID0gMDsKKyAgICAgICAgbV9leHBlY3RlZFNl
Y29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJlc291cmNlcyA9IDA7CiAgICAgfQogCiAgICAg
dm9pZCBzZXRIYXNNb3JlUmVzb3VyY2VVcGRhdGVzKGJvb2wgYikgeyBtX2hhc01vcmVSZXNvdXJj
ZVVwZGF0ZXMgPSBiOyB9CiAgICAgdm9pZCBzZXRDYW5EcmF3KGJvb2wgYikgeyBtX2NhbkRyYXcg
PSBiOyB9CisgICAgdm9pZCBzZXRFeHBlY3RlZFNlY29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9y
ZVJlc291cmNlcyhkb3VibGUgdCkgeyBtX2V4cGVjdGVkU2Vjb25kc1RvUGVyZm9ybU5leHRVcGRh
dGVNb3JlUmVzb3VyY2VzID0gdDsgfQogCiAgICAgaW50IG51bURyYXdzKCkgY29uc3QgeyByZXR1
cm4gbV9udW1EcmF3czsgfQogICAgIGludCBudW1BY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8aW50PihtX2FjdGlvbnMuc2l6ZSgpKTsgfQpAQCAtNjcsNiArNjksNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuRHJhdygpIE9WRVJSSURFIHsgcmV0dXJuIG1fY2Fu
RHJhdzsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gbV9oYXNNb3JlUmVzb3VyY2VVcGRhdGVzOyB9CisgICAgdmlydHVh
bCBkb3VibGUgZXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXMo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2V4cGVjdGVkU2Vjb25kc1RvUGVyZm9ybU5leHRV
cGRhdGVNb3JlUmVzb3VyY2VzOyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJl
Z2luRnJhbWUoKSBPVkVSUklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFjdGlv
bkJlZ2luRnJhbWUiKTsgfQogICAgIHZpcnR1YWwgQ0NTY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dh
cFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcElmUG9zc2libGUoKSBPVkVSUklERQog
ICAgIHsKQEAgLTk0LDYgKzk3LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9jYW5EcmF3Owog
ICAgIGJvb2wgbV9kcmF3V2lsbEhhcHBlbjsKICAgICBib29sIG1fc3dhcFdpbGxIYXBwZW5JZkRy
YXdIYXBwZW5zOworICAgIGRvdWJsZSBtX2V4cGVjdGVkU2Vjb25kc1RvUGVyZm9ybU5leHRVcGRh
dGVNb3JlUmVzb3VyY2VzOwogICAgIGludCBtX251bURyYXdzOwogICAgIHN0ZDo6dmVjdG9yPGNv
bnN0IGNoYXIqPiBtX2FjdGlvbnM7CiB9OwpAQCAtMTE0LDEyICsxMTgsMTAgQEAgVEVTVChDQ1Nj
aGVkdWxlclRlc3QsIFJlcXVlc3RDb21taXQpCiAgICAgY2xpZW50LnJlc2V0KCk7CiAKICAgICAv
LyBTaW5jZSwgaGFzTW9yZVJlc291cmNlVXBkYXRlcyBpcyBzZXQgdG8gZmFsc2UsCi0gICAgLy8g
YmVnaW5GcmFtZUNvbXBsZXRlIHNob3VsZCB1cGRhdGVNb3JlUmVzb3VyY2VzLCB0aGVuCi0gICAg
Ly8gY29tbWl0CisgICAgLy8gYmVnaW5GcmFtZUNvbXBsZXRlIHNob3VsZCBqdXN0IGNvbW1pdAog
ICAgIHNjaGVkdWxlci0+YmVnaW5GcmFtZUNvbXBsZXRlKCk7Ci0gICAgRVhQRUNUX0VRKDIsIGNs
aWVudC5udW1BY3Rpb25zKCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uVXBk
YXRlTW9yZVJlc291cmNlcyIsIGNsaWVudC5hY3Rpb24oMCkpOwotICAgIEVYUEVDVF9TVFJFUSgi
c2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigxKSk7CisgICAgRVhQRUNUX0VR
KDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0
aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigwKSk7CiAgICAgRVhQRUNUX1RSVUUodGltZVNvdXJj
ZS0+YWN0aXZlKCkpOwogICAgIGNsaWVudC5yZXNldCgpOwogCkBAIC0xNTIsMTIgKzE1NCwxMCBA
QCBURVNUKENDU2NoZWR1bGVyVGVzdCwgUmVxdWVzdENvbW1pdEFmdGVyQmVnaW5GcmFtZSkKICAg
ICBzY2hlZHVsZXItPnNldE5lZWRzQ29tbWl0KCk7CiAKICAgICAvLyBTaW5jZSwgaGFzTW9yZVJl
c291cmNlVXBkYXRlcyBpcyBzZXQgdG8gZmFsc2UsIGFuZCBhbm90aGVyIGNvbW1pdCBpcwotICAg
IC8vIG5lZWRlZCwgYmVnaW5GcmFtZUNvbXBsZXRlIHNob3VsZCB1cGRhdGVNb3JlUmVzb3VyY2Vz
LCB0aGVuIGNvbW1pdCwgdGhlbgotICAgIC8vIGJlZ2luIGFub3RoZXIgZnJhbWUuCisgICAgLy8g
bmVlZGVkLCBiZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxkIGNvbW1pdCwgdGhlbiBiZWdpbiBhbm90
aGVyIGZyYW1lLgogICAgIHNjaGVkdWxlci0+YmVnaW5GcmFtZUNvbXBsZXRlKCk7Ci0gICAgRVhQ
RUNUX0VRKDIsIGNsaWVudC5udW1BY3Rpb25zKCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1
bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIGNsaWVudC5hY3Rpb24oMCkpOwotICAgIEVY
UEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigxKSk7Cisg
ICAgRVhQRUNUX0VRKDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIEVYUEVDVF9TVFJFUSgi
c2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigwKSk7CiAgICAgY2xpZW50LnJl
c2V0KCk7CiAKICAgICAvLyBUaWNrIHNob3VsZCBkcmF3IGJ1dCB0aGVuIGJlZ2luIGFub3RoZXIg
ZnJhbWUuCkBAIC00OTMsNCArNDkzLDY5IEBAIFRFU1QoQ0NTY2hlZHVsZXJUZXN0LCBOb0JlZ2lu
RnJhbWVXaGVuU3dhcEZhaWxzRHVyaW5nRm9yY2VkQ29tbWl0KQogICAgIEVYUEVDVF9FUSgwLCBj
b250cm9sbGVyUHRyLT5udW1GcmFtZXNQZW5kaW5nKCkpOwogfQogCitURVNUKENDU2NoZWR1bGVy
VGVzdCwgVXBkYXRlTW9yZVJlc291cmNlcykKK3sKKyAgICBGYWtlQ0NTY2hlZHVsZXJDbGllbnQg
Y2xpZW50OworICAgIFJlZlB0cjxGYWtlQ0NUaW1lU291cmNlPiB0aW1lU291cmNlID0gYWRvcHRS
ZWYobmV3IEZha2VDQ1RpbWVTb3VyY2UoKSk7CisgICAgT3duUHRyPENDU2NoZWR1bGVyPiBzY2hl
ZHVsZXIgPSBDQ1NjaGVkdWxlcjo6Y3JlYXRlKCZjbGllbnQsIGFkb3B0UHRyKG5ldyBDQ0ZyYW1l
UmF0ZUNvbnRyb2xsZXIodGltZVNvdXJjZSkpKTsKKyAgICBzY2hlZHVsZXItPnNldFZpc2libGUo
dHJ1ZSk7CisgICAgc2NoZWR1bGVyLT5zZXRDYW5CZWdpbkZyYW1lKHRydWUpOworCisgICAgLy8g
U2V0TmVlZHNDb21taXQgc2hvdWxkIGJlZ2luIHRoZSBmcmFtZS4KKyAgICBzY2hlZHVsZXItPnNl
dE5lZWRzQ29tbWl0KCk7CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOwor
ICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSIsIGNsaWVudC5hY3Rp
b24oMCkpOworICAgIGNsaWVudC5yZXNldCgpOworCisgICAgLy8gU2luY2UsIGhhc01vcmVSZXNv
dXJjZVVwZGF0ZXMgaXMgc2V0IHRvIHRydWUsIGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQKKyAg
ICAvLyB1cGRhdGVNb3JlUmVzb3VyY2VzLgorICAgIGNsaWVudC5zZXRIYXNNb3JlUmVzb3VyY2VV
cGRhdGVzKHRydWUpOworICAgIHNjaGVkdWxlci0+YmVnaW5GcmFtZUNvbXBsZXRlKCk7CisgICAg
RVhQRUNUX0VRKDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIEVYUEVDVF9TVFJFUSgic2No
ZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIGNsaWVudC5hY3Rpb24oMCkpOworICAg
IGNsaWVudC5yZXNldCgpOworCisgICAgY2xpZW50LnNldEhhc01vcmVSZXNvdXJjZVVwZGF0ZXMo
dHJ1ZSk7CisgICAgc2NoZWR1bGVyLT5kaWRVcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoKTsK
KyAgICBFWFBFQ1RfRVEoMSwgY2xpZW50Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQRUNUX1NUUkVR
KCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIiwgY2xpZW50LmFjdGlvbigwKSk7
CisgICAgY2xpZW50LnJlc2V0KCk7CisKKyAgICAvLyBTaW5jZSwgU2V0TmVlZFJlZHJhdyBpcyBz
ZXQgdG8gdHJ1ZSwgcmVzb3VyY2UgdXBkYXRlcyBzaG91bGQgYmUKKyAgICAvLyBhdm9pZGVkIGFz
IHdlIGdldCBjbG9zZSB0byB0aGUgbmV4dCB0aWNrIHRpbWUuCisgICAgc2NoZWR1bGVyLT5zZXRO
ZWVkc1JlZHJhdygpOworICAgIEVYUEVDVF9UUlVFKHNjaGVkdWxlci0+cmVkcmF3UGVuZGluZygp
KTsKKyAgICBFWFBFQ1RfVFJVRSh0aW1lU291cmNlLT5hY3RpdmUoKSk7CisgICAgRVhQRUNUX0VR
KDAsIGNsaWVudC5udW1EcmF3cygpKTsKKworICAgIC8vIFNpbmNlLCBleHBlY3RlZFNlY29uZHNU
b1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJlc291cmNlcyBpcyA1IHNlY29uZHMgYW5kCisgICAgLy8g
bmV4dFRpY2tUaW1lIGlzIDEgc2Vjb25kIGF3YXksIGRpZFVwZGF0ZU1vcmVSZXNvdXJjZXNDb21w
bGV0ZSBzaG91bGQKKyAgICAvLyBub3QgYmVnaW4gYW5vdGhlciB1cGRhdGUuCisgICAgY2xpZW50
LnNldEhhc01vcmVSZXNvdXJjZVVwZGF0ZXModHJ1ZSk7CisgICAgY2xpZW50LnNldEV4cGVjdGVk
U2Vjb25kc1RvUGVyZm9ybU5leHRVcGRhdGVNb3JlUmVzb3VyY2VzKDUpOworICAgIHRpbWVTb3Vy
Y2UtPnNldE5leHRUaWNrVGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSArIDEpOwor
ICAgIHNjaGVkdWxlci0+ZGlkVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKCk7CisgICAgRVhQ
RUNUX0VRKDAsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIGNsaWVudC5yZXNldCgpOworCisg
ICAgLy8gU2luY2UsIGV4cGVjdGVkU2Vjb25kc1RvUGVyZm9ybU5leHRVcGRhdGVNb3JlUmVzb3Vy
Y2VzIGlzIDUgc2Vjb25kcyBhbmQKKyAgICAvLyBuZXh0VGlja1RpbWUgaXMgMTAgc2Vjb25kcyBh
d2F5LCBkaWRVcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUgc2hvdWxkCisgICAgLy8gYmVnaW4g
YW5vdGhlciB1cGRhdGUuCisgICAgY2xpZW50LnNldEhhc01vcmVSZXNvdXJjZVVwZGF0ZXModHJ1
ZSk7CisgICAgY2xpZW50LnNldEV4cGVjdGVkU2Vjb25kc1RvUGVyZm9ybU5leHRVcGRhdGVNb3Jl
UmVzb3VyY2VzKDUpOworICAgIHRpbWVTb3VyY2UtPnNldE5leHRUaWNrVGltZShtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSArIDEwKTsKKyAgICBzY2hlZHVsZXItPmRpZFVwZGF0ZU1vcmVS
ZXNvdXJjZXNDb21wbGV0ZSgpOworICAgIEVYUEVDVF9FUSgxLCBjbGllbnQubnVtQWN0aW9ucygp
KTsKKyAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMi
LCBjbGllbnQuYWN0aW9uKDApKTsKKyAgICBjbGllbnQucmVzZXQoKTsKKworICAgIC8vIFNpbmNl
LCBoYXNNb3JlUmVzb3VyY2VVcGRhdGVzIGlzIHNldCB0byBmYWxzZSwKKyAgICAvLyBkaWRVcGRh
dGVNb3JlUmVzb3VyY2VzQ29tcGxldGUgc2hvdWxkIGNvbW1pdC4KKyAgICBjbGllbnQuc2V0SGFz
TW9yZVJlc291cmNlVXBkYXRlcyhmYWxzZSk7CisgICAgc2NoZWR1bGVyLT5kaWRVcGRhdGVNb3Jl
UmVzb3VyY2VzQ29tcGxldGUoKTsKKyAgICBFWFBFQ1RfRVEoMSwgY2xpZW50Lm51bUFjdGlvbnMo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25Db21taXQiLCBjbGllbnQuYWN0
aW9uKDApKTsKKyAgICBjbGllbnQucmVzZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3RDb21tb24uaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmgKaW5kZXggNjI1N2Vj
OC4uZjJlYzRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Nj
aGVkdWxlclRlc3RDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
U2NoZWR1bGVyVGVzdENvbW1vbi5oCkBAIC04Niw2ICs4Niw3IEBAIGNsYXNzIEZha2VDQ1RpbWVT
b3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6Q0NUaW1lU291cmNlIHsKIHB1YmxpYzoKICAgICBGYWtl
Q0NUaW1lU291cmNlKCkKICAgICAgICAgOiBtX2FjdGl2ZShmYWxzZSkKKyAgICAgICAgLCBtX25l
eHRUaWNrVGltZSgwKQogICAgICAgICAsIG1fY2xpZW50KDApIHsgfQogCiAgICAgdmlydHVhbCB+
RmFrZUNDVGltZVNvdXJjZSgpIHsgfQpAQCAtOTMsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldENsaWVudChXZWJDb3JlOjpDQ1RpbWVTb3VyY2VDbGllbnQqIGNsaWVudCkg
T1ZFUlJJREUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3Rp
dmUoYm9vbCBiKSBPVkVSUklERSB7IG1fYWN0aXZlID0gYjsgfQogICAgIHZpcnR1YWwgYm9vbCBh
Y3RpdmUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2FjdGl2ZTsgfQorICAgIHZpcnR1YWwg
ZG91YmxlIG5leHRUaWNrVGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbmV4dFRpY2tU
aW1lOyB9CiAKICAgICB2b2lkIHRpY2soKQogICAgIHsKQEAgLTEwMSw4ICsxMDMsMTEgQEAgcHVi
bGljOgogICAgICAgICAgICAgbV9jbGllbnQtPm9uVGltZXJUaWNrKCk7CiAgICAgfQogCisgICAg
dm9pZCBzZXROZXh0VGlja1RpbWUoZG91YmxlIG5leHRUaWNrVGltZSkgeyBtX25leHRUaWNrVGlt
ZSA9IG5leHRUaWNrVGltZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2FjdGl2ZTsKKyAg
ICBkb3VibGUgbV9uZXh0VGlja1RpbWU7CiAgICAgV2ViQ29yZTo6Q0NUaW1lU291cmNlQ2xpZW50
KiBtX2NsaWVudDsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140600</attachid>
            <date>2012-05-07 15:11:12 -0700</date>
            <delta_ts>2012-05-07 17:31:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84281-20120507181111.patch</filename>
            <type>text/plain</type>
            <size>37229</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM1NDllOWIyYmNmNTUx
YTcxOGU0YWJjMmVlOWZlMjBmZGEzNzQyOC4uOGZkYzY2ZWExMTBmOGJhYzljYWRhYTlmYzk2ZmRi
NTIzMTI4NGNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTA1LTA3ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBT
Y2hlZHVsZSB0ZXh0dXJlIHVwbG9hZHMgYmFzZWQgb24gaGFyZC1jb2RlZCB0aW1lciBhbmQgdnN5
bmMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJv
dmUgaW50ZXJhY3Rpb24gYmV0d2VlbiB2c3luYyBhbmQgdGV4dHVyZSB1cGxvYWRzIGJ5IHBlcmZv
cm1pbmcKKyAgICAgICAgdXBsb2FkcyBpbiBzbWFsbGVyIGJhdGNoZXMgYW5kIHVzZSBhIGhhcmQt
Y29kZWQgdGltZXIgdG8gZW11bGF0ZQorICAgICAgICB1cGxvYWQgY29tcGxldGlvbi4gVGhpcyBn
cmVhdGx5IHJlZHVjZXMgdGhlIGNoYW5jZSBvZiB0aGUgY29tcG9zaXRvcgorICAgICAgICBtaXNz
aW5nIGEgdnN5bmMgZHVlIHRvIGJlaW5nIGJ1c3kgd2l0aCB0ZXh0dXJlIHVwbG9hZHMuCisKKyAg
ICAgICAgVW5pdCB0ZXN0czogQ0NTY2hlZHVsZXJUZXN0LlVwZGF0ZU1vcmVSZXNvdXJjZXMKKyAg
ICAgICAgICAgICAgICAgICAgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LlRlc3RDYW5VcGRh
dGVNb3JlUmVzb3VyY2VzCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDRGVsYXlC
YXNlZFRpbWVTb3VyY2U6Om5leHRUaWNrVGltZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29udHJvbGxlcjo6
bmV4dFRpY2tUaW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oOgorICAgICAgICAoQ0NG
cmFtZVJhdGVDb250cm9sbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1NjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1NjaGVkdWxlcjo6ZGlk
VXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDU2NoZWR1
bGVyOjp2c3luY1RpY2spOgorICAgICAgICAoV2ViQ29yZTo6Q0NTY2hlZHVsZXI6Om5leHRBY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NTY2hlZHVsZXI6OnByb2Nlc3NTY2hlZHVsZWRBY3Rp
b25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxl
ci5oOgorICAgICAgICAoQ0NTY2hlZHVsZXJDbGllbnQpOgorICAgICAgICAoQ0NTY2hlZHVsZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
OjpDQ1NjaGVkdWxlclN0YXRlTWFjaGluZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1NjaGVkdWxl
clN0YXRlTWFjaGluZTo6c2hvdWxkVXBkYXRlTW9yZVJlc291cmNlcyk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpuZXh0QWN0
aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxl
clN0YXRlTWFjaGluZS5oOgorICAgICAgICAoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OnNldENhblVwZGF0ZU1vcmVS
ZXNvdXJjZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuY3BwOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKENDVGhyZWFkUHJveHlUZXh0
dXJlVXBkYXRlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eVRleHR1cmVV
cGRhdGVUaW1lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHlUZXh0
dXJlVXBkYXRlVGltZXI6Om9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVh
ZFByb3h5VGV4dHVyZVVwZGF0ZVRpbWVyOjpDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0ZVRpbWVy
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6
ZXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291
cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjptYXhQYXJ0aWFsVGV4dHVy
ZVVwZGF0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6dGV4dHVyZVVwZGF0
ZUNvbXBsZXRlT25JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEND
VGhyZWFkUHJveHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGltZVNvdXJjZS5oOgorICAgICAgICAoQ0NUaW1lU291cmNlKToKKwogMjAxMi0wNS0wNyAgU2hl
emFuIEJhaWcgIDxzaGV6YmFpZy53a0BnbWFpbC5jb20+CiAKICAgICAgICAgU2VsZWN0aW9uIEJh
Y2tncm91bmQgQ29sb3IgRXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMzc0Y2Zi
OTk0YmU1NTlkMDE3OWY0ZDhjOTFlMWUxMTJhMDY2OTY3NS4uZjk5ZmUzZWVkOTY3MzdjMTJiY2Yz
NmUwYmVlYzA1MGUxZTkxZjE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsNSAr
MSwyOSBAQAogMjAxMi0wNS0wNyAgRGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3Jn
PgogCisgICAgICAgIFtDaHJvbWl1bV0gU2NoZWR1bGUgdGV4dHVyZSB1cGxvYWRzIGJhc2VkIG9u
IGhhcmQtY29kZWQgdGltZXIgYW5kIHZzeW5jLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwOgorICAg
ICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0QXRvbWljQ29tbWl0V2l0aFBhcnRpYWxVcGRh
dGU6OmNvbW1pdENvbXBsZXRlT25DQ1RocmVhZCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVl
SG9zdFRlc3RBdG9taWNDb21taXRXaXRoUGFydGlhbFVwZGF0ZTo6ZHJhd0xheWVyc09uQ0NUaHJl
YWQpOgorICAgICAgICAqIHRlc3RzL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRl
c3RzL0NDU2NoZWR1bGVyVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXRUZXN0czo6RmFrZUNDU2No
ZWR1bGVyQ2xpZW50OjpyZXNldCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6RmFrZUNDU2NoZWR1
bGVyQ2xpZW50OjpzZXRFeHBlY3RlZFNlY29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJlc291
cmNlcyk6CisgICAgICAgIChGYWtlQ0NTY2hlZHVsZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0
VGVzdHM6OlRFU1QpOgorICAgICAgICAoV2ViS2l0VGVzdHMpOgorICAgICAgICAqIHRlc3RzL0ND
U2NoZWR1bGVyVGVzdENvbW1vbi5oOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkZha2VDQ1RpbWVT
b3VyY2U6OkZha2VDQ1RpbWVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkZha2VDQ1Rp
bWVTb3VyY2U6OnNldE5leHRUaWNrVGltZSk6CisgICAgICAgIChGYWtlQ0NUaW1lU291cmNlKToK
KworMjAxMi0wNS0wNyAgRGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIFtDaHJvbWl1bV0gVXNlIEdMX0NIUk9NSVVNX2NvbW1hbmRfYnVmZmVyX3F1ZXJ5IHRv
IHRocm90dGxlIHRleHR1cmUgdXBsb2Fkcy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgxMDA0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2Vk
VGltZVNvdXJjZS5jcHAKaW5kZXggYjY4OGE3OGEyN2M1Nzk1MWRkOGQ2YmVmZmVlNzY2YzVkMjRm
MjNlNC4uNzA0ZWZmNGJmN2EzZDZjMDRkZWI1Y2QxZDI2NjBmYzhlMDE5ZWJjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJh
c2VkVGltZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKQEAgLTE2MSw0ICsxNjEsMTIg
QEAgdm9pZCBDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpwb3N0TmV4dFRpY2tUYXNrKGRvdWJsZSBu
b3cpCiAgICAgbV90aWNrVGFyZ2V0ID0gbmV3VGlja1RhcmdldDsKIH0KIAorZG91YmxlIENDRGVs
YXlCYXNlZFRpbWVTb3VyY2U6Om5leHRUaWNrVGltZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2hh
c1RpY2tUYXJnZXQpCisgICAgICAgIHJldHVybiBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KTsKKworICAgIHJldHVybiBtX3RpY2tUYXJnZXQ7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RGVsYXlCYXNlZFRpbWVTb3VyY2UuaAppbmRleCA5OTc5NWRiODFjOTZjY2RjZGFmNWMwMmYwMmJj
M2VlYmI2YzY1ZmQwLi42ZjIzZWM3MDM2NjU1NjFkMzFhYTFjMzRhNzRkMGU5YjVlNjk0MmQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0RlbGF5QmFzZWRUaW1lU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5oCkBAIC00Nyw2ICs0Nyw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCBhY3RpdmUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3N0YXRl
ICE9IFNUQVRFX0lOQUNUSVZFOyB9CiAKKyAgICB2aXJ0dWFsIGRvdWJsZSBuZXh0VGlja1RpbWUo
KSBjb25zdCBPVkVSUklERTsKKwogICAgIC8vIENDVGltZXJDbGllbnQgaW1wbGVtZW50YXRpb24u
CiAgICAgdmlydHVhbCB2b2lkIG9uVGltZXJGaXJlZCgpIE9WRVJSSURFOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0
ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcAppbmRleCA4NGE3Y2IzMTBhM2JkNDk2ODM5
MmZhYjIyZDk1NzFjNzVhOGI1N2IyLi41N2Q1YzM3YTZiMDM2ZjFjNGFjMWU5NDE5Y2NmZmZmM2Y5
Zjg0YWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAKQEAg
LTEwNSw0ICsxMDUsOSBAQCB2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6ZGlkQWJvcnRBbGxQ
ZW5kaW5nRnJhbWVzKCkKICAgICBtX251bUZyYW1lc1BlbmRpbmcgPSAwOwogfQogCitkb3VibGUg
Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpuZXh0VGlja1RpbWUoKQoreworICAgIHJldHVybiBtX3Rp
bWVTb3VyY2UtPm5leHRUaWNrVGltZSgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVS
YXRlQ29udHJvbGxlci5oCmluZGV4IDU3MzRkNGFhNmU5Zjc0NjFhNGM2NmM2ZTBhMTg2MGRhMzBk
NDk2NmUuLjdhMWRhZDQzOWFmYjI4YjNmNDM0YjM3ODk2YTJjNjlkOGY0YzI2YzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVS
YXRlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCkBAIC02NCw2ICs2NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRpZEZpbmlzaEZyYW1lKCk7CiAgICAgdm9pZCBkaWRBYm9ydEFsbFBlbmRp
bmdGcmFtZXMoKTsKICAgICB2b2lkIHNldE1heEZyYW1lc1BlbmRpbmcoaW50KTsgLy8gMCBmb3Ig
dW5saW1pdGVkLgorICAgIGRvdWJsZSBuZXh0VGlja1RpbWUoKTsKIAogcHJvdGVjdGVkOgogICAg
IGZyaWVuZCBjbGFzcyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJUaW1lU291cmNlQWRhcHRlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDU2NoZWR1bGVyLmNwcAppbmRleCA4NGI4NDIzNTg4YmM0OGYwM2M5NjY4ZmRkMWNmMWM4
ZGU3M2VkOTc1Li5iNGE2NDFlNGUyZWZmYjE3NjQ0OWUzZWMyNmE1MTNkNjFhNGU4ZjAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Nj
aGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NTY2hlZHVsZXIuY3BwCkBAIC0xMTksMTQgKzExOSwxOSBAQCB2b2lkIENDU2NoZWR1
bGVyOjpkaWRSZWNyZWF0ZUNvbnRleHQoKQogICAgIHByb2Nlc3NTY2hlZHVsZWRBY3Rpb25zKCk7
CiB9CiAKLXZvaWQgQ0NTY2hlZHVsZXI6OnZzeW5jVGljaygpCit2b2lkIENDU2NoZWR1bGVyOjpk
aWRVcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoKQogeworICAgIFRSQUNFX0VWRU5UKCJDQ1Nj
aGVkdWxlcjo6ZGlkVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlIiwgdGhpcywgMCk7CiAgICAg
aWYgKG1fdXBkYXRlTW9yZVJlc291cmNlc1BlbmRpbmcpIHsKICAgICAgICAgbV91cGRhdGVNb3Jl
UmVzb3VyY2VzUGVuZGluZyA9IGZhbHNlOwogICAgICAgICBtX3N0YXRlTWFjaGluZS5iZWdpblVw
ZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZShtX2NsaWVudC0+aGFzTW9yZVJlc291cmNlVXBkYXRl
cygpKTsKICAgICB9Ci0gICAgVFJBQ0VfRVZFTlQoIkNDU2NoZWR1bGVyOjp2c3luY1RpY2siLCB0
aGlzLCAwKTsKKyAgICBwcm9jZXNzU2NoZWR1bGVkQWN0aW9ucygpOworfQogCit2b2lkIENDU2No
ZWR1bGVyOjp2c3luY1RpY2soKQoreworICAgIFRSQUNFX0VWRU5UKCJDQ1NjaGVkdWxlcjo6dnN5
bmNUaWNrIiwgdGhpcywgMCk7CiAgICAgbV9zdGF0ZU1hY2hpbmUuZGlkRW50ZXJWU3luYygpOwog
ICAgIHByb2Nlc3NTY2hlZHVsZWRBY3Rpb25zKCk7CiAgICAgbV9zdGF0ZU1hY2hpbmUuZGlkTGVh
dmVWU3luYygpOwpAQCAtMTM1LDYgKzE0MCwxMiBAQCB2b2lkIENDU2NoZWR1bGVyOjp2c3luY1Rp
Y2soKQogQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFjdGlvbiBDQ1NjaGVkdWxlcjo6bmV4dEFj
dGlvbigpCiB7CiAgICAgbV9zdGF0ZU1hY2hpbmUuc2V0Q2FuRHJhdyhtX2NsaWVudC0+Y2FuRHJh
dygpKTsKKworICAgIGJvb2wgaGFzUmVkcmF3UGVuZGluZyA9IG1fc3RhdGVNYWNoaW5lLnJlZHJh
d1BlbmRpbmcoKTsKKyAgICBjb25zdCBkb3VibGUgc2Vjb25kc09mUGFkZGluZyA9IDAuMDAyOwor
ICAgIGJvb2wgaGFzVGltZVJlbWFpbmluZyA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
IDwgbV9mcmFtZVJhdGVDb250cm9sbGVyLT5uZXh0VGlja1RpbWUoKSAtIG1fY2xpZW50LT5leHBl
Y3RlZFNlY29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJlc291cmNlcygpIC0gc2Vjb25kc09m
UGFkZGluZzsKKyAgICBtX3N0YXRlTWFjaGluZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKCFo
YXNSZWRyYXdQZW5kaW5nIHx8IGhhc1RpbWVSZW1haW5pbmcpOworCiAgICAgcmV0dXJuIG1fc3Rh
dGVNYWNoaW5lLm5leHRBY3Rpb24oKTsKIH0KIApAQCAtMTYwLDE2ICsxNzEsMTEgQEAgdm9pZCBD
Q1NjaGVkdWxlcjo6cHJvY2Vzc1NjaGVkdWxlZEFjdGlvbnMoKQogICAgICAgICAgICAgbV9jbGll
bnQtPnNjaGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01P
UkVfUkVTT1VSQ0VTOgotICAgICAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlZEFjdGlvblVwZGF0
ZU1vcmVSZXNvdXJjZXMoKTsKLSAgICAgICAgICAgIGlmICghbV9jbGllbnQtPmhhc01vcmVSZXNv
dXJjZVVwZGF0ZXMoKSkgewotICAgICAgICAgICAgICAgIC8vIElmIHdlIHdlcmUganVzdCB0b2xk
IHRvIHVwZGF0ZSByZXNvdXJjZXMsIGJ1dCB0aGVyZSBhcmUgbm8KLSAgICAgICAgICAgICAgICAv
LyBtb3JlIHBlbmRpbmcsIHRoZW4gdGVsbCB0aGUgc3RhdGUgbWFjaGluZSB0aGF0IHRoZQotICAg
ICAgICAgICAgICAgIC8vIGJlZ2luVXBkYXRlTW9yZVJlc291cmNlcyBjb21wbGV0ZWQuIElmIG1v
cmUgYXJlIHBlbmRpbmcsCi0gICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSB3aWxsIGFjayB0aGUg
dXBkYXRlIGF0IHRoZSBuZXh0IGRyYXcuCi0gICAgICAgICAgICAgICAgbV91cGRhdGVNb3JlUmVz
b3VyY2VzUGVuZGluZyA9IGZhbHNlOwotICAgICAgICAgICAgICAgIG1fc3RhdGVNYWNoaW5lLmJl
Z2luVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKGZhbHNlKTsKLSAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgaWYgKG1fY2xpZW50LT5oYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkpIHsK
KyAgICAgICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291
cmNlcygpOwogICAgICAgICAgICAgICAgIG1fdXBkYXRlTW9yZVJlc291cmNlc1BlbmRpbmcgPSB0
cnVlOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbV9zdGF0ZU1hY2hpbmUu
YmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoZmFsc2UpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9DT01NSVQ6
CiAgICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVk
dWxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
Y2hlZHVsZXIuaAppbmRleCAwZTY5NzE2NDI0OGNhNmZjZmRiYWUxZDM5NjEwNGJiNWQ2N2ZlNWRl
Li5kZmRlMjBhMjY0YzFhOTQyMmIyYmI2OTMyMWJmMmJkMjU5ZGYyYjQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2No
ZWR1bGVyLmgKQEAgLTU0LDYgKzU0LDcgQEAgY2xhc3MgQ0NTY2hlZHVsZXJDbGllbnQgewogcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5EcmF3KCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBo
YXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIGV4
cGVjdGVkU2Vjb25kc1RvUGVyZm9ybU5leHRVcGRhdGVNb3JlUmVzb3VyY2VzKCkgY29uc3QgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKSA9IDA7CiAg
ICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFj
dGlvbkRyYXdBbmRTd2FwSWZQb3NzaWJsZSgpID0gMDsKQEAgLTEwMSw2ICsxMDIsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaWRMb3NlQ29udGV4dCgpOwogICAgIHZvaWQgZGlkUmVjcmVhdGVDb250
ZXh0KCk7CiAKKyAgICB2b2lkIGRpZFVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZSgpOworCiAg
ICAgYm9vbCBjb21taXRQZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZU1hY2hpbmUuY29t
bWl0UGVuZGluZygpOyB9CiAgICAgYm9vbCByZWRyYXdQZW5kaW5nKCkgY29uc3QgeyByZXR1cm4g
bV9zdGF0ZU1hY2hpbmUucmVkcmF3UGVuZGluZygpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNo
aW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2NoZWR1bGVyU3RhdGVNYWNoaW5lLmNwcAppbmRleCBkYTM3NzliZmViMGYxMDE0YzhiZmI0ZTE2
ZDRkZjE3ZTA4NGU1NTA5Li5iNDIyYmFkNzM0OWEzNjYyOTQ3YTdjOTQwYTNlOWNlMGJkZmQ2YmJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUuY3BwCkBAIC00
Myw2ICs0Myw3IEBAIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDQ1NjaGVkdWxlclN0YXRlTWFj
aGluZSgpCiAgICAgLCBtX2NhbkJlZ2luRnJhbWUoZmFsc2UpCiAgICAgLCBtX2NhbkRyYXcodHJ1
ZSkKICAgICAsIG1fZHJhd0lmUG9zc2libGVGYWlsZWQoZmFsc2UpCisgICAgLCBtX2NhblVwZGF0
ZU1vcmVSZXNvdXJjZXMoZmFsc2UpCiAgICAgLCBtX3RleHR1cmVTdGF0ZShMQVlFUl9URVhUVVJF
X1NUQVRFX1VOTE9DS0VEKQogICAgICwgbV9jb250ZXh0U3RhdGUoQ09OVEVYVF9BQ1RJVkUpCiB7
CkBAIC0xMDUsNiArMTA2LDE1IEBAIGJvb2wgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OnNob3Vs
ZEFjcXVpcmVMYXllclRleHR1cmVzRm9yTWFpblRocmVhZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitib29sIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpzaG91bGRVcGRhdGVNb3Jl
UmVzb3VyY2VzKCkgY29uc3QKK3sKKyAgICBpZiAobV91cGRhdGVNb3JlUmVzb3VyY2VzUGVuZGlu
ZykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghbV9jYW5VcGRhdGVNb3JlUmVzb3Vy
Y2VzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIENDU2No
ZWR1bGVyU3RhdGVNYWNoaW5lOjpBY3Rpb24gQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6Om5leHRB
Y3Rpb24oKSBjb25zdAogewogICAgIGlmIChzaG91bGRBY3F1aXJlTGF5ZXJUZXh0dXJlc0Zvck1h
aW5UaHJlYWQoKSkKQEAgLTEzMyw3ICsxNDMsNyBAQCBDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6
QWN0aW9uIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpuZXh0QWN0aW9uKCkgY29uc3QKICAgICBj
YXNlIENPTU1JVF9TVEFURV9VUERBVElOR19SRVNPVVJDRVM6CiAgICAgICAgIGlmIChzaG91bGRE
cmF3KCkpCiAgICAgICAgICAgICByZXR1cm4gbV9uZWVkc0ZvcmNlZFJlZHJhdyA/IEFDVElPTl9E
UkFXX0ZPUkNFRCA6IEFDVElPTl9EUkFXX0lGX1BPU1NJQkxFOwotICAgICAgICBpZiAoIW1fdXBk
YXRlTW9yZVJlc291cmNlc1BlbmRpbmcpCisgICAgICAgIGlmIChzaG91bGRVcGRhdGVNb3JlUmVz
b3VyY2VzKCkpCiAgICAgICAgICAgICByZXR1cm4gQUNUSU9OX0JFR0lOX1VQREFURV9NT1JFX1JF
U09VUkNFUzsKICAgICAgICAgcmV0dXJuIEFDVElPTl9OT05FOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRl
TWFjaGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUuaAppbmRleCBmM2MyZjYzMGQyNzMxM2NiZmJmNDdmODFh
OTVkNzI1NTE5ZjkzMDM4Li5kMmUwM2YxNGQ5ZDViMzI4Nzk4ZmY2Y2VmZWNlNWQyNzk1YWQ1Zjg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lLmgKQEAgLTEzOCw2
ICsxMzgsOSBAQCBwdWJsaWM6CiAgICAgLy8gd2hlbiBzdWNoIGJlaGF2aW9yIHdvdWxkIGJlIHVu
ZGVzaXJhYmxlLgogICAgIHZvaWQgc2V0Q2FuRHJhdyhib29sIGNhbikgeyBtX2NhbkRyYXcgPSBj
YW47IH0KIAorICAgIC8vIEluZGljYXRlcyB3aGV0aGVyIHVwZGF0aW5nIHJlc291cmNlcyB3b3Vs
ZCwgYXQgdGhpcyB0aW1lLCBtYWtlIHNlbnNlLgorICAgIHZvaWQgc2V0Q2FuVXBkYXRlTW9yZVJl
c291cmNlcyhib29sIGNhbikgeyBtX2NhblVwZGF0ZU1vcmVSZXNvdXJjZXMgPSBjYW47IH0KKwog
ICAgIHZvaWQgZGlkTG9zZUNvbnRleHQoKTsKICAgICB2b2lkIGRpZFJlY3JlYXRlQ29udGV4dCgp
OwogCkBAIC0xNDgsNiArMTUxLDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgc2hvdWxkRHJhdygp
IGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQWNxdWlyZUxheWVyVGV4dHVyZXNGb3JNYWluVGhyZWFk
KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNEcmF3blRoaXNGcmFtZSgpIGNvbnN0OworICAgIGJvb2wg
c2hvdWxkVXBkYXRlTW9yZVJlc291cmNlcygpIGNvbnN0OwogCiAgICAgQ29tbWl0U3RhdGUgbV9j
b21taXRTdGF0ZTsKIApAQCAtMTY0LDYgKzE2OCw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1f
Y2FuQmVnaW5GcmFtZTsKICAgICBib29sIG1fY2FuRHJhdzsKICAgICBib29sIG1fZHJhd0lmUG9z
c2libGVGYWlsZWQ7CisgICAgYm9vbCBtX2NhblVwZGF0ZU1vcmVSZXNvdXJjZXM7CiAgICAgVGV4
dHVyZVN0YXRlIG1fdGV4dHVyZVN0YXRlOwogICAgIENvbnRleHRTdGF0ZSBtX2NvbnRleHRTdGF0
ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IDE1N2ZjMWRmMDg2M2I3YmRi
OTdkYmQ0M2Q1ZDMyMDhkMzVmM2Y1YWEuLmUwMThkZmI4ZmI0MjI5ZDViZWU4Nzg0MTA2YmI1M2Ey
YzAzMjM2YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC00OCw3ICs0OCwxMCBA
QCBuYW1lc3BhY2UgewogCiAvLyBOdW1iZXIgb2YgdGV4dHVyZXMgdG8gdXBkYXRlIHdpdGggZWFj
aCBjYWxsIHRvCiAvLyBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkuCi1zdGF0
aWMgY29uc3Qgc2l6ZV90IHRleHR1cmVVcGRhdGVzUGVyRnJhbWUgPSA0ODsKK3N0YXRpYyBjb25z
dCBzaXplX3QgdGV4dHVyZVVwZGF0ZXNQZXJUaWNrID0gNDsKKworLy8gTWVhc3VyZWQgaW4gc2Vj
b25kcy4KK3N0YXRpYyBjb25zdCBkb3VibGUgdGV4dHVyZVVwZGF0ZVRpY2tSYXRlID0gMC4wMDQ7
CiAKIC8vIE1lYXN1cmVkIGluIHNlY29uZHMuCiBzdGF0aWMgY29uc3QgZG91YmxlIGNvbnRleHRS
ZWNyZWF0aW9uVGlja1JhdGUgPSAwLjAzOwpAQCAtNTQ5LDYgKzU1MiwyNSBAQCB2b2lkIENDVGhy
ZWFkUHJveHk6OmJlZ2luRnJhbWUoKQogICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxl
dGUoKTsKIH0KIAorY2xhc3MgQ0NUaHJlYWRQcm94eVRleHR1cmVVcGRhdGVUaW1lciA6IHB1Ymxp
YyBDQ1RpbWVyLCBDQ1RpbWVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0
cjxDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0ZVRpbWVyPiBjcmVhdGUoQ0NUaHJlYWRQcm94eSog
cHJveHkpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0ZVRp
bWVyKHByb3h5KSk7IH0KKworICAgIHZpcnR1YWwgdm9pZCBvblRpbWVyRmlyZWQoKQorICAgIHsK
KyAgICAgICAgbV9wcm94eS0+dGV4dHVyZVVwZGF0ZUNvbXBsZXRlT25JbXBsVGhyZWFkKCk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IENDVGhyZWFkUHJveHlUZXh0dXJlVXBkYXRl
VGltZXIoQ0NUaHJlYWRQcm94eSogcHJveHkpCisgICAgICAgIDogQ0NUaW1lcihDQ1Byb3h5Ojpp
bXBsVGhyZWFkKCksIHRoaXMpCisgICAgICAgICwgbV9wcm94eShwcm94eSkKKyAgICB7CisgICAg
fQorCisgICAgQ0NUaHJlYWRQcm94eSogbV9wcm94eTsKK307CisKIHZvaWQgQ0NUaHJlYWRQcm94
eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21w
bGV0aW9uKQogewogICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQ29t
cGxldGVPbkltcGxUaHJlYWQiLCB0aGlzLCAwKTsKQEAgLTU3NCw2ICs1OTYsMTEgQEAgYm9vbCBD
Q1RocmVhZFByb3h5OjpoYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkgY29uc3QKICAgICByZXR1cm4g
bV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxUaHJlYWQtPmhhc01vcmVVcGRhdGVzKCk7CiB9
CiAKK2RvdWJsZSBDQ1RocmVhZFByb3h5OjpleHBlY3RlZFNlY29uZHNUb1BlcmZvcm1OZXh0VXBk
YXRlTW9yZVJlc291cmNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRleHR1cmVVcGRhdGVUaWNr
UmF0ZTsKK30KKwogYm9vbCBDQ1RocmVhZFByb3h5OjpjYW5EcmF3KCkKIHsKICAgICBBU1NFUlQo
aXNJbXBsVGhyZWFkKCkpOwpAQCAtNTg1LDggKzYxMiwxMSBAQCBib29sIENDVGhyZWFkUHJveHk6
OmNhbkRyYXcoKQogdm9pZCBDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3Jl
UmVzb3VyY2VzKCkKIHsKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVk
QWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIHRoaXMsIDApOworICAgIGlmICghbV9jdXJyZW50
VGV4dHVyZVVwZGF0ZVRpbWVyKQorICAgICAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlVGltZXIg
PSBDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0ZVRpbWVyOjpjcmVhdGUodGhpcyk7CisgICAgbV9j
dXJyZW50VGV4dHVyZVVwZGF0ZVRpbWVyLT5zdGFydE9uZVNob3QodGV4dHVyZVVwZGF0ZVRpY2tS
YXRlKTsKICAgICBBU1NFUlQobV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxUaHJlYWQpOwot
ICAgIG1fY3VycmVudFRleHR1cmVVcGRhdGVyT25JbXBsVGhyZWFkLT51cGRhdGUobV9sYXllclRy
ZWVIb3N0SW1wbC0+Y29udGV4dCgpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5jb250ZW50c1RleHR1
cmVBbGxvY2F0b3IoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0
dXJlQ29waWVyKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVy
ZVVwbG9hZGVyKCksIHRleHR1cmVVcGRhdGVzUGVyRnJhbWUpOworICAgIG1fY3VycmVudFRleHR1
cmVVcGRhdGVyT25JbXBsVGhyZWFkLT51cGRhdGUobV9sYXllclRyZWVIb3N0SW1wbC0+Y29udGV4
dCgpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5jb250ZW50c1RleHR1cmVBbGxvY2F0b3IoKSwgbV9s
YXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlQ29waWVyKCksIG1fbGF5
ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZVVwbG9hZGVyKCksIHRleHR1
cmVVcGRhdGVzUGVyVGljayk7CiB9CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0
aW9uQ29tbWl0KCkKQEAgLTg1NCw3ICs4ODQsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNldEZ1
bGxSb290TGF5ZXJEYW1hZ2VPbkltcGxUaHJlYWQoKQogCiBzaXplX3QgQ0NUaHJlYWRQcm94eTo6
bWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdGV4dHVyZVVw
ZGF0ZXNQZXJGcmFtZTsKKyAgICByZXR1cm4gdGV4dHVyZVVwZGF0ZXNQZXJUaWNrOwogfQogCiB2
b2lkIENDVGhyZWFkUHJveHk6OnNldEZvbnRBdGxhcyhQYXNzT3duUHRyPENDRm9udEF0bGFzPiBm
b250QXRsYXMpCkBAIC04ODQsNCArOTE0LDExIEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6cmVjcmVh
dGVDb250ZXh0T25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uLCBHCiAg
ICAgY29tcGxldGlvbi0+c2lnbmFsKCk7CiB9CiAKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6dGV4dHVy
ZVVwZGF0ZUNvbXBsZXRlT25JbXBsVGhyZWFkKCkKK3sKKyAgICBBU1NFUlQoaXNJbXBsVGhyZWFk
KCkpOworICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5Ojp0ZXh0dXJlVXBkYXRlQ29tcGxl
dGVPbkltcGxUaHJlYWQiLCB0aGlzLCAwKTsKKyAgICBtX3NjaGVkdWxlck9uSW1wbFRocmVhZC0+
ZGlkVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAppbmRleCAyOTE1YTgxMTllN2ZjNGE2OGUyYTNm
MjI1MDc3ZjI5Zjg5OTdkN2VmLi42MDQ5Y2U0ODFmZDk1YWEwMGM4ZTZjOTI3MzMzZGIyNTJhNzQ5
MzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCkBAIC00Myw2ICs0Myw3IEBAIGNsYXNzIEND
U2NvcGVkVGhyZWFkUHJveHk7CiBjbGFzcyBDQ1RleHR1cmVVcGRhdGVyOwogY2xhc3MgQ0NUaHJl
YWQ7CiBjbGFzcyBDQ1RocmVhZFByb3h5Q29udGV4dFJlY3JlYXRpb25UaW1lcjsKK2NsYXNzIEND
VGhyZWFkUHJveHlUZXh0dXJlVXBkYXRlVGltZXI7CiAKIGNsYXNzIENDVGhyZWFkUHJveHkgOiBw
dWJsaWMgQ0NQcm94eSwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCwgQ0NTY2hlZHVsZXJDbGll
bnQgewogcHVibGljOgpAQCAtODYsNiArODcsNyBAQCBwdWJsaWM6CiAgICAgLy8gQ0NTY2hlZHVs
ZXJDbGllbnQgaW1wbGVtZW50YXRpb24KICAgICB2aXJ0dWFsIGJvb2wgY2FuRHJhdygpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBoYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgZXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4dFVw
ZGF0ZU1vcmVSZXNvdXJjZXMoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgQ0NTY2hlZHVs
ZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcElmUG9z
c2libGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3
YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBGb3JjZWQoKSBPVkVSUklERTsKQEAg
LTk3LDYgKzk5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDQ1RocmVhZFBy
b3h5KENDTGF5ZXJUcmVlSG9zdCopOwogICAgIGZyaWVuZCBjbGFzcyBDQ1RocmVhZFByb3h5Q29u
dGV4dFJlY3JlYXRpb25UaW1lcjsKKyAgICBmcmllbmQgY2xhc3MgQ0NUaHJlYWRQcm94eVRleHR1
cmVVcGRhdGVUaW1lcjsKIAogICAgIC8vIFNldCBvbiBpbXBsIHRocmVhZCwgcmVhZCBvbiBtYWlu
IHRocmVhZC4KICAgICBzdHJ1Y3QgQmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlIHsKQEAgLTE0NSw2
ICsxNDgsNyBAQCBwcml2YXRlOgogICAgIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1
bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJbnRlcm5hbChib29sIGZvcmNlZERyYXcpOwog
ICAgIHZvaWQgc2V0Rm9udEF0bGFzT25JbXBsVGhyZWFkKFBhc3NPd25QdHI8Q0NGb250QXRsYXM+
KTsKICAgICB2b2lkIGZvcmNlU2VyaWFsaXplT25Td2FwQnVmZmVyc09uSW1wbFRocmVhZChDQ0Nv
bXBsZXRpb25FdmVudCopOworICAgIHZvaWQgdGV4dHVyZVVwZGF0ZUNvbXBsZXRlT25JbXBsVGhy
ZWFkKCk7CiAKICAgICAvLyBBY2Nlc3NlZCBvbiBtYWluIHRocmVhZCBvbmx5LgogICAgIGJvb2wg
bV9hbmltYXRlUmVxdWVzdGVkOwpAQCAtMTg2LDYgKzE5MCw3IEBAIHByaXZhdGU6CiAgICAgQ0ND
b21wbGV0aW9uRXZlbnQqIG1fdGV4dHVyZUFjcXVpc2l0aW9uQ29tcGxldGlvbkV2ZW50T25JbXBs
VGhyZWFkOwogCiAgICAgT3duUHRyPENDVGV4dHVyZVVwZGF0ZXI+IG1fY3VycmVudFRleHR1cmVV
cGRhdGVyT25JbXBsVGhyZWFkOworICAgIE93blB0cjxDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0
ZVRpbWVyPiBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlVGltZXI7CiAKICAgICAvLyBTZXQgd2hlbiB0
aGUgbmV4dCBkcmF3IHNob3VsZCBwb3N0IGRpZENvbW1pdEFuZERyYXdGcmFtZSB0byB0aGUgbWFp
biB0aHJlYWQuCiAgICAgYm9vbCBtX25leHRGcmFtZUlzTmV3bHlDb21taXR0ZWRGcmFtZU9uSW1w
bFRocmVhZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGltZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaW1lU291cmNlLmgKaW5kZXggZGNjYjQ3MGE2MzgzZTMwNGRiMTE2
YTViOWRmOTFkZTU2MDY4ZTA4NS4uYzM2NGQ5MmJkMDI4YTIyZmZhOGEyYTg3ZmMxOTMwYjU4ZGVm
OGU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaW1lU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaW1lU291cmNlLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0NUaW1lU291cmNlQ2xpZW50KikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhY3Rp
dmUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgbmV4dFRpY2tUaW1lKCkgY29uc3Qg
PSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NM
YXllclRyZWVIb3N0VGVzdC5jcHAKaW5kZXggZjIzODJiMzU5MDdhZDNkNGVlM2NhM2UyYmMzYjIy
YmI2ZTdlNTczYy4uOWFmYmFkYTc2Mjg3NDJjNzQ3NTEyZTIwOTBmODVlOWQwZjBlYTNiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRl
c3QuY3BwCkBAIC0xODE1LDcgKzE4MTUsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBDb21w
b3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEV2l0aFRleHR1cmVUcmFja2luZyogY29udGV4
dCA9IHN0YXRpY19jYXN0PENvbXBvc2l0b3JGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0RXaXRoVGV4
dHVyZVRyYWNraW5nKj4oR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpleHRyYWN0V2ViR3JhcGhp
Y3NDb250ZXh0M0QoaW1wbC0+Y29udGV4dCgpKSk7CiAKLSAgICAgICAgc3dpdGNoIChpbXBsLT5m
cmFtZU51bWJlcigpKSB7CisgICAgICAgIHN3aXRjaCAoaW1wbC0+c291cmNlRnJhbWVOdW1iZXIo
KSkgewogICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAvLyBOdW1iZXIgb2YgdGV4dHVyZXMg
c2hvdWxkIGJlIHR3by4KICAgICAgICAgICAgIEVYUEVDVF9FUSgyLCBjb250ZXh0LT5udW1UZXh0
dXJlcygpKTsKQEAgLTE4ODQsMTQgKzE4ODQsMTQgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
Q29tcG9zaXRvckZha2VXZWJHcmFwaGljc0NvbnRleHQzRFdpdGhUZXh0dXJlVHJhY2tpbmcqIGNv
bnRleHQgPSBzdGF0aWNfY2FzdDxDb21wb3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEV2l0
aFRleHR1cmVUcmFja2luZyo+KEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFjdFdlYkdy
YXBoaWNzQ29udGV4dDNEKGltcGwtPmNvbnRleHQoKSkpOwogCi0gICAgICAgIC8vIE51bWJlciBv
ZiB0ZXh0dXJlcyB1c2VkIGZvciBkcmF3aW5nIHNob3VsZCB0d28gZXhjZXB0IGZvciBmcmFtZSA0
CisgICAgICAgIC8vIE51bWJlciBvZiB0ZXh0dXJlcyB1c2VkIGZvciBkcmF3aW5nIHNob3VsZCBi
ZSB0d28gZXhjZXB0IGZvciBmcmFtZSA0CiAgICAgICAgIC8vIHdoZXJlIHRoZSB2aWV3cG9ydCBv
bmx5IGNvbnRhaW5zIG9uZSBsYXllci4KLSAgICAgICAgaWYgKGltcGwtPmZyYW1lTnVtYmVyKCkg
PT0gNCkKKyAgICAgICAgaWYgKGltcGwtPnNvdXJjZUZyYW1lTnVtYmVyKCkgPT0gMykKICAgICAg
ICAgICAgIEVYUEVDVF9FUSgxLCBjb250ZXh0LT5udW1Vc2VkVGV4dHVyZXMoKSk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIEVYUEVDVF9FUSgyLCBjb250ZXh0LT5udW1Vc2VkVGV4dHVyZXMo
KSk7CiAKLSAgICAgICAgaWYgKGltcGwtPmZyYW1lTnVtYmVyKCkgPCA1KSB7CisgICAgICAgIGlm
IChpbXBsLT5zb3VyY2VGcmFtZU51bWJlcigpIDwgNCkgewogICAgICAgICAgICAgY29udGV4dC0+
cmVzZXRVc2VkVGV4dHVyZXMoKTsKICAgICAgICAgICAgIHBvc3RTZXROZWVkc0FuaW1hdGVBbmRD
b21taXRUb01haW5UaHJlYWQoKTsKICAgICAgICAgICAgIHBvc3RTZXROZWVkc1JlZHJhd1RvTWFp
blRocmVhZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Nj
aGVkdWxlclN0YXRlTWFjaGluZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QuY3BwCmluZGV4IDI3MzFjNzZmZGUzMTAwZjA2
YmNjOTY4Nzg4NmM3ZWJjN2EyZGYzYmIuLmUyMDg4MDE5OGU4ODAzODVkMGIwMjc0Y2Q0MzY0Y2Jk
ZGFiZDBiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hl
ZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdC5jcHAKQEAgLTIyMyw2ICsyMjMsNyBAQCBU
RVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdCwgVGVzdENvbW1pdEFmdGVyRmFpbGVkRHJh
d0FsbG93c0RyYXdJblNhbWVGcmFtZQogCiAgICAgLy8gRmluaXNoIHRoZSBjb21taXQuCiAgICAg
c3RhdGUuYmVnaW5GcmFtZUNvbXBsZXRlKCk7CisgICAgc3RhdGUuc2V0Q2FuVXBkYXRlTW9yZVJl
c291cmNlcyh0cnVlKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFD
VElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5leHRBY3Rpb24oKSk7CiAg
ICAgc3RhdGUudXBkYXRlU3RhdGUoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJ
Tl9VUERBVEVfTU9SRV9SRVNPVVJDRVMpOwogICAgIHN0YXRlLmJlZ2luVXBkYXRlTW9yZVJlc291
cmNlc0NvbXBsZXRlKGZhbHNlKTsKQEAgLTI3NCw2ICsyNzUsNyBAQCBURVNUKENDU2NoZWR1bGVy
U3RhdGVNYWNoaW5lVGVzdCwgVGVzdENvbW1pdEFmdGVyRmFpbGVkQW5kU3VjY2Vzc2Z1bERyYXdE
b2VzTm90QQogCiAgICAgLy8gRmluaXNoIHRoZSBjb21taXQuCiAgICAgc3RhdGUuYmVnaW5GcmFt
ZUNvbXBsZXRlKCk7CisgICAgc3RhdGUuc2V0Q2FuVXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsK
ICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERB
VEVfTU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5leHRBY3Rpb24oKSk7CiAgICAgc3RhdGUudXBkYXRl
U3RhdGUoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9SRV9S
RVNPVVJDRVMpOwogICAgIHN0YXRlLmJlZ2luVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKGZh
bHNlKTsKQEAgLTQ4OSw2ICs0OTEsNyBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVz
dCwgVGVzdFVwZGF0ZXNfTm9SZWRyYXdfT25lUm91bmRPZlVwZGF0ZXMpCiAgICAgc3RhdGUuc2V0
Q29tbWl0U3RhdGUoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9VUERBVElO
R19SRVNPVVJDRVMpOwogICAgIHN0YXRlLnNldE5lZWRzUmVkcmF3KGZhbHNlKTsKICAgICBzdGF0
ZS5zZXRVcGRhdGVNb3JlUmVzb3VyY2VzUGVuZGluZyhmYWxzZSk7CisgICAgc3RhdGUuc2V0Q2Fu
VXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsKICAgICBzdGF0ZS5zZXRWaXNpYmxlKHRydWUpOwog
CiAgICAgLy8gVmVyaWZ5IHdlIGJlZ2luIHVwZGF0ZSwgYm90aCBmb3IgdnN5bmMgYW5kIG5vdCB2
c3luYy4KQEAgLTUxNyw2ICs1MjAsNyBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVz
dCwgVGVzdFVwZGF0ZXNfTm9SZWRyYXdfVHdvUm91bmRzT2ZVcGRhdGVzKQogICAgIHN0YXRlLnNl
dENvbW1pdFN0YXRlKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfVVBEQVRJ
TkdfUkVTT1VSQ0VTKTsKICAgICBzdGF0ZS5zZXROZWVkc1JlZHJhdyhmYWxzZSk7CiAgICAgc3Rh
dGUuc2V0VXBkYXRlTW9yZVJlc291cmNlc1BlbmRpbmcoZmFsc2UpOworICAgIHN0YXRlLnNldENh
blVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgc3RhdGUuc2V0VmlzaWJsZSh0cnVlKTsK
IAogICAgIC8vIFZlcmlmeSB0aGUgdXBkYXRlIGJlZ2lucywgYm90aCBmb3IgdnN5bmMgYW5kIG5v
dCB2c3luYy4KQEAgLTU3Myw2ICs1NzcsNyBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
VGVzdCwgVGVzdFVwZGF0ZXNfV2l0aFJlZHJhd19PbmVSb3VuZE9mVXBkYXRlcykKICAgICBzdGF0
ZS5zZXRDb21taXRTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRFX1VQ
REFUSU5HX1JFU09VUkNFUyk7CiAgICAgc3RhdGUuc2V0TmVlZHNSZWRyYXcodHJ1ZSk7CiAgICAg
c3RhdGUuc2V0VXBkYXRlTW9yZVJlc291cmNlc1BlbmRpbmcoZmFsc2UpOworICAgIHN0YXRlLnNl
dENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgc3RhdGUuc2V0VmlzaWJsZSh0cnVl
KTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9V
UERBVEVfTU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5leHRBY3Rpb24oKSk7CiAKQEAgLTYzMyw2ICs2
MzgsNyBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdCwgVGVzdFNldE5lZWRzQ29t
bWl0SXNOb3RMb3N0KQogCiAgICAgLy8gTGV0IHRoZSBmcmFtZSBmaW5pc2guCiAgICAgc3RhdGUu
YmVnaW5GcmFtZUNvbXBsZXRlKCk7CisgICAgc3RhdGUuc2V0Q2FuVXBkYXRlTW9yZVJlc291cmNl
cyh0cnVlKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkNPTU1JVF9T
VEFURV9VUERBVElOR19SRVNPVVJDRVMsIHN0YXRlLmNvbW1pdFN0YXRlKCkpOwogICAgIEVYUEVD
VF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lOX1VQREFURV9NT1JFX1JF
U09VUkNFUywgc3RhdGUubmV4dEFjdGlvbigpKTsKICAgICBzdGF0ZS51cGRhdGVTdGF0ZShDQ1Nj
aGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUyk7
CkBAIC02NzYsNiArNjgyLDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRl
c3RGdWxsQ3ljbGUpCiAKICAgICAvLyBUZWxsIHRoZSBzY2hlZHVsZXIgdGhlIGZyYW1lIGZpbmlz
aGVkLgogICAgIHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0ZSgpOworICAgIHN0YXRlLnNldENhblVw
ZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVN
YWNoaW5lOjpDT01NSVRfU1RBVEVfVVBEQVRJTkdfUkVTT1VSQ0VTLCBzdGF0ZS5jb21taXRTdGF0
ZSgpKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJ
Tl9VUERBVEVfTU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5leHRBY3Rpb24oKSk7CiAKQEAgLTcyOCw2
ICs3MzUsNyBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdCwgVGVzdEZ1bGxDeWNs
ZVdpdGhDb21taXRSZXF1ZXN0SW5iZXR3ZWVuKQogCiAgICAgLy8gVGVsbCB0aGUgc2NoZWR1bGVy
IHRoZSBmcmFtZSBmaW5pc2hlZC4KICAgICBzdGF0ZS5iZWdpbkZyYW1lQ29tcGxldGUoKTsKKyAg
ICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKHRydWUpOwogICAgIEVYUEVDVF9FUShD
Q1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRFX1VQREFUSU5HX1JFU09VUkNFUywg
c3RhdGUuY29tbWl0U3RhdGUoKSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNo
aW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBzdGF0ZS5uZXh0QWN0aW9u
KCkpOwogCkBAIC03ODYsNiArNzk0LDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRl
c3QsIFRlc3RHb2VzSW52aXNpYmxlTWlkQ29tbWl0KQogCiAgICAgLy8gVGVsbCB0aGUgc2NoZWR1
bGVyIHRoZSBmcmFtZSBmaW5pc2hlZAogICAgIHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0ZSgpOwor
ICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQRUNUX0VR
KENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfVVBEQVRJTkdfUkVTT1VSQ0VT
LCBzdGF0ZS5jb21taXRTdGF0ZSgpKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1h
Y2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5leHRBY3Rp
b24oKSk7CiAKQEAgLTg5Niw2ICs5MDUsNyBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
VGVzdCwgVGVzdENvbnRleHRMb3N0V2hpbGVDb21taXRJblByb2dyZXNzKQogCiAgICAgLy8gRmlu
aXNoIHRoZSBmcmFtZSwgdXBkYXRlIHJlc291cmNlcywgYW5kIGNvbW1pdC4KICAgICBzdGF0ZS5i
ZWdpbkZyYW1lQ29tcGxldGUoKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2Vz
KHRydWUpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JF
R0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUubmV4dEFjdGlvbigpKTsKICAgICBzdGF0
ZS51cGRhdGVTdGF0ZShzdGF0ZS5uZXh0QWN0aW9uKCkpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVk
dWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX05PTkUsIHN0YXRlLm5leHRBY3Rpb24oKSk7CkBAIC05
NDEsNiArOTUxLDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RDb250
ZXh0TG9zdFdoaWxlQ29tbWl0SW5Qcm9ncmVzc0FuZEFub3RoZXIKIAogICAgIC8vIEZpbmlzaCB0
aGUgZnJhbWUsIHVwZGF0ZSByZXNvdXJjZXMsIGFuZCBjb21taXQuCiAgICAgc3RhdGUuYmVnaW5G
cmFtZUNvbXBsZXRlKCk7CisgICAgc3RhdGUuc2V0Q2FuVXBkYXRlTW9yZVJlc291cmNlcyh0cnVl
KTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9V
UERBVEVfTU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5leHRBY3Rpb24oKSk7CiAgICAgc3RhdGUudXBk
YXRlU3RhdGUoc3RhdGUubmV4dEFjdGlvbigpKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJT
dGF0ZU1hY2hpbmU6OkFDVElPTl9OT05FLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwpAQCAtMTAxOCw2
ICsxMDI5LDcgQEAgVEVTVChDQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QsIFRlc3RCZWdpbkZy
YW1lV2hlbkNvbW1pdEluUHJvZ3Jlc3MpCiAgICAgc3RhdGUuc2V0TmVlZHNGb3JjZWRDb21taXQo
dHJ1ZSk7CiAKICAgICBzdGF0ZS5iZWdpbkZyYW1lQ29tcGxldGUoKTsKKyAgICBzdGF0ZS5zZXRD
YW5VcGRhdGVNb3JlUmVzb3VyY2VzKHRydWUpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0
YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUubmV4
dEFjdGlvbigpKTsKICAgICBzdGF0ZS51cGRhdGVTdGF0ZShzdGF0ZS5uZXh0QWN0aW9uKCkpOwog
ICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX05PTkUsIHN0YXRl
Lm5leHRBY3Rpb24oKSk7CkBAIC0xMDQxLDQgKzEwNTMsNTMgQEAgVEVTVChDQ1NjaGVkdWxlclN0
YXRlTWFjaGluZVRlc3QsIFRlc3RCZWdpbkZyYW1lV2hlbkNvbnRleHRMb3N0KQogICAgIEVYUEVD
VF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lOX0ZSQU1FLCBzdGF0ZS5u
ZXh0QWN0aW9uKCkpOwogfQogCitURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdCwgVGVz
dENhblVwZGF0ZU1vcmVSZXNvdXJjZXMpCit7CisgICAgU3RhdGVNYWNoaW5lIHN0YXRlOworICAg
IHN0YXRlLnNldFZpc2libGUodHJ1ZSk7CisgICAgc3RhdGUuc2V0TmVlZHNSZWRyYXcodHJ1ZSk7
CisgICAgc3RhdGUuc2V0Q2FuQmVnaW5GcmFtZSh0cnVlKTsKKworICAgIC8vIFN0YXJ0IGNsZWFu
IGFuZCBzZXQgY29tbWl0LgorICAgIHN0YXRlLnNldE5lZWRzQ29tbWl0KHRydWUpOworICAgIEVY
UEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lOX0ZSQU1FLCBzdGF0
ZS5uZXh0QWN0aW9uKCkpOworCisgICAgLy8gQmVnaW4gdGhlIGZyYW1lLgorICAgIHN0YXRlLnVw
ZGF0ZVN0YXRlKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fRlJBTUUpOwor
ICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRFX0ZSQU1F
X0lOX1BST0dSRVNTLCBzdGF0ZS5jb21taXRTdGF0ZSgpKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc3Rh
dGUubmVlZHNDb21taXQoKSk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
OjpBQ1RJT05fTk9ORSwgc3RhdGUubmV4dEFjdGlvbigpKTsKKworICAgIC8vIFRlbGwgdGhlIHNj
aGVkdWxlciB0aGUgZnJhbWUgZmluaXNoZWQuCisgICAgc3RhdGUuYmVnaW5GcmFtZUNvbXBsZXRl
KCk7CisgICAgc3RhdGUuc2V0Q2FuVXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsKKyAgICBFWFBF
Q1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9VUERBVElOR19SRVNP
VVJDRVMsIHN0YXRlLmNvbW1pdFN0YXRlKCkpOworICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0
YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUubmV4
dEFjdGlvbigpKTsKKworICAgIC8vIFRlbGwgdGhlIHNjaGVkdWxlciB0aGUgdXBkYXRlIGJlZ2Fu
IGFuZCBmaW5pc2hlZC4KKyAgICBzdGF0ZS51cGRhdGVTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFj
aGluZTo6QUNUSU9OX0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUyk7CisgICAgc3RhdGUuc2V0
Q2FuVXBkYXRlTW9yZVJlc291cmNlcyhmYWxzZSk7CisgICAgc3RhdGUuYmVnaW5VcGRhdGVNb3Jl
UmVzb3VyY2VzQ29tcGxldGUodHJ1ZSk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVN
YWNoaW5lOjpDT01NSVRfU1RBVEVfVVBEQVRJTkdfUkVTT1VSQ0VTLCBzdGF0ZS5jb21taXRTdGF0
ZSgpKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9OT05F
LCBzdGF0ZS5uZXh0QWN0aW9uKCkpOworCisgICAgLy8gQXQgdnN5bmMsIGRyYXcuCisgICAgc3Rh
dGUuZGlkRW50ZXJWU3luYygpOworICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGlu
ZTo6QUNUSU9OX0RSQVdfSUZfUE9TU0lCTEUsIHN0YXRlLm5leHRBY3Rpb24oKSk7CisgICAgc3Rh
dGUudXBkYXRlU3RhdGUoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9EUkFXX0lGX1BP
U1NJQkxFKTsKKyAgICBzdGF0ZS5kaWREcmF3SWZQb3NzaWJsZUNvbXBsZXRlZCh0cnVlKTsKKyAg
ICBzdGF0ZS5kaWRMZWF2ZVZTeW5jKCk7CisKKyAgICAvLyBUZWxsIHRoZSBzY2hlZHVsZXIgdGhh
dCB3ZSBjYW4gdXBkYXRlIG1vcmUgcmVzb3VyY2VzLgorICAgIHN0YXRlLnNldENhblVwZGF0ZU1v
cmVSZXNvdXJjZXModHJ1ZSk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
OjpDT01NSVRfU1RBVEVfVVBEQVRJTkdfUkVTT1VSQ0VTLCBzdGF0ZS5jb21taXRTdGF0ZSgpKTsK
KyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERB
VEVfTU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5leHRBY3Rpb24oKSk7CisKKyAgICAvLyBUZWxsIHRo
ZSBzY2hlZHVsZXIgdGhlIHNlY29uZCB1cGRhdGUgYmVnYW4gYW5kIGZpbmlzaGVkCisgICAgc3Rh
dGUudXBkYXRlU3RhdGUoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERB
VEVfTU9SRV9SRVNPVVJDRVMpOworICAgIHN0YXRlLmJlZ2luVXBkYXRlTW9yZVJlc291cmNlc0Nv
bXBsZXRlKGZhbHNlKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkNP
TU1JVF9TVEFURV9SRUFEWV9UT19DT01NSVQsIHN0YXRlLmNvbW1pdFN0YXRlKCkpOworICAgIEVY
UEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0NPTU1JVCwgc3RhdGUubmV4
dEFjdGlvbigpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q1NjaGVkdWxlclRlc3QuY3BwCmluZGV4IDQxMjUwODg0YmY0ZGEwMmU1YTZhMDBkYmZkOGMxNjg1
ZjQ2MjRmZWMuLmM0MzUwOGZlYjMyZDQ1NGJjZDU2NTgzN2IzNzc2NTNmODI2NTMxMDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHAKQEAg
LTQ4LDEwICs0OCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZHJhd1dpbGxIYXBwZW4gPSB0cnVl
OwogICAgICAgICBtX3N3YXBXaWxsSGFwcGVuSWZEcmF3SGFwcGVucyA9IHRydWU7CiAgICAgICAg
IG1fbnVtRHJhd3MgPSAwOworICAgICAgICBtX2V4cGVjdGVkU2Vjb25kc1RvUGVyZm9ybU5leHRV
cGRhdGVNb3JlUmVzb3VyY2VzID0gMDsKICAgICB9CiAKICAgICB2b2lkIHNldEhhc01vcmVSZXNv
dXJjZVVwZGF0ZXMoYm9vbCBiKSB7IG1faGFzTW9yZVJlc291cmNlVXBkYXRlcyA9IGI7IH0KICAg
ICB2b2lkIHNldENhbkRyYXcoYm9vbCBiKSB7IG1fY2FuRHJhdyA9IGI7IH0KKyAgICB2b2lkIHNl
dEV4cGVjdGVkU2Vjb25kc1RvUGVyZm9ybU5leHRVcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSB0
KSB7IG1fZXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXMgPSB0
OyB9CiAKICAgICBpbnQgbnVtRHJhd3MoKSBjb25zdCB7IHJldHVybiBtX251bURyYXdzOyB9CiAg
ICAgaW50IG51bUFjdGlvbnMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KG1fYWN0
aW9ucy5zaXplKCkpOyB9CkBAIC02Nyw2ICs2OSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
Ym9vbCBjYW5EcmF3KCkgT1ZFUlJJREUgeyByZXR1cm4gbV9jYW5EcmF3OyB9CiAgICAgdmlydHVh
bCBib29sIGhhc01vcmVSZXNvdXJjZVVwZGF0ZXMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBt
X2hhc01vcmVSZXNvdXJjZVVwZGF0ZXM7IH0KKyAgICB2aXJ0dWFsIGRvdWJsZSBleHBlY3RlZFNl
Y29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJlc291cmNlcygpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1fZXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXM7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpIE9WRVJSSURF
IHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSIpOyB9CiAg
ICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFj
dGlvbkRyYXdBbmRTd2FwSWZQb3NzaWJsZSgpIE9WRVJSSURFCiAgICAgewpAQCAtOTQsNiArOTcs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2NhbkRyYXc7CiAgICAgYm9vbCBtX2RyYXdXaWxs
SGFwcGVuOwogICAgIGJvb2wgbV9zd2FwV2lsbEhhcHBlbklmRHJhd0hhcHBlbnM7CisgICAgZG91
YmxlIG1fZXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXM7CiAg
ICAgaW50IG1fbnVtRHJhd3M7CiAgICAgc3RkOjp2ZWN0b3I8Y29uc3QgY2hhcio+IG1fYWN0aW9u
czsKIH07CkBAIC0xMTQsMTIgKzExOCwxMCBAQCBURVNUKENDU2NoZWR1bGVyVGVzdCwgUmVxdWVz
dENvbW1pdCkKICAgICBjbGllbnQucmVzZXQoKTsKIAogICAgIC8vIFNpbmNlLCBoYXNNb3JlUmVz
b3VyY2VVcGRhdGVzIGlzIHNldCB0byBmYWxzZSwKLSAgICAvLyBiZWdpbkZyYW1lQ29tcGxldGUg
c2hvdWxkIHVwZGF0ZU1vcmVSZXNvdXJjZXMsIHRoZW4KLSAgICAvLyBjb21taXQKKyAgICAvLyBi
ZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxkIGp1c3QgY29tbWl0CiAgICAgc2NoZWR1bGVyLT5iZWdp
bkZyYW1lQ29tcGxldGUoKTsKLSAgICBFWFBFQ1RfRVEoMiwgY2xpZW50Lm51bUFjdGlvbnMoKSk7
Ci0gICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIiwg
Y2xpZW50LmFjdGlvbigwKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25Db21t
aXQiLCBjbGllbnQuYWN0aW9uKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgY2xpZW50Lm51bUFjdGlv
bnMoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25Db21taXQiLCBjbGllbnQu
YWN0aW9uKDApKTsKICAgICBFWFBFQ1RfVFJVRSh0aW1lU291cmNlLT5hY3RpdmUoKSk7CiAgICAg
Y2xpZW50LnJlc2V0KCk7CiAKQEAgLTE1MiwxMiArMTU0LDEwIEBAIFRFU1QoQ0NTY2hlZHVsZXJU
ZXN0LCBSZXF1ZXN0Q29tbWl0QWZ0ZXJCZWdpbkZyYW1lKQogICAgIHNjaGVkdWxlci0+c2V0TmVl
ZHNDb21taXQoKTsKIAogICAgIC8vIFNpbmNlLCBoYXNNb3JlUmVzb3VyY2VVcGRhdGVzIGlzIHNl
dCB0byBmYWxzZSwgYW5kIGFub3RoZXIgY29tbWl0IGlzCi0gICAgLy8gbmVlZGVkLCBiZWdpbkZy
YW1lQ29tcGxldGUgc2hvdWxkIHVwZGF0ZU1vcmVSZXNvdXJjZXMsIHRoZW4gY29tbWl0LCB0aGVu
Ci0gICAgLy8gYmVnaW4gYW5vdGhlciBmcmFtZS4KKyAgICAvLyBuZWVkZWQsIGJlZ2luRnJhbWVD
b21wbGV0ZSBzaG91bGQgY29tbWl0LCB0aGVuIGJlZ2luIGFub3RoZXIgZnJhbWUuCiAgICAgc2No
ZWR1bGVyLT5iZWdpbkZyYW1lQ29tcGxldGUoKTsKLSAgICBFWFBFQ1RfRVEoMiwgY2xpZW50Lm51
bUFjdGlvbnMoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3Jl
UmVzb3VyY2VzIiwgY2xpZW50LmFjdGlvbigwKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVs
ZWRBY3Rpb25Db21taXQiLCBjbGllbnQuYWN0aW9uKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgY2xp
ZW50Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25Db21t
aXQiLCBjbGllbnQuYWN0aW9uKDApKTsKICAgICBjbGllbnQucmVzZXQoKTsKIAogICAgIC8vIFRp
Y2sgc2hvdWxkIGRyYXcgYnV0IHRoZW4gYmVnaW4gYW5vdGhlciBmcmFtZS4KQEAgLTQ5Myw0ICs0
OTMsNjkgQEAgVEVTVChDQ1NjaGVkdWxlclRlc3QsIE5vQmVnaW5GcmFtZVdoZW5Td2FwRmFpbHNE
dXJpbmdGb3JjZWRDb21taXQpCiAgICAgRVhQRUNUX0VRKDAsIGNvbnRyb2xsZXJQdHItPm51bUZy
YW1lc1BlbmRpbmcoKSk7CiB9CiAKK1RFU1QoQ0NTY2hlZHVsZXJUZXN0LCBVcGRhdGVNb3JlUmVz
b3VyY2VzKQoreworICAgIEZha2VDQ1NjaGVkdWxlckNsaWVudCBjbGllbnQ7CisgICAgUmVmUHRy
PEZha2VDQ1RpbWVTb3VyY2U+IHRpbWVTb3VyY2UgPSBhZG9wdFJlZihuZXcgRmFrZUNDVGltZVNv
dXJjZSgpKTsKKyAgICBPd25QdHI8Q0NTY2hlZHVsZXI+IHNjaGVkdWxlciA9IENDU2NoZWR1bGVy
OjpjcmVhdGUoJmNsaWVudCwgYWRvcHRQdHIobmV3IENDRnJhbWVSYXRlQ29udHJvbGxlcih0aW1l
U291cmNlKSkpOworICAgIHNjaGVkdWxlci0+c2V0VmlzaWJsZSh0cnVlKTsKKyAgICBzY2hlZHVs
ZXItPnNldENhbkJlZ2luRnJhbWUodHJ1ZSk7CisKKyAgICAvLyBTZXROZWVkc0NvbW1pdCBzaG91
bGQgYmVnaW4gdGhlIGZyYW1lLgorICAgIHNjaGVkdWxlci0+c2V0TmVlZHNDb21taXQoKTsKKyAg
ICBFWFBFQ1RfRVEoMSwgY2xpZW50Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJz
Y2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lIiwgY2xpZW50LmFjdGlvbigwKSk7CisgICAgY2xpZW50
LnJlc2V0KCk7CisKKyAgICAvLyBTaW5jZSwgaGFzTW9yZVJlc291cmNlVXBkYXRlcyBpcyBzZXQg
dG8gdHJ1ZSwgYmVnaW5GcmFtZUNvbXBsZXRlIHNob3VsZAorICAgIC8vIHVwZGF0ZU1vcmVSZXNv
dXJjZXMuCisgICAgY2xpZW50LnNldEhhc01vcmVSZXNvdXJjZVVwZGF0ZXModHJ1ZSk7CisgICAg
c2NoZWR1bGVyLT5iZWdpbkZyYW1lQ29tcGxldGUoKTsKKyAgICBFWFBFQ1RfRVEoMSwgY2xpZW50
Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVN
b3JlUmVzb3VyY2VzIiwgY2xpZW50LmFjdGlvbigwKSk7CisgICAgY2xpZW50LnJlc2V0KCk7CisK
KyAgICBjbGllbnQuc2V0SGFzTW9yZVJlc291cmNlVXBkYXRlcyh0cnVlKTsKKyAgICBzY2hlZHVs
ZXItPmRpZFVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZSgpOworICAgIEVYUEVDVF9FUSgxLCBj
bGllbnQubnVtQWN0aW9ucygpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvblVw
ZGF0ZU1vcmVSZXNvdXJjZXMiLCBjbGllbnQuYWN0aW9uKDApKTsKKyAgICBjbGllbnQucmVzZXQo
KTsKKworICAgIC8vIFNpbmNlLCBTZXROZWVkUmVkcmF3IGlzIHNldCB0byB0cnVlLCByZXNvdXJj
ZSB1cGRhdGVzIHNob3VsZCBiZQorICAgIC8vIGF2b2lkZWQgYXMgd2UgZ2V0IGNsb3NlIHRvIHRo
ZSBuZXh0IHRpY2sgdGltZS4KKyAgICBzY2hlZHVsZXItPnNldE5lZWRzUmVkcmF3KCk7CisgICAg
RVhQRUNUX1RSVUUoc2NoZWR1bGVyLT5yZWRyYXdQZW5kaW5nKCkpOworICAgIEVYUEVDVF9UUlVF
KHRpbWVTb3VyY2UtPmFjdGl2ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMCwgY2xpZW50Lm51bURyYXdz
KCkpOworCisgICAgLy8gU2luY2UsIGV4cGVjdGVkU2Vjb25kc1RvUGVyZm9ybU5leHRVcGRhdGVN
b3JlUmVzb3VyY2VzIGlzIDUgc2Vjb25kcyBhbmQKKyAgICAvLyBuZXh0VGlja1RpbWUgaXMgMSBz
ZWNvbmQgYXdheSwgZGlkVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlIHNob3VsZAorICAgIC8v
IG5vdCBiZWdpbiBhbm90aGVyIHVwZGF0ZS4KKyAgICBjbGllbnQuc2V0SGFzTW9yZVJlc291cmNl
VXBkYXRlcyh0cnVlKTsKKyAgICBjbGllbnQuc2V0RXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4
dFVwZGF0ZU1vcmVSZXNvdXJjZXMoNSk7CisgICAgdGltZVNvdXJjZS0+c2V0TmV4dFRpY2tUaW1l
KG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICsgMSk7CisgICAgc2NoZWR1bGVyLT5kaWRV
cGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoKTsKKyAgICBFWFBFQ1RfRVEoMCwgY2xpZW50Lm51
bUFjdGlvbnMoKSk7CisgICAgY2xpZW50LnJlc2V0KCk7CisKKyAgICAvLyBTaW5jZSwgZXhwZWN0
ZWRTZWNvbmRzVG9QZXJmb3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXMgaXMgNSBzZWNvbmRzIGFu
ZAorICAgIC8vIG5leHRUaWNrVGltZSBpcyAxMCBzZWNvbmRzIGF3YXksIGRpZFVwZGF0ZU1vcmVS
ZXNvdXJjZXNDb21wbGV0ZSBzaG91bGQKKyAgICAvLyBiZWdpbiBhbm90aGVyIHVwZGF0ZS4KKyAg
ICBjbGllbnQuc2V0SGFzTW9yZVJlc291cmNlVXBkYXRlcyh0cnVlKTsKKyAgICBjbGllbnQuc2V0
RXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXMoNSk7CisgICAg
dGltZVNvdXJjZS0+c2V0TmV4dFRpY2tUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
ICsgMTApOworICAgIHNjaGVkdWxlci0+ZGlkVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKCk7
CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIEVYUEVDVF9TVFJF
USgic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIGNsaWVudC5hY3Rpb24oMCkp
OworICAgIGNsaWVudC5yZXNldCgpOworCisgICAgLy8gU2luY2UsIGhhc01vcmVSZXNvdXJjZVVw
ZGF0ZXMgaXMgc2V0IHRvIGZhbHNlLAorICAgIC8vIGRpZFVwZGF0ZU1vcmVSZXNvdXJjZXNDb21w
bGV0ZSBzaG91bGQgY29tbWl0LgorICAgIGNsaWVudC5zZXRIYXNNb3JlUmVzb3VyY2VVcGRhdGVz
KGZhbHNlKTsKKyAgICBzY2hlZHVsZXItPmRpZFVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZSgp
OworICAgIEVYUEVDVF9FUSgxLCBjbGllbnQubnVtQWN0aW9ucygpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoInNjaGVkdWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMCkpOworICAgIGNsaWVu
dC5yZXNldCgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1NjaGVkdWxlclRlc3RDb21tb24uaAppbmRleCA2MjU3ZWM4ODhmNThlYzc1MjY4ODdhNzcx
ZjcyNDhmM2Q1M2Y2NjVmLi5mMmVjNGI4YzI5N2EzMTA5MTc2YjE5ODQ2YmQ4NzgwMGYzOTIyYjBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVz
dENvbW1vbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJU
ZXN0Q29tbW9uLmgKQEAgLTg2LDYgKzg2LDcgQEAgY2xhc3MgRmFrZUNDVGltZVNvdXJjZSA6IHB1
YmxpYyBXZWJDb3JlOjpDQ1RpbWVTb3VyY2UgewogcHVibGljOgogICAgIEZha2VDQ1RpbWVTb3Vy
Y2UoKQogICAgICAgICA6IG1fYWN0aXZlKGZhbHNlKQorICAgICAgICAsIG1fbmV4dFRpY2tUaW1l
KDApCiAgICAgICAgICwgbV9jbGllbnQoMCkgeyB9CiAKICAgICB2aXJ0dWFsIH5GYWtlQ0NUaW1l
U291cmNlKCkgeyB9CkBAIC05Myw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q2xpZW50KFdlYkNvcmU6OkNDVGltZVNvdXJjZUNsaWVudCogY2xpZW50KSBPVkVSUklERSB7
IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGIp
IE9WRVJSSURFIHsgbV9hY3RpdmUgPSBiOyB9CiAgICAgdmlydHVhbCBib29sIGFjdGl2ZSgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBkb3VibGUgbmV4
dFRpY2tUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9uZXh0VGlja1RpbWU7IH0KIAog
ICAgIHZvaWQgdGljaygpCiAgICAgewpAQCAtMTAxLDggKzEwMywxMSBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBtX2NsaWVudC0+b25UaW1lclRpY2soKTsKICAgICB9CiAKKyAgICB2b2lkIHNldE5l
eHRUaWNrVGltZShkb3VibGUgbmV4dFRpY2tUaW1lKSB7IG1fbmV4dFRpY2tUaW1lID0gbmV4dFRp
Y2tUaW1lOyB9CisKIHByb3RlY3RlZDoKICAgICBib29sIG1fYWN0aXZlOworICAgIGRvdWJsZSBt
X25leHRUaWNrVGltZTsKICAgICBXZWJDb3JlOjpDQ1RpbWVTb3VyY2VDbGllbnQqIG1fY2xpZW50
OwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140633</attachid>
            <date>2012-05-07 17:31:26 -0700</date>
            <delta_ts>2012-06-12 14:30:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84281-20120507203124.patch</filename>
            <type>text/plain</type>
            <size>36211</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU2YmI4MWU4MGYyOGVm
NzA1ZjQ3MmUzNTE0ODU3Mzg0Zjc4Zjc0YS4uZjYxMTY2ZDczNDI1N2RjMGEyOTYzMjc3MDQ1ZGMw
M2UxNTNlZDhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA1LTA3ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBT
Y2hlZHVsZSB0ZXh0dXJlIHVwbG9hZHMgYmFzZWQgb24gaGFyZC1jb2RlZCB0aW1lciBhbmQgdnN5
bmMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJv
dmUgaW50ZXJhY3Rpb24gYmV0d2VlbiB2c3luYyBhbmQgdGV4dHVyZSB1cGxvYWRzIGJ5IHBlcmZv
cm1pbmcKKyAgICAgICAgdXBsb2FkcyBpbiBzbWFsbGVyIGJhdGNoZXMgYW5kIHVzZSBhIGhhcmQt
Y29kZWQgdGltZXIgdG8gZW11bGF0ZQorICAgICAgICB1cGxvYWQgY29tcGxldGlvbi4gVGhpcyBn
cmVhdGx5IHJlZHVjZXMgdGhlIGNoYW5jZSBvZiB0aGUgY29tcG9zaXRvcgorICAgICAgICBtaXNz
aW5nIGEgdnN5bmMgZHVlIHRvIGJlaW5nIGJ1c3kgd2l0aCB0ZXh0dXJlIHVwbG9hZHMuCisKKyAg
ICAgICAgVW5pdCB0ZXN0czogQ0NTY2hlZHVsZXJUZXN0LlVwZGF0ZU1vcmVSZXNvdXJjZXMKKyAg
ICAgICAgICAgICAgICAgICAgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LlRlc3RDYW5VcGRh
dGVNb3JlUmVzb3VyY2VzCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDRGVsYXlC
YXNlZFRpbWVTb3VyY2U6Om5leHRUaWNrVGltZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29udHJvbGxlcjo6
bmV4dFRpY2tUaW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oOgorICAgICAgICAoQ0NG
cmFtZVJhdGVDb250cm9sbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1NjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1NjaGVkdWxlcjo6ZGlk
VXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDU2NoZWR1
bGVyOjp2c3luY1RpY2spOgorICAgICAgICAoV2ViQ29yZTo6Q0NTY2hlZHVsZXI6Om5leHRBY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NTY2hlZHVsZXI6OnByb2Nlc3NTY2hlZHVsZWRBY3Rp
b25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxl
ci5oOgorICAgICAgICAoQ0NTY2hlZHVsZXJDbGllbnQpOgorICAgICAgICAoQ0NTY2hlZHVsZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
OjpDQ1NjaGVkdWxlclN0YXRlTWFjaGluZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1NjaGVkdWxl
clN0YXRlTWFjaGluZTo6c2hvdWxkVXBkYXRlTW9yZVJlc291cmNlcyk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpuZXh0QWN0
aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxl
clN0YXRlTWFjaGluZS5oOgorICAgICAgICAoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OnNldENhblVwZGF0ZU1vcmVS
ZXNvdXJjZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuY3BwOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKENDVGhyZWFkUHJveHlUZXh0
dXJlVXBkYXRlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eVRleHR1cmVV
cGRhdGVUaW1lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHlUZXh0
dXJlVXBkYXRlVGltZXI6OkNDVGhyZWFkUHJveHlUZXh0dXJlVXBkYXRlVGltZXIpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpleHBlY3RlZFNl
Y29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6Om1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcyk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojp0ZXh0dXJlVXBkYXRlQ29tcGxldGVP
bkltcGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ0NUaHJlYWRQcm94
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaW1lU291cmNl
Lmg6CisgICAgICAgIChDQ1RpbWVTb3VyY2UpOgorCiAyMDEyLTA1LTA3ICBEYW5hIEphbnNlbnMg
IDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlZ2lvbjo6aW50ZXJzZWN0cygpIGFu
ZCBSZWdpb246OmNvbnRhaW5zKCkgYXJlIHNsb3cgZHVlIHRvIGNvcHkgb3ZlcmhlYWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggODA2YmFiMWU4YzI1NjhmMGNmMjg1OGYwZmQwNDBlNGVl
YzZmNmM2OC4uZDgxNTc2NzdlMTU1M2MyYTM2NTZmZjA0ZDc4ODc3ZmVlYWIxMzAxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wNS0wNyAgRGF2aWQg
UmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gU2No
ZWR1bGUgdGV4dHVyZSB1cGxvYWRzIGJhc2VkIG9uIGhhcmQtY29kZWQgdGltZXIgYW5kIHZzeW5j
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyODEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3Rz
L0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RU
ZXN0QXRvbWljQ29tbWl0V2l0aFBhcnRpYWxVcGRhdGU6OmRyYXdMYXllcnNPbkNDVGhyZWFkKToK
KyAgICAgICAgKiB0ZXN0cy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0cy9D
Q1NjaGVkdWxlclRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkZha2VDQ1NjaGVkdWxl
ckNsaWVudDo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkZha2VDQ1NjaGVkdWxlckNs
aWVudDo6c2V0RXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXMp
OgorICAgICAgICAoRmFrZUNDU2NoZWR1bGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdFRlc3Rz
OjpURVNUKToKKyAgICAgICAgKFdlYktpdFRlc3RzKToKKyAgICAgICAgKiB0ZXN0cy9DQ1NjaGVk
dWxlclRlc3RDb21tb24uaDoKKyAgICAgICAgKFdlYktpdFRlc3RzOjpGYWtlQ0NUaW1lU291cmNl
OjpGYWtlQ0NUaW1lU291cmNlKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpGYWtlQ0NUaW1lU291
cmNlOjpzZXROZXh0VGlja1RpbWUpOgorICAgICAgICAoRmFrZUNDVGltZVNvdXJjZSk6CisKIDIw
MTItMDUtMDcgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmVnaW9uOjppbnRlcnNlY3RzKCkgYW5kIFJlZ2lvbjo6Y29udGFpbnMoKSBhcmUgc2xvdyBkdWUg
dG8gY29weSBvdmVyaGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNl
LmNwcAppbmRleCBiNjg4YTc4YTI3YzU3OTUxZGQ4ZDZiZWZmZWU3NjZjNWQyNGYyM2U0Li43MDRl
ZmY0YmY3YTNkNmMwNGRlYjVjZDFkMjY2MGZjOGUwMTllYmM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmNwcApAQCAtMTYxLDQgKzE2MSwxMiBAQCB2b2lkIEND
RGVsYXlCYXNlZFRpbWVTb3VyY2U6OnBvc3ROZXh0VGlja1Rhc2soZG91YmxlIG5vdykKICAgICBt
X3RpY2tUYXJnZXQgPSBuZXdUaWNrVGFyZ2V0OwogfQogCitkb3VibGUgQ0NEZWxheUJhc2VkVGlt
ZVNvdXJjZTo6bmV4dFRpY2tUaW1lKCkgY29uc3QKK3sKKyAgICBpZiAoIW1faGFzVGlja1Rhcmdl
dCkKKyAgICAgICAgcmV0dXJuIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworCisgICAg
cmV0dXJuIG1fdGlja1RhcmdldDsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2Vk
VGltZVNvdXJjZS5oCmluZGV4IDk5Nzk1ZGI4MWM5NmNjZGNkYWY1YzAyZjAyYmMzZWViYjZjNjVm
ZDAuLjZmMjNlYzcwMzY2NTU2MWQzMWFhMWMzNGE3NGQwZTliNWU2OTQyZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGVsYXlCYXNl
ZFRpbWVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmgKQEAgLTQ3LDYgKzQ3LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIGFjdGl2ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fc3RhdGUgIT0gU1RBVEVf
SU5BQ1RJVkU7IH0KIAorICAgIHZpcnR1YWwgZG91YmxlIG5leHRUaWNrVGltZSgpIGNvbnN0IE9W
RVJSSURFOworCiAgICAgLy8gQ0NUaW1lckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KICAgICB2aXJ0
dWFsIHZvaWQgb25UaW1lckZpcmVkKCkgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Zy
YW1lUmF0ZUNvbnRyb2xsZXIuY3BwCmluZGV4IDg0YTdjYjMxMGEzYmQ0OTY4MzkyZmFiMjJkOTU3
MWM3NWE4YjU3YjIuLjU3ZDVjMzdhNmIwMzZmMWM0YWMxZTk0MTljY2ZmZmYzZjlmODRhYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RnJhbWVSYXRlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcApAQCAtMTA1LDQgKzEw
NSw5IEBAIHZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpkaWRBYm9ydEFsbFBlbmRpbmdGcmFt
ZXMoKQogICAgIG1fbnVtRnJhbWVzUGVuZGluZyA9IDA7CiB9CiAKK2RvdWJsZSBDQ0ZyYW1lUmF0
ZUNvbnRyb2xsZXI6Om5leHRUaWNrVGltZSgpCit7CisgICAgcmV0dXJuIG1fdGltZVNvdXJjZS0+
bmV4dFRpY2tUaW1lKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9s
bGVyLmgKaW5kZXggNTczNGQ0YWE2ZTlmNzQ2MWE0YzY2YzZlMGExODYwZGEzMGQ0OTY2ZS4uN2Ex
ZGFkNDM5YWZiMjhiM2Y0MzRiMzc4OTZhMmM2OWQ4ZjRjMjZjNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NGcmFtZVJhdGVDb250cm9sbGVyLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZv
aWQgZGlkRmluaXNoRnJhbWUoKTsKICAgICB2b2lkIGRpZEFib3J0QWxsUGVuZGluZ0ZyYW1lcygp
OwogICAgIHZvaWQgc2V0TWF4RnJhbWVzUGVuZGluZyhpbnQpOyAvLyAwIGZvciB1bmxpbWl0ZWQu
CisgICAgZG91YmxlIG5leHRUaWNrVGltZSgpOwogCiBwcm90ZWN0ZWQ6CiAgICAgZnJpZW5kIGNs
YXNzIENDRnJhbWVSYXRlQ29udHJvbGxlclRpbWVTb3VyY2VBZGFwdGVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hl
ZHVsZXIuY3BwCmluZGV4IDg0Yjg0MjM1ODhiYzQ4ZjAzYzk2NjhmZGQxY2YxYzhkZTczZWQ5NzUu
LjA3ZjUwMmJjZWI5MzU3ZWRiOGNkZjg3YTA1NTM0ZTU3Nzk5Y2JjYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Nj
aGVkdWxlci5jcHAKQEAgLTExOSwxNCArMTE5LDE5IEBAIHZvaWQgQ0NTY2hlZHVsZXI6OmRpZFJl
Y3JlYXRlQ29udGV4dCgpCiAgICAgcHJvY2Vzc1NjaGVkdWxlZEFjdGlvbnMoKTsKIH0KIAotdm9p
ZCBDQ1NjaGVkdWxlcjo6dnN5bmNUaWNrKCkKK3ZvaWQgQ0NTY2hlZHVsZXI6OmRpZFVwZGF0ZU1v
cmVSZXNvdXJjZXNDb21wbGV0ZSgpCiB7CisgICAgVFJBQ0VfRVZFTlQoIkNDU2NoZWR1bGVyOjpk
aWRVcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUiLCB0aGlzLCAwKTsKICAgICBpZiAobV91cGRh
dGVNb3JlUmVzb3VyY2VzUGVuZGluZykgewogICAgICAgICBtX3VwZGF0ZU1vcmVSZXNvdXJjZXNQ
ZW5kaW5nID0gZmFsc2U7CiAgICAgICAgIG1fc3RhdGVNYWNoaW5lLmJlZ2luVXBkYXRlTW9yZVJl
c291cmNlc0NvbXBsZXRlKG1fY2xpZW50LT5oYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkpOwogICAg
IH0KLSAgICBUUkFDRV9FVkVOVCgiQ0NTY2hlZHVsZXI6OnZzeW5jVGljayIsIHRoaXMsIDApOwor
ICAgIHByb2Nlc3NTY2hlZHVsZWRBY3Rpb25zKCk7Cit9CiAKK3ZvaWQgQ0NTY2hlZHVsZXI6OnZz
eW5jVGljaygpCit7CisgICAgVFJBQ0VfRVZFTlQoIkNDU2NoZWR1bGVyOjp2c3luY1RpY2siLCB0
aGlzLCAwKTsKICAgICBtX3N0YXRlTWFjaGluZS5kaWRFbnRlclZTeW5jKCk7CiAgICAgcHJvY2Vz
c1NjaGVkdWxlZEFjdGlvbnMoKTsKICAgICBtX3N0YXRlTWFjaGluZS5kaWRMZWF2ZVZTeW5jKCk7
CkBAIC0xMzUsNiArMTQwLDExIEBAIHZvaWQgQ0NTY2hlZHVsZXI6OnZzeW5jVGljaygpCiBDQ1Nj
aGVkdWxlclN0YXRlTWFjaGluZTo6QWN0aW9uIENDU2NoZWR1bGVyOjpuZXh0QWN0aW9uKCkKIHsK
ICAgICBtX3N0YXRlTWFjaGluZS5zZXRDYW5EcmF3KG1fY2xpZW50LT5jYW5EcmF3KCkpOworCisg
ICAgYm9vbCBoYXNSZWRyYXdQZW5kaW5nID0gbV9zdGF0ZU1hY2hpbmUucmVkcmF3UGVuZGluZygp
OworICAgIGJvb2wgaGFzVGltZVJlbWFpbmluZyA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpIDwgbV9mcmFtZVJhdGVDb250cm9sbGVyLT5uZXh0VGlja1RpbWUoKSAtIG1fY2xpZW50LT5l
eHBlY3RlZFNlY29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJlc291cmNlcygpOworICAgIG1f
c3RhdGVNYWNoaW5lLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXMoIWhhc1JlZHJhd1BlbmRpbmcg
fHwgaGFzVGltZVJlbWFpbmluZyk7CisKICAgICByZXR1cm4gbV9zdGF0ZU1hY2hpbmUubmV4dEFj
dGlvbigpOwogfQogCkBAIC0xNjAsMTYgKzE3MCwxMSBAQCB2b2lkIENDU2NoZWR1bGVyOjpwcm9j
ZXNzU2NoZWR1bGVkQWN0aW9ucygpCiAgICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0
aW9uQmVnaW5GcmFtZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ0NTY2hl
ZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVM6Ci0g
ICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygp
OwotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC0+aGFzTW9yZVJlc291cmNlVXBkYXRlcygpKSB7
Ci0gICAgICAgICAgICAgICAgLy8gSWYgd2Ugd2VyZSBqdXN0IHRvbGQgdG8gdXBkYXRlIHJlc291
cmNlcywgYnV0IHRoZXJlIGFyZSBubwotICAgICAgICAgICAgICAgIC8vIG1vcmUgcGVuZGluZywg
dGhlbiB0ZWxsIHRoZSBzdGF0ZSBtYWNoaW5lIHRoYXQgdGhlCi0gICAgICAgICAgICAgICAgLy8g
YmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzIGNvbXBsZXRlZC4gSWYgbW9yZSBhcmUgcGVuZGluZywK
LSAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIHdpbGwgYWNrIHRoZSB1cGRhdGUgYXQgdGhlIG5l
eHQgZHJhdy4KLSAgICAgICAgICAgICAgICBtX3VwZGF0ZU1vcmVSZXNvdXJjZXNQZW5kaW5nID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgbV9zdGF0ZU1hY2hpbmUuYmVnaW5VcGRhdGVNb3JlUmVz
b3VyY2VzQ29tcGxldGUoZmFsc2UpOwotICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBp
ZiAobV9jbGllbnQtPmhhc01vcmVSZXNvdXJjZVVwZGF0ZXMoKSkgeworICAgICAgICAgICAgICAg
IG1fY2xpZW50LT5zY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCk7CiAgICAgICAg
ICAgICAgICAgbV91cGRhdGVNb3JlUmVzb3VyY2VzUGVuZGluZyA9IHRydWU7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICBtX3N0YXRlTWFjaGluZS5iZWdpblVwZGF0ZU1vcmVS
ZXNvdXJjZXNDb21wbGV0ZShmYWxzZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0NPTU1JVDoKICAgICAgICAgICAgIG1f
Y2xpZW50LT5zY2hlZHVsZWRBY3Rpb25Db21taXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oCmluZGV4
IDBlNjk3MTY0MjQ4Y2E2ZmNmZGJhZTFkMzk2MTA0YmI1ZDY3ZmU1ZGUuLmRmZGUyMGEyNjRjMWE5
NDIyYjJiYjY5MzIxYmYyYmQyNTlkZjJiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuaApAQCAtNTQs
NiArNTQsNyBAQCBjbGFzcyBDQ1NjaGVkdWxlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGNhbkRyYXcoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc01vcmVSZXNvdXJjZVVw
ZGF0ZXMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgZXhwZWN0ZWRTZWNvbmRzVG9Q
ZXJmb3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpID0gMDsKICAgICB2aXJ0dWFsIENDU2No
ZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJ
ZlBvc3NpYmxlKCkgPSAwOwpAQCAtMTAxLDYgKzEwMiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZExvc2VDb250ZXh0KCk7CiAgICAgdm9pZCBkaWRSZWNyZWF0ZUNvbnRleHQoKTsKIAorICAgIHZv
aWQgZGlkVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKCk7CisKICAgICBib29sIGNvbW1pdFBl
bmRpbmcoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlTWFjaGluZS5jb21taXRQZW5kaW5nKCk7IH0K
ICAgICBib29sIHJlZHJhd1BlbmRpbmcoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlTWFjaGluZS5y
ZWRyYXdQZW5kaW5nKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXJTdGF0ZU1h
Y2hpbmUuY3BwCmluZGV4IGRhMzc3OWJmZWIwZjEwMTRjOGJmYjRlMTZkNGRmMTdlMDg0ZTU1MDku
LmI0MjJiYWQ3MzQ5YTM2NjI5NDdhN2M5NDBhM2U5Y2UwYmRmZDZiYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAgQ0NT
Y2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkNDU2NoZWR1bGVyU3RhdGVNYWNoaW5lKCkKICAgICAsIG1f
Y2FuQmVnaW5GcmFtZShmYWxzZSkKICAgICAsIG1fY2FuRHJhdyh0cnVlKQogICAgICwgbV9kcmF3
SWZQb3NzaWJsZUZhaWxlZChmYWxzZSkKKyAgICAsIG1fY2FuVXBkYXRlTW9yZVJlc291cmNlcyhm
YWxzZSkKICAgICAsIG1fdGV4dHVyZVN0YXRlKExBWUVSX1RFWFRVUkVfU1RBVEVfVU5MT0NLRUQp
CiAgICAgLCBtX2NvbnRleHRTdGF0ZShDT05URVhUX0FDVElWRSkKIHsKQEAgLTEwNSw2ICsxMDYs
MTUgQEAgYm9vbCBDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6c2hvdWxkQWNxdWlyZUxheWVyVGV4
dHVyZXNGb3JNYWluVGhyZWFkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wg
Q0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OnNob3VsZFVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBjb25z
dAoreworICAgIGlmIChtX3VwZGF0ZU1vcmVSZXNvdXJjZXNQZW5kaW5nKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFtX2NhblVwZGF0ZU1vcmVSZXNvdXJjZXMpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogQ0NTY2hlZHVsZXJTdGF0ZU1hY2hp
bmU6OkFjdGlvbiBDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6bmV4dEFjdGlvbigpIGNvbnN0CiB7
CiAgICAgaWYgKHNob3VsZEFjcXVpcmVMYXllclRleHR1cmVzRm9yTWFpblRocmVhZCgpKQpAQCAt
MTMzLDcgKzE0Myw3IEBAIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBY3Rpb24gQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmU6Om5leHRBY3Rpb24oKSBjb25zdAogICAgIGNhc2UgQ09NTUlUX1NUQVRF
X1VQREFUSU5HX1JFU09VUkNFUzoKICAgICAgICAgaWYgKHNob3VsZERyYXcoKSkKICAgICAgICAg
ICAgIHJldHVybiBtX25lZWRzRm9yY2VkUmVkcmF3ID8gQUNUSU9OX0RSQVdfRk9SQ0VEIDogQUNU
SU9OX0RSQVdfSUZfUE9TU0lCTEU7Ci0gICAgICAgIGlmICghbV91cGRhdGVNb3JlUmVzb3VyY2Vz
UGVuZGluZykKKyAgICAgICAgaWYgKHNob3VsZFVwZGF0ZU1vcmVSZXNvdXJjZXMoKSkKICAgICAg
ICAgICAgIHJldHVybiBBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTOwogICAgICAg
ICByZXR1cm4gQUNUSU9OX05PTkU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlclN0YXRl
TWFjaGluZS5oCmluZGV4IGYzYzJmNjMwZDI3MzEzY2JmYmY0N2Y4MWE5NWQ3MjU1MTlmOTMwMzgu
LmQyZTAzZjE0ZDlkNWIzMjg3OThmZjZjZWZlY2U1ZDI3OTVhZDVmODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmUuaApAQCAtMTM4LDYgKzEzOCw5IEBAIHB1Ymxp
YzoKICAgICAvLyB3aGVuIHN1Y2ggYmVoYXZpb3Igd291bGQgYmUgdW5kZXNpcmFibGUuCiAgICAg
dm9pZCBzZXRDYW5EcmF3KGJvb2wgY2FuKSB7IG1fY2FuRHJhdyA9IGNhbjsgfQogCisgICAgLy8g
SW5kaWNhdGVzIHdoZXRoZXIgdXBkYXRpbmcgcmVzb3VyY2VzIHdvdWxkLCBhdCB0aGlzIHRpbWUs
IG1ha2Ugc2Vuc2UuCisgICAgdm9pZCBzZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKGJvb2wgY2Fu
KSB7IG1fY2FuVXBkYXRlTW9yZVJlc291cmNlcyA9IGNhbjsgfQorCiAgICAgdm9pZCBkaWRMb3Nl
Q29udGV4dCgpOwogICAgIHZvaWQgZGlkUmVjcmVhdGVDb250ZXh0KCk7CiAKQEAgLTE0OCw2ICsx
NTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBzaG91bGREcmF3KCkgY29uc3Q7CiAgICAgYm9v
bCBzaG91bGRBY3F1aXJlTGF5ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQoKSBjb25zdDsKICAgICBi
b29sIGhhc0RyYXduVGhpc0ZyYW1lKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRVcGRhdGVNb3Jl
UmVzb3VyY2VzKCkgY29uc3Q7CiAKICAgICBDb21taXRTdGF0ZSBtX2NvbW1pdFN0YXRlOwogCkBA
IC0xNjQsNiArMTY4LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9jYW5CZWdpbkZyYW1lOwog
ICAgIGJvb2wgbV9jYW5EcmF3OwogICAgIGJvb2wgbV9kcmF3SWZQb3NzaWJsZUZhaWxlZDsKKyAg
ICBib29sIG1fY2FuVXBkYXRlTW9yZVJlc291cmNlczsKICAgICBUZXh0dXJlU3RhdGUgbV90ZXh0
dXJlU3RhdGU7CiAgICAgQ29udGV4dFN0YXRlIG1fY29udGV4dFN0YXRlOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFk
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5jcHAKaW5kZXggMTU3ZmMxZGYwODYzYjdiZGI5N2RiZDQzZDVkMzIwOGQz
NWYzZjVhYS4uZTJjN2M0M2Y3ZWU2YjcwM2VhMWY5NTE5YTdkNjBhMzZiNjYwNjhhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJl
YWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTQ4LDcgKzQ4LDEwIEBAIG5hbWVzcGFjZSB7CiAK
IC8vIE51bWJlciBvZiB0ZXh0dXJlcyB0byB1cGRhdGUgd2l0aCBlYWNoIGNhbGwgdG8KIC8vIHNj
aGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKS4KLXN0YXRpYyBjb25zdCBzaXplX3Qg
dGV4dHVyZVVwZGF0ZXNQZXJGcmFtZSA9IDQ4Oworc3RhdGljIGNvbnN0IHNpemVfdCB0ZXh0dXJl
VXBkYXRlc1BlclRpY2sgPSAxMjsKKworLy8gTWVhc3VyZWQgaW4gc2Vjb25kcy4KK3N0YXRpYyBj
b25zdCBkb3VibGUgdGV4dHVyZVVwZGF0ZVRpY2tSYXRlID0gMC4wMDQ7CiAKIC8vIE1lYXN1cmVk
IGluIHNlY29uZHMuCiBzdGF0aWMgY29uc3QgZG91YmxlIGNvbnRleHRSZWNyZWF0aW9uVGlja1Jh
dGUgPSAwLjAzOwpAQCAtNTQ5LDYgKzU1MiwyOCBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmJlZ2lu
RnJhbWUoKQogICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIH0KIAorY2xh
c3MgQ0NUaHJlYWRQcm94eVRleHR1cmVVcGRhdGVUaW1lciA6IHB1YmxpYyBDQ1RpbWVyLCBDQ1Rp
bWVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxDQ1RocmVhZFByb3h5
VGV4dHVyZVVwZGF0ZVRpbWVyPiBjcmVhdGUoQ0NUaHJlYWRQcm94eSogcHJveHkpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDVGhyZWFkUHJveHlUZXh0dXJlVXBkYXRlVGlt
ZXIocHJveHkpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgb25UaW1lckZpcmVkKCkgT1ZF
UlJJREUKKyAgICB7CisgICAgICAgIG1fcHJveHktPnRleHR1cmVVcGRhdGVDb21wbGV0ZU9uSW1w
bFRocmVhZCgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBDQ1RocmVhZFByb3h5
VGV4dHVyZVVwZGF0ZVRpbWVyKENDVGhyZWFkUHJveHkqIHByb3h5KQorICAgICAgICA6IENDVGlt
ZXIoQ0NQcm94eTo6aW1wbFRocmVhZCgpLCB0aGlzKQorICAgICAgICAsIG1fcHJveHkocHJveHkp
CisgICAgeworICAgIH0KKworICAgIENDVGhyZWFkUHJveHkqIG1fcHJveHk7Cit9OworCiB2b2lk
IENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRocmVhZChDQ0NvbXBsZXRp
b25FdmVudCogY29tcGxldGlvbikKIHsKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6
YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkIiwgdGhpcywgMCk7CkBAIC01NzQsNiArNTk5
LDExIEBAIGJvb2wgQ0NUaHJlYWRQcm94eTo6aGFzTW9yZVJlc291cmNlVXBkYXRlcygpIGNvbnN0
CiAgICAgcmV0dXJuIG1fY3VycmVudFRleHR1cmVVcGRhdGVyT25JbXBsVGhyZWFkLT5oYXNNb3Jl
VXBkYXRlcygpOwogfQogCitkb3VibGUgQ0NUaHJlYWRQcm94eTo6ZXhwZWN0ZWRTZWNvbmRzVG9Q
ZXJmb3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBjb25zdAoreworICAgIHJldHVybiB0ZXh0
dXJlVXBkYXRlVGlja1JhdGU7Cit9CisKIGJvb2wgQ0NUaHJlYWRQcm94eTo6Y2FuRHJhdygpCiB7
CiAgICAgQVNTRVJUKGlzSW1wbFRocmVhZCgpKTsKQEAgLTU4NSw4ICs2MTUsMTEgQEAgYm9vbCBD
Q1RocmVhZFByb3h5OjpjYW5EcmF3KCkKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0
aW9uVXBkYXRlTW9yZVJlc291cmNlcygpCiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJv
eHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMiLCB0aGlzLCAwKTsKKyAgICBp
ZiAoIW1fY3VycmVudFRleHR1cmVVcGRhdGVUaW1lcikKKyAgICAgICAgbV9jdXJyZW50VGV4dHVy
ZVVwZGF0ZVRpbWVyID0gQ0NUaHJlYWRQcm94eVRleHR1cmVVcGRhdGVUaW1lcjo6Y3JlYXRlKHRo
aXMpOworICAgIG1fY3VycmVudFRleHR1cmVVcGRhdGVUaW1lci0+c3RhcnRPbmVTaG90KHRleHR1
cmVVcGRhdGVUaWNrUmF0ZSk7CiAgICAgQVNTRVJUKG1fY3VycmVudFRleHR1cmVVcGRhdGVyT25J
bXBsVGhyZWFkKTsKLSAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlck9uSW1wbFRocmVhZC0+dXBk
YXRlKG1fbGF5ZXJUcmVlSG9zdEltcGwtPmNvbnRleHQoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+
Y29udGVudHNUZXh0dXJlQWxsb2NhdG9yKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVu
ZGVyZXIoKS0+dGV4dHVyZUNvcGllcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRl
cmVyKCktPnRleHR1cmVVcGxvYWRlcigpLCB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lKTsKKyAgICBt
X2N1cnJlbnRUZXh0dXJlVXBkYXRlck9uSW1wbFRocmVhZC0+dXBkYXRlKG1fbGF5ZXJUcmVlSG9z
dEltcGwtPmNvbnRleHQoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+Y29udGVudHNUZXh0dXJlQWxs
b2NhdG9yKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZUNv
cGllcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVVcGxv
YWRlcigpLCB0ZXh0dXJlVXBkYXRlc1BlclRpY2spOwogfQogCiB2b2lkIENDVGhyZWFkUHJveHk6
OnNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpCkBAIC04NTQsNyArODg3LDcgQEAgdm9pZCBDQ1RocmVh
ZFByb3h5OjpzZXRGdWxsUm9vdExheWVyRGFtYWdlT25JbXBsVGhyZWFkKCkKIAogc2l6ZV90IEND
VGhyZWFkUHJveHk6Om1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcygpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIHRleHR1cmVVcGRhdGVzUGVyRnJhbWU7CisgICAgcmV0dXJuIHRleHR1cmVVcGRhdGVzUGVy
VGljazsKIH0KIAogdm9pZCBDQ1RocmVhZFByb3h5OjpzZXRGb250QXRsYXMoUGFzc093blB0cjxD
Q0ZvbnRBdGxhcz4gZm9udEF0bGFzKQpAQCAtODg0LDQgKzkxNywxMSBAQCB2b2lkIENDVGhyZWFk
UHJveHk6OnJlY3JlYXRlQ29udGV4dE9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCogY29t
cGxldGlvbiwgRwogICAgIGNvbXBsZXRpb24tPnNpZ25hbCgpOwogfQogCit2b2lkIENDVGhyZWFk
UHJveHk6OnRleHR1cmVVcGRhdGVDb21wbGV0ZU9uSW1wbFRocmVhZCgpCit7CisgICAgQVNTRVJU
KGlzSW1wbFRocmVhZCgpKTsKKyAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6dGV4dHVy
ZVVwZGF0ZUNvbXBsZXRlT25JbXBsVGhyZWFkIiwgdGhpcywgMCk7CisgICAgbV9zY2hlZHVsZXJP
bkltcGxUaHJlYWQtPmRpZFVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZSgpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggMjkxNWE4MTE5
ZTdmYzRhNjhlMmEzZjIyNTA3N2YyOWY4OTk3ZDdlZi4uNjA0OWNlNDgxZmQ5NWFhMDBjOGU2Yzky
NzMzM2RiMjUyYTc0OTM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtNDMsNiArNDMs
NyBAQCBjbGFzcyBDQ1Njb3BlZFRocmVhZFByb3h5OwogY2xhc3MgQ0NUZXh0dXJlVXBkYXRlcjsK
IGNsYXNzIENDVGhyZWFkOwogY2xhc3MgQ0NUaHJlYWRQcm94eUNvbnRleHRSZWNyZWF0aW9uVGlt
ZXI7CitjbGFzcyBDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0ZVRpbWVyOwogCiBjbGFzcyBDQ1Ro
cmVhZFByb3h5IDogcHVibGljIENDUHJveHksIENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQsIEND
U2NoZWR1bGVyQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTg2LDYgKzg3LDcgQEAgcHVibGljOgogICAg
IC8vIENDU2NoZWR1bGVyQ2xpZW50IGltcGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCBib29sIGNh
bkRyYXcoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzTW9yZVJlc291cmNlVXBkYXRl
cygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgZG91YmxlIGV4cGVjdGVkU2Vjb25kc1Rv
UGVyZm9ybU5leHRVcGRhdGVNb3JlUmVzb3VyY2VzKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJh
d0FuZFN3YXBJZlBvc3NpYmxlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFj
dGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwRm9yY2VkKCkg
T1ZFUlJJREU7CkBAIC05Nyw2ICs5OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgQ0NUaHJlYWRQcm94eShDQ0xheWVyVHJlZUhvc3QqKTsKICAgICBmcmllbmQgY2xhc3MgQ0NU
aHJlYWRQcm94eUNvbnRleHRSZWNyZWF0aW9uVGltZXI7CisgICAgZnJpZW5kIGNsYXNzIENDVGhy
ZWFkUHJveHlUZXh0dXJlVXBkYXRlVGltZXI7CiAKICAgICAvLyBTZXQgb24gaW1wbCB0aHJlYWQs
IHJlYWQgb24gbWFpbiB0aHJlYWQuCiAgICAgc3RydWN0IEJlZ2luRnJhbWVBbmRDb21taXRTdGF0
ZSB7CkBAIC0xNDUsNiArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICBDQ1NjaGVkdWxlZEFjdGlvbkRy
YXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwSW50ZXJuYWwoYm9vbCBm
b3JjZWREcmF3KTsKICAgICB2b2lkIHNldEZvbnRBdGxhc09uSW1wbFRocmVhZChQYXNzT3duUHRy
PENDRm9udEF0bGFzPik7CiAgICAgdm9pZCBmb3JjZVNlcmlhbGl6ZU9uU3dhcEJ1ZmZlcnNPbklt
cGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqKTsKKyAgICB2b2lkIHRleHR1cmVVcGRhdGVDb21w
bGV0ZU9uSW1wbFRocmVhZCgpOwogCiAgICAgLy8gQWNjZXNzZWQgb24gbWFpbiB0aHJlYWQgb25s
eS4KICAgICBib29sIG1fYW5pbWF0ZVJlcXVlc3RlZDsKQEAgLTE4Niw2ICsxOTAsNyBAQCBwcml2
YXRlOgogICAgIENDQ29tcGxldGlvbkV2ZW50KiBtX3RleHR1cmVBY3F1aXNpdGlvbkNvbXBsZXRp
b25FdmVudE9uSW1wbFRocmVhZDsKIAogICAgIE93blB0cjxDQ1RleHR1cmVVcGRhdGVyPiBtX2N1
cnJlbnRUZXh0dXJlVXBkYXRlck9uSW1wbFRocmVhZDsKKyAgICBPd25QdHI8Q0NUaHJlYWRQcm94
eVRleHR1cmVVcGRhdGVUaW1lcj4gbV9jdXJyZW50VGV4dHVyZVVwZGF0ZVRpbWVyOwogCiAgICAg
Ly8gU2V0IHdoZW4gdGhlIG5leHQgZHJhdyBzaG91bGQgcG9zdCBkaWRDb21taXRBbmREcmF3RnJh
bWUgdG8gdGhlIG1haW4gdGhyZWFkLgogICAgIGJvb2wgbV9uZXh0RnJhbWVJc05ld2x5Q29tbWl0
dGVkRnJhbWVPbkltcGxUaHJlYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbWVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCmluZGV4IGRjY2I0NzBh
NjM4M2UzMDRkYjExNmE1YjlkZjkxZGU1NjA2OGUwODUuLmMzNjRkOTJiZDAyOGEyMmZmYThhMmE4
N2ZjMTkzMGI1OGRlZjhlNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCkBAIC01MCw2ICs1MCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENDVGltZVNvdXJjZUNsaWVu
dCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wpID0gMDsKICAgICB2aXJ0
dWFsIGJvb2wgYWN0aXZlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIG5leHRUaWNr
VGltZSgpIGNvbnN0ID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4IDAzYTk4YTYzODlhODU0ZjIx
ZDc1MTI1MTI0ZDI0NzQ2MzNkZmMwZDIuLjAxOWI0NDMwYTAxNmE5MGIxMzNjMWVhNDc0NTc3N2Y1
MWM3NzZmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXll
clRyZWVIb3N0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xh
eWVyVHJlZUhvc3RUZXN0LmNwcApAQCAtMTg4NCw3ICsxODg0LDcgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgQ29tcG9zaXRvckZha2VXZWJHcmFwaGljc0NvbnRleHQzRFdpdGhUZXh0dXJlVHJh
Y2tpbmcqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxDb21wb3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29u
dGV4dDNEV2l0aFRleHR1cmVUcmFja2luZyo+KEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0
cmFjdFdlYkdyYXBoaWNzQ29udGV4dDNEKGltcGwtPmNvbnRleHQoKSkpOwogCi0gICAgICAgIC8v
IE51bWJlciBvZiB0ZXh0dXJlcyB1c2VkIGZvciBkcmF3aW5nIHNob3VsZCB0d28gZXhjZXB0IGZv
ciBmcmFtZSA0CisgICAgICAgIC8vIE51bWJlciBvZiB0ZXh0dXJlcyB1c2VkIGZvciBkcmF3aW5n
IHNob3VsZCBiZSB0d28gZXhjZXB0IGZvciBmcmFtZSA0CiAgICAgICAgIC8vIHdoZXJlIHRoZSB2
aWV3cG9ydCBvbmx5IGNvbnRhaW5zIG9uZSBsYXllci4KICAgICAgICAgaWYgKGltcGwtPnNvdXJj
ZUZyYW1lTnVtYmVyKCkgPT0gMykKICAgICAgICAgICAgIEVYUEVDVF9FUSgxLCBjb250ZXh0LT5u
dW1Vc2VkVGV4dHVyZXMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdC5jcHAKaW5kZXggMjczMWM3NmZk
ZTMxMDBmMDZiY2M5Njg3ODg2YzdlYmM3YTJkZjNiYi4uZTIwODgwMTk4ZTg4MDM4NWQwYjAyNzRj
ZDQzNjRjYmRkYWJkMGJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1NjaGVkdWxlclN0YXRlTWFjaGluZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LmNwcApAQCAtMjIzLDYgKzIy
Myw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0Q29tbWl0QWZ0ZXJG
YWlsZWREcmF3QWxsb3dzRHJhd0luU2FtZUZyYW1lCiAKICAgICAvLyBGaW5pc2ggdGhlIGNvbW1p
dC4KICAgICBzdGF0ZS5iZWdpbkZyYW1lQ29tcGxldGUoKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRh
dGVNb3JlUmVzb3VyY2VzKHRydWUpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFj
aGluZTo6QUNUSU9OX0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUubmV4dEFjdGlv
bigpKTsKICAgICBzdGF0ZS51cGRhdGVTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNU
SU9OX0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUyk7CiAgICAgc3RhdGUuYmVnaW5VcGRhdGVN
b3JlUmVzb3VyY2VzQ29tcGxldGUoZmFsc2UpOwpAQCAtMjc0LDYgKzI3NSw3IEBAIFRFU1QoQ0NT
Y2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0Q29tbWl0QWZ0ZXJGYWlsZWRBbmRTdWNjZXNz
ZnVsRHJhd0RvZXNOb3RBCiAKICAgICAvLyBGaW5pc2ggdGhlIGNvbW1pdC4KICAgICBzdGF0ZS5i
ZWdpbkZyYW1lQ29tcGxldGUoKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2Vz
KHRydWUpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JF
R0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUubmV4dEFjdGlvbigpKTsKICAgICBzdGF0
ZS51cGRhdGVTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lOX1VQREFU
RV9NT1JFX1JFU09VUkNFUyk7CiAgICAgc3RhdGUuYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29t
cGxldGUoZmFsc2UpOwpAQCAtNDg5LDYgKzQ5MSw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1h
Y2hpbmVUZXN0LCBUZXN0VXBkYXRlc19Ob1JlZHJhd19PbmVSb3VuZE9mVXBkYXRlcykKICAgICBz
dGF0ZS5zZXRDb21taXRTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRF
X1VQREFUSU5HX1JFU09VUkNFUyk7CiAgICAgc3RhdGUuc2V0TmVlZHNSZWRyYXcoZmFsc2UpOwog
ICAgIHN0YXRlLnNldFVwZGF0ZU1vcmVSZXNvdXJjZXNQZW5kaW5nKGZhbHNlKTsKKyAgICBzdGF0
ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKHRydWUpOwogICAgIHN0YXRlLnNldFZpc2libGUo
dHJ1ZSk7CiAKICAgICAvLyBWZXJpZnkgd2UgYmVnaW4gdXBkYXRlLCBib3RoIGZvciB2c3luYyBh
bmQgbm90IHZzeW5jLgpAQCAtNTE3LDYgKzUyMCw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1h
Y2hpbmVUZXN0LCBUZXN0VXBkYXRlc19Ob1JlZHJhd19Ud29Sb3VuZHNPZlVwZGF0ZXMpCiAgICAg
c3RhdGUuc2V0Q29tbWl0U3RhdGUoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFU
RV9VUERBVElOR19SRVNPVVJDRVMpOwogICAgIHN0YXRlLnNldE5lZWRzUmVkcmF3KGZhbHNlKTsK
ICAgICBzdGF0ZS5zZXRVcGRhdGVNb3JlUmVzb3VyY2VzUGVuZGluZyhmYWxzZSk7CisgICAgc3Rh
dGUuc2V0Q2FuVXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsKICAgICBzdGF0ZS5zZXRWaXNpYmxl
KHRydWUpOwogCiAgICAgLy8gVmVyaWZ5IHRoZSB1cGRhdGUgYmVnaW5zLCBib3RoIGZvciB2c3lu
YyBhbmQgbm90IHZzeW5jLgpAQCAtNTczLDYgKzU3Nyw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0
ZU1hY2hpbmVUZXN0LCBUZXN0VXBkYXRlc19XaXRoUmVkcmF3X09uZVJvdW5kT2ZVcGRhdGVzKQog
ICAgIHN0YXRlLnNldENvbW1pdFN0YXRlKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRf
U1RBVEVfVVBEQVRJTkdfUkVTT1VSQ0VTKTsKICAgICBzdGF0ZS5zZXROZWVkc1JlZHJhdyh0cnVl
KTsKICAgICBzdGF0ZS5zZXRVcGRhdGVNb3JlUmVzb3VyY2VzUGVuZGluZyhmYWxzZSk7CisgICAg
c3RhdGUuc2V0Q2FuVXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsKICAgICBzdGF0ZS5zZXRWaXNp
YmxlKHRydWUpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9O
X0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUubmV4dEFjdGlvbigpKTsKIApAQCAt
NjMzLDYgKzYzOCw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0U2V0
TmVlZHNDb21taXRJc05vdExvc3QpCiAKICAgICAvLyBMZXQgdGhlIGZyYW1lIGZpbmlzaC4KICAg
ICBzdGF0ZS5iZWdpbkZyYW1lQ29tcGxldGUoKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3Jl
UmVzb3VyY2VzKHRydWUpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6
Q09NTUlUX1NUQVRFX1VQREFUSU5HX1JFU09VUkNFUywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CiAg
ICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRF
X01PUkVfUkVTT1VSQ0VTLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwogICAgIHN0YXRlLnVwZGF0ZVN0
YXRlKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVT
T1VSQ0VTKTsKQEAgLTY3Niw2ICs2ODIsNyBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
VGVzdCwgVGVzdEZ1bGxDeWNsZSkKIAogICAgIC8vIFRlbGwgdGhlIHNjaGVkdWxlciB0aGUgZnJh
bWUgZmluaXNoZWQuCiAgICAgc3RhdGUuYmVnaW5GcmFtZUNvbXBsZXRlKCk7CisgICAgc3RhdGUu
c2V0Q2FuVXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9VUERBVElOR19SRVNPVVJDRVMsIHN0YXRlLmNv
bW1pdFN0YXRlKCkpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNU
SU9OX0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUubmV4dEFjdGlvbigpKTsKIApA
QCAtNzI4LDYgKzczNSw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVUZXN0LCBUZXN0
RnVsbEN5Y2xlV2l0aENvbW1pdFJlcXVlc3RJbmJldHdlZW4pCiAKICAgICAvLyBUZWxsIHRoZSBz
Y2hlZHVsZXIgdGhlIGZyYW1lIGZpbmlzaGVkLgogICAgIHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0
ZSgpOworICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQ
RUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RBVEVfVVBEQVRJTkdfUkVT
T1VSQ0VTLCBzdGF0ZS5jb21taXRTdGF0ZSgpKTsKICAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJT
dGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVMsIHN0YXRlLm5l
eHRBY3Rpb24oKSk7CiAKQEAgLTc4Niw2ICs3OTQsNyBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVN
YWNoaW5lVGVzdCwgVGVzdEdvZXNJbnZpc2libGVNaWRDb21taXQpCiAKICAgICAvLyBUZWxsIHRo
ZSBzY2hlZHVsZXIgdGhlIGZyYW1lIGZpbmlzaGVkCiAgICAgc3RhdGUuYmVnaW5GcmFtZUNvbXBs
ZXRlKCk7CisgICAgc3RhdGUuc2V0Q2FuVXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsKICAgICBF
WFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9VUERBVElOR19S
RVNPVVJDRVMsIHN0YXRlLmNvbW1pdFN0YXRlKCkpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxl
clN0YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUu
bmV4dEFjdGlvbigpKTsKIApAQCAtODk2LDYgKzkwNSw3IEBAIFRFU1QoQ0NTY2hlZHVsZXJTdGF0
ZU1hY2hpbmVUZXN0LCBUZXN0Q29udGV4dExvc3RXaGlsZUNvbW1pdEluUHJvZ3Jlc3MpCiAKICAg
ICAvLyBGaW5pc2ggdGhlIGZyYW1lLCB1cGRhdGUgcmVzb3VyY2VzLCBhbmQgY29tbWl0LgogICAg
IHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0ZSgpOworICAgIHN0YXRlLnNldENhblVwZGF0ZU1vcmVS
ZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpB
Q1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOwog
ICAgIHN0YXRlLnVwZGF0ZVN0YXRlKHN0YXRlLm5leHRBY3Rpb24oKSk7CiAgICAgRVhQRUNUX0VR
KENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fTk9ORSwgc3RhdGUubmV4dEFjdGlvbigp
KTsKQEAgLTk0MSw2ICs5NTEsNyBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdCwg
VGVzdENvbnRleHRMb3N0V2hpbGVDb21taXRJblByb2dyZXNzQW5kQW5vdGhlcgogCiAgICAgLy8g
RmluaXNoIHRoZSBmcmFtZSwgdXBkYXRlIHJlc291cmNlcywgYW5kIGNvbW1pdC4KICAgICBzdGF0
ZS5iZWdpbkZyYW1lQ29tcGxldGUoKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3Vy
Y2VzKHRydWUpOwogICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9O
X0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUubmV4dEFjdGlvbigpKTsKICAgICBz
dGF0ZS51cGRhdGVTdGF0ZShzdGF0ZS5uZXh0QWN0aW9uKCkpOwogICAgIEVYUEVDVF9FUShDQ1Nj
aGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX05PTkUsIHN0YXRlLm5leHRBY3Rpb24oKSk7CkBA
IC0xMDE4LDYgKzEwMjksNyBAQCBURVNUKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdCwgVGVz
dEJlZ2luRnJhbWVXaGVuQ29tbWl0SW5Qcm9ncmVzcykKICAgICBzdGF0ZS5zZXROZWVkc0ZvcmNl
ZENvbW1pdCh0cnVlKTsKIAogICAgIHN0YXRlLmJlZ2luRnJhbWVDb21wbGV0ZSgpOworICAgIHN0
YXRlLnNldENhblVwZGF0ZU1vcmVSZXNvdXJjZXModHJ1ZSk7CiAgICAgRVhQRUNUX0VRKENDU2No
ZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBz
dGF0ZS5uZXh0QWN0aW9uKCkpOwogICAgIHN0YXRlLnVwZGF0ZVN0YXRlKHN0YXRlLm5leHRBY3Rp
b24oKSk7CiAgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fTk9O
RSwgc3RhdGUubmV4dEFjdGlvbigpKTsKQEAgLTEwNDEsNCArMTA1Myw1MyBAQCBURVNUKENDU2No
ZWR1bGVyU3RhdGVNYWNoaW5lVGVzdCwgVGVzdEJlZ2luRnJhbWVXaGVuQ29udGV4dExvc3QpCiAg
ICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fRlJBTUUs
IHN0YXRlLm5leHRBY3Rpb24oKSk7CiB9CiAKK1RFU1QoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmVU
ZXN0LCBUZXN0Q2FuVXBkYXRlTW9yZVJlc291cmNlcykKK3sKKyAgICBTdGF0ZU1hY2hpbmUgc3Rh
dGU7CisgICAgc3RhdGUuc2V0VmlzaWJsZSh0cnVlKTsKKyAgICBzdGF0ZS5zZXROZWVkc1JlZHJh
dyh0cnVlKTsKKyAgICBzdGF0ZS5zZXRDYW5CZWdpbkZyYW1lKHRydWUpOworCisgICAgLy8gU3Rh
cnQgY2xlYW4gYW5kIHNldCBjb21taXQuCisgICAgc3RhdGUuc2V0TmVlZHNDb21taXQodHJ1ZSk7
CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fRlJB
TUUsIHN0YXRlLm5leHRBY3Rpb24oKSk7CisKKyAgICAvLyBCZWdpbiB0aGUgZnJhbWUuCisgICAg
c3RhdGUudXBkYXRlU3RhdGUoQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9G
UkFNRSk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpDT01NSVRfU1RB
VEVfRlJBTUVfSU5fUFJPR1JFU1MsIHN0YXRlLmNvbW1pdFN0YXRlKCkpOworICAgIEVYUEVDVF9G
QUxTRShzdGF0ZS5uZWVkc0NvbW1pdCgpKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0
ZU1hY2hpbmU6OkFDVElPTl9OT05FLCBzdGF0ZS5uZXh0QWN0aW9uKCkpOworCisgICAgLy8gVGVs
bCB0aGUgc2NoZWR1bGVyIHRoZSBmcmFtZSBmaW5pc2hlZC4KKyAgICBzdGF0ZS5iZWdpbkZyYW1l
Q29tcGxldGUoKTsKKyAgICBzdGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKHRydWUpOwor
ICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6Q09NTUlUX1NUQVRFX1VQREFU
SU5HX1JFU09VUkNFUywgc3RhdGUuY29tbWl0U3RhdGUoKSk7CisgICAgRVhQRUNUX0VRKENDU2No
ZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTLCBz
dGF0ZS5uZXh0QWN0aW9uKCkpOworCisgICAgLy8gVGVsbCB0aGUgc2NoZWR1bGVyIHRoZSB1cGRh
dGUgYmVnYW4gYW5kIGZpbmlzaGVkLgorICAgIHN0YXRlLnVwZGF0ZVN0YXRlKENDU2NoZWR1bGVy
U3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTKTsKKyAgICBz
dGF0ZS5zZXRDYW5VcGRhdGVNb3JlUmVzb3VyY2VzKGZhbHNlKTsKKyAgICBzdGF0ZS5iZWdpblVw
ZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZSh0cnVlKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVs
ZXJTdGF0ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9VUERBVElOR19SRVNPVVJDRVMsIHN0YXRlLmNv
bW1pdFN0YXRlKCkpOworICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNU
SU9OX05PTkUsIHN0YXRlLm5leHRBY3Rpb24oKSk7CisKKyAgICAvLyBBdCB2c3luYywgZHJhdy4K
KyAgICBzdGF0ZS5kaWRFbnRlclZTeW5jKCk7CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3Rh
dGVNYWNoaW5lOjpBQ1RJT05fRFJBV19JRl9QT1NTSUJMRSwgc3RhdGUubmV4dEFjdGlvbigpKTsK
KyAgICBzdGF0ZS51cGRhdGVTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0RS
QVdfSUZfUE9TU0lCTEUpOworICAgIHN0YXRlLmRpZERyYXdJZlBvc3NpYmxlQ29tcGxldGVkKHRy
dWUpOworICAgIHN0YXRlLmRpZExlYXZlVlN5bmMoKTsKKworICAgIC8vIFRlbGwgdGhlIHNjaGVk
dWxlciB0aGF0IHdlIGNhbiB1cGRhdGUgbW9yZSByZXNvdXJjZXMuCisgICAgc3RhdGUuc2V0Q2Fu
VXBkYXRlTW9yZVJlc291cmNlcyh0cnVlKTsKKyAgICBFWFBFQ1RfRVEoQ0NTY2hlZHVsZXJTdGF0
ZU1hY2hpbmU6OkNPTU1JVF9TVEFURV9VUERBVElOR19SRVNPVVJDRVMsIHN0YXRlLmNvbW1pdFN0
YXRlKCkpOworICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JF
R0lOX1VQREFURV9NT1JFX1JFU09VUkNFUywgc3RhdGUubmV4dEFjdGlvbigpKTsKKworICAgIC8v
IFRlbGwgdGhlIHNjaGVkdWxlciB0aGUgc2Vjb25kIHVwZGF0ZSBiZWdhbiBhbmQgZmluaXNoZWQK
KyAgICBzdGF0ZS51cGRhdGVTdGF0ZShDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JF
R0lOX1VQREFURV9NT1JFX1JFU09VUkNFUyk7CisgICAgc3RhdGUuYmVnaW5VcGRhdGVNb3JlUmVz
b3VyY2VzQ29tcGxldGUoZmFsc2UpOworICAgIEVYUEVDVF9FUShDQ1NjaGVkdWxlclN0YXRlTWFj
aGluZTo6Q09NTUlUX1NUQVRFX1JFQURZX1RPX0NPTU1JVCwgc3RhdGUuY29tbWl0U3RhdGUoKSk7
CisgICAgRVhQRUNUX0VRKENDU2NoZWR1bGVyU3RhdGVNYWNoaW5lOjpBQ1RJT05fQ09NTUlULCBz
dGF0ZS5uZXh0QWN0aW9uKCkpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHAKaW5kZXggNDEyNTA4ODRiZjRkYTAyZTVhNmEwMGRi
ZmQ4YzE2ODVmNDYyNGZlYy4uYzQzNTA4ZmViMzJkNDU0YmNkNTY1ODM3YjM3NzY1M2Y4MjY1MzEw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0
LmNwcApAQCAtNDgsMTAgKzQ4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9kcmF3V2lsbEhhcHBl
biA9IHRydWU7CiAgICAgICAgIG1fc3dhcFdpbGxIYXBwZW5JZkRyYXdIYXBwZW5zID0gdHJ1ZTsK
ICAgICAgICAgbV9udW1EcmF3cyA9IDA7CisgICAgICAgIG1fZXhwZWN0ZWRTZWNvbmRzVG9QZXJm
b3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXMgPSAwOwogICAgIH0KIAogICAgIHZvaWQgc2V0SGFz
TW9yZVJlc291cmNlVXBkYXRlcyhib29sIGIpIHsgbV9oYXNNb3JlUmVzb3VyY2VVcGRhdGVzID0g
YjsgfQogICAgIHZvaWQgc2V0Q2FuRHJhdyhib29sIGIpIHsgbV9jYW5EcmF3ID0gYjsgfQorICAg
IHZvaWQgc2V0RXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4dFVwZGF0ZU1vcmVSZXNvdXJjZXMo
ZG91YmxlIHQpIHsgbV9leHBlY3RlZFNlY29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJlc291
cmNlcyA9IHQ7IH0KIAogICAgIGludCBudW1EcmF3cygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtRHJh
d3M7IH0KICAgICBpbnQgbnVtQWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGlu
dD4obV9hY3Rpb25zLnNpemUoKSk7IH0KQEAgLTY3LDYgKzY5LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBib29sIGNhbkRyYXcoKSBPVkVSUklERSB7IHJldHVybiBtX2NhbkRyYXc7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaGFzTW9yZVJlc291cmNlVXBkYXRlcygpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1faGFzTW9yZVJlc291cmNlVXBkYXRlczsgfQorICAgIHZpcnR1YWwgZG91YmxlIGV4
cGVjdGVkU2Vjb25kc1RvUGVyZm9ybU5leHRVcGRhdGVNb3JlUmVzb3VyY2VzKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbV9leHBlY3RlZFNlY29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJl
c291cmNlczsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lKCkg
T1ZFUlJJREUgeyBtX2FjdGlvbnMucHVzaF9iYWNrKCJzY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1l
Iik7IH0KICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQgc2No
ZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJZlBvc3NpYmxlKCkgT1ZFUlJJREUKICAgICB7CkBAIC05
NCw2ICs5Nyw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fY2FuRHJhdzsKICAgICBib29sIG1f
ZHJhd1dpbGxIYXBwZW47CiAgICAgYm9vbCBtX3N3YXBXaWxsSGFwcGVuSWZEcmF3SGFwcGVuczsK
KyAgICBkb3VibGUgbV9leHBlY3RlZFNlY29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJlc291
cmNlczsKICAgICBpbnQgbV9udW1EcmF3czsKICAgICBzdGQ6OnZlY3Rvcjxjb25zdCBjaGFyKj4g
bV9hY3Rpb25zOwogfTsKQEAgLTExNCwxMiArMTE4LDEwIEBAIFRFU1QoQ0NTY2hlZHVsZXJUZXN0
LCBSZXF1ZXN0Q29tbWl0KQogICAgIGNsaWVudC5yZXNldCgpOwogCiAgICAgLy8gU2luY2UsIGhh
c01vcmVSZXNvdXJjZVVwZGF0ZXMgaXMgc2V0IHRvIGZhbHNlLAotICAgIC8vIGJlZ2luRnJhbWVD
b21wbGV0ZSBzaG91bGQgdXBkYXRlTW9yZVJlc291cmNlcywgdGhlbgotICAgIC8vIGNvbW1pdAor
ICAgIC8vIGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQganVzdCBjb21taXQKICAgICBzY2hlZHVs
ZXItPmJlZ2luRnJhbWVDb21wbGV0ZSgpOwotICAgIEVYUEVDVF9FUSgyLCBjbGllbnQubnVtQWN0
aW9ucygpKTsKLSAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNv
dXJjZXMiLCBjbGllbnQuYWN0aW9uKDApKTsKLSAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFj
dGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMSkpOworICAgIEVYUEVDVF9FUSgxLCBjbGllbnQu
bnVtQWN0aW9ucygpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvbkNvbW1pdCIs
IGNsaWVudC5hY3Rpb24oMCkpOwogICAgIEVYUEVDVF9UUlVFKHRpbWVTb3VyY2UtPmFjdGl2ZSgp
KTsKICAgICBjbGllbnQucmVzZXQoKTsKIApAQCAtMTUyLDEyICsxNTQsMTAgQEAgVEVTVChDQ1Nj
aGVkdWxlclRlc3QsIFJlcXVlc3RDb21taXRBZnRlckJlZ2luRnJhbWUpCiAgICAgc2NoZWR1bGVy
LT5zZXROZWVkc0NvbW1pdCgpOwogCiAgICAgLy8gU2luY2UsIGhhc01vcmVSZXNvdXJjZVVwZGF0
ZXMgaXMgc2V0IHRvIGZhbHNlLCBhbmQgYW5vdGhlciBjb21taXQgaXMKLSAgICAvLyBuZWVkZWQs
IGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQgdXBkYXRlTW9yZVJlc291cmNlcywgdGhlbiBjb21t
aXQsIHRoZW4KLSAgICAvLyBiZWdpbiBhbm90aGVyIGZyYW1lLgorICAgIC8vIG5lZWRlZCwgYmVn
aW5GcmFtZUNvbXBsZXRlIHNob3VsZCBjb21taXQsIHRoZW4gYmVnaW4gYW5vdGhlciBmcmFtZS4K
ICAgICBzY2hlZHVsZXItPmJlZ2luRnJhbWVDb21wbGV0ZSgpOwotICAgIEVYUEVDVF9FUSgyLCBj
bGllbnQubnVtQWN0aW9ucygpKTsKLSAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvblVw
ZGF0ZU1vcmVSZXNvdXJjZXMiLCBjbGllbnQuYWN0aW9uKDApKTsKLSAgICBFWFBFQ1RfU1RSRVEo
InNjaGVkdWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMSkpOworICAgIEVYUEVDVF9F
USgxLCBjbGllbnQubnVtQWN0aW9ucygpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFj
dGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMCkpOwogICAgIGNsaWVudC5yZXNldCgpOwogCiAg
ICAgLy8gVGljayBzaG91bGQgZHJhdyBidXQgdGhlbiBiZWdpbiBhbm90aGVyIGZyYW1lLgpAQCAt
NDkzLDQgKzQ5Myw2OSBAQCBURVNUKENDU2NoZWR1bGVyVGVzdCwgTm9CZWdpbkZyYW1lV2hlblN3
YXBGYWlsc0R1cmluZ0ZvcmNlZENvbW1pdCkKICAgICBFWFBFQ1RfRVEoMCwgY29udHJvbGxlclB0
ci0+bnVtRnJhbWVzUGVuZGluZygpKTsKIH0KIAorVEVTVChDQ1NjaGVkdWxlclRlc3QsIFVwZGF0
ZU1vcmVSZXNvdXJjZXMpCit7CisgICAgRmFrZUNDU2NoZWR1bGVyQ2xpZW50IGNsaWVudDsKKyAg
ICBSZWZQdHI8RmFrZUNDVGltZVNvdXJjZT4gdGltZVNvdXJjZSA9IGFkb3B0UmVmKG5ldyBGYWtl
Q0NUaW1lU291cmNlKCkpOworICAgIE93blB0cjxDQ1NjaGVkdWxlcj4gc2NoZWR1bGVyID0gQ0NT
Y2hlZHVsZXI6OmNyZWF0ZSgmY2xpZW50LCBhZG9wdFB0cihuZXcgQ0NGcmFtZVJhdGVDb250cm9s
bGVyKHRpbWVTb3VyY2UpKSk7CisgICAgc2NoZWR1bGVyLT5zZXRWaXNpYmxlKHRydWUpOworICAg
IHNjaGVkdWxlci0+c2V0Q2FuQmVnaW5GcmFtZSh0cnVlKTsKKworICAgIC8vIFNldE5lZWRzQ29t
bWl0IHNob3VsZCBiZWdpbiB0aGUgZnJhbWUuCisgICAgc2NoZWR1bGVyLT5zZXROZWVkc0NvbW1p
dCgpOworICAgIEVYUEVDVF9FUSgxLCBjbGllbnQubnVtQWN0aW9ucygpKTsKKyAgICBFWFBFQ1Rf
U1RSRVEoInNjaGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUiLCBjbGllbnQuYWN0aW9uKDApKTsKKyAg
ICBjbGllbnQucmVzZXQoKTsKKworICAgIC8vIFNpbmNlLCBoYXNNb3JlUmVzb3VyY2VVcGRhdGVz
IGlzIHNldCB0byB0cnVlLCBiZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxkCisgICAgLy8gdXBkYXRl
TW9yZVJlc291cmNlcy4KKyAgICBjbGllbnQuc2V0SGFzTW9yZVJlc291cmNlVXBkYXRlcyh0cnVl
KTsKKyAgICBzY2hlZHVsZXItPmJlZ2luRnJhbWVDb21wbGV0ZSgpOworICAgIEVYUEVDVF9FUSgx
LCBjbGllbnQubnVtQWN0aW9ucygpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlv
blVwZGF0ZU1vcmVSZXNvdXJjZXMiLCBjbGllbnQuYWN0aW9uKDApKTsKKyAgICBjbGllbnQucmVz
ZXQoKTsKKworICAgIGNsaWVudC5zZXRIYXNNb3JlUmVzb3VyY2VVcGRhdGVzKHRydWUpOworICAg
IHNjaGVkdWxlci0+ZGlkVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKCk7CisgICAgRVhQRUNU
X0VRKDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVk
QWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIGNsaWVudC5hY3Rpb24oMCkpOworICAgIGNsaWVu
dC5yZXNldCgpOworCisgICAgLy8gU2luY2UsIFNldE5lZWRSZWRyYXcgaXMgc2V0IHRvIHRydWUs
IHJlc291cmNlIHVwZGF0ZXMgc2hvdWxkIGJlCisgICAgLy8gYXZvaWRlZCBhcyB3ZSBnZXQgY2xv
c2UgdG8gdGhlIG5leHQgdGljayB0aW1lLgorICAgIHNjaGVkdWxlci0+c2V0TmVlZHNSZWRyYXco
KTsKKyAgICBFWFBFQ1RfVFJVRShzY2hlZHVsZXItPnJlZHJhd1BlbmRpbmcoKSk7CisgICAgRVhQ
RUNUX1RSVUUodGltZVNvdXJjZS0+YWN0aXZlKCkpOworICAgIEVYUEVDVF9FUSgwLCBjbGllbnQu
bnVtRHJhd3MoKSk7CisKKyAgICAvLyBTaW5jZSwgZXhwZWN0ZWRTZWNvbmRzVG9QZXJmb3JtTmV4
dFVwZGF0ZU1vcmVSZXNvdXJjZXMgaXMgNSBzZWNvbmRzIGFuZAorICAgIC8vIG5leHRUaWNrVGlt
ZSBpcyAxIHNlY29uZCBhd2F5LCBkaWRVcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUgc2hvdWxk
CisgICAgLy8gbm90IGJlZ2luIGFub3RoZXIgdXBkYXRlLgorICAgIGNsaWVudC5zZXRIYXNNb3Jl
UmVzb3VyY2VVcGRhdGVzKHRydWUpOworICAgIGNsaWVudC5zZXRFeHBlY3RlZFNlY29uZHNUb1Bl
cmZvcm1OZXh0VXBkYXRlTW9yZVJlc291cmNlcyg1KTsKKyAgICB0aW1lU291cmNlLT5zZXROZXh0
VGlja1RpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgKyAxKTsKKyAgICBzY2hlZHVs
ZXItPmRpZFVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZSgpOworICAgIEVYUEVDVF9FUSgwLCBj
bGllbnQubnVtQWN0aW9ucygpKTsKKyAgICBjbGllbnQucmVzZXQoKTsKKworICAgIC8vIFNpbmNl
LCBleHBlY3RlZFNlY29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJlc291cmNlcyBpcyA1IHNl
Y29uZHMgYW5kCisgICAgLy8gbmV4dFRpY2tUaW1lIGlzIDEwIHNlY29uZHMgYXdheSwgZGlkVXBk
YXRlTW9yZVJlc291cmNlc0NvbXBsZXRlIHNob3VsZAorICAgIC8vIGJlZ2luIGFub3RoZXIgdXBk
YXRlLgorICAgIGNsaWVudC5zZXRIYXNNb3JlUmVzb3VyY2VVcGRhdGVzKHRydWUpOworICAgIGNs
aWVudC5zZXRFeHBlY3RlZFNlY29uZHNUb1BlcmZvcm1OZXh0VXBkYXRlTW9yZVJlc291cmNlcyg1
KTsKKyAgICB0aW1lU291cmNlLT5zZXROZXh0VGlja1RpbWUobW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCkgKyAxMCk7CisgICAgc2NoZWR1bGVyLT5kaWRVcGRhdGVNb3JlUmVzb3VyY2VzQ29t
cGxldGUoKTsKKyAgICBFWFBFQ1RfRVEoMSwgY2xpZW50Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQ
RUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIiwgY2xpZW50LmFj
dGlvbigwKSk7CisgICAgY2xpZW50LnJlc2V0KCk7CisKKyAgICAvLyBTaW5jZSwgaGFzTW9yZVJl
c291cmNlVXBkYXRlcyBpcyBzZXQgdG8gZmFsc2UsCisgICAgLy8gZGlkVXBkYXRlTW9yZVJlc291
cmNlc0NvbXBsZXRlIHNob3VsZCBjb21taXQuCisgICAgY2xpZW50LnNldEhhc01vcmVSZXNvdXJj
ZVVwZGF0ZXMoZmFsc2UpOworICAgIHNjaGVkdWxlci0+ZGlkVXBkYXRlTW9yZVJlc291cmNlc0Nv
bXBsZXRlKCk7CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIEVY
UEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigwKSk7Cisg
ICAgY2xpZW50LnJlc2V0KCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oCmluZGV4IDYyNTdlYzg4OGY1OGVjNzUy
Njg4N2E3NzFmNzI0OGYzZDUzZjY2NWYuLmYyZWM0YjhjMjk3YTMxMDkxNzZiMTk4NDZiZDg3ODAw
ZjM5MjJiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hl
ZHVsZXJUZXN0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Nj
aGVkdWxlclRlc3RDb21tb24uaApAQCAtODYsNiArODYsNyBAQCBjbGFzcyBGYWtlQ0NUaW1lU291
cmNlIDogcHVibGljIFdlYkNvcmU6OkNDVGltZVNvdXJjZSB7CiBwdWJsaWM6CiAgICAgRmFrZUND
VGltZVNvdXJjZSgpCiAgICAgICAgIDogbV9hY3RpdmUoZmFsc2UpCisgICAgICAgICwgbV9uZXh0
VGlja1RpbWUoMCkKICAgICAgICAgLCBtX2NsaWVudCgwKSB7IH0KIAogICAgIHZpcnR1YWwgfkZh
a2VDQ1RpbWVTb3VyY2UoKSB7IH0KQEAgLTkzLDYgKzk0LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRDbGllbnQoV2ViQ29yZTo6Q0NUaW1lU291cmNlQ2xpZW50KiBjbGllbnQpIE9W
RVJSSURFIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZl
KGJvb2wgYikgT1ZFUlJJREUgeyBtX2FjdGl2ZSA9IGI7IH0KICAgICB2aXJ0dWFsIGJvb2wgYWN0
aXZlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9hY3RpdmU7IH0KKyAgICB2aXJ0dWFsIGRv
dWJsZSBuZXh0VGlja1RpbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX25leHRUaWNrVGlt
ZTsgfQogCiAgICAgdm9pZCB0aWNrKCkKICAgICB7CkBAIC0xMDEsOCArMTAzLDExIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIG1fY2xpZW50LT5vblRpbWVyVGljaygpOwogICAgIH0KIAorICAgIHZv
aWQgc2V0TmV4dFRpY2tUaW1lKGRvdWJsZSBuZXh0VGlja1RpbWUpIHsgbV9uZXh0VGlja1RpbWUg
PSBuZXh0VGlja1RpbWU7IH0KKwogcHJvdGVjdGVkOgogICAgIGJvb2wgbV9hY3RpdmU7CisgICAg
ZG91YmxlIG1fbmV4dFRpY2tUaW1lOwogICAgIFdlYkNvcmU6OkNDVGltZVNvdXJjZUNsaWVudCog
bV9jbGllbnQ7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147164</attachid>
            <date>2012-06-12 14:30:31 -0700</date>
            <delta_ts>2012-06-15 00:25:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84281-20120612173031.patch</filename>
            <type>text/plain</type>
            <size>20310</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU5NDc2MjNlMGM5OWI2
MGM4YzAyY2VjMjFiOWZkY2U4MmE4OTlkYS4uNmY2ZmE2N2RhNWM2Yjc5ZDI0ZjdmYWQzYTA2Mjg5
OTlkZTI1ODk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA2LTEyICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBT
Y2hlZHVsZSB0ZXh0dXJlIHVwbG9hZHMgYmFzZWQgb24gaGFyZC1jb2RlZCB0aW1lciBhbmQgdnN5
bmMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJv
dmUgaW50ZXJhY3Rpb24gYmV0d2VlbiB2c3luYyBhbmQgdGV4dHVyZSB1cGxvYWRzIGJ5IHBlcmZv
cm1pbmcKKyAgICAgICAgdXBsb2FkcyBpbiBzbWFsbGVyIGJhdGNoZXMgYW5kIHVzZSBhIGhhcmQt
Y29kZWQgdGltZXIgdG8gZW11bGF0ZQorICAgICAgICB1cGxvYWQgY29tcGxldGlvbi4gVGhpcyBn
cmVhdGx5IHJlZHVjZXMgdGhlIGNoYW5jZSBvZiB0aGUgY29tcG9zaXRvcgorICAgICAgICBtaXNz
aW5nIGEgdnN5bmMgZHVlIHRvIGJlaW5nIGJ1c3kgd2l0aCB0ZXh0dXJlIHVwbG9hZHMuCisKKyAg
ICAgICAgVW5pdCB0ZXN0czogQ0NTY2hlZHVsZXJUZXN0LlJlcXVlc3RDb21taXQKKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NEZWxheUJhc2VkVGltZVNvdXJjZTo6bmV4dFRpY2tU
aW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpuZXh0VGlja1RpbWUpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFt
ZVJhdGVDb250cm9sbGVyLmg6CisgICAgICAgIChDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNDU2NoZWR1bGVyOjpwcm9jZXNzU2NoZWR1bGVkQWN0aW9ucyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuaDoKKyAg
ICAgICAgKENDU2NoZWR1bGVyQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdURik6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpDQ1RocmVhZFByb3h5KToKKyAgICAgICAgKENDVGhyZWFk
UHJveHlUZXh0dXJlVXBkYXRlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94
eVRleHR1cmVVcGRhdGVUaW1lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFk
UHJveHlUZXh0dXJlVXBkYXRlVGltZXI6OkNDVGhyZWFkUHJveHlUZXh0dXJlVXBkYXRlVGltZXIp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojpz
Y2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkND
VGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvbkNvbW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpD
Q1RocmVhZFByb3h5OjptYXhQYXJ0aWFsVGV4dHVyZVVwZGF0ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NUaHJlYWRQcm94eTo6dGV4dHVyZVVwZGF0ZU9uSW1wbFRocmVhZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChDQ1RocmVhZFByb3h5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbWVTb3VyY2UuaDoKKyAgICAgICAgKENDVGltZVNvdXJj
ZSk6CisKIDIwMTItMDYtMTAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFNvbWUgYWRkaXRpb25hbCB0d2Vha3MgdG8ga2VlcCBUcmVlU2hhcmVkIGNvZGUgc2ltcGxl
L2NsZWFuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGYwMjFhMWVlNzg5NWU1MzllY2I4
NjNlOTA1Y2EwMWZjMWQ1YzUxZjEuLmIyZGJlNzhhYWE2MWYwZDViY2NlNTE3ZWUyZTkwM2NiMThm
NTRmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTIt
MDYtMTIgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBb
Q2hyb21pdW1dIFNjaGVkdWxlIHRleHR1cmUgdXBsb2FkcyBiYXNlZCBvbiBoYXJkLWNvZGVkIHRp
bWVyIGFuZCB2c3luYy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg0MjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB0ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0VGVzdHM6
OlRFU1QpOgorICAgICAgICAqIHRlc3RzL0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oOgorICAgICAg
ICAoV2ViS2l0VGVzdHM6OkZha2VDQ1RpbWVTb3VyY2U6OkZha2VDQ1RpbWVTb3VyY2UpOgorICAg
ICAgICAoV2ViS2l0VGVzdHM6OkZha2VDQ1RpbWVTb3VyY2U6OnNldE5leHRUaWNrVGltZSk6Cisg
ICAgICAgIChGYWtlQ0NUaW1lU291cmNlKToKKwogMjAxMi0wNi0wOSAgRXVnZW5lIEtseXVjaG5p
a292ICA8ZXVzdGFzLmJ1Z0BnbWFpbC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRk
IG1lc3NhZ2UgbG9vcCBpbnN0cnVtZW50YXRpb24gdG8gcHVibGljIEFQSSBhbmQgdGltZWxpbmUg
YWdlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKaW5kZXgg
YjY4OGE3OGEyN2M1Nzk1MWRkOGQ2YmVmZmVlNzY2YzVkMjRmMjNlNC4uNzA0ZWZmNGJmN2EzZDZj
MDRkZWI1Y2QxZDI2NjBmYzhlMDE5ZWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJh
c2VkVGltZVNvdXJjZS5jcHAKQEAgLTE2MSw0ICsxNjEsMTIgQEAgdm9pZCBDQ0RlbGF5QmFzZWRU
aW1lU291cmNlOjpwb3N0TmV4dFRpY2tUYXNrKGRvdWJsZSBub3cpCiAgICAgbV90aWNrVGFyZ2V0
ID0gbmV3VGlja1RhcmdldDsKIH0KIAorZG91YmxlIENDRGVsYXlCYXNlZFRpbWVTb3VyY2U6Om5l
eHRUaWNrVGltZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2hhc1RpY2tUYXJnZXQpCisgICAgICAg
IHJldHVybiBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKworICAgIHJldHVybiBtX3Rp
Y2tUYXJnZXQ7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2Uu
aAppbmRleCA5OTc5NWRiODFjOTZjY2RjZGFmNWMwMmYwMmJjM2VlYmI2YzY1ZmQwLi42ZjIzZWM3
MDM2NjU1NjFkMzFhYTFjMzRhNzRkMGU5YjVlNjk0MmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NE
ZWxheUJhc2VkVGltZVNvdXJjZS5oCkBAIC00Nyw2ICs0Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhY3Rp
dmUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3N0YXRlICE9IFNUQVRFX0lOQUNUSVZFOyB9
CiAKKyAgICB2aXJ0dWFsIGRvdWJsZSBuZXh0VGlja1RpbWUoKSBjb25zdCBPVkVSUklERTsKKwog
ICAgIC8vIENDVGltZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIG9u
VGltZXJGaXJlZCgpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250
cm9sbGVyLmNwcAppbmRleCA4NGE3Y2IzMTBhM2JkNDk2ODM5MmZhYjIyZDk1NzFjNzVhOGI1N2Iy
Li41N2Q1YzM3YTZiMDM2ZjFjNGFjMWU5NDE5Y2NmZmZmM2Y5Zjg0YWE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAKQEAgLTEwNSw0ICsxMDUsOSBAQCB2b2lk
IENDRnJhbWVSYXRlQ29udHJvbGxlcjo6ZGlkQWJvcnRBbGxQZW5kaW5nRnJhbWVzKCkKICAgICBt
X251bUZyYW1lc1BlbmRpbmcgPSAwOwogfQogCitkb3VibGUgQ0NGcmFtZVJhdGVDb250cm9sbGVy
OjpuZXh0VGlja1RpbWUoKQoreworICAgIHJldHVybiBtX3RpbWVTb3VyY2UtPm5leHRUaWNrVGlt
ZSgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCmluZGV4
IDU3MzRkNGFhNmU5Zjc0NjFhNGM2NmM2ZTBhMTg2MGRhMzBkNDk2NmUuLjdhMWRhZDQzOWFmYjI4
YjNmNDM0YjM3ODk2YTJjNjlkOGY0YzI2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRl
Q29udHJvbGxlci5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZpbmlz
aEZyYW1lKCk7CiAgICAgdm9pZCBkaWRBYm9ydEFsbFBlbmRpbmdGcmFtZXMoKTsKICAgICB2b2lk
IHNldE1heEZyYW1lc1BlbmRpbmcoaW50KTsgLy8gMCBmb3IgdW5saW1pdGVkLgorICAgIGRvdWJs
ZSBuZXh0VGlja1RpbWUoKTsKIAogcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBDQ0ZyYW1l
UmF0ZUNvbnRyb2xsZXJUaW1lU291cmNlQWRhcHRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcApp
bmRleCA4NGI4NDIzNTg4YmM0OGYwM2M5NjY4ZmRkMWNmMWM4ZGU3M2VkOTc1Li5lMzNhNTAwYTIw
OGY2ZjY4ODYyZDZjYzE3MDRlOTljOWZmMWRlNTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3Bw
CkBAIC0xNjAsMTYgKzE2MCwxMSBAQCB2b2lkIENDU2NoZWR1bGVyOjpwcm9jZXNzU2NoZWR1bGVk
QWN0aW9ucygpCiAgICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFt
ZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ0NTY2hlZHVsZXJTdGF0ZU1h
Y2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVM6Ci0gICAgICAgICAgICBt
X2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpOwotICAgICAgICAg
ICAgaWYgKCFtX2NsaWVudC0+aGFzTW9yZVJlc291cmNlVXBkYXRlcygpKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gSWYgd2Ugd2VyZSBqdXN0IHRvbGQgdG8gdXBkYXRlIHJlc291cmNlcywgYnV0IHRo
ZXJlIGFyZSBubwotICAgICAgICAgICAgICAgIC8vIG1vcmUgcGVuZGluZywgdGhlbiB0ZWxsIHRo
ZSBzdGF0ZSBtYWNoaW5lIHRoYXQgdGhlCi0gICAgICAgICAgICAgICAgLy8gYmVnaW5VcGRhdGVN
b3JlUmVzb3VyY2VzIGNvbXBsZXRlZC4gSWYgbW9yZSBhcmUgcGVuZGluZywKLSAgICAgICAgICAg
ICAgICAvLyB0aGVuIHdlIHdpbGwgYWNrIHRoZSB1cGRhdGUgYXQgdGhlIG5leHQgZHJhdy4KLSAg
ICAgICAgICAgICAgICBtX3VwZGF0ZU1vcmVSZXNvdXJjZXNQZW5kaW5nID0gZmFsc2U7Ci0gICAg
ICAgICAgICAgICAgbV9zdGF0ZU1hY2hpbmUuYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxl
dGUoZmFsc2UpOwotICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBpZiAobV9jbGllbnQt
Pmhhc01vcmVSZXNvdXJjZVVwZGF0ZXMoKSkgeworICAgICAgICAgICAgICAgIG1fY2xpZW50LT5z
Y2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKG1fZnJhbWVSYXRlQ29udHJvbGxlci0+
bmV4dFRpY2tUaW1lKCkpOwogICAgICAgICAgICAgICAgIG1fdXBkYXRlTW9yZVJlc291cmNlc1Bl
bmRpbmcgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbV9zdGF0
ZU1hY2hpbmUuYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoZmFsc2UpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElP
Tl9DT01NSVQ6CiAgICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1NjaGVkdWxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NTY2hlZHVsZXIuaAppbmRleCAwZTY5NzE2NDI0OGNhNmZjZmRiYWUxZDM5NjEwNGJi
NWQ2N2ZlNWRlLi5lNjNlNGE0ODQzNGRmODMxYWVhYzJjYTU1ZDlkMDY4NWU0NDkxODM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Nj
aGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDU2NoZWR1bGVyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lKCkgPSAwOwogICAgIHZpcnR1YWwgQ0NTY2hl
ZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcElm
UG9zc2libGUoKSA9IDA7CiAgICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2Fw
UmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwRm9yY2VkKCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSB0aW1l
TGltaXQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0aW9u
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25BY3F1aXJlTGF5ZXJUZXh0
dXJlc0Zvck1haW5UaHJlYWQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4
IGU5NTU1NTUxMDU2N2UyOTdmMzlhMGUzYzE5NmVmYThmMjgyYWM5YTQuLjc1YzVhZGYwNjA4ZTc5
OTNmYWMzMWVjMmU1NjhjNDdlOTk1ZmM5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3Bw
CkBAIC00OCw3ICs0OCwxMCBAQCBuYW1lc3BhY2UgewogCiAvLyBOdW1iZXIgb2YgdGV4dHVyZXMg
dG8gdXBkYXRlIHdpdGggZWFjaCBjYWxsIHRvCiAvLyBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3Jl
UmVzb3VyY2VzKCkuCi1zdGF0aWMgY29uc3Qgc2l6ZV90IHRleHR1cmVVcGRhdGVzUGVyRnJhbWUg
PSA0ODsKK3N0YXRpYyBjb25zdCBzaXplX3QgdGV4dHVyZVVwZGF0ZXNQZXJUaWNrID0gMTI7CisK
Ky8vIE1lYXN1cmVkIGluIHNlY29uZHMuCitzdGF0aWMgY29uc3QgZG91YmxlIHRleHR1cmVVcGRh
dGVUaWNrUmF0ZSA9IDAuMDA0OwogCiAvLyBNZWFzdXJlZCBpbiBzZWNvbmRzLgogc3RhdGljIGNv
bnN0IGRvdWJsZSBjb250ZXh0UmVjcmVhdGlvblRpY2tSYXRlID0gMC4wMzsKQEAgLTg0LDYgKzg3
LDcgQEAgQ0NUaHJlYWRQcm94eTo6Q0NUaHJlYWRQcm94eShDQ0xheWVyVHJlZUhvc3QqIGxheWVy
VHJlZUhvc3QpCiAgICAgLCBtX3JlYWRiYWNrUmVxdWVzdE9uSW1wbFRocmVhZCgwKQogICAgICwg
bV9jb21taXRDb21wbGV0aW9uRXZlbnRPbkltcGxUaHJlYWQoMCkKICAgICAsIG1fdGV4dHVyZUFj
cXVpc2l0aW9uQ29tcGxldGlvbkV2ZW50T25JbXBsVGhyZWFkKDApCisgICAgLCBtX2N1cnJlbnRU
ZXh0dXJlVXBkYXRlVGltZUxpbWl0KDApCiAgICAgLCBtX25leHRGcmFtZUlzTmV3bHlDb21taXR0
ZWRGcmFtZU9uSW1wbFRocmVhZChmYWxzZSkKIHsKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQ
cm94eTo6Q0NUaHJlYWRQcm94eSIsIHRoaXMsIDApOwpAQCAtNTQwLDYgKzU0NCwyOCBAQCB2b2lk
IENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWUoKQogICAgIG1fbGF5ZXJUcmVlSG9zdC0+ZGlkQmVn
aW5GcmFtZSgpOwogfQogCitjbGFzcyBDQ1RocmVhZFByb3h5VGV4dHVyZVVwZGF0ZVRpbWVyIDog
cHVibGljIENDVGltZXIsIENDVGltZXJDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
T3duUHRyPENDVGhyZWFkUHJveHlUZXh0dXJlVXBkYXRlVGltZXI+IGNyZWF0ZShDQ1RocmVhZFBy
b3h5KiBwcm94eSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NUaHJlYWRQ
cm94eVRleHR1cmVVcGRhdGVUaW1lcihwcm94eSkpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCBvblRpbWVyRmlyZWQoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9wcm94eS0+dGV4dHVy
ZVVwZGF0ZU9uSW1wbFRocmVhZCgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBD
Q1RocmVhZFByb3h5VGV4dHVyZVVwZGF0ZVRpbWVyKENDVGhyZWFkUHJveHkqIHByb3h5KQorICAg
ICAgICA6IENDVGltZXIoQ0NQcm94eTo6aW1wbFRocmVhZCgpLCB0aGlzKQorICAgICAgICAsIG1f
cHJveHkocHJveHkpCisgICAgeworICAgIH0KKworICAgIENDVGhyZWFkUHJveHkqIG1fcHJveHk7
Cit9OworCiB2b2lkIENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRocmVh
ZChDQ0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvbikKIHsKICAgICBUUkFDRV9FVkVOVCgiQ0NU
aHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkIiwgdGhpcywgMCk7CkBA
IC01NzMsMTEgKzU5OSwxNCBAQCBib29sIENDVGhyZWFkUHJveHk6OmNhbkRyYXcoKQogICAgIHJl
dHVybiBtX2xheWVyVHJlZUhvc3RJbXBsLT5jYW5EcmF3KCk7CiB9CiAKLXZvaWQgQ0NUaHJlYWRQ
cm94eTo6c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpCit2b2lkIENDVGhyZWFk
UHJveHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoZG91YmxlIHRpbWVMaW1p
dCkKIHsKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uVXBk
YXRlTW9yZVJlc291cmNlcyIsIHRoaXMsIDApOwotICAgIEFTU0VSVChtX2N1cnJlbnRUZXh0dXJl
VXBkYXRlck9uSW1wbFRocmVhZCk7Ci0gICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxU
aHJlYWQtPnVwZGF0ZShtX2xheWVyVHJlZUhvc3RJbXBsLT5jb250ZXh0KCksIG1fbGF5ZXJUcmVl
SG9zdEltcGwtPmNvbnRlbnRzVGV4dHVyZUFsbG9jYXRvcigpLCBtX2xheWVyVHJlZUhvc3RJbXBs
LT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVDb3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+
bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlVXBsb2FkZXIoKSwgdGV4dHVyZVVwZGF0ZXNQZXJGcmFt
ZSk7CisgICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZVRpbWVMaW1pdCA9IHRpbWVMaW1pdDsKKyAg
ICBpZiAoIW1fY3VycmVudFRleHR1cmVVcGRhdGVUaW1lcikKKyAgICAgICAgbV9jdXJyZW50VGV4
dHVyZVVwZGF0ZVRpbWVyID0gQ0NUaHJlYWRQcm94eVRleHR1cmVVcGRhdGVUaW1lcjo6Y3JlYXRl
KHRoaXMpOworCisgICAgdGV4dHVyZVVwZGF0ZU9uSW1wbFRocmVhZCgpOwogfQogCiB2b2lkIEND
VGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpCkBAIC01OTQsMTAgKzYyMywxMCBA
QCB2b2lkIENDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpCiAKICAgICBtX2xh
eWVyVHJlZUhvc3QtPmJlZ2luQ29tbWl0T25JbXBsVGhyZWFkKG1fbGF5ZXJUcmVlSG9zdEltcGwu
Z2V0KCkpOwogICAgIG1fbGF5ZXJUcmVlSG9zdC0+ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKG1f
bGF5ZXJUcmVlSG9zdEltcGwuZ2V0KCkpOwotICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFkLT5z
ZXRWaXNpYmxlKG1fbGF5ZXJUcmVlSG9zdEltcGwtPnZpc2libGUoKSk7Ci0KICAgICBtX2xheWVy
VHJlZUhvc3RJbXBsLT5jb21taXRDb21wbGV0ZSgpOwogCisgICAgbV9zY2hlZHVsZXJPbkltcGxU
aHJlYWQtPnNldFZpc2libGUobV9sYXllclRyZWVIb3N0SW1wbC0+dmlzaWJsZSgpKTsKKwogICAg
IG1fbmV4dEZyYW1lSXNOZXdseUNvbW1pdHRlZEZyYW1lT25JbXBsVGhyZWFkID0gdHJ1ZTsKIAog
ICAgIG1fY29tbWl0Q29tcGxldGlvbkV2ZW50T25JbXBsVGhyZWFkLT5zaWduYWwoKTsKQEAgLTg0
OCw3ICs4NzcsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNldEZ1bGxSb290TGF5ZXJEYW1hZ2VP
bkltcGxUaHJlYWQoKQogCiBzaXplX3QgQ0NUaHJlYWRQcm94eTo6bWF4UGFydGlhbFRleHR1cmVV
cGRhdGVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdGV4dHVyZVVwZGF0ZXNQZXJGcmFtZTsKKyAg
ICByZXR1cm4gdGV4dHVyZVVwZGF0ZXNQZXJUaWNrOwogfQogCiB2b2lkIENDVGhyZWFkUHJveHk6
OnNldEZvbnRBdGxhcyhQYXNzT3duUHRyPENDRm9udEF0bGFzPiBmb250QXRsYXMpCkBAIC04Nzcs
NCArOTA2LDE5IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6cmVjcmVhdGVDb250ZXh0T25JbXBsVGhy
ZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uLCBDCiAgICAgY29tcGxldGlvbi0+c2ln
bmFsKCk7CiB9CiAKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6dGV4dHVyZVVwZGF0ZU9uSW1wbFRocmVh
ZCgpCit7CisgICAgQVNTRVJUKGlzSW1wbFRocmVhZCgpKTsKKyAgICBUUkFDRV9FVkVOVCgiQ0NU
aHJlYWRQcm94eTo6dGV4dHVyZVVwZGF0ZU9uSW1wbFRocmVhZCIsIHRoaXMsIDApOworCisgICAg
aWYgKCFoYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGJv
b2wgaGFzVGltZVJlbWFpbmluZyA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIDwgbV9j
dXJyZW50VGV4dHVyZVVwZGF0ZVRpbWVMaW1pdCAtIHRleHR1cmVVcGRhdGVUaWNrUmF0ZTsKKyAg
ICBpZiAoaGFzVGltZVJlbWFpbmluZykgeworICAgICAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRl
VGltZXItPnN0YXJ0T25lU2hvdCh0ZXh0dXJlVXBkYXRlVGlja1JhdGUpOworICAgICAgICBtX2N1
cnJlbnRUZXh0dXJlVXBkYXRlck9uSW1wbFRocmVhZC0+dXBkYXRlKG1fbGF5ZXJUcmVlSG9zdElt
cGwtPmNvbnRleHQoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+Y29udGVudHNUZXh0dXJlQWxsb2Nh
dG9yKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZUNvcGll
cigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVVcGxvYWRl
cigpLCB0ZXh0dXJlVXBkYXRlc1BlclRpY2spOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCmluZGV4IDI0ZGI5MmU2ZWExNWM5ZjQ2Mjgy
OTY5OTAxZWViYmU1Zjk4OWU2ZTQuLjMxMTVhMDM4MDc4ZWRlNzZhZmQwMmFiMmNlYzlhNTJhNzA3
NThmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKQEAgLTQzLDYgKzQzLDcgQEAgY2xhc3Mg
Q0NTY29wZWRUaHJlYWRQcm94eTsKIGNsYXNzIENDVGV4dHVyZVVwZGF0ZXI7CiBjbGFzcyBDQ1Ro
cmVhZDsKIGNsYXNzIENDVGhyZWFkUHJveHlDb250ZXh0UmVjcmVhdGlvblRpbWVyOworY2xhc3Mg
Q0NUaHJlYWRQcm94eVRleHR1cmVVcGRhdGVUaW1lcjsKIAogY2xhc3MgQ0NUaHJlYWRQcm94eSA6
IHB1YmxpYyBDQ1Byb3h5LCBDQ0xheWVyVHJlZUhvc3RJbXBsQ2xpZW50LCBDQ1NjaGVkdWxlckNs
aWVudCB7CiBwdWJsaWM6CkBAIC05MCw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgQ0NT
Y2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dh
cElmUG9zc2libGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0aW9uRHJh
d0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBGb3JjZWQoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVz
b3VyY2VzKGRvdWJsZSB1bnRpbFRpbWUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzY2hl
ZHVsZWRBY3Rpb25Db21taXQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVk
QWN0aW9uQmVnaW5Db250ZXh0UmVjcmVhdGlvbigpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBzY2hlZHVsZWRBY3Rpb25BY3F1aXJlTGF5ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQoKSBPVkVS
UklERTsKQEAgLTk4LDYgKzk5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBD
Q1RocmVhZFByb3h5KENDTGF5ZXJUcmVlSG9zdCopOwogICAgIGZyaWVuZCBjbGFzcyBDQ1RocmVh
ZFByb3h5Q29udGV4dFJlY3JlYXRpb25UaW1lcjsKKyAgICBmcmllbmQgY2xhc3MgQ0NUaHJlYWRQ
cm94eVRleHR1cmVVcGRhdGVUaW1lcjsKIAogICAgIC8vIFNldCBvbiBpbXBsIHRocmVhZCwgcmVh
ZCBvbiBtYWluIHRocmVhZC4KICAgICBzdHJ1Y3QgQmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlIHsK
QEAgLTE0Niw2ICsxNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Rm9udEF0bGFzT25JbXBs
VGhyZWFkKFBhc3NPd25QdHI8Q0NGb250QXRsYXM+KTsKICAgICB2b2lkIGZvcmNlU2VyaWFsaXpl
T25Td2FwQnVmZmVyc09uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCopOwogICAgIHZvaWQg
c2V0TmVlZHNGb3JjZWRDb21taXRPbkltcGxUaHJlYWQoKTsKKyAgICB2b2lkIHRleHR1cmVVcGRh
dGVPbkltcGxUaHJlYWQoKTsKIAogICAgIC8vIEFjY2Vzc2VkIG9uIG1haW4gdGhyZWFkIG9ubHku
CiAgICAgYm9vbCBtX2FuaW1hdGVSZXF1ZXN0ZWQ7CkBAIC0xODgsNiArMTkxLDggQEAgcHJpdmF0
ZToKICAgICBDQ0NvbXBsZXRpb25FdmVudCogbV90ZXh0dXJlQWNxdWlzaXRpb25Db21wbGV0aW9u
RXZlbnRPbkltcGxUaHJlYWQ7CiAKICAgICBPd25QdHI8Q0NUZXh0dXJlVXBkYXRlcj4gbV9jdXJy
ZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxUaHJlYWQ7CisgICAgT3duUHRyPENDVGhyZWFkUHJveHlU
ZXh0dXJlVXBkYXRlVGltZXI+IG1fY3VycmVudFRleHR1cmVVcGRhdGVUaW1lcjsKKyAgICBkb3Vi
bGUgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZVRpbWVMaW1pdDsKIAogICAgIC8vIFNldCB3aGVuIHRo
ZSBuZXh0IGRyYXcgc2hvdWxkIHBvc3QgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lIHRvIHRoZSBtYWlu
IHRocmVhZC4KICAgICBib29sIG1fbmV4dEZyYW1lSXNOZXdseUNvbW1pdHRlZEZyYW1lT25JbXBs
VGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaW1lU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RpbWVTb3VyY2UuaAppbmRleCBkY2NiNDcwYTYzODNlMzA0ZGIxMTZh
NWI5ZGY5MWRlNTYwNjhlMDg1Li5jMzY0ZDkyYmQwMjhhMjJmZmE4YTJhODdmYzE5MzBiNThkZWY4
ZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RpbWVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RpbWVTb3VyY2UuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldENsaWVudChDQ1RpbWVTb3VyY2VDbGllbnQqKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGFjdGl2
ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBuZXh0VGlja1RpbWUoKSBjb25zdCA9
IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
U2NoZWR1bGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1
bGVyVGVzdC5jcHAKaW5kZXggNDEyNTA4ODRiZjRkYTAyZTVhNmEwMGRiZmQ4YzE2ODVmNDYyNGZl
Yy4uNDc0MTYyOTRhMTc3YjlhNWQ5MmY5YTkxOTljZWIzNjhjNmQyOWJjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0LmNwcApAQCAtODEsNyAr
ODEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRT
d2FwUmVzdWx0KHRydWUsIG1fc3dhcFdpbGxIYXBwZW5JZkRyYXdIYXBwZW5zKTsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpIE9W
RVJSSURFIHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJl
c291cmNlcyIpOyB9CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVS
ZXNvdXJjZXMoZG91YmxlIHVudGlsVGltZSkgT1ZFUlJJREUgeyBtX2FjdGlvbnMucHVzaF9iYWNr
KCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIik7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgT1ZFUlJJREUgeyBtX2FjdGlvbnMucHVzaF9iYWNr
KCJzY2hlZHVsZWRBY3Rpb25Db21taXQiKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRB
Y3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0aW9uKCkgT1ZFUlJJREUgeyBtX2FjdGlvbnMucHVzaF9i
YWNrKCJzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0aW9uIik7IH0KICAgICB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQWNxdWlyZUxheWVyVGV4dHVyZXNGb3JNYWluVGhyZWFk
KCkgT1ZFUlJJREUgeyBtX2FjdGlvbnMucHVzaF9iYWNrKCJzY2hlZHVsZWRBY3Rpb25BY3F1aXJl
TGF5ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQiKTsgfQpAQCAtMTE0LDEyICsxMTQsMTAgQEAgVEVT
VChDQ1NjaGVkdWxlclRlc3QsIFJlcXVlc3RDb21taXQpCiAgICAgY2xpZW50LnJlc2V0KCk7CiAK
ICAgICAvLyBTaW5jZSwgaGFzTW9yZVJlc291cmNlVXBkYXRlcyBpcyBzZXQgdG8gZmFsc2UsCi0g
ICAgLy8gYmVnaW5GcmFtZUNvbXBsZXRlIHNob3VsZCB1cGRhdGVNb3JlUmVzb3VyY2VzLCB0aGVu
Ci0gICAgLy8gY29tbWl0CisgICAgLy8gYmVnaW5GcmFtZUNvbXBsZXRlIHNob3VsZCBjb21taXQK
ICAgICBzY2hlZHVsZXItPmJlZ2luRnJhbWVDb21wbGV0ZSgpOwotICAgIEVYUEVDVF9FUSgyLCBj
bGllbnQubnVtQWN0aW9ucygpKTsKLSAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvblVw
ZGF0ZU1vcmVSZXNvdXJjZXMiLCBjbGllbnQuYWN0aW9uKDApKTsKLSAgICBFWFBFQ1RfU1RSRVEo
InNjaGVkdWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMSkpOworICAgIEVYUEVDVF9F
USgxLCBjbGllbnQubnVtQWN0aW9ucygpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFj
dGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMCkpOwogICAgIEVYUEVDVF9UUlVFKHRpbWVTb3Vy
Y2UtPmFjdGl2ZSgpKTsKICAgICBjbGllbnQucmVzZXQoKTsKIApAQCAtMTUyLDEyICsxNTAsMTAg
QEAgVEVTVChDQ1NjaGVkdWxlclRlc3QsIFJlcXVlc3RDb21taXRBZnRlckJlZ2luRnJhbWUpCiAg
ICAgc2NoZWR1bGVyLT5zZXROZWVkc0NvbW1pdCgpOwogCiAgICAgLy8gU2luY2UsIGhhc01vcmVS
ZXNvdXJjZVVwZGF0ZXMgaXMgc2V0IHRvIGZhbHNlLCBhbmQgYW5vdGhlciBjb21taXQgaXMKLSAg
ICAvLyBuZWVkZWQsIGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQgdXBkYXRlTW9yZVJlc291cmNl
cywgdGhlbiBjb21taXQsIHRoZW4KLSAgICAvLyBiZWdpbiBhbm90aGVyIGZyYW1lLgorICAgIC8v
IG5lZWRlZCwgYmVnaW5GcmFtZUNvbXBsZXRlIHNob3VsZCBjb21taXQsIHRoZW4gYmVnaW4gYW5v
dGhlciBmcmFtZS4KICAgICBzY2hlZHVsZXItPmJlZ2luRnJhbWVDb21wbGV0ZSgpOwotICAgIEVY
UEVDVF9FUSgyLCBjbGllbnQubnVtQWN0aW9ucygpKTsKLSAgICBFWFBFQ1RfU1RSRVEoInNjaGVk
dWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMiLCBjbGllbnQuYWN0aW9uKDApKTsKLSAgICBF
WFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMSkpOwor
ICAgIEVYUEVDVF9FUSgxLCBjbGllbnQubnVtQWN0aW9ucygpKTsKKyAgICBFWFBFQ1RfU1RSRVEo
InNjaGVkdWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMCkpOwogICAgIGNsaWVudC5y
ZXNldCgpOwogCiAgICAgLy8gVGljayBzaG91bGQgZHJhdyBidXQgdGhlbiBiZWdpbiBhbm90aGVy
IGZyYW1lLgpAQCAtMjU3LDcgKzI1Myw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIENDU2No
ZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQodHJ1ZSwgdHJ1ZSk7CiAgICAgfQogCi0gICAg
dmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBPVkVSUklE
RSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNl
cyhkb3VibGUgdW50aWxUaW1lKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVkQWN0aW9uQ29tbWl0KCkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxl
ZEFjdGlvbkJlZ2luQ29udGV4dFJlY3JlYXRpb24oKSBPVkVSUklERSB7IH0KIApAQCAtMzU3LDcg
KzM1Myw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIENDU2NoZWR1bGVkQWN0aW9uRHJhd0Fu
ZFN3YXBSZXN1bHQodHJ1ZSwgdHJ1ZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyhkb3VibGUgdW50aWxUaW1l
KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkg
T1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4
dFJlY3JlYXRpb24oKSBPVkVSUklERSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3RDb21tb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmgKaW5kZXggNjI1N2VjODg4ZjU4ZWM3
NTI2ODg3YTc3MWY3MjQ4ZjNkNTNmNjY1Zi4uZjJlYzRiOGMyOTdhMzEwOTE3NmIxOTg0NmJkODc4
MDBmMzkyMmIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Nj
aGVkdWxlclRlc3RDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
U2NoZWR1bGVyVGVzdENvbW1vbi5oCkBAIC04Niw2ICs4Niw3IEBAIGNsYXNzIEZha2VDQ1RpbWVT
b3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6Q0NUaW1lU291cmNlIHsKIHB1YmxpYzoKICAgICBGYWtl
Q0NUaW1lU291cmNlKCkKICAgICAgICAgOiBtX2FjdGl2ZShmYWxzZSkKKyAgICAgICAgLCBtX25l
eHRUaWNrVGltZSgwKQogICAgICAgICAsIG1fY2xpZW50KDApIHsgfQogCiAgICAgdmlydHVhbCB+
RmFrZUNDVGltZVNvdXJjZSgpIHsgfQpAQCAtOTMsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldENsaWVudChXZWJDb3JlOjpDQ1RpbWVTb3VyY2VDbGllbnQqIGNsaWVudCkg
T1ZFUlJJREUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3Rp
dmUoYm9vbCBiKSBPVkVSUklERSB7IG1fYWN0aXZlID0gYjsgfQogICAgIHZpcnR1YWwgYm9vbCBh
Y3RpdmUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2FjdGl2ZTsgfQorICAgIHZpcnR1YWwg
ZG91YmxlIG5leHRUaWNrVGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbmV4dFRpY2tU
aW1lOyB9CiAKICAgICB2b2lkIHRpY2soKQogICAgIHsKQEAgLTEwMSw4ICsxMDMsMTEgQEAgcHVi
bGljOgogICAgICAgICAgICAgbV9jbGllbnQtPm9uVGltZXJUaWNrKCk7CiAgICAgfQogCisgICAg
dm9pZCBzZXROZXh0VGlja1RpbWUoZG91YmxlIG5leHRUaWNrVGltZSkgeyBtX25leHRUaWNrVGlt
ZSA9IG5leHRUaWNrVGltZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2FjdGl2ZTsKKyAg
ICBkb3VibGUgbV9uZXh0VGlja1RpbWU7CiAgICAgV2ViQ29yZTo6Q0NUaW1lU291cmNlQ2xpZW50
KiBtX2NsaWVudDsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147755</attachid>
            <date>2012-06-15 00:25:16 -0700</date>
            <delta_ts>2012-07-30 08:14:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84281-20120615032515.patch</filename>
            <type>text/plain</type>
            <size>45850</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE3YTVhOWQ3ZGE1YzQ5
Zjg3ODExOTA5MzIxNGUwMWFjNmIxOTEwNy4uM2I1NjM1MWVjNWM4ZWFmMDRlOTMyNWFjOTU0NmVm
NzExYjU5YmNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDEyLTA2LTE0ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBT
Y2hlZHVsZSB0ZXh0dXJlIHVwbG9hZHMgYmFzZWQgb24gaGFyZC1jb2RlZCB0aW1lciBhbmQgdnN5
bmMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJv
dmUgaW50ZXJhY3Rpb24gYmV0d2VlbiB2c3luYyBhbmQgdGV4dHVyZSB1cGxvYWRzIGJ5IHBlcmZv
cm1pbmcKKyAgICAgICAgdXBsb2FkcyBpbiBzbWFsbGVyIGJhdGNoZXMgYW5kIHVzZSBhIGhhcmQt
Y29kZWQgdGltZXIgdG8gZW11bGF0ZQorICAgICAgICB1cGxvYWQgY29tcGxldGlvbi4gVGhpcyBn
cmVhdGx5IHJlZHVjZXMgdGhlIGNoYW5jZSBvZiB0aGUgY29tcG9zaXRvcgorICAgICAgICBtaXNz
aW5nIGEgdnN5bmMgZHVlIHRvIGJlaW5nIGJ1c3kgd2l0aCB0ZXh0dXJlIHVwbG9hZHMuCisKKyAg
ICAgICAgVGhlIENDU2NoZWR1bGVyIGNsaWVudCBpcyBub3cgZ2l2ZW4gYSB0aW1lIGxpbWl0IHdo
ZW4gdG9sZCB0byB1cGRhdGUKKyAgICAgICAgbW9yZSByZXNvdXJjZXMuIFRoaXMgdGltZSBsaW1p
dCBpcyBwYXNzZWQgdG8gdGhlIGFuIGluc3RhbmNlIG9mIHRoZQorICAgICAgICBDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyIGNsYXNzLCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IgcGVyZm9ybWlu
ZworICAgICAgICB0ZXh0dXJlIHVwZGF0ZXMgdW50aWwgdGhlIGxpbWl0IGlzIHJlYWNoZWQuCisK
KyAgICAgICAgVW5pdCB0ZXN0czogQ0NTY2hlZHVsZXJUZXN0LlJlcXVlc3RDb21taXQKKyAgICAg
ICAgICAgICAgICAgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuVXBkYXRlTW9yZVRl
eHR1cmVzCisgICAgICAgICAgICAgICAgICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0
Lkhhc01vcmVVcGRhdGVzCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpDQ0RlbGF5QmFzZWRUaW1l
U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRGVsYXlCYXNlZFRpbWVTb3VyY2U6Om5leHRU
aWNrVGltZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29udHJvbGxlcjo6bmV4dFRpY2tUaW1lKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RnJhbWVSYXRlQ29udHJvbGxlci5oOgorICAgICAgICAoQ0NGcmFtZVJhdGVDb250cm9sbGVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDQ1NjaGVkdWxlcjo6cHJvY2Vzc1NjaGVkdWxlZEFjdGlvbnMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmg6
CisgICAgICAgIChDQ1NjaGVkdWxlckNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDQ1NpbmdsZVRocmVhZFByb3h5QW5pbWF0aW9uVGltZXI6OkNDU2luZ2xlVGhyZWFkUHJveHlB
bmltYXRpb25UaW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjptYXhQYXJ0aWFs
VGV4dHVyZVVwZGF0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29udHJv
bGxlcjo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyOjp+Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpoYXNNb3JlVXBkYXRlcyk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3Jl
VGV4dHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6
b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXI6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZU1vcmVUZXh0dXJlc0lm
RW5vdWdoVGltZVJlbWFpbmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuaDoKKyAgICAgICAgKEND
VGV4dHVyZVVwZGF0ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2No
ZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5
OjpiZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmJlZ2luRnJh
bWVDb21wbGV0ZU9uSW1wbFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5
OjpoYXNNb3JlUmVzb3VyY2VVcGRhdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJv
eHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uQ29tbWl0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNDVGhyZWFkUHJveHlDb250ZXh0UmVjcmVhdGlvblRpbWVyOjpDQ1RocmVhZFByb3h5Q29u
dGV4dFJlY3JlYXRpb25UaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojpt
YXhQYXJ0aWFsVGV4dHVyZVVwZGF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6QmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlOjpCZWdpbkZy
YW1lQW5kQ29tbWl0U3RhdGUpOgorICAgICAgICAoQmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlKToK
KyAgICAgICAgKENDVGhyZWFkUHJveHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGltZVNvdXJjZS5oOgorICAgICAgICAoQ0NUaW1lU291cmNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNDVGltZXI6OkNDVGltZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGltZXIuaDoKKyAgICAgICAgKENDVGltZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NUaW1lcjo6c2V0Q2xpZW50KToKKwogMjAxMi0wNi0xNCAgQW5kcmVhcyBLbGluZyAg
PGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ3Jhc2hlcyBiZWxvdyBJY29uRGF0YWJhc2U6
OnBlcmZvcm1QZW5kaW5nUmV0YWluQW5kUmVsZWFzZU9wZXJhdGlvbnMoKS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggNjQwODFhMjkyMmI0OGNlOGEzYjgwYzAyMTA0NDFjZWI3OTdhN2Nl
YS4uYjg1Y2ExMGEzOTI3ODYyODE0YzI4NmNhNzI3NmRjYWQ0NWM3MDg5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMi0wNi0xNCAgRGF2aWQgUmV2ZW1h
biAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gU2NoZWR1bGUg
dGV4dHVyZSB1cGxvYWRzIGJhc2VkIG9uIGhhcmQtY29kZWQgdGltZXIgYW5kIHZzeW5jLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXBp
OgorICAgICAgICAqIHRlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXRU
ZXN0czo6VEVTVCk6CisgICAgICAgICogdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmg6Cisg
ICAgICAgIChXZWJLaXRUZXN0czo6RmFrZUNDVGltZVNvdXJjZTo6RmFrZUNDVGltZVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXRUZXN0czo6RmFrZUNDVGltZVNvdXJjZTo6c2V0TmV4dFRpY2tUaW1l
KToKKyAgICAgICAgKEZha2VDQ1RpbWVTb3VyY2UpOgorICAgICAgICAqIHRlc3RzL0NDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXRUZXN0cyk6
CisgICAgICAgIChGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJL
aXRUZXN0czo6RmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXRUZXN0czo6RmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnNldE1vbm90b25p
Y2FsbHlJbmNyZWFzaW5nVGltZSk6CisgICAgICAgIChXZWJLaXRUZXN0czo6RmFrZUNDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXI6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSk6CisgICAgICAg
IChXZWJLaXRUZXN0czo6RmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnNldFVwZGF0ZU1v
cmVUZXh0dXJlc1RpbWUpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkZha2VDQ1RleHR1cmVVcGRh
dGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKToKKyAgICAgICAgKFdlYktpdFRl
c3RzOjpGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlcik6CisgICAgICAgIChX
ZWJLaXRUZXN0czo6RmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkZha2VDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyKToKKyAgICAgICAgKEZha2VDQ1RleHR1cmVVcGRhdGVyKToKKyAgICAg
ICAgKFdlYktpdFRlc3RzOjpGYWtlQ0NUZXh0dXJlVXBkYXRlcjo6RmFrZUNDVGV4dHVyZVVwZGF0
ZXIpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkZha2VDQ1RleHR1cmVVcGRhdGVyOjpzZXRIYXNN
b3JlVXBkYXRlcyk6CisgICAgICAgIChXZWJLaXRUZXN0czo6RmFrZUNDVGV4dHVyZVVwZGF0ZXI6
Omhhc01vcmVVcGRhdGVzKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpGYWtlQ0NUZXh0dXJlVXBk
YXRlcjo6cmVzZXRVcGRhdGVDb3VudCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6RmFrZUNDVGV4
dHVyZVVwZGF0ZXI6OnVwZGF0ZUNvdW50KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpGYWtlQ0NU
ZXh0dXJlVXBkYXRlcjo6dXBkYXRlKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpURVNUKToKKyAg
ICAgICAgKiB0ZXN0cy9DQ1RpbWVyVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXRUZXN0czo6VEVT
VF9GKToKKwogMjAxMi0wNi0xNCAgRGFuaWVsIEVyYXQgIDxkZXJhdEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW2Nocm9taXVtL2xpbnV4XSBEcm9wIGRlcHJlY2F0ZWQgV2ViRm9udFJlbmRlclN0
eWxlOjp1c2VTdWJwaXhlbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDljYjZjN2Q0MzZkM2FkNDcyZjRh
NjY5OTk0OGUyYjQwMjAzN2U1MzMuLjJjYzZiZmI2NjJmMDE1ZmIxNzIwYzgxMjY5NGUwNGVjNGNk
NGY4NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM3NjksNiArMzc2OSw4IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlRHJhd1F1YWQuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJ
bXBsLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
ZXh0dXJlTGF5ZXJJbXBsLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3BwJywKKyAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmgnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0
ZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Rl
eHR1cmVVcGRhdGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNl
LmNwcAppbmRleCBiNjg4YTc4YTI3YzU3OTUxZGQ4ZDZiZWZmZWU3NjZjNWQyNGYyM2U0Li5lOGM0
NzdiYzBlYmZhYWI0NjlmOTkxMmNhOWE4MTE2NjEyOWI0ZmJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmNwcApAQCAtNDQsOCArNDQsOSBAQCBDQ0RlbGF5QmFz
ZWRUaW1lU291cmNlOjpDQ0RlbGF5QmFzZWRUaW1lU291cmNlKGRvdWJsZSBpbnRlcnZhbFNlY29u
ZHMsIENDVGhyZWFkKgogICAgICwgbV9pbnRlcnZhbFNlY29uZHMoaW50ZXJ2YWxTZWNvbmRzKQog
ICAgICwgbV90aWNrVGFyZ2V0KDApCiAgICAgLCBtX3N0YXRlKFNUQVRFX0lOQUNUSVZFKQotICAg
ICwgbV90aW1lcih0aHJlYWQsIHRoaXMpCisgICAgLCBtX3RpbWVyKHRocmVhZCkKIHsKKyAgICBt
X3RpbWVyLnNldENsaWVudCh0aGlzKTsKIH0KIAogdm9pZCBDQ0RlbGF5QmFzZWRUaW1lU291cmNl
OjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCkBAIC0xNjEsNCArMTYyLDEyIEBAIHZvaWQgQ0NEZWxh
eUJhc2VkVGltZVNvdXJjZTo6cG9zdE5leHRUaWNrVGFzayhkb3VibGUgbm93KQogICAgIG1fdGlj
a1RhcmdldCA9IG5ld1RpY2tUYXJnZXQ7CiB9CiAKK2RvdWJsZSBDQ0RlbGF5QmFzZWRUaW1lU291
cmNlOjpuZXh0VGlja1RpbWUoKSBjb25zdAoreworICAgIGlmICghbV9oYXNUaWNrVGFyZ2V0KQor
ICAgICAgICByZXR1cm4gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisKKyAgICByZXR1
cm4gbV90aWNrVGFyZ2V0OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1l
U291cmNlLmgKaW5kZXggOTk3OTVkYjgxYzk2Y2NkY2RhZjVjMDJmMDJiYzNlZWJiNmM2NWZkMC4u
NmYyM2VjNzAzNjY1NTYxZDMxYWExYzM0YTc0ZDBlOWI1ZTY5NDJkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGlt
ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgYWN0aXZlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9zdGF0ZSAhPSBTVEFURV9JTkFD
VElWRTsgfQogCisgICAgdmlydHVhbCBkb3VibGUgbmV4dFRpY2tUaW1lKCkgY29uc3QgT1ZFUlJJ
REU7CisKICAgICAvLyBDQ1RpbWVyQ2xpZW50IGltcGxlbWVudGF0aW9uLgogICAgIHZpcnR1YWwg
dm9pZCBvblRpbWVyRmlyZWQoKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVS
YXRlQ29udHJvbGxlci5jcHAKaW5kZXggODRhN2NiMzEwYTNiZDQ5NjgzOTJmYWIyMmQ5NTcxYzc1
YThiNTdiMi4uNTdkNWMzN2E2YjAzNmYxYzRhYzFlOTQxOWNjZmZmZjNmOWY4NGFhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFt
ZVJhdGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwCkBAIC0xMDUsNCArMTA1LDkg
QEAgdm9pZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OmRpZEFib3J0QWxsUGVuZGluZ0ZyYW1lcygp
CiAgICAgbV9udW1GcmFtZXNQZW5kaW5nID0gMDsKIH0KIAorZG91YmxlIENDRnJhbWVSYXRlQ29u
dHJvbGxlcjo6bmV4dFRpY2tUaW1lKCkKK3sKKyAgICByZXR1cm4gbV90aW1lU291cmNlLT5uZXh0
VGlja1RpbWUoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIu
aAppbmRleCA1NzM0ZDRhYTZlOWY3NDYxYTRjNjZjNmUwYTE4NjBkYTMwZDQ5NjZlLi43YTFkYWQ0
MzlhZmIyOGIzZjQzNGIzNzg5NmEyYzY5ZDhmNGMyNmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Zy
YW1lUmF0ZUNvbnRyb2xsZXIuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRGaW5pc2hGcmFtZSgpOwogICAgIHZvaWQgZGlkQWJvcnRBbGxQZW5kaW5nRnJhbWVzKCk7CiAg
ICAgdm9pZCBzZXRNYXhGcmFtZXNQZW5kaW5nKGludCk7IC8vIDAgZm9yIHVubGltaXRlZC4KKyAg
ICBkb3VibGUgbmV4dFRpY2tUaW1lKCk7CiAKIHByb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3Mg
Q0NGcmFtZVJhdGVDb250cm9sbGVyVGltZVNvdXJjZUFkYXB0ZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxl
ci5jcHAKaW5kZXggODRiODQyMzU4OGJjNDhmMDNjOTY2OGZkZDFjZjFjOGRlNzNlZDk3NS4uZTMz
YTUwMGEyMDhmNmY2ODg2MmQ2Y2MxNzA0ZTk5YzlmZjFkZTU2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1
bGVyLmNwcApAQCAtMTYwLDE2ICsxNjAsMTEgQEAgdm9pZCBDQ1NjaGVkdWxlcjo6cHJvY2Vzc1Nj
aGVkdWxlZEFjdGlvbnMoKQogICAgICAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlZEFjdGlvbkJl
Z2luRnJhbWUoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENDU2NoZWR1bGVy
U3RhdGVNYWNoaW5lOjpBQ1RJT05fQkVHSU5fVVBEQVRFX01PUkVfUkVTT1VSQ0VTOgotICAgICAg
ICAgICAgbV9jbGllbnQtPnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKTsKLSAg
ICAgICAgICAgIGlmICghbV9jbGllbnQtPmhhc01vcmVSZXNvdXJjZVVwZGF0ZXMoKSkgewotICAg
ICAgICAgICAgICAgIC8vIElmIHdlIHdlcmUganVzdCB0b2xkIHRvIHVwZGF0ZSByZXNvdXJjZXMs
IGJ1dCB0aGVyZSBhcmUgbm8KLSAgICAgICAgICAgICAgICAvLyBtb3JlIHBlbmRpbmcsIHRoZW4g
dGVsbCB0aGUgc3RhdGUgbWFjaGluZSB0aGF0IHRoZQotICAgICAgICAgICAgICAgIC8vIGJlZ2lu
VXBkYXRlTW9yZVJlc291cmNlcyBjb21wbGV0ZWQuIElmIG1vcmUgYXJlIHBlbmRpbmcsCi0gICAg
ICAgICAgICAgICAgLy8gdGhlbiB3ZSB3aWxsIGFjayB0aGUgdXBkYXRlIGF0IHRoZSBuZXh0IGRy
YXcuCi0gICAgICAgICAgICAgICAgbV91cGRhdGVNb3JlUmVzb3VyY2VzUGVuZGluZyA9IGZhbHNl
OwotICAgICAgICAgICAgICAgIG1fc3RhdGVNYWNoaW5lLmJlZ2luVXBkYXRlTW9yZVJlc291cmNl
c0NvbXBsZXRlKGZhbHNlKTsKLSAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgaWYgKG1f
Y2xpZW50LT5oYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkpIHsKKyAgICAgICAgICAgICAgICBtX2Ns
aWVudC0+c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyhtX2ZyYW1lUmF0ZUNvbnRy
b2xsZXItPm5leHRUaWNrVGltZSgpKTsKICAgICAgICAgICAgICAgICBtX3VwZGF0ZU1vcmVSZXNv
dXJjZXNQZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IG1fc3RhdGVNYWNoaW5lLmJlZ2luVXBkYXRlTW9yZVJlc291cmNlc0NvbXBsZXRlKGZhbHNlKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENDU2NoZWR1bGVyU3RhdGVNYWNoaW5l
OjpBQ1RJT05fQ09NTUlUOgogICAgICAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlZEFjdGlvbkNv
bW1pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmgKaW5kZXggMGU2OTcxNjQyNDhjYTZmY2ZkYmFlMWQz
OTYxMDRiYjVkNjdmZTVkZS4uZDc3ZTA0OGJlNjMzMzZhNGVhM2UwY2IxY2E5ZWU5ZjNlZjI1NTVi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpID0gMDsKICAgICB2aXJ0dWFs
IENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0Fu
ZFN3YXBJZlBvc3NpYmxlKCkgPSAwOwogICAgIHZpcnR1YWwgQ0NTY2hlZHVsZWRBY3Rpb25EcmF3
QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcEZvcmNlZCgpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyhkb3Vi
bGUgbW9ub3RvbmljVGltZUxpbWl0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFj
dGlvbkNvbW1pdCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQmVnaW5D
b250ZXh0UmVjcmVhdGlvbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9u
QWNxdWlyZUxheWVyVGV4dHVyZXNGb3JNYWluVGhyZWFkKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCA4ZjMwNTJkOTMxNmM0N2E4OGNlYjFlMGI5NmYz
YzAxODE5NDdmYTFlLi42MTFhY2Y4ZWNkZDljOTEyMTg3Mjk3NTFjY2ZmZmYwMTNiMmMyM2NlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAtNTAsOSArNTAsMTAg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDU2luZ2xlVGhyZWFkUHJveHlB
bmltYXRpb25UaW1lcihDQ1NpbmdsZVRocmVhZFByb3h5KiBwcm94eSkKLSAgICAgICAgOiBDQ1Rp
bWVyKENDUHJveHk6Om1haW5UaHJlYWQoKSwgdGhpcykKKyAgICAgICAgOiBDQ1RpbWVyKENDUHJv
eHk6Om1haW5UaHJlYWQoKSkKICAgICAgICAgLCBtX3Byb3h5KHByb3h5KQogICAgIHsKKyAgICAg
ICAgc2V0Q2xpZW50KHRoaXMpOwogICAgIH0KIAogICAgIENDU2luZ2xlVGhyZWFkUHJveHkqIG1f
cHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIxZDEyMzUwNmFhNzZiZmVhMjBlY2VhMzQ1MzhjZDNjNTQ0MDg2NmEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEwNSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAi
Y2MvQ0NUZXh0dXJlVXBkYXRlci5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCitu
YW1lc3BhY2UgeworCisvLyBOdW1iZXIgb2YgdGV4dHVyZXMgdG8gdXBkYXRlIHdpdGggZWFjaCBj
YWxsIHRvIHVwZGF0ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZygpLgorc3RhdGlj
IGNvbnN0IHNpemVfdCB0ZXh0dXJlVXBkYXRlc1BlclRpY2sgPSAxMjsKKworLy8gTWVhc3VyZWQg
aW4gc2Vjb25kcy4KK3N0YXRpYyBjb25zdCBkb3VibGUgdGV4dHVyZVVwZGF0ZVRpY2tSYXRlID0g
MC4wMDQ7CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3NpemVfdCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjptYXhQYXJ0aWFsVGV4dHVyZVVw
ZGF0ZXMoKQoreworICAgIHJldHVybiB0ZXh0dXJlVXBkYXRlc1BlclRpY2s7Cit9CisKK0NDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoUGFzc093blB0
cjxDQ1RpbWVyPiB0aW1lciwgUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVyPiB1cGRhdGVyLCBD
Q0dyYXBoaWNzQ29udGV4dCogY29udGV4dCwgVGV4dHVyZUFsbG9jYXRvciogYWxsb2NhdG9yLCBU
ZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCisgICAgOiBt
X3RpbWVyKHRpbWVyKQorICAgICwgbV91cGRhdGVyKHVwZGF0ZXIpCisgICAgLCBtX2NvbnRleHQo
Y29udGV4dCkKKyAgICAsIG1fYWxsb2NhdG9yKGFsbG9jYXRvcikKKyAgICAsIG1fY29waWVyKGNv
cGllcikKKyAgICAsIG1fdXBsb2FkZXIodXBsb2FkZXIpCisgICAgLCBtX21vbm90b25pY1RpbWVM
aW1pdCgwKQoreworICAgIG1fdGltZXItPnNldENsaWVudCh0aGlzKTsKK30KKworQ0NUZXh0dXJl
VXBkYXRlQ29udHJvbGxlcjo6fkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoKQoreworfQorCiti
b29sIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Omhhc01vcmVVcGRhdGVzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV91cGRhdGVyLT5oYXNNb3JlVXBkYXRlcygpOworfQorCit2b2lkIENDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZU1vcmVUZXh0dXJlcyhkb3VibGUgbW9ub3Rvbmlj
VGltZUxpbWl0KQoreworICAgIG1fbW9ub3RvbmljVGltZUxpbWl0ID0gbW9ub3RvbmljVGltZUxp
bWl0OworICAgIHVwZGF0ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZygpOworfQor
Cit2b2lkIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Om9uVGltZXJGaXJlZCgpCit7CisgICAg
dXBkYXRlTW9yZVRleHR1cmVzSWZFbm91Z2hUaW1lUmVtYWluaW5nKCk7Cit9CisKK2RvdWJsZSBD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSBj
b25zdAoreworICAgIHJldHVybiBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwor
fQorCitkb3VibGUgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVz
VGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRleHR1cmVVcGRhdGVUaWNrUmF0ZTsKK30KKwor
dm9pZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXNJZkVub3Vn
aFRpbWVSZW1haW5pbmcoKQoreworICAgIGlmICghbV91cGRhdGVyLT5oYXNNb3JlVXBkYXRlcygp
KQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIGhhc1RpbWVSZW1haW5pbmcgPSBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKSA8IG1fbW9ub3RvbmljVGltZUxpbWl0IC0gdXBkYXRlTW9y
ZVRleHR1cmVzVGltZSgpOworICAgIGlmIChoYXNUaW1lUmVtYWluaW5nKSB7CisgICAgICAgIG1f
dGltZXItPnN0YXJ0T25lU2hvdCh1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKCkpOworICAgICAgICBt
X3VwZGF0ZXItPnVwZGF0ZShtX2NvbnRleHQsIG1fYWxsb2NhdG9yLCBtX2NvcGllciwgbV91cGxv
YWRlciwgdGV4dHVyZVVwZGF0ZXNQZXJUaWNrKTsKKyAgICB9Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzhlMjdkNWYy
Mjg5YzI4OTU3NmZiNjg5MTBkZTJhOTk1ZWE5ZGExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlci5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXJfaAorI2RlZmluZSBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyX2gKKworI2lu
Y2x1ZGUgImNjL0NDVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQ0NHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBDQ1RleHR1cmVV
cGRhdGVyOworY2xhc3MgVGV4dHVyZUFsbG9jYXRvcjsKK2NsYXNzIFRleHR1cmVDb3BpZXI7Citj
bGFzcyBUZXh0dXJlVXBsb2FkZXI7CisKK2NsYXNzIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIg
OiBwdWJsaWMgQ0NUaW1lckNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlcik7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8Q0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlcj4gY3JlYXRlKFBhc3NPd25QdHI8Q0NUaW1lcj4gdGltZXIs
IFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlcj4gdXBkYXRlciwgQ0NHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIFRleHR1cmVBbGxvY2F0b3IqIGFsbG9jYXRvciwgVGV4dHVyZUNvcGllciogY29w
aWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKHRpbWVyLCB1cGRhdGVyLCBjb250
ZXh0LCBhbGxvY2F0b3IsIGNvcGllciwgdXBsb2FkZXIpKTsKKyAgICB9CisgICAgc3RhdGljIHNp
emVfdCBtYXhQYXJ0aWFsVGV4dHVyZVVwZGF0ZXMoKTsKKworICAgIHZpcnR1YWwgfkNDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXIoKTsKKworICAgIGJvb2wgaGFzTW9yZVVwZGF0ZXMoKSBjb25zdDsK
KyAgICB2b2lkIHVwZGF0ZU1vcmVUZXh0dXJlcyhkb3VibGUgbW9ub3RvbmljVGltZUxpbWl0KTsK
KworICAgIC8vIENDVGltZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lk
IG9uVGltZXJGaXJlZCgpIE9WRVJSSURFOworCisgICAgLy8gVmlydHVhbCBmb3IgdGVzdGluZy4K
KyAgICB2aXJ0dWFsIGRvdWJsZSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGRvdWJsZSB1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKCkgY29uc3Q7CisKK3By
b3RlY3RlZDoKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKFBhc3NPd25QdHI8Q0NUaW1l
cj4sIFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlcj4sIENDR3JhcGhpY3NDb250ZXh0KiwgVGV4
dHVyZUFsbG9jYXRvciosIFRleHR1cmVDb3BpZXIqLCBUZXh0dXJlVXBsb2FkZXIqKTsKKworICAg
IHZvaWQgdXBkYXRlTW9yZVRleHR1cmVzSWZFbm91Z2hUaW1lUmVtYWluaW5nKCk7CisKKyAgICBP
d25QdHI8Q0NUaW1lcj4gbV90aW1lcjsKKyAgICBPd25QdHI8Q0NUZXh0dXJlVXBkYXRlcj4gbV91
cGRhdGVyOworICAgIENDR3JhcGhpY3NDb250ZXh0KiBtX2NvbnRleHQ7CisgICAgVGV4dHVyZUFs
bG9jYXRvciogbV9hbGxvY2F0b3I7CisgICAgVGV4dHVyZUNvcGllciogbV9jb3BpZXI7CisgICAg
VGV4dHVyZVVwbG9hZGVyKiBtX3VwbG9hZGVyOworICAgIGRvdWJsZSBtX21vbm90b25pY1RpbWVM
aW1pdDsKK307CisKK30KKworI2VuZGlmIC8vIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUZXh0dXJlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5oCmluZGV4IDBmMTM5ZjM4NWMzYTFkOTBjNjVmNWIy
YmEwMmYyOGZjNzI2ZTI1OTQuLmY4ZDliMjgyNmMwODQyZDllODhjOWMzOTk4MmUwNWRmZWQ5MmM3
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGV4dHVyZVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmgKQEAgLTQ1LDEwICs0NSwxMSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhcHBlbmRQYXJ0aWFsVXBkYXRlKExheWVyVGV4dHVyZVVwZGF0ZXI6
OlRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0
UmVjdCk7CiAgICAgdm9pZCBhcHBlbmRDb3B5KHVuc2lnbmVkIHNvdXJjZVRleHR1cmUsIHVuc2ln
bmVkIGRlc3RUZXh0dXJlLCBjb25zdCBJbnRTaXplJik7CiAKLSAgICBib29sIGhhc01vcmVVcGRh
dGVzKCkgY29uc3Q7CisgICAgLy8gVmlydHVhbCBmb3IgdGVzdGluZy4KKyAgICB2aXJ0dWFsIGJv
b2wgaGFzTW9yZVVwZGF0ZXMoKSBjb25zdDsKIAogICAgIC8vIFVwZGF0ZSBzb21lIHRleHR1cmVz
LgotICAgIHZvaWQgdXBkYXRlKENDR3JhcGhpY3NDb250ZXh0KiwgVGV4dHVyZUFsbG9jYXRvcios
IFRleHR1cmVDb3BpZXIqLCBUZXh0dXJlVXBsb2FkZXIqLCBzaXplX3QgY291bnQpOworICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGUoQ0NHcmFwaGljc0NvbnRleHQqLCBUZXh0dXJlQWxsb2NhdG9yKiwg
VGV4dHVyZUNvcGllciosIFRleHR1cmVVcGxvYWRlciosIHNpemVfdCBjb3VudCk7CiAKICAgICB2
b2lkIGNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggZTk1NTU1NTEw
NTY3ZTI5N2YzOWEwZTNjMTk2ZWZhOGYyODJhYzlhNC4uMTI1ODFiN2RlNDRhMGZhM2NiN2MzMzAx
YWZhODVhZTJiODVlMDk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTM3LDYg
KzM3LDcgQEAKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJjYy9D
Q1NjaGVkdWxlci5oIgogI2luY2x1ZGUgImNjL0NDU2NvcGVkVGhyZWFkUHJveHkuaCIKKyNpbmNs
dWRlICJjYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiY2MvQ0NUZXh0
dXJlVXBkYXRlci5oIgogI2luY2x1ZGUgImNjL0NDVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgpAQCAtNDYsMTAgKzQ3LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsK
IAogbmFtZXNwYWNlIHsKIAotLy8gTnVtYmVyIG9mIHRleHR1cmVzIHRvIHVwZGF0ZSB3aXRoIGVh
Y2ggY2FsbCB0bwotLy8gc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpLgotc3Rh
dGljIGNvbnN0IHNpemVfdCB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lID0gNDg7Ci0KIC8vIE1lYXN1
cmVkIGluIHNlY29uZHMuCiBzdGF0aWMgY29uc3QgZG91YmxlIGNvbnRleHRSZWNyZWF0aW9uVGlj
a1JhdGUgPSAwLjAzOwogCkBAIC00NTMsOCArNDUwLDYgQEAgdm9pZCBDQ1RocmVhZFByb3h5Ojpz
Y2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lKCkKICAgICBtX3BlbmRpbmdCZWdpbkZyYW1lUmVxdWVz
dCA9IGFkb3B0UHRyKG5ldyBCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGUoKSk7CiAgICAgbV9wZW5k
aW5nQmVnaW5GcmFtZVJlcXVlc3QtPm1vbm90b25pY0ZyYW1lQmVnaW5UaW1lID0gbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCk7CiAgICAgbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QtPnNj
cm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7Ci0g
ICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxUaHJlYWQgPSBhZG9wdFB0cihuZXcgQ0NU
ZXh0dXJlVXBkYXRlcik7Ci0gICAgbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QtPnVwZGF0ZXIg
PSBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlck9uSW1wbFRocmVhZC5nZXQoKTsKIAogICAgIG1fbWFp
blRocmVhZFByb3h5LT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFk
UHJveHk6OmJlZ2luRnJhbWUpKTsKIApAQCAtNTA5LDcgKzUwNCw4IEBAIHZvaWQgQ0NUaHJlYWRQ
cm94eTo6YmVnaW5GcmFtZSgpCiAgICAgbV9jb21taXRSZXF1ZXN0ZWQgPSBmYWxzZTsKICAgICBt
X2ZvcmNlZENvbW1pdFJlcXVlc3RlZCA9IGZhbHNlOwogCi0gICAgaWYgKCFtX2xheWVyVHJlZUhv
c3QtPnVwZGF0ZUxheWVycygqcmVxdWVzdC0+dXBkYXRlcikpCisgICAgT3duUHRyPENDVGV4dHVy
ZVVwZGF0ZXI+IHVwZGF0ZXIgPSBhZG9wdFB0cihuZXcgQ0NUZXh0dXJlVXBkYXRlcik7CisgICAg
aWYgKCFtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycygqdXBkYXRlcikpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIE9uY2Ugc2luZ2xlIGJ1ZmZlcmVkIGxheWVycyBhcmUgY29tbWl0dGVk
LCB0aGV5IGNhbm5vdCBiZSBtb2RpZmllZCB1bnRpbApAQCAtNTMyLDcgKzUyOCw3IEBAIHZvaWQg
Q0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZSgpCiAgICAgICAgIERlYnVnU2NvcGVkU2V0TWFpblRo
cmVhZEJsb2NrZWQgbWFpblRocmVhZEJsb2NrZWQ7CiAKICAgICAgICAgQ0NDb21wbGV0aW9uRXZl
bnQgY29tcGxldGlvbjsKLSAgICAgICAgQ0NQcm94eTo6aW1wbFRocmVhZCgpLT5wb3N0VGFzayhj
cmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0
ZU9uSW1wbFRocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcygmY29tcGxldGlvbikpKTsKKyAg
ICAgICAgQ0NQcm94eTo6aW1wbFRocmVhZCgpLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2so
dGhpcywgJkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRocmVhZCwgQWxs
b3dDcm9zc1RocmVhZEFjY2VzcygmY29tcGxldGlvbiksIHVwZGF0ZXIucmVsZWFzZSgpKSk7CiAg
ICAgICAgIGNvbXBsZXRpb24ud2FpdCgpOwogICAgIH0KIApAQCAtNTQwLDcgKzUzNiw3IEBAIHZv
aWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZSgpCiAgICAgbV9sYXllclRyZWVIb3N0LT5kaWRC
ZWdpbkZyYW1lKCk7CiB9CiAKLXZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRl
T25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uKQordm9pZCBDQ1RocmVh
ZFByb3h5OjpiZWdpbkZyYW1lQ29tcGxldGVPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQq
IGNvbXBsZXRpb24sIFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlcj4gdXBkYXRlcikKIHsKICAg
ICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhy
ZWFkIiwgdGhpcywgMCk7CiAgICAgQVNTRVJUKCFtX2NvbW1pdENvbXBsZXRpb25FdmVudE9uSW1w
bFRocmVhZCk7CkBAIC01NTMsNiArNTQ5LDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZy
YW1lQ29tcGxldGVPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24KICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fY3VycmVudFRleHR1cmVVcGRhdGVDb250cm9s
bGVyT25JbXBsVGhyZWFkID0gQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6Y3JlYXRlKGFkb3B0
UHRyKG5ldyBDQ1RpbWVyKENDUHJveHk6OmltcGxUaHJlYWQoKSkpLCB1cGRhdGVyLCBtX2xheWVy
VHJlZUhvc3RJbXBsLT5jb250ZXh0KCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmNvbnRlbnRzVGV4
dHVyZUFsbG9jYXRvcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRl
eHR1cmVDb3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0
dXJlVXBsb2FkZXIoKSk7CiAgICAgbV9jb21taXRDb21wbGV0aW9uRXZlbnRPbkltcGxUaHJlYWQg
PSBjb21wbGV0aW9uOwogCiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPmJlZ2luRnJhbWVD
b21wbGV0ZSgpOwpAQCAtNTYwLDkgKzU1Nyw5IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5G
cmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uCiAK
IGJvb2wgQ0NUaHJlYWRQcm94eTo6aGFzTW9yZVJlc291cmNlVXBkYXRlcygpIGNvbnN0CiB7Ci0g
ICAgaWYgKCFtX2N1cnJlbnRUZXh0dXJlVXBkYXRlck9uSW1wbFRocmVhZCkKKyAgICBpZiAoIW1f
Y3VycmVudFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG1fY3VycmVudFRleHR1cmVVcGRhdGVyT25JbXBsVGhyZWFk
LT5oYXNNb3JlVXBkYXRlcygpOworICAgIHJldHVybiBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlck9uSW1wbFRocmVhZC0+aGFzTW9yZVVwZGF0ZXMoKTsKIH0KIAogYm9vbCBDQ1RocmVh
ZFByb3h5OjpjYW5EcmF3KCkKQEAgLTU3MywzMSArNTcwLDMzIEBAIGJvb2wgQ0NUaHJlYWRQcm94
eTo6Y2FuRHJhdygpCiAgICAgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmNhbkRyYXcoKTsK
IH0KIAotdm9pZCBDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3Vy
Y2VzKCkKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291
cmNlcyhkb3VibGUgbW9ub3RvbmljVGltZUxpbWl0KQogewogICAgIFRSQUNFX0VWRU5UKCJDQ1Ro
cmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIiwgdGhpcywgMCk7
Ci0gICAgQVNTRVJUKG1fY3VycmVudFRleHR1cmVVcGRhdGVyT25JbXBsVGhyZWFkKTsKLSAgICBt
X2N1cnJlbnRUZXh0dXJlVXBkYXRlck9uSW1wbFRocmVhZC0+dXBkYXRlKG1fbGF5ZXJUcmVlSG9z
dEltcGwtPmNvbnRleHQoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+Y29udGVudHNUZXh0dXJlQWxs
b2NhdG9yKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZUNv
cGllcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVVcGxv
YWRlcigpLCB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lKTsKKyAgICBBU1NFUlQobV9jdXJyZW50VGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXJPbkltcGxUaHJlYWQpOworICAgIG1fY3VycmVudFRleHR1cmVV
cGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkLT51cGRhdGVNb3JlVGV4dHVyZXMobW9ub3Rvbmlj
VGltZUxpbWl0KTsKIH0KIAogdm9pZCBDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25Db21t
aXQoKQogewogICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25D
b21taXQiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQoaXNJbXBsVGhyZWFkKCkpOwotICAgIEFTU0VS
VChtX2N1cnJlbnRUZXh0dXJlVXBkYXRlck9uSW1wbFRocmVhZCk7Ci0gICAgQVNTRVJUKCFtX2N1
cnJlbnRUZXh0dXJlVXBkYXRlck9uSW1wbFRocmVhZC0+aGFzTW9yZVVwZGF0ZXMoKSk7CisgICAg
QVNTRVJUKG1fY3VycmVudFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkKTsKKyAg
ICBBU1NFUlQoIW1fY3VycmVudFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkLT5o
YXNNb3JlVXBkYXRlcygpKTsKICAgICBBU1NFUlQobV9jb21taXRDb21wbGV0aW9uRXZlbnRPbklt
cGxUaHJlYWQpOwogCi0gICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxUaHJlYWQuY2xl
YXIoKTsKKyAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29udHJvbGxlck9uSW1wbFRocmVhZC5j
bGVhcigpOwogCiAgICAgbV9sYXllclRyZWVIb3N0SW1wbC0+YmVnaW5Db21taXQoKTsKIAogICAg
IG1fbGF5ZXJUcmVlSG9zdC0+YmVnaW5Db21taXRPbkltcGxUaHJlYWQobV9sYXllclRyZWVIb3N0
SW1wbC5nZXQoKSk7CiAgICAgbV9sYXllclRyZWVIb3N0LT5maW5pc2hDb21taXRPbkltcGxUaHJl
YWQobV9sYXllclRyZWVIb3N0SW1wbC5nZXQoKSk7Ci0gICAgbV9zY2hlZHVsZXJPbkltcGxUaHJl
YWQtPnNldFZpc2libGUobV9sYXllclRyZWVIb3N0SW1wbC0+dmlzaWJsZSgpKTsKIAogICAgIG1f
bGF5ZXJUcmVlSG9zdEltcGwtPmNvbW1pdENvbXBsZXRlKCk7CiAKKyAgICAvLyBGSVhNRTogdGhp
cyBtaWdodCBjYXVzZSB0aGUgc2NoZWR1bGVyIHRvIGNhbGwgc2NoZWR1bGVkQWN0aW9uRHJhd0Fu
ZFN3YXBJZlBvc3NpYmxlKCkuCisgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPnNldFZpc2li
bGUobV9sYXllclRyZWVIb3N0SW1wbC0+dmlzaWJsZSgpKTsKKwogICAgIG1fbmV4dEZyYW1lSXNO
ZXdseUNvbW1pdHRlZEZyYW1lT25JbXBsVGhyZWFkID0gdHJ1ZTsKIAogICAgIG1fY29tbWl0Q29t
cGxldGlvbkV2ZW50T25JbXBsVGhyZWFkLT5zaWduYWwoKTsKQEAgLTc2Miw5ICs3NjEsMTAgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDVGhyZWFkUHJveHlDb250ZXh0UmVj
cmVhdGlvblRpbWVyKENDVGhyZWFkUHJveHkqIHByb3h5KQotICAgICAgICA6IENDVGltZXIoQ0NQ
cm94eTo6bWFpblRocmVhZCgpLCB0aGlzKQorICAgICAgICA6IENDVGltZXIoQ0NQcm94eTo6bWFp
blRocmVhZCgpKQogICAgICAgICAsIG1fcHJveHkocHJveHkpCiAgICAgeworICAgICAgICBzZXRD
bGllbnQodGhpcyk7CiAgICAgfQogCiAgICAgQ0NUaHJlYWRQcm94eSogbV9wcm94eTsKQEAgLTg0
OCw3ICs4NDgsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNldEZ1bGxSb290TGF5ZXJEYW1hZ2VP
bkltcGxUaHJlYWQoKQogCiBzaXplX3QgQ0NUaHJlYWRQcm94eTo6bWF4UGFydGlhbFRleHR1cmVV
cGRhdGVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdGV4dHVyZVVwZGF0ZXNQZXJGcmFtZTsKKyAg
ICByZXR1cm4gQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6bWF4UGFydGlhbFRleHR1cmVVcGRh
dGVzKCk7CiB9CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0Rm9udEF0bGFzKFBhc3NPd25QdHI8
Q0NGb250QXRsYXM+IGZvbnRBdGxhcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAppbmRleCAyYzJi
ZWIwMTI1MjJiNmE1ZmNlNTIxZWU3N2E4NGI1NjYwM2FiYjc4Li41M2VlNWMyYTAxNzg4YjE3NGFl
YzczMTE2OTVkZmY2NTI3MWJlY2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCkBAIC00MSw2
ICs0MSw3IEBAIGNsYXNzIENDTGF5ZXJUcmVlSG9zdDsKIGNsYXNzIENDU2NoZWR1bGVyOwogY2xh
c3MgQ0NTY29wZWRUaHJlYWRQcm94eTsKIGNsYXNzIENDVGV4dHVyZVVwZGF0ZXI7CitjbGFzcyBD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyOwogY2xhc3MgQ0NUaHJlYWQ7CiBjbGFzcyBDQ1RocmVh
ZFByb3h5Q29udGV4dFJlY3JlYXRpb25UaW1lcjsKIApAQCAtOTAsNyArOTEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVk
QWN0aW9uRHJhd0FuZFN3YXBJZlBvc3NpYmxlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBDQ1Nj
aGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2Fw
Rm9yY2VkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0
ZU1vcmVSZXNvdXJjZXMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0
aW9uVXBkYXRlTW9yZVJlc291cmNlcyhkb3VibGUgbW9ub3RvbmljVGltZUxpbWl0KSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4dFJlY3JlYXRpb24oKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQWNxdWlyZUxheWVyVGV4
dHVyZXNGb3JNYWluVGhyZWFkKCkgT1ZFUlJJREU7CkBAIC0xMDMsMTMgKzEwNCwxMSBAQCBwcml2
YXRlOgogICAgIHN0cnVjdCBCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGUgewogICAgICAgICBCZWdp
bkZyYW1lQW5kQ29tbWl0U3RhdGUoKQogICAgICAgICAgICAgOiBtb25vdG9uaWNGcmFtZUJlZ2lu
VGltZSgwKQotICAgICAgICAgICAgLCB1cGRhdGVyKDApCiAgICAgICAgIHsKICAgICAgICAgfQog
CiAgICAgICAgIGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZTsKICAgICAgICAgT3duUHRy
PENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm87Ci0gICAgICAgIENDVGV4dHVyZVVwZGF0
ZXIqIHVwZGF0ZXI7CiAgICAgfTsKICAgICBPd25QdHI8QmVnaW5GcmFtZUFuZENvbW1pdFN0YXRl
PiBtX3BlbmRpbmdCZWdpbkZyYW1lUmVxdWVzdDsKIApAQCAtMTMwLDcgKzEyOSw3IEBAIHByaXZh
dGU6CiAgICAgICAgIEludFJlY3QgcmVjdDsKICAgICB9OwogICAgIHZvaWQgZm9yY2VCZWdpbkZy
YW1lT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50Kik7Ci0gICAgdm9pZCBiZWdpbkZyYW1l
Q29tcGxldGVPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqKTsKKyAgICB2b2lkIGJlZ2lu
RnJhbWVDb21wbGV0ZU9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCosIFBhc3NPd25QdHI8
Q0NUZXh0dXJlVXBkYXRlcj4pOwogICAgIHZvaWQgcmVxdWVzdFJlYWRiYWNrT25JbXBsVGhyZWFk
KFJlYWRiYWNrUmVxdWVzdCopOwogICAgIHZvaWQgcmVxdWVzdFN0YXJ0UGFnZVNjYWxlQW5pbWF0
aW9uT25JbXBsVGhyZWFkKEludFNpemUgdGFyZ2V0UG9zaXRpb24sIGJvb2wgdXNlQW5jaG9yLCBm
bG9hdCBzY2FsZSwgZG91YmxlIGR1cmF0aW9uU2VjKTsKICAgICB2b2lkIGZpbmlzaEFsbFJlbmRl
cmluZ09uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCopOwpAQCAtMTQ2LDYgKzE0NSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzZXRGb250QXRsYXNPbkltcGxUaHJlYWQoUGFzc093blB0cjxD
Q0ZvbnRBdGxhcz4pOwogICAgIHZvaWQgZm9yY2VTZXJpYWxpemVPblN3YXBCdWZmZXJzT25JbXBs
VGhyZWFkKENDQ29tcGxldGlvbkV2ZW50Kik7CiAgICAgdm9pZCBzZXROZWVkc0ZvcmNlZENvbW1p
dE9uSW1wbFRocmVhZCgpOworICAgIHZvaWQgdGV4dHVyZVVwZGF0ZU9uSW1wbFRocmVhZCgpOwog
CiAgICAgLy8gQWNjZXNzZWQgb24gbWFpbiB0aHJlYWQgb25seS4KICAgICBib29sIG1fYW5pbWF0
ZVJlcXVlc3RlZDsKQEAgLTE4NCw3ICsxODQsNyBAQCBwcml2YXRlOgogICAgIC8vIFNldCB3aGVu
IHRoZSBtYWluIHRocmVhZCBpcyB3YWl0aW5nIG9uIGxheWVycyB0byBiZSBkcmF3bi4KICAgICBD
Q0NvbXBsZXRpb25FdmVudCogbV90ZXh0dXJlQWNxdWlzaXRpb25Db21wbGV0aW9uRXZlbnRPbklt
cGxUaHJlYWQ7CiAKLSAgICBPd25QdHI8Q0NUZXh0dXJlVXBkYXRlcj4gbV9jdXJyZW50VGV4dHVy
ZVVwZGF0ZXJPbkltcGxUaHJlYWQ7CisgICAgT3duUHRyPENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXI+IG1fY3VycmVudFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkOwogCiAgICAg
Ly8gU2V0IHdoZW4gdGhlIG5leHQgZHJhdyBzaG91bGQgcG9zdCBkaWRDb21taXRBbmREcmF3RnJh
bWUgdG8gdGhlIG1haW4gdGhyZWFkLgogICAgIGJvb2wgbV9uZXh0RnJhbWVJc05ld2x5Q29tbWl0
dGVkRnJhbWVPbkltcGxUaHJlYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbWVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCmluZGV4IGRjY2I0NzBh
NjM4M2UzMDRkYjExNmE1YjlkZjkxZGU1NjA2OGUwODUuLmMzNjRkOTJiZDAyOGEyMmZmYThhMmE4
N2ZjMTkzMGI1OGRlZjhlNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCkBAIC01MCw2ICs1MCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENDVGltZVNvdXJjZUNsaWVu
dCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wpID0gMDsKICAgICB2aXJ0
dWFsIGJvb2wgYWN0aXZlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIG5leHRUaWNr
VGltZSgpIGNvbnN0ID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaW1lci5jcHAKaW5kZXggYmE5ZWNjYzk1
OWI2YTliM2M0ZTE4MTJkNTFlMzljYTRkMjJjZjYyOS4uYTkxMjI5OGQzYWMwYjUwMmQ3YTFiMTA4
YTRmNzBhYmQzOTI5ZTcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaW1lci5jcHAKQEAgLTY4LDggKzY4LDggQEAgcHJp
dmF0ZToKICAgICBDQ1RpbWVyKiBtX3RpbWVyOyAvLyBudWxsIGlmIGNhbmNlbGxlZAogfTsKIAot
Q0NUaW1lcjo6Q0NUaW1lcihDQ1RocmVhZCogdGhyZWFkLCBDQ1RpbWVyQ2xpZW50KiBjbGllbnQp
Ci0gICAgOiBtX2NsaWVudChjbGllbnQpCitDQ1RpbWVyOjpDQ1RpbWVyKENDVGhyZWFkKiB0aHJl
YWQpCisgICAgOiBtX2NsaWVudCgwKQogICAgICwgbV90aHJlYWQodGhyZWFkKQogICAgICwgbV90
YXNrKDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RpbWVyLmgKaW5kZXggYTg0NTE5MGQ5YTVhYWFlYmM0ZDIyMTFkMTkyNzYx
MTA3ZGVlZjU1My4uZjMwOGNlMzczYjAwMDk3NDk5YTgzNTFhY2U3MTA1OGY5NmMzNmVjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGltZXIuaApAQCAtNDYsOSArNDYsMTEgQEAgcHVibGljOgogCiBjbGFzcyBDQ1RpbWVyIHsK
IHB1YmxpYzoKLSAgICBDQ1RpbWVyKENDVGhyZWFkKiwgQ0NUaW1lckNsaWVudCopOworICAgIEND
VGltZXIoQ0NUaHJlYWQqKTsKICAgICB+Q0NUaW1lcigpOwogCisgICAgdm9pZCBzZXRDbGllbnQo
Q0NUaW1lckNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CisKICAgICAvLyBJ
ZiBhIHByZXZpb3VzIHRhc2sgaXMgcGVuZGluZywgaXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRo
ZSBuZXcgb25lLgogICAgIHZvaWQgc3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbFNlY29uZHMp
OwogICAgIHZvaWQgc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggNTQ5
ZmRmYTQ0Yjg0YWUxY2E3NTFhZGU0NDI3YzNkN2M4Y2M5OGE1NS4uZWQzYjZkOTM3ODQ5NjIxNTQ0
YWIwM2M0YzUyOGE0ZjVkNGM0MGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBA
IC04OSw2ICs4OSw3IEBACiAgICAgICAgICAgICAndGVzdHMvQ0NTaW5nbGVUaHJlYWRQcm94eVRl
c3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9DQ1NvbGlkQ29sb3JMYXllckltcGxUZXN0LmNw
cCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NUZXN0Q29tbW9uLmgnLAorICAgICAgICAgICAgJ3Rl
c3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVz
dHMvQ0NUaWxlZExheWVySW1wbFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9DQ1RpbGVk
TGF5ZXJUZXN0Q29tbW9uLmgnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDVGlsZWRMYXllclRlc3RD
b21tb24uY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NT
Y2hlZHVsZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVs
ZXJUZXN0LmNwcAppbmRleCA0MTI1MDg4NGJmNGRhMDJlNWE2YTAwZGJmZDhjMTY4NWY0NjI0ZmVj
Li44NDhhNTg2NDY4MWNjMDUzMjdhZmYwZmY5OTM0NjE0ZmJhYjZlMWFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwCkBAIC04MSw3ICs4
MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3
YXBSZXN1bHQodHJ1ZSwgbV9zd2FwV2lsbEhhcHBlbklmRHJhd0hhcHBlbnMpOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgT1ZF
UlJJREUgeyBtX2FjdGlvbnMucHVzaF9iYWNrKCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVz
b3VyY2VzIik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJl
c291cmNlcyhkb3VibGUpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2NoZWR1bGVk
QWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxl
ZEFjdGlvbkNvbW1pdCgpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2NoZWR1bGVk
QWN0aW9uQ29tbWl0Iik7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQmVnaW5D
b250ZXh0UmVjcmVhdGlvbigpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2NoZWR1
bGVkQWN0aW9uQmVnaW5Db250ZXh0UmVjcmVhdGlvbiIpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNj
aGVkdWxlZEFjdGlvbkFjcXVpcmVMYXllclRleHR1cmVzRm9yTWFpblRocmVhZCgpIE9WRVJSSURF
IHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2NoZWR1bGVkQWN0aW9uQWNxdWlyZUxheWVyVGV4dHVy
ZXNGb3JNYWluVGhyZWFkIik7IH0KQEAgLTExNCwxMiArMTE0LDEwIEBAIFRFU1QoQ0NTY2hlZHVs
ZXJUZXN0LCBSZXF1ZXN0Q29tbWl0KQogICAgIGNsaWVudC5yZXNldCgpOwogCiAgICAgLy8gU2lu
Y2UsIGhhc01vcmVSZXNvdXJjZVVwZGF0ZXMgaXMgc2V0IHRvIGZhbHNlLAotICAgIC8vIGJlZ2lu
RnJhbWVDb21wbGV0ZSBzaG91bGQgdXBkYXRlTW9yZVJlc291cmNlcywgdGhlbgotICAgIC8vIGNv
bW1pdAorICAgIC8vIGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQgY29tbWl0CiAgICAgc2NoZWR1
bGVyLT5iZWdpbkZyYW1lQ29tcGxldGUoKTsKLSAgICBFWFBFQ1RfRVEoMiwgY2xpZW50Lm51bUFj
dGlvbnMoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVz
b3VyY2VzIiwgY2xpZW50LmFjdGlvbigwKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRB
Y3Rpb25Db21taXQiLCBjbGllbnQuYWN0aW9uKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgY2xpZW50
Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25Db21taXQi
LCBjbGllbnQuYWN0aW9uKDApKTsKICAgICBFWFBFQ1RfVFJVRSh0aW1lU291cmNlLT5hY3RpdmUo
KSk7CiAgICAgY2xpZW50LnJlc2V0KCk7CiAKQEAgLTE1MiwxMiArMTUwLDEwIEBAIFRFU1QoQ0NT
Y2hlZHVsZXJUZXN0LCBSZXF1ZXN0Q29tbWl0QWZ0ZXJCZWdpbkZyYW1lKQogICAgIHNjaGVkdWxl
ci0+c2V0TmVlZHNDb21taXQoKTsKIAogICAgIC8vIFNpbmNlLCBoYXNNb3JlUmVzb3VyY2VVcGRh
dGVzIGlzIHNldCB0byBmYWxzZSwgYW5kIGFub3RoZXIgY29tbWl0IGlzCi0gICAgLy8gbmVlZGVk
LCBiZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxkIHVwZGF0ZU1vcmVSZXNvdXJjZXMsIHRoZW4gY29t
bWl0LCB0aGVuCi0gICAgLy8gYmVnaW4gYW5vdGhlciBmcmFtZS4KKyAgICAvLyBuZWVkZWQsIGJl
Z2luRnJhbWVDb21wbGV0ZSBzaG91bGQgY29tbWl0LCB0aGVuIGJlZ2luIGFub3RoZXIgZnJhbWUu
CiAgICAgc2NoZWR1bGVyLT5iZWdpbkZyYW1lQ29tcGxldGUoKTsKLSAgICBFWFBFQ1RfRVEoMiwg
Y2xpZW50Lm51bUFjdGlvbnMoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25V
cGRhdGVNb3JlUmVzb3VyY2VzIiwgY2xpZW50LmFjdGlvbigwKSk7Ci0gICAgRVhQRUNUX1NUUkVR
KCJzY2hlZHVsZWRBY3Rpb25Db21taXQiLCBjbGllbnQuYWN0aW9uKDEpKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgY2xpZW50Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRB
Y3Rpb25Db21taXQiLCBjbGllbnQuYWN0aW9uKDApKTsKICAgICBjbGllbnQucmVzZXQoKTsKIAog
ICAgIC8vIFRpY2sgc2hvdWxkIGRyYXcgYnV0IHRoZW4gYmVnaW4gYW5vdGhlciBmcmFtZS4KQEAg
LTI1Nyw3ICsyNTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBDQ1NjaGVkdWxlZEFjdGlv
bkRyYXdBbmRTd2FwUmVzdWx0KHRydWUsIHRydWUpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgT1ZFUlJJREUgeyB9CisgICAg
dmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoZG91YmxlKSBP
VkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgT1ZF
UlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4dFJl
Y3JlYXRpb24oKSBPVkVSUklERSB7IH0KIApAQCAtMzU3LDcgKzM1Myw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQodHJ1ZSwgdHJ1
ZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVS
ZXNvdXJjZXMoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9u
VXBkYXRlTW9yZVJlc291cmNlcyhkb3VibGUpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBzY2hlZHVsZWRBY3Rpb25Db21taXQoKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2NoZWR1bGVkQWN0aW9uQmVnaW5Db250ZXh0UmVjcmVhdGlvbigpIE9WRVJSSURFIHsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdENv
bW1vbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3RDb21t
b24uaAppbmRleCA2MjU3ZWM4ODhmNThlYzc1MjY4ODdhNzcxZjcyNDhmM2Q1M2Y2NjVmLi5mMmVj
NGI4YzI5N2EzMTA5MTc2YjE5ODQ2YmQ4NzgwMGYzOTIyYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmgKQEAgLTg2LDYg
Kzg2LDcgQEAgY2xhc3MgRmFrZUNDVGltZVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpDQ1RpbWVT
b3VyY2UgewogcHVibGljOgogICAgIEZha2VDQ1RpbWVTb3VyY2UoKQogICAgICAgICA6IG1fYWN0
aXZlKGZhbHNlKQorICAgICAgICAsIG1fbmV4dFRpY2tUaW1lKDApCiAgICAgICAgICwgbV9jbGll
bnQoMCkgeyB9CiAKICAgICB2aXJ0dWFsIH5GYWtlQ0NUaW1lU291cmNlKCkgeyB9CkBAIC05Myw2
ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYkNvcmU6OkND
VGltZVNvdXJjZUNsaWVudCogY2xpZW50KSBPVkVSUklERSB7IG1fY2xpZW50ID0gY2xpZW50OyB9
CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGIpIE9WRVJSSURFIHsgbV9hY3RpdmUg
PSBiOyB9CiAgICAgdmlydHVhbCBib29sIGFjdGl2ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBkb3VibGUgbmV4dFRpY2tUaW1lKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbV9uZXh0VGlja1RpbWU7IH0KIAogICAgIHZvaWQgdGljaygpCiAgICAg
ewpAQCAtMTAxLDggKzEwMywxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2NsaWVudC0+b25U
aW1lclRpY2soKTsKICAgICB9CiAKKyAgICB2b2lkIHNldE5leHRUaWNrVGltZShkb3VibGUgbmV4
dFRpY2tUaW1lKSB7IG1fbmV4dFRpY2tUaW1lID0gbmV4dFRpY2tUaW1lOyB9CisKIHByb3RlY3Rl
ZDoKICAgICBib29sIG1fYWN0aXZlOworICAgIGRvdWJsZSBtX25leHRUaWNrVGltZTsKICAgICBX
ZWJDb3JlOjpDQ1RpbWVTb3VyY2VDbGllbnQqIG1fY2xpZW50OwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXJUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDFjNTM2YWI5NzQ1NWY4MWVhNzNhZTlmZDRlMGJh
OTRkNjM5OWZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKQEAgLTAsMCArMSwxNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgImNjL0NDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIkNDU2NoZWR1bGVyVGVzdENvbW1vbi5o
IgorI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKKyNpbmNsdWRlIDxndGVzdC9ndGVz
dC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXRU
ZXN0czsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgRmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXIgOiBwdWJsaWMgV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlciB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NPd25QdHI8RmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNy
ZWF0ZShXZWJDb3JlOjpDQ1RocmVhZCogdGhyZWFkLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0
ZXI+IHVwZGF0ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZha2VDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyKHRocmVhZCwgdXBkYXRlcikpOworICAgIH0KKworICAgIHZv
aWQgc2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGRvdWJsZSB0aW1lKSB7IG1fbW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lID0gdGltZTsgfQorICAgIHZpcnR1YWwgZG91YmxlIG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lOyB9CisgICAgdm9pZCBzZXRVcGRhdGVNb3JlVGV4dHVyZXNU
aW1lKGRvdWJsZSB0aW1lKSB7IG1fdXBkYXRlTW9yZVRleHR1cmVzVGltZSA9IHRpbWU7IH0KKyAg
ICB2aXJ0dWFsIGRvdWJsZSB1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gbV91cGRhdGVNb3JlVGV4dHVyZXNUaW1lOyB9CisKKyAgICBDQ1RleHR1cmVVcGRh
dGVyKiB1cGRhdGVyKCkgeyByZXR1cm4gbV91cGRhdGVyLmdldCgpOyB9CisKK3Byb3RlY3RlZDoK
KyAgICBGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihXZWJDb3JlOjpDQ1RocmVhZCogdGhy
ZWFkLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZXI+IHVwZGF0ZXIpCisgICAgICAgIDogQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlcihhZG9wdFB0cihuZXcgQ0NUaW1lcih0aHJlYWQpKSwgdXBk
YXRlciwgMCwgMCwgMCwgMCkKKyAgICAgICAgLCBtX21vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgwKQorICAgICAgICAsIG1fdXBkYXRlTW9yZVRleHR1cmVzVGltZSgwKSB7IH0KKworICAgIGRv
dWJsZSBtX21vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZTsKKyAgICBkb3VibGUgbV91cGRhdGVN
b3JlVGV4dHVyZXNUaW1lOworfTsKKworY2xhc3MgRmFrZUNDVGV4dHVyZVVwZGF0ZXIgOiBwdWJs
aWMgV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlciB7CitwdWJsaWM6CisgICAgRmFrZUNDVGV4dHVy
ZVVwZGF0ZXIoKQorICAgICAgICA6IENDVGV4dHVyZVVwZGF0ZXIoKQorICAgICAgICAsIG1faGFz
TW9yZVVwZGF0ZXModHJ1ZSkKKyAgICAgICAgLCBtX3VwZGF0ZUNvdW50KDApIHsgfQorCisgICAg
dm9pZCBzZXRIYXNNb3JlVXBkYXRlcyhib29sIG1vcmUpIHsgbV9oYXNNb3JlVXBkYXRlcyA9IG1v
cmU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzTW9yZVVwZGF0ZXMoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiBtX2hhc01vcmVVcGRhdGVzOyB9CisKKyAgICB2b2lkIHJlc2V0VXBkYXRlQ291bnQo
KSB7IG1fdXBkYXRlQ291bnQgPSAwOyB9CisgICAgaW50IHVwZGF0ZUNvdW50KCkgeyByZXR1cm4g
bV91cGRhdGVDb3VudDsgfQorCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShDQ0dyYXBoaWNzQ29u
dGV4dCosIFRleHR1cmVBbGxvY2F0b3IqLCBUZXh0dXJlQ29waWVyKiwgVGV4dHVyZVVwbG9hZGVy
Kiwgc2l6ZV90KSBPVkVSUklERSB7IG1fdXBkYXRlQ291bnQrKzsgfQorCitwcml2YXRlOgorICAg
IGJvb2wgbV9oYXNNb3JlVXBkYXRlczsKKyAgICBpbnQgbV91cGRhdGVDb3VudDsKK307CisKK1RF
U1QoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIFVwZGF0ZU1vcmVUZXh0dXJlcykKK3sK
KyAgICBGYWtlQ0NUaHJlYWQgdGhyZWFkOworICAgIE93blB0cjxGYWtlQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcj4gY29udHJvbGxlciA9IEZha2VDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpj
cmVhdGUoJnRocmVhZCwgYWRvcHRQdHIobmV3IEZha2VDQ1RleHR1cmVVcGRhdGVyKSk7CisgICAg
RmFrZUNDVGV4dHVyZVVwZGF0ZXIqIHVwZGF0ZXIgPSBzdGF0aWNfY2FzdDxGYWtlQ0NUZXh0dXJl
VXBkYXRlcio+KGNvbnRyb2xsZXItPnVwZGF0ZXIoKSk7CisKKyAgICBjb250cm9sbGVyLT5zZXRN
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoMCk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRl
TW9yZVRleHR1cmVzVGltZSgwLjEpOworICAgIC8vIE5vdCBlbm91Z2ggdGltZSBmb3IgYW55IHVw
ZGF0ZXMuCisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMDkpOworICAgIEVY
UEVDVF9GQUxTRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgRVhQRUNUX0VRKDAsIHVw
ZGF0ZXItPnVwZGF0ZUNvdW50KCkpOworCisgICAgdGhyZWFkLnJlc2V0KCk7CisgICAgdXBkYXRl
ci0+cmVzZXRVcGRhdGVDb3VudCgpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNU
aW1lKDAuMSk7CisgICAgLy8gT25seSBlbm91Z2ggdGltZSBmb3IgMSB1cGRhdGUuCisgICAgY29u
dHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMTIpOworICAgIEVYUEVDVF9UUlVFKHRocmVh
ZC5oYXNQZW5kaW5nVGFzaygpKTsKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUodGhyZWFkLnBlbmRpbmdEZWxheU1zKCkgLyAxMDAwLjApOworICAgIHRocmVh
ZC5ydW5QZW5kaW5nVGFzaygpOworICAgIEVYUEVDVF9FUSgxLCB1cGRhdGVyLT51cGRhdGVDb3Vu
dCgpKTsKKworICAgIHRocmVhZC5yZXNldCgpOworICAgIHVwZGF0ZXItPnJlc2V0VXBkYXRlQ291
bnQoKTsKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoMCk7
CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzVGltZSgwLjEpOworICAgIC8v
IEVub3VnaCB0aW1lIGZvciAyIHVwZGF0ZXMuCisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRl
eHR1cmVzKDAuMjIpOworICAgIEVYUEVDVF9UUlVFKHRocmVhZC5oYXNQZW5kaW5nVGFzaygpKTsK
KyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoY29udHJvbGxl
ci0+bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgKyB0aHJlYWQucGVuZGluZ0RlbGF5TXMo
KSAvIDEwMDAuMCk7CisgICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VR
KDIsIHVwZGF0ZXItPnVwZGF0ZUNvdW50KCkpOworfQorCitURVNUKENDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXJUZXN0LCBIYXNNb3JlVXBkYXRlcykKK3sKKyAgICBGYWtlQ0NUaHJlYWQgdGhyZWFk
OworICAgIE93blB0cjxGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcj4gY29udHJvbGxlciA9
IEZha2VDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUoJnRocmVhZCwgYWRvcHRQdHIo
bmV3IEZha2VDQ1RleHR1cmVVcGRhdGVyKSk7CisgICAgRmFrZUNDVGV4dHVyZVVwZGF0ZXIqIHVw
ZGF0ZXIgPSBzdGF0aWNfY2FzdDxGYWtlQ0NUZXh0dXJlVXBkYXRlcio+KGNvbnRyb2xsZXItPnVw
ZGF0ZXIoKSk7CisKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoMCk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzVGltZSgwLjEpOwor
ICAgIC8vIEVub3VnaCB0aW1lIGZvciAzIHVwZGF0ZXMgYnV0IG9ubHkgMiBuZWNlc3NhcnkuCisg
ICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMzEpOworICAgIEVYUEVDVF9UUlVF
KHRocmVhZC5oYXNQZW5kaW5nVGFzaygpKTsKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoY29udHJvbGxlci0+bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkgKyB0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhyZWFkLnJ1blBl
bmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX1RSVUUodGhyZWFkLmhhc1BlbmRpbmdUYXNrKCkpOwor
ICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZShjb250cm9sbGVy
LT5tb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSArIHRocmVhZC5wZW5kaW5nRGVsYXlNcygp
IC8gMTAwMC4wKTsKKyAgICB1cGRhdGVyLT5zZXRIYXNNb3JlVXBkYXRlcyhmYWxzZSk7CisgICAg
dGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VRKDIsIHVwZGF0ZXItPnVwZGF0
ZUNvdW50KCkpOworCisgICAgdGhyZWFkLnJlc2V0KCk7CisgICAgdXBkYXRlci0+cmVzZXRVcGRh
dGVDb3VudCgpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNUaW1lKDAuMSk7Cisg
ICAgLy8gRW5vdWdoIHRpbWUgZm9yIHVwZGF0ZXMgYnV0IG5vIG1vcmUgdXBkYXRlcyBsZWZ0Lgor
ICAgIGNvbnRyb2xsZXItPnVwZGF0ZU1vcmVUZXh0dXJlcygwLjMxKTsKKyAgICBFWFBFQ1RfRkFM
U0UodGhyZWFkLmhhc1BlbmRpbmdUYXNrKCkpOworICAgIEVYUEVDVF9FUSgwLCB1cGRhdGVyLT51
cGRhdGVDb3VudCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ1RpbWVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
VGltZXJUZXN0LmNwcAppbmRleCBjMWIyZWZiNzcxYmYyMGUwYTNiM2FkNDc3ODg2MjUzMGY3MjVl
NDJhLi41NDM2ODcwMTE0MjY1M2IxNDJlYmRhNDdiYzhmY2I4ZjJlNzhlNTg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGltZXJUZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGltZXJUZXN0LmNwcApAQCAtNTMsNyArNTMsOCBA
QCBwcm90ZWN0ZWQ6CiAKIFRFU1RfRihDQ1RpbWVyVGVzdCwgT25lU2hvdCkKIHsKLSAgICBDQ1Rp
bWVyIHRpbWVyKCZtX3RocmVhZCwgdGhpcyk7CisgICAgQ0NUaW1lciB0aW1lcigmbV90aHJlYWQp
OworICAgIHRpbWVyLnNldENsaWVudCh0aGlzKTsKICAgICB0aW1lci5zdGFydE9uZVNob3QoMC4w
MDEpOwogICAgIEVYUEVDVF9UUlVFKHRpbWVyLmlzQWN0aXZlKCkpOwogICAgIG1fdGhyZWFkLnJ1
blBlbmRpbmdUYXNrKCk7CkBAIC02NCw3ICs2NSw4IEBAIFRFU1RfRihDQ1RpbWVyVGVzdCwgT25l
U2hvdCkKIAogVEVTVF9GKENDVGltZXJUZXN0LCBTdG9wTWFudWFsbHkpCiB7Ci0gICAgQ0NUaW1l
ciB0aW1lcigmbV90aHJlYWQsIHRoaXMpOworICAgIENDVGltZXIgdGltZXIoJm1fdGhyZWFkKTsK
KyAgICB0aW1lci5zZXRDbGllbnQodGhpcyk7CiAgICAgdGltZXIuc3RhcnRPbmVTaG90KDAuMDAx
KTsKICAgICBFWFBFQ1RfVFJVRSh0aW1lci5pc0FjdGl2ZSgpKTsKICAgICB0aW1lci5zdG9wKCk7
CkBAIC03OCw3ICs4MCw4IEBAIFRFU1RfRihDQ1RpbWVyVGVzdCwgU3RvcE1hbnVhbGx5KQogVEVT
VF9GKENDVGltZXJUZXN0LCBTdG9wQnlTY29wZSkKIHsKICAgICB7Ci0gICAgICAgIENDVGltZXIg
dGltZXIoJm1fdGhyZWFkLCB0aGlzKTsKKyAgICAgICAgQ0NUaW1lciB0aW1lcigmbV90aHJlYWQp
OworICAgICAgICB0aW1lci5zZXRDbGllbnQodGhpcyk7CiAgICAgICAgIHRpbWVyLnN0YXJ0T25l
U2hvdCgwLjAwMSk7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155294</attachid>
            <date>2012-07-30 08:14:36 -0700</date>
            <delta_ts>2012-08-06 15:02:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>texture-upload-streaming.diff</filename>
            <type>text/plain</type>
            <size>26593</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKaW5kZXggZDZkY2Rj
Ni4uNTNhY2I2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5j
cHAKQEAgLTQyLDggKzQyLDkgQEAgQ0NEZWxheUJhc2VkVGltZVNvdXJjZTo6Q0NEZWxheUJhc2Vk
VGltZVNvdXJjZShkb3VibGUgaW50ZXJ2YWxTZWNvbmRzLCBDQ1RocmVhZCoKICAgICAsIG1faW50
ZXJ2YWxTZWNvbmRzKGludGVydmFsU2Vjb25kcykKICAgICAsIG1fdGlja1RhcmdldCgwKQogICAg
ICwgbV9zdGF0ZShTVEFURV9JTkFDVElWRSkKLSAgICAsIG1fdGltZXIodGhyZWFkLCB0aGlzKQor
ICAgICwgbV90aW1lcih0aHJlYWQpCiB7CisgICAgbV90aW1lci5zZXRDbGllbnQodGhpcyk7CiB9
CiAKIHZvaWQgQ0NEZWxheUJhc2VkVGltZVNvdXJjZTo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQpA
QCAtMTU5LDQgKzE2MCwxMiBAQCB2b2lkIENDRGVsYXlCYXNlZFRpbWVTb3VyY2U6OnBvc3ROZXh0
VGlja1Rhc2soZG91YmxlIG5vdykKICAgICBtX3RpY2tUYXJnZXQgPSBuZXdUaWNrVGFyZ2V0Owog
fQogCitkb3VibGUgQ0NEZWxheUJhc2VkVGltZVNvdXJjZTo6bmV4dFRpY2tUaW1lKCkgY29uc3QK
K3sKKyAgICBpZiAoIW1faGFzVGlja1RhcmdldCkKKyAgICAgICAgcmV0dXJuIG1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpOworCisgICAgcmV0dXJuIG1fdGlja1RhcmdldDsKK30KKwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NEZWxheUJhc2VkVGltZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5oCmluZGV4IDk5Nzk1ZGIuLjZm
MjNlYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmgKQEAgLTQ3
LDYgKzQ3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGFjdGl2ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IG1fc3RhdGUgIT0gU1RBVEVfSU5BQ1RJVkU7IH0KIAorICAgIHZpcnR1YWwgZG91YmxlIG5leHRU
aWNrVGltZSgpIGNvbnN0IE9WRVJSSURFOworCiAgICAgLy8gQ0NUaW1lckNsaWVudCBpbXBsZW1l
bnRhdGlvbi4KICAgICB2aXJ0dWFsIHZvaWQgb25UaW1lckZpcmVkKCkgT1ZFUlJJREU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RnJhbWVSYXRlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwCmluZGV4IGRmN2YzMTUuLjI5
Mzg2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcApAQCAt
MTA0LDQgKzEwNCw5IEBAIHZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpkaWRBYm9ydEFsbFBl
bmRpbmdGcmFtZXMoKQogICAgIG1fbnVtRnJhbWVzUGVuZGluZyA9IDA7CiB9CiAKK2RvdWJsZSBD
Q0ZyYW1lUmF0ZUNvbnRyb2xsZXI6Om5leHRUaWNrVGltZSgpCit7CisgICAgcmV0dXJuIG1fdGlt
ZVNvdXJjZS0+bmV4dFRpY2tUaW1lKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJh
dGVDb250cm9sbGVyLmgKaW5kZXggZmEyM2FmMi4uNWE3MmIwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NGcmFtZVJhdGVDb250cm9sbGVyLmgKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZv
aWQgZGlkRmluaXNoRnJhbWUoKTsKICAgICB2b2lkIGRpZEFib3J0QWxsUGVuZGluZ0ZyYW1lcygp
OwogICAgIHZvaWQgc2V0TWF4RnJhbWVzUGVuZGluZyhpbnQpOyAvLyAwIGZvciB1bmxpbWl0ZWQu
CisgICAgZG91YmxlIG5leHRUaWNrVGltZSgpOwogCiBwcm90ZWN0ZWQ6CiAgICAgZnJpZW5kIGNs
YXNzIENDRnJhbWVSYXRlQ29udHJvbGxlclRpbWVTb3VyY2VBZGFwdGVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hl
ZHVsZXIuY3BwCmluZGV4IDZmODY1YzkuLjUyYzcxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5j
cHAKQEAgLTE2OCwxNiArMTY4LDExIEBAIHZvaWQgQ0NTY2hlZHVsZXI6OnByb2Nlc3NTY2hlZHVs
ZWRBY3Rpb25zKCkKICAgICAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZWRBY3Rpb25CZWdpbkZy
YW1lKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDQ1NjaGVkdWxlclN0YXRl
TWFjaGluZTo6QUNUSU9OX0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUzoKLSAgICAgICAgICAg
IG1fY2xpZW50LT5zY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCk7Ci0gICAgICAg
ICAgICBpZiAoIW1fY2xpZW50LT5oYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkpIHsKLSAgICAgICAg
ICAgICAgICAvLyBJZiB3ZSB3ZXJlIGp1c3QgdG9sZCB0byB1cGRhdGUgcmVzb3VyY2VzLCBidXQg
dGhlcmUgYXJlIG5vCi0gICAgICAgICAgICAgICAgLy8gbW9yZSBwZW5kaW5nLCB0aGVuIHRlbGwg
dGhlIHN0YXRlIG1hY2hpbmUgdGhhdCB0aGUKLSAgICAgICAgICAgICAgICAvLyBiZWdpblVwZGF0
ZU1vcmVSZXNvdXJjZXMgY29tcGxldGVkLiBJZiBtb3JlIGFyZSBwZW5kaW5nLAotICAgICAgICAg
ICAgICAgIC8vIHRoZW4gd2Ugd2lsbCBhY2sgdGhlIHVwZGF0ZSBhdCB0aGUgbmV4dCBkcmF3Lgot
ICAgICAgICAgICAgICAgIG1fdXBkYXRlTW9yZVJlc291cmNlc1BlbmRpbmcgPSBmYWxzZTsKLSAg
ICAgICAgICAgICAgICBtX3N0YXRlTWFjaGluZS5iZWdpblVwZGF0ZU1vcmVSZXNvdXJjZXNDb21w
bGV0ZShmYWxzZSk7Ci0gICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGlmIChtX2NsaWVu
dC0+aGFzTW9yZVJlc291cmNlVXBkYXRlcygpKSB7CisgICAgICAgICAgICAgICAgbV9jbGllbnQt
PnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMobV9mcmFtZVJhdGVDb250cm9sbGVy
LT5uZXh0VGlja1RpbWUoKSk7CiAgICAgICAgICAgICAgICAgbV91cGRhdGVNb3JlUmVzb3VyY2Vz
UGVuZGluZyA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBtX3N0
YXRlTWFjaGluZS5iZWdpblVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZShmYWxzZSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDQ1NjaGVkdWxlclN0YXRlTWFjaGluZTo6QUNU
SU9OX0NPTU1JVDoKICAgICAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZWRBY3Rpb25Db21taXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NjaGVkdWxlci5oCmluZGV4IDNlNmY3YWEuLmQwOGI2OGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
Y2hlZHVsZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNj
aGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKSA9IDA7CiAgICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFj
dGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwSWZQb3NzaWJs
ZSgpID0gMDsKICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQg
c2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBGb3JjZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoZG91YmxlIG1vbm90b25pY1Rp
bWVMaW1pdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25Db21taXQoKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4dFJlY3JlYXRp
b24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkFjcXVpcmVMYXllclRl
eHR1cmVzRm9yTWFpblRocmVhZCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJl
VXBkYXRlQ29udHJvbGxlci5jcHAKaW5kZXggZWQ5MzdhOS4uZDhiMjM4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5jcHAKQEAgLTM1LDcgKzM1LDEw
IEBACiBuYW1lc3BhY2UgewogCiAvLyBOdW1iZXIgb2YgdGV4dHVyZXMgdG8gdXBkYXRlIHdpdGgg
ZWFjaCBjYWxsIHRvIHVwZGF0ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZygpLgot
c3RhdGljIGNvbnN0IHNpemVfdCB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lID0gNDg7CitzdGF0aWMg
Y29uc3Qgc2l6ZV90IHRleHR1cmVVcGRhdGVzUGVyVGljayA9IDEyOworCisvLyBNZWFzdXJlZCBp
biBzZWNvbmRzLgorc3RhdGljIGNvbnN0IGRvdWJsZSB0ZXh0dXJlVXBkYXRlVGlja1JhdGUgPSAw
LjAwNDsKIAogLy8gRmx1c2ggaW50ZXJ2YWwgd2hlbiBwZXJmb3JtaW5nIHRleHR1cmUgdXBsb2Fk
cy4KIHN0YXRpYyBjb25zdCBpbnQgdGV4dHVyZVVwbG9hZEZsdXNoUGVyaW9kID0gNDsKQEAgLTQ2
LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzaXplX3QgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcjo6bWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKCkKIHsKLSAgICByZXR1cm4gdGV4
dHVyZVVwZGF0ZXNQZXJGcmFtZTsKKyAgICByZXR1cm4gdGV4dHVyZVVwZGF0ZXNQZXJUaWNrOwog
fQogCiB2b2lkIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKENDUmVz
b3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBU
ZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyLCBDQ1RleHR1cmVVcGRhdGVRdWV1ZSogcXVldWUsIHNp
emVfdCBjb3VudCkKQEAgLTExMCwxMiArMTEzLDE1IEBAIHZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3Zp
CiAgICAgICAgIGNvcGllci0+Zmx1c2goKTsKIH0KIAotQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxl
cjo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1
ZXVlPiBxdWV1ZSwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJl
Q29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCi0gICAgOiBtX3F1ZXVl
KHF1ZXVlKQorQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6Q0NUZXh0dXJlVXBkYXRlQ29udHJv
bGxlcihQYXNzT3duUHRyPENDVGltZXI+IHRpbWVyLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0
ZVF1ZXVlPiBxdWV1ZSwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0
dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCisgICAgOiBtX3Rp
bWVyKHRpbWVyKQorICAgICwgbV9xdWV1ZShxdWV1ZSkKICAgICAsIG1fcmVzb3VyY2VQcm92aWRl
cihyZXNvdXJjZVByb3ZpZGVyKQogICAgICwgbV9jb3BpZXIoY29waWVyKQogICAgICwgbV91cGxv
YWRlcih1cGxvYWRlcikKKyAgICAsIG1fbW9ub3RvbmljVGltZUxpbWl0KDApCiB7CisgICAgbV90
aW1lci0+c2V0Q2xpZW50KHRoaXMpOwogfQogCiBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp+
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcigpCkBAIC0xMjcsMTcgKzEzMyw0MiBAQCBib29sIEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Omhhc01vcmVVcGRhdGVzKCkgY29uc3QKICAgICByZXR1
cm4gbV9xdWV1ZS0+aGFzTW9yZVVwZGF0ZXMoKTsKIH0KIAotdm9pZCBDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXMoKQordm9pZCBDQ1RleHR1cmVVcGRhdGVDb250
cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXMoZG91YmxlIG1vbm90b25pY1RpbWVMaW1pdCkKIHsK
LSAgICBpZiAoIW1fcXVldWUtPmhhc01vcmVVcGRhdGVzKCkpCi0gICAgICAgIHJldHVybjsKKyAg
ICBtX21vbm90b25pY1RpbWVMaW1pdCA9IG1vbm90b25pY1RpbWVMaW1pdDsKKyAgICB1cGRhdGVN
b3JlVGV4dHVyZXNJZkVub3VnaFRpbWVSZW1haW5pbmcoKTsKK30KKwordm9pZCBDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyOjpvblRpbWVyRmlyZWQoKQoreworICAgIHVwZGF0ZU1vcmVUZXh0dXJl
c0lmRW5vdWdoVGltZVJlbWFpbmluZygpOworfQorCitkb3VibGUgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKK30KIAotICAgIHVwZGF0ZVRl
eHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlciwgbV9jb3BpZXIsIG1fdXBsb2FkZXIsIG1fcXVldWUu
Z2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7Citkb3VibGUgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzVGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHRleHR1cmVVcGRhdGVUaWNrUmF0ZTsKIH0KIAogc2l6ZV90IENDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXI6OnVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSBjb25zdAogewotICAgIHJldHVybiB0ZXh0
dXJlVXBkYXRlc1BlckZyYW1lOworICAgIHJldHVybiB0ZXh0dXJlVXBkYXRlc1BlclRpY2s7Cit9
CisKK3ZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzSWZF
bm91Z2hUaW1lUmVtYWluaW5nKCkKK3sKKyAgICBpZiAoIW1fcXVldWUtPmhhc01vcmVVcGRhdGVz
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgaGFzVGltZVJlbWFpbmluZyA9IG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIDwgbV9tb25vdG9uaWNUaW1lTGltaXQgLSB1cGRhdGVN
b3JlVGV4dHVyZXNUaW1lKCk7CisgICAgaWYgKGhhc1RpbWVSZW1haW5pbmcpIHsKKyAgICAgICAg
bV90aW1lci0+c3RhcnRPbmVTaG90KHVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoKSk7CisgICAgICAg
IHVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlciwgbV9jb3BpZXIsIG1fdXBsb2FkZXIs
IG1fcXVldWUuZ2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7CisgICAgfQogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmgKaW5kZXggYmQy
YzdiYy4uYzM4ZTExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBDQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyX2gKIAogI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVlLmgiCisjaW5jbHVkZSAi
Y2MvQ0NUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KIApAQCAtMzUsMTIgKzM2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIFRleHR1cmVDb3BpZXI7CiBjbGFzcyBUZXh0dXJlVXBsb2FkZXI7CiAKLWNsYXNzIENDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXIgeworY2xhc3MgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlciA6
IHB1YmxpYyBDQ1RpbWVyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDQ1RleHR1
cmVVcGRhdGVDb250cm9sbGVyKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyPiBjcmVhdGUoUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVR
dWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVy
ZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQorICAgIHN0YXRpYyBQ
YXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNyZWF0ZShQYXNzT3duUHRyPEND
VGltZXI+IHRpbWVyLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwgQ0NS
ZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIs
IFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIocXVldWUsIHJlc291cmNlUHJvdmlkZXIs
IGNvcGllciwgdXBsb2FkZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1RleHR1
cmVVcGRhdGVDb250cm9sbGVyKHRpbWVyLCBxdWV1ZSwgcmVzb3VyY2VQcm92aWRlciwgY29waWVy
LCB1cGxvYWRlcikpOwogICAgIH0KICAgICBzdGF0aWMgc2l6ZV90IG1heFBhcnRpYWxUZXh0dXJl
VXBkYXRlcygpOwogICAgIHN0YXRpYyB2b2lkIHVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQcm92
aWRlciosIFRleHR1cmVDb3BpZXIqLCBUZXh0dXJlVXBsb2FkZXIqLCBDQ1RleHR1cmVVcGRhdGVR
dWV1ZSosIHNpemVfdCBjb3VudCk7CkBAIC00OCwxOCArNDksMjcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoKTsKIAogICAgIGJvb2wgaGFzTW9yZVVw
ZGF0ZXMoKSBjb25zdDsKLSAgICB2b2lkIHVwZGF0ZU1vcmVUZXh0dXJlcygpOworICAgIHZvaWQg
dXBkYXRlTW9yZVRleHR1cmVzKGRvdWJsZSBtb25vdG9uaWNUaW1lTGltaXQpOworCisgICAgLy8g
Q0NUaW1lckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgb25UaW1lckZp
cmVkKCkgT1ZFUlJJREU7CiAKICAgICAvLyBWaXJ0dWFsIGZvciB0ZXN0aW5nLgorICAgIHZpcnR1
YWwgZG91YmxlIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgZG91YmxlIHVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHNp
emVfdCB1cGRhdGVNb3JlVGV4dHVyZXNTaXplKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyKFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+
LCBDQ1Jlc291cmNlUHJvdmlkZXIqLCBUZXh0dXJlQ29waWVyKiwgVGV4dHVyZVVwbG9hZGVyKik7
CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihQYXNzT3duUHRyPENDVGltZXI+LCBQYXNz
T3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiwgQ0NSZXNvdXJjZVByb3ZpZGVyKiwgVGV4dHVy
ZUNvcGllciosIFRleHR1cmVVcGxvYWRlciopOworCisgICAgdm9pZCB1cGRhdGVNb3JlVGV4dHVy
ZXNJZkVub3VnaFRpbWVSZW1haW5pbmcoKTsKIAorICAgIE93blB0cjxDQ1RpbWVyPiBtX3RpbWVy
OwogICAgIE93blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gbV9xdWV1ZTsKICAgICBDQ1Jlc291
cmNlUHJvdmlkZXIqIG1fcmVzb3VyY2VQcm92aWRlcjsKICAgICBUZXh0dXJlQ29waWVyKiBtX2Nv
cGllcjsKICAgICBUZXh0dXJlVXBsb2FkZXIqIG1fdXBsb2FkZXI7CisgICAgZG91YmxlIG1fbW9u
b3RvbmljVGltZUxpbWl0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAppbmRl
eCBmNmZjZWRhLi4wZGMyYjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcApAQCAtNTU4
LDcgKzU1OCw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBs
VGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29udHJvbGxlck9uSW1wbFRocmVhZCA9
IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZShxdWV1ZSwgbV9sYXllclRyZWVIb3N0
SW1wbC0+cmVzb3VyY2VQcm92aWRlcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRl
cmVyKCktPnRleHR1cmVDb3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJl
cigpLT50ZXh0dXJlVXBsb2FkZXIoKSk7CisgICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXJPbkltcGxUaHJlYWQgPSBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUoYWRv
cHRQdHIobmV3IENDVGltZXIoQ0NQcm94eTo6aW1wbFRocmVhZCgpKSksIHF1ZXVlLCBtX2xheWVy
VHJlZUhvc3RJbXBsLT5yZXNvdXJjZVByb3ZpZGVyKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxh
eWVyUmVuZGVyZXIoKS0+dGV4dHVyZUNvcGllcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXll
clJlbmRlcmVyKCktPnRleHR1cmVVcGxvYWRlcigpKTsKICAgICBtX2NvbW1pdENvbXBsZXRpb25F
dmVudE9uSW1wbFRocmVhZCA9IGNvbXBsZXRpb247CiAKICAgICBtX3NjaGVkdWxlck9uSW1wbFRo
cmVhZC0+YmVnaW5GcmFtZUNvbXBsZXRlKCk7CkBAIC01ODksMTEgKzU4OSwxMSBAQCBib29sIEND
VGhyZWFkUHJveHk6OmNhbkRyYXcoKQogICAgIHJldHVybiBtX2xheWVyVHJlZUhvc3RJbXBsLT5j
YW5EcmF3KCk7CiB9CiAKLXZvaWQgQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uVXBkYXRl
TW9yZVJlc291cmNlcygpCit2b2lkIENDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0
ZU1vcmVSZXNvdXJjZXMoZG91YmxlIG1vbm90b25pY1RpbWVMaW1pdCkKIHsKICAgICBUUkFDRV9F
VkVOVDAoImNjIiwgIkNDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNv
dXJjZXMiKTsKICAgICBBU1NFUlQobV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJPbklt
cGxUaHJlYWQpOwotICAgIG1fY3VycmVudFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhy
ZWFkLT51cGRhdGVNb3JlVGV4dHVyZXMoKTsKKyAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlck9uSW1wbFRocmVhZC0+dXBkYXRlTW9yZVRleHR1cmVzKG1vbm90b25pY1RpbWVMaW1p
dCk7CiB9CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkKQEAg
LTc3MCw5ICs3NzAsMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDVGhy
ZWFkUHJveHlDb250ZXh0UmVjcmVhdGlvblRpbWVyKENDVGhyZWFkUHJveHkqIHByb3h5KQotICAg
ICAgICA6IENDVGltZXIoQ0NQcm94eTo6bWFpblRocmVhZCgpLCB0aGlzKQorICAgICAgICA6IEND
VGltZXIoQ0NQcm94eTo6bWFpblRocmVhZCgpKQogICAgICAgICAsIG1fcHJveHkocHJveHkpCiAg
ICAgeworICAgICAgICBzZXRDbGllbnQodGhpcyk7CiAgICAgfQogCiAgICAgQ0NUaHJlYWRQcm94
eSogbV9wcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAppbmRleCBkNzhhNjc2Li43YWJkOTBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgQ0NTY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rp
b25EcmF3QW5kU3dhcElmUG9zc2libGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIENDU2NoZWR1
bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBGb3Jj
ZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9y
ZVJlc291cmNlcygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25V
cGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSBtb25vdG9uaWNUaW1lTGltaXQpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25Db21taXQoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQmVnaW5Db250ZXh0UmVjcmVhdGlvbigpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25BY3F1aXJlTGF5ZXJUZXh0dXJl
c0Zvck1haW5UaHJlYWQoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaW1lU291cmNlLmgKaW5kZXggZGNj
YjQ3MC4uYzM2NGQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaW1lU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaW1lU291cmNlLmgKQEAgLTUwLDYgKzUwLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0NUaW1lU291cmNlQ2xpZW50Kikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBhY3RpdmUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgbmV4dFRpY2tUaW1l
KCkgY29uc3QgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbWVyLmNwcAppbmRleCAzOTZkODFhLi40ZmI2
Y2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RpbWVyLmNwcApAQCAtNzEsOCArNzEsOCBAQCBwcml2YXRlOgogICAgIEND
VGltZXIqIG1fdGltZXI7IC8vIG51bGwgaWYgY2FuY2VsbGVkCiB9OwogCi1DQ1RpbWVyOjpDQ1Rp
bWVyKENDVGhyZWFkKiB0aHJlYWQsIENDVGltZXJDbGllbnQqIGNsaWVudCkKLSAgICA6IG1fY2xp
ZW50KGNsaWVudCkKK0NDVGltZXI6OkNDVGltZXIoQ0NUaHJlYWQqIHRocmVhZCkKKyAgICA6IG1f
Y2xpZW50KDApCiAgICAgLCBtX3RocmVhZCh0aHJlYWQpCiAgICAgLCBtX3Rhc2soMCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGltZXIuaAppbmRleCBkMzI4OGM2Li42MTcwODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaW1lci5oCkBAIC00Niw5ICs0
NiwxMSBAQCBwdWJsaWM6CiAKIGNsYXNzIENDVGltZXIgewogcHVibGljOgotICAgIENDVGltZXIo
Q0NUaHJlYWQqLCBDQ1RpbWVyQ2xpZW50Kik7CisgICAgQ0NUaW1lcihDQ1RocmVhZCopOwogICAg
IH5DQ1RpbWVyKCk7CiAKKyAgICB2b2lkIHNldENsaWVudChDQ1RpbWVyQ2xpZW50KiBjbGllbnQp
IHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKwogICAgIC8vIElmIGEgcHJldmlvdXMgdGFzayBpcyBw
ZW5kaW5nLCBpdCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIG5ldyBvbmUuCiAgICAgdm9pZCBz
dGFydE9uZVNob3QoZG91YmxlIGludGVydmFsU2Vjb25kcyk7CiAgICAgdm9pZCBzdG9wKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHAKaW5k
ZXggNDEyNTA4OC4uODQ4YTU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NTY2hlZHVsZXJUZXN0LmNwcApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0KHRydWUsIG1fc3dhcFdp
bGxIYXBwZW5JZkRyYXdIYXBwZW5zKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1c2hf
YmFjaygic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIpOyB9CisgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoZG91YmxlKSBPVkVSUklE
RSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJj
ZXMiKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25Db21taXQoKSBPVkVSUklE
RSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFjdGlvbkNvbW1pdCIpOyB9CiAgICAg
dmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4dFJlY3JlYXRpb24oKSBPVkVS
UklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4dFJl
Y3JlYXRpb24iKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25BY3F1aXJlTGF5
ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQoKSBPVkVSUklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2so
InNjaGVkdWxlZEFjdGlvbkFjcXVpcmVMYXllclRleHR1cmVzRm9yTWFpblRocmVhZCIpOyB9CkBA
IC0xMTQsMTIgKzExNCwxMCBAQCBURVNUKENDU2NoZWR1bGVyVGVzdCwgUmVxdWVzdENvbW1pdCkK
ICAgICBjbGllbnQucmVzZXQoKTsKIAogICAgIC8vIFNpbmNlLCBoYXNNb3JlUmVzb3VyY2VVcGRh
dGVzIGlzIHNldCB0byBmYWxzZSwKLSAgICAvLyBiZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxkIHVw
ZGF0ZU1vcmVSZXNvdXJjZXMsIHRoZW4KLSAgICAvLyBjb21taXQKKyAgICAvLyBiZWdpbkZyYW1l
Q29tcGxldGUgc2hvdWxkIGNvbW1pdAogICAgIHNjaGVkdWxlci0+YmVnaW5GcmFtZUNvbXBsZXRl
KCk7Ci0gICAgRVhQRUNUX0VRKDIsIGNsaWVudC5udW1BY3Rpb25zKCkpOwotICAgIEVYUEVDVF9T
VFJFUSgic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIGNsaWVudC5hY3Rpb24o
MCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFj
dGlvbigxKSk7CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIEVY
UEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigwKSk7CiAg
ICAgRVhQRUNUX1RSVUUodGltZVNvdXJjZS0+YWN0aXZlKCkpOwogICAgIGNsaWVudC5yZXNldCgp
OwogCkBAIC0xNTIsMTIgKzE1MCwxMCBAQCBURVNUKENDU2NoZWR1bGVyVGVzdCwgUmVxdWVzdENv
bW1pdEFmdGVyQmVnaW5GcmFtZSkKICAgICBzY2hlZHVsZXItPnNldE5lZWRzQ29tbWl0KCk7CiAK
ICAgICAvLyBTaW5jZSwgaGFzTW9yZVJlc291cmNlVXBkYXRlcyBpcyBzZXQgdG8gZmFsc2UsIGFu
ZCBhbm90aGVyIGNvbW1pdCBpcwotICAgIC8vIG5lZWRlZCwgYmVnaW5GcmFtZUNvbXBsZXRlIHNo
b3VsZCB1cGRhdGVNb3JlUmVzb3VyY2VzLCB0aGVuIGNvbW1pdCwgdGhlbgotICAgIC8vIGJlZ2lu
IGFub3RoZXIgZnJhbWUuCisgICAgLy8gbmVlZGVkLCBiZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxk
IGNvbW1pdCwgdGhlbiBiZWdpbiBhbm90aGVyIGZyYW1lLgogICAgIHNjaGVkdWxlci0+YmVnaW5G
cmFtZUNvbXBsZXRlKCk7Ci0gICAgRVhQRUNUX0VRKDIsIGNsaWVudC5udW1BY3Rpb25zKCkpOwot
ICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIGNs
aWVudC5hY3Rpb24oMCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0
IiwgY2xpZW50LmFjdGlvbigxKSk7CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5udW1BY3Rpb25z
KCkpOworICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFj
dGlvbigwKSk7CiAgICAgY2xpZW50LnJlc2V0KCk7CiAKICAgICAvLyBUaWNrIHNob3VsZCBkcmF3
IGJ1dCB0aGVuIGJlZ2luIGFub3RoZXIgZnJhbWUuCkBAIC0yNTcsNyArMjUzLDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gQ0NTY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCh0cnVl
LCB0cnVlKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRl
TW9yZVJlc291cmNlcygpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRB
Y3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0aW9uKCkgT1ZFUlJJREUgeyB9
CiAKQEAgLTM1Nyw3ICszNTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBDQ1NjaGVkdWxl
ZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0KHRydWUsIHRydWUpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgT1ZFUlJJREUgeyB9
CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoZG91
YmxlKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0
KCkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29u
dGV4dFJlY3JlYXRpb24oKSBPVkVSUklERSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3RDb21tb24uaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmgKaW5kZXggNjI1N2VjOC4uZjJl
YzRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxl
clRlc3RDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1
bGVyVGVzdENvbW1vbi5oCkBAIC04Niw2ICs4Niw3IEBAIGNsYXNzIEZha2VDQ1RpbWVTb3VyY2Ug
OiBwdWJsaWMgV2ViQ29yZTo6Q0NUaW1lU291cmNlIHsKIHB1YmxpYzoKICAgICBGYWtlQ0NUaW1l
U291cmNlKCkKICAgICAgICAgOiBtX2FjdGl2ZShmYWxzZSkKKyAgICAgICAgLCBtX25leHRUaWNr
VGltZSgwKQogICAgICAgICAsIG1fY2xpZW50KDApIHsgfQogCiAgICAgdmlydHVhbCB+RmFrZUND
VGltZVNvdXJjZSgpIHsgfQpAQCAtOTMsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldENsaWVudChXZWJDb3JlOjpDQ1RpbWVTb3VyY2VDbGllbnQqIGNsaWVudCkgT1ZFUlJJ
REUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9v
bCBiKSBPVkVSUklERSB7IG1fYWN0aXZlID0gYjsgfQogICAgIHZpcnR1YWwgYm9vbCBhY3RpdmUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2FjdGl2ZTsgfQorICAgIHZpcnR1YWwgZG91Ymxl
IG5leHRUaWNrVGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbmV4dFRpY2tUaW1lOyB9
CiAKICAgICB2b2lkIHRpY2soKQogICAgIHsKQEAgLTEwMSw4ICsxMDMsMTEgQEAgcHVibGljOgog
ICAgICAgICAgICAgbV9jbGllbnQtPm9uVGltZXJUaWNrKCk7CiAgICAgfQogCisgICAgdm9pZCBz
ZXROZXh0VGlja1RpbWUoZG91YmxlIG5leHRUaWNrVGltZSkgeyBtX25leHRUaWNrVGltZSA9IG5l
eHRUaWNrVGltZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2FjdGl2ZTsKKyAgICBkb3Vi
bGUgbV9uZXh0VGlja1RpbWU7CiAgICAgV2ViQ29yZTo6Q0NUaW1lU291cmNlQ2xpZW50KiBtX2Ns
aWVudDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKaW5kZXggMzQ0OTJlOS4uMDFi
OWFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKQEAgLTU0MSw0ICs1NDEsMTE3IEBA
IFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgVHJpcGxlVXBkYXRlRmluYWxV
cGRhdGVBbGxQYXJ0aWFsKQogICAgIEVYUEVDVF9FUShrRnVsbFVwbG9hZHMgKyBrUGFydGlhbFVw
bG9hZHMsIG1fbnVtVG90YWxVcGxvYWRzKTsKIH0KIAorY2xhc3MgRmFrZUNDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXIgOiBwdWJsaWMgV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXI+IGNyZWF0ZShXZWJDb3JlOjpDQ1RocmVhZCogdGhyZWFkLCBQYXNzT3duUHRyPENDVGV4
dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3Zp
ZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZha2VDQ1RleHR1cmVVcGRhdGVDb250
cm9sbGVyKHRocmVhZCwgcXVldWUsIHJlc291cmNlUHJvdmlkZXIsIGNvcGllciwgdXBsb2FkZXIp
KTsKKyAgICB9CisKKyAgICB2b2lkIHNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZShkb3Vi
bGUgdGltZSkgeyBtX21vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSA9IHRpbWU7IH0KKyAgICB2
aXJ0dWFsIGRvdWJsZSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX21vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZTsgfQorICAgIHZvaWQgc2V0
VXBkYXRlTW9yZVRleHR1cmVzVGltZShkb3VibGUgdGltZSkgeyBtX3VwZGF0ZU1vcmVUZXh0dXJl
c1RpbWUgPSB0aW1lOyB9CisgICAgdmlydHVhbCBkb3VibGUgdXBkYXRlTW9yZVRleHR1cmVzVGlt
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdXBkYXRlTW9yZVRleHR1cmVzVGltZTsgfQor
ICAgIHZvaWQgc2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZShzaXplX3Qgc2l6ZSkgeyBtX3VwZGF0
ZU1vcmVUZXh0dXJlc1NpemUgPSBzaXplOyB9CisgICAgdmlydHVhbCBzaXplX3QgdXBkYXRlTW9y
ZVRleHR1cmVzU2l6ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdXBkYXRlTW9yZVRleHR1
cmVzU2l6ZTsgfQorCisgICAgQ0NUZXh0dXJlVXBkYXRlUXVldWUqIHF1ZXVlKCkgeyByZXR1cm4g
bV9xdWV1ZS5nZXQoKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgRmFrZUNDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXIoV2ViQ29yZTo6Q0NUaHJlYWQqIHRocmVhZCwgUGFzc093blB0cjxDQ1RleHR1cmVV
cGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwg
VGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQorICAgICAg
ICA6IFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoYWRvcHRQdHIobmV3IENDVGlt
ZXIodGhyZWFkKSksIHF1ZXVlLCByZXNvdXJjZVByb3ZpZGVyLCBjb3BpZXIsIHVwbG9hZGVyKQor
ICAgICAgICAsIG1fbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKDApCisgICAgICAgICwgbV91
cGRhdGVNb3JlVGV4dHVyZXNUaW1lKDApCisgICAgICAgICwgbV91cGRhdGVNb3JlVGV4dHVyZXNT
aXplKDApIHsgfQorCisgICAgZG91YmxlIG1fbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lOwor
ICAgIGRvdWJsZSBtX3VwZGF0ZU1vcmVUZXh0dXJlc1RpbWU7CisgICAgc2l6ZV90IG1fdXBkYXRl
TW9yZVRleHR1cmVzU2l6ZTsKK307CisKK1RFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
VGVzdCwgVXBkYXRlTW9yZVRleHR1cmVzKQoreworICAgIEZha2VDQ1RocmVhZCB0aHJlYWQ7CisK
KyAgICBzZXRNYXhVcGxvYWRDb3VudFBlclVwZGF0ZSgxKTsKKyAgICBhcHBlbmRGdWxsVXBsb2Fk
c1RvVXBkYXRlUXVldWUoMyk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVl
KDApOworCisgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CisgICAgT3du
UHRyPEZha2VDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyPiBjb250cm9sbGVyKEZha2VDQ1RleHR1
cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUoJnRocmVhZCwgbV9xdWV1ZS5yZWxlYXNlKCksIG1f
cmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlcikpOworCisgICAg
Y29udHJvbGxlci0+c2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKDApOworICAgIGNvbnRy
b2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoMC4xKTsKKyAgICBjb250cm9sbGVyLT5z
ZXRVcGRhdGVNb3JlVGV4dHVyZXNTaXplKDEpOworICAgIC8vIE5vdCBlbm91Z2ggdGltZSBmb3Ig
YW55IHVwZGF0ZXMuCisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMDkpOwor
ICAgIEVYUEVDVF9GQUxTRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgRVhQRUNUX0VR
KDAsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMCwgbV9udW1FbmRVcGxvYWRz
KTsKKworICAgIHRocmVhZC5yZXNldCgpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVy
ZXNUaW1lKDAuMSk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgx
KTsKKyAgICAvLyBPbmx5IGVub3VnaCB0aW1lIGZvciAxIHVwZGF0ZS4KKyAgICBjb250cm9sbGVy
LT51cGRhdGVNb3JlVGV4dHVyZXMoMC4xMik7CisgICAgRVhQRUNUX1RSVUUodGhyZWFkLmhhc1Bl
bmRpbmdUYXNrKCkpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSh0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhyZWFkLnJ1blBl
bmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBF
WFBFQ1RfRVEoMSwgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMSwgbV9udW1Ub3Rh
bFVwbG9hZHMpOworCisgICAgdGhyZWFkLnJlc2V0KCk7CisgICAgY29udHJvbGxlci0+c2V0TW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKDApOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0ZU1v
cmVUZXh0dXJlc1RpbWUoMC4xKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVy
ZXNTaXplKDEpOworICAgIC8vIEVub3VnaCB0aW1lIGZvciAyIHVwZGF0ZXMuCisgICAgY29udHJv
bGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMjIpOworICAgIEVYUEVDVF9UUlVFKHRocmVhZC5o
YXNQZW5kaW5nVGFzaygpKTsKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoY29udHJvbGxlci0+bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgKyB0aHJl
YWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNr
KCk7CisgICAgRVhQRUNUX0VRKDMsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEo
MywgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMywgbV9udW1Ub3RhbFVwbG9hZHMp
OworfQorCitURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE5vTW9yZVVwZGF0
ZXMpCit7CisgICAgRmFrZUNDVGhyZWFkIHRocmVhZDsKKworICAgIHNldE1heFVwbG9hZENvdW50
UGVyVXBkYXRlKDEpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZSgyKTsKKyAg
ICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMCk7CisKKyAgICBEZWJ1Z1Njb3Bl
ZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKKyAgICBPd25QdHI8RmFrZUNDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXI+IGNvbnRyb2xsZXIoRmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNy
ZWF0ZSgmdGhyZWFkLCBtX3F1ZXVlLnJlbGVhc2UoKSwgbV9yZXNvdXJjZVByb3ZpZGVyLmdldCgp
LCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyKSk7CisKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoMCk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRl
eHR1cmVzVGltZSgwLjEpOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1Np
emUoMSk7CisgICAgLy8gRW5vdWdoIHRpbWUgZm9yIDMgdXBkYXRlcyBidXQgb25seSAyIG5lY2Vz
c2FyeS4KKyAgICBjb250cm9sbGVyLT51cGRhdGVNb3JlVGV4dHVyZXMoMC4zMSk7CisgICAgRVhQ
RUNUX1RSVUUodGhyZWFkLmhhc1BlbmRpbmdUYXNrKCkpOworICAgIGNvbnRyb2xsZXItPnNldE1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZShjb250cm9sbGVyLT5tb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKSArIHRocmVhZC5wZW5kaW5nRGVsYXlNcygpIC8gMTAwMC4wKTsKKyAgICB0aHJl
YWQucnVuUGVuZGluZ1Rhc2soKTsKKyAgICBFWFBFQ1RfVFJVRSh0aHJlYWQuaGFzUGVuZGluZ1Rh
c2soKSk7CisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGNv
bnRyb2xsZXItPm1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICsgdGhyZWFkLnBlbmRpbmdE
ZWxheU1zKCkgLyAxMDAwLjApOworICAgIHRocmVhZC5ydW5QZW5kaW5nVGFzaygpOworICAgIEVY
UEVDVF9FUSgyLCBtX251bUJlZ2luVXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtRW5k
VXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtVG90YWxVcGxvYWRzKTsKKworICAgIHRo
cmVhZC5yZXNldCgpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNUaW1lKDAuMSk7
CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgxKTsKKyAgICAvLyBF
bm91Z2ggdGltZSBmb3IgdXBkYXRlcyBidXQgbm8gbW9yZSB1cGRhdGVzIGxlZnQuCisgICAgY29u
dHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMzEpOworICAgIEVYUEVDVF9GQUxTRSh0aHJl
YWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtQmVnaW5VcGxvYWRz
KTsKKyAgICBFWFBFQ1RfRVEoMiwgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMiwg
bV9udW1Ub3RhbFVwbG9hZHMpOworfQorCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RpbWVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDVGltZXJUZXN0LmNwcAppbmRleCBjMWIyZWZiLi41NDM2ODcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGltZXJUZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGltZXJUZXN0LmNwcApAQCAtNTMs
NyArNTMsOCBAQCBwcm90ZWN0ZWQ6CiAKIFRFU1RfRihDQ1RpbWVyVGVzdCwgT25lU2hvdCkKIHsK
LSAgICBDQ1RpbWVyIHRpbWVyKCZtX3RocmVhZCwgdGhpcyk7CisgICAgQ0NUaW1lciB0aW1lcigm
bV90aHJlYWQpOworICAgIHRpbWVyLnNldENsaWVudCh0aGlzKTsKICAgICB0aW1lci5zdGFydE9u
ZVNob3QoMC4wMDEpOwogICAgIEVYUEVDVF9UUlVFKHRpbWVyLmlzQWN0aXZlKCkpOwogICAgIG1f
dGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7CkBAIC02NCw3ICs2NSw4IEBAIFRFU1RfRihDQ1RpbWVy
VGVzdCwgT25lU2hvdCkKIAogVEVTVF9GKENDVGltZXJUZXN0LCBTdG9wTWFudWFsbHkpCiB7Ci0g
ICAgQ0NUaW1lciB0aW1lcigmbV90aHJlYWQsIHRoaXMpOworICAgIENDVGltZXIgdGltZXIoJm1f
dGhyZWFkKTsKKyAgICB0aW1lci5zZXRDbGllbnQodGhpcyk7CiAgICAgdGltZXIuc3RhcnRPbmVT
aG90KDAuMDAxKTsKICAgICBFWFBFQ1RfVFJVRSh0aW1lci5pc0FjdGl2ZSgpKTsKICAgICB0aW1l
ci5zdG9wKCk7CkBAIC03OCw3ICs4MCw4IEBAIFRFU1RfRihDQ1RpbWVyVGVzdCwgU3RvcE1hbnVh
bGx5KQogVEVTVF9GKENDVGltZXJUZXN0LCBTdG9wQnlTY29wZSkKIHsKICAgICB7Ci0gICAgICAg
IENDVGltZXIgdGltZXIoJm1fdGhyZWFkLCB0aGlzKTsKKyAgICAgICAgQ0NUaW1lciB0aW1lcigm
bV90aHJlYWQpOworICAgICAgICB0aW1lci5zZXRDbGllbnQodGhpcyk7CiAgICAgICAgIHRpbWVy
LnN0YXJ0T25lU2hvdCgwLjAwMSk7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156769</attachid>
            <date>2012-08-06 15:02:42 -0700</date>
            <delta_ts>2012-08-06 19:17:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>texture-upload-streaming.diff</filename>
            <type>text/plain</type>
            <size>23648</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKaW5kZXggZDZkY2Rj
Ni4uYmRhZTFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5j
cHAKQEAgLTE1OSw0ICsxNTksMTIgQEAgdm9pZCBDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpwb3N0
TmV4dFRpY2tUYXNrKGRvdWJsZSBub3cpCiAgICAgbV90aWNrVGFyZ2V0ID0gbmV3VGlja1Rhcmdl
dDsKIH0KIAorZG91YmxlIENDRGVsYXlCYXNlZFRpbWVTb3VyY2U6Om5leHRUaWNrVGltZSgpIGNv
bnN0Cit7CisgICAgaWYgKCFtX2hhc1RpY2tUYXJnZXQpCisgICAgICAgIHJldHVybiBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKworICAgIHJldHVybiBtX3RpY2tUYXJnZXQ7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaAppbmRleCA5OTc5NWRi
Li42ZjIzZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5oCkBA
IC00Nyw2ICs0Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhY3RpdmUoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBtX3N0YXRlICE9IFNUQVRFX0lOQUNUSVZFOyB9CiAKKyAgICB2aXJ0dWFsIGRvdWJsZSBu
ZXh0VGlja1RpbWUoKSBjb25zdCBPVkVSUklERTsKKwogICAgIC8vIENDVGltZXJDbGllbnQgaW1w
bGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIG9uVGltZXJGaXJlZCgpIE9WRVJSSURFOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcAppbmRleCBmMjcyZjli
Li45NDYyN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAK
QEAgLTE0Miw0ICsxNDIsOSBAQCB2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6ZGlkQWJvcnRB
bGxQZW5kaW5nRnJhbWVzKCkKICAgICBtX251bUZyYW1lc1BlbmRpbmcgPSAwOwogfQogCitkb3Vi
bGUgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpuZXh0VGlja1RpbWUoKQoreworICAgIHJldHVybiBt
X3RpbWVTb3VyY2UtPm5leHRUaWNrVGltZSgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJh
bWVSYXRlQ29udHJvbGxlci5oCmluZGV4IDhkOWM3ZGUuLjQxYjBjZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZEZpbmlzaEZyYW1lKCk7CiAgICAgdm9pZCBkaWRBYm9ydEFsbFBlbmRpbmdGcmFt
ZXMoKTsKICAgICB2b2lkIHNldE1heEZyYW1lc1BlbmRpbmcoaW50KTsgLy8gMCBmb3IgdW5saW1p
dGVkLgorICAgIGRvdWJsZSBuZXh0VGlja1RpbWUoKTsKIAogcHJvdGVjdGVkOgogICAgIGZyaWVu
ZCBjbGFzcyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJUaW1lU291cmNlQWRhcHRlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2NoZWR1bGVyLmNwcAppbmRleCA2Zjg2NWM5Li41MmM3MWVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVs
ZXIuY3BwCkBAIC0xNjgsMTYgKzE2OCwxMSBAQCB2b2lkIENDU2NoZWR1bGVyOjpwcm9jZXNzU2No
ZWR1bGVkQWN0aW9ucygpCiAgICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQmVn
aW5GcmFtZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ0NTY2hlZHVsZXJT
dGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVM6Ci0gICAgICAg
ICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpOwotICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC0+aGFzTW9yZVJlc291cmNlVXBkYXRlcygpKSB7Ci0gICAg
ICAgICAgICAgICAgLy8gSWYgd2Ugd2VyZSBqdXN0IHRvbGQgdG8gdXBkYXRlIHJlc291cmNlcywg
YnV0IHRoZXJlIGFyZSBubwotICAgICAgICAgICAgICAgIC8vIG1vcmUgcGVuZGluZywgdGhlbiB0
ZWxsIHRoZSBzdGF0ZSBtYWNoaW5lIHRoYXQgdGhlCi0gICAgICAgICAgICAgICAgLy8gYmVnaW5V
cGRhdGVNb3JlUmVzb3VyY2VzIGNvbXBsZXRlZC4gSWYgbW9yZSBhcmUgcGVuZGluZywKLSAgICAg
ICAgICAgICAgICAvLyB0aGVuIHdlIHdpbGwgYWNrIHRoZSB1cGRhdGUgYXQgdGhlIG5leHQgZHJh
dy4KLSAgICAgICAgICAgICAgICBtX3VwZGF0ZU1vcmVSZXNvdXJjZXNQZW5kaW5nID0gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgbV9zdGF0ZU1hY2hpbmUuYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2Vz
Q29tcGxldGUoZmFsc2UpOwotICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBpZiAobV9j
bGllbnQtPmhhc01vcmVSZXNvdXJjZVVwZGF0ZXMoKSkgeworICAgICAgICAgICAgICAgIG1fY2xp
ZW50LT5zY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKG1fZnJhbWVSYXRlQ29udHJv
bGxlci0+bmV4dFRpY2tUaW1lKCkpOwogICAgICAgICAgICAgICAgIG1fdXBkYXRlTW9yZVJlc291
cmNlc1BlbmRpbmcgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
bV9zdGF0ZU1hY2hpbmUuYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoZmFsc2UpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6
OkFDVElPTl9DT01NSVQ6CiAgICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQ29t
bWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NjaGVkdWxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuaAppbmRleCAzZTZmN2FhLi5kMDhiNjhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVk
dWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDU2NoZWR1bGVyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lKCkgPSAwOwogICAgIHZpcnR1YWwgQ0NTY2hlZHVs
ZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcElmUG9z
c2libGUoKSA9IDA7CiAgICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVz
dWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwRm9yY2VkKCkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSBtb25vdG9u
aWNUaW1lTGltaXQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNy
ZWF0aW9uKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25BY3F1aXJlTGF5
ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3BwCmluZGV4IGRkZTg5NDkuLjIxZGEyMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3BwCkBAIC0zNCw4ICsz
NCwxMSBAQAogCiBuYW1lc3BhY2UgewogCi0vLyBOdW1iZXIgb2YgdGV4dHVyZXMgdG8gdXBkYXRl
IHdpdGggZWFjaCBjYWxsIHRvIHVwZGF0ZU1vcmVUZXh0dXJlcygpLgotc3RhdGljIGNvbnN0IHNp
emVfdCB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lID0gNDg7CisvLyBOdW1iZXIgb2YgdGV4dHVyZXMg
dG8gdXBkYXRlIHdpdGggZWFjaCBjYWxsIHRvIHVwZGF0ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGlt
ZVJlbWFpbmluZygpLgorc3RhdGljIGNvbnN0IHNpemVfdCB0ZXh0dXJlVXBkYXRlc1BlclRpY2sg
PSAxMjsKKworLy8gTWVhc3VyZWQgaW4gc2Vjb25kcy4KK3N0YXRpYyBjb25zdCBkb3VibGUgdGV4
dHVyZVVwZGF0ZVRpY2tSYXRlID0gMC4wMDQ7CiAKIC8vIEZsdXNoIGludGVydmFsIHdoZW4gcGVy
Zm9ybWluZyB0ZXh0dXJlIHVwbG9hZHMuCiBzdGF0aWMgY29uc3QgaW50IHRleHR1cmVVcGxvYWRG
bHVzaFBlcmlvZCA9IDQ7CkBAIC00Niw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
c2l6ZV90IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Om1heFBhcnRpYWxUZXh0dXJlVXBkYXRl
cygpCiB7Ci0gICAgcmV0dXJuIHRleHR1cmVVcGRhdGVzUGVyRnJhbWU7CisgICAgcmV0dXJuIHRl
eHR1cmVVcGRhdGVzUGVyVGljazsKIH0KIAogdm9pZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
Ojp1cGRhdGVUZXh0dXJlcyhDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRl
eHR1cmVDb3BpZXIqIGNvcGllciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRlciwgQ0NUZXh0dXJl
VXBkYXRlUXVldWUqIHF1ZXVlLCBzaXplX3QgY291bnQpCkBAIC0xMTAsMTEgKzExMywxMyBAQCB2
b2lkIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQ
cm92aWRlciogcmVzb3VyY2VQcm92aQogICAgICAgICBjb3BpZXItPmZsdXNoKCk7CiB9CiAKLUND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoUGFzc093
blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVz
b3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVw
bG9hZGVyKQotICAgIDogbV9xdWV1ZShxdWV1ZSkKK0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6
OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoQ0NUaHJlYWQqIHRocmVhZCwgUGFzc093blB0cjxD
Q1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQ
cm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVy
KQorICAgIDogbV90aW1lcihhZG9wdFB0cihuZXcgQ0NUaW1lcih0aHJlYWQsIHRoaXMpKSkKKyAg
ICAsIG1fcXVldWUocXVldWUpCiAgICAgLCBtX3Jlc291cmNlUHJvdmlkZXIocmVzb3VyY2VQcm92
aWRlcikKICAgICAsIG1fY29waWVyKGNvcGllcikKICAgICAsIG1fdXBsb2FkZXIodXBsb2FkZXIp
CisgICAgLCBtX21vbm90b25pY1RpbWVMaW1pdCgwKQogewogfQogCkBAIC0xMjcsMTcgKzEzMiw0
MiBAQCBib29sIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Omhhc01vcmVVcGRhdGVzKCkgY29u
c3QKICAgICByZXR1cm4gbV9xdWV1ZS0+aGFzTW9yZVVwZGF0ZXMoKTsKIH0KIAotdm9pZCBDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXMoKQordm9pZCBDQ1RleHR1
cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXMoZG91YmxlIG1vbm90b25pY1Rp
bWVMaW1pdCkKIHsKLSAgICBpZiAoIW1fcXVldWUtPmhhc01vcmVVcGRhdGVzKCkpCi0gICAgICAg
IHJldHVybjsKKyAgICBtX21vbm90b25pY1RpbWVMaW1pdCA9IG1vbm90b25pY1RpbWVMaW1pdDsK
KyAgICB1cGRhdGVNb3JlVGV4dHVyZXNJZkVub3VnaFRpbWVSZW1haW5pbmcoKTsKK30KKwordm9p
ZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpvblRpbWVyRmlyZWQoKQoreworICAgIHVwZGF0
ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZygpOworfQorCitkb3VibGUgQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlcjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKK30KIAot
ICAgIHVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlciwgbV9jb3BpZXIsIG1fdXBsb2Fk
ZXIsIG1fcXVldWUuZ2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7Citkb3VibGUgQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzVGltZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHRleHR1cmVVcGRhdGVUaWNrUmF0ZTsKIH0KIAogc2l6ZV90IENDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSBjb25zdAogewotICAg
IHJldHVybiB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lOworICAgIHJldHVybiB0ZXh0dXJlVXBkYXRl
c1BlclRpY2s7Cit9CisKK3ZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9y
ZVRleHR1cmVzSWZFbm91Z2hUaW1lUmVtYWluaW5nKCkKK3sKKyAgICBpZiAoIW1fcXVldWUtPmhh
c01vcmVVcGRhdGVzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgaGFzVGltZVJlbWFp
bmluZyA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIDwgbV9tb25vdG9uaWNUaW1lTGlt
aXQgLSB1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKCk7CisgICAgaWYgKGhhc1RpbWVSZW1haW5pbmcp
IHsKKyAgICAgICAgbV90aW1lci0+c3RhcnRPbmVTaG90KHVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUo
KSk7CisgICAgICAgIHVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlciwgbV9jb3BpZXIs
IG1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7Cisg
ICAgfQogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
LmgKaW5kZXggYmQyYzdiYy4uYzQwZWI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyX2gKIAogI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVlLmgi
CisjaW5jbHVkZSAiY2MvQ0NUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgog
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIApAQCAtMzUsMTIgKzM2LDEyIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIFRleHR1cmVDb3BpZXI7CiBjbGFzcyBUZXh0dXJlVXBsb2FkZXI7CiAK
LWNsYXNzIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIgeworY2xhc3MgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlciA6IHB1YmxpYyBDQ1RpbWVyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c093blB0cjxDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyPiBjcmVhdGUoUGFzc093blB0cjxDQ1Rl
eHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92
aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNyZWF0ZShD
Q1RocmVhZCogdGhyZWFkLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwg
Q0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3Bp
ZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIocXVldWUsIHJlc291cmNlUHJvdmlk
ZXIsIGNvcGllciwgdXBsb2FkZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyKHRocmVhZCwgcXVldWUsIHJlc291cmNlUHJvdmlkZXIsIGNv
cGllciwgdXBsb2FkZXIpKTsKICAgICB9CiAgICAgc3RhdGljIHNpemVfdCBtYXhQYXJ0aWFsVGV4
dHVyZVVwZGF0ZXMoKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVUZXh0dXJlcyhDQ1Jlc291cmNl
UHJvdmlkZXIqLCBUZXh0dXJlQ29waWVyKiwgVGV4dHVyZVVwbG9hZGVyKiwgQ0NUZXh0dXJlVXBk
YXRlUXVldWUqLCBzaXplX3QgY291bnQpOwpAQCAtNDgsMTggKzQ5LDI3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKCk7CiAKICAgICBib29sIGhhc01v
cmVVcGRhdGVzKCkgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVNb3JlVGV4dHVyZXMoKTsKKyAgICB2
b2lkIHVwZGF0ZU1vcmVUZXh0dXJlcyhkb3VibGUgbW9ub3RvbmljVGltZUxpbWl0KTsKKworICAg
IC8vIENDVGltZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIG9uVGlt
ZXJGaXJlZCgpIE9WRVJSSURFOwogCiAgICAgLy8gVmlydHVhbCBmb3IgdGVzdGluZy4KKyAgICB2
aXJ0dWFsIGRvdWJsZSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGRvdWJsZSB1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKCkgY29uc3Q7CiAgICAgdmlydHVh
bCBzaXplX3QgdXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1
ZXVlPiwgQ0NSZXNvdXJjZVByb3ZpZGVyKiwgVGV4dHVyZUNvcGllciosIFRleHR1cmVVcGxvYWRl
ciopOworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoQ0NUaHJlYWQqLCBQYXNzT3duUHRy
PENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiwgQ0NSZXNvdXJjZVByb3ZpZGVyKiwgVGV4dHVyZUNvcGll
ciosIFRleHR1cmVVcGxvYWRlciopOworCisgICAgdm9pZCB1cGRhdGVNb3JlVGV4dHVyZXNJZkVu
b3VnaFRpbWVSZW1haW5pbmcoKTsKIAorICAgIE93blB0cjxDQ1RpbWVyPiBtX3RpbWVyOwogICAg
IE93blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gbV9xdWV1ZTsKICAgICBDQ1Jlc291cmNlUHJv
dmlkZXIqIG1fcmVzb3VyY2VQcm92aWRlcjsKICAgICBUZXh0dXJlQ29waWVyKiBtX2NvcGllcjsK
ICAgICBUZXh0dXJlVXBsb2FkZXIqIG1fdXBsb2FkZXI7CisgICAgZG91YmxlIG1fbW9ub3Rvbmlj
VGltZUxpbWl0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAppbmRleCA4MTg2
Mzk1Li45NWQxNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcApAQCAtNTU5LDcgKzU1
OSw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFk
KENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29udHJvbGxlck9uSW1wbFRocmVhZCA9IENDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZShxdWV1ZSwgbV9sYXllclRyZWVIb3N0SW1wbC0+
cmVzb3VyY2VQcm92aWRlcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCkt
PnRleHR1cmVDb3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50
ZXh0dXJlVXBsb2FkZXIoKSk7CisgICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJP
bkltcGxUaHJlYWQgPSBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUoQ0NQcm94eTo6
aW1wbFRocmVhZCgpLCBxdWV1ZSwgbV9sYXllclRyZWVIb3N0SW1wbC0+cmVzb3VyY2VQcm92aWRl
cigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVDb3BpZXIo
KSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlVXBsb2FkZXIo
KSk7CiAgICAgbV9jb21taXRDb21wbGV0aW9uRXZlbnRPbkltcGxUaHJlYWQgPSBjb21wbGV0aW9u
OwogCiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPmJlZ2luRnJhbWVDb21wbGV0ZSgpOwpA
QCAtNTkwLDExICs1OTAsMTEgQEAgYm9vbCBDQ1RocmVhZFByb3h5OjpjYW5EcmF3KCkKICAgICBy
ZXR1cm4gbV9sYXllclRyZWVIb3N0SW1wbC0+Y2FuRHJhdygpOwogfQogCi12b2lkIENDVGhyZWFk
UHJveHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKQordm9pZCBDQ1RocmVh
ZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSBtb25vdG9u
aWNUaW1lTGltaXQpCiB7CiAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJDQ1RocmVhZFByb3h5Ojpz
Y2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIik7CiAgICAgQVNTRVJUKG1fY3VycmVu
dFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkKTsKLSAgICBtX2N1cnJlbnRUZXh0
dXJlVXBkYXRlQ29udHJvbGxlck9uSW1wbFRocmVhZC0+dXBkYXRlTW9yZVRleHR1cmVzKCk7Cisg
ICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJPbkltcGxUaHJlYWQtPnVwZGF0ZU1v
cmVUZXh0dXJlcyhtb25vdG9uaWNUaW1lTGltaXQpOwogfQogCiB2b2lkIENDVGhyZWFkUHJveHk6
OnNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggZTU5
MTJlMi4uZGJkYjM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtODcsNyArODcsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQg
c2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJZlBvc3NpYmxlKCkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRy
YXdBbmRTd2FwRm9yY2VkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFj
dGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyhkb3VibGUgbW9ub3RvbmljVGltZUxpbWl0
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4dFJlY3Jl
YXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQWNxdWly
ZUxheWVyVGV4dHVyZXNGb3JNYWluVGhyZWFkKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbWVTb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJj
ZS5oCmluZGV4IGRjY2I0NzAuLmMzNjRkOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCkBAIC01
MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENDVGltZVNv
dXJjZUNsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgYWN0aXZlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91Ymxl
IG5leHRUaWNrVGltZSgpIGNvbnN0ID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0LmNwcAppbmRleCA0MTI1MDg4Li44NDhhNTg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3Qu
Y3BwCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIENDU2NoZWR1bGVk
QWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQodHJ1ZSwgbV9zd2FwV2lsbEhhcHBlbklmRHJhd0hhcHBl
bnMpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3Jl
UmVzb3VyY2VzKCkgT1ZFUlJJREUgeyBtX2FjdGlvbnMucHVzaF9iYWNrKCJzY2hlZHVsZWRBY3Rp
b25VcGRhdGVNb3JlUmVzb3VyY2VzIik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0
aW9uVXBkYXRlTW9yZVJlc291cmNlcyhkb3VibGUpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1c2hf
YmFjaygic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIpOyB9CiAgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1c2hf
YmFjaygic2NoZWR1bGVkQWN0aW9uQ29tbWl0Iik7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVkQWN0aW9uQmVnaW5Db250ZXh0UmVjcmVhdGlvbigpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1
c2hfYmFjaygic2NoZWR1bGVkQWN0aW9uQmVnaW5Db250ZXh0UmVjcmVhdGlvbiIpOyB9CiAgICAg
dmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkFjcXVpcmVMYXllclRleHR1cmVzRm9yTWFpblRo
cmVhZCgpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2NoZWR1bGVkQWN0aW9uQWNx
dWlyZUxheWVyVGV4dHVyZXNGb3JNYWluVGhyZWFkIik7IH0KQEAgLTExNCwxMiArMTE0LDEwIEBA
IFRFU1QoQ0NTY2hlZHVsZXJUZXN0LCBSZXF1ZXN0Q29tbWl0KQogICAgIGNsaWVudC5yZXNldCgp
OwogCiAgICAgLy8gU2luY2UsIGhhc01vcmVSZXNvdXJjZVVwZGF0ZXMgaXMgc2V0IHRvIGZhbHNl
LAotICAgIC8vIGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQgdXBkYXRlTW9yZVJlc291cmNlcywg
dGhlbgotICAgIC8vIGNvbW1pdAorICAgIC8vIGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQgY29t
bWl0CiAgICAgc2NoZWR1bGVyLT5iZWdpbkZyYW1lQ29tcGxldGUoKTsKLSAgICBFWFBFQ1RfRVEo
MiwgY2xpZW50Lm51bUFjdGlvbnMoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rp
b25VcGRhdGVNb3JlUmVzb3VyY2VzIiwgY2xpZW50LmFjdGlvbigwKSk7Ci0gICAgRVhQRUNUX1NU
UkVRKCJzY2hlZHVsZWRBY3Rpb25Db21taXQiLCBjbGllbnQuYWN0aW9uKDEpKTsKKyAgICBFWFBF
Q1RfRVEoMSwgY2xpZW50Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVs
ZWRBY3Rpb25Db21taXQiLCBjbGllbnQuYWN0aW9uKDApKTsKICAgICBFWFBFQ1RfVFJVRSh0aW1l
U291cmNlLT5hY3RpdmUoKSk7CiAgICAgY2xpZW50LnJlc2V0KCk7CiAKQEAgLTE1MiwxMiArMTUw
LDEwIEBAIFRFU1QoQ0NTY2hlZHVsZXJUZXN0LCBSZXF1ZXN0Q29tbWl0QWZ0ZXJCZWdpbkZyYW1l
KQogICAgIHNjaGVkdWxlci0+c2V0TmVlZHNDb21taXQoKTsKIAogICAgIC8vIFNpbmNlLCBoYXNN
b3JlUmVzb3VyY2VVcGRhdGVzIGlzIHNldCB0byBmYWxzZSwgYW5kIGFub3RoZXIgY29tbWl0IGlz
Ci0gICAgLy8gbmVlZGVkLCBiZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxkIHVwZGF0ZU1vcmVSZXNv
dXJjZXMsIHRoZW4gY29tbWl0LCB0aGVuCi0gICAgLy8gYmVnaW4gYW5vdGhlciBmcmFtZS4KKyAg
ICAvLyBuZWVkZWQsIGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQgY29tbWl0LCB0aGVuIGJlZ2lu
IGFub3RoZXIgZnJhbWUuCiAgICAgc2NoZWR1bGVyLT5iZWdpbkZyYW1lQ29tcGxldGUoKTsKLSAg
ICBFWFBFQ1RfRVEoMiwgY2xpZW50Lm51bUFjdGlvbnMoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJz
Y2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIiwgY2xpZW50LmFjdGlvbigwKSk7Ci0g
ICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25Db21taXQiLCBjbGllbnQuYWN0aW9uKDEp
KTsKKyAgICBFWFBFQ1RfRVEoMSwgY2xpZW50Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCJzY2hlZHVsZWRBY3Rpb25Db21taXQiLCBjbGllbnQuYWN0aW9uKDApKTsKICAgICBjbGll
bnQucmVzZXQoKTsKIAogICAgIC8vIFRpY2sgc2hvdWxkIGRyYXcgYnV0IHRoZW4gYmVnaW4gYW5v
dGhlciBmcmFtZS4KQEAgLTI1Nyw3ICsyNTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBD
Q1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0KHRydWUsIHRydWUpOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgT1ZF
UlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNv
dXJjZXMoZG91YmxlKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0
aW9uQ29tbWl0KCkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlv
bkJlZ2luQ29udGV4dFJlY3JlYXRpb24oKSBPVkVSUklERSB7IH0KIApAQCAtMzU3LDcgKzM1Myw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBS
ZXN1bHQodHJ1ZSwgdHJ1ZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFj
dGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyhkb3VibGUpIE9WRVJSSURFIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25Db21taXQoKSBPVkVSUklERSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQmVnaW5Db250ZXh0UmVjcmVhdGlvbigpIE9W
RVJSSURFIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
U2NoZWR1bGVyVGVzdENvbW1vbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Nj
aGVkdWxlclRlc3RDb21tb24uaAppbmRleCA2MjU3ZWM4Li5mMmVjNGI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmgKQEAg
LTg2LDYgKzg2LDcgQEAgY2xhc3MgRmFrZUNDVGltZVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpD
Q1RpbWVTb3VyY2UgewogcHVibGljOgogICAgIEZha2VDQ1RpbWVTb3VyY2UoKQogICAgICAgICA6
IG1fYWN0aXZlKGZhbHNlKQorICAgICAgICAsIG1fbmV4dFRpY2tUaW1lKDApCiAgICAgICAgICwg
bV9jbGllbnQoMCkgeyB9CiAKICAgICB2aXJ0dWFsIH5GYWtlQ0NUaW1lU291cmNlKCkgeyB9CkBA
IC05Myw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYkNv
cmU6OkNDVGltZVNvdXJjZUNsaWVudCogY2xpZW50KSBPVkVSUklERSB7IG1fY2xpZW50ID0gY2xp
ZW50OyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGIpIE9WRVJSSURFIHsgbV9h
Y3RpdmUgPSBiOyB9CiAgICAgdmlydHVhbCBib29sIGFjdGl2ZSgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBkb3VibGUgbmV4dFRpY2tUaW1lKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV9uZXh0VGlja1RpbWU7IH0KIAogICAgIHZvaWQgdGljaygp
CiAgICAgewpAQCAtMTAxLDggKzEwMywxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2NsaWVu
dC0+b25UaW1lclRpY2soKTsKICAgICB9CiAKKyAgICB2b2lkIHNldE5leHRUaWNrVGltZShkb3Vi
bGUgbmV4dFRpY2tUaW1lKSB7IG1fbmV4dFRpY2tUaW1lID0gbmV4dFRpY2tUaW1lOyB9CisKIHBy
b3RlY3RlZDoKICAgICBib29sIG1fYWN0aXZlOworICAgIGRvdWJsZSBtX25leHRUaWNrVGltZTsK
ICAgICBXZWJDb3JlOjpDQ1RpbWVTb3VyY2VDbGllbnQqIG1fY2xpZW50OwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXJUZXN0LmNwcAppbmRleCA4ZTlhODgxLi5jNzFiODhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXJUZXN0LmNwcApAQCAtNTQzLDQgKzU0MywxMTUgQEAgVEVTVF9GKENDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXJUZXN0LCBUcmlwbGVVcGRhdGVGaW5hbFVwZGF0ZUFsbFBhcnRpYWwpCiAg
ICAgRVhQRUNUX0VRKGtGdWxsVXBsb2FkcyArIGtQYXJ0aWFsVXBsb2FkcywgbV9udW1Ub3RhbFVw
bG9hZHMpOwogfQogCitjbGFzcyBGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlciA6IHB1Ymxp
YyBXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc093blB0cjxGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcj4gY3JlYXRlKFdlYkNv
cmU6OkNDVGhyZWFkKiB0aHJlYWQsIFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+IHF1
ZXVlLCBDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZXIq
IGNvcGllciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRlcikKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIodGhyZWFkLCBxdWV1
ZSwgcmVzb3VyY2VQcm92aWRlciwgY29waWVyLCB1cGxvYWRlcikpOworICAgIH0KKworICAgIHZv
aWQgc2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGRvdWJsZSB0aW1lKSB7IG1fbW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lID0gdGltZTsgfQorICAgIHZpcnR1YWwgZG91YmxlIG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lOyB9CisgICAgdm9pZCBzZXRVcGRhdGVNb3JlVGV4dHVyZXNU
aW1lKGRvdWJsZSB0aW1lKSB7IG1fdXBkYXRlTW9yZVRleHR1cmVzVGltZSA9IHRpbWU7IH0KKyAg
ICB2aXJ0dWFsIGRvdWJsZSB1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gbV91cGRhdGVNb3JlVGV4dHVyZXNUaW1lOyB9CisgICAgdm9pZCBzZXRVcGRhdGVN
b3JlVGV4dHVyZXNTaXplKHNpemVfdCBzaXplKSB7IG1fdXBkYXRlTW9yZVRleHR1cmVzU2l6ZSA9
IHNpemU7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCB1cGRhdGVNb3JlVGV4dHVyZXNTaXplKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV91cGRhdGVNb3JlVGV4dHVyZXNTaXplOyB9CisKK3Byb3Rl
Y3RlZDoKKyAgICBGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihXZWJDb3JlOjpDQ1RocmVh
ZCogdGhyZWFkLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwgQ0NSZXNv
dXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRl
eHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCisgICAgICAgIDogV2ViQ29yZTo6Q0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlcih0aHJlYWQsIHF1ZXVlLCByZXNvdXJjZVByb3ZpZGVyLCBjb3BpZXIsIHVw
bG9hZGVyKQorICAgICAgICAsIG1fbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKDApCisgICAg
ICAgICwgbV91cGRhdGVNb3JlVGV4dHVyZXNUaW1lKDApCisgICAgICAgICwgbV91cGRhdGVNb3Jl
VGV4dHVyZXNTaXplKDApIHsgfQorCisgICAgZG91YmxlIG1fbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lOworICAgIGRvdWJsZSBtX3VwZGF0ZU1vcmVUZXh0dXJlc1RpbWU7CisgICAgc2l6ZV90
IG1fdXBkYXRlTW9yZVRleHR1cmVzU2l6ZTsKK307CisKK1RFU1RfRihDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyVGVzdCwgVXBkYXRlTW9yZVRleHR1cmVzKQoreworICAgIEZha2VDQ1RocmVhZCB0
aHJlYWQ7CisKKyAgICBzZXRNYXhVcGxvYWRDb3VudFBlclVwZGF0ZSgxKTsKKyAgICBhcHBlbmRG
dWxsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMyk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1Vw
ZGF0ZVF1ZXVlKDApOworCisgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7
CisgICAgT3duUHRyPEZha2VDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyPiBjb250cm9sbGVyKEZh
a2VDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUoJnRocmVhZCwgbV9xdWV1ZS5yZWxl
YXNlKCksIG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlcikp
OworCisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKDApOwor
ICAgIGNvbnRyb2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoMC4xKTsKKyAgICBjb250
cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNTaXplKDEpOworICAgIC8vIE5vdCBlbm91Z2gg
dGltZSBmb3IgYW55IHVwZGF0ZXMuCisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVz
KDAuMDkpOworICAgIEVYUEVDVF9GQUxTRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAg
RVhQRUNUX0VRKDAsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMCwgbV9udW1F
bmRVcGxvYWRzKTsKKworICAgIHRocmVhZC5yZXNldCgpOworICAgIGNvbnRyb2xsZXItPnNldE1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVN
b3JlVGV4dHVyZXNUaW1lKDAuMSk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1
cmVzU2l6ZSgxKTsKKyAgICAvLyBPbmx5IGVub3VnaCB0aW1lIGZvciAxIHVwZGF0ZS4KKyAgICBj
b250cm9sbGVyLT51cGRhdGVNb3JlVGV4dHVyZXMoMC4xMik7CisgICAgRVhQRUNUX1RSVUUodGhy
ZWFkLmhhc1BlbmRpbmdUYXNrKCkpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSh0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhy
ZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5VcGxvYWRz
KTsKKyAgICBFWFBFQ1RfRVEoMSwgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMSwg
bV9udW1Ub3RhbFVwbG9hZHMpOworCisgICAgdGhyZWFkLnJlc2V0KCk7CisgICAgY29udHJvbGxl
ci0+c2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKDApOworICAgIGNvbnRyb2xsZXItPnNl
dFVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoMC4xKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVN
b3JlVGV4dHVyZXNTaXplKDEpOworICAgIC8vIEVub3VnaCB0aW1lIGZvciAyIHVwZGF0ZXMuCisg
ICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMjIpOworICAgIEVYUEVDVF9UUlVF
KHRocmVhZC5oYXNQZW5kaW5nVGFzaygpKTsKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoY29udHJvbGxlci0+bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkgKyB0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhyZWFkLnJ1blBl
bmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VRKDMsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBF
WFBFQ1RfRVEoMywgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMywgbV9udW1Ub3Rh
bFVwbG9hZHMpOworfQorCitURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE5v
TW9yZVVwZGF0ZXMpCit7CisgICAgRmFrZUNDVGhyZWFkIHRocmVhZDsKKworICAgIHNldE1heFVw
bG9hZENvdW50UGVyVXBkYXRlKDEpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVRdWV1
ZSgyKTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMCk7CisKKyAgICBE
ZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKKyAgICBPd25QdHI8RmFrZUNDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNvbnRyb2xsZXIoRmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXI6OmNyZWF0ZSgmdGhyZWFkLCBtX3F1ZXVlLnJlbGVhc2UoKSwgbV9yZXNvdXJjZVByb3Zp
ZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyKSk7CisKKyAgICBjb250cm9sbGVyLT5z
ZXRNb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoMCk7CisgICAgY29udHJvbGxlci0+c2V0VXBk
YXRlTW9yZVRleHR1cmVzVGltZSgwLjEpOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0ZU1vcmVU
ZXh0dXJlc1NpemUoMSk7CisgICAgLy8gRW5vdWdoIHRpbWUgZm9yIDMgdXBkYXRlcyBidXQgb25s
eSAyIG5lY2Vzc2FyeS4KKyAgICBjb250cm9sbGVyLT51cGRhdGVNb3JlVGV4dHVyZXMoMC4zMSk7
CisgICAgRVhQRUNUX1RSVUUodGhyZWFkLmhhc1BlbmRpbmdUYXNrKCkpOworICAgIGNvbnRyb2xs
ZXItPnNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZShjb250cm9sbGVyLT5tb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSArIHRocmVhZC5wZW5kaW5nRGVsYXlNcygpIC8gMTAwMC4wKTsK
KyAgICB0aHJlYWQucnVuUGVuZGluZ1Rhc2soKTsKKyAgICBFWFBFQ1RfVFJVRSh0aHJlYWQuaGFz
UGVuZGluZ1Rhc2soKSk7CisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKGNvbnRyb2xsZXItPm1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICsgdGhyZWFk
LnBlbmRpbmdEZWxheU1zKCkgLyAxMDAwLjApOworICAgIHRocmVhZC5ydW5QZW5kaW5nVGFzaygp
OworICAgIEVYUEVDVF9FUSgyLCBtX251bUJlZ2luVXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDIs
IG1fbnVtRW5kVXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtVG90YWxVcGxvYWRzKTsK
KworICAgIHRocmVhZC5yZXNldCgpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNU
aW1lKDAuMSk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgxKTsK
KyAgICAvLyBFbm91Z2ggdGltZSBmb3IgdXBkYXRlcyBidXQgbm8gbW9yZSB1cGRhdGVzIGxlZnQu
CisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMzEpOworICAgIEVYUEVDVF9G
QUxTRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtQmVn
aW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMiwgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBF
Q1RfRVEoMiwgbV9udW1Ub3RhbFVwbG9hZHMpOworfQorCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156832</attachid>
            <date>2012-08-06 19:17:33 -0700</date>
            <delta_ts>2012-08-10 14:33:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84281-20120806191709.patch</filename>
            <type>text/plain</type>
            <size>28784</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFkZThhNmI3NmEzZTNj
Yzc1ZTA4MzAyYWQ3MTFhYWM5ODhjYmIwNS4uZWQwNmFlNmQ3N2Y1ZGQ1Mzc1YzUzYTFkNGFkNzNh
NTcwMGU1MDc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU5IEBACiAyMDEyLTA4LTA2ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW0Nocm9taXVtXSBT
Y2hlZHVsZSB0ZXh0dXJlIHVwbG9hZHMgYmFzZWQgb24gaGFyZC1jb2RlZCB0aW1lciBhbmQgdnN5
bmMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJv
dmUgaW50ZXJhY3Rpb24gYmV0d2VlbiB2c3luYyBhbmQgdGV4dHVyZSB1cGxvYWRzIGJ5IHBlcmZv
cm1pbmcKKyAgICAgICAgdXBsb2FkcyBpbiBzbWFsbGVyIGJhdGNoZXMgYW5kIHVzZSBhIGhhcmQt
Y29kZWQgdGltZXIgdG8gZW11bGF0ZQorICAgICAgICB1cGxvYWQgY29tcGxldGlvbi4gVGhpcyBn
cmVhdGx5IHJlZHVjZXMgdGhlIGNoYW5jZSBvZiB0aGUgY29tcG9zaXRvcgorICAgICAgICBtaXNz
aW5nIGEgdnN5bmMgZHVlIHRvIGJlaW5nIGJ1c3kgd2l0aCB0ZXh0dXJlIHVwbG9hZHMuCisKKyAg
ICAgICAgVGhlIENDU2NoZWR1bGVyIGNsaWVudCBpcyBub3cgZ2l2ZW4gYSB0aW1lIGxpbWl0IHdo
ZW4gdG9sZCB0byB1cGRhdGUKKyAgICAgICAgbW9yZSByZXNvdXJjZXMuIFRoaXMgdGltZSBsaW1p
dCBpcyBwYXNzZWQgdG8gYW4gaW5zdGFuY2Ugb2YgdGhlCisgICAgICAgIENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXIgY2xhc3MsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciBwZXJmb3JtaW5nCisg
ICAgICAgIHRleHR1cmUgdXBkYXRlcyB1bnRpbCB0aGUgbGltaXQgaXMgcmVhY2hlZC4KKworICAg
ICAgICBVbml0IHRlc3RzOiBDQ1NjaGVkdWxlclRlc3QuUmVxdWVzdENvbW1pdAorICAgICAgICAg
ICAgICAgICAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5VcGRhdGVNb3JlVGV4dHVy
ZXMKKyAgICAgICAgICAgICAgICAgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuSGFz
TW9yZVVwZGF0ZXMKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RGVsYXlCYXNlZFRpbWVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NEZWxheUJhc2Vk
VGltZVNvdXJjZTo6bmV4dFRpY2tUaW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpuZXh0
VGlja1RpbWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmg6CisgICAgICAgIChDQ0ZyYW1l
UmF0ZUNvbnRyb2xsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2NoZWR1bGVyOjpwcm9jZXNz
U2NoZWR1bGVkQWN0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NTY2hlZHVsZXIuaDoKKyAgICAgICAgKENDU2NoZWR1bGVyQ2xpZW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Om1heFBh
cnRpYWxUZXh0dXJlVXBkYXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZU1vcmVUZXh0dXJlcyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6
Om9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXNT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0
ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAg
KENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJl
YWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbWVTb3VyY2UuaDoK
KyAgICAgICAgKENDVGltZVNvdXJjZSk6CisKKzIwMTItMDgtMDYgIERhdmlkIFJldmVtYW4gIDxy
ZXZlbWFuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbQ2hyb21pdW1dIFJlbmFtZSBDQ1RleHR1
cmVVcGRhdGVyIHRvIENDVGV4dHVyZVVwZGF0ZVF1ZXVlLgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMyOTMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCA2N2I0ZTgxNTBjYmEwZjhlZTFiMzlhMDFlODhhZDJjZTM3NTA4M2M0Li5iNzYyMDVm
NmQ1ZDRkMjM5OWNjNmQ5ZTMzODcxZGNlNDdiZTIwMWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA4LTA2ICBEYXZpZCBSZXZlbWFuICA8cmV2ZW1h
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBTY2hlZHVsZSB0ZXh0dXJlIHVw
bG9hZHMgYmFzZWQgb24gaGFyZC1jb2RlZCB0aW1lciBhbmQgdnN5bmMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI4MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvQ0NTY2hlZHVsZXJUZXN0
LmNwcDoKKyAgICAgICAgKFdlYktpdFRlc3RzOjpURVNUKToKKyAgICAgICAgKiB0ZXN0cy9DQ1Nj
aGVkdWxlclRlc3RDb21tb24uaDoKKyAgICAgICAgKFdlYktpdFRlc3RzOjpGYWtlQ0NUaW1lU291
cmNlOjpGYWtlQ0NUaW1lU291cmNlKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpGYWtlQ0NUaW1l
U291cmNlOjpzZXROZXh0VGlja1RpbWUpOgorICAgICAgICAoRmFrZUNDVGltZVNvdXJjZSk6Cisg
ICAgICAgICogdGVzdHMvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuY3BwOgorCiAyMDEy
LTA4LTA2ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSBVcGRhdGUgY2hyb21pdW0gREVQUyByMTUwMDM3IC0+IHIxNTAxNjkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGVs
YXlCYXNlZFRpbWVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKaW5kZXggZDZkY2RjNmRlNWEw
NWYxZGNmMjFlYjA5YzRkYmM5MzliY2VmYjc0Yi4uYmRhZTFhZmU2YzI0MmUzMGU4NDU0NGNiODk2
ZDNiYTFlNGUzMjAwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJj
ZS5jcHAKQEAgLTE1OSw0ICsxNTksMTIgQEAgdm9pZCBDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpw
b3N0TmV4dFRpY2tUYXNrKGRvdWJsZSBub3cpCiAgICAgbV90aWNrVGFyZ2V0ID0gbmV3VGlja1Rh
cmdldDsKIH0KIAorZG91YmxlIENDRGVsYXlCYXNlZFRpbWVTb3VyY2U6Om5leHRUaWNrVGltZSgp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2hhc1RpY2tUYXJnZXQpCisgICAgICAgIHJldHVybiBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKworICAgIHJldHVybiBtX3RpY2tUYXJnZXQ7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaAppbmRleCA5OTc5
NWRiODFjOTZjY2RjZGFmNWMwMmYwMmJjM2VlYmI2YzY1ZmQwLi42ZjIzZWM3MDM2NjU1NjFkMzFh
YTFjMzRhNzRkMGU5YjVlNjk0MmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWxheUJhc2VkVGlt
ZVNvdXJjZS5oCkBAIC00Nyw2ICs0Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0
QWN0aXZlKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhY3RpdmUoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBtX3N0YXRlICE9IFNUQVRFX0lOQUNUSVZFOyB9CiAKKyAgICB2aXJ0
dWFsIGRvdWJsZSBuZXh0VGlja1RpbWUoKSBjb25zdCBPVkVSUklERTsKKwogICAgIC8vIENDVGlt
ZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIG9uVGltZXJGaXJlZCgp
IE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcApp
bmRleCBmMjcyZjliMzU4MzkyMjQ0ZGRlMzc5NzgzZWM3NTE2YmIwNjlhZGYxLi45NDYyN2Y5ZDJl
YzhmZjVhZjkyMTIxMjY5MzczOGRiYjM2YzEwZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJh
bWVSYXRlQ29udHJvbGxlci5jcHAKQEAgLTE0Miw0ICsxNDIsOSBAQCB2b2lkIENDRnJhbWVSYXRl
Q29udHJvbGxlcjo6ZGlkQWJvcnRBbGxQZW5kaW5nRnJhbWVzKCkKICAgICBtX251bUZyYW1lc1Bl
bmRpbmcgPSAwOwogfQogCitkb3VibGUgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpuZXh0VGlja1Rp
bWUoKQoreworICAgIHJldHVybiBtX3RpbWVTb3VyY2UtPm5leHRUaWNrVGltZSgpOworfQorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCmluZGV4IDhkOWM3ZGVlZDEy
ZTg2YmQ2NWM1ZDc2ZGYwZmY4YjQzY2JlN2E1ZWMuLjQxYjBjZWM5YjMzNzU1Yzg4YmU3OGVkZjdk
ZDY4YjhmYWZlNmI4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5o
CkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZpbmlzaEZyYW1lKCk7CiAg
ICAgdm9pZCBkaWRBYm9ydEFsbFBlbmRpbmdGcmFtZXMoKTsKICAgICB2b2lkIHNldE1heEZyYW1l
c1BlbmRpbmcoaW50KTsgLy8gMCBmb3IgdW5saW1pdGVkLgorICAgIGRvdWJsZSBuZXh0VGlja1Rp
bWUoKTsKIAogcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBDQ0ZyYW1lUmF0ZUNvbnRyb2xs
ZXJUaW1lU291cmNlQWRhcHRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcAppbmRleCA2Zjg2NWM5
Y2Q2MDhiMTNjYjgxMzc3OTM3ODAwOWVmNjcyZTAyZmM2Li41MmM3MWVkNjdkZjc3MDk2MmJiZDQw
NjgwMDEzY2IyNmI1Y2Q1MDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwCkBAIC0xNjgsMTYg
KzE2OCwxMSBAQCB2b2lkIENDU2NoZWR1bGVyOjpwcm9jZXNzU2NoZWR1bGVkQWN0aW9ucygpCiAg
ICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElP
Tl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVM6Ci0gICAgICAgICAgICBtX2NsaWVudC0+c2No
ZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpOwotICAgICAgICAgICAgaWYgKCFtX2Ns
aWVudC0+aGFzTW9yZVJlc291cmNlVXBkYXRlcygpKSB7Ci0gICAgICAgICAgICAgICAgLy8gSWYg
d2Ugd2VyZSBqdXN0IHRvbGQgdG8gdXBkYXRlIHJlc291cmNlcywgYnV0IHRoZXJlIGFyZSBubwot
ICAgICAgICAgICAgICAgIC8vIG1vcmUgcGVuZGluZywgdGhlbiB0ZWxsIHRoZSBzdGF0ZSBtYWNo
aW5lIHRoYXQgdGhlCi0gICAgICAgICAgICAgICAgLy8gYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2Vz
IGNvbXBsZXRlZC4gSWYgbW9yZSBhcmUgcGVuZGluZywKLSAgICAgICAgICAgICAgICAvLyB0aGVu
IHdlIHdpbGwgYWNrIHRoZSB1cGRhdGUgYXQgdGhlIG5leHQgZHJhdy4KLSAgICAgICAgICAgICAg
ICBtX3VwZGF0ZU1vcmVSZXNvdXJjZXNQZW5kaW5nID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAg
bV9zdGF0ZU1hY2hpbmUuYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoZmFsc2UpOwot
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBpZiAobV9jbGllbnQtPmhhc01vcmVSZXNv
dXJjZVVwZGF0ZXMoKSkgeworICAgICAgICAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZWRBY3Rp
b25VcGRhdGVNb3JlUmVzb3VyY2VzKG1fZnJhbWVSYXRlQ29udHJvbGxlci0+bmV4dFRpY2tUaW1l
KCkpOwogICAgICAgICAgICAgICAgIG1fdXBkYXRlTW9yZVJlc291cmNlc1BlbmRpbmcgPSB0cnVl
OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbV9zdGF0ZU1hY2hpbmUuYmVn
aW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoZmFsc2UpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9DT01NSVQ6CiAg
ICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hl
ZHVsZXIuaAppbmRleCAzZTZmN2FhN2I4MTU3YWEyMjQ2MDljMjlhMzdmNDViNjk2YmJkNjEyLi5k
MDhiNjhkMDdlZmIxODM0ZGIxNDU1NzlhMGYwODk3MWQ1MWE4MzdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1
bGVyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZWRBY3Rpb25CZWdpbkZyYW1lKCkgPSAwOwogICAgIHZpcnR1YWwgQ0NTY2hlZHVsZWRBY3Rpb25E
cmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcElmUG9zc2libGUoKSA9
IDA7CiAgICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVk
dWxlZEFjdGlvbkRyYXdBbmRTd2FwRm9yY2VkKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzY2hl
ZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSBtb25vdG9uaWNUaW1lTGlt
aXQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0aW9uKCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25BY3F1aXJlTGF5ZXJUZXh0dXJl
c0Zvck1haW5UaHJlYWQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXIuY3BwCmluZGV4IGRkZTg5NDk1MDQ2OTlkNzgwYjJlMTA5YThhOGI0MjQ5MWRm
OWYwM2EuLjIxZGEyMWRlOGI0M2RiYTA0NTFmMDA4YmIyMTA0YzcyNzE4OTc2NGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3BwCkBAIC0zNCw4ICsz
NCwxMSBAQAogCiBuYW1lc3BhY2UgewogCi0vLyBOdW1iZXIgb2YgdGV4dHVyZXMgdG8gdXBkYXRl
IHdpdGggZWFjaCBjYWxsIHRvIHVwZGF0ZU1vcmVUZXh0dXJlcygpLgotc3RhdGljIGNvbnN0IHNp
emVfdCB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lID0gNDg7CisvLyBOdW1iZXIgb2YgdGV4dHVyZXMg
dG8gdXBkYXRlIHdpdGggZWFjaCBjYWxsIHRvIHVwZGF0ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGlt
ZVJlbWFpbmluZygpLgorc3RhdGljIGNvbnN0IHNpemVfdCB0ZXh0dXJlVXBkYXRlc1BlclRpY2sg
PSAxMjsKKworLy8gTWVhc3VyZWQgaW4gc2Vjb25kcy4KK3N0YXRpYyBjb25zdCBkb3VibGUgdGV4
dHVyZVVwZGF0ZVRpY2tSYXRlID0gMC4wMDQ7CiAKIC8vIEZsdXNoIGludGVydmFsIHdoZW4gcGVy
Zm9ybWluZyB0ZXh0dXJlIHVwbG9hZHMuCiBzdGF0aWMgY29uc3QgaW50IHRleHR1cmVVcGxvYWRG
bHVzaFBlcmlvZCA9IDQ7CkBAIC00Niw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
c2l6ZV90IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Om1heFBhcnRpYWxUZXh0dXJlVXBkYXRl
cygpCiB7Ci0gICAgcmV0dXJuIHRleHR1cmVVcGRhdGVzUGVyRnJhbWU7CisgICAgcmV0dXJuIHRl
eHR1cmVVcGRhdGVzUGVyVGljazsKIH0KIAogdm9pZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
Ojp1cGRhdGVUZXh0dXJlcyhDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRl
eHR1cmVDb3BpZXIqIGNvcGllciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRlciwgQ0NUZXh0dXJl
VXBkYXRlUXVldWUqIHF1ZXVlLCBzaXplX3QgY291bnQpCkBAIC0xMTAsMTEgKzExMywxMyBAQCB2
b2lkIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQ
cm92aWRlciogcmVzb3VyY2VQcm92aQogICAgICAgICBjb3BpZXItPmZsdXNoKCk7CiB9CiAKLUND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoUGFzc093
blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVz
b3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVw
bG9hZGVyKQotICAgIDogbV9xdWV1ZShxdWV1ZSkKK0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6
OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoQ0NUaHJlYWQqIHRocmVhZCwgUGFzc093blB0cjxD
Q1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQ
cm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVy
KQorICAgIDogbV90aW1lcihhZG9wdFB0cihuZXcgQ0NUaW1lcih0aHJlYWQsIHRoaXMpKSkKKyAg
ICAsIG1fcXVldWUocXVldWUpCiAgICAgLCBtX3Jlc291cmNlUHJvdmlkZXIocmVzb3VyY2VQcm92
aWRlcikKICAgICAsIG1fY29waWVyKGNvcGllcikKICAgICAsIG1fdXBsb2FkZXIodXBsb2FkZXIp
CisgICAgLCBtX21vbm90b25pY1RpbWVMaW1pdCgwKQogewogfQogCkBAIC0xMjcsMTcgKzEzMiw0
MiBAQCBib29sIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Omhhc01vcmVVcGRhdGVzKCkgY29u
c3QKICAgICByZXR1cm4gbV9xdWV1ZS0+aGFzTW9yZVVwZGF0ZXMoKTsKIH0KIAotdm9pZCBDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXMoKQordm9pZCBDQ1RleHR1
cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXMoZG91YmxlIG1vbm90b25pY1Rp
bWVMaW1pdCkKIHsKLSAgICBpZiAoIW1fcXVldWUtPmhhc01vcmVVcGRhdGVzKCkpCi0gICAgICAg
IHJldHVybjsKKyAgICBtX21vbm90b25pY1RpbWVMaW1pdCA9IG1vbm90b25pY1RpbWVMaW1pdDsK
KyAgICB1cGRhdGVNb3JlVGV4dHVyZXNJZkVub3VnaFRpbWVSZW1haW5pbmcoKTsKK30KKwordm9p
ZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpvblRpbWVyRmlyZWQoKQoreworICAgIHVwZGF0
ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZygpOworfQorCitkb3VibGUgQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlcjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKK30KIAot
ICAgIHVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlciwgbV9jb3BpZXIsIG1fdXBsb2Fk
ZXIsIG1fcXVldWUuZ2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7Citkb3VibGUgQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzVGltZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHRleHR1cmVVcGRhdGVUaWNrUmF0ZTsKIH0KIAogc2l6ZV90IENDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSBjb25zdAogewotICAg
IHJldHVybiB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lOworICAgIHJldHVybiB0ZXh0dXJlVXBkYXRl
c1BlclRpY2s7Cit9CisKK3ZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9y
ZVRleHR1cmVzSWZFbm91Z2hUaW1lUmVtYWluaW5nKCkKK3sKKyAgICBpZiAoIW1fcXVldWUtPmhh
c01vcmVVcGRhdGVzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgaGFzVGltZVJlbWFp
bmluZyA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIDwgbV9tb25vdG9uaWNUaW1lTGlt
aXQgLSB1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKCk7CisgICAgaWYgKGhhc1RpbWVSZW1haW5pbmcp
IHsKKyAgICAgICAgbV90aW1lci0+c3RhcnRPbmVTaG90KHVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUo
KSk7CisgICAgICAgIHVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlciwgbV9jb3BpZXIs
IG1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7Cisg
ICAgfQogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
LmgKaW5kZXggYmQyYzdiYzgyNzFkYWU4OTg5YmZmMzcwZTMwOTE0MjQyZDZhNmNmMS4uYzQwZWI1
OTc1MGMxMjJlZmE4NWNlNjBiN2E1MTcyZGUwNmFkNzAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyX2gKIAogI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0
ZVF1ZXVlLmgiCisjaW5jbHVkZSAiY2MvQ0NUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIApAQCAtMzUsMTIgKzM2LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFRleHR1cmVDb3BpZXI7CiBjbGFzcyBUZXh0dXJlVXBs
b2FkZXI7CiAKLWNsYXNzIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIgeworY2xhc3MgQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlciA6IHB1YmxpYyBDQ1RpbWVyQ2xpZW50IHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKTsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyPiBjcmVhdGUoUGFzc093
blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVz
b3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVw
bG9hZGVyKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+
IGNyZWF0ZShDQ1RocmVhZCogdGhyZWFkLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVl
PiBxdWV1ZSwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29w
aWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIocXVldWUsIHJlc291
cmNlUHJvdmlkZXIsIGNvcGllciwgdXBsb2FkZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKHRocmVhZCwgcXVldWUsIHJlc291cmNlUHJv
dmlkZXIsIGNvcGllciwgdXBsb2FkZXIpKTsKICAgICB9CiAgICAgc3RhdGljIHNpemVfdCBtYXhQ
YXJ0aWFsVGV4dHVyZVVwZGF0ZXMoKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVUZXh0dXJlcyhD
Q1Jlc291cmNlUHJvdmlkZXIqLCBUZXh0dXJlQ29waWVyKiwgVGV4dHVyZVVwbG9hZGVyKiwgQ0NU
ZXh0dXJlVXBkYXRlUXVldWUqLCBzaXplX3QgY291bnQpOwpAQCAtNDgsMTggKzQ5LDI3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKCk7CiAKICAgICBi
b29sIGhhc01vcmVVcGRhdGVzKCkgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVNb3JlVGV4dHVyZXMo
KTsKKyAgICB2b2lkIHVwZGF0ZU1vcmVUZXh0dXJlcyhkb3VibGUgbW9ub3RvbmljVGltZUxpbWl0
KTsKKworICAgIC8vIENDVGltZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2
b2lkIG9uVGltZXJGaXJlZCgpIE9WRVJSSURFOwogCiAgICAgLy8gVmlydHVhbCBmb3IgdGVzdGlu
Zy4KKyAgICB2aXJ0dWFsIGRvdWJsZSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGRvdWJsZSB1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBzaXplX3QgdXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgpIGNvbnN0OwogCiBwcm90
ZWN0ZWQ6Ci0gICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihQYXNzT3duUHRyPENDVGV4dHVy
ZVVwZGF0ZVF1ZXVlPiwgQ0NSZXNvdXJjZVByb3ZpZGVyKiwgVGV4dHVyZUNvcGllciosIFRleHR1
cmVVcGxvYWRlciopOworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoQ0NUaHJlYWQqLCBQ
YXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiwgQ0NSZXNvdXJjZVByb3ZpZGVyKiwgVGV4
dHVyZUNvcGllciosIFRleHR1cmVVcGxvYWRlciopOworCisgICAgdm9pZCB1cGRhdGVNb3JlVGV4
dHVyZXNJZkVub3VnaFRpbWVSZW1haW5pbmcoKTsKIAorICAgIE93blB0cjxDQ1RpbWVyPiBtX3Rp
bWVyOwogICAgIE93blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gbV9xdWV1ZTsKICAgICBDQ1Jl
c291cmNlUHJvdmlkZXIqIG1fcmVzb3VyY2VQcm92aWRlcjsKICAgICBUZXh0dXJlQ29waWVyKiBt
X2NvcGllcjsKICAgICBUZXh0dXJlVXBsb2FkZXIqIG1fdXBsb2FkZXI7CisgICAgZG91YmxlIG1f
bW9ub3RvbmljVGltZUxpbWl0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcApp
bmRleCA4MTg2Mzk1YThlNjY5MzRhMjNkZDRlZDA5YzliMGFkZDZjZjk1ZmNmLi45NWQxNDBkOWM5
NzA4YjE5NmU3ODhmODhhNzQ3MTVkN2MwNTU0ODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmNwcApAQCAtNTU5LDcgKzU1OSw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNv
bXBsZXRlT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29udHJvbGxlck9u
SW1wbFRocmVhZCA9IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZShxdWV1ZSwgbV9s
YXllclRyZWVIb3N0SW1wbC0+cmVzb3VyY2VQcm92aWRlcigpLCBtX2xheWVyVHJlZUhvc3RJbXBs
LT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVDb3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+
bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlVXBsb2FkZXIoKSk7CisgICAgbV9jdXJyZW50VGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXJPbkltcGxUaHJlYWQgPSBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
OjpjcmVhdGUoQ0NQcm94eTo6aW1wbFRocmVhZCgpLCBxdWV1ZSwgbV9sYXllclRyZWVIb3N0SW1w
bC0+cmVzb3VyY2VQcm92aWRlcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVy
KCktPnRleHR1cmVDb3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigp
LT50ZXh0dXJlVXBsb2FkZXIoKSk7CiAgICAgbV9jb21taXRDb21wbGV0aW9uRXZlbnRPbkltcGxU
aHJlYWQgPSBjb21wbGV0aW9uOwogCiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPmJlZ2lu
RnJhbWVDb21wbGV0ZSgpOwpAQCAtNTkwLDExICs1OTAsMTEgQEAgYm9vbCBDQ1RocmVhZFByb3h5
OjpjYW5EcmF3KCkKICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0SW1wbC0+Y2FuRHJhdygpOwog
fQogCi12b2lkIENDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJj
ZXMoKQordm9pZCBDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3Vy
Y2VzKGRvdWJsZSBtb25vdG9uaWNUaW1lTGltaXQpCiB7CiAgICAgVFJBQ0VfRVZFTlQwKCJjYyIs
ICJDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIik7CiAg
ICAgQVNTRVJUKG1fY3VycmVudFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkKTsK
LSAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29udHJvbGxlck9uSW1wbFRocmVhZC0+dXBkYXRl
TW9yZVRleHR1cmVzKCk7CisgICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJPbklt
cGxUaHJlYWQtPnVwZGF0ZU1vcmVUZXh0dXJlcyhtb25vdG9uaWNUaW1lTGltaXQpOwogfQogCiB2
b2lkIENDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVh
ZFByb3h5LmgKaW5kZXggZTU5MTJlMjMzYzVmNGU1ODIwZDQyOTJjNDBiOTQ2Y2NhMGYyYzI1ZS4u
ZGJkYjM3NzNjMDY4ZjQ2MzU4YWE3YWY4MmY0MzhkMTFkMmZmNDdjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuaApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNj
aGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIENDU2NoZWR1
bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJZlBv
c3NpYmxlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRT
d2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwRm9yY2VkKCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNl
cyhkb3VibGUgbW9ub3RvbmljVGltZUxpbWl0KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlZEFjdGlvbkJlZ2luQ29udGV4dFJlY3JlYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVkQWN0aW9uQWNxdWlyZUxheWVyVGV4dHVyZXNGb3JNYWluVGhyZWFkKCkg
T1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RpbWVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCmluZGV4IGRjY2I0NzBhNjM4M2UzMDRkYjEx
NmE1YjlkZjkxZGU1NjA2OGUwODUuLmMzNjRkOTJiZDAyOGEyMmZmYThhMmE4N2ZjMTkzMGI1OGRl
ZjhlNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGltZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGltZVNvdXJjZS5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENDVGltZVNvdXJjZUNsaWVudCopID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWN0
aXZlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIG5leHRUaWNrVGltZSgpIGNvbnN0
ID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NTY2hlZHVsZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hl
ZHVsZXJUZXN0LmNwcAppbmRleCA0MTI1MDg4NGJmNGRhMDJlNWE2YTAwZGJmZDhjMTY4NWY0NjI0
ZmVjLi44NDhhNTg2NDY4MWNjMDUzMjdhZmYwZmY5OTM0NjE0ZmJhYjZlMWFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwCkBAIC04MSw3
ICs4MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIENDU2NoZWR1bGVkQWN0aW9uRHJhd0Fu
ZFN3YXBSZXN1bHQodHJ1ZSwgbV9zd2FwV2lsbEhhcHBlbklmRHJhd0hhcHBlbnMpOwogICAgIH0K
IAotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkg
T1ZFUlJJREUgeyBtX2FjdGlvbnMucHVzaF9iYWNrKCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3Jl
UmVzb3VyY2VzIik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9y
ZVJlc291cmNlcyhkb3VibGUpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2NoZWR1
bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlZEFjdGlvbkNvbW1pdCgpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2NoZWR1
bGVkQWN0aW9uQ29tbWl0Iik7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQmVn
aW5Db250ZXh0UmVjcmVhdGlvbigpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2No
ZWR1bGVkQWN0aW9uQmVnaW5Db250ZXh0UmVjcmVhdGlvbiIpOyB9CiAgICAgdmlydHVhbCB2b2lk
IHNjaGVkdWxlZEFjdGlvbkFjcXVpcmVMYXllclRleHR1cmVzRm9yTWFpblRocmVhZCgpIE9WRVJS
SURFIHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2NoZWR1bGVkQWN0aW9uQWNxdWlyZUxheWVyVGV4
dHVyZXNGb3JNYWluVGhyZWFkIik7IH0KQEAgLTExNCwxMiArMTE0LDEwIEBAIFRFU1QoQ0NTY2hl
ZHVsZXJUZXN0LCBSZXF1ZXN0Q29tbWl0KQogICAgIGNsaWVudC5yZXNldCgpOwogCiAgICAgLy8g
U2luY2UsIGhhc01vcmVSZXNvdXJjZVVwZGF0ZXMgaXMgc2V0IHRvIGZhbHNlLAotICAgIC8vIGJl
Z2luRnJhbWVDb21wbGV0ZSBzaG91bGQgdXBkYXRlTW9yZVJlc291cmNlcywgdGhlbgotICAgIC8v
IGNvbW1pdAorICAgIC8vIGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQgY29tbWl0CiAgICAgc2No
ZWR1bGVyLT5iZWdpbkZyYW1lQ29tcGxldGUoKTsKLSAgICBFWFBFQ1RfRVEoMiwgY2xpZW50Lm51
bUFjdGlvbnMoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3Jl
UmVzb3VyY2VzIiwgY2xpZW50LmFjdGlvbigwKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVs
ZWRBY3Rpb25Db21taXQiLCBjbGllbnQuYWN0aW9uKDEpKTsKKyAgICBFWFBFQ1RfRVEoMSwgY2xp
ZW50Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rpb25Db21t
aXQiLCBjbGllbnQuYWN0aW9uKDApKTsKICAgICBFWFBFQ1RfVFJVRSh0aW1lU291cmNlLT5hY3Rp
dmUoKSk7CiAgICAgY2xpZW50LnJlc2V0KCk7CiAKQEAgLTE1MiwxMiArMTUwLDEwIEBAIFRFU1Qo
Q0NTY2hlZHVsZXJUZXN0LCBSZXF1ZXN0Q29tbWl0QWZ0ZXJCZWdpbkZyYW1lKQogICAgIHNjaGVk
dWxlci0+c2V0TmVlZHNDb21taXQoKTsKIAogICAgIC8vIFNpbmNlLCBoYXNNb3JlUmVzb3VyY2VV
cGRhdGVzIGlzIHNldCB0byBmYWxzZSwgYW5kIGFub3RoZXIgY29tbWl0IGlzCi0gICAgLy8gbmVl
ZGVkLCBiZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxkIHVwZGF0ZU1vcmVSZXNvdXJjZXMsIHRoZW4g
Y29tbWl0LCB0aGVuCi0gICAgLy8gYmVnaW4gYW5vdGhlciBmcmFtZS4KKyAgICAvLyBuZWVkZWQs
IGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQgY29tbWl0LCB0aGVuIGJlZ2luIGFub3RoZXIgZnJh
bWUuCiAgICAgc2NoZWR1bGVyLT5iZWdpbkZyYW1lQ29tcGxldGUoKTsKLSAgICBFWFBFQ1RfRVEo
MiwgY2xpZW50Lm51bUFjdGlvbnMoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVsZWRBY3Rp
b25VcGRhdGVNb3JlUmVzb3VyY2VzIiwgY2xpZW50LmFjdGlvbigwKSk7Ci0gICAgRVhQRUNUX1NU
UkVRKCJzY2hlZHVsZWRBY3Rpb25Db21taXQiLCBjbGllbnQuYWN0aW9uKDEpKTsKKyAgICBFWFBF
Q1RfRVEoMSwgY2xpZW50Lm51bUFjdGlvbnMoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJzY2hlZHVs
ZWRBY3Rpb25Db21taXQiLCBjbGllbnQuYWN0aW9uKDApKTsKICAgICBjbGllbnQucmVzZXQoKTsK
IAogICAgIC8vIFRpY2sgc2hvdWxkIGRyYXcgYnV0IHRoZW4gYmVnaW4gYW5vdGhlciBmcmFtZS4K
QEAgLTI1Nyw3ICsyNTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBDQ1NjaGVkdWxlZEFj
dGlvbkRyYXdBbmRTd2FwUmVzdWx0KHRydWUsIHRydWUpOwogICAgIH0KIAotICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgT1ZFUlJJREUgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoZG91Ymxl
KSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkg
T1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4
dFJlY3JlYXRpb24oKSBPVkVSUklERSB7IH0KIApAQCAtMzU3LDcgKzM1Myw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQodHJ1ZSwg
dHJ1ZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1v
cmVSZXNvdXJjZXMoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0
aW9uVXBkYXRlTW9yZVJlc291cmNlcyhkb3VibGUpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZWRBY3Rpb25Db21taXQoKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVkQWN0aW9uQmVnaW5Db250ZXh0UmVjcmVhdGlvbigpIE9WRVJSSURFIHsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVz
dENvbW1vbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3RD
b21tb24uaAppbmRleCA2MjU3ZWM4ODhmNThlYzc1MjY4ODdhNzcxZjcyNDhmM2Q1M2Y2NjVmLi5m
MmVjNGI4YzI5N2EzMTA5MTc2YjE5ODQ2YmQ4NzgwMGYzOTIyYjBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmgKQEAgLTg2
LDYgKzg2LDcgQEAgY2xhc3MgRmFrZUNDVGltZVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpDQ1Rp
bWVTb3VyY2UgewogcHVibGljOgogICAgIEZha2VDQ1RpbWVTb3VyY2UoKQogICAgICAgICA6IG1f
YWN0aXZlKGZhbHNlKQorICAgICAgICAsIG1fbmV4dFRpY2tUaW1lKDApCiAgICAgICAgICwgbV9j
bGllbnQoMCkgeyB9CiAKICAgICB2aXJ0dWFsIH5GYWtlQ0NUaW1lU291cmNlKCkgeyB9CkBAIC05
Myw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYkNvcmU6
OkNDVGltZVNvdXJjZUNsaWVudCogY2xpZW50KSBPVkVSUklERSB7IG1fY2xpZW50ID0gY2xpZW50
OyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGIpIE9WRVJSSURFIHsgbV9hY3Rp
dmUgPSBiOyB9CiAgICAgdmlydHVhbCBib29sIGFjdGl2ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBkb3VibGUgbmV4dFRpY2tUaW1lKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gbV9uZXh0VGlja1RpbWU7IH0KIAogICAgIHZvaWQgdGljaygpCiAg
ICAgewpAQCAtMTAxLDggKzEwMywxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2NsaWVudC0+
b25UaW1lclRpY2soKTsKICAgICB9CiAKKyAgICB2b2lkIHNldE5leHRUaWNrVGltZShkb3VibGUg
bmV4dFRpY2tUaW1lKSB7IG1fbmV4dFRpY2tUaW1lID0gbmV4dFRpY2tUaW1lOyB9CisKIHByb3Rl
Y3RlZDoKICAgICBib29sIG1fYWN0aXZlOworICAgIGRvdWJsZSBtX25leHRUaWNrVGltZTsKICAg
ICBXZWJDb3JlOjpDQ1RpbWVTb3VyY2VDbGllbnQqIG1fY2xpZW50OwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXJUZXN0LmNwcAppbmRleCA4ZTlhODgxMmJmNmVhZDFhM2RiNGY2ZmVlYjcxZDQyYmQ0
YWFjYWM3Li5jNzFiODhjNzE0Nzk4MTk1OTgwNTI0MjZjOTUxYWE0OWUwY2EyZjQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcApAQCAtNTQzLDQgKzU0MywxMTUgQEAgVEVTVF9GKENDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBUcmlwbGVVcGRhdGVGaW5hbFVwZGF0ZUFsbFBhcnRp
YWwpCiAgICAgRVhQRUNUX0VRKGtGdWxsVXBsb2FkcyArIGtQYXJ0aWFsVXBsb2FkcywgbV9udW1U
b3RhbFVwbG9hZHMpOwogfQogCitjbGFzcyBGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlciA6
IHB1YmxpYyBXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc093blB0cjxGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcj4gY3JlYXRl
KFdlYkNvcmU6OkNDVGhyZWFkKiB0aHJlYWQsIFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVl
dWU+IHF1ZXVlLCBDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVD
b3BpZXIqIGNvcGllciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRlcikKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgRmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIodGhyZWFk
LCBxdWV1ZSwgcmVzb3VyY2VQcm92aWRlciwgY29waWVyLCB1cGxvYWRlcikpOworICAgIH0KKwor
ICAgIHZvaWQgc2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGRvdWJsZSB0aW1lKSB7IG1f
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lID0gdGltZTsgfQorICAgIHZpcnR1YWwgZG91Ymxl
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1f
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lOyB9CisgICAgdm9pZCBzZXRVcGRhdGVNb3JlVGV4
dHVyZXNUaW1lKGRvdWJsZSB0aW1lKSB7IG1fdXBkYXRlTW9yZVRleHR1cmVzVGltZSA9IHRpbWU7
IH0KKyAgICB2aXJ0dWFsIGRvdWJsZSB1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbV91cGRhdGVNb3JlVGV4dHVyZXNUaW1lOyB9CisgICAgdm9pZCBzZXRV
cGRhdGVNb3JlVGV4dHVyZXNTaXplKHNpemVfdCBzaXplKSB7IG1fdXBkYXRlTW9yZVRleHR1cmVz
U2l6ZSA9IHNpemU7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCB1cGRhdGVNb3JlVGV4dHVyZXNTaXpl
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV91cGRhdGVNb3JlVGV4dHVyZXNTaXplOyB9CisK
K3Byb3RlY3RlZDoKKyAgICBGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihXZWJDb3JlOjpD
Q1RocmVhZCogdGhyZWFkLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwg
Q0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3Bp
ZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCisgICAgICAgIDogV2ViQ29yZTo6Q0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlcih0aHJlYWQsIHF1ZXVlLCByZXNvdXJjZVByb3ZpZGVyLCBjb3Bp
ZXIsIHVwbG9hZGVyKQorICAgICAgICAsIG1fbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKDAp
CisgICAgICAgICwgbV91cGRhdGVNb3JlVGV4dHVyZXNUaW1lKDApCisgICAgICAgICwgbV91cGRh
dGVNb3JlVGV4dHVyZXNTaXplKDApIHsgfQorCisgICAgZG91YmxlIG1fbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lOworICAgIGRvdWJsZSBtX3VwZGF0ZU1vcmVUZXh0dXJlc1RpbWU7CisgICAg
c2l6ZV90IG1fdXBkYXRlTW9yZVRleHR1cmVzU2l6ZTsKK307CisKK1RFU1RfRihDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyVGVzdCwgVXBkYXRlTW9yZVRleHR1cmVzKQoreworICAgIEZha2VDQ1Ro
cmVhZCB0aHJlYWQ7CisKKyAgICBzZXRNYXhVcGxvYWRDb3VudFBlclVwZGF0ZSgxKTsKKyAgICBh
cHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMyk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9h
ZHNUb1VwZGF0ZVF1ZXVlKDApOworCisgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxU
aHJlYWQ7CisgICAgT3duUHRyPEZha2VDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyPiBjb250cm9s
bGVyKEZha2VDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUoJnRocmVhZCwgbV9xdWV1
ZS5yZWxlYXNlKCksIG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxv
YWRlcikpOworCisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KDApOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoMC4xKTsKKyAg
ICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNTaXplKDEpOworICAgIC8vIE5vdCBl
bm91Z2ggdGltZSBmb3IgYW55IHVwZGF0ZXMuCisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRl
eHR1cmVzKDAuMDkpOworICAgIEVYUEVDVF9GQUxTRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7
CisgICAgRVhQRUNUX0VRKDAsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMCwg
bV9udW1FbmRVcGxvYWRzKTsKKworICAgIHRocmVhZC5yZXNldCgpOworICAgIGNvbnRyb2xsZXIt
PnNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgwKTsKKyAgICBjb250cm9sbGVyLT5zZXRV
cGRhdGVNb3JlVGV4dHVyZXNUaW1lKDAuMSk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9y
ZVRleHR1cmVzU2l6ZSgxKTsKKyAgICAvLyBPbmx5IGVub3VnaCB0aW1lIGZvciAxIHVwZGF0ZS4K
KyAgICBjb250cm9sbGVyLT51cGRhdGVNb3JlVGV4dHVyZXMoMC4xMik7CisgICAgRVhQRUNUX1RS
VUUodGhyZWFkLmhhc1BlbmRpbmdUYXNrKCkpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25p
Y2FsbHlJbmNyZWFzaW5nVGltZSh0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7Cisg
ICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5V
cGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMSwgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgbV9udW1Ub3RhbFVwbG9hZHMpOworCisgICAgdGhyZWFkLnJlc2V0KCk7CisgICAgY29u
dHJvbGxlci0+c2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKDApOworICAgIGNvbnRyb2xs
ZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoMC4xKTsKKyAgICBjb250cm9sbGVyLT5zZXRV
cGRhdGVNb3JlVGV4dHVyZXNTaXplKDEpOworICAgIC8vIEVub3VnaCB0aW1lIGZvciAyIHVwZGF0
ZXMuCisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMjIpOworICAgIEVYUEVD
VF9UUlVFKHRocmVhZC5oYXNQZW5kaW5nVGFzaygpKTsKKyAgICBjb250cm9sbGVyLT5zZXRNb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoY29udHJvbGxlci0+bW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCkgKyB0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhyZWFk
LnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VRKDMsIG1fbnVtQmVnaW5VcGxvYWRzKTsK
KyAgICBFWFBFQ1RfRVEoMywgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMywgbV9u
dW1Ub3RhbFVwbG9hZHMpOworfQorCitURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRl
c3QsIE5vTW9yZVVwZGF0ZXMpCit7CisgICAgRmFrZUNDVGhyZWFkIHRocmVhZDsKKworICAgIHNl
dE1heFVwbG9hZENvdW50UGVyVXBkYXRlKDEpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRh
dGVRdWV1ZSgyKTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMCk7CisK
KyAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKKyAgICBPd25QdHI8RmFr
ZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNvbnRyb2xsZXIoRmFrZUNDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXI6OmNyZWF0ZSgmdGhyZWFkLCBtX3F1ZXVlLnJlbGVhc2UoKSwgbV9yZXNvdXJj
ZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyKSk7CisKKyAgICBjb250cm9s
bGVyLT5zZXRNb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoMCk7CisgICAgY29udHJvbGxlci0+
c2V0VXBkYXRlTW9yZVRleHR1cmVzVGltZSgwLjEpOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0
ZU1vcmVUZXh0dXJlc1NpemUoMSk7CisgICAgLy8gRW5vdWdoIHRpbWUgZm9yIDMgdXBkYXRlcyBi
dXQgb25seSAyIG5lY2Vzc2FyeS4KKyAgICBjb250cm9sbGVyLT51cGRhdGVNb3JlVGV4dHVyZXMo
MC4zMSk7CisgICAgRVhQRUNUX1RSVUUodGhyZWFkLmhhc1BlbmRpbmdUYXNrKCkpOworICAgIGNv
bnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZShjb250cm9sbGVyLT5tb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSArIHRocmVhZC5wZW5kaW5nRGVsYXlNcygpIC8gMTAw
MC4wKTsKKyAgICB0aHJlYWQucnVuUGVuZGluZ1Rhc2soKTsKKyAgICBFWFBFQ1RfVFJVRSh0aHJl
YWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKGNvbnRyb2xsZXItPm1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICsg
dGhyZWFkLnBlbmRpbmdEZWxheU1zKCkgLyAxMDAwLjApOworICAgIHRocmVhZC5ydW5QZW5kaW5n
VGFzaygpOworICAgIEVYUEVDVF9FUSgyLCBtX251bUJlZ2luVXBsb2Fkcyk7CisgICAgRVhQRUNU
X0VRKDIsIG1fbnVtRW5kVXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtVG90YWxVcGxv
YWRzKTsKKworICAgIHRocmVhZC5yZXNldCgpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25p
Y2FsbHlJbmNyZWFzaW5nVGltZSgwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4
dHVyZXNUaW1lKDAuMSk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6
ZSgxKTsKKyAgICAvLyBFbm91Z2ggdGltZSBmb3IgdXBkYXRlcyBidXQgbm8gbW9yZSB1cGRhdGVz
IGxlZnQuCisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMzEpOworICAgIEVY
UEVDVF9GQUxTRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgRVhQRUNUX0VRKDIsIG1f
bnVtQmVnaW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMiwgbV9udW1FbmRVcGxvYWRzKTsKKyAg
ICBFWFBFQ1RfRVEoMiwgbV9udW1Ub3RhbFVwbG9hZHMpOworfQorCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157811</attachid>
            <date>2012-08-10 14:33:06 -0700</date>
            <delta_ts>2012-08-15 20:25:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84281-20120810143238.patch</filename>
            <type>text/plain</type>
            <size>26135</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTRiODE0MWU4MmRkYjZm
ZjI3OWYyNmU5NjYyOTY5OTFjODRlN2M2Yi4uMzRjMmNlYmQ3ZmQ0OGY1MTU4NjYzZGZlM2VkOGMz
ZDgxNWIyMDE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA4LTEwICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBT
Y2hlZHVsZSB0ZXh0dXJlIHVwbG9hZHMgYmFzZWQgb24gaGFyZC1jb2RlZCB0aW1lciBhbmQgdnN5
bmMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJv
dmUgaW50ZXJhY3Rpb24gYmV0d2VlbiB2c3luYyBhbmQgdGV4dHVyZSB1cGxvYWRzIGJ5IHBlcmZv
cm1pbmcKKyAgICAgICAgdXBsb2FkcyBpbiBzbWFsbGVyIGJhdGNoZXMgYW5kIHVzZSBhIGhhcmQt
Y29kZWQgdGltZXIgdG8gZW11bGF0ZQorICAgICAgICB1cGxvYWQgY29tcGxldGlvbi4gVGhpcyBn
cmVhdGx5IHJlZHVjZXMgdGhlIGNoYW5jZSBvZiB0aGUgY29tcG9zaXRvcgorICAgICAgICBtaXNz
aW5nIGEgdnN5bmMgZHVlIHRvIGJlaW5nIGJ1c3kgd2l0aCB0ZXh0dXJlIHVwbG9hZHMuCisKKyAg
ICAgICAgVGhlIENDU2NoZWR1bGVyIGNsaWVudCBpcyBub3cgZ2l2ZW4gYSB0aW1lIGxpbWl0IHdo
ZW4gdG9sZCB0byB1cGRhdGUKKyAgICAgICAgbW9yZSByZXNvdXJjZXMuIFRoaXMgdGltZSBsaW1p
dCBpcyBwYXNzZWQgdG8gYW4gaW5zdGFuY2Ugb2YgdGhlCisgICAgICAgIENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXIgY2xhc3MsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciBwZXJmb3JtaW5nCisg
ICAgICAgIHRleHR1cmUgdXBkYXRlcyB1bnRpbCB0aGUgbGltaXQgaXMgcmVhY2hlZC4KKworICAg
ICAgICBVbml0IHRlc3RzOiBDQ1NjaGVkdWxlclRlc3QuUmVxdWVzdENvbW1pdAorICAgICAgICAg
ICAgICAgICAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5VcGRhdGVNb3JlVGV4dHVy
ZXMKKyAgICAgICAgICAgICAgICAgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuSGFz
TW9yZVVwZGF0ZXMKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RnJhbWVSYXRlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6Om5leHRUaWNrVGltZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKENDRnJhbWVSYXRlQ29udHJvbGxlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NTY2hl
ZHVsZXI6OnByb2Nlc3NTY2hlZHVsZWRBY3Rpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oOgorICAgICAgICAoQ0NTY2hlZHVsZXJDbGll
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6bWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1
cmVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlcjo6b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXI6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXNU
aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0
ZU1vcmVUZXh0dXJlc1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzSWZFbm91Z2hUaW1lUmVtYWluaW5nKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVh
dGUpOgorICAgICAgICAoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQ29tcGxldGVPbkltcGxUaHJlYWQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9y
ZVJlc291cmNlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aHJlYWRQcm94eS5oOgorCiAyMDEyLTA4LTEwICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNo
ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBCcm9rZW4gaW1wbGVtZW50YXRpb24gb2Yg
QXRrVGV4dCBhbmQgQXRrRWRpdGFibGVUZXh0IGZvciBwYXNzd29yZCBmaWVsZHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggYTc4MTgxZjE0ZGFmZTc4MTU1NGRlY2VkMWY0YmM2OTZiZWY2
ZmViNC4uOWU1MDdmMzJiMDFmNjM4ZGI1NTZkZmU5Y2QzMDYxNzI1ZjE3YTNjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOC0xMCAgRGF2aWQgUmV2
ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gU2NoZWR1
bGUgdGV4dHVyZSB1cGxvYWRzIGJhc2VkIG9uIGhhcmQtY29kZWQgdGltZXIgYW5kIHZzeW5jLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyODEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0ND
U2NoZWR1bGVyVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXRUZXN0czo6VEVTVCk6CisgICAgICAg
ICogdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmg6CisgICAgICAgIChXZWJLaXRUZXN0czo6
RmFrZUNDVGltZVNvdXJjZTo6RmFrZUNDVGltZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXRUZXN0
czo6RmFrZUNDVGltZVNvdXJjZTo6c2V0TmV4dFRpY2tUaW1lKToKKyAgICAgICAgKEZha2VDQ1Rp
bWVTb3VyY2UpOgorICAgICAgICAqIHRlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0
LmNwcDoKKwogMjAxMi0wOC0xMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNTMxMC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJh
bWVSYXRlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwCmluZGV4IGI1MmZiNWY2ZjFmZDUz
ZTVhMWNjZmYzMmUzMDk3YWM4OWU3YTljZGQuLmFhMjIwM2Y3YWYwZjhmMGZiNjM4Njg5NDEwN2Nl
YzUzNWY4OWIyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNw
cApAQCAtMTQ3LDQgKzE0Nyw5IEBAIHZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpkaWRBYm9y
dEFsbFBlbmRpbmdGcmFtZXMoKQogICAgIG1fbnVtRnJhbWVzUGVuZGluZyA9IDA7CiB9CiAKK2Rv
dWJsZSBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6Om5leHRUaWNrVGltZSgpCit7CisgICAgcmV0dXJu
IG1fdGltZVNvdXJjZS0+bmV4dFRpY2tUaW1lKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NG
cmFtZVJhdGVDb250cm9sbGVyLmgKaW5kZXggNjljOTAzN2UyM2FlZDE2ZmIyMjgwMzcyMjc5MDli
ZGMxMTcxZWFkOS4uNTNhNzRjZDdhMGIyNWQ1Y2FkZGYxY2MzNWEzNzM1ODQwMjA1MTE0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NG
cmFtZVJhdGVDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmgKQEAgLTY4LDYgKzY4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkRmluaXNoRnJhbWUoKTsKICAgICB2b2lkIGRpZEFib3J0QWxs
UGVuZGluZ0ZyYW1lcygpOwogICAgIHZvaWQgc2V0TWF4RnJhbWVzUGVuZGluZyhpbnQpOyAvLyAw
IGZvciB1bmxpbWl0ZWQuCisgICAgZG91YmxlIG5leHRUaWNrVGltZSgpOwogCiAgICAgdm9pZCBz
ZXRUaW1lYmFzZUFuZEludGVydmFsKGRvdWJsZSB0aW1lYmFzZSwgZG91YmxlIGludGVydmFsU2Vj
b25kcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcAppbmRleCAyYzFiNTA1M2M1NDNhMGEzODI5
ZWEwZTkyNTU4ZmMyN2NkYTdjYzllLi5iYjIzNzI4NWQ2ZTA2ZGYzODBiMzQ1ZTI0YjliZTI1YzFh
MzJlYmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwCkBAIC0xNzMsMTYgKzE3MywxMSBAQCB2
b2lkIENDU2NoZWR1bGVyOjpwcm9jZXNzU2NoZWR1bGVkQWN0aW9ucygpCiAgICAgICAgICAgICBt
X2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERB
VEVfTU9SRV9SRVNPVVJDRVM6Ci0gICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9u
VXBkYXRlTW9yZVJlc291cmNlcygpOwotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC0+aGFzTW9y
ZVJlc291cmNlVXBkYXRlcygpKSB7Ci0gICAgICAgICAgICAgICAgLy8gSWYgd2Ugd2VyZSBqdXN0
IHRvbGQgdG8gdXBkYXRlIHJlc291cmNlcywgYnV0IHRoZXJlIGFyZSBubwotICAgICAgICAgICAg
ICAgIC8vIG1vcmUgcGVuZGluZywgdGhlbiB0ZWxsIHRoZSBzdGF0ZSBtYWNoaW5lIHRoYXQgdGhl
Ci0gICAgICAgICAgICAgICAgLy8gYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzIGNvbXBsZXRlZC4g
SWYgbW9yZSBhcmUgcGVuZGluZywKLSAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIHdpbGwgYWNr
IHRoZSB1cGRhdGUgYXQgdGhlIG5leHQgZHJhdy4KLSAgICAgICAgICAgICAgICBtX3VwZGF0ZU1v
cmVSZXNvdXJjZXNQZW5kaW5nID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgbV9zdGF0ZU1hY2hp
bmUuYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoZmFsc2UpOwotICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBpZiAobV9jbGllbnQtPmhhc01vcmVSZXNvdXJjZVVwZGF0ZXMo
KSkgeworICAgICAgICAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3Jl
UmVzb3VyY2VzKG1fZnJhbWVSYXRlQ29udHJvbGxlci0+bmV4dFRpY2tUaW1lKCkpOwogICAgICAg
ICAgICAgICAgIG1fdXBkYXRlTW9yZVJlc291cmNlc1BlbmRpbmcgPSB0cnVlOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbV9zdGF0ZU1hY2hpbmUuYmVnaW5VcGRhdGVNb3Jl
UmVzb3VyY2VzQ29tcGxldGUoZmFsc2UpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9DT01NSVQ6CiAgICAgICAgICAgICBt
X2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuaAppbmRl
eCBhN2Q4YjAzMzA2MTZjM2M4NDlkMTY1ZmU0MDJkNTI0NmUyN2MzMjRiLi5lZjgxMDE0ZDJhZjBl
MzYyMGJlYmM1NjBhOTAxY2RlMjQ4OWE0NDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdp
bkZyYW1lKCkgPSAwOwogICAgIHZpcnR1YWwgQ0NTY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJl
c3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcElmUG9zc2libGUoKSA9IDA7CiAgICAgdmly
dHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRy
YXdBbmRTd2FwRm9yY2VkKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25V
cGRhdGVNb3JlUmVzb3VyY2VzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rp
b25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSBtb25vdG9uaWNUaW1lTGltaXQpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0aW9uKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25BY3F1aXJlTGF5ZXJUZXh0dXJlc0Zvck1haW5UaHJl
YWQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIu
Y3BwCmluZGV4IGRkZTg5NDk1MDQ2OTlkNzgwYjJlMTA5YThhOGI0MjQ5MWRmOWYwM2EuLjIxZGEy
MWRlOGI0M2RiYTA0NTFmMDA4YmIyMTA0YzcyNzE4OTc2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3BwCkBAIC0zNCw4ICszNCwxMSBAQAogCiBu
YW1lc3BhY2UgewogCi0vLyBOdW1iZXIgb2YgdGV4dHVyZXMgdG8gdXBkYXRlIHdpdGggZWFjaCBj
YWxsIHRvIHVwZGF0ZU1vcmVUZXh0dXJlcygpLgotc3RhdGljIGNvbnN0IHNpemVfdCB0ZXh0dXJl
VXBkYXRlc1BlckZyYW1lID0gNDg7CisvLyBOdW1iZXIgb2YgdGV4dHVyZXMgdG8gdXBkYXRlIHdp
dGggZWFjaCBjYWxsIHRvIHVwZGF0ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZygp
Lgorc3RhdGljIGNvbnN0IHNpemVfdCB0ZXh0dXJlVXBkYXRlc1BlclRpY2sgPSAxMjsKKworLy8g
TWVhc3VyZWQgaW4gc2Vjb25kcy4KK3N0YXRpYyBjb25zdCBkb3VibGUgdGV4dHVyZVVwZGF0ZVRp
Y2tSYXRlID0gMC4wMDQ7CiAKIC8vIEZsdXNoIGludGVydmFsIHdoZW4gcGVyZm9ybWluZyB0ZXh0
dXJlIHVwbG9hZHMuCiBzdGF0aWMgY29uc3QgaW50IHRleHR1cmVVcGxvYWRGbHVzaFBlcmlvZCA9
IDQ7CkBAIC00Niw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc2l6ZV90IENDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Om1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcygpCiB7Ci0gICAg
cmV0dXJuIHRleHR1cmVVcGRhdGVzUGVyRnJhbWU7CisgICAgcmV0dXJuIHRleHR1cmVVcGRhdGVz
UGVyVGljazsKIH0KIAogdm9pZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0
dXJlcyhDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZXIq
IGNvcGllciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRlciwgQ0NUZXh0dXJlVXBkYXRlUXVldWUq
IHF1ZXVlLCBzaXplX3QgY291bnQpCkBAIC0xMTAsMTEgKzExMywxMyBAQCB2b2lkIENDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQcm92aWRlciogcmVz
b3VyY2VQcm92aQogICAgICAgICBjb3BpZXItPmZsdXNoKCk7CiB9CiAKLUNDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoUGFzc093blB0cjxDQ1RleHR1
cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRl
ciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQotICAg
IDogbV9xdWV1ZShxdWV1ZSkKK0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXIoQ0NUaHJlYWQqIHRocmVhZCwgUGFzc093blB0cjxDQ1RleHR1cmVVcGRh
dGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4
dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQorICAgIDogbV90
aW1lcihhZG9wdFB0cihuZXcgQ0NUaW1lcih0aHJlYWQsIHRoaXMpKSkKKyAgICAsIG1fcXVldWUo
cXVldWUpCiAgICAgLCBtX3Jlc291cmNlUHJvdmlkZXIocmVzb3VyY2VQcm92aWRlcikKICAgICAs
IG1fY29waWVyKGNvcGllcikKICAgICAsIG1fdXBsb2FkZXIodXBsb2FkZXIpCisgICAgLCBtX21v
bm90b25pY1RpbWVMaW1pdCgwKQogewogfQogCkBAIC0xMjcsMTcgKzEzMiw0MiBAQCBib29sIEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Omhhc01vcmVVcGRhdGVzKCkgY29uc3QKICAgICByZXR1
cm4gbV9xdWV1ZS0+aGFzTW9yZVVwZGF0ZXMoKTsKIH0KIAotdm9pZCBDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXMoKQordm9pZCBDQ1RleHR1cmVVcGRhdGVDb250
cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXMoZG91YmxlIG1vbm90b25pY1RpbWVMaW1pdCkKIHsK
LSAgICBpZiAoIW1fcXVldWUtPmhhc01vcmVVcGRhdGVzKCkpCi0gICAgICAgIHJldHVybjsKKyAg
ICBtX21vbm90b25pY1RpbWVMaW1pdCA9IG1vbm90b25pY1RpbWVMaW1pdDsKKyAgICB1cGRhdGVN
b3JlVGV4dHVyZXNJZkVub3VnaFRpbWVSZW1haW5pbmcoKTsKK30KKwordm9pZCBDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyOjpvblRpbWVyRmlyZWQoKQoreworICAgIHVwZGF0ZU1vcmVUZXh0dXJl
c0lmRW5vdWdoVGltZVJlbWFpbmluZygpOworfQorCitkb3VibGUgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKK30KIAotICAgIHVwZGF0ZVRl
eHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlciwgbV9jb3BpZXIsIG1fdXBsb2FkZXIsIG1fcXVldWUu
Z2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7Citkb3VibGUgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzVGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHRleHR1cmVVcGRhdGVUaWNrUmF0ZTsKIH0KIAogc2l6ZV90IENDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXI6OnVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSBjb25zdAogewotICAgIHJldHVybiB0ZXh0
dXJlVXBkYXRlc1BlckZyYW1lOworICAgIHJldHVybiB0ZXh0dXJlVXBkYXRlc1BlclRpY2s7Cit9
CisKK3ZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzSWZF
bm91Z2hUaW1lUmVtYWluaW5nKCkKK3sKKyAgICBpZiAoIW1fcXVldWUtPmhhc01vcmVVcGRhdGVz
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgaGFzVGltZVJlbWFpbmluZyA9IG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIDwgbV9tb25vdG9uaWNUaW1lTGltaXQgLSB1cGRhdGVN
b3JlVGV4dHVyZXNUaW1lKCk7CisgICAgaWYgKGhhc1RpbWVSZW1haW5pbmcpIHsKKyAgICAgICAg
bV90aW1lci0+c3RhcnRPbmVTaG90KHVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoKSk7CisgICAgICAg
IHVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlciwgbV9jb3BpZXIsIG1fdXBsb2FkZXIs
IG1fcXVldWUuZ2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7CisgICAgfQogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmgKaW5kZXggYmQy
YzdiYzgyNzFkYWU4OTg5YmZmMzcwZTMwOTE0MjQyZDZhNmNmMS4uYzQwZWI1OTc1MGMxMjJlZmE4
NWNlNjBiN2E1MTcyZGUwNmFkNzAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBDQ1RleHR1cmVVcGRh
dGVDb250cm9sbGVyX2gKIAogI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVlLmgiCisj
aW5jbHVkZSAiY2MvQ0NUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIApAQCAtMzUsMTIgKzM2LDEyIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIFRleHR1cmVDb3BpZXI7CiBjbGFzcyBUZXh0dXJlVXBsb2FkZXI7CiAKLWNs
YXNzIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIgeworY2xhc3MgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlciA6IHB1YmxpYyBDQ1RpbWVyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093
blB0cjxDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyPiBjcmVhdGUoUGFzc093blB0cjxDQ1RleHR1
cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRl
ciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQorICAg
IHN0YXRpYyBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNyZWF0ZShDQ1Ro
cmVhZCogdGhyZWFkLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwgQ0NS
ZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIs
IFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIocXVldWUsIHJlc291cmNlUHJvdmlkZXIs
IGNvcGllciwgdXBsb2FkZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1RleHR1
cmVVcGRhdGVDb250cm9sbGVyKHRocmVhZCwgcXVldWUsIHJlc291cmNlUHJvdmlkZXIsIGNvcGll
ciwgdXBsb2FkZXIpKTsKICAgICB9CiAgICAgc3RhdGljIHNpemVfdCBtYXhQYXJ0aWFsVGV4dHVy
ZVVwZGF0ZXMoKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVUZXh0dXJlcyhDQ1Jlc291cmNlUHJv
dmlkZXIqLCBUZXh0dXJlQ29waWVyKiwgVGV4dHVyZVVwbG9hZGVyKiwgQ0NUZXh0dXJlVXBkYXRl
UXVldWUqLCBzaXplX3QgY291bnQpOwpAQCAtNDgsMTggKzQ5LDI3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKCk7CiAKICAgICBib29sIGhhc01vcmVV
cGRhdGVzKCkgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVNb3JlVGV4dHVyZXMoKTsKKyAgICB2b2lk
IHVwZGF0ZU1vcmVUZXh0dXJlcyhkb3VibGUgbW9ub3RvbmljVGltZUxpbWl0KTsKKworICAgIC8v
IENDVGltZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIG9uVGltZXJG
aXJlZCgpIE9WRVJSSURFOwogCiAgICAgLy8gVmlydHVhbCBmb3IgdGVzdGluZy4KKyAgICB2aXJ0
dWFsIGRvdWJsZSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGRvdWJsZSB1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCBz
aXplX3QgdXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAg
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVl
PiwgQ0NSZXNvdXJjZVByb3ZpZGVyKiwgVGV4dHVyZUNvcGllciosIFRleHR1cmVVcGxvYWRlciop
OworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoQ0NUaHJlYWQqLCBQYXNzT3duUHRyPEND
VGV4dHVyZVVwZGF0ZVF1ZXVlPiwgQ0NSZXNvdXJjZVByb3ZpZGVyKiwgVGV4dHVyZUNvcGllcios
IFRleHR1cmVVcGxvYWRlciopOworCisgICAgdm9pZCB1cGRhdGVNb3JlVGV4dHVyZXNJZkVub3Vn
aFRpbWVSZW1haW5pbmcoKTsKIAorICAgIE93blB0cjxDQ1RpbWVyPiBtX3RpbWVyOwogICAgIE93
blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gbV9xdWV1ZTsKICAgICBDQ1Jlc291cmNlUHJvdmlk
ZXIqIG1fcmVzb3VyY2VQcm92aWRlcjsKICAgICBUZXh0dXJlQ29waWVyKiBtX2NvcGllcjsKICAg
ICBUZXh0dXJlVXBsb2FkZXIqIG1fdXBsb2FkZXI7CisgICAgZG91YmxlIG1fbW9ub3RvbmljVGlt
ZUxpbWl0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAppbmRleCBkMzcxNjhm
MTEwYTdhOTZiMTg5ZDAxMTgwZGNjZjg5ZGRkN2EwZmMyLi4zZTgyMDIwYWRiYmFjOTY3NDdiNGE2
ZTQzMjVlNDczZjNjYjQwZWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcApAQCAtNTY2
LDcgKzU2Niw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBs
VGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29udHJvbGxlck9uSW1wbFRocmVhZCA9
IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZShxdWV1ZSwgbV9sYXllclRyZWVIb3N0
SW1wbC0+cmVzb3VyY2VQcm92aWRlcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRl
cmVyKCktPnRleHR1cmVDb3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJl
cigpLT50ZXh0dXJlVXBsb2FkZXIoKSk7CisgICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXJPbkltcGxUaHJlYWQgPSBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUoQ0NQ
cm94eTo6aW1wbFRocmVhZCgpLCBxdWV1ZSwgbV9sYXllclRyZWVIb3N0SW1wbC0+cmVzb3VyY2VQ
cm92aWRlcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVD
b3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlVXBs
b2FkZXIoKSk7CiAgICAgbV9jb21taXRDb21wbGV0aW9uRXZlbnRPbkltcGxUaHJlYWQgPSBjb21w
bGV0aW9uOwogCiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPmJlZ2luRnJhbWVDb21wbGV0
ZSgpOwpAQCAtNTk3LDExICs1OTcsMTEgQEAgYm9vbCBDQ1RocmVhZFByb3h5OjpjYW5EcmF3KCkK
ICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0SW1wbC0+Y2FuRHJhdygpOwogfQogCi12b2lkIEND
VGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKQordm9pZCBD
Q1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSBt
b25vdG9uaWNUaW1lTGltaXQpCiB7CiAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJDQ1RocmVhZFBy
b3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIik7CiAgICAgQVNTRVJUKG1f
Y3VycmVudFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkKTsKLSAgICBtX2N1cnJl
bnRUZXh0dXJlVXBkYXRlQ29udHJvbGxlck9uSW1wbFRocmVhZC0+dXBkYXRlTW9yZVRleHR1cmVz
KCk7CisgICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJPbkltcGxUaHJlYWQtPnVw
ZGF0ZU1vcmVUZXh0dXJlcyhtb25vdG9uaWNUaW1lTGltaXQpOwogfQogCiB2b2lkIENDVGhyZWFk
UHJveHk6OnNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5k
ZXggMzQzNjBkNTFhNWNmNDRiZTBhYWRjMGVjOTQ3M2ZjOTUwMjQ0NWY3My4uN2M2ODRlNjI0NDgw
MDQ0MTcyYzQwNjJkNGIyYTk5N2Q5YzA2MDg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApA
QCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlv
bkJlZ2luRnJhbWUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0aW9uRHJh
d0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJZlBvc3NpYmxlKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNj
aGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwRm9yY2VkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyhkb3VibGUgbW9u
b3RvbmljVGltZUxpbWl0KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0
aW9uQ29tbWl0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJl
Z2luQ29udGV4dFJlY3JlYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVkQWN0aW9uQWNxdWlyZUxheWVyVGV4dHVyZXNGb3JNYWluVGhyZWFkKCkgT1ZFUlJJREU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHAKaW5k
ZXggNDEyNTA4ODRiZjRkYTAyZTVhNmEwMGRiZmQ4YzE2ODVmNDYyNGZlYy4uODQ4YTU4NjQ2ODFj
YzA1MzI3YWZmMGZmOTkzNDYxNGZiYWI2ZTFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0LmNwcApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0KHRydWUs
IG1fc3dhcFdpbGxIYXBwZW5JZkRyYXdIYXBwZW5zKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpIE9WRVJSSURFIHsgbV9hY3Rp
b25zLnB1c2hfYmFjaygic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoZG91Ymxl
KSBPVkVSUklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFjdGlvblVwZGF0ZU1v
cmVSZXNvdXJjZXMiKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25Db21taXQo
KSBPVkVSUklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFjdGlvbkNvbW1pdCIp
OyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4dFJlY3JlYXRp
b24oKSBPVkVSUklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFjdGlvbkJlZ2lu
Q29udGV4dFJlY3JlYXRpb24iKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25B
Y3F1aXJlTGF5ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQoKSBPVkVSUklERSB7IG1fYWN0aW9ucy5w
dXNoX2JhY2soInNjaGVkdWxlZEFjdGlvbkFjcXVpcmVMYXllclRleHR1cmVzRm9yTWFpblRocmVh
ZCIpOyB9CkBAIC0xMTQsMTIgKzExNCwxMCBAQCBURVNUKENDU2NoZWR1bGVyVGVzdCwgUmVxdWVz
dENvbW1pdCkKICAgICBjbGllbnQucmVzZXQoKTsKIAogICAgIC8vIFNpbmNlLCBoYXNNb3JlUmVz
b3VyY2VVcGRhdGVzIGlzIHNldCB0byBmYWxzZSwKLSAgICAvLyBiZWdpbkZyYW1lQ29tcGxldGUg
c2hvdWxkIHVwZGF0ZU1vcmVSZXNvdXJjZXMsIHRoZW4KLSAgICAvLyBjb21taXQKKyAgICAvLyBi
ZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxkIGNvbW1pdAogICAgIHNjaGVkdWxlci0+YmVnaW5GcmFt
ZUNvbXBsZXRlKCk7Ci0gICAgRVhQRUNUX0VRKDIsIGNsaWVudC5udW1BY3Rpb25zKCkpOwotICAg
IEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIGNsaWVu
dC5hY3Rpb24oMCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0Iiwg
Y2xpZW50LmFjdGlvbigxKSk7CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5udW1BY3Rpb25zKCkp
OworICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlv
bigwKSk7CiAgICAgRVhQRUNUX1RSVUUodGltZVNvdXJjZS0+YWN0aXZlKCkpOwogICAgIGNsaWVu
dC5yZXNldCgpOwogCkBAIC0xNTIsMTIgKzE1MCwxMCBAQCBURVNUKENDU2NoZWR1bGVyVGVzdCwg
UmVxdWVzdENvbW1pdEFmdGVyQmVnaW5GcmFtZSkKICAgICBzY2hlZHVsZXItPnNldE5lZWRzQ29t
bWl0KCk7CiAKICAgICAvLyBTaW5jZSwgaGFzTW9yZVJlc291cmNlVXBkYXRlcyBpcyBzZXQgdG8g
ZmFsc2UsIGFuZCBhbm90aGVyIGNvbW1pdCBpcwotICAgIC8vIG5lZWRlZCwgYmVnaW5GcmFtZUNv
bXBsZXRlIHNob3VsZCB1cGRhdGVNb3JlUmVzb3VyY2VzLCB0aGVuIGNvbW1pdCwgdGhlbgotICAg
IC8vIGJlZ2luIGFub3RoZXIgZnJhbWUuCisgICAgLy8gbmVlZGVkLCBiZWdpbkZyYW1lQ29tcGxl
dGUgc2hvdWxkIGNvbW1pdCwgdGhlbiBiZWdpbiBhbm90aGVyIGZyYW1lLgogICAgIHNjaGVkdWxl
ci0+YmVnaW5GcmFtZUNvbXBsZXRlKCk7Ci0gICAgRVhQRUNUX0VRKDIsIGNsaWVudC5udW1BY3Rp
b25zKCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291
cmNlcyIsIGNsaWVudC5hY3Rpb24oMCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0
aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigxKSk7CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5u
dW1BY3Rpb25zKCkpOworICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0Iiwg
Y2xpZW50LmFjdGlvbigwKSk7CiAgICAgY2xpZW50LnJlc2V0KCk7CiAKICAgICAvLyBUaWNrIHNo
b3VsZCBkcmF3IGJ1dCB0aGVuIGJlZ2luIGFub3RoZXIgZnJhbWUuCkBAIC0yNTcsNyArMjUzLDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gQ0NTY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJl
c3VsdCh0cnVlLCB0cnVlKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0
aW9uVXBkYXRlTW9yZVJlc291cmNlcygpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSkgT1ZFUlJJREUgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpIE9WRVJSSURFIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0aW9uKCkgT1ZF
UlJJREUgeyB9CiAKQEAgLTM1Nyw3ICszNTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBD
Q1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0KHRydWUsIHRydWUpOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgT1ZF
UlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNv
dXJjZXMoZG91YmxlKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0
aW9uQ29tbWl0KCkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlv
bkJlZ2luQ29udGV4dFJlY3JlYXRpb24oKSBPVkVSUklERSB7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3RDb21tb24uaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmgKaW5kZXggYmVi
MTY1NTRkMTczYTE5YjI2OWI1MzVhN2Y5MzAwN2MxNjdlMmZkOS4uZDlkZDVlNTI5ZmEyOTMxZDJk
MWRhZWU2MmY0ZTBhMDFiYWRlNzQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3RDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oCkBAIC05Niw2ICs5Niw3IEBAIGNsYXNz
IEZha2VDQ1RpbWVTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6Q0NUaW1lU291cmNlIHsKIHB1Ymxp
YzoKICAgICBGYWtlQ0NUaW1lU291cmNlKCkKICAgICAgICAgOiBtX2FjdGl2ZShmYWxzZSkKKyAg
ICAgICAgLCBtX25leHRUaWNrVGltZSgwKQogICAgICAgICAsIG1fY2xpZW50KDApIHsgfQogCiAg
ICAgdmlydHVhbCB+RmFrZUNDVGltZVNvdXJjZSgpIHsgfQpAQCAtMTE0LDggKzExNSwxMSBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBtX2NsaWVudC0+b25UaW1lclRpY2soKTsKICAgICB9CiAKKyAg
ICB2b2lkIHNldE5leHRUaWNrVGltZShkb3VibGUgbmV4dFRpY2tUaW1lKSB7IG1fbmV4dFRpY2tU
aW1lID0gbmV4dFRpY2tUaW1lOyB9CisKIHByb3RlY3RlZDoKICAgICBib29sIG1fYWN0aXZlOwor
ICAgIGRvdWJsZSBtX25leHRUaWNrVGltZTsKICAgICBXZWJDb3JlOjpDQ1RpbWVTb3VyY2VDbGll
bnQqIG1fY2xpZW50OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcAppbmRleCBhMGRj
MmVjMWY5MzY4MTI3OTc2ZjE2MzRlMDIzMWVhMjdlMWYyNmYwLi4wZWEwY2ZmMmM5NjFiYzJjYzdh
YWZmNmFhN2QzMTA5MWVjODQxNzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcApAQCAt
NTQyLDQgKzU0MiwxMTUgQEAgVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBU
cmlwbGVVcGRhdGVGaW5hbFVwZGF0ZUFsbFBhcnRpYWwpCiAgICAgRVhQRUNUX0VRKGtGdWxsVXBs
b2FkcyArIGtQYXJ0aWFsVXBsb2FkcywgbV9udW1Ub3RhbFVwbG9hZHMpOwogfQogCitjbGFzcyBG
YWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlciA6IHB1YmxpYyBXZWJDb3JlOjpDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxGYWtlQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlcj4gY3JlYXRlKFdlYkNvcmU6OkNDVGhyZWFkKiB0aHJlYWQs
IFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+IHF1ZXVlLCBDQ1Jlc291cmNlUHJvdmlk
ZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZXIqIGNvcGllciwgVGV4dHVyZVVwbG9h
ZGVyKiB1cGxvYWRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmFrZUND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIodGhyZWFkLCBxdWV1ZSwgcmVzb3VyY2VQcm92aWRlciwg
Y29waWVyLCB1cGxvYWRlcikpOworICAgIH0KKworICAgIHZvaWQgc2V0TW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKGRvdWJsZSB0aW1lKSB7IG1fbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
ID0gdGltZTsgfQorICAgIHZpcnR1YWwgZG91YmxlIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
OyB9CisgICAgdm9pZCBzZXRVcGRhdGVNb3JlVGV4dHVyZXNUaW1lKGRvdWJsZSB0aW1lKSB7IG1f
dXBkYXRlTW9yZVRleHR1cmVzVGltZSA9IHRpbWU7IH0KKyAgICB2aXJ0dWFsIGRvdWJsZSB1cGRh
dGVNb3JlVGV4dHVyZXNUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV91cGRhdGVNb3Jl
VGV4dHVyZXNUaW1lOyB9CisgICAgdm9pZCBzZXRVcGRhdGVNb3JlVGV4dHVyZXNTaXplKHNpemVf
dCBzaXplKSB7IG1fdXBkYXRlTW9yZVRleHR1cmVzU2l6ZSA9IHNpemU7IH0KKyAgICB2aXJ0dWFs
IHNpemVfdCB1cGRhdGVNb3JlVGV4dHVyZXNTaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV91cGRhdGVNb3JlVGV4dHVyZXNTaXplOyB9CisKK3Byb3RlY3RlZDoKKyAgICBGYWtlQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlcihXZWJDb3JlOjpDQ1RocmVhZCogdGhyZWFkLCBQYXNzT3duUHRy
PENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJj
ZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2Fk
ZXIpCisgICAgICAgIDogV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcih0aHJlYWQs
IHF1ZXVlLCByZXNvdXJjZVByb3ZpZGVyLCBjb3BpZXIsIHVwbG9hZGVyKQorICAgICAgICAsIG1f
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKDApCisgICAgICAgICwgbV91cGRhdGVNb3JlVGV4
dHVyZXNUaW1lKDApCisgICAgICAgICwgbV91cGRhdGVNb3JlVGV4dHVyZXNTaXplKDApIHsgfQor
CisgICAgZG91YmxlIG1fbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lOworICAgIGRvdWJsZSBt
X3VwZGF0ZU1vcmVUZXh0dXJlc1RpbWU7CisgICAgc2l6ZV90IG1fdXBkYXRlTW9yZVRleHR1cmVz
U2l6ZTsKK307CisKK1RFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgVXBkYXRl
TW9yZVRleHR1cmVzKQoreworICAgIEZha2VDQ1RocmVhZCB0aHJlYWQ7CisKKyAgICBzZXRNYXhV
cGxvYWRDb3VudFBlclVwZGF0ZSgxKTsKKyAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlUXVl
dWUoMyk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDApOworCisgICAg
RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CisgICAgT3duUHRyPEZha2VDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyPiBjb250cm9sbGVyKEZha2VDQ1RleHR1cmVVcGRhdGVDb250
cm9sbGVyOjpjcmVhdGUoJnRocmVhZCwgbV9xdWV1ZS5yZWxlYXNlKCksIG1fcmVzb3VyY2VQcm92
aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlcikpOworCisgICAgY29udHJvbGxlci0+
c2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKDApOworICAgIGNvbnRyb2xsZXItPnNldFVw
ZGF0ZU1vcmVUZXh0dXJlc1RpbWUoMC4xKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3Jl
VGV4dHVyZXNTaXplKDEpOworICAgIC8vIE5vdCBlbm91Z2ggdGltZSBmb3IgYW55IHVwZGF0ZXMu
CisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMDkpOworICAgIEVYUEVDVF9G
QUxTRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgRVhQRUNUX0VRKDAsIG1fbnVtQmVn
aW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMCwgbV9udW1FbmRVcGxvYWRzKTsKKworICAgIHRo
cmVhZC5yZXNldCgpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNUaW1lKDAuMSk7
CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgxKTsKKyAgICAvLyBP
bmx5IGVub3VnaCB0aW1lIGZvciAxIHVwZGF0ZS4KKyAgICBjb250cm9sbGVyLT51cGRhdGVNb3Jl
VGV4dHVyZXMoMC4xMik7CisgICAgRVhQRUNUX1RSVUUodGhyZWFkLmhhc1BlbmRpbmdUYXNrKCkp
OworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSh0aHJlYWQu
cGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7
CisgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMSwg
bV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMSwgbV9udW1Ub3RhbFVwbG9hZHMpOwor
CisgICAgdGhyZWFkLnJlc2V0KCk7CisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKDApOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1Rp
bWUoMC4xKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNTaXplKDEpOwor
ICAgIC8vIEVub3VnaCB0aW1lIGZvciAyIHVwZGF0ZXMuCisgICAgY29udHJvbGxlci0+dXBkYXRl
TW9yZVRleHR1cmVzKDAuMjIpOworICAgIEVYUEVDVF9UUlVFKHRocmVhZC5oYXNQZW5kaW5nVGFz
aygpKTsKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoY29u
dHJvbGxlci0+bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgKyB0aHJlYWQucGVuZGluZ0Rl
bGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQ
RUNUX0VRKDMsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMywgbV9udW1FbmRV
cGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMywgbV9udW1Ub3RhbFVwbG9hZHMpOworfQorCitURVNU
X0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE5vTW9yZVVwZGF0ZXMpCit7CisgICAg
RmFrZUNDVGhyZWFkIHRocmVhZDsKKworICAgIHNldE1heFVwbG9hZENvdW50UGVyVXBkYXRlKDEp
OworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZSgyKTsKKyAgICBhcHBlbmRQYXJ0
aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMCk7CisKKyAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJl
YWQgaW1wbFRocmVhZDsKKyAgICBPd25QdHI8RmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+
IGNvbnRyb2xsZXIoRmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZSgmdGhyZWFk
LCBtX3F1ZXVlLnJlbGVhc2UoKSwgbV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIs
ICZtX3VwbG9hZGVyKSk7CisKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoMCk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzVGltZSgw
LjEpOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoMSk7CisgICAg
Ly8gRW5vdWdoIHRpbWUgZm9yIDMgdXBkYXRlcyBidXQgb25seSAyIG5lY2Vzc2FyeS4KKyAgICBj
b250cm9sbGVyLT51cGRhdGVNb3JlVGV4dHVyZXMoMC4zMSk7CisgICAgRVhQRUNUX1RSVUUodGhy
ZWFkLmhhc1BlbmRpbmdUYXNrKCkpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZShjb250cm9sbGVyLT5tb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAr
IHRocmVhZC5wZW5kaW5nRGVsYXlNcygpIC8gMTAwMC4wKTsKKyAgICB0aHJlYWQucnVuUGVuZGlu
Z1Rhc2soKTsKKyAgICBFWFBFQ1RfVFJVRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAg
Y29udHJvbGxlci0+c2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGNvbnRyb2xsZXItPm1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICsgdGhyZWFkLnBlbmRpbmdEZWxheU1zKCkgLyAx
MDAwLjApOworICAgIHRocmVhZC5ydW5QZW5kaW5nVGFzaygpOworICAgIEVYUEVDVF9FUSgyLCBt
X251bUJlZ2luVXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtRW5kVXBsb2Fkcyk7Cisg
ICAgRVhQRUNUX0VRKDIsIG1fbnVtVG90YWxVcGxvYWRzKTsKKworICAgIHRocmVhZC5yZXNldCgp
OworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgwKTsKKyAg
ICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNUaW1lKDAuMSk7CisgICAgY29udHJv
bGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgxKTsKKyAgICAvLyBFbm91Z2ggdGltZSBm
b3IgdXBkYXRlcyBidXQgbm8gbW9yZSB1cGRhdGVzIGxlZnQuCisgICAgY29udHJvbGxlci0+dXBk
YXRlTW9yZVRleHR1cmVzKDAuMzEpOworICAgIEVYUEVDVF9GQUxTRSh0aHJlYWQuaGFzUGVuZGlu
Z1Rhc2soKSk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBFWFBF
Q1RfRVEoMiwgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMiwgbV9udW1Ub3RhbFVw
bG9hZHMpOworfQorCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158699</attachid>
            <date>2012-08-15 20:25:22 -0700</date>
            <delta_ts>2012-08-16 11:32:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84281-20120815232448.patch</filename>
            <type>text/plain</type>
            <size>27934</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjlkMmNkN2MzNzJmMTY4
MzYyZDFjN2Y4M2YyMzdmOGRmZTVmNzE1Ni4uNmE2NjU4Y2I5OTdlZGVlOWRiZjE3ZjBjYmVmY2Q3
YzhhOGM3NGI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA4LTE1ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBT
Y2hlZHVsZSB0ZXh0dXJlIHVwbG9hZHMgYmFzZWQgb24gaGFyZC1jb2RlZCB0aW1lciBhbmQgdnN5
bmMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJv
dmUgaW50ZXJhY3Rpb24gYmV0d2VlbiB2c3luYyBhbmQgdGV4dHVyZSB1cGxvYWRzIGJ5IHBlcmZv
cm1pbmcKKyAgICAgICAgdXBsb2FkcyBpbiBzbWFsbGVyIGJhdGNoZXMgYW5kIHVzZSBhIGhhcmQt
Y29kZWQgdGltZXIgdG8gZW11bGF0ZQorICAgICAgICB1cGxvYWQgY29tcGxldGlvbi4gVGhpcyBn
cmVhdGx5IHJlZHVjZXMgdGhlIGNoYW5jZSBvZiB0aGUgY29tcG9zaXRvcgorICAgICAgICBtaXNz
aW5nIGEgdnN5bmMgZHVlIHRvIGJlaW5nIGJ1c3kgd2l0aCB0ZXh0dXJlIHVwbG9hZHMuCisKKyAg
ICAgICAgVGhlIENDU2NoZWR1bGVyIGNsaWVudCBpcyBub3cgZ2l2ZW4gYSB0aW1lIGxpbWl0IHdo
ZW4gdG9sZCB0byB1cGRhdGUKKyAgICAgICAgbW9yZSByZXNvdXJjZXMuIFRoaXMgdGltZSBsaW1p
dCBpcyBwYXNzZWQgdG8gYW4gaW5zdGFuY2Ugb2YgdGhlCisgICAgICAgIENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXIgY2xhc3MsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciBwZXJmb3JtaW5nCisg
ICAgICAgIHRleHR1cmUgdXBkYXRlcyB1bnRpbCB0aGUgbGltaXQgaXMgcmVhY2hlZC4KKworICAg
ICAgICBVbml0IHRlc3RzOiBDQ1NjaGVkdWxlclRlc3QuUmVxdWVzdENvbW1pdAorICAgICAgICAg
ICAgICAgICAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5VcGRhdGVNb3JlVGV4dHVy
ZXMKKyAgICAgICAgICAgICAgICAgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuSGFz
TW9yZVVwZGF0ZXMKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RnJhbWVSYXRlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6Om5leHRUaWNrVGltZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKENDRnJhbWVSYXRlQ29udHJvbGxlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NTY2hl
ZHVsZXI6OnByb2Nlc3NTY2hlZHVsZWRBY3Rpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oOgorICAgICAgICAoQ0NTY2hlZHVsZXJDbGll
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6bWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1
cmVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlcjo6b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXI6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXNU
aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0
ZU1vcmVUZXh0dXJlc1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzSWZFbm91Z2hUaW1lUmVtYWluaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZU1vcmVUZXh0dXJl
c05vdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJl
VXBkYXRlQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25J
bXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFj
dGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaDoKKwogMjAxMi0wOC0xNSAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBBZGQgc29tZSBBU1NF
UlRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGIxZDE1NzcyZTM3ZGI4YjdlNTk2YmU0
MmNiYzc2MzE1ZGRhNzdkNGUuLmYzMGM1ZGI3MzYxZjU5NWRlNjU1ZGI4MDM3NTAyZjMyNTc5ZjQw
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDgt
MTUgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hy
b21pdW1dIFNjaGVkdWxlIHRleHR1cmUgdXBsb2FkcyBiYXNlZCBvbiBoYXJkLWNvZGVkIHRpbWVy
IGFuZCB2c3luYy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg0MjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB0ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0VGVzdHM6OlRF
U1QpOgorICAgICAgICAqIHRlc3RzL0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oOgorICAgICAgICAo
V2ViS2l0VGVzdHM6OkZha2VDQ1RpbWVTb3VyY2U6OkZha2VDQ1RpbWVTb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0VGVzdHM6OkZha2VDQ1RpbWVTb3VyY2U6OnNldE5leHRUaWNrVGltZSk6CisgICAg
ICAgIChGYWtlQ0NUaW1lU291cmNlKToKKyAgICAgICAgKiB0ZXN0cy9DQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyVGVzdC5jcHA6CisKIDIwMTItMDgtMTUgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogQWRkIHNvbWUgQVNTRVJUcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NG
cmFtZVJhdGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAKaW5kZXggZjE5YjM5ZWUzNmQ2
YjE0ZGZmNTRlMGZlN2Y1MGZkZjNiNGI0ZTllNS4uM2Y3NzBkOWY5Y2FjOWZhODI0OGMwN2EyYzc4
NmRiZThiOTg0MGIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIu
Y3BwCkBAIC0xNDcsNCArMTQ3LDEyIEBAIHZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpkaWRB
Ym9ydEFsbFBlbmRpbmdGcmFtZXMoKQogICAgIG1fbnVtRnJhbWVzUGVuZGluZyA9IDA7CiB9CiAK
K2RvdWJsZSBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6Om5leHRUaWNrVGltZSgpCit7CisgICAgaWYg
KG1faXNUaW1lU291cmNlVGhyb3R0bGluZykKKyAgICAgICAgcmV0dXJuIG1fdGltZVNvdXJjZS0+
bmV4dFRpY2tUaW1lKCk7CisKKyAgICByZXR1cm4gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaApp
bmRleCA2OWM5MDM3ZTIzYWVkMTZmYjIyODAzNzIyNzkwOWJkYzExNzFlYWQ5Li41M2E3NGNkN2Ew
YjI1ZDVjYWRkZjFjYzM1YTM3MzU4NDAyMDUxMTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1l
UmF0ZUNvbnRyb2xsZXIuaApAQCAtNjgsNiArNjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRG
aW5pc2hGcmFtZSgpOwogICAgIHZvaWQgZGlkQWJvcnRBbGxQZW5kaW5nRnJhbWVzKCk7CiAgICAg
dm9pZCBzZXRNYXhGcmFtZXNQZW5kaW5nKGludCk7IC8vIDAgZm9yIHVubGltaXRlZC4KKyAgICBk
b3VibGUgbmV4dFRpY2tUaW1lKCk7CiAKICAgICB2b2lkIHNldFRpbWViYXNlQW5kSW50ZXJ2YWwo
ZG91YmxlIHRpbWViYXNlLCBkb3VibGUgaW50ZXJ2YWxTZWNvbmRzKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hl
ZHVsZXIuY3BwCmluZGV4IDJjMWI1MDUzYzU0M2EwYTM4MjllYTBlOTI1NThmYzI3Y2RhN2NjOWUu
LmJiMjM3Mjg1ZDZlMDZkZjM4MGIzNDVlMjRiOWJlMjVjMWEzMmViZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Nj
aGVkdWxlci5jcHAKQEAgLTE3MywxNiArMTczLDExIEBAIHZvaWQgQ0NTY2hlZHVsZXI6OnByb2Nl
c3NTY2hlZHVsZWRBY3Rpb25zKCkKICAgICAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZWRBY3Rp
b25CZWdpbkZyYW1lKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDQ1NjaGVk
dWxlclN0YXRlTWFjaGluZTo6QUNUSU9OX0JFR0lOX1VQREFURV9NT1JFX1JFU09VUkNFUzoKLSAg
ICAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCk7
Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LT5oYXNNb3JlUmVzb3VyY2VVcGRhdGVzKCkpIHsK
LSAgICAgICAgICAgICAgICAvLyBJZiB3ZSB3ZXJlIGp1c3QgdG9sZCB0byB1cGRhdGUgcmVzb3Vy
Y2VzLCBidXQgdGhlcmUgYXJlIG5vCi0gICAgICAgICAgICAgICAgLy8gbW9yZSBwZW5kaW5nLCB0
aGVuIHRlbGwgdGhlIHN0YXRlIG1hY2hpbmUgdGhhdCB0aGUKLSAgICAgICAgICAgICAgICAvLyBi
ZWdpblVwZGF0ZU1vcmVSZXNvdXJjZXMgY29tcGxldGVkLiBJZiBtb3JlIGFyZSBwZW5kaW5nLAot
ICAgICAgICAgICAgICAgIC8vIHRoZW4gd2Ugd2lsbCBhY2sgdGhlIHVwZGF0ZSBhdCB0aGUgbmV4
dCBkcmF3LgotICAgICAgICAgICAgICAgIG1fdXBkYXRlTW9yZVJlc291cmNlc1BlbmRpbmcgPSBm
YWxzZTsKLSAgICAgICAgICAgICAgICBtX3N0YXRlTWFjaGluZS5iZWdpblVwZGF0ZU1vcmVSZXNv
dXJjZXNDb21wbGV0ZShmYWxzZSk7Ci0gICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGlm
IChtX2NsaWVudC0+aGFzTW9yZVJlc291cmNlVXBkYXRlcygpKSB7CisgICAgICAgICAgICAgICAg
bV9jbGllbnQtPnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMobV9mcmFtZVJhdGVD
b250cm9sbGVyLT5uZXh0VGlja1RpbWUoKSk7CiAgICAgICAgICAgICAgICAgbV91cGRhdGVNb3Jl
UmVzb3VyY2VzUGVuZGluZyA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
ICAgICBtX3N0YXRlTWFjaGluZS5iZWdpblVwZGF0ZU1vcmVSZXNvdXJjZXNDb21wbGV0ZShmYWxz
ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDQ1NjaGVkdWxlclN0YXRlTWFj
aGluZTo6QUNUSU9OX0NPTU1JVDoKICAgICAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZWRBY3Rp
b25Db21taXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oCmluZGV4IGE3ZDhiMDMzMDYxNmMzYzg0OWQx
NjVmZTQwMmQ1MjQ2ZTI3YzMyNGIuLmVmODEwMTRkMmFmMGUzNjIwYmViYzU2MGE5MDFjZGUyNDg5
YTQ0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKSA9IDA7CiAgICAgdmly
dHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRy
YXdBbmRTd2FwSWZQb3NzaWJsZSgpID0gMDsKICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0aW9u
RHJhd0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBGb3JjZWQoKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMo
ZG91YmxlIG1vbm90b25pY1RpbWVMaW1pdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZWRBY3Rpb25Db21taXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJl
Z2luQ29udGV4dFJlY3JlYXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFj
dGlvbkFjcXVpcmVMYXllclRleHR1cmVzRm9yTWFpblRocmVhZCgpID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5jcHAKaW5kZXggZGRlODk0OTUwNDY5
OWQ3ODBiMmUxMDlhOGE4YjQyNDkxZGY5ZjAzYS4uNzc4ZTc4NjEyMTIyYjkzNjU5OTdkODA3ZTVm
Y2E4ZDkzNWFmY2FjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlci5jcHAKQEAgLTM0LDggKzM0LDExIEBACiAKIG5hbWVzcGFjZSB7CiAKLS8vIE51bWJl
ciBvZiB0ZXh0dXJlcyB0byB1cGRhdGUgd2l0aCBlYWNoIGNhbGwgdG8gdXBkYXRlTW9yZVRleHR1
cmVzKCkuCi1zdGF0aWMgY29uc3Qgc2l6ZV90IHRleHR1cmVVcGRhdGVzUGVyRnJhbWUgPSA0ODsK
Ky8vIE51bWJlciBvZiB0ZXh0dXJlcyB0byB1cGRhdGUgd2l0aCBlYWNoIGNhbGwgdG8gdXBkYXRl
TW9yZVRleHR1cmVzSWZFbm91Z2hUaW1lUmVtYWluaW5nKCkuCitzdGF0aWMgY29uc3Qgc2l6ZV90
IHRleHR1cmVVcGRhdGVzUGVyVGljayA9IDEyOworCisvLyBNZWFzdXJlZCBpbiBzZWNvbmRzLgor
c3RhdGljIGNvbnN0IGRvdWJsZSB0ZXh0dXJlVXBkYXRlVGlja1JhdGUgPSAwLjAwNDsKIAogLy8g
Rmx1c2ggaW50ZXJ2YWwgd2hlbiBwZXJmb3JtaW5nIHRleHR1cmUgdXBsb2Fkcy4KIHN0YXRpYyBj
b25zdCBpbnQgdGV4dHVyZVVwbG9hZEZsdXNoUGVyaW9kID0gNDsKQEAgLTQ2LDcgKzQ5LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzaXplX3QgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6
bWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKCkKIHsKLSAgICByZXR1cm4gdGV4dHVyZVVwZGF0ZXNQ
ZXJGcmFtZTsKKyAgICByZXR1cm4gdGV4dHVyZVVwZGF0ZXNQZXJUaWNrOwogfQogCiB2b2lkIEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQcm92aWRl
ciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2Fk
ZXIqIHVwbG9hZGVyLCBDQ1RleHR1cmVVcGRhdGVRdWV1ZSogcXVldWUsIHNpemVfdCBjb3VudCkK
QEAgLTExMCwxMSArMTEzLDE0IEBAIHZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBk
YXRlVGV4dHVyZXMoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpCiAgICAgICAgIGNv
cGllci0+Zmx1c2goKTsKIH0KIAotQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6Q0NUZXh0dXJl
VXBkYXRlQ29udHJvbGxlcihQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwg
Q0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3Bp
ZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCi0gICAgOiBtX3F1ZXVlKHF1ZXVlKQorQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihDQ1RocmVh
ZCogdGhyZWFkLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwgQ0NSZXNv
dXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRl
eHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCisgICAgOiBtX3RpbWVyKGFkb3B0UHRyKG5ldyBDQ1Rp
bWVyKHRocmVhZCwgdGhpcykpKQorICAgICwgbV9xdWV1ZShxdWV1ZSkKICAgICAsIG1fcmVzb3Vy
Y2VQcm92aWRlcihyZXNvdXJjZVByb3ZpZGVyKQogICAgICwgbV9jb3BpZXIoY29waWVyKQogICAg
ICwgbV91cGxvYWRlcih1cGxvYWRlcikKKyAgICAsIG1fbW9ub3RvbmljVGltZUxpbWl0KDApCisg
ICAgLCBtX2ZpcnN0VXBkYXRlQXR0ZW1wdCh0cnVlKQogewogfQogCkBAIC0xMjcsMTcgKzEzMyw1
NyBAQCBib29sIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Omhhc01vcmVVcGRhdGVzKCkgY29u
c3QKICAgICByZXR1cm4gbV9xdWV1ZS0+aGFzTW9yZVVwZGF0ZXMoKTsKIH0KIAotdm9pZCBDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXMoKQordm9pZCBDQ1RleHR1
cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXMoZG91YmxlIG1vbm90b25pY1Rp
bWVMaW1pdCkKIHsKKyAgICBtX21vbm90b25pY1RpbWVMaW1pdCA9IG1vbm90b25pY1RpbWVMaW1p
dDsKKwogICAgIGlmICghbV9xdWV1ZS0+aGFzTW9yZVVwZGF0ZXMoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgdXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLCBtX2NvcGllciwgbV91
cGxvYWRlciwgbV9xdWV1ZS5nZXQoKSwgdXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgpKTsKKyAgICAv
LyBDYWxsIHVwZGF0ZU1vcmVUZXh0dXJlc05vdygpIGRpcmVjdGx5IHVubGVzcyBpdCdzIHRoZSBm
aXJzdCB1cGRhdGUKKyAgICAvLyBhdHRlbXB0LiBUaGlzIGVuc3VyZXMgdGhhdCB3ZSBlbXB0eSB0
aGUgdXBkYXRlIHF1ZXVlIGluIGEgZmluaXRlCisgICAgLy8gYW1vdW50IG9mIHRpbWUuCisgICAg
aWYgKG1fZmlyc3RVcGRhdGVBdHRlbXB0KSB7CisgICAgICAgIHVwZGF0ZU1vcmVUZXh0dXJlc0lm
RW5vdWdoVGltZVJlbWFpbmluZygpOworICAgICAgICBtX2ZpcnN0VXBkYXRlQXR0ZW1wdCA9IGZh
bHNlOworICAgIH0gZWxzZQorICAgICAgICB1cGRhdGVNb3JlVGV4dHVyZXNOb3coKTsKK30KKwor
dm9pZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpvblRpbWVyRmlyZWQoKQoreworICAgIGlm
ICghbV9xdWV1ZS0+aGFzTW9yZVVwZGF0ZXMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdXBk
YXRlTW9yZVRleHR1cmVzSWZFbm91Z2hUaW1lUmVtYWluaW5nKCk7Cit9CisKK2RvdWJsZSBDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSBjb25z
dAoreworICAgIHJldHVybiBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworfQor
Citkb3VibGUgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzVGlt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRleHR1cmVVcGRhdGVUaWNrUmF0ZTsKIH0KIAogc2l6
ZV90IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSBj
b25zdAogewotICAgIHJldHVybiB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lOworICAgIHJldHVybiB0
ZXh0dXJlVXBkYXRlc1BlclRpY2s7Cit9CisKK3ZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxl
cjo6dXBkYXRlTW9yZVRleHR1cmVzSWZFbm91Z2hUaW1lUmVtYWluaW5nKCkKK3sKKyAgICBib29s
IGhhc1RpbWVSZW1haW5pbmcgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSA8IG1fbW9u
b3RvbmljVGltZUxpbWl0IC0gdXBkYXRlTW9yZVRleHR1cmVzVGltZSgpOworICAgIGlmIChoYXNU
aW1lUmVtYWluaW5nKQorICAgICAgICB1cGRhdGVNb3JlVGV4dHVyZXNOb3coKTsKK30KKwordm9p
ZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXNOb3coKQorewor
ICAgIG1fdGltZXItPnN0YXJ0T25lU2hvdCh1cGRhdGVNb3JlVGV4dHVyZXNUaW1lKCkpOworICAg
IHVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlciwgbV9jb3BpZXIsIG1fdXBsb2FkZXIs
IG1fcXVldWUuZ2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuaAppbmRleCBkNmNkYTU5MDZh
YzA4NmIzNmYzMGE0OWNiZDk3ZDA0MmI3NTE3OWExLi4yOTVkNmJmMmI2MmNhZjNhNWE3Y2E0YWQ3
NjllZDdlNjZhZWI3ZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIENDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXJfaAogCiAjaW5jbHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuaCIKKyNpbmNsdWRl
ICJjYy9DQ1RpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgogCkBAIC0zNSwxMiArMzYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgVGV4dHVyZUNvcGllcjsKIGNsYXNzIFRleHR1cmVVcGxvYWRlcjsKIAotY2xhc3MgQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlciB7CitjbGFzcyBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
IDogcHVibGljIENDVGltZXJDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXIpOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNyZWF0ZShQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0
ZVF1ZXVlPiBxdWV1ZSwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0
dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCisgICAgc3RhdGlj
IFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcj4gY3JlYXRlKENDVGhyZWFkKiB0
aHJlYWQsIFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+IHF1ZXVlLCBDQ1Jlc291cmNl
UHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZXIqIGNvcGllciwgVGV4dHVy
ZVVwbG9hZGVyKiB1cGxvYWRlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihxdWV1ZSwgcmVzb3VyY2VQcm92aWRlciwgY29waWVy
LCB1cGxvYWRlcikpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXIodGhyZWFkLCBxdWV1ZSwgcmVzb3VyY2VQcm92aWRlciwgY29waWVyLCB1cGxv
YWRlcikpOwogICAgIH0KICAgICBzdGF0aWMgc2l6ZV90IG1heFBhcnRpYWxUZXh0dXJlVXBkYXRl
cygpOwogICAgIHN0YXRpYyB2b2lkIHVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQcm92aWRlcios
IFRleHR1cmVDb3BpZXIqLCBUZXh0dXJlVXBsb2FkZXIqLCBDQ1RleHR1cmVVcGRhdGVRdWV1ZSos
IHNpemVfdCBjb3VudCk7CkBAIC00OCwxOSArNDksMzAgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
fkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoKTsKIAogICAgIGJvb2wgaGFzTW9yZVVwZGF0ZXMo
KSBjb25zdDsKLSAgICB2b2lkIHVwZGF0ZU1vcmVUZXh0dXJlcygpOworICAgIHZvaWQgdXBkYXRl
TW9yZVRleHR1cmVzKGRvdWJsZSBtb25vdG9uaWNUaW1lTGltaXQpOworCisgICAgLy8gQ0NUaW1l
ckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgb25UaW1lckZpcmVkKCkg
T1ZFUlJJREU7CiAKICAgICAvLyBWaXJ0dWFsIGZvciB0ZXN0aW5nLgorICAgIHZpcnR1YWwgZG91
YmxlIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIGNvbnN0OworICAgIHZpcnR1YWwgZG91
YmxlIHVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHNpemVfdCB1
cGRhdGVNb3JlVGV4dHVyZXNTaXplKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBDQ1RleHR1
cmVVcGRhdGVDb250cm9sbGVyKFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+LCBDQ1Jl
c291cmNlUHJvdmlkZXIqLCBUZXh0dXJlQ29waWVyKiwgVGV4dHVyZVVwbG9hZGVyKik7CisgICAg
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihDQ1RocmVhZCosIFBhc3NPd25QdHI8Q0NUZXh0dXJl
VXBkYXRlUXVldWU+LCBDQ1Jlc291cmNlUHJvdmlkZXIqLCBUZXh0dXJlQ29waWVyKiwgVGV4dHVy
ZVVwbG9hZGVyKik7CisKKyAgICB2b2lkIHVwZGF0ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJl
bWFpbmluZygpOworICAgIHZvaWQgdXBkYXRlTW9yZVRleHR1cmVzTm93KCk7CiAKKyAgICBPd25Q
dHI8Q0NUaW1lcj4gbV90aW1lcjsKICAgICBPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+IG1f
cXVldWU7CiAgICAgYm9vbCBtX2NvbnRlbnRzVGV4dHVyZXNQdXJnZWQ7CiAgICAgQ0NSZXNvdXJj
ZVByb3ZpZGVyKiBtX3Jlc291cmNlUHJvdmlkZXI7CiAgICAgVGV4dHVyZUNvcGllciogbV9jb3Bp
ZXI7CiAgICAgVGV4dHVyZVVwbG9hZGVyKiBtX3VwbG9hZGVyOworICAgIGRvdWJsZSBtX21vbm90
b25pY1RpbWVMaW1pdDsKKyAgICBib29sIG1fZmlyc3RVcGRhdGVBdHRlbXB0OwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAppbmRleCA3ZDVkNGI2ODIzYzFjNzAzYjA5ZGRkNGVl
N2FlM2IwOTE0MjIxYWJlLi5lZDBhOGNkMGU0YWYwNzM2NDFlZDc4MTQ0OGM0YTJmZjUxOWNlYzY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcApAQCAtNTc3LDcgKzU3Nyw3IEBAIHZvaWQg
Q0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkKENDQ29tcGxldGlv
bkV2ZW50KiBjb21wbGV0aW9uCiAgICAgfSBlbHNlCiAgICAgICAgIG1fcmVzZXRDb250ZW50c1Rl
eHR1cmVzUHVyZ2VkQWZ0ZXJDb21taXRPbkltcGxUaHJlYWQgPSB0cnVlOwogCi0gICAgbV9jdXJy
ZW50VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJPbkltcGxUaHJlYWQgPSBDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyOjpjcmVhdGUocXVldWUsIG1fbGF5ZXJUcmVlSG9zdEltcGwtPnJlc291cmNlUHJv
dmlkZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlQ29w
aWVyKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZVVwbG9h
ZGVyKCkpOworICAgIG1fY3VycmVudFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFk
ID0gQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6Y3JlYXRlKENDUHJveHk6OmltcGxUaHJlYWQo
KSwgcXVldWUsIG1fbGF5ZXJUcmVlSG9zdEltcGwtPnJlc291cmNlUHJvdmlkZXIoKSwgbV9sYXll
clRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlQ29waWVyKCksIG1fbGF5ZXJU
cmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZVVwbG9hZGVyKCkpOwogICAgIG1f
Y29tbWl0Q29tcGxldGlvbkV2ZW50T25JbXBsVGhyZWFkID0gY29tcGxldGlvbjsKIAogICAgIG1f
c2NoZWR1bGVyT25JbXBsVGhyZWFkLT5iZWdpbkZyYW1lQ29tcGxldGUoKTsKQEAgLTYwOCwxMSAr
NjA4LDExIEBAIGJvb2wgQ0NUaHJlYWRQcm94eTo6Y2FuRHJhdygpCiAgICAgcmV0dXJuIG1fbGF5
ZXJUcmVlSG9zdEltcGwtPmNhbkRyYXcoKTsKIH0KIAotdm9pZCBDQ1RocmVhZFByb3h5OjpzY2hl
ZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6c2No
ZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyhkb3VibGUgbW9ub3RvbmljVGltZUxpbWl0
KQogewogICAgIFRSQUNFX0VWRU5UMCgiY2MiLCAiQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0
aW9uVXBkYXRlTW9yZVJlc291cmNlcyIpOwogICAgIEFTU0VSVChtX2N1cnJlbnRUZXh0dXJlVXBk
YXRlQ29udHJvbGxlck9uSW1wbFRocmVhZCk7Ci0gICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXJPbkltcGxUaHJlYWQtPnVwZGF0ZU1vcmVUZXh0dXJlcygpOworICAgIG1fY3VycmVu
dFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkLT51cGRhdGVNb3JlVGV4dHVyZXMo
bW9ub3RvbmljVGltZUxpbWl0KTsKIH0KIAogdm9pZCBDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRB
Y3Rpb25Db21taXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCmluZGV4IGRkYjRkOTBjZGJkMWQ3
MTUyNzQ0Yjc1MWEzNzMxNDliOTc3Mzg1YjMuLjEyZTYwNmQ4ZTJjNzUyZDljNGZhODkzMWFlY2E0
YmMzM2UzNjhjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKQEAgLTg4LDcgKzg4LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNj
aGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwSWZQb3NzaWJsZSgpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgQ0NTY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3
QW5kU3dhcEZvcmNlZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rp
b25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoZG91YmxlIG1vbm90b25pY1RpbWVMaW1pdCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0
aW9uKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkFjcXVpcmVM
YXllclRleHR1cmVzRm9yTWFpblRocmVhZCgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwCmluZGV4IDQxMjUwODg0YmY0ZGEw
MmU1YTZhMDBkYmZkOGMxNjg1ZjQ2MjRmZWMuLjg0OGE1ODY0NjgxY2MwNTMyN2FmZjBmZjk5MzQ2
MTRmYmFiNmUxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NT
Y2hlZHVsZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2No
ZWR1bGVyVGVzdC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
Q0NTY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCh0cnVlLCBtX3N3YXBXaWxsSGFwcGVu
SWZEcmF3SGFwcGVucyk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlv
blVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBPVkVSUklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNj
aGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMiKTsgfQorICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSkgT1ZFUlJJREUgeyBtX2Fj
dGlvbnMucHVzaF9iYWNrKCJzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIik7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgT1ZFUlJJREUgeyBtX2Fj
dGlvbnMucHVzaF9iYWNrKCJzY2hlZHVsZWRBY3Rpb25Db21taXQiKTsgfQogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0aW9uKCkgT1ZFUlJJREUgeyBt
X2FjdGlvbnMucHVzaF9iYWNrKCJzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0aW9u
Iik7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQWNxdWlyZUxheWVyVGV4dHVy
ZXNGb3JNYWluVGhyZWFkKCkgT1ZFUlJJREUgeyBtX2FjdGlvbnMucHVzaF9iYWNrKCJzY2hlZHVs
ZWRBY3Rpb25BY3F1aXJlTGF5ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQiKTsgfQpAQCAtMTE0LDEy
ICsxMTQsMTAgQEAgVEVTVChDQ1NjaGVkdWxlclRlc3QsIFJlcXVlc3RDb21taXQpCiAgICAgY2xp
ZW50LnJlc2V0KCk7CiAKICAgICAvLyBTaW5jZSwgaGFzTW9yZVJlc291cmNlVXBkYXRlcyBpcyBz
ZXQgdG8gZmFsc2UsCi0gICAgLy8gYmVnaW5GcmFtZUNvbXBsZXRlIHNob3VsZCB1cGRhdGVNb3Jl
UmVzb3VyY2VzLCB0aGVuCi0gICAgLy8gY29tbWl0CisgICAgLy8gYmVnaW5GcmFtZUNvbXBsZXRl
IHNob3VsZCBjb21taXQKICAgICBzY2hlZHVsZXItPmJlZ2luRnJhbWVDb21wbGV0ZSgpOwotICAg
IEVYUEVDVF9FUSgyLCBjbGllbnQubnVtQWN0aW9ucygpKTsKLSAgICBFWFBFQ1RfU1RSRVEoInNj
aGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMiLCBjbGllbnQuYWN0aW9uKDApKTsKLSAg
ICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMSkp
OworICAgIEVYUEVDVF9FUSgxLCBjbGllbnQubnVtQWN0aW9ucygpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoInNjaGVkdWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMCkpOwogICAgIEVYUEVD
VF9UUlVFKHRpbWVTb3VyY2UtPmFjdGl2ZSgpKTsKICAgICBjbGllbnQucmVzZXQoKTsKIApAQCAt
MTUyLDEyICsxNTAsMTAgQEAgVEVTVChDQ1NjaGVkdWxlclRlc3QsIFJlcXVlc3RDb21taXRBZnRl
ckJlZ2luRnJhbWUpCiAgICAgc2NoZWR1bGVyLT5zZXROZWVkc0NvbW1pdCgpOwogCiAgICAgLy8g
U2luY2UsIGhhc01vcmVSZXNvdXJjZVVwZGF0ZXMgaXMgc2V0IHRvIGZhbHNlLCBhbmQgYW5vdGhl
ciBjb21taXQgaXMKLSAgICAvLyBuZWVkZWQsIGJlZ2luRnJhbWVDb21wbGV0ZSBzaG91bGQgdXBk
YXRlTW9yZVJlc291cmNlcywgdGhlbiBjb21taXQsIHRoZW4KLSAgICAvLyBiZWdpbiBhbm90aGVy
IGZyYW1lLgorICAgIC8vIG5lZWRlZCwgYmVnaW5GcmFtZUNvbXBsZXRlIHNob3VsZCBjb21taXQs
IHRoZW4gYmVnaW4gYW5vdGhlciBmcmFtZS4KICAgICBzY2hlZHVsZXItPmJlZ2luRnJhbWVDb21w
bGV0ZSgpOwotICAgIEVYUEVDVF9FUSgyLCBjbGllbnQubnVtQWN0aW9ucygpKTsKLSAgICBFWFBF
Q1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMiLCBjbGllbnQuYWN0
aW9uKDApKTsKLSAgICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVu
dC5hY3Rpb24oMSkpOworICAgIEVYUEVDVF9FUSgxLCBjbGllbnQubnVtQWN0aW9ucygpKTsKKyAg
ICBFWFBFQ1RfU1RSRVEoInNjaGVkdWxlZEFjdGlvbkNvbW1pdCIsIGNsaWVudC5hY3Rpb24oMCkp
OwogICAgIGNsaWVudC5yZXNldCgpOwogCiAgICAgLy8gVGljayBzaG91bGQgZHJhdyBidXQgdGhl
biBiZWdpbiBhbm90aGVyIGZyYW1lLgpAQCAtMjU3LDcgKzI1Myw3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQodHJ1ZSwgdHJ1ZSk7
CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNv
dXJjZXMoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBk
YXRlTW9yZVJlc291cmNlcyhkb3VibGUpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZWRBY3Rpb25Db21taXQoKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVkQWN0aW9uQmVnaW5Db250ZXh0UmVjcmVhdGlvbigpIE9WRVJSSURFIHsgfQogCkBAIC0z
NTcsNyArMzUzLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gQ0NTY2hlZHVsZWRBY3Rpb25E
cmF3QW5kU3dhcFJlc3VsdCh0cnVlLCB0cnVlKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpIE9WRVJSSURFIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSkgT1ZF
UlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpIE9WRVJS
SURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNy
ZWF0aW9uKCkgT1ZFUlJJREUgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oCmluZGV4IGJlYjE2NTU0ZDE3M2ExOWIyNjli
NTM1YTdmOTMwMDdjMTY3ZTJmZDkuLmQ5ZGQ1ZTUyOWZhMjkzMWQyZDFkYWVlNjJmNGUwYTAxYmFk
ZTc0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVs
ZXJUZXN0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVk
dWxlclRlc3RDb21tb24uaApAQCAtOTYsNiArOTYsNyBAQCBjbGFzcyBGYWtlQ0NUaW1lU291cmNl
IDogcHVibGljIFdlYkNvcmU6OkNDVGltZVNvdXJjZSB7CiBwdWJsaWM6CiAgICAgRmFrZUNDVGlt
ZVNvdXJjZSgpCiAgICAgICAgIDogbV9hY3RpdmUoZmFsc2UpCisgICAgICAgICwgbV9uZXh0VGlj
a1RpbWUoMCkKICAgICAgICAgLCBtX2NsaWVudCgwKSB7IH0KIAogICAgIHZpcnR1YWwgfkZha2VD
Q1RpbWVTb3VyY2UoKSB7IH0KQEAgLTExNCw4ICsxMTUsMTEgQEAgcHVibGljOgogICAgICAgICAg
ICAgbV9jbGllbnQtPm9uVGltZXJUaWNrKCk7CiAgICAgfQogCisgICAgdm9pZCBzZXROZXh0VGlj
a1RpbWUoZG91YmxlIG5leHRUaWNrVGltZSkgeyBtX25leHRUaWNrVGltZSA9IG5leHRUaWNrVGlt
ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2FjdGl2ZTsKKyAgICBkb3VibGUgbV9uZXh0
VGlja1RpbWU7CiAgICAgV2ViQ29yZTo6Q0NUaW1lU291cmNlQ2xpZW50KiBtX2NsaWVudDsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKaW5kZXggYTBkYzJlYzFmOTM2ODEyNzk3NmYx
NjM0ZTAyMzFlYTI3ZTFmMjZmMC4uNTZlZTVlMDA3MDI0ZGUxYjk2YTJiYjczYjg1M2ZkMjRiYThm
ZGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKQEAgLTU0Miw0ICs1NDIsMTQ4IEBA
IFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgVHJpcGxlVXBkYXRlRmluYWxV
cGRhdGVBbGxQYXJ0aWFsKQogICAgIEVYUEVDVF9FUShrRnVsbFVwbG9hZHMgKyBrUGFydGlhbFVw
bG9hZHMsIG1fbnVtVG90YWxVcGxvYWRzKTsKIH0KIAorY2xhc3MgRmFrZUNDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXIgOiBwdWJsaWMgV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXI+IGNyZWF0ZShXZWJDb3JlOjpDQ1RocmVhZCogdGhyZWFkLCBQYXNzT3duUHRyPENDVGV4
dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3Zp
ZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZha2VDQ1RleHR1cmVVcGRhdGVDb250
cm9sbGVyKHRocmVhZCwgcXVldWUsIHJlc291cmNlUHJvdmlkZXIsIGNvcGllciwgdXBsb2FkZXIp
KTsKKyAgICB9CisKKyAgICB2b2lkIHNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZShkb3Vi
bGUgdGltZSkgeyBtX21vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSA9IHRpbWU7IH0KKyAgICB2
aXJ0dWFsIGRvdWJsZSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX21vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZTsgfQorICAgIHZvaWQgc2V0
VXBkYXRlTW9yZVRleHR1cmVzVGltZShkb3VibGUgdGltZSkgeyBtX3VwZGF0ZU1vcmVUZXh0dXJl
c1RpbWUgPSB0aW1lOyB9CisgICAgdmlydHVhbCBkb3VibGUgdXBkYXRlTW9yZVRleHR1cmVzVGlt
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdXBkYXRlTW9yZVRleHR1cmVzVGltZTsgfQor
ICAgIHZvaWQgc2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZShzaXplX3Qgc2l6ZSkgeyBtX3VwZGF0
ZU1vcmVUZXh0dXJlc1NpemUgPSBzaXplOyB9CisgICAgdmlydHVhbCBzaXplX3QgdXBkYXRlTW9y
ZVRleHR1cmVzU2l6ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdXBkYXRlTW9yZVRleHR1
cmVzU2l6ZTsgfQorCitwcm90ZWN0ZWQ6CisgICAgRmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXIoV2ViQ29yZTo6Q0NUaHJlYWQqIHRocmVhZCwgUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVR
dWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVy
ZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQorICAgICAgICA6IFdl
YkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIodGhyZWFkLCBxdWV1ZSwgcmVzb3VyY2VQ
cm92aWRlciwgY29waWVyLCB1cGxvYWRlcikKKyAgICAgICAgLCBtX21vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgwKQorICAgICAgICAsIG1fdXBkYXRlTW9yZVRleHR1cmVzVGltZSgwKQorICAg
ICAgICAsIG1fdXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgwKSB7IH0KKworICAgIGRvdWJsZSBtX21v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZTsKKyAgICBkb3VibGUgbV91cGRhdGVNb3JlVGV4dHVy
ZXNUaW1lOworICAgIHNpemVfdCBtX3VwZGF0ZU1vcmVUZXh0dXJlc1NpemU7Cit9OworCitURVNU
X0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIFVwZGF0ZU1vcmVUZXh0dXJlcykKK3sK
KyAgICBGYWtlQ0NUaHJlYWQgdGhyZWFkOworCisgICAgc2V0TWF4VXBsb2FkQ291bnRQZXJVcGRh
dGUoMSk7CisgICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDMpOworICAgIGFwcGVu
ZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVRdWV1ZSgwKTsKKworICAgIERlYnVnU2NvcGVkU2V0SW1w
bFRocmVhZCBpbXBsVGhyZWFkOworICAgIE93blB0cjxGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJv
bGxlcj4gY29udHJvbGxlcihGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6Y3JlYXRlKCZ0
aHJlYWQsIG1fcXVldWUucmVsZWFzZSgpLCBtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2Nv
cGllciwgJm1fdXBsb2FkZXIpKTsKKworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNU
aW1lKDAuMSk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgxKTsK
KyAgICAvLyBOb3QgZW5vdWdoIHRpbWUgZm9yIGFueSB1cGRhdGVzLgorICAgIGNvbnRyb2xsZXIt
PnVwZGF0ZU1vcmVUZXh0dXJlcygwLjA5KTsKKyAgICBFWFBFQ1RfRkFMU0UodGhyZWFkLmhhc1Bl
bmRpbmdUYXNrKCkpOworICAgIEVYUEVDVF9FUSgwLCBtX251bUJlZ2luVXBsb2Fkcyk7CisgICAg
RVhQRUNUX0VRKDAsIG1fbnVtRW5kVXBsb2Fkcyk7CisKKyAgICB0aHJlYWQucmVzZXQoKTsKKyAg
ICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoMCk7CisgICAgY29u
dHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzVGltZSgwLjEpOworICAgIGNvbnRyb2xsZXIt
PnNldFVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoMSk7CisgICAgLy8gT25seSBlbm91Z2ggdGltZSBm
b3IgMSB1cGRhdGUuCisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMTIpOwor
ICAgIEVYUEVDVF9UUlVFKHRocmVhZC5oYXNQZW5kaW5nVGFzaygpKTsKKyAgICBjb250cm9sbGVy
LT5zZXRNb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUodGhyZWFkLnBlbmRpbmdEZWxheU1zKCkg
LyAxMDAwLjApOworICAgIHRocmVhZC5ydW5QZW5kaW5nVGFzaygpOworICAgIEVYUEVDVF9FUSgx
LCBtX251bUJlZ2luVXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDEsIG1fbnVtRW5kVXBsb2Fkcyk7
CisgICAgRVhQRUNUX0VRKDEsIG1fbnVtVG90YWxVcGxvYWRzKTsKKworICAgIHRocmVhZC5yZXNl
dCgpOworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgwKTsK
KyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNUaW1lKDAuMSk7CisgICAgY29u
dHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgxKTsKKyAgICAvLyBFbm91Z2ggdGlt
ZSBmb3IgMiB1cGRhdGVzLgorICAgIGNvbnRyb2xsZXItPnVwZGF0ZU1vcmVUZXh0dXJlcygwLjIy
KTsKKyAgICBFWFBFQ1RfVFJVRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgY29udHJv
bGxlci0+c2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGNvbnRyb2xsZXItPm1vbm90b25p
Y2FsbHlJbmNyZWFzaW5nVGltZSgpICsgdGhyZWFkLnBlbmRpbmdEZWxheU1zKCkgLyAxMDAwLjAp
OworICAgIHRocmVhZC5ydW5QZW5kaW5nVGFzaygpOworICAgIEVYUEVDVF9FUSgzLCBtX251bUJl
Z2luVXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDMsIG1fbnVtRW5kVXBsb2Fkcyk7CisgICAgRVhQ
RUNUX0VRKDMsIG1fbnVtVG90YWxVcGxvYWRzKTsKK30KKworVEVTVF9GKENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXJUZXN0LCBOb01vcmVVcGRhdGVzKQoreworICAgIEZha2VDQ1RocmVhZCB0aHJl
YWQ7CisKKyAgICBzZXRNYXhVcGxvYWRDb3VudFBlclVwZGF0ZSgxKTsKKyAgICBhcHBlbmRGdWxs
VXBsb2Fkc1RvVXBkYXRlUXVldWUoMik7CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0
ZVF1ZXVlKDApOworCisgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7Cisg
ICAgT3duUHRyPEZha2VDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyPiBjb250cm9sbGVyKEZha2VD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUoJnRocmVhZCwgbV9xdWV1ZS5yZWxlYXNl
KCksIG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlcikpOwor
CisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKDApOworICAg
IGNvbnRyb2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoMC4xKTsKKyAgICBjb250cm9s
bGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNTaXplKDEpOworICAgIC8vIEVub3VnaCB0aW1lIGZv
ciAzIHVwZGF0ZXMgYnV0IG9ubHkgMiBuZWNlc3NhcnkuCisgICAgY29udHJvbGxlci0+dXBkYXRl
TW9yZVRleHR1cmVzKDAuMzEpOworICAgIEVYUEVDVF9UUlVFKHRocmVhZC5oYXNQZW5kaW5nVGFz
aygpKTsKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoY29u
dHJvbGxlci0+bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgKyB0aHJlYWQucGVuZGluZ0Rl
bGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQ
RUNUX1RSVUUodGhyZWFkLmhhc1BlbmRpbmdUYXNrKCkpOworICAgIGNvbnRyb2xsZXItPnNldE1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZShjb250cm9sbGVyLT5tb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKSArIHRocmVhZC5wZW5kaW5nRGVsYXlNcygpIC8gMTAwMC4wKTsKKyAgICB0aHJl
YWQucnVuUGVuZGluZ1Rhc2soKTsKKyAgICBFWFBFQ1RfRVEoMiwgbV9udW1CZWdpblVwbG9hZHMp
OworICAgIEVYUEVDVF9FUSgyLCBtX251bUVuZFVwbG9hZHMpOworICAgIEVYUEVDVF9FUSgyLCBt
X251bVRvdGFsVXBsb2Fkcyk7CisKKyAgICB0aHJlYWQucmVzZXQoKTsKKyAgICBjb250cm9sbGVy
LT5zZXRNb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoMCk7CisgICAgY29udHJvbGxlci0+c2V0
VXBkYXRlTW9yZVRleHR1cmVzVGltZSgwLjEpOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0ZU1v
cmVUZXh0dXJlc1NpemUoMSk7CisgICAgLy8gRW5vdWdoIHRpbWUgZm9yIHVwZGF0ZXMgYnV0IG5v
IG1vcmUgdXBkYXRlcyBsZWZ0LgorICAgIGNvbnRyb2xsZXItPnVwZGF0ZU1vcmVUZXh0dXJlcygw
LjMxKTsKKyAgICBFWFBFQ1RfRkFMU0UodGhyZWFkLmhhc1BlbmRpbmdUYXNrKCkpOworICAgIEVY
UEVDVF9FUSgyLCBtX251bUJlZ2luVXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtRW5k
VXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtVG90YWxVcGxvYWRzKTsKK30KKworVEVT
VF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBVcGRhdGVzQ29tcGxldGVJbkZpbml0
ZVRpbWUpCit7CisgICAgRmFrZUNDVGhyZWFkIHRocmVhZDsKKworICAgIHNldE1heFVwbG9hZENv
dW50UGVyVXBkYXRlKDEpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZSgyKTsK
KyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMCk7CisKKyAgICBEZWJ1Z1Nj
b3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKKyAgICBPd25QdHI8RmFrZUNDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXI+IGNvbnRyb2xsZXIoRmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6
OmNyZWF0ZSgmdGhyZWFkLCBtX3F1ZXVlLnJlbGVhc2UoKSwgbV9yZXNvdXJjZVByb3ZpZGVyLmdl
dCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyKSk7CisKKyAgICBjb250cm9sbGVyLT5zZXRNb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoMCk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9y
ZVRleHR1cmVzVGltZSgwLjUpOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJl
c1NpemUoMSk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDsgaSsrKSB7CisgICAgICAg
IGlmICghY29udHJvbGxlci0+aGFzTW9yZVVwZGF0ZXMoKSkKKyAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgIC8vIE5vdCBlbm91Z2ggdGltZSBmb3IgYW55IHVwZGF0ZXMuCisgICAgICAgIGNv
bnRyb2xsZXItPnVwZGF0ZU1vcmVUZXh0dXJlcygwLjQpOworCisgICAgICAgIGlmICh0aHJlYWQu
aGFzUGVuZGluZ1Rhc2soKSkgeworICAgICAgICAgICAgY29udHJvbGxlci0+c2V0TW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKGNvbnRyb2xsZXItPm1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpICsgdGhyZWFkLnBlbmRpbmdEZWxheU1zKCkgLyAxMDAwLjApOworICAgICAgICAgICAgdGhy
ZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBFWFBFQ1RfRVEo
MiwgbV9udW1CZWdpblVwbG9hZHMpOworICAgIEVYUEVDVF9FUSgyLCBtX251bUVuZFVwbG9hZHMp
OworICAgIEVYUEVDVF9FUSgyLCBtX251bVRvdGFsVXBsb2Fkcyk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158863</attachid>
            <date>2012-08-16 11:32:06 -0700</date>
            <delta_ts>2012-08-17 18:44:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84281-20120816143131.patch</filename>
            <type>text/plain</type>
            <size>28053</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RmYTJiY2FhYmU0ODc0
YWFlZGI2MWMzNTE5MmI5ZDYyMTk1YWJiZi4uNWY3YmM5NDAyZGY3OTY3YzYzZmQ2NTQ4ZmY0ZTg1
ZjNmMzg2MzIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA4LTE2ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBT
Y2hlZHVsZSB0ZXh0dXJlIHVwbG9hZHMgYmFzZWQgb24gaGFyZC1jb2RlZCB0aW1lciBhbmQgdnN5
bmMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJv
dmUgaW50ZXJhY3Rpb24gYmV0d2VlbiB2c3luYyBhbmQgdGV4dHVyZSB1cGxvYWRzIGJ5IHBlcmZv
cm1pbmcKKyAgICAgICAgdXBsb2FkcyBpbiBzbWFsbGVyIGJhdGNoZXMgYW5kIHVzZSBhIGhhcmQt
Y29kZWQgdGltZXIgdG8gZW11bGF0ZQorICAgICAgICB1cGxvYWQgY29tcGxldGlvbi4gVGhpcyBn
cmVhdGx5IHJlZHVjZXMgdGhlIGNoYW5jZSBvZiB0aGUgY29tcG9zaXRvcgorICAgICAgICBtaXNz
aW5nIGEgdnN5bmMgZHVlIHRvIGJlaW5nIGJ1c3kgd2l0aCB0ZXh0dXJlIHVwbG9hZHMuCisKKyAg
ICAgICAgVGhlIENDU2NoZWR1bGVyIGNsaWVudCBpcyBub3cgZ2l2ZW4gYSB0aW1lIGxpbWl0IHdo
ZW4gdG9sZCB0byB1cGRhdGUKKyAgICAgICAgbW9yZSByZXNvdXJjZXMuIFRoaXMgdGltZSBsaW1p
dCBpcyBwYXNzZWQgdG8gYW4gaW5zdGFuY2Ugb2YgdGhlCisgICAgICAgIENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXIgY2xhc3MsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciBwZXJmb3JtaW5nCisg
ICAgICAgIHRleHR1cmUgdXBkYXRlcyB1bnRpbCB0aGUgbGltaXQgaXMgcmVhY2hlZC4KKworICAg
ICAgICBVbml0IHRlc3RzOiBDQ1NjaGVkdWxlclRlc3QuUmVxdWVzdENvbW1pdAorICAgICAgICAg
ICAgICAgICAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5VcGRhdGVNb3JlVGV4dHVy
ZXMKKyAgICAgICAgICAgICAgICAgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuSGFz
TW9yZVVwZGF0ZXMKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RnJhbWVSYXRlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6Om5leHRUaWNrVGltZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKENDRnJhbWVSYXRlQ29udHJvbGxlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NTY2hl
ZHVsZXI6OnByb2Nlc3NTY2hlZHVsZWRBY3Rpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oOgorICAgICAgICAoQ0NTY2hlZHVsZXJDbGll
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6bWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1
cmVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlcjo6b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXI6Om1vbm90b25pY1RpbWVOb3cpOgorICAgICAgICAoV2ViQ29yZTo6
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzVGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVy
ZXNTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVw
ZGF0ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXNOb3cpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVN
b3JlUmVzb3VyY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1RocmVhZFByb3h5Lmg6CisKIDIwMTItMDgtMTYgIFNlcmdleSBSb2d1bGVua28gIDxyb2d1bGVu
a29AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGRlZCBQYWludCBldmVu
dHMgZm9yIEltYWdlcyB0byBUaW1lbGluZUFnZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDU1NjAzMmVlMWUxMDY0NjA2MzY5MzEzZDNmZDY4OTQzZDJjNDNiNDMuLjA3ZDUwNGU2ZjUy
OTUwOTFiZmExYmNkOWZiZDJjNmUwZDM1NTIxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDgtMTYgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFNjaGVkdWxlIHRleHR1cmUgdXBsb2Fk
cyBiYXNlZCBvbiBoYXJkLWNvZGVkIHRpbWVyIGFuZCB2c3luYy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MjgxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3Bw
OgorICAgICAgICAoV2ViS2l0VGVzdHM6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL0NDU2NoZWR1
bGVyVGVzdENvbW1vbi5oOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkZha2VDQ1RpbWVTb3VyY2U6
OkZha2VDQ1RpbWVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkZha2VDQ1RpbWVTb3Vy
Y2U6OnNldE5leHRUaWNrVGltZSk6CisgICAgICAgIChGYWtlQ0NUaW1lU291cmNlKToKKyAgICAg
ICAgKiB0ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHA6CisKIDIwMTItMDgt
MTYgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hy
b21pdW1dIFJlbW92ZSBhbHdheXNSZXNlcnZlVGV4dHVyZXMgY29kZSAtIGl0IGRvZXNuJ3QgZG8g
YW55dGhpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwCmluZGV4
IGYxOWIzOWVlMzZkNmIxNGRmZjU0ZTBmZTdmNTBmZGYzYjRiNGU5ZTUuLjZlN2Q3NjU2NjNhMWQ2
ODA2MjFhZjI3YjM0MjZkNWFkMDFjMTE5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJh
dGVDb250cm9sbGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlRyYWNlRXZlbnQu
aCIKICNpbmNsdWRlICJjYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmgiCiAjaW5jbHVkZSAiY2Mv
Q0NUaW1lU291cmNlLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMTQ3LDQgKzE0OCwxMiBAQCB2b2lkIENDRnJhbWVSYXRlQ29udHJv
bGxlcjo6ZGlkQWJvcnRBbGxQZW5kaW5nRnJhbWVzKCkKICAgICBtX251bUZyYW1lc1BlbmRpbmcg
PSAwOwogfQogCitkb3VibGUgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpuZXh0VGlja1RpbWUoKQor
eworICAgIGlmIChtX2lzVGltZVNvdXJjZVRocm90dGxpbmcpCisgICAgICAgIHJldHVybiBtX3Rp
bWVTb3VyY2UtPm5leHRUaWNrVGltZSgpOworCisgICAgcmV0dXJuIG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxl
ci5oCmluZGV4IDY5YzkwMzdlMjNhZWQxNmZiMjI4MDM3MjI3OTA5YmRjMTE3MWVhZDkuLmZjMmQ2
Y2FmYzFkMjdjYjlkNzNlZDlkNjMxMDA5ZmQ3ZjUxNmRjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RnJhbWVSYXRlQ29udHJvbGxlci5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpbmNsdWRlICJjYy9D
Q1RpbWVyLmgiCiAKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
RGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KQEAgLTY4LDYgKzY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluaXNoRnJhbWUo
KTsKICAgICB2b2lkIGRpZEFib3J0QWxsUGVuZGluZ0ZyYW1lcygpOwogICAgIHZvaWQgc2V0TWF4
RnJhbWVzUGVuZGluZyhpbnQpOyAvLyAwIGZvciB1bmxpbWl0ZWQuCisgICAgZG91YmxlIG5leHRU
aWNrVGltZSgpOwogCiAgICAgdm9pZCBzZXRUaW1lYmFzZUFuZEludGVydmFsKGRvdWJsZSB0aW1l
YmFzZSwgZG91YmxlIGludGVydmFsU2Vjb25kcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcApp
bmRleCAyYzFiNTA1M2M1NDNhMGEzODI5ZWEwZTkyNTU4ZmMyN2NkYTdjYzllLi5iYjIzNzI4NWQ2
ZTA2ZGYzODBiMzQ1ZTI0YjliZTI1YzFhMzJlYmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3Bw
CkBAIC0xNzMsMTYgKzE3MywxMSBAQCB2b2lkIENDU2NoZWR1bGVyOjpwcm9jZXNzU2NoZWR1bGVk
QWN0aW9ucygpCiAgICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFt
ZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ0NTY2hlZHVsZXJTdGF0ZU1h
Y2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9SRV9SRVNPVVJDRVM6Ci0gICAgICAgICAgICBt
X2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpOwotICAgICAgICAg
ICAgaWYgKCFtX2NsaWVudC0+aGFzTW9yZVJlc291cmNlVXBkYXRlcygpKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gSWYgd2Ugd2VyZSBqdXN0IHRvbGQgdG8gdXBkYXRlIHJlc291cmNlcywgYnV0IHRo
ZXJlIGFyZSBubwotICAgICAgICAgICAgICAgIC8vIG1vcmUgcGVuZGluZywgdGhlbiB0ZWxsIHRo
ZSBzdGF0ZSBtYWNoaW5lIHRoYXQgdGhlCi0gICAgICAgICAgICAgICAgLy8gYmVnaW5VcGRhdGVN
b3JlUmVzb3VyY2VzIGNvbXBsZXRlZC4gSWYgbW9yZSBhcmUgcGVuZGluZywKLSAgICAgICAgICAg
ICAgICAvLyB0aGVuIHdlIHdpbGwgYWNrIHRoZSB1cGRhdGUgYXQgdGhlIG5leHQgZHJhdy4KLSAg
ICAgICAgICAgICAgICBtX3VwZGF0ZU1vcmVSZXNvdXJjZXNQZW5kaW5nID0gZmFsc2U7Ci0gICAg
ICAgICAgICAgICAgbV9zdGF0ZU1hY2hpbmUuYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxl
dGUoZmFsc2UpOwotICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBpZiAobV9jbGllbnQt
Pmhhc01vcmVSZXNvdXJjZVVwZGF0ZXMoKSkgeworICAgICAgICAgICAgICAgIG1fY2xpZW50LT5z
Y2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKG1fZnJhbWVSYXRlQ29udHJvbGxlci0+
bmV4dFRpY2tUaW1lKCkpOwogICAgICAgICAgICAgICAgIG1fdXBkYXRlTW9yZVJlc291cmNlc1Bl
bmRpbmcgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbV9zdGF0
ZU1hY2hpbmUuYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoZmFsc2UpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElP
Tl9DT01NSVQ6CiAgICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1NjaGVkdWxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NTY2hlZHVsZXIuaAppbmRleCBhN2Q4YjAzMzA2MTZjM2M4NDlkMTY1ZmU0MDJkNTI0
NmUyN2MzMjRiLi5lZjgxMDE0ZDJhZjBlMzYyMGJlYmM1NjBhOTAxY2RlMjQ4OWE0NDM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Nj
aGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDU2NoZWR1bGVyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lKCkgPSAwOwogICAgIHZpcnR1YWwgQ0NTY2hl
ZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcElm
UG9zc2libGUoKSA9IDA7CiAgICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2Fw
UmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwRm9yY2VkKCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSBtb25v
dG9uaWNUaW1lTGltaXQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29t
bWl0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRS
ZWNyZWF0aW9uKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25BY3F1aXJl
TGF5ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3BwCmluZGV4IGRkZTg5NDk1MDQ2OTlkNzgwYjJlMTA5
YThhOGI0MjQ5MWRmOWYwM2EuLjcxNDg2MjE3ZTMxZTgzODViM2VjZjlmMzQ0YjcwNzcwNjY1NWVl
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3Bw
CkBAIC0zNCw4ICszNCwxMSBAQAogCiBuYW1lc3BhY2UgewogCi0vLyBOdW1iZXIgb2YgdGV4dHVy
ZXMgdG8gdXBkYXRlIHdpdGggZWFjaCBjYWxsIHRvIHVwZGF0ZU1vcmVUZXh0dXJlcygpLgotc3Rh
dGljIGNvbnN0IHNpemVfdCB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lID0gNDg7CisvLyBOdW1iZXIg
b2YgdGV4dHVyZXMgdG8gdXBkYXRlIHdpdGggZWFjaCBjYWxsIHRvIHVwZGF0ZU1vcmVUZXh0dXJl
c0lmRW5vdWdoVGltZVJlbWFpbmluZygpLgorc3RhdGljIGNvbnN0IHNpemVfdCB0ZXh0dXJlVXBk
YXRlc1BlclRpY2sgPSAxMjsKKworLy8gTWVhc3VyZWQgaW4gc2Vjb25kcy4KK3N0YXRpYyBjb25z
dCBkb3VibGUgdGV4dHVyZVVwZGF0ZVRpY2tSYXRlID0gMC4wMDQ7CiAKIC8vIEZsdXNoIGludGVy
dmFsIHdoZW4gcGVyZm9ybWluZyB0ZXh0dXJlIHVwbG9hZHMuCiBzdGF0aWMgY29uc3QgaW50IHRl
eHR1cmVVcGxvYWRGbHVzaFBlcmlvZCA9IDQ7CkBAIC00Niw3ICs0OSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc2l6ZV90IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Om1heFBhcnRpYWxU
ZXh0dXJlVXBkYXRlcygpCiB7Ci0gICAgcmV0dXJuIHRleHR1cmVVcGRhdGVzUGVyRnJhbWU7Cisg
ICAgcmV0dXJuIHRleHR1cmVVcGRhdGVzUGVyVGljazsKIH0KIAogdm9pZCBDQ1RleHR1cmVVcGRh
dGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNl
UHJvdmlkZXIsIFRleHR1cmVDb3BpZXIqIGNvcGllciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRl
ciwgQ0NUZXh0dXJlVXBkYXRlUXVldWUqIHF1ZXVlLCBzaXplX3QgY291bnQpCkBAIC0xMTAsMTEg
KzExMywxNCBAQCB2b2lkIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVz
KENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aQogICAgICAgICBjb3BpZXItPmZsdXNo
KCk7CiB9CiAKLUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXIoUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQ
cm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJl
VXBsb2FkZXIqIHVwbG9hZGVyKQotICAgIDogbV9xdWV1ZShxdWV1ZSkKK0NDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoQ0NUaHJlYWQqIHRocmVhZCwg
UGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRl
ciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2Fk
ZXIqIHVwbG9hZGVyKQorICAgIDogbV90aW1lcihhZG9wdFB0cihuZXcgQ0NUaW1lcih0aHJlYWQs
IHRoaXMpKSkKKyAgICAsIG1fcXVldWUocXVldWUpCiAgICAgLCBtX3Jlc291cmNlUHJvdmlkZXIo
cmVzb3VyY2VQcm92aWRlcikKICAgICAsIG1fY29waWVyKGNvcGllcikKICAgICAsIG1fdXBsb2Fk
ZXIodXBsb2FkZXIpCisgICAgLCBtX21vbm90b25pY1RpbWVMaW1pdCgwKQorICAgICwgbV9maXJz
dFVwZGF0ZUF0dGVtcHQodHJ1ZSkKIHsKIH0KIApAQCAtMTI3LDE3ICsxMzMsNTcgQEAgYm9vbCBD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpoYXNNb3JlVXBkYXRlcygpIGNvbnN0CiAgICAgcmV0
dXJuIG1fcXVldWUtPmhhc01vcmVVcGRhdGVzKCk7CiB9CiAKLXZvaWQgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzKCkKK3ZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzKGRvdWJsZSBtb25vdG9uaWNUaW1lTGltaXQpCiB7
CisgICAgbV9tb25vdG9uaWNUaW1lTGltaXQgPSBtb25vdG9uaWNUaW1lTGltaXQ7CisKICAgICBp
ZiAoIW1fcXVldWUtPmhhc01vcmVVcGRhdGVzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVw
ZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlciwgbV9jb3BpZXIsIG1fdXBsb2FkZXIsIG1f
cXVldWUuZ2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7CisgICAgLy8gQ2FsbCB1cGRh
dGVNb3JlVGV4dHVyZXNOb3coKSBkaXJlY3RseSB1bmxlc3MgaXQncyB0aGUgZmlyc3QgdXBkYXRl
CisgICAgLy8gYXR0ZW1wdC4gVGhpcyBlbnN1cmVzIHRoYXQgd2UgZW1wdHkgdGhlIHVwZGF0ZSBx
dWV1ZSBpbiBhIGZpbml0ZQorICAgIC8vIGFtb3VudCBvZiB0aW1lLgorICAgIGlmIChtX2ZpcnN0
VXBkYXRlQXR0ZW1wdCkgeworICAgICAgICB1cGRhdGVNb3JlVGV4dHVyZXNJZkVub3VnaFRpbWVS
ZW1haW5pbmcoKTsKKyAgICAgICAgbV9maXJzdFVwZGF0ZUF0dGVtcHQgPSBmYWxzZTsKKyAgICB9
IGVsc2UKKyAgICAgICAgdXBkYXRlTW9yZVRleHR1cmVzTm93KCk7Cit9CisKK3ZvaWQgQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlcjo6b25UaW1lckZpcmVkKCkKK3sKKyAgICBpZiAoIW1fcXVldWUt
Pmhhc01vcmVVcGRhdGVzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHVwZGF0ZU1vcmVUZXh0
dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZygpOworfQorCitkb3VibGUgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcjo6bW9ub3RvbmljVGltZU5vdygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworfQorCitkb3VibGUgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzVGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRl
eHR1cmVVcGRhdGVUaWNrUmF0ZTsKIH0KIAogc2l6ZV90IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXI6OnVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSBjb25zdAogewotICAgIHJldHVybiB0ZXh0dXJl
VXBkYXRlc1BlckZyYW1lOworICAgIHJldHVybiB0ZXh0dXJlVXBkYXRlc1BlclRpY2s7Cit9CisK
K3ZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzSWZFbm91
Z2hUaW1lUmVtYWluaW5nKCkKK3sKKyAgICBib29sIGhhc1RpbWVSZW1haW5pbmcgPSBtb25vdG9u
aWNUaW1lTm93KCkgPCBtX21vbm90b25pY1RpbWVMaW1pdCAtIHVwZGF0ZU1vcmVUZXh0dXJlc1Rp
bWUoKTsKKyAgICBpZiAoaGFzVGltZVJlbWFpbmluZykKKyAgICAgICAgdXBkYXRlTW9yZVRleHR1
cmVzTm93KCk7Cit9CisKK3ZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9y
ZVRleHR1cmVzTm93KCkKK3sKKyAgICBtX3RpbWVyLT5zdGFydE9uZVNob3QodXBkYXRlTW9yZVRl
eHR1cmVzVGltZSgpKTsKKyAgICB1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIsIG1f
Y29waWVyLCBtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCB1cGRhdGVNb3JlVGV4dHVyZXNTaXpl
KCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
LmgKaW5kZXggZDZjZGE1OTA2YWMwODZiMzZmMzBhNDljYmQ5N2QwNDJiNzUxNzlhMS4uZTMzZjA5
NWZmNTczZWQ4MmYyY2FmMjEzMzNhMTM5MDAyODg5OGFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyX2gKIAogI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0
ZVF1ZXVlLmgiCisjaW5jbHVkZSAiY2MvQ0NUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIApAQCAtMzUsMTIgKzM2LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFRleHR1cmVDb3BpZXI7CiBjbGFzcyBUZXh0dXJlVXBs
b2FkZXI7CiAKLWNsYXNzIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIgeworY2xhc3MgQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlciA6IHB1YmxpYyBDQ1RpbWVyQ2xpZW50IHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKTsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyPiBjcmVhdGUoUGFzc093
blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVz
b3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVw
bG9hZGVyKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+
IGNyZWF0ZShDQ1RocmVhZCogdGhyZWFkLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVl
PiBxdWV1ZSwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29w
aWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIocXVldWUsIHJlc291
cmNlUHJvdmlkZXIsIGNvcGllciwgdXBsb2FkZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKHRocmVhZCwgcXVldWUsIHJlc291cmNlUHJv
dmlkZXIsIGNvcGllciwgdXBsb2FkZXIpKTsKICAgICB9CiAgICAgc3RhdGljIHNpemVfdCBtYXhQ
YXJ0aWFsVGV4dHVyZVVwZGF0ZXMoKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVUZXh0dXJlcyhD
Q1Jlc291cmNlUHJvdmlkZXIqLCBUZXh0dXJlQ29waWVyKiwgVGV4dHVyZVVwbG9hZGVyKiwgQ0NU
ZXh0dXJlVXBkYXRlUXVldWUqLCBzaXplX3QgY291bnQpOwpAQCAtNDgsMTkgKzQ5LDMwIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKCk7CiAKICAgICBi
b29sIGhhc01vcmVVcGRhdGVzKCkgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVNb3JlVGV4dHVyZXMo
KTsKKyAgICB2b2lkIHVwZGF0ZU1vcmVUZXh0dXJlcyhkb3VibGUgbW9ub3RvbmljVGltZUxpbWl0
KTsKKworICAgIC8vIENDVGltZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2
b2lkIG9uVGltZXJGaXJlZCgpIE9WRVJSSURFOwogCiAgICAgLy8gVmlydHVhbCBmb3IgdGVzdGlu
Zy4KKyAgICB2aXJ0dWFsIGRvdWJsZSBtb25vdG9uaWNUaW1lTm93KCkgY29uc3Q7CisgICAgdmly
dHVhbCBkb3VibGUgdXBkYXRlTW9yZVRleHR1cmVzVGltZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
c2l6ZV90IHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAg
IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1
ZT4sIENDUmVzb3VyY2VQcm92aWRlciosIFRleHR1cmVDb3BpZXIqLCBUZXh0dXJlVXBsb2FkZXIq
KTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKENDVGhyZWFkKiwgUGFzc093blB0cjxD
Q1RleHR1cmVVcGRhdGVRdWV1ZT4sIENDUmVzb3VyY2VQcm92aWRlciosIFRleHR1cmVDb3BpZXIq
LCBUZXh0dXJlVXBsb2FkZXIqKTsKKworICAgIHZvaWQgdXBkYXRlTW9yZVRleHR1cmVzSWZFbm91
Z2hUaW1lUmVtYWluaW5nKCk7CisgICAgdm9pZCB1cGRhdGVNb3JlVGV4dHVyZXNOb3coKTsKIAor
ICAgIE93blB0cjxDQ1RpbWVyPiBtX3RpbWVyOwogICAgIE93blB0cjxDQ1RleHR1cmVVcGRhdGVR
dWV1ZT4gbV9xdWV1ZTsKICAgICBib29sIG1fY29udGVudHNUZXh0dXJlc1B1cmdlZDsKICAgICBD
Q1Jlc291cmNlUHJvdmlkZXIqIG1fcmVzb3VyY2VQcm92aWRlcjsKICAgICBUZXh0dXJlQ29waWVy
KiBtX2NvcGllcjsKICAgICBUZXh0dXJlVXBsb2FkZXIqIG1fdXBsb2FkZXI7CisgICAgZG91Ymxl
IG1fbW9ub3RvbmljVGltZUxpbWl0OworICAgIGJvb2wgbV9maXJzdFVwZGF0ZUF0dGVtcHQ7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IDdkNWQ0YjY4MjNjMWM3MDNi
MDlkZGQ0ZWU3YWUzYjA5MTQyMjFhYmUuLmVkMGE4Y2QwZTRhZjA3MzY0MWVkNzgxNDQ4YzRhMmZm
NTE5Y2VjNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC01NzcsNyArNTc3LDcg
QEAgdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQ29tcGxldGVPbkltcGxUaHJlYWQoQ0ND
b21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24KICAgICB9IGVsc2UKICAgICAgICAgbV9yZXNldENv
bnRlbnRzVGV4dHVyZXNQdXJnZWRBZnRlckNvbW1pdE9uSW1wbFRocmVhZCA9IHRydWU7CiAKLSAg
ICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29udHJvbGxlck9uSW1wbFRocmVhZCA9IENDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZShxdWV1ZSwgbV9sYXllclRyZWVIb3N0SW1wbC0+cmVz
b3VyY2VQcm92aWRlcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRl
eHR1cmVDb3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0
dXJlVXBsb2FkZXIoKSk7CisgICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJPbklt
cGxUaHJlYWQgPSBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUoQ0NQcm94eTo6aW1w
bFRocmVhZCgpLCBxdWV1ZSwgbV9sYXllclRyZWVIb3N0SW1wbC0+cmVzb3VyY2VQcm92aWRlcigp
LCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVDb3BpZXIoKSwg
bV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlVXBsb2FkZXIoKSk7
CiAgICAgbV9jb21taXRDb21wbGV0aW9uRXZlbnRPbkltcGxUaHJlYWQgPSBjb21wbGV0aW9uOwog
CiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPmJlZ2luRnJhbWVDb21wbGV0ZSgpOwpAQCAt
NjA4LDExICs2MDgsMTEgQEAgYm9vbCBDQ1RocmVhZFByb3h5OjpjYW5EcmF3KCkKICAgICByZXR1
cm4gbV9sYXllclRyZWVIb3N0SW1wbC0+Y2FuRHJhdygpOwogfQogCi12b2lkIENDVGhyZWFkUHJv
eHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKQordm9pZCBDQ1RocmVhZFBy
b3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSBtb25vdG9uaWNU
aW1lTGltaXQpCiB7CiAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJDQ1RocmVhZFByb3h5OjpzY2hl
ZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIik7CiAgICAgQVNTRVJUKG1fY3VycmVudFRl
eHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkKTsKLSAgICBtX2N1cnJlbnRUZXh0dXJl
VXBkYXRlQ29udHJvbGxlck9uSW1wbFRocmVhZC0+dXBkYXRlTW9yZVRleHR1cmVzKCk7CisgICAg
bV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJPbkltcGxUaHJlYWQtPnVwZGF0ZU1vcmVU
ZXh0dXJlcyhtb25vdG9uaWNUaW1lTGltaXQpOwogfQogCiB2b2lkIENDVGhyZWFkUHJveHk6OnNj
aGVkdWxlZEFjdGlvbkNvbW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggZGRiNGQ5
MGNkYmQxZDcxNTI3NDRiNzUxYTM3MzE0OWI5NzczODViMy4uMTJlNjA2ZDhlMmM3NTJkOWM0ZmE4
OTMxYWVjYTRiYzMzZTM2OGMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtODgsNyAr
ODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luRnJh
bWUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBS
ZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJZlBvc3NpYmxlKCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFj
dGlvbkRyYXdBbmRTd2FwRm9yY2VkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyhkb3VibGUgbW9ub3RvbmljVGlt
ZUxpbWl0KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4
dFJlY3JlYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9u
QWNxdWlyZUxheWVyVGV4dHVyZXNGb3JNYWluVGhyZWFkKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdC5jcHAKaW5kZXggNDEyNTA4
ODRiZjRkYTAyZTVhNmEwMGRiZmQ4YzE2ODVmNDYyNGZlYy4uODQ4YTU4NjQ2ODFjYzA1MzI3YWZm
MGZmOTkzNDYxNGZiYWI2ZTFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NTY2hlZHVsZXJUZXN0LmNwcApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0KHRydWUsIG1fc3dhcFdp
bGxIYXBwZW5JZkRyYXdIYXBwZW5zKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpIE9WRVJSSURFIHsgbV9hY3Rpb25zLnB1c2hf
YmFjaygic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIpOyB9CisgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoZG91YmxlKSBPVkVSUklE
RSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJj
ZXMiKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25Db21taXQoKSBPVkVSUklE
RSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFjdGlvbkNvbW1pdCIpOyB9CiAgICAg
dmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4dFJlY3JlYXRpb24oKSBPVkVS
UklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4dFJl
Y3JlYXRpb24iKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25BY3F1aXJlTGF5
ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQoKSBPVkVSUklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2so
InNjaGVkdWxlZEFjdGlvbkFjcXVpcmVMYXllclRleHR1cmVzRm9yTWFpblRocmVhZCIpOyB9CkBA
IC0xMTQsMTIgKzExNCwxMCBAQCBURVNUKENDU2NoZWR1bGVyVGVzdCwgUmVxdWVzdENvbW1pdCkK
ICAgICBjbGllbnQucmVzZXQoKTsKIAogICAgIC8vIFNpbmNlLCBoYXNNb3JlUmVzb3VyY2VVcGRh
dGVzIGlzIHNldCB0byBmYWxzZSwKLSAgICAvLyBiZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxkIHVw
ZGF0ZU1vcmVSZXNvdXJjZXMsIHRoZW4KLSAgICAvLyBjb21taXQKKyAgICAvLyBiZWdpbkZyYW1l
Q29tcGxldGUgc2hvdWxkIGNvbW1pdAogICAgIHNjaGVkdWxlci0+YmVnaW5GcmFtZUNvbXBsZXRl
KCk7Ci0gICAgRVhQRUNUX0VRKDIsIGNsaWVudC5udW1BY3Rpb25zKCkpOwotICAgIEVYUEVDVF9T
VFJFUSgic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIGNsaWVudC5hY3Rpb24o
MCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFj
dGlvbigxKSk7CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIEVY
UEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigwKSk7CiAg
ICAgRVhQRUNUX1RSVUUodGltZVNvdXJjZS0+YWN0aXZlKCkpOwogICAgIGNsaWVudC5yZXNldCgp
OwogCkBAIC0xNTIsMTIgKzE1MCwxMCBAQCBURVNUKENDU2NoZWR1bGVyVGVzdCwgUmVxdWVzdENv
bW1pdEFmdGVyQmVnaW5GcmFtZSkKICAgICBzY2hlZHVsZXItPnNldE5lZWRzQ29tbWl0KCk7CiAK
ICAgICAvLyBTaW5jZSwgaGFzTW9yZVJlc291cmNlVXBkYXRlcyBpcyBzZXQgdG8gZmFsc2UsIGFu
ZCBhbm90aGVyIGNvbW1pdCBpcwotICAgIC8vIG5lZWRlZCwgYmVnaW5GcmFtZUNvbXBsZXRlIHNo
b3VsZCB1cGRhdGVNb3JlUmVzb3VyY2VzLCB0aGVuIGNvbW1pdCwgdGhlbgotICAgIC8vIGJlZ2lu
IGFub3RoZXIgZnJhbWUuCisgICAgLy8gbmVlZGVkLCBiZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxk
IGNvbW1pdCwgdGhlbiBiZWdpbiBhbm90aGVyIGZyYW1lLgogICAgIHNjaGVkdWxlci0+YmVnaW5G
cmFtZUNvbXBsZXRlKCk7Ci0gICAgRVhQRUNUX0VRKDIsIGNsaWVudC5udW1BY3Rpb25zKCkpOwot
ICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcyIsIGNs
aWVudC5hY3Rpb24oMCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0
IiwgY2xpZW50LmFjdGlvbigxKSk7CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5udW1BY3Rpb25z
KCkpOworICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFj
dGlvbigwKSk7CiAgICAgY2xpZW50LnJlc2V0KCk7CiAKICAgICAvLyBUaWNrIHNob3VsZCBkcmF3
IGJ1dCB0aGVuIGJlZ2luIGFub3RoZXIgZnJhbWUuCkBAIC0yNTcsNyArMjUzLDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gQ0NTY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCh0cnVl
LCB0cnVlKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRl
TW9yZVJlc291cmNlcygpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRB
Y3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0aW9uKCkgT1ZFUlJJREUgeyB9
CiAKQEAgLTM1Nyw3ICszNTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBDQ1NjaGVkdWxl
ZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0KHRydWUsIHRydWUpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKCkgT1ZFUlJJREUgeyB9
CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoZG91
YmxlKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0
KCkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29u
dGV4dFJlY3JlYXRpb24oKSBPVkVSUklERSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3RDb21tb24uaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9uLmgKaW5kZXggYmViMTY1NTRkMTcz
YTE5YjI2OWI1MzVhN2Y5MzAwN2MxNjdlMmZkOS4uZDlkZDVlNTI5ZmEyOTMxZDJkMWRhZWU2MmY0
ZTBhMDFiYWRlNzQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q1NjaGVkdWxlclRlc3RDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oCkBAIC05Niw2ICs5Niw3IEBAIGNsYXNzIEZha2VDQ1Rp
bWVTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6Q0NUaW1lU291cmNlIHsKIHB1YmxpYzoKICAgICBG
YWtlQ0NUaW1lU291cmNlKCkKICAgICAgICAgOiBtX2FjdGl2ZShmYWxzZSkKKyAgICAgICAgLCBt
X25leHRUaWNrVGltZSgwKQogICAgICAgICAsIG1fY2xpZW50KDApIHsgfQogCiAgICAgdmlydHVh
bCB+RmFrZUNDVGltZVNvdXJjZSgpIHsgfQpAQCAtMTE0LDggKzExNSwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBtX2NsaWVudC0+b25UaW1lclRpY2soKTsKICAgICB9CiAKKyAgICB2b2lkIHNl
dE5leHRUaWNrVGltZShkb3VibGUgbmV4dFRpY2tUaW1lKSB7IG1fbmV4dFRpY2tUaW1lID0gbmV4
dFRpY2tUaW1lOyB9CisKIHByb3RlY3RlZDoKICAgICBib29sIG1fYWN0aXZlOworICAgIGRvdWJs
ZSBtX25leHRUaWNrVGltZTsKICAgICBXZWJDb3JlOjpDQ1RpbWVTb3VyY2VDbGllbnQqIG1fY2xp
ZW50OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcAppbmRleCBhMGRjMmVjMWY5MzY4
MTI3OTc2ZjE2MzRlMDIzMWVhMjdlMWYyNmYwLi42OTU4MzJmMmQ0OTAyMDc1NTE0NzE0NmRhNGVi
MzE1YzNmMTZjNjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcApAQCAtNTQyLDQgKzU0
MiwxNDggQEAgVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBUcmlwbGVVcGRh
dGVGaW5hbFVwZGF0ZUFsbFBhcnRpYWwpCiAgICAgRVhQRUNUX0VRKGtGdWxsVXBsb2FkcyArIGtQ
YXJ0aWFsVXBsb2FkcywgbV9udW1Ub3RhbFVwbG9hZHMpOwogfQogCitjbGFzcyBGYWtlQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlciA6IHB1YmxpYyBXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250
cm9sbGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxGYWtlQ0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlcj4gY3JlYXRlKFdlYkNvcmU6OkNDVGhyZWFkKiB0aHJlYWQsIFBhc3NPd25Q
dHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+IHF1ZXVlLCBDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291
cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZXIqIGNvcGllciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxv
YWRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmFrZUNDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXIodGhyZWFkLCBxdWV1ZSwgcmVzb3VyY2VQcm92aWRlciwgY29waWVyLCB1
cGxvYWRlcikpOworICAgIH0KKworICAgIHZvaWQgc2V0TW9ub3RvbmljVGltZU5vdyhkb3VibGUg
dGltZSkgeyBtX21vbm90b25pY1RpbWVOb3cgPSB0aW1lOyB9CisgICAgdmlydHVhbCBkb3VibGUg
bW9ub3RvbmljVGltZU5vdygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbW9ub3RvbmljVGlt
ZU5vdzsgfQorICAgIHZvaWQgc2V0VXBkYXRlTW9yZVRleHR1cmVzVGltZShkb3VibGUgdGltZSkg
eyBtX3VwZGF0ZU1vcmVUZXh0dXJlc1RpbWUgPSB0aW1lOyB9CisgICAgdmlydHVhbCBkb3VibGUg
dXBkYXRlTW9yZVRleHR1cmVzVGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdXBkYXRl
TW9yZVRleHR1cmVzVGltZTsgfQorICAgIHZvaWQgc2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZShz
aXplX3Qgc2l6ZSkgeyBtX3VwZGF0ZU1vcmVUZXh0dXJlc1NpemUgPSBzaXplOyB9CisgICAgdmly
dHVhbCBzaXplX3QgdXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIG1fdXBkYXRlTW9yZVRleHR1cmVzU2l6ZTsgfQorCitwcm90ZWN0ZWQ6CisgICAgRmFrZUND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoV2ViQ29yZTo6Q0NUaHJlYWQqIHRocmVhZCwgUGFzc093
blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVz
b3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVw
bG9hZGVyKQorICAgICAgICA6IFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIodGhy
ZWFkLCBxdWV1ZSwgcmVzb3VyY2VQcm92aWRlciwgY29waWVyLCB1cGxvYWRlcikKKyAgICAgICAg
LCBtX21vbm90b25pY1RpbWVOb3coMCkKKyAgICAgICAgLCBtX3VwZGF0ZU1vcmVUZXh0dXJlc1Rp
bWUoMCkKKyAgICAgICAgLCBtX3VwZGF0ZU1vcmVUZXh0dXJlc1NpemUoMCkgeyB9CisKKyAgICBk
b3VibGUgbV9tb25vdG9uaWNUaW1lTm93OworICAgIGRvdWJsZSBtX3VwZGF0ZU1vcmVUZXh0dXJl
c1RpbWU7CisgICAgc2l6ZV90IG1fdXBkYXRlTW9yZVRleHR1cmVzU2l6ZTsKK307CisKK1RFU1Rf
RihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgVXBkYXRlTW9yZVRleHR1cmVzKQorewor
ICAgIEZha2VDQ1RocmVhZCB0aHJlYWQ7CisKKyAgICBzZXRNYXhVcGxvYWRDb3VudFBlclVwZGF0
ZSgxKTsKKyAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMyk7CisgICAgYXBwZW5k
UGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDApOworCisgICAgRGVidWdTY29wZWRTZXRJbXBs
VGhyZWFkIGltcGxUaHJlYWQ7CisgICAgT3duUHRyPEZha2VDQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyPiBjb250cm9sbGVyKEZha2VDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUoJnRo
cmVhZCwgbV9xdWV1ZS5yZWxlYXNlKCksIG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29w
aWVyLCAmbV91cGxvYWRlcikpOworCisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljVGltZU5v
dygwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNUaW1lKDAuMSk7Cisg
ICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgxKTsKKyAgICAvLyBOb3Qg
ZW5vdWdoIHRpbWUgZm9yIGFueSB1cGRhdGVzLgorICAgIGNvbnRyb2xsZXItPnVwZGF0ZU1vcmVU
ZXh0dXJlcygwLjA5KTsKKyAgICBFWFBFQ1RfRkFMU0UodGhyZWFkLmhhc1BlbmRpbmdUYXNrKCkp
OworICAgIEVYUEVDVF9FUSgwLCBtX251bUJlZ2luVXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDAs
IG1fbnVtRW5kVXBsb2Fkcyk7CisKKyAgICB0aHJlYWQucmVzZXQoKTsKKyAgICBjb250cm9sbGVy
LT5zZXRNb25vdG9uaWNUaW1lTm93KDApOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0ZU1vcmVU
ZXh0dXJlc1RpbWUoMC4xKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNT
aXplKDEpOworICAgIC8vIE9ubHkgZW5vdWdoIHRpbWUgZm9yIDEgdXBkYXRlLgorICAgIGNvbnRy
b2xsZXItPnVwZGF0ZU1vcmVUZXh0dXJlcygwLjEyKTsKKyAgICBFWFBFQ1RfVFJVRSh0aHJlYWQu
aGFzUGVuZGluZ1Rhc2soKSk7CisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljVGltZU5vdyh0
aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhyZWFkLnJ1blBlbmRpbmdU
YXNrKCk7CisgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMSwgbV9udW1Ub3RhbFVwbG9h
ZHMpOworCisgICAgdGhyZWFkLnJlc2V0KCk7CisgICAgY29udHJvbGxlci0+c2V0TW9ub3Rvbmlj
VGltZU5vdygwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNUaW1lKDAu
MSk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgxKTsKKyAgICAv
LyBFbm91Z2ggdGltZSBmb3IgMiB1cGRhdGVzLgorICAgIGNvbnRyb2xsZXItPnVwZGF0ZU1vcmVU
ZXh0dXJlcygwLjIyKTsKKyAgICBFWFBFQ1RfVFJVRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7
CisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljVGltZU5vdyhjb250cm9sbGVyLT5tb25vdG9u
aWNUaW1lTm93KCkgKyB0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhy
ZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VRKDMsIG1fbnVtQmVnaW5VcGxvYWRz
KTsKKyAgICBFWFBFQ1RfRVEoMywgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMywg
bV9udW1Ub3RhbFVwbG9hZHMpOworfQorCitURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxl
clRlc3QsIE5vTW9yZVVwZGF0ZXMpCit7CisgICAgRmFrZUNDVGhyZWFkIHRocmVhZDsKKworICAg
IHNldE1heFVwbG9hZENvdW50UGVyVXBkYXRlKDEpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9V
cGRhdGVRdWV1ZSgyKTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMCk7
CisKKyAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKKyAgICBPd25QdHI8
RmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNvbnRyb2xsZXIoRmFrZUNDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZSgmdGhyZWFkLCBtX3F1ZXVlLnJlbGVhc2UoKSwgbV9yZXNv
dXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyKSk7CisKKyAgICBjb250
cm9sbGVyLT5zZXRNb25vdG9uaWNUaW1lTm93KDApOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0
ZU1vcmVUZXh0dXJlc1RpbWUoMC4xKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4
dHVyZXNTaXplKDEpOworICAgIC8vIEVub3VnaCB0aW1lIGZvciAzIHVwZGF0ZXMgYnV0IG9ubHkg
MiBuZWNlc3NhcnkuCisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMzEpOwor
ICAgIEVYUEVDVF9UUlVFKHRocmVhZC5oYXNQZW5kaW5nVGFzaygpKTsKKyAgICBjb250cm9sbGVy
LT5zZXRNb25vdG9uaWNUaW1lTm93KGNvbnRyb2xsZXItPm1vbm90b25pY1RpbWVOb3coKSArIHRo
cmVhZC5wZW5kaW5nRGVsYXlNcygpIC8gMTAwMC4wKTsKKyAgICB0aHJlYWQucnVuUGVuZGluZ1Rh
c2soKTsKKyAgICBFWFBFQ1RfVFJVRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgY29u
dHJvbGxlci0+c2V0TW9ub3RvbmljVGltZU5vdyhjb250cm9sbGVyLT5tb25vdG9uaWNUaW1lTm93
KCkgKyB0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7CisgICAgdGhyZWFkLnJ1blBl
bmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBF
WFBFQ1RfRVEoMiwgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMiwgbV9udW1Ub3Rh
bFVwbG9hZHMpOworCisgICAgdGhyZWFkLnJlc2V0KCk7CisgICAgY29udHJvbGxlci0+c2V0TW9u
b3RvbmljVGltZU5vdygwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNU
aW1lKDAuMSk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgxKTsK
KyAgICAvLyBFbm91Z2ggdGltZSBmb3IgdXBkYXRlcyBidXQgbm8gbW9yZSB1cGRhdGVzIGxlZnQu
CisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVzKDAuMzEpOworICAgIEVYUEVDVF9G
QUxTRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtQmVn
aW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMiwgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBF
Q1RfRVEoMiwgbV9udW1Ub3RhbFVwbG9hZHMpOworfQorCitURVNUX0YoQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlclRlc3QsIFVwZGF0ZXNDb21wbGV0ZUluRmluaXRlVGltZSkKK3sKKyAgICBGYWtl
Q0NUaHJlYWQgdGhyZWFkOworCisgICAgc2V0TWF4VXBsb2FkQ291bnRQZXJVcGRhdGUoMSk7Cisg
ICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDIpOworICAgIGFwcGVuZFBhcnRpYWxV
cGxvYWRzVG9VcGRhdGVRdWV1ZSgwKTsKKworICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBp
bXBsVGhyZWFkOworICAgIE93blB0cjxGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcj4gY29u
dHJvbGxlcihGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6Y3JlYXRlKCZ0aHJlYWQsIG1f
cXVldWUucmVsZWFzZSgpLCBtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1f
dXBsb2FkZXIpKTsKKworICAgIGNvbnRyb2xsZXItPnNldE1vbm90b25pY1RpbWVOb3coMCk7Cisg
ICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVzVGltZSgwLjUpOworICAgIGNvbnRy
b2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoMSk7CisKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IDEwMDsgaSsrKSB7CisgICAgICAgIGlmICghY29udHJvbGxlci0+aGFzTW9yZVVwZGF0
ZXMoKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIE5vdCBlbm91Z2ggdGltZSBm
b3IgYW55IHVwZGF0ZXMuCisgICAgICAgIGNvbnRyb2xsZXItPnVwZGF0ZU1vcmVUZXh0dXJlcygw
LjQpOworCisgICAgICAgIGlmICh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSkgeworICAgICAgICAg
ICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljVGltZU5vdyhjb250cm9sbGVyLT5tb25vdG9uaWNU
aW1lTm93KCkgKyB0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7CisgICAgICAgICAg
ICB0aHJlYWQucnVuUGVuZGluZ1Rhc2soKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEVYUEVD
VF9FUSgyLCBtX251bUJlZ2luVXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtRW5kVXBs
b2Fkcyk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtVG90YWxVcGxvYWRzKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159255</attachid>
            <date>2012-08-17 18:44:38 -0700</date>
            <delta_ts>2012-08-21 15:35:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84281-20120817214401.patch</filename>
            <type>text/plain</type>
            <size>27846</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc1Y2M4YzM5MWI4YTkw
NTdhZTlkMjEyYWUyZDZmMTFhZjM1NDEyNy4uNzM3YTBhZGU1YmY2ZDIwNjU2MmRmOTU1OTczYWJk
ZWMyMjAyZmI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA4LTE3ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBT
Y2hlZHVsZSB0ZXh0dXJlIHVwbG9hZHMgYmFzZWQgb24gaGFyZC1jb2RlZCB0aW1lciBhbmQgdnN5
bmMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJv
dmUgaW50ZXJhY3Rpb24gYmV0d2VlbiB2c3luYyBhbmQgdGV4dHVyZSB1cGxvYWRzIGJ5IHBlcmZv
cm1pbmcKKyAgICAgICAgdXBsb2FkcyBpbiBzbWFsbGVyIGJhdGNoZXMgYW5kIHVzZSBhIGhhcmQt
Y29kZWQgdGltZXIgdG8gZW11bGF0ZQorICAgICAgICB1cGxvYWQgY29tcGxldGlvbi4gVGhpcyBn
cmVhdGx5IHJlZHVjZXMgdGhlIGNoYW5jZSBvZiB0aGUgY29tcG9zaXRvcgorICAgICAgICBtaXNz
aW5nIGEgdnN5bmMgZHVlIHRvIGJlaW5nIGJ1c3kgd2l0aCB0ZXh0dXJlIHVwbG9hZHMuCisKKyAg
ICAgICAgVGhlIENDU2NoZWR1bGVyIGNsaWVudCBpcyBub3cgZ2l2ZW4gYSB0aW1lIGxpbWl0IHdo
ZW4gdG9sZCB0byB1cGRhdGUKKyAgICAgICAgbW9yZSByZXNvdXJjZXMuIFRoaXMgdGltZSBsaW1p
dCBpcyBwYXNzZWQgdG8gYW4gaW5zdGFuY2Ugb2YgdGhlCisgICAgICAgIENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXIgY2xhc3MsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciBwZXJmb3JtaW5nCisg
ICAgICAgIHRleHR1cmUgdXBkYXRlcyB1bnRpbCB0aGUgbGltaXQgaXMgcmVhY2hlZC4KKworICAg
ICAgICBVbml0IHRlc3RzOiBDQ1NjaGVkdWxlclRlc3QuUmVxdWVzdENvbW1pdAorICAgICAgICAg
ICAgICAgICAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5VcGRhdGVNb3JlVGV4dHVy
ZXMKKyAgICAgICAgICAgICAgICAgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuSGFz
TW9yZVVwZGF0ZXMKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RnJhbWVSYXRlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6Om5leHRUaWNrVGltZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKENDRnJhbWVSYXRlQ29udHJvbGxlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NTY2hl
ZHVsZXI6OnByb2Nlc3NTY2hlZHVsZWRBY3Rpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oOgorICAgICAgICAoQ0NTY2hlZHVsZXJDbGll
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6bWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1
cmVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlcjo6b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXI6Om1vbm90b25pY1RpbWVOb3cpOgorICAgICAgICAoV2ViQ29yZTo6
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzVGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVy
ZXNTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVw
ZGF0ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXNOb3cpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVN
b3JlUmVzb3VyY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1RocmVhZFByb3h5Lmg6CisKIDIwMTItMDgtMTcgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBBdWRpb1BhcmFtIG11c3Qgc3VwcG9ydCBrLXJhdGUgcHJvY2Vz
c2luZyB3aXRoIGF1ZGlvLXJhdGUgY29ubmVjdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggZjhkZWUxMWIyNjU3YjlmMjEwMTFhOTM5MDhlZDEwMzFiZGQ1ODFlYS4uNjljZmNiZDBj
ZWMxZTAzZDI2ZmNmMjA2NThhZTE3MWI3YjRhZGVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOC0xNyAgRGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gU2NoZWR1bGUgdGV4dHVyZSB1cGxv
YWRzIGJhc2VkIG9uIGhhcmQtY29kZWQgdGltZXIgYW5kIHZzeW5jLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0NDU2NoZWR1bGVyVGVzdC5j
cHA6CisgICAgICAgIChXZWJLaXRUZXN0czo6VEVTVCk6CisgICAgICAgICogdGVzdHMvQ0NTY2hl
ZHVsZXJUZXN0Q29tbW9uLmg6CisgICAgICAgIChXZWJLaXRUZXN0czo6RmFrZUNDVGltZVNvdXJj
ZTo6RmFrZUNDVGltZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXRUZXN0czo6RmFrZUNDVGltZVNv
dXJjZTo6c2V0TmV4dFRpY2tUaW1lKToKKyAgICAgICAgKEZha2VDQ1RpbWVTb3VyY2UpOgorICAg
ICAgICAqIHRlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcDoKKwogMjAxMi0w
OC0xNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNTkyMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Zy
YW1lUmF0ZUNvbnRyb2xsZXIuY3BwCmluZGV4IGU2ZGUyOTRhNDRhZTk1OTRmMzI5ZmY5NjQ3MTEx
NzNhMzU4OGI0NTAuLjViMDBmZWY3OWRkYmUzOGI0MDc0ZDUxZDRiNDIxNmYzMjA0NTJmMGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RnJhbWVSYXRlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcApAQCAtMTUxLDQgKzE1
MSwxMiBAQCB2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6ZGlkQWJvcnRBbGxQZW5kaW5nRnJh
bWVzKCkKICAgICBtX251bUZyYW1lc1BlbmRpbmcgPSAwOwogfQogCitkb3VibGUgQ0NGcmFtZVJh
dGVDb250cm9sbGVyOjpuZXh0VGlja1RpbWUoKQoreworICAgIGlmIChtX2lzVGltZVNvdXJjZVRo
cm90dGxpbmcpCisgICAgICAgIHJldHVybiBtX3RpbWVTb3VyY2UtPm5leHRUaWNrVGltZSgpOwor
CisgICAgcmV0dXJuIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Zy
YW1lUmF0ZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCmluZGV4IDM0Y2M4YTQyNTE1NTY0ZjM5
NjZiZjRhZTg2N2RhMDFiMjI0OWE0Y2IuLjEzZDg1M2I3MGI4YWUwYTRkMmUwYWYzNGE0Y2Q1NTBm
Y2JiY2ZlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCkBAIC0y
Nyw3ICsyNyw2IEBACiAKICNpbmNsdWRlICJDQ1RpbWVyLmgiCiAKLSNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTY4LDYgKzY3LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkRmluaXNoRnJhbWUoKTsKICAgICB2b2lkIGRpZEFib3J0QWxsUGVuZGlu
Z0ZyYW1lcygpOwogICAgIHZvaWQgc2V0TWF4RnJhbWVzUGVuZGluZyhpbnQpOyAvLyAwIGZvciB1
bmxpbWl0ZWQuCisgICAgZG91YmxlIG5leHRUaWNrVGltZSgpOwogCiAgICAgdm9pZCBzZXRUaW1l
YmFzZUFuZEludGVydmFsKGRvdWJsZSB0aW1lYmFzZSwgZG91YmxlIGludGVydmFsU2Vjb25kcyk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcAppbmRleCA0ZDllZDM2OTEwNjM3NmE5MTU0MGEyYWUy
M2UwMzk3NzFiMGJkMjYzLi5mYTNkYmUxZWQxNGViZWYxYjJiNDgxOGE4NDA5NmZiYmExZjM3MDBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1NjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwCkBAIC0xNzQsMTYgKzE3NCwxMSBAQCB2b2lkIEND
U2NoZWR1bGVyOjpwcm9jZXNzU2NoZWR1bGVkQWN0aW9ucygpCiAgICAgICAgICAgICBtX2NsaWVu
dC0+c2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQ0NTY2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9CRUdJTl9VUERBVEVfTU9S
RV9SRVNPVVJDRVM6Ci0gICAgICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVkQWN0aW9uVXBkYXRl
TW9yZVJlc291cmNlcygpOwotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC0+aGFzTW9yZVJlc291
cmNlVXBkYXRlcygpKSB7Ci0gICAgICAgICAgICAgICAgLy8gSWYgd2Ugd2VyZSBqdXN0IHRvbGQg
dG8gdXBkYXRlIHJlc291cmNlcywgYnV0IHRoZXJlIGFyZSBubwotICAgICAgICAgICAgICAgIC8v
IG1vcmUgcGVuZGluZywgdGhlbiB0ZWxsIHRoZSBzdGF0ZSBtYWNoaW5lIHRoYXQgdGhlCi0gICAg
ICAgICAgICAgICAgLy8gYmVnaW5VcGRhdGVNb3JlUmVzb3VyY2VzIGNvbXBsZXRlZC4gSWYgbW9y
ZSBhcmUgcGVuZGluZywKLSAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIHdpbGwgYWNrIHRoZSB1
cGRhdGUgYXQgdGhlIG5leHQgZHJhdy4KLSAgICAgICAgICAgICAgICBtX3VwZGF0ZU1vcmVSZXNv
dXJjZXNQZW5kaW5nID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgbV9zdGF0ZU1hY2hpbmUuYmVn
aW5VcGRhdGVNb3JlUmVzb3VyY2VzQ29tcGxldGUoZmFsc2UpOwotICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBpZiAobV9jbGllbnQtPmhhc01vcmVSZXNvdXJjZVVwZGF0ZXMoKSkgewor
ICAgICAgICAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3Vy
Y2VzKG1fZnJhbWVSYXRlQ29udHJvbGxlci0+bmV4dFRpY2tUaW1lKCkpOwogICAgICAgICAgICAg
ICAgIG1fdXBkYXRlTW9yZVJlc291cmNlc1BlbmRpbmcgPSB0cnVlOworICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgbV9zdGF0ZU1hY2hpbmUuYmVnaW5VcGRhdGVNb3JlUmVzb3Vy
Y2VzQ29tcGxldGUoZmFsc2UpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ0NT
Y2hlZHVsZXJTdGF0ZU1hY2hpbmU6OkFDVElPTl9DT01NSVQ6CiAgICAgICAgICAgICBtX2NsaWVu
dC0+c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuaAppbmRleCBjNmVm
NGQ1OTk5YjU2MzEzZmJhMTkwZjAzNGEwMGY0YzE3ZTAzZTJkLi42MzY2NGJiNTk4NTg1N2IzMDY0
ZjA4Y2Q1ZTc2MzdjMzExZjk0ODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmgKQEAgLTU4LDcgKzU4
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1l
KCkgPSAwOwogICAgIHZpcnR1YWwgQ0NTY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBz
Y2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcElmUG9zc2libGUoKSA9IDA7CiAgICAgdmlydHVhbCBD
Q1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRT
d2FwRm9yY2VkKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVN
b3JlUmVzb3VyY2VzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRh
dGVNb3JlUmVzb3VyY2VzKGRvdWJsZSBtb25vdG9uaWNUaW1lTGltaXQpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNyZWF0aW9uKCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZWRBY3Rpb25BY3F1aXJlTGF5ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQoKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDU4NGQ1ZjgwY2JjMmFkZTY4YWFhOTk3NGZkMWI4NjhiNzc1N2MxNjAuLjZmYzc3MWU5NTkw
NWVlM2M4N2U2MWIwMWY2ODY2M2IyZjkwNjAxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3BwCkBAIC0zNCw4ICszNCwxMSBAQAogCiBuYW1lc3Bh
Y2UgewogCi0vLyBOdW1iZXIgb2YgdGV4dHVyZXMgdG8gdXBkYXRlIHdpdGggZWFjaCBjYWxsIHRv
IHVwZGF0ZU1vcmVUZXh0dXJlcygpLgotc3RhdGljIGNvbnN0IHNpemVfdCB0ZXh0dXJlVXBkYXRl
c1BlckZyYW1lID0gNDg7CisvLyBOdW1iZXIgb2YgdGV4dHVyZXMgdG8gdXBkYXRlIHdpdGggZWFj
aCBjYWxsIHRvIHVwZGF0ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZygpLgorc3Rh
dGljIGNvbnN0IHNpemVfdCB0ZXh0dXJlVXBkYXRlc1BlclRpY2sgPSAxMjsKKworLy8gTWVhc3Vy
ZWQgaW4gc2Vjb25kcy4KK3N0YXRpYyBjb25zdCBkb3VibGUgdGV4dHVyZVVwZGF0ZVRpY2tSYXRl
ID0gMC4wMDQ7CiAKIC8vIEZsdXNoIGludGVydmFsIHdoZW4gcGVyZm9ybWluZyB0ZXh0dXJlIHVw
bG9hZHMuCiBzdGF0aWMgY29uc3QgaW50IHRleHR1cmVVcGxvYWRGbHVzaFBlcmlvZCA9IDQ7CkBA
IC00Niw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc2l6ZV90IENDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXI6Om1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcygpCiB7Ci0gICAgcmV0dXJu
IHRleHR1cmVVcGRhdGVzUGVyRnJhbWU7CisgICAgcmV0dXJuIHRleHR1cmVVcGRhdGVzUGVyVGlj
azsKIH0KIAogdm9pZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhD
Q1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZXIqIGNvcGll
ciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRlciwgQ0NUZXh0dXJlVXBkYXRlUXVldWUqIHF1ZXVl
LCBzaXplX3QgY291bnQpCkBAIC0xMTAsMTEgKzExMywxNCBAQCB2b2lkIENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQ
cm92aQogICAgICAgICBjb3BpZXItPmZsdXNoKCk7CiB9CiAKLUNDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoUGFzc093blB0cjxDQ1RleHR1cmVVcGRh
dGVRdWV1ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4
dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQotICAgIDogbV9x
dWV1ZShxdWV1ZSkKK0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXIoQ0NUaHJlYWQqIHRocmVhZCwgUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1
ZT4gcXVldWUsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNv
cGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQorICAgIDogbV90aW1lcihh
ZG9wdFB0cihuZXcgQ0NUaW1lcih0aHJlYWQsIHRoaXMpKSkKKyAgICAsIG1fcXVldWUocXVldWUp
CiAgICAgLCBtX3Jlc291cmNlUHJvdmlkZXIocmVzb3VyY2VQcm92aWRlcikKICAgICAsIG1fY29w
aWVyKGNvcGllcikKICAgICAsIG1fdXBsb2FkZXIodXBsb2FkZXIpCisgICAgLCBtX21vbm90b25p
Y1RpbWVMaW1pdCgwKQorICAgICwgbV9maXJzdFVwZGF0ZUF0dGVtcHQodHJ1ZSkKIHsKIH0KIApA
QCAtMTI3LDE3ICsxMzMsNTcgQEAgYm9vbCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpoYXNN
b3JlVXBkYXRlcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcXVldWUtPmhhc01vcmVVcGRhdGVzKCk7
CiB9CiAKLXZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVz
KCkKK3ZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzKGRv
dWJsZSBtb25vdG9uaWNUaW1lTGltaXQpCiB7CisgICAgbV9tb25vdG9uaWNUaW1lTGltaXQgPSBt
b25vdG9uaWNUaW1lTGltaXQ7CisKICAgICBpZiAoIW1fcXVldWUtPmhhc01vcmVVcGRhdGVzKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRl
ciwgbV9jb3BpZXIsIG1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJl
c1NpemUoKSk7CisgICAgLy8gQ2FsbCB1cGRhdGVNb3JlVGV4dHVyZXNOb3coKSBkaXJlY3RseSB1
bmxlc3MgaXQncyB0aGUgZmlyc3QgdXBkYXRlCisgICAgLy8gYXR0ZW1wdC4gVGhpcyBlbnN1cmVz
IHRoYXQgd2UgZW1wdHkgdGhlIHVwZGF0ZSBxdWV1ZSBpbiBhIGZpbml0ZQorICAgIC8vIGFtb3Vu
dCBvZiB0aW1lLgorICAgIGlmIChtX2ZpcnN0VXBkYXRlQXR0ZW1wdCkgeworICAgICAgICB1cGRh
dGVNb3JlVGV4dHVyZXNJZkVub3VnaFRpbWVSZW1haW5pbmcoKTsKKyAgICAgICAgbV9maXJzdFVw
ZGF0ZUF0dGVtcHQgPSBmYWxzZTsKKyAgICB9IGVsc2UKKyAgICAgICAgdXBkYXRlTW9yZVRleHR1
cmVzTm93KCk7Cit9CisKK3ZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6b25UaW1lckZp
cmVkKCkKK3sKKyAgICBpZiAoIW1fcXVldWUtPmhhc01vcmVVcGRhdGVzKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHVwZGF0ZU1vcmVUZXh0dXJlc0lmRW5vdWdoVGltZVJlbWFpbmluZygpOwor
fQorCitkb3VibGUgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6bW9ub3RvbmljVGltZU5vdygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworfQor
Citkb3VibGUgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzVGlt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRleHR1cmVVcGRhdGVUaWNrUmF0ZTsKIH0KIAogc2l6
ZV90IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSBj
b25zdAogewotICAgIHJldHVybiB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lOworICAgIHJldHVybiB0
ZXh0dXJlVXBkYXRlc1BlclRpY2s7Cit9CisKK3ZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxl
cjo6dXBkYXRlTW9yZVRleHR1cmVzSWZFbm91Z2hUaW1lUmVtYWluaW5nKCkKK3sKKyAgICBib29s
IGhhc1RpbWVSZW1haW5pbmcgPSBtb25vdG9uaWNUaW1lTm93KCkgPCBtX21vbm90b25pY1RpbWVM
aW1pdCAtIHVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoKTsKKyAgICBpZiAoaGFzVGltZVJlbWFpbmlu
ZykKKyAgICAgICAgdXBkYXRlTW9yZVRleHR1cmVzTm93KCk7Cit9CisKK3ZvaWQgQ0NUZXh0dXJl
VXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzTm93KCkKK3sKKyAgICBtX3RpbWVy
LT5zdGFydE9uZVNob3QodXBkYXRlTW9yZVRleHR1cmVzVGltZSgpKTsKKyAgICB1cGRhdGVUZXh0
dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIsIG1fY29waWVyLCBtX3VwbG9hZGVyLCBtX3F1ZXVlLmdl
dCgpLCB1cGRhdGVNb3JlVGV4dHVyZXNTaXplKCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmgKaW5kZXggM2Q0ZjE5ODZmNDQ5YzViNWJlZDVm
YjE2YmViZjdmYmMyYjZmMDY3ZS4uZGQ3NThiZWI0ZDlmY2Q4NjZlMThjODQ3Y2NkMGFmMjg5YmE5
NWJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuaApA
QCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyX2gKIAog
I2luY2x1ZGUgIkNDVGV4dHVyZVVwZGF0ZVF1ZXVlLmgiCisjaW5jbHVkZSAiQ0NUaW1lci5oIgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIApA
QCAtMzUsMTIgKzM2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFRleHR1cmVDb3Bp
ZXI7CiBjbGFzcyBUZXh0dXJlVXBsb2FkZXI7CiAKLWNsYXNzIENDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXIgeworY2xhc3MgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlciA6IHB1YmxpYyBDQ1RpbWVy
Q2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVDb250
cm9sbGVyPiBjcmVhdGUoUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIEND
UmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVy
LCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPENDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNyZWF0ZShDQ1RocmVhZCogdGhyZWFkLCBQYXNzT3duUHRy
PENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJj
ZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2Fk
ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXIocXVldWUsIHJlc291cmNlUHJvdmlkZXIsIGNvcGllciwgdXBsb2FkZXIpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKHRocmVh
ZCwgcXVldWUsIHJlc291cmNlUHJvdmlkZXIsIGNvcGllciwgdXBsb2FkZXIpKTsKICAgICB9CiAg
ICAgc3RhdGljIHNpemVfdCBtYXhQYXJ0aWFsVGV4dHVyZVVwZGF0ZXMoKTsKICAgICBzdGF0aWMg
dm9pZCB1cGRhdGVUZXh0dXJlcyhDQ1Jlc291cmNlUHJvdmlkZXIqLCBUZXh0dXJlQ29waWVyKiwg
VGV4dHVyZVVwbG9hZGVyKiwgQ0NUZXh0dXJlVXBkYXRlUXVldWUqLCBzaXplX3QgY291bnQpOwpA
QCAtNDgsMTkgKzQ5LDMwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyKCk7CiAKICAgICBib29sIGhhc01vcmVVcGRhdGVzKCkgY29uc3Q7Ci0gICAgdm9p
ZCB1cGRhdGVNb3JlVGV4dHVyZXMoKTsKKyAgICB2b2lkIHVwZGF0ZU1vcmVUZXh0dXJlcyhkb3Vi
bGUgbW9ub3RvbmljVGltZUxpbWl0KTsKKworICAgIC8vIENDVGltZXJDbGllbnQgaW1wbGVtZW50
YXRpb24uCisgICAgdmlydHVhbCB2b2lkIG9uVGltZXJGaXJlZCgpIE9WRVJSSURFOwogCiAgICAg
Ly8gVmlydHVhbCBmb3IgdGVzdGluZy4KKyAgICB2aXJ0dWFsIGRvdWJsZSBtb25vdG9uaWNUaW1l
Tm93KCkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUgdXBkYXRlTW9yZVRleHR1cmVzVGltZSgp
IGNvbnN0OwogICAgIHZpcnR1YWwgc2l6ZV90IHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSBjb25z
dDsKIAogcHJvdGVjdGVkOgotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoUGFzc093blB0
cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4sIENDUmVzb3VyY2VQcm92aWRlciosIFRleHR1cmVDb3Bp
ZXIqLCBUZXh0dXJlVXBsb2FkZXIqKTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKEND
VGhyZWFkKiwgUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4sIENDUmVzb3VyY2VQcm92
aWRlciosIFRleHR1cmVDb3BpZXIqLCBUZXh0dXJlVXBsb2FkZXIqKTsKKworICAgIHZvaWQgdXBk
YXRlTW9yZVRleHR1cmVzSWZFbm91Z2hUaW1lUmVtYWluaW5nKCk7CisgICAgdm9pZCB1cGRhdGVN
b3JlVGV4dHVyZXNOb3coKTsKIAorICAgIE93blB0cjxDQ1RpbWVyPiBtX3RpbWVyOwogICAgIE93
blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gbV9xdWV1ZTsKICAgICBib29sIG1fY29udGVudHNU
ZXh0dXJlc1B1cmdlZDsKICAgICBDQ1Jlc291cmNlUHJvdmlkZXIqIG1fcmVzb3VyY2VQcm92aWRl
cjsKICAgICBUZXh0dXJlQ29waWVyKiBtX2NvcGllcjsKICAgICBUZXh0dXJlVXBsb2FkZXIqIG1f
dXBsb2FkZXI7CisgICAgZG91YmxlIG1fbW9ub3RvbmljVGltZUxpbWl0OworICAgIGJvb2wgbV9m
aXJzdFVwZGF0ZUF0dGVtcHQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmlu
ZGV4IGEwYWMwMjgwMjUxOWQ4NjhiY2YwMGVhY2FmZWZlZjZhOThjNmNmNDIuLjI5N2IxMzU2MzIw
M2EzMGY5MDVkNGU1NjE0NjhkYjUwZGUwZTNiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHku
Y3BwCkBAIC01NzcsNyArNTc3LDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQ29t
cGxldGVPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24KICAgICB9IGVs
c2UKICAgICAgICAgbV9yZXNldENvbnRlbnRzVGV4dHVyZXNQdXJnZWRBZnRlckNvbW1pdE9uSW1w
bFRocmVhZCA9IHRydWU7CiAKLSAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29udHJvbGxlck9u
SW1wbFRocmVhZCA9IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZShxdWV1ZSwgbV9s
YXllclRyZWVIb3N0SW1wbC0+cmVzb3VyY2VQcm92aWRlcigpLCBtX2xheWVyVHJlZUhvc3RJbXBs
LT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVDb3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+
bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlVXBsb2FkZXIoKSk7CisgICAgbV9jdXJyZW50VGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXJPbkltcGxUaHJlYWQgPSBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
OjpjcmVhdGUoQ0NQcm94eTo6aW1wbFRocmVhZCgpLCBxdWV1ZSwgbV9sYXllclRyZWVIb3N0SW1w
bC0+cmVzb3VyY2VQcm92aWRlcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVy
KCktPnRleHR1cmVDb3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigp
LT50ZXh0dXJlVXBsb2FkZXIoKSk7CiAgICAgbV9jb21taXRDb21wbGV0aW9uRXZlbnRPbkltcGxU
aHJlYWQgPSBjb21wbGV0aW9uOwogCiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPmJlZ2lu
RnJhbWVDb21wbGV0ZSgpOwpAQCAtNjA4LDExICs2MDgsMTEgQEAgYm9vbCBDQ1RocmVhZFByb3h5
OjpjYW5EcmF3KCkKICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0SW1wbC0+Y2FuRHJhdygpOwog
fQogCi12b2lkIENDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJj
ZXMoKQordm9pZCBDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3Vy
Y2VzKGRvdWJsZSBtb25vdG9uaWNUaW1lTGltaXQpCiB7CiAgICAgVFJBQ0VfRVZFTlQwKCJjYyIs
ICJDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzIik7CiAg
ICAgQVNTRVJUKG1fY3VycmVudFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkKTsK
LSAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29udHJvbGxlck9uSW1wbFRocmVhZC0+dXBkYXRl
TW9yZVRleHR1cmVzKCk7CisgICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJPbklt
cGxUaHJlYWQtPnVwZGF0ZU1vcmVUZXh0dXJlcyhtb25vdG9uaWNUaW1lTGltaXQpOwogfQogCiB2
b2lkIENDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVh
ZFByb3h5LmgKaW5kZXggMTE3MDAxNmI3MGQyN2E2YThmMTYzN2RiNzMzNTE5ZmU4NTMxYjg5Ni4u
OTFhOWU0ZDQ0NjllZWVhNjZlOGQ5ZmY2MzY1NTVjYmM4YzAwZDhjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuaApAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNj
aGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIENDU2NoZWR1
bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQgc2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJZlBv
c3NpYmxlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRT
d2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwRm9yY2VkKCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNl
cyhkb3VibGUgbW9ub3RvbmljVGltZUxpbWl0KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlZEFjdGlvbkJlZ2luQ29udGV4dFJlY3JlYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVkQWN0aW9uQWNxdWlyZUxheWVyVGV4dHVyZXNGb3JNYWluVGhyZWFkKCkg
T1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2No
ZWR1bGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVy
VGVzdC5jcHAKaW5kZXggMjgwY2VmMmMzMWU5NWY3MzE3MjY4NzI3NmYyNWRkNmI0Mzg1OWY1Zi4u
OTNmZjY2ZWEyNDg2YjFiYzgxMjdmNWI1YWNjNzc5MmNjMjY0YTU1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0LmNwcApAQCAtODEsNyArODEs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2Fw
UmVzdWx0KHRydWUsIG1fc3dhcFdpbGxIYXBwZW5JZkRyYXdIYXBwZW5zKTsKICAgICB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpIE9WRVJS
SURFIHsgbV9hY3Rpb25zLnB1c2hfYmFjaygic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291
cmNlcyIpOyB9CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNv
dXJjZXMoZG91YmxlKSBPVkVSUklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFj
dGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMiKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRB
Y3Rpb25Db21taXQoKSBPVkVSUklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFj
dGlvbkNvbW1pdCIpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkJlZ2luQ29u
dGV4dFJlY3JlYXRpb24oKSBPVkVSUklERSB7IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxl
ZEFjdGlvbkJlZ2luQ29udGV4dFJlY3JlYXRpb24iKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hl
ZHVsZWRBY3Rpb25BY3F1aXJlTGF5ZXJUZXh0dXJlc0Zvck1haW5UaHJlYWQoKSBPVkVSUklERSB7
IG1fYWN0aW9ucy5wdXNoX2JhY2soInNjaGVkdWxlZEFjdGlvbkFjcXVpcmVMYXllclRleHR1cmVz
Rm9yTWFpblRocmVhZCIpOyB9CkBAIC0xMTQsMTIgKzExNCwxMCBAQCBURVNUKENDU2NoZWR1bGVy
VGVzdCwgUmVxdWVzdENvbW1pdCkKICAgICBjbGllbnQucmVzZXQoKTsKIAogICAgIC8vIFNpbmNl
LCBoYXNNb3JlUmVzb3VyY2VVcGRhdGVzIGlzIHNldCB0byBmYWxzZSwKLSAgICAvLyBiZWdpbkZy
YW1lQ29tcGxldGUgc2hvdWxkIHVwZGF0ZU1vcmVSZXNvdXJjZXMsIHRoZW4KLSAgICAvLyBjb21t
aXQKKyAgICAvLyBiZWdpbkZyYW1lQ29tcGxldGUgc2hvdWxkIGNvbW1pdAogICAgIHNjaGVkdWxl
ci0+YmVnaW5GcmFtZUNvbXBsZXRlKCk7Ci0gICAgRVhQRUNUX0VRKDIsIGNsaWVudC5udW1BY3Rp
b25zKCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291
cmNlcyIsIGNsaWVudC5hY3Rpb24oMCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0
aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigxKSk7CisgICAgRVhQRUNUX0VRKDEsIGNsaWVudC5u
dW1BY3Rpb25zKCkpOworICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uQ29tbWl0Iiwg
Y2xpZW50LmFjdGlvbigwKSk7CiAgICAgRVhQRUNUX1RSVUUodGltZVNvdXJjZS0+YWN0aXZlKCkp
OwogICAgIGNsaWVudC5yZXNldCgpOwogCkBAIC0xNTIsMTIgKzE1MCwxMCBAQCBURVNUKENDU2No
ZWR1bGVyVGVzdCwgUmVxdWVzdENvbW1pdEFmdGVyQmVnaW5GcmFtZSkKICAgICBzY2hlZHVsZXIt
PnNldE5lZWRzQ29tbWl0KCk7CiAKICAgICAvLyBTaW5jZSwgaGFzTW9yZVJlc291cmNlVXBkYXRl
cyBpcyBzZXQgdG8gZmFsc2UsIGFuZCBhbm90aGVyIGNvbW1pdCBpcwotICAgIC8vIG5lZWRlZCwg
YmVnaW5GcmFtZUNvbXBsZXRlIHNob3VsZCB1cGRhdGVNb3JlUmVzb3VyY2VzLCB0aGVuIGNvbW1p
dCwgdGhlbgotICAgIC8vIGJlZ2luIGFub3RoZXIgZnJhbWUuCisgICAgLy8gbmVlZGVkLCBiZWdp
bkZyYW1lQ29tcGxldGUgc2hvdWxkIGNvbW1pdCwgdGhlbiBiZWdpbiBhbm90aGVyIGZyYW1lLgog
ICAgIHNjaGVkdWxlci0+YmVnaW5GcmFtZUNvbXBsZXRlKCk7Ci0gICAgRVhQRUNUX0VRKDIsIGNs
aWVudC5udW1BY3Rpb25zKCkpOwotICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0aW9uVXBk
YXRlTW9yZVJlc291cmNlcyIsIGNsaWVudC5hY3Rpb24oMCkpOwotICAgIEVYUEVDVF9TVFJFUSgi
c2NoZWR1bGVkQWN0aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigxKSk7CisgICAgRVhQRUNUX0VR
KDEsIGNsaWVudC5udW1BY3Rpb25zKCkpOworICAgIEVYUEVDVF9TVFJFUSgic2NoZWR1bGVkQWN0
aW9uQ29tbWl0IiwgY2xpZW50LmFjdGlvbigwKSk7CiAgICAgY2xpZW50LnJlc2V0KCk7CiAKICAg
ICAvLyBUaWNrIHNob3VsZCBkcmF3IGJ1dCB0aGVuIGJlZ2luIGFub3RoZXIgZnJhbWUuCkBAIC0y
NTcsNyArMjUzLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gQ0NTY2hlZHVsZWRBY3Rpb25E
cmF3QW5kU3dhcFJlc3VsdCh0cnVlLCB0cnVlKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c2NoZWR1bGVkQWN0aW9uVXBkYXRlTW9yZVJlc291cmNlcygpIE9WRVJSSURFIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVzb3VyY2VzKGRvdWJsZSkgT1ZF
UlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvbkNvbW1pdCgpIE9WRVJS
SURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25CZWdpbkNvbnRleHRSZWNy
ZWF0aW9uKCkgT1ZFUlJJREUgeyB9CiAKQEAgLTM1Nyw3ICszNTMsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0KHRydWUsIHRydWUp
OwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZWRBY3Rpb25VcGRhdGVNb3JlUmVz
b3VyY2VzKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlZEFjdGlvblVw
ZGF0ZU1vcmVSZXNvdXJjZXMoZG91YmxlKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNj
aGVkdWxlZEFjdGlvbkJlZ2luQ29udGV4dFJlY3JlYXRpb24oKSBPVkVSUklERSB7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3RDb21t
b24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTY2hlZHVsZXJUZXN0Q29tbW9u
LmgKaW5kZXggZmI2MDk5Y2Y4YmI2NGM0NDkyNDRhZDhkYmM1MDI1Nzg0M2VhMThhYS4uODI0YWYy
NmM3ZmNkZTRlZWJiM2Y1NmE4MjQwYjk0YzNmYWEwM2FkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NjaGVkdWxlclRlc3RDb21tb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oCkBAIC05Niw2ICs5
Niw3IEBAIGNsYXNzIEZha2VDQ1RpbWVTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6Q0NUaW1lU291
cmNlIHsKIHB1YmxpYzoKICAgICBGYWtlQ0NUaW1lU291cmNlKCkKICAgICAgICAgOiBtX2FjdGl2
ZShmYWxzZSkKKyAgICAgICAgLCBtX25leHRUaWNrVGltZSgwKQogICAgICAgICAsIG1fY2xpZW50
KDApIHsgfQogCiAgICAgdmlydHVhbCB+RmFrZUNDVGltZVNvdXJjZSgpIHsgfQpAQCAtMTE0LDgg
KzExNSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2NsaWVudC0+b25UaW1lclRpY2soKTsK
ICAgICB9CiAKKyAgICB2b2lkIHNldE5leHRUaWNrVGltZShkb3VibGUgbmV4dFRpY2tUaW1lKSB7
IG1fbmV4dFRpY2tUaW1lID0gbmV4dFRpY2tUaW1lOyB9CisKIHByb3RlY3RlZDoKICAgICBib29s
IG1fYWN0aXZlOworICAgIGRvdWJsZSBtX25leHRUaWNrVGltZTsKICAgICBXZWJDb3JlOjpDQ1Rp
bWVTb3VyY2VDbGllbnQqIG1fY2xpZW50OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNw
cAppbmRleCA1ZjNmNTQyYTQwNjNmMzk0MmIwYzcyNDVlOGQzNTg3NWM4MzE0NTBiLi4xMTY1OWY2
ZjUyYjhhYmQwYWUzMDc1OWI3YTY2NTQxNDUxMDYwNDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJU
ZXN0LmNwcApAQCAtNTQxLDQgKzU0MSwxNDggQEAgVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXJUZXN0LCBUcmlwbGVVcGRhdGVGaW5hbFVwZGF0ZUFsbFBhcnRpYWwpCiAgICAgRVhQRUNU
X0VRKGtGdWxsVXBsb2FkcyArIGtQYXJ0aWFsVXBsb2FkcywgbV9udW1Ub3RhbFVwbG9hZHMpOwog
fQogCitjbGFzcyBGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlciA6IHB1YmxpYyBXZWJDb3Jl
OjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093
blB0cjxGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcj4gY3JlYXRlKFdlYkNvcmU6OkNDVGhy
ZWFkKiB0aHJlYWQsIFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+IHF1ZXVlLCBDQ1Jl
c291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZXIqIGNvcGllciwg
VGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgRmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIodGhyZWFkLCBxdWV1ZSwgcmVzb3Vy
Y2VQcm92aWRlciwgY29waWVyLCB1cGxvYWRlcikpOworICAgIH0KKworICAgIHZvaWQgc2V0TW9u
b3RvbmljVGltZU5vdyhkb3VibGUgdGltZSkgeyBtX21vbm90b25pY1RpbWVOb3cgPSB0aW1lOyB9
CisgICAgdmlydHVhbCBkb3VibGUgbW9ub3RvbmljVGltZU5vdygpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1fbW9ub3RvbmljVGltZU5vdzsgfQorICAgIHZvaWQgc2V0VXBkYXRlTW9yZVRleHR1
cmVzVGltZShkb3VibGUgdGltZSkgeyBtX3VwZGF0ZU1vcmVUZXh0dXJlc1RpbWUgPSB0aW1lOyB9
CisgICAgdmlydHVhbCBkb3VibGUgdXBkYXRlTW9yZVRleHR1cmVzVGltZSgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIG1fdXBkYXRlTW9yZVRleHR1cmVzVGltZTsgfQorICAgIHZvaWQgc2V0VXBk
YXRlTW9yZVRleHR1cmVzU2l6ZShzaXplX3Qgc2l6ZSkgeyBtX3VwZGF0ZU1vcmVUZXh0dXJlc1Np
emUgPSBzaXplOyB9CisgICAgdmlydHVhbCBzaXplX3QgdXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdXBkYXRlTW9yZVRleHR1cmVzU2l6ZTsgfQorCitw
cm90ZWN0ZWQ6CisgICAgRmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoV2ViQ29yZTo6Q0NU
aHJlYWQqIHRocmVhZCwgUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIEND
UmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVy
LCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQorICAgICAgICA6IFdlYkNvcmU6OkNDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXIodGhyZWFkLCBxdWV1ZSwgcmVzb3VyY2VQcm92aWRlciwgY29waWVy
LCB1cGxvYWRlcikKKyAgICAgICAgLCBtX21vbm90b25pY1RpbWVOb3coMCkKKyAgICAgICAgLCBt
X3VwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoMCkKKyAgICAgICAgLCBtX3VwZGF0ZU1vcmVUZXh0dXJl
c1NpemUoMCkgeyB9CisKKyAgICBkb3VibGUgbV9tb25vdG9uaWNUaW1lTm93OworICAgIGRvdWJs
ZSBtX3VwZGF0ZU1vcmVUZXh0dXJlc1RpbWU7CisgICAgc2l6ZV90IG1fdXBkYXRlTW9yZVRleHR1
cmVzU2l6ZTsKK307CisKK1RFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgVXBk
YXRlTW9yZVRleHR1cmVzKQoreworICAgIEZha2VDQ1RocmVhZCB0aHJlYWQ7CisKKyAgICBzZXRN
YXhVcGxvYWRDb3VudFBlclVwZGF0ZSgxKTsKKyAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRl
UXVldWUoMyk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDApOworCisg
ICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CisgICAgT3duUHRyPEZha2VD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyPiBjb250cm9sbGVyKEZha2VDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyOjpjcmVhdGUoJnRocmVhZCwgbV9xdWV1ZS5yZWxlYXNlKCksIG1fcmVzb3VyY2VQ
cm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlcikpOworCisgICAgY29udHJvbGxl
ci0+c2V0TW9ub3RvbmljVGltZU5vdygwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRhdGVNb3Jl
VGV4dHVyZXNUaW1lKDAuMSk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVz
U2l6ZSgxKTsKKyAgICAvLyBOb3QgZW5vdWdoIHRpbWUgZm9yIGFueSB1cGRhdGVzLgorICAgIGNv
bnRyb2xsZXItPnVwZGF0ZU1vcmVUZXh0dXJlcygwLjA5KTsKKyAgICBFWFBFQ1RfRkFMU0UodGhy
ZWFkLmhhc1BlbmRpbmdUYXNrKCkpOworICAgIEVYUEVDVF9FUSgwLCBtX251bUJlZ2luVXBsb2Fk
cyk7CisgICAgRVhQRUNUX0VRKDAsIG1fbnVtRW5kVXBsb2Fkcyk7CisKKyAgICB0aHJlYWQucmVz
ZXQoKTsKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNUaW1lTm93KDApOworICAgIGNvbnRy
b2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoMC4xKTsKKyAgICBjb250cm9sbGVyLT5z
ZXRVcGRhdGVNb3JlVGV4dHVyZXNTaXplKDEpOworICAgIC8vIE9ubHkgZW5vdWdoIHRpbWUgZm9y
IDEgdXBkYXRlLgorICAgIGNvbnRyb2xsZXItPnVwZGF0ZU1vcmVUZXh0dXJlcygwLjEyKTsKKyAg
ICBFWFBFQ1RfVFJVRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgY29udHJvbGxlci0+
c2V0TW9ub3RvbmljVGltZU5vdyh0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAuMCk7Cisg
ICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5V
cGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMSwgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgbV9udW1Ub3RhbFVwbG9hZHMpOworCisgICAgdGhyZWFkLnJlc2V0KCk7CisgICAgY29u
dHJvbGxlci0+c2V0TW9ub3RvbmljVGltZU5vdygwKTsKKyAgICBjb250cm9sbGVyLT5zZXRVcGRh
dGVNb3JlVGV4dHVyZXNUaW1lKDAuMSk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRl
eHR1cmVzU2l6ZSgxKTsKKyAgICAvLyBFbm91Z2ggdGltZSBmb3IgMiB1cGRhdGVzLgorICAgIGNv
bnRyb2xsZXItPnVwZGF0ZU1vcmVUZXh0dXJlcygwLjIyKTsKKyAgICBFWFBFQ1RfVFJVRSh0aHJl
YWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljVGltZU5v
dyhjb250cm9sbGVyLT5tb25vdG9uaWNUaW1lTm93KCkgKyB0aHJlYWQucGVuZGluZ0RlbGF5TXMo
KSAvIDEwMDAuMCk7CisgICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VR
KDMsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMywgbV9udW1FbmRVcGxvYWRz
KTsKKyAgICBFWFBFQ1RfRVEoMywgbV9udW1Ub3RhbFVwbG9hZHMpOworfQorCitURVNUX0YoQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE5vTW9yZVVwZGF0ZXMpCit7CisgICAgRmFrZUND
VGhyZWFkIHRocmVhZDsKKworICAgIHNldE1heFVwbG9hZENvdW50UGVyVXBkYXRlKDEpOworICAg
IGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZSgyKTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBs
b2Fkc1RvVXBkYXRlUXVldWUoMCk7CisKKyAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1w
bFRocmVhZDsKKyAgICBPd25QdHI8RmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNvbnRy
b2xsZXIoRmFrZUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZSgmdGhyZWFkLCBtX3F1
ZXVlLnJlbGVhc2UoKSwgbV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3Vw
bG9hZGVyKSk7CisKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNUaW1lTm93KDApOworICAg
IGNvbnRyb2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1RpbWUoMC4xKTsKKyAgICBjb250cm9s
bGVyLT5zZXRVcGRhdGVNb3JlVGV4dHVyZXNTaXplKDEpOworICAgIC8vIEVub3VnaCB0aW1lIGZv
ciAzIHVwZGF0ZXMgYnV0IG9ubHkgMiBuZWNlc3NhcnkuCisgICAgY29udHJvbGxlci0+dXBkYXRl
TW9yZVRleHR1cmVzKDAuMzEpOworICAgIEVYUEVDVF9UUlVFKHRocmVhZC5oYXNQZW5kaW5nVGFz
aygpKTsKKyAgICBjb250cm9sbGVyLT5zZXRNb25vdG9uaWNUaW1lTm93KGNvbnRyb2xsZXItPm1v
bm90b25pY1RpbWVOb3coKSArIHRocmVhZC5wZW5kaW5nRGVsYXlNcygpIC8gMTAwMC4wKTsKKyAg
ICB0aHJlYWQucnVuUGVuZGluZ1Rhc2soKTsKKyAgICBFWFBFQ1RfVFJVRSh0aHJlYWQuaGFzUGVu
ZGluZ1Rhc2soKSk7CisgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljVGltZU5vdyhjb250cm9s
bGVyLT5tb25vdG9uaWNUaW1lTm93KCkgKyB0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAvIDEwMDAu
MCk7CisgICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVt
QmVnaW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMiwgbV9udW1FbmRVcGxvYWRzKTsKKyAgICBF
WFBFQ1RfRVEoMiwgbV9udW1Ub3RhbFVwbG9hZHMpOworCisgICAgdGhyZWFkLnJlc2V0KCk7Cisg
ICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljVGltZU5vdygwKTsKKyAgICBjb250cm9sbGVyLT5z
ZXRVcGRhdGVNb3JlVGV4dHVyZXNUaW1lKDAuMSk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRl
TW9yZVRleHR1cmVzU2l6ZSgxKTsKKyAgICAvLyBFbm91Z2ggdGltZSBmb3IgdXBkYXRlcyBidXQg
bm8gbW9yZSB1cGRhdGVzIGxlZnQuCisgICAgY29udHJvbGxlci0+dXBkYXRlTW9yZVRleHR1cmVz
KDAuMzEpOworICAgIEVYUEVDVF9GQUxTRSh0aHJlYWQuaGFzUGVuZGluZ1Rhc2soKSk7CisgICAg
RVhQRUNUX0VRKDIsIG1fbnVtQmVnaW5VcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMiwgbV9udW1F
bmRVcGxvYWRzKTsKKyAgICBFWFBFQ1RfRVEoMiwgbV9udW1Ub3RhbFVwbG9hZHMpOworfQorCitU
RVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIFVwZGF0ZXNDb21wbGV0ZUluRmlu
aXRlVGltZSkKK3sKKyAgICBGYWtlQ0NUaHJlYWQgdGhyZWFkOworCisgICAgc2V0TWF4VXBsb2Fk
Q291bnRQZXJVcGRhdGUoMSk7CisgICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDIp
OworICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVRdWV1ZSgwKTsKKworICAgIERlYnVn
U2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOworICAgIE93blB0cjxGYWtlQ0NUZXh0dXJl
VXBkYXRlQ29udHJvbGxlcj4gY29udHJvbGxlcihGYWtlQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxl
cjo6Y3JlYXRlKCZ0aHJlYWQsIG1fcXVldWUucmVsZWFzZSgpLCBtX3Jlc291cmNlUHJvdmlkZXIu
Z2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIpKTsKKworICAgIGNvbnRyb2xsZXItPnNldE1v
bm90b25pY1RpbWVOb3coMCk7CisgICAgY29udHJvbGxlci0+c2V0VXBkYXRlTW9yZVRleHR1cmVz
VGltZSgwLjUpOworICAgIGNvbnRyb2xsZXItPnNldFVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoMSk7
CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDsgaSsrKSB7CisgICAgICAgIGlmICghY29u
dHJvbGxlci0+aGFzTW9yZVVwZGF0ZXMoKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg
IC8vIE5vdCBlbm91Z2ggdGltZSBmb3IgYW55IHVwZGF0ZXMuCisgICAgICAgIGNvbnRyb2xsZXIt
PnVwZGF0ZU1vcmVUZXh0dXJlcygwLjQpOworCisgICAgICAgIGlmICh0aHJlYWQuaGFzUGVuZGlu
Z1Rhc2soKSkgeworICAgICAgICAgICAgY29udHJvbGxlci0+c2V0TW9ub3RvbmljVGltZU5vdyhj
b250cm9sbGVyLT5tb25vdG9uaWNUaW1lTm93KCkgKyB0aHJlYWQucGVuZGluZ0RlbGF5TXMoKSAv
IDEwMDAuMCk7CisgICAgICAgICAgICB0aHJlYWQucnVuUGVuZGluZ1Rhc2soKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIEVYUEVDVF9FUSgyLCBtX251bUJlZ2luVXBsb2Fkcyk7CisgICAgRVhQ
RUNUX0VRKDIsIG1fbnVtRW5kVXBsb2Fkcyk7CisgICAgRVhQRUNUX0VRKDIsIG1fbnVtVG90YWxV
cGxvYWRzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>159954</attachid>
            <date>2012-08-22 09:34:23 -0700</date>
            <delta_ts>2012-08-22 09:34:23 -0700</delta_ts>
            <desc>Chromium trace showing frame throttling</desc>
            <filename>30fps-cap.zip</filename>
            <type>application/zip</type>
            <size>252346</size>
            <attacher name="Sami Kyöstilä">skyostil</attacher>
            
              <data encoding="base64">UEsDBBQAAAAIAH2GFkHdt9I6BtkDAF2sSAAPABwAMzBmcHMtY2FwLnRyYWNlVVQJAAMeADVQHgA1
UHV4CwABBGIYAgAEiBMAANz93ZIlx3EljL7KGK51pMz4j77jkJQ+mg1HNEEjfWbnAlboLhA9BLpx
+ocUbWze/bjHrqpdXXtlZ2ZkuEckRAmAQGCvlZkR4R7uy93/zzefPty9vv/9X+/fffr4zav/7//5
5vXdp29effPp7uNfvvmHb355++abV7MNc/qHbz49/LUx9Nf0z6bJuCka72IO9E/+SP/Wf6d/5d3d
z/f0l3+8//jx7s/3/+P9+19evfq3z+/+/fKDdx/+TP/q//nm44fX3/3w9if+J//xH/+J/vf1+3ef
iMM//fmXz/x/3/3t7tPrH9+8//N3n378cH/35h9fv6Z/u/xbn9+9pn/rX9/95vVf3r3/20/3b/58
/83//b//UMM8mfTA/PdbmW9DKn/9HClPU4939Nsf71//ZePbueVsnMzbufkO2Wf9t/On9x8/NVhD
OXittxTiid+S0E77Aikb7yfb4S0dPo0Kcz8pnEaMNJv5VKdR4ew0TqMvkc61zwp3qTUEkMyJ35KV
f0vzTEhmTuc7jS7MrcJpdEHqsd/qT6ML56C1guzU4aw+vs8euCtY/QekU3qQF+7zkZ323Xc/33+6
e3P36W5l7T6C/PEKcnmu78r/d30vD//lbz/8yy+f/3j39t03e9Aen24v2n8+vOuvvUTz7KGeH+kh
hJRbHLR/u//+L2/p+//0+f7hr3/56e7TD+8//Pzx8y+/vP/w6bu3P//y0806+Hj/6dsf7z7cv/n3
tz/ff/jntx/u/0AL6cNf737a+jT25dPYBpv+7S+v+f++e/3j3bt39z9998uH9//19xvy396/e1NN
0+WG+/srnzfPk1FDahjN+EAv9/7D/YeHv/jub2/pnPh08w3evH3zh3e0XN7Sxrr/t/vXn55/kMff
2P4A4AL0b+VH/rPAv3r1BPb2/bvf3v300/d3r/GL248NduGX2L97/7v7H+4/0G75X7/w40Lcy+bb
jgoO//+8//4/3t7/7Q+0YV+9+unu7+8/f2oBhc7qrVC736YBb/NPdCJ/Kmvkuv5oWX36kX/D0dr9
8f7tn38kuOTcM+yPf3l7txX3Gvh5jvtwEv6Wl/Z/ffqWfu/Vq+/ffvr57hf4sPsA4+1blQUEK+YP
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
AE/ZAwAAAA==
</data>

          </attachment>
      

    </bug>

</bugzilla>