<?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>98223</bug_id>
          
          <creation_ts>2012-10-02 18:29:00 -0700</creation_ts>
          <short_desc>Use monotonically increasing time throughout inspector</short_desc>
          <delta_ts>2014-12-01 14:34:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>84912</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="James Simonsen">simonjam</assigned_to>
          <cc>burg</cc>
    
    <cc>caseq</cc>
    
    <cc>dglazkov</cc>
    
    <cc>pfeldman</cc>
    
    <cc>tonyg</cc>
    
    <cc>vsevik</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>733298</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-02 18:29:00 -0700</bug_when>
    <thetext>Use monotonically increasing time throughout inspector</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733300</commentid>
    <comment_count>1</comment_count>
      <attachid>166793</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-02 18:31:14 -0700</bug_when>
    <thetext>Created attachment 166793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733304</commentid>
    <comment_count>2</comment_count>
      <attachid>166793</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-02 18:37:00 -0700</bug_when>
    <thetext>Comment on attachment 166793
Patch

Attachment 166793 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14125541</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733319</commentid>
    <comment_count>3</comment_count>
      <attachid>166799</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-02 19:15:38 -0700</bug_when>
    <thetext>Created attachment 166799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733320</commentid>
    <comment_count>4</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-02 19:18:48 -0700</bug_when>
    <thetext>This means we don&apos;t need the ugly conversion code and should make the times more accurate too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733356</commentid>
    <comment_count>5</comment_count>
      <attachid>166799</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-02 22:03:58 -0700</bug_when>
    <thetext>Comment on attachment 166799
Patch

Attachment 166799 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14138427

New failing tests:
http/tests/inspector/resource-har-conversion.html
http/tests/inspector/resource-parameters.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733610</commentid>
    <comment_count>6</comment_count>
      <attachid>166799</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-03 06:03:11 -0700</bug_when>
    <thetext>Comment on attachment 166799
Patch

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

&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:-746
&gt; -    double finishTime = 0.0;

why did this change?

&gt; Source/WebCore/inspector/InspectorPageAgent.cpp:1007
&gt; +        m_geolocationPosition = GeolocationPosition::create(monotonicallyIncreasingTime() * 1000.0, *latitude, *longitude, *accuracy);

I am not sure what this time stands for, it might be accessible via the web facing API, we might want to have wall time here.

&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:115
&gt; +        .setRequestTime(timing.requestTime)

Is there a corresponding downstream change?

&gt; Source/WebCore/inspector/front-end/CanvasProfileView.js:145
&gt; +            this._debugInfoElement.textContent = &quot;Replay time: &quot; + (performance.webkitNow() - time) + &quot;ms&quot;;

Here and below: why do you change this? it does not operate backend timers, so i&apos;d leave it as is. otherwise we would need to remove prefix at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734320</commentid>
    <comment_count>7</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-03 19:45:28 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 166799 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166799&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:-746
&gt; &gt; -    double finishTime = 0.0;
&gt; 
&gt; why did this change?

Previously, we&apos;d convert the monotonicFinishTime (passed in to this function) to a currentTime-like time by calling convertMonotonicTimeToDocumentTime. Now that I&apos;ve changed inspector to always use monotonic times, this is no longer necessary, so we just pass the (monotonic) finishTime through without modification.

&gt; &gt; Source/WebCore/inspector/InspectorPageAgent.cpp:1007
&gt; &gt; +        m_geolocationPosition = GeolocationPosition::create(monotonicallyIncreasingTime() * 1000.0, *latitude, *longitude, *accuracy);
&gt; 
&gt; I am not sure what this time stands for, it might be accessible via the web facing API, we might want to have wall time here.

Fair enough. Done.

&gt; &gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:115
&gt; &gt; +        .setRequestTime(timing.requestTime)
&gt; 
&gt; Is there a corresponding downstream change?

No, it&apos;s always been a monotonic time. We&apos;re just passing it through instead of converting it to a pseudo-currentTime (see my comment earlier about finishTime).

&gt; &gt; Source/WebCore/inspector/front-end/CanvasProfileView.js:145
&gt; &gt; +            this._debugInfoElement.textContent = &quot;Replay time: &quot; + (performance.webkitNow() - time) + &quot;ms&quot;;
&gt; 
&gt; Here and below: why do you change this? it does not operate backend timers, so i&apos;d leave it as is. otherwise we would need to remove prefix at some point.

currentTime() (aka Date.now()) is susceptible to the user&apos;s clock changing, either manually or through NTP. It&apos;s strictly better to use monotonicallyIncreasingTime (aka performance.webkitNow()) when timing operations.

However, Tony pointed out off-list that the mac port doesn&apos;t support webkitNow. So, I&apos;ll revert the JS changes for now. We should switch back ASAP.


(In reply to comment #5)
&gt; (From update of attachment 166799 [details])
&gt; Attachment 166799 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/14138427
&gt; 
&gt; New failing tests:
&gt; http/tests/inspector/resource-har-conversion.html
&gt; http/tests/inspector/resource-parameters.html

So HAR actually has a use for currentTime. The startedDateTime must be a Date.

I still think it&apos;s the right thing to use monotonic time everywhere in inspector for the reasons listed above. I&apos;d like to treat HAR a special case and let it add in the offset as needed, but leave the rest of the code only dealing with monotonic times.

I&apos;ve attached a patch that does that, but it feels clunky. If any of you inspector gurus have a better approach, please let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734321</commentid>
    <comment_count>8</comment_count>
      <attachid>167025</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-03 19:45:37 -0700</bug_when>
    <thetext>Created attachment 167025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734346</commentid>
    <comment_count>9</comment_count>
      <attachid>167025</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-03 21:13:44 -0700</bug_when>
    <thetext>Comment on attachment 167025
Patch

Attachment 167025 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14172040

New failing tests:
http/tests/inspector/resource-har-pages.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738393</commentid>
    <comment_count>10</comment_count>
      <attachid>167889</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-09 18:08:46 -0700</bug_when>
    <thetext>Created attachment 167889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738394</commentid>
    <comment_count>11</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-09 18:10:29 -0700</bug_when>
    <thetext>&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 166799 [details] [details])
&gt; &gt; Attachment 166799 [details] [details] did not pass chromium-ews (chromium-xvfb):
&gt; &gt; Output: http://queues.webkit.org/results/14138427
&gt; &gt; 
&gt; &gt; New failing tests:
&gt; &gt; http/tests/inspector/resource-har-conversion.html
&gt; &gt; http/tests/inspector/resource-parameters.html
&gt; 
&gt; So HAR actually has a use for currentTime. The startedDateTime must be a Date.
&gt; 
&gt; I still think it&apos;s the right thing to use monotonic time everywhere in inspector for the reasons listed above. I&apos;d like to treat HAR a special case and let it add in the offset as needed, but leave the rest of the code only dealing with monotonic times.
&gt; 
&gt; I&apos;ve attached a patch that does that, but it feels clunky. If any of you inspector gurus have a better approach, please let me know.

Ping? I&apos;d love some feedback from the inspector team about how to handle the HAR writing code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738898</commentid>
    <comment_count>12</comment_count>
      <attachid>167889</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-10 06:28:44 -0700</bug_when>
    <thetext>Comment on attachment 167889
Patch

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

I think we save few lines of code and it becomes more straightforward from the maintenance standpoint, but at the same time, I think naive protocol users will not appreciate the getMonotonicClockOffset necessity. What is the main motivation behind this change again?

&gt; Source/WebCore/inspector/Inspector.json:926
&gt; +                &quot;name&quot;: &quot;getMonotonicClockOffset&quot;,

How often do you anticipate clients to call this? I.e. this value can change at chrome runtime, right?

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:181
&gt; +    m_currentMatchData.startTime = monotonicallyIncreasingTime() * 1000.0;

I&apos;d convert domains one by one. For example, converting CSS profiler in a separate change would make more sense to me.

&gt; Source/WebCore/inspector/front-end/HAREntry.js:324
&gt; +            monotonicStartTime: page.startTime,

I don&apos;t think HAR spec has this field? http://www.softwareishard.com/blog/har-12-spec/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740548</commentid>
    <comment_count>13</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-11 19:36:04 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 167889 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167889&amp;action=review
&gt; 
&gt; I think we save few lines of code and it becomes more straightforward from the maintenance standpoint, but at the same time, I think naive protocol users will not appreciate the getMonotonicClockOffset necessity. What is the main motivation behind this change again?

The ResourceLoadTiming struct that comes from the embedder contains monotonic clock values (TimeTicks in Chrome). However, inspector currently uses currentTime() for everything. That means we need to convert those monotonic times to wall times before they can be used in inspector.

Using wall times is bad for inspector. If the user&apos;s clock shifts (most likely due to background clock synchronization), then any duration reported by inspector is bogus.

So, by switching to monotonic times, we can get rid of this conversion layer and improve the accuracy of our time measurement.

The one exception is HAR&apos;s startedDateTime, which is spec&apos;d to be a wall time. For that, we need to do one conversion.

&gt; 
&gt; &gt; Source/WebCore/inspector/Inspector.json:926
&gt; &gt; +                &quot;name&quot;: &quot;getMonotonicClockOffset&quot;,
&gt; 
&gt; How often do you anticipate clients to call this? I.e. this value can change at chrome runtime, right?

It definitely can change. My opinion is that the startedDateTime doesn&apos;t need to be super accurate, so only updating it once, or very rarely, is good enough for me.

I was hoping the HAR writer would be the only client for this function. Is there any way to restrict it to that? Another option is to have getMonotonicallyIncreasingTime() instead of getMonotonicClockOffset(). The HAR writer could compute its own offset then.

&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:181
&gt; &gt; +    m_currentMatchData.startTime = monotonicallyIncreasingTime() * 1000.0;
&gt; 
&gt; I&apos;d convert domains one by one. For example, converting CSS profiler in a separate change would make more sense to me.

None of the time values have distinct types, so it&apos;s hard to know which ones use the old format and which use the new format. I think switching all of them at once would avoid any confusion.

&gt; &gt; Source/WebCore/inspector/front-end/HAREntry.js:324
&gt; &gt; +            monotonicStartTime: page.startTime,
&gt; 
&gt; I don&apos;t think HAR spec has this field? http://www.softwareishard.com/blog/har-12-spec/

It&apos;s a hack. It&apos;s not actually exposed. I&apos;ll come up with a better way of accomplishing this. I&apos;m thinking of having a HAREntryFactory that stores the offset. I&apos;ll try to post a better patch tomorrow.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166793</attachid>
            <date>2012-10-02 18:31:14 -0700</date>
            <delta_ts>2012-10-02 19:15:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98223-20121002183027.patch</filename>
            <type>text/plain</type>
            <size>24859</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc4NGU4Njg3NDc3NGRi
MzQ1NTFkYjMxNmRiYjNmNGQxNzc4ODFjYi4uZTU0YzI5MzE0MjFiYzI2ZDFkYjJiZTllOTNmMWYw
N2I4ZTlmYjI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTEwLTAyICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgbW9ub3Rv
bmljYWxseSBpbmNyZWFzaW5nIHRpbWUgdGhyb3VnaG91dCBpbnNwZWN0b3IKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZW1vdmVzIHRoZSBuZWVk
IGZvciBhbGwgdGhlIGNvbnZlcnNpb24gY29kZSBiZXR3ZWVuIHRpbWUgYmFzZXMgYW5kIGl0IHNo
b3VsZCBtYWtlIHRpbWVzIG1vcmUgcmVsaWFibGUuCisKKyAgICAgICAgVGVzdHM6IEV4aXN0aW5n
IGluc3BlY3RvciB0ZXN0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvclByb2ZpbGU6OnN0YXJ0U2VsZWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JQcm9maWxlOjpjb21taXRTZWxlY3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvclByb2ZpbGU6OmNvbW1pdFNlbGVjdG9yVGltZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkRmluaXNoTG9hZGluZ0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojpkb21Db250
ZW50RXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Omxv
YWRFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c2V0
R2VvbG9jYXRpb25PdmVycmlkZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RGb3JUaW1pbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbFNlbmRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVS
ZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRS
ZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdl
bnQ6OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2
ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmRpZENsb3NlV2ViU29ja2V0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRTZW5kV2ViU29ja2V0RnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVdl
YlNvY2tldEZyYW1lRXJyb3IpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0
YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6dGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ2FudmFzUHJvZmlsZVZpZXcuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90eXBlLl9vblRyYWNlTG9n
SXRlbUNsaWNrLmRpZFJlcGxheVRyYWNlTG9nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYW52
YXNQcm9maWxlVmlldy5wcm90b3R5cGUuX29uVHJhY2VMb2dJdGVtQ2xpY2spOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3Jlc3RvcmVQYWludExpbmVz
T3BlcmF0aW9uc0NyZWRpdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5Q
YW5lbC5wcm90b3R5cGUuX2FkanVzdFBhaW50TGluZXNPcGVyYXRpb25zUmVmcmVzaFZhbHVlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmQuanM6CisgICAg
ICAgIChJbnNwZWN0b3JCYWNrZW5kQ2xhc3MucHJvdG90eXBlLl93cmFwKToKKyAgICAgICAgKElu
c3BlY3RvckJhY2tlbmRDbGFzcy5wcm90b3R5cGUuZGlzcGF0Y2gpOgorCiAyMDEyLTEwLTAyICBW
c2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtSZWdyZXNzaW9uXSBEZXZUb29sc0V4dGVuc2lvblRlc3QuVGVzdENvbnRlbnRTY3Jp
cHRJc1ByZXNlbnQgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwCmluZGV4IGJiZTg4ZDJjMGZlN2IzOWI5ZjI2NDAyZDc3NDcyYTVhYzdlNjJh
OGMuLmY3NDRlM2NlOTc2MmMxZDU2YjgwYmZhY2YxOWI4ODVjMzU5OGY5YjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtMTc4LDEyICsx
NzgsMTIgQEAgaW5saW5lIHZvaWQgU2VsZWN0b3JQcm9maWxlOjpzdGFydFNlbGVjdG9yKGNvbnN0
IENTU1N0eWxlUnVsZSogcnVsZSkKICAgICB9CiAgICAgbV9jdXJyZW50TWF0Y2hEYXRhLnVybCA9
IHVybDsKICAgICBtX2N1cnJlbnRNYXRjaERhdGEubGluZU51bWJlciA9IHJ1bGUtPnN0eWxlUnVs
ZSgpLT5zb3VyY2VMaW5lKCk7Ci0gICAgbV9jdXJyZW50TWF0Y2hEYXRhLnN0YXJ0VGltZSA9IFdU
Rjo6Y3VycmVudFRpbWVNUygpOworICAgIG1fY3VycmVudE1hdGNoRGF0YS5zdGFydFRpbWUgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAqIDEwMDAuMDsKIH0KIAogaW5saW5lIHZvaWQg
U2VsZWN0b3JQcm9maWxlOjpjb21taXRTZWxlY3Rvcihib29sIG1hdGNoZWQpCiB7Ci0gICAgZG91
YmxlIG1hdGNoVGltZU1zID0gV1RGOjpjdXJyZW50VGltZU1TKCkgLSBtX2N1cnJlbnRNYXRjaERh
dGEuc3RhcnRUaW1lOworICAgIGRvdWJsZSBtYXRjaFRpbWVNcyA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpICogMTAwMC4wIC0gbV9jdXJyZW50TWF0Y2hEYXRhLnN0YXJ0VGltZTsKICAg
ICBtX3RvdGFsTWF0Y2hpbmdUaW1lTXMgKz0gbWF0Y2hUaW1lTXM7CiAKICAgICBSdWxlTWF0Y2hp
bmdTdGF0c01hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fcnVsZU1hdGNoaW5nU3RhdHMuYWRkKG1h
a2VLZXkoKSwgUnVsZU1hdGNoaW5nU3RhdHMobV9jdXJyZW50TWF0Y2hEYXRhLCBtYXRjaFRpbWVN
cywgMSwgbWF0Y2hlZCA/IDEgOiAwKSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgaW5saW5lIHZvaWQg
U2VsZWN0b3JQcm9maWxlOjpjb21taXRTZWxlY3Rvcihib29sIG1hdGNoZWQpCiAKIGlubGluZSB2
b2lkIFNlbGVjdG9yUHJvZmlsZTo6Y29tbWl0U2VsZWN0b3JUaW1lKCkKIHsKLSAgICBkb3VibGUg
cHJvY2Vzc2luZ1RpbWVNcyA9IFdURjo6Y3VycmVudFRpbWVNUygpIC0gbV9jdXJyZW50TWF0Y2hE
YXRhLnN0YXJ0VGltZTsKKyAgICBkb3VibGUgcHJvY2Vzc2luZ1RpbWVNcyA9IG1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpICogMTAwMC4wIC0gbV9jdXJyZW50TWF0Y2hEYXRhLnN0YXJ0VGlt
ZTsKICAgICBtX3RvdGFsTWF0Y2hpbmdUaW1lTXMgKz0gcHJvY2Vzc2luZ1RpbWVNczsKIAogICAg
IFJ1bGVNYXRjaGluZ1N0YXRzTWFwOjppdGVyYXRvciBpdCA9IG1fcnVsZU1hdGNoaW5nU3RhdHMu
ZmluZChtYWtlS2V5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBhYmI1ZDc1YjkzYzZlNDQxMWJhM2QyOTE0
MTA2MWMxZjkyZmI3MzVlLi5mYTYxMzNkYjBmYjRiY2U4YjY3ZjgzYjMyMTk0MjhmYmE4OThlZjM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcApAQCAtNzM2LDE4ICs3MzYsMTMgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVEYXRhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW4KICAgICAgICAgcmVzb3VyY2VBZ2VudC0+ZGlkUmVjZWl2ZURhdGEoaWRlbnRpZmllciwgZGF0
YSwgZGF0YUxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgpOwogfQogCi12b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExv
YWRlciogbG9hZGVyLCBkb3VibGUgbW9ub3RvbmljRmluaXNoVGltZSkKK3ZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQogewogICAgIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JU
aW1lbGluZUFnZW50KCk7CiAgICAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdlbnQoKTsKICAgICBp
ZiAoIXRpbWVsaW5lQWdlbnQgJiYgIXJlc291cmNlQWdlbnQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGRvdWJsZSBmaW5pc2hUaW1lID0gMC4wOwotICAgIC8vIEZJWE1FOiBFeHBvc2UgYWxsIG9m
IHRoZSB0aW1pbmcgZGV0YWlscyB0byBpbnNwZWN0b3IgYW5kIGhhdmUgaXQgY2FsY3VsYXRlIGZp
bmlzaFRpbWUuCi0gICAgaWYgKG1vbm90b25pY0ZpbmlzaFRpbWUpCi0gICAgICAgIGZpbmlzaFRp
bWUgPSBsb2FkZXItPnRpbWluZygpLT5jb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1l
KG1vbm90b25pY0ZpbmlzaFRpbWUpOwotCiAgICAgaWYgKHRpbWVsaW5lQWdlbnQpCiAgICAgICAg
IHRpbWVsaW5lQWdlbnQtPmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZShpZGVudGlmaWVyLCBmYWxz
ZSwgZmluaXNoVGltZSwgbG9hZGVyLT5mcmFtZSgpKTsKICAgICBpZiAocmVzb3VyY2VBZ2VudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5k
ZXggZWYzOWU2ZjEzOTMwNWNmYWI4ZGE4MThlM2ExMWQwOTZmMzhmNmM2NC4uNzQxZWY0NWZmZjc3
YzhlYzBkOTIxZDAzMDkxYzJiYWM3ODI5NzZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTc2NywxMiArNzY3LDEyIEBAIHZvaWQg
SW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqIGZy
YW1lLCBET01XcmFwcGVyV29yCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZG9tQ29udGVudEV2
ZW50RmlyZWQoKQogewogICAgIG1fZGlkTG9hZEV2ZW50RmlyZSA9IHRydWU7Ci0gICAgbV9mcm9u
dGVuZC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7CisgICAgbV9mcm9udGVu
ZC0+ZG9tQ29udGVudEV2ZW50RmlyZWQobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwog
fQogCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQoKQogewotICAgIG1f
ZnJvbnRlbmQtPmxvYWRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOworICAgIG1fZnJvbnRlbmQt
PmxvYWRFdmVudEZpcmVkKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIpCkBAIC0xMDA0LDcgKzEwMDQsNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2V0R2Vv
bG9jYXRpb25PdmVycmlkZShFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IGRvdWJsZQogCiAgICAg
bV9nZW9sb2NhdGlvbk92ZXJyaWRkZW4gPSB0cnVlOwogICAgIGlmIChsYXRpdHVkZSAmJiBsb25n
aXR1ZGUgJiYgYWNjdXJhY3kpCi0gICAgICAgIG1fZ2VvbG9jYXRpb25Qb3NpdGlvbiA9IEdlb2xv
Y2F0aW9uUG9zaXRpb246OmNyZWF0ZShjdXJyZW50VGltZU1TKCksICpsYXRpdHVkZSwgKmxvbmdp
dHVkZSwgKmFjY3VyYWN5KTsKKyAgICAgICAgbV9nZW9sb2NhdGlvblBvc2l0aW9uID0gR2VvbG9j
YXRpb25Qb3NpdGlvbjo6Y3JlYXRlKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICogMTAw
MC4wLCAqbGF0aXR1ZGUsICpsb25naXR1ZGUsICphY2N1cmFjeSk7CiAgICAgZWxzZQogICAgICAg
ICBtX2dlb2xvY2F0aW9uUG9zaXRpb24uY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDdkZWZiMzU5NWRj
YjFhZGE5MjUyYTdlYjYyMDgzNDU2NjU4YWI0YzQuLmJkOWRkNDkyOTEyOGFkMDQyOTk0NTA0Y2E3
NGQzNTk3ZDk3ZDQ0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCBzdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9ySGVhZGVycyhjb25zdCBIVFRQSGVh
ZGVyTWFwJiBoZQogc3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291
cmNlVGltaW5nPiBidWlsZE9iamVjdEZvclRpbWluZyhjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcm
IHRpbWluZywgRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKICAgICByZXR1cm4gVHlwZUJ1aWxk
ZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5nOjpjcmVhdGUoKQotICAgICAgICAuc2V0UmVxdWVz
dFRpbWUodGltaW5nLmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Eb2N1bWVudFRpbWUobG9hZGVy
LT50aW1pbmcoKSwgMCkpCisgICAgICAgIC5zZXRSZXF1ZXN0VGltZSh0aW1pbmcucmVxdWVzdFRp
bWUpCiAgICAgICAgIC5zZXRQcm94eVN0YXJ0KHRpbWluZy5wcm94eVN0YXJ0KQogICAgICAgICAu
c2V0UHJveHlFbmQodGltaW5nLnByb3h5RW5kKQogICAgICAgICAuc2V0RG5zU3RhcnQodGltaW5n
LmRuc1N0YXJ0KQpAQCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dDo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMCiAg
ICAgfQogCiAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpJbml0aWF0b3I+IGluaXRp
YXRvck9iamVjdCA9IGJ1aWxkSW5pdGlhdG9yT2JqZWN0KGxvYWRlci0+ZnJhbWUoKSA/IGxvYWRl
ci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKSA6IDApOwotICAgIG1fZnJvbnRlbmQtPnJlcXVlc3RXaWxs
QmVTZW50KHJlcXVlc3RJZCwgbV9wYWdlQWdlbnQtPmZyYW1lSWQobG9hZGVyLT5mcmFtZSgpKSwg
bV9wYWdlQWdlbnQtPmxvYWRlcklkKGxvYWRlciksIGxvYWRlci0+dXJsKCkuc3RyaW5nKCksIGJ1
aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpLCBjdXJyZW50VGltZSgpLCBpbml0
aWF0b3JPYmplY3QsIGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShyZWRpcmVjdFJlc3Bv
bnNlLCBsb2FkZXIpKTsKKyAgICBtX2Zyb250ZW5kLT5yZXF1ZXN0V2lsbEJlU2VudChyZXF1ZXN0
SWQsIG1fcGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIG1fcGFnZUFnZW50LT5s
b2FkZXJJZChsb2FkZXIpLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBidWlsZE9iamVjdEZvclJl
c291cmNlUmVxdWVzdChyZXF1ZXN0KSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIGlu
aXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVz
cG9uc2UsIGxvYWRlcikpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Om1hcmtS
ZXNvdXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAgLTI3NCw3ICsyNzQs
NyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZQogICAgICAgICBtX3Jlc291cmNlc0RhdGEtPnJl
c3BvbnNlUmVjZWl2ZWQocmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZy
YW1lKCkpLCByZXNwb25zZSk7CiAgICAgfQogICAgIG1fcmVzb3VyY2VzRGF0YS0+c2V0UmVzb3Vy
Y2VUeXBlKHJlcXVlc3RJZCwgdHlwZSk7Ci0gICAgbV9mcm9udGVuZC0+cmVzcG9uc2VSZWNlaXZl
ZChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIG1fcGFn
ZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBjdXJyZW50VGltZSgpLCBJbnNwZWN0b3JQYWdlQWdl
bnQ6OnJlc291cmNlVHlwZUpzb24odHlwZSksIHJlc291cmNlUmVzcG9uc2UpOworICAgIG1fZnJv
bnRlbmQtPnJlc3BvbnNlUmVjZWl2ZWQocmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChs
b2FkZXItPmZyYW1lKCkpLCBtX3BhZ2VBZ2VudC0+bG9hZGVySWQobG9hZGVyKSwgbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCksIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VUeXBlSnNv
bih0eXBlKSwgcmVzb3VyY2VSZXNwb25zZSk7CiAgICAgLy8gSWYgd2UgcmV2YWxpZGF0ZWQgdGhl
IHJlc291cmNlIGFuZCBnb3QgTm90IG1vZGlmaWVkLCBzZW5kIGNvbnRlbnQgbGVuZ3RoIGZvbGxv
d2luZyBkaWRSZWNlaXZlUmVzcG9uc2UKICAgICAvLyBhcyB0aGVyZSB3aWxsIGJlIG5vIGNhbGxz
IHRvIGRpZFJlY2VpdmVEYXRhIGZyb20gdGhlIG5ldHdvcmsgc3RhY2suCiAgICAgaWYgKGNhY2hl
ZFJlc291cmNlU2l6ZSAmJiBpc05vdE1vZGlmaWVkKQpAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQg
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZURhdGEodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBjaGFyCiAgICAgICAgICAgICBtX3Jlc291cmNlc0RhdGEtPm1heWJlQWRk
UmVzb3VyY2VEYXRhKHJlcXVlc3RJZCwgZGF0YSwgZGF0YUxlbmd0aCk7CiAgICAgfQogCi0gICAg
bV9mcm9udGVuZC0+ZGF0YVJlY2VpdmVkKHJlcXVlc3RJZCwgY3VycmVudFRpbWUoKSwgZGF0YUxl
bmd0aCwgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIG1fZnJvbnRlbmQtPmRhdGFSZWNlaXZlZChy
ZXF1ZXN0SWQsIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBkYXRhTGVuZ3RoLCBlbmNv
ZGVkRGF0YUxlbmd0aCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkRmlu
aXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpAQCAtMzA4LDcgKzMwOCw3IEBAIHZvaWQgSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IERvY3VtZW50CiAgICAgbV9yZXNvdXJjZXNEYXRhLT5tYXliZURlY29kZURhdGFUb0NvbnRlbnQo
cmVxdWVzdElkKTsKIAogICAgIGlmICghZmluaXNoVGltZSkKLSAgICAgICAgZmluaXNoVGltZSA9
IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIGZpbmlzaFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKTsKIAogICAgIG1fZnJvbnRlbmQtPmxvYWRpbmdGaW5pc2hlZChyZXF1ZXN0SWQs
IGZpbmlzaFRpbWUpOwogfQpAQCAtMzI0LDcgKzMyNCw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVu
dExvCiAgICAgfQogCiAgICAgYm9vbCBjYW5jZWxlZCA9IGVycm9yLmlzQ2FuY2VsbGF0aW9uKCk7
Ci0gICAgbV9mcm9udGVuZC0+bG9hZGluZ0ZhaWxlZChyZXF1ZXN0SWQsIGN1cnJlbnRUaW1lKCks
IGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCksIGNhbmNlbGVkID8gJmNhbmNlbGVkIDogMCk7
CisgICAgbV9mcm9udGVuZC0+bG9hZGluZ0ZhaWxlZChyZXF1ZXN0SWQsIG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLCBjYW5jZWxlZCA/
ICZjYW5jZWxlZCA6IDApOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZExv
YWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciogbG9hZGVyLCBDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2UpCkBAIC0zNDMsNyArMzQzLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIq
IGxvYWQKIAogICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6TmV0d29yazo6SW5pdGlhdG9yPiBpbml0
aWF0b3JPYmplY3QgPSBidWlsZEluaXRpYXRvck9iamVjdChsb2FkZXItPmZyYW1lKCkgPyBsb2Fk
ZXItPmZyYW1lKCktPmRvY3VtZW50KCkgOiAwKTsKIAotICAgIG1fZnJvbnRlbmQtPnJlcXVlc3RT
ZXJ2ZWRGcm9tTWVtb3J5Q2FjaGUocmVxdWVzdElkLCBmcmFtZUlkLCBsb2FkZXJJZCwgbG9hZGVy
LT51cmwoKS5zdHJpbmcoKSwgY3VycmVudFRpbWUoKSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9i
amVjdEZvckNhY2hlZFJlc291cmNlKCpyZXNvdXJjZSwgbG9hZGVyKSk7CisgICAgbV9mcm9udGVu
ZC0+cmVxdWVzdFNlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0SWQsIGZyYW1lSWQsIGxvYWRl
cklkLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvckNhY2hlZFJlc291cmNlKCpyZXNvdXJj
ZSwgbG9hZGVyKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6c2V0SW5pdGlh
bFNjcmlwdENvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVN0cmluZykKQEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdl
bnQ6OndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZQog
ICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6TmV0d29yazo6V2ViU29ja2V0UmVxdWVzdD4gcmVxdWVz
dE9iamVjdCA9IFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpXZWJTb2NrZXRSZXF1ZXN0OjpjcmVhdGUo
KQogICAgICAgICAuc2V0UmVxdWVzdEtleTMoY3JlYXRlUmVhZGFibGVTdHJpbmdGcm9tQmluYXJ5
KHJlcXVlc3Qua2V5MygpLnZhbHVlLCBzaXplb2YocmVxdWVzdC5rZXkzKCkudmFsdWUpKSkKICAg
ICAgICAgLnNldEhlYWRlcnMoYnVpbGRPYmplY3RGb3JIZWFkZXJzKHJlcXVlc3QuaGVhZGVyRmll
bGRzKCkpKTsKLSAgICBtX2Zyb250ZW5kLT53ZWJTb2NrZXRXaWxsU2VuZEhhbmRzaGFrZVJlcXVl
c3QoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIGN1cnJlbnRUaW1l
KCksIHJlcXVlc3RPYmplY3QpOworICAgIG1fZnJvbnRlbmQtPndlYlNvY2tldFdpbGxTZW5kSGFu
ZHNoYWtlUmVxdWVzdChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwg
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIHJlcXVlc3RPYmplY3QpOwogfQogCiB2b2lk
IEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNw
b25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYlNvY2tldEhhbmRzaGFrZVJl
c3BvbnNlJiByZXNwb25zZSkKQEAgLTUxMCwxMiArNTEwLDEyIEBAIHZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKHVuc2lnbmVk
IGxvbmcKICAgICAgICAgLnNldFN0YXR1c1RleHQocmVzcG9uc2Uuc3RhdHVzVGV4dCgpKQogICAg
ICAgICAuc2V0SGVhZGVycyhidWlsZE9iamVjdEZvckhlYWRlcnMocmVzcG9uc2UuaGVhZGVyRmll
bGRzKCkpKQogICAgICAgICAuc2V0Q2hhbGxlbmdlUmVzcG9uc2UoY3JlYXRlUmVhZGFibGVTdHJp
bmdGcm9tQmluYXJ5KHJlc3BvbnNlLmNoYWxsZW5nZVJlc3BvbnNlKCkudmFsdWUsIHNpemVvZihy
ZXNwb25zZS5jaGFsbGVuZ2VSZXNwb25zZSgpLnZhbHVlKSkpOwotICAgIG1fZnJvbnRlbmQtPndl
YlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlUmVjZWl2ZWQoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1
ZXN0SWQoaWRlbnRpZmllciksIGN1cnJlbnRUaW1lKCksIHJlc3BvbnNlT2JqZWN0KTsKKyAgICBt
X2Zyb250ZW5kLT53ZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZVJlY2VpdmVkKElkZW50aWZpZXJz
RmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKSwgcmVzcG9uc2VPYmplY3QpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6
OmRpZENsb3NlV2ViU29ja2V0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHsKLSAgICBtX2Zy
b250ZW5kLT53ZWJTb2NrZXRDbG9zZWQoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRl
bnRpZmllciksIGN1cnJlbnRUaW1lKCkpOworICAgIG1fZnJvbnRlbmQtPndlYlNvY2tldENsb3Nl
ZChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCkpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRp
ZFJlY2VpdmVXZWJTb2NrZXRGcmFtZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdl
YlNvY2tldEZyYW1lJiBmcmFtZSkKQEAgLTUyNCw3ICs1MjQsNyBAQCB2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZSh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsCiAgICAgICAgIC5zZXRPcGNvZGUoZnJhbWUub3BDb2RlKQogICAgICAgICAuc2V0TWFz
ayhmcmFtZS5tYXNrZWQpCiAgICAgICAgIC5zZXRQYXlsb2FkRGF0YShTdHJpbmcoZnJhbWUucGF5
bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCkpOwotICAgIG1fZnJvbnRlbmQtPndlYlNvY2tldEZy
YW1lUmVjZWl2ZWQoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIGN1
cnJlbnRUaW1lKCksIGZyYW1lT2JqZWN0KTsKKyAgICBtX2Zyb250ZW5kLT53ZWJTb2NrZXRGcmFt
ZVJlY2VpdmVkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgZnJhbWVPYmplY3QpOwogfQogCiB2b2lkIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQ6OmRpZFNlbmRXZWJTb2NrZXRGcmFtZSh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFdlYlNvY2tldEZyYW1lJiBmcmFtZSkKQEAgLTUzMywxMiArNTMzLDEy
IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uCiAgICAgICAgIC5zZXRPcGNvZGUoZnJhbWUub3BD
b2RlKQogICAgICAgICAuc2V0TWFzayhmcmFtZS5tYXNrZWQpCiAgICAgICAgIC5zZXRQYXlsb2Fk
RGF0YShTdHJpbmcoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCkpOwotICAgIG1f
ZnJvbnRlbmQtPndlYlNvY2tldEZyYW1lU2VudChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJ
ZChpZGVudGlmaWVyKSwgY3VycmVudFRpbWUoKSwgZnJhbWVPYmplY3QpOworICAgIG1fZnJvbnRl
bmQtPndlYlNvY2tldEZyYW1lU2VudChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVu
dGlmaWVyKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIGZyYW1lT2JqZWN0KTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVF
cnJvcih1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
KQogewotICAgIG1fZnJvbnRlbmQtPndlYlNvY2tldEZyYW1lRXJyb3IoSWRlbnRpZmllcnNGYWN0
b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIGN1cnJlbnRUaW1lKCksIGVycm9yTWVzc2FnZSk7
CisgICAgbV9mcm9udGVuZC0+d2ViU29ja2V0RnJhbWVFcnJvcihJZGVudGlmaWVyc0ZhY3Rvcnk6
OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIGVy
cm9yTWVzc2FnZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1NPQ0tFVFMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5k
ZXggMWEyMjgxNTI5N2UxOTE0NmEwMTRlNGFjNWY5NWVjMDkxMzFjZDA4YS4uNTQ1NzE0MzY3OTdl
ZDVhY2VlYjQ4NzhkMTRlNzU0NjgyYjE0NTgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMTY1LDcgKzE2NSw2IEBA
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnQoRXJyb3JTdHJpbmcqLCBjb25zdCBp
bnQqIG1heENhbGxTdGFja0RlcHRoKQogICAgIGVsc2UKICAgICAgICAgbV9tYXhDYWxsU3RhY2tE
ZXB0aCA9IDU7CiAgICAgbV9zdGF0ZS0+c2V0TG9uZyhUaW1lbGluZUFnZW50U3RhdGU6OnRpbWVs
aW5lTWF4Q2FsbFN0YWNrRGVwdGgsIG1fbWF4Q2FsbFN0YWNrRGVwdGgpOwotICAgIG1fdGltZXN0
YW1wT2Zmc2V0ID0gY3VycmVudFRpbWUoKSAtIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OwogCiAgICAgaWYgKG1fY2xpZW50KQogICAgICAgICBtX2NsaWVudC0+c3RhcnRNYWluVGhyZWFk
TW9uaXRvcmluZygpOwpAQCAtNTU2LDcgKzU1NSw2IEBAIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
CiAgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4oIlRpbWVs
aW5lIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCiAgICAgLCBtX3BhZ2VBZ2VudChwYWdl
QWdlbnQpCiAgICAgLCBtX2Zyb250ZW5kKDApCi0gICAgLCBtX3RpbWVzdGFtcE9mZnNldCgwKQog
ICAgICwgbV9pZCgxKQogICAgICwgbV9tYXhDYWxsU3RhY2tEZXB0aCg1KQogICAgICwgbV9wbGF0
Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVudEluc3RhbGxlZEF0U3RhY2tEZXB0aCgwKQpAQCAtNjE5
LDcgKzYxNyw3IEBAIGRvdWJsZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0aW1lc3RhbXAoKQog
CiBkb3VibGUgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25k
cyhkb3VibGUgbWljcm9zZWNvbmRzKQogewotICAgIHJldHVybiAobWljcm9zZWNvbmRzICsgbV90
aW1lc3RhbXBPZmZzZXQpICogMTAwMC4wOworICAgIHJldHVybiBtaWNyb3NlY29uZHMgKiAxMDAw
LjA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IDhmMDQ4Y2ZjYjI3YzAwN2M5
ODU0MzMxNDc4Y2M5ZjA3YmUwNTRiN2QuLjRmMDVjYzIyZWE2ZjczMzAwZTVlMTBmM2I5NjFhZmIw
YWU1MDExN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuaApAQCAtMTk0LDcgKzE5NCw2IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9y
UGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKIAogICAgIEluc3BlY3RvckZyb250ZW5kOjpUaW1lbGlu
ZSogbV9mcm9udGVuZDsKLSAgICBkb3VibGUgbV90aW1lc3RhbXBPZmZzZXQ7CiAKICAgICBWZWN0
b3I8VGltZWxpbmVSZWNvcmRFbnRyeT4gbV9yZWNvcmRTdGFjazsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYW52YXNQcm9maWxlVmlldy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FudmFzUHJvZmlsZVZpZXcuanMKaW5k
ZXggMzVkNTU3ZWVmNmRlMjYwYTVlYzQ4NjYyNDc4NTU1ODNjZjU3OWVhNS4uZDA2NTkxMzA5MmU5
Nzc3OGZlNGJkMTNmZjQ2OTgyMDlkNGQ0NmE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9DYW52YXNQcm9maWxlVmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbnZhc1Byb2ZpbGVWaWV3LmpzCkBAIC0xMzksMTAg
KzEzOSwxMCBAQCBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewog
ICAgICAgICB2YXIgaXRlbSA9IGUudGFyZ2V0OwogICAgICAgICBpZiAoIWl0ZW0gfHwgIWl0ZW0u
dHJhY2VMb2dJZCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIHRpbWUgPSBEYXRl
Lm5vdygpOworICAgICAgICB2YXIgdGltZSA9IHBlcmZvcm1hbmNlLndlYmtpdE5vdygpOwogICAg
ICAgICBmdW5jdGlvbiBkaWRSZXBsYXlUcmFjZUxvZyhlcnJvciwgZGF0YVVSTCkKICAgICAgICAg
ewotICAgICAgICAgICAgdGhpcy5fZGVidWdJbmZvRWxlbWVudC50ZXh0Q29udGVudCA9ICJSZXBs
YXkgdGltZTogIiArIChEYXRlLm5vdygpIC0gdGltZSkgKyAibXMiOworICAgICAgICAgICAgdGhp
cy5fZGVidWdJbmZvRWxlbWVudC50ZXh0Q29udGVudCA9ICJSZXBsYXkgdGltZTogIiArIChwZXJm
b3JtYW5jZS53ZWJraXROb3coKSAtIHRpbWUpICsgIm1zIjsKICAgICAgICAgICAgIGlmICh0aGlz
Ll9hY3RpdmVUcmFjZUxvZ0l0ZW0pCiAgICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlVHJhY2VM
b2dJdGVtLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICIiOwogICAgICAgICAgICAgdGhpcy5fYWN0
aXZlVHJhY2VMb2dJdGVtID0gaXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzCmluZGV4IGE0MWRkODAyODk4MTIw
OWEwZDIyYzFkYTRlNzhjODc2NzYxZmM0NjcuLjk2OTFjZTI1YWEyYzY1OTdiMmYyODYwY2EzZDNh
MDAxYmJlMjVkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGVmYXVsdFRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcwpAQCAtMTc2NSw3ICsxNzY1LDcgQEAgV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRo
aXMuX3BhaW50TGluZXNPcGVyYXRpb25zUmVmcmVzaFZhbHVlKQogICAgICAgICAgICAgdGhpcy5f
cGFpbnRMaW5lc09wZXJhdGlvbnNSZWZyZXNoVmFsdWUgPSAyNTA7CiAgICAgICAgIHRoaXMuX3Bh
aW50TGluZXNPcGVyYXRpb25zQ3JlZGl0ID0gdGhpcy5fcGFpbnRMaW5lc09wZXJhdGlvbnNSZWZy
ZXNoVmFsdWU7Ci0gICAgICAgIHRoaXMuX3BhaW50TGluZXNPcGVyYXRpb25zTGFzdFJlZnJlc2gg
PSBEYXRlLm5vdygpOworICAgICAgICB0aGlzLl9wYWludExpbmVzT3BlcmF0aW9uc0xhc3RSZWZy
ZXNoID0gcGVyZm9ybWFuY2Uud2Via2l0Tm93KCk7CiAgICAgfSwKIAogICAgIF9hZGp1c3RQYWlu
dExpbmVzT3BlcmF0aW9uc1JlZnJlc2hWYWx1ZTogZnVuY3Rpb24oKQpAQCAtMTc3Myw3ICsxNzcz
LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICB2YXIgb3BlcmF0aW9uc0RvbmUgPSB0aGlzLl9wYWludExpbmVzT3BlcmF0aW9uc1JlZnJl
c2hWYWx1ZSAtIHRoaXMuX3BhaW50TGluZXNPcGVyYXRpb25zQ3JlZGl0OwogICAgICAgICBpZiAo
b3BlcmF0aW9uc0RvbmUgPD0gMCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIHRp
bWVQYXN0ID0gRGF0ZS5ub3coKSAtIHRoaXMuX3BhaW50TGluZXNPcGVyYXRpb25zTGFzdFJlZnJl
c2g7CisgICAgICAgIHZhciB0aW1lUGFzdCA9IHBlcmZvcm1hbmNlLndlYmtpdE5vdygpIC0gdGhp
cy5fcGFpbnRMaW5lc09wZXJhdGlvbnNMYXN0UmVmcmVzaDsKICAgICAgICAgaWYgKHRpbWVQYXN0
IDw9IDApCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIE1ha2UgdGhlIHN5bmNocm9u
b3VzIENQVSBjaHVuayBmb3IgcGFpbnRpbmcgdGhlIGxpbmVzIDUwIG1zZWMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmQuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmQuanMK
aW5kZXggYzI3MjJiMzRkNWU4MmMyNmE2MWM1ZDdlYjRiYmEyMWExNTBkZDVlYy4uODVmNWI0MzNm
N2IzYjIwZDdmODM1Y2Q1YzhlNjRjZDllYmY4ZTVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNrZW5kLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZC5qcwpAQCAtNTUsNyAr
NTUsNyBAQCBJbnNwZWN0b3JCYWNrZW5kQ2xhc3MucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll9jYWxsYmFja3NbY2FsbGJhY2tJZF0gPSBjYWxsYmFjazsKICAgICAgICAgY2FsbGJhY2subWV0
aG9kTmFtZSA9IG1ldGhvZDsKICAgICAgICAgaWYgKHRoaXMuZHVtcEluc3BlY3RvclRpbWVTdGF0
cykKLSAgICAgICAgICAgIGNhbGxiYWNrLnNlbmRSZXF1ZXN0VGltZSA9IERhdGUubm93KCk7Cisg
ICAgICAgICAgICBjYWxsYmFjay5zZW5kUmVxdWVzdFRpbWUgPSBwZXJmb3JtYW5jZS53ZWJraXRO
b3coKTsKICAgICAgICAgCiAgICAgICAgIHJldHVybiBjYWxsYmFja0lkOwogICAgIH0sCkBAIC0x
ODAsNyArMTgwLDcgQEAgSW5zcGVjdG9yQmFja2VuZENsYXNzLnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICAgICAgICAgIHZhciBwcm9jZXNzaW5nU3RhcnRUaW1lOwogICAgICAgICAgICAgICAgIGlm
ICh0aGlzLmR1bXBJbnNwZWN0b3JUaW1lU3RhdHMgJiYgY2FsbGJhY2subWV0aG9kTmFtZSkKLSAg
ICAgICAgICAgICAgICAgICAgcHJvY2Vzc2luZ1N0YXJ0VGltZSA9IERhdGUubm93KCk7CisgICAg
ICAgICAgICAgICAgICAgIHByb2Nlc3NpbmdTdGFydFRpbWUgPSBwZXJmb3JtYW5jZS53ZWJraXRO
b3coKTsKIAogICAgICAgICAgICAgICAgIGFyZ3VtZW50c0FycmF5LnVuc2hpZnQobWVzc2FnZU9i
amVjdC5lcnJvciA/IG1lc3NhZ2VPYmplY3QuZXJyb3IubWVzc2FnZSA6IG51bGwpOwogICAgICAg
ICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KG51bGwsIGFyZ3VtZW50c0FycmF5KTsKQEAgLTE4OCw3
ICsxODgsNyBAQCBJbnNwZWN0b3JCYWNrZW5kQ2xhc3MucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzLl9jYWxsYmFja3NbbWVzc2FnZU9iamVjdC5pZF07CiAKICAgICAg
ICAgICAgICAgICBpZiAodGhpcy5kdW1wSW5zcGVjdG9yVGltZVN0YXRzICYmIGNhbGxiYWNrLm1l
dGhvZE5hbWUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJ0aW1lLXN0YXRzOiAi
ICsgY2FsbGJhY2subWV0aG9kTmFtZSArICIgPSAiICsgKHByb2Nlc3NpbmdTdGFydFRpbWUgLSBj
YWxsYmFjay5zZW5kUmVxdWVzdFRpbWUpICsgIiArICIgKyAoRGF0ZS5ub3coKSAtIHByb2Nlc3Np
bmdTdGFydFRpbWUpKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coInRpbWUtc3Rh
dHM6ICIgKyBjYWxsYmFjay5tZXRob2ROYW1lICsgIiA9ICIgKyAocHJvY2Vzc2luZ1N0YXJ0VGlt
ZSAtIGNhbGxiYWNrLnNlbmRSZXF1ZXN0VGltZSkgKyAiICsgIiArIChwZXJmb3JtYW5jZS53ZWJr
aXROb3coKSAtIHByb2Nlc3NpbmdTdGFydFRpbWUpKTsKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgaWYgKHRoaXMuX3NjcmlwdHMgJiYgIXRoaXMuX3BlbmRpbmdSZXNwb25zZXNDb3VudCkK
QEAgLTIyMywxMiArMjIzLDEyIEBAIEluc3BlY3RvckJhY2tlbmRDbGFzcy5wcm90b3R5cGUgPSB7
CiAKICAgICAgICAgICAgIHZhciBwcm9jZXNzaW5nU3RhcnRUaW1lOwogICAgICAgICAgICAgaWYg
KHRoaXMuZHVtcEluc3BlY3RvclRpbWVTdGF0cykKLSAgICAgICAgICAgICAgICBwcm9jZXNzaW5n
U3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKKyAgICAgICAgICAgICAgICBwcm9jZXNzaW5nU3RhcnRU
aW1lID0gcGVyZm9ybWFuY2Uud2Via2l0Tm93KCk7CiAKICAgICAgICAgICAgIGRpc3BhdGNoZXJb
ZnVuY3Rpb25OYW1lXS5hcHBseShkaXNwYXRjaGVyLCBwYXJhbXMpOwogCiAgICAgICAgICAgICBp
ZiAodGhpcy5kdW1wSW5zcGVjdG9yVGltZVN0YXRzKQotICAgICAgICAgICAgICAgIGNvbnNvbGUu
bG9nKCJ0aW1lLXN0YXRzOiAiICsgbWVzc2FnZU9iamVjdC5tZXRob2QgKyAiID0gIiArIChEYXRl
Lm5vdygpIC0gcHJvY2Vzc2luZ1N0YXJ0VGltZSkpOworICAgICAgICAgICAgICAgIGNvbnNvbGUu
bG9nKCJ0aW1lLXN0YXRzOiAiICsgbWVzc2FnZU9iamVjdC5tZXRob2QgKyAiID0gIiArIChwZXJm
b3JtYW5jZS53ZWJraXROb3coKSAtIHByb2Nlc3NpbmdTdGFydFRpbWUpKTsKICAgICAgICAgfQog
ICAgIH0sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAwZGM2YWU3OTAyZGRjNTdhMTFmNmE1ZDZjNTcxMjE2ODcyMDQyZjg5
Li4yOTk2YmFiYmM0NjJkMTc3ZGY5Yzk2NDljN2QxY2VjNTkyYjEyMTY1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTItMTAtMDIgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFVzZSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgdGltZSB0aHJvdWdo
b3V0IGluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTgyMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBwZXJmb3JtYW5jZS5ub3coKSBpcyBkaWZmZXJlbnQgZm9yIGVhY2ggZG9jdW1lbnQuIFNv
LCB0aGlzIHRlc3Qgbm8gbG9uZ2VyIGZ1bmN0aW9ucy4KKworICAgICAgICAqIGluc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1zdGFydC10aW1lLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc3RhcnQtdGltZS5odG1sOiBSZW1vdmVk
LgorCiAyMDEyLTEwLTAyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTMwMTY3IGFuZCByMTMwMTcx
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXN0
YXJ0LXRpbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLXN0YXJ0LXRpbWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkZjFhZjJkMDgxYThiMjY5Y2EyMjJkMTkxYWJkMWQwMTMxOWIxZjI4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1zdGFydC10aW1lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgc2FuaXR5IG9mIHRpbWVsaW5lIHRpbWVzdGFtcHMuCi0K
LWRvbmUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLXN0YXJ0LXRpbWUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1l
bGluZS1zdGFydC10aW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhYzhl
MzZiODVlMTA5OTU4Y2UzYjFjODhmMjBiODBhYTAwZDZlMjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLXN0YXJ0LXRpbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InRpbWVsaW5lLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gcGVyZm9ybUFjdGlvbnMoKQotewot
ICAgIGNvbnNvbGUudGltZVN0YW1wKCJ0aW1lIGlzIGFuIGlsbHVzaW9uIik7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIHZhciBiZWZvcmVTdGFydCA9IERhdGUubm93KCk7Ci0gICAgSW5z
cGVjdG9yVGVzdC5zdGFydFRpbWVsaW5lKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yUmVj
b3JkVHlwZSgiVGltZVN0YW1wIiwgb25UaW1lU3RhbXApOwotICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoInBlcmZvcm1BY3Rpb25zKCkiKTsKLQotICAgIGZ1bmN0aW9uIG9uVGltZVN0
YW1wKHJlY29yZCkKLSAgICB7Ci0gICAgICAgIHZhciBub3cgPSBEYXRlLm5vdygpOwotICAgICAg
ICB2YXIgZXZlbnRUaW1lID0gcmVjb3JkLnN0YXJ0VGltZTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnRHcmVhdGVyT3JFcXVhbChldmVudFRpbWUsIGJlZm9yZVN0YXJ0LCAiZXZlbnQgdGlt
ZSBzaG91bGQgYmUgYWZ0ZXIgdGltZWxpbmUgc3RhcnQgdGltZSIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEdyZWF0ZXJPckVxdWFsKG5vdywgTWF0aC5mbG9vcihldmVudFRpbWUpLCAi
ZXZlbnQgdGltZSBzaG91bGQgYmUgYmVmb3JlIG5vdyIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiZG9uZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnN0b3BUaW1lbGluZShJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdC5iaW5kKEluc3BlY3RvclRlc3QpKTsKLSAgICB9Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRlc3RzIHNhbml0eSBvZiB0aW1lbGluZSB0aW1lc3RhbXBzLgotPC9wPgotCi08L2JvZHk+Ci08
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166799</attachid>
            <date>2012-10-02 19:15:38 -0700</date>
            <delta_ts>2012-10-03 19:45:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98223-20121002191451.patch</filename>
            <type>text/plain</type>
            <size>27659</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc4NGU4Njg3NDc3NGRi
MzQ1NTFkYjMxNmRiYjNmNGQxNzc4ODFjYi4uZTU0YzI5MzE0MjFiYzI2ZDFkYjJiZTllOTNmMWYw
N2I4ZTlmYjI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTEwLTAyICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgbW9ub3Rv
bmljYWxseSBpbmNyZWFzaW5nIHRpbWUgdGhyb3VnaG91dCBpbnNwZWN0b3IKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZW1vdmVzIHRoZSBuZWVk
IGZvciBhbGwgdGhlIGNvbnZlcnNpb24gY29kZSBiZXR3ZWVuIHRpbWUgYmFzZXMgYW5kIGl0IHNo
b3VsZCBtYWtlIHRpbWVzIG1vcmUgcmVsaWFibGUuCisKKyAgICAgICAgVGVzdHM6IEV4aXN0aW5n
IGluc3BlY3RvciB0ZXN0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvclByb2ZpbGU6OnN0YXJ0U2VsZWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JQcm9maWxlOjpjb21taXRTZWxlY3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvclByb2ZpbGU6OmNvbW1pdFNlbGVjdG9yVGltZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkRmluaXNoTG9hZGluZ0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojpkb21Db250
ZW50RXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Omxv
YWRFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c2V0
R2VvbG9jYXRpb25PdmVycmlkZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RGb3JUaW1pbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbFNlbmRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVS
ZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRS
ZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdl
bnQ6OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2
ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmRpZENsb3NlV2ViU29ja2V0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRTZW5kV2ViU29ja2V0RnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVdl
YlNvY2tldEZyYW1lRXJyb3IpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0
YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6dGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ2FudmFzUHJvZmlsZVZpZXcuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90eXBlLl9vblRyYWNlTG9n
SXRlbUNsaWNrLmRpZFJlcGxheVRyYWNlTG9nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYW52
YXNQcm9maWxlVmlldy5wcm90b3R5cGUuX29uVHJhY2VMb2dJdGVtQ2xpY2spOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3Jlc3RvcmVQYWludExpbmVz
T3BlcmF0aW9uc0NyZWRpdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5Q
YW5lbC5wcm90b3R5cGUuX2FkanVzdFBhaW50TGluZXNPcGVyYXRpb25zUmVmcmVzaFZhbHVlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmQuanM6CisgICAg
ICAgIChJbnNwZWN0b3JCYWNrZW5kQ2xhc3MucHJvdG90eXBlLl93cmFwKToKKyAgICAgICAgKElu
c3BlY3RvckJhY2tlbmRDbGFzcy5wcm90b3R5cGUuZGlzcGF0Y2gpOgorCiAyMDEyLTEwLTAyICBW
c2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtSZWdyZXNzaW9uXSBEZXZUb29sc0V4dGVuc2lvblRlc3QuVGVzdENvbnRlbnRTY3Jp
cHRJc1ByZXNlbnQgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwCmluZGV4IGJiZTg4ZDJjMGZlN2IzOWI5ZjI2NDAyZDc3NDcyYTVhYzdlNjJh
OGMuLmY3NDRlM2NlOTc2MmMxZDU2YjgwYmZhY2YxOWI4ODVjMzU5OGY5YjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtMTc4LDEyICsx
NzgsMTIgQEAgaW5saW5lIHZvaWQgU2VsZWN0b3JQcm9maWxlOjpzdGFydFNlbGVjdG9yKGNvbnN0
IENTU1N0eWxlUnVsZSogcnVsZSkKICAgICB9CiAgICAgbV9jdXJyZW50TWF0Y2hEYXRhLnVybCA9
IHVybDsKICAgICBtX2N1cnJlbnRNYXRjaERhdGEubGluZU51bWJlciA9IHJ1bGUtPnN0eWxlUnVs
ZSgpLT5zb3VyY2VMaW5lKCk7Ci0gICAgbV9jdXJyZW50TWF0Y2hEYXRhLnN0YXJ0VGltZSA9IFdU
Rjo6Y3VycmVudFRpbWVNUygpOworICAgIG1fY3VycmVudE1hdGNoRGF0YS5zdGFydFRpbWUgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAqIDEwMDAuMDsKIH0KIAogaW5saW5lIHZvaWQg
U2VsZWN0b3JQcm9maWxlOjpjb21taXRTZWxlY3Rvcihib29sIG1hdGNoZWQpCiB7Ci0gICAgZG91
YmxlIG1hdGNoVGltZU1zID0gV1RGOjpjdXJyZW50VGltZU1TKCkgLSBtX2N1cnJlbnRNYXRjaERh
dGEuc3RhcnRUaW1lOworICAgIGRvdWJsZSBtYXRjaFRpbWVNcyA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpICogMTAwMC4wIC0gbV9jdXJyZW50TWF0Y2hEYXRhLnN0YXJ0VGltZTsKICAg
ICBtX3RvdGFsTWF0Y2hpbmdUaW1lTXMgKz0gbWF0Y2hUaW1lTXM7CiAKICAgICBSdWxlTWF0Y2hp
bmdTdGF0c01hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fcnVsZU1hdGNoaW5nU3RhdHMuYWRkKG1h
a2VLZXkoKSwgUnVsZU1hdGNoaW5nU3RhdHMobV9jdXJyZW50TWF0Y2hEYXRhLCBtYXRjaFRpbWVN
cywgMSwgbWF0Y2hlZCA/IDEgOiAwKSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgaW5saW5lIHZvaWQg
U2VsZWN0b3JQcm9maWxlOjpjb21taXRTZWxlY3Rvcihib29sIG1hdGNoZWQpCiAKIGlubGluZSB2
b2lkIFNlbGVjdG9yUHJvZmlsZTo6Y29tbWl0U2VsZWN0b3JUaW1lKCkKIHsKLSAgICBkb3VibGUg
cHJvY2Vzc2luZ1RpbWVNcyA9IFdURjo6Y3VycmVudFRpbWVNUygpIC0gbV9jdXJyZW50TWF0Y2hE
YXRhLnN0YXJ0VGltZTsKKyAgICBkb3VibGUgcHJvY2Vzc2luZ1RpbWVNcyA9IG1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpICogMTAwMC4wIC0gbV9jdXJyZW50TWF0Y2hEYXRhLnN0YXJ0VGlt
ZTsKICAgICBtX3RvdGFsTWF0Y2hpbmdUaW1lTXMgKz0gcHJvY2Vzc2luZ1RpbWVNczsKIAogICAg
IFJ1bGVNYXRjaGluZ1N0YXRzTWFwOjppdGVyYXRvciBpdCA9IG1fcnVsZU1hdGNoaW5nU3RhdHMu
ZmluZChtYWtlS2V5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBhYmI1ZDc1YjkzYzZlNDQxMWJhM2QyOTE0
MTA2MWMxZjkyZmI3MzVlLi5mYTYxMzNkYjBmYjRiY2U4YjY3ZjgzYjMyMTk0MjhmYmE4OThlZjM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcApAQCAtNzM2LDE4ICs3MzYsMTMgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVEYXRhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW4KICAgICAgICAgcmVzb3VyY2VBZ2VudC0+ZGlkUmVjZWl2ZURhdGEoaWRlbnRpZmllciwgZGF0
YSwgZGF0YUxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgpOwogfQogCi12b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExv
YWRlciogbG9hZGVyLCBkb3VibGUgbW9ub3RvbmljRmluaXNoVGltZSkKK3ZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQogewogICAgIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JU
aW1lbGluZUFnZW50KCk7CiAgICAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdlbnQoKTsKICAgICBp
ZiAoIXRpbWVsaW5lQWdlbnQgJiYgIXJlc291cmNlQWdlbnQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGRvdWJsZSBmaW5pc2hUaW1lID0gMC4wOwotICAgIC8vIEZJWE1FOiBFeHBvc2UgYWxsIG9m
IHRoZSB0aW1pbmcgZGV0YWlscyB0byBpbnNwZWN0b3IgYW5kIGhhdmUgaXQgY2FsY3VsYXRlIGZp
bmlzaFRpbWUuCi0gICAgaWYgKG1vbm90b25pY0ZpbmlzaFRpbWUpCi0gICAgICAgIGZpbmlzaFRp
bWUgPSBsb2FkZXItPnRpbWluZygpLT5jb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1l
KG1vbm90b25pY0ZpbmlzaFRpbWUpOwotCiAgICAgaWYgKHRpbWVsaW5lQWdlbnQpCiAgICAgICAg
IHRpbWVsaW5lQWdlbnQtPmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZShpZGVudGlmaWVyLCBmYWxz
ZSwgZmluaXNoVGltZSwgbG9hZGVyLT5mcmFtZSgpKTsKICAgICBpZiAocmVzb3VyY2VBZ2VudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5k
ZXggZWYzOWU2ZjEzOTMwNWNmYWI4ZGE4MThlM2ExMWQwOTZmMzhmNmM2NC4uNzQxZWY0NWZmZjc3
YzhlYzBkOTIxZDAzMDkxYzJiYWM3ODI5NzZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTc2NywxMiArNzY3LDEyIEBAIHZvaWQg
SW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqIGZy
YW1lLCBET01XcmFwcGVyV29yCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZG9tQ29udGVudEV2
ZW50RmlyZWQoKQogewogICAgIG1fZGlkTG9hZEV2ZW50RmlyZSA9IHRydWU7Ci0gICAgbV9mcm9u
dGVuZC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7CisgICAgbV9mcm9udGVu
ZC0+ZG9tQ29udGVudEV2ZW50RmlyZWQobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwog
fQogCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQoKQogewotICAgIG1f
ZnJvbnRlbmQtPmxvYWRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOworICAgIG1fZnJvbnRlbmQt
PmxvYWRFdmVudEZpcmVkKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIpCkBAIC0xMDA0LDcgKzEwMDQsNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2V0R2Vv
bG9jYXRpb25PdmVycmlkZShFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IGRvdWJsZQogCiAgICAg
bV9nZW9sb2NhdGlvbk92ZXJyaWRkZW4gPSB0cnVlOwogICAgIGlmIChsYXRpdHVkZSAmJiBsb25n
aXR1ZGUgJiYgYWNjdXJhY3kpCi0gICAgICAgIG1fZ2VvbG9jYXRpb25Qb3NpdGlvbiA9IEdlb2xv
Y2F0aW9uUG9zaXRpb246OmNyZWF0ZShjdXJyZW50VGltZU1TKCksICpsYXRpdHVkZSwgKmxvbmdp
dHVkZSwgKmFjY3VyYWN5KTsKKyAgICAgICAgbV9nZW9sb2NhdGlvblBvc2l0aW9uID0gR2VvbG9j
YXRpb25Qb3NpdGlvbjo6Y3JlYXRlKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICogMTAw
MC4wLCAqbGF0aXR1ZGUsICpsb25naXR1ZGUsICphY2N1cmFjeSk7CiAgICAgZWxzZQogICAgICAg
ICBtX2dlb2xvY2F0aW9uUG9zaXRpb24uY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDdkZWZiMzU5NWRj
YjFhZGE5MjUyYTdlYjYyMDgzNDU2NjU4YWI0YzQuLjcyZGEwZjdmN2RkNjM3ZGM5NDlmNmIxZWUy
ZTkwYjA4NGVmYWFhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTEwOSwxMCArMTA5LDEwIEBAIHN0YXRpYyBQYXNz
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JIZWFkZXJzKGNvbnN0IEhUVFBI
ZWFkZXJNYXAmIGhlCiAgICAgcmV0dXJuIGhlYWRlcnNPYmplY3Q7CiB9CiAKLXN0YXRpYyBQYXNz
UmVmUHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNvdXJjZVRpbWluZz4gYnVpbGRPYmplY3RG
b3JUaW1pbmcoY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiB0aW1pbmcsIERvY3VtZW50TG9hZGVy
KiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3Vy
Y2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYg
dGltaW5nKQogewogICAgIHJldHVybiBUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1p
bmc6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRSZXF1ZXN0VGltZSh0aW1pbmcuY29udmVydFJlc291
cmNlTG9hZFRpbWVUb0RvY3VtZW50VGltZShsb2FkZXItPnRpbWluZygpLCAwKSkKKyAgICAgICAg
LnNldFJlcXVlc3RUaW1lKHRpbWluZy5yZXF1ZXN0VGltZSkKICAgICAgICAgLnNldFByb3h5U3Rh
cnQodGltaW5nLnByb3h5U3RhcnQpCiAgICAgICAgIC5zZXRQcm94eUVuZCh0aW1pbmcucHJveHlF
bmQpCiAgICAgICAgIC5zZXREbnNTdGFydCh0aW1pbmcuZG5zU3RhcnQpCkBAIC0xMzgsNyArMTM4
LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlcXVlc3Q+IGJ1
aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXF1ZXN0KGMKICAgICByZXR1cm4gcmVxdWVzdE9iamVjdDsK
IH0KIAotc3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiBi
dWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVp
bGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAocmVzcG9uc2UuaXNO
dWxsKCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMTcwLDcgKzE3MCw3IEBAIHN0YXRpYyBQYXNz
UmVmUHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gYnVpbGRPYmplY3RGb3JSZXNv
dXJjZVJlc3BvbnNlCiAKICAgICByZXNwb25zZU9iamVjdC0+c2V0RnJvbURpc2tDYWNoZShyZXNw
b25zZS53YXNDYWNoZWQoKSk7CiAgICAgaWYgKHJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
KQotICAgICAgICByZXNwb25zZU9iamVjdC0+c2V0VGltaW5nKGJ1aWxkT2JqZWN0Rm9yVGltaW5n
KCpyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSwgbG9hZGVyKSk7CisgICAgICAgIHJlc3Bv
bnNlT2JqZWN0LT5zZXRUaW1pbmcoYnVpbGRPYmplY3RGb3JUaW1pbmcoKnJlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpKSk7CiAKICAgICBpZiAocmVzcG9uc2UucmVzb3VyY2VMb2FkSW5mbygp
KSB7CiAgICAgICAgIGlmICghcmVzcG9uc2UucmVzb3VyY2VMb2FkSW5mbygpLT5yZXNwb25zZUhl
YWRlcnNUZXh0LmlzRW1wdHkoKSkKQEAgLTE4NCwxMyArMTg0LDEzIEBAIHN0YXRpYyBQYXNzUmVm
UHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gYnVpbGRPYmplY3RGb3JSZXNvdXJj
ZVJlc3BvbnNlCiAgICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0OwogfQogCi1zdGF0aWMgUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6TmV0d29yazo6Q2FjaGVkUmVzb3VyY2U+IGJ1aWxkT2JqZWN0Rm9y
Q2FjaGVkUmVzb3VyY2UoY29uc3QgQ2FjaGVkUmVzb3VyY2UmIGNhY2hlZFJlc291cmNlLCBEb2N1
bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdv
cms6OkNhY2hlZFJlc291cmNlPiBidWlsZE9iamVjdEZvckNhY2hlZFJlc291cmNlKGNvbnN0IENh
Y2hlZFJlc291cmNlJiBjYWNoZWRSZXNvdXJjZSkKIHsKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6
Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlPiByZXNvdXJjZU9iamVjdCA9IFR5cGVCdWlsZGVyOjpO
ZXR3b3JrOjpDYWNoZWRSZXNvdXJjZTo6Y3JlYXRlKCkKICAgICAgICAgLnNldFVybChjYWNoZWRS
ZXNvdXJjZS51cmwoKSkKICAgICAgICAgLnNldFR5cGUoSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNo
ZWRSZXNvdXJjZVR5cGVKc29uKGNhY2hlZFJlc291cmNlKSkKICAgICAgICAgLnNldEJvZHlTaXpl
KGNhY2hlZFJlc291cmNlLmVuY29kZWRTaXplKCkpOwotICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6
TmV0d29yazo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291
cmNlUmVzcG9uc2UoY2FjaGVkUmVzb3VyY2UucmVzcG9uc2UoKSwgbG9hZGVyKTsKKyAgICBSZWZQ
dHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNhY2hlZFJlc291cmNlLnJlc3BvbnNlKCkpOwog
ICAgIGlmIChyZXNvdXJjZVJlc3BvbnNlKQogICAgICAgICByZXNvdXJjZU9iamVjdC0+c2V0UmVz
cG9uc2UocmVzb3VyY2VSZXNwb25zZSk7CiAgICAgcmV0dXJuIHJlc291cmNlT2JqZWN0OwpAQCAt
MjMxLDcgKzIzMSw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbFNlbmRSZXF1
ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMCiAgICAgfQogCiAgICAgUmVm
UHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpJbml0aWF0b3I+IGluaXRpYXRvck9iamVjdCA9IGJ1
aWxkSW5pdGlhdG9yT2JqZWN0KGxvYWRlci0+ZnJhbWUoKSA/IGxvYWRlci0+ZnJhbWUoKS0+ZG9j
dW1lbnQoKSA6IDApOwotICAgIG1fZnJvbnRlbmQtPnJlcXVlc3RXaWxsQmVTZW50KHJlcXVlc3RJ
ZCwgbV9wYWdlQWdlbnQtPmZyYW1lSWQobG9hZGVyLT5mcmFtZSgpKSwgbV9wYWdlQWdlbnQtPmxv
YWRlcklkKGxvYWRlciksIGxvYWRlci0+dXJsKCkuc3RyaW5nKCksIGJ1aWxkT2JqZWN0Rm9yUmVz
b3VyY2VSZXF1ZXN0KHJlcXVlc3QpLCBjdXJyZW50VGltZSgpLCBpbml0aWF0b3JPYmplY3QsIGJ1
aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShyZWRpcmVjdFJlc3BvbnNlLCBsb2FkZXIpKTsK
KyAgICBtX2Zyb250ZW5kLT5yZXF1ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50
LT5mcmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIG1fcGFnZUFnZW50LT5sb2FkZXJJZChsb2FkZXIp
LCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVxdWVzdChy
ZXF1ZXN0KSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIGluaXRpYXRvck9iamVjdCwg
YnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UpKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjptYXJrUmVzb3VyY2VBc0NhY2hlZCh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIpCkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjptYXJrUmVzb3VyY2VBc0NhY2hlZCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIp
CiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIpCiB7CiAg
ICAgU3RyaW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50
aWZpZXIpOwotICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJlc291
cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVzcG9uc2UsIGxv
YWRlcik7CisgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gcmVzb3Vy
Y2VSZXNwb25zZSA9IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShyZXNwb25zZSk7CiAg
ICAgSW5zcGVjdG9yUGFnZUFnZW50OjpSZXNvdXJjZVR5cGUgdHlwZSA9IEluc3BlY3RvclBhZ2VB
Z2VudDo6T3RoZXJSZXNvdXJjZTsKICAgICBsb25nIGNhY2hlZFJlc291cmNlU2l6ZSA9IDA7CiAK
QEAgLTI3NCw3ICsyNzQsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2Vp
dmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZQogICAgICAgICBtX3Jl
c291cmNlc0RhdGEtPnJlc3BvbnNlUmVjZWl2ZWQocmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJh
bWVJZChsb2FkZXItPmZyYW1lKCkpLCByZXNwb25zZSk7CiAgICAgfQogICAgIG1fcmVzb3VyY2Vz
RGF0YS0+c2V0UmVzb3VyY2VUeXBlKHJlcXVlc3RJZCwgdHlwZSk7Ci0gICAgbV9mcm9udGVuZC0+
cmVzcG9uc2VSZWNlaXZlZChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+
ZnJhbWUoKSksIG1fcGFnZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBjdXJyZW50VGltZSgpLCBJ
bnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlVHlwZUpzb24odHlwZSksIHJlc291cmNlUmVzcG9u
c2UpOworICAgIG1fZnJvbnRlbmQtPnJlc3BvbnNlUmVjZWl2ZWQocmVxdWVzdElkLCBtX3BhZ2VB
Z2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkpLCBtX3BhZ2VBZ2VudC0+bG9hZGVySWQobG9h
ZGVyKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIEluc3BlY3RvclBhZ2VBZ2VudDo6
cmVzb3VyY2VUeXBlSnNvbih0eXBlKSwgcmVzb3VyY2VSZXNwb25zZSk7CiAgICAgLy8gSWYgd2Ug
cmV2YWxpZGF0ZWQgdGhlIHJlc291cmNlIGFuZCBnb3QgTm90IG1vZGlmaWVkLCBzZW5kIGNvbnRl
bnQgbGVuZ3RoIGZvbGxvd2luZyBkaWRSZWNlaXZlUmVzcG9uc2UKICAgICAvLyBhcyB0aGVyZSB3
aWxsIGJlIG5vIGNhbGxzIHRvIGRpZFJlY2VpdmVEYXRhIGZyb20gdGhlIG5ldHdvcmsgc3RhY2su
CiAgICAgaWYgKGNhY2hlZFJlc291cmNlU2l6ZSAmJiBpc05vdE1vZGlmaWVkKQpAQCAtMjk2LDcg
KzI5Niw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZURhdGEodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBjaGFyCiAgICAgICAgICAgICBtX3Jlc291cmNl
c0RhdGEtPm1heWJlQWRkUmVzb3VyY2VEYXRhKHJlcXVlc3RJZCwgZGF0YSwgZGF0YUxlbmd0aCk7
CiAgICAgfQogCi0gICAgbV9mcm9udGVuZC0+ZGF0YVJlY2VpdmVkKHJlcXVlc3RJZCwgY3VycmVu
dFRpbWUoKSwgZGF0YUxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIG1fZnJvbnRlbmQt
PmRhdGFSZWNlaXZlZChyZXF1ZXN0SWQsIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBk
YXRhTGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3Vt
ZW50TG9hZGVyKiBsb2FkZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpAQCAtMzA4LDcgKzMwOCw3IEBA
IHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIERvY3VtZW50CiAgICAgbV9yZXNvdXJjZXNEYXRhLT5tYXliZURlY29k
ZURhdGFUb0NvbnRlbnQocmVxdWVzdElkKTsKIAogICAgIGlmICghZmluaXNoVGltZSkKLSAgICAg
ICAgZmluaXNoVGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIGZpbmlzaFRpbWUgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKIAogICAgIG1fZnJvbnRlbmQtPmxvYWRpbmdGaW5p
c2hlZChyZXF1ZXN0SWQsIGZpbmlzaFRpbWUpOwogfQpAQCAtMzI0LDcgKzMyNCw3IEBAIHZvaWQg
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBEb2N1bWVudExvCiAgICAgfQogCiAgICAgYm9vbCBjYW5jZWxlZCA9IGVycm9yLmlz
Q2FuY2VsbGF0aW9uKCk7Ci0gICAgbV9mcm9udGVuZC0+bG9hZGluZ0ZhaWxlZChyZXF1ZXN0SWQs
IGN1cnJlbnRUaW1lKCksIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCksIGNhbmNlbGVkID8g
JmNhbmNlbGVkIDogMCk7CisgICAgbV9mcm9udGVuZC0+bG9hZGluZ0ZhaWxlZChyZXF1ZXN0SWQs
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLCBjYW5jZWxlZCA/ICZjYW5jZWxlZCA6IDApOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291
cmNlQWdlbnQ6OmRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciog
bG9hZGVyLCBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCkBAIC0zNDMsNyArMzQzLDcgQEAgdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUo
RG9jdW1lbnRMb2FkZXIqIGxvYWQKIAogICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6TmV0d29yazo6
SW5pdGlhdG9yPiBpbml0aWF0b3JPYmplY3QgPSBidWlsZEluaXRpYXRvck9iamVjdChsb2FkZXIt
PmZyYW1lKCkgPyBsb2FkZXItPmZyYW1lKCktPmRvY3VtZW50KCkgOiAwKTsKIAotICAgIG1fZnJv
bnRlbmQtPnJlcXVlc3RTZXJ2ZWRGcm9tTWVtb3J5Q2FjaGUocmVxdWVzdElkLCBmcmFtZUlkLCBs
b2FkZXJJZCwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKSwgY3VycmVudFRpbWUoKSwgaW5pdGlhdG9y
T2JqZWN0LCBidWlsZE9iamVjdEZvckNhY2hlZFJlc291cmNlKCpyZXNvdXJjZSwgbG9hZGVyKSk7
CisgICAgbV9mcm9udGVuZC0+cmVxdWVzdFNlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0SWQs
IGZyYW1lSWQsIGxvYWRlcklkLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvckNhY2hlZFJl
c291cmNlKCpyZXNvdXJjZSkpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNl
dEluaXRpYWxTY3JpcHRDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VTdHJpbmcpCkBAIC01MDAsNyArNTAwLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNv
dXJjZUFnZW50Ojp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QodW5zaWduZWQgbG9u
ZyBpZGUKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OldlYlNvY2tldFJlcXVlc3Q+
IHJlcXVlc3RPYmplY3QgPSBUeXBlQnVpbGRlcjo6TmV0d29yazo6V2ViU29ja2V0UmVxdWVzdDo6
Y3JlYXRlKCkKICAgICAgICAgLnNldFJlcXVlc3RLZXkzKGNyZWF0ZVJlYWRhYmxlU3RyaW5nRnJv
bUJpbmFyeShyZXF1ZXN0LmtleTMoKS52YWx1ZSwgc2l6ZW9mKHJlcXVlc3Qua2V5MygpLnZhbHVl
KSkpCiAgICAgICAgIC5zZXRIZWFkZXJzKGJ1aWxkT2JqZWN0Rm9ySGVhZGVycyhyZXF1ZXN0Lmhl
YWRlckZpZWxkcygpKSk7Ci0gICAgbV9mcm9udGVuZC0+d2ViU29ja2V0V2lsbFNlbmRIYW5kc2hh
a2VSZXF1ZXN0KElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCBjdXJy
ZW50VGltZSgpLCByZXF1ZXN0T2JqZWN0KTsKKyAgICBtX2Zyb250ZW5kLT53ZWJTb2NrZXRXaWxs
U2VuZEhhbmRzaGFrZVJlcXVlc3QoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRp
ZmllciksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCByZXF1ZXN0T2JqZWN0KTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNo
YWtlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJTb2NrZXRIYW5k
c2hha2VSZXNwb25zZSYgcmVzcG9uc2UpCkBAIC01MTAsMTIgKzUxMCwxMiBAQCB2b2lkIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSh1
bnNpZ25lZCBsb25nCiAgICAgICAgIC5zZXRTdGF0dXNUZXh0KHJlc3BvbnNlLnN0YXR1c1RleHQo
KSkKICAgICAgICAgLnNldEhlYWRlcnMoYnVpbGRPYmplY3RGb3JIZWFkZXJzKHJlc3BvbnNlLmhl
YWRlckZpZWxkcygpKSkKICAgICAgICAgLnNldENoYWxsZW5nZVJlc3BvbnNlKGNyZWF0ZVJlYWRh
YmxlU3RyaW5nRnJvbUJpbmFyeShyZXNwb25zZS5jaGFsbGVuZ2VSZXNwb25zZSgpLnZhbHVlLCBz
aXplb2YocmVzcG9uc2UuY2hhbGxlbmdlUmVzcG9uc2UoKS52YWx1ZSkpKTsKLSAgICBtX2Zyb250
ZW5kLT53ZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZVJlY2VpdmVkKElkZW50aWZpZXJzRmFjdG9y
eTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCBjdXJyZW50VGltZSgpLCByZXNwb25zZU9iamVjdCk7
CisgICAgbV9mcm9udGVuZC0+d2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2VSZWNlaXZlZChJZGVu
dGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgbW9ub3RvbmljYWxseUluY3Jl
YXNpbmdUaW1lKCksIHJlc3BvbnNlT2JqZWN0KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OjpkaWRDbG9zZVdlYlNvY2tldCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiB7Ci0g
ICAgbV9mcm9udGVuZC0+d2ViU29ja2V0Q2xvc2VkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVz
dElkKGlkZW50aWZpZXIpLCBjdXJyZW50VGltZSgpKTsKKyAgICBtX2Zyb250ZW5kLT53ZWJTb2Nr
ZXRDbG9zZWQoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50OjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBXZWJTb2NrZXRGcmFtZSYgZnJhbWUpCkBAIC01MjQsNyArNTI0LDcgQEAgdm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLAogICAgICAgICAuc2V0T3Bjb2RlKGZyYW1lLm9wQ29kZSkKICAgICAgICAg
LnNldE1hc2soZnJhbWUubWFza2VkKQogICAgICAgICAuc2V0UGF5bG9hZERhdGEoU3RyaW5nKGZy
YW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpKTsKLSAgICBtX2Zyb250ZW5kLT53ZWJT
b2NrZXRGcmFtZVJlY2VpdmVkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZp
ZXIpLCBjdXJyZW50VGltZSgpLCBmcmFtZU9iamVjdCk7CisgICAgbV9mcm9udGVuZC0+d2ViU29j
a2V0RnJhbWVSZWNlaXZlZChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVy
KSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIGZyYW1lT2JqZWN0KTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRTZW5kV2ViU29ja2V0RnJhbWUodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJTb2NrZXRGcmFtZSYgZnJhbWUpCkBAIC01MzMsMTIg
KzUzMywxMiBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFNlbmRXZWJTb2NrZXRG
cmFtZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbgogICAgICAgICAuc2V0T3Bjb2RlKGZy
YW1lLm9wQ29kZSkKICAgICAgICAgLnNldE1hc2soZnJhbWUubWFza2VkKQogICAgICAgICAuc2V0
UGF5bG9hZERhdGEoU3RyaW5nKGZyYW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpKTsK
LSAgICBtX2Zyb250ZW5kLT53ZWJTb2NrZXRGcmFtZVNlbnQoSWRlbnRpZmllcnNGYWN0b3J5Ojpy
ZXF1ZXN0SWQoaWRlbnRpZmllciksIGN1cnJlbnRUaW1lKCksIGZyYW1lT2JqZWN0KTsKKyAgICBt
X2Zyb250ZW5kLT53ZWJTb2NrZXRGcmFtZVNlbnQoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0
SWQoaWRlbnRpZmllciksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBmcmFtZU9iamVj
dCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVdlYlNvY2tl
dEZyYW1lRXJyb3IodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSkKIHsKLSAgICBtX2Zyb250ZW5kLT53ZWJTb2NrZXRGcmFtZUVycm9yKElkZW50aWZp
ZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCBjdXJyZW50VGltZSgpLCBlcnJvck1l
c3NhZ2UpOworICAgIG1fZnJvbnRlbmQtPndlYlNvY2tldEZyYW1lRXJyb3IoSWRlbnRpZmllcnNG
YWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpLCBlcnJvck1lc3NhZ2UpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9TT0NLRVRTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwCmluZGV4IDFhMjI4MTUyOTdlMTkxNDZhMDE0ZTRhYzVmOTVlYzA5MTMxY2QwOGEuLjU0NTcx
NDM2Nzk3ZWQ1YWNlZWI0ODc4ZDE0ZTc1NDY4MmIxNDU4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTE2NSw3ICsx
NjUsNiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0KEVycm9yU3RyaW5nKiwg
Y29uc3QgaW50KiBtYXhDYWxsU3RhY2tEZXB0aCkKICAgICBlbHNlCiAgICAgICAgIG1fbWF4Q2Fs
bFN0YWNrRGVwdGggPSA1OwogICAgIG1fc3RhdGUtPnNldExvbmcoVGltZWxpbmVBZ2VudFN0YXRl
Ojp0aW1lbGluZU1heENhbGxTdGFja0RlcHRoLCBtX21heENhbGxTdGFja0RlcHRoKTsKLSAgICBt
X3RpbWVzdGFtcE9mZnNldCA9IGN1cnJlbnRUaW1lKCkgLSBtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKTsKIAogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPnN0YXJ0TWFp
blRocmVhZE1vbml0b3JpbmcoKTsKQEAgLTU1Niw3ICs1NTUsNiBAQCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbgogICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+
KCJUaW1lbGluZSIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwgbV9wYWdlQWdl
bnQocGFnZUFnZW50KQogICAgICwgbV9mcm9udGVuZCgwKQotICAgICwgbV90aW1lc3RhbXBPZmZz
ZXQoMCkKICAgICAsIG1faWQoMSkKICAgICAsIG1fbWF4Q2FsbFN0YWNrRGVwdGgoNSkKICAgICAs
IG1fcGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnRJbnN0YWxsZWRBdFN0YWNrRGVwdGgoMCkK
QEAgLTYxOSw3ICs2MTcsNyBAQCBkb3VibGUgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dGltZXN0
YW1wKCkKIAogZG91YmxlIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRpbWVzdGFtcEZyb21NaWNy
b3NlY29uZHMoZG91YmxlIG1pY3Jvc2Vjb25kcykKIHsKLSAgICByZXR1cm4gKG1pY3Jvc2Vjb25k
cyArIG1fdGltZXN0YW1wT2Zmc2V0KSAqIDEwMDAuMDsKKyAgICByZXR1cm4gbWljcm9zZWNvbmRz
ICogMTAwMC4wOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCA4ZjA0OGNmY2Iy
N2MwMDdjOTg1NDMzMTQ3OGNjOWYwN2JlMDU0YjdkLi40ZjA1Y2MyMmVhNmY3MzMwMGU1ZTEwZjNi
OTYxYWZiMGFlNTAxMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTE5NCw3ICsxOTQsNiBAQCBwcml2YXRlOgogICAgIElu
c3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAKICAgICBJbnNwZWN0b3JGcm9udGVuZDo6
VGltZWxpbmUqIG1fZnJvbnRlbmQ7Ci0gICAgZG91YmxlIG1fdGltZXN0YW1wT2Zmc2V0OwogCiAg
ICAgVmVjdG9yPFRpbWVsaW5lUmVjb3JkRW50cnk+IG1fcmVjb3JkU3RhY2s7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FudmFzUHJvZmlsZVZpZXcu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbnZhc1Byb2ZpbGVWaWV3
LmpzCmluZGV4IDM1ZDU1N2VlZjZkZTI2MGE1ZWM0ODY2MjQ3ODU1NTgzY2Y1NzllYTUuLmQwNjU5
MTMwOTJlOTc3NzhmZTRiZDEzZmY0Njk4MjA5ZDRkNDZhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FudmFzUHJvZmlsZVZpZXcuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYW52YXNQcm9maWxlVmlldy5qcwpAQCAt
MTM5LDEwICsxMzksMTAgQEAgV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdmFyIGl0ZW0gPSBlLnRhcmdldDsKICAgICAgICAgaWYgKCFpdGVtIHx8
ICFpdGVtLnRyYWNlTG9nSWQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZhciB0aW1l
ID0gRGF0ZS5ub3coKTsKKyAgICAgICAgdmFyIHRpbWUgPSBwZXJmb3JtYW5jZS53ZWJraXROb3co
KTsKICAgICAgICAgZnVuY3Rpb24gZGlkUmVwbGF5VHJhY2VMb2coZXJyb3IsIGRhdGFVUkwpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHRoaXMuX2RlYnVnSW5mb0VsZW1lbnQudGV4dENvbnRlbnQg
PSAiUmVwbGF5IHRpbWU6ICIgKyAoRGF0ZS5ub3coKSAtIHRpbWUpICsgIm1zIjsKKyAgICAgICAg
ICAgIHRoaXMuX2RlYnVnSW5mb0VsZW1lbnQudGV4dENvbnRlbnQgPSAiUmVwbGF5IHRpbWU6ICIg
KyAocGVyZm9ybWFuY2Uud2Via2l0Tm93KCkgLSB0aW1lKSArICJtcyI7CiAgICAgICAgICAgICBp
ZiAodGhpcy5fYWN0aXZlVHJhY2VMb2dJdGVtKQogICAgICAgICAgICAgICAgIHRoaXMuX2FjdGl2
ZVRyYWNlTG9nSXRlbS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiIjsKICAgICAgICAgICAgIHRo
aXMuX2FjdGl2ZVRyYWNlTG9nSXRlbSA9IGl0ZW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcwppbmRleCBhNDFkZDgw
Mjg5ODEyMDlhMGQyMmMxZGE0ZTc4Yzg3Njc2MWZjNDY3Li45NjkxY2UyNWFhMmM2NTk3YjJmMjg2
MGNhM2QzYTAwMWJiZTI1ZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMKQEAgLTE3NjUsNyArMTc2NSw3IEBA
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
aWYgKCF0aGlzLl9wYWludExpbmVzT3BlcmF0aW9uc1JlZnJlc2hWYWx1ZSkKICAgICAgICAgICAg
IHRoaXMuX3BhaW50TGluZXNPcGVyYXRpb25zUmVmcmVzaFZhbHVlID0gMjUwOwogICAgICAgICB0
aGlzLl9wYWludExpbmVzT3BlcmF0aW9uc0NyZWRpdCA9IHRoaXMuX3BhaW50TGluZXNPcGVyYXRp
b25zUmVmcmVzaFZhbHVlOwotICAgICAgICB0aGlzLl9wYWludExpbmVzT3BlcmF0aW9uc0xhc3RS
ZWZyZXNoID0gRGF0ZS5ub3coKTsKKyAgICAgICAgdGhpcy5fcGFpbnRMaW5lc09wZXJhdGlvbnNM
YXN0UmVmcmVzaCA9IHBlcmZvcm1hbmNlLndlYmtpdE5vdygpOwogICAgIH0sCiAKICAgICBfYWRq
dXN0UGFpbnRMaW5lc09wZXJhdGlvbnNSZWZyZXNoVmFsdWU6IGZ1bmN0aW9uKCkKQEAgLTE3NzMs
NyArMTc3Myw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdmFyIG9wZXJhdGlvbnNEb25lID0gdGhpcy5fcGFpbnRMaW5lc09wZXJhdGlv
bnNSZWZyZXNoVmFsdWUgLSB0aGlzLl9wYWludExpbmVzT3BlcmF0aW9uc0NyZWRpdDsKICAgICAg
ICAgaWYgKG9wZXJhdGlvbnNEb25lIDw9IDApCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IHZhciB0aW1lUGFzdCA9IERhdGUubm93KCkgLSB0aGlzLl9wYWludExpbmVzT3BlcmF0aW9uc0xh
c3RSZWZyZXNoOworICAgICAgICB2YXIgdGltZVBhc3QgPSBwZXJmb3JtYW5jZS53ZWJraXROb3co
KSAtIHRoaXMuX3BhaW50TGluZXNPcGVyYXRpb25zTGFzdFJlZnJlc2g7CiAgICAgICAgIGlmICh0
aW1lUGFzdCA8PSAwKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAvLyBNYWtlIHRoZSBz
eW5jaHJvbm91cyBDUFUgY2h1bmsgZm9yIHBhaW50aW5nIHRoZSBsaW5lcyA1MCBtc2VjLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNr
ZW5kLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNr
ZW5kLmpzCmluZGV4IGMyNzIyYjM0ZDVlODJjMjZhNjFjNWQ3ZWI0YmJhMjFhMTUwZGQ1ZWMuLjg1
ZjViNDMzZjdiM2IyMGQ3ZjgzNWNkNWM4ZTY0Y2Q5ZWJmOGU1YWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmQuanMKQEAg
LTU1LDcgKzU1LDcgQEAgSW5zcGVjdG9yQmFja2VuZENsYXNzLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fY2FsbGJhY2tzW2NhbGxiYWNrSWRdID0gY2FsbGJhY2s7CiAgICAgICAgIGNhbGxi
YWNrLm1ldGhvZE5hbWUgPSBtZXRob2Q7CiAgICAgICAgIGlmICh0aGlzLmR1bXBJbnNwZWN0b3JU
aW1lU3RhdHMpCi0gICAgICAgICAgICBjYWxsYmFjay5zZW5kUmVxdWVzdFRpbWUgPSBEYXRlLm5v
dygpOworICAgICAgICAgICAgY2FsbGJhY2suc2VuZFJlcXVlc3RUaW1lID0gcGVyZm9ybWFuY2Uu
d2Via2l0Tm93KCk7CiAgICAgICAgIAogICAgICAgICByZXR1cm4gY2FsbGJhY2tJZDsKICAgICB9
LApAQCAtMTgwLDcgKzE4MCw3IEBAIEluc3BlY3RvckJhY2tlbmRDbGFzcy5wcm90b3R5cGUgPSB7
CiAKICAgICAgICAgICAgICAgICB2YXIgcHJvY2Vzc2luZ1N0YXJ0VGltZTsKICAgICAgICAgICAg
ICAgICBpZiAodGhpcy5kdW1wSW5zcGVjdG9yVGltZVN0YXRzICYmIGNhbGxiYWNrLm1ldGhvZE5h
bWUpCi0gICAgICAgICAgICAgICAgICAgIHByb2Nlc3NpbmdTdGFydFRpbWUgPSBEYXRlLm5vdygp
OworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzaW5nU3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uu
d2Via2l0Tm93KCk7CiAKICAgICAgICAgICAgICAgICBhcmd1bWVudHNBcnJheS51bnNoaWZ0KG1l
c3NhZ2VPYmplY3QuZXJyb3IgPyBtZXNzYWdlT2JqZWN0LmVycm9yLm1lc3NhZ2UgOiBudWxsKTsK
ICAgICAgICAgICAgICAgICBjYWxsYmFjay5hcHBseShudWxsLCBhcmd1bWVudHNBcnJheSk7CkBA
IC0xODgsNyArMTg4LDcgQEAgSW5zcGVjdG9yQmFja2VuZENsYXNzLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW21lc3NhZ2VPYmplY3QuaWRdOwog
CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZHVtcEluc3BlY3RvclRpbWVTdGF0cyAmJiBjYWxs
YmFjay5tZXRob2ROYW1lKQotICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygidGltZS1z
dGF0czogIiArIGNhbGxiYWNrLm1ldGhvZE5hbWUgKyAiID0gIiArIChwcm9jZXNzaW5nU3RhcnRU
aW1lIC0gY2FsbGJhY2suc2VuZFJlcXVlc3RUaW1lKSArICIgKyAiICsgKERhdGUubm93KCkgLSBw
cm9jZXNzaW5nU3RhcnRUaW1lKSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJ0
aW1lLXN0YXRzOiAiICsgY2FsbGJhY2subWV0aG9kTmFtZSArICIgPSAiICsgKHByb2Nlc3NpbmdT
dGFydFRpbWUgLSBjYWxsYmFjay5zZW5kUmVxdWVzdFRpbWUpICsgIiArICIgKyAocGVyZm9ybWFu
Y2Uud2Via2l0Tm93KCkgLSBwcm9jZXNzaW5nU3RhcnRUaW1lKSk7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIGlmICh0aGlzLl9zY3JpcHRzICYmICF0aGlzLl9wZW5kaW5nUmVzcG9uc2Vz
Q291bnQpCkBAIC0yMjMsMTIgKzIyMywxMiBAQCBJbnNwZWN0b3JCYWNrZW5kQ2xhc3MucHJvdG90
eXBlID0gewogCiAgICAgICAgICAgICB2YXIgcHJvY2Vzc2luZ1N0YXJ0VGltZTsKICAgICAgICAg
ICAgIGlmICh0aGlzLmR1bXBJbnNwZWN0b3JUaW1lU3RhdHMpCi0gICAgICAgICAgICAgICAgcHJv
Y2Vzc2luZ1N0YXJ0VGltZSA9IERhdGUubm93KCk7CisgICAgICAgICAgICAgICAgcHJvY2Vzc2lu
Z1N0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLndlYmtpdE5vdygpOwogCiAgICAgICAgICAgICBkaXNw
YXRjaGVyW2Z1bmN0aW9uTmFtZV0uYXBwbHkoZGlzcGF0Y2hlciwgcGFyYW1zKTsKIAogICAgICAg
ICAgICAgaWYgKHRoaXMuZHVtcEluc3BlY3RvclRpbWVTdGF0cykKLSAgICAgICAgICAgICAgICBj
b25zb2xlLmxvZygidGltZS1zdGF0czogIiArIG1lc3NhZ2VPYmplY3QubWV0aG9kICsgIiA9ICIg
KyAoRGF0ZS5ub3coKSAtIHByb2Nlc3NpbmdTdGFydFRpbWUpKTsKKyAgICAgICAgICAgICAgICBj
b25zb2xlLmxvZygidGltZS1zdGF0czogIiArIG1lc3NhZ2VPYmplY3QubWV0aG9kICsgIiA9ICIg
KyAocGVyZm9ybWFuY2Uud2Via2l0Tm93KCkgLSBwcm9jZXNzaW5nU3RhcnRUaW1lKSk7CiAgICAg
ICAgIH0KICAgICB9LAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGRjNmFlNzkwMmRkYzU3YTExZjZhNWQ2YzU3MTIxNjg3
MjA0MmY4OS4uMjk5NmJhYmJjNDYyZDE3N2RmOWM5NjQ5YzdkMWNlYzU5MmIxMjE2NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDEyLTEwLTAyICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBVc2UgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIHRpbWUg
dGhyb3VnaG91dCBpbnNwZWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk4MjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgcGVyZm9ybWFuY2Uubm93KCkgaXMgZGlmZmVyZW50IGZvciBlYWNoIGRvY3Vt
ZW50LiBTbywgdGhpcyB0ZXN0IG5vIGxvbmdlciBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc3RhcnQtdGltZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXN0YXJ0LXRpbWUuaHRtbDog
UmVtb3ZlZC4KKwogMjAxMi0xMC0wMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMDE2NyBhbmQg
cjEzMDE3MS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1l
bGluZS1zdGFydC10aW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS1zdGFydC10aW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZGYxYWYyZDA4MWE4YjI2OWNhMjIyZDE5MWFiZDFkMDEzMTliMWYyOC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc3RhcnQtdGltZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRlc3RzIHNhbml0eSBvZiB0aW1lbGluZSB0aW1lc3Rh
bXBzLgotCi1kb25lCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1zdGFydC10aW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtc3RhcnQtdGltZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzYWM4ZTM2Yjg1ZTEwOTk1OGNlM2IxYzg4ZjIwYjgwYWEwMGQ2ZTI5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1zdGFydC10aW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJ0aW1lbGlu
ZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHBlcmZvcm1BY3Rpb25z
KCkKLXsKLSAgICBjb25zb2xlLnRpbWVTdGFtcCgidGltZSBpcyBhbiBpbGx1c2lvbiIpOwotfQot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgYmVmb3JlU3RhcnQgPSBEYXRlLm5vdygpOwot
ICAgIEluc3BlY3RvclRlc3Quc3RhcnRUaW1lbGluZSgpOwotICAgIEluc3BlY3RvclRlc3Qud2Fp
dEZvclJlY29yZFR5cGUoIlRpbWVTdGFtcCIsIG9uVGltZVN0YW1wKTsKLSAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJwZXJmb3JtQWN0aW9ucygpIik7Ci0KLSAgICBmdW5jdGlvbiBv
blRpbWVTdGFtcChyZWNvcmQpCi0gICAgewotICAgICAgICB2YXIgbm93ID0gRGF0ZS5ub3coKTsK
LSAgICAgICAgdmFyIGV2ZW50VGltZSA9IHJlY29yZC5zdGFydFRpbWU7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0R3JlYXRlck9yRXF1YWwoZXZlbnRUaW1lLCBiZWZvcmVTdGFydCwgImV2
ZW50IHRpbWUgc2hvdWxkIGJlIGFmdGVyIHRpbWVsaW5lIHN0YXJ0IHRpbWUiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRHcmVhdGVyT3JFcXVhbChub3csIE1hdGguZmxvb3IoZXZlbnRU
aW1lKSwgImV2ZW50IHRpbWUgc2hvdWxkIGJlIGJlZm9yZSBub3ciKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoImRvbmUiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zdG9wVGlt
ZWxpbmUoSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QuYmluZChJbnNwZWN0b3JUZXN0KSk7Ci0g
ICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgotPHA+Ci1UZXN0cyBzYW5pdHkgb2YgdGltZWxpbmUgdGltZXN0YW1wcy4KLTwvcD4KLQotPC9i
b2R5PgotPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167025</attachid>
            <date>2012-10-03 19:45:37 -0700</date>
            <delta_ts>2012-10-09 18:08:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98223-20121003194448.patch</filename>
            <type>text/plain</type>
            <size>34781</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc4NGU4Njg3NDc3NGRi
MzQ1NTFkYjMxNmRiYjNmNGQxNzc4ODFjYi4uMWE2MDJhZWRmYzlmN2U2YjY1N2Y3YmRhM2M1M2Jk
YzdhODA4NTI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEwLTAzICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgbW9ub3Rv
bmljYWxseSBpbmNyZWFzaW5nIHRpbWUgdGhyb3VnaG91dCBpbnNwZWN0b3IKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZW1vdmVzIHRoZSBuZWVk
IGZvciBhbGwgdGhlIGNvbnZlcnNpb24gY29kZSBiZXR3ZWVuIHRpbWUgYmFzZXMgYW5kIGl0IHNo
b3VsZCBtYWtlIHRpbWVzIG1vcmUgcmVsaWFibGUuCisKKyAgICAgICAgVGVzdHM6IEV4aXN0aW5n
IGluc3BlY3RvciB0ZXN0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjog
QWxsb3cgYWNjZXNzIHRvIG1vbm90b25pYyB0aW1lIG9mZnNldCBmb3IgSEFSIGZpbGVzLgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTZWxlY3RvclByb2ZpbGU6OnN0YXJ0U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JQcm9maWxlOjpjb21taXRTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rv
clByb2ZpbGU6OmNvbW1pdFNlbGVjdG9yVGltZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZ0ltcGwpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojpkb21Db250ZW50RXZlbnRGaXJlZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmxvYWRFdmVudEZpcmVkKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpidWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZv
clJlc291cmNlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RGb3JDYWNo
ZWRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3
aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291
cmNlQWdlbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJl
c291cmNlQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxTZW5kV2ViU29ja2V0
SGFuZHNoYWtlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50OjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkQ2xvc2VXZWJTb2NrZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFNlbmRX
ZWJTb2NrZXRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpnZXRNb25vdG9uaWNDbG9ja09mZnNldCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgor
ICAgICAgICAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50Ojp0aW1lc3RhbXBGcm9tTWljcm9zZWNvbmRzKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IQVJFbnRyeS5qczog
QXBwbHkgbW9ub3RvbmljIHRpbWUgb2Zmc2V0IHRvIHByb2R1Y2UgaHVtYW4gcmVhZGFibGUgRGF0
ZXMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSEFSRW50cnkucHJvdG90eXBlLmJ1aWxkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5IQVJMb2cucHJvdG90eXBlLl9jb252ZXJ0UGFnZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSEFSV3JpdGVyLnByb3RvdHlwZS53cml0ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuSEFSV3JpdGVyLnByb3RvdHlwZS5fb25HZXRNb25vdG9uaWNDbG9ja09mZnNl
dCk6CisKIDIwMTItMTAtMDIgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW1JlZ3Jlc3Npb25dIERldlRvb2xzRXh0ZW5zaW9u
VGVzdC5UZXN0Q29udGVudFNjcmlwdElzUHJlc2VudCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDAxYTNlMmE5MWI0NDI1YzA2MDBmOTFlZDg3NDEwYmIx
ZGRjMTU4ZTAuLjQyMTkxMWVjOWIwNzBiYzY2NmFmNjAzZTQwNzJjZGMwNjU4ZmYzNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTkxMSw2ICs5MTEsMTQgQEAK
ICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYWNoZURpc2FibGVkIiwgInR5cGUiOiAi
Ym9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJDYWNoZSBkaXNhYmxlZCBzdGF0ZS4iIH0KICAgICAg
ICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUb2dnbGVzIGln
bm9yaW5nIGNhY2hlIGZvciBlYWNoIHJlcXVlc3QuIElmIDxjb2RlPnRydWU8L2NvZGU+LCBjYWNo
ZSB3aWxsIG5vdCBiZSB1c2VkLiIgCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICJuYW1lIjogImdldE1vbm90b25pY0Nsb2NrT2Zmc2V0IiwKKyAgICAgICAg
ICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvZmZz
ZXQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiT2Zmc2V0IHRvIGFkZCB0byBy
ZXF1ZXN0VGltZSB2YWx1ZXMuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgb2ZmZXN0IHVzZWQgdG8gY2FsY3VsYXRlIGEg
RGF0ZS1saWtlIHRpbWUgZnJvbSBhIG1vbm90b25pYyB0aW1lLiIsCisgICAgICAgICAgICAgICAg
ImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImV2ZW50
cyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
CmluZGV4IGJiZTg4ZDJjMGZlN2IzOWI5ZjI2NDAyZDc3NDcyYTVhYzdlNjJhOGMuLmY3NDRlM2Nl
OTc2MmMxZDU2YjgwYmZhY2YxOWI4ODVjMzU5OGY5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtMTc4LDEyICsxNzgsMTIgQEAgaW5s
aW5lIHZvaWQgU2VsZWN0b3JQcm9maWxlOjpzdGFydFNlbGVjdG9yKGNvbnN0IENTU1N0eWxlUnVs
ZSogcnVsZSkKICAgICB9CiAgICAgbV9jdXJyZW50TWF0Y2hEYXRhLnVybCA9IHVybDsKICAgICBt
X2N1cnJlbnRNYXRjaERhdGEubGluZU51bWJlciA9IHJ1bGUtPnN0eWxlUnVsZSgpLT5zb3VyY2VM
aW5lKCk7Ci0gICAgbV9jdXJyZW50TWF0Y2hEYXRhLnN0YXJ0VGltZSA9IFdURjo6Y3VycmVudFRp
bWVNUygpOworICAgIG1fY3VycmVudE1hdGNoRGF0YS5zdGFydFRpbWUgPSBtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKSAqIDEwMDAuMDsKIH0KIAogaW5saW5lIHZvaWQgU2VsZWN0b3JQcm9m
aWxlOjpjb21taXRTZWxlY3Rvcihib29sIG1hdGNoZWQpCiB7Ci0gICAgZG91YmxlIG1hdGNoVGlt
ZU1zID0gV1RGOjpjdXJyZW50VGltZU1TKCkgLSBtX2N1cnJlbnRNYXRjaERhdGEuc3RhcnRUaW1l
OworICAgIGRvdWJsZSBtYXRjaFRpbWVNcyA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
ICogMTAwMC4wIC0gbV9jdXJyZW50TWF0Y2hEYXRhLnN0YXJ0VGltZTsKICAgICBtX3RvdGFsTWF0
Y2hpbmdUaW1lTXMgKz0gbWF0Y2hUaW1lTXM7CiAKICAgICBSdWxlTWF0Y2hpbmdTdGF0c01hcDo6
QWRkUmVzdWx0IHJlc3VsdCA9IG1fcnVsZU1hdGNoaW5nU3RhdHMuYWRkKG1ha2VLZXkoKSwgUnVs
ZU1hdGNoaW5nU3RhdHMobV9jdXJyZW50TWF0Y2hEYXRhLCBtYXRjaFRpbWVNcywgMSwgbWF0Y2hl
ZCA/IDEgOiAwKSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgaW5saW5lIHZvaWQgU2VsZWN0b3JQcm9m
aWxlOjpjb21taXRTZWxlY3Rvcihib29sIG1hdGNoZWQpCiAKIGlubGluZSB2b2lkIFNlbGVjdG9y
UHJvZmlsZTo6Y29tbWl0U2VsZWN0b3JUaW1lKCkKIHsKLSAgICBkb3VibGUgcHJvY2Vzc2luZ1Rp
bWVNcyA9IFdURjo6Y3VycmVudFRpbWVNUygpIC0gbV9jdXJyZW50TWF0Y2hEYXRhLnN0YXJ0VGlt
ZTsKKyAgICBkb3VibGUgcHJvY2Vzc2luZ1RpbWVNcyA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpICogMTAwMC4wIC0gbV9jdXJyZW50TWF0Y2hEYXRhLnN0YXJ0VGltZTsKICAgICBtX3Rv
dGFsTWF0Y2hpbmdUaW1lTXMgKz0gcHJvY2Vzc2luZ1RpbWVNczsKIAogICAgIFJ1bGVNYXRjaGlu
Z1N0YXRzTWFwOjppdGVyYXRvciBpdCA9IG1fcnVsZU1hdGNoaW5nU3RhdHMuZmluZChtYWtlS2V5
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcAppbmRleCBhYmI1ZDc1YjkzYzZlNDQxMWJhM2QyOTE0MTA2MWMxZjkyZmI3
MzVlLi5mYTYxMzNkYjBmYjRiY2U4YjY3ZjgzYjMyMTk0MjhmYmE4OThlZjM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cApAQCAtNzM2LDE4ICs3MzYsMTMgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFJlY2VpdmVEYXRhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW4KICAgICAgICAg
cmVzb3VyY2VBZ2VudC0+ZGlkUmVjZWl2ZURhdGEoaWRlbnRpZmllciwgZGF0YSwgZGF0YUxlbmd0
aCwgZW5jb2RlZERhdGFMZW5ndGgpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVy
LCBkb3VibGUgbW9ub3RvbmljRmluaXNoVGltZSkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRGaW5pc2hMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQogewogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRp
bWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50
KCk7CiAgICAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdlbnQoKTsKICAgICBpZiAoIXRpbWVsaW5l
QWdlbnQgJiYgIXJlc291cmNlQWdlbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRvdWJsZSBm
aW5pc2hUaW1lID0gMC4wOwotICAgIC8vIEZJWE1FOiBFeHBvc2UgYWxsIG9mIHRoZSB0aW1pbmcg
ZGV0YWlscyB0byBpbnNwZWN0b3IgYW5kIGhhdmUgaXQgY2FsY3VsYXRlIGZpbmlzaFRpbWUuCi0g
ICAgaWYgKG1vbm90b25pY0ZpbmlzaFRpbWUpCi0gICAgICAgIGZpbmlzaFRpbWUgPSBsb2FkZXIt
PnRpbWluZygpLT5jb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1vbm90b25pY0Zp
bmlzaFRpbWUpOwotCiAgICAgaWYgKHRpbWVsaW5lQWdlbnQpCiAgICAgICAgIHRpbWVsaW5lQWdl
bnQtPmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZShpZGVudGlmaWVyLCBmYWxzZSwgZmluaXNoVGlt
ZSwgbG9hZGVyLT5mcmFtZSgpKTsKICAgICBpZiAocmVzb3VyY2VBZ2VudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggZWYzOWU2ZjEz
OTMwNWNmYWI4ZGE4MThlM2ExMWQwOTZmMzhmNmM2NC4uZTcyYWRmYTUxOWUyNDdmNWE5OTI2Y2Qz
YThhYTFkMTI1M2M2MGE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAKQEAgLTc2NywxMiArNzY3LDEyIEBAIHZvaWQgSW5zcGVjdG9yUGFn
ZUFnZW50OjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqIGZyYW1lLCBET01XcmFw
cGVyV29yCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50RmlyZWQoKQog
ewogICAgIG1fZGlkTG9hZEV2ZW50RmlyZSA9IHRydWU7Ci0gICAgbV9mcm9udGVuZC0+ZG9tQ29u
dGVudEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7CisgICAgbV9mcm9udGVuZC0+ZG9tQ29udGVu
dEV2ZW50RmlyZWQobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogfQogCiB2b2lkIElu
c3BlY3RvclBhZ2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQoKQogewotICAgIG1fZnJvbnRlbmQtPmxv
YWRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOworICAgIG1fZnJvbnRlbmQtPmxvYWRFdmVudEZp
cmVkKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5k
ZXggN2RlZmIzNTk1ZGNiMWFkYTkyNTJhN2ViNjIwODM0NTY2NThhYjRjNC4uYzUzYzlhNDU3YWZh
MzE0MjBlYmMwZjE0NTE3ZDUwNmQ4Y2M2NTgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtMTA5LDEwICsxMDksMTAg
QEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckhlYWRl
cnMoY29uc3QgSFRUUEhlYWRlck1hcCYgaGUKICAgICByZXR1cm4gaGVhZGVyc09iamVjdDsKIH0K
IAotc3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5n
PiBidWlsZE9iamVjdEZvclRpbWluZyhjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZywg
RG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKK3N0YXRpYyBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpO
ZXR3b3JrOjpSZXNvdXJjZVRpbWluZz4gYnVpbGRPYmplY3RGb3JUaW1pbmcoY29uc3QgUmVzb3Vy
Y2VMb2FkVGltaW5nJiB0aW1pbmcpCiB7CiAgICAgcmV0dXJuIFR5cGVCdWlsZGVyOjpOZXR3b3Jr
OjpSZXNvdXJjZVRpbWluZzo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFJlcXVlc3RUaW1lKHRpbWlu
Zy5jb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvRG9jdW1lbnRUaW1lKGxvYWRlci0+dGltaW5nKCks
IDApKQorICAgICAgICAuc2V0UmVxdWVzdFRpbWUodGltaW5nLnJlcXVlc3RUaW1lKQogICAgICAg
ICAuc2V0UHJveHlTdGFydCh0aW1pbmcucHJveHlTdGFydCkKICAgICAgICAgLnNldFByb3h5RW5k
KHRpbWluZy5wcm94eUVuZCkKICAgICAgICAgLnNldERuc1N0YXJ0KHRpbWluZy5kbnNTdGFydCkK
QEAgLTEzOCw3ICsxMzgsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6TmV0d29y
azo6UmVxdWVzdD4gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QoYwogICAgIHJldHVybiBy
ZXF1ZXN0T2JqZWN0OwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6TmV0d29y
azo6UmVzcG9uc2U+IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKK3N0YXRpYyBQYXNz
UmVmUHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gYnVpbGRPYmplY3RGb3JSZXNv
dXJjZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGlm
IChyZXNwb25zZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNzAsNyArMTcwLDcg
QEAgc3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiBidWls
ZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UKIAogICAgIHJlc3BvbnNlT2JqZWN0LT5zZXRGcm9t
RGlza0NhY2hlKHJlc3BvbnNlLndhc0NhY2hlZCgpKTsKICAgICBpZiAocmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCkpCi0gICAgICAgIHJlc3BvbnNlT2JqZWN0LT5zZXRUaW1pbmcoYnVpbGRP
YmplY3RGb3JUaW1pbmcoKnJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLCBsb2FkZXIpKTsK
KyAgICAgICAgcmVzcG9uc2VPYmplY3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZvclRpbWluZygq
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpKTsKIAogICAgIGlmIChyZXNwb25zZS5yZXNv
dXJjZUxvYWRJbmZvKCkpIHsKICAgICAgICAgaWYgKCFyZXNwb25zZS5yZXNvdXJjZUxvYWRJbmZv
KCktPnJlc3BvbnNlSGVhZGVyc1RleHQuaXNFbXB0eSgpKQpAQCAtMTg0LDEzICsxODQsMTMgQEAg
c3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiBidWlsZE9i
amVjdEZvclJlc291cmNlUmVzcG9uc2UKICAgICByZXR1cm4gcmVzcG9uc2VPYmplY3Q7CiB9CiAK
LXN0YXRpYyBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4g
YnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShjb25zdCBDYWNoZWRSZXNvdXJjZSYgY2FjaGVk
UmVzb3VyY2UsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxUeXBl
QnVpbGRlcjo6TmV0d29yazo6Q2FjaGVkUmVzb3VyY2U+IGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVz
b3VyY2UoY29uc3QgQ2FjaGVkUmVzb3VyY2UmIGNhY2hlZFJlc291cmNlKQogewogICAgIFJlZlB0
cjxUeXBlQnVpbGRlcjo6TmV0d29yazo6Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlT2JqZWN0ID0g
VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlOjpjcmVhdGUoKQogICAgICAgICAu
c2V0VXJsKGNhY2hlZFJlc291cmNlLnVybCgpKQogICAgICAgICAuc2V0VHlwZShJbnNwZWN0b3JQ
YWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlVHlwZUpzb24oY2FjaGVkUmVzb3VyY2UpKQogICAgICAg
ICAuc2V0Qm9keVNpemUoY2FjaGVkUmVzb3VyY2UuZW5jb2RlZFNpemUoKSk7Ci0gICAgUmVmUHRy
PFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gcmVzb3VyY2VSZXNwb25zZSA9IGJ1aWxk
T2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShjYWNoZWRSZXNvdXJjZS5yZXNwb25zZSgpLCBsb2Fk
ZXIpOworICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJlc291cmNl
UmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UoY2FjaGVkUmVzb3VyY2Uu
cmVzcG9uc2UoKSk7CiAgICAgaWYgKHJlc291cmNlUmVzcG9uc2UpCiAgICAgICAgIHJlc291cmNl
T2JqZWN0LT5zZXRSZXNwb25zZShyZXNvdXJjZVJlc3BvbnNlKTsKICAgICByZXR1cm4gcmVzb3Vy
Y2VPYmplY3Q7CkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
Ojp3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudEwKICAg
ICB9CiAKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkluaXRpYXRvcj4gaW5pdGlh
dG9yT2JqZWN0ID0gYnVpbGRJbml0aWF0b3JPYmplY3QobG9hZGVyLT5mcmFtZSgpID8gbG9hZGVy
LT5mcmFtZSgpLT5kb2N1bWVudCgpIDogMCk7Ci0gICAgbV9mcm9udGVuZC0+cmVxdWVzdFdpbGxC
ZVNlbnQocmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkpLCBt
X3BhZ2VBZ2VudC0+bG9hZGVySWQobG9hZGVyKSwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKSwgYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGN1cnJlbnRUaW1lKCksIGluaXRp
YXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9u
c2UsIGxvYWRlcikpOworICAgIG1fZnJvbnRlbmQtPnJlcXVlc3RXaWxsQmVTZW50KHJlcXVlc3RJ
ZCwgbV9wYWdlQWdlbnQtPmZyYW1lSWQobG9hZGVyLT5mcmFtZSgpKSwgbV9wYWdlQWdlbnQtPmxv
YWRlcklkKGxvYWRlciksIGxvYWRlci0+dXJsKCkuc3RyaW5nKCksIGJ1aWxkT2JqZWN0Rm9yUmVz
b3VyY2VSZXF1ZXN0KHJlcXVlc3QpLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgaW5p
dGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVkaXJlY3RSZXNw
b25zZSkpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Om1hcmtSZXNvdXJjZUFz
Q2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAgLTI0Miw3ICsyNDIsNyBAQCB2b2lk
IEluc3BlY3RvclJlc291cmNlQWdlbnQ6Om1hcmtSZXNvdXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllcikKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFJlc291cmNlTG9hZGVyKiByZXNvdXJj
ZUxvYWRlcikKIHsKICAgICBTdHJpbmcgcmVxdWVzdElkID0gSWRlbnRpZmllcnNGYWN0b3J5Ojpy
ZXF1ZXN0SWQoaWRlbnRpZmllcik7Ci0gICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpS
ZXNwb25zZT4gcmVzb3VyY2VSZXNwb25zZSA9IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25z
ZShyZXNwb25zZSwgbG9hZGVyKTsKKyAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJl
c3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNl
KHJlc3BvbnNlKTsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQ6OlJlc291cmNlVHlwZSB0eXBlID0g
SW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlOwogICAgIGxvbmcgY2FjaGVkUmVzb3Vy
Y2VTaXplID0gMDsKIApAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1l
CiAgICAgICAgIG1fcmVzb3VyY2VzRGF0YS0+cmVzcG9uc2VSZWNlaXZlZChyZXF1ZXN0SWQsIG1f
cGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIHJlc3BvbnNlKTsKICAgICB9CiAg
ICAgbV9yZXNvdXJjZXNEYXRhLT5zZXRSZXNvdXJjZVR5cGUocmVxdWVzdElkLCB0eXBlKTsKLSAg
ICBtX2Zyb250ZW5kLT5yZXNwb25zZVJlY2VpdmVkKHJlcXVlc3RJZCwgbV9wYWdlQWdlbnQtPmZy
YW1lSWQobG9hZGVyLT5mcmFtZSgpKSwgbV9wYWdlQWdlbnQtPmxvYWRlcklkKGxvYWRlciksIGN1
cnJlbnRUaW1lKCksIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VUeXBlSnNvbih0eXBlKSwg
cmVzb3VyY2VSZXNwb25zZSk7CisgICAgbV9mcm9udGVuZC0+cmVzcG9uc2VSZWNlaXZlZChyZXF1
ZXN0SWQsIG1fcGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIG1fcGFnZUFnZW50
LT5sb2FkZXJJZChsb2FkZXIpLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgSW5zcGVj
dG9yUGFnZUFnZW50OjpyZXNvdXJjZVR5cGVKc29uKHR5cGUpLCByZXNvdXJjZVJlc3BvbnNlKTsK
ICAgICAvLyBJZiB3ZSByZXZhbGlkYXRlZCB0aGUgcmVzb3VyY2UgYW5kIGdvdCBOb3QgbW9kaWZp
ZWQsIHNlbmQgY29udGVudCBsZW5ndGggZm9sbG93aW5nIGRpZFJlY2VpdmVSZXNwb25zZQogICAg
IC8vIGFzIHRoZXJlIHdpbGwgYmUgbm8gY2FsbHMgdG8gZGlkUmVjZWl2ZURhdGEgZnJvbSB0aGUg
bmV0d29yayBzdGFjay4KICAgICBpZiAoY2FjaGVkUmVzb3VyY2VTaXplICYmIGlzTm90TW9kaWZp
ZWQpCkBAIC0yOTYsNyArMjk2LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRS
ZWNlaXZlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IGNoYXIKICAgICAgICAg
ICAgIG1fcmVzb3VyY2VzRGF0YS0+bWF5YmVBZGRSZXNvdXJjZURhdGEocmVxdWVzdElkLCBkYXRh
LCBkYXRhTGVuZ3RoKTsKICAgICB9CiAKLSAgICBtX2Zyb250ZW5kLT5kYXRhUmVjZWl2ZWQocmVx
dWVzdElkLCBjdXJyZW50VGltZSgpLCBkYXRhTGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCk7Cisg
ICAgbV9mcm9udGVuZC0+ZGF0YVJlY2VpdmVkKHJlcXVlc3RJZCwgbW9ub3RvbmljYWxseUluY3Jl
YXNpbmdUaW1lKCksIGRhdGFMZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoKTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgZG91YmxlIGZpbmlzaFRpbWUpCkBAIC0z
MDgsNyArMzA4LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRGaW5pc2hMb2Fk
aW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnQKICAgICBtX3Jlc291cmNlc0Rh
dGEtPm1heWJlRGVjb2RlRGF0YVRvQ29udGVudChyZXF1ZXN0SWQpOwogCiAgICAgaWYgKCFmaW5p
c2hUaW1lKQotICAgICAgICBmaW5pc2hUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgZmlu
aXNoVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogCiAgICAgbV9mcm9udGVu
ZC0+bG9hZGluZ0ZpbmlzaGVkKHJlcXVlc3RJZCwgZmluaXNoVGltZSk7CiB9CkBAIC0zMjQsNyAr
MzI0LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRGYWlsTG9hZGluZyh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG8KICAgICB9CiAKICAgICBib29sIGNhbmNl
bGVkID0gZXJyb3IuaXNDYW5jZWxsYXRpb24oKTsKLSAgICBtX2Zyb250ZW5kLT5sb2FkaW5nRmFp
bGVkKHJlcXVlc3RJZCwgY3VycmVudFRpbWUoKSwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24o
KSwgY2FuY2VsZWQgPyAmY2FuY2VsZWQgOiAwKTsKKyAgICBtX2Zyb250ZW5kLT5sb2FkaW5nRmFp
bGVkKHJlcXVlc3RJZCwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIGVycm9yLmxvY2Fs
aXplZERlc2NyaXB0aW9uKCksIGNhbmNlbGVkID8gJmNhbmNlbGVkIDogMCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKQEAgLTM0Myw3
ICszNDMsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZExvYWRSZXNvdXJjZUZy
b21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciogbG9hZAogCiAgICAgUmVmUHRyPFR5cGVCdWls
ZGVyOjpOZXR3b3JrOjpJbml0aWF0b3I+IGluaXRpYXRvck9iamVjdCA9IGJ1aWxkSW5pdGlhdG9y
T2JqZWN0KGxvYWRlci0+ZnJhbWUoKSA/IGxvYWRlci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKSA6IDAp
OwogCi0gICAgbV9mcm9udGVuZC0+cmVxdWVzdFNlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0
SWQsIGZyYW1lSWQsIGxvYWRlcklkLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBjdXJyZW50VGlt
ZSgpLCBpbml0aWF0b3JPYmplY3QsIGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UoKnJlc291
cmNlLCBsb2FkZXIpKTsKKyAgICBtX2Zyb250ZW5kLT5yZXF1ZXN0U2VydmVkRnJvbU1lbW9yeUNh
Y2hlKHJlcXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCks
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBpbml0aWF0b3JPYmplY3QsIGJ1aWxkT2Jq
ZWN0Rm9yQ2FjaGVkUmVzb3VyY2UoKnJlc291cmNlKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6c2V0SW5pdGlhbFNjcmlwdENvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZykKQEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lk
IEluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVz
dCh1bnNpZ25lZCBsb25nIGlkZQogICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6TmV0d29yazo6V2Vi
U29ja2V0UmVxdWVzdD4gcmVxdWVzdE9iamVjdCA9IFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpXZWJT
b2NrZXRSZXF1ZXN0OjpjcmVhdGUoKQogICAgICAgICAuc2V0UmVxdWVzdEtleTMoY3JlYXRlUmVh
ZGFibGVTdHJpbmdGcm9tQmluYXJ5KHJlcXVlc3Qua2V5MygpLnZhbHVlLCBzaXplb2YocmVxdWVz
dC5rZXkzKCkudmFsdWUpKSkKICAgICAgICAgLnNldEhlYWRlcnMoYnVpbGRPYmplY3RGb3JIZWFk
ZXJzKHJlcXVlc3QuaGVhZGVyRmllbGRzKCkpKTsKLSAgICBtX2Zyb250ZW5kLT53ZWJTb2NrZXRX
aWxsU2VuZEhhbmRzaGFrZVJlcXVlc3QoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRl
bnRpZmllciksIGN1cnJlbnRUaW1lKCksIHJlcXVlc3RPYmplY3QpOworICAgIG1fZnJvbnRlbmQt
PndlYlNvY2tldFdpbGxTZW5kSGFuZHNoYWtlUmVxdWVzdChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJl
cXVlc3RJZChpZGVudGlmaWVyKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIHJlcXVl
c3RPYmplY3QpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVX
ZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IFdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlJiByZXNwb25zZSkKQEAgLTUxMCwxMiArNTEwLDEy
IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRz
aGFrZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcKICAgICAgICAgLnNldFN0YXR1c1RleHQocmVzcG9u
c2Uuc3RhdHVzVGV4dCgpKQogICAgICAgICAuc2V0SGVhZGVycyhidWlsZE9iamVjdEZvckhlYWRl
cnMocmVzcG9uc2UuaGVhZGVyRmllbGRzKCkpKQogICAgICAgICAuc2V0Q2hhbGxlbmdlUmVzcG9u
c2UoY3JlYXRlUmVhZGFibGVTdHJpbmdGcm9tQmluYXJ5KHJlc3BvbnNlLmNoYWxsZW5nZVJlc3Bv
bnNlKCkudmFsdWUsIHNpemVvZihyZXNwb25zZS5jaGFsbGVuZ2VSZXNwb25zZSgpLnZhbHVlKSkp
OwotICAgIG1fZnJvbnRlbmQtPndlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlUmVjZWl2ZWQoSWRl
bnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIGN1cnJlbnRUaW1lKCksIHJl
c3BvbnNlT2JqZWN0KTsKKyAgICBtX2Zyb250ZW5kLT53ZWJTb2NrZXRIYW5kc2hha2VSZXNwb25z
ZVJlY2VpdmVkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgcmVzcG9uc2VPYmplY3QpOwogfQogCiB2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZENsb3NlV2ViU29ja2V0KHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllcikKIHsKLSAgICBtX2Zyb250ZW5kLT53ZWJTb2NrZXRDbG9zZWQoSWRlbnRpZmllcnNG
YWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIGN1cnJlbnRUaW1lKCkpOworICAgIG1fZnJv
bnRlbmQtPndlYlNvY2tldENsb3NlZChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVu
dGlmaWVyKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogfQogCiB2b2lkIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZSh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFdlYlNvY2tldEZyYW1lJiBmcmFtZSkKQEAgLTUyNCw3ICs1MjQs
NyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFt
ZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsCiAgICAgICAgIC5zZXRPcGNvZGUoZnJhbWUub3BD
b2RlKQogICAgICAgICAuc2V0TWFzayhmcmFtZS5tYXNrZWQpCiAgICAgICAgIC5zZXRQYXlsb2Fk
RGF0YShTdHJpbmcoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCkpOwotICAgIG1f
ZnJvbnRlbmQtPndlYlNvY2tldEZyYW1lUmVjZWl2ZWQoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1
ZXN0SWQoaWRlbnRpZmllciksIGN1cnJlbnRUaW1lKCksIGZyYW1lT2JqZWN0KTsKKyAgICBtX2Zy
b250ZW5kLT53ZWJTb2NrZXRGcmFtZVJlY2VpdmVkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVz
dElkKGlkZW50aWZpZXIpLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgZnJhbWVPYmpl
Y3QpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFNlbmRXZWJTb2NrZXRG
cmFtZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYlNvY2tldEZyYW1lJiBmcmFt
ZSkKQEAgLTUzMywxMiArNTMzLDEyIEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlk
U2VuZFdlYlNvY2tldEZyYW1lKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uCiAgICAgICAg
IC5zZXRPcGNvZGUoZnJhbWUub3BDb2RlKQogICAgICAgICAuc2V0TWFzayhmcmFtZS5tYXNrZWQp
CiAgICAgICAgIC5zZXRQYXlsb2FkRGF0YShTdHJpbmcoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5
bG9hZExlbmd0aCkpOwotICAgIG1fZnJvbnRlbmQtPndlYlNvY2tldEZyYW1lU2VudChJZGVudGlm
aWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgY3VycmVudFRpbWUoKSwgZnJhbWVP
YmplY3QpOworICAgIG1fZnJvbnRlbmQtPndlYlNvY2tldEZyYW1lU2VudChJZGVudGlmaWVyc0Zh
Y3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCksIGZyYW1lT2JqZWN0KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRS
ZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcih1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewotICAgIG1fZnJvbnRlbmQtPndlYlNvY2tldEZyYW1l
RXJyb3IoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIGN1cnJlbnRU
aW1lKCksIGVycm9yTWVzc2FnZSk7CisgICAgbV9mcm9udGVuZC0+d2ViU29ja2V0RnJhbWVFcnJv
cihJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCksIGVycm9yTWVzc2FnZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCX1NPQ0tFVFMpCkBAIC02NTUsNiArNjU1LDExIEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudDo6c2V0Q2FjaGVEaXNhYmxlZChFcnJvclN0cmluZyosIGJvb2wgY2FjaGVEaXNhYmxlZCkK
ICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+ZXZpY3RSZXNvdXJjZXMoKTsKIH0KIAordm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpnZXRNb25vdG9uaWNDbG9ja09mZnNldChFcnJvclN0cmluZyos
IGRvdWJsZSogb3V0UGFyYW0pCit7CisgICAgKm91dFBhcmFtID0gY3VycmVudFRpbWUoKSAtIG1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworfQorCiB2b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6Om1haW5GcmFtZU5hdmlnYXRlZChEb2N1bWVudExvYWRlciogbG9hZGVyKQogewogICAg
IGlmIChtX3N0YXRlLT5nZXRCb29sZWFuKFJlc291cmNlQWdlbnRTdGF0ZTo6Y2FjaGVEaXNhYmxl
ZCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdl
bnQuaAppbmRleCA1OTQ5ZTVhYjg3N2MxNGVlYzVmNzUwODgyMjY5ZWU4MDkzZTBjZTRmLi4yNDgx
MjdhMjkwZTFmYTBjNThhYjUwYTJhNTRiMjNkZTkyYTZkZmViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKQEAgLTE1Miw2ICsxNTIs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNhbkNsZWFyQnJvd3NlckNvb2tpZXMoRXJy
b3JTdHJpbmcqLCBib29sKik7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQnJvd3NlckNvb2tpZXMo
RXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FjaGVEaXNhYmxlZChFcnJvclN0
cmluZyosIGJvb2wgY2FjaGVEaXNhYmxlZCk7CisgICAgdmlydHVhbCB2b2lkIGdldE1vbm90b25p
Y0Nsb2NrT2Zmc2V0KEVycm9yU3RyaW5nKiwgZG91YmxlKik7CiAKIHByaXZhdGU6CiAgICAgSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFn
ZW50KiwgSW5zcGVjdG9yQ2xpZW50KiwgSW5zcGVjdG9yU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCAxYTIy
ODE1Mjk3ZTE5MTQ2YTAxNGU0YWM1Zjk1ZWMwOTEzMWNkMDhhLi41NDU3MTQzNjc5N2VkNWFjZWVi
NDg3OGQxNGU3NTQ2ODJiMTQ1ODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0xNjUsNyArMTY1LDYgQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydChFcnJvclN0cmluZyosIGNvbnN0IGludCogbWF4
Q2FsbFN0YWNrRGVwdGgpCiAgICAgZWxzZQogICAgICAgICBtX21heENhbGxTdGFja0RlcHRoID0g
NTsKICAgICBtX3N0YXRlLT5zZXRMb25nKFRpbWVsaW5lQWdlbnRTdGF0ZTo6dGltZWxpbmVNYXhD
YWxsU3RhY2tEZXB0aCwgbV9tYXhDYWxsU3RhY2tEZXB0aCk7Ci0gICAgbV90aW1lc3RhbXBPZmZz
ZXQgPSBjdXJyZW50VGltZSgpIC0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAKICAg
ICBpZiAobV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5zdGFydE1haW5UaHJlYWRNb25pdG9y
aW5nKCk7CkBAIC01NTYsNyArNTU1LDYgQEAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVj
dG9yVGltZWxpbmVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW4KICAgICA6
IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JUaW1lbGluZUFnZW50PigiVGltZWxpbmUiLCBp
bnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKICAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkK
ICAgICAsIG1fZnJvbnRlbmQoMCkKLSAgICAsIG1fdGltZXN0YW1wT2Zmc2V0KDApCiAgICAgLCBt
X2lkKDEpCiAgICAgLCBtX21heENhbGxTdGFja0RlcHRoKDUpCiAgICAgLCBtX3BsYXRmb3JtSW5z
dHJ1bWVudGF0aW9uQ2xpZW50SW5zdGFsbGVkQXRTdGFja0RlcHRoKDApCkBAIC02MTksNyArNjE3
LDcgQEAgZG91YmxlIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRpbWVzdGFtcCgpCiAKIGRvdWJs
ZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0aW1lc3RhbXBGcm9tTWljcm9zZWNvbmRzKGRvdWJs
ZSBtaWNyb3NlY29uZHMpCiB7Ci0gICAgcmV0dXJuIChtaWNyb3NlY29uZHMgKyBtX3RpbWVzdGFt
cE9mZnNldCkgKiAxMDAwLjA7CisgICAgcmV0dXJuIG1pY3Jvc2Vjb25kcyAqIDEwMDAuMDsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggOGYwNDhjZmNiMjdjMDA3Yzk4NTQzMzE0
NzhjYzlmMDdiZTA1NGI3ZC4uNGYwNWNjMjJlYTZmNzMzMDBlNWUxMGYzYjk2MWFmYjBhZTUwMTE3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oCkBAIC0xOTQsNyArMTk0LDYgQEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3JQYWdlQWdl
bnQqIG1fcGFnZUFnZW50OwogCiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OlRpbWVsaW5lKiBtX2Zy
b250ZW5kOwotICAgIGRvdWJsZSBtX3RpbWVzdGFtcE9mZnNldDsKIAogICAgIFZlY3RvcjxUaW1l
bGluZVJlY29yZEVudHJ5PiBtX3JlY29yZFN0YWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hBUkVudHJ5LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IQVJFbnRyeS5qcwppbmRleCAyMmUwN2Y4OGVkNmE2NWZiMDNkNDA0
MTA5ZWVmMzE5NWRmZmI1NThmLi40MzJlODQ3Njk3NjJkODk3OTkyYWI4YjhmZTYzNTU4YjgxZGIx
MmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hBUkVu
dHJ5LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSEFSRW50cnku
anMKQEAgLTUwLDcgKzUwLDcgQEAgV2ViSW5zcGVjdG9yLkhBUkVudHJ5LnByb3RvdHlwZSA9IHsK
ICAgICBidWlsZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIGVudHJ5ID0gIHsKLSAg
ICAgICAgICAgIHN0YXJ0ZWREYXRlVGltZTogbmV3IERhdGUodGhpcy5fcmVxdWVzdC5zdGFydFRp
bWUgKiAxMDAwKSwKKyAgICAgICAgICAgIG1vbm90b25pY1N0YXJ0VGltZTogdGhpcy5fcmVxdWVz
dC5zdGFydFRpbWUsCiAgICAgICAgICAgICB0aW1lOiBXZWJJbnNwZWN0b3IuSEFSRW50cnkuX3Rv
TWlsbGlzZWNvbmRzKHRoaXMuX3JlcXVlc3QuZHVyYXRpb24pLAogICAgICAgICAgICAgcmVxdWVz
dDogdGhpcy5fYnVpbGRSZXF1ZXN0KCksCiAgICAgICAgICAgICByZXNwb25zZTogdGhpcy5fYnVp
bGRSZXNwb25zZSgpLApAQCAtMzIxLDcgKzMyMSw3IEBAIFdlYkluc3BlY3Rvci5IQVJMb2cucHJv
dG90eXBlID0gewogICAgIF9jb252ZXJ0UGFnZTogZnVuY3Rpb24ocGFnZSkKICAgICB7CiAgICAg
ICAgIHJldHVybiB7Ci0gICAgICAgICAgICBzdGFydGVkRGF0ZVRpbWU6IG5ldyBEYXRlKHBhZ2Uu
c3RhcnRUaW1lICogMTAwMCksCisgICAgICAgICAgICBtb25vdG9uaWNTdGFydFRpbWU6IHBhZ2Uu
c3RhcnRUaW1lLAogICAgICAgICAgICAgaWQ6ICJwYWdlXyIgKyBwYWdlLmlkLAogICAgICAgICAg
ICAgdGl0bGU6IHBhZ2UudXJsLCAvLyBXZSBkb24ndCBoYXZlIGFjdHVhbCBwYWdlIHRpdGxlIGhl
cmUuIFVSTCBpcyBwcm9iYWJseSBiZXR0ZXIgdGhhbiBub3RoaW5nLgogICAgICAgICAgICAgcGFn
ZVRpbWluZ3M6IHsKQEAgLTM4MSw2ICszODEsMTAgQEAgV2ViSW5zcGVjdG9yLkhBUldyaXRlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnQgIT09IG51bGwpCiAg
ICAgICAgICAgICAgICAgZW50cmllc1tpXS5yZXNwb25zZS5jb250ZW50LnRleHQgPSBjb250ZW50
OwogICAgICAgICB9CisKKyAgICAgICAgTmV0d29ya0FnZW50LmdldE1vbm90b25pY0Nsb2NrT2Zm
c2V0KHRoaXMuX29uR2V0TW9ub3RvbmljQ2xvY2tPZmZzZXQuYmluZCh0aGlzKSk7CisgICAgICAg
ICsrdGhpcy5fcGVuZGluZ1JlcXVlc3RzOworCiAgICAgICAgIHZhciBjb21wb3NpdGVQcm9ncmVz
cyA9IG5ldyBXZWJJbnNwZWN0b3IuQ29tcG9zaXRlUHJvZ3Jlc3MocHJvZ3Jlc3MpOwogICAgICAg
ICB0aGlzLl93cml0ZVByb2dyZXNzID0gY29tcG9zaXRlUHJvZ3Jlc3MuY3JlYXRlU3ViUHJvZ3Jl
c3MoKTsKICAgICAgICAgaWYgKC0tdGhpcy5fcGVuZGluZ1JlcXVlc3RzKSB7CkBAIC00MDksNiAr
NDEzLDIxIEBAIFdlYkluc3BlY3Rvci5IQVJXcml0ZXIucHJvdG90eXBlID0gewogICAgICAgICB9
CiAgICAgfSwKIAorICAgIF9vbkdldE1vbm90b25pY0Nsb2NrT2Zmc2V0OiBmdW5jdGlvbihlcnJv
ciwgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgcmVxdWVzdCBpbiB0aGlzLl9oYXJM
b2cucmVxdWVzdHMpIHsKKyAgICAgICAgICAgIHJlcXVlc3Quc3RhcnRlZERhdGVUaW1lID0gbmV3
IERhdGUoKG9mZnNldCArIHJlcXVlc3QubW9ub3RvbmljU3RhcnRUaW1lKSAqIDEwMDApOworICAg
ICAgICAgICAgZGVsZXRlIHJlcXVlc3QubW9ub3RvbmljU3RhcnRUaW1lOworICAgICAgICB9Cisg
ICAgICAgIGZvciAodmFyIHBhZ2UgaW4gdGhpcy5faGFyTG9nLnBhZ2VzKSB7CisgICAgICAgICAg
ICBwYWdlLnN0YXJ0ZWREYXRlVGltZSA9IG5ldyBEYXRlKChvZmZzZXQgKyBwYWdlLm1vbm90b25p
Y1N0YXJ0VGltZSkgKiAxMDAwKTsKKyAgICAgICAgICAgIGRlbGV0ZSBwYWdlLm1vbm90b25pY1N0
YXJ0VGltZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIS0tdGhpcy5fcGVuZGluZ1JlcXVlc3Rz
KSB7CisgICAgICAgICAgICB0aGlzLl9iZWdpbldyaXRlKCk7CisgICAgICAgIH0KKyAgICB9LAor
CiAgICAgX2JlZ2luV3JpdGU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGNvbnN0IGpzb25J
bmRlbnQgPSAyOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDBkYzZhZTc5MDJkZGM1N2ExMWY2YTVkNmM1NzEyMTY4NzIwNDJm
ODkuLmRhNWJmNmZmNmEyNDcxYzUxZjNiYzgyNzk0NWI4YTU3NzQyNjYyNWQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0xMC0wMyAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgVXNlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyB0aW1lIHRocm91
Z2hvdXQgaW5zcGVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05ODIyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZXNlIHRlc3RzIGRvbid0IGdvIHRocm91Z2ggdGhlIEhBUiB3cml0ZXIsIHNvIHRo
ZXkgZG9uJ3QgaGF2ZSB0aGUgcHJvcGVyIHN0YXJ0ZWREYXRlVGltZSBzZXQuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWhlYWRlcnMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBh
cmFtZXRlcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy10ZXN0LmpzOgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1z
dGFydC10aW1lLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4gVGhlcmUncyBubyB3YXkgdG8gZ2V0IGF0
IHRoZSBtb25vdG9uaWMgY2xvY2sgZnJvbSBKYXZhU2NyaXB0LCBzbyB5b3UgY2FuJ3QgdmVyaWZ5
IHRoZSBzdGFydCB0aW1lIHdhcyBjb3JyZWN0LgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1zdGFydC10aW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24tZXhw
ZWN0ZWQudHh0OgorCiAyMDEyLTEwLTAyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTMwMTY3IGFu
ZCByMTMwMTcxLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2UtaGFyLWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0CmluZGV4
IGE3NmVmNWUwYTA3NjRjMTA4NGFkZWYyMTdmMTE0NGFhMmQyMzYyODYuLmZhYWE5MDE1MjMwOWMw
ZjczMzk0OTg4ODZhZTI5NWQzNTk5YjQxNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lv
bi1leHBlY3RlZC50eHQKQEAgLTEwLDYgKzEwLDcgQEAgUGFnZSByZWxvYWRlZC4KICAgICAgICAg
ewogICAgICAgICAgICAgY2FjaGUgOiB7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBtb25v
dG9uaWNTdGFydFRpbWUgOiA8bnVtYmVyPgogICAgICAgICAgICAgcGFnZXJlZiA6ICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252ZXJzaW9uLmh0bWwiCiAg
ICAgICAgICAgICByZXF1ZXN0IDogewogICAgICAgICAgICAgICAgIGJvZHlTaXplIDogPG51bWJl
cj4KQEAgLTkyLDEzICs5MywxMyBAQCBQYWdlIHJlbG9hZGVkLgogICAgICAgICAgICAgICAgIHN0
YXR1cyA6IDMwNAogICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgOiAiTm90IE1vZGlmaWVkIgog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RhcnRlZERhdGVUaW1lIDogPHBsYXVzaWJsZT4K
ICAgICAgICAgICAgIHRpbWUgOiA8bnVtYmVyPgogICAgICAgICAgICAgdGltaW5ncyA6IDxvYmpl
Y3Q+CiAgICAgICAgIH0KICAgICAgICAgewogICAgICAgICAgICAgY2FjaGUgOiB7CiAgICAgICAg
ICAgICB9CisgICAgICAgICAgICBtb25vdG9uaWNTdGFydFRpbWUgOiA8bnVtYmVyPgogICAgICAg
ICAgICAgcGFnZXJlZiA6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
LWhhci1jb252ZXJzaW9uLmh0bWwiCiAgICAgICAgICAgICByZXF1ZXN0IDogewogICAgICAgICAg
ICAgICAgIGJvZHlTaXplIDogPG51bWJlcj4KQEAgLTEyOCwxMyArMTI5LDEzIEBAIFBhZ2UgcmVs
b2FkZWQuCiAgICAgICAgICAgICAgICAgc3RhdHVzIDogMjAwCiAgICAgICAgICAgICAgICAgc3Rh
dHVzVGV4dCA6ICJPSyIKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0YXJ0ZWREYXRlVGlt
ZSA6IDxwbGF1c2libGU+CiAgICAgICAgICAgICB0aW1lIDogPG51bWJlcj4KICAgICAgICAgICAg
IHRpbWluZ3MgOiA8b2JqZWN0PgogICAgICAgICB9CiAgICAgICAgIHsKICAgICAgICAgICAgIGNh
Y2hlIDogewogICAgICAgICAgICAgfQorICAgICAgICAgICAgbW9ub3RvbmljU3RhcnRUaW1lIDog
PG51bWJlcj4KICAgICAgICAgICAgIHBhZ2VyZWYgOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi5odG1sIgogICAgICAgICAgICAgcmVxdWVz
dCA6IHsKICAgICAgICAgICAgICAgICBib2R5U2l6ZSA6IDxudW1iZXI+CkBAIC0xNjMsMTMgKzE2
NCwxMyBAQCBQYWdlIHJlbG9hZGVkLgogICAgICAgICAgICAgICAgIHN0YXR1cyA6IDMwNAogICAg
ICAgICAgICAgICAgIHN0YXR1c1RleHQgOiAiTm90IE1vZGlmaWVkIgogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgc3RhcnRlZERhdGVUaW1lIDogPHBsYXVzaWJsZT4KICAgICAgICAgICAgIHRp
bWUgOiA8bnVtYmVyPgogICAgICAgICAgICAgdGltaW5ncyA6IDxvYmplY3Q+CiAgICAgICAgIH0K
ICAgICAgICAgewogICAgICAgICAgICAgY2FjaGUgOiB7CiAgICAgICAgICAgICB9CisgICAgICAg
ICAgICBtb25vdG9uaWNTdGFydFRpbWUgOiA8bnVtYmVyPgogICAgICAgICAgICAgcGFnZXJlZiA6
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252ZXJzaW9u
Lmh0bWwiCiAgICAgICAgICAgICByZXF1ZXN0IDogewogICAgICAgICAgICAgICAgIGJvZHlTaXpl
IDogPG51bWJlcj4KQEAgLTIwMyw3ICsyMDQsNiBAQCBQYWdlIHJlbG9hZGVkLgogICAgICAgICAg
ICAgICAgIHN0YXR1cyA6IDIwMAogICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgOiAiT0siCiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdGFydGVkRGF0ZVRpbWUgOiA8cGxhdXNpYmxlPgog
ICAgICAgICAgICAgdGltZSA6IDxudW1iZXI+CiAgICAgICAgICAgICB0aW1pbmdzIDogPG9iamVj
dD4KICAgICAgICAgfQpAQCAtMjExLDExICsyMTEsMTEgQEAgUGFnZSByZWxvYWRlZC4KICAgICBw
YWdlcyA6IFsKICAgICAgICAgewogICAgICAgICAgICAgaWQgOiA8c3RyaW5nPgorICAgICAgICAg
ICAgbW9ub3RvbmljU3RhcnRUaW1lIDogPG51bWJlcj4KICAgICAgICAgICAgIHBhZ2VUaW1pbmdz
IDogewogICAgICAgICAgICAgICAgIG9uQ29udGVudExvYWQgOiA8bnVtYmVyPgogICAgICAgICAg
ICAgICAgIG9uTG9hZCA6IDxudW1iZXI+CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdGFy
dGVkRGF0ZVRpbWUgOiA8cGxhdXNpYmxlPgogICAgICAgICAgICAgdGl0bGUgOiAiIgogICAgICAg
ICB9CiAgICAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2UtaGFyLWhlYWRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWhlYWRlcnMtZXhwZWN0ZWQudHh0CmluZGV4IGE4NjY1
NDgwZjIyNDI5ZTQzYzUxZTkwODhlMjUzYTJiYzA3MjZhNGIuLjUyZjE3NzE3ZTM2ZmVkNGM5N2U0
ZTFkZGQ5ZDM1ODRlZTgxNTU0MjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlLWhhci1oZWFkZXJzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItaGVhZGVycy1leHBlY3RlZC50
eHQKQEAgLTI3LDYgKzI3LDcgQEAgUmVzb3VyY2U6ewogSEFSOnsKICAgICBjYWNoZSA6IHsKICAg
ICB9CisgICAgbW9ub3RvbmljU3RhcnRUaW1lIDogLTEKICAgICByZXF1ZXN0IDogewogICAgICAg
ICBib2R5U2l6ZSA6IDAKICAgICAgICAgY29va2llcyA6IFsKQEAgLTY1LDcgKzY2LDYgQEAgSEFS
OnsKICAgICAgICAgc3RhdHVzIDogMjAwCiAgICAgICAgIHN0YXR1c1RleHQgOiAiT0siCiAgICAg
fQotICAgIHN0YXJ0ZWREYXRlVGltZSA6IDxvYmplY3Q+CiAgICAgdGltZSA6IDxudW1iZXI+CiAg
ICAgdGltaW5ncyA6IDxvYmplY3Q+CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0
CmluZGV4IGE1MmE1NzRhNzUzYzAxNWFlNTZiZWI5NDVjM2Y3NmI4MWU5OTczMzEuLjFjMmIyZDAy
MGJjY2FlZGY0NzEzZjQ3MDUzMDQ5OTIzOTk1MzNmZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMt
ZXhwZWN0ZWQudHh0CkBAIC01LDYgKzUsNyBAQCBUZXN0cyB0aGF0IHJlc291cmNlcyBwYW5lbCBz
aG93cyBmb3JtIGRhdGEgcGFyYW1ldGVycy4KIHsKICAgICBjYWNoZSA6IHsKICAgICB9CisgICAg
bW9ub3RvbmljU3RhcnRUaW1lIDogPG51bWJlcj4KICAgICByZXF1ZXN0IDogewogICAgICAgICBi
b2R5U2l6ZSA6IDxudW1iZXI+CiAgICAgICAgIGNvb2tpZXMgOiBbCkBAIC01NSw3ICs1Niw2IEBA
IFRlc3RzIHRoYXQgcmVzb3VyY2VzIHBhbmVsIHNob3dzIGZvcm0gZGF0YSBwYXJhbWV0ZXJzLgog
ICAgICAgICBzdGF0dXMgOiAyMDAKICAgICAgICAgc3RhdHVzVGV4dCA6ICJPSyIKICAgICB9Ci0g
ICAgc3RhcnRlZERhdGVUaW1lIDogPHBsYXVzaWJsZT4KICAgICB0aW1lIDogPG51bWJlcj4KICAg
ICB0aW1pbmdzIDogPG9iamVjdD4KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2VzLXRlc3QuanMKaW5kZXggNzRmY2U3OTViNGVmNGM0NDc5ZTYxN2Nh
MGE1MmFkNmMwZDE4MWIzZS4uYjUxYjY1YjE1NjYwMzBkMWEwMmI2YjkxNTIyNWVhYzEwNzk4YjA1
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
LXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
LXRlc3QuanMKQEAgLTYsNiArNiw3IEBAIEluc3BlY3RvclRlc3QuSEFSUHJvcGVydHlGb3JtYXR0
ZXJzID0gewogICAgIGhlYWRlcnM6ICJmb3JtYXRBc1R5cGVOYW1lIiwKICAgICBoZWFkZXJzU2l6
ZTogImZvcm1hdEFzVHlwZU5hbWUiLAogICAgIGlkOiAiZm9ybWF0QXNUeXBlTmFtZSIsCisgICAg
bW9ub3RvbmljU3RhcnRUaW1lOiAiZm9ybWF0QXNUeXBlTmFtZSIsCiAgICAgb25Db250ZW50TG9h
ZDogImZvcm1hdEFzVHlwZU5hbWUiLAogICAgIG9uTG9hZDogImZvcm1hdEFzVHlwZU5hbWUiLAog
ICAgIHJlY2VpdmU6ICJmb3JtYXRBc1R5cGVOYW1lIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zdGFydC10aW1lLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zdGFydC10aW1lLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGYxYWYyZDA4MWE4YjI2OWNhMjIy
ZDE5MWFiZDFkMDEzMTliMWYyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc3RhcnQt
dGltZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRlc3RzIHNh
bml0eSBvZiB0aW1lbGluZSB0aW1lc3RhbXBzLgotCi1kb25lCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zdGFydC10aW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc3RhcnQtdGltZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYWM4ZTM2Yjg1ZTEwOTk1OGNlM2IxYzg4ZjIwYjgw
YWEwMGQ2ZTI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zdGFydC10aW1lLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJ0aW1lbGluZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHBlcmZvcm1BY3Rpb25zKCkKLXsKLSAgICBjb25zb2xlLnRpbWVTdGFtcCgidGlt
ZSBpcyBhbiBpbGx1c2lvbiIpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgYmVm
b3JlU3RhcnQgPSBEYXRlLm5vdygpOwotICAgIEluc3BlY3RvclRlc3Quc3RhcnRUaW1lbGluZSgp
OwotICAgIEluc3BlY3RvclRlc3Qud2FpdEZvclJlY29yZFR5cGUoIlRpbWVTdGFtcCIsIG9uVGlt
ZVN0YW1wKTsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJwZXJmb3JtQWN0aW9u
cygpIik7Ci0KLSAgICBmdW5jdGlvbiBvblRpbWVTdGFtcChyZWNvcmQpCi0gICAgewotICAgICAg
ICB2YXIgbm93ID0gRGF0ZS5ub3coKTsKLSAgICAgICAgdmFyIGV2ZW50VGltZSA9IHJlY29yZC5z
dGFydFRpbWU7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0R3JlYXRlck9yRXF1YWwoZXZl
bnRUaW1lLCBiZWZvcmVTdGFydCwgImV2ZW50IHRpbWUgc2hvdWxkIGJlIGFmdGVyIHRpbWVsaW5l
IHN0YXJ0IHRpbWUiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRHcmVhdGVyT3JFcXVh
bChub3csIE1hdGguZmxvb3IoZXZlbnRUaW1lKSwgImV2ZW50IHRpbWUgc2hvdWxkIGJlIGJlZm9y
ZSBub3ciKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImRvbmUiKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zdG9wVGltZWxpbmUoSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qu
YmluZChJbnNwZWN0b3JUZXN0KSk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBzYW5pdHkgb2YgdGltZWxpbmUg
dGltZXN0YW1wcy4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFy
LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0
CmluZGV4IGVmMDBkOGU5ZGZjMWQzNzE3MDczNDRkNWU4M2Y4ODMzYTY4YjI3MGUuLjZmOGQxOWZk
M2Y4NGI2MzJlMjdhZTU1ZTFhNWI5ZGQ5MGMxYjI1YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252
ZXJzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi1leHBlY3RlZC50eHQK
QEAgLTEwLDYgKzEwLDcgQEAgUGFnZSByZWxvYWRlZC4KICAgICAgICAgewogICAgICAgICAgICAg
Y2FjaGUgOiB7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBtb25vdG9uaWNTdGFydFRpbWUg
OiA8bnVtYmVyPgogICAgICAgICAgICAgcGFnZXJlZiA6ICJwYWdlXzEiCiAgICAgICAgICAgICBy
ZXF1ZXN0IDogewogICAgICAgICAgICAgICAgIGJvZHlTaXplIDogPG51bWJlcj4KQEAgLTkyLDEz
ICs5MywxMyBAQCBQYWdlIHJlbG9hZGVkLgogICAgICAgICAgICAgICAgIHN0YXR1cyA6IDMwNAog
ICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgOiAiTm90IE1vZGlmaWVkIgogICAgICAgICAgICAg
fQotICAgICAgICAgICAgc3RhcnRlZERhdGVUaW1lIDogPHBsYXVzaWJsZT4KICAgICAgICAgICAg
IHRpbWUgOiA8bnVtYmVyPgogICAgICAgICAgICAgdGltaW5ncyA6IDxvYmplY3Q+CiAgICAgICAg
IH0KICAgICAgICAgewogICAgICAgICAgICAgY2FjaGUgOiB7CiAgICAgICAgICAgICB9CisgICAg
ICAgICAgICBtb25vdG9uaWNTdGFydFRpbWUgOiA8bnVtYmVyPgogICAgICAgICAgICAgcGFnZXJl
ZiA6ICJwYWdlXzEiCiAgICAgICAgICAgICByZXF1ZXN0IDogewogICAgICAgICAgICAgICAgIGJv
ZHlTaXplIDogPG51bWJlcj4KQEAgLTEyOCwxMyArMTI5LDEzIEBAIFBhZ2UgcmVsb2FkZWQuCiAg
ICAgICAgICAgICAgICAgc3RhdHVzIDogMjAwCiAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA6
ICJPSyIKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0YXJ0ZWREYXRlVGltZSA6IDxwbGF1
c2libGU+CiAgICAgICAgICAgICB0aW1lIDogPG51bWJlcj4KICAgICAgICAgICAgIHRpbWluZ3Mg
OiA8b2JqZWN0PgogICAgICAgICB9CiAgICAgICAgIHsKICAgICAgICAgICAgIGNhY2hlIDogewog
ICAgICAgICAgICAgfQorICAgICAgICAgICAgbW9ub3RvbmljU3RhcnRUaW1lIDogPG51bWJlcj4K
ICAgICAgICAgICAgIHBhZ2VyZWYgOiAicGFnZV8xIgogICAgICAgICAgICAgcmVxdWVzdCA6IHsK
ICAgICAgICAgICAgICAgICBib2R5U2l6ZSA6IDxudW1iZXI+CkBAIC0xNjMsMTMgKzE2NCwxMyBA
QCBQYWdlIHJlbG9hZGVkLgogICAgICAgICAgICAgICAgIHN0YXR1cyA6IDMwNAogICAgICAgICAg
ICAgICAgIHN0YXR1c1RleHQgOiAiTm90IE1vZGlmaWVkIgogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgc3RhcnRlZERhdGVUaW1lIDogPHBsYXVzaWJsZT4KICAgICAgICAgICAgIHRpbWUgOiA8
bnVtYmVyPgogICAgICAgICAgICAgdGltaW5ncyA6IDxvYmplY3Q+CiAgICAgICAgIH0KICAgICAg
ICAgewogICAgICAgICAgICAgY2FjaGUgOiB7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBt
b25vdG9uaWNTdGFydFRpbWUgOiA8bnVtYmVyPgogICAgICAgICAgICAgcGFnZXJlZiA6ICJwYWdl
XzEiCiAgICAgICAgICAgICByZXF1ZXN0IDogewogICAgICAgICAgICAgICAgIGJvZHlTaXplIDog
PG51bWJlcj4KQEAgLTIwMyw3ICsyMDQsNiBAQCBQYWdlIHJlbG9hZGVkLgogICAgICAgICAgICAg
ICAgIHN0YXR1cyA6IDIwMAogICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgOiAiT0siCiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBzdGFydGVkRGF0ZVRpbWUgOiA8cGxhdXNpYmxlPgogICAg
ICAgICAgICAgdGltZSA6IDxudW1iZXI+CiAgICAgICAgICAgICB0aW1pbmdzIDogPG9iamVjdD4K
ICAgICAgICAgfQpAQCAtMjExLDExICsyMTEsMTEgQEAgUGFnZSByZWxvYWRlZC4KICAgICBwYWdl
cyA6IFsKICAgICAgICAgewogICAgICAgICAgICAgaWQgOiA8c3RyaW5nPgorICAgICAgICAgICAg
bW9ub3RvbmljU3RhcnRUaW1lIDogPG51bWJlcj4KICAgICAgICAgICAgIHBhZ2VUaW1pbmdzIDog
ewogICAgICAgICAgICAgICAgIG9uQ29udGVudExvYWQgOiA8bnVtYmVyPgogICAgICAgICAgICAg
ICAgIG9uTG9hZCA6IDxudW1iZXI+CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdGFydGVk
RGF0ZVRpbWUgOiA8cGxhdXNpYmxlPgogICAgICAgICAgICAgdGl0bGUgOiAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi5odG1sIgogICAgICAg
ICB9CiAgICAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167889</attachid>
            <date>2012-10-09 18:08:46 -0700</date>
            <delta_ts>2012-10-10 06:28:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98223-20121009180747.patch</filename>
            <type>text/plain</type>
            <size>35832</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYxODExMDFlY2UwNmVj
YWZiNGRiZWZkYTQ2N2UzNzhmODg5YjAwZi4uNzgyMDdjYzY4ZjY1N2M0YTEyNTlhMmIxYzZlMmM2
ZDVkZDZmNTgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEwLTA5ICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgbW9ub3Rv
bmljYWxseSBpbmNyZWFzaW5nIHRpbWUgdGhyb3VnaG91dCBpbnNwZWN0b3IKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZW1vdmVzIHRoZSBuZWVk
IGZvciBhbGwgdGhlIGNvbnZlcnNpb24gY29kZSBiZXR3ZWVuIHRpbWUgYmFzZXMgYW5kIGl0IHNo
b3VsZCBtYWtlIHRpbWVzIG1vcmUgcmVsaWFibGUuCisKKyAgICAgICAgVGVzdHM6IEV4aXN0aW5n
IGluc3BlY3RvciB0ZXN0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjog
QWxsb3cgYWNjZXNzIHRvIG1vbm90b25pYyB0aW1lIG9mZnNldCBmb3IgSEFSIGZpbGVzLgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTZWxlY3RvclByb2ZpbGU6OnN0YXJ0U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JQcm9maWxlOjpjb21taXRTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rv
clByb2ZpbGU6OmNvbW1pdFNlbGVjdG9yVGltZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZ0ltcGwpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojpkb21Db250ZW50RXZlbnRGaXJlZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmxvYWRFdmVudEZpcmVkKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpidWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZv
clJlc291cmNlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RGb3JDYWNo
ZWRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3
aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291
cmNlQWdlbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJl
c291cmNlQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxTZW5kV2ViU29ja2V0
SGFuZHNoYWtlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50OjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkQ2xvc2VXZWJTb2NrZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFNlbmRX
ZWJTb2NrZXRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpnZXRNb25vdG9uaWNDbG9ja09mZnNldCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgor
ICAgICAgICAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50Ojp0aW1lc3RhbXBGcm9tTWljcm9zZWNvbmRzKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IQVJFbnRyeS5qczog
QXBwbHkgbW9ub3RvbmljIHRpbWUgb2Zmc2V0IHRvIHByb2R1Y2UgaHVtYW4gcmVhZGFibGUgRGF0
ZXMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSEFSRW50cnkucHJvdG90eXBlLmJ1aWxkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5IQVJMb2cucHJvdG90eXBlLl9jb252ZXJ0UGFnZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSEFSV3JpdGVyLnByb3RvdHlwZS53cml0ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuSEFSV3JpdGVyLnByb3RvdHlwZS5fb25HZXRNb25vdG9uaWNDbG9ja09mZnNl
dCk6CisKIDIwMTItMTAtMDUgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBEZXByZWNhdGVkIGZsZXhib3hlcyBzdWJ0cmFjdCBzY3JvbGxiYXIgd2lkdGgvaGVpZ2h0
IHR3aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggMTM0NWVm
YTMxMDVjZjM4YWM1ZDJiNzZhNThiMTM1YTA2MWNkMWMxMi4uNzg5ZTgyODQ3M2Y3MjEwMTA1OWVl
YmNjNTc5NDM4ODdiOTZjM2JkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
anNvbgpAQCAtOTIxLDYgKzkyMSwxNCBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNhY2hlRGlzYWJsZWQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIkNhY2hl
IGRpc2FibGVkIHN0YXRlLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgaWdub3JpbmcgY2FjaGUgZm9yIGVhY2ggcmVxdWVzdC4g
SWYgPGNvZGU+dHJ1ZTwvY29kZT4sIGNhY2hlIHdpbGwgbm90IGJlIHVzZWQuIiAKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0TW9ub3Rv
bmljQ2xvY2tPZmZzZXQiLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlw
dGlvbiI6ICJPZmZzZXQgdG8gYWRkIHRvIHJlcXVlc3RUaW1lIHZhbHVlcy4iIH0KKyAgICAgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBv
ZmZlc3QgdXNlZCB0byBjYWxjdWxhdGUgYSBEYXRlLWxpa2UgdGltZSBmcm9tIGEgbW9ub3Rvbmlj
IHRpbWUuIiwKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQogICAgICAgICAgICAgfQog
ICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggYmJlODhkMmMwZmU3YjM5YjlmMjY0MDJk
Nzc0NzJhNWFjN2U2MmE4Yy4uZjc0NGUzY2U5NzYyYzFkNTZiODBiZmFjZjE5Yjg4NWMzNTk4Zjli
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
CkBAIC0xNzgsMTIgKzE3OCwxMiBAQCBpbmxpbmUgdm9pZCBTZWxlY3RvclByb2ZpbGU6OnN0YXJ0
U2VsZWN0b3IoY29uc3QgQ1NTU3R5bGVSdWxlKiBydWxlKQogICAgIH0KICAgICBtX2N1cnJlbnRN
YXRjaERhdGEudXJsID0gdXJsOwogICAgIG1fY3VycmVudE1hdGNoRGF0YS5saW5lTnVtYmVyID0g
cnVsZS0+c3R5bGVSdWxlKCktPnNvdXJjZUxpbmUoKTsKLSAgICBtX2N1cnJlbnRNYXRjaERhdGEu
c3RhcnRUaW1lID0gV1RGOjpjdXJyZW50VGltZU1TKCk7CisgICAgbV9jdXJyZW50TWF0Y2hEYXRh
LnN0YXJ0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICogMTAwMC4wOwogfQog
CiBpbmxpbmUgdm9pZCBTZWxlY3RvclByb2ZpbGU6OmNvbW1pdFNlbGVjdG9yKGJvb2wgbWF0Y2hl
ZCkKIHsKLSAgICBkb3VibGUgbWF0Y2hUaW1lTXMgPSBXVEY6OmN1cnJlbnRUaW1lTVMoKSAtIG1f
Y3VycmVudE1hdGNoRGF0YS5zdGFydFRpbWU7CisgICAgZG91YmxlIG1hdGNoVGltZU1zID0gbW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgKiAxMDAwLjAgLSBtX2N1cnJlbnRNYXRjaERhdGEu
c3RhcnRUaW1lOwogICAgIG1fdG90YWxNYXRjaGluZ1RpbWVNcyArPSBtYXRjaFRpbWVNczsKIAog
ICAgIFJ1bGVNYXRjaGluZ1N0YXRzTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gbV9ydWxlTWF0Y2hp
bmdTdGF0cy5hZGQobWFrZUtleSgpLCBSdWxlTWF0Y2hpbmdTdGF0cyhtX2N1cnJlbnRNYXRjaERh
dGEsIG1hdGNoVGltZU1zLCAxLCBtYXRjaGVkID8gMSA6IDApKTsKQEAgLTE5Nyw3ICsxOTcsNyBA
QCBpbmxpbmUgdm9pZCBTZWxlY3RvclByb2ZpbGU6OmNvbW1pdFNlbGVjdG9yKGJvb2wgbWF0Y2hl
ZCkKIAogaW5saW5lIHZvaWQgU2VsZWN0b3JQcm9maWxlOjpjb21taXRTZWxlY3RvclRpbWUoKQog
ewotICAgIGRvdWJsZSBwcm9jZXNzaW5nVGltZU1zID0gV1RGOjpjdXJyZW50VGltZU1TKCkgLSBt
X2N1cnJlbnRNYXRjaERhdGEuc3RhcnRUaW1lOworICAgIGRvdWJsZSBwcm9jZXNzaW5nVGltZU1z
ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgKiAxMDAwLjAgLSBtX2N1cnJlbnRNYXRj
aERhdGEuc3RhcnRUaW1lOwogICAgIG1fdG90YWxNYXRjaGluZ1RpbWVNcyArPSBwcm9jZXNzaW5n
VGltZU1zOwogCiAgICAgUnVsZU1hdGNoaW5nU3RhdHNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydWxl
TWF0Y2hpbmdTdGF0cy5maW5kKG1ha2VLZXkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IGFiYjVkNzViOTNj
NmU0NDExYmEzZDI5MTQxMDYxYzFmOTJmYjczNWUuLmZhNjEzM2RiMGZiNGJjZThiNjdmODNiMzIx
OTQyOGZiYTg5OGVmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC03MzYsMTggKzczNiwxMyBAQCB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZURhdGFJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbgogICAgICAgICByZXNvdXJjZUFnZW50LT5kaWRSZWNlaXZlRGF0YShp
ZGVudGlmaWVyLCBkYXRhLCBkYXRhTGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGRvdWJsZSBtb25vdG9uaWNGaW5pc2hUaW1lKQor
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExvYWRpbmdJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKICAgICBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
KiByZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUmVzb3VyY2VB
Z2VudCgpOwogICAgIGlmICghdGltZWxpbmVBZ2VudCAmJiAhcmVzb3VyY2VBZ2VudCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZG91YmxlIGZpbmlzaFRpbWUgPSAwLjA7Ci0gICAgLy8gRklYTUU6
IEV4cG9zZSBhbGwgb2YgdGhlIHRpbWluZyBkZXRhaWxzIHRvIGluc3BlY3RvciBhbmQgaGF2ZSBp
dCBjYWxjdWxhdGUgZmluaXNoVGltZS4KLSAgICBpZiAobW9ub3RvbmljRmluaXNoVGltZSkKLSAg
ICAgICAgZmluaXNoVGltZSA9IGxvYWRlci0+dGltaW5nKCktPmNvbnZlcnRNb25vdG9uaWNUaW1l
VG9Eb2N1bWVudFRpbWUobW9ub3RvbmljRmluaXNoVGltZSk7Ci0KICAgICBpZiAodGltZWxpbmVB
Z2VudCkKICAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKGlk
ZW50aWZpZXIsIGZhbHNlLCBmaW5pc2hUaW1lLCBsb2FkZXItPmZyYW1lKCkpOwogICAgIGlmIChy
ZXNvdXJjZUFnZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFn
ZUFnZW50LmNwcAppbmRleCBlZjM5ZTZmMTM5MzA1Y2ZhYjhkYTgxOGUzYTExZDA5NmYzOGY2YzY0
Li5lNzJhZGZhNTE5ZTI0N2Y1YTk5MjZjZDNhOGFhMWQxMjUzYzYwYTZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtNzY3LDEyICs3
NjcsMTIgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENsZWFyV2luZG93T2JqZWN0SW5X
b3JsZChGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3IKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
Ojpkb21Db250ZW50RXZlbnRGaXJlZCgpCiB7CiAgICAgbV9kaWRMb2FkRXZlbnRGaXJlID0gdHJ1
ZTsKLSAgICBtX2Zyb250ZW5kLT5kb21Db250ZW50RXZlbnRGaXJlZChjdXJyZW50VGltZSgpKTsK
KyAgICBtX2Zyb250ZW5kLT5kb21Db250ZW50RXZlbnRGaXJlZChtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojpsb2FkRXZlbnRGaXJl
ZCgpCiB7Ci0gICAgbV9mcm9udGVuZC0+bG9hZEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7Cisg
ICAgbV9mcm9udGVuZC0+bG9hZEV2ZW50RmlyZWQobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpOwogfQogCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVOYXZpZ2F0ZWQoRG9jdW1l
bnRMb2FkZXIqIGxvYWRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA3ZGVmYjM1OTVkY2IxYWRhOTI1MmE3ZWI2MjA4
MzQ1NjY1OGFiNGM0Li5jNTNjOWE0NTdhZmEzMTQyMGViYzBmMTQ1MTdkNTA2ZDhjYzY1ODA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdl
bnQuY3BwCkBAIC0xMDksMTAgKzEwOSwxMCBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGJ1aWxkT2JqZWN0Rm9ySGVhZGVycyhjb25zdCBIVFRQSGVhZGVyTWFwJiBoZQogICAg
IHJldHVybiBoZWFkZXJzT2JqZWN0OwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRl
cjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJl
c291cmNlTG9hZFRpbWluZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGlj
IFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5nPiBidWlsZE9i
amVjdEZvclRpbWluZyhjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZykKIHsKICAgICBy
ZXR1cm4gVHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5nOjpjcmVhdGUoKQotICAg
ICAgICAuc2V0UmVxdWVzdFRpbWUodGltaW5nLmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Eb2N1
bWVudFRpbWUobG9hZGVyLT50aW1pbmcoKSwgMCkpCisgICAgICAgIC5zZXRSZXF1ZXN0VGltZSh0
aW1pbmcucmVxdWVzdFRpbWUpCiAgICAgICAgIC5zZXRQcm94eVN0YXJ0KHRpbWluZy5wcm94eVN0
YXJ0KQogICAgICAgICAuc2V0UHJveHlFbmQodGltaW5nLnByb3h5RW5kKQogICAgICAgICAuc2V0
RG5zU3RhcnQodGltaW5nLmRuc1N0YXJ0KQpAQCAtMTM4LDcgKzEzOCw3IEBAIHN0YXRpYyBQYXNz
UmVmUHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXF1ZXN0PiBidWlsZE9iamVjdEZvclJlc291
cmNlUmVxdWVzdChjCiAgICAgcmV0dXJuIHJlcXVlc3RPYmplY3Q7CiB9CiAKLXN0YXRpYyBQYXNz
UmVmUHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gYnVpbGRPYmplY3RGb3JSZXNv
dXJjZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBEb2N1bWVudExv
YWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJl
c3BvbnNlPiBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKHJlc3BvbnNlLmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gMDsKQEAgLTE3MCw3ICsxNzAsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRl
cjo6TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZQogCiAg
ICAgcmVzcG9uc2VPYmplY3QtPnNldEZyb21EaXNrQ2FjaGUocmVzcG9uc2Uud2FzQ2FjaGVkKCkp
OwogICAgIGlmIChyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgcmVzcG9u
c2VPYmplY3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZvclRpbWluZygqcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCksIGxvYWRlcikpOworICAgICAgICByZXNwb25zZU9iamVjdC0+c2V0VGlt
aW5nKGJ1aWxkT2JqZWN0Rm9yVGltaW5nKCpyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkp
OwogCiAgICAgaWYgKHJlc3BvbnNlLnJlc291cmNlTG9hZEluZm8oKSkgewogICAgICAgICBpZiAo
IXJlc3BvbnNlLnJlc291cmNlTG9hZEluZm8oKS0+cmVzcG9uc2VIZWFkZXJzVGV4dC5pc0VtcHR5
KCkpCkBAIC0xODQsMTMgKzE4NCwxMyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6
TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZQogICAgIHJl
dHVybiByZXNwb25zZU9iamVjdDsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6
Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlPiBidWlsZE9iamVjdEZvckNhY2hlZFJlc291cmNlKGNv
bnN0IENhY2hlZFJlc291cmNlJiBjYWNoZWRSZXNvdXJjZSwgRG9jdW1lbnRMb2FkZXIqIGxvYWRl
cikKK3N0YXRpYyBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJj
ZT4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShjb25zdCBDYWNoZWRSZXNvdXJjZSYgY2Fj
aGVkUmVzb3VyY2UpCiB7CiAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRS
ZXNvdXJjZT4gcmVzb3VyY2VPYmplY3QgPSBUeXBlQnVpbGRlcjo6TmV0d29yazo6Q2FjaGVkUmVz
b3VyY2U6OmNyZWF0ZSgpCiAgICAgICAgIC5zZXRVcmwoY2FjaGVkUmVzb3VyY2UudXJsKCkpCiAg
ICAgICAgIC5zZXRUeXBlKEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VUeXBlSnNv
bihjYWNoZWRSZXNvdXJjZSkpCiAgICAgICAgIC5zZXRCb2R5U2l6ZShjYWNoZWRSZXNvdXJjZS5l
bmNvZGVkU2l6ZSgpKTsKLSAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNl
PiByZXNvdXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNhY2hl
ZFJlc291cmNlLnJlc3BvbnNlKCksIGxvYWRlcik7CisgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpO
ZXR3b3JrOjpSZXNwb25zZT4gcmVzb3VyY2VSZXNwb25zZSA9IGJ1aWxkT2JqZWN0Rm9yUmVzb3Vy
Y2VSZXNwb25zZShjYWNoZWRSZXNvdXJjZS5yZXNwb25zZSgpKTsKICAgICBpZiAocmVzb3VyY2VS
ZXNwb25zZSkKICAgICAgICAgcmVzb3VyY2VPYmplY3QtPnNldFJlc3BvbnNlKHJlc291cmNlUmVz
cG9uc2UpOwogICAgIHJldHVybiByZXNvdXJjZU9iamVjdDsKQEAgLTIzMSw3ICsyMzEsNyBAQCB2
b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIERvY3VtZW50TAogICAgIH0KIAogICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6
TmV0d29yazo6SW5pdGlhdG9yPiBpbml0aWF0b3JPYmplY3QgPSBidWlsZEluaXRpYXRvck9iamVj
dChsb2FkZXItPmZyYW1lKCkgPyBsb2FkZXItPmZyYW1lKCktPmRvY3VtZW50KCkgOiAwKTsKLSAg
ICBtX2Zyb250ZW5kLT5yZXF1ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5m
cmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIG1fcGFnZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBs
b2FkZXItPnVybCgpLnN0cmluZygpLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1
ZXN0KSwgY3VycmVudFRpbWUoKSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291
cmNlUmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSwgbG9hZGVyKSk7CisgICAgbV9mcm9udGVuZC0+
cmVxdWVzdFdpbGxCZVNlbnQocmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXIt
PmZyYW1lKCkpLCBtX3BhZ2VBZ2VudC0+bG9hZGVySWQobG9hZGVyKSwgbG9hZGVyLT51cmwoKS5z
dHJpbmcoKSwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIG1vbm90b25p
Y2FsbHlJbmNyZWFzaW5nVGltZSgpLCBpbml0aWF0b3JPYmplY3QsIGJ1aWxkT2JqZWN0Rm9yUmVz
b3VyY2VSZXNwb25zZShyZWRpcmVjdFJlc3BvbnNlKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6bWFya1Jlc291cmNlQXNDYWNoZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
KQpAQCAtMjQyLDcgKzI0Miw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bWFya1Jl
c291cmNlQXNDYWNoZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQogdm9pZCBJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyKQogewogICAgIFN0cmluZyByZXF1ZXN0
SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICBSZWZQ
dHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlLCBsb2FkZXIpOworICAgIFJlZlB0
cjxUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWls
ZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVzcG9uc2UpOwogICAgIEluc3BlY3RvclBhZ2VB
Z2VudDo6UmVzb3VyY2VUeXBlIHR5cGUgPSBJbnNwZWN0b3JQYWdlQWdlbnQ6Ok90aGVyUmVzb3Vy
Y2U7CiAgICAgbG9uZyBjYWNoZWRSZXNvdXJjZVNpemUgPSAwOwogCkBAIC0yNzQsNyArMjc0LDcg
QEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWUKICAgICAgICAgbV9yZXNvdXJjZXNEYXRhLT5yZXNw
b25zZVJlY2VpdmVkKHJlcXVlc3RJZCwgbV9wYWdlQWdlbnQtPmZyYW1lSWQobG9hZGVyLT5mcmFt
ZSgpKSwgcmVzcG9uc2UpOwogICAgIH0KICAgICBtX3Jlc291cmNlc0RhdGEtPnNldFJlc291cmNl
VHlwZShyZXF1ZXN0SWQsIHR5cGUpOwotICAgIG1fZnJvbnRlbmQtPnJlc3BvbnNlUmVjZWl2ZWQo
cmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkpLCBtX3BhZ2VB
Z2VudC0+bG9hZGVySWQobG9hZGVyKSwgY3VycmVudFRpbWUoKSwgSW5zcGVjdG9yUGFnZUFnZW50
OjpyZXNvdXJjZVR5cGVKc29uKHR5cGUpLCByZXNvdXJjZVJlc3BvbnNlKTsKKyAgICBtX2Zyb250
ZW5kLT5yZXNwb25zZVJlY2VpdmVkKHJlcXVlc3RJZCwgbV9wYWdlQWdlbnQtPmZyYW1lSWQobG9h
ZGVyLT5mcmFtZSgpKSwgbV9wYWdlQWdlbnQtPmxvYWRlcklkKGxvYWRlciksIG1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpLCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlVHlwZUpzb24o
dHlwZSksIHJlc291cmNlUmVzcG9uc2UpOwogICAgIC8vIElmIHdlIHJldmFsaWRhdGVkIHRoZSBy
ZXNvdXJjZSBhbmQgZ290IE5vdCBtb2RpZmllZCwgc2VuZCBjb250ZW50IGxlbmd0aCBmb2xsb3dp
bmcgZGlkUmVjZWl2ZVJlc3BvbnNlCiAgICAgLy8gYXMgdGhlcmUgd2lsbCBiZSBubyBjYWxscyB0
byBkaWRSZWNlaXZlRGF0YSBmcm9tIHRoZSBuZXR3b3JrIHN0YWNrLgogICAgIGlmIChjYWNoZWRS
ZXNvdXJjZVNpemUgJiYgaXNOb3RNb2RpZmllZCkKQEAgLTI5Niw3ICsyOTYsNyBAQCB2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgY2hhcgogICAgICAgICAgICAgbV9yZXNvdXJjZXNEYXRhLT5tYXliZUFkZFJl
c291cmNlRGF0YShyZXF1ZXN0SWQsIGRhdGEsIGRhdGFMZW5ndGgpOwogICAgIH0KIAotICAgIG1f
ZnJvbnRlbmQtPmRhdGFSZWNlaXZlZChyZXF1ZXN0SWQsIGN1cnJlbnRUaW1lKCksIGRhdGFMZW5n
dGgsIGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICBtX2Zyb250ZW5kLT5kYXRhUmVjZWl2ZWQocmVx
dWVzdElkLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgZGF0YUxlbmd0aCwgZW5jb2Rl
ZERhdGFMZW5ndGgpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZEZpbmlz
aExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVy
LCBkb3VibGUgZmluaXNoVGltZSkKQEAgLTMwOCw3ICszMDgsNyBAQCB2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBE
b2N1bWVudAogICAgIG1fcmVzb3VyY2VzRGF0YS0+bWF5YmVEZWNvZGVEYXRhVG9Db250ZW50KHJl
cXVlc3RJZCk7CiAKICAgICBpZiAoIWZpbmlzaFRpbWUpCi0gICAgICAgIGZpbmlzaFRpbWUgPSBj
dXJyZW50VGltZSgpOworICAgICAgICBmaW5pc2hUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCk7CiAKICAgICBtX2Zyb250ZW5kLT5sb2FkaW5nRmluaXNoZWQocmVxdWVzdElkLCBm
aW5pc2hUaW1lKTsKIH0KQEAgLTMyNCw3ICszMjQsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRM
bwogICAgIH0KIAogICAgIGJvb2wgY2FuY2VsZWQgPSBlcnJvci5pc0NhbmNlbGxhdGlvbigpOwot
ICAgIG1fZnJvbnRlbmQtPmxvYWRpbmdGYWlsZWQocmVxdWVzdElkLCBjdXJyZW50VGltZSgpLCBl
cnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLCBjYW5jZWxlZCA/ICZjYW5jZWxlZCA6IDApOwor
ICAgIG1fZnJvbnRlbmQtPmxvYWRpbmdGYWlsZWQocmVxdWVzdElkLCBtb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoKSwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSwgY2FuY2VsZWQgPyAm
Y2FuY2VsZWQgOiAwKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2Fk
UmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlKQpAQCAtMzQzLDcgKzM0Myw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiBs
b2FkCiAKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkluaXRpYXRvcj4gaW5pdGlh
dG9yT2JqZWN0ID0gYnVpbGRJbml0aWF0b3JPYmplY3QobG9hZGVyLT5mcmFtZSgpID8gbG9hZGVy
LT5mcmFtZSgpLT5kb2N1bWVudCgpIDogMCk7CiAKLSAgICBtX2Zyb250ZW5kLT5yZXF1ZXN0U2Vy
dmVkRnJvbU1lbW9yeUNhY2hlKHJlcXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQsIGxvYWRlci0+
dXJsKCkuc3RyaW5nKCksIGN1cnJlbnRUaW1lKCksIGluaXRpYXRvck9iamVjdCwgYnVpbGRPYmpl
Y3RGb3JDYWNoZWRSZXNvdXJjZSgqcmVzb3VyY2UsIGxvYWRlcikpOworICAgIG1fZnJvbnRlbmQt
PnJlcXVlc3RTZXJ2ZWRGcm9tTWVtb3J5Q2FjaGUocmVxdWVzdElkLCBmcmFtZUlkLCBsb2FkZXJJ
ZCwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCks
IGluaXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZSgqcmVzb3VyY2Up
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRJbml0aWFsU2NyaXB0Q29u
dGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5n
KQpAQCAtNTAwLDcgKzUwMCw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbFNl
bmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlCiAgICAgUmVmUHRy
PFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpXZWJTb2NrZXRSZXF1ZXN0PiByZXF1ZXN0T2JqZWN0ID0g
VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OldlYlNvY2tldFJlcXVlc3Q6OmNyZWF0ZSgpCiAgICAgICAg
IC5zZXRSZXF1ZXN0S2V5MyhjcmVhdGVSZWFkYWJsZVN0cmluZ0Zyb21CaW5hcnkocmVxdWVzdC5r
ZXkzKCkudmFsdWUsIHNpemVvZihyZXF1ZXN0LmtleTMoKS52YWx1ZSkpKQogICAgICAgICAuc2V0
SGVhZGVycyhidWlsZE9iamVjdEZvckhlYWRlcnMocmVxdWVzdC5oZWFkZXJGaWVsZHMoKSkpOwot
ICAgIG1fZnJvbnRlbmQtPndlYlNvY2tldFdpbGxTZW5kSGFuZHNoYWtlUmVxdWVzdChJZGVudGlm
aWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgY3VycmVudFRpbWUoKSwgcmVxdWVz
dE9iamVjdCk7CisgICAgbV9mcm9udGVuZC0+d2ViU29ja2V0V2lsbFNlbmRIYW5kc2hha2VSZXF1
ZXN0KElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSwgcmVxdWVzdE9iamVjdCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UmIHJl
c3BvbnNlKQpAQCAtNTEwLDEyICs1MTAsMTIgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UodW5zaWduZWQgbG9uZwogICAg
ICAgICAuc2V0U3RhdHVzVGV4dChyZXNwb25zZS5zdGF0dXNUZXh0KCkpCiAgICAgICAgIC5zZXRI
ZWFkZXJzKGJ1aWxkT2JqZWN0Rm9ySGVhZGVycyhyZXNwb25zZS5oZWFkZXJGaWVsZHMoKSkpCiAg
ICAgICAgIC5zZXRDaGFsbGVuZ2VSZXNwb25zZShjcmVhdGVSZWFkYWJsZVN0cmluZ0Zyb21CaW5h
cnkocmVzcG9uc2UuY2hhbGxlbmdlUmVzcG9uc2UoKS52YWx1ZSwgc2l6ZW9mKHJlc3BvbnNlLmNo
YWxsZW5nZVJlc3BvbnNlKCkudmFsdWUpKSk7Ci0gICAgbV9mcm9udGVuZC0+d2ViU29ja2V0SGFu
ZHNoYWtlUmVzcG9uc2VSZWNlaXZlZChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVu
dGlmaWVyKSwgY3VycmVudFRpbWUoKSwgcmVzcG9uc2VPYmplY3QpOworICAgIG1fZnJvbnRlbmQt
PndlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlUmVjZWl2ZWQoSWRlbnRpZmllcnNGYWN0b3J5Ojpy
ZXF1ZXN0SWQoaWRlbnRpZmllciksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCByZXNw
b25zZU9iamVjdCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkQ2xvc2VX
ZWJTb2NrZXQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQogewotICAgIG1fZnJvbnRlbmQtPndl
YlNvY2tldENsb3NlZChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwg
Y3VycmVudFRpbWUoKSk7CisgICAgbV9mcm9udGVuZC0+d2ViU29ja2V0Q2xvc2VkKElkZW50aWZp
ZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCBtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVdl
YlNvY2tldEZyYW1lKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViU29ja2V0RnJh
bWUmIGZyYW1lKQpAQCAtNTI0LDcgKzUyNCw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dDo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwKICAg
ICAgICAgLnNldE9wY29kZShmcmFtZS5vcENvZGUpCiAgICAgICAgIC5zZXRNYXNrKGZyYW1lLm1h
c2tlZCkKICAgICAgICAgLnNldFBheWxvYWREYXRhKFN0cmluZyhmcmFtZS5wYXlsb2FkLCBmcmFt
ZS5wYXlsb2FkTGVuZ3RoKSk7Ci0gICAgbV9mcm9udGVuZC0+d2ViU29ja2V0RnJhbWVSZWNlaXZl
ZChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgY3VycmVudFRpbWUo
KSwgZnJhbWVPYmplY3QpOworICAgIG1fZnJvbnRlbmQtPndlYlNvY2tldEZyYW1lUmVjZWl2ZWQo
SWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpLCBmcmFtZU9iamVjdCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgV2ViU29ja2V0RnJhbWUmIGZyYW1lKQpAQCAtNTMzLDEyICs1MzMsMTIgQEAgdm9pZCBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRTZW5kV2ViU29ja2V0RnJhbWUodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb24KICAgICAgICAgLnNldE9wY29kZShmcmFtZS5vcENvZGUpCiAgICAg
ICAgIC5zZXRNYXNrKGZyYW1lLm1hc2tlZCkKICAgICAgICAgLnNldFBheWxvYWREYXRhKFN0cmlu
ZyhmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKSk7Ci0gICAgbV9mcm9udGVuZC0+
d2ViU29ja2V0RnJhbWVTZW50KElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZp
ZXIpLCBjdXJyZW50VGltZSgpLCBmcmFtZU9iamVjdCk7CisgICAgbV9mcm9udGVuZC0+d2ViU29j
a2V0RnJhbWVTZW50KElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgZnJhbWVPYmplY3QpOwogfQogCiB2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7Ci0gICAg
bV9mcm9udGVuZC0+d2ViU29ja2V0RnJhbWVFcnJvcihJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVl
c3RJZChpZGVudGlmaWVyKSwgY3VycmVudFRpbWUoKSwgZXJyb3JNZXNzYWdlKTsKKyAgICBtX2Zy
b250ZW5kLT53ZWJTb2NrZXRGcmFtZUVycm9yKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElk
KGlkZW50aWZpZXIpLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgZXJyb3JNZXNzYWdl
KTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfU09DS0VUUykKQEAgLTY1NSw2ICs2NTUsMTEg
QEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRDYWNoZURpc2FibGVkKEVycm9yU3Ry
aW5nKiwgYm9vbCBjYWNoZURpc2FibGVkKQogICAgICAgICBtZW1vcnlDYWNoZSgpLT5ldmljdFJl
c291cmNlcygpOwogfQogCit2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmdldE1vbm90b25p
Y0Nsb2NrT2Zmc2V0KEVycm9yU3RyaW5nKiwgZG91YmxlKiBvdXRQYXJhbSkKK3sKKyAgICAqb3V0
UGFyYW0gPSBjdXJyZW50VGltZSgpIC0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Cit9
CisKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bWFpbkZyYW1lTmF2aWdhdGVkKERvY3Vt
ZW50TG9hZGVyKiBsb2FkZXIpCiB7CiAgICAgaWYgKG1fc3RhdGUtPmdldEJvb2xlYW4oUmVzb3Vy
Y2VBZ2VudFN0YXRlOjpjYWNoZURpc2FibGVkKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCmluZGV4IDU5NDllNWFiODc3YzE0ZWVjNWY3
NTA4ODIyNjllZTgwOTNlMGNlNGYuLjI0ODEyN2EyOTBlMWZhMGM1OGFiNTBhMmE1NGIyM2RlOTJh
NmRmZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuaApAQCAtMTUyLDYgKzE1Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
Y2FuQ2xlYXJCcm93c2VyQ29va2llcyhFcnJvclN0cmluZyosIGJvb2wqKTsKICAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJCcm93c2VyQ29va2llcyhFcnJvclN0cmluZyopOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDYWNoZURpc2FibGVkKEVycm9yU3RyaW5nKiwgYm9vbCBjYWNoZURpc2FibGVkKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0TW9ub3RvbmljQ2xvY2tPZmZzZXQoRXJyb3JTdHJpbmcqLCBkb3Vi
bGUqKTsKIAogcHJpdmF0ZToKICAgICBJbnNwZWN0b3JSZXNvdXJjZUFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JDbGllbnQqLCBJbnNwZWN0
b3JTdGF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwCmluZGV4IDFhMjI4MTUyOTdlMTkxNDZhMDE0ZTRhYzVmOTVlYzA5MTMx
Y2QwOGEuLjU0NTcxNDM2Nzk3ZWQ1YWNlZWI0ODc4ZDE0ZTc1NDY4MmIxNDU4MmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAK
QEAgLTE2NSw3ICsxNjUsNiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0KEVy
cm9yU3RyaW5nKiwgY29uc3QgaW50KiBtYXhDYWxsU3RhY2tEZXB0aCkKICAgICBlbHNlCiAgICAg
ICAgIG1fbWF4Q2FsbFN0YWNrRGVwdGggPSA1OwogICAgIG1fc3RhdGUtPnNldExvbmcoVGltZWxp
bmVBZ2VudFN0YXRlOjp0aW1lbGluZU1heENhbGxTdGFja0RlcHRoLCBtX21heENhbGxTdGFja0Rl
cHRoKTsKLSAgICBtX3RpbWVzdGFtcE9mZnNldCA9IGN1cnJlbnRUaW1lKCkgLSBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKTsKIAogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGll
bnQtPnN0YXJ0TWFpblRocmVhZE1vbml0b3JpbmcoKTsKQEAgLTU1Niw3ICs1NTUsNiBAQCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbgogICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ+KCJUaW1lbGluZSIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQogICAg
ICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9mcm9udGVuZCgwKQotICAgICwgbV90
aW1lc3RhbXBPZmZzZXQoMCkKICAgICAsIG1faWQoMSkKICAgICAsIG1fbWF4Q2FsbFN0YWNrRGVw
dGgoNSkKICAgICAsIG1fcGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnRJbnN0YWxsZWRBdFN0
YWNrRGVwdGgoMCkKQEAgLTYxOSw3ICs2MTcsNyBAQCBkb3VibGUgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6dGltZXN0YW1wKCkKIAogZG91YmxlIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRpbWVz
dGFtcEZyb21NaWNyb3NlY29uZHMoZG91YmxlIG1pY3Jvc2Vjb25kcykKIHsKLSAgICByZXR1cm4g
KG1pY3Jvc2Vjb25kcyArIG1fdGltZXN0YW1wT2Zmc2V0KSAqIDEwMDAuMDsKKyAgICByZXR1cm4g
bWljcm9zZWNvbmRzICogMTAwMC4wOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRl
eCA4ZjA0OGNmY2IyN2MwMDdjOTg1NDMzMTQ3OGNjOWYwN2JlMDU0YjdkLi40ZjA1Y2MyMmVhNmY3
MzMwMGU1ZTEwZjNiOTYxYWZiMGFlNTAxMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTE5NCw3ICsxOTQsNiBAQCBwcml2
YXRlOgogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAKICAgICBJbnNwZWN0
b3JGcm9udGVuZDo6VGltZWxpbmUqIG1fZnJvbnRlbmQ7Ci0gICAgZG91YmxlIG1fdGltZXN0YW1w
T2Zmc2V0OwogCiAgICAgVmVjdG9yPFRpbWVsaW5lUmVjb3JkRW50cnk+IG1fcmVjb3JkU3RhY2s7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSEFSRW50
cnkuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hBUkVudHJ5LmpzCmlu
ZGV4IDIyZTA3Zjg4ZWQ2YTY1ZmIwM2Q0MDQxMDllZWYzMTk1ZGZmYjU1OGYuLjQzMmU4NDc2OTc2
MmQ4OTc5OTJhYjhiOGZlNjM1NThiODFkYjEyYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSEFSRW50cnkuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IQVJFbnRyeS5qcwpAQCAtNTAsNyArNTAsNyBAQCBXZWJJbnNwZWN0
b3IuSEFSRW50cnkucHJvdG90eXBlID0gewogICAgIGJ1aWxkOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB2YXIgZW50cnkgPSAgewotICAgICAgICAgICAgc3RhcnRlZERhdGVUaW1lOiBuZXcg
RGF0ZSh0aGlzLl9yZXF1ZXN0LnN0YXJ0VGltZSAqIDEwMDApLAorICAgICAgICAgICAgbW9ub3Rv
bmljU3RhcnRUaW1lOiB0aGlzLl9yZXF1ZXN0LnN0YXJ0VGltZSwKICAgICAgICAgICAgIHRpbWU6
IFdlYkluc3BlY3Rvci5IQVJFbnRyeS5fdG9NaWxsaXNlY29uZHModGhpcy5fcmVxdWVzdC5kdXJh
dGlvbiksCiAgICAgICAgICAgICByZXF1ZXN0OiB0aGlzLl9idWlsZFJlcXVlc3QoKSwKICAgICAg
ICAgICAgIHJlc3BvbnNlOiB0aGlzLl9idWlsZFJlc3BvbnNlKCksCkBAIC0zMjEsNyArMzIxLDcg
QEAgV2ViSW5zcGVjdG9yLkhBUkxvZy5wcm90b3R5cGUgPSB7CiAgICAgX2NvbnZlcnRQYWdlOiBm
dW5jdGlvbihwYWdlKQogICAgIHsKICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHN0YXJ0
ZWREYXRlVGltZTogbmV3IERhdGUocGFnZS5zdGFydFRpbWUgKiAxMDAwKSwKKyAgICAgICAgICAg
IG1vbm90b25pY1N0YXJ0VGltZTogcGFnZS5zdGFydFRpbWUsCiAgICAgICAgICAgICBpZDogInBh
Z2VfIiArIHBhZ2UuaWQsCiAgICAgICAgICAgICB0aXRsZTogcGFnZS51cmwsIC8vIFdlIGRvbid0
IGhhdmUgYWN0dWFsIHBhZ2UgdGl0bGUgaGVyZS4gVVJMIGlzIHByb2JhYmx5IGJldHRlciB0aGFu
IG5vdGhpbmcuCiAgICAgICAgICAgICBwYWdlVGltaW5nczogewpAQCAtMzgxLDYgKzM4MSwxMCBA
QCBXZWJJbnNwZWN0b3IuSEFSV3JpdGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoY29udGVudCAhPT0gbnVsbCkKICAgICAgICAgICAgICAgICBlbnRyaWVzW2ldLnJlc3Bv
bnNlLmNvbnRlbnQudGV4dCA9IGNvbnRlbnQ7CiAgICAgICAgIH0KKworICAgICAgICBOZXR3b3Jr
QWdlbnQuZ2V0TW9ub3RvbmljQ2xvY2tPZmZzZXQodGhpcy5fb25HZXRNb25vdG9uaWNDbG9ja09m
ZnNldC5iaW5kKHRoaXMpKTsKKyAgICAgICAgKyt0aGlzLl9wZW5kaW5nUmVxdWVzdHM7CisKICAg
ICAgICAgdmFyIGNvbXBvc2l0ZVByb2dyZXNzID0gbmV3IFdlYkluc3BlY3Rvci5Db21wb3NpdGVQ
cm9ncmVzcyhwcm9ncmVzcyk7CiAgICAgICAgIHRoaXMuX3dyaXRlUHJvZ3Jlc3MgPSBjb21wb3Np
dGVQcm9ncmVzcy5jcmVhdGVTdWJQcm9ncmVzcygpOwogICAgICAgICBpZiAoLS10aGlzLl9wZW5k
aW5nUmVxdWVzdHMpIHsKQEAgLTQwOSw2ICs0MTMsMjEgQEAgV2ViSW5zcGVjdG9yLkhBUldyaXRl
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCisgICAgX29uR2V0TW9ub3Rvbmlj
Q2xvY2tPZmZzZXQ6IGZ1bmN0aW9uKGVycm9yLCBvZmZzZXQpCisgICAgeworICAgICAgICBmb3Ig
KHZhciByZXF1ZXN0IGluIHRoaXMuX2hhckxvZy5yZXF1ZXN0cykgeworICAgICAgICAgICAgcmVx
dWVzdC5zdGFydGVkRGF0ZVRpbWUgPSBuZXcgRGF0ZSgob2Zmc2V0ICsgcmVxdWVzdC5tb25vdG9u
aWNTdGFydFRpbWUpICogMTAwMCk7CisgICAgICAgICAgICBkZWxldGUgcmVxdWVzdC5tb25vdG9u
aWNTdGFydFRpbWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgcGFnZSBpbiB0aGlzLl9o
YXJMb2cucGFnZXMpIHsKKyAgICAgICAgICAgIHBhZ2Uuc3RhcnRlZERhdGVUaW1lID0gbmV3IERh
dGUoKG9mZnNldCArIHBhZ2UubW9ub3RvbmljU3RhcnRUaW1lKSAqIDEwMDApOworICAgICAgICAg
ICAgZGVsZXRlIHBhZ2UubW9ub3RvbmljU3RhcnRUaW1lOworICAgICAgICB9CisgICAgICAgIGlm
ICghLS10aGlzLl9wZW5kaW5nUmVxdWVzdHMpIHsKKyAgICAgICAgICAgIHRoaXMuX2JlZ2luV3Jp
dGUoKTsKKyAgICAgICAgfQorICAgIH0sCisKICAgICBfYmVnaW5Xcml0ZTogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgY29uc3QganNvbkluZGVudCA9IDI7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzA0MDJkNGNjZDgz
N2FiYzY4YWYyZmU0Y2Q3NzhkMTk4MjU2NTUxNy4uMDc3ZDZkNDI5NDBiNjgwMGE4NjZkZjA4NzI0
YjZmODk5YTEwOGZhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTA5ICBKYW1lcyBT
aW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgbW9ub3Rvbmlj
YWxseSBpbmNyZWFzaW5nIHRpbWUgdGhyb3VnaG91dCBpbnNwZWN0b3IKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjIzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgdGVzdHMgZG9uJ3QgZ28gdGhy
b3VnaCB0aGUgSEFSIHdyaXRlciwgc28gdGhleSBkb24ndCBoYXZlIHRoZSBwcm9wZXIgc3RhcnRl
ZERhdGVUaW1lIHNldC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
LWhhci1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS1oYXItaGVhZGVycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzLXRlc3QuanM6CisgICAgICAgICogaW5z
cGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXN0YXJ0LXRpbWUtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LiBUaGVyZSdzIG5vIHdheSB0byBnZXQgYXQgdGhlIG1vbm90b25pYyBjbG9jayBmcm9tIEphdmFT
Y3JpcHQsIHNvIHlvdSBjYW4ndCB2ZXJpZnkgdGhlIHN0YXJ0IHRpbWUgd2FzIGNvcnJlY3QuCisg
ICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXN0YXJ0LXRpbWUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZS1oYXItY29udmVyc2lvbi1leHBlY3RlZC50eHQ6CisKIDIwMTItMTAtMDUgIFcuIEph
bWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gRW5oYW5jZSBzdXBwb3J0IGZvciB0cmFuc2Zvcm1zIGluIExpbmtIaWdobGlnaHQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItY29u
dmVyc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZS1oYXItY29udmVyc2lvbi1leHBlY3RlZC50eHQKaW5kZXggYTc2ZWY1ZTBhMDc2NGMx
MDg0YWRlZjIxN2YxMTQ0YWEyZDIzNjI4Ni4uZmFhYTkwMTUyMzA5YzBmNzMzOTQ5ODg4NmFlMjk1
ZDM1OTliNDE0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2UtaGFyLWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dApA
QCAtMTAsNiArMTAsNyBAQCBQYWdlIHJlbG9hZGVkLgogICAgICAgICB7CiAgICAgICAgICAgICBj
YWNoZSA6IHsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1vbm90b25pY1N0YXJ0VGltZSA6
IDxudW1iZXI+CiAgICAgICAgICAgICBwYWdlcmVmIDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9p
bnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24uaHRtbCIKICAgICAgICAgICAgIHJlcXVl
c3QgOiB7CiAgICAgICAgICAgICAgICAgYm9keVNpemUgOiA8bnVtYmVyPgpAQCAtOTIsMTMgKzkz
LDEzIEBAIFBhZ2UgcmVsb2FkZWQuCiAgICAgICAgICAgICAgICAgc3RhdHVzIDogMzA0CiAgICAg
ICAgICAgICAgICAgc3RhdHVzVGV4dCA6ICJOb3QgTW9kaWZpZWQiCiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBzdGFydGVkRGF0ZVRpbWUgOiA8cGxhdXNpYmxlPgogICAgICAgICAgICAgdGlt
ZSA6IDxudW1iZXI+CiAgICAgICAgICAgICB0aW1pbmdzIDogPG9iamVjdD4KICAgICAgICAgfQog
ICAgICAgICB7CiAgICAgICAgICAgICBjYWNoZSA6IHsKICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIG1vbm90b25pY1N0YXJ0VGltZSA6IDxudW1iZXI+CiAgICAgICAgICAgICBwYWdlcmVmIDog
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24u
aHRtbCIKICAgICAgICAgICAgIHJlcXVlc3QgOiB7CiAgICAgICAgICAgICAgICAgYm9keVNpemUg
OiA8bnVtYmVyPgpAQCAtMTI4LDEzICsxMjksMTMgQEAgUGFnZSByZWxvYWRlZC4KICAgICAgICAg
ICAgICAgICBzdGF0dXMgOiAyMDAKICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0IDogIk9LIgog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RhcnRlZERhdGVUaW1lIDogPHBsYXVzaWJsZT4K
ICAgICAgICAgICAgIHRpbWUgOiA8bnVtYmVyPgogICAgICAgICAgICAgdGltaW5ncyA6IDxvYmpl
Y3Q+CiAgICAgICAgIH0KICAgICAgICAgewogICAgICAgICAgICAgY2FjaGUgOiB7CiAgICAgICAg
ICAgICB9CisgICAgICAgICAgICBtb25vdG9uaWNTdGFydFRpbWUgOiA8bnVtYmVyPgogICAgICAg
ICAgICAgcGFnZXJlZiA6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
LWhhci1jb252ZXJzaW9uLmh0bWwiCiAgICAgICAgICAgICByZXF1ZXN0IDogewogICAgICAgICAg
ICAgICAgIGJvZHlTaXplIDogPG51bWJlcj4KQEAgLTE2MywxMyArMTY0LDEzIEBAIFBhZ2UgcmVs
b2FkZWQuCiAgICAgICAgICAgICAgICAgc3RhdHVzIDogMzA0CiAgICAgICAgICAgICAgICAgc3Rh
dHVzVGV4dCA6ICJOb3QgTW9kaWZpZWQiCiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdGFy
dGVkRGF0ZVRpbWUgOiA8cGxhdXNpYmxlPgogICAgICAgICAgICAgdGltZSA6IDxudW1iZXI+CiAg
ICAgICAgICAgICB0aW1pbmdzIDogPG9iamVjdD4KICAgICAgICAgfQogICAgICAgICB7CiAgICAg
ICAgICAgICBjYWNoZSA6IHsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1vbm90b25pY1N0
YXJ0VGltZSA6IDxudW1iZXI+CiAgICAgICAgICAgICBwYWdlcmVmIDogImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24uaHRtbCIKICAgICAgICAg
ICAgIHJlcXVlc3QgOiB7CiAgICAgICAgICAgICAgICAgYm9keVNpemUgOiA8bnVtYmVyPgpAQCAt
MjAzLDcgKzIwNCw2IEBAIFBhZ2UgcmVsb2FkZWQuCiAgICAgICAgICAgICAgICAgc3RhdHVzIDog
MjAwCiAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA6ICJPSyIKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHN0YXJ0ZWREYXRlVGltZSA6IDxwbGF1c2libGU+CiAgICAgICAgICAgICB0aW1l
IDogPG51bWJlcj4KICAgICAgICAgICAgIHRpbWluZ3MgOiA8b2JqZWN0PgogICAgICAgICB9CkBA
IC0yMTEsMTEgKzIxMSwxMSBAQCBQYWdlIHJlbG9hZGVkLgogICAgIHBhZ2VzIDogWwogICAgICAg
ICB7CiAgICAgICAgICAgICBpZCA6IDxzdHJpbmc+CisgICAgICAgICAgICBtb25vdG9uaWNTdGFy
dFRpbWUgOiA8bnVtYmVyPgogICAgICAgICAgICAgcGFnZVRpbWluZ3MgOiB7CiAgICAgICAgICAg
ICAgICAgb25Db250ZW50TG9hZCA6IDxudW1iZXI+CiAgICAgICAgICAgICAgICAgb25Mb2FkIDog
PG51bWJlcj4KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0YXJ0ZWREYXRlVGltZSA6IDxw
bGF1c2libGU+CiAgICAgICAgICAgICB0aXRsZSA6ICIiCiAgICAgICAgIH0KICAgICBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItaGVh
ZGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZS1oYXItaGVhZGVycy1leHBlY3RlZC50eHQKaW5kZXggYTg2NjU0ODBmMjI0MjllNDNjNTFl
OTA4OGUyNTNhMmJjMDcyNmE0Yi4uNTJmMTc3MTdlMzZmZWQ0Yzk3ZTRlMWRkZDlkMzU4NGVlODE1
NTQyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2UtaGFyLWhlYWRlcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlLWhhci1oZWFkZXJzLWV4cGVjdGVkLnR4dApAQCAtMjcsNiArMjcs
NyBAQCBSZXNvdXJjZTp7CiBIQVI6ewogICAgIGNhY2hlIDogewogICAgIH0KKyAgICBtb25vdG9u
aWNTdGFydFRpbWUgOiAtMQogICAgIHJlcXVlc3QgOiB7CiAgICAgICAgIGJvZHlTaXplIDogMAog
ICAgICAgICBjb29raWVzIDogWwpAQCAtNjUsNyArNjYsNiBAQCBIQVI6ewogICAgICAgICBzdGF0
dXMgOiAyMDAKICAgICAgICAgc3RhdHVzVGV4dCA6ICJPSyIKICAgICB9Ci0gICAgc3RhcnRlZERh
dGVUaW1lIDogPG9iamVjdD4KICAgICB0aW1lIDogPG51bWJlcj4KICAgICB0aW1pbmdzIDogPG9i
amVjdD4KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLWhhci1wYWdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS1oYXItcGFnZXMtZXhwZWN0ZWQudHh0CmluZGV4IGY0NjMzOWEwZjQ1
NDkyZTA3ZDczNGZhYWVkZjBkM2QxYzJhMTZmYzQuLjM3ZGY2ZjFjNDllYWVlNDZkZTJlMzY0Zjk4
YjBhMTdjMDFlN2M3MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlLWhhci1wYWdlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLXBhZ2VzLWV4cGVjdGVkLnR4dApAQCAtNCwy
MCArNCwyMCBAQCBQYWdlIHJlbG9hZGVkLgogewogICAgIDAgOiB7CiAgICAgICAgIGlkIDogPHN0
cmluZz4KKyAgICAgICAgbW9ub3RvbmljU3RhcnRUaW1lIDogPG51bWJlcj4KICAgICAgICAgcGFn
ZVRpbWluZ3MgOiB7CiAgICAgICAgICAgICBvbkNvbnRlbnRMb2FkIDogPG51bWJlcj4KICAgICAg
ICAgICAgIG9uTG9hZCA6IDxudW1iZXI+CiAgICAgICAgIH0KLSAgICAgICAgc3RhcnRlZERhdGVU
aW1lIDogPHBsYXVzaWJsZT4KICAgICAgICAgdGl0bGUgOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPS9pbnNwZWN0b3IvcmVzb3VyY2VzL2hhci1wYWdl
cy1uYXZpZ2F0aW9uLXRhcmdldC5odG1sIgogICAgIH0KICAgICAxIDogewogICAgICAgICBpZCA6
IDxzdHJpbmc+CisgICAgICAgIG1vbm90b25pY1N0YXJ0VGltZSA6IDxudW1iZXI+CiAgICAgICAg
IHBhZ2VUaW1pbmdzIDogewogICAgICAgICAgICAgb25Db250ZW50TG9hZCA6IDxudW1iZXI+CiAg
ICAgICAgICAgICBvbkxvYWQgOiA8bnVtYmVyPgogICAgICAgICB9Ci0gICAgICAgIHN0YXJ0ZWRE
YXRlVGltZSA6IDxwbGF1c2libGU+CiAgICAgICAgIHRpdGxlIDogImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLXBhZ2VzLmh0bWwiCiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVy
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dAppbmRleCBhNTJhNTc0YTc1M2MwMTVhZTU2YmViOTQ1
YzNmNzZiODFlOTk3MzMxLi4xYzJiMmQwMjBiY2NhZWRmNDcxM2Y0NzA1MzA0OTkyMzk5NTMzZmU0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1w
YXJhbWV0ZXJzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApAQCAtNSw2ICs1LDcgQEAgVGVz
dHMgdGhhdCByZXNvdXJjZXMgcGFuZWwgc2hvd3MgZm9ybSBkYXRhIHBhcmFtZXRlcnMuCiB7CiAg
ICAgY2FjaGUgOiB7CiAgICAgfQorICAgIG1vbm90b25pY1N0YXJ0VGltZSA6IDxudW1iZXI+CiAg
ICAgcmVxdWVzdCA6IHsKICAgICAgICAgYm9keVNpemUgOiA8bnVtYmVyPgogICAgICAgICBjb29r
aWVzIDogWwpAQCAtNTUsNyArNTYsNiBAQCBUZXN0cyB0aGF0IHJlc291cmNlcyBwYW5lbCBzaG93
cyBmb3JtIGRhdGEgcGFyYW1ldGVycy4KICAgICAgICAgc3RhdHVzIDogMjAwCiAgICAgICAgIHN0
YXR1c1RleHQgOiAiT0siCiAgICAgfQotICAgIHN0YXJ0ZWREYXRlVGltZSA6IDxwbGF1c2libGU+
CiAgICAgdGltZSA6IDxudW1iZXI+CiAgICAgdGltaW5ncyA6IDxvYmplY3Q+CiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzCmluZGV4
IDc0ZmNlNzk1YjRlZjRjNDQ3OWU2MTdjYTBhNTJhZDZjMGQxODFiM2UuLmI1MWI2NWIxNTY2MDMw
ZDFhMDJiNmI5MTUyMjVlYWMxMDc5OGIwNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzCkBAIC02LDYgKzYsNyBAQCBJbnNwZWN0
b3JUZXN0LkhBUlByb3BlcnR5Rm9ybWF0dGVycyA9IHsKICAgICBoZWFkZXJzOiAiZm9ybWF0QXNU
eXBlTmFtZSIsCiAgICAgaGVhZGVyc1NpemU6ICJmb3JtYXRBc1R5cGVOYW1lIiwKICAgICBpZDog
ImZvcm1hdEFzVHlwZU5hbWUiLAorICAgIG1vbm90b25pY1N0YXJ0VGltZTogImZvcm1hdEFzVHlw
ZU5hbWUiLAogICAgIG9uQ29udGVudExvYWQ6ICJmb3JtYXRBc1R5cGVOYW1lIiwKICAgICBvbkxv
YWQ6ICJmb3JtYXRBc1R5cGVOYW1lIiwKICAgICByZWNlaXZlOiAiZm9ybWF0QXNUeXBlTmFtZSIs
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc3Rh
cnQtdGltZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtc3RhcnQtdGltZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGRmMWFmMmQwODFhOGIyNjljYTIyMmQxOTFhYmQxZDAxMzE5YjFmMjguLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lL3RpbWVsaW5lLXN0YXJ0LXRpbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNCArMCwwIEBACi1UZXN0cyBzYW5pdHkgb2YgdGltZWxpbmUgdGltZXN0YW1wcy4KLQot
ZG9uZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtc3RhcnQtdGltZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLXN0YXJ0LXRpbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FjOGUz
NmI4NWUxMDk5NThjZTNiMWM4OGYyMGI4MGFhMDBkNmUyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtc3RhcnQtdGltZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0idGltZWxpbmUtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBwZXJmb3JtQWN0aW9ucygpCi17Ci0g
ICAgY29uc29sZS50aW1lU3RhbXAoInRpbWUgaXMgYW4gaWxsdXNpb24iKTsKLX0KLQotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgdmFyIGJlZm9yZVN0YXJ0ID0gRGF0ZS5ub3coKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnN0YXJ0VGltZWxpbmUoKTsKLSAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JSZWNv
cmRUeXBlKCJUaW1lU3RhbXAiLCBvblRpbWVTdGFtcCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZSgicGVyZm9ybUFjdGlvbnMoKSIpOwotCi0gICAgZnVuY3Rpb24gb25UaW1lU3Rh
bXAocmVjb3JkKQotICAgIHsKLSAgICAgICAgdmFyIG5vdyA9IERhdGUubm93KCk7Ci0gICAgICAg
IHZhciBldmVudFRpbWUgPSByZWNvcmQuc3RhcnRUaW1lOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEdyZWF0ZXJPckVxdWFsKGV2ZW50VGltZSwgYmVmb3JlU3RhcnQsICJldmVudCB0aW1l
IHNob3VsZCBiZSBhZnRlciB0aW1lbGluZSBzdGFydCB0aW1lIik7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0R3JlYXRlck9yRXF1YWwobm93LCBNYXRoLmZsb29yKGV2ZW50VGltZSksICJl
dmVudCB0aW1lIHNob3VsZCBiZSBiZWZvcmUgbm93Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJkb25lIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc3RvcFRpbWVsaW5lKElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0LmJpbmQoSW5zcGVjdG9yVGVzdCkpOwotICAgIH0KLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgot
VGVzdHMgc2FuaXR5IG9mIHRpbWVsaW5lIHRpbWVzdGFtcHMuCi08L3A+Ci0KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhh
ci1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dAppbmRleCBlZjAwZDhlOWRmYzFkMzcxNzA3MzQ0ZDVl
ODNmODgzM2E2OGIyNzBlLi42ZjhkMTlmZDNmODRiNjMyZTI3YWU1NWUxYTViOWRkOTBjMWIyNWIy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFy
LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0CkBAIC0xMCw2ICsxMCw3IEBAIFBhZ2UgcmVsb2FkZWQu
CiAgICAgICAgIHsKICAgICAgICAgICAgIGNhY2hlIDogewogICAgICAgICAgICAgfQorICAgICAg
ICAgICAgbW9ub3RvbmljU3RhcnRUaW1lIDogPG51bWJlcj4KICAgICAgICAgICAgIHBhZ2VyZWYg
OiAicGFnZV8xIgogICAgICAgICAgICAgcmVxdWVzdCA6IHsKICAgICAgICAgICAgICAgICBib2R5
U2l6ZSA6IDxudW1iZXI+CkBAIC05MiwxMyArOTMsMTMgQEAgUGFnZSByZWxvYWRlZC4KICAgICAg
ICAgICAgICAgICBzdGF0dXMgOiAzMDQKICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0IDogIk5v
dCBNb2RpZmllZCIKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0YXJ0ZWREYXRlVGltZSA6
IDxwbGF1c2libGU+CiAgICAgICAgICAgICB0aW1lIDogPG51bWJlcj4KICAgICAgICAgICAgIHRp
bWluZ3MgOiA8b2JqZWN0PgogICAgICAgICB9CiAgICAgICAgIHsKICAgICAgICAgICAgIGNhY2hl
IDogewogICAgICAgICAgICAgfQorICAgICAgICAgICAgbW9ub3RvbmljU3RhcnRUaW1lIDogPG51
bWJlcj4KICAgICAgICAgICAgIHBhZ2VyZWYgOiAicGFnZV8xIgogICAgICAgICAgICAgcmVxdWVz
dCA6IHsKICAgICAgICAgICAgICAgICBib2R5U2l6ZSA6IDxudW1iZXI+CkBAIC0xMjgsMTMgKzEy
OSwxMyBAQCBQYWdlIHJlbG9hZGVkLgogICAgICAgICAgICAgICAgIHN0YXR1cyA6IDIwMAogICAg
ICAgICAgICAgICAgIHN0YXR1c1RleHQgOiAiT0siCiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBzdGFydGVkRGF0ZVRpbWUgOiA8cGxhdXNpYmxlPgogICAgICAgICAgICAgdGltZSA6IDxudW1i
ZXI+CiAgICAgICAgICAgICB0aW1pbmdzIDogPG9iamVjdD4KICAgICAgICAgfQogICAgICAgICB7
CiAgICAgICAgICAgICBjYWNoZSA6IHsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1vbm90
b25pY1N0YXJ0VGltZSA6IDxudW1iZXI+CiAgICAgICAgICAgICBwYWdlcmVmIDogInBhZ2VfMSIK
ICAgICAgICAgICAgIHJlcXVlc3QgOiB7CiAgICAgICAgICAgICAgICAgYm9keVNpemUgOiA8bnVt
YmVyPgpAQCAtMTYzLDEzICsxNjQsMTMgQEAgUGFnZSByZWxvYWRlZC4KICAgICAgICAgICAgICAg
ICBzdGF0dXMgOiAzMDQKICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0IDogIk5vdCBNb2RpZmll
ZCIKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0YXJ0ZWREYXRlVGltZSA6IDxwbGF1c2li
bGU+CiAgICAgICAgICAgICB0aW1lIDogPG51bWJlcj4KICAgICAgICAgICAgIHRpbWluZ3MgOiA8
b2JqZWN0PgogICAgICAgICB9CiAgICAgICAgIHsKICAgICAgICAgICAgIGNhY2hlIDogewogICAg
ICAgICAgICAgfQorICAgICAgICAgICAgbW9ub3RvbmljU3RhcnRUaW1lIDogPG51bWJlcj4KICAg
ICAgICAgICAgIHBhZ2VyZWYgOiAicGFnZV8xIgogICAgICAgICAgICAgcmVxdWVzdCA6IHsKICAg
ICAgICAgICAgICAgICBib2R5U2l6ZSA6IDxudW1iZXI+CkBAIC0yMDMsNyArMjA0LDYgQEAgUGFn
ZSByZWxvYWRlZC4KICAgICAgICAgICAgICAgICBzdGF0dXMgOiAyMDAKICAgICAgICAgICAgICAg
ICBzdGF0dXNUZXh0IDogIk9LIgogICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RhcnRlZERh
dGVUaW1lIDogPHBsYXVzaWJsZT4KICAgICAgICAgICAgIHRpbWUgOiA8bnVtYmVyPgogICAgICAg
ICAgICAgdGltaW5ncyA6IDxvYmplY3Q+CiAgICAgICAgIH0KQEAgLTIxMSwxMSArMjExLDExIEBA
IFBhZ2UgcmVsb2FkZWQuCiAgICAgcGFnZXMgOiBbCiAgICAgICAgIHsKICAgICAgICAgICAgIGlk
IDogPHN0cmluZz4KKyAgICAgICAgICAgIG1vbm90b25pY1N0YXJ0VGltZSA6IDxudW1iZXI+CiAg
ICAgICAgICAgICBwYWdlVGltaW5ncyA6IHsKICAgICAgICAgICAgICAgICBvbkNvbnRlbnRMb2Fk
IDogPG51bWJlcj4KICAgICAgICAgICAgICAgICBvbkxvYWQgOiA8bnVtYmVyPgogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgc3RhcnRlZERhdGVUaW1lIDogPHBsYXVzaWJsZT4KICAgICAgICAg
ICAgIHRpdGxlIDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2UtaGFy
LWNvbnZlcnNpb24uaHRtbCIKICAgICAgICAgfQogICAgIF0K
</data>
<flag name="review"
          id="180689"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>