<?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>215591</bug_id>
          
          <creation_ts>2020-08-17 16:05:50 -0700</creation_ts>
          <short_desc>AudioContext.getOutputTimestamp() is missing</short_desc>
          <delta_ts>2020-08-18 09:32:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://www.w3.org/TR/webaudio/#dom-audiocontext-getoutputtimestamp</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>clark_wang</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1680956</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-17 16:05:50 -0700</bug_when>
    <thetext>AudioContext.getOutputTimestamp() is missing:
- https://www.w3.org/TR/webaudio/#dom-audiocontext-getoutputtimestamp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680958</commentid>
    <comment_count>1</comment_count>
      <attachid>406750</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-17 16:10:57 -0700</bug_when>
    <thetext>Created attachment 406750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680967</commentid>
    <comment_count>2</comment_count>
      <attachid>406753</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-17 16:20:49 -0700</bug_when>
    <thetext>Created attachment 406753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680984</commentid>
    <comment_count>3</comment_count>
      <attachid>406753</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-17 17:28:58 -0700</bug_when>
    <thetext>Comment on attachment 406753
Patch

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

&gt; Source/WebCore/Modules/webaudio/AudioContext.cpp:105
&gt; +        return AudioTimestamp { 0, 0 };

Should not need to write the class name here.

&gt; Source/WebCore/Modules/webaudio/AudioContext.cpp:114
&gt; +    if (position.position.seconds() &gt; currentTime())
&gt; +        position.position = Seconds { currentTime() };

We often write this kind of clamping using std::max instead of an if statement.

&gt; Source/WebCore/Modules/webaudio/AudioContext.cpp:118
&gt; +    if (performanceTime &lt; 0.0)
&gt; +        performanceTime = 0.0;

We often write this kind of clamping using std::max instead of an if statement.

&gt; Source/WebCore/Modules/webaudio/AudioContext.cpp:120
&gt; +    return AudioTimestamp { position.position.seconds(), performanceTime };

Should not need to write the class name here.

&gt; Source/WebCore/Modules/webaudio/AudioContext.h:33
&gt; +struct AudioTimestamp;

Typically the struct paragraph is separate and below the class paragraph.

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:771
&gt; +    AutoLocker locker(*this);
&gt; +    return m_outputPosition;

The locking here doesn’t prevent races, but I suppose it prevents undefined behavior or getting mismatched structure values.

&gt; Source/WebCore/platform/audio/AudioIOCallback.h:30
&gt;  #ifndef AudioIOCallback_h
&gt;  #define AudioIOCallback_h

#pragma once

&gt; Source/WebCore/platform/audio/AudioIOCallback.h:53
&gt; +    static WARN_UNUSED_RETURN bool decode(Decoder&amp; decoder, AudioIOPosition&amp; result)

I think we want the version that returns Optional rather than the version that returns bool.

&gt; Source/WebCore/platform/audio/cocoa/AudioDestinationCocoa.cpp:161
&gt; +static MonotonicTime machAbsoluteTimeToMonotonicTime(uint64_t machAbsoluteTime)
&gt; +{
&gt; +    // Based on listing #2 from Apple QA 1398, but modified to be thread-safe.
&gt; +    static mach_timebase_info_data_t timebaseInfo;
&gt; +    static std::once_flag initializeTimerOnceFlag;
&gt; +    std::call_once(initializeTimerOnceFlag, [] {
&gt; +        kern_return_t kr = mach_timebase_info(&amp;timebaseInfo);
&gt; +        ASSERT_UNUSED(kr, kr == KERN_SUCCESS);
&gt; +        ASSERT(timebaseInfo.denom);
&gt; +    });
&gt; +
&gt; +    return MonotonicTime::fromRawSeconds((machAbsoluteTime * timebaseInfo.numer) / (1.0e9 * timebaseInfo.denom));
&gt; +}

This seems like a peculiar place for this function, which doesn’t seem to be specific to audio, just to Cocoa. Should we put this alongside the MonotonicTime class instead?

&gt; Source/WebCore/platform/audio/cocoa/AudioDestinationCocoa.h:70
&gt; +    OSStatus render(const AudioTimeStamp* timestamp, UInt32 numberOfFrames, AudioBufferList* ioData);

No need for the argument name &quot;timestamp&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680991</commentid>
    <comment_count>4</comment_count>
      <attachid>406758</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-17 17:49:26 -0700</bug_when>
    <thetext>Created attachment 406758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680995</commentid>
    <comment_count>5</comment_count>
      <attachid>406760</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-17 17:52:12 -0700</bug_when>
    <thetext>Created attachment 406760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680996</commentid>
    <comment_count>6</comment_count>
      <attachid>406761</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-17 18:06:46 -0700</bug_when>
    <thetext>Created attachment 406761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681003</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-17 19:16:18 -0700</bug_when>
    <thetext>Committed r265797: &lt;https://trac.webkit.org/changeset/265797&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406761.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681004</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-17 19:17:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/67288515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681099</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-18 09:32:20 -0700</bug_when>
    <thetext>Follow-up landed in &lt;https://trac.webkit.org/changeset/265819&gt; to address fast/mediastream/getUserMedia-webaudio.html test failure.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406750</attachid>
            <date>2020-08-17 16:10:57 -0700</date>
            <delta_ts>2020-08-17 16:20:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215591-20200817161056.patch</filename>
            <type>text/plain</type>
            <size>38530</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU3NmRkZWY3ZTdhMDdj
NTVlMmE5ZThkNGFkOTZjZjc4YmYyN2E5OC4uOWVkYmRlMzJlNDg3YzA1OWZkNGRjMDBhNmI3M2I5
NWU5MmU2Y2E0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA4LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9Db250ZXh0LmdldE91
dHB1dFRpbWVzdGFtcCgpIGlzIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNTU5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEF1ZGlvQ29udGV4dC5nZXRPdXRwdXRUaW1lc3RhbXAoKSBpcyBt
aXNzaW5nOgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1
ZGlvY29udGV4dC1nZXRvdXRwdXR0aW1lc3RhbXAKKworICAgICAgICBObyBuZXcgdGVzdHMsIHJl
YmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Z2V0T3V0cHV0VGltZXN0YW1wKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25O
b2RlOjpyZW5kZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlv
bk5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmgu
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGw6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmguCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVByZVJlbmRlclRhc2tzKToKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6Om91dHB1dFBvc2l0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9mZmxpbmVSZW5kZXIpOgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvSU9Qb3NpdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvSU9Qb3NpdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFjaEFi
c29sdXRlVGltZVRvTW9ub3RvbmljVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3Rp
bmF0aW9uQ29jb2E6OnJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
Q29jb2E6OmlucHV0UHJvYyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmg6CisKIDIwMjAtMDgtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBXYXZlU2hhcGVyTm9kZSBzaG91bGQgbm90IG91dHB1dCBzaWxl
bmNlIHdoZW4gaXQgaGFzIG5vIGlucHV0IG9yIHdoZW4gaW5wdXQgaXMgc2lsZW5jZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCAwOGY0MjgyNzZhY2NlNzQ3YjJkNTA5ZDQ1NDU5YTRkNGNlODA3MDM4Li42Y2FmYmJiMDdm
ZDUwZTc3ZjRhNDc3YTI2NzhhZmE2MjNiOWU1ZGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIwLTA4LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
QXVkaW9Db250ZXh0LmdldE91dHB1dFRpbWVzdGFtcCgpIGlzIG1pc3NpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTU5MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvQnVzRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9C
dXNEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKToKKwogMjAyMC0wOC0xNyAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBBZGQgRXhwZXJpbWVudGFsIEZl
YXR1cmUgcHJlZmVyZW5jZSBmb3IgU1cgVlA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGE1ZjBl
N2EwODY4OTg3MTVlNjUyZDFhNWNiYWU0N2U3N2IwNzM4ZjQuLmRmZGMwYjZlOGViYTJiYWRkNGMy
ZWQ3ZDUxZmU2MzI4MDNmMjQ5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NjYsNiArNDY2
LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9j
ZXNzaW5nRXZlbnRJbml0LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlLmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCiAg
ICAgTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAogICAgIE1vZHVsZXMvd2Vi
YXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZp
bHRlck9wdGlvbnMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAppbmRleCA0ODdjYTdmODRmN2JmODgwNzZlMzE4NTk1ZDFhNjMzYmE2Y2YwODdj
Li5hYjRmN2RlOGM0ZjdlZmViNWM4NTE3YzNmZDg3Mjc2MjcwZjQ5YjIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTMxNyw2ICszMTcs
NyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlkbAogJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudEluaXQuaWRs
CiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRs
CiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck9wdGlvbnMuaWRsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDZj
ZjM1NmE0YmU2YTdjZmZlMzAwN2RhNjc1ZDllZTAxMDYyOGNkOTYuLjljZDQ0NDRlMmMxYTFjZjc5
OGFiYTU3ZDc1OTJmZmRmOTg3M2VlM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xODMsNiArMTgzLDggQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1Byb2Nlc3NpbmdFdmVudElu
aXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1
ZGlvUHJvY2Vzc2luZ0V2ZW50SW5pdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVk
aW9UaW1lc3RhbXAuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0F1ZGlvVGltZXN0YW1wLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFjay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFjay5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tMaXN0LmNwcApAQCAtNDAxLDYgKzQw
Myw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNDdXN0b21FbGVtZW50UmVnaXN0cnkuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21FdmVudC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tRXZlbnQuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01CaW5kaW5nSW50
ZXJuYWxzQnVpbHRpbnMuaApAQCAtMjI3Miw4ICsyMjc2LDYgQEAgJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aEV2YWx1YXRvci5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTWFBhdGhFdmFsdWF0b3IuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aEV4cHJl
c3Npb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1hQYXRoRXhwcmVzc2lvbi5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTWFBhdGhOU1Jlc29sdmVy
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0
aE5TUmVzb2x2ZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNYUGF0aFJlc3VsdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDBh
YWQ4ZTM0YzU4ZDQ4NDUzNzg0ODkyYTdkNTE2Y2U4NTllNWVjNzIuLmE2MzU4YTk5NTA0MTQ5OGZm
NjA1NmI5YzBmNWMzYTJkNjRiYTQ0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMzk4LDYgKzM5OCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyT3B0aW9ucy5pZGwgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4
IGFlZDMyMjgwNWVmN2EwZmMxZTA2YjY2NjY4MTUyYTU0ODc4ZDM3MjMuLjUwNTAxNWEyZWI5NWZk
YTA1ZjgwNTM2MmZjNjU5OTEwNGYyZjZiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTI4LDggKzI4LDExIEBACiAjaWYgRU5B
QkxFKFdFQl9BVURJTykKIAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIkF1
ZGlvVGltZXN0YW1wLmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtOTYsNiArOTksMjcgQEAgZG91
YmxlIEF1ZGlvQ29udGV4dDo6YmFzZUxhdGVuY3koKQogICAgIHJldHVybiBkZXN0aW5hdGlvbiA/
IHN0YXRpY19jYXN0PGRvdWJsZT4oZGVzdGluYXRpb24tPmZyYW1lc1BlckJ1ZmZlcigpKSAvIHNh
bXBsZVJhdGUoKSA6IDAuOwogfQogCitBdWRpb1RpbWVzdGFtcCBBdWRpb0NvbnRleHQ6OmdldE91
dHB1dFRpbWVzdGFtcChET01XaW5kb3cmIHdpbmRvdykKK3sKKyAgICBpZiAoIWRlc3RpbmF0aW9u
KCkpCisgICAgICAgIHJldHVybiBBdWRpb1RpbWVzdGFtcCB7IDAsIDAgfTsKKworICAgIGF1dG8m
IHBlcmZvcm1hbmNlID0gd2luZG93LnBlcmZvcm1hbmNlKCk7CisKKyAgICBhdXRvIHBvc2l0aW9u
ID0gb3V0cHV0UG9zaXRpb24oKTsKKworICAgIC8vIFRoZSB0aW1lc3RhbXAgb2Ygd2hhdCBpcyBj
dXJyZW50bHkgYmVpbmcgcGxheWVkIChjb250ZXh0VGltZSkgY2Fubm90IGJlCisgICAgLy8gbGF0
ZXIgdGhhbiB3aGF0IGlzIGJlaW5nIHJlbmRlcmVkLiAoY3VycmVudFRpbWUpCisgICAgaWYgKHBv
c2l0aW9uLnBvc2l0aW9uLnNlY29uZHMoKSA+IGN1cnJlbnRUaW1lKCkpCisgICAgICAgIHBvc2l0
aW9uLnBvc2l0aW9uID0gU2Vjb25kcyB7IGN1cnJlbnRUaW1lKCkgfTsKKworICAgIGF1dG8gcGVy
Zm9ybWFuY2VUaW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJl
ZHVjZWRSZXNvbHV0aW9uKHBvc2l0aW9uLnRpbWVzdGFtcCk7CisgICAgaWYgKHBlcmZvcm1hbmNl
VGltZSA8IDAuMCkKKyAgICAgICAgcGVyZm9ybWFuY2VUaW1lID0gMC4wOworCisgICAgcmV0dXJu
IEF1ZGlvVGltZXN0YW1wIHsgcG9zaXRpb24ucG9zaXRpb24uc2Vjb25kcygpLCBwZXJmb3JtYW5j
ZVRpbWUgfTsKK30KKwogdm9pZCBBdWRpb0NvbnRleHQ6OmNsb3NlKERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzT2ZmbGluZUNvbnRleHQoKSB8fCBpc1N0
b3BwZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmgKaW5kZXggMzVjNDM5N2IwZGQyYWM3YmNkNTk1YzI5MjZiZjFmMjAzY2I0MDQzZi4uNWJj
NTRlOTM4M2FiYzVjOGQ0OTE3YjU1ZmFjYWFhMWQ1NjQwNTBkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0zMCw2ICszMCw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RydWN0IEF1ZGlvVGltZXN0YW1wOworY2xhc3MgRE9N
V2luZG93OwogY2xhc3MgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOwogCiBjbGFzcyBBdWRp
b0NvbnRleHQgOiBwdWJsaWMgQmFzZUF1ZGlvQ29udGV4dCB7CkBAIC00Myw2ICs0NSw4IEBAIHB1
YmxpYzoKICAgICBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUqIGRlc3RpbmF0aW9uKCk7CiAg
ICAgZG91YmxlIGJhc2VMYXRlbmN5KCk7CiAKKyAgICBBdWRpb1RpbWVzdGFtcCBnZXRPdXRwdXRU
aW1lc3RhbXAoRE9NV2luZG93Jik7CisKICNpZiBFTkFCTEUoVklERU8pCiAgICAgRXhjZXB0aW9u
T3I8UmVmPE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZT4+IGNyZWF0ZU1lZGlhRWxlbWVudFNv
dXJjZShIVE1MTWVkaWFFbGVtZW50Jik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbAppbmRleCBiOWYwMzEyMDQ1Y2NjODAyOThm
MjEyNDY5ODJiY2FlZDBiYjRjMzU1Li41ZGZhNTllZWYxOGQ4MGYwY2JmNDBiMjI5ODY1ZGI3YWIz
ZTFiNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaWRsCkBAIC0zNiw3ICszNiw4IEBACiAKICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQu
CiAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBvdXRwdXRMYXRlbmN5OwotICAgIC8v
IEF1ZGlvVGltZXN0YW1wIGdldE91dHB1dFRpbWVzdGFtcCgpOworCisgICAgW0NhbGxXaXRoPUFj
dGl2ZVdpbmRvd10gQXVkaW9UaW1lc3RhbXAgZ2V0T3V0cHV0VGltZXN0YW1wKCk7CiAKICAgICBb
SW1wbGVtZW50ZWRBcz1zdXNwZW5kUmVuZGVyaW5nXSBQcm9taXNlPHZvaWQ+IHN1c3BlbmQoKTsK
ICAgICBbSW1wbGVtZW50ZWRBcz1yZXN1bWVSZW5kZXJpbmddIFByb21pc2U8dm9pZD4gcmVzdW1l
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IDQ0MTJmMTAwNTM5N2NlZjVhMmE3NTAyZGRjMzIxZDVk
ZGExNzQ5MjAuLmQzNDZkZjg5YjBlM2U0MDEyOTg2MDFkM2NlNzlkNTIxMjY3NWM4OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbk5vZGUuY3BwCkBAIC01NSw3ICs1NSw3IEBAIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjp+QXVk
aW9EZXN0aW5hdGlvbk5vZGUoKQogICAgIHVuaW5pdGlhbGl6ZSgpOwogfQogCi12b2lkIEF1ZGlv
RGVzdGluYXRpb25Ob2RlOjpyZW5kZXIoQXVkaW9CdXMqLCBBdWRpb0J1cyogZGVzdGluYXRpb25C
dXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJl
bmRlcihBdWRpb0J1cyosIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IG51bWJlck9m
RnJhbWVzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9uKQogewogICAgIC8v
IFdlIGRvbid0IHdhbnQgZGVub3JtYWxzIHNsb3dpbmcgZG93biBhbnkgb2YgdGhlIGF1ZGlvIHBy
b2Nlc3NpbmcKICAgICAvLyBzaW5jZSB0aGV5IGNhbiB2ZXJ5IHNlcmlvdXNseSBodXJ0IHBlcmZv
cm1hbmNlLgpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5k
ZXIoQXVkaW9CdXMqLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudQogICAgIH0K
IAogICAgIC8vIExldCB0aGUgY29udGV4dCB0YWtlIGNhcmUgb2YgYW55IGJ1c2luZXNzIGF0IHRo
ZSBzdGFydCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgotICAgIGNvbnRleHQoKS5oYW5kbGVQcmVS
ZW5kZXJUYXNrcygpOworICAgIGNvbnRleHQoKS5oYW5kbGVQcmVSZW5kZXJUYXNrcyhvdXRwdXRQ
b3NpdGlvbik7CiAKICAgICAvLyBUaGlzIHdpbGwgY2F1c2UgdGhlIG5vZGUocykgY29ubmVjdGVk
IHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGluIHR1cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0
KHMpLAogICAgIC8vIGFsbCB0aGUgd2F5IGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByZW5kZXJpbmcg
Z3JhcGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
RGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
RGVzdGluYXRpb25Ob2RlLmgKaW5kZXggMTA0ZjYwODY4MWI2YTNlNWZiYzcyNGRhYzlmNGNjZTg0
YjcxODk1ZC4uNjlkYjA3OTFjMjk4OGFjOGMwODNjNDUyZWJkNTU3YTM5ZDY2ZWQ0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlv
bk5vZGUuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gVGhlIGF1ZGlv
IGhhcmR3YXJlIGNhbGxzIHJlbmRlcigpIHRvIGdldCB0aGUgbmV4dCByZW5kZXIgcXVhbnR1bSBv
ZiBhdWRpbyBpbnRvIGRlc3RpbmF0aW9uQnVzLgogICAgIC8vIEl0IHdpbGwgb3B0aW9uYWxseSBn
aXZlIHVzIGxvY2FsL2xpdmUgYXVkaW8gaW5wdXQgaW4gc291cmNlQnVzIChpZiBpdCdzIG5vdCAw
KS4KLSAgICB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGlu
YXRpb25CdXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykgb3ZlcnJpZGU7CisgICAgdm9pZCByZW5k
ZXIoQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3Qg
bnVtYmVyT2ZGcmFtZXMsIGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pIG92
ZXJyaWRlOwogCiAgICAgc2l6ZV90IGN1cnJlbnRTYW1wbGVGcmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY3VycmVudFNhbXBsZUZyYW1lOyB9CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3Qg
eyByZXR1cm4gY3VycmVudFNhbXBsZUZyYW1lKCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+KHNhbXBs
ZVJhdGUoKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9UaW1lc3RhbXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9U
aW1lc3RhbXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTI4NjRiZWNmNzIzYWQ1ZjhkZjNmYzY1Mjg2NmEyMTAy
Zjk1MWZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1RpbWVzdGFtcC5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVT
dGFtcC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBBdWRpb1RpbWVzdGFtcCB7
CisgICAgZG91YmxlIGNvbnRleHRUaW1lOworICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgcGVyZm9y
bWFuY2VUaW1lOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExB
VEZPUk0oV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1RpbWVzdGFtcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvVGltZXN0YW1wLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODIxZjUxNzFkZjg0N2NhNzQ5ODU3ZTlj
YTk5Y2RlZTJhNmRlODkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgor
ICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
Cit0eXBlZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1wOworCitbCisgICAgQ29uZGl0aW9u
YWw9V0VCX0FVRElPLAorICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9uYXJ5IEF1
ZGlvVGltZXN0YW1wIHsKKyAgICBkb3VibGUgY29udGV4dFRpbWU7CisgICAgRE9NSGlnaFJlc1Rp
bWVTdGFtcCBwZXJmb3JtYW5jZVRpbWU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXggOTNkMjgwYmMxNmVmODg3
YzNmNjdiY2E5NjZmZmQ5OTk4MWU5MDEzYS4uODlmNzA1NzA4NDIyYmQ5OTU2NmNlMjlkNGNhNmVh
ZjdkNTZmMGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBAIC03NDQsNyArNzQ0LDcgQEAgdm9pZCBCYXNlQXVkaW9D
b250ZXh0OjphZGREZWZlcnJlZEZpbmlzaERlcmVmKEF1ZGlvTm9kZSogbm9kZSkKICAgICBtX2Rl
ZmVycmVkRmluaXNoRGVyZWZMaXN0LmFwcGVuZChub2RlKTsKIH0KIAotdm9pZCBCYXNlQXVkaW9D
b250ZXh0OjpoYW5kbGVQcmVSZW5kZXJUYXNrcygpCit2b2lkIEJhc2VBdWRpb0NvbnRleHQ6Omhh
bmRsZVByZVJlbmRlclRhc2tzKGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpb24p
CiB7CiAgICAgQVNTRVJUKGlzQXVkaW9UaHJlYWQoKSk7CiAKQEAgLTc1NywxMiArNzU3LDIwIEBA
IHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6aGFuZGxlUHJlUmVuZGVyVGFza3MoKQogICAgICAgICBo
YW5kbGVEaXJ0eUF1ZGlvTm9kZU91dHB1dHMoKTsKIAogICAgICAgICB1cGRhdGVBdXRvbWF0aWNQ
dWxsTm9kZXMoKTsKKyAgICAgICAgbV9vdXRwdXRQb3NpdGlvbiA9IG91dHB1dFBvc2l0aW9uOwog
CiAgICAgICAgIGlmIChtdXN0UmVsZWFzZUxvY2spCiAgICAgICAgICAgICB1bmxvY2soKTsKICAg
ICB9CiB9CiAKK0F1ZGlvSU9Qb3NpdGlvbiBCYXNlQXVkaW9Db250ZXh0OjpvdXRwdXRQb3NpdGlv
bigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBdXRvTG9ja2VyIGxvY2tl
cigqdGhpcyk7CisgICAgcmV0dXJuIG1fb3V0cHV0UG9zaXRpb247Cit9CisKIHZvaWQgQmFzZUF1
ZGlvQ29udGV4dDo6aGFuZGxlUG9zdFJlbmRlclRhc2tzKCkKIHsKICAgICBBU1NFUlQoaXNBdWRp
b1RocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QmFzZUF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNl
QXVkaW9Db250ZXh0LmgKaW5kZXggMzMxMTQ2YWVlZDMyNTU5MDdlNzAwMDUyNzg1Y2JhZDg0NGZm
MzdkZS4uM2I3OTcyMjc1M2Y2M2IxYzdhMmNmNjQyNzQxYTQ1OWI4ZTZmNDEyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKQEAg
LTE2Nyw3ICsxNjcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3RpZnlOb2RlRmluaXNoZWRQcm9j
ZXNzaW5nKEF1ZGlvTm9kZSopOwogCiAgICAgLy8gQ2FsbGVkIGF0IHRoZSBzdGFydCBvZiBlYWNo
IHJlbmRlciBxdWFudHVtLgotICAgIHZvaWQgaGFuZGxlUHJlUmVuZGVyVGFza3MoKTsKKyAgICB2
b2lkIGhhbmRsZVByZVJlbmRlclRhc2tzKGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9z
aXRpb24pOworCisgICAgQXVkaW9JT1Bvc2l0aW9uIG91dHB1dFBvc2l0aW9uKCk7CiAKICAgICAv
LyBDYWxsZWQgYXQgdGhlIGVuZCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgogICAgIHZvaWQgaGFu
ZGxlUG9zdFJlbmRlclRhc2tzKCk7CkBAIC00NTAsNiArNDUyLDggQEAgcHJpdmF0ZToKIAogICAg
IFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6U3VzcGVuZGVkIH07CiAgICAgUmVmUHRyPFBlbmRpbmdB
Y3Rpdml0eTxCYXNlQXVkaW9Db250ZXh0Pj4gbV9wZW5kaW5nQWN0aXZpdHk7CisKKyAgICBBdWRp
b0lPUG9zaXRpb24gbV9vdXRwdXRQb3NpdGlvbjsKIH07CiAKIH0gLy8gV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IDU5ODJjMDA2MmJiMzg4YzI0NjViYjkxOGQxZTZi
OGEyNzBlYWY1YTYuLmY5ZjAyZGE0MWU2YzU3NzNhOWFjYmVkZDlmMTFhYTQ5MzU0MGNmYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09m
ZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCBhdXRvIE9m
ZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6b2ZmbGluZVJlbmRlcigpIC0+IE9mZmxpbmVSZW5k
ZXJSZXN1bHQKICAgICAgICAgICAgIHJldHVybiBPZmZsaW5lUmVuZGVyUmVzdWx0OjpTdXNwZW5k
ZWQ7CiAKICAgICAgICAgLy8gUmVuZGVyIG9uZSByZW5kZXIgcXVhbnR1bS4KLSAgICAgICAgcmVu
ZGVyKDAsIG1fcmVuZGVyQnVzLmdldCgpLCByZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgICAgIHJl
bmRlcigwLCBtX3JlbmRlckJ1cy5nZXQoKSwgcmVuZGVyUXVhbnR1bVNpemUsIHsgfSk7CiAgICAg
ICAgIAogICAgICAgICBzaXplX3QgZnJhbWVzQXZhaWxhYmxlVG9Db3B5ID0gc3RkOjptaW4obV9m
cmFtZXNUb1Byb2Nlc3MsIHJlbmRlclF1YW50dW1TaXplKTsKICAgICAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CmluZGV4IGQxODAxYWEwMWZlOTI4MzBiM2VhODI2ZTY5N2JkYWI4NWZjODRmOTcuLmQyYjg5MDMx
NmUyMmM1OWI4YmJmOTBkZmVlMDVhODQxMzFhY2EwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yNjQ4
LDYgKzI2NDgsNyBAQCBKU0F1ZGlvUGFyYW0uY3BwCiBKU0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNw
cAogSlNBdWRpb1Byb2Nlc3NpbmdFdmVudEluaXQuY3BwCiBKU0F1ZGlvU2NoZWR1bGVkU291cmNl
Tm9kZS5jcHAKK0pTQXVkaW9UaW1lc3RhbXAuY3BwCiBKU0F1ZGlvVHJhY2suY3BwCiBKU0F1ZGlv
VHJhY2tMaXN0LmNwcAogSlNBdWRpb1RyYWNrTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmM2ODgxYmU4
MjA4ZTIwZDMzZTI0NmQyNTZlNzY5YmZkMjdmNGYwYS4uNjBmZGM3MzFiMmM0OGQ0OGY2ZTFmYjg3
MjQ3NmIxZjVjMmZiZDFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQyNCw2ICsyNDI0LDcgQEAKIAkJODJFM0Q4REYxMjJF
QTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291cmNlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJFM0Q4REQxMjJFQTBEMTAwM0FFNUJDIC8q
IENTU1Byb3BlcnR5U291cmNlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTgzMDAzMEY2MUI3RDMzQjUwMEVEM0FBQyAvKiBHZW5lcmljQ2Fj
aGVkSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzMDAzMEY0MUI3RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENv
bGxlY3Rpb24uaCAqLzsgfTsKIAkJODMwMDMwRjgxQjdEM0I3ODAwRUQzQUFDIC8qIENhY2hlZEhU
TUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzAwMzBGNzFCN0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4MzAwNUY5
RDI0RUIxRDQwMDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDA1RjlBMjRFQjFEMjgwMDQ4MEY5QiAvKiBB
dWRpb1RpbWVzdGFtcC5oICovOyB9OwogCQk4MzAzMzUwMjFGNTQ5MDU3MDA0REY3MDcgLyogRmls
ZVN5c3RlbURpcmVjdG9yeVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODMwMzM0RkMxRjU0OTA1MjAwNERGNzA3IC8qIEZpbGVTeXN0ZW1EaXJl
Y3RvcnlSZWFkZXIuaCAqLzsgfTsKIAkJODMwMzM1MDMxRjU0OTA1QTAwNERGNzA3IC8qIEZpbGVT
eXN0ZW1FbnRyaWVzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzMDMzNEZFMUY1NDkwNTIwMDRERjcwNyAvKiBGaWxlU3lzdGVtRW50cmll
c0NhbGxiYWNrLmggKi87IH07CiAJCTgzMDQwMjgyMjQ5QTdBNUYwMEE5MEQ4RCAvKiBQYW5uaW5n
TW9kZWxUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzA0MDI4MDI0OUE3QTVDMDBBOTBEOEQgLyogUGFubmluZ01vZGVsVHlwZS5oICovOyB9OwpA
QCAtMTA0MTksNiArMTA0MjAsOCBAQAogCQk4MzAwMzBGNDFCN0QzM0E2MDBFRDNBQUMgLyogR2Vu
ZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzAwMzBGNzFCN0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkSFRNTENvbGxlY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMwMDNFMkIyNDk5OTdBODAwNjBBRjk0
IC8qIFdlYktpdEF1ZGlvQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJLaXRBdWRpb0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4MzAwNUY5QTI0RUIxRDI4MDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXVkaW9UaW1lc3RhbXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODMwMDVGOUMyNEVCMUQyOTAwNDgwRjlCIC8qIEF1ZGlvVGltZXN0YW1wLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRp
b1RpbWVzdGFtcC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMDMzNEZCMUY1
NDkwNTIwMDRERjcwNyAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzAzMzRGQzFGNTQ5MDUyMDA0REY3MDcg
LyogRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzMDMzNEZEMUY1NDkwNTIwMDRERjcwNyAvKiBGaWxlU3lzdGVtRW50cmllc0Nh
bGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGaWxlU3lzdGVtRW50cmllc0NhbGxi
YWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5NTk5LDYgKzI5NjAyLDgg
QEAKIAkJCQlFN0NGODQ4OTI0QzBFMDU3MDBCMDZCOTAgLyogQXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlLmlkbCAqLywKIAkJCQlGREIwNTJERDE1NjFBNDJDMDBCNTAwRDYgLyogQXVkaW9TdW1taW5n
SnVuY3Rpb24uY3BwICovLAogCQkJCUZEQjA1MkRFMTU2MUE0MkMwMEI1MDBENiAvKiBBdWRpb1N1
bW1pbmdKdW5jdGlvbi5oICovLAorCQkJCTgzMDA1RjlBMjRFQjFEMjgwMDQ4MEY5QiAvKiBBdWRp
b1RpbWVzdGFtcC5oICovLAorCQkJCTgzMDA1RjlDMjRFQjFEMjkwMDQ4MEY5QiAvKiBBdWRpb1Rp
bWVzdGFtcC5pZGwgKi8sCiAJCQkJODMxOThGQkIyNEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRp
b0NvbnRleHQuY3BwICovLAogCQkJCTgzMTk4RkJFMjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVk
aW9Db250ZXh0LmggKi8sCiAJCQkJODMxOThGQkQyNEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRp
b0NvbnRleHQuaWRsICovLApAQCAtMzAxNzcsNiArMzAxODIsNyBAQAogCQkJCUZENjJGNTJFMTQ1
ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwN0MwNDZDQjFFNDI2NDEzMDA3MjAxRTcgLyogQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRCMDUyRTAxNTYxQTQyQzAwQjUwMEQ2IC8qIEF1ZGlv
U3VtbWluZ0p1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzAwNUY5RDI0RUIxRDQwMDA0
ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMEQ5MTcx
NUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTg4RTBE
QzE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEOEI1QTRDMTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9JT0NhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2Fs
bGJhY2suaAppbmRleCBhNDM4OTFmMGJmNDJmZDJiZGUwNmRkMDBjOTMyNGNmMWRhMjBjNWIyLi4x
Y2YwNzliZTI5ODViODAwOGRmOWQ3NWJiMWZkYmVlMTQyNThkN2FhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaApAQCAtMjksMTYgKzI5LDQ4
IEBACiAjaWZuZGVmIEF1ZGlvSU9DYWxsYmFja19oCiAjZGVmaW5lIEF1ZGlvSU9DYWxsYmFja19o
CiAKKyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9TZWNvbmRz
Lmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9CdXM7CiAKK3N0cnVjdCBB
dWRpb0lPUG9zaXRpb24geworICAgIC8vIEF1ZGlvIHN0cmVhbSBwb3NpdGlvbiBpbiBzZWNvbmRz
LgorICAgIFNlY29uZHMgcG9zaXRpb247CisgICAgLy8gU3lzdGVtJ3MgbW9ub3RvbmljIHRpbWUg
aW4gc2Vjb25kcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBjb250YWluZWQgfHBvc2l0aW9ufCB2YWx1
ZS4KKyAgICBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7
CisgICAgICAgIGVuY29kZXIgPDwgcG9zaXRpb247CisgICAgICAgIGVuY29kZXIgPDwgdGltZXN0
YW1wOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBdWRpb0lP
UG9zaXRpb24mIHJlc3VsdCkKKyAgICB7CisgICAgICAgIFNlY29uZHMgcG9zaXRpb247CisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICByZXN1bHQucG9zaXRpb24gPSBwb3NpdGlvbjsKKworICAgICAgICBNb25v
dG9uaWNUaW1lIHRpbWVzdGFtcDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0aW1lc3Rh
bXApKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXN1bHQudGltZXN0YW1w
ID0gdGltZXN0YW1wOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCiAvLyBBYnN0
cmFjdCBiYXNlLWNsYXNzIGZvciBpc29jaHJvbm91cyBhdWRpbyBJL08gY2xpZW50LgogY2xhc3Mg
QXVkaW9JT0NhbGxiYWNrIHsKIHB1YmxpYzoKICAgICAvLyByZW5kZXIoKSBpcyBjYWxsZWQgcGVy
aW9kaWNhbGx5IHRvIGdldCB0aGUgbmV4dCByZW5kZXIgcXVhbnR1bSBvZiBhdWRpbyBpbnRvIGRl
c3RpbmF0aW9uQnVzLgogICAgIC8vIE9wdGlvbmFsIGF1ZGlvIGlucHV0IGlzIGdpdmVuIGluIHNv
dXJjZUJ1cyAoaWYgaXQncyBub3QgMCkuCi0gICAgdmlydHVhbCB2b2lkIHJlbmRlcihBdWRpb0J1
cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyKEF1ZGlvQnVzKiBzb3VyY2VCdXMs
IEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3Qg
QXVkaW9JT1Bvc2l0aW9uJiBvdXRwdXRQb3NpdGlvbikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IGlzUGxheWluZ0RpZENoYW5nZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5k
ZXggNGJmZWYwZTBlZTljZWJiMWZiNmI3ZTEzZDdmMDRkMGFlM2Y3ZTFkZi4uMTBlYzdiNjUwOTg0
MGQ2OWQ4YzFlY2VjYTU4ZjU0ZjYyYzM0ZGQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3Bw
CkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiQXVkaW9JT0NhbGxiYWNrLmgiCiAjaW5jbHVk
ZSAiQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPG1hY2gv
bWFjaC5oPgorI2luY2x1ZGUgPG1hY2gvbWFjaF90aW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMTQ0LDkgKzE0NiwyNyBAQCBzdGF0aWMgdm9pZCBhc3NpZ25BdWRpb0J1ZmZlcnNU
b0J1cyhBdWRpb0J1ZmZlciogYnVmZmVycywgQXVkaW9CdXMmIGJ1cywgVUludDMyCiAgICAgfQog
fQogCitzdGF0aWMgTW9ub3RvbmljVGltZSBtYWNoQWJzb2x1dGVUaW1lVG9Nb25vdG9uaWNUaW1l
KHVpbnQ2NF90IG1hY2hBYnNvbHV0ZVRpbWUpCit7CisgICAgLy8gQmFzZWQgb24gbGlzdGluZyAj
MiBmcm9tIEFwcGxlIFFBIDEzOTgsIGJ1dCBtb2RpZmllZCB0byBiZSB0aHJlYWQtc2FmZS4KKyAg
ICBzdGF0aWMgbWFjaF90aW1lYmFzZV9pbmZvX2RhdGFfdCB0aW1lYmFzZUluZm87CisgICAgc3Rh
dGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVUaW1lck9uY2VGbGFnOworICAgIHN0ZDo6Y2Fs
bF9vbmNlKGluaXRpYWxpemVUaW1lck9uY2VGbGFnLCBbXSB7CisgICAgICAgIGtlcm5fcmV0dXJu
X3Qga3IgPSBtYWNoX3RpbWViYXNlX2luZm8oJnRpbWViYXNlSW5mbyk7CisgICAgICAgIEFTU0VS
VF9VTlVTRUQoa3IsIGtyID09IEtFUk5fU1VDQ0VTUyk7CisgICAgICAgIEFTU0VSVCh0aW1lYmFz
ZUluZm8uZGVub20pOworICAgIH0pOworCisgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6OmZyb21S
YXdTZWNvbmRzKChtYWNoQWJzb2x1dGVUaW1lICogdGltZWJhc2VJbmZvLm51bWVyKSAvICgxLjBl
OSAqIHRpbWViYXNlSW5mby5kZW5vbSkpOworfQorCiAvLyBQdWxscyBvbiBvdXIgcHJvdmlkZXIg
dG8gZ2V0IHJlbmRlcmVkIGF1ZGlvIHN0cmVhbS4KLU9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25D
b2NvYTo6cmVuZGVyKFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0Rh
dGEpCitPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlcihjb25zdCBBdWRpb1Rp
bWVTdGFtcCogdGltZXN0YW1wLCBVSW50MzIgbnVtYmVyT2ZGcmFtZXMsIEF1ZGlvQnVmZmVyTGlz
dCogaW9EYXRhKQogeworICAgIGF1dG8gb3V0cHV0VGltZXN0YW1wID0gQXVkaW9JT1Bvc2l0aW9u
IHsKKyAgICAgICAgU2Vjb25kcyB7IHRpbWVzdGFtcC0+bVNhbXBsZVRpbWUgLyBtX3NhbXBsZVJh
dGUgfSwKKyAgICAgICAgbWFjaEFic29sdXRlVGltZVRvTW9ub3RvbmljVGltZSh0aW1lc3RhbXAt
Pm1Ib3N0VGltZSkKKyAgICB9OwogICAgIGF1dG8qIGJ1ZmZlcnMgPSBpb0RhdGEtPm1CdWZmZXJz
OwogICAgIFVJbnQzMiBudW1iZXJPZkJ1ZmZlcnMgPSBpb0RhdGEtPm1OdW1iZXJCdWZmZXJzOwog
ICAgIFVJbnQzMiBmcmFtZXNSZW1haW5pbmcgPSBudW1iZXJPZkZyYW1lczsKQEAgLTE2OSwxMiAr
MTg5LDEyIEBAIE9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKFVJbnQzMiBu
dW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpCiAgICAgICAgIGlmICghZnJhbWVzVGhp
c1RpbWUpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgaWYgKGZyYW1lc1RoaXNUaW1lIDwg
a1JlbmRlckJ1ZmZlclNpemUpIHsKLSAgICAgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1f
c3BhcmVCdXMucHRyKCksIGtSZW5kZXJCdWZmZXJTaXplKTsKKyAgICAgICAgICAgIG1fY2FsbGJh
Y2sucmVuZGVyKDAsIG1fc3BhcmVCdXMucHRyKCksIGtSZW5kZXJCdWZmZXJTaXplLCBvdXRwdXRU
aW1lc3RhbXApOwogICAgICAgICAgICAgbV9yZW5kZXJCdXMtPmNvcHlGcm9tUmFuZ2UobV9zcGFy
ZUJ1cy5nZXQoKSwgMCwgZnJhbWVzVGhpc1RpbWUpOwogICAgICAgICAgICAgbV9zdGFydFNwYXJl
RnJhbWUgPSBmcmFtZXNUaGlzVGltZTsKICAgICAgICAgICAgIG1fZW5kU3BhcmVGcmFtZSA9IGtS
ZW5kZXJCdWZmZXJTaXplOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fY2FsbGJhY2su
cmVuZGVyKDAsIG1fcmVuZGVyQnVzLnB0cigpLCBmcmFtZXNUaGlzVGltZSk7CisgICAgICAgICAg
ICBtX2NhbGxiYWNrLnJlbmRlcigwLCBtX3JlbmRlckJ1cy5wdHIoKSwgZnJhbWVzVGhpc1RpbWUs
IG91dHB1dFRpbWVzdGFtcCk7CiAgICAgICAgIHByb2Nlc3NCdXNBZnRlclJlbmRlcihtX3JlbmRl
ckJ1cy5nZXQoKSwgZnJhbWVzVGhpc1RpbWUpOwogICAgICAgICBmcmFtZU9mZnNldCArPSBmcmFt
ZXNUaGlzVGltZTsKICAgICAgICAgZnJhbWVzUmVtYWluaW5nIC09IGZyYW1lc1RoaXNUaW1lOwpA
QCAtMTg0LDEwICsyMDQsMTAgQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5k
ZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGkKIH0KIAogLy8gRGVm
YXVsdE91dHB1dFVuaXQgY2FsbGJhY2sKLU9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
aW5wdXRQcm9jKHZvaWQqIHVzZXJEYXRhLCBBdWRpb1VuaXRSZW5kZXJBY3Rpb25GbGFncyosIGNv
bnN0IEF1ZGlvVGltZVN0YW1wKiwgVUludDMyIC8qYnVzTnVtYmVyKi8sIFVJbnQzMiBudW1iZXJP
ZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpCitPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OmlucHV0UHJvYyh2b2lkKiB1c2VyRGF0YSwgQXVkaW9Vbml0UmVuZGVyQWN0aW9u
RmxhZ3MqLCBjb25zdCBBdWRpb1RpbWVTdGFtcCogdGltZXN0YW1wLCBVSW50MzIgLypidXNOdW1i
ZXIqLywgVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSkKIHsK
ICAgICBhdXRvKiBhdWRpb091dHB1dCA9IHN0YXRpY19jYXN0PEF1ZGlvRGVzdGluYXRpb25Db2Nv
YSo+KHVzZXJEYXRhKTsKLSAgICByZXR1cm4gYXVkaW9PdXRwdXQtPnJlbmRlcihudW1iZXJPZkZy
YW1lcywgaW9EYXRhKTsKKyAgICByZXR1cm4gYXVkaW9PdXRwdXQtPnJlbmRlcih0aW1lc3RhbXAs
IG51bWJlck9mRnJhbWVzLCBpb0RhdGEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3Rp
bmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oCmluZGV4IGFlNzVmM2YyNjMxNzZlNzQzY2I3ODEyNTAxN2QzYTRj
MDEwOWRjYjIuLmI1ZjE1NmQwOTVhYmEwODIwMWNjMTg0ZWRmNjBkNjE1OGI0Zjc1MzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRp
b25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBj
b25maWd1cmUoKTsKICAgICB2b2lkIHByb2Nlc3NCdXNBZnRlclJlbmRlcihBdWRpb0J1cyYsIFVJ
bnQzMiBudW1iZXJPZkZyYW1lcyk7CiAKLSAgICBPU1N0YXR1cyByZW5kZXIoVUludDMyIG51bWJl
ck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSk7CisgICAgT1NTdGF0dXMgcmVuZGVy
KGNvbnN0IEF1ZGlvVGltZVN0YW1wKiB0aW1lc3RhbXAsIFVJbnQzMiBudW1iZXJPZkZyYW1lcywg
QXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpOwogCiAgICAgQXVkaW9Vbml0IG1fb3V0cHV0VW5pdDsK
ICAgICBBdWRpb0lPQ2FsbGJhY2smIG1fY2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcAppbmRleCAzMzM3MzMwYjM4NTA2ZDk2YzA1MzkzZDZhYTBmOGViMTdiNDFhOWY3Li40
NmFjNzhiZDIyOGRiZjFmOGM1MzBlM2ExOGNkNDQ5NmEyOGExOTc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAg
fQogCi0gICAgdm9pZCByZW5kZXIoQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3Rp
bmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlkZQorICAgIHZvaWQgcmVu
ZGVyKEF1ZGlvQnVzKiBzb3VyY2VCdXMsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90
IGZyYW1lc1RvUHJvY2VzcywgY29uc3QgV2ViQ29yZTo6QXVkaW9JT1Bvc2l0aW9uJiBvdXRwdXRQ
b3NpdGlvbikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3Byb3RlY3RUaGlzRHVyaW5n
R3JhY2VmdWxTaHV0ZG93bikKICAgICAgICAgICAgIHJldHVybjsKQEAgLTk1LDggKzk1LDggQEAg
cHJpdmF0ZToKIAogICAgICAgICAvLyBGSVhNRTogUmVwbGFjZSB0aGlzIGNvZGUgd2l0aCBhIHJp
bmcgYnVmZmVyLiBBdCBsZWFzdCB0aGlzIGhhcHBlbnMgaW4gYXVkaW8gdGhyZWFkLgogICAgICAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhp
cywgZnJhbWVzVG9Qcm9jZXNzLCAmYnVmZmVycywgJnJlbmRlclNlbWFwaG9yZV0gewotICAgICAg
ICAgICAgUmVtb3RlQXVkaW9CdXNEYXRhIGJ1c0RhdGEgeyBmcmFtZXNUb1Byb2Nlc3MsIGJ1ZmZl
cnMubWFwKFtdKGF1dG8mIG1lbW9yeSkgeyByZXR1cm4gbWVtb3J5LmNvcHlSZWYoKTsgfSkgfTsK
KyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQ
b3NpdGlvbiwgJmJ1ZmZlcnMsICZyZW5kZXJTZW1hcGhvcmVdIHsKKyAgICAgICAgICAgIFJlbW90
ZUF1ZGlvQnVzRGF0YSBidXNEYXRhIHsgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbiwg
YnVmZmVycy5tYXAoW10oYXV0byYgbWVtb3J5KSB7IHJldHVybiBtZW1vcnkuY29weVJlZigpOyB9
KSB9OwogICAgICAgICAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2Vzcyk7CiAgICAgICAgICAgICBt
X2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIoYnVzRGF0YSksIFsmXSgpIHsK
ICAgICAgICAgICAgICAgICByZW5kZXJTZW1hcGhvcmUuc2lnbmFsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaApp
bmRleCA3YWM0YzM3MzQ1NDUzMjUwZTc5ZWIzZGE2NDE3OWVjODc1ZDg2MDA2Li5kMjFkNDA1NWFm
NDcyYmFiYjY3YmZmMzlkZDQ2ODJjODNhYTM0ZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgKQEAgLTMwLDE4
ICszMCwyMSBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1
ZmZlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IFJlbW90ZUF1ZGlvQnVzRGF0
YSB7CiAgICAgdWludDY0X3QgZnJhbWVzVG9Qcm9jZXNzIHsgMCB9OworICAgIFdlYkNvcmU6OkF1
ZGlvSU9Qb3NpdGlvbiBvdXRwdXRQb3NpdGlvbjsKICAgICBWZWN0b3I8UmVmPFNoYXJlZE1lbW9y
eT4+IGNoYW5uZWxCdWZmZXJzOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAg
ICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgZW5j
b2RlciA8PCBmcmFtZXNUb1Byb2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwgb3V0cHV0UG9zaXRp
b247CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGNoYW5uZWxCdWZm
ZXJzLnNpemUoKSk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hhbm5lbEJ1ZmZl
cnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRs
ZTsKQEAgLTU4LDYgKzYxLDExIEBAIHN0cnVjdCBSZW1vdGVBdWRpb0J1c0RhdGEgewogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQuZnJhbWVzVG9Qcm9jZXNzID0gZnJh
bWVzVG9Qcm9jZXNzOwogCisgICAgICAgIFdlYkNvcmU6OkF1ZGlvSU9Qb3NpdGlvbiBvdXRwdXRQ
b3NpdGlvbjsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvdXRwdXRQb3NpdGlvbikpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5vdXRwdXRQb3NpdGlvbiA9
IG91dHB1dFBvc2l0aW9uOworCiAgICAgICAgIHVpbnQ2NF90IHNpemUgPSAwOwogICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCmluZGV4IDBiYWZiMzcxYWYwYjY3NjMwNDA5
NmIxMjg3MjNjZTBkYzYxNWI1MGQuLjA2OTQ1YmFmZDVkMTg5YzdhMGY5YzcyNDAyYmI4ODlkYzgw
N2Y2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKQEAgLTk5LDcgKzk5
LDcgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRlckJ1ZmZlcihjb25z
dCBXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSYKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKTsgKytpKQogICAgICAgICBhdWRp
b0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShpLCAoZmxvYXQqKWF1ZGlvQnVzRGF0YS5jaGFubmVsQnVm
ZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKIAotICAgIG1f
Y2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Q
cm9jZXNzKTsKKyAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBhdWRpb0J1cy5nZXQoKSwgYXVkaW9C
dXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgYXVkaW9CdXNEYXRhLm91dHB1dFBvc2l0aW9uKTsKIAog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCA2Njc0MjBkZWNhNDJmMWUzMGYyNmQzODNhYWM4ODYwZjYxNjQxMzY4Li41YTM0OTNiZjE2
ZjJjMWMwY2UxMGFmNTA4ZGRjMGVkNGE4ZmRkMTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wOC0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEF1ZGlvQ29udGV4dC5nZXRPdXRwdXRUaW1lc3RhbXAoKSBp
cyBtaXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZWJhc2VsaW5lIFdQVCB0ZXN0cyBub3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4K
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBz
LndpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvY29udGV4dC1pbnRlcmZhY2UvYXVkaW9jb250ZXh0
LWdldG91dHB1dHRpbWVzdGFtcC1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDgtMTcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBXYXZlU2hhcGVyTm9kZSBzaG91bGQg
bm90IG91dHB1dCBzaWxlbmNlIHdoZW4gaXQgaGFzIG5vIGlucHV0IG9yIHdoZW4gaW5wdXQgaXMg
c2lsZW5jZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhh
cm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCA5MjYwYTYwYjdkYmY4NzYwZWRh
NWI5NjUxMzI5MDE1NGZkYTFiZTRkLi40NTM5ZjkxZmYxMmIwMzY1Mzg1YzI1NGRiOWQ4ODIxNmNi
ZDU3NDJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lk
bGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dApAQCAtNDksNyArNDksNyBAQCBQQVNT
IEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iagogUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2Nv
cGFibGVzIHByb3BlcnR5IAogUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
YmFzZUxhdGVuY3kgCiBGQUlMIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvdXRw
dXRMYXRlbmN5IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBw
cm9wZXJ0eSAib3V0cHV0TGF0ZW5jeSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgQXVk
aW9Db250ZXh0IGludGVyZmFjZTogb3BlcmF0aW9uIGdldE91dHB1dFRpbWVzdGFtcCgpIGFzc2Vy
dF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0
YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImdldE91dHB1dFRpbWVzdGFtcCIgbWlz
c2luZworUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0T3V0cHV0VGlt
ZXN0YW1wKCkgCiBQQVNTIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZXN1bWUo
KSAKIFBBU1MgQXVkaW9Db250ZXh0IGludGVyZmFjZTogb3BlcmF0aW9uIHN1c3BlbmQoKSAKIFBB
U1MgQXVkaW9Db250ZXh0IGludGVyZmFjZTogb3BlcmF0aW9uIGNsb3NlKCkgCkBAIC02MSw3ICs2
MSw3IEBAIFBBU1MgQXVkaW9Db250ZXh0IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgY29u
dGV4dAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgY29udGV4dCAKIFBBU1MgQXVkaW9Db250ZXh0
IGludGVyZmFjZTogY29udGV4dCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJhc2VMYXRlbmN5IiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIEZBSUwgQXVkaW9Db250ZXh0IGludGVyZmFjZTogY29udGV4
dCBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm91dHB1dExhdGVuY3kiIHdpdGggdGhlIHByb3BlciB0
eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgIm91dHB1dExhdGVuY3kiIG5vdCBmb3VuZCBp
biBwcm90b3R5cGUgY2hhaW4KLUZBSUwgQXVkaW9Db250ZXh0IGludGVyZmFjZTogY29udGV4dCBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImdldE91dHB1dFRpbWVzdGFtcCgpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJnZXRPdXRwdXRUaW1lc3RhbXAiIG5v
dCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgQXVkaW9Db250ZXh0IGludGVyZmFjZTog
Y29udGV4dCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldE91dHB1dFRpbWVzdGFtcCgpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgQXVkaW9Db250ZXh0IGludGVyZmFjZTogY29udGV4dCBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInJlc3VtZSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBB
U1MgQXVkaW9Db250ZXh0IGludGVyZmFjZTogY29udGV4dCBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InN1c3BlbmQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEF1ZGlvQ29udGV4dCBpbnRl
cmZhY2U6IGNvbnRleHQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbG9zZSgpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9jb250ZXh0LWludGVy
ZmFjZS9hdWRpb2NvbnRleHQtZ2V0b3V0cHV0dGltZXN0YW1wLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS90aGUtYXVkaW9jb250ZXh0LWludGVyZmFjZS9hdWRpb2NvbnRleHQtZ2V0b3V0cHV0dGlt
ZXN0YW1wLWV4cGVjdGVkLnR4dAppbmRleCA5ZGVlZDMwM2FkYWFkZDg2NGQ0YmYyMWQ4OWI0YTQ2
Njk0YWNiYzczLi5lNjc5ZTQ1YzJjZTIzNTk4MjRkZjUwOWVkOGZiMGFmYzBjOTRmYmJjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1
ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvY29udGV4dC1pbnRlcmZhY2UvYXVkaW9jb250ZXh0
LWdldG91dHB1dHRpbWVzdGFtcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b2NvbnRleHQtaW50ZXJmYWNlL2F1ZGlvY29udGV4dC1nZXRvdXRwdXR0aW1lc3RhbXAtZXhwZWN0
ZWQudHh0CkBAIC0xLDcgKzEsMTIgQEAKIAogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJU
RUQuIAotRkFJTCBFeGVjdXRpbmcgImdldG91dHB1dHRpbWVzdGFtcC1pbml0aWFsLXZhbHVlcyIg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiBjb250ZXh0LmdldE91dHB1dFRpbWVzdGFtcCBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICdjb250ZXh0LmdldE91dHB1dFRpbWVzdGFtcCgpJywgJ2NvbnRleHQuZ2V0T3V0cHV0VGltZXN0
YW1wJyBpcyB1bmRlZmluZWQpIgorUEFTUyBFeGVjdXRpbmcgImdldG91dHB1dHRpbWVzdGFtcC1p
bml0aWFsLXZhbHVlcyIgCiBQQVNTIEF1ZGl0IHJlcG9ydCAKIFBBU1MgPiBbZ2V0b3V0cHV0dGlt
ZXN0YW1wLWluaXRpYWwtdmFsdWVzXSAgCitQQVNTICAgdGltZXN0YW1wLmNvbnRleHRUaW1lIGRv
ZXMgZXhpc3QuIAorUEFTUyAgIHRpbWVzdGFtcC5wZXJmb3JtYW5jZVRpbWUgZG9lcyBleGlzdC4g
CitQQVNTICAgdGltZXN0YW1wLmNvbnRleHRUaW1lIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0
byAwLiAKK1BBU1MgICB0aW1lc3RhbXAucGVyZm9ybWFuY2VUaW1lIGlzIGdyZWF0ZXIgdGhhbiBv
ciBlcXVhbCB0byAwLiAKK1BBU1MgPCBbZ2V0b3V0cHV0dGltZXN0YW1wLWluaXRpYWwtdmFsdWVz
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpIAogUEFTUyAjIEFV
RElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406753</attachid>
            <date>2020-08-17 16:20:49 -0700</date>
            <delta_ts>2020-08-17 17:49:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215591-20200817162048.patch</filename>
            <type>text/plain</type>
            <size>39252</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTI3MjA3OGU2ZWE0YzQx
YjcyYjc5NTg5N2ZjZTYzMjlkMDg4ZTc1Zi4uNWQwZWE2ZmZiNjA0N2MzZDhlYzZmMTkzOGU5NWQ5
NmQyMDM3MTU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA4LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9Db250ZXh0LmdldE91
dHB1dFRpbWVzdGFtcCgpIGlzIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNTU5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEF1ZGlvQ29udGV4dC5nZXRPdXRwdXRUaW1lc3RhbXAoKSBpcyBt
aXNzaW5nOgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1
ZGlvY29udGV4dC1nZXRvdXRwdXR0aW1lc3RhbXAKKworICAgICAgICBObyBuZXcgdGVzdHMsIHJl
YmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Z2V0T3V0cHV0VGltZXN0YW1wKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25O
b2RlOjpyZW5kZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlv
bk5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmgu
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGw6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmguCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVByZVJlbmRlclRhc2tzKToKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6Om91dHB1dFBvc2l0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9mZmxpbmVSZW5kZXIpOgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvSU9Qb3NpdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvSU9Qb3NpdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFjaEFi
c29sdXRlVGltZVRvTW9ub3RvbmljVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3Rp
bmF0aW9uQ29jb2E6OnJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
Q29jb2E6OmlucHV0UHJvYyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmg6CisKIDIwMjAtMDgtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBBdWRpb05vZGUuZGlzY29ubmVjdCgpIGRvZXMgbm90IG1hdGNo
IHRoZSBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRhZWYwODgxNTRhN2Q3MGM1ZmE1OTA0NTlj
ZjM5MWMzYTE1Y2VlMGQuLjc5Nzg4OTFhMjU1ZGM0M2I5YzBlMmUzNDJlNjQ5MDE1MTZhOTBlNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDgtMTcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBdWRpb0NvbnRleHQuZ2V0T3V0cHV0VGltZXN0YW1w
KCkgaXMgbWlzc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE1NTkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9CdXNEYXRhOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6OmRlY29kZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJCdWZmZXIpOgor
CiAyMDIwLTA4LTE3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdIEF2b2lkIHdhaXRpbmcgZm9yIExhdW5jaCBTZXJ2aWNlcyBvbiBldmVyeSBs
b2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGE1ZjBlN2EwODY4OTg3MTVlNjUyZDFhNWNiYWU0
N2U3N2IwNzM4ZjQuLmRmZGMwYjZlOGViYTJiYWRkNGMyZWQ3ZDUxZmU2MzI4MDNmMjQ5MmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NjYsNiArNDY2LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NW
R19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50Lmlk
bAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmlkbAogICAg
IE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmlkbAorICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9CYXNl
QXVkaW9Db250ZXh0LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5p
ZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck9wdGlvbnMuaWRsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA0ODdjYTdm
ODRmN2JmODgwNzZlMzE4NTk1ZDFhNjMzYmE2Y2YwODdjLi5hYjRmN2RlOGM0ZjdlZmViNWM4NTE3
YzNmZDg3Mjc2MjcwZjQ5YjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKQEAgLTMxNyw2ICszMTcsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudEluaXQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dl
YmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1
ZGlvL0JpcXVhZEZpbHRlck9wdGlvbnMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDZjZjM1NmE0YmU2YTdjZmZlMzAwN2RhNjc1
ZDllZTAxMDYyOGNkOTYuLjljZDQ0NDRlMmMxYTFjZjc5OGFiYTU3ZDc1OTJmZmRmOTg3M2VlM2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CkBAIC0xODMsNiArMTgzLDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNBdWRpb1Byb2Nlc3NpbmdFdmVudEluaXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvUHJvY2Vzc2luZ0V2ZW50SW5pdC5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvU2No
ZWR1bGVkU291cmNlTm9kZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UaW1lc3RhbXAuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVGltZXN0YW1wLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFj
ay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVk
aW9UcmFjay5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0F1ZGlvVHJhY2tMaXN0LmNwcApAQCAtNDAxLDYgKzQwMyw4IEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21FbGVt
ZW50UmVnaXN0cnkuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNDdXN0b21FdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQ3VzdG9tRXZlbnQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTUFwcGxp
Y2F0aW9uQ2FjaGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01CaW5kaW5nSW50ZXJuYWxzQnVpbHRpbnMuaApAQCAtMjI3
Miw4ICsyMjc2LDYgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNYUGF0aEV2YWx1YXRvci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTWFBhdGhFdmFsdWF0b3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aEV4cHJlc3Npb24uY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1hQYXRoRXhwcmVzc2lvbi5oCi0kKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTWFBhdGhOU1Jlc29sdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aE5TUmVzb2x2ZXIuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aFJlc3VsdC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDBhYWQ4ZTM0YzU4ZDQ4NDUzNzg0ODkyYTdk
NTE2Y2U4NTllNWVjNzIuLmE2MzU4YTk5NTA0MTQ5OGZmNjA1NmI5YzBmNWMzYTJkNjRiYTQ0OTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzk4LDYgKzM5OCw3IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9j
ZXNzaW5nRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
cm9jZXNzaW5nRXZlbnRJbml0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1
ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVk
aW8vQmlxdWFkRmlsdGVyT3B0aW9ucy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IGFlZDMyMjgwNWVmN2EwZmMxZTA2YjY2
NjY4MTUyYTU0ODc4ZDM3MjMuLjUwNTAxNWEyZWI5NWZkYTA1ZjgwNTM2MmZjNjU5OTEwNGYyZjZi
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5jcHAKQEAgLTI4LDggKzI4LDExIEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAogI2luY2x1
ZGUgIkF1ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIkF1ZGlvVGltZXN0YW1wLmgiCisjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgi
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5j
ZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpAQCAtOTYsNiArOTksMjcgQEAgZG91YmxlIEF1ZGlvQ29udGV4dDo6YmFzZUxh
dGVuY3koKQogICAgIHJldHVybiBkZXN0aW5hdGlvbiA/IHN0YXRpY19jYXN0PGRvdWJsZT4oZGVz
dGluYXRpb24tPmZyYW1lc1BlckJ1ZmZlcigpKSAvIHNhbXBsZVJhdGUoKSA6IDAuOwogfQogCitB
dWRpb1RpbWVzdGFtcCBBdWRpb0NvbnRleHQ6OmdldE91dHB1dFRpbWVzdGFtcChET01XaW5kb3cm
IHdpbmRvdykKK3sKKyAgICBpZiAoIWRlc3RpbmF0aW9uKCkpCisgICAgICAgIHJldHVybiBBdWRp
b1RpbWVzdGFtcCB7IDAsIDAgfTsKKworICAgIGF1dG8mIHBlcmZvcm1hbmNlID0gd2luZG93LnBl
cmZvcm1hbmNlKCk7CisKKyAgICBhdXRvIHBvc2l0aW9uID0gb3V0cHV0UG9zaXRpb24oKTsKKwor
ICAgIC8vIFRoZSB0aW1lc3RhbXAgb2Ygd2hhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGxheWVkIChj
b250ZXh0VGltZSkgY2Fubm90IGJlCisgICAgLy8gbGF0ZXIgdGhhbiB3aGF0IGlzIGJlaW5nIHJl
bmRlcmVkLiAoY3VycmVudFRpbWUpCisgICAgaWYgKHBvc2l0aW9uLnBvc2l0aW9uLnNlY29uZHMo
KSA+IGN1cnJlbnRUaW1lKCkpCisgICAgICAgIHBvc2l0aW9uLnBvc2l0aW9uID0gU2Vjb25kcyB7
IGN1cnJlbnRUaW1lKCkgfTsKKworICAgIGF1dG8gcGVyZm9ybWFuY2VUaW1lID0gcGVyZm9ybWFu
Y2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uKHBvc2l0aW9u
LnRpbWVzdGFtcCk7CisgICAgaWYgKHBlcmZvcm1hbmNlVGltZSA8IDAuMCkKKyAgICAgICAgcGVy
Zm9ybWFuY2VUaW1lID0gMC4wOworCisgICAgcmV0dXJuIEF1ZGlvVGltZXN0YW1wIHsgcG9zaXRp
b24ucG9zaXRpb24uc2Vjb25kcygpLCBwZXJmb3JtYW5jZVRpbWUgfTsKK30KKwogdm9pZCBBdWRp
b0NvbnRleHQ6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAg
ICAgaWYgKGlzT2ZmbGluZUNvbnRleHQoKSB8fCBpc1N0b3BwZWQoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKaW5kZXggMzVjNDM5N2IwZGQy
YWM3YmNkNTk1YzI5MjZiZjFmMjAzY2I0MDQzZi4uNWJjNTRlOTM4M2FiYzVjOGQ0OTE3YjU1ZmFj
YWFhMWQ1NjQwNTBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5oCkBAIC0zMCw2ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
c3RydWN0IEF1ZGlvVGltZXN0YW1wOworY2xhc3MgRE9NV2luZG93OwogY2xhc3MgRGVmYXVsdEF1
ZGlvRGVzdGluYXRpb25Ob2RlOwogCiBjbGFzcyBBdWRpb0NvbnRleHQgOiBwdWJsaWMgQmFzZUF1
ZGlvQ29udGV4dCB7CkBAIC00Myw2ICs0NSw4IEBAIHB1YmxpYzoKICAgICBEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUqIGRlc3RpbmF0aW9uKCk7CiAgICAgZG91YmxlIGJhc2VMYXRlbmN5KCk7
CiAKKyAgICBBdWRpb1RpbWVzdGFtcCBnZXRPdXRwdXRUaW1lc3RhbXAoRE9NV2luZG93Jik7CisK
ICNpZiBFTkFCTEUoVklERU8pCiAgICAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhRWxlbWVudEF1ZGlv
U291cmNlTm9kZT4+IGNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZShIVE1MTWVkaWFFbGVtZW50Jik7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmlkbAppbmRleCBiOWYwMzEyMDQ1Y2NjODAyOThmMjEyNDY5ODJiY2FlZDBiYjRjMzU1Li41
ZGZhNTllZWYxOGQ4MGYwY2JmNDBiMjI5ODY1ZGI3YWIzZTFiNTU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCkBAIC0zNiw3ICszNiw4
IEBACiAKICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQuCiAgICAgLy8gcmVhZG9ubHkgYXR0cmli
dXRlIGRvdWJsZSBvdXRwdXRMYXRlbmN5OwotICAgIC8vIEF1ZGlvVGltZXN0YW1wIGdldE91dHB1
dFRpbWVzdGFtcCgpOworCisgICAgW0NhbGxXaXRoPUFjdGl2ZVdpbmRvd10gQXVkaW9UaW1lc3Rh
bXAgZ2V0T3V0cHV0VGltZXN0YW1wKCk7CiAKICAgICBbSW1wbGVtZW50ZWRBcz1zdXNwZW5kUmVu
ZGVyaW5nXSBQcm9taXNlPHZvaWQ+IHN1c3BlbmQoKTsKICAgICBbSW1wbGVtZW50ZWRBcz1yZXN1
bWVSZW5kZXJpbmddIFByb21pc2U8dm9pZD4gcmVzdW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4
IDQ0MTJmMTAwNTM5N2NlZjVhMmE3NTAyZGRjMzIxZDVkZGExNzQ5MjAuLmQzNDZkZjg5YjBlM2U0
MDEyOTg2MDFkM2NlNzlkNTIxMjY3NWM4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC01NSw3ICs1
NSw3IEBAIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjp+QXVkaW9EZXN0aW5hdGlvbk5vZGUoKQogICAg
IHVuaW5pdGlhbGl6ZSgpOwogfQogCi12b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXIo
QXVkaW9CdXMqLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudW1iZXJPZkZyYW1l
cykKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlcihBdWRpb0J1cyosIEF1ZGlvQnVz
KiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBjb25zdCBBdWRpb0lPUG9z
aXRpb24mIG91dHB1dFBvc2l0aW9uKQogewogICAgIC8vIFdlIGRvbid0IHdhbnQgZGVub3JtYWxz
IHNsb3dpbmcgZG93biBhbnkgb2YgdGhlIGF1ZGlvIHByb2Nlc3NpbmcKICAgICAvLyBzaW5jZSB0
aGV5IGNhbiB2ZXJ5IHNlcmlvdXNseSBodXJ0IHBlcmZvcm1hbmNlLgpAQCAtNzgsNyArNzgsNyBA
QCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXIoQXVkaW9CdXMqLCBBdWRpb0J1cyog
ZGVzdGluYXRpb25CdXMsIHNpemVfdCBudQogICAgIH0KIAogICAgIC8vIExldCB0aGUgY29udGV4
dCB0YWtlIGNhcmUgb2YgYW55IGJ1c2luZXNzIGF0IHRoZSBzdGFydCBvZiBlYWNoIHJlbmRlciBx
dWFudHVtLgotICAgIGNvbnRleHQoKS5oYW5kbGVQcmVSZW5kZXJUYXNrcygpOworICAgIGNvbnRl
eHQoKS5oYW5kbGVQcmVSZW5kZXJUYXNrcyhvdXRwdXRQb3NpdGlvbik7CiAKICAgICAvLyBUaGlz
IHdpbGwgY2F1c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNo
IGluIHR1cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAogICAgIC8vIGFsbCB0aGUgd2F5
IGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByZW5kZXJpbmcgZ3JhcGguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXgg
MTA0ZjYwODY4MWI2YTNlNWZiYzcyNGRhYzlmNGNjZTg0YjcxODk1ZC4uNjlkYjA3OTFjMjk4OGFj
OGMwODNjNDUyZWJkNTU3YTM5ZDY2ZWQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNDQsNyArNDQsNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgLy8gVGhlIGF1ZGlvIGhhcmR3YXJlIGNhbGxzIHJlbmRlcigp
IHRvIGdldCB0aGUgbmV4dCByZW5kZXIgcXVhbnR1bSBvZiBhdWRpbyBpbnRvIGRlc3RpbmF0aW9u
QnVzLgogICAgIC8vIEl0IHdpbGwgb3B0aW9uYWxseSBnaXZlIHVzIGxvY2FsL2xpdmUgYXVkaW8g
aW5wdXQgaW4gc291cmNlQnVzIChpZiBpdCdzIG5vdCAwKS4KLSAgICB2b2lkIHJlbmRlcihBdWRp
b0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudW1iZXJP
ZkZyYW1lcykgb3ZlcnJpZGU7CisgICAgdm9pZCByZW5kZXIoQXVkaW9CdXMqIHNvdXJjZUJ1cywg
QXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGNvbnN0IEF1
ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pIG92ZXJyaWRlOwogCiAgICAgc2l6ZV90IGN1
cnJlbnRTYW1wbGVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFNhbXBsZUZyYW1lOyB9
CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3QgeyByZXR1cm4gY3VycmVudFNhbXBsZUZy
YW1lKCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+KHNhbXBsZVJhdGUoKSk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YTI4NjRiZWNmNzIzYWQ1ZjhkZjNmYzY1Mjg2NmEyMTAyZjk1MWZlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5oCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FV
RElPKQorCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBBdWRpb1RpbWVzdGFtcCB7CisgICAgZG91YmxlIGNvbnRleHRUaW1l
OworICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgcGVyZm9ybWFuY2VUaW1lOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oV0VCX0FVRElPKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jODIxZjUxNzFkZjg0N2NhNzQ5ODU3ZTljYTk5Y2RlZTJhNmRlODkwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFt
cC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCit0eXBlZGVmIGRvdWJsZSBET01IaWdo
UmVzVGltZVN0YW1wOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorICAgIEpTR2Vu
ZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9uYXJ5IEF1ZGlvVGltZXN0YW1wIHsKKyAgICBkb3Vi
bGUgY29udGV4dFRpbWU7CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBwZXJmb3JtYW5jZVRpbWU7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVk
aW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5jcHAKaW5kZXggOTNkMjgwYmMxNmVmODg3YzNmNjdiY2E5NjZmZmQ5OTk4MWU5MDEz
YS4uODlmNzA1NzA4NDIyYmQ5OTU2NmNlMjlkNGNhNmVhZjdkNTZmMGYzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBA
IC03NDQsNyArNzQ0LDcgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjphZGREZWZlcnJlZEZpbmlz
aERlcmVmKEF1ZGlvTm9kZSogbm9kZSkKICAgICBtX2RlZmVycmVkRmluaXNoRGVyZWZMaXN0LmFw
cGVuZChub2RlKTsKIH0KIAotdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVQcmVSZW5kZXJU
YXNrcygpCit2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVByZVJlbmRlclRhc2tzKGNvbnN0
IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKGlzQXVkaW9U
aHJlYWQoKSk7CiAKQEAgLTc1NywxMiArNzU3LDIwIEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6
aGFuZGxlUHJlUmVuZGVyVGFza3MoKQogICAgICAgICBoYW5kbGVEaXJ0eUF1ZGlvTm9kZU91dHB1
dHMoKTsKIAogICAgICAgICB1cGRhdGVBdXRvbWF0aWNQdWxsTm9kZXMoKTsKKyAgICAgICAgbV9v
dXRwdXRQb3NpdGlvbiA9IG91dHB1dFBvc2l0aW9uOwogCiAgICAgICAgIGlmIChtdXN0UmVsZWFz
ZUxvY2spCiAgICAgICAgICAgICB1bmxvY2soKTsKICAgICB9CiB9CiAKK0F1ZGlvSU9Qb3NpdGlv
biBCYXNlQXVkaW9Db250ZXh0OjpvdXRwdXRQb3NpdGlvbigpCit7CisgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBBdXRvTG9ja2VyIGxvY2tlcigqdGhpcyk7CisgICAgcmV0dXJuIG1f
b3V0cHV0UG9zaXRpb247Cit9CisKIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6aGFuZGxlUG9zdFJl
bmRlclRhc2tzKCkKIHsKICAgICBBU1NFUlQoaXNBdWRpb1RocmVhZCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKaW5kZXggMzMx
MTQ2YWVlZDMyNTU5MDdlNzAwMDUyNzg1Y2JhZDg0NGZmMzdkZS4uM2I3OTcyMjc1M2Y2M2IxYzdh
MmNmNjQyNzQxYTQ1OWI4ZTZmNDEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKQEAgLTE2Nyw3ICsxNjcsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBub3RpZnlOb2RlRmluaXNoZWRQcm9jZXNzaW5nKEF1ZGlvTm9kZSopOwogCiAg
ICAgLy8gQ2FsbGVkIGF0IHRoZSBzdGFydCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgotICAgIHZv
aWQgaGFuZGxlUHJlUmVuZGVyVGFza3MoKTsKKyAgICB2b2lkIGhhbmRsZVByZVJlbmRlclRhc2tz
KGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pOworCisgICAgQXVkaW9JT1Bv
c2l0aW9uIG91dHB1dFBvc2l0aW9uKCk7CiAKICAgICAvLyBDYWxsZWQgYXQgdGhlIGVuZCBvZiBl
YWNoIHJlbmRlciBxdWFudHVtLgogICAgIHZvaWQgaGFuZGxlUG9zdFJlbmRlclRhc2tzKCk7CkBA
IC00NTAsNiArNDUyLDggQEAgcHJpdmF0ZToKIAogICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6
U3VzcGVuZGVkIH07CiAgICAgUmVmUHRyPFBlbmRpbmdBY3Rpdml0eTxCYXNlQXVkaW9Db250ZXh0
Pj4gbV9wZW5kaW5nQWN0aXZpdHk7CisKKyAgICBBdWRpb0lPUG9zaXRpb24gbV9vdXRwdXRQb3Np
dGlvbjsKIH07CiAKIH0gLy8gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmlu
ZGV4IDU5ODJjMDA2MmJiMzg4YzI0NjViYjkxOGQxZTZiOGEyNzBlYWY1YTYuLmY5ZjAyZGE0MWU2
YzU3NzNhOWFjYmVkZDlmMTFhYTQ5MzU0MGNmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCBhdXRvIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZTo6b2ZmbGluZVJlbmRlcigpIC0+IE9mZmxpbmVSZW5kZXJSZXN1bHQKICAgICAgICAgICAgIHJl
dHVybiBPZmZsaW5lUmVuZGVyUmVzdWx0OjpTdXNwZW5kZWQ7CiAKICAgICAgICAgLy8gUmVuZGVy
IG9uZSByZW5kZXIgcXVhbnR1bS4KLSAgICAgICAgcmVuZGVyKDAsIG1fcmVuZGVyQnVzLmdldCgp
LCByZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgICAgIHJlbmRlcigwLCBtX3JlbmRlckJ1cy5nZXQo
KSwgcmVuZGVyUXVhbnR1bVNpemUsIHsgfSk7CiAgICAgICAgIAogICAgICAgICBzaXplX3QgZnJh
bWVzQXZhaWxhYmxlVG9Db3B5ID0gc3RkOjptaW4obV9mcmFtZXNUb1Byb2Nlc3MsIHJlbmRlclF1
YW50dW1TaXplKTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGQxODAxYWEwMWZlOTI4MzBi
M2VhODI2ZTY5N2JkYWI4NWZjODRmOTcuLmQyYjg5MDMxNmUyMmM1OWI4YmJmOTBkZmVlMDVhODQx
MzFhY2EwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yNjQ4LDYgKzI2NDgsNyBAQCBKU0F1ZGlvUGFy
YW0uY3BwCiBKU0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNwcAogSlNBdWRpb1Byb2Nlc3NpbmdFdmVu
dEluaXQuY3BwCiBKU0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKK0pTQXVkaW9UaW1lc3Rh
bXAuY3BwCiBKU0F1ZGlvVHJhY2suY3BwCiBKU0F1ZGlvVHJhY2tMaXN0LmNwcAogSlNBdWRpb1Ry
YWNrTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmM2ODgxYmU4MjA4ZTIwZDMzZTI0NmQyNTZlNzY5YmZk
MjdmNGYwYS4uNjBmZGM3MzFiMmM0OGQ0OGY2ZTFmYjg3MjQ3NmIxZjVjMmZiZDFmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjQyNCw2ICsyNDI0LDcgQEAKIAkJODJFM0Q4REYxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3Bl
cnR5U291cmNlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODJFM0Q4REQxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291cmNlRGF0YS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzMDAz
MEY2MUI3RDMzQjUwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDAzMEY0MUI3RDMz
QTYwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODMw
MDMwRjgxQjdEM0I3ODAwRUQzQUFDIC8qIENhY2hlZEhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzAwMzBGNzFCN0QzOTg4MDBF
RDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4MzAwNUY5RDI0RUIxRDQwMDA0ODBGOUIgLyogQXVk
aW9UaW1lc3RhbXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzMDA1RjlBMjRFQjFEMjgwMDQ4MEY5QiAvKiBBdWRpb1RpbWVzdGFtcC5oICovOyB9Owog
CQk4MzAzMzUwMjFGNTQ5MDU3MDA0REY3MDcgLyogRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwMzM0RkMx
RjU0OTA1MjAwNERGNzA3IC8qIEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaCAqLzsgfTsKIAkJ
ODMwMzM1MDMxRjU0OTA1QTAwNERGNzA3IC8qIEZpbGVTeXN0ZW1FbnRyaWVzQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDMzNEZFMUY1
NDkwNTIwMDRERjcwNyAvKiBGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmggKi87IH07CiAJCTgz
MDQwMjgyMjQ5QTdBNUYwMEE5MEQ4RCAvKiBQYW5uaW5nTW9kZWxUeXBlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzA0MDI4MDI0OUE3QTVDMDBBOTBE
OEQgLyogUGFubmluZ01vZGVsVHlwZS5oICovOyB9OwpAQCAtMTA0MTksNiArMTA0MjAsOCBAQAog
CQk4MzAwMzBGNDFCN0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyaWNDYWNoZWRIVE1MQ29s
bGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzAwMzBGNzFCN0QzOTg4
MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ2FjaGVkSFRNTENvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODMwMDNFMkIyNDk5OTdBODAwNjBBRjk0IC8qIFdlYktpdEF1ZGlvQ29udGV4dC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRBdWRpb0NvbnRl
eHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzAwNUY5QTI0RUIxRDI4MDA0
ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UaW1lc3RhbXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMwMDVGOUMyNEVCMUQyOTAwNDgwRjlC
IC8qIEF1ZGlvVGltZXN0YW1wLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb1RpbWVzdGFtcC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMDMzNEZCMUY1NDkwNTIwMDRERjcwNyAvKiBGaWxlU3lz
dGVtRGlyZWN0b3J5UmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzAzMzRGQzFGNTQ5MDUyMDA0REY3MDcgLyogRmlsZVN5c3RlbURpcmVjdG9yeVJl
YWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtRGlyZWN0
b3J5UmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMDMzNEZEMUY1NDkw
NTIwMDRERjcwNyAvKiBGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI5NTk5LDYgKzI5NjAyLDggQEAKIAkJCQlFN0NGODQ4OTI0QzBFMDU3
MDBCMDZCOTAgLyogQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmlkbCAqLywKIAkJCQlGREIwNTJE
RDE1NjFBNDJDMDBCNTAwRDYgLyogQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwICovLAogCQkJCUZE
QjA1MkRFMTU2MUE0MkMwMEI1MDBENiAvKiBBdWRpb1N1bW1pbmdKdW5jdGlvbi5oICovLAorCQkJ
CTgzMDA1RjlBMjRFQjFEMjgwMDQ4MEY5QiAvKiBBdWRpb1RpbWVzdGFtcC5oICovLAorCQkJCTgz
MDA1RjlDMjRFQjFEMjkwMDQ4MEY5QiAvKiBBdWRpb1RpbWVzdGFtcC5pZGwgKi8sCiAJCQkJODMx
OThGQkIyNEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuY3BwICovLAogCQkJCTgz
MTk4RkJFMjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmggKi8sCiAJCQkJODMx
OThGQkQyNEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuaWRsICovLApAQCAtMzAx
NzcsNiArMzAxODIsNyBAQAogCQkJCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1Nv
dXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0MwNDZDQjFFNDI2NDEz
MDA3MjAxRTcgLyogQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRCMDUyRTAxNTYxQTQyQzAwQjUwMEQ2IC8qIEF1ZGlvU3VtbWluZ0p1bmN0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk4MzAwNUY5RDI0RUIxRDQwMDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMEQ5MTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1Ry
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTg4RTBEQzE3MTVEMkEyMDA2NThEOTggLyogQXVk
aW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEI1QTRDMTgwRTE3QzAwMDhCOEU2
NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaAppbmRleCBhNDM4OTFmMGJm
NDJmZDJiZGUwNmRkMDBjOTMyNGNmMWRhMjBjNWIyLi4xY2YwNzliZTI5ODViODAwOGRmOWQ3NWJi
MWZkYmVlMTQyNThkN2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb0lPQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb0lPQ2FsbGJhY2suaApAQCAtMjksMTYgKzI5LDQ4IEBACiAjaWZuZGVmIEF1ZGlvSU9DYWxs
YmFja19oCiAjZGVmaW5lIEF1ZGlvSU9DYWxsYmFja19oCiAKKyNpbmNsdWRlIDx3dGYvTW9ub3Rv
bmljVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQXVkaW9CdXM7CiAKK3N0cnVjdCBBdWRpb0lPUG9zaXRpb24geworICAgIC8v
IEF1ZGlvIHN0cmVhbSBwb3NpdGlvbiBpbiBzZWNvbmRzLgorICAgIFNlY29uZHMgcG9zaXRpb247
CisgICAgLy8gU3lzdGVtJ3MgbW9ub3RvbmljIHRpbWUgaW4gc2Vjb25kcyBjb3JyZXNwb25kaW5n
IHRvIHRoZSBjb250YWluZWQgfHBvc2l0aW9ufCB2YWx1ZS4KKyAgICBNb25vdG9uaWNUaW1lIHRp
bWVzdGFtcDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgcG9z
aXRpb247CisgICAgICAgIGVuY29kZXIgPDwgdGltZXN0YW1wOworICAgIH0KKworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBdWRpb0lPUG9zaXRpb24mIHJlc3VsdCkKKyAgICB7
CisgICAgICAgIFNlY29uZHMgcG9zaXRpb247CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cG9zaXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXN1bHQucG9z
aXRpb24gPSBwb3NpdGlvbjsKKworICAgICAgICBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcDsKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0aW1lc3RhbXApKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICByZXN1bHQudGltZXN0YW1wID0gdGltZXN0YW1wOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCiAvLyBBYnN0cmFjdCBiYXNlLWNsYXNzIGZvciBpc29j
aHJvbm91cyBhdWRpbyBJL08gY2xpZW50LgogY2xhc3MgQXVkaW9JT0NhbGxiYWNrIHsKIHB1Ymxp
YzoKICAgICAvLyByZW5kZXIoKSBpcyBjYWxsZWQgcGVyaW9kaWNhbGx5IHRvIGdldCB0aGUgbmV4
dCByZW5kZXIgcXVhbnR1bSBvZiBhdWRpbyBpbnRvIGRlc3RpbmF0aW9uQnVzLgogICAgIC8vIE9w
dGlvbmFsIGF1ZGlvIGlucHV0IGlzIGdpdmVuIGluIHNvdXJjZUJ1cyAoaWYgaXQncyBub3QgMCku
Ci0gICAgdmlydHVhbCB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyog
ZGVzdGluYXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVuZGVyKEF1ZGlvQnVzKiBzb3VyY2VCdXMsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1
cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3QgQXVkaW9JT1Bvc2l0aW9uJiBvdXRwdXRQ
b3NpdGlvbikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ0RpZENoYW5nZSgpID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggNGJmZWYwZTBlZTljZWJiMWZiNmI3
ZTEzZDdmMDRkMGFlM2Y3ZTFkZi4uMTBlYzdiNjUwOTg0MGQ2OWQ4YzFlY2VjYTU4ZjU0ZjYyYzM0
ZGQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjaW5j
bHVkZSAiQXVkaW9JT0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiQXVkaW9TZXNzaW9uLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPG1hY2gvbWFjaC5oPgorI2luY2x1ZGUgPG1hY2gv
bWFjaF90aW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTQ0LDkgKzE0NiwyNyBA
QCBzdGF0aWMgdm9pZCBhc3NpZ25BdWRpb0J1ZmZlcnNUb0J1cyhBdWRpb0J1ZmZlciogYnVmZmVy
cywgQXVkaW9CdXMmIGJ1cywgVUludDMyCiAgICAgfQogfQogCitzdGF0aWMgTW9ub3RvbmljVGlt
ZSBtYWNoQWJzb2x1dGVUaW1lVG9Nb25vdG9uaWNUaW1lKHVpbnQ2NF90IG1hY2hBYnNvbHV0ZVRp
bWUpCit7CisgICAgLy8gQmFzZWQgb24gbGlzdGluZyAjMiBmcm9tIEFwcGxlIFFBIDEzOTgsIGJ1
dCBtb2RpZmllZCB0byBiZSB0aHJlYWQtc2FmZS4KKyAgICBzdGF0aWMgbWFjaF90aW1lYmFzZV9p
bmZvX2RhdGFfdCB0aW1lYmFzZUluZm87CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRp
YWxpemVUaW1lck9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVUaW1lck9u
Y2VGbGFnLCBbXSB7CisgICAgICAgIGtlcm5fcmV0dXJuX3Qga3IgPSBtYWNoX3RpbWViYXNlX2lu
Zm8oJnRpbWViYXNlSW5mbyk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQoa3IsIGtyID09IEtFUk5f
U1VDQ0VTUyk7CisgICAgICAgIEFTU0VSVCh0aW1lYmFzZUluZm8uZGVub20pOworICAgIH0pOwor
CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKChtYWNoQWJzb2x1dGVU
aW1lICogdGltZWJhc2VJbmZvLm51bWVyKSAvICgxLjBlOSAqIHRpbWViYXNlSW5mby5kZW5vbSkp
OworfQorCiAvLyBQdWxscyBvbiBvdXIgcHJvdmlkZXIgdG8gZ2V0IHJlbmRlcmVkIGF1ZGlvIHN0
cmVhbS4KLU9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKFVJbnQzMiBudW1i
ZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpCitPU1N0YXR1cyBBdWRpb0Rlc3Rp
bmF0aW9uQ29jb2E6OnJlbmRlcihjb25zdCBBdWRpb1RpbWVTdGFtcCogdGltZXN0YW1wLCBVSW50
MzIgbnVtYmVyT2ZGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCogaW9EYXRhKQogeworICAgIGF1dG8g
b3V0cHV0VGltZXN0YW1wID0gQXVkaW9JT1Bvc2l0aW9uIHsKKyAgICAgICAgU2Vjb25kcyB7IHRp
bWVzdGFtcC0+bVNhbXBsZVRpbWUgLyBtX3NhbXBsZVJhdGUgfSwKKyAgICAgICAgbWFjaEFic29s
dXRlVGltZVRvTW9ub3RvbmljVGltZSh0aW1lc3RhbXAtPm1Ib3N0VGltZSkKKyAgICB9OwogICAg
IGF1dG8qIGJ1ZmZlcnMgPSBpb0RhdGEtPm1CdWZmZXJzOwogICAgIFVJbnQzMiBudW1iZXJPZkJ1
ZmZlcnMgPSBpb0RhdGEtPm1OdW1iZXJCdWZmZXJzOwogICAgIFVJbnQzMiBmcmFtZXNSZW1haW5p
bmcgPSBudW1iZXJPZkZyYW1lczsKQEAgLTE2OSwxMiArMTg5LDEyIEBAIE9TU3RhdHVzIEF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZm
ZXJMaXN0KiBpCiAgICAgICAgIGlmICghZnJhbWVzVGhpc1RpbWUpCiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgaWYgKGZyYW1lc1RoaXNUaW1lIDwga1JlbmRlckJ1ZmZlclNpemUpIHsKLSAg
ICAgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fc3BhcmVCdXMucHRyKCksIGtSZW5kZXJC
dWZmZXJTaXplKTsKKyAgICAgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fc3BhcmVCdXMu
cHRyKCksIGtSZW5kZXJCdWZmZXJTaXplLCBvdXRwdXRUaW1lc3RhbXApOwogICAgICAgICAgICAg
bV9yZW5kZXJCdXMtPmNvcHlGcm9tUmFuZ2UobV9zcGFyZUJ1cy5nZXQoKSwgMCwgZnJhbWVzVGhp
c1RpbWUpOwogICAgICAgICAgICAgbV9zdGFydFNwYXJlRnJhbWUgPSBmcmFtZXNUaGlzVGltZTsK
ICAgICAgICAgICAgIG1fZW5kU3BhcmVGcmFtZSA9IGtSZW5kZXJCdWZmZXJTaXplOwogICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fcmVuZGVyQnVzLnB0
cigpLCBmcmFtZXNUaGlzVGltZSk7CisgICAgICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBt
X3JlbmRlckJ1cy5wdHIoKSwgZnJhbWVzVGhpc1RpbWUsIG91dHB1dFRpbWVzdGFtcCk7CiAgICAg
ICAgIHByb2Nlc3NCdXNBZnRlclJlbmRlcihtX3JlbmRlckJ1cy5nZXQoKSwgZnJhbWVzVGhpc1Rp
bWUpOwogICAgICAgICBmcmFtZU9mZnNldCArPSBmcmFtZXNUaGlzVGltZTsKICAgICAgICAgZnJh
bWVzUmVtYWluaW5nIC09IGZyYW1lc1RoaXNUaW1lOwpAQCAtMTg0LDEwICsyMDQsMTAgQEAgT1NT
dGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXIoVUludDMyIG51bWJlck9mRnJhbWVz
LCBBdWRpb0J1ZmZlckxpc3QqIGkKIH0KIAogLy8gRGVmYXVsdE91dHB1dFVuaXQgY2FsbGJhY2sK
LU9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6aW5wdXRQcm9jKHZvaWQqIHVzZXJEYXRh
LCBBdWRpb1VuaXRSZW5kZXJBY3Rpb25GbGFncyosIGNvbnN0IEF1ZGlvVGltZVN0YW1wKiwgVUlu
dDMyIC8qYnVzTnVtYmVyKi8sIFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0
KiBpb0RhdGEpCitPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmlucHV0UHJvYyh2b2lk
KiB1c2VyRGF0YSwgQXVkaW9Vbml0UmVuZGVyQWN0aW9uRmxhZ3MqLCBjb25zdCBBdWRpb1RpbWVT
dGFtcCogdGltZXN0YW1wLCBVSW50MzIgLypidXNOdW1iZXIqLywgVUludDMyIG51bWJlck9mRnJh
bWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSkKIHsKICAgICBhdXRvKiBhdWRpb091dHB1dCA9
IHN0YXRpY19jYXN0PEF1ZGlvRGVzdGluYXRpb25Db2NvYSo+KHVzZXJEYXRhKTsKLSAgICByZXR1
cm4gYXVkaW9PdXRwdXQtPnJlbmRlcihudW1iZXJPZkZyYW1lcywgaW9EYXRhKTsKKyAgICByZXR1
cm4gYXVkaW9PdXRwdXQtPnJlbmRlcih0aW1lc3RhbXAsIG51bWJlck9mRnJhbWVzLCBpb0RhdGEp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4
IGFlNzVmM2YyNjMxNzZlNzQzY2I3ODEyNTAxN2QzYTRjMDEwOWRjYjIuLmI1ZjE1NmQwOTVhYmEw
ODIwMWNjMTg0ZWRmNjBkNjE1OGI0Zjc1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCkBAIC02
Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb25maWd1cmUoKTsKICAgICB2b2lkIHBy
b2Nlc3NCdXNBZnRlclJlbmRlcihBdWRpb0J1cyYsIFVJbnQzMiBudW1iZXJPZkZyYW1lcyk7CiAK
LSAgICBPU1N0YXR1cyByZW5kZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxp
c3QqIGlvRGF0YSk7CisgICAgT1NTdGF0dXMgcmVuZGVyKGNvbnN0IEF1ZGlvVGltZVN0YW1wKiB0
aW1lc3RhbXAsIFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEp
OwogCiAgICAgQXVkaW9Vbml0IG1fb3V0cHV0VW5pdDsKICAgICBBdWRpb0lPQ2FsbGJhY2smIG1f
Y2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNw
cAppbmRleCA1MzBmYzExM2Y0OTA1NmYwZTIzMjY0Njk1MWY0YzFhZGQ1YmFkMmU0Li5iNGY2ZmQ5
MDA1ZGJlMGNjMDhlZGJmMWMyNmZjZDM3Mjk1M2Q0MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJL
aXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTM1MCw3ICszNTAsNyBAQCBzdGF0aWMg
T3B0aW9uYWw8VmVjdG9yPEdSZWZQdHI8R3N0QnVmZmVyPj4+IHdlYktpdFdlYkF1ZGlvU3JjQWxs
b2NhdGVCdWZmZXJzQW5kUgogICAgIH0KIAogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Ig
bG9jYWwvbGl2ZSBhdWRpbyBpbnB1dC4KLSAgICBwcml2LT5wcm92aWRlci0+cmVuZGVyKG51bGxw
dHIsIHByaXYtPmJ1cywgcHJpdi0+ZnJhbWVzVG9QdWxsKTsKKyAgICBwcml2LT5wcm92aWRlci0+
cmVuZGVyKG51bGxwdHIsIHByaXYtPmJ1cywgcHJpdi0+ZnJhbWVzVG9QdWxsLCB7IH0pOwogCiAg
ICAgcmV0dXJuIG1ha2VPcHRpb25hbChjaGFubmVsQnVmZmVyTGlzdCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmNwcAppbmRleCAzMzM3MzMwYjM4NTA2ZDk2YzA1MzkzZDZhYTBmOGVi
MTdiNDFhOWY3Li40NmFjNzhiZDIyOGRiZjFmOGM1MzBlM2ExOGNkNDQ5NmEyOGExOTc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToK
ICAgICB7CiAgICAgfQogCi0gICAgdm9pZCByZW5kZXIoQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVk
aW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlkZQor
ICAgIHZvaWQgcmVuZGVyKEF1ZGlvQnVzKiBzb3VyY2VCdXMsIEF1ZGlvQnVzKiBkZXN0aW5hdGlv
bkJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3QgV2ViQ29yZTo6QXVkaW9JT1Bvc2l0
aW9uJiBvdXRwdXRQb3NpdGlvbikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3Byb3Rl
Y3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bikKICAgICAgICAgICAgIHJldHVybjsKQEAgLTk1
LDggKzk1LDggQEAgcHJpdmF0ZToKIAogICAgICAgICAvLyBGSVhNRTogUmVwbGFjZSB0aGlzIGNv
ZGUgd2l0aCBhIHJpbmcgYnVmZmVyLiBBdCBsZWFzdCB0aGlzIGhhcHBlbnMgaW4gYXVkaW8gdGhy
ZWFkLgogICAgICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbdGhpcywgZnJhbWVzVG9Qcm9jZXNzLCAmYnVmZmVycywgJnJlbmRlclNlbWFwaG9y
ZV0gewotICAgICAgICAgICAgUmVtb3RlQXVkaW9CdXNEYXRhIGJ1c0RhdGEgeyBmcmFtZXNUb1By
b2Nlc3MsIGJ1ZmZlcnMubWFwKFtdKGF1dG8mIG1lbW9yeSkgeyByZXR1cm4gbWVtb3J5LmNvcHlS
ZWYoKTsgfSkgfTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgZnJhbWVzVG9Qcm9j
ZXNzLCBvdXRwdXRQb3NpdGlvbiwgJmJ1ZmZlcnMsICZyZW5kZXJTZW1hcGhvcmVdIHsKKyAgICAg
ICAgICAgIFJlbW90ZUF1ZGlvQnVzRGF0YSBidXNEYXRhIHsgZnJhbWVzVG9Qcm9jZXNzLCBvdXRw
dXRQb3NpdGlvbiwgYnVmZmVycy5tYXAoW10oYXV0byYgbWVtb3J5KSB7IHJldHVybiBtZW1vcnku
Y29weVJlZigpOyB9KSB9OwogICAgICAgICAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2Vzcyk7CiAg
ICAgICAgICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIoYnVzRGF0
YSksIFsmXSgpIHsKICAgICAgICAgICAgICAgICByZW5kZXJTZW1hcGhvcmUuc2lnbmFsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
QnVzRGF0YS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0J1c0RhdGEuaAppbmRleCA3YWM0YzM3MzQ1NDUzMjUwZTc5ZWIzZGE2NDE3OWVjODc1ZDg2MDA2
Li5kMjFkNDA1NWFmNDcyYmFiYjY3YmZmMzlkZDQ2ODJjODNhYTM0ZTdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRh
LmgKQEAgLTMwLDE4ICszMCwyMSBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNs
dWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NoYXJlZEJ1ZmZlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IFJlbW90
ZUF1ZGlvQnVzRGF0YSB7CiAgICAgdWludDY0X3QgZnJhbWVzVG9Qcm9jZXNzIHsgMCB9OworICAg
IFdlYkNvcmU6OkF1ZGlvSU9Qb3NpdGlvbiBvdXRwdXRQb3NpdGlvbjsKICAgICBWZWN0b3I8UmVm
PFNoYXJlZE1lbW9yeT4+IGNoYW5uZWxCdWZmZXJzOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RW5jb2Rlcj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsK
ICAgICAgICAgZW5jb2RlciA8PCBmcmFtZXNUb1Byb2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwg
b3V0cHV0UG9zaXRpb247CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KGNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
Y2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIFNoYXJlZE1lbW9yeTo6
SGFuZGxlIGhhbmRsZTsKQEAgLTU4LDYgKzYxLDExIEBAIHN0cnVjdCBSZW1vdGVBdWRpb0J1c0Rh
dGEgewogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQuZnJhbWVzVG9Q
cm9jZXNzID0gZnJhbWVzVG9Qcm9jZXNzOwogCisgICAgICAgIFdlYkNvcmU6OkF1ZGlvSU9Qb3Np
dGlvbiBvdXRwdXRQb3NpdGlvbjsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvdXRwdXRQ
b3NpdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5vdXRw
dXRQb3NpdGlvbiA9IG91dHB1dFBvc2l0aW9uOworCiAgICAgICAgIHVpbnQ2NF90IHNpemUgPSAw
OwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCmluZGV4IDBiYWZiMzcx
YWYwYjY3NjMwNDA5NmIxMjg3MjNjZTBkYzYxNWI1MGQuLjA2OTQ1YmFmZDVkMTg5YzdhMGY5Yzcy
NDAyYmI4ODlkYzgwN2Y2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
QEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcihjb25zdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSYKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKTsgKytpKQog
ICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShpLCAoZmxvYXQqKWF1ZGlvQnVzRGF0
YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNz
KTsKIAotICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBhdWRpb0J1c0Rh
dGEuZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBhdWRpb0J1cy5n
ZXQoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgYXVkaW9CdXNEYXRhLm91dHB1dFBv
c2l0aW9uKTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCA5NzQ3N2UyZGJkN2QxYTU2MDNiOGJmZGFmMmUyNDUwNTRiZDc3NzI1
Li44NzM3NjkzZTg2NmRiYTQwMGM3MWMxODc5MzFlODJlMDRlMGZhZGVkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wOC0xNyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEF1ZGlvQ29udGV4dC5nZXRPdXRwdXRU
aW1lc3RhbXAoKSBpcyBtaXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTU1OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0cyBub3cgdGhhdCBtb3JlIGNoZWNrcyBh
cmUgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxo
YXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvY29udGV4dC1pbnRlcmZhY2Uv
YXVkaW9jb250ZXh0LWdldG91dHB1dHRpbWVzdGFtcC1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDgt
MTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdWRpb05vZGUu
ZGlzY29ubmVjdCgpIGRvZXMgbm90IG1hdGNoIHRoZSBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lk
bGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ct
ZXhwZWN0ZWQudHh0CmluZGV4IDkyNjBhNjBiN2RiZjg3NjBlZGE1Yjk2NTEzMjkwMTU0ZmRhMWJl
NGQuLjQ1MzlmOTFmZjEyYjAzNjUzODVjMjU0ZGI5ZDg4MjE2Y2JkNTc0MmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRs
aGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5k
b3ctZXhwZWN0ZWQudHh0CkBAIC00OSw3ICs0OSw3IEBAIFBBU1MgQXVkaW9Db250ZXh0IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
CiBQQVNTIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCiBQ
QVNTIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBiYXNlTGF0ZW5jeSAKIEZBSUwg
QXVkaW9Db250ZXh0IGludGVyZmFjZTogYXR0cmlidXRlIG91dHB1dExhdGVuY3kgYXNzZXJ0X3Ry
dWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJvdXRwdXRMYXRl
bmN5IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBBdWRpb0NvbnRleHQgaW50ZXJmYWNl
OiBvcGVyYXRpb24gZ2V0T3V0cHV0VGltZXN0YW1wKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBl
Y3RlZCBwcm9wZXJ0eSAiZ2V0T3V0cHV0VGltZXN0YW1wIiBtaXNzaW5nCitQQVNTIEF1ZGlvQ29u
dGV4dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRPdXRwdXRUaW1lc3RhbXAoKSAKIFBBU1MgQXVk
aW9Db250ZXh0IGludGVyZmFjZTogb3BlcmF0aW9uIHJlc3VtZSgpIAogUEFTUyBBdWRpb0NvbnRl
eHQgaW50ZXJmYWNlOiBvcGVyYXRpb24gc3VzcGVuZCgpIAogUEFTUyBBdWRpb0NvbnRleHQgaW50
ZXJmYWNlOiBvcGVyYXRpb24gY2xvc2UoKSAKQEAgLTYxLDcgKzYxLDcgQEAgUEFTUyBBdWRpb0Nv
bnRleHQgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBjb250ZXh0CiBQQVNTIFN0cmluZ2lm
aWNhdGlvbiBvZiBjb250ZXh0IAogUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBjb250ZXh0
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYmFzZUxhdGVuY3kiIHdpdGggdGhlIHByb3BlciB0eXBl
IAogRkFJTCBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBjb250ZXh0IG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAib3V0cHV0TGF0ZW5jeSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRz
OiBwcm9wZXJ0eSAib3V0cHV0TGF0ZW5jeSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgot
RkFJTCBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBjb250ZXh0IG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiZ2V0T3V0cHV0VGltZXN0YW1wKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhl
cml0czogcHJvcGVydHkgImdldE91dHB1dFRpbWVzdGFtcCIgbm90IGZvdW5kIGluIHByb3RvdHlw
ZSBjaGFpbgorUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBjb250ZXh0IG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZ2V0T3V0cHV0VGltZXN0YW1wKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBjb250ZXh0IG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAicmVzdW1lKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBBdWRpb0NvbnRleHQgaW50
ZXJmYWNlOiBjb250ZXh0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3VzcGVuZCgpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgQXVkaW9Db250ZXh0IGludGVyZmFjZTogY29udGV4dCBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImNsb3NlKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2NvbnRleHQtaW50ZXJmYWNlL2F1ZGlvY29udGV4dC1n
ZXRvdXRwdXR0aW1lc3RhbXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2NvbnRl
eHQtaW50ZXJmYWNlL2F1ZGlvY29udGV4dC1nZXRvdXRwdXR0aW1lc3RhbXAtZXhwZWN0ZWQudHh0
CmluZGV4IDlkZWVkMzAzYWRhYWRkODY0ZDRiZjIxZDg5YjRhNDY2OTRhY2JjNzMuLmU2NzllNDVj
MmNlMjM1OTgyNGRmNTA5ZWQ4ZmIwYWZjMGM5NGZiYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtYXVkaW9jb250ZXh0LWludGVyZmFjZS9hdWRpb2NvbnRleHQtZ2V0b3V0cHV0dGltZXN0YW1w
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvY29udGV4dC1pbnRlcmZhY2Uv
YXVkaW9jb250ZXh0LWdldG91dHB1dHRpbWVzdGFtcC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwx
MiBAQAogCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCi1GQUlMIEV4ZWN1dGlu
ZyAiZ2V0b3V0cHV0dGltZXN0YW1wLWluaXRpYWwtdmFsdWVzIiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGNvbnRleHQuZ2V0
T3V0cHV0VGltZXN0YW1wIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2NvbnRleHQuZ2V0T3V0cHV0
VGltZXN0YW1wKCknLCAnY29udGV4dC5nZXRPdXRwdXRUaW1lc3RhbXAnIGlzIHVuZGVmaW5lZCki
CitQQVNTIEV4ZWN1dGluZyAiZ2V0b3V0cHV0dGltZXN0YW1wLWluaXRpYWwtdmFsdWVzIiAKIFBB
U1MgQXVkaXQgcmVwb3J0IAogUEFTUyA+IFtnZXRvdXRwdXR0aW1lc3RhbXAtaW5pdGlhbC12YWx1
ZXNdICAKK1BBU1MgICB0aW1lc3RhbXAuY29udGV4dFRpbWUgZG9lcyBleGlzdC4gCitQQVNTICAg
dGltZXN0YW1wLnBlcmZvcm1hbmNlVGltZSBkb2VzIGV4aXN0LiAKK1BBU1MgICB0aW1lc3RhbXAu
Y29udGV4dFRpbWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuIAorUEFTUyAgIHRpbWVz
dGFtcC5wZXJmb3JtYW5jZVRpbWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuIAorUEFT
UyA8IFtnZXRvdXRwdXR0aW1lc3RhbXAtaW5pdGlhbC12YWx1ZXNdIEFsbCBhc3NlcnRpb25zIHBh
c3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykgCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklO
SVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406758</attachid>
            <date>2020-08-17 17:49:26 -0700</date>
            <delta_ts>2020-08-17 17:52:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215591-20200817174924.patch</filename>
            <type>text/plain</type>
            <size>40688</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc4NTMyNDBlY2FhOTlm
NzMzZDZjZDE5OWJlZGYyZWQ4NmM1NTZhYS4uNDY1ZTc1N2E4ZjllYTE0NTczODg1Y2FhZjk1MzY3
ODNmOTMyZTc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA4LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9Db250ZXh0LmdldE91
dHB1dFRpbWVzdGFtcCgpIGlzIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNTU5MQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgIEF1ZGlvQ29udGV4dC5nZXRPdXRwdXRUaW1lc3RhbXAoKSBpcyBtaXNz
aW5nOgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlv
Y29udGV4dC1nZXRvdXRwdXR0aW1lc3RhbXAKKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFz
ZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Z2V0T3V0cHV0VGltZXN0YW1wKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpyZW5kZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmguCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGw6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmguCisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVByZVJlbmRlclRhc2tzKToKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6Om91dHB1dFBvc2l0aW9uKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9mZmxpbmVSZW5kZXIpOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvSU9Qb3NpdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvSU9Qb3NpdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFjaEFic29s
dXRlVGltZVRvTW9ub3RvbmljVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OnJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29j
b2E6OmlucHV0UHJvYyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmg6CisKIDIwMjAtMDgtMTcgIEthcmwgUmFja2xlciAgPHJhY2tsZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjY1NjAzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA0YWVmMDg4MTU0YTdkNzBjNWZhNTkwNDU5Y2YzOTFjM2ExNWNlZTBkLi5jNGVjZDE5OWM3
MGQxYzkyZWIzNmMyZmE5NzUwM2IzODE1YWY4YmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIwLTA4LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
QXVkaW9Db250ZXh0LmdldE91dHB1dFRpbWVzdGFtcCgpIGlzIG1pc3NpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTU5MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
QnVzRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9CdXNE
YXRhOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKToKKwogMjAyMC0wOC0xNyAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBBdm9pZCB3YWl0aW5nIGZv
ciBMYXVuY2ggU2VydmljZXMgb24gZXZlcnkgbG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQ3VycmVudFRpbWUuY3BwIGIvU291cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwCmluZGV4
IDQ2ZTU1ZDQ2Y2Q3Y2QzZGQ0MDMzNDQ1NTlmMjA1ZmM0ZTQyODhhMDMuLjEzMThkMWFkZDdlMzFk
MzU3N2YxYWU0YmFjNzU0NDdiYzhkYjFhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0N1
cnJlbnRUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAKQEAgLTI1
MCwxMSArMjUwLDggQEAgV2FsbFRpbWUgV2FsbFRpbWU6Om5vdygpCiAgICAgcmV0dXJuIGZyb21S
YXdTZWNvbmRzKGN1cnJlbnRUaW1lKCkpOwogfQogCi1Nb25vdG9uaWNUaW1lIE1vbm90b25pY1Rp
bWU6Om5vdygpCitNb25vdG9uaWNUaW1lIE1vbm90b25pY1RpbWU6OmZyb21NYWNoQWJzb2x1dGVU
aW1lKHVpbnQ2NF90IG1hY2hBYnNvbHV0ZVRpbWUpCiB7Ci0jaWYgVVNFKEdMSUIpCi0gICAgcmV0
dXJuIGZyb21SYXdTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4oZ19nZXRfbW9ub3RvbmljX3Rp
bWUoKSAvIDEwMDAwMDAuMCkpOwotI2VsaWYgT1MoREFSV0lOKQogICAgIC8vIEJhc2VkIG9uIGxp
c3RpbmcgIzIgZnJvbSBBcHBsZSBRQSAxMzk4LCBidXQgbW9kaWZpZWQgdG8gYmUgdGhyZWFkLXNh
ZmUuCiAgICAgc3RhdGljIG1hY2hfdGltZWJhc2VfaW5mb19kYXRhX3QgdGltZWJhc2VJbmZvOwog
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplVGltZXJPbmNlRmxhZzsKQEAgLTI2
Myw4ICsyNjAsMTUgQEAgTW9ub3RvbmljVGltZSBNb25vdG9uaWNUaW1lOjpub3coKQogICAgICAg
ICBBU1NFUlRfVU5VU0VEKGtyLCBrciA9PSBLRVJOX1NVQ0NFU1MpOwogICAgICAgICBBU1NFUlQo
dGltZWJhc2VJbmZvLmRlbm9tKTsKICAgICB9KTsKKyAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMo
KG1hY2hBYnNvbHV0ZVRpbWUgKiB0aW1lYmFzZUluZm8ubnVtZXIpIC8gKDEuMGU5ICogdGltZWJh
c2VJbmZvLmRlbm9tKSk7Cit9CiAKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoKG1hY2hfYWJz
b2x1dGVfdGltZSgpICogdGltZWJhc2VJbmZvLm51bWVyKSAvICgxLjBlOSAqIHRpbWViYXNlSW5m
by5kZW5vbSkpOworTW9ub3RvbmljVGltZSBNb25vdG9uaWNUaW1lOjpub3coKQoreworI2lmIFVT
RShHTElCKQorICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGdf
Z2V0X21vbm90b25pY190aW1lKCkgLyAxMDAwMDAwLjApKTsKKyNlbGlmIE9TKERBUldJTikKKyAg
ICByZXR1cm4gZnJvbU1hY2hBYnNvbHV0ZVRpbWUobWFjaF9hYnNvbHV0ZV90aW1lKCkpOwogI2Vs
aWYgT1MoRlVDSFNJQSkKICAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoenhfY2xvY2tfZ2V0X21v
bm90b25pYygpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihaWF9TRUMoMSkpKTsKICNlbGlmIE9TKExJ
TlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmggYi9Tb3VyY2UvV1RGL3d0Zi9Nb25v
dG9uaWNUaW1lLmgKaW5kZXggZWJkMjdmN2ZkMzc1MDExNjk5MjBkZWM1NTE1ZDcyZjg5NTUwODNm
OS4uYTRlODg1Nzc0NGRlYzU5NmM1YzNhNzQ3MzMzYjJiZGQ0N2NkZDNlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01vbm90
b25pY1RpbWUuaApAQCAtNTEsNyArNTEsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0
dXJuIE1vbm90b25pY1RpbWUodmFsdWUpOwogICAgIH0KLSAgICAKKworI2lmIE9TKERBUldJTikK
KyAgICBzdGF0aWMgTW9ub3RvbmljVGltZSBmcm9tTWFjaEFic29sdXRlVGltZSh1aW50NjRfdCk7
CisjZW5kaWYKKwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgTW9ub3RvbmljVGltZSBu
b3coKTsKICAgICAKICAgICBzdGF0aWMgY29uc3RleHByIE1vbm90b25pY1RpbWUgaW5maW5pdHko
KSB7IHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Omlu
ZmluaXR5KCkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGE1ZjBlN2EwODY4OTg3MTVlNjUy
ZDFhNWNiYWU0N2U3N2IwNzM4ZjQuLmRmZGMwYjZlOGViYTJiYWRkNGMyZWQ3ZDUxZmU2MzI4MDNm
MjQ5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NjYsNiArNDY2LDcgQEAgc2V0KFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2lu
Z0V2ZW50LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0
LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmlkbAor
ICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCiAgICAgTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmls
dGVyTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck9wdGlvbnMuaWRs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRl
eCA0ODdjYTdmODRmN2JmODgwNzZlMzE4NTk1ZDFhNjMzYmE2Y2YwODdjLi5hYjRmN2RlOGM0Zjdl
ZmViNWM4NTE3YzNmZDg3Mjc2MjcwZjQ5YjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTMxNyw2ICszMTcsNyBAQCAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudEluaXQuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwKKyQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck9wdGlvbnMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDZjZjM1NmE0YmU2YTdjZmZl
MzAwN2RhNjc1ZDllZTAxMDYyOGNkOTYuLjljZDQ0NDRlMmMxYTFjZjc5OGFiYTU3ZDc1OTJmZmRm
OTg3M2VlM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CkBAIC0xODMsNiArMTgzLDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1Byb2Nlc3NpbmdFdmVudEluaXQuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvUHJvY2Vzc2luZ0V2
ZW50SW5pdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UaW1lc3RhbXAuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVGlt
ZXN0YW1wLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
QXVkaW9UcmFjay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQXVkaW9UcmFjay5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0F1ZGlvVHJhY2tMaXN0LmNwcApAQCAtNDAxLDYgKzQwMyw4IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlND
dXN0b21FbGVtZW50UmVnaXN0cnkuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNDdXN0b21FdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tRXZlbnQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01CaW5kaW5nSW50ZXJuYWxzQnVpbHRpbnMu
aApAQCAtMjI3Miw4ICsyMjc2LDYgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNYUGF0aEV2YWx1YXRvci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTWFBhdGhFdmFsdWF0b3IuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aEV4cHJlc3Npb24uY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1hQYXRoRXhwcmVzc2lv
bi5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlci5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTWFBhdGhOU1Jlc29sdmVyLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aE5TUmVzb2x2ZXIuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aFJlc3Vs
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDBhYWQ4ZTM0YzU4ZDQ4NDUz
Nzg0ODkyYTdkNTE2Y2U4NTllNWVjNzIuLmE2MzU4YTk5NTA0MTQ5OGZmNjA1NmI5YzBmNWMzYTJk
NjRiYTQ0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzk4LDYgKzM5OCw3
IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Qcm9jZXNzaW5nRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwgXAorICAgICQoV2ViQ29yZSkv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyT3B0aW9ucy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IGFlZDMyMjgwNWVmN2Ew
ZmMxZTA2YjY2NjY4MTUyYTU0ODc4ZDM3MjMuLjM1NTU0Y2YxMGUwYTdhZjkxNzMzODEyMmVkNzcw
ODRjODY4ZDRkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHAKQEAgLTI4LDggKzI4LDExIEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykK
IAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIkF1ZGlvVGltZXN0YW1wLmgi
CisjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJQ
ZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtOTYsNiArOTksMjUgQEAgZG91YmxlIEF1ZGlvQ29udGV4
dDo6YmFzZUxhdGVuY3koKQogICAgIHJldHVybiBkZXN0aW5hdGlvbiA/IHN0YXRpY19jYXN0PGRv
dWJsZT4oZGVzdGluYXRpb24tPmZyYW1lc1BlckJ1ZmZlcigpKSAvIHNhbXBsZVJhdGUoKSA6IDAu
OwogfQogCitBdWRpb1RpbWVzdGFtcCBBdWRpb0NvbnRleHQ6OmdldE91dHB1dFRpbWVzdGFtcChE
T01XaW5kb3cmIHdpbmRvdykKK3sKKyAgICBpZiAoIWRlc3RpbmF0aW9uKCkpCisgICAgICAgIHJl
dHVybiB7IDAsIDAgfTsKKworICAgIGF1dG8mIHBlcmZvcm1hbmNlID0gd2luZG93LnBlcmZvcm1h
bmNlKCk7CisKKyAgICBhdXRvIHBvc2l0aW9uID0gb3V0cHV0UG9zaXRpb24oKTsKKworICAgIC8v
IFRoZSB0aW1lc3RhbXAgb2Ygd2hhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGxheWVkIChjb250ZXh0
VGltZSkgY2Fubm90IGJlCisgICAgLy8gbGF0ZXIgdGhhbiB3aGF0IGlzIGJlaW5nIHJlbmRlcmVk
LiAoY3VycmVudFRpbWUpCisgICAgcG9zaXRpb24ucG9zaXRpb24gPSBTZWNvbmRzIHsgc3RkOjpt
aW4ocG9zaXRpb24ucG9zaXRpb24uc2Vjb25kcygpLCBjdXJyZW50VGltZSgpKSB9OworCisgICAg
YXV0byBwZXJmb3JtYW5jZVRpbWUgPSBwZXJmb3JtYW5jZS5yZWxhdGl2ZVRpbWVGcm9tVGltZU9y
aWdpbkluUmVkdWNlZFJlc29sdXRpb24ocG9zaXRpb24udGltZXN0YW1wKTsKKyAgICBwZXJmb3Jt
YW5jZVRpbWUgPSBzdGQ6Om1heChwZXJmb3JtYW5jZVRpbWUsIDAuMCk7CisKKyAgICByZXR1cm4g
eyBwb3NpdGlvbi5wb3NpdGlvbi5zZWNvbmRzKCksIHBlcmZvcm1hbmNlVGltZSB9OworfQorCiB2
b2lkIEF1ZGlvQ29udGV4dDo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlz
ZSkKIHsKICAgICBpZiAoaXNPZmZsaW5lQ29udGV4dCgpIHx8IGlzU3RvcHBlZCgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAppbmRleCAzNWM0
Mzk3YjBkZDJhYzdiY2Q1OTVjMjkyNmJmMWYyMDNjYjQwNDNmLi41MDhiMjA4ZTM3NTNkNjk4YTEz
NDIyYmFhMzVhM2U2Yzc5ZGEwNDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTMwLDggKzMwLDExIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgRE9NV2luZG93OwogY2xhc3MgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlOwogCitzdHJ1Y3QgQXVkaW9UaW1lc3RhbXA7CisKIGNsYXNzIEF1ZGlvQ29udGV4dCA6IHB1
YmxpYyBCYXNlQXVkaW9Db250ZXh0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1ZGlv
Q29udGV4dCk7CiBwdWJsaWM6CkBAIC00Myw2ICs0Niw4IEBAIHB1YmxpYzoKICAgICBEZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGUqIGRlc3RpbmF0aW9uKCk7CiAgICAgZG91YmxlIGJhc2VMYXRl
bmN5KCk7CiAKKyAgICBBdWRpb1RpbWVzdGFtcCBnZXRPdXRwdXRUaW1lc3RhbXAoRE9NV2luZG93
Jik7CisKICNpZiBFTkFCTEUoVklERU8pCiAgICAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhRWxlbWVu
dEF1ZGlvU291cmNlTm9kZT4+IGNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZShIVE1MTWVkaWFFbGVt
ZW50Jik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmlkbAppbmRleCBiOWYwMzEyMDQ1Y2NjODAyOThmMjEyNDY5ODJiY2FlZDBiYjRj
MzU1Li41ZGZhNTllZWYxOGQ4MGYwY2JmNDBiMjI5ODY1ZGI3YWIzZTFiNTU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCkBAIC0zNiw3
ICszNiw4IEBACiAKICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQuCiAgICAgLy8gcmVhZG9ubHkg
YXR0cmlidXRlIGRvdWJsZSBvdXRwdXRMYXRlbmN5OwotICAgIC8vIEF1ZGlvVGltZXN0YW1wIGdl
dE91dHB1dFRpbWVzdGFtcCgpOworCisgICAgW0NhbGxXaXRoPUFjdGl2ZVdpbmRvd10gQXVkaW9U
aW1lc3RhbXAgZ2V0T3V0cHV0VGltZXN0YW1wKCk7CiAKICAgICBbSW1wbGVtZW50ZWRBcz1zdXNw
ZW5kUmVuZGVyaW5nXSBQcm9taXNlPHZvaWQ+IHN1c3BlbmQoKTsKICAgICBbSW1wbGVtZW50ZWRB
cz1yZXN1bWVSZW5kZXJpbmddIFByb21pc2U8dm9pZD4gcmVzdW1lKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
CmluZGV4IDQ0MTJmMTAwNTM5N2NlZjVhMmE3NTAyZGRjMzIxZDVkZGExNzQ5MjAuLmQzNDZkZjg5
YjBlM2U0MDEyOTg2MDFkM2NlNzlkNTIxMjY3NWM4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC01
NSw3ICs1NSw3IEBAIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjp+QXVkaW9EZXN0aW5hdGlvbk5vZGUo
KQogICAgIHVuaW5pdGlhbGl6ZSgpOwogfQogCi12b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpy
ZW5kZXIoQXVkaW9CdXMqLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudW1iZXJP
ZkZyYW1lcykKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlcihBdWRpb0J1cyosIEF1
ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBjb25zdCBBdWRp
b0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9uKQogewogICAgIC8vIFdlIGRvbid0IHdhbnQgZGVu
b3JtYWxzIHNsb3dpbmcgZG93biBhbnkgb2YgdGhlIGF1ZGlvIHByb2Nlc3NpbmcKICAgICAvLyBz
aW5jZSB0aGV5IGNhbiB2ZXJ5IHNlcmlvdXNseSBodXJ0IHBlcmZvcm1hbmNlLgpAQCAtNzgsNyAr
NzgsNyBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXIoQXVkaW9CdXMqLCBBdWRp
b0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudQogICAgIH0KIAogICAgIC8vIExldCB0aGUg
Y29udGV4dCB0YWtlIGNhcmUgb2YgYW55IGJ1c2luZXNzIGF0IHRoZSBzdGFydCBvZiBlYWNoIHJl
bmRlciBxdWFudHVtLgotICAgIGNvbnRleHQoKS5oYW5kbGVQcmVSZW5kZXJUYXNrcygpOworICAg
IGNvbnRleHQoKS5oYW5kbGVQcmVSZW5kZXJUYXNrcyhvdXRwdXRQb3NpdGlvbik7CiAKICAgICAv
LyBUaGlzIHdpbGwgY2F1c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3Ms
IHdoaWNoIGluIHR1cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAogICAgIC8vIGFsbCB0
aGUgd2F5IGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByZW5kZXJpbmcgZ3JhcGguCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgK
aW5kZXggMTA0ZjYwODY4MWI2YTNlNWZiYzcyNGRhYzlmNGNjZTg0YjcxODk1ZC4uNjlkYjA3OTFj
Mjk4OGFjOGMwODNjNDUyZWJkNTU3YTM5ZDY2ZWQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNDQsNyAr
NDQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gVGhlIGF1ZGlvIGhhcmR3YXJlIGNhbGxzIHJl
bmRlcigpIHRvIGdldCB0aGUgbmV4dCByZW5kZXIgcXVhbnR1bSBvZiBhdWRpbyBpbnRvIGRlc3Rp
bmF0aW9uQnVzLgogICAgIC8vIEl0IHdpbGwgb3B0aW9uYWxseSBnaXZlIHVzIGxvY2FsL2xpdmUg
YXVkaW8gaW5wdXQgaW4gc291cmNlQnVzIChpZiBpdCdzIG5vdCAwKS4KLSAgICB2b2lkIHJlbmRl
cihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBu
dW1iZXJPZkZyYW1lcykgb3ZlcnJpZGU7CisgICAgdm9pZCByZW5kZXIoQXVkaW9CdXMqIHNvdXJj
ZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGNv
bnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pIG92ZXJyaWRlOwogCiAgICAgc2l6
ZV90IGN1cnJlbnRTYW1wbGVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFNhbXBsZUZy
YW1lOyB9CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3QgeyByZXR1cm4gY3VycmVudFNh
bXBsZUZyYW1lKCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+KHNhbXBsZVJhdGUoKSk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YTI4NjRiZWNmNzIzYWQ1ZjhkZjNmYzY1Mjg2NmEyMTAyZjk1MWZlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5o
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCX0FVRElPKQorCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0cnVjdCBBdWRpb1RpbWVzdGFtcCB7CisgICAgZG91YmxlIGNvbnRl
eHRUaW1lOworICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgcGVyZm9ybWFuY2VUaW1lOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oV0VCX0FVRElPKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFt
cC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jODIxZjUxNzFkZjg0N2NhNzQ5ODU3ZTljYTk5Y2RlZTJhNmRlODkwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Rp
bWVzdGFtcC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCit0eXBlZGVmIGRvdWJsZSBE
T01IaWdoUmVzVGltZVN0YW1wOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorICAg
IEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9uYXJ5IEF1ZGlvVGltZXN0YW1wIHsKKyAg
ICBkb3VibGUgY29udGV4dFRpbWU7CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBwZXJmb3JtYW5j
ZVRpbWU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFz
ZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXggOTNkMjgwYmMxNmVmODg3YzNmNjdiY2E5NjZmZmQ5OTk4
MWU5MDEzYS4uODlmNzA1NzA4NDIyYmQ5OTU2NmNlMjlkNGNhNmVhZjdkNTZmMGYzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCkBAIC03NDQsNyArNzQ0LDcgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjphZGREZWZlcnJl
ZEZpbmlzaERlcmVmKEF1ZGlvTm9kZSogbm9kZSkKICAgICBtX2RlZmVycmVkRmluaXNoRGVyZWZM
aXN0LmFwcGVuZChub2RlKTsKIH0KIAotdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVQcmVS
ZW5kZXJUYXNrcygpCit2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVByZVJlbmRlclRhc2tz
KGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKGlz
QXVkaW9UaHJlYWQoKSk7CiAKQEAgLTc1NywxMiArNzU3LDIwIEBAIHZvaWQgQmFzZUF1ZGlvQ29u
dGV4dDo6aGFuZGxlUHJlUmVuZGVyVGFza3MoKQogICAgICAgICBoYW5kbGVEaXJ0eUF1ZGlvTm9k
ZU91dHB1dHMoKTsKIAogICAgICAgICB1cGRhdGVBdXRvbWF0aWNQdWxsTm9kZXMoKTsKKyAgICAg
ICAgbV9vdXRwdXRQb3NpdGlvbiA9IG91dHB1dFBvc2l0aW9uOwogCiAgICAgICAgIGlmIChtdXN0
UmVsZWFzZUxvY2spCiAgICAgICAgICAgICB1bmxvY2soKTsKICAgICB9CiB9CiAKK0F1ZGlvSU9Q
b3NpdGlvbiBCYXNlQXVkaW9Db250ZXh0OjpvdXRwdXRQb3NpdGlvbigpCit7CisgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBdXRvTG9ja2VyIGxvY2tlcigqdGhpcyk7CisgICAgcmV0
dXJuIG1fb3V0cHV0UG9zaXRpb247Cit9CisKIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6aGFuZGxl
UG9zdFJlbmRlclRhc2tzKCkKIHsKICAgICBBU1NFUlQoaXNBdWRpb1RocmVhZCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKaW5k
ZXggMzMxMTQ2YWVlZDMyNTU5MDdlNzAwMDUyNzg1Y2JhZDg0NGZmMzdkZS4uM2I3OTcyMjc1M2Y2
M2IxYzdhMmNmNjQyNzQxYTQ1OWI4ZTZmNDEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKQEAgLTE2Nyw3ICsxNjcsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBub3RpZnlOb2RlRmluaXNoZWRQcm9jZXNzaW5nKEF1ZGlvTm9kZSop
OwogCiAgICAgLy8gQ2FsbGVkIGF0IHRoZSBzdGFydCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgot
ICAgIHZvaWQgaGFuZGxlUHJlUmVuZGVyVGFza3MoKTsKKyAgICB2b2lkIGhhbmRsZVByZVJlbmRl
clRhc2tzKGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pOworCisgICAgQXVk
aW9JT1Bvc2l0aW9uIG91dHB1dFBvc2l0aW9uKCk7CiAKICAgICAvLyBDYWxsZWQgYXQgdGhlIGVu
ZCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgogICAgIHZvaWQgaGFuZGxlUG9zdFJlbmRlclRhc2tz
KCk7CkBAIC00NTAsNiArNDUyLDggQEAgcHJpdmF0ZToKIAogICAgIFN0YXRlIG1fc3RhdGUgeyBT
dGF0ZTo6U3VzcGVuZGVkIH07CiAgICAgUmVmUHRyPFBlbmRpbmdBY3Rpdml0eTxCYXNlQXVkaW9D
b250ZXh0Pj4gbV9wZW5kaW5nQWN0aXZpdHk7CisKKyAgICBBdWRpb0lPUG9zaXRpb24gbV9vdXRw
dXRQb3NpdGlvbjsKIH07CiAKIH0gLy8gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUu
Y3BwCmluZGV4IDU5ODJjMDA2MmJiMzg4YzI0NjViYjkxOGQxZTZiOGEyNzBlYWY1YTYuLmY5ZjAy
ZGE0MWU2YzU3NzNhOWFjYmVkZDlmMTFhYTQ5MzU0MGNmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCBhdXRvIE9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZTo6b2ZmbGluZVJlbmRlcigpIC0+IE9mZmxpbmVSZW5kZXJSZXN1bHQKICAgICAgICAg
ICAgIHJldHVybiBPZmZsaW5lUmVuZGVyUmVzdWx0OjpTdXNwZW5kZWQ7CiAKICAgICAgICAgLy8g
UmVuZGVyIG9uZSByZW5kZXIgcXVhbnR1bS4KLSAgICAgICAgcmVuZGVyKDAsIG1fcmVuZGVyQnVz
LmdldCgpLCByZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgICAgIHJlbmRlcigwLCBtX3JlbmRlckJ1
cy5nZXQoKSwgcmVuZGVyUXVhbnR1bVNpemUsIHsgfSk7CiAgICAgICAgIAogICAgICAgICBzaXpl
X3QgZnJhbWVzQXZhaWxhYmxlVG9Db3B5ID0gc3RkOjptaW4obV9mcmFtZXNUb1Byb2Nlc3MsIHJl
bmRlclF1YW50dW1TaXplKTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGQxODAxYWEwMWZl
OTI4MzBiM2VhODI2ZTY5N2JkYWI4NWZjODRmOTcuLmQyYjg5MDMxNmUyMmM1OWI4YmJmOTBkZmVl
MDVhODQxMzFhY2EwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yNjQ4LDYgKzI2NDgsNyBAQCBKU0F1
ZGlvUGFyYW0uY3BwCiBKU0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNwcAogSlNBdWRpb1Byb2Nlc3Np
bmdFdmVudEluaXQuY3BwCiBKU0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKK0pTQXVkaW9U
aW1lc3RhbXAuY3BwCiBKU0F1ZGlvVHJhY2suY3BwCiBKU0F1ZGlvVHJhY2tMaXN0LmNwcAogSlNB
dWRpb1RyYWNrTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmM2ODgxYmU4MjA4ZTIwZDMzZTI0NmQyNTZl
NzY5YmZkMjdmNGYwYS4uNjBmZGM3MzFiMmM0OGQ0OGY2ZTFmYjg3MjQ3NmIxZjVjMmZiZDFmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjQyNCw2ICsyNDI0LDcgQEAKIAkJODJFM0Q4REYxMjJFQTBEMTAwM0FFNUJDIC8qIENT
U1Byb3BlcnR5U291cmNlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODJFM0Q4REQxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291cmNl
RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTgzMDAzMEY2MUI3RDMzQjUwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDAzMEY0
MUI3RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLzsgfTsK
IAkJODMwMDMwRjgxQjdEM0I3ODAwRUQzQUFDIC8qIENhY2hlZEhUTUxDb2xsZWN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzAwMzBGNzFCN0Qz
OTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4MzAwNUY5RDI0RUIxRDQwMDA0ODBGOUIg
LyogQXVkaW9UaW1lc3RhbXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzMDA1RjlBMjRFQjFEMjgwMDQ4MEY5QiAvKiBBdWRpb1RpbWVzdGFtcC5oICov
OyB9OwogCQk4MzAzMzUwMjFGNTQ5MDU3MDA0REY3MDcgLyogRmlsZVN5c3RlbURpcmVjdG9yeVJl
YWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMw
MzM0RkMxRjU0OTA1MjAwNERGNzA3IC8qIEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaCAqLzsg
fTsKIAkJODMwMzM1MDMxRjU0OTA1QTAwNERGNzA3IC8qIEZpbGVTeXN0ZW1FbnRyaWVzQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDMz
NEZFMUY1NDkwNTIwMDRERjcwNyAvKiBGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmggKi87IH07
CiAJCTgzMDQwMjgyMjQ5QTdBNUYwMEE5MEQ4RCAvKiBQYW5uaW5nTW9kZWxUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzA0MDI4MDI0OUE3QTVD
MDBBOTBEOEQgLyogUGFubmluZ01vZGVsVHlwZS5oICovOyB9OwpAQCAtMTA0MTksNiArMTA0MjAs
OCBAQAogCQk4MzAwMzBGNDFCN0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xs
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyaWNDYWNoZWRI
VE1MQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzAwMzBGNzFC
N0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkSFRNTENvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODMwMDNFMkIyNDk5OTdBODAwNjBBRjk0IC8qIFdlYktpdEF1ZGlvQ29u
dGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRBdWRp
b0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzAwNUY5QTI0RUIx
RDI4MDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UaW1l
c3RhbXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMwMDVGOUMyNEVCMUQyOTAw
NDgwRjlCIC8qIEF1ZGlvVGltZXN0YW1wLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb1RpbWVzdGFtcC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMDMzNEZCMUY1NDkwNTIwMDRERjcwNyAvKiBG
aWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4MzAzMzRGQzFGNTQ5MDUyMDA0REY3MDcgLyogRmlsZVN5c3RlbURpcmVj
dG9yeVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVt
RGlyZWN0b3J5UmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMDMzNEZE
MUY1NDkwNTIwMDRERjcwNyAvKiBGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5NTk5LDYgKzI5NjAyLDggQEAKIAkJCQlFN0NGODQ4OTI0
QzBFMDU3MDBCMDZCOTAgLyogQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmlkbCAqLywKIAkJCQlG
REIwNTJERDE1NjFBNDJDMDBCNTAwRDYgLyogQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwICovLAog
CQkJCUZEQjA1MkRFMTU2MUE0MkMwMEI1MDBENiAvKiBBdWRpb1N1bW1pbmdKdW5jdGlvbi5oICov
LAorCQkJCTgzMDA1RjlBMjRFQjFEMjgwMDQ4MEY5QiAvKiBBdWRpb1RpbWVzdGFtcC5oICovLAor
CQkJCTgzMDA1RjlDMjRFQjFEMjkwMDQ4MEY5QiAvKiBBdWRpb1RpbWVzdGFtcC5pZGwgKi8sCiAJ
CQkJODMxOThGQkIyNEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuY3BwICovLAog
CQkJCTgzMTk4RkJFMjRBMTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmggKi8sCiAJ
CQkJODMxOThGQkQyNEExNjBDMTAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuaWRsICovLApA
QCAtMzAxNzcsNiArMzAxODIsNyBAQAogCQkJCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBB
dWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0MwNDZDQjFF
NDI2NDEzMDA3MjAxRTcgLyogQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkRCMDUyRTAxNTYxQTQyQzAwQjUwMEQ2IC8qIEF1ZGlvU3VtbWluZ0p1bmN0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk4MzAwNUY5RDI0RUIxRDQwMDA0ODBGOUIgLyogQXVkaW9UaW1l
c3RhbXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMEQ5MTcxNUQyQTIwMDY1OEQ5OCAvKiBB
dWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTg4RTBEQzE3MTVEMkEyMDA2NThEOTgg
LyogQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEI1QTRDMTgwRTE3QzAw
MDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaAppbmRleCBhNDM4
OTFmMGJmNDJmZDJiZGUwNmRkMDBjOTMyNGNmMWRhMjBjNWIyLi4yMzc2OTBjMDJjY2FmZGQ2YzU5
NDY5OTkzMTU1ODc1NTMxZmEzYTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb0lPQ2FsbGJhY2suaApAQCAtMjYsMTkgKzI2LDUwIEBACiAgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKLSNpZm5kZWYgQXVkaW9JT0NhbGxiYWNrX2gKLSNkZWZpbmUgQXVkaW9JT0NhbGxiYWNr
X2gKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KKyNpbmNs
dWRlIDx3dGYvU2Vjb25kcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlv
QnVzOwogCitzdHJ1Y3QgQXVkaW9JT1Bvc2l0aW9uIHsKKyAgICAvLyBBdWRpbyBzdHJlYW0gcG9z
aXRpb24gaW4gc2Vjb25kcy4KKyAgICBTZWNvbmRzIHBvc2l0aW9uOworICAgIC8vIFN5c3RlbSdz
IG1vbm90b25pYyB0aW1lIGluIHNlY29uZHMgY29ycmVzcG9uZGluZyB0byB0aGUgY29udGFpbmVk
IHxwb3NpdGlvbnwgdmFsdWUuCisgICAgTW9ub3RvbmljVGltZSB0aW1lc3RhbXA7CisKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHBvc2l0aW9uOworICAgICAgICBl
bmNvZGVyIDw8IHRpbWVzdGFtcDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPiBzdGF0aWMgT3B0aW9uYWw8QXVkaW9JT1Bvc2l0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPFNlY29uZHM+IHBvc2l0aW9uOworICAgICAg
ICBkZWNvZGVyID4+IHBvc2l0aW9uOworICAgICAgICBpZiAoIXBvc2l0aW9uKQorICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxNb25vdG9uaWNUaW1l
PiB0aW1lc3RhbXA7CisgICAgICAgIGRlY29kZXIgPj4gdGltZXN0YW1wOworICAgICAgICBpZiAo
IXRpbWVzdGFtcCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAg
cmV0dXJuIEF1ZGlvSU9Qb3NpdGlvbiB7ICpwb3NpdGlvbiwgKnRpbWVzdGFtcCB9OworICAgIH0K
K307CisKIC8vIEFic3RyYWN0IGJhc2UtY2xhc3MgZm9yIGlzb2Nocm9ub3VzIGF1ZGlvIEkvTyBj
bGllbnQuCiBjbGFzcyBBdWRpb0lPQ2FsbGJhY2sgewogcHVibGljOgogICAgIC8vIHJlbmRlcigp
IGlzIGNhbGxlZCBwZXJpb2RpY2FsbHkgdG8gZ2V0IHRoZSBuZXh0IHJlbmRlciBxdWFudHVtIG9m
IGF1ZGlvIGludG8gZGVzdGluYXRpb25CdXMuCiAgICAgLy8gT3B0aW9uYWwgYXVkaW8gaW5wdXQg
aXMgZ2l2ZW4gaW4gc291cmNlQnVzIChpZiBpdCdzIG5vdCAwKS4KLSAgICB2aXJ0dWFsIHZvaWQg
cmVuZGVyKEF1ZGlvQnVzKiBzb3VyY2VCdXMsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6
ZV90IGZyYW1lc1RvUHJvY2VzcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW5kZXIoQXVkaW9C
dXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9uKSA9IDA7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nRGlkQ2hhbmdlKCkgPSAwOwogCkBAIC00Niw1ICs3Nywz
IEBAIHB1YmxpYzoKIH07CiAKIH0gLy8gV2ViQ29yZQotCi0jZW5kaWYgLy8gQXVkaW9JT0NhbGxi
YWNrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IDRiZmVmMGUwZWU5Y2ViYjFmYjZi
N2UxM2Q3ZjA0ZDBhZTNmN2UxZGYuLjY1MjM3Mzg2MjdkYWZhZDA4OGE4MWVkNzRlYWZhYjVlYzQ4
ZTE3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtMTQ1LDggKzE0NSwxMiBAQCBz
dGF0aWMgdm9pZCBhc3NpZ25BdWRpb0J1ZmZlcnNUb0J1cyhBdWRpb0J1ZmZlciogYnVmZmVycywg
QXVkaW9CdXMmIGJ1cywgVUludDMyCiB9CiAKIC8vIFB1bGxzIG9uIG91ciBwcm92aWRlciB0byBn
ZXQgcmVuZGVyZWQgYXVkaW8gc3RyZWFtLgotT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29h
OjpyZW5kZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSkK
K09TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKGNvbnN0IEF1ZGlvVGltZVN0
YW1wKiB0aW1lc3RhbXAsIFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBp
b0RhdGEpCiB7CisgICAgYXV0byBvdXRwdXRUaW1lc3RhbXAgPSBBdWRpb0lPUG9zaXRpb24gewor
ICAgICAgICBTZWNvbmRzIHsgdGltZXN0YW1wLT5tU2FtcGxlVGltZSAvIG1fc2FtcGxlUmF0ZSB9
LAorICAgICAgICBNb25vdG9uaWNUaW1lOjpmcm9tTWFjaEFic29sdXRlVGltZSh0aW1lc3RhbXAt
Pm1Ib3N0VGltZSkKKyAgICB9OwogICAgIGF1dG8qIGJ1ZmZlcnMgPSBpb0RhdGEtPm1CdWZmZXJz
OwogICAgIFVJbnQzMiBudW1iZXJPZkJ1ZmZlcnMgPSBpb0RhdGEtPm1OdW1iZXJCdWZmZXJzOwog
ICAgIFVJbnQzMiBmcmFtZXNSZW1haW5pbmcgPSBudW1iZXJPZkZyYW1lczsKQEAgLTE2OSwxMiAr
MTczLDEyIEBAIE9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKFVJbnQzMiBu
dW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpCiAgICAgICAgIGlmICghZnJhbWVzVGhp
c1RpbWUpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgaWYgKGZyYW1lc1RoaXNUaW1lIDwg
a1JlbmRlckJ1ZmZlclNpemUpIHsKLSAgICAgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1f
c3BhcmVCdXMucHRyKCksIGtSZW5kZXJCdWZmZXJTaXplKTsKKyAgICAgICAgICAgIG1fY2FsbGJh
Y2sucmVuZGVyKDAsIG1fc3BhcmVCdXMucHRyKCksIGtSZW5kZXJCdWZmZXJTaXplLCBvdXRwdXRU
aW1lc3RhbXApOwogICAgICAgICAgICAgbV9yZW5kZXJCdXMtPmNvcHlGcm9tUmFuZ2UobV9zcGFy
ZUJ1cy5nZXQoKSwgMCwgZnJhbWVzVGhpc1RpbWUpOwogICAgICAgICAgICAgbV9zdGFydFNwYXJl
RnJhbWUgPSBmcmFtZXNUaGlzVGltZTsKICAgICAgICAgICAgIG1fZW5kU3BhcmVGcmFtZSA9IGtS
ZW5kZXJCdWZmZXJTaXplOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fY2FsbGJhY2su
cmVuZGVyKDAsIG1fcmVuZGVyQnVzLnB0cigpLCBmcmFtZXNUaGlzVGltZSk7CisgICAgICAgICAg
ICBtX2NhbGxiYWNrLnJlbmRlcigwLCBtX3JlbmRlckJ1cy5wdHIoKSwgZnJhbWVzVGhpc1RpbWUs
IG91dHB1dFRpbWVzdGFtcCk7CiAgICAgICAgIHByb2Nlc3NCdXNBZnRlclJlbmRlcihtX3JlbmRl
ckJ1cy5nZXQoKSwgZnJhbWVzVGhpc1RpbWUpOwogICAgICAgICBmcmFtZU9mZnNldCArPSBmcmFt
ZXNUaGlzVGltZTsKICAgICAgICAgZnJhbWVzUmVtYWluaW5nIC09IGZyYW1lc1RoaXNUaW1lOwpA
QCAtMTg0LDEwICsxODgsMTAgQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5k
ZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGkKIH0KIAogLy8gRGVm
YXVsdE91dHB1dFVuaXQgY2FsbGJhY2sKLU9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
aW5wdXRQcm9jKHZvaWQqIHVzZXJEYXRhLCBBdWRpb1VuaXRSZW5kZXJBY3Rpb25GbGFncyosIGNv
bnN0IEF1ZGlvVGltZVN0YW1wKiwgVUludDMyIC8qYnVzTnVtYmVyKi8sIFVJbnQzMiBudW1iZXJP
ZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpCitPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OmlucHV0UHJvYyh2b2lkKiB1c2VyRGF0YSwgQXVkaW9Vbml0UmVuZGVyQWN0aW9u
RmxhZ3MqLCBjb25zdCBBdWRpb1RpbWVTdGFtcCogdGltZXN0YW1wLCBVSW50MzIgLypidXNOdW1i
ZXIqLywgVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSkKIHsK
ICAgICBhdXRvKiBhdWRpb091dHB1dCA9IHN0YXRpY19jYXN0PEF1ZGlvRGVzdGluYXRpb25Db2Nv
YSo+KHVzZXJEYXRhKTsKLSAgICByZXR1cm4gYXVkaW9PdXRwdXQtPnJlbmRlcihudW1iZXJPZkZy
YW1lcywgaW9EYXRhKTsKKyAgICByZXR1cm4gYXVkaW9PdXRwdXQtPnJlbmRlcih0aW1lc3RhbXAs
IG51bWJlck9mRnJhbWVzLCBpb0RhdGEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3Rp
bmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oCmluZGV4IGFlNzVmM2YyNjMxNzZlNzQzY2I3ODEyNTAxN2QzYTRj
MDEwOWRjYjIuLjM5Mjg4ZWE5ZmIzMjRiYmEzMWQxN2MyMzYwOGUxMTVjYWNjMDMxYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRp
b25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5oCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBj
b25maWd1cmUoKTsKICAgICB2b2lkIHByb2Nlc3NCdXNBZnRlclJlbmRlcihBdWRpb0J1cyYsIFVJ
bnQzMiBudW1iZXJPZkZyYW1lcyk7CiAKLSAgICBPU1N0YXR1cyByZW5kZXIoVUludDMyIG51bWJl
ck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSk7CisgICAgT1NTdGF0dXMgcmVuZGVy
KGNvbnN0IEF1ZGlvVGltZVN0YW1wKiwgVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZl
ckxpc3QqIGlvRGF0YSk7CiAKICAgICBBdWRpb1VuaXQgbV9vdXRwdXRVbml0OwogICAgIEF1ZGlv
SU9DYWxsYmFjayYgbV9jYWxsYmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3Vy
Y2VHU3RyZWFtZXIuY3BwCmluZGV4IDUzMGZjMTEzZjQ5MDU2ZjBlMjMyNjQ2OTUxZjRjMWFkZDVi
YWQyZTQuLmI0ZjZmZDkwMDVkYmUwY2MwOGVkYmYxYzI2ZmNkMzcyOTUzZDQwNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRp
b1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMzUwLDcgKzM1
MCw3IEBAIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8R1JlZlB0cjxHc3RCdWZmZXI+Pj4gd2ViS2l0
V2ViQXVkaW9TcmNBbGxvY2F0ZUJ1ZmZlcnNBbmRSCiAgICAgfQogCiAgICAgLy8gRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciBsb2NhbC9saXZlIGF1ZGlvIGlucHV0LgotICAgIHByaXYtPnByb3ZpZGVy
LT5yZW5kZXIobnVsbHB0ciwgcHJpdi0+YnVzLCBwcml2LT5mcmFtZXNUb1B1bGwpOworICAgIHBy
aXYtPnByb3ZpZGVyLT5yZW5kZXIobnVsbHB0ciwgcHJpdi0+YnVzLCBwcml2LT5mcmFtZXNUb1B1
bGwsIHsgfSk7CiAKICAgICByZXR1cm4gbWFrZU9wdGlvbmFsKGNoYW5uZWxCdWZmZXJMaXN0KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCmluZGV4IDMzMzczMzBiMzg1MDZkOTZj
MDUzOTNkNmFhMGY4ZWIxN2I0MWE5ZjcuLjQ2YWM3OGJkMjI4ZGJmMWY4YzUzMGUzYTE4Y2Q0NDk2
YTI4YTE5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcApAQCAtNzksNyArNzks
NyBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIHJlbmRlcihBdWRpb0J1cyog
c291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpIG92ZXJyaWRlCisgICAgdm9pZCByZW5kZXIoQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9C
dXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzLCBjb25zdCBXZWJDb3Jl
OjpBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9uKSBvdmVycmlkZQogICAgIHsKICAgICAg
ICAgaWYgKG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRkb3duKQogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtOTUsOCArOTUsOCBAQCBwcml2YXRlOgogCiAgICAgICAgIC8vIEZJWE1FOiBS
ZXBsYWNlIHRoaXMgY29kZSB3aXRoIGEgcmluZyBidWZmZXIuIEF0IGxlYXN0IHRoaXMgaGFwcGVu
cyBpbiBhdWRpbyB0aHJlYWQuCiAgICAgICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBmcmFtZXNUb1Byb2Nlc3MsICZidWZmZXJzLCAm
cmVuZGVyU2VtYXBob3JlXSB7Ci0gICAgICAgICAgICBSZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0
YSB7IGZyYW1lc1RvUHJvY2VzcywgYnVmZmVycy5tYXAoW10oYXV0byYgbWVtb3J5KSB7IHJldHVy
biBtZW1vcnkuY29weVJlZigpOyB9KSB9OworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uLCAmYnVmZmVycywgJnJlbmRlclNlbWFw
aG9yZV0geworICAgICAgICAgICAgUmVtb3RlQXVkaW9CdXNEYXRhIGJ1c0RhdGEgeyBmcmFtZXNU
b1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uLCBidWZmZXJzLm1hcChbXShhdXRvJiBtZW1vcnkpIHsg
cmV0dXJuIG1lbW9yeS5jb3B5UmVmKCk7IH0pIH07CiAgICAgICAgICAgICBBU1NFUlQoZnJhbWVz
VG9Qcm9jZXNzKTsKICAgICAgICAgICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbmRl
ckJ1ZmZlcihidXNEYXRhKSwgWyZdKCkgewogICAgICAgICAgICAgICAgIHJlbmRlclNlbWFwaG9y
ZS5zaWduYWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9CdXNEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5oCmluZGV4IDdhYzRjMzczNDU0NTMyNTBlNzllYjNkYTY0
MTc5ZWM4NzVkODYwMDYuLmQyMWQ0MDU1YWY0NzJiYWJiNjdiZmYzOWRkNDY4MmM4M2FhMzRlN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVk
aW9CdXNEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb0J1c0RhdGEuaApAQCAtMzAsMTggKzMwLDIxIEBACiAjaW5jbHVkZSAiRGF0YVJlZmVy
ZW5jZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRl
ICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdHJ1Y3QgUmVtb3RlQXVkaW9CdXNEYXRhIHsKICAgICB1aW50NjRfdCBmcmFtZXNUb1Byb2Nl
c3MgeyAwIH07CisgICAgV2ViQ29yZTo6QXVkaW9JT1Bvc2l0aW9uIG91dHB1dFBvc2l0aW9uOwog
ICAgIFZlY3RvcjxSZWY8U2hhcmVkTWVtb3J5Pj4gY2hhbm5lbEJ1ZmZlcnM7CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IGZyYW1lc1RvUHJvY2VzczsKKyAgICAg
ICAgZW5jb2RlciA8PCBvdXRwdXRQb3NpdGlvbjsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4oY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpKTsKICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBjaGFubmVsQnVmZmVycy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAg
U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwpAQCAtNTgsNiArNjEsMTEgQEAgc3RydWN0IFJl
bW90ZUF1ZGlvQnVzRGF0YSB7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJl
c3VsdC5mcmFtZXNUb1Byb2Nlc3MgPSBmcmFtZXNUb1Byb2Nlc3M7CiAKKyAgICAgICAgV2ViQ29y
ZTo6QXVkaW9JT1Bvc2l0aW9uIG91dHB1dFBvc2l0aW9uOworICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKG91dHB1dFBvc2l0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmVzdWx0Lm91dHB1dFBvc2l0aW9uID0gb3V0cHV0UG9zaXRpb247CisKICAgICAgICAgdWlu
dDY0X3Qgc2l6ZSA9IDA7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
aW5kZXggMGJhZmIzNzFhZjBiNjc2MzA0MDk2YjEyODcyM2NlMGRjNjE1YjUwZC4uMDY5NDViYWZk
NWQxODljN2EwZjljNzI0MDJiYjg4OWRjODA3ZjZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmNwcApAQCAtOTksNyArOTksNyBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eTo6cmVuZGVyQnVmZmVyKGNvbnN0IFdlYktpdDo6UmVtb3RlQXVkaW9CdXNEYXRhJgog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMu
c2l6ZSgpOyArK2kpCiAgICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIChmbG9h
dCopYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzW2ldLT5kYXRhKCksIGF1ZGlvQnVzRGF0YS5m
cmFtZXNUb1Byb2Nlc3MpOwogCi0gICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0
KCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MpOworICAgIG1fY2FsbGJhY2sucmVuZGVy
KDAsIGF1ZGlvQnVzLmdldCgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb0J1
c0RhdGEub3V0cHV0UG9zaXRpb24pOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDk3NDc3ZTJkYmQ3ZDFhNTYwM2I4YmZkYWYy
ZTI0NTA1NGJkNzc3MjUuLmM5ZTZjY2M2ZGQ5NTY1ZTMzMjRjNjg0MDQ2YWE5Nzg3MzBkODE3YTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA4
LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9Db250
ZXh0LmdldE91dHB1dFRpbWVzdGFtcCgpIGlzIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTU5MQorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIFJlYmFzZWxpbmUgV1BUIHRlc3RzIG5vdyB0aGF0IG1v
cmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9jb250ZXh0
LWludGVyZmFjZS9hdWRpb2NvbnRleHQtZ2V0b3V0cHV0dGltZXN0YW1wLWV4cGVjdGVkLnR4dDoK
KwogMjAyMC0wOC0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEF1ZGlvTm9kZS5kaXNjb25uZWN0KCkgZG9lcyBub3QgbWF0Y2ggdGhlIHNwZWNpZmljYXRpb24K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0
dHBzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggOTI2MGE2MGI3ZGJmODc2MGVkYTViOTY1MTMy
OTAxNTRmZGExYmU0ZC4uNDUzOWY5MWZmMTJiMDM2NTM4NWMyNTRkYjlkODgyMTZjYmQ1NzQyZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTQ5LDcgKzQ5LDcgQEAgUEFTUyBBdWRpb0Nv
bnRleHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmoKIFBBU1MgQXVkaW9Db250ZXh0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBw
cm9wZXJ0eSAKIFBBU1MgQXVkaW9Db250ZXh0IGludGVyZmFjZTogYXR0cmlidXRlIGJhc2VMYXRl
bmN5IAogRkFJTCBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb3V0cHV0TGF0ZW5j
eSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkg
Im91dHB1dExhdGVuY3kiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIEF1ZGlvQ29udGV4
dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRPdXRwdXRUaW1lc3RhbXAoKSBhc3NlcnRfb3duX3By
b3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3Bl
cmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJnZXRPdXRwdXRUaW1lc3RhbXAiIG1pc3NpbmcKK1BB
U1MgQXVkaW9Db250ZXh0IGludGVyZmFjZTogb3BlcmF0aW9uIGdldE91dHB1dFRpbWVzdGFtcCgp
IAogUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVzdW1lKCkgCiBQQVNT
IEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdXNwZW5kKCkgCiBQQVNTIEF1ZGlv
Q29udGV4dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbG9zZSgpIApAQCAtNjEsNyArNjEsNyBAQCBQ
QVNTIEF1ZGlvQ29udGV4dCBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIGNvbnRleHQKIFBB
U1MgU3RyaW5naWZpY2F0aW9uIG9mIGNvbnRleHQgCiBQQVNTIEF1ZGlvQ29udGV4dCBpbnRlcmZh
Y2U6IGNvbnRleHQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJiYXNlTGF0ZW5jeSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCiBGQUlMIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGNvbnRleHQgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJvdXRwdXRMYXRlbmN5IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3Nl
cnRfaW5oZXJpdHM6IHByb3BlcnR5ICJvdXRwdXRMYXRlbmN5IiBub3QgZm91bmQgaW4gcHJvdG90
eXBlIGNoYWluCi1GQUlMIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGNvbnRleHQgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJnZXRPdXRwdXRUaW1lc3RhbXAoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0T3V0cHV0VGltZXN0YW1wIiBub3QgZm91bmQg
aW4gcHJvdG90eXBlIGNoYWluCitQQVNTIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGNvbnRleHQg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRPdXRwdXRUaW1lc3RhbXAoKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCiBQQVNTIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGNvbnRleHQgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJyZXN1bWUoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEF1ZGlv
Q29udGV4dCBpbnRlcmZhY2U6IGNvbnRleHQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdXNwZW5k
KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBj
b250ZXh0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xvc2UoKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvY29udGV4dC1pbnRlcmZhY2UvYXVk
aW9jb250ZXh0LWdldG91dHB1dHRpbWVzdGFtcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWF1ZGlvY29udGV4dC1pbnRlcmZhY2UvYXVkaW9jb250ZXh0LWdldG91dHB1dHRpbWVzdGFtcC1l
eHBlY3RlZC50eHQKaW5kZXggOWRlZWQzMDNhZGFhZGQ4NjRkNGJmMjFkODliNGE0NjY5NGFjYmM3
My4uZTY3OWU0NWMyY2UyMzU5ODI0ZGY1MDllZDhmYjBhZmMwYzk0ZmJiYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1hdWRpb2NvbnRleHQtaW50ZXJmYWNlL2F1ZGlvY29udGV4dC1nZXRvdXRw
dXR0aW1lc3RhbXAtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9jb250ZXh0
LWludGVyZmFjZS9hdWRpb2NvbnRleHQtZ2V0b3V0cHV0dGltZXN0YW1wLWV4cGVjdGVkLnR4dApA
QCAtMSw3ICsxLDEyIEBACiAKIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKLUZB
SUwgRXhlY3V0aW5nICJnZXRvdXRwdXR0aW1lc3RhbXAtaW5pdGlhbC12YWx1ZXMiIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
Y29udGV4dC5nZXRPdXRwdXRUaW1lc3RhbXAgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnY29udGV4
dC5nZXRPdXRwdXRUaW1lc3RhbXAoKScsICdjb250ZXh0LmdldE91dHB1dFRpbWVzdGFtcCcgaXMg
dW5kZWZpbmVkKSIKK1BBU1MgRXhlY3V0aW5nICJnZXRvdXRwdXR0aW1lc3RhbXAtaW5pdGlhbC12
YWx1ZXMiIAogUEFTUyBBdWRpdCByZXBvcnQgCiBQQVNTID4gW2dldG91dHB1dHRpbWVzdGFtcC1p
bml0aWFsLXZhbHVlc10gIAorUEFTUyAgIHRpbWVzdGFtcC5jb250ZXh0VGltZSBkb2VzIGV4aXN0
LiAKK1BBU1MgICB0aW1lc3RhbXAucGVyZm9ybWFuY2VUaW1lIGRvZXMgZXhpc3QuIAorUEFTUyAg
IHRpbWVzdGFtcC5jb250ZXh0VGltZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMC4gCitQ
QVNTICAgdGltZXN0YW1wLnBlcmZvcm1hbmNlVGltZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwg
dG8gMC4gCitQQVNTIDwgW2dldG91dHB1dHRpbWVzdGFtcC1pbml0aWFsLXZhbHVlc10gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKSAKIFBBU1MgIyBBVURJVCBUQVNL
IFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406760</attachid>
            <date>2020-08-17 17:52:12 -0700</date>
            <delta_ts>2020-08-17 18:06:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215591-20200817175211.patch</filename>
            <type>text/plain</type>
            <size>40712</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc4NTMyNDBlY2FhOTlm
NzMzZDZjZDE5OWJlZGYyZWQ4NmM1NTZhYS4uNDY1ZTc1N2E4ZjllYTE0NTczODg1Y2FhZjk1MzY3
ODNmOTMyZTc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA4LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9Db250ZXh0LmdldE91
dHB1dFRpbWVzdGFtcCgpIGlzIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNTU5MQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgIEF1ZGlvQ29udGV4dC5nZXRPdXRwdXRUaW1lc3RhbXAoKSBpcyBtaXNz
aW5nOgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlv
Y29udGV4dC1nZXRvdXRwdXR0aW1lc3RhbXAKKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFz
ZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Z2V0T3V0cHV0VGltZXN0YW1wKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpyZW5kZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmguCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGw6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmguCisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVByZVJlbmRlclRhc2tzKToKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6Om91dHB1dFBvc2l0aW9uKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9mZmxpbmVSZW5kZXIpOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvSU9Qb3NpdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvSU9Qb3NpdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFjaEFic29s
dXRlVGltZVRvTW9ub3RvbmljVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OnJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29j
b2E6OmlucHV0UHJvYyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmg6CisKIDIwMjAtMDgtMTcgIEthcmwgUmFja2xlciAgPHJhY2tsZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjY1NjAzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA0YWVmMDg4MTU0YTdkNzBjNWZhNTkwNDU5Y2YzOTFjM2ExNWNlZTBkLi5jNGVjZDE5OWM3
MGQxYzkyZWIzNmMyZmE5NzUwM2IzODE1YWY4YmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIwLTA4LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
QXVkaW9Db250ZXh0LmdldE91dHB1dFRpbWVzdGFtcCgpIGlzIG1pc3NpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTU5MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
QnVzRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9CdXNE
YXRhOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKToKKwogMjAyMC0wOC0xNyAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBBdm9pZCB3YWl0aW5nIGZv
ciBMYXVuY2ggU2VydmljZXMgb24gZXZlcnkgbG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQ3VycmVudFRpbWUuY3BwIGIvU291cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwCmluZGV4
IDQ2ZTU1ZDQ2Y2Q3Y2QzZGQ0MDMzNDQ1NTlmMjA1ZmM0ZTQyODhhMDMuLmQ3ZmI5M2YyOTlmNjdj
NjA1NDc3MTA0NzliMTBiYWVkN2ZhYmNmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0N1
cnJlbnRUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAKQEAgLTI1
MCwxMSArMjUwLDkgQEAgV2FsbFRpbWUgV2FsbFRpbWU6Om5vdygpCiAgICAgcmV0dXJuIGZyb21S
YXdTZWNvbmRzKGN1cnJlbnRUaW1lKCkpOwogfQogCi1Nb25vdG9uaWNUaW1lIE1vbm90b25pY1Rp
bWU6Om5vdygpCisjaWYgT1MoREFSV0lOKQorTW9ub3RvbmljVGltZSBNb25vdG9uaWNUaW1lOjpm
cm9tTWFjaEFic29sdXRlVGltZSh1aW50NjRfdCBtYWNoQWJzb2x1dGVUaW1lKQogewotI2lmIFVT
RShHTElCKQotICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGdf
Z2V0X21vbm90b25pY190aW1lKCkgLyAxMDAwMDAwLjApKTsKLSNlbGlmIE9TKERBUldJTikKICAg
ICAvLyBCYXNlZCBvbiBsaXN0aW5nICMyIGZyb20gQXBwbGUgUUEgMTM5OCwgYnV0IG1vZGlmaWVk
IHRvIGJlIHRocmVhZC1zYWZlLgogICAgIHN0YXRpYyBtYWNoX3RpbWViYXNlX2luZm9fZGF0YV90
IHRpbWViYXNlSW5mbzsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZVRpbWVy
T25jZUZsYWc7CkBAIC0yNjMsOCArMjYxLDE2IEBAIE1vbm90b25pY1RpbWUgTW9ub3RvbmljVGlt
ZTo6bm93KCkKICAgICAgICAgQVNTRVJUX1VOVVNFRChrciwga3IgPT0gS0VSTl9TVUNDRVNTKTsK
ICAgICAgICAgQVNTRVJUKHRpbWViYXNlSW5mby5kZW5vbSk7CiAgICAgfSk7CisgICAgcmV0dXJu
IGZyb21SYXdTZWNvbmRzKChtYWNoQWJzb2x1dGVUaW1lICogdGltZWJhc2VJbmZvLm51bWVyKSAv
ICgxLjBlOSAqIHRpbWViYXNlSW5mby5kZW5vbSkpOworfQorI2VuZGlmCiAKLSAgICByZXR1cm4g
ZnJvbVJhd1NlY29uZHMoKG1hY2hfYWJzb2x1dGVfdGltZSgpICogdGltZWJhc2VJbmZvLm51bWVy
KSAvICgxLjBlOSAqIHRpbWViYXNlSW5mby5kZW5vbSkpOworTW9ub3RvbmljVGltZSBNb25vdG9u
aWNUaW1lOjpub3coKQoreworI2lmIFVTRShHTElCKQorICAgIHJldHVybiBmcm9tUmF3U2Vjb25k
cyhzdGF0aWNfY2FzdDxkb3VibGU+KGdfZ2V0X21vbm90b25pY190aW1lKCkgLyAxMDAwMDAwLjAp
KTsKKyNlbGlmIE9TKERBUldJTikKKyAgICByZXR1cm4gZnJvbU1hY2hBYnNvbHV0ZVRpbWUobWFj
aF9hYnNvbHV0ZV90aW1lKCkpOwogI2VsaWYgT1MoRlVDSFNJQSkKICAgICByZXR1cm4gZnJvbVJh
d1NlY29uZHMoenhfY2xvY2tfZ2V0X21vbm90b25pYygpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPiha
WF9TRUMoMSkpKTsKICNlbGlmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhPUEVOQlNE
KSB8fCBPUyhORVRCU0QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1l
LmggYi9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmgKaW5kZXggZWJkMjdmN2ZkMzc1MDEx
Njk5MjBkZWM1NTE1ZDcyZjg5NTUwODNmOS4uYTRlODg1Nzc0NGRlYzU5NmM1YzNhNzQ3MzMzYjJi
ZGQ0N2NkZDNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL01vbm90b25pY1RpbWUuaApAQCAtNTEsNyArNTEsMTEgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIE1vbm90b25pY1RpbWUodmFsdWUpOwogICAgIH0K
LSAgICAKKworI2lmIE9TKERBUldJTikKKyAgICBzdGF0aWMgTW9ub3RvbmljVGltZSBmcm9tTWFj
aEFic29sdXRlVGltZSh1aW50NjRfdCk7CisjZW5kaWYKKwogICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgTW9ub3RvbmljVGltZSBub3coKTsKICAgICAKICAgICBzdGF0aWMgY29uc3RleHBy
IE1vbm90b25pY1RpbWUgaW5maW5pdHkoKSB7IHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGE1ZjBlN2EwODY4OTg3MTVlNjUyZDFhNWNiYWU0N2U3N2IwNzM4ZjQuLmRmZGMwYjZlOGVi
YTJiYWRkNGMyZWQ3ZDUxZmU2MzI4MDNmMjQ5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00
NjYsNiArNDY2LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9T
Y2hlZHVsZWRTb3VyY2VOb2RlLmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3Rh
bXAuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAogICAgIE1v
ZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlv
L0JpcXVhZEZpbHRlck9wdGlvbnMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA0ODdjYTdmODRmN2JmODgwNzZlMzE4NTk1ZDFhNjMz
YmE2Y2YwODdjLi5hYjRmN2RlOGM0ZjdlZmViNWM4NTE3YzNmZDg3Mjc2MjcwZjQ5YjIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTMx
Nyw2ICszMTcsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0u
aWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVu
dEluaXQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVk
U291cmNlTm9kZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1l
c3RhbXAuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRl
eHQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUu
aWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck9wdGlvbnMu
aWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CmluZGV4IDZjZjM1NmE0YmU2YTdjZmZlMzAwN2RhNjc1ZDllZTAxMDYyOGNkOTYuLjljZDQ0NDRl
MmMxYTFjZjc5OGFiYTU3ZDc1OTJmZmRmOTg3M2VlM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xODMsNiArMTgzLDggQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1Byb2Nlc3Np
bmdFdmVudEluaXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0F1ZGlvUHJvY2Vzc2luZ0V2ZW50SW5pdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9TY2hlZHVs
ZWRTb3VyY2VOb2RlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQXVkaW9UaW1lc3RhbXAuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0F1ZGlvVGltZXN0YW1wLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFjay5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFjay5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2tMaXN0LmNwcApAQCAt
NDAxLDYgKzQwMyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21FbGVtZW50UmVnaXN0cnkuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21FdmVudC5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tRXZlbnQu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTUFwcGxpY2F0aW9uQ2Fj
aGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01C
aW5kaW5nSW50ZXJuYWxzQnVpbHRpbnMuaApAQCAtMjI3Miw4ICsyMjc2LDYgQEAgJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aEV2YWx1YXRvci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTWFBhdGhFdmFs
dWF0b3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNY
UGF0aEV4cHJlc3Npb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1hQYXRoRXhwcmVzc2lvbi5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKLSQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTWFBhdGhO
U1Jlc29sdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNYUGF0aE5TUmVzb2x2ZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNYUGF0aFJlc3VsdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDBhYWQ4ZTM0YzU4ZDQ4NDUzNzg0ODkyYTdkNTE2Y2U4NTllNWVjNzIuLmE2MzU4YTk5
NTA0MTQ5OGZmNjA1NmI5YzBmNWMzYTJkNjRiYTQ0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMzk4LDYgKzM5OCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyT3B0aW9ucy5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
Y3BwCmluZGV4IGFlZDMyMjgwNWVmN2EwZmMxZTA2YjY2NjY4MTUyYTU0ODc4ZDM3MjMuLjM1NTU0
Y2YxMGUwYTdhZjkxNzMzODEyMmVkNzcwODRjODY4ZDRkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTI4LDggKzI4LDExIEBA
CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKIAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIkF1ZGlvVGltZXN0YW1wLmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVk
ZSAiRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNl
RGVmZXJyZWQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtOTYsNiArOTks
MjUgQEAgZG91YmxlIEF1ZGlvQ29udGV4dDo6YmFzZUxhdGVuY3koKQogICAgIHJldHVybiBkZXN0
aW5hdGlvbiA/IHN0YXRpY19jYXN0PGRvdWJsZT4oZGVzdGluYXRpb24tPmZyYW1lc1BlckJ1ZmZl
cigpKSAvIHNhbXBsZVJhdGUoKSA6IDAuOwogfQogCitBdWRpb1RpbWVzdGFtcCBBdWRpb0NvbnRl
eHQ6OmdldE91dHB1dFRpbWVzdGFtcChET01XaW5kb3cmIHdpbmRvdykKK3sKKyAgICBpZiAoIWRl
c3RpbmF0aW9uKCkpCisgICAgICAgIHJldHVybiB7IDAsIDAgfTsKKworICAgIGF1dG8mIHBlcmZv
cm1hbmNlID0gd2luZG93LnBlcmZvcm1hbmNlKCk7CisKKyAgICBhdXRvIHBvc2l0aW9uID0gb3V0
cHV0UG9zaXRpb24oKTsKKworICAgIC8vIFRoZSB0aW1lc3RhbXAgb2Ygd2hhdCBpcyBjdXJyZW50
bHkgYmVpbmcgcGxheWVkIChjb250ZXh0VGltZSkgY2Fubm90IGJlCisgICAgLy8gbGF0ZXIgdGhh
biB3aGF0IGlzIGJlaW5nIHJlbmRlcmVkLiAoY3VycmVudFRpbWUpCisgICAgcG9zaXRpb24ucG9z
aXRpb24gPSBTZWNvbmRzIHsgc3RkOjptaW4ocG9zaXRpb24ucG9zaXRpb24uc2Vjb25kcygpLCBj
dXJyZW50VGltZSgpKSB9OworCisgICAgYXV0byBwZXJmb3JtYW5jZVRpbWUgPSBwZXJmb3JtYW5j
ZS5yZWxhdGl2ZVRpbWVGcm9tVGltZU9yaWdpbkluUmVkdWNlZFJlc29sdXRpb24ocG9zaXRpb24u
dGltZXN0YW1wKTsKKyAgICBwZXJmb3JtYW5jZVRpbWUgPSBzdGQ6Om1heChwZXJmb3JtYW5jZVRp
bWUsIDAuMCk7CisKKyAgICByZXR1cm4geyBwb3NpdGlvbi5wb3NpdGlvbi5zZWNvbmRzKCksIHBl
cmZvcm1hbmNlVGltZSB9OworfQorCiB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xvc2UoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBpZiAoaXNPZmZsaW5lQ29udGV4dCgp
IHx8IGlzU3RvcHBlZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuaAppbmRleCAzNWM0Mzk3YjBkZDJhYzdiY2Q1OTVjMjkyNmJmMWYyMDNjYjQw
NDNmLi41MDhiMjA4ZTM3NTNkNjk4YTEzNDIyYmFhMzVhM2U2Yzc5ZGEwNDU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTMwLDggKzMw
LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRE9NV2luZG93OwogY2xhc3Mg
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOwogCitzdHJ1Y3QgQXVkaW9UaW1lc3RhbXA7CisK
IGNsYXNzIEF1ZGlvQ29udGV4dCA6IHB1YmxpYyBCYXNlQXVkaW9Db250ZXh0IHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKEF1ZGlvQ29udGV4dCk7CiBwdWJsaWM6CkBAIC00Myw2ICs0Niw4
IEBAIHB1YmxpYzoKICAgICBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUqIGRlc3RpbmF0aW9u
KCk7CiAgICAgZG91YmxlIGJhc2VMYXRlbmN5KCk7CiAKKyAgICBBdWRpb1RpbWVzdGFtcCBnZXRP
dXRwdXRUaW1lc3RhbXAoRE9NV2luZG93Jik7CisKICNpZiBFTkFCTEUoVklERU8pCiAgICAgRXhj
ZXB0aW9uT3I8UmVmPE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZT4+IGNyZWF0ZU1lZGlhRWxl
bWVudFNvdXJjZShIVE1MTWVkaWFFbGVtZW50Jik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbAppbmRleCBiOWYwMzEyMDQ1Y2Nj
ODAyOThmMjEyNDY5ODJiY2FlZDBiYjRjMzU1Li41ZGZhNTllZWYxOGQ4MGYwY2JmNDBiMjI5ODY1
ZGI3YWIzZTFiNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuaWRsCkBAIC0zNiw3ICszNiw4IEBACiAKICAgICAvLyBGSVhNRTogQWRkIHN1
cHBvcnQuCiAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBvdXRwdXRMYXRlbmN5Owot
ICAgIC8vIEF1ZGlvVGltZXN0YW1wIGdldE91dHB1dFRpbWVzdGFtcCgpOworCisgICAgW0NhbGxX
aXRoPUFjdGl2ZVdpbmRvd10gQXVkaW9UaW1lc3RhbXAgZ2V0T3V0cHV0VGltZXN0YW1wKCk7CiAK
ICAgICBbSW1wbGVtZW50ZWRBcz1zdXNwZW5kUmVuZGVyaW5nXSBQcm9taXNlPHZvaWQ+IHN1c3Bl
bmQoKTsKICAgICBbSW1wbGVtZW50ZWRBcz1yZXN1bWVSZW5kZXJpbmddIFByb21pc2U8dm9pZD4g
cmVzdW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IDQ0MTJmMTAwNTM5N2NlZjVhMmE3NTAyZGRj
MzIxZDVkZGExNzQ5MjAuLmQzNDZkZjg5YjBlM2U0MDEyOTg2MDFkM2NlNzlkNTIxMjY3NWM4OWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC01NSw3ICs1NSw3IEBAIEF1ZGlvRGVzdGluYXRpb25Ob2Rl
Ojp+QXVkaW9EZXN0aW5hdGlvbk5vZGUoKQogICAgIHVuaW5pdGlhbGl6ZSgpOwogfQogCi12b2lk
IEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXIoQXVkaW9CdXMqLCBBdWRpb0J1cyogZGVzdGlu
YXRpb25CdXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykKK3ZvaWQgQXVkaW9EZXN0aW5hdGlvbk5v
ZGU6OnJlbmRlcihBdWRpb0J1cyosIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IG51
bWJlck9mRnJhbWVzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9uKQogewog
ICAgIC8vIFdlIGRvbid0IHdhbnQgZGVub3JtYWxzIHNsb3dpbmcgZG93biBhbnkgb2YgdGhlIGF1
ZGlvIHByb2Nlc3NpbmcKICAgICAvLyBzaW5jZSB0aGV5IGNhbiB2ZXJ5IHNlcmlvdXNseSBodXJ0
IHBlcmZvcm1hbmNlLgpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpyZW5kZXIoQXVkaW9CdXMqLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudQog
ICAgIH0KIAogICAgIC8vIExldCB0aGUgY29udGV4dCB0YWtlIGNhcmUgb2YgYW55IGJ1c2luZXNz
IGF0IHRoZSBzdGFydCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgotICAgIGNvbnRleHQoKS5oYW5k
bGVQcmVSZW5kZXJUYXNrcygpOworICAgIGNvbnRleHQoKS5oYW5kbGVQcmVSZW5kZXJUYXNrcyhv
dXRwdXRQb3NpdGlvbik7CiAKICAgICAvLyBUaGlzIHdpbGwgY2F1c2UgdGhlIG5vZGUocykgY29u
bmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGluIHR1cm4gd2lsbCBwdWxsIG9uIHRoZWly
IGlucHV0KHMpLAogICAgIC8vIGFsbCB0aGUgd2F5IGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByZW5k
ZXJpbmcgZ3JhcGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXggMTA0ZjYwODY4MWI2YTNlNWZiYzcyNGRhYzlm
NGNjZTg0YjcxODk1ZC4uNjlkYjA3OTFjMjk4OGFjOGMwODNjNDUyZWJkNTU3YTM5ZDY2ZWQ0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0
aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0
aW5hdGlvbk5vZGUuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gVGhl
IGF1ZGlvIGhhcmR3YXJlIGNhbGxzIHJlbmRlcigpIHRvIGdldCB0aGUgbmV4dCByZW5kZXIgcXVh
bnR1bSBvZiBhdWRpbyBpbnRvIGRlc3RpbmF0aW9uQnVzLgogICAgIC8vIEl0IHdpbGwgb3B0aW9u
YWxseSBnaXZlIHVzIGxvY2FsL2xpdmUgYXVkaW8gaW5wdXQgaW4gc291cmNlQnVzIChpZiBpdCdz
IG5vdCAwKS4KLSAgICB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyog
ZGVzdGluYXRpb25CdXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykgb3ZlcnJpZGU7CisgICAgdm9p
ZCByZW5kZXIoQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBz
aXplX3QgbnVtYmVyT2ZGcmFtZXMsIGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRp
b24pIG92ZXJyaWRlOwogCiAgICAgc2l6ZV90IGN1cnJlbnRTYW1wbGVGcmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY3VycmVudFNhbXBsZUZyYW1lOyB9CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lKCkg
Y29uc3QgeyByZXR1cm4gY3VycmVudFNhbXBsZUZyYW1lKCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+
KHNhbXBsZVJhdGUoKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9UaW1lc3RhbXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9UaW1lc3RhbXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTI4NjRiZWNmNzIzYWQ1ZjhkZjNmYzY1Mjg2
NmEyMTAyZjk1MWZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiRE9NSGlnaFJl
c1RpbWVTdGFtcC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBBdWRpb1RpbWVz
dGFtcCB7CisgICAgZG91YmxlIGNvbnRleHRUaW1lOworICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAg
cGVyZm9ybWFuY2VUaW1lOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gUExBVEZPUk0oV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODIxZjUxNzFkZjg0N2NhNzQ5
ODU3ZTljYTk5Y2RlZTJhNmRlODkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCit0eXBlZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1wOworCitbCisgICAgQ29u
ZGl0aW9uYWw9V0VCX0FVRElPLAorICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9u
YXJ5IEF1ZGlvVGltZXN0YW1wIHsKKyAgICBkb3VibGUgY29udGV4dFRpbWU7CisgICAgRE9NSGln
aFJlc1RpbWVTdGFtcCBwZXJmb3JtYW5jZVRpbWU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXggOTNkMjgwYmMx
NmVmODg3YzNmNjdiY2E5NjZmZmQ5OTk4MWU5MDEzYS4uODlmNzA1NzA4NDIyYmQ5OTU2NmNlMjlk
NGNhNmVhZjdkNTZmMGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBAIC03NDQsNyArNzQ0LDcgQEAgdm9pZCBCYXNl
QXVkaW9Db250ZXh0OjphZGREZWZlcnJlZEZpbmlzaERlcmVmKEF1ZGlvTm9kZSogbm9kZSkKICAg
ICBtX2RlZmVycmVkRmluaXNoRGVyZWZMaXN0LmFwcGVuZChub2RlKTsKIH0KIAotdm9pZCBCYXNl
QXVkaW9Db250ZXh0OjpoYW5kbGVQcmVSZW5kZXJUYXNrcygpCit2b2lkIEJhc2VBdWRpb0NvbnRl
eHQ6OmhhbmRsZVByZVJlbmRlclRhc2tzKGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9z
aXRpb24pCiB7CiAgICAgQVNTRVJUKGlzQXVkaW9UaHJlYWQoKSk7CiAKQEAgLTc1NywxMiArNzU3
LDIwIEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6aGFuZGxlUHJlUmVuZGVyVGFza3MoKQogICAg
ICAgICBoYW5kbGVEaXJ0eUF1ZGlvTm9kZU91dHB1dHMoKTsKIAogICAgICAgICB1cGRhdGVBdXRv
bWF0aWNQdWxsTm9kZXMoKTsKKyAgICAgICAgbV9vdXRwdXRQb3NpdGlvbiA9IG91dHB1dFBvc2l0
aW9uOwogCiAgICAgICAgIGlmIChtdXN0UmVsZWFzZUxvY2spCiAgICAgICAgICAgICB1bmxvY2so
KTsKICAgICB9CiB9CiAKK0F1ZGlvSU9Qb3NpdGlvbiBCYXNlQXVkaW9Db250ZXh0OjpvdXRwdXRQ
b3NpdGlvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBdXRvTG9ja2Vy
IGxvY2tlcigqdGhpcyk7CisgICAgcmV0dXJuIG1fb3V0cHV0UG9zaXRpb247Cit9CisKIHZvaWQg
QmFzZUF1ZGlvQ29udGV4dDo6aGFuZGxlUG9zdFJlbmRlclRhc2tzKCkKIHsKICAgICBBU1NFUlQo
aXNBdWRpb1RocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9CYXNlQXVkaW9Db250ZXh0LmgKaW5kZXggMzMxMTQ2YWVlZDMyNTU5MDdlNzAwMDUyNzg1Y2Jh
ZDg0NGZmMzdkZS4uM2I3OTcyMjc1M2Y2M2IxYzdhMmNmNjQyNzQxYTQ1OWI4ZTZmNDEyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
LmgKQEAgLTE2Nyw3ICsxNjcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3RpZnlOb2RlRmluaXNo
ZWRQcm9jZXNzaW5nKEF1ZGlvTm9kZSopOwogCiAgICAgLy8gQ2FsbGVkIGF0IHRoZSBzdGFydCBv
ZiBlYWNoIHJlbmRlciBxdWFudHVtLgotICAgIHZvaWQgaGFuZGxlUHJlUmVuZGVyVGFza3MoKTsK
KyAgICB2b2lkIGhhbmRsZVByZVJlbmRlclRhc2tzKGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0
cHV0UG9zaXRpb24pOworCisgICAgQXVkaW9JT1Bvc2l0aW9uIG91dHB1dFBvc2l0aW9uKCk7CiAK
ICAgICAvLyBDYWxsZWQgYXQgdGhlIGVuZCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgogICAgIHZv
aWQgaGFuZGxlUG9zdFJlbmRlclRhc2tzKCk7CkBAIC00NTAsNiArNDUyLDggQEAgcHJpdmF0ZToK
IAogICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6U3VzcGVuZGVkIH07CiAgICAgUmVmUHRyPFBl
bmRpbmdBY3Rpdml0eTxCYXNlQXVkaW9Db250ZXh0Pj4gbV9wZW5kaW5nQWN0aXZpdHk7CisKKyAg
ICBBdWRpb0lPUG9zaXRpb24gbV9vdXRwdXRQb3NpdGlvbjsKIH07CiAKIH0gLy8gV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZs
aW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IDU5ODJjMDA2MmJiMzg4YzI0NjViYjkx
OGQxZTZiOGEyNzBlYWY1YTYuLmY5ZjAyZGE0MWU2YzU3NzNhOWFjYmVkZDlmMTFhYTQ5MzU0MGNm
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCBh
dXRvIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6b2ZmbGluZVJlbmRlcigpIC0+IE9mZmxp
bmVSZW5kZXJSZXN1bHQKICAgICAgICAgICAgIHJldHVybiBPZmZsaW5lUmVuZGVyUmVzdWx0OjpT
dXNwZW5kZWQ7CiAKICAgICAgICAgLy8gUmVuZGVyIG9uZSByZW5kZXIgcXVhbnR1bS4KLSAgICAg
ICAgcmVuZGVyKDAsIG1fcmVuZGVyQnVzLmdldCgpLCByZW5kZXJRdWFudHVtU2l6ZSk7CisgICAg
ICAgIHJlbmRlcigwLCBtX3JlbmRlckJ1cy5nZXQoKSwgcmVuZGVyUXVhbnR1bVNpemUsIHsgfSk7
CiAgICAgICAgIAogICAgICAgICBzaXplX3QgZnJhbWVzQXZhaWxhYmxlVG9Db3B5ID0gc3RkOjpt
aW4obV9mcmFtZXNUb1Byb2Nlc3MsIHJlbmRlclF1YW50dW1TaXplKTsKICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IGQxODAxYWEwMWZlOTI4MzBiM2VhODI2ZTY5N2JkYWI4NWZjODRmOTcuLmQy
Yjg5MDMxNmUyMmM1OWI4YmJmOTBkZmVlMDVhODQxMzFhY2EwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC0yNjQ4LDYgKzI2NDgsNyBAQCBKU0F1ZGlvUGFyYW0uY3BwCiBKU0F1ZGlvUHJvY2Vzc2luZ0V2
ZW50LmNwcAogSlNBdWRpb1Byb2Nlc3NpbmdFdmVudEluaXQuY3BwCiBKU0F1ZGlvU2NoZWR1bGVk
U291cmNlTm9kZS5jcHAKK0pTQXVkaW9UaW1lc3RhbXAuY3BwCiBKU0F1ZGlvVHJhY2suY3BwCiBK
U0F1ZGlvVHJhY2tMaXN0LmNwcAogSlNBdWRpb1RyYWNrTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmM2
ODgxYmU4MjA4ZTIwZDMzZTI0NmQyNTZlNzY5YmZkMjdmNGYwYS4uNjBmZGM3MzFiMmM0OGQ0OGY2
ZTFmYjg3MjQ3NmIxZjVjMmZiZDFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQyNCw2ICsyNDI0LDcgQEAKIAkJODJFM0Q4
REYxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291cmNlRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJFM0Q4REQxMjJFQTBEMTAwM0FF
NUJDIC8qIENTU1Byb3BlcnR5U291cmNlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzMDAzMEY2MUI3RDMzQjUwMEVEM0FBQyAvKiBHZW5l
cmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzMDAzMEY0MUI3RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVk
SFRNTENvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODMwMDMwRjgxQjdEM0I3ODAwRUQzQUFDIC8qIENh
Y2hlZEhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzAwMzBGNzFCN0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4
MzAwNUY5RDI0RUIxRDQwMDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDA1RjlBMjRFQjFEMjgwMDQ4MEY5
QiAvKiBBdWRpb1RpbWVzdGFtcC5oICovOyB9OwogCQk4MzAzMzUwMjFGNTQ5MDU3MDA0REY3MDcg
LyogRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODMwMzM0RkMxRjU0OTA1MjAwNERGNzA3IC8qIEZpbGVTeXN0
ZW1EaXJlY3RvcnlSZWFkZXIuaCAqLzsgfTsKIAkJODMwMzM1MDMxRjU0OTA1QTAwNERGNzA3IC8q
IEZpbGVTeXN0ZW1FbnRyaWVzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDMzNEZFMUY1NDkwNTIwMDRERjcwNyAvKiBGaWxlU3lzdGVt
RW50cmllc0NhbGxiYWNrLmggKi87IH07CiAJCTgzMDQwMjgyMjQ5QTdBNUYwMEE5MEQ4RCAvKiBQ
YW5uaW5nTW9kZWxUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzA0MDI4MDI0OUE3QTVDMDBBOTBEOEQgLyogUGFubmluZ01vZGVsVHlwZS5oICov
OyB9OwpAQCAtMTA0MTksNiArMTA0MjAsOCBAQAogCQk4MzAwMzBGNDFCN0QzM0E2MDBFRDNBQUMg
LyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4MzAwMzBGNzFCN0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxl
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkSFRNTENvbGxl
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMwMDNFMkIyNDk5OTdBODAw
NjBBRjk0IC8qIFdlYktpdEF1ZGlvQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJLaXRBdWRpb0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzAwNUY5QTI0RUIxRDI4MDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXVkaW9UaW1lc3RhbXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODMwMDVGOUMyNEVCMUQyOTAwNDgwRjlCIC8qIEF1ZGlvVGltZXN0YW1wLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBBdWRpb1RpbWVzdGFtcC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMDMz
NEZCMUY1NDkwNTIwMDRERjcwNyAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzAzMzRGQzFGNTQ5MDUyMDA0
REY3MDcgLyogRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzMDMzNEZEMUY1NDkwNTIwMDRERjcwNyAvKiBGaWxlU3lzdGVtRW50
cmllc0NhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGaWxlU3lzdGVtRW50cmll
c0NhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5NTk5LDYgKzI5
NjAyLDggQEAKIAkJCQlFN0NGODQ4OTI0QzBFMDU3MDBCMDZCOTAgLyogQXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlLmlkbCAqLywKIAkJCQlGREIwNTJERDE1NjFBNDJDMDBCNTAwRDYgLyogQXVkaW9T
dW1taW5nSnVuY3Rpb24uY3BwICovLAogCQkJCUZEQjA1MkRFMTU2MUE0MkMwMEI1MDBENiAvKiBB
dWRpb1N1bW1pbmdKdW5jdGlvbi5oICovLAorCQkJCTgzMDA1RjlBMjRFQjFEMjgwMDQ4MEY5QiAv
KiBBdWRpb1RpbWVzdGFtcC5oICovLAorCQkJCTgzMDA1RjlDMjRFQjFEMjkwMDQ4MEY5QiAvKiBB
dWRpb1RpbWVzdGFtcC5pZGwgKi8sCiAJCQkJODMxOThGQkIyNEExNjBDMTAwNDIwQjA1IC8qIEJh
c2VBdWRpb0NvbnRleHQuY3BwICovLAogCQkJCTgzMTk4RkJFMjRBMTYwQzEwMDQyMEIwNSAvKiBC
YXNlQXVkaW9Db250ZXh0LmggKi8sCiAJCQkJODMxOThGQkQyNEExNjBDMTAwNDIwQjA1IC8qIEJh
c2VBdWRpb0NvbnRleHQuaWRsICovLApAQCAtMzAxNzcsNiArMzAxODIsNyBAQAogCQkJCUZENjJG
NTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwN0MwNDZDQjFFNDI2NDEzMDA3MjAxRTcgLyogQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRCMDUyRTAxNTYxQTQyQzAwQjUwMEQ2IC8q
IEF1ZGlvU3VtbWluZ0p1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzAwNUY5RDI0RUIx
RDQwMDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhF
MEQ5MTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
RTg4RTBEQzE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEOEI1QTRDMTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2Uu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9JT0NhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0lPQ2FsbGJhY2suaAppbmRleCBhNDM4OTFmMGJmNDJmZDJiZGUwNmRkMDBjOTMyNGNmMWRhMjBj
NWIyLi4yMzc2OTBjMDJjY2FmZGQ2YzU5NDY5OTkzMTU1ODc1NTMxZmEzYTAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaApAQCAtMjYsMTkg
KzI2LDUwIEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgQXVkaW9JT0NhbGxiYWNrX2gK
LSNkZWZpbmUgQXVkaW9JT0NhbGxiYWNrX2gKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L01vbm90b25pY1RpbWUuaD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvQnVzOwogCitzdHJ1Y3QgQXVkaW9JT1Bvc2l0aW9uIHsK
KyAgICAvLyBBdWRpbyBzdHJlYW0gcG9zaXRpb24gaW4gc2Vjb25kcy4KKyAgICBTZWNvbmRzIHBv
c2l0aW9uOworICAgIC8vIFN5c3RlbSdzIG1vbm90b25pYyB0aW1lIGluIHNlY29uZHMgY29ycmVz
cG9uZGluZyB0byB0aGUgY29udGFpbmVkIHxwb3NpdGlvbnwgdmFsdWUuCisgICAgTW9ub3Rvbmlj
VGltZSB0aW1lc3RhbXA7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgorICAgIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVy
IDw8IHBvc2l0aW9uOworICAgICAgICBlbmNvZGVyIDw8IHRpbWVzdGFtcDsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8QXVkaW9JT1Bvc2l0
aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPFNl
Y29uZHM+IHBvc2l0aW9uOworICAgICAgICBkZWNvZGVyID4+IHBvc2l0aW9uOworICAgICAgICBp
ZiAoIXBvc2l0aW9uKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDxNb25vdG9uaWNUaW1lPiB0aW1lc3RhbXA7CisgICAgICAgIGRlY29kZXIgPj4g
dGltZXN0YW1wOworICAgICAgICBpZiAoIXRpbWVzdGFtcCkKKyAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIEF1ZGlvSU9Qb3NpdGlvbiB7ICpwb3NpdGlv
biwgKnRpbWVzdGFtcCB9OworICAgIH0KK307CisKIC8vIEFic3RyYWN0IGJhc2UtY2xhc3MgZm9y
IGlzb2Nocm9ub3VzIGF1ZGlvIEkvTyBjbGllbnQuCiBjbGFzcyBBdWRpb0lPQ2FsbGJhY2sgewog
cHVibGljOgogICAgIC8vIHJlbmRlcigpIGlzIGNhbGxlZCBwZXJpb2RpY2FsbHkgdG8gZ2V0IHRo
ZSBuZXh0IHJlbmRlciBxdWFudHVtIG9mIGF1ZGlvIGludG8gZGVzdGluYXRpb25CdXMuCiAgICAg
Ly8gT3B0aW9uYWwgYXVkaW8gaW5wdXQgaXMgZ2l2ZW4gaW4gc291cmNlQnVzIChpZiBpdCdzIG5v
dCAwKS4KLSAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyKEF1ZGlvQnVzKiBzb3VyY2VCdXMsIEF1ZGlv
QnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCByZW5kZXIoQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0
aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24mIG91
dHB1dFBvc2l0aW9uKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nRGlkQ2hhbmdl
KCkgPSAwOwogCkBAIC00Niw1ICs3NywzIEBAIHB1YmxpYzoKIH07CiAKIH0gLy8gV2ViQ29yZQot
Ci0jZW5kaWYgLy8gQXVkaW9JT0NhbGxiYWNrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmlu
ZGV4IDRiZmVmMGUwZWU5Y2ViYjFmYjZiN2UxM2Q3ZjA0ZDBhZTNmN2UxZGYuLjY1MjM3Mzg2Mjdk
YWZhZDA4OGE4MWVkNzRlYWZhYjVlYzQ4ZTE3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNw
cApAQCAtMTQ1LDggKzE0NSwxMiBAQCBzdGF0aWMgdm9pZCBhc3NpZ25BdWRpb0J1ZmZlcnNUb0J1
cyhBdWRpb0J1ZmZlciogYnVmZmVycywgQXVkaW9CdXMmIGJ1cywgVUludDMyCiB9CiAKIC8vIFB1
bGxzIG9uIG91ciBwcm92aWRlciB0byBnZXQgcmVuZGVyZWQgYXVkaW8gc3RyZWFtLgotT1NTdGF0
dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBB
dWRpb0J1ZmZlckxpc3QqIGlvRGF0YSkKK09TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
cmVuZGVyKGNvbnN0IEF1ZGlvVGltZVN0YW1wKiB0aW1lc3RhbXAsIFVJbnQzMiBudW1iZXJPZkZy
YW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpCiB7CisgICAgYXV0byBvdXRwdXRUaW1lc3Rh
bXAgPSBBdWRpb0lPUG9zaXRpb24geworICAgICAgICBTZWNvbmRzIHsgdGltZXN0YW1wLT5tU2Ft
cGxlVGltZSAvIG1fc2FtcGxlUmF0ZSB9LAorICAgICAgICBNb25vdG9uaWNUaW1lOjpmcm9tTWFj
aEFic29sdXRlVGltZSh0aW1lc3RhbXAtPm1Ib3N0VGltZSkKKyAgICB9OwogICAgIGF1dG8qIGJ1
ZmZlcnMgPSBpb0RhdGEtPm1CdWZmZXJzOwogICAgIFVJbnQzMiBudW1iZXJPZkJ1ZmZlcnMgPSBp
b0RhdGEtPm1OdW1iZXJCdWZmZXJzOwogICAgIFVJbnQzMiBmcmFtZXNSZW1haW5pbmcgPSBudW1i
ZXJPZkZyYW1lczsKQEAgLTE2OSwxMiArMTczLDEyIEBAIE9TU3RhdHVzIEF1ZGlvRGVzdGluYXRp
b25Db2NvYTo6cmVuZGVyKFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBp
CiAgICAgICAgIGlmICghZnJhbWVzVGhpc1RpbWUpCiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgaWYgKGZyYW1lc1RoaXNUaW1lIDwga1JlbmRlckJ1ZmZlclNpemUpIHsKLSAgICAgICAgICAg
IG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fc3BhcmVCdXMucHRyKCksIGtSZW5kZXJCdWZmZXJTaXpl
KTsKKyAgICAgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fc3BhcmVCdXMucHRyKCksIGtS
ZW5kZXJCdWZmZXJTaXplLCBvdXRwdXRUaW1lc3RhbXApOwogICAgICAgICAgICAgbV9yZW5kZXJC
dXMtPmNvcHlGcm9tUmFuZ2UobV9zcGFyZUJ1cy5nZXQoKSwgMCwgZnJhbWVzVGhpc1RpbWUpOwog
ICAgICAgICAgICAgbV9zdGFydFNwYXJlRnJhbWUgPSBmcmFtZXNUaGlzVGltZTsKICAgICAgICAg
ICAgIG1fZW5kU3BhcmVGcmFtZSA9IGtSZW5kZXJCdWZmZXJTaXplOwogICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fcmVuZGVyQnVzLnB0cigpLCBmcmFt
ZXNUaGlzVGltZSk7CisgICAgICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBtX3JlbmRlckJ1
cy5wdHIoKSwgZnJhbWVzVGhpc1RpbWUsIG91dHB1dFRpbWVzdGFtcCk7CiAgICAgICAgIHByb2Nl
c3NCdXNBZnRlclJlbmRlcihtX3JlbmRlckJ1cy5nZXQoKSwgZnJhbWVzVGhpc1RpbWUpOwogICAg
ICAgICBmcmFtZU9mZnNldCArPSBmcmFtZXNUaGlzVGltZTsKICAgICAgICAgZnJhbWVzUmVtYWlu
aW5nIC09IGZyYW1lc1RoaXNUaW1lOwpAQCAtMTg0LDEwICsxODgsMTAgQEAgT1NTdGF0dXMgQXVk
aW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1
ZmZlckxpc3QqIGkKIH0KIAogLy8gRGVmYXVsdE91dHB1dFVuaXQgY2FsbGJhY2sKLU9TU3RhdHVz
IEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6aW5wdXRQcm9jKHZvaWQqIHVzZXJEYXRhLCBBdWRpb1Vu
aXRSZW5kZXJBY3Rpb25GbGFncyosIGNvbnN0IEF1ZGlvVGltZVN0YW1wKiwgVUludDMyIC8qYnVz
TnVtYmVyKi8sIFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEp
CitPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmlucHV0UHJvYyh2b2lkKiB1c2VyRGF0
YSwgQXVkaW9Vbml0UmVuZGVyQWN0aW9uRmxhZ3MqLCBjb25zdCBBdWRpb1RpbWVTdGFtcCogdGlt
ZXN0YW1wLCBVSW50MzIgLypidXNOdW1iZXIqLywgVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRp
b0J1ZmZlckxpc3QqIGlvRGF0YSkKIHsKICAgICBhdXRvKiBhdWRpb091dHB1dCA9IHN0YXRpY19j
YXN0PEF1ZGlvRGVzdGluYXRpb25Db2NvYSo+KHVzZXJEYXRhKTsKLSAgICByZXR1cm4gYXVkaW9P
dXRwdXQtPnJlbmRlcihudW1iZXJPZkZyYW1lcywgaW9EYXRhKTsKKyAgICByZXR1cm4gYXVkaW9P
dXRwdXQtPnJlbmRlcih0aW1lc3RhbXAsIG51bWJlck9mRnJhbWVzLCBpb0RhdGEpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4IGFlNzVmM2Yy
NjMxNzZlNzQzY2I3ODEyNTAxN2QzYTRjMDEwOWRjYjIuLjM5Mjg4ZWE5ZmIzMjRiYmEzMWQxN2My
MzYwOGUxMTVjYWNjMDMxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCkBAIC02Nyw3ICs2Nyw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb25maWd1cmUoKTsKICAgICB2b2lkIHByb2Nlc3NCdXNB
ZnRlclJlbmRlcihBdWRpb0J1cyYsIFVJbnQzMiBudW1iZXJPZkZyYW1lcyk7CiAKLSAgICBPU1N0
YXR1cyByZW5kZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0
YSk7CisgICAgT1NTdGF0dXMgcmVuZGVyKGNvbnN0IEF1ZGlvVGltZVN0YW1wKiwgVUludDMyIG51
bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSk7CiAKICAgICBBdWRpb1VuaXQg
bV9vdXRwdXRVbml0OwogICAgIEF1ZGlvSU9DYWxsYmFjayYgbV9jYWxsYmFjazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRp
b1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDUzMGZjMTEzZjQ5
MDU2ZjBlMjMyNjQ2OTUxZjRjMWFkZDViYWQyZTQuLmI0ZjZmZDkwMDVkYmUwY2MwOGVkYmYxYzI2
ZmNkMzcyOTUzZDQwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0
cmVhbWVyLmNwcApAQCAtMzUwLDcgKzM1MCw3IEBAIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8R1Jl
ZlB0cjxHc3RCdWZmZXI+Pj4gd2ViS2l0V2ViQXVkaW9TcmNBbGxvY2F0ZUJ1ZmZlcnNBbmRSCiAg
ICAgfQogCiAgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBsb2NhbC9saXZlIGF1ZGlvIGlu
cHV0LgotICAgIHByaXYtPnByb3ZpZGVyLT5yZW5kZXIobnVsbHB0ciwgcHJpdi0+YnVzLCBwcml2
LT5mcmFtZXNUb1B1bGwpOworICAgIHByaXYtPnByb3ZpZGVyLT5yZW5kZXIobnVsbHB0ciwgcHJp
di0+YnVzLCBwcml2LT5mcmFtZXNUb1B1bGwsIHsgfSk7CiAKICAgICByZXR1cm4gbWFrZU9wdGlv
bmFsKGNoYW5uZWxCdWZmZXJMaXN0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3Bw
CmluZGV4IDMzMzczMzBiMzg1MDZkOTZjMDUzOTNkNmFhMGY4ZWIxN2I0MWE5ZjcuLjQ2YWM3OGJk
MjI4ZGJmMWY4YzUzMGUzYTE4Y2Q0NDk2YTI4YTE5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyLmNwcApAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAg
ICB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRpb25C
dXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlCisgICAgdm9pZCByZW5kZXIoQXVk
aW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9u
KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1
bFNodXRkb3duKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTUsOCArOTUsOCBAQCBwcml2YXRl
OgogCiAgICAgICAgIC8vIEZJWE1FOiBSZXBsYWNlIHRoaXMgY29kZSB3aXRoIGEgcmluZyBidWZm
ZXIuIEF0IGxlYXN0IHRoaXMgaGFwcGVucyBpbiBhdWRpbyB0aHJlYWQuCiAgICAgICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBmcmFt
ZXNUb1Byb2Nlc3MsICZidWZmZXJzLCAmcmVuZGVyU2VtYXBob3JlXSB7Ci0gICAgICAgICAgICBS
ZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0YSB7IGZyYW1lc1RvUHJvY2VzcywgYnVmZmVycy5tYXAo
W10oYXV0byYgbWVtb3J5KSB7IHJldHVybiBtZW1vcnkuY29weVJlZigpOyB9KSB9OworICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9u
LCAmYnVmZmVycywgJnJlbmRlclNlbWFwaG9yZV0geworICAgICAgICAgICAgUmVtb3RlQXVkaW9C
dXNEYXRhIGJ1c0RhdGEgeyBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uLCBidWZmZXJz
Lm1hcChbXShhdXRvJiBtZW1vcnkpIHsgcmV0dXJuIG1lbW9yeS5jb3B5UmVmKCk7IH0pIH07CiAg
ICAgICAgICAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzKTsKICAgICAgICAgICAgIG1fY29ubmVj
dGlvbi5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk6OlJlbmRlckJ1ZmZlcihidXNEYXRhKSwgWyZdKCkgewogICAgICAg
ICAgICAgICAgIHJlbmRlclNlbWFwaG9yZS5zaWduYWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5oCmluZGV4IDdh
YzRjMzczNDU0NTMyNTBlNzllYjNkYTY0MTc5ZWM4NzVkODYwMDYuLmQyMWQ0MDU1YWY0NzJiYWJi
NjdiZmYzOWRkNDY4MmM4M2FhMzRlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaApAQCAtMzAsMTggKzMwLDIx
IEBACiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0F1ZGlvSU9DYWxsYmFjay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgUmVtb3RlQXVkaW9CdXNEYXRhIHsKICAg
ICB1aW50NjRfdCBmcmFtZXNUb1Byb2Nlc3MgeyAwIH07CisgICAgV2ViQ29yZTo6QXVkaW9JT1Bv
c2l0aW9uIG91dHB1dFBvc2l0aW9uOwogICAgIFZlY3RvcjxSZWY8U2hhcmVkTWVtb3J5Pj4gY2hh
bm5lbEJ1ZmZlcnM7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAgICBlbmNvZGVyIDw8
IGZyYW1lc1RvUHJvY2VzczsKKyAgICAgICAgZW5jb2RlciA8PCBvdXRwdXRQb3NpdGlvbjsKICAg
ICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oY2hhbm5lbEJ1ZmZlcnMuc2l6
ZSgpKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGFubmVsQnVmZmVycy5zaXpl
KCk7ICsraSkgewogICAgICAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwpAQCAt
NTgsNiArNjEsMTEgQEAgc3RydWN0IFJlbW90ZUF1ZGlvQnVzRGF0YSB7CiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3VsdC5mcmFtZXNUb1Byb2Nlc3MgPSBmcmFtZXNUb1By
b2Nlc3M7CiAKKyAgICAgICAgV2ViQ29yZTo6QXVkaW9JT1Bvc2l0aW9uIG91dHB1dFBvc2l0aW9u
OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG91dHB1dFBvc2l0aW9uKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVzdWx0Lm91dHB1dFBvc2l0aW9uID0gb3V0cHV0
UG9zaXRpb247CisKICAgICAgICAgdWludDY0X3Qgc2l6ZSA9IDA7CiAgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoc2l6ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKaW5kZXggMGJhZmIzNzFhZjBiNjc2MzA0MDk2YjEyODcy
M2NlMGRjNjE1YjUwZC4uMDY5NDViYWZkNWQxODljN2EwZjljNzI0MDJiYjg4OWRjODA3ZjZmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcApAQCAtOTksNyArOTksNyBAQCB2
b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKGNvbnN0IFdlYktp
dDo6UmVtb3RlQXVkaW9CdXNEYXRhJgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhdWRp
b0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpCiAgICAgICAgIGF1ZGlvQnVzLT5z
ZXRDaGFubmVsTWVtb3J5KGksIChmbG9hdCopYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzW2ld
LT5kYXRhKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MpOwogCi0gICAgbV9jYWxsYmFj
ay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3Mp
OworICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBhdWRpb0J1c0RhdGEu
ZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb24pOwogCiAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDk3
NDc3ZTJkYmQ3ZDFhNTYwM2I4YmZkYWYyZTI0NTA1NGJkNzc3MjUuLmM5ZTZjY2M2ZGQ5NTY1ZTMz
MjRjNjg0MDQ2YWE5Nzg3MzBkODE3YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIwLTA4LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgQXVkaW9Db250ZXh0LmdldE91dHB1dFRpbWVzdGFtcCgpIGlzIG1pc3Np
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTU5
MQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFJlYmFzZWxp
bmUgV1BUIHRlc3RzIG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW9jb250ZXh0LWludGVyZmFjZS9hdWRpb2NvbnRleHQtZ2V0b3V0cHV0
dGltZXN0YW1wLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wOC0xNyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEF1ZGlvTm9kZS5kaXNjb25uZWN0KCkgZG9lcyBub3Qg
bWF0Y2ggdGhlIHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggOTI2
MGE2MGI3ZGJmODc2MGVkYTViOTY1MTMyOTAxNTRmZGExYmU0ZC4uNDUzOWY5MWZmMTJiMDM2NTM4
NWMyNTRkYjlkODgyMTZjYmQ1NzQyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJhdWRpby9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTQ5
LDcgKzQ5LDcgQEAgUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmoKIFBBU1MgQXVkaW9Db250ZXh0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgQXVkaW9Db250ZXh0IGludGVy
ZmFjZTogYXR0cmlidXRlIGJhc2VMYXRlbmN5IAogRkFJTCBBdWRpb0NvbnRleHQgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgb3V0cHV0TGF0ZW5jeSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmpl
Y3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgIm91dHB1dExhdGVuY3kiIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCi1GQUlMIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRPdXRwdXRU
aW1lc3RhbXAoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJnZXRPdXRw
dXRUaW1lc3RhbXAiIG1pc3NpbmcKK1BBU1MgQXVkaW9Db250ZXh0IGludGVyZmFjZTogb3BlcmF0
aW9uIGdldE91dHB1dFRpbWVzdGFtcCgpIAogUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBv
cGVyYXRpb24gcmVzdW1lKCkgCiBQQVNTIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IG9wZXJhdGlv
biBzdXNwZW5kKCkgCiBQQVNTIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbG9z
ZSgpIApAQCAtNjEsNyArNjEsNyBAQCBQQVNTIEF1ZGlvQ29udGV4dCBtdXN0IGJlIHByaW1hcnkg
aW50ZXJmYWNlIG9mIGNvbnRleHQKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIGNvbnRleHQgCiBQ
QVNTIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGNvbnRleHQgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJiYXNlTGF0ZW5jeSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBGQUlMIEF1ZGlvQ29udGV4dCBp
bnRlcmZhY2U6IGNvbnRleHQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvdXRwdXRMYXRlbmN5IiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJvdXRwdXRMYXRl
bmN5IiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1GQUlMIEF1ZGlvQ29udGV4dCBpbnRl
cmZhY2U6IGNvbnRleHQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRPdXRwdXRUaW1lc3RhbXAo
KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ2V0T3V0
cHV0VGltZXN0YW1wIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIEF1ZGlvQ29u
dGV4dCBpbnRlcmZhY2U6IGNvbnRleHQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJnZXRPdXRwdXRU
aW1lc3RhbXAoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEF1ZGlvQ29udGV4dCBpbnRl
cmZhY2U6IGNvbnRleHQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXN1bWUoKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCiBQQVNTIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGNvbnRleHQgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJzdXNwZW5kKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBB
dWRpb0NvbnRleHQgaW50ZXJmYWNlOiBjb250ZXh0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xv
c2UoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1
ZGlvY29udGV4dC1pbnRlcmZhY2UvYXVkaW9jb250ZXh0LWdldG91dHB1dHRpbWVzdGFtcC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvY29udGV4dC1pbnRlcmZhY2UvYXVkaW9jb250
ZXh0LWdldG91dHB1dHRpbWVzdGFtcC1leHBlY3RlZC50eHQKaW5kZXggOWRlZWQzMDNhZGFhZGQ4
NjRkNGJmMjFkODliNGE0NjY5NGFjYmM3My4uZTY3OWU0NWMyY2UyMzU5ODI0ZGY1MDllZDhmYjBh
ZmMwYzk0ZmJiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2NvbnRleHQtaW50ZXJm
YWNlL2F1ZGlvY29udGV4dC1nZXRvdXRwdXR0aW1lc3RhbXAtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW9jb250ZXh0LWludGVyZmFjZS9hdWRpb2NvbnRleHQtZ2V0b3V0cHV0
dGltZXN0YW1wLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDEyIEBACiAKIFBBU1MgIyBBVURJVCBU
QVNLIFJVTk5FUiBTVEFSVEVELiAKLUZBSUwgRXhlY3V0aW5nICJnZXRvdXRwdXR0aW1lc3RhbXAt
aW5pdGlhbC12YWx1ZXMiIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogY29udGV4dC5nZXRPdXRwdXRUaW1lc3RhbXAgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAnY29udGV4dC5nZXRPdXRwdXRUaW1lc3RhbXAoKScsICdjb250ZXh0
LmdldE91dHB1dFRpbWVzdGFtcCcgaXMgdW5kZWZpbmVkKSIKK1BBU1MgRXhlY3V0aW5nICJnZXRv
dXRwdXR0aW1lc3RhbXAtaW5pdGlhbC12YWx1ZXMiIAogUEFTUyBBdWRpdCByZXBvcnQgCiBQQVNT
ID4gW2dldG91dHB1dHRpbWVzdGFtcC1pbml0aWFsLXZhbHVlc10gIAorUEFTUyAgIHRpbWVzdGFt
cC5jb250ZXh0VGltZSBkb2VzIGV4aXN0LiAKK1BBU1MgICB0aW1lc3RhbXAucGVyZm9ybWFuY2VU
aW1lIGRvZXMgZXhpc3QuIAorUEFTUyAgIHRpbWVzdGFtcC5jb250ZXh0VGltZSBpcyBncmVhdGVy
IHRoYW4gb3IgZXF1YWwgdG8gMC4gCitQQVNTICAgdGltZXN0YW1wLnBlcmZvcm1hbmNlVGltZSBp
cyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMC4gCitQQVNTIDwgW2dldG91dHB1dHRpbWVzdGFt
cC1pbml0aWFsLXZhbHVlc10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRp
b25zKSAKIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3Vj
Y2Vzc2Z1bGx5LiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406761</attachid>
            <date>2020-08-17 18:06:46 -0700</date>
            <delta_ts>2020-08-17 19:16:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215591-20200817180645.patch</filename>
            <type>text/plain</type>
            <size>40731</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc4NTMyNDBlY2FhOTlm
NzMzZDZjZDE5OWJlZGYyZWQ4NmM1NTZhYS4uNDY1ZTc1N2E4ZjllYTE0NTczODg1Y2FhZjk1MzY3
ODNmOTMyZTc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA4LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9Db250ZXh0LmdldE91
dHB1dFRpbWVzdGFtcCgpIGlzIG1pc3NpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNTU5MQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgIEF1ZGlvQ29udGV4dC5nZXRPdXRwdXRUaW1lc3RhbXAoKSBpcyBtaXNz
aW5nOgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlv
Y29udGV4dC1nZXRvdXRwdXR0aW1lc3RhbXAKKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFz
ZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Z2V0T3V0cHV0VGltZXN0YW1wKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpyZW5kZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmguCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGw6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmguCisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVByZVJlbmRlclRhc2tzKToKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6Om91dHB1dFBvc2l0aW9uKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9mZmxpbmVSZW5kZXIpOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvSU9Qb3NpdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvSU9Qb3NpdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFjaEFic29s
dXRlVGltZVRvTW9ub3RvbmljVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OnJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29j
b2E6OmlucHV0UHJvYyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmg6CisKIDIwMjAtMDgtMTcgIEthcmwgUmFja2xlciAgPHJhY2tsZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjY1NjAzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA0YWVmMDg4MTU0YTdkNzBjNWZhNTkwNDU5Y2YzOTFjM2ExNWNlZTBkLi5jNGVjZDE5OWM3
MGQxYzkyZWIzNmMyZmE5NzUwM2IzODE1YWY4YmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIwLTA4LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
QXVkaW9Db250ZXh0LmdldE91dHB1dFRpbWVzdGFtcCgpIGlzIG1pc3NpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTU5MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
QnVzRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9CdXNE
YXRhOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKToKKwogMjAyMC0wOC0xNyAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBBdm9pZCB3YWl0aW5nIGZv
ciBMYXVuY2ggU2VydmljZXMgb24gZXZlcnkgbG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQ3VycmVudFRpbWUuY3BwIGIvU291cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwCmluZGV4
IDQ2ZTU1ZDQ2Y2Q3Y2QzZGQ0MDMzNDQ1NTlmMjA1ZmM0ZTQyODhhMDMuLmQ3ZmI5M2YyOTlmNjdj
NjA1NDc3MTA0NzliMTBiYWVkN2ZhYmNmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0N1
cnJlbnRUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAKQEAgLTI1
MCwxMSArMjUwLDkgQEAgV2FsbFRpbWUgV2FsbFRpbWU6Om5vdygpCiAgICAgcmV0dXJuIGZyb21S
YXdTZWNvbmRzKGN1cnJlbnRUaW1lKCkpOwogfQogCi1Nb25vdG9uaWNUaW1lIE1vbm90b25pY1Rp
bWU6Om5vdygpCisjaWYgT1MoREFSV0lOKQorTW9ub3RvbmljVGltZSBNb25vdG9uaWNUaW1lOjpm
cm9tTWFjaEFic29sdXRlVGltZSh1aW50NjRfdCBtYWNoQWJzb2x1dGVUaW1lKQogewotI2lmIFVT
RShHTElCKQotICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGdf
Z2V0X21vbm90b25pY190aW1lKCkgLyAxMDAwMDAwLjApKTsKLSNlbGlmIE9TKERBUldJTikKICAg
ICAvLyBCYXNlZCBvbiBsaXN0aW5nICMyIGZyb20gQXBwbGUgUUEgMTM5OCwgYnV0IG1vZGlmaWVk
IHRvIGJlIHRocmVhZC1zYWZlLgogICAgIHN0YXRpYyBtYWNoX3RpbWViYXNlX2luZm9fZGF0YV90
IHRpbWViYXNlSW5mbzsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZVRpbWVy
T25jZUZsYWc7CkBAIC0yNjMsOCArMjYxLDE2IEBAIE1vbm90b25pY1RpbWUgTW9ub3RvbmljVGlt
ZTo6bm93KCkKICAgICAgICAgQVNTRVJUX1VOVVNFRChrciwga3IgPT0gS0VSTl9TVUNDRVNTKTsK
ICAgICAgICAgQVNTRVJUKHRpbWViYXNlSW5mby5kZW5vbSk7CiAgICAgfSk7CisgICAgcmV0dXJu
IGZyb21SYXdTZWNvbmRzKChtYWNoQWJzb2x1dGVUaW1lICogdGltZWJhc2VJbmZvLm51bWVyKSAv
ICgxLjBlOSAqIHRpbWViYXNlSW5mby5kZW5vbSkpOworfQorI2VuZGlmCiAKLSAgICByZXR1cm4g
ZnJvbVJhd1NlY29uZHMoKG1hY2hfYWJzb2x1dGVfdGltZSgpICogdGltZWJhc2VJbmZvLm51bWVy
KSAvICgxLjBlOSAqIHRpbWViYXNlSW5mby5kZW5vbSkpOworTW9ub3RvbmljVGltZSBNb25vdG9u
aWNUaW1lOjpub3coKQoreworI2lmIFVTRShHTElCKQorICAgIHJldHVybiBmcm9tUmF3U2Vjb25k
cyhzdGF0aWNfY2FzdDxkb3VibGU+KGdfZ2V0X21vbm90b25pY190aW1lKCkgLyAxMDAwMDAwLjAp
KTsKKyNlbGlmIE9TKERBUldJTikKKyAgICByZXR1cm4gZnJvbU1hY2hBYnNvbHV0ZVRpbWUobWFj
aF9hYnNvbHV0ZV90aW1lKCkpOwogI2VsaWYgT1MoRlVDSFNJQSkKICAgICByZXR1cm4gZnJvbVJh
d1NlY29uZHMoenhfY2xvY2tfZ2V0X21vbm90b25pYygpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPiha
WF9TRUMoMSkpKTsKICNlbGlmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhPUEVOQlNE
KSB8fCBPUyhORVRCU0QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1l
LmggYi9Tb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmgKaW5kZXggZWJkMjdmN2ZkMzc1MDEx
Njk5MjBkZWM1NTE1ZDcyZjg5NTUwODNmOS4uMWEzZTg2ZjBhYWFlZmUzM2E4MmRhMGE2MzFiMTI3
NDdiY2M1YmRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL01vbm90b25pY1RpbWUuaApAQCAtNTEsNyArNTEsMTEgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIE1vbm90b25pY1RpbWUodmFsdWUpOwogICAgIH0K
LSAgICAKKworI2lmIE9TKERBUldJTikKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIE1v
bm90b25pY1RpbWUgZnJvbU1hY2hBYnNvbHV0ZVRpbWUodWludDY0X3QpOworI2VuZGlmCisKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIE1vbm90b25pY1RpbWUgbm93KCk7CiAgICAgCiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBNb25vdG9uaWNUaW1lIGluZmluaXR5KCkgeyByZXR1cm4gZnJv
bVJhd1NlY29uZHMoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCBhNWYwZTdhMDg2ODk4NzE1ZTY1MmQxYTVjYmFlNDdlNzdi
MDczOGY0Li5kZmRjMGI2ZThlYmEyYmFkZDRjMmVkN2Q1MWZlNjMyODAzZjI0OTJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNDY2LDYgKzQ2Niw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURM
X0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5pZGwKICAg
ICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50SW5pdC5pZGwKICAgICBNb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwKKyAgICBNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRsCiAg
ICAgTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJPcHRpb25zLmlkbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNDg3Y2E3Zjg0Zjdi
Zjg4MDc2ZTMxODU5NWQxYTYzM2JhNmNmMDg3Yy4uYWI0ZjdkZThjNGY3ZWZlYjVjODUxN2MzZmQ4
NzI3NjI3MGY0OWIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CkBAIC0zMTcsNiArMzE3LDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1Byb2Nlc3NpbmdFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRp
by9CaXF1YWRGaWx0ZXJOb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9C
aXF1YWRGaWx0ZXJPcHRpb25zLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA2Y2YzNTZhNGJlNmE3Y2ZmZTMwMDdkYTY3NWQ5ZWUw
MTA2MjhjZDk2Li45Y2Q0NDQ0ZTJjMWExY2Y3OThhYmE1N2Q3NTkyZmZkZjk4NzNlZTNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAt
MTgzLDYgKzE4Myw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1Byb2Nlc3NpbmdFdmVudEluaXQuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVGltZXN0YW1wLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb1RpbWVzdGFtcC5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJhY2suY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvVHJh
Y2suaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRp
b1RyYWNrTGlzdC5jcHAKQEAgLTQwMSw2ICs0MDMsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tRWxlbWVudFJl
Z2lzdHJ5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
Q3VzdG9tRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0N1c3RvbUV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01BcHBsaWNhdGlv
bkNhY2hlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNET01BcHBsaWNhdGlvbkNhY2hlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRE9NQmluZGluZ0ludGVybmFsc0J1aWx0aW5zLmgKQEAgLTIyNzIsOCAr
MjI3Niw2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
WFBhdGhFdmFsdWF0b3IuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1hQYXRoRXZhbHVhdG9yLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTWFBhdGhFeHByZXNzaW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aEV4cHJlc3Npb24uaAotJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21YUGF0aE5TUmVzb2x2
ZXIuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0N1
c3RvbVhQYXRoTlNSZXNvbHZlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1hQYXRoTlNSZXNvbHZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTWFBhdGhOU1Jlc29sdmVyLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTWFBhdGhSZXN1bHQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAwYWFkOGUzNGM1OGQ0ODQ1Mzc4NDg5MmE3ZDUxNmNl
ODU5ZTVlYzcyLi5hNjM1OGE5OTUwNDE0OThmZjYwNTZiOWMwZjVjM2EyZDY0YmE0NDkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM5OCw2ICszOTgsNyBAQCBKU19CSU5ESU5H
X0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2lu
Z0V2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vz
c2luZ0V2ZW50SW5pdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1NjaGVkdWxlZFNvdXJjZU5vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9UaW1lc3RhbXAuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8v
QmFzZUF1ZGlvQ29udGV4dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9C
aXF1YWRGaWx0ZXJOb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0Jp
cXVhZEZpbHRlck9wdGlvbnMuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBhZWQzMjI4MDVlZjdhMGZjMWUwNmI2NjY2ODE1
MmE1NDg3OGQzNzIzLi4zNTU1NGNmMTBlMGE3YWY5MTczMzgxMjJlZDc3MDg0Yzg2OGQ0ZDJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3Bw
CkBAIC0yOCw4ICsyOCwxMSBAQAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKICNpbmNsdWRlICJB
dWRpb0NvbnRleHQuaCIKKyNpbmNsdWRlICJBdWRpb1RpbWVzdGFtcC5oIgorI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIgogI2luY2x1ZGUgIkRlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIgogI2lu
Y2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiUGVyZm9ybWFuY2UuaCIK
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKQEAgLTk2LDYgKzk5LDI1IEBAIGRvdWJsZSBBdWRpb0NvbnRleHQ6OmJhc2VMYXRlbmN5
KCkKICAgICByZXR1cm4gZGVzdGluYXRpb24gPyBzdGF0aWNfY2FzdDxkb3VibGU+KGRlc3RpbmF0
aW9uLT5mcmFtZXNQZXJCdWZmZXIoKSkgLyBzYW1wbGVSYXRlKCkgOiAwLjsKIH0KIAorQXVkaW9U
aW1lc3RhbXAgQXVkaW9Db250ZXh0OjpnZXRPdXRwdXRUaW1lc3RhbXAoRE9NV2luZG93JiB3aW5k
b3cpCit7CisgICAgaWYgKCFkZXN0aW5hdGlvbigpKQorICAgICAgICByZXR1cm4geyAwLCAwIH07
CisKKyAgICBhdXRvJiBwZXJmb3JtYW5jZSA9IHdpbmRvdy5wZXJmb3JtYW5jZSgpOworCisgICAg
YXV0byBwb3NpdGlvbiA9IG91dHB1dFBvc2l0aW9uKCk7CisKKyAgICAvLyBUaGUgdGltZXN0YW1w
IG9mIHdoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBsYXllZCAoY29udGV4dFRpbWUpIGNhbm5vdCBi
ZQorICAgIC8vIGxhdGVyIHRoYW4gd2hhdCBpcyBiZWluZyByZW5kZXJlZC4gKGN1cnJlbnRUaW1l
KQorICAgIHBvc2l0aW9uLnBvc2l0aW9uID0gU2Vjb25kcyB7IHN0ZDo6bWluKHBvc2l0aW9uLnBv
c2l0aW9uLnNlY29uZHMoKSwgY3VycmVudFRpbWUoKSkgfTsKKworICAgIGF1dG8gcGVyZm9ybWFu
Y2VUaW1lID0gcGVyZm9ybWFuY2UucmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRS
ZXNvbHV0aW9uKHBvc2l0aW9uLnRpbWVzdGFtcCk7CisgICAgcGVyZm9ybWFuY2VUaW1lID0gc3Rk
OjptYXgocGVyZm9ybWFuY2VUaW1lLCAwLjApOworCisgICAgcmV0dXJuIHsgcG9zaXRpb24ucG9z
aXRpb24uc2Vjb25kcygpLCBwZXJmb3JtYW5jZVRpbWUgfTsKK30KKwogdm9pZCBBdWRpb0NvbnRl
eHQ6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYg
KGlzT2ZmbGluZUNvbnRleHQoKSB8fCBpc1N0b3BwZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKaW5kZXggMzVjNDM5N2IwZGQyYWM3YmNk
NTk1YzI5MjZiZjFmMjAzY2I0MDQzZi4uNTA4YjIwOGUzNzUzZDY5OGExMzQyMmJhYTM1YTNlNmM3
OWRhMDQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5oCkBAIC0zMCw4ICszMCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IERPTVdpbmRvdzsKIGNsYXNzIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTsKIAorc3RydWN0
IEF1ZGlvVGltZXN0YW1wOworCiBjbGFzcyBBdWRpb0NvbnRleHQgOiBwdWJsaWMgQmFzZUF1ZGlv
Q29udGV4dCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChBdWRpb0NvbnRleHQpOwogcHVi
bGljOgpAQCAtNDMsNiArNDYsOCBAQCBwdWJsaWM6CiAgICAgRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlKiBkZXN0aW5hdGlvbigpOwogICAgIGRvdWJsZSBiYXNlTGF0ZW5jeSgpOwogCisgICAg
QXVkaW9UaW1lc3RhbXAgZ2V0T3V0cHV0VGltZXN0YW1wKERPTVdpbmRvdyYpOworCiAjaWYgRU5B
QkxFKFZJREVPKQogICAgIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5v
ZGU+PiBjcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UoSFRNTE1lZGlhRWxlbWVudCYpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwK
aW5kZXggYjlmMDMxMjA0NWNjYzgwMjk4ZjIxMjQ2OTgyYmNhZWQwYmI0YzM1NS4uNWRmYTU5ZWVm
MThkODBmMGNiZjQwYjIyOTg2NWRiN2FiM2UxYjU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbApAQCAtMzYsNyArMzYsOCBAQAogCiAg
ICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0LgogICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3Vi
bGUgb3V0cHV0TGF0ZW5jeTsKLSAgICAvLyBBdWRpb1RpbWVzdGFtcCBnZXRPdXRwdXRUaW1lc3Rh
bXAoKTsKKworICAgIFtDYWxsV2l0aD1BY3RpdmVXaW5kb3ddIEF1ZGlvVGltZXN0YW1wIGdldE91
dHB1dFRpbWVzdGFtcCgpOwogCiAgICAgW0ltcGxlbWVudGVkQXM9c3VzcGVuZFJlbmRlcmluZ10g
UHJvbWlzZTx2b2lkPiBzdXNwZW5kKCk7CiAgICAgW0ltcGxlbWVudGVkQXM9cmVzdW1lUmVuZGVy
aW5nXSBQcm9taXNlPHZvaWQ+IHJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA0NDEyZjEw
MDUzOTdjZWY1YTJhNzUwMmRkYzMyMWQ1ZGRhMTc0OTIwLi5kMzQ2ZGY4OWIwZTNlNDAxMjk4NjAx
ZDNjZTc5ZDUyMTI2NzVjODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtNTUsNyArNTUsNyBAQCBB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6fkF1ZGlvRGVzdGluYXRpb25Ob2RlKCkKICAgICB1bmluaXRp
YWxpemUoKTsKIH0KIAotdm9pZCBBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6cmVuZGVyKEF1ZGlvQnVz
KiwgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCit2b2lk
IEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXIoQXVkaW9CdXMqLCBBdWRpb0J1cyogZGVzdGlu
YXRpb25CdXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgY29uc3QgQXVkaW9JT1Bvc2l0aW9uJiBv
dXRwdXRQb3NpdGlvbikKIHsKICAgICAvLyBXZSBkb24ndCB3YW50IGRlbm9ybWFscyBzbG93aW5n
IGRvd24gYW55IG9mIHRoZSBhdWRpbyBwcm9jZXNzaW5nCiAgICAgLy8gc2luY2UgdGhleSBjYW4g
dmVyeSBzZXJpb3VzbHkgaHVydCBwZXJmb3JtYW5jZS4KQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6cmVuZGVyKEF1ZGlvQnVzKiwgQXVkaW9CdXMqIGRlc3RpbmF0
aW9uQnVzLCBzaXplX3QgbnUKICAgICB9CiAKICAgICAvLyBMZXQgdGhlIGNvbnRleHQgdGFrZSBj
YXJlIG9mIGFueSBidXNpbmVzcyBhdCB0aGUgc3RhcnQgb2YgZWFjaCByZW5kZXIgcXVhbnR1bS4K
LSAgICBjb250ZXh0KCkuaGFuZGxlUHJlUmVuZGVyVGFza3MoKTsKKyAgICBjb250ZXh0KCkuaGFu
ZGxlUHJlUmVuZGVyVGFza3Mob3V0cHV0UG9zaXRpb24pOwogCiAgICAgLy8gVGhpcyB3aWxsIGNh
dXNlIHRoZSBub2RlKHMpIGNvbm5lY3RlZCB0byB1cyB0byBwcm9jZXNzLCB3aGljaCBpbiB0dXJu
IHdpbGwgcHVsbCBvbiB0aGVpciBpbnB1dChzKSwKICAgICAvLyBhbGwgdGhlIHdheSBiYWNrd2Fy
ZHMgdGhyb3VnaCB0aGUgcmVuZGVyaW5nIGdyYXBoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IDEwNGY2MDg2
ODFiNmEzZTVmYmM3MjRkYWM5ZjRjY2U4NGI3MTg5NWQuLjY5ZGIwNzkxYzI5ODhhYzhjMDgzYzQ1
MmViZDU1N2EzOWQ2NmVkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGlj
OgogICAgIAogICAgIC8vIFRoZSBhdWRpbyBoYXJkd2FyZSBjYWxscyByZW5kZXIoKSB0byBnZXQg
dGhlIG5leHQgcmVuZGVyIHF1YW50dW0gb2YgYXVkaW8gaW50byBkZXN0aW5hdGlvbkJ1cy4KICAg
ICAvLyBJdCB3aWxsIG9wdGlvbmFsbHkgZ2l2ZSB1cyBsb2NhbC9saXZlIGF1ZGlvIGlucHV0IGlu
IHNvdXJjZUJ1cyAoaWYgaXQncyBub3QgMCkuCi0gICAgdm9pZCByZW5kZXIoQXVkaW9CdXMqIHNv
dXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMp
IG92ZXJyaWRlOworICAgIHZvaWQgcmVuZGVyKEF1ZGlvQnVzKiBzb3VyY2VCdXMsIEF1ZGlvQnVz
KiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBjb25zdCBBdWRpb0lPUG9z
aXRpb24mIG91dHB1dFBvc2l0aW9uKSBvdmVycmlkZTsKIAogICAgIHNpemVfdCBjdXJyZW50U2Ft
cGxlRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRTYW1wbGVGcmFtZTsgfQogICAgIGRv
dWJsZSBjdXJyZW50VGltZSgpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRTYW1wbGVGcmFtZSgpIC8g
c3RhdGljX2Nhc3Q8ZG91YmxlPihzYW1wbGVSYXRlKCkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvVGltZXN0YW1wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEyODY0YmVj
ZjcyM2FkNWY4ZGYzZmM2NTI4NjZhMjEwMmY5NTFmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaApAQCAtMCwwICsxLDQw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKwor
I2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgQXVkaW9UaW1lc3RhbXAgeworICAgIGRvdWJsZSBjb250ZXh0VGltZTsKKyAgICBE
T01IaWdoUmVzVGltZVN0YW1wIHBlcmZvcm1hbmNlVGltZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1RpbWVzdGFtcC5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzgyMWY1MTcxZGY4NDdjYTc0OTg1N2U5Y2E5OWNkZWUyYTZkZTg5MAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9UaW1lc3RhbXAuaWRsCkBA
IC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiBkb3VibGUgRE9NSGlnaFJlc1RpbWVT
dGFtcDsKKworWworICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKKyAgICBKU0dlbmVyYXRlVG9K
U09iamVjdCwKK10gZGljdGlvbmFyeSBBdWRpb1RpbWVzdGFtcCB7CisgICAgZG91YmxlIGNvbnRl
eHRUaW1lOworICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgcGVyZm9ybWFuY2VUaW1lOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwCmluZGV4IDkzZDI4MGJjMTZlZjg4N2MzZjY3YmNhOTY2ZmZkOTk5ODFlOTAxM2EuLjg5Zjcw
NTcwODQyMmJkOTk1NjZjZTI5ZDRjYTZlYWY3ZDU2ZjBmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtNzQ0LDcg
Kzc0NCw3IEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6YWRkRGVmZXJyZWRGaW5pc2hEZXJlZihB
dWRpb05vZGUqIG5vZGUpCiAgICAgbV9kZWZlcnJlZEZpbmlzaERlcmVmTGlzdC5hcHBlbmQobm9k
ZSk7CiB9CiAKLXZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6aGFuZGxlUHJlUmVuZGVyVGFza3MoKQor
dm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVQcmVSZW5kZXJUYXNrcyhjb25zdCBBdWRpb0lP
UG9zaXRpb24mIG91dHB1dFBvc2l0aW9uKQogewogICAgIEFTU0VSVChpc0F1ZGlvVGhyZWFkKCkp
OwogCkBAIC03NTcsMTIgKzc1NywyMCBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVBy
ZVJlbmRlclRhc2tzKCkKICAgICAgICAgaGFuZGxlRGlydHlBdWRpb05vZGVPdXRwdXRzKCk7CiAK
ICAgICAgICAgdXBkYXRlQXV0b21hdGljUHVsbE5vZGVzKCk7CisgICAgICAgIG1fb3V0cHV0UG9z
aXRpb24gPSBvdXRwdXRQb3NpdGlvbjsKIAogICAgICAgICBpZiAobXVzdFJlbGVhc2VMb2NrKQog
ICAgICAgICAgICAgdW5sb2NrKCk7CiAgICAgfQogfQogCitBdWRpb0lPUG9zaXRpb24gQmFzZUF1
ZGlvQ29udGV4dDo6b3V0cHV0UG9zaXRpb24oKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgQXV0b0xvY2tlciBsb2NrZXIoKnRoaXMpOworICAgIHJldHVybiBtX291dHB1dFBv
c2l0aW9uOworfQorCiB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVBvc3RSZW5kZXJUYXNr
cygpCiB7CiAgICAgQVNTRVJUKGlzQXVkaW9UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCmluZGV4IDMzMTE0NmFlZWQz
MjU1OTA3ZTcwMDA1Mjc4NWNiYWQ4NDRmZjM3ZGUuLjNiNzk3MjI3NTNmNjNiMWM3YTJjZjY0Mjc0
MWE0NTliOGU2ZjQxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5oCkBAIC0xNjcsNyArMTY3LDkgQEAgcHVibGljOgogICAgIHZv
aWQgbm90aWZ5Tm9kZUZpbmlzaGVkUHJvY2Vzc2luZyhBdWRpb05vZGUqKTsKIAogICAgIC8vIENh
bGxlZCBhdCB0aGUgc3RhcnQgb2YgZWFjaCByZW5kZXIgcXVhbnR1bS4KLSAgICB2b2lkIGhhbmRs
ZVByZVJlbmRlclRhc2tzKCk7CisgICAgdm9pZCBoYW5kbGVQcmVSZW5kZXJUYXNrcyhjb25zdCBB
dWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9uKTsKKworICAgIEF1ZGlvSU9Qb3NpdGlvbiBv
dXRwdXRQb3NpdGlvbigpOwogCiAgICAgLy8gQ2FsbGVkIGF0IHRoZSBlbmQgb2YgZWFjaCByZW5k
ZXIgcXVhbnR1bS4KICAgICB2b2lkIGhhbmRsZVBvc3RSZW5kZXJUYXNrcygpOwpAQCAtNDUwLDYg
KzQ1Miw4IEBAIHByaXZhdGU6CiAKICAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OlN1c3BlbmRl
ZCB9OwogICAgIFJlZlB0cjxQZW5kaW5nQWN0aXZpdHk8QmFzZUF1ZGlvQ29udGV4dD4+IG1fcGVu
ZGluZ0FjdGl2aXR5OworCisgICAgQXVkaW9JT1Bvc2l0aW9uIG1fb3V0cHV0UG9zaXRpb247CiB9
OwogCiB9IC8vIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA1OTgy
YzAwNjJiYjM4OGMyNDY1YmI5MThkMWU2YjhhMjcwZWFmNWE2Li5mOWYwMmRhNDFlNmM1NzczYTlh
Y2JlZGQ5ZjExYWE0OTM1NDBjZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBA
IC0xNDgsNyArMTQ4LDcgQEAgYXV0byBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9mZmxp
bmVSZW5kZXIoKSAtPiBPZmZsaW5lUmVuZGVyUmVzdWx0CiAgICAgICAgICAgICByZXR1cm4gT2Zm
bGluZVJlbmRlclJlc3VsdDo6U3VzcGVuZGVkOwogCiAgICAgICAgIC8vIFJlbmRlciBvbmUgcmVu
ZGVyIHF1YW50dW0uCi0gICAgICAgIHJlbmRlcigwLCBtX3JlbmRlckJ1cy5nZXQoKSwgcmVuZGVy
UXVhbnR1bVNpemUpOworICAgICAgICByZW5kZXIoMCwgbV9yZW5kZXJCdXMuZ2V0KCksIHJlbmRl
clF1YW50dW1TaXplLCB7IH0pOwogICAgICAgICAKICAgICAgICAgc2l6ZV90IGZyYW1lc0F2YWls
YWJsZVRvQ29weSA9IHN0ZDo6bWluKG1fZnJhbWVzVG9Qcm9jZXNzLCByZW5kZXJRdWFudHVtU2l6
ZSk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBkMTgwMWFhMDFmZTkyODMwYjNlYTgyNmU2
OTdiZGFiODVmYzg0Zjk3Li5kMmI4OTAzMTZlMjJjNTliOGJiZjkwZGZlZTA1YTg0MTMxYWNhMDUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtMjY0OCw2ICsyNjQ4LDcgQEAgSlNBdWRpb1BhcmFtLmNwcAog
SlNBdWRpb1Byb2Nlc3NpbmdFdmVudC5jcHAKIEpTQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0LmNw
cAogSlNBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCitKU0F1ZGlvVGltZXN0YW1wLmNwcAog
SlNBdWRpb1RyYWNrLmNwcAogSlNBdWRpb1RyYWNrTGlzdC5jcHAKIEpTQXVkaW9UcmFja01lZGlh
U291cmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGJjNjg4MWJlODIwOGUyMGQzM2UyNDZkMjU2ZTc2OWJmZDI3ZjRmMGEu
LjYwZmRjNzMxYjJjNDhkNDhmNmUxZmI4NzI0NzZiMWY1YzJmYmQxZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0MjQsNiAr
MjQyNCw3IEBACiAJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eVNvdXJj
ZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgy
RTNEOEREMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eVNvdXJjZURhdGEuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzAwMzBGNjFCN0Qz
M0I1MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzAwMzBGNDFCN0QzM0E2MDBFRDNB
QUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi87IH07CiAJCTgzMDAzMEY4MUI3
RDNCNzgwMEVEM0FBQyAvKiBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwMDMwRjcxQjdEMzk4ODAwRUQzQUFDIC8q
IENhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJODMwMDVGOUQyNEVCMUQ0MDAwNDgwRjlCIC8qIEF1ZGlvVGltZXN0
YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzAw
NUY5QTI0RUIxRDI4MDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCAqLzsgfTsKIAkJODMwMzM1
MDIxRjU0OTA1NzAwNERGNzA3IC8qIEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDMzNEZDMUY1NDkwNTIw
MDRERjcwNyAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmggKi87IH07CiAJCTgzMDMzNTAz
MUY1NDkwNUEwMDRERjcwNyAvKiBGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzAzMzRGRTFGNTQ5MDUyMDA0
REY3MDcgLyogRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5oICovOyB9OwogCQk4MzA0MDI4MjI0
OUE3QTVGMDBBOTBEOEQgLyogUGFubmluZ01vZGVsVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwNDAyODAyNDlBN0E1QzAwQTkwRDhEIC8qIFBh
bm5pbmdNb2RlbFR5cGUuaCAqLzsgfTsKQEAgLTEwNDE5LDYgKzEwNDIwLDggQEAKIAkJODMwMDMw
RjQxQjdEMzNBNjAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMwMDMwRjcxQjdEMzk4ODAwRUQzQUFD
IC8qIENhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENhY2hlZEhUTUxDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzMDAzRTJCMjQ5OTk3QTgwMDYwQUY5NCAvKiBXZWJLaXRBdWRpb0NvbnRleHQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0QXVkaW9Db250ZXh0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMwMDVGOUEyNEVCMUQyODAwNDgwRjlCIC8q
IEF1ZGlvVGltZXN0YW1wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVGltZXN0YW1wLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMDA1RjlDMjRFQjFEMjkwMDQ4MEY5QiAvKiBBdWRp
b1RpbWVzdGFtcC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9UaW1lc3RhbXAuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4MzAzMzRGQjFGNTQ5MDUyMDA0REY3MDcgLyogRmlsZVN5c3RlbURpcmVj
dG9yeVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxl
U3lzdGVtRGlyZWN0b3J5UmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODMwMzM0RkMxRjU0OTA1MjAwNERGNzA3IC8qIEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzAzMzRGRDFGNTQ5MDUyMDA0REY3
MDcgLyogRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yOTU5OSw2ICsyOTYwMiw4IEBACiAJCQkJRTdDRjg0ODkyNEMwRTA1NzAwQjA2Qjkw
IC8qIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5pZGwgKi8sCiAJCQkJRkRCMDUyREQxNTYxQTQy
QzAwQjUwMEQ2IC8qIEF1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcCAqLywKIAkJCQlGREIwNTJERTE1
NjFBNDJDMDBCNTAwRDYgLyogQXVkaW9TdW1taW5nSnVuY3Rpb24uaCAqLywKKwkJCQk4MzAwNUY5
QTI0RUIxRDI4MDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCAqLywKKwkJCQk4MzAwNUY5QzI0
RUIxRDI5MDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaWRsICovLAogCQkJCTgzMTk4RkJCMjRB
MTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmNwcCAqLywKIAkJCQk4MzE5OEZCRTI0
QTE2MEMxMDA0MjBCMDUgLyogQmFzZUF1ZGlvQ29udGV4dC5oICovLAogCQkJCTgzMTk4RkJEMjRB
MTYwQzEwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmlkbCAqLywKQEAgLTMwMTc3LDYgKzMw
MTgyLDcgQEAKIAkJCQlGRDYyRjUyRTE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3VyY2VQcm92
aWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDMDQ2Q0IxRTQyNjQxMzAwNzIwMUU3
IC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQjA1MkUw
MTU2MUE0MkMwMEI1MDBENiAvKiBBdWRpb1N1bW1pbmdKdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJODMwMDVGOUQyNEVCMUQ0MDAwNDgwRjlCIC8qIEF1ZGlvVGltZXN0YW1wLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCRTg4RTBEOTE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFjay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwREMxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2tM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDhCNUE0QzE4MEUxN0MwMDA4QjhFNjUgLyogQXVk
aW9UcmFja01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvSU9DYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKaW5kZXggYTQzODkxZjBiZjQyZmQyYmRl
MDZkZDAwYzkzMjRjZjFkYTIwYzViMi4uMjM3NjkwYzAyY2NhZmRkNmM1OTQ2OTk5MzE1NTg3NTUz
MWZhM2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9J
T0NhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9JT0Nh
bGxiYWNrLmgKQEAgLTI2LDE5ICsyNiw1MCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVm
IEF1ZGlvSU9DYWxsYmFja19oCi0jZGVmaW5lIEF1ZGlvSU9DYWxsYmFja19oCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1NlY29u
ZHMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0J1czsKIAorc3RydWN0
IEF1ZGlvSU9Qb3NpdGlvbiB7CisgICAgLy8gQXVkaW8gc3RyZWFtIHBvc2l0aW9uIGluIHNlY29u
ZHMuCisgICAgU2Vjb25kcyBwb3NpdGlvbjsKKyAgICAvLyBTeXN0ZW0ncyBtb25vdG9uaWMgdGlt
ZSBpbiBzZWNvbmRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNvbnRhaW5lZCB8cG9zaXRpb258IHZh
bHVlLgorICAgIE1vbm90b25pY1RpbWUgdGltZXN0YW1wOworCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgZW5jb2RlciA8PCBwb3NpdGlvbjsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1l
c3RhbXA7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9w
dGlvbmFsPEF1ZGlvSU9Qb3NpdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBPcHRpb25hbDxTZWNvbmRzPiBwb3NpdGlvbjsKKyAgICAgICAgZGVjb2RlciA+PiBw
b3NpdGlvbjsKKyAgICAgICAgaWYgKCFwb3NpdGlvbikKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8TW9ub3RvbmljVGltZT4gdGltZXN0YW1wOwor
ICAgICAgICBkZWNvZGVyID4+IHRpbWVzdGFtcDsKKyAgICAgICAgaWYgKCF0aW1lc3RhbXApCisg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiBBdWRpb0lP
UG9zaXRpb24geyAqcG9zaXRpb24sICp0aW1lc3RhbXAgfTsKKyAgICB9Cit9OworCiAvLyBBYnN0
cmFjdCBiYXNlLWNsYXNzIGZvciBpc29jaHJvbm91cyBhdWRpbyBJL08gY2xpZW50LgogY2xhc3Mg
QXVkaW9JT0NhbGxiYWNrIHsKIHB1YmxpYzoKICAgICAvLyByZW5kZXIoKSBpcyBjYWxsZWQgcGVy
aW9kaWNhbGx5IHRvIGdldCB0aGUgbmV4dCByZW5kZXIgcXVhbnR1bSBvZiBhdWRpbyBpbnRvIGRl
c3RpbmF0aW9uQnVzLgogICAgIC8vIE9wdGlvbmFsIGF1ZGlvIGlucHV0IGlzIGdpdmVuIGluIHNv
dXJjZUJ1cyAoaWYgaXQncyBub3QgMCkuCi0gICAgdmlydHVhbCB2b2lkIHJlbmRlcihBdWRpb0J1
cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyKEF1ZGlvQnVzKiBzb3VyY2VCdXMs
IEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3Qg
QXVkaW9JT1Bvc2l0aW9uJiBvdXRwdXRQb3NpdGlvbikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IGlzUGxheWluZ0RpZENoYW5nZSgpID0gMDsKIApAQCAtNDYsNSArNzcsMyBAQCBwdWJsaWM6CiB9
OwogCiB9IC8vIFdlYkNvcmUKLQotI2VuZGlmIC8vIEF1ZGlvSU9DYWxsYmFja19oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmNwcAppbmRleCA0YmZlZjBlMGVlOWNlYmIxZmI2YjdlMTNkN2YwNGQwYWUz
ZjdlMWRmLi42NTIzNzM4NjI3ZGFmYWQwODhhODFlZDc0ZWFmYWI1ZWM0OGUxN2Q1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTE0NSw4ICsxNDUsMTIgQEAgc3RhdGljIHZvaWQgYXNz
aWduQXVkaW9CdWZmZXJzVG9CdXMoQXVkaW9CdWZmZXIqIGJ1ZmZlcnMsIEF1ZGlvQnVzJiBidXMs
IFVJbnQzMgogfQogCiAvLyBQdWxscyBvbiBvdXIgcHJvdmlkZXIgdG8gZ2V0IHJlbmRlcmVkIGF1
ZGlvIHN0cmVhbS4KLU9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKFVJbnQz
MiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpCitPU1N0YXR1cyBBdWRp
b0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlcihjb25zdCBBdWRpb1RpbWVTdGFtcCogdGltZXN0YW1w
LCBVSW50MzIgbnVtYmVyT2ZGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCogaW9EYXRhKQogeworICAg
IGF1dG8gb3V0cHV0VGltZXN0YW1wID0gQXVkaW9JT1Bvc2l0aW9uIHsKKyAgICAgICAgU2Vjb25k
cyB7IHRpbWVzdGFtcC0+bVNhbXBsZVRpbWUgLyBtX3NhbXBsZVJhdGUgfSwKKyAgICAgICAgTW9u
b3RvbmljVGltZTo6ZnJvbU1hY2hBYnNvbHV0ZVRpbWUodGltZXN0YW1wLT5tSG9zdFRpbWUpCisg
ICAgfTsKICAgICBhdXRvKiBidWZmZXJzID0gaW9EYXRhLT5tQnVmZmVyczsKICAgICBVSW50MzIg
bnVtYmVyT2ZCdWZmZXJzID0gaW9EYXRhLT5tTnVtYmVyQnVmZmVyczsKICAgICBVSW50MzIgZnJh
bWVzUmVtYWluaW5nID0gbnVtYmVyT2ZGcmFtZXM7CkBAIC0xNjksMTIgKzE3MywxMiBAQCBPU1N0
YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlcihVSW50MzIgbnVtYmVyT2ZGcmFtZXMs
IEF1ZGlvQnVmZmVyTGlzdCogaQogICAgICAgICBpZiAoIWZyYW1lc1RoaXNUaW1lKQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGlmIChmcmFtZXNUaGlzVGltZSA8IGtSZW5kZXJCdWZmZXJT
aXplKSB7Ci0gICAgICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBtX3NwYXJlQnVzLnB0cigp
LCBrUmVuZGVyQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBt
X3NwYXJlQnVzLnB0cigpLCBrUmVuZGVyQnVmZmVyU2l6ZSwgb3V0cHV0VGltZXN0YW1wKTsKICAg
ICAgICAgICAgIG1fcmVuZGVyQnVzLT5jb3B5RnJvbVJhbmdlKG1fc3BhcmVCdXMuZ2V0KCksIDAs
IGZyYW1lc1RoaXNUaW1lKTsKICAgICAgICAgICAgIG1fc3RhcnRTcGFyZUZyYW1lID0gZnJhbWVz
VGhpc1RpbWU7CiAgICAgICAgICAgICBtX2VuZFNwYXJlRnJhbWUgPSBrUmVuZGVyQnVmZmVyU2l6
ZTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBtX3Jl
bmRlckJ1cy5wdHIoKSwgZnJhbWVzVGhpc1RpbWUpOworICAgICAgICAgICAgbV9jYWxsYmFjay5y
ZW5kZXIoMCwgbV9yZW5kZXJCdXMucHRyKCksIGZyYW1lc1RoaXNUaW1lLCBvdXRwdXRUaW1lc3Rh
bXApOwogICAgICAgICBwcm9jZXNzQnVzQWZ0ZXJSZW5kZXIobV9yZW5kZXJCdXMuZ2V0KCksIGZy
YW1lc1RoaXNUaW1lKTsKICAgICAgICAgZnJhbWVPZmZzZXQgKz0gZnJhbWVzVGhpc1RpbWU7CiAg
ICAgICAgIGZyYW1lc1JlbWFpbmluZyAtPSBmcmFtZXNUaGlzVGltZTsKQEAgLTE4NCwxMCArMTg4
LDEwIEBAIE9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKFVJbnQzMiBudW1i
ZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpCiB9CiAKIC8vIERlZmF1bHRPdXRwdXRVbml0
IGNhbGxiYWNrCi1PU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmlucHV0UHJvYyh2b2lk
KiB1c2VyRGF0YSwgQXVkaW9Vbml0UmVuZGVyQWN0aW9uRmxhZ3MqLCBjb25zdCBBdWRpb1RpbWVT
dGFtcCosIFVJbnQzMiAvKmJ1c051bWJlciovLCBVSW50MzIgbnVtYmVyT2ZGcmFtZXMsIEF1ZGlv
QnVmZmVyTGlzdCogaW9EYXRhKQorT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjppbnB1
dFByb2Modm9pZCogdXNlckRhdGEsIEF1ZGlvVW5pdFJlbmRlckFjdGlvbkZsYWdzKiwgY29uc3Qg
QXVkaW9UaW1lU3RhbXAqIHRpbWVzdGFtcCwgVUludDMyIC8qYnVzTnVtYmVyKi8sIFVJbnQzMiBu
dW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpCiB7CiAgICAgYXV0byogYXVk
aW9PdXRwdXQgPSBzdGF0aWNfY2FzdDxBdWRpb0Rlc3RpbmF0aW9uQ29jb2EqPih1c2VyRGF0YSk7
Ci0gICAgcmV0dXJuIGF1ZGlvT3V0cHV0LT5yZW5kZXIobnVtYmVyT2ZGcmFtZXMsIGlvRGF0YSk7
CisgICAgcmV0dXJuIGF1ZGlvT3V0cHV0LT5yZW5kZXIodGltZXN0YW1wLCBudW1iZXJPZkZyYW1l
cywgaW9EYXRhKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29j
b2EuaAppbmRleCBhZTc1ZjNmMjYzMTc2ZTc0M2NiNzgxMjUwMTdkM2E0YzAxMDlkY2IyLi4zOTI4
OGVhOWZiMzI0YmJhMzFkMTdjMjM2MDhlMTE1Y2FjYzAzMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29j
b2EuaApAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY29uZmlndXJlKCk7CiAg
ICAgdm9pZCBwcm9jZXNzQnVzQWZ0ZXJSZW5kZXIoQXVkaW9CdXMmLCBVSW50MzIgbnVtYmVyT2ZG
cmFtZXMpOwogCi0gICAgT1NTdGF0dXMgcmVuZGVyKFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVk
aW9CdWZmZXJMaXN0KiBpb0RhdGEpOworICAgIE9TU3RhdHVzIHJlbmRlcihjb25zdCBBdWRpb1Rp
bWVTdGFtcCosIFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEp
OwogCiAgICAgQXVkaW9Vbml0IG1fb3V0cHV0VW5pdDsKICAgICBBdWRpb0lPQ2FsbGJhY2smIG1f
Y2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNw
cAppbmRleCA1MzBmYzExM2Y0OTA1NmYwZTIzMjY0Njk1MWY0YzFhZGQ1YmFkMmU0Li5iNGY2ZmQ5
MDA1ZGJlMGNjMDhlZGJmMWMyNmZjZDM3Mjk1M2Q0MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJL
aXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTM1MCw3ICszNTAsNyBAQCBzdGF0aWMg
T3B0aW9uYWw8VmVjdG9yPEdSZWZQdHI8R3N0QnVmZmVyPj4+IHdlYktpdFdlYkF1ZGlvU3JjQWxs
b2NhdGVCdWZmZXJzQW5kUgogICAgIH0KIAogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Ig
bG9jYWwvbGl2ZSBhdWRpbyBpbnB1dC4KLSAgICBwcml2LT5wcm92aWRlci0+cmVuZGVyKG51bGxw
dHIsIHByaXYtPmJ1cywgcHJpdi0+ZnJhbWVzVG9QdWxsKTsKKyAgICBwcml2LT5wcm92aWRlci0+
cmVuZGVyKG51bGxwdHIsIHByaXYtPmJ1cywgcHJpdi0+ZnJhbWVzVG9QdWxsLCB7IH0pOwogCiAg
ICAgcmV0dXJuIG1ha2VPcHRpb25hbChjaGFubmVsQnVmZmVyTGlzdCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmNwcAppbmRleCAzMzM3MzMwYjM4NTA2ZDk2YzA1MzkzZDZhYTBmOGVi
MTdiNDFhOWY3Li40NmFjNzhiZDIyOGRiZjFmOGM1MzBlM2ExOGNkNDQ5NmEyOGExOTc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToK
ICAgICB7CiAgICAgfQogCi0gICAgdm9pZCByZW5kZXIoQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVk
aW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlkZQor
ICAgIHZvaWQgcmVuZGVyKEF1ZGlvQnVzKiBzb3VyY2VCdXMsIEF1ZGlvQnVzKiBkZXN0aW5hdGlv
bkJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3QgV2ViQ29yZTo6QXVkaW9JT1Bvc2l0
aW9uJiBvdXRwdXRQb3NpdGlvbikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3Byb3Rl
Y3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bikKICAgICAgICAgICAgIHJldHVybjsKQEAgLTk1
LDggKzk1LDggQEAgcHJpdmF0ZToKIAogICAgICAgICAvLyBGSVhNRTogUmVwbGFjZSB0aGlzIGNv
ZGUgd2l0aCBhIHJpbmcgYnVmZmVyLiBBdCBsZWFzdCB0aGlzIGhhcHBlbnMgaW4gYXVkaW8gdGhy
ZWFkLgogICAgICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbdGhpcywgZnJhbWVzVG9Qcm9jZXNzLCAmYnVmZmVycywgJnJlbmRlclNlbWFwaG9y
ZV0gewotICAgICAgICAgICAgUmVtb3RlQXVkaW9CdXNEYXRhIGJ1c0RhdGEgeyBmcmFtZXNUb1By
b2Nlc3MsIGJ1ZmZlcnMubWFwKFtdKGF1dG8mIG1lbW9yeSkgeyByZXR1cm4gbWVtb3J5LmNvcHlS
ZWYoKTsgfSkgfTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgZnJhbWVzVG9Qcm9j
ZXNzLCBvdXRwdXRQb3NpdGlvbiwgJmJ1ZmZlcnMsICZyZW5kZXJTZW1hcGhvcmVdIHsKKyAgICAg
ICAgICAgIFJlbW90ZUF1ZGlvQnVzRGF0YSBidXNEYXRhIHsgZnJhbWVzVG9Qcm9jZXNzLCBvdXRw
dXRQb3NpdGlvbiwgYnVmZmVycy5tYXAoW10oYXV0byYgbWVtb3J5KSB7IHJldHVybiBtZW1vcnku
Y29weVJlZigpOyB9KSB9OwogICAgICAgICAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2Vzcyk7CiAg
ICAgICAgICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIoYnVzRGF0
YSksIFsmXSgpIHsKICAgICAgICAgICAgICAgICByZW5kZXJTZW1hcGhvcmUuc2lnbmFsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
QnVzRGF0YS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0J1c0RhdGEuaAppbmRleCA3YWM0YzM3MzQ1NDUzMjUwZTc5ZWIzZGE2NDE3OWVjODc1ZDg2MDA2
Li5kMjFkNDA1NWFmNDcyYmFiYjY3YmZmMzlkZDQ2ODJjODNhYTM0ZTdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRh
LmgKQEAgLTMwLDE4ICszMCwyMSBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNs
dWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NoYXJlZEJ1ZmZlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IFJlbW90
ZUF1ZGlvQnVzRGF0YSB7CiAgICAgdWludDY0X3QgZnJhbWVzVG9Qcm9jZXNzIHsgMCB9OworICAg
IFdlYkNvcmU6OkF1ZGlvSU9Qb3NpdGlvbiBvdXRwdXRQb3NpdGlvbjsKICAgICBWZWN0b3I8UmVm
PFNoYXJlZE1lbW9yeT4+IGNoYW5uZWxCdWZmZXJzOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RW5jb2Rlcj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsK
ICAgICAgICAgZW5jb2RlciA8PCBmcmFtZXNUb1Byb2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwg
b3V0cHV0UG9zaXRpb247CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KGNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
Y2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIFNoYXJlZE1lbW9yeTo6
SGFuZGxlIGhhbmRsZTsKQEAgLTU4LDYgKzYxLDExIEBAIHN0cnVjdCBSZW1vdGVBdWRpb0J1c0Rh
dGEgewogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQuZnJhbWVzVG9Q
cm9jZXNzID0gZnJhbWVzVG9Qcm9jZXNzOwogCisgICAgICAgIFdlYkNvcmU6OkF1ZGlvSU9Qb3Np
dGlvbiBvdXRwdXRQb3NpdGlvbjsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvdXRwdXRQ
b3NpdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5vdXRw
dXRQb3NpdGlvbiA9IG91dHB1dFBvc2l0aW9uOworCiAgICAgICAgIHVpbnQ2NF90IHNpemUgPSAw
OwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCmluZGV4IDBiYWZiMzcx
YWYwYjY3NjMwNDA5NmIxMjg3MjNjZTBkYzYxNWI1MGQuLjA2OTQ1YmFmZDVkMTg5YzdhMGY5Yzcy
NDAyYmI4ODlkYzgwN2Y2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
QEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRl
ckJ1ZmZlcihjb25zdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSYKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKTsgKytpKQog
ICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShpLCAoZmxvYXQqKWF1ZGlvQnVzRGF0
YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNz
KTsKIAotICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBhdWRpb0J1c0Rh
dGEuZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBhdWRpb0J1cy5n
ZXQoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgYXVkaW9CdXNEYXRhLm91dHB1dFBv
c2l0aW9uKTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCA5NzQ3N2UyZGJkN2QxYTU2MDNiOGJmZGFmMmUyNDUwNTRiZDc3NzI1
Li5jOWU2Y2NjNmRkOTU2NWUzMzI0YzY4NDA0NmFhOTc4NzMwZDgxN2E3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wOC0xNyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEF1ZGlvQ29udGV4dC5nZXRPdXRwdXRU
aW1lc3RhbXAoKSBpcyBtaXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTU1OTEKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0cyBub3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUg
cGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9pZGxoYXJu
ZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvY29udGV4dC1pbnRlcmZhY2UvYXVk
aW9jb250ZXh0LWdldG91dHB1dHRpbWVzdGFtcC1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDgtMTcg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdWRpb05vZGUuZGlz
Y29ubmVjdCgpIGRvZXMgbm90IG1hdGNoIHRoZSBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhh
cm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhw
ZWN0ZWQudHh0CmluZGV4IDkyNjBhNjBiN2RiZjg3NjBlZGE1Yjk2NTEzMjkwMTU0ZmRhMWJlNGQu
LjQ1MzlmOTFmZjEyYjAzNjUzODVjMjU0ZGI5ZDg4MjE2Y2JkNTc0MmYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFy
bmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ct
ZXhwZWN0ZWQudHh0CkBAIC00OSw3ICs0OSw3IEBAIFBBU1MgQXVkaW9Db250ZXh0IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqCiBQ
QVNTIEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCiBQQVNT
IEF1ZGlvQ29udGV4dCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBiYXNlTGF0ZW5jeSAKIEZBSUwgQXVk
aW9Db250ZXh0IGludGVyZmFjZTogYXR0cmlidXRlIG91dHB1dExhdGVuY3kgYXNzZXJ0X3RydWU6
IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJvdXRwdXRMYXRlbmN5
IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBv
cGVyYXRpb24gZ2V0T3V0cHV0VGltZXN0YW1wKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiZ2V0T3V0cHV0VGltZXN0YW1wIiBtaXNzaW5nCitQQVNTIEF1ZGlvQ29udGV4
dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRPdXRwdXRUaW1lc3RhbXAoKSAKIFBBU1MgQXVkaW9D
b250ZXh0IGludGVyZmFjZTogb3BlcmF0aW9uIHJlc3VtZSgpIAogUEFTUyBBdWRpb0NvbnRleHQg
aW50ZXJmYWNlOiBvcGVyYXRpb24gc3VzcGVuZCgpIAogUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJm
YWNlOiBvcGVyYXRpb24gY2xvc2UoKSAKQEAgLTYxLDcgKzYxLDcgQEAgUEFTUyBBdWRpb0NvbnRl
eHQgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBjb250ZXh0CiBQQVNTIFN0cmluZ2lmaWNh
dGlvbiBvZiBjb250ZXh0IAogUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBjb250ZXh0IG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYmFzZUxhdGVuY3kiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
RkFJTCBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBjb250ZXh0IG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAib3V0cHV0TGF0ZW5jeSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBw
cm9wZXJ0eSAib3V0cHV0TGF0ZW5jeSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJ
TCBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBjb250ZXh0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Z2V0T3V0cHV0VGltZXN0YW1wKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0
czogcHJvcGVydHkgImdldE91dHB1dFRpbWVzdGFtcCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBj
aGFpbgorUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBjb250ZXh0IG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiZ2V0T3V0cHV0VGltZXN0YW1wKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFT
UyBBdWRpb0NvbnRleHQgaW50ZXJmYWNlOiBjb250ZXh0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
cmVzdW1lKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBBdWRpb0NvbnRleHQgaW50ZXJm
YWNlOiBjb250ZXh0IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3VzcGVuZCgpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKIFBBU1MgQXVkaW9Db250ZXh0IGludGVyZmFjZTogY29udGV4dCBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImNsb3NlKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2NvbnRleHQtaW50ZXJmYWNlL2F1ZGlvY29udGV4dC1nZXRv
dXRwdXR0aW1lc3RhbXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2NvbnRleHQt
aW50ZXJmYWNlL2F1ZGlvY29udGV4dC1nZXRvdXRwdXR0aW1lc3RhbXAtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDlkZWVkMzAzYWRhYWRkODY0ZDRiZjIxZDg5YjRhNDY2OTRhY2JjNzMuLmU2NzllNDVjMmNl
MjM1OTgyNGRmNTA5ZWQ4ZmIwYWZjMGM5NGZiYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YXVkaW9jb250ZXh0LWludGVyZmFjZS9hdWRpb2NvbnRleHQtZ2V0b3V0cHV0dGltZXN0YW1wLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvY29udGV4dC1pbnRlcmZhY2UvYXVk
aW9jb250ZXh0LWdldG91dHB1dHRpbWVzdGFtcC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwxMiBA
QAogCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCi1GQUlMIEV4ZWN1dGluZyAi
Z2V0b3V0cHV0dGltZXN0YW1wLWluaXRpYWwtdmFsdWVzIiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGNvbnRleHQuZ2V0T3V0
cHV0VGltZXN0YW1wIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2NvbnRleHQuZ2V0T3V0cHV0VGlt
ZXN0YW1wKCknLCAnY29udGV4dC5nZXRPdXRwdXRUaW1lc3RhbXAnIGlzIHVuZGVmaW5lZCkiCitQ
QVNTIEV4ZWN1dGluZyAiZ2V0b3V0cHV0dGltZXN0YW1wLWluaXRpYWwtdmFsdWVzIiAKIFBBU1Mg
QXVkaXQgcmVwb3J0IAogUEFTUyA+IFtnZXRvdXRwdXR0aW1lc3RhbXAtaW5pdGlhbC12YWx1ZXNd
ICAKK1BBU1MgICB0aW1lc3RhbXAuY29udGV4dFRpbWUgZG9lcyBleGlzdC4gCitQQVNTICAgdGlt
ZXN0YW1wLnBlcmZvcm1hbmNlVGltZSBkb2VzIGV4aXN0LiAKK1BBU1MgICB0aW1lc3RhbXAuY29u
dGV4dFRpbWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuIAorUEFTUyAgIHRpbWVzdGFt
cC5wZXJmb3JtYW5jZVRpbWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuIAorUEFTUyA8
IFtnZXRvdXRwdXR0aW1lc3RhbXAtaW5pdGlhbC12YWx1ZXNdIEFsbCBhc3NlcnRpb25zIHBhc3Nl
ZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykgCiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNI
RUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>