<?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>207629</bug_id>
          
          <creation_ts>2020-02-12 07:14:34 -0800</creation_ts>
          <short_desc>[Web Animations] Make all animation event types inherit from the same base class</short_desc>
          <delta_ts>2020-02-14 08:37:01 -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>Animations</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=207364</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>207364</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1617960</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-12 07:14:34 -0800</bug_when>
    <thetext>[Web Animations] Make all animation event types inherit from the same base class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617969</commentid>
    <comment_count>1</comment_count>
      <attachid>390515</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-12 07:23:15 -0800</bug_when>
    <thetext>Created attachment 390515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617972</commentid>
    <comment_count>2</comment_count>
      <attachid>390516</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-12 07:28:16 -0800</bug_when>
    <thetext>Created attachment 390516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618059</commentid>
    <comment_count>3</comment_count>
      <attachid>390516</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-12 09:46:21 -0800</bug_when>
    <thetext>Comment on attachment 390516
Patch

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

&gt; Source/WebCore/animation/AnimationEventBase.h:56
&gt; +    RefPtr&lt;WebAnimation&gt; m_animation;

This tingles my &quot;ref cycle&quot; spidey sense.

&gt; Source/WebCore/animation/DeclarativeAnimation.cpp:355
&gt; +    Optional&lt;Seconds&gt; timelineTime = timeline() ? timeline()-&gt;currentTime() : WTF::nullopt;

auto

&gt; Source/WebCore/animation/DeclarativeAnimation.cpp:364
&gt; +    if (is&lt;CSSAnimation&gt;(this)) {
&gt; +        auto event = AnimationEvent::create(eventType, downcast&lt;CSSAnimation&gt;(this)-&gt;animationName(), time, pseudoId, timelineTime, this);
&gt; +        event-&gt;setTarget(m_owningElement);
&gt; +        m_eventQueue-&gt;enqueueEvent(WTFMove(event));
&gt; +    } else if (is&lt;CSSTransition&gt;(this)) {
&gt; +        auto event = TransitionEvent::create(eventType, downcast&lt;CSSTransition&gt;(this)-&gt;transitionProperty(), time, pseudoId, timelineTime, this);
&gt; +        event-&gt;setTarget(m_owningElement);
&gt; +        m_eventQueue-&gt;enqueueEvent(WTFMove(event));
&gt; +    }

This is what virtual functions are for. Why the is&lt;&gt;(this) here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618429</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-13 02:03:40 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 390516 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390516&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/AnimationEventBase.h:56
&gt; &gt; +    RefPtr&lt;WebAnimation&gt; m_animation;
&gt; 
&gt; This tingles my &quot;ref cycle&quot; spidey sense.

So, for a DeclarativeAnimation, as it stands, events will be enqueued on a queue owned by a DeclarativeAnimation, and those events will maintain a strong reference to the DeclarativeAnimation until dispatched. This is a temporary cycle.

When we will dispatch those events on the DocumentTimeline&apos;s queue, there will be a temporary cycle as well, DocumentTimeline &gt; AnimationEventBase &gt; WebAnimation &gt; DocumentTimeline.

&gt; &gt; Source/WebCore/animation/DeclarativeAnimation.cpp:355
&gt; &gt; +    Optional&lt;Seconds&gt; timelineTime = timeline() ? timeline()-&gt;currentTime() : WTF::nullopt;
&gt; 
&gt; auto

Will fix.

&gt; &gt; Source/WebCore/animation/DeclarativeAnimation.cpp:364
&gt; &gt; +    if (is&lt;CSSAnimation&gt;(this)) {
&gt; &gt; +        auto event = AnimationEvent::create(eventType, downcast&lt;CSSAnimation&gt;(this)-&gt;animationName(), time, pseudoId, timelineTime, this);
&gt; &gt; +        event-&gt;setTarget(m_owningElement);
&gt; &gt; +        m_eventQueue-&gt;enqueueEvent(WTFMove(event));
&gt; &gt; +    } else if (is&lt;CSSTransition&gt;(this)) {
&gt; &gt; +        auto event = TransitionEvent::create(eventType, downcast&lt;CSSTransition&gt;(this)-&gt;transitionProperty(), time, pseudoId, timelineTime, this);
&gt; &gt; +        event-&gt;setTarget(m_owningElement);
&gt; &gt; +        m_eventQueue-&gt;enqueueEvent(WTFMove(event));
&gt; &gt; +    }
&gt; 
&gt; This is what virtual functions are for. Why the is&lt;&gt;(this) here?

Right, I&apos;ll add a new virtual function on DeclarativeAnimation to generate the right event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618924</commentid>
    <comment_count>5</comment_count>
      <attachid>390748</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-14 03:27:13 -0800</bug_when>
    <thetext>Created attachment 390748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618929</commentid>
    <comment_count>6</comment_count>
      <attachid>390753</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-14 03:38:48 -0800</bug_when>
    <thetext>Created attachment 390753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618932</commentid>
    <comment_count>7</comment_count>
      <attachid>390754</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-14 04:10:04 -0800</bug_when>
    <thetext>Created attachment 390754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618940</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-14 04:49:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/59456167&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619011</commentid>
    <comment_count>9</comment_count>
      <attachid>390754</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-14 08:26:50 -0800</bug_when>
    <thetext>Comment on attachment 390754
Patch

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

very nice

&gt; Source/WebCore/animation/CSSAnimation.h:52
&gt; +    Ref&lt;AnimationEventBase&gt; createEvent(const AtomString&amp; eventType, double elapsedTime, const String&amp; pseudoId, Optional&lt;Seconds&gt; timelineTime) final;

Maybe a comment somewhere to mention how elapsedTime and timelineTime differ.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619014</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-14 08:30:37 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #9)
&gt; Comment on attachment 390754 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390754&amp;action=review
&gt; 
&gt; very nice
&gt; 
&gt; &gt; Source/WebCore/animation/CSSAnimation.h:52
&gt; &gt; +    Ref&lt;AnimationEventBase&gt; createEvent(const AtomString&amp; eventType, double elapsedTime, const String&amp; pseudoId, Optional&lt;Seconds&gt; timelineTime) final;
&gt; 
&gt; Maybe a comment somewhere to mention how elapsedTime and timelineTime differ.

Sure, adding this in DeclarativeAnimation.h where the virtual method is specified:

    // elapsedTime is the animation&apos;s current time at the time the event is added and is exposed through the DOM API, timelineTime is the animations&apos;
    // timeline current time and is not exposed through the DOM API but used by the DocumentTimeline for sorting events before dispatch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619016</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-14 08:37:01 -0800</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=207364</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390515</attachid>
            <date>2020-02-12 07:23:15 -0800</date>
            <delta_ts>2020-02-12 07:28:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207629-20200212162313.patch</filename>
            <type>text/plain</type>
            <size>28468</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc4YWM1NzEyYzE2MDVk
MzdlNjk0N2UyNzNjNzIyODZjMzdjN2FhNi4uOTVkNzQyYjA2ZjZiMTk5MzU4ZjgzZmMzNDllODQ3
ZWVlZWQ4NDVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAyLTEyICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWIgQW5pbWF0aW9u
c10gTWFrZSBhbGwgYW5pbWF0aW9uIGV2ZW50IHR5cGVzIGluaGVyaXQgZnJvbSB0aGUgc2FtZSBi
YXNlIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDc2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgd2UgZGlzcGF0Y2ggZXZlbnRzIENTUyBUcmFuc2l0aW9ucyBhbmQgQ1NTIEFu
aW1hdGlvbnMgZXZlbnRzIHVzaW5nIGEgZGVkaWNhdGVkIGV2ZW50IHF1ZXVlIG9uIERlY2xhcmF0
aXZlQW5pbWF0aW9uLCB3aGlsZSB0aGUgZXZlbnRzCisgICAgICAgIGFkZGVkIGJ5IHRoZSBXZWIg
QW5pbWF0aW9ucyBzcGVjaWZpY2F0aW9uIChvZiB0eXBlIEFuaW1hdGlvblBsYXliYWNrRXZlbnQp
IGFyZSBkaXNwYXRjaGVkIHVzaW5nIGEgc2hhcmVkIHF1ZXVlIG9uIHRoZSBEb2N1bWVudFRpbWVs
aW5lIHRoYXQgaXMKKyAgICAgICAgcHJvY2Vzc2VkIGR1cmluZyB0aGUgInVwZGF0ZSBhbmltYXRp
b25zIGFuZCBzZW5kIGV2ZW50cyBwcm9jZWR1cmUiLiBUaGUgV2ViIEFuaW1hdGlvbnMgc3BlY2lm
aWNhdGlvbiBkaWN0YXRlcyB0aGF0IGFsbCBldmVudHMgc2hvdWxkIGJlIGRpc3BhdGNoZWQKKyAg
ICAgICAgZHVyaW5nIHRoYXQgcHJvY2VkdXJlLCB3aGljaCBpbmNsdWRlcyBzb3J0aW5nIG9mIHN1
Y2ggZXZlbnRzIGJhc2VkIG9uIHRoZWlyIHRpbWVsaW5lIHRpbWUgYW5kIGFzc29jaWF0ZWQgYW5p
bWF0aW9uIHJlbGF0aXZlIGNvbXBvc2l0ZSBvcmRlci4KKworICAgICAgICBJbiB0aGlzIHBhdGNo
LCB3ZSBwcmVwYXJlIHRoZSB3b3JrIHRvd2FyZHMgc3BlYyBjb21wbGlhbmNlIGZvciBhbmltYXRp
b24gZXZlbnRzIGRpc3BhdGNoIGJ5IG1ha2luZyBhbGwgZXZlbnQgdHlwZXMgKEFuaW1hdGlvblBs
YXliYWNrRXZlbnQsCisgICAgICAgIFRyYW5zaXRpb25FdmVudCBhbmQgQW5pbWF0aW9uRXZlbnQp
IGluaGVyaXQgZnJvbSBhIHNpbmdsZSBBbmltYXRpb25FdmVudEJhc2UgaW50ZXJmYWNlLiBUaGlz
IHdpbGwgYWxsb3cgRG9jdW1lbnRUaW1lbGluZSB0byBlbnF1ZXVlLCBzb3J0IGFuZAorICAgICAg
ICBkaXNwYXRjaCBhbGwgc3VjaCBldmVudHMgd2l0aCBhIHNpbmdsZSBxdWV1ZSBpbiBhIGZ1dHVy
ZSBwYXRjaC4KKworICAgICAgICBEdWUgdG8gQ1NTQW5pbWF0aW9uQ29udHJvbGxlciwgd2UgbXVz
dCBtYWtlIHRoZSAidGltZWxpbmUgdGltZSIgYW5kICJhbmltYXRpb24iIHBhcmFtZXRlcnMgb3B0
aW9uYWwuIFdoZW4gd2UgZHJvcCBzdXBwb3J0IGZvciBDU1NBbmltYXRpb25Db250cm9sbGVyCisg
ICAgICAgIHdlJ2xsIGJlIGFibGUgdG8gZW5mb3JjZSBzdHJvbmdlciByZXF1aXJlbWVudHMgZm9y
IHRoZXNlLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FdmVu
dEJhc2UuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQW5pbWF0aW9uRXZlbnQu
Y3BwLgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uRXZlbnRCYXNlOjpBbmltYXRpb25FdmVu
dEJhc2UpOgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6aXNBbmltYXRpb25QbGF5YmFja0V2ZW50IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6aXNBbmltYXRpb25F
dmVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25FdmVudEJhc2U6OmlzVHJh
bnNpdGlvbkV2ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFz
ZTo6dGltZWxpbmVUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50
QmFzZTo6YW5pbWF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uUGxh
eWJhY2tFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25QbGF5YmFja0V2ZW50
OjpBbmltYXRpb25QbGF5YmFja0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblBs
YXliYWNrRXZlbnQ6OmJpbmRpbmdzVGltZWxpbmVUaW1lIGNvbnN0KToKKyAgICAgICAgKiBhbmlt
YXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oOgorICAgICAgICAqIGFuaW1hdGlvbi9EZWNs
YXJhdGl2ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWNsYXJhdGl2ZUFuaW1h
dGlvbjo6ZW5xdWV1ZURPTUV2ZW50KToKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBs
YXliYWNrRXZlbnQpOgorICAgICAgICAqIGRvbS9BbmltYXRpb25FdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb25FdmVudDo6QW5pbWF0aW9uRXZlbnQpOgorICAgICAgICAqIGRv
bS9BbmltYXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9UcmFuc2l0aW9uRXZlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhbnNpdGlvbkV2ZW50OjpUcmFuc2l0aW9uRXZlbnQpOgorICAg
ICAgICAqIGRvbS9UcmFuc2l0aW9uRXZlbnQuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9D
U1NBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOgorCiAyMDIwLTAy
LTEyICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbRU1F
XVtHU3RyZWFtZXJdIEludHJvZHVjZSBDRE1Qcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiNWY2YTI5
ODIyMWQzZTE0MDU0MWNlODNjY2Q1YmUzYzJlZjY5YjI4Li4yOGE5MjllMTEzMzA1MzFhYTAzOGU1
ZDk5ZWRkM2IzYjlmODEyMTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNDQ3LDcgKzQ0Nyw3IEBAIGFj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCiBhY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKIAogYW5pbWF0aW9uL0FuaW1hdGlv
bkVmZmVjdC5jcHAKLWFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdFN0YWNrLmNwcAorYW5pbWF0aW9u
L0FuaW1hdGlvbkV2ZW50QmFzZS5jcHAKIGFuaW1hdGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50
LmNwcAogYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcAogYW5pbWF0aW9uL0NTU0FuaW1h
dGlvbi5jcHAKQEAgLTQ1NSw2ICs0NTUsNyBAQCBhbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAK
IGFuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAKIGFuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lLmNwcAogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorYW5pbWF0aW9uL0tleWZy
YW1lRWZmZWN0U3RhY2suY3BwCiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAogYW5pbWF0aW9u
L1dlYkFuaW1hdGlvblV0aWxpdGllcy5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIxOGU3NDI0NmJmMWYyN2VmZjc5YjA3
NjlmZTY4MGQyM2IzNTlmZTIuLjFiZDc4MmU1NzBjMDMxM2ZlMzJiMWY3NGQ3MWI3MDI5M2JlYTUx
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIwODQsNiArMjA4NCw3IEBACiAJCTcxMTZFMkNGMUZFRDc2NUIwMEMwNkZERSAv
KiBKU0NvbXB1dGVkRWZmZWN0VGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MTE2RTJDRTFGRUQ3NjUyMDBDMDZGREUgLyogSlNDb21wdXRlZEVm
ZmVjdFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTcxMTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMTc0NDU3
MTRCQzM0RTIwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCAqLzsgfTsKIAkJNzEx
OEZFRDUxNTY4NUNDNjAwMzBCNzlBIC8qIEpTU1ZHVmlld1NwZWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMThGRUQzMTU2ODVDQzYwMDMwQjc5QSAv
KiBKU1NWR1ZpZXdTcGVjLmggKi87IH07CisJCTcxMUFEMTI2MjM2RDg2RTUwMDZGRjM3QyAvKiBB
bmltYXRpb25FdmVudEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcxMUFEMTIzMjM2RDg2RDMwMDZGRjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MTIw
NzM0MDIxNkRGQjAwMDBDNzgzMjkgLyogT3B0aW9uYWxFZmZlY3RUaW1pbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMjA3MzNEMjE2REZBRjEwMEM3
ODMyOSAvKiBPcHRpb25hbEVmZmVjdFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMjA3MzQzMjE2REZCNDEwMEM3ODMyOSAvKiBKU09w
dGlvbmFsRWZmZWN0VGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3MTIwNzM0MTIxNkRGQjMxMDBDNzgzMjkgLyogSlNPcHRpb25hbEVmZmVjdFRp
bWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTcxMjQ3RTM3MUZFQTVGODYwMDhDMDhDRSAvKiBDb21wb3NpdGVPcGVyYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMjQ3RTM1MUZFQTVGODEw
MDhDMDhDRSAvKiBDb21wb3NpdGVPcGVyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTM5Myw2ICs5Mzk0LDggQEAKIAkJNzExNzQ0NTcx
NEJDMzRFMjAwRUU1RkM4IC8qIFNWR1RleHRNZXRyaWNzQnVpbGRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzExOEZFRDIxNTY4NUNDNjAwMzBCNzlBIC8qIEpTU1ZHVmlld1Nw
ZWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdWaWV3U3Bl
Yy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMThGRUQzMTU2ODVDQzYwMDMw
Qjc5QSAvKiBKU1NWR1ZpZXdTcGVjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTU1ZHVmlld1NwZWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzExQUQxMjMy
MzZEODZEMzAwNkZGMzdDIC8qIEFuaW1hdGlvbkV2ZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBbmltYXRpb25FdmVudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzExQUQxMjUyMzZEODZENDAwNkZGMzdDIC8qIEFuaW1hdGlvbkV2ZW50QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBbmltYXRpb25FdmVu
dEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTFGQjA3NTFEQzc2ODhG
MDBDNEM3MDggLyogcGxhY2FyZC1zdXBwb3J0LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZh
c2NyaXB0OyBwYXRoID0gInBsYWNhcmQtc3VwcG9ydC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxMjA3MzNEMjE2REZBRjEwMEM3ODMyOSAvKiBPcHRpb25hbEVmZmVjdFRpbWlu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcHRpb25hbEVmZmVjdFRpbWlu
Zy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTIwNzMzRjIxNkRGQUYyMDBDNzgz
MjkgLyogT3B0aW9uYWxFZmZlY3RUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE9w
dGlvbmFsRWZmZWN0VGltaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIw
OTM1LDYgKzIwOTM4LDggQEAKIAkJCQk3MUVGQ0VENzIwMkIzODhEMDBEN0M0MTEgLyogQW5pbWF0
aW9uRWZmZWN0LmggKi8sCiAJCQkJNzFFRkNFRDYyMDJCMzg4QzAwRDdDNDExIC8qIEFuaW1hdGlv
bkVmZmVjdC5pZGwgKi8sCiAJCQkJNzFFMkM0MjQyMUM5MzUxRDAwMjRGOEM4IC8qIEFuaW1hdGlv
bkVmZmVjdFBoYXNlLmggKi8sCisJCQkJNzExQUQxMjUyMzZEODZENDAwNkZGMzdDIC8qIEFuaW1h
dGlvbkV2ZW50QmFzZS5jcHAgKi8sCisJCQkJNzExQUQxMjMyMzZEODZEMzAwNkZGMzdDIC8qIEFu
aW1hdGlvbkV2ZW50QmFzZS5oICovLAogCQkJCTcxNEM3QzYwMUZEQUQyNzkwMEYyQkVFMSAvKiBB
bmltYXRpb25QbGF5YmFja0V2ZW50LmNwcCAqLywKIAkJCQk3MTRDN0M2NTFGREFEMjdCMDBGMkJF
RTEgLyogQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oICovLAogCQkJCTcxNEM3QzY0MUZEQUQyN0Iw
MEYyQkVFMSAvKiBBbmltYXRpb25QbGF5YmFja0V2ZW50LmlkbCAqLywKQEAgLTI4OTY2LDYgKzI4
OTcxLDcgQEAKIAkJCQk3MUVGQ0VEQzIwMkIzOEE5MDBEN0M0MTEgLyogQW5pbWF0aW9uRWZmZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MUUyQzQyNjIxQzkzNTI4MDAyNEY4QzggLyogQW5pbWF0
aW9uRWZmZWN0UGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxOTg0ODAxMUExRDgxN0IwMEEx
MzMxOCAvKiBBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzExQUQxMjYyMzZE
ODZFNTAwNkZGMzdDIC8qIEFuaW1hdGlvbkV2ZW50QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzIyQTgxNUQyMzhGREFGMDAwQzAwNTgzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDlFOTEyQUQwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbkxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTcxNEM3QzY2MUZEQUQyQTEwMEYyQkVFMSAvKiBBbmltYXRpb25Q
bGF5YmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0FuaW1hdGlvbkV2ZW50QmFzZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ5NTIxNTk2NDczYmMwZjg1
ZDI4YWNiNzQzZGE4MDMwMzM3MzJmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uRXZlbnRCYXNlLmgiCisKKyNpbmNsdWRlICJXZWJBbmlt
YXRpb25VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChBbmltYXRp
b25FdmVudEJhc2UpOworCitBbmltYXRpb25FdmVudEJhc2U6OkFuaW1hdGlvbkV2ZW50QmFzZShj
b25zdCBBdG9tU3RyaW5nJiB0eXBlLCBXZWJBbmltYXRpb24qIGFuaW1hdGlvbiwgT3B0aW9uYWw8
U2Vjb25kcz4gdGltZWxpbmVUaW1lKQorICAgIDogRXZlbnQodHlwZSwgQ2FuQnViYmxlOjpZZXMs
IElzQ2FuY2VsYWJsZTo6Tm8pCisgICAgLCBtX2FuaW1hdGlvbihhbmltYXRpb24pCisgICAgLCBt
X3RpbWVsaW5lVGltZSh0aW1lbGluZVRpbWUpCit7Cit9CisKK0FuaW1hdGlvbkV2ZW50QmFzZTo6
QW5pbWF0aW9uRXZlbnRCYXNlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5p
dCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBp
bml0aWFsaXplciwgaXNUcnVzdGVkKQoreworfQorCitBbmltYXRpb25FdmVudEJhc2U6On5Bbmlt
YXRpb25FdmVudEJhc2UoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41MjI0ZDFhYTAyYzIzZTJmZWUxZGFiYWJjOTc0YTcxOTU0OTY2MWJjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkV2ZW50QmFzZS5oCkBAIC0w
LDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL01hcmth
YmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViQW5pbWF0aW9uOworCitj
bGFzcyBBbmltYXRpb25FdmVudEJhc2UgOiBwdWJsaWMgRXZlbnQgeworICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoQW5pbWF0aW9uRXZlbnRCYXNlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PEFuaW1hdGlvbkV2ZW50QmFzZT4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIFdlYkFu
aW1hdGlvbiogYW5pbWF0aW9uLCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRpb25FdmVudEJhc2UodHlwZSwg
YW5pbWF0aW9uLCB0aW1lbGluZVRpbWUpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5BbmltYXRp
b25FdmVudEJhc2UoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGlvblBsYXliYWNrRXZl
bnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGlv
bkV2ZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUcmFu
c2l0aW9uRXZlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgT3B0aW9uYWw8U2Vj
b25kcz4gdGltZWxpbmVUaW1lKCkgY29uc3QgeyByZXR1cm4gbV90aW1lbGluZVRpbWU7IH0KKyAg
ICBXZWJBbmltYXRpb24qIGFuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW9uLmdl
dCgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBBbmltYXRpb25FdmVudEJhc2UoY29uc3QgQXRvbVN0
cmluZyYsIFdlYkFuaW1hdGlvbiosIE9wdGlvbmFsPFNlY29uZHM+KTsKKyAgICBBbmltYXRpb25F
dmVudEJhc2UoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEV2ZW50SW5pdCYsIElzVHJ1c3RlZCk7
CisKKyAgICBSZWZQdHI8V2ViQW5pbWF0aW9uPiBtX2FuaW1hdGlvbjsKKyAgICBNYXJrYWJsZTxT
ZWNvbmRzLCBTZWNvbmRzOjpNYXJrYWJsZVRyYWl0cz4gbV90aW1lbGluZVRpbWU7Cit9OworCit9
CisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklNQVRJT05fRVZFTlRfQkFTRShU
b1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJ
TihXZWJDb3JlOjpUb1ZhbHVlVHlwZU5hbWUpIFwKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBX
ZWJDb3JlOjpBbmltYXRpb25FdmVudEJhc2UmIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5wcmVkaWNh
dGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHAKaW5kZXggODQ3ZTU5
NGM1NjJlMDg3MzQ0NDI2OTk1NGE2N2VhYjMzMzI3MDNlYi4uODI5YTNiZGEzZDg4M2RmODU3NzEw
NGZjMmU4NTkwZWE5MmNiMTE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0FuaW1hdGlvblBsYXliYWNrRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9BbmltYXRpb25QbGF5YmFja0V2ZW50LmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQW5pbWF0aW9uUGxheWJhY2tF
dmVudCk7CiAKIEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFuaW1hdGlvblBsYXliYWNrRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQW5pbWF0aW9uUGxheWJhY2tFdmVudEluaXQm
IGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQotICAgIDogRXZlbnQodHlwZSwgaW5p
dGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICA6IEFuaW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBpbml0
aWFsaXplciwgaXNUcnVzdGVkKQogewogICAgIGlmIChpbml0aWFsaXplci5jdXJyZW50VGltZSkK
ICAgICAgICAgbV9jdXJyZW50VGltZSA9IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKmluaXRp
YWxpemVyLmN1cnJlbnRUaW1lKTsKQEAgLTQ3LDEwICs0Nyw5IEBAIEFuaW1hdGlvblBsYXliYWNr
RXZlbnQ6OkFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29u
c3QgQW5pCiAgICAgICAgIG1fdGltZWxpbmVUaW1lID0gV1RGOjpudWxsb3B0OwogfQogCi1Bbmlt
YXRpb25QbGF5YmFja0V2ZW50OjpBbmltYXRpb25QbGF5YmFja0V2ZW50KGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUsIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lLCBPcHRpb25hbDxTZWNvbmRz
PiB0aW1lbGluZVRpbWUpCi0gICAgOiBFdmVudCh0eXBlLCBDYW5CdWJibGU6OlllcywgSXNDYW5j
ZWxhYmxlOjpObykKK0FuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFuaW1hdGlvblBsYXliYWNrRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUs
IE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRpb24p
CisgICAgOiBBbmltYXRpb25FdmVudEJhc2UodHlwZSwgYW5pbWF0aW9uLCB0aW1lbGluZVRpbWUp
CiAgICAgLCBtX2N1cnJlbnRUaW1lKGN1cnJlbnRUaW1lKQotICAgICwgbV90aW1lbGluZVRpbWUo
dGltZWxpbmVUaW1lKQogewogfQogCkBAIC02NSw5ICs2NCw5IEBAIE9wdGlvbmFsPGRvdWJsZT4g
QW5pbWF0aW9uUGxheWJhY2tFdmVudDo6YmluZGluZ3NDdXJyZW50VGltZSgpIGNvbnN0CiAKIE9w
dGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6YmluZGluZ3NUaW1lbGluZVRp
bWUoKSBjb25zdAogewotICAgIGlmICghbV90aW1lbGluZVRpbWUpCisgICAgaWYgKCF0aW1lbGlu
ZVRpbWUoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICByZXR1cm4gc2Vjb25k
c1RvV2ViQW5pbWF0aW9uc0FQSVRpbWUobV90aW1lbGluZVRpbWUudmFsdWUoKSk7CisgICAgcmV0
dXJuIHNlY29uZHNUb1dlYkFuaW1hdGlvbnNBUElUaW1lKHRpbWVsaW5lVGltZSgpLnZhbHVlKCkp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuaAppbmRleCBiMjI4NWIwMDg0MDE2ZGU4ZDUw
YzczM2UwNTY1MWY0YjVhYTFmYWNjLi4zNWZmOTdjNzQzZWE0NDg4NTg0MmVkZGE4NDg5ZTRlNGZl
ZmY3YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxh
eWJhY2tFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25QbGF5
YmFja0V2ZW50LmgKQEAgLTI1LDE4ICsyNSwxOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIkFuaW1hdGlvbkV2ZW50QmFzZS5oIgogI2luY2x1ZGUgIkFuaW1hdGlvblBsYXliYWNrRXZl
bnRJbml0LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvTWFya2FibGUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBbmltYXRpb25QbGF5YmFja0V2ZW50IGZp
bmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIEFuaW1hdGlvblBsYXliYWNrRXZlbnQgZmluYWwg
OiBwdWJsaWMgQW5pbWF0aW9uRXZlbnRCYXNlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KEFuaW1hdGlvblBsYXliYWNrRXZlbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QW5pbWF0
aW9uUGxheWJhY2tFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIE9wdGlvbmFs
PFNlY29uZHM+IGN1cnJlbnRUaW1lLCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUpCisg
ICAgc3RhdGljIFJlZjxBbmltYXRpb25QbGF5YmFja0V2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUsIE9wdGlvbmFsPFNlY29u
ZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRpb24pCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRpb25QbGF5YmFja0V2ZW50KHR5cGUsIGN1cnJl
bnRUaW1lLCB0aW1lbGluZVRpbWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5p
bWF0aW9uUGxheWJhY2tFdmVudCh0eXBlLCBjdXJyZW50VGltZSwgdGltZWxpbmVUaW1lLCBhbmlt
YXRpb24pKTsKICAgICB9CiAKICAgICBzdGF0aWMgUmVmPEFuaW1hdGlvblBsYXliYWNrRXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBBbmltYXRpb25QbGF5YmFja0V2
ZW50SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5v
KQpAQCAtNDYsMTkgKzQ2LDIxIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkFuaW1hdGlvblBs
YXliYWNrRXZlbnQoKTsKIAorICAgIGJvb2wgaXNBbmltYXRpb25QbGF5YmFja0V2ZW50KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgT3B0aW9uYWw8ZG91YmxlPiBiaW5kaW5n
c0N1cnJlbnRUaW1lKCkgY29uc3Q7CiAgICAgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUo
KSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRUaW1lOyB9CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBi
aW5kaW5nc1RpbWVsaW5lVGltZSgpIGNvbnN0OwotICAgIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVs
aW5lVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZWxpbmVUaW1lOyB9CiAKICAgICBFdmVudElu
dGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFuaW1hdGlv
blBsYXliYWNrRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAKIHByaXZhdGU6Ci0gICAgQW5pbWF0aW9u
UGxheWJhY2tFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgT3B0aW9uYWw8U2Vjb25kcz4sIE9wdGlv
bmFsPFNlY29uZHM+KTsKKyAgICBBbmltYXRpb25QbGF5YmFja0V2ZW50KGNvbnN0IEF0b21TdHJp
bmcmLCBPcHRpb25hbDxTZWNvbmRzPiwgT3B0aW9uYWw8U2Vjb25kcz4sIFdlYkFuaW1hdGlvbiop
OwogICAgIEFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEFu
aW1hdGlvblBsYXliYWNrRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIAogICAgIE1hcmthYmxlPFNl
Y29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBtX2N1cnJlbnRUaW1lOwotICAgIE1hcmth
YmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBtX3RpbWVsaW5lVGltZTsKIH07
CiAKIH0KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklNQVRJT05fRVZFTlRfQkFTRShBbmlt
YXRpb25QbGF5YmFja0V2ZW50LCBpc0FuaW1hdGlvblBsYXliYWNrRXZlbnQoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uY3BwCmluZGV4IGJi
ZTRjMzcwNTc1ZjI5ZWNkZDIzMWE2NTY3YmIwNWQwNmM3YTU0OTcuLjdmNWQ2NDFjMzc1ZGMxZDhk
NmU0NGYwYjQ1Njg5ZTViODZhZmY3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmNwcApAQCAtMzUxLDEwICszNTEsMTcgQEAgdm9pZCBE
ZWNsYXJhdGl2ZUFuaW1hdGlvbjo6ZW5xdWV1ZURPTUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2
ZW50VHlwZSwgU2Vjb25kcwogewogICAgIEFTU0VSVChtX293bmluZ0VsZW1lbnQpOwogICAgIGF1
dG8gdGltZSA9IHNlY29uZHNUb1dlYkFuaW1hdGlvbnNBUElUaW1lKGVsYXBzZWRUaW1lKSAvIDEw
MDA7Ci0gICAgaWYgKGlzPENTU0FuaW1hdGlvbj4odGhpcykpCi0gICAgICAgIG1fZXZlbnRRdWV1
ZS0+ZW5xdWV1ZUV2ZW50KEFuaW1hdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBkb3duY2Fz
dDxDU1NBbmltYXRpb24+KHRoaXMpLT5hbmltYXRpb25OYW1lKCksIHRpbWUsIFBzZXVkb0VsZW1l
bnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKG1fb3duaW5nRWxlbWVudC0+cHNldWRvSWQo
KSkpKTsKLSAgICBlbHNlIGlmIChpczxDU1NUcmFuc2l0aW9uPih0aGlzKSkKLSAgICAgICAgbV9l
dmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnRUeXBl
LCBkb3duY2FzdDxDU1NUcmFuc2l0aW9uPih0aGlzKS0+dHJhbnNpdGlvblByb3BlcnR5KCksIHRp
bWUsIFBzZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKG1fb3duaW5nRWxl
bWVudC0+cHNldWRvSWQoKSkpKTsKKyAgICBjb25zdCBhdXRvJiBwc2V1ZG9JZCA9IFBzZXVkb0Vs
ZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKG1fb3duaW5nRWxlbWVudC0+cHNldWRv
SWQoKSk7CisgICAgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lID0gdGltZWxpbmUoKSA/
IHRpbWVsaW5lKCktPmN1cnJlbnRUaW1lKCkgOiBXVEY6Om51bGxvcHQ7CisgICAgaWYgKGlzPENT
U0FuaW1hdGlvbj4odGhpcykpIHsKKyAgICAgICAgYXV0byBldmVudCA9IEFuaW1hdGlvbkV2ZW50
OjpjcmVhdGUoZXZlbnRUeXBlLCBkb3duY2FzdDxDU1NBbmltYXRpb24+KHRoaXMpLT5hbmltYXRp
b25OYW1lKCksIHRpbWUsIHBzZXVkb0lkLCB0aW1lbGluZVRpbWUsIHRoaXMpOworICAgICAgICBl
dmVudC0+c2V0VGFyZ2V0KG1fb3duaW5nRWxlbWVudCk7CisgICAgICAgIG1fZXZlbnRRdWV1ZS0+
ZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQpKTsKKyAgICB9IGVsc2UgaWYgKGlzPENTU1RyYW5z
aXRpb24+KHRoaXMpKSB7CisgICAgICAgIGF1dG8gZXZlbnQgPSBUcmFuc2l0aW9uRXZlbnQ6OmNy
ZWF0ZShldmVudFR5cGUsIGRvd25jYXN0PENTU1RyYW5zaXRpb24+KHRoaXMpLT50cmFuc2l0aW9u
UHJvcGVydHkoKSwgdGltZSwgcHNldWRvSWQsIHRpbWVsaW5lVGltZSwgdGhpcyk7CisgICAgICAg
IGV2ZW50LT5zZXRUYXJnZXQobV9vd25pbmdFbGVtZW50KTsKKyAgICAgICAgbV9ldmVudFF1ZXVl
LT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOworICAgIH0KIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1h
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAppbmRl
eCBkNDIxMWNjNWVjNTRmNjA1ODZlZDE0NDc3NDRhY2U5ODQwMWI4NzM1Li5kMDg5NmZiN2NjYjIw
YWRhZTQyYzUwZjhlZDk2NTc3MmE4MDJkZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
V2ViQW5pbWF0aW9uLmNwcApAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjp3
aWxsQ2hhbmdlUmVuZGVyZXIoKQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlv
blBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vjb25kcz4g
Y3VycmVudFRpbWUsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSkKIHsKLSAgICBhdXRv
IGV2ZW50ID0gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6Y3JlYXRlKHR5cGUsIGN1cnJlbnRUaW1l
LCB0aW1lbGluZVRpbWUpOworICAgIGF1dG8gZXZlbnQgPSBBbmltYXRpb25QbGF5YmFja0V2ZW50
OjpjcmVhdGUodHlwZSwgY3VycmVudFRpbWUsIHRpbWVsaW5lVGltZSwgdGhpcyk7CiAgICAgZXZl
bnQtPnNldFRhcmdldCh0aGlzKTsKIAogICAgIGlmIChpczxEb2N1bWVudFRpbWVsaW5lPihtX3Rp
bWVsaW5lKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BbmltYXRpb25FdmVudC5jcHAKaW5kZXggZGM4OTg2
NGRkYTIwMjM0MDVhYTYxZTllY2NjYjgwNDE3ZjRjNzExNi4uOGZiMTlkNTkwNzk1MTFmY2QzMDE2
YTgzZDUyOWY2OTQyNjdjZDYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1h
dGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQW5pbWF0aW9uRXZlbnQuY3Bw
CkBAIC0zMywxNSArMzMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKEFuaW1hdGlvbkV2ZW50KTsKIAogQW5pbWF0aW9uRXZlbnQ6OkFuaW1hdGlv
bkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJ
c1RydXN0ZWQgaXNUcnVzdGVkKQotICAgIDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1
c3RlZCkKKyAgICA6IEFuaW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVz
dGVkKQogICAgICwgbV9hbmltYXRpb25OYW1lKGluaXRpYWxpemVyLmFuaW1hdGlvbk5hbWUpCiAg
ICAgLCBtX2VsYXBzZWRUaW1lKGluaXRpYWxpemVyLmVsYXBzZWRUaW1lKQogICAgICwgbV9wc2V1
ZG9FbGVtZW50KGluaXRpYWxpemVyLnBzZXVkb0VsZW1lbnQpCiB7CiB9CiAKLUFuaW1hdGlvbkV2
ZW50OjpBbmltYXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9F
bGVtZW50KQotICAgIDogRXZlbnQodHlwZSwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6
Tm8pCitBbmltYXRpb25FdmVudDo6QW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0
IFN0cmluZyYgcHNldWRvRWxlbWVudCwgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lLCBX
ZWJBbmltYXRpb24qIGFuaW1hdGlvbikKKyAgICA6IEFuaW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBh
bmltYXRpb24sIHRpbWVsaW5lVGltZSkKICAgICAsIG1fYW5pbWF0aW9uTmFtZShhbmltYXRpb25O
YW1lKQogICAgICwgbV9lbGFwc2VkVGltZShlbGFwc2VkVGltZSkKICAgICAsIG1fcHNldWRvRWxl
bWVudChwc2V1ZG9FbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1h
dGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQW5pbWF0aW9uRXZlbnQuaAppbmRleCAw
MWVhZTM3MzFkY2NjY2U0ZGY0NWVmMmU2M2Y2ZWEzMTBkMjQ2NDVmLi43OTU1ZDcxMWNhYjdmN2I5
ZGRiZjZhMGFjZDkwZjYwYmMwMTMzZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
QW5pbWF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQW5pbWF0aW9uRXZlbnQu
aApAQCAtMjUsMTYgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlICJBbmltYXRpb25FdmVudEJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBBbmltYXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBB
bmltYXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBBbmltYXRpb25FdmVudEJhc2UgewogICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoQW5pbWF0aW9uRXZlbnQpOwogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8QW5pbWF0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5n
JiBwc2V1ZG9FbGVtZW50KQorICAgIHN0YXRpYyBSZWY8QW5pbWF0aW9uRXZlbnQ+IGNyZWF0ZShj
b25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJs
ZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50LCBPcHRpb25hbDxTZWNv
bmRzPiB0aW1lbGluZVRpbWUsIFdlYkFuaW1hdGlvbiogYW5pbWF0aW9uKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5pbWF0aW9uRXZlbnQodHlwZSwgYW5pbWF0aW9uTmFt
ZSwgZWxhcHNlZFRpbWUsIHBzZXVkb0VsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQW5pbWF0aW9uRXZlbnQodHlwZSwgYW5pbWF0aW9uTmFtZSwgZWxhcHNlZFRpbWUsIHBz
ZXVkb0VsZW1lbnQsIHRpbWVsaW5lVGltZSwgYW5pbWF0aW9uKSk7CiAgICAgfQogCiAgICAgc3Ry
dWN0IEluaXQgOiBFdmVudEluaXQgewpAQCAtNTAsNiArNTAsOCBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIH5BbmltYXRpb25FdmVudCgpOwogCisgICAgYm9vbCBpc0FuaW1hdGlvbkV2ZW50KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgY29uc3QgU3RyaW5nJiBhbmltYXRp
b25OYW1lKCkgY29uc3Q7CiAgICAgZG91YmxlIGVsYXBzZWRUaW1lKCkgY29uc3Q7CiAgICAgY29u
c3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KCkgY29uc3Q7CkBAIC01Nyw3ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwog
CiBwcml2YXRlOgotICAgIEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJp
bmcmIHBzZXVkb0VsZW1lbnQpOworICAgIEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBj
b25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGlt
ZSwgV2ViQW5pbWF0aW9uKik7CiAgICAgQW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYs
IGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOwogCiAgICAgU3RyaW5nIG1fYW5pbWF0aW9uTmFtZTsK
QEAgLTY2LDMgKzY4LDUgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklNQVRJT05fRVZFTlRfQkFTRShBbmltYXRpb25F
dmVudCwgaXNBbmltYXRpb25FdmVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyYW5zaXRpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50
LmNwcAppbmRleCA2OTYxZWYzMmQxM2YzNzE3MzRiMTBmM2ViY2E0MzVhMGQ1YjM2M2YzLi4zZDU5
MjY1NzU3NzFlMzgzOGEyODM4ZGE0N2ZmYTllMjIwNWRkYWZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJhbnNpdGlvbkV2ZW50LmNwcApAQCAtMzMsOCArMzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUcmFuc2l0aW9uRXZlbnQpOwogCi1UcmFu
c2l0aW9uRXZlbnQ6OlRyYW5zaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcm
IHBzZXVkb0VsZW1lbnQpCi0gICAgOiBFdmVudCh0eXBlLCBDYW5CdWJibGU6OlllcywgSXNDYW5j
ZWxhYmxlOjpZZXMpCitUcmFuc2l0aW9uRXZlbnQ6OlRyYW5zaXRpb25FdmVudChjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRU
aW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVs
aW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRpb24pCisgICAgOiBBbmltYXRpb25FdmVudEJh
c2UodHlwZSwgYW5pbWF0aW9uLCB0aW1lbGluZVRpbWUpCiAgICAgLCBtX3Byb3BlcnR5TmFtZShw
cm9wZXJ0eU5hbWUpCiAgICAgLCBtX2VsYXBzZWRUaW1lKGVsYXBzZWRUaW1lKQogICAgICwgbV9w
c2V1ZG9FbGVtZW50KHBzZXVkb0VsZW1lbnQpCkBAIC00Miw3ICs0Miw3IEBAIFRyYW5zaXRpb25F
dmVudDo6VHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlOCiB9CiAKIFRyYW5zaXRpb25FdmVudDo6VHJhbnNpdGlvbkV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNU
cnVzdGVkKQotICAgIDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICA6
IEFuaW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQogICAgICwg
bV9wcm9wZXJ0eU5hbWUoaW5pdGlhbGl6ZXIucHJvcGVydHlOYW1lKQogICAgICwgbV9lbGFwc2Vk
VGltZShpbml0aWFsaXplci5lbGFwc2VkVGltZSkKICAgICAsIG1fcHNldWRvRWxlbWVudChpbml0
aWFsaXplci5wc2V1ZG9FbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
YW5zaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5oCmlu
ZGV4IDQ5NGY5YTRlZWM2Yzg4NzdjOWY3YjlhZTQ2NmQ0YTM5OThjYjIzMDEuLjIzMTM2ZDczZjA3
YmJkOWJjMTRhY2I4MjEzNDc3N2IxMjA4ZWIxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmFuc2l0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlv
bkV2ZW50LmgKQEAgLTI2LDE2ICsyNiwxNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IkV2ZW50LmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uRXZlbnRCYXNlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgVHJhbnNpdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsK
K2NsYXNzIFRyYW5zaXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBBbmltYXRpb25FdmVudEJhc2Ug
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoVHJhbnNpdGlvbkV2ZW50KTsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFRyYW5zaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNv
bnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCkKKyAgICBzdGF0aWMgUmVmPFRyYW5zaXRpb25FdmVu
dD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCwgT3B0
aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lLCBXZWJBbmltYXRpb24qIGFuaW1hdGlvbikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRyYW5zaXRpb25FdmVudCh0eXBlLCBw
cm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lLCBwc2V1ZG9FbGVtZW50KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFRyYW5zaXRpb25FdmVudCh0eXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBz
ZWRUaW1lLCBwc2V1ZG9FbGVtZW50LCB0aW1lbGluZVRpbWUsIGFuaW1hdGlvbikpOwogICAgIH0K
IAogICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKQEAgLTUxLDYgKzUxLDggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB+VHJhbnNpdGlvbkV2ZW50KCk7CiAKKyAgICBib29sIGlzVHJhbnNp
dGlvbkV2ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUoKSBjb25zdDsKICAgICBkb3VibGUgZWxhcHNlZFRpbWUoKSBjb25z
dDsKICAgICBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQoKSBjb25zdDsKQEAgLTU4LDcgKzYw
LDcgQEAgcHVibGljOgogICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgVHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUs
IGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCk7CisgICAgVHJhbnNpdGlvbkV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxh
cHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCwgT3B0aW9uYWw8U2Vjb25kcz4g
dGltZWxpbmVUaW1lLCBXZWJBbmltYXRpb24qKTsKICAgICBUcmFuc2l0aW9uRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCk7CiAK
ICAgICBTdHJpbmcgbV9wcm9wZXJ0eU5hbWU7CkBAIC02NywzICs2OSw1IEBAIHByaXZhdGU6CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQU5J
TUFUSU9OX0VWRU5UX0JBU0UoVHJhbnNpdGlvbkV2ZW50LCBpc1RyYW5zaXRpb25FdmVudCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25D
b250cm9sbGVyLmNwcAppbmRleCBiMTQ1MzYwMDU0N2ZhMDZhMzdlOTc4ZWQzMjdhMzg3ZmYxNTk1
MWYzLi4xMWRiMDYwMDVjMzA5NjUxYmMwZDdhNWM3Yzk5MzdiN2FjZWQyMDQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9s
bGVyLmNwcApAQCAtMjI1LDkgKzIyNSw5IEBAIHZvaWQgQ1NTQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSgpCiAgICAgZm9yIChhdXRvJiBldmVudCA6
IGV2ZW50c1RvRGlzcGF0Y2gpIHsKICAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9IGV2ZW50LmVs
ZW1lbnQ7CiAgICAgICAgIGlmIChldmVudC5ldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRyYW5z
aXRpb25lbmRFdmVudCkKLSAgICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChUcmFuc2l0
aW9uRXZlbnQ6OmNyZWF0ZShldmVudC5ldmVudFR5cGUsIGV2ZW50Lm5hbWUsIGV2ZW50LmVsYXBz
ZWRUaW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFtZUZvckV2ZW50cyhlbGVtZW50
LnBzZXVkb0lkKCkpKSk7CisgICAgICAgICAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQoVHJhbnNp
dGlvbkV2ZW50OjpjcmVhdGUoZXZlbnQuZXZlbnRUeXBlLCBldmVudC5uYW1lLCBldmVudC5lbGFw
c2VkVGltZSwgUHNldWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVudHMoZWxlbWVu
dC5wc2V1ZG9JZCgpKSwgV1RGOjpudWxsb3B0LCBudWxscHRyKSk7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChBbmltYXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQuZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1l
bnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVsZW1lbnQucHNldWRvSWQoKSkpKTsKKyAg
ICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChBbmltYXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQuZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1l
bnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVsZW1lbnQucHNldWRvSWQoKSksIFdURjo6
bnVsbG9wdCwgbnVsbHB0cikpOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgY2hhbmdlIDogbV9l
bGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390516</attachid>
            <date>2020-02-12 07:28:16 -0800</date>
            <delta_ts>2020-02-14 03:27:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207629-20200212162815.patch</filename>
            <type>text/plain</type>
            <size>28468</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc4YWM1NzEyYzE2MDVk
MzdlNjk0N2UyNzNjNzIyODZjMzdjN2FhNi4uOTVkNzQyYjA2ZjZiMTk5MzU4ZjgzZmMzNDllODQ3
ZWVlZWQ4NDVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAyLTEyICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWIgQW5pbWF0aW9u
c10gTWFrZSBhbGwgYW5pbWF0aW9uIGV2ZW50IHR5cGVzIGluaGVyaXQgZnJvbSB0aGUgc2FtZSBi
YXNlIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDc2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgd2UgZGlzcGF0Y2ggZXZlbnRzIENTUyBUcmFuc2l0aW9ucyBhbmQgQ1NTIEFu
aW1hdGlvbnMgZXZlbnRzIHVzaW5nIGEgZGVkaWNhdGVkIGV2ZW50IHF1ZXVlIG9uIERlY2xhcmF0
aXZlQW5pbWF0aW9uLCB3aGlsZSB0aGUgZXZlbnRzCisgICAgICAgIGFkZGVkIGJ5IHRoZSBXZWIg
QW5pbWF0aW9ucyBzcGVjaWZpY2F0aW9uIChvZiB0eXBlIEFuaW1hdGlvblBsYXliYWNrRXZlbnQp
IGFyZSBkaXNwYXRjaGVkIHVzaW5nIGEgc2hhcmVkIHF1ZXVlIG9uIHRoZSBEb2N1bWVudFRpbWVs
aW5lIHRoYXQgaXMKKyAgICAgICAgcHJvY2Vzc2VkIGR1cmluZyB0aGUgInVwZGF0ZSBhbmltYXRp
b25zIGFuZCBzZW5kIGV2ZW50cyBwcm9jZWR1cmUiLiBUaGUgV2ViIEFuaW1hdGlvbnMgc3BlY2lm
aWNhdGlvbiBkaWN0YXRlcyB0aGF0IGFsbCBldmVudHMgc2hvdWxkIGJlIGRpc3BhdGNoZWQKKyAg
ICAgICAgZHVyaW5nIHRoYXQgcHJvY2VkdXJlLCB3aGljaCBpbmNsdWRlcyBzb3J0aW5nIG9mIHN1
Y2ggZXZlbnRzIGJhc2VkIG9uIHRoZWlyIHRpbWVsaW5lIHRpbWUgYW5kIGFzc29jaWF0ZWQgYW5p
bWF0aW9uIHJlbGF0aXZlIGNvbXBvc2l0ZSBvcmRlci4KKworICAgICAgICBJbiB0aGlzIHBhdGNo
LCB3ZSBwcmVwYXJlIHRoZSB3b3JrIHRvd2FyZHMgc3BlYyBjb21wbGlhbmNlIGZvciBhbmltYXRp
b24gZXZlbnRzIGRpc3BhdGNoIGJ5IG1ha2luZyBhbGwgZXZlbnQgdHlwZXMgKEFuaW1hdGlvblBs
YXliYWNrRXZlbnQsCisgICAgICAgIFRyYW5zaXRpb25FdmVudCBhbmQgQW5pbWF0aW9uRXZlbnQp
IGluaGVyaXQgZnJvbSBhIHNpbmdsZSBBbmltYXRpb25FdmVudEJhc2UgaW50ZXJmYWNlLiBUaGlz
IHdpbGwgYWxsb3cgRG9jdW1lbnRUaW1lbGluZSB0byBlbnF1ZXVlLCBzb3J0IGFuZAorICAgICAg
ICBkaXNwYXRjaCBhbGwgc3VjaCBldmVudHMgd2l0aCBhIHNpbmdsZSBxdWV1ZSBpbiBhIGZ1dHVy
ZSBwYXRjaC4KKworICAgICAgICBEdWUgdG8gQ1NTQW5pbWF0aW9uQ29udHJvbGxlciwgd2UgbXVz
dCBtYWtlIHRoZSAidGltZWxpbmUgdGltZSIgYW5kICJhbmltYXRpb24iIHBhcmFtZXRlcnMgb3B0
aW9uYWwuIFdoZW4gd2UgZHJvcCBzdXBwb3J0IGZvciBDU1NBbmltYXRpb25Db250cm9sbGVyCisg
ICAgICAgIHdlJ2xsIGJlIGFibGUgdG8gZW5mb3JjZSBzdHJvbmdlciByZXF1aXJlbWVudHMgZm9y
IHRoZXNlLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FdmVu
dEJhc2UuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQW5pbWF0aW9uRXZlbnQu
Y3BwLgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uRXZlbnRCYXNlOjpBbmltYXRpb25FdmVu
dEJhc2UpOgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6aXNBbmltYXRpb25QbGF5YmFja0V2ZW50IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6aXNBbmltYXRpb25F
dmVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25FdmVudEJhc2U6OmlzVHJh
bnNpdGlvbkV2ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFz
ZTo6dGltZWxpbmVUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50
QmFzZTo6YW5pbWF0aW9uIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uUGxh
eWJhY2tFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25QbGF5YmFja0V2ZW50
OjpBbmltYXRpb25QbGF5YmFja0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblBs
YXliYWNrRXZlbnQ6OmJpbmRpbmdzVGltZWxpbmVUaW1lIGNvbnN0KToKKyAgICAgICAgKiBhbmlt
YXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oOgorICAgICAgICAqIGFuaW1hdGlvbi9EZWNs
YXJhdGl2ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWNsYXJhdGl2ZUFuaW1h
dGlvbjo6ZW5xdWV1ZURPTUV2ZW50KToKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBs
YXliYWNrRXZlbnQpOgorICAgICAgICAqIGRvbS9BbmltYXRpb25FdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb25FdmVudDo6QW5pbWF0aW9uRXZlbnQpOgorICAgICAgICAqIGRv
bS9BbmltYXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9UcmFuc2l0aW9uRXZlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhbnNpdGlvbkV2ZW50OjpUcmFuc2l0aW9uRXZlbnQpOgorICAg
ICAgICAqIGRvbS9UcmFuc2l0aW9uRXZlbnQuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9D
U1NBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOgorCiAyMDIwLTAy
LTEyICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbRU1F
XVtHU3RyZWFtZXJdIEludHJvZHVjZSBDRE1Qcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiNWY2YTI5
ODIyMWQzZTE0MDU0MWNlODNjY2Q1YmUzYzJlZjY5YjI4Li4yOGE5MjllMTEzMzA1MzFhYTAzOGU1
ZDk5ZWRkM2IzYjlmODEyMTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNDQ3LDcgKzQ0Nyw3IEBAIGFj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCiBhY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKIAogYW5pbWF0aW9uL0FuaW1hdGlv
bkVmZmVjdC5jcHAKLWFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdFN0YWNrLmNwcAorYW5pbWF0aW9u
L0FuaW1hdGlvbkV2ZW50QmFzZS5jcHAKIGFuaW1hdGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50
LmNwcAogYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcAogYW5pbWF0aW9uL0NTU0FuaW1h
dGlvbi5jcHAKQEAgLTQ1NSw2ICs0NTUsNyBAQCBhbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAK
IGFuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAKIGFuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lLmNwcAogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorYW5pbWF0aW9uL0tleWZy
YW1lRWZmZWN0U3RhY2suY3BwCiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAogYW5pbWF0aW9u
L1dlYkFuaW1hdGlvblV0aWxpdGllcy5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIxOGU3NDI0NmJmMWYyN2VmZjc5YjA3
NjlmZTY4MGQyM2IzNTlmZTIuLjFiZDc4MmU1NzBjMDMxM2ZlMzJiMWY3NGQ3MWI3MDI5M2JlYTUx
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIwODQsNiArMjA4NCw3IEBACiAJCTcxMTZFMkNGMUZFRDc2NUIwMEMwNkZERSAv
KiBKU0NvbXB1dGVkRWZmZWN0VGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MTE2RTJDRTFGRUQ3NjUyMDBDMDZGREUgLyogSlNDb21wdXRlZEVm
ZmVjdFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTcxMTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMTc0NDU3
MTRCQzM0RTIwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCAqLzsgfTsKIAkJNzEx
OEZFRDUxNTY4NUNDNjAwMzBCNzlBIC8qIEpTU1ZHVmlld1NwZWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMThGRUQzMTU2ODVDQzYwMDMwQjc5QSAv
KiBKU1NWR1ZpZXdTcGVjLmggKi87IH07CisJCTcxMUFEMTI2MjM2RDg2RTUwMDZGRjM3QyAvKiBB
bmltYXRpb25FdmVudEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcxMUFEMTIzMjM2RDg2RDMwMDZGRjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MTIw
NzM0MDIxNkRGQjAwMDBDNzgzMjkgLyogT3B0aW9uYWxFZmZlY3RUaW1pbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMjA3MzNEMjE2REZBRjEwMEM3
ODMyOSAvKiBPcHRpb25hbEVmZmVjdFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMjA3MzQzMjE2REZCNDEwMEM3ODMyOSAvKiBKU09w
dGlvbmFsRWZmZWN0VGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3MTIwNzM0MTIxNkRGQjMxMDBDNzgzMjkgLyogSlNPcHRpb25hbEVmZmVjdFRp
bWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTcxMjQ3RTM3MUZFQTVGODYwMDhDMDhDRSAvKiBDb21wb3NpdGVPcGVyYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMjQ3RTM1MUZFQTVGODEw
MDhDMDhDRSAvKiBDb21wb3NpdGVPcGVyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTM5Myw2ICs5Mzk0LDggQEAKIAkJNzExNzQ0NTcx
NEJDMzRFMjAwRUU1RkM4IC8qIFNWR1RleHRNZXRyaWNzQnVpbGRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzExOEZFRDIxNTY4NUNDNjAwMzBCNzlBIC8qIEpTU1ZHVmlld1Nw
ZWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdWaWV3U3Bl
Yy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMThGRUQzMTU2ODVDQzYwMDMw
Qjc5QSAvKiBKU1NWR1ZpZXdTcGVjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTU1ZHVmlld1NwZWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzExQUQxMjMy
MzZEODZEMzAwNkZGMzdDIC8qIEFuaW1hdGlvbkV2ZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBbmltYXRpb25FdmVudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzExQUQxMjUyMzZEODZENDAwNkZGMzdDIC8qIEFuaW1hdGlvbkV2ZW50QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBbmltYXRpb25FdmVu
dEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTFGQjA3NTFEQzc2ODhG
MDBDNEM3MDggLyogcGxhY2FyZC1zdXBwb3J0LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZh
c2NyaXB0OyBwYXRoID0gInBsYWNhcmQtc3VwcG9ydC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxMjA3MzNEMjE2REZBRjEwMEM3ODMyOSAvKiBPcHRpb25hbEVmZmVjdFRpbWlu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcHRpb25hbEVmZmVjdFRpbWlu
Zy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTIwNzMzRjIxNkRGQUYyMDBDNzgz
MjkgLyogT3B0aW9uYWxFZmZlY3RUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE9w
dGlvbmFsRWZmZWN0VGltaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIw
OTM1LDYgKzIwOTM4LDggQEAKIAkJCQk3MUVGQ0VENzIwMkIzODhEMDBEN0M0MTEgLyogQW5pbWF0
aW9uRWZmZWN0LmggKi8sCiAJCQkJNzFFRkNFRDYyMDJCMzg4QzAwRDdDNDExIC8qIEFuaW1hdGlv
bkVmZmVjdC5pZGwgKi8sCiAJCQkJNzFFMkM0MjQyMUM5MzUxRDAwMjRGOEM4IC8qIEFuaW1hdGlv
bkVmZmVjdFBoYXNlLmggKi8sCisJCQkJNzExQUQxMjUyMzZEODZENDAwNkZGMzdDIC8qIEFuaW1h
dGlvbkV2ZW50QmFzZS5jcHAgKi8sCisJCQkJNzExQUQxMjMyMzZEODZEMzAwNkZGMzdDIC8qIEFu
aW1hdGlvbkV2ZW50QmFzZS5oICovLAogCQkJCTcxNEM3QzYwMUZEQUQyNzkwMEYyQkVFMSAvKiBB
bmltYXRpb25QbGF5YmFja0V2ZW50LmNwcCAqLywKIAkJCQk3MTRDN0M2NTFGREFEMjdCMDBGMkJF
RTEgLyogQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oICovLAogCQkJCTcxNEM3QzY0MUZEQUQyN0Iw
MEYyQkVFMSAvKiBBbmltYXRpb25QbGF5YmFja0V2ZW50LmlkbCAqLywKQEAgLTI4OTY2LDYgKzI4
OTcxLDcgQEAKIAkJCQk3MUVGQ0VEQzIwMkIzOEE5MDBEN0M0MTEgLyogQW5pbWF0aW9uRWZmZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MUUyQzQyNjIxQzkzNTI4MDAyNEY4QzggLyogQW5pbWF0
aW9uRWZmZWN0UGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxOTg0ODAxMUExRDgxN0IwMEEx
MzMxOCAvKiBBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzExQUQxMjYyMzZE
ODZFNTAwNkZGMzdDIC8qIEFuaW1hdGlvbkV2ZW50QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzIyQTgxNUQyMzhGREFGMDAwQzAwNTgzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDlFOTEyQUQwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbkxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTcxNEM3QzY2MUZEQUQyQTEwMEYyQkVFMSAvKiBBbmltYXRpb25Q
bGF5YmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0FuaW1hdGlvbkV2ZW50QmFzZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRiZjRjNWY0ZTBhNGYyNjQ2
MWQxM2UzNWVmMzU0YjZiYzM3NDlmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uRXZlbnRCYXNlLmgiCisKKyNpbmNsdWRlICJXZWJBbmlt
YXRpb25VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChBbmltYXRp
b25FdmVudEJhc2UpOworCitBbmltYXRpb25FdmVudEJhc2U6OkFuaW1hdGlvbkV2ZW50QmFzZShj
b25zdCBBdG9tU3RyaW5nJiB0eXBlLCBXZWJBbmltYXRpb24qIGFuaW1hdGlvbiwgT3B0aW9uYWw8
U2Vjb25kcz4gdGltZWxpbmVUaW1lKQorICAgIDogRXZlbnQodHlwZSwgQ2FuQnViYmxlOjpZZXMs
IElzQ2FuY2VsYWJsZTo6Tm8pCisgICAgLCBtX2FuaW1hdGlvbihhbmltYXRpb24pCisgICAgLCBt
X3RpbWVsaW5lVGltZSh0aW1lbGluZVRpbWUpCit7Cit9CisKK0FuaW1hdGlvbkV2ZW50QmFzZTo6
QW5pbWF0aW9uRXZlbnRCYXNlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5p
dCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBp
bml0aWFsaXplciwgaXNUcnVzdGVkKQoreworfQorCitBbmltYXRpb25FdmVudEJhc2U6On5Bbmlt
YXRpb25FdmVudEJhc2UoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNzc4MTQ4YTdhZTdmYTQzYTY2OWM3OWRlNzQ5OGNjMTZmZWNhNjU0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkV2ZW50QmFzZS5oCkBAIC0w
LDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL01hcmth
YmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViQW5pbWF0aW9uOworCitj
bGFzcyBBbmltYXRpb25FdmVudEJhc2UgOiBwdWJsaWMgRXZlbnQgeworICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoQW5pbWF0aW9uRXZlbnRCYXNlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PEFuaW1hdGlvbkV2ZW50QmFzZT4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIFdlYkFu
aW1hdGlvbiogYW5pbWF0aW9uLCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRpb25FdmVudEJhc2UodHlwZSwg
YW5pbWF0aW9uLCB0aW1lbGluZVRpbWUpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5BbmltYXRp
b25FdmVudEJhc2UoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGlvblBsYXliYWNrRXZl
bnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGlv
bkV2ZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUcmFu
c2l0aW9uRXZlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgT3B0aW9uYWw8U2Vj
b25kcz4gdGltZWxpbmVUaW1lKCkgY29uc3QgeyByZXR1cm4gbV90aW1lbGluZVRpbWU7IH0KKyAg
ICBXZWJBbmltYXRpb24qIGFuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW9uLmdl
dCgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBBbmltYXRpb25FdmVudEJhc2UoY29uc3QgQXRvbVN0
cmluZyYsIFdlYkFuaW1hdGlvbiosIE9wdGlvbmFsPFNlY29uZHM+KTsKKyAgICBBbmltYXRpb25F
dmVudEJhc2UoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEV2ZW50SW5pdCYsIElzVHJ1c3RlZCk7
CisKKyAgICBSZWZQdHI8V2ViQW5pbWF0aW9uPiBtX2FuaW1hdGlvbjsKKyAgICBNYXJrYWJsZTxT
ZWNvbmRzLCBTZWNvbmRzOjpNYXJrYWJsZVRyYWl0cz4gbV90aW1lbGluZVRpbWU7Cit9OworCit9
CisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklNQVRJT05fRVZFTlRfQkFTRShU
b1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJ
TihXZWJDb3JlOjpUb1ZhbHVlVHlwZU5hbWUpIFwKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBX
ZWJDb3JlOjpBbmltYXRpb25FdmVudEJhc2UmIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5wcmVkaWNh
dGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHAKaW5kZXggODQ3ZTU5
NGM1NjJlMDg3MzQ0NDI2OTk1NGE2N2VhYjMzMzI3MDNlYi4uODI5YTNiZGEzZDg4M2RmODU3NzEw
NGZjMmU4NTkwZWE5MmNiMTE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0FuaW1hdGlvblBsYXliYWNrRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9BbmltYXRpb25QbGF5YmFja0V2ZW50LmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQW5pbWF0aW9uUGxheWJhY2tF
dmVudCk7CiAKIEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFuaW1hdGlvblBsYXliYWNrRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQW5pbWF0aW9uUGxheWJhY2tFdmVudEluaXQm
IGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQotICAgIDogRXZlbnQodHlwZSwgaW5p
dGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICA6IEFuaW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBpbml0
aWFsaXplciwgaXNUcnVzdGVkKQogewogICAgIGlmIChpbml0aWFsaXplci5jdXJyZW50VGltZSkK
ICAgICAgICAgbV9jdXJyZW50VGltZSA9IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKmluaXRp
YWxpemVyLmN1cnJlbnRUaW1lKTsKQEAgLTQ3LDEwICs0Nyw5IEBAIEFuaW1hdGlvblBsYXliYWNr
RXZlbnQ6OkFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29u
c3QgQW5pCiAgICAgICAgIG1fdGltZWxpbmVUaW1lID0gV1RGOjpudWxsb3B0OwogfQogCi1Bbmlt
YXRpb25QbGF5YmFja0V2ZW50OjpBbmltYXRpb25QbGF5YmFja0V2ZW50KGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUsIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lLCBPcHRpb25hbDxTZWNvbmRz
PiB0aW1lbGluZVRpbWUpCi0gICAgOiBFdmVudCh0eXBlLCBDYW5CdWJibGU6OlllcywgSXNDYW5j
ZWxhYmxlOjpObykKK0FuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFuaW1hdGlvblBsYXliYWNrRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUs
IE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRpb24p
CisgICAgOiBBbmltYXRpb25FdmVudEJhc2UodHlwZSwgYW5pbWF0aW9uLCB0aW1lbGluZVRpbWUp
CiAgICAgLCBtX2N1cnJlbnRUaW1lKGN1cnJlbnRUaW1lKQotICAgICwgbV90aW1lbGluZVRpbWUo
dGltZWxpbmVUaW1lKQogewogfQogCkBAIC02NSw5ICs2NCw5IEBAIE9wdGlvbmFsPGRvdWJsZT4g
QW5pbWF0aW9uUGxheWJhY2tFdmVudDo6YmluZGluZ3NDdXJyZW50VGltZSgpIGNvbnN0CiAKIE9w
dGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6YmluZGluZ3NUaW1lbGluZVRp
bWUoKSBjb25zdAogewotICAgIGlmICghbV90aW1lbGluZVRpbWUpCisgICAgaWYgKCF0aW1lbGlu
ZVRpbWUoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICByZXR1cm4gc2Vjb25k
c1RvV2ViQW5pbWF0aW9uc0FQSVRpbWUobV90aW1lbGluZVRpbWUudmFsdWUoKSk7CisgICAgcmV0
dXJuIHNlY29uZHNUb1dlYkFuaW1hdGlvbnNBUElUaW1lKHRpbWVsaW5lVGltZSgpLnZhbHVlKCkp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuaAppbmRleCBiMjI4NWIwMDg0MDE2ZGU4ZDUw
YzczM2UwNTY1MWY0YjVhYTFmYWNjLi4zNWZmOTdjNzQzZWE0NDg4NTg0MmVkZGE4NDg5ZTRlNGZl
ZmY3YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxh
eWJhY2tFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25QbGF5
YmFja0V2ZW50LmgKQEAgLTI1LDE4ICsyNSwxOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIkFuaW1hdGlvbkV2ZW50QmFzZS5oIgogI2luY2x1ZGUgIkFuaW1hdGlvblBsYXliYWNrRXZl
bnRJbml0LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvTWFya2FibGUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBbmltYXRpb25QbGF5YmFja0V2ZW50IGZp
bmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIEFuaW1hdGlvblBsYXliYWNrRXZlbnQgZmluYWwg
OiBwdWJsaWMgQW5pbWF0aW9uRXZlbnRCYXNlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KEFuaW1hdGlvblBsYXliYWNrRXZlbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QW5pbWF0
aW9uUGxheWJhY2tFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIE9wdGlvbmFs
PFNlY29uZHM+IGN1cnJlbnRUaW1lLCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUpCisg
ICAgc3RhdGljIFJlZjxBbmltYXRpb25QbGF5YmFja0V2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUsIE9wdGlvbmFsPFNlY29u
ZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRpb24pCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRpb25QbGF5YmFja0V2ZW50KHR5cGUsIGN1cnJl
bnRUaW1lLCB0aW1lbGluZVRpbWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5p
bWF0aW9uUGxheWJhY2tFdmVudCh0eXBlLCBjdXJyZW50VGltZSwgdGltZWxpbmVUaW1lLCBhbmlt
YXRpb24pKTsKICAgICB9CiAKICAgICBzdGF0aWMgUmVmPEFuaW1hdGlvblBsYXliYWNrRXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBBbmltYXRpb25QbGF5YmFja0V2
ZW50SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5v
KQpAQCAtNDYsMTkgKzQ2LDIxIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkFuaW1hdGlvblBs
YXliYWNrRXZlbnQoKTsKIAorICAgIGJvb2wgaXNBbmltYXRpb25QbGF5YmFja0V2ZW50KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgT3B0aW9uYWw8ZG91YmxlPiBiaW5kaW5n
c0N1cnJlbnRUaW1lKCkgY29uc3Q7CiAgICAgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUo
KSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRUaW1lOyB9CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBi
aW5kaW5nc1RpbWVsaW5lVGltZSgpIGNvbnN0OwotICAgIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVs
aW5lVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZWxpbmVUaW1lOyB9CiAKICAgICBFdmVudElu
dGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFuaW1hdGlv
blBsYXliYWNrRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAKIHByaXZhdGU6Ci0gICAgQW5pbWF0aW9u
UGxheWJhY2tFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgT3B0aW9uYWw8U2Vjb25kcz4sIE9wdGlv
bmFsPFNlY29uZHM+KTsKKyAgICBBbmltYXRpb25QbGF5YmFja0V2ZW50KGNvbnN0IEF0b21TdHJp
bmcmLCBPcHRpb25hbDxTZWNvbmRzPiwgT3B0aW9uYWw8U2Vjb25kcz4sIFdlYkFuaW1hdGlvbiop
OwogICAgIEFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEFu
aW1hdGlvblBsYXliYWNrRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIAogICAgIE1hcmthYmxlPFNl
Y29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBtX2N1cnJlbnRUaW1lOwotICAgIE1hcmth
YmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBtX3RpbWVsaW5lVGltZTsKIH07
CiAKIH0KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklNQVRJT05fRVZFTlRfQkFTRShBbmlt
YXRpb25QbGF5YmFja0V2ZW50LCBpc0FuaW1hdGlvblBsYXliYWNrRXZlbnQoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uY3BwCmluZGV4IGJi
ZTRjMzcwNTc1ZjI5ZWNkZDIzMWE2NTY3YmIwNWQwNmM3YTU0OTcuLjdmNWQ2NDFjMzc1ZGMxZDhk
NmU0NGYwYjQ1Njg5ZTViODZhZmY3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmNwcApAQCAtMzUxLDEwICszNTEsMTcgQEAgdm9pZCBE
ZWNsYXJhdGl2ZUFuaW1hdGlvbjo6ZW5xdWV1ZURPTUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2
ZW50VHlwZSwgU2Vjb25kcwogewogICAgIEFTU0VSVChtX293bmluZ0VsZW1lbnQpOwogICAgIGF1
dG8gdGltZSA9IHNlY29uZHNUb1dlYkFuaW1hdGlvbnNBUElUaW1lKGVsYXBzZWRUaW1lKSAvIDEw
MDA7Ci0gICAgaWYgKGlzPENTU0FuaW1hdGlvbj4odGhpcykpCi0gICAgICAgIG1fZXZlbnRRdWV1
ZS0+ZW5xdWV1ZUV2ZW50KEFuaW1hdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBkb3duY2Fz
dDxDU1NBbmltYXRpb24+KHRoaXMpLT5hbmltYXRpb25OYW1lKCksIHRpbWUsIFBzZXVkb0VsZW1l
bnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKG1fb3duaW5nRWxlbWVudC0+cHNldWRvSWQo
KSkpKTsKLSAgICBlbHNlIGlmIChpczxDU1NUcmFuc2l0aW9uPih0aGlzKSkKLSAgICAgICAgbV9l
dmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnRUeXBl
LCBkb3duY2FzdDxDU1NUcmFuc2l0aW9uPih0aGlzKS0+dHJhbnNpdGlvblByb3BlcnR5KCksIHRp
bWUsIFBzZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKG1fb3duaW5nRWxl
bWVudC0+cHNldWRvSWQoKSkpKTsKKyAgICBjb25zdCBhdXRvJiBwc2V1ZG9JZCA9IFBzZXVkb0Vs
ZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKG1fb3duaW5nRWxlbWVudC0+cHNldWRv
SWQoKSk7CisgICAgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lID0gdGltZWxpbmUoKSA/
IHRpbWVsaW5lKCktPmN1cnJlbnRUaW1lKCkgOiBXVEY6Om51bGxvcHQ7CisgICAgaWYgKGlzPENT
U0FuaW1hdGlvbj4odGhpcykpIHsKKyAgICAgICAgYXV0byBldmVudCA9IEFuaW1hdGlvbkV2ZW50
OjpjcmVhdGUoZXZlbnRUeXBlLCBkb3duY2FzdDxDU1NBbmltYXRpb24+KHRoaXMpLT5hbmltYXRp
b25OYW1lKCksIHRpbWUsIHBzZXVkb0lkLCB0aW1lbGluZVRpbWUsIHRoaXMpOworICAgICAgICBl
dmVudC0+c2V0VGFyZ2V0KG1fb3duaW5nRWxlbWVudCk7CisgICAgICAgIG1fZXZlbnRRdWV1ZS0+
ZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQpKTsKKyAgICB9IGVsc2UgaWYgKGlzPENTU1RyYW5z
aXRpb24+KHRoaXMpKSB7CisgICAgICAgIGF1dG8gZXZlbnQgPSBUcmFuc2l0aW9uRXZlbnQ6OmNy
ZWF0ZShldmVudFR5cGUsIGRvd25jYXN0PENTU1RyYW5zaXRpb24+KHRoaXMpLT50cmFuc2l0aW9u
UHJvcGVydHkoKSwgdGltZSwgcHNldWRvSWQsIHRpbWVsaW5lVGltZSwgdGhpcyk7CisgICAgICAg
IGV2ZW50LT5zZXRUYXJnZXQobV9vd25pbmdFbGVtZW50KTsKKyAgICAgICAgbV9ldmVudFF1ZXVl
LT5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOworICAgIH0KIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1h
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAppbmRl
eCBkNDIxMWNjNWVjNTRmNjA1ODZlZDE0NDc3NDRhY2U5ODQwMWI4NzM1Li5kMDg5NmZiN2NjYjIw
YWRhZTQyYzUwZjhlZDk2NTc3MmE4MDJkZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
V2ViQW5pbWF0aW9uLmNwcApAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjp3
aWxsQ2hhbmdlUmVuZGVyZXIoKQogCiB2b2lkIFdlYkFuaW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlv
blBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vjb25kcz4g
Y3VycmVudFRpbWUsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSkKIHsKLSAgICBhdXRv
IGV2ZW50ID0gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6Y3JlYXRlKHR5cGUsIGN1cnJlbnRUaW1l
LCB0aW1lbGluZVRpbWUpOworICAgIGF1dG8gZXZlbnQgPSBBbmltYXRpb25QbGF5YmFja0V2ZW50
OjpjcmVhdGUodHlwZSwgY3VycmVudFRpbWUsIHRpbWVsaW5lVGltZSwgdGhpcyk7CiAgICAgZXZl
bnQtPnNldFRhcmdldCh0aGlzKTsKIAogICAgIGlmIChpczxEb2N1bWVudFRpbWVsaW5lPihtX3Rp
bWVsaW5lKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BbmltYXRpb25FdmVudC5jcHAKaW5kZXggZGM4OTg2
NGRkYTIwMjM0MDVhYTYxZTllY2NjYjgwNDE3ZjRjNzExNi4uOGZiMTlkNTkwNzk1MTFmY2QzMDE2
YTgzZDUyOWY2OTQyNjdjZDYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1h
dGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQW5pbWF0aW9uRXZlbnQuY3Bw
CkBAIC0zMywxNSArMzMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKEFuaW1hdGlvbkV2ZW50KTsKIAogQW5pbWF0aW9uRXZlbnQ6OkFuaW1hdGlv
bkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJ
c1RydXN0ZWQgaXNUcnVzdGVkKQotICAgIDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1
c3RlZCkKKyAgICA6IEFuaW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVz
dGVkKQogICAgICwgbV9hbmltYXRpb25OYW1lKGluaXRpYWxpemVyLmFuaW1hdGlvbk5hbWUpCiAg
ICAgLCBtX2VsYXBzZWRUaW1lKGluaXRpYWxpemVyLmVsYXBzZWRUaW1lKQogICAgICwgbV9wc2V1
ZG9FbGVtZW50KGluaXRpYWxpemVyLnBzZXVkb0VsZW1lbnQpCiB7CiB9CiAKLUFuaW1hdGlvbkV2
ZW50OjpBbmltYXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9F
bGVtZW50KQotICAgIDogRXZlbnQodHlwZSwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6
Tm8pCitBbmltYXRpb25FdmVudDo6QW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0
IFN0cmluZyYgcHNldWRvRWxlbWVudCwgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lLCBX
ZWJBbmltYXRpb24qIGFuaW1hdGlvbikKKyAgICA6IEFuaW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBh
bmltYXRpb24sIHRpbWVsaW5lVGltZSkKICAgICAsIG1fYW5pbWF0aW9uTmFtZShhbmltYXRpb25O
YW1lKQogICAgICwgbV9lbGFwc2VkVGltZShlbGFwc2VkVGltZSkKICAgICAsIG1fcHNldWRvRWxl
bWVudChwc2V1ZG9FbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1h
dGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQW5pbWF0aW9uRXZlbnQuaAppbmRleCAw
MWVhZTM3MzFkY2NjY2U0ZGY0NWVmMmU2M2Y2ZWEzMTBkMjQ2NDVmLi43OTU1ZDcxMWNhYjdmN2I5
ZGRiZjZhMGFjZDkwZjYwYmMwMTMzZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
QW5pbWF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQW5pbWF0aW9uRXZlbnQu
aApAQCAtMjUsMTYgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlICJBbmltYXRpb25FdmVudEJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBBbmltYXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBB
bmltYXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBBbmltYXRpb25FdmVudEJhc2UgewogICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoQW5pbWF0aW9uRXZlbnQpOwogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8QW5pbWF0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5n
JiBwc2V1ZG9FbGVtZW50KQorICAgIHN0YXRpYyBSZWY8QW5pbWF0aW9uRXZlbnQ+IGNyZWF0ZShj
b25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJs
ZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50LCBPcHRpb25hbDxTZWNv
bmRzPiB0aW1lbGluZVRpbWUsIFdlYkFuaW1hdGlvbiogYW5pbWF0aW9uKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5pbWF0aW9uRXZlbnQodHlwZSwgYW5pbWF0aW9uTmFt
ZSwgZWxhcHNlZFRpbWUsIHBzZXVkb0VsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQW5pbWF0aW9uRXZlbnQodHlwZSwgYW5pbWF0aW9uTmFtZSwgZWxhcHNlZFRpbWUsIHBz
ZXVkb0VsZW1lbnQsIHRpbWVsaW5lVGltZSwgYW5pbWF0aW9uKSk7CiAgICAgfQogCiAgICAgc3Ry
dWN0IEluaXQgOiBFdmVudEluaXQgewpAQCAtNTAsNiArNTAsOCBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIH5BbmltYXRpb25FdmVudCgpOwogCisgICAgYm9vbCBpc0FuaW1hdGlvbkV2ZW50KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgY29uc3QgU3RyaW5nJiBhbmltYXRp
b25OYW1lKCkgY29uc3Q7CiAgICAgZG91YmxlIGVsYXBzZWRUaW1lKCkgY29uc3Q7CiAgICAgY29u
c3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KCkgY29uc3Q7CkBAIC01Nyw3ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwog
CiBwcml2YXRlOgotICAgIEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJp
bmcmIHBzZXVkb0VsZW1lbnQpOworICAgIEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBj
b25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGlt
ZSwgV2ViQW5pbWF0aW9uKik7CiAgICAgQW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYs
IGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOwogCiAgICAgU3RyaW5nIG1fYW5pbWF0aW9uTmFtZTsK
QEAgLTY2LDMgKzY4LDUgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklNQVRJT05fRVZFTlRfQkFTRShBbmltYXRpb25F
dmVudCwgaXNBbmltYXRpb25FdmVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyYW5zaXRpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50
LmNwcAppbmRleCA2OTYxZWYzMmQxM2YzNzE3MzRiMTBmM2ViY2E0MzVhMGQ1YjM2M2YzLi4zZDU5
MjY1NzU3NzFlMzgzOGEyODM4ZGE0N2ZmYTllMjIwNWRkYWZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJhbnNpdGlvbkV2ZW50LmNwcApAQCAtMzMsOCArMzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUcmFuc2l0aW9uRXZlbnQpOwogCi1UcmFu
c2l0aW9uRXZlbnQ6OlRyYW5zaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcm
IHBzZXVkb0VsZW1lbnQpCi0gICAgOiBFdmVudCh0eXBlLCBDYW5CdWJibGU6OlllcywgSXNDYW5j
ZWxhYmxlOjpZZXMpCitUcmFuc2l0aW9uRXZlbnQ6OlRyYW5zaXRpb25FdmVudChjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRU
aW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVs
aW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRpb24pCisgICAgOiBBbmltYXRpb25FdmVudEJh
c2UodHlwZSwgYW5pbWF0aW9uLCB0aW1lbGluZVRpbWUpCiAgICAgLCBtX3Byb3BlcnR5TmFtZShw
cm9wZXJ0eU5hbWUpCiAgICAgLCBtX2VsYXBzZWRUaW1lKGVsYXBzZWRUaW1lKQogICAgICwgbV9w
c2V1ZG9FbGVtZW50KHBzZXVkb0VsZW1lbnQpCkBAIC00Miw3ICs0Miw3IEBAIFRyYW5zaXRpb25F
dmVudDo6VHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlOCiB9CiAKIFRyYW5zaXRpb25FdmVudDo6VHJhbnNpdGlvbkV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNU
cnVzdGVkKQotICAgIDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICA6
IEFuaW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQogICAgICwg
bV9wcm9wZXJ0eU5hbWUoaW5pdGlhbGl6ZXIucHJvcGVydHlOYW1lKQogICAgICwgbV9lbGFwc2Vk
VGltZShpbml0aWFsaXplci5lbGFwc2VkVGltZSkKICAgICAsIG1fcHNldWRvRWxlbWVudChpbml0
aWFsaXplci5wc2V1ZG9FbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
YW5zaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5oCmlu
ZGV4IDQ5NGY5YTRlZWM2Yzg4NzdjOWY3YjlhZTQ2NmQ0YTM5OThjYjIzMDEuLjIzMTM2ZDczZjA3
YmJkOWJjMTRhY2I4MjEzNDc3N2IxMjA4ZWIxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmFuc2l0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlv
bkV2ZW50LmgKQEAgLTI2LDE2ICsyNiwxNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IkV2ZW50LmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uRXZlbnRCYXNlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgVHJhbnNpdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsK
K2NsYXNzIFRyYW5zaXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBBbmltYXRpb25FdmVudEJhc2Ug
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoVHJhbnNpdGlvbkV2ZW50KTsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFRyYW5zaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNv
bnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCkKKyAgICBzdGF0aWMgUmVmPFRyYW5zaXRpb25FdmVu
dD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCwgT3B0
aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lLCBXZWJBbmltYXRpb24qIGFuaW1hdGlvbikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRyYW5zaXRpb25FdmVudCh0eXBlLCBw
cm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lLCBwc2V1ZG9FbGVtZW50KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFRyYW5zaXRpb25FdmVudCh0eXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBz
ZWRUaW1lLCBwc2V1ZG9FbGVtZW50LCB0aW1lbGluZVRpbWUsIGFuaW1hdGlvbikpOwogICAgIH0K
IAogICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKQEAgLTUxLDYgKzUxLDggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB+VHJhbnNpdGlvbkV2ZW50KCk7CiAKKyAgICBib29sIGlzVHJhbnNp
dGlvbkV2ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUoKSBjb25zdDsKICAgICBkb3VibGUgZWxhcHNlZFRpbWUoKSBjb25z
dDsKICAgICBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQoKSBjb25zdDsKQEAgLTU4LDcgKzYw
LDcgQEAgcHVibGljOgogICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgVHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUs
IGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCk7CisgICAgVHJhbnNpdGlvbkV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxh
cHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCwgT3B0aW9uYWw8U2Vjb25kcz4g
dGltZWxpbmVUaW1lLCBXZWJBbmltYXRpb24qKTsKICAgICBUcmFuc2l0aW9uRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCk7CiAK
ICAgICBTdHJpbmcgbV9wcm9wZXJ0eU5hbWU7CkBAIC02NywzICs2OSw1IEBAIHByaXZhdGU6CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQU5J
TUFUSU9OX0VWRU5UX0JBU0UoVHJhbnNpdGlvbkV2ZW50LCBpc1RyYW5zaXRpb25FdmVudCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25D
b250cm9sbGVyLmNwcAppbmRleCBiMTQ1MzYwMDU0N2ZhMDZhMzdlOTc4ZWQzMjdhMzg3ZmYxNTk1
MWYzLi4xMWRiMDYwMDVjMzA5NjUxYmMwZDdhNWM3Yzk5MzdiN2FjZWQyMDQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9s
bGVyLmNwcApAQCAtMjI1LDkgKzIyNSw5IEBAIHZvaWQgQ1NTQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSgpCiAgICAgZm9yIChhdXRvJiBldmVudCA6
IGV2ZW50c1RvRGlzcGF0Y2gpIHsKICAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9IGV2ZW50LmVs
ZW1lbnQ7CiAgICAgICAgIGlmIChldmVudC5ldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRyYW5z
aXRpb25lbmRFdmVudCkKLSAgICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChUcmFuc2l0
aW9uRXZlbnQ6OmNyZWF0ZShldmVudC5ldmVudFR5cGUsIGV2ZW50Lm5hbWUsIGV2ZW50LmVsYXBz
ZWRUaW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFtZUZvckV2ZW50cyhlbGVtZW50
LnBzZXVkb0lkKCkpKSk7CisgICAgICAgICAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQoVHJhbnNp
dGlvbkV2ZW50OjpjcmVhdGUoZXZlbnQuZXZlbnRUeXBlLCBldmVudC5uYW1lLCBldmVudC5lbGFw
c2VkVGltZSwgUHNldWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVudHMoZWxlbWVu
dC5wc2V1ZG9JZCgpKSwgV1RGOjpudWxsb3B0LCBudWxscHRyKSk7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChBbmltYXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQuZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1l
bnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVsZW1lbnQucHNldWRvSWQoKSkpKTsKKyAg
ICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChBbmltYXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQuZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1l
bnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVsZW1lbnQucHNldWRvSWQoKSksIFdURjo6
bnVsbG9wdCwgbnVsbHB0cikpOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgY2hhbmdlIDogbV9l
bGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390748</attachid>
            <date>2020-02-14 03:27:13 -0800</date>
            <delta_ts>2020-02-14 03:38:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207629-20200214122712.patch</filename>
            <type>text/plain</type>
            <size>32713</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ1YzY3MDQ3YjY0NGM0
YTM3ZDc0YjZjODg4M2M0ZDk4NTA5YWQzMi4uOTkxMDJkOTI3OTdiMDQ4Yzg5MDY3MDA5MmNmNGUy
YjkyY2QxZjIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTAyLTE0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWIgQW5pbWF0aW9u
c10gTWFrZSBhbGwgYW5pbWF0aW9uIGV2ZW50IHR5cGVzIGluaGVyaXQgZnJvbSB0aGUgc2FtZSBi
YXNlIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDc2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgd2UgZGlzcGF0Y2ggZXZlbnRzIENTUyBUcmFuc2l0aW9ucyBhbmQgQ1NTIEFu
aW1hdGlvbnMgZXZlbnRzIHVzaW5nIGEgZGVkaWNhdGVkIGV2ZW50IHF1ZXVlIG9uIERlY2xhcmF0
aXZlQW5pbWF0aW9uLCB3aGlsZSB0aGUgZXZlbnRzCisgICAgICAgIGFkZGVkIGJ5IHRoZSBXZWIg
QW5pbWF0aW9ucyBzcGVjaWZpY2F0aW9uIChvZiB0eXBlIEFuaW1hdGlvblBsYXliYWNrRXZlbnQp
IGFyZSBkaXNwYXRjaGVkIHVzaW5nIGEgc2hhcmVkIHF1ZXVlIG9uIHRoZSBEb2N1bWVudFRpbWVs
aW5lIHRoYXQgaXMKKyAgICAgICAgcHJvY2Vzc2VkIGR1cmluZyB0aGUgInVwZGF0ZSBhbmltYXRp
b25zIGFuZCBzZW5kIGV2ZW50cyBwcm9jZWR1cmUiLiBUaGUgV2ViIEFuaW1hdGlvbnMgc3BlY2lm
aWNhdGlvbiBkaWN0YXRlcyB0aGF0IGFsbCBldmVudHMgc2hvdWxkIGJlIGRpc3BhdGNoZWQKKyAg
ICAgICAgZHVyaW5nIHRoYXQgcHJvY2VkdXJlLCB3aGljaCBpbmNsdWRlcyBzb3J0aW5nIG9mIHN1
Y2ggZXZlbnRzIGJhc2VkIG9uIHRoZWlyIHRpbWVsaW5lIHRpbWUgYW5kIGFzc29jaWF0ZWQgYW5p
bWF0aW9uIHJlbGF0aXZlIGNvbXBvc2l0ZSBvcmRlci4KKworICAgICAgICBJbiB0aGlzIHBhdGNo
LCB3ZSBwcmVwYXJlIHRoZSB3b3JrIHRvd2FyZHMgc3BlYyBjb21wbGlhbmNlIGZvciBhbmltYXRp
b24gZXZlbnRzIGRpc3BhdGNoIGJ5IG1ha2luZyBhbGwgZXZlbnQgdHlwZXMgKEFuaW1hdGlvblBs
YXliYWNrRXZlbnQsCisgICAgICAgIFRyYW5zaXRpb25FdmVudCBhbmQgQW5pbWF0aW9uRXZlbnQp
IGluaGVyaXQgZnJvbSBhIHNpbmdsZSBBbmltYXRpb25FdmVudEJhc2UgaW50ZXJmYWNlLiBUaGlz
IHdpbGwgYWxsb3cgRG9jdW1lbnRUaW1lbGluZSB0byBlbnF1ZXVlLCBzb3J0IGFuZAorICAgICAg
ICBkaXNwYXRjaCBhbGwgc3VjaCBldmVudHMgd2l0aCBhIHNpbmdsZSBxdWV1ZSBpbiBhIGZ1dHVy
ZSBwYXRjaC4KKworICAgICAgICBEdWUgdG8gQ1NTQW5pbWF0aW9uQ29udHJvbGxlciwgd2UgbXVz
dCBtYWtlIHRoZSAidGltZWxpbmUgdGltZSIgYW5kICJhbmltYXRpb24iIHBhcmFtZXRlcnMgb3B0
aW9uYWwuIFdoZW4gd2UgZHJvcCBzdXBwb3J0IGZvciBDU1NBbmltYXRpb25Db250cm9sbGVyCisg
ICAgICAgIHdlJ2xsIGJlIGFibGUgdG8gZW5mb3JjZSBzdHJvbmdlciByZXF1aXJlbWVudHMgZm9y
IHRoZXNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0IHNpbmNlIHRoaXMgc2hvdWxkIG5vdCBpbnRy
b2R1Y2UgYW55IGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhbmlt
YXRpb24vQW5pbWF0aW9uRXZlbnRCYXNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpB
bmltYXRpb25FdmVudEJhc2U6OkFuaW1hdGlvbkV2ZW50QmFzZSk6CisgICAgICAgICogYW5pbWF0
aW9uL0FuaW1hdGlvbkV2ZW50QmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1h
dGlvbkV2ZW50QmFzZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50
QmFzZTo6aXNBbmltYXRpb25QbGF5YmFja0V2ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkV2ZW50QmFzZTo6aXNBbmltYXRpb25FdmVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpBbmltYXRpb25FdmVudEJhc2U6OmlzVHJhbnNpdGlvbkV2ZW50IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6dGltZWxpbmVUaW1lIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6YW5pbWF0aW9uIGNvbnN0KToK
KyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb25QbGF5YmFja0V2ZW50OjpBbmltYXRpb25QbGF5YmFja0V2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OmJpbmRpbmdzVGlt
ZWxpbmVUaW1lIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tF
dmVudC5oOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQW5pbWF0aW9uOjpjcmVhdGVFdmVudCk6CisgICAgICAgICogYW5pbWF0aW9u
L0NTU0FuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1RyYW5zaXRpb246OmNyZWF0ZUV2ZW50KToKKyAgICAgICAg
KiBhbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9EZWNsYXJh
dGl2ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWNsYXJhdGl2ZUFuaW1hdGlv
bjo6ZW5xdWV1ZURPTUV2ZW50KToKKyAgICAgICAgKiBhbmltYXRpb24vRGVjbGFyYXRpdmVBbmlt
YXRpb24uaDoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQpOgor
ICAgICAgICAqIGRvbS9BbmltYXRpb25FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmlt
YXRpb25FdmVudDo6QW5pbWF0aW9uRXZlbnQpOgorICAgICAgICAqIGRvbS9BbmltYXRpb25FdmVu
dC5oOgorICAgICAgICAqIGRvbS9UcmFuc2l0aW9uRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VHJhbnNpdGlvbkV2ZW50OjpUcmFuc2l0aW9uRXZlbnQpOgorICAgICAgICAqIGRvbS9UcmFu
c2l0aW9uRXZlbnQuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOgorCiAyMDIwLTAyLTEzICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVp
bGQgZml4IGZvciBXZWJDb3JlIHNoYXJlZCBsaWJyYXJ5IGJ1aWxkcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggMzk3NjEzNGRiOGUxZTZlM2ZjYTcwODlhNTFmMzBmNmZiOWNiYzEzMS4uMWEwNDkxNmFjYTgy
Njg5ZGFhYWU4ZTI0YmI3ZDVmYmQ0MDgxMTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTQ0Nyw3ICs0
NDcsNyBAQCBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAog
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCiAKIGFuaW1hdGlv
bi9BbmltYXRpb25FZmZlY3QuY3BwCi1hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RTdGFjay5jcHAK
K2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwCiBhbmltYXRpb24vQW5pbWF0aW9uUGxh
eWJhY2tFdmVudC5jcHAKIGFuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAKIGFuaW1hdGlv
bi9DU1NBbmltYXRpb24uY3BwCkBAIC00NTUsNiArNDU1LDcgQEAgYW5pbWF0aW9uL0NTU1RyYW5z
aXRpb24uY3BwCiBhbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uY3BwCiBhbmltYXRpb24v
RG9jdW1lbnRUaW1lbGluZS5jcHAKIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKK2FuaW1h
dGlvbi9LZXlmcmFtZUVmZmVjdFN0YWNrLmNwcAogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAK
IGFuaW1hdGlvbi9XZWJBbmltYXRpb25VdGlsaXRpZXMuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwOGQ1YTJkYTUxZWQ1
OTE3YjE2OGYxZTczMzg0ZDg5M2MzNjE2Yzk2Li4zZDAyMWNlYWRlOWM1YmZjMzhkZmRlMjUwMzM5
ZjUzY2FhNGFlNzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yMDgwLDYgKzIwODAsNyBAQAogCQk3MTE2RTJDRjFGRUQ3NjVC
MDBDMDZGREUgLyogSlNDb21wdXRlZEVmZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzExNkUyQ0UxRkVENzY1MjAwQzA2RkRFIC8qIEpT
Q29tcHV0ZWRFZmZlY3RUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3MTE3NDQ1OTE0QkMzNEVDMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJp
Y3NCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MTE3NDQ1NzE0QkMzNEUyMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmggKi87
IH07CiAJCTcxMThGRUQ1MTU2ODVDQzYwMDMwQjc5QSAvKiBKU1NWR1ZpZXdTcGVjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTE4RkVEMzE1Njg1Q0M2
MDAzMEI3OUEgLyogSlNTVkdWaWV3U3BlYy5oICovOyB9OworCQk3MTFBRDEyNjIzNkQ4NkU1MDA2
RkYzN0MgLyogQW5pbWF0aW9uRXZlbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MTFBRDEyMzIzNkQ4NkQzMDA2RkYzN0MgLyogQW5pbWF0aW9u
RXZlbnRCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNzEyMDczNDAyMTZERkIwMDAwQzc4MzI5IC8qIE9wdGlvbmFsRWZmZWN0VGltaW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTIwNzMzRDIx
NkRGQUYxMDBDNzgzMjkgLyogT3B0aW9uYWxFZmZlY3RUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MTIwNzM0MzIxNkRGQjQxMDBDNzgz
MjkgLyogSlNPcHRpb25hbEVmZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzEyMDczNDEyMTZERkIzMTAwQzc4MzI5IC8qIEpTT3B0aW9u
YWxFZmZlY3RUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3MTI0N0UzNzFGRUE1Rjg2MDA4QzA4Q0UgLyogQ29tcG9zaXRlT3BlcmF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTI0N0Uz
NTFGRUE1RjgxMDA4QzA4Q0UgLyogQ29tcG9zaXRlT3BlcmF0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkzNzksNiArOTM4MCw4IEBACiAJ
CTcxMTc0NDU3MTRCQzM0RTIwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMThGRUQyMTU2ODVDQzYwMDMwQjc5QSAvKiBK
U1NWR1ZpZXdTcGVjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
U1ZHVmlld1NwZWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTE4RkVEMzE1
Njg1Q0M2MDAzMEI3OUEgLyogSlNTVkdWaWV3U3BlYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1NWR1ZpZXdTcGVjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTcxMUFEMTIzMjM2RDg2RDMwMDZGRjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQW5pbWF0aW9uRXZlbnRCYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxMUFEMTI1MjM2RDg2RDQwMDZGRjM3QyAvKiBBbmltYXRp
b25FdmVudEJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQW5p
bWF0aW9uRXZlbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzExRkIw
NzUxREM3Njg4RjAwQzRDNzA4IC8qIHBsYWNhcmQtc3VwcG9ydC5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJwbGFjYXJkLXN1cHBvcnQuanMiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MTIwNzMzRDIxNkRGQUYxMDBDNzgzMjkgLyogT3B0aW9uYWxF
ZmZlY3RUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3B0aW9uYWxF
ZmZlY3RUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzEyMDczM0YyMTZE
RkFGMjAwQzc4MzI5IC8qIE9wdGlvbmFsRWZmZWN0VGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBPcHRpb25hbEVmZmVjdFRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMDkxNiw2ICsyMDkxOSw4IEBACiAJCQkJNzFFRkNFRDcyMDJCMzg4RDAwRDdDNDEx
IC8qIEFuaW1hdGlvbkVmZmVjdC5oICovLAogCQkJCTcxRUZDRUQ2MjAyQjM4OEMwMEQ3QzQxMSAv
KiBBbmltYXRpb25FZmZlY3QuaWRsICovLAogCQkJCTcxRTJDNDI0MjFDOTM1MUQwMDI0RjhDOCAv
KiBBbmltYXRpb25FZmZlY3RQaGFzZS5oICovLAorCQkJCTcxMUFEMTI1MjM2RDg2RDQwMDZGRjM3
QyAvKiBBbmltYXRpb25FdmVudEJhc2UuY3BwICovLAorCQkJCTcxMUFEMTIzMjM2RDg2RDMwMDZG
RjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2UuaCAqLywKIAkJCQk3MTRDN0M2MDFGREFEMjc5MDBG
MkJFRTEgLyogQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHAgKi8sCiAJCQkJNzE0QzdDNjUxRkRB
RDI3QjAwRjJCRUUxIC8qIEFuaW1hdGlvblBsYXliYWNrRXZlbnQuaCAqLywKIAkJCQk3MTRDN0M2
NDFGREFEMjdCMDBGMkJFRTEgLyogQW5pbWF0aW9uUGxheWJhY2tFdmVudC5pZGwgKi8sCkBAIC0y
ODk0MSw2ICsyODk0Niw3IEBACiAJCQkJNzFFRkNFREMyMDJCMzhBOTAwRDdDNDExIC8qIEFuaW1h
dGlvbkVmZmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFFMkM0MjYyMUM5MzUyODAwMjRGOEM4
IC8qIEFuaW1hdGlvbkVmZmVjdFBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTk4NDgwMTFB
MUQ4MTdCMDBBMTMzMTggLyogQW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTcx
MUFEMTI2MjM2RDg2RTUwMDZGRjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5RTkxMkFEMEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk3MTRDN0M2NjFGREFEMkExMDBGMkJFRTEgLyogQW5pbWF0aW9uUGxh
eWJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzE0QzdDNjcxRkRBRDJBOTAwRjJCRUUx
IC8qIEFuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkV2ZW50QmFzZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGRiZjRjNWY0ZTBhNGYyNjQ2MWQxM2UzNWVmMzU0YjZiYzM3NDlmYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uRXZlbnRCYXNlLmgiCisK
KyNpbmNsdWRlICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChBbmltYXRpb25FdmVudEJhc2UpOworCitBbmltYXRpb25FdmVudEJhc2U6OkFu
aW1hdGlvbkV2ZW50QmFzZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBXZWJBbmltYXRpb24qIGFu
aW1hdGlvbiwgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKQorICAgIDogRXZlbnQodHlw
ZSwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6Tm8pCisgICAgLCBtX2FuaW1hdGlvbihh
bmltYXRpb24pCisgICAgLCBtX3RpbWVsaW5lVGltZSh0aW1lbGluZVRpbWUpCit7Cit9CisKK0Fu
aW1hdGlvbkV2ZW50QmFzZTo6QW5pbWF0aW9uRXZlbnRCYXNlKGNvbnN0IEF0b21TdHJpbmcmIHR5
cGUsIGNvbnN0IEV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisg
ICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQoreworfQorCitBbmltYXRp
b25FdmVudEJhc2U6On5BbmltYXRpb25FdmVudEJhc2UoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Bbmlt
YXRpb25FdmVudEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVu
dEJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNzc4MTQ4YTdhZTdmYTQzYTY2OWM3OWRlNzQ5OGNjMTZmZWNh
NjU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlv
bkV2ZW50QmFzZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50LmgiCisj
aW5jbHVkZSA8d3RmL01hcmthYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
V2ViQW5pbWF0aW9uOworCitjbGFzcyBBbmltYXRpb25FdmVudEJhc2UgOiBwdWJsaWMgRXZlbnQg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQW5pbWF0aW9uRXZlbnRCYXNlKTsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPEFuaW1hdGlvbkV2ZW50QmFzZT4gY3JlYXRlKGNvbnN0IEF0b21T
dHJpbmcmIHR5cGUsIFdlYkFuaW1hdGlvbiogYW5pbWF0aW9uLCBPcHRpb25hbDxTZWNvbmRzPiB0
aW1lbGluZVRpbWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRp
b25FdmVudEJhc2UodHlwZSwgYW5pbWF0aW9uLCB0aW1lbGluZVRpbWUpKTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIH5BbmltYXRpb25FdmVudEJhc2UoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc0Fu
aW1hdGlvblBsYXliYWNrRXZlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBpc0FuaW1hdGlvbkV2ZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNUcmFuc2l0aW9uRXZlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
CisgICAgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKCkgY29uc3QgeyByZXR1cm4gbV90
aW1lbGluZVRpbWU7IH0KKyAgICBXZWJBbmltYXRpb24qIGFuaW1hdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fYW5pbWF0aW9uLmdldCgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBBbmltYXRpb25FdmVu
dEJhc2UoY29uc3QgQXRvbVN0cmluZyYsIFdlYkFuaW1hdGlvbiosIE9wdGlvbmFsPFNlY29uZHM+
KTsKKyAgICBBbmltYXRpb25FdmVudEJhc2UoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEV2ZW50
SW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8V2ViQW5pbWF0aW9uPiBtX2FuaW1hdGlv
bjsKKyAgICBNYXJrYWJsZTxTZWNvbmRzLCBTZWNvbmRzOjpNYXJrYWJsZVRyYWl0cz4gbV90aW1l
bGluZVRpbWU7Cit9OworCit9CisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklN
QVRJT05fRVZFTlRfQkFTRShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpUb1ZhbHVlVHlwZU5hbWUpIFwKK3N0YXRpYyBi
b29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpBbmltYXRpb25FdmVudEJhc2UmIHZhbHVlKSB7IHJl
dHVybiB2YWx1ZS5wcmVkaWNhdGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tF
dmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVu
dC5jcHAKaW5kZXggODQ3ZTU5NGM1NjJlMDg3MzQ0NDI2OTk1NGE2N2VhYjMzMzI3MDNlYi4uODI5
YTNiZGEzZDg4M2RmODU3NzEwNGZjMmU4NTkwZWE5MmNiMTE4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50LmNwcApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
QW5pbWF0aW9uUGxheWJhY2tFdmVudCk7CiAKIEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFuaW1h
dGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQW5pbWF0aW9u
UGxheWJhY2tFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQotICAg
IDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICA6IEFuaW1hdGlvbkV2
ZW50QmFzZSh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQogewogICAgIGlmIChpbml0aWFs
aXplci5jdXJyZW50VGltZSkKICAgICAgICAgbV9jdXJyZW50VGltZSA9IFNlY29uZHM6OmZyb21N
aWxsaXNlY29uZHMoKmluaXRpYWxpemVyLmN1cnJlbnRUaW1lKTsKQEAgLTQ3LDEwICs0Nyw5IEBA
IEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRv
bVN0cmluZyYgdHlwZSwgY29uc3QgQW5pCiAgICAgICAgIG1fdGltZWxpbmVUaW1lID0gV1RGOjpu
dWxsb3B0OwogfQogCi1BbmltYXRpb25QbGF5YmFja0V2ZW50OjpBbmltYXRpb25QbGF5YmFja0V2
ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1l
LCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUpCi0gICAgOiBFdmVudCh0eXBlLCBDYW5C
dWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpObykKK0FuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFu
aW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vj
b25kcz4gY3VycmVudFRpbWUsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5p
bWF0aW9uKiBhbmltYXRpb24pCisgICAgOiBBbmltYXRpb25FdmVudEJhc2UodHlwZSwgYW5pbWF0
aW9uLCB0aW1lbGluZVRpbWUpCiAgICAgLCBtX2N1cnJlbnRUaW1lKGN1cnJlbnRUaW1lKQotICAg
ICwgbV90aW1lbGluZVRpbWUodGltZWxpbmVUaW1lKQogewogfQogCkBAIC02NSw5ICs2NCw5IEBA
IE9wdGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6YmluZGluZ3NDdXJyZW50
VGltZSgpIGNvbnN0CiAKIE9wdGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6
YmluZGluZ3NUaW1lbGluZVRpbWUoKSBjb25zdAogewotICAgIGlmICghbV90aW1lbGluZVRpbWUp
CisgICAgaWYgKCF0aW1lbGluZVRpbWUoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
LSAgICByZXR1cm4gc2Vjb25kc1RvV2ViQW5pbWF0aW9uc0FQSVRpbWUobV90aW1lbGluZVRpbWUu
dmFsdWUoKSk7CisgICAgcmV0dXJuIHNlY29uZHNUb1dlYkFuaW1hdGlvbnNBUElUaW1lKHRpbWVs
aW5lVGltZSgpLnZhbHVlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuaAppbmRleCBi
MjI4NWIwMDg0MDE2ZGU4ZDUwYzczM2UwNTY1MWY0YjVhYTFmYWNjLi4zNWZmOTdjNzQzZWE0NDg4
NTg0MmVkZGE4NDg5ZTRlNGZlZmY3YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50LmgKQEAgLTI1LDE4ICsyNSwxOCBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgIkFuaW1hdGlvbkV2ZW50QmFzZS5oIgogI2luY2x1ZGUgIkFu
aW1hdGlvblBsYXliYWNrRXZlbnRJbml0LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRl
IDx3dGYvTWFya2FibGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBbmltYXRp
b25QbGF5YmFja0V2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIEFuaW1hdGlvblBs
YXliYWNrRXZlbnQgZmluYWwgOiBwdWJsaWMgQW5pbWF0aW9uRXZlbnRCYXNlIHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKEFuaW1hdGlvblBsYXliYWNrRXZlbnQpOwogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8QW5pbWF0aW9uUGxheWJhY2tFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUsIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lLCBPcHRpb25hbDxTZWNvbmRz
PiB0aW1lbGluZVRpbWUpCisgICAgc3RhdGljIFJlZjxBbmltYXRpb25QbGF5YmFja0V2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRp
bWUsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRp
b24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRpb25QbGF5YmFj
a0V2ZW50KHR5cGUsIGN1cnJlbnRUaW1lLCB0aW1lbGluZVRpbWUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQW5pbWF0aW9uUGxheWJhY2tFdmVudCh0eXBlLCBjdXJyZW50VGltZSwg
dGltZWxpbmVUaW1lLCBhbmltYXRpb24pKTsKICAgICB9CiAKICAgICBzdGF0aWMgUmVmPEFuaW1h
dGlvblBsYXliYWNrRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBB
bmltYXRpb25QbGF5YmFja0V2ZW50SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0
ZWQgPSBJc1RydXN0ZWQ6Ok5vKQpAQCAtNDYsMTkgKzQ2LDIxIEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgfkFuaW1hdGlvblBsYXliYWNrRXZlbnQoKTsKIAorICAgIGJvb2wgaXNBbmltYXRpb25Q
bGF5YmFja0V2ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgT3B0aW9u
YWw8ZG91YmxlPiBiaW5kaW5nc0N1cnJlbnRUaW1lKCkgY29uc3Q7CiAgICAgT3B0aW9uYWw8U2Vj
b25kcz4gY3VycmVudFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRUaW1lOyB9CiAgICAg
T3B0aW9uYWw8ZG91YmxlPiBiaW5kaW5nc1RpbWVsaW5lVGltZSgpIGNvbnN0OwotICAgIE9wdGlv
bmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZWxpbmVUaW1l
OyB9CiAKICAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIEFuaW1hdGlvblBsYXliYWNrRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAKIHByaXZh
dGU6Ci0gICAgQW5pbWF0aW9uUGxheWJhY2tFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgT3B0aW9u
YWw8U2Vjb25kcz4sIE9wdGlvbmFsPFNlY29uZHM+KTsKKyAgICBBbmltYXRpb25QbGF5YmFja0V2
ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBPcHRpb25hbDxTZWNvbmRzPiwgT3B0aW9uYWw8U2Vjb25k
cz4sIFdlYkFuaW1hdGlvbiopOwogICAgIEFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRv
bVN0cmluZyYsIGNvbnN0IEFuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsK
IAogICAgIE1hcmthYmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBtX2N1cnJl
bnRUaW1lOwotICAgIE1hcmthYmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBt
X3RpbWVsaW5lVGltZTsKIH07CiAKIH0KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklNQVRJ
T05fRVZFTlRfQkFTRShBbmltYXRpb25QbGF5YmFja0V2ZW50LCBpc0FuaW1hdGlvblBsYXliYWNr
RXZlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKaW5kZXgg
NThhZGEwM2Y4NGNmZmI1ZjlhYjQ5N2NiNjY5YzBlZTkyNjUwOTljMC4uZmVjZjAyYWMwZTM4ODky
Yzc0OGFmMTJiOWNiNjQxYTExYjljNTMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NT
U0FuaW1hdGlvbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDU1NBbmltYXRpb24u
aCIKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIkFuaW1hdGlvbkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCkBAIC0xMjcsNCArMTI4LDkgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gQ1NTQW5pbWF0aW9uOjpiaW5kaW5nc1BhdXNlKCkKICAgICByZXR1cm4gRGVj
bGFyYXRpdmVBbmltYXRpb246OmJpbmRpbmdzUGF1c2UoKTsKIH0KIAorUmVmPEFuaW1hdGlvbkV2
ZW50QmFzZT4gQ1NTQW5pbWF0aW9uOjpjcmVhdGVFdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVu
dFR5cGUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9JZCwgT3B0aW9u
YWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKQoreworICAgIHJldHVybiBBbmltYXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50VHlwZSwgbV9hbmltYXRpb25OYW1lLCBlbGFwc2VkVGltZSwgcHNldWRvSWQs
IHRpbWVsaW5lVGltZSwgdGhpcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uaAppbmRleCA4YTgwNmFhYzJhZTcwMTU4Njg3
NTAzNTQzYzViZGZmODdkZWQzZjhiLi4yMmU4ZDE1OTc1ZTk5YzIzODY0NmJmZmY3ZDcxYjhjYjdl
ZTA2YzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5oCkBAIC00OSw2
ICs0OSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgc3luY1Byb3BlcnRpZXNX
aXRoQmFja2luZ0FuaW1hdGlvbigpIGZpbmFsOworICAgIFJlZjxBbmltYXRpb25FdmVudEJhc2U+
IGNyZWF0ZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlIGVsYXBzZWRU
aW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0lkLCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRp
bWUpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIENTU0FuaW1hdGlvbihFbGVtZW50JiwgY29uc3Qg
QW5pbWF0aW9uJiwgY29uc3QgUmVuZGVyU3R5bGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9DU1NUcmFuc2l0aW9uLmNwcAppbmRleCA2YTY2Yjg3ODE0ODg4ZjQ1NDQ5MWQ3OTE3ODVkNjFi
MjdiNDk0ZTE2Li41ODU5YjJlMzRmODNiNTc1MzU0OTAyNmVjZTVjY2ZkMjBmOTNkM2Q0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCisjaW5jbHVkZSAiVHJhbnNpdGlv
bkV2ZW50LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtODUsNCArODYsOSBAQCB2b2lkIENTU1RyYW5zaXRpb246OnNldFRpbWlu
Z1Byb3BlcnRpZXMoU2Vjb25kcyBkZWxheSwgU2Vjb25kcyBkdXJhdGlvbikKICAgICB1bnN1c3Bl
bmRFZmZlY3RJbnZhbGlkYXRpb24oKTsKIH0KIAorUmVmPEFuaW1hdGlvbkV2ZW50QmFzZT4gQ1NT
VHJhbnNpdGlvbjo6Y3JlYXRlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBkb3Vi
bGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvSWQsIE9wdGlvbmFsPFNlY29uZHM+
IHRpbWVsaW5lVGltZSkKK3sKKyAgICByZXR1cm4gVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZl
bnRUeXBlLCBnZXRQcm9wZXJ0eU5hbWVTdHJpbmcobV9wcm9wZXJ0eSksIGVsYXBzZWRUaW1lLCBw
c2V1ZG9JZCwgdGltZWxpbmVUaW1lLCB0aGlzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmgKaW5kZXggNDIyNGFiNTc2
ODczYTQ0YjE4MThiODFmZGQzMTUwODk3ZGVkNWJmMS4uMjMzMTdlZGY2YTk0MmY3YjQ0OWIzODY4
MmJjNDBlNmRkMTQ3YWMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NT
U1RyYW5zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlv
bi5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQ1NTVHJhbnNpdGlv
bihFbGVtZW50JiwgQ1NTUHJvcGVydHlJRCwgTW9ub3RvbmljVGltZSBnZW5lcmF0aW9uVGltZSwg
Y29uc3QgQW5pbWF0aW9uJiwgY29uc3QgUmVuZGVyU3R5bGUmIG9sZFN0eWxlLCBjb25zdCBSZW5k
ZXJTdHlsZSYgdGFyZ2V0U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiByZXZlcnNpbmdBZGp1c3Rl
ZFN0YXJ0U3R5bGUsIGRvdWJsZSk7CiAgICAgdm9pZCBzZXRUaW1pbmdQcm9wZXJ0aWVzKFNlY29u
ZHMgZGVsYXksIFNlY29uZHMgZHVyYXRpb24pOworICAgIFJlZjxBbmltYXRpb25FdmVudEJhc2U+
IGNyZWF0ZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlIGVsYXBzZWRU
aW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0lkLCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRp
bWUpIGZpbmFsOwogCiAgICAgQ1NTUHJvcGVydHlJRCBtX3Byb3BlcnR5OwogICAgIE1vbm90b25p
Y1RpbWUgbV9nZW5lcmF0aW9uVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RGVjbGFyYXRpdmVBbmltYXRpb24uY3BwCmluZGV4IGJiZTRjMzcwNTc1ZjI5ZWNkZDIzMWE2NTY3
YmIwNWQwNmM3YTU0OTcuLjNkYTM0ZWY2MDk2NzNkNGI2NjhjMTg2MTNmMDhkNjAxOWI5NzgzM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9u
LmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkRlY2xhcmF0aXZlQW5pbWF0aW9uLmgi
CiAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKLSNpbmNsdWRlICJBbmltYXRpb25FdmVudC5oIgog
I2luY2x1ZGUgIkNTU0FuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkNTU1RyYW5zaXRpb24uaCIKICNp
bmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgiCkBAIC0zNSw3ICszNCw2IEBACiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCiAjaW5jbHVkZSAiUHNl
dWRvRWxlbWVudC5oIgotI2luY2x1ZGUgIlRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1MSwxMCAr
MzQ5LDExIEBAIHZvaWQgRGVjbGFyYXRpdmVBbmltYXRpb246OmVucXVldWVET01FdmVudChjb25z
dCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFNlY29uZHMKIHsKICAgICBBU1NFUlQobV9vd25pbmdF
bGVtZW50KTsKICAgICBhdXRvIHRpbWUgPSBzZWNvbmRzVG9XZWJBbmltYXRpb25zQVBJVGltZShl
bGFwc2VkVGltZSkgLyAxMDAwOwotICAgIGlmIChpczxDU1NBbmltYXRpb24+KHRoaXMpKQotICAg
ICAgICBtX2V2ZW50UXVldWUtPmVucXVldWVFdmVudChBbmltYXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50VHlwZSwgZG93bmNhc3Q8Q1NTQW5pbWF0aW9uPih0aGlzKS0+YW5pbWF0aW9uTmFtZSgpLCB0
aW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFtZUZvckV2ZW50cyhtX293bmluZ0Vs
ZW1lbnQtPnBzZXVkb0lkKCkpKSk7Ci0gICAgZWxzZSBpZiAoaXM8Q1NTVHJhbnNpdGlvbj4odGhp
cykpCi0gICAgICAgIG1fZXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KFRyYW5zaXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50VHlwZSwgZG93bmNhc3Q8Q1NTVHJhbnNpdGlvbj4odGhpcyktPnRyYW5zaXRp
b25Qcm9wZXJ0eSgpLCB0aW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFtZUZvckV2
ZW50cyhtX293bmluZ0VsZW1lbnQtPnBzZXVkb0lkKCkpKSk7CisgICAgY29uc3QgYXV0byYgcHNl
dWRvSWQgPSBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFtZUZvckV2ZW50cyhtX293bmlu
Z0VsZW1lbnQtPnBzZXVkb0lkKCkpOworICAgIGF1dG8gdGltZWxpbmVUaW1lID0gdGltZWxpbmUo
KSA/IHRpbWVsaW5lKCktPmN1cnJlbnRUaW1lKCkgOiBXVEY6Om51bGxvcHQ7CisgICAgYXV0byBl
dmVudCA9IGNyZWF0ZUV2ZW50KGV2ZW50VHlwZSwgdGltZSwgcHNldWRvSWQsIHRpbWVsaW5lVGlt
ZSk7CisgICAgZXZlbnQtPnNldFRhcmdldChtX293bmluZ0VsZW1lbnQpOworICAgIGVucXVldWVB
bmltYXRpb25FdmVudChXVEZNb3ZlKGV2ZW50KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1h
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgK
aW5kZXggMzYzZTk4Y2UzMTc2NmM5NWI2ZTkzM2VkZWM3ZjEyN2I3OTQ1OGM2MS4uNWNiYzZlODk5
MDEyMzcxMDA5MWEyNjU2YzhiNTJkMjEwYjFhOWMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgKQEAgLTc0LDYgKzc0LDcgQEAgcHJvdGVj
dGVkOgogCiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoY29uc3QgUmVuZGVyU3R5bGUqIG9s
ZFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpOwogICAgIHZpcnR1YWwgdm9pZCBz
eW5jUHJvcGVydGllc1dpdGhCYWNraW5nQW5pbWF0aW9uKCk7CisgICAgdmlydHVhbCBSZWY8QW5p
bWF0aW9uRXZlbnRCYXNlPiBjcmVhdGVFdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUs
IGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9JZCwgT3B0aW9uYWw8U2Vj
b25kcz4gdGltZWxpbmVUaW1lKSA9IDA7CiAgICAgdm9pZCBpbnZhbGlkYXRlRE9NRXZlbnRzKFNl
Y29uZHMgZWxhcHNlZFRpbWUgPSAwX3MpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vV2ViQW5pbWF0aW9uLmNwcAppbmRleCBkNDIxMWNjNWVjNTRmNjA1ODZlZDE0NDc3NDRh
Y2U5ODQwMWI4NzM1Li5kMDg5NmZiN2NjYjIwYWRhZTQyYzUwZjhlZDk2NTc3MmE4MDJkZjM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAtNjgzLDcgKzY4
Myw3IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjp3aWxsQ2hhbmdlUmVuZGVyZXIoKQogCiB2b2lkIFdl
YkFuaW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmlu
ZyYgdHlwZSwgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUsIE9wdGlvbmFsPFNlY29uZHM+
IHRpbWVsaW5lVGltZSkKIHsKLSAgICBhdXRvIGV2ZW50ID0gQW5pbWF0aW9uUGxheWJhY2tFdmVu
dDo6Y3JlYXRlKHR5cGUsIGN1cnJlbnRUaW1lLCB0aW1lbGluZVRpbWUpOworICAgIGF1dG8gZXZl
bnQgPSBBbmltYXRpb25QbGF5YmFja0V2ZW50OjpjcmVhdGUodHlwZSwgY3VycmVudFRpbWUsIHRp
bWVsaW5lVGltZSwgdGhpcyk7CiAgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKIAogICAgIGlm
IChpczxEb2N1bWVudFRpbWVsaW5lPihtX3RpbWVsaW5lKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Bbmlt
YXRpb25FdmVudC5jcHAKaW5kZXggZGM4OTg2NGRkYTIwMjM0MDVhYTYxZTllY2NjYjgwNDE3ZjRj
NzExNi4uOGZiMTlkNTkwNzk1MTFmY2QzMDE2YTgzZDUyOWY2OTQyNjdjZDYyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQW5pbWF0aW9uRXZlbnQuY3BwCkBAIC0zMywxNSArMzMsMTUgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEFuaW1hdGlvbkV2ZW50KTsK
IAogQW5pbWF0aW9uRXZlbnQ6OkFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUs
IGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQotICAgIDogRXZl
bnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICA6IEFuaW1hdGlvbkV2ZW50QmFz
ZSh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQogICAgICwgbV9hbmltYXRpb25OYW1lKGlu
aXRpYWxpemVyLmFuaW1hdGlvbk5hbWUpCiAgICAgLCBtX2VsYXBzZWRUaW1lKGluaXRpYWxpemVy
LmVsYXBzZWRUaW1lKQogICAgICwgbV9wc2V1ZG9FbGVtZW50KGluaXRpYWxpemVyLnBzZXVkb0Vs
ZW1lbnQpCiB7CiB9CiAKLUFuaW1hdGlvbkV2ZW50OjpBbmltYXRpb25FdmVudChjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2Vk
VGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KQotICAgIDogRXZlbnQodHlwZSwgQ2Fu
QnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6Tm8pCitBbmltYXRpb25FdmVudDo6QW5pbWF0aW9u
RXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1l
LCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCwgT3B0aW9u
YWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lLCBXZWJBbmltYXRpb24qIGFuaW1hdGlvbikKKyAgICA6
IEFuaW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBhbmltYXRpb24sIHRpbWVsaW5lVGltZSkKICAgICAs
IG1fYW5pbWF0aW9uTmFtZShhbmltYXRpb25OYW1lKQogICAgICwgbV9lbGFwc2VkVGltZShlbGFw
c2VkVGltZSkKICAgICAsIG1fcHNldWRvRWxlbWVudChwc2V1ZG9FbGVtZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQW5pbWF0aW9uRXZlbnQuaAppbmRleCAwMWVhZTM3MzFkY2NjY2U0ZGY0NWVmMmU2M2Y2ZWEz
MTBkMjQ2NDVmLi43OTU1ZDcxMWNhYjdmN2I5ZGRiZjZhMGFjZDkwZjYwYmMwMTMzZjljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQW5pbWF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQW5pbWF0aW9uRXZlbnQuaApAQCAtMjUsMTYgKzI1LDE2IEBACiAKICNwcmFn
bWEgb25jZQogCi0jaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJBbmltYXRpb25FdmVudEJh
c2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBbmltYXRpb25FdmVudCBmaW5h
bCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBBbmltYXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBB
bmltYXRpb25FdmVudEJhc2UgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQW5pbWF0aW9u
RXZlbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QW5pbWF0aW9uRXZlbnQ+IGNyZWF0ZShj
b25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJs
ZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KQorICAgIHN0YXRpYyBS
ZWY8QW5pbWF0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBw
c2V1ZG9FbGVtZW50LCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUsIFdlYkFuaW1hdGlv
biogYW5pbWF0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5pbWF0
aW9uRXZlbnQodHlwZSwgYW5pbWF0aW9uTmFtZSwgZWxhcHNlZFRpbWUsIHBzZXVkb0VsZW1lbnQp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5pbWF0aW9uRXZlbnQodHlwZSwgYW5p
bWF0aW9uTmFtZSwgZWxhcHNlZFRpbWUsIHBzZXVkb0VsZW1lbnQsIHRpbWVsaW5lVGltZSwgYW5p
bWF0aW9uKSk7CiAgICAgfQogCiAgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgewpAQCAtNTAs
NiArNTAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5BbmltYXRpb25FdmVudCgpOwogCisg
ICAgYm9vbCBpc0FuaW1hdGlvbkV2ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQor
CiAgICAgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lKCkgY29uc3Q7CiAgICAgZG91YmxlIGVs
YXBzZWRUaW1lKCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KCkgY29u
c3Q7CkBAIC01Nyw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBFdmVudEludGVyZmFjZSBldmVudElu
dGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIEFuaW1hdGlvbkV2ZW50
KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91
YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQpOworICAgIEFuaW1h
dGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9u
TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQsIE9w
dGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKik7CiAgICAgQW5pbWF0
aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOwogCiAg
ICAgU3RyaW5nIG1fYW5pbWF0aW9uTmFtZTsKQEAgLTY2LDMgKzY4LDUgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklN
QVRJT05fRVZFTlRfQkFTRShBbmltYXRpb25FdmVudCwgaXNBbmltYXRpb25FdmVudCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmNwcAppbmRleCA2OTYxZWYzMmQxM2YzNzE3MzRi
MTBmM2ViY2E0MzVhMGQ1YjM2M2YzLi4zZDU5MjY1NzU3NzFlMzgzOGEyODM4ZGE0N2ZmYTllMjIw
NWRkYWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmNwcApAQCAtMzMsOCAr
MzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChUcmFuc2l0aW9uRXZlbnQpOwogCi1UcmFuc2l0aW9uRXZlbnQ6OlRyYW5zaXRpb25FdmVudChj
b25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91Ymxl
IGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQpCi0gICAgOiBFdmVudCh0
eXBlLCBDYW5CdWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpZZXMpCitUcmFuc2l0aW9uRXZlbnQ6
OlRyYW5zaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHBy
b3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1l
bnQsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRp
b24pCisgICAgOiBBbmltYXRpb25FdmVudEJhc2UodHlwZSwgYW5pbWF0aW9uLCB0aW1lbGluZVRp
bWUpCiAgICAgLCBtX3Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpCiAgICAgLCBtX2VsYXBzZWRU
aW1lKGVsYXBzZWRUaW1lKQogICAgICwgbV9wc2V1ZG9FbGVtZW50KHBzZXVkb0VsZW1lbnQpCkBA
IC00Miw3ICs0Miw3IEBAIFRyYW5zaXRpb25FdmVudDo6VHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0
b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOCiB9CiAKIFRyYW5zaXRpb25F
dmVudDo6VHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQm
IGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQotICAgIDogRXZlbnQodHlwZSwgaW5p
dGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICA6IEFuaW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBpbml0
aWFsaXplciwgaXNUcnVzdGVkKQogICAgICwgbV9wcm9wZXJ0eU5hbWUoaW5pdGlhbGl6ZXIucHJv
cGVydHlOYW1lKQogICAgICwgbV9lbGFwc2VkVGltZShpbml0aWFsaXplci5lbGFwc2VkVGltZSkK
ICAgICAsIG1fcHNldWRvRWxlbWVudChpbml0aWFsaXplci5wc2V1ZG9FbGVtZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyYW5zaXRpb25FdmVudC5oCmluZGV4IDQ5NGY5YTRlZWM2Yzg4NzdjOWY3YjlhZTQ2
NmQ0YTM5OThjYjIzMDEuLjIzMTM2ZDczZjA3YmJkOWJjMTRhY2I4MjEzNDc3N2IxMjA4ZWIxMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmFuc2l0aW9uRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmgKQEAgLTI2LDE2ICsyNiwxNiBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQW5pbWF0aW9u
RXZlbnRCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVHJhbnNpdGlvbkV2
ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIFRyYW5zaXRpb25FdmVudCBmaW5hbCA6
IHB1YmxpYyBBbmltYXRpb25FdmVudEJhc2UgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQo
VHJhbnNpdGlvbkV2ZW50KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFRyYW5zaXRpb25FdmVu
dD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCkKKyAg
ICBzdGF0aWMgUmVmPFRyYW5zaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0
IFN0cmluZyYgcHNldWRvRWxlbWVudCwgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lLCBX
ZWJBbmltYXRpb24qIGFuaW1hdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFRyYW5zaXRpb25FdmVudCh0eXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lLCBwc2V1
ZG9FbGVtZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRyYW5zaXRpb25FdmVu
dCh0eXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lLCBwc2V1ZG9FbGVtZW50LCB0aW1lbGlu
ZVRpbWUsIGFuaW1hdGlvbikpOwogICAgIH0KIAogICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0
IHsKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+VHJhbnNpdGlvbkV2
ZW50KCk7CiAKKyAgICBib29sIGlzVHJhbnNpdGlvbkV2ZW50KCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQorCiAgICAgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUoKSBjb25zdDsKICAg
ICBkb3VibGUgZWxhcHNlZFRpbWUoKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcmIHBzZXVkb0Vs
ZW1lbnQoKSBjb25zdDsKQEAgLTU4LDcgKzYwLDcgQEAgcHVibGljOgogICAgIEV2ZW50SW50ZXJm
YWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgVHJh
bnNpdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVy
dHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCk7
CisgICAgVHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRv
RWxlbWVudCwgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lLCBXZWJBbmltYXRpb24qKTsK
ICAgICBUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYg
aW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCk7CiAKICAgICBTdHJpbmcgbV9wcm9wZXJ0eU5hbWU7CkBA
IC02NywzICs2OSw1IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQU5JTUFUSU9OX0VWRU5UX0JBU0UoVHJhbnNpdGlvbkV2
ZW50LCBpc1RyYW5zaXRpb25FdmVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCBiMTQ1MzYwMDU0
N2ZhMDZhMzdlOTc4ZWQzMjdhMzg3ZmYxNTk1MWYzLi4xMWRiMDYwMDVjMzA5NjUxYmMwZDdhNWM3
Yzk5MzdiN2FjZWQyMDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9DU1NBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMjI1LDkgKzIyNSw5IEBAIHZv
aWQgQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHls
ZSgpCiAgICAgZm9yIChhdXRvJiBldmVudCA6IGV2ZW50c1RvRGlzcGF0Y2gpIHsKICAgICAgICAg
RWxlbWVudCYgZWxlbWVudCA9IGV2ZW50LmVsZW1lbnQ7CiAgICAgICAgIGlmIChldmVudC5ldmVu
dFR5cGUgPT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCkKLSAgICAgICAgICAgIGVs
ZW1lbnQuZGlzcGF0Y2hFdmVudChUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudC5ldmVudFR5
cGUsIGV2ZW50Lm5hbWUsIGV2ZW50LmVsYXBzZWRUaW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9F
bGVtZW50TmFtZUZvckV2ZW50cyhlbGVtZW50LnBzZXVkb0lkKCkpKSk7CisgICAgICAgICAgICBl
bGVtZW50LmRpc3BhdGNoRXZlbnQoVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnQuZXZlbnRU
eXBlLCBldmVudC5uYW1lLCBldmVudC5lbGFwc2VkVGltZSwgUHNldWRvRWxlbWVudDo6cHNldWRv
RWxlbWVudE5hbWVGb3JFdmVudHMoZWxlbWVudC5wc2V1ZG9JZCgpKSwgV1RGOjpudWxsb3B0LCBu
dWxscHRyKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVu
dChBbmltYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZl
bnQuZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRz
KGVsZW1lbnQucHNldWRvSWQoKSkpKTsKKyAgICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVu
dChBbmltYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZl
bnQuZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRz
KGVsZW1lbnQucHNldWRvSWQoKSksIFdURjo6bnVsbG9wdCwgbnVsbHB0cikpOwogICAgIH0KIAog
ICAgIGZvciAoYXV0byYgY2hhbmdlIDogbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390753</attachid>
            <date>2020-02-14 03:38:48 -0800</date>
            <delta_ts>2020-02-14 04:10:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207629-20200214123846.patch</filename>
            <type>text/plain</type>
            <size>32837</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ1YzY3MDQ3YjY0NGM0
YTM3ZDc0YjZjODg4M2M0ZDk4NTA5YWQzMi4uOTkxMDJkOTI3OTdiMDQ4Yzg5MDY3MDA5MmNmNGUy
YjkyY2QxZjIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTAyLTE0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWIgQW5pbWF0aW9u
c10gTWFrZSBhbGwgYW5pbWF0aW9uIGV2ZW50IHR5cGVzIGluaGVyaXQgZnJvbSB0aGUgc2FtZSBi
YXNlIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDc2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgd2UgZGlzcGF0Y2ggZXZlbnRzIENTUyBUcmFuc2l0aW9ucyBhbmQgQ1NTIEFu
aW1hdGlvbnMgZXZlbnRzIHVzaW5nIGEgZGVkaWNhdGVkIGV2ZW50IHF1ZXVlIG9uIERlY2xhcmF0
aXZlQW5pbWF0aW9uLCB3aGlsZSB0aGUgZXZlbnRzCisgICAgICAgIGFkZGVkIGJ5IHRoZSBXZWIg
QW5pbWF0aW9ucyBzcGVjaWZpY2F0aW9uIChvZiB0eXBlIEFuaW1hdGlvblBsYXliYWNrRXZlbnQp
IGFyZSBkaXNwYXRjaGVkIHVzaW5nIGEgc2hhcmVkIHF1ZXVlIG9uIHRoZSBEb2N1bWVudFRpbWVs
aW5lIHRoYXQgaXMKKyAgICAgICAgcHJvY2Vzc2VkIGR1cmluZyB0aGUgInVwZGF0ZSBhbmltYXRp
b25zIGFuZCBzZW5kIGV2ZW50cyBwcm9jZWR1cmUiLiBUaGUgV2ViIEFuaW1hdGlvbnMgc3BlY2lm
aWNhdGlvbiBkaWN0YXRlcyB0aGF0IGFsbCBldmVudHMgc2hvdWxkIGJlIGRpc3BhdGNoZWQKKyAg
ICAgICAgZHVyaW5nIHRoYXQgcHJvY2VkdXJlLCB3aGljaCBpbmNsdWRlcyBzb3J0aW5nIG9mIHN1
Y2ggZXZlbnRzIGJhc2VkIG9uIHRoZWlyIHRpbWVsaW5lIHRpbWUgYW5kIGFzc29jaWF0ZWQgYW5p
bWF0aW9uIHJlbGF0aXZlIGNvbXBvc2l0ZSBvcmRlci4KKworICAgICAgICBJbiB0aGlzIHBhdGNo
LCB3ZSBwcmVwYXJlIHRoZSB3b3JrIHRvd2FyZHMgc3BlYyBjb21wbGlhbmNlIGZvciBhbmltYXRp
b24gZXZlbnRzIGRpc3BhdGNoIGJ5IG1ha2luZyBhbGwgZXZlbnQgdHlwZXMgKEFuaW1hdGlvblBs
YXliYWNrRXZlbnQsCisgICAgICAgIFRyYW5zaXRpb25FdmVudCBhbmQgQW5pbWF0aW9uRXZlbnQp
IGluaGVyaXQgZnJvbSBhIHNpbmdsZSBBbmltYXRpb25FdmVudEJhc2UgaW50ZXJmYWNlLiBUaGlz
IHdpbGwgYWxsb3cgRG9jdW1lbnRUaW1lbGluZSB0byBlbnF1ZXVlLCBzb3J0IGFuZAorICAgICAg
ICBkaXNwYXRjaCBhbGwgc3VjaCBldmVudHMgd2l0aCBhIHNpbmdsZSBxdWV1ZSBpbiBhIGZ1dHVy
ZSBwYXRjaC4KKworICAgICAgICBEdWUgdG8gQ1NTQW5pbWF0aW9uQ29udHJvbGxlciwgd2UgbXVz
dCBtYWtlIHRoZSAidGltZWxpbmUgdGltZSIgYW5kICJhbmltYXRpb24iIHBhcmFtZXRlcnMgb3B0
aW9uYWwuIFdoZW4gd2UgZHJvcCBzdXBwb3J0IGZvciBDU1NBbmltYXRpb25Db250cm9sbGVyCisg
ICAgICAgIHdlJ2xsIGJlIGFibGUgdG8gZW5mb3JjZSBzdHJvbmdlciByZXF1aXJlbWVudHMgZm9y
IHRoZXNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0IHNpbmNlIHRoaXMgc2hvdWxkIG5vdCBpbnRy
b2R1Y2UgYW55IGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhbmlt
YXRpb24vQW5pbWF0aW9uRXZlbnRCYXNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpB
bmltYXRpb25FdmVudEJhc2U6OkFuaW1hdGlvbkV2ZW50QmFzZSk6CisgICAgICAgICogYW5pbWF0
aW9uL0FuaW1hdGlvbkV2ZW50QmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1h
dGlvbkV2ZW50QmFzZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50
QmFzZTo6aXNBbmltYXRpb25QbGF5YmFja0V2ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkV2ZW50QmFzZTo6aXNBbmltYXRpb25FdmVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpBbmltYXRpb25FdmVudEJhc2U6OmlzVHJhbnNpdGlvbkV2ZW50IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6dGltZWxpbmVUaW1lIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6YW5pbWF0aW9uIGNvbnN0KToK
KyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb25QbGF5YmFja0V2ZW50OjpBbmltYXRpb25QbGF5YmFja0V2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OmJpbmRpbmdzVGlt
ZWxpbmVUaW1lIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tF
dmVudC5oOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQW5pbWF0aW9uOjpjcmVhdGVFdmVudCk6CisgICAgICAgICogYW5pbWF0aW9u
L0NTU0FuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1RyYW5zaXRpb246OmNyZWF0ZUV2ZW50KToKKyAgICAgICAg
KiBhbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9EZWNsYXJh
dGl2ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWNsYXJhdGl2ZUFuaW1hdGlv
bjo6ZW5xdWV1ZURPTUV2ZW50KToKKyAgICAgICAgKiBhbmltYXRpb24vRGVjbGFyYXRpdmVBbmlt
YXRpb24uaDoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQpOgor
ICAgICAgICAqIGRvbS9BbmltYXRpb25FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmlt
YXRpb25FdmVudDo6QW5pbWF0aW9uRXZlbnQpOgorICAgICAgICAqIGRvbS9BbmltYXRpb25FdmVu
dC5oOgorICAgICAgICAqIGRvbS9UcmFuc2l0aW9uRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VHJhbnNpdGlvbkV2ZW50OjpUcmFuc2l0aW9uRXZlbnQpOgorICAgICAgICAqIGRvbS9UcmFu
c2l0aW9uRXZlbnQuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOgorCiAyMDIwLTAyLTEzICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVp
bGQgZml4IGZvciBXZWJDb3JlIHNoYXJlZCBsaWJyYXJ5IGJ1aWxkcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggMzk3NjEzNGRiOGUxZTZlM2ZjYTcwODlhNTFmMzBmNmZiOWNiYzEzMS4uMWEwNDkxNmFjYTgy
Njg5ZGFhYWU4ZTI0YmI3ZDVmYmQ0MDgxMTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTQ0Nyw3ICs0
NDcsNyBAQCBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAog
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCiAKIGFuaW1hdGlv
bi9BbmltYXRpb25FZmZlY3QuY3BwCi1hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RTdGFjay5jcHAK
K2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwCiBhbmltYXRpb24vQW5pbWF0aW9uUGxh
eWJhY2tFdmVudC5jcHAKIGFuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAKIGFuaW1hdGlv
bi9DU1NBbmltYXRpb24uY3BwCkBAIC00NTUsNiArNDU1LDcgQEAgYW5pbWF0aW9uL0NTU1RyYW5z
aXRpb24uY3BwCiBhbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uY3BwCiBhbmltYXRpb24v
RG9jdW1lbnRUaW1lbGluZS5jcHAKIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKK2FuaW1h
dGlvbi9LZXlmcmFtZUVmZmVjdFN0YWNrLmNwcAogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAK
IGFuaW1hdGlvbi9XZWJBbmltYXRpb25VdGlsaXRpZXMuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwOGQ1YTJkYTUxZWQ1
OTE3YjE2OGYxZTczMzg0ZDg5M2MzNjE2Yzk2Li4zZDAyMWNlYWRlOWM1YmZjMzhkZmRlMjUwMzM5
ZjUzY2FhNGFlNzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yMDgwLDYgKzIwODAsNyBAQAogCQk3MTE2RTJDRjFGRUQ3NjVC
MDBDMDZGREUgLyogSlNDb21wdXRlZEVmZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzExNkUyQ0UxRkVENzY1MjAwQzA2RkRFIC8qIEpT
Q29tcHV0ZWRFZmZlY3RUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3MTE3NDQ1OTE0QkMzNEVDMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJp
Y3NCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MTE3NDQ1NzE0QkMzNEUyMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmggKi87
IH07CiAJCTcxMThGRUQ1MTU2ODVDQzYwMDMwQjc5QSAvKiBKU1NWR1ZpZXdTcGVjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTE4RkVEMzE1Njg1Q0M2
MDAzMEI3OUEgLyogSlNTVkdWaWV3U3BlYy5oICovOyB9OworCQk3MTFBRDEyNjIzNkQ4NkU1MDA2
RkYzN0MgLyogQW5pbWF0aW9uRXZlbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MTFBRDEyMzIzNkQ4NkQzMDA2RkYzN0MgLyogQW5pbWF0aW9u
RXZlbnRCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNzEyMDczNDAyMTZERkIwMDAwQzc4MzI5IC8qIE9wdGlvbmFsRWZmZWN0VGltaW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTIwNzMzRDIx
NkRGQUYxMDBDNzgzMjkgLyogT3B0aW9uYWxFZmZlY3RUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MTIwNzM0MzIxNkRGQjQxMDBDNzgz
MjkgLyogSlNPcHRpb25hbEVmZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzEyMDczNDEyMTZERkIzMTAwQzc4MzI5IC8qIEpTT3B0aW9u
YWxFZmZlY3RUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3MTI0N0UzNzFGRUE1Rjg2MDA4QzA4Q0UgLyogQ29tcG9zaXRlT3BlcmF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTI0N0Uz
NTFGRUE1RjgxMDA4QzA4Q0UgLyogQ29tcG9zaXRlT3BlcmF0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkzNzksNiArOTM4MCw4IEBACiAJ
CTcxMTc0NDU3MTRCQzM0RTIwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMThGRUQyMTU2ODVDQzYwMDMwQjc5QSAvKiBK
U1NWR1ZpZXdTcGVjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
U1ZHVmlld1NwZWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTE4RkVEMzE1
Njg1Q0M2MDAzMEI3OUEgLyogSlNTVkdWaWV3U3BlYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1NWR1ZpZXdTcGVjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTcxMUFEMTIzMjM2RDg2RDMwMDZGRjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQW5pbWF0aW9uRXZlbnRCYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxMUFEMTI1MjM2RDg2RDQwMDZGRjM3QyAvKiBBbmltYXRp
b25FdmVudEJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQW5p
bWF0aW9uRXZlbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzExRkIw
NzUxREM3Njg4RjAwQzRDNzA4IC8qIHBsYWNhcmQtc3VwcG9ydC5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJwbGFjYXJkLXN1cHBvcnQuanMiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MTIwNzMzRDIxNkRGQUYxMDBDNzgzMjkgLyogT3B0aW9uYWxF
ZmZlY3RUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3B0aW9uYWxF
ZmZlY3RUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzEyMDczM0YyMTZE
RkFGMjAwQzc4MzI5IC8qIE9wdGlvbmFsRWZmZWN0VGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBPcHRpb25hbEVmZmVjdFRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMDkxNiw2ICsyMDkxOSw4IEBACiAJCQkJNzFFRkNFRDcyMDJCMzg4RDAwRDdDNDEx
IC8qIEFuaW1hdGlvbkVmZmVjdC5oICovLAogCQkJCTcxRUZDRUQ2MjAyQjM4OEMwMEQ3QzQxMSAv
KiBBbmltYXRpb25FZmZlY3QuaWRsICovLAogCQkJCTcxRTJDNDI0MjFDOTM1MUQwMDI0RjhDOCAv
KiBBbmltYXRpb25FZmZlY3RQaGFzZS5oICovLAorCQkJCTcxMUFEMTI1MjM2RDg2RDQwMDZGRjM3
QyAvKiBBbmltYXRpb25FdmVudEJhc2UuY3BwICovLAorCQkJCTcxMUFEMTIzMjM2RDg2RDMwMDZG
RjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2UuaCAqLywKIAkJCQk3MTRDN0M2MDFGREFEMjc5MDBG
MkJFRTEgLyogQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHAgKi8sCiAJCQkJNzE0QzdDNjUxRkRB
RDI3QjAwRjJCRUUxIC8qIEFuaW1hdGlvblBsYXliYWNrRXZlbnQuaCAqLywKIAkJCQk3MTRDN0M2
NDFGREFEMjdCMDBGMkJFRTEgLyogQW5pbWF0aW9uUGxheWJhY2tFdmVudC5pZGwgKi8sCkBAIC0y
ODk0MSw2ICsyODk0Niw3IEBACiAJCQkJNzFFRkNFREMyMDJCMzhBOTAwRDdDNDExIC8qIEFuaW1h
dGlvbkVmZmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFFMkM0MjYyMUM5MzUyODAwMjRGOEM4
IC8qIEFuaW1hdGlvbkVmZmVjdFBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTk4NDgwMTFB
MUQ4MTdCMDBBMTMzMTggLyogQW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTcx
MUFEMTI2MjM2RDg2RTUwMDZGRjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5RTkxMkFEMEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk3MTRDN0M2NjFGREFEMkExMDBGMkJFRTEgLyogQW5pbWF0aW9uUGxh
eWJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzE0QzdDNjcxRkRBRDJBOTAwRjJCRUUx
IC8qIEFuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkV2ZW50QmFzZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGRiZjRjNWY0ZTBhNGYyNjQ2MWQxM2UzNWVmMzU0YjZiYzM3NDlmYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uRXZlbnRCYXNlLmgiCisK
KyNpbmNsdWRlICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChBbmltYXRpb25FdmVudEJhc2UpOworCitBbmltYXRpb25FdmVudEJhc2U6OkFu
aW1hdGlvbkV2ZW50QmFzZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBXZWJBbmltYXRpb24qIGFu
aW1hdGlvbiwgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKQorICAgIDogRXZlbnQodHlw
ZSwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6Tm8pCisgICAgLCBtX2FuaW1hdGlvbihh
bmltYXRpb24pCisgICAgLCBtX3RpbWVsaW5lVGltZSh0aW1lbGluZVRpbWUpCit7Cit9CisKK0Fu
aW1hdGlvbkV2ZW50QmFzZTo6QW5pbWF0aW9uRXZlbnRCYXNlKGNvbnN0IEF0b21TdHJpbmcmIHR5
cGUsIGNvbnN0IEV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisg
ICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQoreworfQorCitBbmltYXRp
b25FdmVudEJhc2U6On5BbmltYXRpb25FdmVudEJhc2UoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Bbmlt
YXRpb25FdmVudEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVu
dEJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNzc4MTQ4YTdhZTdmYTQzYTY2OWM3OWRlNzQ5OGNjMTZmZWNh
NjU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlv
bkV2ZW50QmFzZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50LmgiCisj
aW5jbHVkZSA8d3RmL01hcmthYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
V2ViQW5pbWF0aW9uOworCitjbGFzcyBBbmltYXRpb25FdmVudEJhc2UgOiBwdWJsaWMgRXZlbnQg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQW5pbWF0aW9uRXZlbnRCYXNlKTsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPEFuaW1hdGlvbkV2ZW50QmFzZT4gY3JlYXRlKGNvbnN0IEF0b21T
dHJpbmcmIHR5cGUsIFdlYkFuaW1hdGlvbiogYW5pbWF0aW9uLCBPcHRpb25hbDxTZWNvbmRzPiB0
aW1lbGluZVRpbWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRp
b25FdmVudEJhc2UodHlwZSwgYW5pbWF0aW9uLCB0aW1lbGluZVRpbWUpKTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIH5BbmltYXRpb25FdmVudEJhc2UoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc0Fu
aW1hdGlvblBsYXliYWNrRXZlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBpc0FuaW1hdGlvbkV2ZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNUcmFuc2l0aW9uRXZlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
CisgICAgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKCkgY29uc3QgeyByZXR1cm4gbV90
aW1lbGluZVRpbWU7IH0KKyAgICBXZWJBbmltYXRpb24qIGFuaW1hdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fYW5pbWF0aW9uLmdldCgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBBbmltYXRpb25FdmVu
dEJhc2UoY29uc3QgQXRvbVN0cmluZyYsIFdlYkFuaW1hdGlvbiosIE9wdGlvbmFsPFNlY29uZHM+
KTsKKyAgICBBbmltYXRpb25FdmVudEJhc2UoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEV2ZW50
SW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8V2ViQW5pbWF0aW9uPiBtX2FuaW1hdGlv
bjsKKyAgICBNYXJrYWJsZTxTZWNvbmRzLCBTZWNvbmRzOjpNYXJrYWJsZVRyYWl0cz4gbV90aW1l
bGluZVRpbWU7Cit9OworCit9CisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklN
QVRJT05fRVZFTlRfQkFTRShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpUb1ZhbHVlVHlwZU5hbWUpIFwKK3N0YXRpYyBi
b29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpBbmltYXRpb25FdmVudEJhc2UmIHZhbHVlKSB7IHJl
dHVybiB2YWx1ZS5wcmVkaWNhdGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tF
dmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVu
dC5jcHAKaW5kZXggODQ3ZTU5NGM1NjJlMDg3MzQ0NDI2OTk1NGE2N2VhYjMzMzI3MDNlYi4uODI5
YTNiZGEzZDg4M2RmODU3NzEwNGZjMmU4NTkwZWE5MmNiMTE4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50LmNwcApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
QW5pbWF0aW9uUGxheWJhY2tFdmVudCk7CiAKIEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFuaW1h
dGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQW5pbWF0aW9u
UGxheWJhY2tFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQotICAg
IDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICA6IEFuaW1hdGlvbkV2
ZW50QmFzZSh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQogewogICAgIGlmIChpbml0aWFs
aXplci5jdXJyZW50VGltZSkKICAgICAgICAgbV9jdXJyZW50VGltZSA9IFNlY29uZHM6OmZyb21N
aWxsaXNlY29uZHMoKmluaXRpYWxpemVyLmN1cnJlbnRUaW1lKTsKQEAgLTQ3LDEwICs0Nyw5IEBA
IEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRv
bVN0cmluZyYgdHlwZSwgY29uc3QgQW5pCiAgICAgICAgIG1fdGltZWxpbmVUaW1lID0gV1RGOjpu
dWxsb3B0OwogfQogCi1BbmltYXRpb25QbGF5YmFja0V2ZW50OjpBbmltYXRpb25QbGF5YmFja0V2
ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1l
LCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUpCi0gICAgOiBFdmVudCh0eXBlLCBDYW5C
dWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpObykKK0FuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFu
aW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vj
b25kcz4gY3VycmVudFRpbWUsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5p
bWF0aW9uKiBhbmltYXRpb24pCisgICAgOiBBbmltYXRpb25FdmVudEJhc2UodHlwZSwgYW5pbWF0
aW9uLCB0aW1lbGluZVRpbWUpCiAgICAgLCBtX2N1cnJlbnRUaW1lKGN1cnJlbnRUaW1lKQotICAg
ICwgbV90aW1lbGluZVRpbWUodGltZWxpbmVUaW1lKQogewogfQogCkBAIC02NSw5ICs2NCw5IEBA
IE9wdGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6YmluZGluZ3NDdXJyZW50
VGltZSgpIGNvbnN0CiAKIE9wdGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6
YmluZGluZ3NUaW1lbGluZVRpbWUoKSBjb25zdAogewotICAgIGlmICghbV90aW1lbGluZVRpbWUp
CisgICAgaWYgKCF0aW1lbGluZVRpbWUoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
LSAgICByZXR1cm4gc2Vjb25kc1RvV2ViQW5pbWF0aW9uc0FQSVRpbWUobV90aW1lbGluZVRpbWUu
dmFsdWUoKSk7CisgICAgcmV0dXJuIHNlY29uZHNUb1dlYkFuaW1hdGlvbnNBUElUaW1lKHRpbWVs
aW5lVGltZSgpLnZhbHVlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuaAppbmRleCBi
MjI4NWIwMDg0MDE2ZGU4ZDUwYzczM2UwNTY1MWY0YjVhYTFmYWNjLi4zNWZmOTdjNzQzZWE0NDg4
NTg0MmVkZGE4NDg5ZTRlNGZlZmY3YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50LmgKQEAgLTI1LDE4ICsyNSwxOCBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgIkFuaW1hdGlvbkV2ZW50QmFzZS5oIgogI2luY2x1ZGUgIkFu
aW1hdGlvblBsYXliYWNrRXZlbnRJbml0LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRl
IDx3dGYvTWFya2FibGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBbmltYXRp
b25QbGF5YmFja0V2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIEFuaW1hdGlvblBs
YXliYWNrRXZlbnQgZmluYWwgOiBwdWJsaWMgQW5pbWF0aW9uRXZlbnRCYXNlIHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKEFuaW1hdGlvblBsYXliYWNrRXZlbnQpOwogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8QW5pbWF0aW9uUGxheWJhY2tFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUsIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lLCBPcHRpb25hbDxTZWNvbmRz
PiB0aW1lbGluZVRpbWUpCisgICAgc3RhdGljIFJlZjxBbmltYXRpb25QbGF5YmFja0V2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRp
bWUsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRp
b24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRpb25QbGF5YmFj
a0V2ZW50KHR5cGUsIGN1cnJlbnRUaW1lLCB0aW1lbGluZVRpbWUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQW5pbWF0aW9uUGxheWJhY2tFdmVudCh0eXBlLCBjdXJyZW50VGltZSwg
dGltZWxpbmVUaW1lLCBhbmltYXRpb24pKTsKICAgICB9CiAKICAgICBzdGF0aWMgUmVmPEFuaW1h
dGlvblBsYXliYWNrRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBB
bmltYXRpb25QbGF5YmFja0V2ZW50SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0
ZWQgPSBJc1RydXN0ZWQ6Ok5vKQpAQCAtNDYsMTkgKzQ2LDIxIEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgfkFuaW1hdGlvblBsYXliYWNrRXZlbnQoKTsKIAorICAgIGJvb2wgaXNBbmltYXRpb25Q
bGF5YmFja0V2ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgT3B0aW9u
YWw8ZG91YmxlPiBiaW5kaW5nc0N1cnJlbnRUaW1lKCkgY29uc3Q7CiAgICAgT3B0aW9uYWw8U2Vj
b25kcz4gY3VycmVudFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRUaW1lOyB9CiAgICAg
T3B0aW9uYWw8ZG91YmxlPiBiaW5kaW5nc1RpbWVsaW5lVGltZSgpIGNvbnN0OwotICAgIE9wdGlv
bmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZWxpbmVUaW1l
OyB9CiAKICAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIEFuaW1hdGlvblBsYXliYWNrRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAKIHByaXZh
dGU6Ci0gICAgQW5pbWF0aW9uUGxheWJhY2tFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgT3B0aW9u
YWw8U2Vjb25kcz4sIE9wdGlvbmFsPFNlY29uZHM+KTsKKyAgICBBbmltYXRpb25QbGF5YmFja0V2
ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBPcHRpb25hbDxTZWNvbmRzPiwgT3B0aW9uYWw8U2Vjb25k
cz4sIFdlYkFuaW1hdGlvbiopOwogICAgIEFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRv
bVN0cmluZyYsIGNvbnN0IEFuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsK
IAogICAgIE1hcmthYmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBtX2N1cnJl
bnRUaW1lOwotICAgIE1hcmthYmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBt
X3RpbWVsaW5lVGltZTsKIH07CiAKIH0KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklNQVRJ
T05fRVZFTlRfQkFTRShBbmltYXRpb25QbGF5YmFja0V2ZW50LCBpc0FuaW1hdGlvblBsYXliYWNr
RXZlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKaW5kZXgg
NThhZGEwM2Y4NGNmZmI1ZjlhYjQ5N2NiNjY5YzBlZTkyNjUwOTljMC4uZmVjZjAyYWMwZTM4ODky
Yzc0OGFmMTJiOWNiNjQxYTExYjljNTMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NT
U0FuaW1hdGlvbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDU1NBbmltYXRpb24u
aCIKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIkFuaW1hdGlvbkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCkBAIC0xMjcsNCArMTI4LDkgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gQ1NTQW5pbWF0aW9uOjpiaW5kaW5nc1BhdXNlKCkKICAgICByZXR1cm4gRGVj
bGFyYXRpdmVBbmltYXRpb246OmJpbmRpbmdzUGF1c2UoKTsKIH0KIAorUmVmPEFuaW1hdGlvbkV2
ZW50QmFzZT4gQ1NTQW5pbWF0aW9uOjpjcmVhdGVFdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVu
dFR5cGUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9JZCwgT3B0aW9u
YWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKQoreworICAgIHJldHVybiBBbmltYXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50VHlwZSwgbV9hbmltYXRpb25OYW1lLCBlbGFwc2VkVGltZSwgcHNldWRvSWQs
IHRpbWVsaW5lVGltZSwgdGhpcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uaAppbmRleCA4YTgwNmFhYzJhZTcwMTU4Njg3
NTAzNTQzYzViZGZmODdkZWQzZjhiLi4yMmU4ZDE1OTc1ZTk5YzIzODY0NmJmZmY3ZDcxYjhjYjdl
ZTA2YzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5oCkBAIC00OSw2
ICs0OSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgc3luY1Byb3BlcnRpZXNX
aXRoQmFja2luZ0FuaW1hdGlvbigpIGZpbmFsOworICAgIFJlZjxBbmltYXRpb25FdmVudEJhc2U+
IGNyZWF0ZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlIGVsYXBzZWRU
aW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0lkLCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRp
bWUpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIENTU0FuaW1hdGlvbihFbGVtZW50JiwgY29uc3Qg
QW5pbWF0aW9uJiwgY29uc3QgUmVuZGVyU3R5bGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9DU1NUcmFuc2l0aW9uLmNwcAppbmRleCA2YTY2Yjg3ODE0ODg4ZjQ1NDQ5MWQ3OTE3ODVkNjFi
MjdiNDk0ZTE2Li41ODU5YjJlMzRmODNiNTc1MzU0OTAyNmVjZTVjY2ZkMjBmOTNkM2Q0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCisjaW5jbHVkZSAiVHJhbnNpdGlv
bkV2ZW50LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtODUsNCArODYsOSBAQCB2b2lkIENTU1RyYW5zaXRpb246OnNldFRpbWlu
Z1Byb3BlcnRpZXMoU2Vjb25kcyBkZWxheSwgU2Vjb25kcyBkdXJhdGlvbikKICAgICB1bnN1c3Bl
bmRFZmZlY3RJbnZhbGlkYXRpb24oKTsKIH0KIAorUmVmPEFuaW1hdGlvbkV2ZW50QmFzZT4gQ1NT
VHJhbnNpdGlvbjo6Y3JlYXRlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBkb3Vi
bGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvSWQsIE9wdGlvbmFsPFNlY29uZHM+
IHRpbWVsaW5lVGltZSkKK3sKKyAgICByZXR1cm4gVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZl
bnRUeXBlLCBnZXRQcm9wZXJ0eU5hbWVTdHJpbmcobV9wcm9wZXJ0eSksIGVsYXBzZWRUaW1lLCBw
c2V1ZG9JZCwgdGltZWxpbmVUaW1lLCB0aGlzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmgKaW5kZXggNDIyNGFiNTc2
ODczYTQ0YjE4MThiODFmZGQzMTUwODk3ZGVkNWJmMS4uMjMzMTdlZGY2YTk0MmY3YjQ0OWIzODY4
MmJjNDBlNmRkMTQ3YWMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NT
U1RyYW5zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlv
bi5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQ1NTVHJhbnNpdGlv
bihFbGVtZW50JiwgQ1NTUHJvcGVydHlJRCwgTW9ub3RvbmljVGltZSBnZW5lcmF0aW9uVGltZSwg
Y29uc3QgQW5pbWF0aW9uJiwgY29uc3QgUmVuZGVyU3R5bGUmIG9sZFN0eWxlLCBjb25zdCBSZW5k
ZXJTdHlsZSYgdGFyZ2V0U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiByZXZlcnNpbmdBZGp1c3Rl
ZFN0YXJ0U3R5bGUsIGRvdWJsZSk7CiAgICAgdm9pZCBzZXRUaW1pbmdQcm9wZXJ0aWVzKFNlY29u
ZHMgZGVsYXksIFNlY29uZHMgZHVyYXRpb24pOworICAgIFJlZjxBbmltYXRpb25FdmVudEJhc2U+
IGNyZWF0ZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlIGVsYXBzZWRU
aW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0lkLCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRp
bWUpIGZpbmFsOwogCiAgICAgQ1NTUHJvcGVydHlJRCBtX3Byb3BlcnR5OwogICAgIE1vbm90b25p
Y1RpbWUgbV9nZW5lcmF0aW9uVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RGVjbGFyYXRpdmVBbmltYXRpb24uY3BwCmluZGV4IGJiZTRjMzcwNTc1ZjI5ZWNkZDIzMWE2NTY3
YmIwNWQwNmM3YTU0OTcuLjNkYTM0ZWY2MDk2NzNkNGI2NjhjMTg2MTNmMDhkNjAxOWI5NzgzM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9u
LmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkRlY2xhcmF0aXZlQW5pbWF0aW9uLmgi
CiAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKLSNpbmNsdWRlICJBbmltYXRpb25FdmVudC5oIgog
I2luY2x1ZGUgIkNTU0FuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkNTU1RyYW5zaXRpb24uaCIKICNp
bmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgiCkBAIC0zNSw3ICszNCw2IEBACiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCiAjaW5jbHVkZSAiUHNl
dWRvRWxlbWVudC5oIgotI2luY2x1ZGUgIlRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1MSwxMCAr
MzQ5LDExIEBAIHZvaWQgRGVjbGFyYXRpdmVBbmltYXRpb246OmVucXVldWVET01FdmVudChjb25z
dCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFNlY29uZHMKIHsKICAgICBBU1NFUlQobV9vd25pbmdF
bGVtZW50KTsKICAgICBhdXRvIHRpbWUgPSBzZWNvbmRzVG9XZWJBbmltYXRpb25zQVBJVGltZShl
bGFwc2VkVGltZSkgLyAxMDAwOwotICAgIGlmIChpczxDU1NBbmltYXRpb24+KHRoaXMpKQotICAg
ICAgICBtX2V2ZW50UXVldWUtPmVucXVldWVFdmVudChBbmltYXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50VHlwZSwgZG93bmNhc3Q8Q1NTQW5pbWF0aW9uPih0aGlzKS0+YW5pbWF0aW9uTmFtZSgpLCB0
aW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFtZUZvckV2ZW50cyhtX293bmluZ0Vs
ZW1lbnQtPnBzZXVkb0lkKCkpKSk7Ci0gICAgZWxzZSBpZiAoaXM8Q1NTVHJhbnNpdGlvbj4odGhp
cykpCi0gICAgICAgIG1fZXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KFRyYW5zaXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50VHlwZSwgZG93bmNhc3Q8Q1NTVHJhbnNpdGlvbj4odGhpcyktPnRyYW5zaXRp
b25Qcm9wZXJ0eSgpLCB0aW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFtZUZvckV2
ZW50cyhtX293bmluZ0VsZW1lbnQtPnBzZXVkb0lkKCkpKSk7CisgICAgY29uc3QgYXV0byYgcHNl
dWRvSWQgPSBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFtZUZvckV2ZW50cyhtX293bmlu
Z0VsZW1lbnQtPnBzZXVkb0lkKCkpOworICAgIGF1dG8gdGltZWxpbmVUaW1lID0gdGltZWxpbmUo
KSA/IHRpbWVsaW5lKCktPmN1cnJlbnRUaW1lKCkgOiBXVEY6Om51bGxvcHQ7CisgICAgYXV0byBl
dmVudCA9IGNyZWF0ZUV2ZW50KGV2ZW50VHlwZSwgdGltZSwgcHNldWRvSWQsIHRpbWVsaW5lVGlt
ZSk7CisgICAgZXZlbnQtPnNldFRhcmdldChtX293bmluZ0VsZW1lbnQpOworICAgIGVucXVldWVB
bmltYXRpb25FdmVudChXVEZNb3ZlKGV2ZW50KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1h
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgK
aW5kZXggMzYzZTk4Y2UzMTc2NmM5NWI2ZTkzM2VkZWM3ZjEyN2I3OTQ1OGM2MS4uYWQ0OGM5ODY1
ODM4MzhlMjI2YzI2M2M3MTU4M2UxYjU3NTcxZTBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmgKQEAgLTM0LDYgKzM0LDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQW5pbWF0aW9uOworY2xhc3MgQW5pbWF0aW9uRXZlbnRC
YXNlOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogCkBAIC03NCw2ICs3NSw3
IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKTsKICAgICB2aXJ0
dWFsIHZvaWQgc3luY1Byb3BlcnRpZXNXaXRoQmFja2luZ0FuaW1hdGlvbigpOworICAgIHZpcnR1
YWwgUmVmPEFuaW1hdGlvbkV2ZW50QmFzZT4gY3JlYXRlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYg
ZXZlbnRUeXBlLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvSWQsIE9w
dGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSkgPSAwOwogICAgIHZvaWQgaW52YWxpZGF0ZURP
TUV2ZW50cyhTZWNvbmRzIGVsYXBzZWRUaW1lID0gMF9zKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKaW5kZXggZDQyMTFjYzVlYzU0ZjYwNTg2
ZWQxNDQ3NzQ0YWNlOTg0MDFiODczNS4uZDA4OTZmYjdjY2IyMGFkYWU0MmM1MGY4ZWQ5NjU3NzJh
ODAyZGYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKQEAg
LTY4Myw3ICs2ODMsNyBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6d2lsbENoYW5nZVJlbmRlcmVyKCkK
IAogdm9pZCBXZWJBbmltYXRpb246OmVucXVldWVBbmltYXRpb25QbGF5YmFja0V2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lLCBPcHRpb25h
bDxTZWNvbmRzPiB0aW1lbGluZVRpbWUpCiB7Ci0gICAgYXV0byBldmVudCA9IEFuaW1hdGlvblBs
YXliYWNrRXZlbnQ6OmNyZWF0ZSh0eXBlLCBjdXJyZW50VGltZSwgdGltZWxpbmVUaW1lKTsKKyAg
ICBhdXRvIGV2ZW50ID0gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6Y3JlYXRlKHR5cGUsIGN1cnJl
bnRUaW1lLCB0aW1lbGluZVRpbWUsIHRoaXMpOwogICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7
CiAKICAgICBpZiAoaXM8RG9jdW1lbnRUaW1lbGluZT4obV90aW1lbGluZSkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BbmltYXRpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQW5pbWF0aW9uRXZlbnQuY3BwCmluZGV4IGRjODk4NjRkZGEyMDIzNDA1YWE2MWU5ZWNj
Y2I4MDQxN2Y0YzcxMTYuLjhmYjE5ZDU5MDc5NTExZmNkMzAxNmE4M2Q1MjlmNjk0MjY3Y2Q2Mjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BbmltYXRpb25FdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmNwcApAQCAtMzMsMTUgKzMzLDE1IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChBbmltYXRp
b25FdmVudCk7CiAKIEFuaW1hdGlvbkV2ZW50OjpBbmltYXRpb25FdmVudChjb25zdCBBdG9tU3Ry
aW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkK
LSAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpCisgICAgOiBBbmltYXRp
b25FdmVudEJhc2UodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKICAgICAsIG1fYW5pbWF0
aW9uTmFtZShpbml0aWFsaXplci5hbmltYXRpb25OYW1lKQogICAgICwgbV9lbGFwc2VkVGltZShp
bml0aWFsaXplci5lbGFwc2VkVGltZSkKICAgICAsIG1fcHNldWRvRWxlbWVudChpbml0aWFsaXpl
ci5wc2V1ZG9FbGVtZW50KQogewogfQogCi1BbmltYXRpb25FdmVudDo6QW5pbWF0aW9uRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3Vi
bGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCkKLSAgICA6IEV2ZW50
KHR5cGUsIENhbkJ1YmJsZTo6WWVzLCBJc0NhbmNlbGFibGU6Ok5vKQorQW5pbWF0aW9uRXZlbnQ6
OkFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgYW5p
bWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1l
bnQsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRp
b24pCisgICAgOiBBbmltYXRpb25FdmVudEJhc2UodHlwZSwgYW5pbWF0aW9uLCB0aW1lbGluZVRp
bWUpCiAgICAgLCBtX2FuaW1hdGlvbk5hbWUoYW5pbWF0aW9uTmFtZSkKICAgICAsIG1fZWxhcHNl
ZFRpbWUoZWxhcHNlZFRpbWUpCiAgICAgLCBtX3BzZXVkb0VsZW1lbnQocHNldWRvRWxlbWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BbmltYXRpb25FdmVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmgKaW5kZXggMDFlYWUzNzMxZGNjY2NlNGRmNDVl
ZjJlNjNmNmVhMzEwZDI0NjQ1Zi4uNzk1NWQ3MTFjYWI3ZjdiOWRkYmY2YTBhY2Q5MGY2MGJjMDEz
M2Y5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmgKQEAgLTI1LDE2ICsyNSwxNiBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQW5pbWF0
aW9uRXZlbnRCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQW5pbWF0aW9u
RXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworY2xhc3MgQW5pbWF0aW9uRXZlbnQgZmluYWwg
OiBwdWJsaWMgQW5pbWF0aW9uRXZlbnRCYXNlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KEFuaW1hdGlvbkV2ZW50KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFuaW1hdGlvbkV2ZW50
PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25O
YW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCkKKyAg
ICBzdGF0aWMgUmVmPEFuaW1hdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0
IFN0cmluZyYgcHNldWRvRWxlbWVudCwgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lLCBX
ZWJBbmltYXRpb24qIGFuaW1hdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEFuaW1hdGlvbkV2ZW50KHR5cGUsIGFuaW1hdGlvbk5hbWUsIGVsYXBzZWRUaW1lLCBwc2V1
ZG9FbGVtZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFuaW1hdGlvbkV2ZW50
KHR5cGUsIGFuaW1hdGlvbk5hbWUsIGVsYXBzZWRUaW1lLCBwc2V1ZG9FbGVtZW50LCB0aW1lbGlu
ZVRpbWUsIGFuaW1hdGlvbikpOwogICAgIH0KIAogICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0
IHsKQEAgLTUwLDYgKzUwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+QW5pbWF0aW9uRXZl
bnQoKTsKIAorICAgIGJvb2wgaXNBbmltYXRpb25FdmVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KKwogICAgIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSgpIGNvbnN0OwogICAg
IGRvdWJsZSBlbGFwc2VkVGltZSgpIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgcHNldWRvRWxl
bWVudCgpIGNvbnN0OwpAQCAtNTcsNyArNTksNyBAQCBwdWJsaWM6CiAgICAgRXZlbnRJbnRlcmZh
Y2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBBbmlt
YXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlv
bk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KTsK
KyAgICBBbmltYXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9F
bGVtZW50LCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUsIFdlYkFuaW1hdGlvbiopOwog
ICAgIEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVz
dGVkKTsKIAogICAgIFN0cmluZyBtX2FuaW1hdGlvbk5hbWU7CkBAIC02NiwzICs2OCw1IEBAIHBy
aXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfQU5JTUFUSU9OX0VWRU5UX0JBU0UoQW5pbWF0aW9uRXZlbnQsIGlzQW5pbWF0aW9uRXZl
bnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmFuc2l0aW9uRXZlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5jcHAKaW5kZXggNjk2MWVmMzJk
MTNmMzcxNzM0YjEwZjNlYmNhNDM1YTBkNWIzNjNmMy4uM2Q1OTI2NTc1NzcxZTM4MzhhMjgzOGRh
NDdmZmE5ZTIyMDVkZGFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRp
b25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5jcHAK
QEAgLTMzLDggKzMzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoVHJhbnNpdGlvbkV2ZW50KTsKIAotVHJhbnNpdGlvbkV2ZW50OjpUcmFuc2l0
aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5h
bWUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KQotICAg
IDogRXZlbnQodHlwZSwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6WWVzKQorVHJhbnNp
dGlvbkV2ZW50OjpUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBw
c2V1ZG9FbGVtZW50LCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUsIFdlYkFuaW1hdGlv
biogYW5pbWF0aW9uKQorICAgIDogQW5pbWF0aW9uRXZlbnRCYXNlKHR5cGUsIGFuaW1hdGlvbiwg
dGltZWxpbmVUaW1lKQogICAgICwgbV9wcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKQogICAgICwg
bV9lbGFwc2VkVGltZShlbGFwc2VkVGltZSkKICAgICAsIG1fcHNldWRvRWxlbWVudChwc2V1ZG9F
bGVtZW50KQpAQCAtNDIsNyArNDIsNyBAQCBUcmFuc2l0aW9uRXZlbnQ6OlRyYW5zaXRpb25FdmVu
dChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TgogfQogCiBU
cmFuc2l0aW9uRXZlbnQ6OlRyYW5zaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBj
b25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKLSAgICA6IEV2ZW50
KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpCisgICAgOiBBbmltYXRpb25FdmVudEJhc2Uo
dHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKICAgICAsIG1fcHJvcGVydHlOYW1lKGluaXRp
YWxpemVyLnByb3BlcnR5TmFtZSkKICAgICAsIG1fZWxhcHNlZFRpbWUoaW5pdGlhbGl6ZXIuZWxh
cHNlZFRpbWUpCiAgICAgLCBtX3BzZXVkb0VsZW1lbnQoaW5pdGlhbGl6ZXIucHNldWRvRWxlbWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmFuc2l0aW9uRXZlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmFuc2l0aW9uRXZlbnQuaAppbmRleCA0OTRmOWE0ZWVjNmM4ODc3
YzlmN2I5YWU0NjZkNGEzOTk4Y2IyMzAxLi4yMzEzNmQ3M2YwN2JiZDliYzE0YWNiODIxMzQ3Nzdi
MTIwOGViMTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5oCkBAIC0yNiwxNiAr
MjYsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUg
IkFuaW1hdGlvbkV2ZW50QmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFRy
YW5zaXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CitjbGFzcyBUcmFuc2l0aW9uRXZl
bnQgZmluYWwgOiBwdWJsaWMgQW5pbWF0aW9uRXZlbnRCYXNlIHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKFRyYW5zaXRpb25FdmVudCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxUcmFu
c2l0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0Vs
ZW1lbnQpCisgICAgc3RhdGljIFJlZjxUcmFuc2l0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRU
aW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVs
aW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRpb24pCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUcmFuc2l0aW9uRXZlbnQodHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2Vk
VGltZSwgcHNldWRvRWxlbWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUcmFu
c2l0aW9uRXZlbnQodHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSwgcHNldWRvRWxlbWVu
dCwgdGltZWxpbmVUaW1lLCBhbmltYXRpb24pKTsKICAgICB9CiAKICAgICBzdHJ1Y3QgSW5pdCA6
IEV2ZW50SW5pdCB7CkBAIC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflRy
YW5zaXRpb25FdmVudCgpOwogCisgICAgYm9vbCBpc1RyYW5zaXRpb25FdmVudCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KKwogICAgIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKCkg
Y29uc3Q7CiAgICAgZG91YmxlIGVsYXBzZWRUaW1lKCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5n
JiBwc2V1ZG9FbGVtZW50KCkgY29uc3Q7CkBAIC01OCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICBF
dmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRl
OgotICAgIFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIHBzZXVk
b0VsZW1lbnQpOworICAgIFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJp
bmcmIHBzZXVkb0VsZW1lbnQsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5p
bWF0aW9uKik7CiAgICAgVHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNv
bnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQpOwogCiAgICAgU3RyaW5nIG1fcHJvcGVy
dHlOYW1lOwpAQCAtNjcsMyArNjksNSBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0FOSU1BVElPTl9FVkVOVF9CQVNFKFRy
YW5zaXRpb25FdmVudCwgaXNUcmFuc2l0aW9uRXZlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXgg
YjE0NTM2MDA1NDdmYTA2YTM3ZTk3OGVkMzI3YTM4N2ZmMTU5NTFmMy4uMTFkYjA2MDA1YzMwOTY1
MWJjMGQ3YTVjN2M5OTM3YjdhY2VkMjA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTIyNSw5ICsy
MjUsOSBAQCB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpmaXJlRXZlbnRzQW5k
VXBkYXRlU3R5bGUoKQogICAgIGZvciAoYXV0byYgZXZlbnQgOiBldmVudHNUb0Rpc3BhdGNoKSB7
CiAgICAgICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBldmVudC5lbGVtZW50OwogICAgICAgICBpZiAo
ZXZlbnQuZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpCi0gICAg
ICAgICAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQoVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZl
bnQuZXZlbnRUeXBlLCBldmVudC5uYW1lLCBldmVudC5lbGFwc2VkVGltZSwgUHNldWRvRWxlbWVu
dDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVudHMoZWxlbWVudC5wc2V1ZG9JZCgpKSkpOworICAg
ICAgICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KFRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQuZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1l
bnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVsZW1lbnQucHNldWRvSWQoKSksIFdURjo6
bnVsbG9wdCwgbnVsbHB0cikpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBlbGVtZW50LmRp
c3BhdGNoRXZlbnQoQW5pbWF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudC5ldmVudFR5cGUsIGV2ZW50
Lm5hbWUsIGV2ZW50LmVsYXBzZWRUaW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFt
ZUZvckV2ZW50cyhlbGVtZW50LnBzZXVkb0lkKCkpKSk7CisgICAgICAgICAgICBlbGVtZW50LmRp
c3BhdGNoRXZlbnQoQW5pbWF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudC5ldmVudFR5cGUsIGV2ZW50
Lm5hbWUsIGV2ZW50LmVsYXBzZWRUaW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFt
ZUZvckV2ZW50cyhlbGVtZW50LnBzZXVkb0lkKCkpLCBXVEY6Om51bGxvcHQsIG51bGxwdHIpKTsK
ICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGNoYW5nZSA6IG1fZWxlbWVudENoYW5nZXNUb0Rpc3Bh
dGNoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390754</attachid>
            <date>2020-02-14 04:10:04 -0800</date>
            <delta_ts>2020-02-14 08:26:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207629-20200214131002.patch</filename>
            <type>text/plain</type>
            <size>32767</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ1YzY3MDQ3YjY0NGM0
YTM3ZDc0YjZjODg4M2M0ZDk4NTA5YWQzMi4uOTkxMDJkOTI3OTdiMDQ4Yzg5MDY3MDA5MmNmNGUy
YjkyY2QxZjIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTAyLTE0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWIgQW5pbWF0aW9u
c10gTWFrZSBhbGwgYW5pbWF0aW9uIGV2ZW50IHR5cGVzIGluaGVyaXQgZnJvbSB0aGUgc2FtZSBi
YXNlIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDc2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgd2UgZGlzcGF0Y2ggZXZlbnRzIENTUyBUcmFuc2l0aW9ucyBhbmQgQ1NTIEFu
aW1hdGlvbnMgZXZlbnRzIHVzaW5nIGEgZGVkaWNhdGVkIGV2ZW50IHF1ZXVlIG9uIERlY2xhcmF0
aXZlQW5pbWF0aW9uLCB3aGlsZSB0aGUgZXZlbnRzCisgICAgICAgIGFkZGVkIGJ5IHRoZSBXZWIg
QW5pbWF0aW9ucyBzcGVjaWZpY2F0aW9uIChvZiB0eXBlIEFuaW1hdGlvblBsYXliYWNrRXZlbnQp
IGFyZSBkaXNwYXRjaGVkIHVzaW5nIGEgc2hhcmVkIHF1ZXVlIG9uIHRoZSBEb2N1bWVudFRpbWVs
aW5lIHRoYXQgaXMKKyAgICAgICAgcHJvY2Vzc2VkIGR1cmluZyB0aGUgInVwZGF0ZSBhbmltYXRp
b25zIGFuZCBzZW5kIGV2ZW50cyBwcm9jZWR1cmUiLiBUaGUgV2ViIEFuaW1hdGlvbnMgc3BlY2lm
aWNhdGlvbiBkaWN0YXRlcyB0aGF0IGFsbCBldmVudHMgc2hvdWxkIGJlIGRpc3BhdGNoZWQKKyAg
ICAgICAgZHVyaW5nIHRoYXQgcHJvY2VkdXJlLCB3aGljaCBpbmNsdWRlcyBzb3J0aW5nIG9mIHN1
Y2ggZXZlbnRzIGJhc2VkIG9uIHRoZWlyIHRpbWVsaW5lIHRpbWUgYW5kIGFzc29jaWF0ZWQgYW5p
bWF0aW9uIHJlbGF0aXZlIGNvbXBvc2l0ZSBvcmRlci4KKworICAgICAgICBJbiB0aGlzIHBhdGNo
LCB3ZSBwcmVwYXJlIHRoZSB3b3JrIHRvd2FyZHMgc3BlYyBjb21wbGlhbmNlIGZvciBhbmltYXRp
b24gZXZlbnRzIGRpc3BhdGNoIGJ5IG1ha2luZyBhbGwgZXZlbnQgdHlwZXMgKEFuaW1hdGlvblBs
YXliYWNrRXZlbnQsCisgICAgICAgIFRyYW5zaXRpb25FdmVudCBhbmQgQW5pbWF0aW9uRXZlbnQp
IGluaGVyaXQgZnJvbSBhIHNpbmdsZSBBbmltYXRpb25FdmVudEJhc2UgaW50ZXJmYWNlLiBUaGlz
IHdpbGwgYWxsb3cgRG9jdW1lbnRUaW1lbGluZSB0byBlbnF1ZXVlLCBzb3J0IGFuZAorICAgICAg
ICBkaXNwYXRjaCBhbGwgc3VjaCBldmVudHMgd2l0aCBhIHNpbmdsZSBxdWV1ZSBpbiBhIGZ1dHVy
ZSBwYXRjaC4KKworICAgICAgICBEdWUgdG8gQ1NTQW5pbWF0aW9uQ29udHJvbGxlciwgd2UgbXVz
dCBtYWtlIHRoZSAidGltZWxpbmUgdGltZSIgYW5kICJhbmltYXRpb24iIHBhcmFtZXRlcnMgb3B0
aW9uYWwuIFdoZW4gd2UgZHJvcCBzdXBwb3J0IGZvciBDU1NBbmltYXRpb25Db250cm9sbGVyCisg
ICAgICAgIHdlJ2xsIGJlIGFibGUgdG8gZW5mb3JjZSBzdHJvbmdlciByZXF1aXJlbWVudHMgZm9y
IHRoZXNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0IHNpbmNlIHRoaXMgc2hvdWxkIG5vdCBpbnRy
b2R1Y2UgYW55IGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhbmlt
YXRpb24vQW5pbWF0aW9uRXZlbnRCYXNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpB
bmltYXRpb25FdmVudEJhc2U6OkFuaW1hdGlvbkV2ZW50QmFzZSk6CisgICAgICAgICogYW5pbWF0
aW9uL0FuaW1hdGlvbkV2ZW50QmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1h
dGlvbkV2ZW50QmFzZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50
QmFzZTo6aXNBbmltYXRpb25QbGF5YmFja0V2ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkV2ZW50QmFzZTo6aXNBbmltYXRpb25FdmVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpBbmltYXRpb25FdmVudEJhc2U6OmlzVHJhbnNpdGlvbkV2ZW50IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6dGltZWxpbmVUaW1lIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkV2ZW50QmFzZTo6YW5pbWF0aW9uIGNvbnN0KToK
KyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb25QbGF5YmFja0V2ZW50OjpBbmltYXRpb25QbGF5YmFja0V2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OmJpbmRpbmdzVGlt
ZWxpbmVUaW1lIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tF
dmVudC5oOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQW5pbWF0aW9uOjpjcmVhdGVFdmVudCk6CisgICAgICAgICogYW5pbWF0aW9u
L0NTU0FuaW1hdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1RyYW5zaXRpb246OmNyZWF0ZUV2ZW50KToKKyAgICAgICAg
KiBhbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5oOgorICAgICAgICAqIGFuaW1hdGlvbi9EZWNsYXJh
dGl2ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWNsYXJhdGl2ZUFuaW1hdGlv
bjo6ZW5xdWV1ZURPTUV2ZW50KToKKyAgICAgICAgKiBhbmltYXRpb24vRGVjbGFyYXRpdmVBbmlt
YXRpb24uaDoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQpOgor
ICAgICAgICAqIGRvbS9BbmltYXRpb25FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmlt
YXRpb25FdmVudDo6QW5pbWF0aW9uRXZlbnQpOgorICAgICAgICAqIGRvbS9BbmltYXRpb25FdmVu
dC5oOgorICAgICAgICAqIGRvbS9UcmFuc2l0aW9uRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VHJhbnNpdGlvbkV2ZW50OjpUcmFuc2l0aW9uRXZlbnQpOgorICAgICAgICAqIGRvbS9UcmFu
c2l0aW9uRXZlbnQuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOgorCiAyMDIwLTAyLTEzICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVp
bGQgZml4IGZvciBXZWJDb3JlIHNoYXJlZCBsaWJyYXJ5IGJ1aWxkcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggMzk3NjEzNGRiOGUxZTZlM2ZjYTcwODlhNTFmMzBmNmZiOWNiYzEzMS4uMWEwNDkxNmFjYTgy
Njg5ZGFhYWU4ZTI0YmI3ZDVmYmQ0MDgxMTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTQ0Nyw3ICs0
NDcsNyBAQCBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAog
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCiAKIGFuaW1hdGlv
bi9BbmltYXRpb25FZmZlY3QuY3BwCi1hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RTdGFjay5jcHAK
K2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwCiBhbmltYXRpb24vQW5pbWF0aW9uUGxh
eWJhY2tFdmVudC5jcHAKIGFuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAKIGFuaW1hdGlv
bi9DU1NBbmltYXRpb24uY3BwCkBAIC00NTUsNiArNDU1LDcgQEAgYW5pbWF0aW9uL0NTU1RyYW5z
aXRpb24uY3BwCiBhbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uY3BwCiBhbmltYXRpb24v
RG9jdW1lbnRUaW1lbGluZS5jcHAKIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKK2FuaW1h
dGlvbi9LZXlmcmFtZUVmZmVjdFN0YWNrLmNwcAogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAK
IGFuaW1hdGlvbi9XZWJBbmltYXRpb25VdGlsaXRpZXMuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwOGQ1YTJkYTUxZWQ1
OTE3YjE2OGYxZTczMzg0ZDg5M2MzNjE2Yzk2Li4zZDAyMWNlYWRlOWM1YmZjMzhkZmRlMjUwMzM5
ZjUzY2FhNGFlNzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yMDgwLDYgKzIwODAsNyBAQAogCQk3MTE2RTJDRjFGRUQ3NjVC
MDBDMDZGREUgLyogSlNDb21wdXRlZEVmZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzExNkUyQ0UxRkVENzY1MjAwQzA2RkRFIC8qIEpT
Q29tcHV0ZWRFZmZlY3RUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3MTE3NDQ1OTE0QkMzNEVDMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJp
Y3NCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MTE3NDQ1NzE0QkMzNEUyMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmggKi87
IH07CiAJCTcxMThGRUQ1MTU2ODVDQzYwMDMwQjc5QSAvKiBKU1NWR1ZpZXdTcGVjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTE4RkVEMzE1Njg1Q0M2
MDAzMEI3OUEgLyogSlNTVkdWaWV3U3BlYy5oICovOyB9OworCQk3MTFBRDEyNjIzNkQ4NkU1MDA2
RkYzN0MgLyogQW5pbWF0aW9uRXZlbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MTFBRDEyMzIzNkQ4NkQzMDA2RkYzN0MgLyogQW5pbWF0aW9u
RXZlbnRCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNzEyMDczNDAyMTZERkIwMDAwQzc4MzI5IC8qIE9wdGlvbmFsRWZmZWN0VGltaW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTIwNzMzRDIx
NkRGQUYxMDBDNzgzMjkgLyogT3B0aW9uYWxFZmZlY3RUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MTIwNzM0MzIxNkRGQjQxMDBDNzgz
MjkgLyogSlNPcHRpb25hbEVmZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzEyMDczNDEyMTZERkIzMTAwQzc4MzI5IC8qIEpTT3B0aW9u
YWxFZmZlY3RUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3MTI0N0UzNzFGRUE1Rjg2MDA4QzA4Q0UgLyogQ29tcG9zaXRlT3BlcmF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTI0N0Uz
NTFGRUE1RjgxMDA4QzA4Q0UgLyogQ29tcG9zaXRlT3BlcmF0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkzNzksNiArOTM4MCw4IEBACiAJ
CTcxMTc0NDU3MTRCQzM0RTIwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMThGRUQyMTU2ODVDQzYwMDMwQjc5QSAvKiBK
U1NWR1ZpZXdTcGVjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
U1ZHVmlld1NwZWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTE4RkVEMzE1
Njg1Q0M2MDAzMEI3OUEgLyogSlNTVkdWaWV3U3BlYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1NWR1ZpZXdTcGVjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTcxMUFEMTIzMjM2RDg2RDMwMDZGRjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQW5pbWF0aW9uRXZlbnRCYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxMUFEMTI1MjM2RDg2RDQwMDZGRjM3QyAvKiBBbmltYXRp
b25FdmVudEJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQW5p
bWF0aW9uRXZlbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzExRkIw
NzUxREM3Njg4RjAwQzRDNzA4IC8qIHBsYWNhcmQtc3VwcG9ydC5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJwbGFjYXJkLXN1cHBvcnQuanMiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MTIwNzMzRDIxNkRGQUYxMDBDNzgzMjkgLyogT3B0aW9uYWxF
ZmZlY3RUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3B0aW9uYWxF
ZmZlY3RUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzEyMDczM0YyMTZE
RkFGMjAwQzc4MzI5IC8qIE9wdGlvbmFsRWZmZWN0VGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBPcHRpb25hbEVmZmVjdFRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMDkxNiw2ICsyMDkxOSw4IEBACiAJCQkJNzFFRkNFRDcyMDJCMzg4RDAwRDdDNDEx
IC8qIEFuaW1hdGlvbkVmZmVjdC5oICovLAogCQkJCTcxRUZDRUQ2MjAyQjM4OEMwMEQ3QzQxMSAv
KiBBbmltYXRpb25FZmZlY3QuaWRsICovLAogCQkJCTcxRTJDNDI0MjFDOTM1MUQwMDI0RjhDOCAv
KiBBbmltYXRpb25FZmZlY3RQaGFzZS5oICovLAorCQkJCTcxMUFEMTI1MjM2RDg2RDQwMDZGRjM3
QyAvKiBBbmltYXRpb25FdmVudEJhc2UuY3BwICovLAorCQkJCTcxMUFEMTIzMjM2RDg2RDMwMDZG
RjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2UuaCAqLywKIAkJCQk3MTRDN0M2MDFGREFEMjc5MDBG
MkJFRTEgLyogQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHAgKi8sCiAJCQkJNzE0QzdDNjUxRkRB
RDI3QjAwRjJCRUUxIC8qIEFuaW1hdGlvblBsYXliYWNrRXZlbnQuaCAqLywKIAkJCQk3MTRDN0M2
NDFGREFEMjdCMDBGMkJFRTEgLyogQW5pbWF0aW9uUGxheWJhY2tFdmVudC5pZGwgKi8sCkBAIC0y
ODk0MSw2ICsyODk0Niw3IEBACiAJCQkJNzFFRkNFREMyMDJCMzhBOTAwRDdDNDExIC8qIEFuaW1h
dGlvbkVmZmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFFMkM0MjYyMUM5MzUyODAwMjRGOEM4
IC8qIEFuaW1hdGlvbkVmZmVjdFBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTk4NDgwMTFB
MUQ4MTdCMDBBMTMzMTggLyogQW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTcx
MUFEMTI2MjM2RDg2RTUwMDZGRjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5RTkxMkFEMEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk3MTRDN0M2NjFGREFEMkExMDBGMkJFRTEgLyogQW5pbWF0aW9uUGxh
eWJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzE0QzdDNjcxRkRBRDJBOTAwRjJCRUUx
IC8qIEFuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkV2ZW50QmFzZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGRiZjRjNWY0ZTBhNGYyNjQ2MWQxM2UzNWVmMzU0YjZiYzM3NDlmYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uRXZlbnRCYXNlLmgiCisK
KyNpbmNsdWRlICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChBbmltYXRpb25FdmVudEJhc2UpOworCitBbmltYXRpb25FdmVudEJhc2U6OkFu
aW1hdGlvbkV2ZW50QmFzZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBXZWJBbmltYXRpb24qIGFu
aW1hdGlvbiwgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKQorICAgIDogRXZlbnQodHlw
ZSwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6Tm8pCisgICAgLCBtX2FuaW1hdGlvbihh
bmltYXRpb24pCisgICAgLCBtX3RpbWVsaW5lVGltZSh0aW1lbGluZVRpbWUpCit7Cit9CisKK0Fu
aW1hdGlvbkV2ZW50QmFzZTo6QW5pbWF0aW9uRXZlbnRCYXNlKGNvbnN0IEF0b21TdHJpbmcmIHR5
cGUsIGNvbnN0IEV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisg
ICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQoreworfQorCitBbmltYXRp
b25FdmVudEJhc2U6On5BbmltYXRpb25FdmVudEJhc2UoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Bbmlt
YXRpb25FdmVudEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FdmVu
dEJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNzc4MTQ4YTdhZTdmYTQzYTY2OWM3OWRlNzQ5OGNjMTZmZWNh
NjU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlv
bkV2ZW50QmFzZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50LmgiCisj
aW5jbHVkZSA8d3RmL01hcmthYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
V2ViQW5pbWF0aW9uOworCitjbGFzcyBBbmltYXRpb25FdmVudEJhc2UgOiBwdWJsaWMgRXZlbnQg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQW5pbWF0aW9uRXZlbnRCYXNlKTsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPEFuaW1hdGlvbkV2ZW50QmFzZT4gY3JlYXRlKGNvbnN0IEF0b21T
dHJpbmcmIHR5cGUsIFdlYkFuaW1hdGlvbiogYW5pbWF0aW9uLCBPcHRpb25hbDxTZWNvbmRzPiB0
aW1lbGluZVRpbWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRp
b25FdmVudEJhc2UodHlwZSwgYW5pbWF0aW9uLCB0aW1lbGluZVRpbWUpKTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIH5BbmltYXRpb25FdmVudEJhc2UoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc0Fu
aW1hdGlvblBsYXliYWNrRXZlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBpc0FuaW1hdGlvbkV2ZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNUcmFuc2l0aW9uRXZlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
CisgICAgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKCkgY29uc3QgeyByZXR1cm4gbV90
aW1lbGluZVRpbWU7IH0KKyAgICBXZWJBbmltYXRpb24qIGFuaW1hdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fYW5pbWF0aW9uLmdldCgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBBbmltYXRpb25FdmVu
dEJhc2UoY29uc3QgQXRvbVN0cmluZyYsIFdlYkFuaW1hdGlvbiosIE9wdGlvbmFsPFNlY29uZHM+
KTsKKyAgICBBbmltYXRpb25FdmVudEJhc2UoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEV2ZW50
SW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8V2ViQW5pbWF0aW9uPiBtX2FuaW1hdGlv
bjsKKyAgICBNYXJrYWJsZTxTZWNvbmRzLCBTZWNvbmRzOjpNYXJrYWJsZVRyYWl0cz4gbV90aW1l
bGluZVRpbWU7Cit9OworCit9CisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklN
QVRJT05fRVZFTlRfQkFTRShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpUb1ZhbHVlVHlwZU5hbWUpIFwKK3N0YXRpYyBi
b29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpBbmltYXRpb25FdmVudEJhc2UmIHZhbHVlKSB7IHJl
dHVybiB2YWx1ZS5wcmVkaWNhdGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tF
dmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVu
dC5jcHAKaW5kZXggODQ3ZTU5NGM1NjJlMDg3MzQ0NDI2OTk1NGE2N2VhYjMzMzI3MDNlYi4uODI5
YTNiZGEzZDg4M2RmODU3NzEwNGZjMmU4NTkwZWE5MmNiMTE4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50LmNwcApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
QW5pbWF0aW9uUGxheWJhY2tFdmVudCk7CiAKIEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFuaW1h
dGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQW5pbWF0aW9u
UGxheWJhY2tFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQotICAg
IDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICA6IEFuaW1hdGlvbkV2
ZW50QmFzZSh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQogewogICAgIGlmIChpbml0aWFs
aXplci5jdXJyZW50VGltZSkKICAgICAgICAgbV9jdXJyZW50VGltZSA9IFNlY29uZHM6OmZyb21N
aWxsaXNlY29uZHMoKmluaXRpYWxpemVyLmN1cnJlbnRUaW1lKTsKQEAgLTQ3LDEwICs0Nyw5IEBA
IEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRv
bVN0cmluZyYgdHlwZSwgY29uc3QgQW5pCiAgICAgICAgIG1fdGltZWxpbmVUaW1lID0gV1RGOjpu
dWxsb3B0OwogfQogCi1BbmltYXRpb25QbGF5YmFja0V2ZW50OjpBbmltYXRpb25QbGF5YmFja0V2
ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1l
LCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUpCi0gICAgOiBFdmVudCh0eXBlLCBDYW5C
dWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpObykKK0FuaW1hdGlvblBsYXliYWNrRXZlbnQ6OkFu
aW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vj
b25kcz4gY3VycmVudFRpbWUsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5p
bWF0aW9uKiBhbmltYXRpb24pCisgICAgOiBBbmltYXRpb25FdmVudEJhc2UodHlwZSwgYW5pbWF0
aW9uLCB0aW1lbGluZVRpbWUpCiAgICAgLCBtX2N1cnJlbnRUaW1lKGN1cnJlbnRUaW1lKQotICAg
ICwgbV90aW1lbGluZVRpbWUodGltZWxpbmVUaW1lKQogewogfQogCkBAIC02NSw5ICs2NCw5IEBA
IE9wdGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6YmluZGluZ3NDdXJyZW50
VGltZSgpIGNvbnN0CiAKIE9wdGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6
YmluZGluZ3NUaW1lbGluZVRpbWUoKSBjb25zdAogewotICAgIGlmICghbV90aW1lbGluZVRpbWUp
CisgICAgaWYgKCF0aW1lbGluZVRpbWUoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
LSAgICByZXR1cm4gc2Vjb25kc1RvV2ViQW5pbWF0aW9uc0FQSVRpbWUobV90aW1lbGluZVRpbWUu
dmFsdWUoKSk7CisgICAgcmV0dXJuIHNlY29uZHNUb1dlYkFuaW1hdGlvbnNBUElUaW1lKHRpbWVs
aW5lVGltZSgpLnZhbHVlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuaAppbmRleCBi
MjI4NWIwMDg0MDE2ZGU4ZDUwYzczM2UwNTY1MWY0YjVhYTFmYWNjLi4zNWZmOTdjNzQzZWE0NDg4
NTg0MmVkZGE4NDg5ZTRlNGZlZmY3YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25QbGF5YmFja0V2ZW50LmgKQEAgLTI1LDE4ICsyNSwxOCBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgIkFuaW1hdGlvbkV2ZW50QmFzZS5oIgogI2luY2x1ZGUgIkFu
aW1hdGlvblBsYXliYWNrRXZlbnRJbml0LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRl
IDx3dGYvTWFya2FibGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBbmltYXRp
b25QbGF5YmFja0V2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIEFuaW1hdGlvblBs
YXliYWNrRXZlbnQgZmluYWwgOiBwdWJsaWMgQW5pbWF0aW9uRXZlbnRCYXNlIHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKEFuaW1hdGlvblBsYXliYWNrRXZlbnQpOwogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8QW5pbWF0aW9uUGxheWJhY2tFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUsIE9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lLCBPcHRpb25hbDxTZWNvbmRz
PiB0aW1lbGluZVRpbWUpCisgICAgc3RhdGljIFJlZjxBbmltYXRpb25QbGF5YmFja0V2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRp
bWUsIE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRp
b24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRpb25QbGF5YmFj
a0V2ZW50KHR5cGUsIGN1cnJlbnRUaW1lLCB0aW1lbGluZVRpbWUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQW5pbWF0aW9uUGxheWJhY2tFdmVudCh0eXBlLCBjdXJyZW50VGltZSwg
dGltZWxpbmVUaW1lLCBhbmltYXRpb24pKTsKICAgICB9CiAKICAgICBzdGF0aWMgUmVmPEFuaW1h
dGlvblBsYXliYWNrRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBB
bmltYXRpb25QbGF5YmFja0V2ZW50SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0
ZWQgPSBJc1RydXN0ZWQ6Ok5vKQpAQCAtNDYsMTkgKzQ2LDIxIEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgfkFuaW1hdGlvblBsYXliYWNrRXZlbnQoKTsKIAorICAgIGJvb2wgaXNBbmltYXRpb25Q
bGF5YmFja0V2ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgT3B0aW9u
YWw8ZG91YmxlPiBiaW5kaW5nc0N1cnJlbnRUaW1lKCkgY29uc3Q7CiAgICAgT3B0aW9uYWw8U2Vj
b25kcz4gY3VycmVudFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRUaW1lOyB9CiAgICAg
T3B0aW9uYWw8ZG91YmxlPiBiaW5kaW5nc1RpbWVsaW5lVGltZSgpIGNvbnN0OwotICAgIE9wdGlv
bmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZWxpbmVUaW1l
OyB9CiAKICAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIEFuaW1hdGlvblBsYXliYWNrRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAKIHByaXZh
dGU6Ci0gICAgQW5pbWF0aW9uUGxheWJhY2tFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgT3B0aW9u
YWw8U2Vjb25kcz4sIE9wdGlvbmFsPFNlY29uZHM+KTsKKyAgICBBbmltYXRpb25QbGF5YmFja0V2
ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBPcHRpb25hbDxTZWNvbmRzPiwgT3B0aW9uYWw8U2Vjb25k
cz4sIFdlYkFuaW1hdGlvbiopOwogICAgIEFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRv
bVN0cmluZyYsIGNvbnN0IEFuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsK
IAogICAgIE1hcmthYmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBtX2N1cnJl
bnRUaW1lOwotICAgIE1hcmthYmxlPFNlY29uZHMsIFNlY29uZHM6Ok1hcmthYmxlVHJhaXRzPiBt
X3RpbWVsaW5lVGltZTsKIH07CiAKIH0KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklNQVRJ
T05fRVZFTlRfQkFTRShBbmltYXRpb25QbGF5YmFja0V2ZW50LCBpc0FuaW1hdGlvblBsYXliYWNr
RXZlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKaW5kZXgg
NThhZGEwM2Y4NGNmZmI1ZjlhYjQ5N2NiNjY5YzBlZTkyNjUwOTljMC4uZmVjZjAyYWMwZTM4ODky
Yzc0OGFmMTJiOWNiNjQxYTExYjljNTMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NT
U0FuaW1hdGlvbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDU1NBbmltYXRpb24u
aCIKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIkFuaW1hdGlvbkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCkBAIC0xMjcsNCArMTI4LDkgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gQ1NTQW5pbWF0aW9uOjpiaW5kaW5nc1BhdXNlKCkKICAgICByZXR1cm4gRGVj
bGFyYXRpdmVBbmltYXRpb246OmJpbmRpbmdzUGF1c2UoKTsKIH0KIAorUmVmPEFuaW1hdGlvbkV2
ZW50QmFzZT4gQ1NTQW5pbWF0aW9uOjpjcmVhdGVFdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVu
dFR5cGUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9JZCwgT3B0aW9u
YWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKQoreworICAgIHJldHVybiBBbmltYXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50VHlwZSwgbV9hbmltYXRpb25OYW1lLCBlbGFwc2VkVGltZSwgcHNldWRvSWQs
IHRpbWVsaW5lVGltZSwgdGhpcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uaAppbmRleCA4YTgwNmFhYzJhZTcwMTU4Njg3
NTAzNTQzYzViZGZmODdkZWQzZjhiLi4yMmU4ZDE1OTc1ZTk5YzIzODY0NmJmZmY3ZDcxYjhjYjdl
ZTA2YzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5oCkBAIC00OSw2
ICs0OSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgc3luY1Byb3BlcnRpZXNX
aXRoQmFja2luZ0FuaW1hdGlvbigpIGZpbmFsOworICAgIFJlZjxBbmltYXRpb25FdmVudEJhc2U+
IGNyZWF0ZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlIGVsYXBzZWRU
aW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0lkLCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRp
bWUpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIENTU0FuaW1hdGlvbihFbGVtZW50JiwgY29uc3Qg
QW5pbWF0aW9uJiwgY29uc3QgUmVuZGVyU3R5bGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9DU1NUcmFuc2l0aW9uLmNwcAppbmRleCA2YTY2Yjg3ODE0ODg4ZjQ1NDQ5MWQ3OTE3ODVkNjFi
MjdiNDk0ZTE2Li41ODU5YjJlMzRmODNiNTc1MzU0OTAyNmVjZTVjY2ZkMjBmOTNkM2Q0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCisjaW5jbHVkZSAiVHJhbnNpdGlv
bkV2ZW50LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtODUsNCArODYsOSBAQCB2b2lkIENTU1RyYW5zaXRpb246OnNldFRpbWlu
Z1Byb3BlcnRpZXMoU2Vjb25kcyBkZWxheSwgU2Vjb25kcyBkdXJhdGlvbikKICAgICB1bnN1c3Bl
bmRFZmZlY3RJbnZhbGlkYXRpb24oKTsKIH0KIAorUmVmPEFuaW1hdGlvbkV2ZW50QmFzZT4gQ1NT
VHJhbnNpdGlvbjo6Y3JlYXRlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBkb3Vi
bGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvSWQsIE9wdGlvbmFsPFNlY29uZHM+
IHRpbWVsaW5lVGltZSkKK3sKKyAgICByZXR1cm4gVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZl
bnRUeXBlLCBnZXRQcm9wZXJ0eU5hbWVTdHJpbmcobV9wcm9wZXJ0eSksIGVsYXBzZWRUaW1lLCBw
c2V1ZG9JZCwgdGltZWxpbmVUaW1lLCB0aGlzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmgKaW5kZXggNDIyNGFiNTc2
ODczYTQ0YjE4MThiODFmZGQzMTUwODk3ZGVkNWJmMS4uMjMzMTdlZGY2YTk0MmY3YjQ0OWIzODY4
MmJjNDBlNmRkMTQ3YWMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NT
U1RyYW5zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlv
bi5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQ1NTVHJhbnNpdGlv
bihFbGVtZW50JiwgQ1NTUHJvcGVydHlJRCwgTW9ub3RvbmljVGltZSBnZW5lcmF0aW9uVGltZSwg
Y29uc3QgQW5pbWF0aW9uJiwgY29uc3QgUmVuZGVyU3R5bGUmIG9sZFN0eWxlLCBjb25zdCBSZW5k
ZXJTdHlsZSYgdGFyZ2V0U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiByZXZlcnNpbmdBZGp1c3Rl
ZFN0YXJ0U3R5bGUsIGRvdWJsZSk7CiAgICAgdm9pZCBzZXRUaW1pbmdQcm9wZXJ0aWVzKFNlY29u
ZHMgZGVsYXksIFNlY29uZHMgZHVyYXRpb24pOworICAgIFJlZjxBbmltYXRpb25FdmVudEJhc2U+
IGNyZWF0ZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlIGVsYXBzZWRU
aW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0lkLCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRp
bWUpIGZpbmFsOwogCiAgICAgQ1NTUHJvcGVydHlJRCBtX3Byb3BlcnR5OwogICAgIE1vbm90b25p
Y1RpbWUgbV9nZW5lcmF0aW9uVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RGVjbGFyYXRpdmVBbmltYXRpb24uY3BwCmluZGV4IGJiZTRjMzcwNTc1ZjI5ZWNkZDIzMWE2NTY3
YmIwNWQwNmM3YTU0OTcuLmUzMWQyZjcxMDE1ZWIyODFjODRlNDU4NjBlMTU2NjgwOThhNGZjMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9u
LmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkRlY2xhcmF0aXZlQW5pbWF0aW9uLmgi
CiAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKLSNpbmNsdWRlICJBbmltYXRpb25FdmVudC5oIgog
I2luY2x1ZGUgIkNTU0FuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkNTU1RyYW5zaXRpb24uaCIKICNp
bmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgiCkBAIC0zNSw3ICszNCw2IEBACiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCiAjaW5jbHVkZSAiUHNl
dWRvRWxlbWVudC5oIgotI2luY2x1ZGUgIlRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1MSwxMCAr
MzQ5LDkgQEAgdm9pZCBEZWNsYXJhdGl2ZUFuaW1hdGlvbjo6ZW5xdWV1ZURPTUV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgU2Vjb25kcwogewogICAgIEFTU0VSVChtX293bmluZ0Vs
ZW1lbnQpOwogICAgIGF1dG8gdGltZSA9IHNlY29uZHNUb1dlYkFuaW1hdGlvbnNBUElUaW1lKGVs
YXBzZWRUaW1lKSAvIDEwMDA7Ci0gICAgaWYgKGlzPENTU0FuaW1hdGlvbj4odGhpcykpCi0gICAg
ICAgIG1fZXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KEFuaW1hdGlvbkV2ZW50OjpjcmVhdGUoZXZl
bnRUeXBlLCBkb3duY2FzdDxDU1NBbmltYXRpb24+KHRoaXMpLT5hbmltYXRpb25OYW1lKCksIHRp
bWUsIFBzZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKG1fb3duaW5nRWxl
bWVudC0+cHNldWRvSWQoKSkpKTsKLSAgICBlbHNlIGlmIChpczxDU1NUcmFuc2l0aW9uPih0aGlz
KSkKLSAgICAgICAgbV9ldmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoVHJhbnNpdGlvbkV2ZW50Ojpj
cmVhdGUoZXZlbnRUeXBlLCBkb3duY2FzdDxDU1NUcmFuc2l0aW9uPih0aGlzKS0+dHJhbnNpdGlv
blByb3BlcnR5KCksIHRpbWUsIFBzZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZl
bnRzKG1fb3duaW5nRWxlbWVudC0+cHNldWRvSWQoKSkpKTsKKyAgICBjb25zdCBhdXRvJiBwc2V1
ZG9JZCA9IFBzZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKG1fb3duaW5n
RWxlbWVudC0+cHNldWRvSWQoKSk7CisgICAgYXV0byB0aW1lbGluZVRpbWUgPSB0aW1lbGluZSgp
ID8gdGltZWxpbmUoKS0+Y3VycmVudFRpbWUoKSA6IFdURjo6bnVsbG9wdDsKKyAgICBtX2V2ZW50
UXVldWUtPmVucXVldWVFdmVudChjcmVhdGVFdmVudChldmVudFR5cGUsIHRpbWUsIHBzZXVkb0lk
LCB0aW1lbGluZVRpbWUpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uaAppbmRleCAzNjNlOThj
ZTMxNzY2Yzk1YjZlOTMzZWRlYzdmMTI3Yjc5NDU4YzYxLi5hZDQ4Yzk4NjU4MzgzOGUyMjZjMjYz
YzcxNTgzZTFiNTc1NzFlMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RGVjbGFyYXRpdmVBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRGVj
bGFyYXRpdmVBbmltYXRpb24uaApAQCAtMzQsNiArMzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBBbmltYXRpb247CitjbGFzcyBBbmltYXRpb25FdmVudEJhc2U7CiBjbGFzcyBF
bGVtZW50OwogY2xhc3MgUmVuZGVyU3R5bGU7CiAKQEAgLTc0LDYgKzc1LDcgQEAgcHJvdGVjdGVk
OgogCiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpOwogICAgIHZpcnR1YWwgdm9pZCBzeW5j
UHJvcGVydGllc1dpdGhCYWNraW5nQW5pbWF0aW9uKCk7CisgICAgdmlydHVhbCBSZWY8QW5pbWF0
aW9uRXZlbnRCYXNlPiBjcmVhdGVFdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGRv
dWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9JZCwgT3B0aW9uYWw8U2Vjb25k
cz4gdGltZWxpbmVUaW1lKSA9IDA7CiAgICAgdm9pZCBpbnZhbGlkYXRlRE9NRXZlbnRzKFNlY29u
ZHMgZWxhcHNlZFRpbWUgPSAwX3MpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vV2ViQW5pbWF0aW9uLmNwcAppbmRleCBkNDIxMWNjNWVjNTRmNjA1ODZlZDE0NDc3NDRhY2U5
ODQwMWI4NzM1Li5kMDg5NmZiN2NjYjIwYWRhZTQyYzUwZjhlZDk2NTc3MmE4MDJkZjM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAtNjgzLDcgKzY4Myw3
IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjp3aWxsQ2hhbmdlUmVuZGVyZXIoKQogCiB2b2lkIFdlYkFu
aW1hdGlvbjo6ZW5xdWV1ZUFuaW1hdGlvblBsYXliYWNrRXZlbnQoY29uc3QgQXRvbVN0cmluZyYg
dHlwZSwgT3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUsIE9wdGlvbmFsPFNlY29uZHM+IHRp
bWVsaW5lVGltZSkKIHsKLSAgICBhdXRvIGV2ZW50ID0gQW5pbWF0aW9uUGxheWJhY2tFdmVudDo6
Y3JlYXRlKHR5cGUsIGN1cnJlbnRUaW1lLCB0aW1lbGluZVRpbWUpOworICAgIGF1dG8gZXZlbnQg
PSBBbmltYXRpb25QbGF5YmFja0V2ZW50OjpjcmVhdGUodHlwZSwgY3VycmVudFRpbWUsIHRpbWVs
aW5lVGltZSwgdGhpcyk7CiAgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKIAogICAgIGlmIChp
czxEb2N1bWVudFRpbWVsaW5lPihtX3RpbWVsaW5lKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BbmltYXRp
b25FdmVudC5jcHAKaW5kZXggZGM4OTg2NGRkYTIwMjM0MDVhYTYxZTllY2NjYjgwNDE3ZjRjNzEx
Ni4uOGZiMTlkNTkwNzk1MTFmY2QzMDE2YTgzZDUyOWY2OTQyNjdjZDYyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQW5pbWF0aW9uRXZlbnQuY3BwCkBAIC0zMywxNSArMzMsMTUgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEFuaW1hdGlvbkV2ZW50KTsKIAog
QW5pbWF0aW9uRXZlbnQ6OkFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNv
bnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQotICAgIDogRXZlbnQo
dHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICA6IEFuaW1hdGlvbkV2ZW50QmFzZSh0
eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQogICAgICwgbV9hbmltYXRpb25OYW1lKGluaXRp
YWxpemVyLmFuaW1hdGlvbk5hbWUpCiAgICAgLCBtX2VsYXBzZWRUaW1lKGluaXRpYWxpemVyLmVs
YXBzZWRUaW1lKQogICAgICwgbV9wc2V1ZG9FbGVtZW50KGluaXRpYWxpemVyLnBzZXVkb0VsZW1l
bnQpCiB7CiB9CiAKLUFuaW1hdGlvbkV2ZW50OjpBbmltYXRpb25FdmVudChjb25zdCBBdG9tU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGlt
ZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KQotICAgIDogRXZlbnQodHlwZSwgQ2FuQnVi
YmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6Tm8pCitBbmltYXRpb25FdmVudDo6QW5pbWF0aW9uRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBk
b3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCwgT3B0aW9uYWw8
U2Vjb25kcz4gdGltZWxpbmVUaW1lLCBXZWJBbmltYXRpb24qIGFuaW1hdGlvbikKKyAgICA6IEFu
aW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBhbmltYXRpb24sIHRpbWVsaW5lVGltZSkKICAgICAsIG1f
YW5pbWF0aW9uTmFtZShhbmltYXRpb25OYW1lKQogICAgICwgbV9lbGFwc2VkVGltZShlbGFwc2Vk
VGltZSkKICAgICAsIG1fcHNldWRvRWxlbWVudChwc2V1ZG9FbGVtZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
QW5pbWF0aW9uRXZlbnQuaAppbmRleCAwMWVhZTM3MzFkY2NjY2U0ZGY0NWVmMmU2M2Y2ZWEzMTBk
MjQ2NDVmLi43OTU1ZDcxMWNhYjdmN2I5ZGRiZjZhMGFjZDkwZjYwYmMwMTMzZjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQW5pbWF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQW5pbWF0aW9uRXZlbnQuaApAQCAtMjUsMTYgKzI1LDE2IEBACiAKICNwcmFnbWEg
b25jZQogCi0jaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJBbmltYXRpb25FdmVudEJhc2Uu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBbmltYXRpb25FdmVudCBmaW5hbCA6
IHB1YmxpYyBFdmVudCB7CitjbGFzcyBBbmltYXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBBbmlt
YXRpb25FdmVudEJhc2UgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQW5pbWF0aW9uRXZl
bnQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QW5pbWF0aW9uRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBl
bGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KQorICAgIHN0YXRpYyBSZWY8
QW5pbWF0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1
ZG9FbGVtZW50LCBPcHRpb25hbDxTZWNvbmRzPiB0aW1lbGluZVRpbWUsIFdlYkFuaW1hdGlvbiog
YW5pbWF0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5pbWF0aW9u
RXZlbnQodHlwZSwgYW5pbWF0aW9uTmFtZSwgZWxhcHNlZFRpbWUsIHBzZXVkb0VsZW1lbnQpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5pbWF0aW9uRXZlbnQodHlwZSwgYW5pbWF0
aW9uTmFtZSwgZWxhcHNlZFRpbWUsIHBzZXVkb0VsZW1lbnQsIHRpbWVsaW5lVGltZSwgYW5pbWF0
aW9uKSk7CiAgICAgfQogCiAgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgewpAQCAtNTAsNiAr
NTAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5BbmltYXRpb25FdmVudCgpOwogCisgICAg
Ym9vbCBpc0FuaW1hdGlvbkV2ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCiAg
ICAgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lKCkgY29uc3Q7CiAgICAgZG91YmxlIGVsYXBz
ZWRUaW1lKCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KCkgY29uc3Q7
CkBAIC01Nyw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBFdmVudEludGVyZmFjZSBldmVudEludGVy
ZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIEFuaW1hdGlvbkV2ZW50KGNv
bnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91Ymxl
IGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQpOworICAgIEFuaW1hdGlv
bkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFt
ZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQsIE9wdGlv
bmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKik7CiAgICAgQW5pbWF0aW9u
RXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOwogCiAgICAg
U3RyaW5nIG1fYW5pbWF0aW9uTmFtZTsKQEAgLTY2LDMgKzY4LDUgQEAgcHJpdmF0ZToKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19BTklNQVRJ
T05fRVZFTlRfQkFTRShBbmltYXRpb25FdmVudCwgaXNBbmltYXRpb25FdmVudCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmNwcAppbmRleCA2OTYxZWYzMmQxM2YzNzE3MzRiMTBm
M2ViY2E0MzVhMGQ1YjM2M2YzLi4zZDU5MjY1NzU3NzFlMzgzOGEyODM4ZGE0N2ZmYTllMjIwNWRk
YWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmNwcApAQCAtMzMsOCArMzMs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChU
cmFuc2l0aW9uRXZlbnQpOwogCi1UcmFuc2l0aW9uRXZlbnQ6OlRyYW5zaXRpb25FdmVudChjb25z
dCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVs
YXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQpCi0gICAgOiBFdmVudCh0eXBl
LCBDYW5CdWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpZZXMpCitUcmFuc2l0aW9uRXZlbnQ6OlRy
YW5zaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHByb3Bl
cnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnQs
IE9wdGlvbmFsPFNlY29uZHM+IHRpbWVsaW5lVGltZSwgV2ViQW5pbWF0aW9uKiBhbmltYXRpb24p
CisgICAgOiBBbmltYXRpb25FdmVudEJhc2UodHlwZSwgYW5pbWF0aW9uLCB0aW1lbGluZVRpbWUp
CiAgICAgLCBtX3Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpCiAgICAgLCBtX2VsYXBzZWRUaW1l
KGVsYXBzZWRUaW1lKQogICAgICwgbV9wc2V1ZG9FbGVtZW50KHBzZXVkb0VsZW1lbnQpCkBAIC00
Miw3ICs0Miw3IEBAIFRyYW5zaXRpb25FdmVudDo6VHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21T
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOCiB9CiAKIFRyYW5zaXRpb25FdmVu
dDo6VHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGlu
aXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQotICAgIDogRXZlbnQodHlwZSwgaW5pdGlh
bGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICA6IEFuaW1hdGlvbkV2ZW50QmFzZSh0eXBlLCBpbml0aWFs
aXplciwgaXNUcnVzdGVkKQogICAgICwgbV9wcm9wZXJ0eU5hbWUoaW5pdGlhbGl6ZXIucHJvcGVy
dHlOYW1lKQogICAgICwgbV9lbGFwc2VkVGltZShpbml0aWFsaXplci5lbGFwc2VkVGltZSkKICAg
ICAsIG1fcHNldWRvRWxlbWVudChpbml0aWFsaXplci5wc2V1ZG9FbGVtZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RyYW5zaXRpb25FdmVudC5oCmluZGV4IDQ5NGY5YTRlZWM2Yzg4NzdjOWY3YjlhZTQ2NmQ0
YTM5OThjYjIzMDEuLjIzMTM2ZDczZjA3YmJkOWJjMTRhY2I4MjEzNDc3N2IxMjA4ZWIxMGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmFuc2l0aW9uRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmgKQEAgLTI2LDE2ICsyNiwxNiBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uRXZl
bnRCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVHJhbnNpdGlvbkV2ZW50
IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIFRyYW5zaXRpb25FdmVudCBmaW5hbCA6IHB1
YmxpYyBBbmltYXRpb25FdmVudEJhc2UgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoVHJh
bnNpdGlvbkV2ZW50KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFRyYW5zaXRpb25FdmVudD4g
Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1l
LCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCkKKyAgICBz
dGF0aWMgUmVmPFRyYW5zaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0
cmluZyYgcHNldWRvRWxlbWVudCwgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lLCBXZWJB
bmltYXRpb24qIGFuaW1hdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFRyYW5zaXRpb25FdmVudCh0eXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lLCBwc2V1ZG9F
bGVtZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRyYW5zaXRpb25FdmVudCh0
eXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lLCBwc2V1ZG9FbGVtZW50LCB0aW1lbGluZVRp
bWUsIGFuaW1hdGlvbikpOwogICAgIH0KIAogICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsK
QEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+VHJhbnNpdGlvbkV2ZW50
KCk7CiAKKyAgICBib29sIGlzVHJhbnNpdGlvbkV2ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQorCiAgICAgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUoKSBjb25zdDsKICAgICBk
b3VibGUgZWxhcHNlZFRpbWUoKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1l
bnQoKSBjb25zdDsKQEAgLTU4LDcgKzYwLDcgQEAgcHVibGljOgogICAgIEV2ZW50SW50ZXJmYWNl
IGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgVHJhbnNp
dGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCk7Cisg
ICAgVHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
cHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxl
bWVudCwgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lLCBXZWJBbmltYXRpb24qKTsKICAg
ICBUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5p
dGlhbGl6ZXIsIElzVHJ1c3RlZCk7CiAKICAgICBTdHJpbmcgbV9wcm9wZXJ0eU5hbWU7CkBAIC02
NywzICs2OSw1IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfQU5JTUFUSU9OX0VWRU5UX0JBU0UoVHJhbnNpdGlvbkV2ZW50
LCBpc1RyYW5zaXRpb25FdmVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCBiMTQ1MzYwMDU0N2Zh
MDZhMzdlOTc4ZWQzMjdhMzg3ZmYxNTk1MWYzLi4xMWRiMDYwMDVjMzA5NjUxYmMwZDdhNWM3Yzk5
MzdiN2FjZWQyMDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9D
U1NBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMjI1LDkgKzIyNSw5IEBAIHZvaWQg
Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSgp
CiAgICAgZm9yIChhdXRvJiBldmVudCA6IGV2ZW50c1RvRGlzcGF0Y2gpIHsKICAgICAgICAgRWxl
bWVudCYgZWxlbWVudCA9IGV2ZW50LmVsZW1lbnQ7CiAgICAgICAgIGlmIChldmVudC5ldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCkKLSAgICAgICAgICAgIGVsZW1l
bnQuZGlzcGF0Y2hFdmVudChUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudC5ldmVudFR5cGUs
IGV2ZW50Lm5hbWUsIGV2ZW50LmVsYXBzZWRUaW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVt
ZW50TmFtZUZvckV2ZW50cyhlbGVtZW50LnBzZXVkb0lkKCkpKSk7CisgICAgICAgICAgICBlbGVt
ZW50LmRpc3BhdGNoRXZlbnQoVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnQuZXZlbnRUeXBl
LCBldmVudC5uYW1lLCBldmVudC5lbGFwc2VkVGltZSwgUHNldWRvRWxlbWVudDo6cHNldWRvRWxl
bWVudE5hbWVGb3JFdmVudHMoZWxlbWVudC5wc2V1ZG9JZCgpKSwgV1RGOjpudWxsb3B0LCBudWxs
cHRyKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChB
bmltYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQu
ZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVs
ZW1lbnQucHNldWRvSWQoKSkpKTsKKyAgICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChB
bmltYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQu
ZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVs
ZW1lbnQucHNldWRvSWQoKSksIFdURjo6bnVsbG9wdCwgbnVsbHB0cikpOwogICAgIH0KIAogICAg
IGZvciAoYXV0byYgY2hhbmdlIDogbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gpCg==
</data>
<flag name="review"
          id="406358"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>