<?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>191480</bug_id>
          
          <creation_ts>2018-11-09 12:25:57 -0800</creation_ts>
          <short_desc>Add ability to configure document.cookie lifetime cap through user defaults</short_desc>
          <delta_ts>2018-11-09 20:50:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1477049</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 12:25:57 -0800</bug_when>
    <thetext>We should have a way to configure the lifetime cap introduced in https://bugs.webkit.org/show_bug.cgi?id=189933.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477050</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 12:26:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/45240871&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477053</commentid>
    <comment_count>2</comment_count>
      <attachid>354373</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 12:29:47 -0800</bug_when>
    <thetext>Created attachment 354373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477081</commentid>
    <comment_count>3</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 13:31:58 -0800</bug_when>
    <thetext>I hit the same build error locally that the ios-sim bot is seeing. There seems to be a problem with our derived code. The message has been updated to transfer an optional Seconds parameter instead of a boolean but for some reason it&apos;s not picked up.

I had to wipe my WebKit Build directory to make it work. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477082</commentid>
    <comment_count>4</comment_count>
      <attachid>354373</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-11-09 13:34:57 -0800</bug_when>
    <thetext>Comment on attachment 354373
Patch

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

&gt; Source/WebCore/platform/network/NetworkStorageSession.h:195
&gt; +    std::optional&lt;Seconds&gt; m_shouldCapLifetimeForClientSideCookies { };

a m_shouldCapLifetimeForClientSideCookies named variable that is no a boolean seems super weird. This variable and getter / setter probably need better names now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477086</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 13:41:54 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; Comment on attachment 354373 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=354373&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/NetworkStorageSession.h:195
&gt; &gt; +    std::optional&lt;Seconds&gt; m_shouldCapLifetimeForClientSideCookies { };
&gt; 
&gt; a m_shouldCapLifetimeForClientSideCookies named variable that is no a
&gt; boolean seems super weird. This variable and getter / setter probably need
&gt; better names now?

True. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477112</commentid>
    <comment_count>6</comment_count>
      <attachid>354373</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-11-09 14:42:45 -0800</bug_when>
    <thetext>Comment on attachment 354373
Patch

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

&gt; Source/WebKit/UIProcess/ResourceLoadStatisticsMemoryStore.h:118
&gt; +    void updateClientSideCookiesAgeCap();

Why is this public?

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:334
&gt; +        m_memoryStore-&gt;updateClientSideCookiesAgeCap();

Which we should call something like:
m_memoryStore-&gt;didCreateNetworkProcess();

And let its implementation decide what it needs to do. This would likely allow these update*() methods to be private.

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:842
&gt; +void WebResourceLoadStatisticsStore::setClientSideCookiesAgeCap(std::optional&lt;Seconds&gt; seconds, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)

Do we really need this setter? Can&apos;t the memory store call setShouldCapLifetimeForClientSideCookies() on the websiteDataStore by itself?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477117</commentid>
    <comment_count>7</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 14:51:03 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; Comment on attachment 354373 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=354373&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ResourceLoadStatisticsMemoryStore.h:118
&gt; &gt; +    void updateClientSideCookiesAgeCap();
&gt; 
&gt; Why is this public?

It&apos;s called in WebResourceLoadStatisticsStore::didCreateNetworkProcess().

&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:334
&gt; &gt; +        m_memoryStore-&gt;updateClientSideCookiesAgeCap();
&gt; 
&gt; Which we should call something like:
&gt; m_memoryStore-&gt;didCreateNetworkProcess();
&gt; 
&gt; And let its implementation decide what it needs to do. This would likely
&gt; allow these update*() methods to be private.

True. I can change that.

&gt; &gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:842
&gt; &gt; +void WebResourceLoadStatisticsStore::setClientSideCookiesAgeCap(std::optional&lt;Seconds&gt; seconds, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)
&gt; 
&gt; Do we really need this setter? Can&apos;t the memory store call
&gt; setShouldCapLifetimeForClientSideCookies() on the websiteDataStore by itself?

The memory store doesn&apos;t have a pointer to the WebsiteDataStore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477128</commentid>
    <comment_count>8</comment_count>
      <attachid>354392</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 15:02:03 -0800</bug_when>
    <thetext>Created attachment 354392
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477154</commentid>
    <comment_count>9</comment_count>
      <attachid>354392</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-11-09 15:57:37 -0800</bug_when>
    <thetext>Comment on attachment 354392
Patch

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

&gt; Source/WebCore/platform/network/NetworkStorageSession.h:106
&gt; +    WEBCORE_EXPORT void setShouldCapLifetimeForClientSideCookies(std::optional&lt;Seconds&gt;);

Bad name for setter.

&gt; Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:284
&gt; +            if (!cookie.expiresDate || cookie.expiresDate.timeIntervalSinceNow &gt; cappedLifetime.value().seconds()) {

cappedLifetime-&gt;seconds() is shorter.

&gt; Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:286
&gt; +                RetainPtr&lt;NSDate&gt; dateInAWeek = adoptNS([[NSDate alloc] initWithTimeIntervalSinceNow:cappedLifetime.value().seconds()]);

ditto.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.h:161
&gt; +    void setShouldCapLifetimeForClientSideCookies(PAL::SessionID, std::optional&lt;Seconds&gt;, uint64_t contextId);

Bad name.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.messages.in:82
&gt; +    SetShouldCapLifetimeForClientSideCookies(PAL::SessionID sessionID, std::optional&lt;Seconds&gt; seconds, uint64_t contextId)

Bad name.

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:418
&gt; +void NetworkProcessProxy::setShouldCapLifetimeForClientSideCookies(PAL::SessionID sessionID, std::optional&lt;Seconds&gt; seconds, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)

Bad name

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:430
&gt; +    send(Messages::NetworkProcess::SetShouldCapLifetimeForClientSideCookies(sessionID, seconds, callbackId), 0);

Bad name

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:82
&gt; +    void setShouldCapLifetimeForClientSideCookies(PAL::SessionID, std::optional&lt;Seconds&gt;, CompletionHandler&lt;void()&gt;&amp;&amp;);

Bad name

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp:840
&gt; +void WebResourceLoadStatisticsStore::setClientSideCookiesAgeCap(std::optional&lt;Seconds&gt; seconds, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)

Why do we have this method? Cannot the memory store call setShouldCapLifetimeForClientSideCookies() on the WebsiteDataStore directly? (getting the WebSiteDataStore from the WebResourceLoadStatisticsStore).

This method confuses me as setters on the WebResourceLoadStatisticsStore() usually forward the call to the memory store.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:139
&gt; +    void setShouldCapLifetimeForClientSideCookies(std::optional&lt;Seconds&gt;, CompletionHandler&lt;void()&gt;&amp;&amp;);

Bad name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477182</commentid>
    <comment_count>10</comment_count>
      <attachid>354411</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 16:36:16 -0800</bug_when>
    <thetext>Created attachment 354411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477186</commentid>
    <comment_count>11</comment_count>
      <attachid>354415</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 16:44:45 -0800</bug_when>
    <thetext>Created attachment 354415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477187</commentid>
    <comment_count>12</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 16:45:05 -0800</bug_when>
    <thetext>Non-Cocoa build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477213</commentid>
    <comment_count>13</comment_count>
      <attachid>354415</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-11-09 18:24:34 -0800</bug_when>
    <thetext>Comment on attachment 354415
Patch

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

r=me with comment.

&gt; Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.h:143
&gt; +    WebsiteDataStore* getWebsiteDataStore() { return m_websiteDataStore.get(); }

We NEVER use &apos;get&apos; prefix for getters in WebKit. This should be named websiteDataStore().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477231</commentid>
    <comment_count>14</comment_count>
      <attachid>354433</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 20:13:00 -0800</bug_when>
    <thetext>Created attachment 354433
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477232</commentid>
    <comment_count>15</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-09 20:13:37 -0800</bug_when>
    <thetext>Thanks, Chris! Have a nice weekend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477234</commentid>
    <comment_count>16</comment_count>
      <attachid>354433</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-09 20:50:10 -0800</bug_when>
    <thetext>Comment on attachment 354433
Patch for landing

Clearing flags on attachment: 354433

Committed r238063: &lt;https://trac.webkit.org/changeset/238063&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477235</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-09 20:50:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354373</attachid>
            <date>2018-11-09 12:29:47 -0800</date>
            <delta_ts>2018-11-09 15:02:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191480-20181109122946.patch</filename>
            <type>text/plain</type>
            <size>23561</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY4M2U4NzhjNzI5OTIx
OGMwYzQ2OTk2OGU4MWI5ODFiN2QwZWY5Zi4uOTAzNDBmOWI5YjBkNmQxODBjMzRhNzdkZTgxZDVj
OTViZjkxMGE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTExLTA5ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhYmlsaXR5IHRv
IGNvbmZpZ3VyZSBkb2N1bWVudC5jb29raWUgbGlmZXRpbWUgY2FwIHRocm91Z2ggdXNlciBkZWZh
dWx0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
NDgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTI0MDg3MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4aXN0aW5nIHRl
c3QgbWFrZXMgc3VyZSB3ZSBkb24ndCByZWdyZXNzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1h
a2VzIHRoZSBjYXBwZWQgbGlmZXRpbWUgaW4gc2Vjb25kcyBjb25maWd1cmFibGUgdGhyb3VnaAor
ICAgICAgICB1c2VyIGRlZmF1bHRzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2Nv
YS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmZpbHRlckNvb2tpZXMpOgorCiAyMDE4LTExLTA5ICBE
YW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBEcmF3IGNh
cHMgbG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRkODgxN2I0
MTYxYzAxYTg3N2NkZDBiY2MwOWFlMzc5YTFjNzJhMzUuLmMwNmFkZWY2ZTZmMmFmNzU2ZDcwNDI3
NTBjNGFlZDMzMjkzZGFjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTgtMTEtMDkg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFiaWxp
dHkgdG8gY29uZmlndXJlIGRvY3VtZW50LmNvb2tpZSBsaWZldGltZSBjYXAgdGhyb3VnaCB1c2Vy
IGRlZmF1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTE0ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MjQwODcxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIHRo
ZSBjYXBwZWQgbGlmZXRpbWUgaW4gc2Vjb25kcyBjb25maWd1cmFibGUgdGhyb3VnaAorICAgICAg
ICB1c2VyIGRlZmF1bHRzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U2hvdWxkQ2FwTGlm
ZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01lbW9yeVN0b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVnaXN0ZXJVc2VyRGVmYXVsdHNJZk5lZWRlZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xp
ZW50U2lkZUNvb2tpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlOjpzZXRDbGllbnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6dXBkYXRlQ2xpZW50U2lkZUNvb2tp
ZXNBZ2VDYXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpkaWRDcmVhdGVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Q2xpZW50U2lkZUNvb2tpZXNBZ2VDYXApOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50
U2lkZUNvb2tpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmg6CisKIDIwMTgtMTEtMDkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRvciBpbiBwYXNzd29yZCBm
aWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4IGFhOWU0MjhlMzkyZWY5ZDU5NjYxZGM3NTRlZjdjNTVk
MDFjYmNmNDkuLjY0ZTY1ZWMxNDA3YzZiYTI4ZDZhZWM5N2JmMjQ4ZjMyZDFkYjQwODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaApAQCAtMTAzLDcgKzEwMyw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0IFVSTCYgcmVzb3VyY2UsIHN0ZDo6b3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkg
Y29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQcmV2YWxlbnREb21haW5zVG9CbG9j
a0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoYm9vbCB2YWx1ZSk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNp
ZGVDb29raWVzKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucyk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN0cmluZyYg
cmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKSBjb25zdDsKICAgICBXRUJD
T1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcygpIGNv
bnN0OwpAQCAtMTkyLDcgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
SGFzaE1hcDx1aW50NjRfdCwgU3RyaW5nLCBEZWZhdWx0SGFzaDx1aW50NjRfdD46Okhhc2gsIFdU
Rjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0X3Q+PiwgRGVmYXVsdEhhc2g8
dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2
NF90Pj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBIYXNoTWFwPHVpbnQ2NF90
LCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBX
VEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gbV9wYWdlc0dyYW50
ZWRTdG9yYWdlQWNjZXNzOwogICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbV9jYWNoZU1heEFn
ZUNhcEZvclByZXZhbGVudFJlc291cmNlcyB7IH07Ci0gICAgYm9vbCBtX3Nob3VsZENhcExpZmV0
aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyBmYWxzZSB9OworICAgIHN0ZDo6b3B0aW9uYWw8U2Vj
b25kcz4gbV9zaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzIHsgfTsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3Bw
CmluZGV4IGZmZDZhNjE0Y2NlNzgxNzBhOWMxNWM3ZDRhOGEzMzM2ZGE0YmE0MDIuLmNjZWI3MmRk
MTU1Y2ZhYWE0ZmQ3NmE5NDBlZjI0ZjBmNzZkYWViMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uQ0ZOZXQuY3BwCkBAIC0yNzMsOSArMjczLDkgQEAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246Om1heEFnZUNhY2hlQ2FwKGNvbnN0IFJlc291cmNlUmVxdWUK
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhib29sIHZhbHVlKQor
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50
U2lkZUNvb2tpZXMoc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBzZWNvbmRzKQogewotICAgIG1fc2hv
dWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyA9IHZhbHVlOworICAgIG1fc2hvdWxk
Q2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyA9IHNlY29uZHM7CiB9CiAKIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3Io
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Db2NvYS5tbQppbmRleCBhOWYyNTg1MTIyZGEzZmI0MzdjNWNmZTcyM2ZhYzY3Yjc2ZjYyMTA1
Li40MmE2OWNkNzE3ODM1ZjA5Njc5M2NkODZjOTg5N2E1ZjRiOTBiNTg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KQEAgLTI2MCwxMyArMjYwLDEyIEBAIHN0YXRpYyBO
U0FycmF5ICpodHRwQ29va2llc0ZvclVSTChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0
b3JhZ2UsIE5TVVJMICpmCiAgICAgcmV0dXJuIGNvb2tpZXNGb3JVUkwobnNDb29raWVTdG9yYWdl
LmdldCgpLCB1cmwsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbyk7CiB9CiAKLXN0YXRpYyBSZXRh
aW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcywg
Ym9vbCBzaG91bGRDYXBMaWZldGltZSkKK3N0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVy
Q29va2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcywgc3RkOjpvcHRpb25hbDxTZWNvbmRz
PiBjYXBwZWRMaWZldGltZSkKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9j
ZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAgICAgTlNVSW50ZWdlciBjb3Vu
dCA9IFt1bmZpbHRlcmVkQ29va2llcyBjb3VudF07CiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFy
cmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoQ2FwYWNpdHk6Y291bnRdKTsKIAotICAgIGNvbnN0IE5TVGltZUludGVydmFsIHNlY29u
ZHNQZXJXZWVrID0gNyAqIDI0ICogNjAgKiA2MDsKICAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7
IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIE5TSFRUUENvb2tpZSAqY29va2llID0gKE5TSFRU
UENvb2tpZSAqKVt1bmZpbHRlcmVkQ29va2llcyBvYmplY3RBdEluZGV4OmldOwogCkBAIC0yODEs
MTAgKzI4MCwxMCBAQCBzdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk+IGZpbHRlckNvb2tpZXMoTlNB
cnJheSAqdW5maWx0ZXJlZENvb2tpZXMsIGJvb2wgc2hvdWxkQwogICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgLy8gQ2FwIGxpZmV0aW1lIG9mIHBlcnNpc3RlbnQsIGNsaWVudC1zaWRl
IGNvb2tpZXMgdG8gYSB3ZWVrLgotICAgICAgICBpZiAoc2hvdWxkQ2FwTGlmZXRpbWUgJiYgIVtj
b29raWUgaXNTZXNzaW9uT25seV0pIHsKLSAgICAgICAgICAgIGlmICghY29va2llLmV4cGlyZXNE
YXRlIHx8IGNvb2tpZS5leHBpcmVzRGF0ZS50aW1lSW50ZXJ2YWxTaW5jZU5vdyA+IHNlY29uZHNQ
ZXJXZWVrKSB7CisgICAgICAgIGlmIChjYXBwZWRMaWZldGltZSAmJiAhW2Nvb2tpZSBpc1Nlc3Np
b25Pbmx5XSkgeworICAgICAgICAgICAgaWYgKCFjb29raWUuZXhwaXJlc0RhdGUgfHwgY29va2ll
LmV4cGlyZXNEYXRlLnRpbWVJbnRlcnZhbFNpbmNlTm93ID4gY2FwcGVkTGlmZXRpbWUudmFsdWUo
KS5zZWNvbmRzKCkpIHsKICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlv
bmFyeTxOU0hUVFBDb29raWVQcm9wZXJ0eUtleSwgaWQ+PiBwcm9wZXJ0aWVzID0gYWRvcHROUyhb
W2Nvb2tpZSBwcm9wZXJ0aWVzXSBtdXRhYmxlQ29weV0pOwotICAgICAgICAgICAgICAgIFJldGFp
blB0cjxOU0RhdGU+IGRhdGVJbkFXZWVrID0gYWRvcHROUyhbW05TRGF0ZSBhbGxvY10gaW5pdFdp
dGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzpzZWNvbmRzUGVyV2Vla10pOworICAgICAgICAgICAgICAg
IFJldGFpblB0cjxOU0RhdGU+IGRhdGVJbkFXZWVrID0gYWRvcHROUyhbW05TRGF0ZSBhbGxvY10g
aW5pdFdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzpjYXBwZWRMaWZldGltZS52YWx1ZSgpLnNlY29u
ZHMoKV0pOwogICAgICAgICAgICAgICAgIFtwcm9wZXJ0aWVzIHNldE9iamVjdDpkYXRlSW5BV2Vl
ay5nZXQoKSBmb3JLZXk6TlNIVFRQQ29va2llRXhwaXJlc107CiAgICAgICAgICAgICAgICAgY29v
a2llID0gW05TSFRUUENvb2tpZSBjb29raWVXaXRoUHJvcGVydGllczpwcm9wZXJ0aWVzLmdldCgp
XTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKaW5kZXggMDczZjM0ZjNhZjFjYWIxZDgyMTFhNGE0Y2Q4YzU4OTMyYjY1
MWIyZS4uMDQyNGM5NTgwY2VmOGU4MDFlODBhN2JmOTY1ZGJiYjhlNWQ4ZTdkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTUxMCwx
MCArNTEwLDEwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNU
b0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRCBzZXNzCiAgICAgcGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkVXBkYXRl
QmxvY2tDb29raWVzKGNvbnRleHRJZCksIDApOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpz
ZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgYm9vbCB2YWx1ZSwgdWludDY0X3QgY29udGV4dElkKQordm9pZCBOZXR3b3JrUHJv
Y2Vzczo6c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25kcywgdWludDY0X3Qg
Y29udGV4dElkKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCi0gICAgICAgIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbi0+c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29v
a2llcyh2YWx1ZSk7CisgICAgICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+c2V0U2hvdWxkQ2Fw
TGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhzZWNvbmRzKTsKICAgICBwYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpEaWRTZXRT
aG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKGNvbnRleHRJZCksIDApOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXgg
YmIwY2U4MzVmYjJiNDliOTdmOWJiNDFkYzlhZjg0NjMzYzk1NmIxNi4uYjQ0YWYyMmQxYzI1ZDA1
MTg4MGMyODg2MmU1ZTkyOTA0NWNkNDk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdm9pZCB1cGRhdGVQcmV2YWxl
bnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBkb21haW5zVG9CbG9jaywgdWludDY0X3QgY29udGV4dElkKTsKLSAgICB2b2lkIHNl
dFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGJv
b2wgdmFsdWUsIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBzZXRTaG91bGRDYXBMaWZl
dGltZUZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNl
Y29uZHM+LCB1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzc0Zv
ckZyYW1lKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25z
dCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBh
Z2VJRCwgdWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NF
bnRyaWVzKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZ3Jh
bnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHJlc291cmNlRG9t
YWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgY29udGV4dElkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluCmluZGV4IDdmYmIwNzQ5NDQ5ZTA2NGJiNGM0YmQwYmRlOGZhNDJkMTlhNjgzZWUuLjky
YTY3NmQ2Nzk5ZWIwZjg5NDYzMGZmYjVlOWQyOTg3NzdjYzE2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtNzksNyArNzksNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIFVwZGF0ZVBy
ZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNUb0Jsb2NrLCB1aW50NjRfdCBjb250ZXh0SWQpCi0gICAg
U2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGJvb2wgdmFsdWUsIHVpbnQ2NF90IGNvbnRleHRJZCkKKyAgICBTZXRTaG91bGRD
YXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiBzZWNvbmRzLCB1aW50NjRfdCBjb250ZXh0SWQpCiAgICAg
SGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5n
IHJlc291cmNlRG9tYWluLCBTdHJpbmcgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgR2V0QWxsU3RvcmFn
ZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBjb250ZXh0
SWQpCiAgICAgR3JhbnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3Ry
aW5nIHJlc291cmNlRG9tYWluLCBTdHJpbmcgZmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBjb250ZXh0SWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZUNvY29hLm1tCmluZGV4IDhkOWQx
YmIyNjI4OTYyYmY1YzVhMGZlOWZiMmJmYzU1OTc2ODIwYTEuLmYxM2UxMTMzODY3OTIwYmI4Y2U5
Nzk2NWQ0YzAxMjVjMTA4NGJiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZUNvY29hLm1tCkBAIC01Niw2ICs1NiwxMCBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZTo6cmVnaXN0ZXJVc2VyRGVmYXVsdHNJZk5lZWRlZCgpCiAgICAgICAgIFNl
Y29uZHMgY2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gZG91YmxlRm9yS2V5OkAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0NhY2hlTWF4QWdlQ2FwIl0pOwogICAgICAgICBpZiAoY2FjaGVNYXhBZ2VDYXBGb3JQcmV2
YWxlbnRSZXNvdXJjZXMgPiAwX3MgJiYgY2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJj
ZXMgPD0gMjRfaCAqIDM2NSkKICAgICAgICAgICAgIHNldENhY2hlTWF4QWdlQ2FwKGNhY2hlTWF4
QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKTsKKyAgICAgICAgCisgICAgICAgIFNlY29uZHMg
Y2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c10gZG91YmxlRm9yS2V5OkAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsaWVudFNpZGVDb29r
aWVzQWdlQ2FwIl0pOworICAgICAgICBpZiAoY2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAgPiAwX3Mg
JiYgY2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAgPD0gMjRfaCAqIDM2NSkKKyAgICAgICAgICAgIHNl
dENsaWVudFNpZGVDb29raWVzQWdlQ2FwKGNsaWVudFNpZGVDb29raWVzQWdlQ2FwKTsKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMzc4MGYyMjRlZDk4ZGFkYWEwMDM1YjhhN2YxZTEz
MjMxNDJkY2RiYy4uZDc0NjU0YzliMWZhYjBkZDExODJhOThlMWY4M2VmZWI5ZGRjMGMyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCkBAIC00MTUsNyArNDE1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpkaWRVcGRhdGVCbG9ja0Nvb2tpZXModWludDY0X3QgY2FsbGJhY2tJZCkKICAgICBtX3VwZGF0
ZUJsb2NrQ29va2llc0NhbGxiYWNrTWFwLnRha2UoY2FsbGJhY2tJZCkoKTsKIH0KIAotdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29r
aWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRT
aWRlQ29va2llcyBzaG91bGRDYXBMaWZldGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRD
YXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKSB7CiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC00MjcsNyArNDI3LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVz
KFBBTDo6U2Vzc2lvbkkKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKICAg
ICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwotICAgIHNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVu
dFNpZGVDb29raWVzKHNlc3Npb25JRCwgc2hvdWxkQ2FwTGlmZXRpbWUgPT0gU2hvdWxkQ2FwTGlm
ZXRpbWVGb3JDbGllbnRTaWRlQ29va2llczo6WWVzLCBjYWxsYmFja0lkKSwgMCk7CisgICAgc2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50
U2lkZUNvb2tpZXMoc2Vzc2lvbklELCBzZWNvbmRzLCBjYWxsYmFja0lkKSwgMCk7CiB9CiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRT
aWRlQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBkYzlhZGQxYWRh
ZjdmNTI1YThmYjY0YjU2ZTAzYjVlMWE0NjQ1ODM1Li42OWJmNmI2ZmQ4OTQ2NWUyY2JhNzUxZTcw
OWMwYmUwZjZlN2FkODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgdXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
Ci0gICAgdm9pZCBzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6
U2Vzc2lvbklELCBTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JD
bGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBw
YWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIHZv
aWQgZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBkb21haW5zKT4mJik7CiAgICAgdm9pZCBncmFu
dFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21h
aW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IDZkOTliZTk4YWMx
YTMwMzA5OGY3YzQwZDlhZDMwMjM5NjI1NDBhYjAuLjE4MTJlOGZjNWNjZWUwNzJjYTQzMWIxY2I1
ZWZhMGIzOWY3NTJjYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcApAQCAtODQ4LDYgKzg0
OCwyNCBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6dXBkYXRlQ2Fj
aGVNYXhBZ2VDYXAoKQogICAgIH0pOwogfQogCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6c2V0Q2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoU2Vjb25kcyBzZWNvbmRzKQor
eworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworICAgIEFTU0VSVChzZWNvbmRzID49
IDBfcyk7CisgICAgCisgICAgbV9wYXJhbWV0ZXJzLmNsaWVudFNpZGVDb29raWVzQWdlQ2FwVGlt
ZSA9IHNlY29uZHM7CisgICAgdXBkYXRlQ2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoKTsKK30KKwor
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnVwZGF0ZUNsaWVudFNpZGVD
b29raWVzQWdlQ2FwKCkKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAK
KyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3N0b3JlID0gbWFrZVJlZihtX3N0b3JlKSwg
c2Vjb25kcyA9IG1fcGFyYW1ldGVycy5jbGllbnRTaWRlQ29va2llc0FnZUNhcFRpbWVdICgpIHsK
KyAgICAgICAgc3RvcmUtPnNldENsaWVudFNpZGVDb29raWVzQWdlQ2FwKHNlY29uZHMsIFtdIHsg
fSk7CisgICAgfSk7Cit9CisKIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
OjpzaG91bGRSZW1vdmVEYXRhUmVjb3JkcygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IGQyZTg4NmU2ZjJiMGM5ODQ2
NWJmOWY0MDU2NTNlYWFlNmU4OGU2NzYuLjhkYWViMWM4M2E0MzdlODk5NzRhNDNjYjk1ZjdiN2Ex
NjgyMDg0NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBAIC0xMTQsNiArMTE0LDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMpOwogICAgIHZvaWQg
c2V0Q2FjaGVNYXhBZ2VDYXAoU2Vjb25kcyk7CiAgICAgdm9pZCB1cGRhdGVDYWNoZU1heEFnZUNh
cCgpOworICAgIHZvaWQgc2V0Q2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoU2Vjb25kcyk7CisgICAg
dm9pZCB1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCgpOwogICAgIHZvaWQgc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShib29sKTsKICAgICBib29sIGlzRGVidWdNb2RlRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdNb2RlRW5hYmxlZDsgfTsKICAgICB2b2lkIHNl
dFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKGNvbnN0IFN0cmluZyYgZG9tYWluKTsKQEAg
LTE2NCw2ICsxNjYsNyBAQCBwcml2YXRlOgogICAgICAgICBTZWNvbmRzIG1pbmltdW1UaW1lQmV0
d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCB7IDFfaCB9OwogICAgICAgICBTZWNvbmRzIGdyYW5kZmF0
aGVyaW5nVGltZSB7IDI0X2ggKiA3IH07CiAgICAgICAgIFNlY29uZHMgY2FjaGVNYXhBZ2VDYXBU
aW1lIHsgMjRfaCAqIDcgfTsKKyAgICAgICAgU2Vjb25kcyBjbGllbnRTaWRlQ29va2llc0FnZUNh
cFRpbWUgeyAyNF9oICogNyB9OwogICAgICAgICBib29sIHNob3VsZE5vdGlmeVBhZ2VzV2hlbkRh
dGFSZWNvcmRzV2VyZVNjYW5uZWQgeyBmYWxzZSB9OwogICAgICAgICBib29sIHNob3VsZENsYXNz
aWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsIHsgdHJ1ZSB9OwogICAgICAgICBi
b29sIHNob3VsZFN1Ym1pdFRlbGVtZXRyeSB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmlu
ZGV4IDZhZDA3OWQ1MGM0OWJiY2ZjYWUzZWZlNjIxNjQ0MTQ4ZjBmN2NiN2QuLmI0ZWFmNWE4NWJh
NjYwYjUwZTIzY2IyMWI4MGJmN2MzNmIzYTM3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAt
MzMxLDEyICszMzEsOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6ZGlk
Q3JlYXRlTmV0d29ya1Byb2Nlc3MoKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX21l
bW9yeVN0b3JlLT51cGRhdGVDb29raWVCbG9ja2luZyhbXSgpIHsgfSk7CiAgICAgICAgIG1fbWVt
b3J5U3RvcmUtPnVwZGF0ZUNhY2hlTWF4QWdlQ2FwKCk7CisgICAgICAgIG1fbWVtb3J5U3RvcmUt
PnVwZGF0ZUNsaWVudFNpZGVDb29raWVzQWdlQ2FwKCk7CiAgICAgfSk7Ci0KLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCi0g
ICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRT
aWRlQ29va2llcyhTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzOjpZZXMsIFtd
KCkgeyB9KTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCkBAIC04NDMsNiArODM5LDIwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpzZXRDYWNoZU1heEFnZUNhcChTZWNvbmRzIHNlY29uZHMsIENvbXBs
ZXRpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OnNldENsaWVudFNpZGVDb29raWVzQWdlQ2FwKHN0ZDo6b3B0aW9uYWw8
U2Vjb25kcz4gc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgQVNTRVJUKHNl
Y29uZHMgPj0gMF9zKTsKKyAgICAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpIHsKKyAgICAgICAgbV93ZWJzaXRlRGF0YVN0
b3JlLT5zZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKHNlY29uZHMsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRp
ZgorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9y
SGFuZGxlcihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCA3NTgxMWIzYjFmMTMwY2JjMzI0NGVk
YWY3OTBiOWRiNzlkM2IyNmY5Li5hZTdkNTQ5YTJiZTc2YjFjZmM0YWM0YTEzY2Q0ZmY4Y2FlMDZk
YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMTIyLDYgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChTZWNvbmRzKTsKICAg
ICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzKTsKICAgICB2b2lkIHNldENhY2hl
TWF4QWdlQ2FwKFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9p
ZCBzZXRDbGllbnRTaWRlQ29va2llc0FnZUNhcChzdGQ6Om9wdGlvbmFsPFNlY29uZHM+LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TWF4U3RhdGlzdGljc0VudHJp
ZXMoc2l6ZV90KTsKICAgICB2b2lkIHNldFBydW5lRW50cmllc0Rvd25UbyhzaXplX3QpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCmluZGV4IDFhMjU1Yjg5NTYyZGU1ODQ0YmJmMzIyMWNjNGI3ZTgyMjJmOWM2
NDguLjEyYmM5Y2E4ODVjOWJkMzljZjA1NzVjNjA4OTYwYTgxNDRkMWZhYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCkBAIC0xMjY2LDEzICsxMjY2LDEzIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6dXBk
YXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxTdHJpCiAg
ICAgfQogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFNob3VsZENhcExpZmV0aW1lRm9y
Q2xpZW50U2lkZUNvb2tpZXMoU2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyBz
aG91bGRDYXBMaWZldGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRTaG91bGRDYXBMaWZldGltZUZvckNs
aWVudFNpZGVDb29raWVzKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25kcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gY2FsbGJh
Y2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogICAgIAogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNz
UG9vbHMoKSkgewogICAgICAgICBpZiAoYXV0byogcHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3
b3JrUHJvY2VzcygpKQotICAgICAgICAgICAgcHJvY2Vzcy0+c2V0U2hvdWxkQ2FwTGlmZXRpbWVG
b3JDbGllbnRTaWRlQ29va2llcyhtX3Nlc3Npb25JRCwgc2hvdWxkQ2FwTGlmZXRpbWUsIFtwcm9j
ZXNzUG9vbCwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYo
KV0geyB9KTsKKyAgICAgICAgICAgIHByb2Nlc3MtPnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xp
ZW50U2lkZUNvb2tpZXMobV9zZXNzaW9uSUQsIHNlY29uZHMsIFtwcm9jZXNzUG9vbCwgY2FsbGJh
Y2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaAppbmRleCBiZDU3OTEzZDM5OTQ3NDUxZDBlOTlhMGFkNWYxOGI5ODNh
ZTEwMzFlLi5mMzk3YzgxYTI4YWQ1ZDhjZDVjM2NiODE3ZmI2YTM4ZDBkNmY5N2Q3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCkBAIC03NCw4ICs3NCw2IEBAIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1Byb21wdFN0
YXR1czsKIHN0cnVjdCBQbHVnaW5Nb2R1bGVJbmZvOwogI2VuZGlmCiAKLWVudW0gY2xhc3MgU2hv
dWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyB7IE5vLCBZZXMgfTsKLQogY2xhc3Mg
V2Vic2l0ZURhdGFTdG9yZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYnNpdGVEYXRhU3RvcmU+LCBw
dWJsaWMgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIsIHB1YmxpYyBJZGVudGlmaWVkPFdlYnNp
dGVEYXRhU3RvcmU+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2Vic2l0ZURhdGFTdG9yZT4gIHsK
IHB1YmxpYzoKICAgICBjb25zdGV4cHIgc3RhdGljIHVpbnQ2NF90IGRlZmF1bHRDYWNoZVN0b3Jh
Z2VQZXJPcmlnaW5RdW90YSA9IDUwICogMTAyNCAqIDEwMjQ7CkBAIC0xMzgsNyArMTM2LDcgQEAg
cHVibGljOgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICB2b2lk
IHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zvcihjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZG9tYWluc1RvQmxvY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAg
dm9pZCBzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKFNob3VsZENhcExp
ZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VE
b21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4m
Jik7CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyh1aW50NjRfdCBwYWdlSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBkb21haW5zKT4mJik7CiAg
ICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VE
b21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wgd2FzR3JhbnRlZCk+JiYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354392</attachid>
            <date>2018-11-09 15:02:03 -0800</date>
            <delta_ts>2018-11-09 16:36:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191480-20181109150202.patch</filename>
            <type>text/plain</type>
            <size>25622</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY4M2U4NzhjNzI5OTIx
OGMwYzQ2OTk2OGU4MWI5ODFiN2QwZWY5Zi4uMjY3Nzk1Njk1ZGI1NjM5ZDBhNmNkOGUyMTJhMjNh
OGMxOTk2NDRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTExLTA5ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhYmlsaXR5IHRv
IGNvbmZpZ3VyZSBkb2N1bWVudC5jb29raWUgbGlmZXRpbWUgY2FwIHRocm91Z2ggdXNlciBkZWZh
dWx0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
NDgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTI0MDg3MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4aXN0aW5nIHRl
c3QgbWFrZXMgc3VyZSB3ZSBkb24ndCByZWdyZXNzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1h
a2VzIHRoZSBjYXBwZWQgbGlmZXRpbWUgaW4gc2Vjb25kcyBjb25maWd1cmFibGUgdGhyb3VnaAor
ICAgICAgICB1c2VyIGRlZmF1bHRzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2Nv
YS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmZpbHRlckNvb2tpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTSBjb25zdCk6CisKIDIw
MTgtMTEtMDkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtp
T1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRvciBpbiBwYXNzd29yZCBmaWVsZHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggNGQ4ODE3YjQxNjFjMDFhODc3Y2RkMGJjYzA5YWUzNzlhMWM3MmEzNS4uYmY4Zjg1NTI4ZWM0
NDkxOGMxNmJhMmQwNjg3Mzk0Nzg0MDM0YzFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAor
MjAxOC0xMS0wOSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgYWJpbGl0eSB0byBjb25maWd1cmUgZG9jdW1lbnQuY29va2llIGxpZmV0aW1lIGNhcCB0
aHJvdWdoIHVzZXIgZGVmYXVsdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MTQ4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUyNDA4NzE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFu
Z2UgbWFrZXMgdGhlIGNhcHBlZCBsaWZldGltZSBpbiBzZWNvbmRzIGNvbmZpZ3VyYWJsZSB0aHJv
dWdoCisgICAgICAgIHVzZXIgZGVmYXVsdHMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRT
aG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmVDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVl
ZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxkQ2FwTGlm
ZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmU6OnNldENsaWVudFNpZGVDb29raWVzQWdlQ2FwKToKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjp1cGRhdGVDbGll
bnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZTo6ZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAgICAg
TmV3IGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBhbGwgdGhlIHRoaW5ncyB0aGF0IG5lZWQgdG8gYmUg
ZG9uZSB3aGVuIGEgbmV0d29yaworICAgICAgICAgICAgcHJvY2VzcyBoYXMgYmVlbiBjcmVhdGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkaWRD
cmVhdGVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICAgICBOb3cganVzdCBjYWxscyB0aGUgY29y
cmVzcG9uZGluZyBmdW5jdGlvbiBvbiBpdHMgbWVtb3J5IHN0b3JlIHdoZXJlIGFsbCB0aGUKKyAg
ICAgICAgICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUgYXZhaWxhYmxlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldENsaWVudFNpZGVD
b29raWVzQWdlQ2FwKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRTaG91bGRD
YXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAyMDE4LTExLTA5ICBEYW5pZWwgQmF0ZXMg
IDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBEcmF3IGNhcHMgbG9jayBpbmRp
Y2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCBhYTllNDI4ZTM5MmVm
OWQ1OTY2MWRjNzU0ZWY3YzU1ZDAxY2JjZjQ5Li5iNGJkN2JjM2UzMjMwZWRjMDZiOGY4NjU2YjY4
ZTVjZmQzMzVhNzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0Jiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gcGFnZUlEKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3Vs
ZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwm
IHJlc291cmNlLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBwYWdlSUQpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJl
dmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVD
b29raWVzKGJvb2wgdmFsdWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2hvdWxkQ2Fw
TGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhzdGQ6Om9wdGlvbmFsPFNlY29uZHM+KTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVByZXZhbGVudERvbWFpbnMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRvbWFpbnMpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzU3RvcmFnZUFj
Y2Vzcyhjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFy
dHlEb21haW4sIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gZ2V0QWxsU3RvcmFn
ZUFjY2Vzc0VudHJpZXMoKSBjb25zdDsKQEAgLTE5Miw3ICsxOTIsNyBAQCBwcml2YXRlOgogICAg
IEhhc2hNYXA8dWludDY0X3QsIEhhc2hNYXA8dWludDY0X3QsIFN0cmluZywgRGVmYXVsdEhhc2g8
dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2
NF90Pj4sIERlZmF1bHRIYXNoPHVpbnQ2NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJv
S2V5SGFzaFRyYWl0czx1aW50NjRfdD4+IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3M7CiAg
ICAgSGFzaE1hcDx1aW50NjRfdCwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4sIERlZmF1bHRIYXNo
PHVpbnQ2NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50
NjRfdD4+IG1fcGFnZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBzdGQ6Om9wdGlvbmFsPFNl
Y29uZHM+IG1fY2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMgeyB9OwotICAgIGJv
b2wgbV9zaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzIHsgZmFsc2UgfTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IG1fYWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyB9
OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
Rk5ldC5jcHAKaW5kZXggZmZkNmE2MTRjY2U3ODE3MGE5YzE1YzdkNGE4YTMzMzZkYTRiYTQwMi4u
Y2UxYTdlYjdhZWQzZGEzYjJhZTdjODc4OTgwZWEyMzJjNDQ0YWFiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5l
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25DRk5ldC5jcHAKQEAgLTI3Myw5ICsyNzMsOSBAQCBzdGQ6Om9wdGlvbmFsPFNl
Y29uZHM+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6bWF4QWdlQ2FjaGVDYXAoY29uc3QgUmVzb3Vy
Y2VSZXF1ZQogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKGJvb2wg
dmFsdWUpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0U2hvdWxkQ2FwTGlmZXRpbWVG
b3JDbGllbnRTaWRlQ29va2llcyhzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMpCiB7Ci0g
ICAgbV9zaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzID0gdmFsdWU7CisgICAg
bV9hZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyA9IHNlY29uZHM7CiB9CiAKIHZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpzZXRQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoY29u
c3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
b2NvYS5tbQppbmRleCBhOWYyNTg1MTIyZGEzZmI0MzdjNWNmZTcyM2ZhYzY3Yjc2ZjYyMTA1Li41
ZTQzNjdkZmY3OGNkMGFkYWEzOThkYzJkNTE0MjM2Y2FiNTVlMjYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KQEAgLTI2MCwxMyArMjYwLDEyIEBAIHN0YXRpYyBOU0Fy
cmF5ICpodHRwQ29va2llc0ZvclVSTChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3Jh
Z2UsIE5TVVJMICpmCiAgICAgcmV0dXJuIGNvb2tpZXNGb3JVUkwobnNDb29raWVTdG9yYWdlLmdl
dCgpLCB1cmwsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbyk7CiB9CiAKLXN0YXRpYyBSZXRhaW5Q
dHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcywgYm9v
bCBzaG91bGRDYXBMaWZldGltZSkKK3N0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29v
a2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcywgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBj
YXBwZWRMaWZldGltZSkKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNz
UHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAgICAgTlNVSW50ZWdlciBjb3VudCA9
IFt1bmZpbHRlcmVkQ29va2llcyBjb3VudF07CiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5
PiBmaWx0ZXJlZENvb2tpZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRX
aXRoQ2FwYWNpdHk6Y291bnRdKTsKIAotICAgIGNvbnN0IE5TVGltZUludGVydmFsIHNlY29uZHNQ
ZXJXZWVrID0gNyAqIDI0ICogNjAgKiA2MDsKICAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkg
PCBjb3VudDsgKytpKSB7CiAgICAgICAgIE5TSFRUUENvb2tpZSAqY29va2llID0gKE5TSFRUUENv
b2tpZSAqKVt1bmZpbHRlcmVkQ29va2llcyBvYmplY3RBdEluZGV4OmldOwogCkBAIC0yODEsMTAg
KzI4MCwxMCBAQCBzdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk+IGZpbHRlckNvb2tpZXMoTlNBcnJh
eSAqdW5maWx0ZXJlZENvb2tpZXMsIGJvb2wgc2hvdWxkQwogICAgICAgICAgICAgY29udGludWU7
CiAKICAgICAgICAgLy8gQ2FwIGxpZmV0aW1lIG9mIHBlcnNpc3RlbnQsIGNsaWVudC1zaWRlIGNv
b2tpZXMgdG8gYSB3ZWVrLgotICAgICAgICBpZiAoc2hvdWxkQ2FwTGlmZXRpbWUgJiYgIVtjb29r
aWUgaXNTZXNzaW9uT25seV0pIHsKLSAgICAgICAgICAgIGlmICghY29va2llLmV4cGlyZXNEYXRl
IHx8IGNvb2tpZS5leHBpcmVzRGF0ZS50aW1lSW50ZXJ2YWxTaW5jZU5vdyA+IHNlY29uZHNQZXJX
ZWVrKSB7CisgICAgICAgIGlmIChjYXBwZWRMaWZldGltZSAmJiAhW2Nvb2tpZSBpc1Nlc3Npb25P
bmx5XSkgeworICAgICAgICAgICAgaWYgKCFjb29raWUuZXhwaXJlc0RhdGUgfHwgY29va2llLmV4
cGlyZXNEYXRlLnRpbWVJbnRlcnZhbFNpbmNlTm93ID4gY2FwcGVkTGlmZXRpbWUudmFsdWUoKS5z
ZWNvbmRzKCkpIHsKICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFy
eTxOU0hUVFBDb29raWVQcm9wZXJ0eUtleSwgaWQ+PiBwcm9wZXJ0aWVzID0gYWRvcHROUyhbW2Nv
b2tpZSBwcm9wZXJ0aWVzXSBtdXRhYmxlQ29weV0pOwotICAgICAgICAgICAgICAgIFJldGFpblB0
cjxOU0RhdGU+IGRhdGVJbkFXZWVrID0gYWRvcHROUyhbW05TRGF0ZSBhbGxvY10gaW5pdFdpdGhU
aW1lSW50ZXJ2YWxTaW5jZU5vdzpzZWNvbmRzUGVyV2Vla10pOworICAgICAgICAgICAgICAgIFJl
dGFpblB0cjxOU0RhdGU+IGRhdGVJbkFXZWVrID0gYWRvcHROUyhbW05TRGF0ZSBhbGxvY10gaW5p
dFdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzpjYXBwZWRMaWZldGltZS52YWx1ZSgpLnNlY29uZHMo
KV0pOwogICAgICAgICAgICAgICAgIFtwcm9wZXJ0aWVzIHNldE9iamVjdDpkYXRlSW5BV2Vlay5n
ZXQoKSBmb3JLZXk6TlNIVFRQQ29va2llRXhwaXJlc107CiAgICAgICAgICAgICAgICAgY29va2ll
ID0gW05TSFRUUENvb2tpZSBjb29raWVXaXRoUHJvcGVydGllczpwcm9wZXJ0aWVzLmdldCgpXTsK
ICAgICAgICAgICAgIH0KQEAgLTQwNSw3ICs0MDQsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1l
UwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFJl
dGFpblB0cjxOU0FycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBmaWx0ZXJDb29raWVzKHVuZmlsdGVy
ZWRDb29raWVzLCBtX3Nob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMpOworICAg
IFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBmaWx0ZXJDb29raWVzKHVuZmls
dGVyZWRDb29raWVzLCBtX2FnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKTsKICNlbHNlCiAgICAg
UmV0YWluUHRyPE5TQXJyYXk+IGZpbHRlcmVkQ29va2llcyA9IGZpbHRlckNvb2tpZXModW5maWx0
ZXJlZENvb2tpZXMsIGZhbHNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAwNzNmMzRmM2FmMWNhYjFkODIxMWE0YTRj
ZDhjNTg5MzJiNjUxYjJlLi4wNDI0Yzk1ODBjZWY4ZTgwMWU4MGE3YmY5NjVkYmJiOGU1ZDhlN2Q2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cApAQCAtNTEwLDEwICs1MTAsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6dXBkYXRlUHJldmFs
ZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKFBBTDo6U2Vzc2lvbklEIHNlc3MKICAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpEaWRVcGRhdGVCbG9ja0Nvb2tpZXMoY29udGV4dElkKSwgMCk7CiB9CiAKLXZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCB1aW50NjRfdCBjb250ZXh0SWQpCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBzZWNvbmRz
LCB1aW50NjRfdCBjb250ZXh0SWQpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkK
LSAgICAgICAgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLT5zZXRTaG91bGRDYXBMaWZldGltZUZvckNs
aWVudFNpZGVDb29raWVzKHZhbHVlKTsKKyAgICAgICAgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLT5z
ZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKHNlY29uZHMpOwogICAgIHBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OkRpZFNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoY29udGV4dElk
KSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAppbmRleCBiYjBjZTgzNWZiMmI0OWI5N2Y5YmI0MWRjOWFmODQ2MzNjOTU2YjE2Li5iNDRh
ZjIyZDFjMjVkMDUxODgwYzI4ODYyZTVlOTI5MDQ1Y2Q0OTczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xNTgsNyArMTU4LDcgQEAgcHVi
bGljOgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICB2b2lkIHVw
ZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRCwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2NrLCB1aW50NjRfdCBjb250ZXh0SWQpOwot
ICAgIHZvaWQgc2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNl
c3Npb25JRCwgYm9vbCB2YWx1ZSwgdWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIHNldFNo
b3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4sIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBoYXNTdG9y
YWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VE
b21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZ2V0QWxsU3Rv
cmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAg
ICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
cmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBjb250ZXh0
SWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggN2ZiYjA3NDk0NDllMDY0YmI0YzRiZDBiZGU4ZmE0MmQx
OWE2ODNlZS4uOTJhNjc2ZDY3OTllYjBmODk0NjMwZmZiNWU5ZDI5ODc3N2NjMTY3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC03OSw3ICs3OSw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIHsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAg
ICAgVXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgVmVjdG9yPFN0cmluZz4gZG9tYWluc1RvQmxvY2ssIHVpbnQ2NF90IGNvbnRl
eHRJZCkKLSAgICBTZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgdWludDY0X3QgY29udGV4dElkKQorICAg
IFNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMsIHVpbnQ2NF90IGNvbnRl
eHRJZCkKICAgICBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBTdHJpbmcgcmVzb3VyY2VEb21haW4sIFN0cmluZyBmaXJzdFBhcnR5RG9tYWluLCB1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBH
ZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2
NF90IGNvbnRleHRJZCkKICAgICBHcmFudFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBTdHJpbmcgcmVzb3VyY2VEb21haW4sIFN0cmluZyBmaXJzdFBhcnR5RG9tYWluLCBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90
IGNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlQ29jb2EubW0K
aW5kZXggOGQ5ZDFiYjI2Mjg5NjJiZjVjNWEwZmU5ZmIyYmZjNTU5NzY4MjBhMS4uZjEzZTExMzM4
Njc5MjBiYjhjZTk3OTY1ZDRjMDEyNWMxMDg0YmJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01lbW9yeVN0b3JlQ29jb2EubW0KQEAgLTU2LDYgKzU2LDEwIEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCkK
ICAgICAgICAgU2Vjb25kcyBjYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBkb3VibGVGb3JLZXk6QCJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzQ2FjaGVNYXhBZ2VDYXAiXSk7CiAgICAgICAgIGlmIChjYWNoZU1heEFn
ZUNhcEZvclByZXZhbGVudFJlc291cmNlcyA+IDBfcyAmJiBjYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyA8PSAyNF9oICogMzY1KQogICAgICAgICAgICAgc2V0Q2FjaGVNYXhBZ2VD
YXAoY2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMpOworICAgICAgICAKKyAgICAg
ICAgU2Vjb25kcyBjbGllbnRTaWRlQ29va2llc0FnZUNhcChbW05TVXNlckRlZmF1bHRzIHN0YW5k
YXJkVXNlckRlZmF1bHRzXSBkb3VibGVGb3JLZXk6QCJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xp
ZW50U2lkZUNvb2tpZXNBZ2VDYXAiXSk7CisgICAgICAgIGlmIChjbGllbnRTaWRlQ29va2llc0Fn
ZUNhcCA+IDBfcyAmJiBjbGllbnRTaWRlQ29va2llc0FnZUNhcCA8PSAyNF9oICogMzY1KQorICAg
ICAgICAgICAgc2V0Q2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoY2xpZW50U2lkZUNvb2tpZXNBZ2VD
YXApOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzNzgwZjIyNGVkOThkYWRhYTAw
MzViOGE3ZjFlMTMyMzE0MmRjZGJjLi5kNzQ2NTRjOWIxZmFiMGRkMTE4MmE5OGUxZjgzZWZlYjlk
ZGMwYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTQxNSw3ICs0MTUsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmRpZFVwZGF0ZUJsb2NrQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQog
ICAgIG1fdXBkYXRlQmxvY2tDb29raWVzQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lkKSgpOwog
fQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xp
ZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTaG91bGRDYXBMaWZldGlt
ZUZvckNsaWVudFNpZGVDb29raWVzIHNob3VsZENhcExpZmV0aW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNz
YWdlKCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTQyNyw3ICs0MjcsNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50
U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwog
ICAgIH0pOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRy
eSk7Ci0gICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFNob3VsZENhcExpZmV0
aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoc2Vzc2lvbklELCBzaG91bGRDYXBMaWZldGltZSA9PSBT
aG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzOjpZZXMsIGNhbGxiYWNrSWQpLCAw
KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U2hvdWxkQ2FwTGlmZXRp
bWVGb3JDbGllbnRTaWRlQ29va2llcyhzZXNzaW9uSUQsIHNlY29uZHMsIGNhbGxiYWNrSWQpLCAw
KTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRTZXRTaG91bGRDYXBMaWZldGlt
ZUZvckNsaWVudFNpZGVDb29raWVzKHVpbnQ2NF90IGNhbGxiYWNrSWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4
IGRjOWFkZDFhZGFmN2Y1MjVhOGZiNjRiNTZlMDNiNWUxYTQ2NDU4MzUuLjY5YmY2YjZmZDg5NDY1
ZTJjYmE3NTFlNzA5YzBiZTBmNmU3YWQ4OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC03OSw3ICs3OSw3IEBA
IHB1YmxpYzoKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdm9p
ZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jaywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNv
b2tpZXMoUEFMOjpTZXNzaW9uSUQsIFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tp
ZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRTaG91bGRDYXBM
aWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFs
PFNlY29uZHM+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgaGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHJlc291cmNl
RG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFj
ayk7CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGRvbWFpbnMpPiYmKTsKICAg
ICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKaW5kZXgg
NmQ5OWJlOThhYzFhMzAzMDk4ZjdjNDBkOWFkMzAyMzk2MjU0MGFiMC4uNmY5OWRhYjE2OTdhZDJj
N2QwODhjM2ZlYTYwYjc5Nzc0YmE1MWIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCkBA
IC04NDgsNiArODQ4LDI0IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
Ojp1cGRhdGVDYWNoZU1heEFnZUNhcCgpCiAgICAgfSk7CiB9CiAKK3ZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlOjpzZXRDbGllbnRTaWRlQ29va2llc0FnZUNhcChTZWNvbmRz
IHNlY29uZHMpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisgICAgQVNTRVJU
KHNlY29uZHMgPj0gMF9zKTsKKyAgICAKKyAgICBtX3BhcmFtZXRlcnMuY2xpZW50U2lkZUNvb2tp
ZXNBZ2VDYXBUaW1lID0gc2Vjb25kczsKKyAgICB1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNh
cCgpOworfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6dXBkYXRl
Q2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOworICAgIAorICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbc3RvcmUgPSBtYWtlUmVm
KG1fc3RvcmUpLCBzZWNvbmRzID0gbV9wYXJhbWV0ZXJzLmNsaWVudFNpZGVDb29raWVzQWdlQ2Fw
VGltZV0gKCkgeworICAgICAgICBzdG9yZS0+c2V0Q2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoc2Vj
b25kcywgW10geyB9KTsKKyAgICB9KTsKK30KKwogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6OnNob3VsZFJlbW92ZURhdGFSZWNvcmRzKCkgY29uc3QKIHsKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTEyNjQsNCArMTI4MiwxMyBAQCB2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21w
bGV0aW9uSGFuZGxlcgogICAgIH0pOwogfQogCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6ZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MoKQoreworICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOworCisgICAgdXBkYXRlQ29va2llQmxvY2tpbmcoW10oKSB7IH0pOwor
ICAgIHVwZGF0ZUNhY2hlTWF4QWdlQ2FwKCk7CisgICAgdXBkYXRlQ2xpZW50U2lkZUNvb2tpZXNB
Z2VDYXAoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5o
CmluZGV4IGQyZTg4NmU2ZjJiMGM5ODQ2NWJmOWY0MDU2NTNlYWFlNmU4OGU2NzYuLjEyNmQ5YzMz
NTQ2MDI2MzM4MjhhNDVhYzBlOWFiNzkyYjExZTE1OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5o
CkBAIC0xMTIsOCArMTEyLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGltZVRvTGl2ZVVzZXJJ
bnRlcmFjdGlvbihTZWNvbmRzKTsKICAgICB2b2lkIHNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFS
ZWNvcmRzUmVtb3ZhbChTZWNvbmRzKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShT
ZWNvbmRzKTsKLSAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFNlY29uZHMpOwotICAgIHZvaWQg
dXBkYXRlQ2FjaGVNYXhBZ2VDYXAoKTsKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUoYm9vbCk7CiAgICAgYm9vbCBpc0RlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2RlYnVnTW9kZUVuYWJsZWQ7IH07CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNv
dXJjZUZvckRlYnVnTW9kZShjb25zdCBTdHJpbmcmIGRvbWFpbik7CkBAIC0xMzAsNiArMTI4LDgg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBTdHJpbmcmIHByaW1hcnlE
b21haW4sIFNlY29uZHMpOwogCisgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpOwor
CiBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIHNob3VsZEJsb2NrQW5kS2VlcENvb2tpZXMoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIHN0YXRpYyBib29sIHNo
b3VsZEJsb2NrQW5kUHVyZ2VDb29raWVzKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3MmKTsKQEAgLTE1Miw2ICsxNTIsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBydW5lU3Rh
dGlzdGljc0lmTmVlZGVkKCk7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYg
ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbihjb25zdCBTdHJpbmcmKTsK
ICAgICBWZWN0b3I8U3RyaW5nPiB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc1RvUmVtb3Zl
V2Vic2l0ZURhdGFGb3IoKTsKKyAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFNlY29uZHMpOwor
ICAgIHZvaWQgdXBkYXRlQ2FjaGVNYXhBZ2VDYXAoKTsKKyAgICB2b2lkIHNldENsaWVudFNpZGVD
b29raWVzQWdlQ2FwKFNlY29uZHMpOworICAgIHZvaWQgdXBkYXRlQ2xpZW50U2lkZUNvb2tpZXNB
Z2VDYXAoKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgcmVnaXN0ZXJVc2VyRGVm
YXVsdHNJZk5lZWRlZCgpOwpAQCAtMTY0LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIFNl
Y29uZHMgbWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsIHsgMV9oIH07CiAgICAg
ICAgIFNlY29uZHMgZ3JhbmRmYXRoZXJpbmdUaW1lIHsgMjRfaCAqIDcgfTsKICAgICAgICAgU2Vj
b25kcyBjYWNoZU1heEFnZUNhcFRpbWUgeyAyNF9oICogNyB9OworICAgICAgICBTZWNvbmRzIGNs
aWVudFNpZGVDb29raWVzQWdlQ2FwVGltZSB7IDI0X2ggKiA3IH07CiAgICAgICAgIGJvb2wgc2hv
dWxkTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCB7IGZhbHNlIH07CiAgICAg
ICAgIGJvb2wgc2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwg
eyB0cnVlIH07CiAgICAgICAgIGJvb2wgc2hvdWxkU3VibWl0VGVsZW1ldHJ5IHsgdHJ1ZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggNmFkMDc5ZDUwYzQ5YmJjZmNhZTNlZmU2MjE2NDQxNDhm
MGY3Y2I3ZC4uODhiYzQxNWQ3NjhmMjRlM2Q1NjlkZTIxMmViYWQ5MjFjZWEwZTlkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuY3BwCkBAIC0zMjksMTQgKzMyOSw4IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpCiAgICAgcG9zdFRhc2so
W3RoaXNdIHsKICAgICAgICAgaWYgKCFtX21lbW9yeVN0b3JlKQogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBtX21lbW9yeVN0b3JlLT51cGRhdGVDb29raWVCbG9ja2luZyhbXSgpIHsgfSk7
Ci0gICAgICAgIG1fbWVtb3J5U3RvcmUtPnVwZGF0ZUNhY2hlTWF4QWdlQ2FwKCk7CisgICAgICAg
IG1fbWVtb3J5U3RvcmUtPmRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgfSk7Ci0KLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGlmIChtX3dlYnNpdGVEYXRh
U3RvcmUpCi0gICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+c2V0U2hvdWxkQ2FwTGlmZXRpbWVG
b3JDbGllbnRTaWRlQ29va2llcyhTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVz
OjpZZXMsIFtdKCkgeyB9KTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04NDMsNiArODM3LDIwIEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNoZU1heEFnZUNhcChTZWNvbmRzIHNlY29u
ZHMsIENvbXBsZXRpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAordm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldENsaWVudFNpZGVDb29raWVzQWdlQ2FwKHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAg
QVNTRVJUKHNlY29uZHMgPj0gMF9zKTsKKyAgICAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpIHsKKyAgICAgICAgbV93ZWJz
aXRlRGF0YVN0b3JlLT5zZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKHNl
Y29uZHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyNlbmRpZgorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tD
b29raWVzRm9ySGFuZGxlcihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCA3NTgxMWIzYjFmMTMw
Y2JjMzI0NGVkYWY3OTBiOWRiNzlkM2IyNmY5Li5hZTdkNTQ5YTJiZTc2YjFjZmM0YWM0YTEzY2Q0
ZmY4Y2FlMDZkYTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMTIyLDYgKzEyMiw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChTZWNv
bmRzKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzKTsKICAgICB2b2lk
IHNldENhY2hlTWF4QWdlQ2FwKFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBzZXRDbGllbnRTaWRlQ29va2llc0FnZUNhcChzdGQ6Om9wdGlvbmFsPFNlY29u
ZHM+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TWF4U3RhdGlz
dGljc0VudHJpZXMoc2l6ZV90KTsKICAgICB2b2lkIHNldFBydW5lRW50cmllc0Rvd25UbyhzaXpl
X3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDFhMjU1Yjg5NTYyZGU1ODQ0YmJmMzIyMWNjNGI3
ZTgyMjJmOWM2NDguLjEyYmM5Y2E4ODVjOWJkMzljZjA1NzVjNjA4OTYwYTgxNDRkMWZhYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCkBAIC0xMjY2LDEzICsxMjY2LDEzIEBAIHZvaWQgV2Vic2l0ZURhdGFT
dG9yZTo6dXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKGNvbnN0IFZlY3Rv
cjxTdHJpCiAgICAgfQogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFNob3VsZENhcExp
ZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoU2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRl
Q29va2llcyBzaG91bGRDYXBMaWZldGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRTaG91bGRDYXBMaWZl
dGltZUZvckNsaWVudFNpZGVDb29raWVzKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25kcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1
dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIAogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wg
OiBwcm9jZXNzUG9vbHMoKSkgewogICAgICAgICBpZiAoYXV0byogcHJvY2VzcyA9IHByb2Nlc3NQ
b29sLT5uZXR3b3JrUHJvY2VzcygpKQotICAgICAgICAgICAgcHJvY2Vzcy0+c2V0U2hvdWxkQ2Fw
TGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhtX3Nlc3Npb25JRCwgc2hvdWxkQ2FwTGlmZXRp
bWUsIFtwcm9jZXNzUG9vbCwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9y
LmNvcHlSZWYoKV0geyB9KTsKKyAgICAgICAgICAgIHByb2Nlc3MtPnNldFNob3VsZENhcExpZmV0
aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMobV9zZXNzaW9uSUQsIHNlY29uZHMsIFtwcm9jZXNzUG9v
bCwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBiZDU3OTEzZDM5OTQ3NDUxZDBlOTlhMGFk
NWYxOGI5ODNhZTEwMzFlLi5mMzk3YzgxYTI4YWQ1ZDhjZDVjM2NiODE3ZmI2YTM4ZDBkNmY5N2Q3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oCkBAIC03NCw4ICs3NCw2IEBAIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vz
c1Byb21wdFN0YXR1czsKIHN0cnVjdCBQbHVnaW5Nb2R1bGVJbmZvOwogI2VuZGlmCiAKLWVudW0g
Y2xhc3MgU2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyB7IE5vLCBZZXMgfTsK
LQogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYnNpdGVEYXRh
U3RvcmU+LCBwdWJsaWMgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIsIHB1YmxpYyBJZGVudGlm
aWVkPFdlYnNpdGVEYXRhU3RvcmU+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2Vic2l0ZURhdGFT
dG9yZT4gIHsKIHB1YmxpYzoKICAgICBjb25zdGV4cHIgc3RhdGljIHVpbnQ2NF90IGRlZmF1bHRD
YWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YSA9IDUwICogMTAyNCAqIDEwMjQ7CkBAIC0xMzgsNyAr
MTM2LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
ICAgICB2b2lkIHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zvcihjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7Ci0gICAgdm9pZCBzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKFNo
b3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgdm9pZCBzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29r
aWVzKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFN0cmluZyYg
cmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFz
QWNjZXNzKT4mJik7CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyh1aW50NjRf
dCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBkb21haW5z
KT4mJik7CiAgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN0cmluZyYg
cmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wgd2FzR3JhbnRlZCk+JiYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354411</attachid>
            <date>2018-11-09 16:36:16 -0800</date>
            <delta_ts>2018-11-09 16:44:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191480-20181109163615.patch</filename>
            <type>text/plain</type>
            <size>27340</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY4M2U4NzhjNzI5OTIx
OGMwYzQ2OTk2OGU4MWI5ODFiN2QwZWY5Zi4uNWJlYTIxYTZmZTI5NTk3Y2VkMThkYjg2NDRkOTlh
MzMzNDNhM2EwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTExLTA5ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhYmlsaXR5IHRv
IGNvbmZpZ3VyZSBkb2N1bWVudC5jb29raWUgbGlmZXRpbWUgY2FwIHRocm91Z2ggdXNlciBkZWZh
dWx0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
NDgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTI0MDg3MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4aXN0aW5nIHRl
c3QgbWFrZXMgc3VyZSB3ZSBkb24ndCByZWdyZXNzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1h
a2VzIHRoZSBjYXBwZWQgbGlmZXRpbWUgaW4gc2Vjb25kcyBjb25maWd1cmFibGUgdGhyb3VnaAor
ICAgICAgICB1c2VyIGRlZmF1bHRzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVu
dFNpZGVDb29raWVzKTogRGVsZXRlZC4KKyAgICAgICAgICAgIFJlbmFtZWQgc2V0QWdlQ2FwRm9y
Q2xpZW50U2lkZUNvb2tpZXMoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6ZmlsdGVyQ29v
a2llcyk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tp
ZXNGcm9tRE9NIGNvbnN0KToKKwogMjAxOC0xMS0wOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9yIGluIHBh
c3N3b3JkIGZpZWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZDg4MTdiNDE2MWMwMWE4NzdjZGQwYmNjMDlhZTM3
OWExYzcyYTM1Li40ZjcwMWYzZjA1N2Q1ODdjYzlkMTk5MDgzOGY5NDJhOGRmNTUyMzU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTExLTA5ICBKb2huIFdpbGFuZGVyICA8d2lsYW5k
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhYmlsaXR5IHRvIGNvbmZpZ3VyZSBkb2N1bWVu
dC5jb29raWUgbGlmZXRpbWUgY2FwIHRocm91Z2ggdXNlciBkZWZhdWx0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNDgwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80NTI0MDg3MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyB0aGUgY2FwcGVkIGxpZmV0aW1lIGluIHNl
Y29uZHMgY29uZmlndXJhYmxlIHRocm91Z2gKKyAgICAgICAgdXNlciBkZWZhdWx0cy4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50
U2lkZUNvb2tpZXMpOiBEZWxldGVkLgorICAgICAgICAgICAgUmVuYW1lZCBzZXRBZ2VDYXBGb3JD
bGllbnRTaWRlQ29va2llcygpLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6OnJlZ2lzdGVyVXNlckRlZmF1bHRzSWZOZWVkZWQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFNldEFnZUNhcEZvckNsaWVu
dFNpZGVDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0
U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyk6IERlbGV0ZWQuCisgICAgICAg
ICAgICBSZW5hbWVkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKCkuCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xp
ZW50U2lkZUNvb2tpZXMpOiBEZWxldGVkLgorICAgICAgICAgICAgUmVuYW1lZCBkaWRTZXRBZ2VD
YXBGb3JDbGllbnRTaWRlQ29va2llcygpLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKToK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjp1cGRh
dGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6ZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MpOgorICAgICAg
ICAgICAgTmV3IGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBhbGwgdGhlIHRoaW5ncyB0aGF0IG5lZWQg
dG8gYmUgZG9uZSB3aGVuIGEgbmV0d29yaworICAgICAgICAgICAgcHJvY2VzcyBoYXMgYmVlbiBj
cmVhdGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpkaWRDcmVhdGVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICAgICBOb3cganVzdCBjYWxscyB0
aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbiBvbiBpdHMgbWVtb3J5IHN0b3JlIHdoZXJlIGFsbCB0
aGUKKyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUgYXZhaWxhYmxlLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29r
aWVzKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0U2hvdWxkQ2FwTGlm
ZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyk6IERlbGV0ZWQuCisgICAgICAgICAgICBSZW5hbWVk
IHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKCkuCisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKwogMjAxOC0xMS0wOSAgRGFuaWVsIEJhdGVz
ICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5k
aWNhdG9yIGluIHBhc3N3b3JkIGZpZWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYWE5ZTQyOGUzOTJl
ZjlkNTk2NjFkYzc1NGVmN2M1NWQwMWNiY2Y0OS4uZWZmN2QzNzFjODkxYWMxNGZiNTYwNTFiYTVk
NjYzZTFlM2E3MTA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IHBhZ2VJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91
bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJM
JiByZXNvdXJjZSwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gcGFnZUlEKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBy
ZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zvcihjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRl
Q29va2llcyhib29sIHZhbHVlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFnZUNhcEZv
ckNsaWVudFNpZGVDb29raWVzKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4pOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZG9tYWlucyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0
IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKSBjb25zdDsK
ICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBnZXRBbGxTdG9yYWdlQWNjZXNzRW50
cmllcygpIGNvbnN0OwpAQCAtMTkyLDcgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDx1
aW50NjRfdCwgSGFzaE1hcDx1aW50NjRfdCwgU3RyaW5nLCBEZWZhdWx0SGFzaDx1aW50NjRfdD46
Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0X3Q+PiwgRGVm
YXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJh
aXRzPHVpbnQ2NF90Pj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBIYXNoTWFw
PHVpbnQ2NF90LCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+
OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gbV9w
YWdlc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbV9j
YWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyB7IH07Ci0gICAgYm9vbCBtX3Nob3Vs
ZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyBmYWxzZSB9OworICAgIHN0ZDo6b3B0
aW9uYWw8U2Vjb25kcz4gbV9hZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyB7IH07CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcApp
bmRleCBmZmQ2YTYxNGNjZTc4MTcwYTljMTVjN2Q0YThhMzMzNmRhNGJhNDAyLi40YjZkNDNiNDkw
NzkyZWY5NjQyYTgyMGQxM2NlYmZiMDgyYTlmNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bkNGTmV0LmNwcApAQCAtMjczLDkgKzI3Myw5IEBAIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjptYXhBZ2VDYWNoZUNhcChjb25zdCBSZXNvdXJjZVJlcXVlCiAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoYm9vbCB2YWx1ZSkKK3Zv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhz
dGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMpCiB7Ci0gICAgbV9zaG91bGRDYXBMaWZldGlt
ZUZvckNsaWVudFNpZGVDb29raWVzID0gdmFsdWU7CisgICAgbV9hZ2VDYXBGb3JDbGllbnRTaWRl
Q29va2llcyA9IHNlY29uZHM7CiB9CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRQ
cmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRv
bWFpbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQppbmRleCBhOWYyNTg1
MTIyZGEzZmI0MzdjNWNmZTcyM2ZhYzY3Yjc2ZjYyMTA1Li5lMTNlYjM3YzgzOWJkMzViNzMxNzBm
ZGViMTI5M2I2NGU3OTE2NGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2Eu
bW0KQEAgLTI2MCwxMyArMjYwLDEyIEBAIHN0YXRpYyBOU0FycmF5ICpodHRwQ29va2llc0ZvclVS
TChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UsIE5TVVJMICpmCiAgICAgcmV0
dXJuIGNvb2tpZXNGb3JVUkwobnNDb29raWVTdG9yYWdlLmdldCgpLCB1cmwsIGZpcnN0UGFydHks
IHNhbWVTaXRlSW5mbyk7CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29v
a2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcywgYm9vbCBzaG91bGRDYXBMaWZldGltZSkK
K3N0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRl
cmVkQ29va2llcywgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBjYXBwZWRMaWZldGltZSkKIHsKICAg
ICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NS
YXdDb29raWVzKSk7CiAgICAgTlNVSW50ZWdlciBjb3VudCA9IFt1bmZpbHRlcmVkQ29va2llcyBj
b3VudF07CiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBh
ZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Y291bnRdKTsK
IAotICAgIGNvbnN0IE5TVGltZUludGVydmFsIHNlY29uZHNQZXJXZWVrID0gNyAqIDI0ICogNjAg
KiA2MDsKICAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAg
ICAgIE5TSFRUUENvb2tpZSAqY29va2llID0gKE5TSFRUUENvb2tpZSAqKVt1bmZpbHRlcmVkQ29v
a2llcyBvYmplY3RBdEluZGV4OmldOwogCkBAIC0yODEsMTAgKzI4MCwxMCBAQCBzdGF0aWMgUmV0
YWluUHRyPE5TQXJyYXk+IGZpbHRlckNvb2tpZXMoTlNBcnJheSAqdW5maWx0ZXJlZENvb2tpZXMs
IGJvb2wgc2hvdWxkQwogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgLy8gQ2FwIGxp
ZmV0aW1lIG9mIHBlcnNpc3RlbnQsIGNsaWVudC1zaWRlIGNvb2tpZXMgdG8gYSB3ZWVrLgotICAg
ICAgICBpZiAoc2hvdWxkQ2FwTGlmZXRpbWUgJiYgIVtjb29raWUgaXNTZXNzaW9uT25seV0pIHsK
LSAgICAgICAgICAgIGlmICghY29va2llLmV4cGlyZXNEYXRlIHx8IGNvb2tpZS5leHBpcmVzRGF0
ZS50aW1lSW50ZXJ2YWxTaW5jZU5vdyA+IHNlY29uZHNQZXJXZWVrKSB7CisgICAgICAgIGlmIChj
YXBwZWRMaWZldGltZSAmJiAhW2Nvb2tpZSBpc1Nlc3Npb25Pbmx5XSkgeworICAgICAgICAgICAg
aWYgKCFjb29raWUuZXhwaXJlc0RhdGUgfHwgY29va2llLmV4cGlyZXNEYXRlLnRpbWVJbnRlcnZh
bFNpbmNlTm93ID4gY2FwcGVkTGlmZXRpbWUtPnNlY29uZHMoKSkgewogICAgICAgICAgICAgICAg
IFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PE5TSFRUUENvb2tpZVByb3BlcnR5S2V5LCBp
ZD4+IHByb3BlcnRpZXMgPSBhZG9wdE5TKFtbY29va2llIHByb3BlcnRpZXNdIG11dGFibGVDb3B5
XSk7Ci0gICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TRGF0ZT4gZGF0ZUluQVdlZWsgPSBhZG9w
dE5TKFtbTlNEYXRlIGFsbG9jXSBpbml0V2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OnNlY29uZHNQ
ZXJXZWVrXSk7CisgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TRGF0ZT4gZGF0ZUluQVdlZWsg
PSBhZG9wdE5TKFtbTlNEYXRlIGFsbG9jXSBpbml0V2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OmNh
cHBlZExpZmV0aW1lLT5zZWNvbmRzKCldKTsKICAgICAgICAgICAgICAgICBbcHJvcGVydGllcyBz
ZXRPYmplY3Q6ZGF0ZUluQVdlZWsuZ2V0KCkgZm9yS2V5Ok5TSFRUUENvb2tpZUV4cGlyZXNdOwog
ICAgICAgICAgICAgICAgIGNvb2tpZSA9IFtOU0hUVFBDb29raWUgY29va2llV2l0aFByb3BlcnRp
ZXM6cHJvcGVydGllcy5nZXQoKV07CiAgICAgICAgICAgICB9CkBAIC00MDUsNyArNDA0LDcgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVMKICNlbmRpZgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKLSAgICBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyZWRDb29raWVzID0g
ZmlsdGVyQ29va2llcyh1bmZpbHRlcmVkQ29va2llcywgbV9zaG91bGRDYXBMaWZldGltZUZvckNs
aWVudFNpZGVDb29raWVzKTsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyZWRDb29raWVz
ID0gZmlsdGVyQ29va2llcyh1bmZpbHRlcmVkQ29va2llcywgbV9hZ2VDYXBGb3JDbGllbnRTaWRl
Q29va2llcyk7CiAjZWxzZQogICAgIFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJlZENvb2tpZXMg
PSBmaWx0ZXJDb29raWVzKHVuZmlsdGVyZWRDb29raWVzLCBmYWxzZSk7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMDcz
ZjM0ZjNhZjFjYWIxZDgyMTFhNGE0Y2Q4YzU4OTMyYjY1MWIyZS4uMTdiMDE2NzcyNDY1MGMyZWQz
YmI2ZmEzZDlkYzg1ZmI3MDE5ZDA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTUxMCwxMSArNTEwLDExIEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNl
c3Npb25JRCBzZXNzCiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkVXBkYXRlQmxvY2tDb29raWVzKGNvbnRleHRJZCks
IDApOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRDYXBMaWZldGltZUZvckNs
aWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgdWlu
dDY0X3QgY29udGV4dElkKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0QWdlQ2FwRm9yQ2xpZW50
U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29u
ZHM+IHNlY29uZHMsIHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBpZiAoYXV0byogbmV0d29y
a1N0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihz
ZXNzaW9uSUQpKQotICAgICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24tPnNldFNob3VsZENhcExp
ZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXModmFsdWUpOwotICAgIHBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRpZFNldFNob3Vs
ZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoY29udGV4dElkKSwgMCk7CisgICAgICAg
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoc2Vj
b25kcyk7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6RGlkU2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoY29udGV4
dElkKSwgMCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JG
cmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21h
aW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgcGFnZUlELCB1aW50NjRfdCBjb250ZXh0SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYmIwY2U4MzVmYjJiNDliOTdmOWJiNDFk
YzlhZjg0NjMzYzk1NmIxNi4uZGM0MTI1MzljZTkzNDA3NTAwMThlNjNmYzc1NGI2NzQ4MDQyMGFl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApA
QCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCiAgICAgdm9pZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNG
b3IoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jaywg
dWludDY0X3QgY29udGV4dElkKTsKLSAgICB2b2lkIHNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xp
ZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIHVpbnQ2NF90IGNvbnRl
eHRJZCk7CisgICAgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Np
b25JRCwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiwgdWludDY0X3QgY29udGV4dElkKTsKICAgICB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9p
ZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgY29u
dGV4dElkKTsKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29u
c3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWlu
LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2
NF90IGNvbnRleHRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA3ZmJiMDc0OTQ0OWUwNjRiYjRjNGJk
MGJkZThmYTQyZDE5YTY4M2VlLi5jNzk0N2I5MzQ5ZDk2ODA1YmZjMDNmYTA4MmFkMDFhNjA2MjQ2
MmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTc5LDcgKzc5LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKICAgICBVcGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8U3RyaW5nPiBkb21haW5zVG9CbG9jaywgdWlu
dDY0X3QgY29udGV4dElkKQotICAgIFNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNv
b2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCB1aW50NjRfdCBjb250
ZXh0SWQpCisgICAgU2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMsIHVpbnQ2NF90IGNvbnRl
eHRJZCkKICAgICBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBTdHJpbmcgcmVzb3VyY2VEb21haW4sIFN0cmluZyBmaXJzdFBhcnR5RG9tYWluLCB1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBH
ZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2
NF90IGNvbnRleHRJZCkKICAgICBHcmFudFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBTdHJpbmcgcmVzb3VyY2VEb21haW4sIFN0cmluZyBmaXJzdFBhcnR5RG9tYWluLCBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90
IGNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlQ29jb2EubW0K
aW5kZXggOGQ5ZDFiYjI2Mjg5NjJiZjVjNWEwZmU5ZmIyYmZjNTU5NzY4MjBhMS4uNjUyYmMxZDgy
ZDM4ZTA4OTQxOWZlMzE0YjRjNDU5NDg1ZmQxZGE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01lbW9yeVN0b3JlQ29jb2EubW0KQEAgLTU2LDYgKzU2LDEwIEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCkK
ICAgICAgICAgU2Vjb25kcyBjYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBkb3VibGVGb3JLZXk6QCJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzQ2FjaGVNYXhBZ2VDYXAiXSk7CiAgICAgICAgIGlmIChjYWNoZU1heEFn
ZUNhcEZvclByZXZhbGVudFJlc291cmNlcyA+IDBfcyAmJiBjYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyA8PSAyNF9oICogMzY1KQogICAgICAgICAgICAgc2V0Q2FjaGVNYXhBZ2VD
YXAoY2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMpOworICAgICAgICAKKyAgICAg
ICAgU2Vjb25kcyBjbGllbnRTaWRlQ29va2llc0FnZUNhcChbW05TVXNlckRlZmF1bHRzIHN0YW5k
YXJkVXNlckRlZmF1bHRzXSBkb3VibGVGb3JLZXk6QCJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xp
ZW50U2lkZUNvb2tpZXNBZ2VDYXAiXSk7CisgICAgICAgIGlmIChjbGllbnRTaWRlQ29va2llc0Fn
ZUNhcCA+IDBfcyAmJiBjbGllbnRTaWRlQ29va2llc0FnZUNhcCA8PSAyNF9oICogMzY1KQorICAg
ICAgICAgICAgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoY2xpZW50U2lkZUNvb2tpZXNB
Z2VDYXApOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzNzgwZjIyNGVkOThkYWRh
YTAwMzViOGE3ZjFlMTMyMzE0MmRjZGJjLi5lMTA3ZjViMjY2ZTIxYzJhY2M4MzkzZGM5NzRjOWQ5
MWU4ZjU2N2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTQxNSw3ICs0MTUsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmRpZFVwZGF0ZUJsb2NrQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lk
KQogICAgIG1fdXBkYXRlQmxvY2tDb29raWVzQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lkKSgp
OwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZENhcExpZmV0aW1lRm9y
Q2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTaG91bGRDYXBMaWZl
dGltZUZvckNsaWVudFNpZGVDb29raWVzIHNob3VsZENhcExpZmV0aW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKSB7
CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC00MjcsMTAgKzQyNywxMCBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNv
b2tpZXMoUEFMOjpTZXNzaW9uSQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0p
OwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Ci0g
ICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFNob3VsZENhcExpZmV0aW1lRm9y
Q2xpZW50U2lkZUNvb2tpZXMoc2Vzc2lvbklELCBzaG91bGRDYXBMaWZldGltZSA9PSBTaG91bGRD
YXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzOjpZZXMsIGNhbGxiYWNrSWQpLCAwKTsKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNv
b2tpZXMoc2Vzc2lvbklELCBzZWNvbmRzLCBjYWxsYmFja0lkKSwgMCk7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6ZGlkU2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29v
a2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRT
ZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQogewogICAg
IG1fdXBkYXRlQmxvY2tDb29raWVzQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lkKSgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaAppbmRleCBkYzlhZGQxYWRhZjdmNTI1YThmYjY0YjU2ZTAzYjVlMWE0NjQ1ODM1Li4z
MzI0MGUzZGFjMzIyOWExMjllMjg3ZTgzYzQ3ZjE2ZTMyZTE3MGUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAt
NzksNyArNzksNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQogICAgIHZvaWQgdXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRTaG91bGRDYXBMaWZldGltZUZv
ckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklELCBTaG91bGRDYXBMaWZldGltZUZvckNs
aWVudFNpZGVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQg
c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIHN0ZDo6b3B0aW9u
YWw8U2Vjb25kcz4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBoYXNT
dG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3Vy
Y2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxi
YWNrKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYgZG9tYWlucyk+JiYpOwog
ICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUg
dmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxl
KTsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgZGlkVXBk
YXRlQmxvY2tDb29raWVzKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCBkaWRTZXRTaG91
bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKHVpbnQ2NF90IGNvbnRleHRJZCk7Cisg
ICAgdm9pZCBkaWRTZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyh1aW50NjRfdCBjb250ZXh0
SWQpOwogICAgIHZvaWQgc3RvcmFnZUFjY2Vzc1JlcXVlc3RSZXN1bHQoYm9vbCB3YXNHcmFudGVk
LCB1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgYWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNS
ZXN1bHQoVmVjdG9yPFN0cmluZz4mJiBkb21haW5zLCB1aW50NjRfdCBjb250ZXh0SWQpOwogICAg
IHZvaWQgZGlkUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzcyh1aW50NjRfdCBjb250ZXh0SWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDA1ZDQ0MmZhZjI5MzAxZTE4MjlmNTEyNjRh
ZjFhOTkwNTExOGViZjguLmNkOTZhZmMyNmNjY2VlZjYzMGFjNmYzM2FmMTM5M2UxZDNiMDdhMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTQzLDcgKzQzLDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIERpZFVwZGF0ZUJsb2NrQ29va2llcyh1aW50
NjRfdCBjYWxsYmFja0lkKQotICAgIERpZFNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lk
ZUNvb2tpZXModWludDY0X3QgY2FsbGJhY2tJZCkKKyAgICBEaWRTZXRBZ2VDYXBGb3JDbGllbnRT
aWRlQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQogICAgIFN0b3JhZ2VBY2Nlc3NSZXF1ZXN0
UmVzdWx0KGJvb2wgd2FzR3JhbnRlZCwgdWludDY0X3QgY29udGV4dElkKQogICAgIEFsbFN0b3Jh
Z2VBY2Nlc3NFbnRyaWVzUmVzdWx0KFZlY3RvcjxTdHJpbmc+IGRvbWFpbnMsIHVpbnQ2NF90IGNv
bnRleHRJZCkKICAgICBEaWRSZW1vdmVBbGxTdG9yYWdlQWNjZXNzKHVpbnQ2NF90IGNvbnRleHRJ
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IDZkOTliZTk4YWMxYTMwMzA5OGY3YzQw
ZDlhZDMwMjM5NjI1NDBhYjAuLjAxZmM3MTQwMjY2NjM3NDQ5MGRmOWU2ZGQ4NmM2NTY5MGQzNmM3
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcApAQCAtODQ4LDYgKzg0OCwyNSBAQCB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6dXBkYXRlQ2FjaGVNYXhBZ2VDYXAo
KQogICAgIH0pOwogfQogCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6
c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoU2Vjb25kcyBzZWNvbmRzKQoreworICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworICAgIEFTU0VSVChzZWNvbmRzID49IDBfcyk7Cisg
ICAgCisgICAgbV9wYXJhbWV0ZXJzLmNsaWVudFNpZGVDb29raWVzQWdlQ2FwVGltZSA9IHNlY29u
ZHM7CisgICAgdXBkYXRlQ2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoKTsKK30KKwordm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnVwZGF0ZUNsaWVudFNpZGVDb29raWVzQWdl
Q2FwKCkKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAKKyAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3N0b3JlID0gbWFrZVJlZihtX3N0b3JlKSwgc2Vjb25kcyA9
IG1fcGFyYW1ldGVycy5jbGllbnRTaWRlQ29va2llc0FnZUNhcFRpbWVdICgpIHsKKyAgICAgICAg
aWYgKGF1dG8qIHdlYnNpdGVEYXRhU3RvcmUgPSBzdG9yZS0+Z2V0V2Vic2l0ZURhdGFTdG9yZSgp
KQorICAgICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS0+c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNv
b2tpZXMoc2Vjb25kcywgW10geyB9KTsKKyAgICB9KTsKK30KKwogYm9vbCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmU6OnNob3VsZFJlbW92ZURhdGFSZWNvcmRzKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTEyNjQsNCArMTI4MywxMyBAQCB2
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFj
Y2VzcyhDb21wbGV0aW9uSGFuZGxlcgogICAgIH0pOwogfQogCit2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZTo6ZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MoKQoreworICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgdXBkYXRlQ29va2llQmxvY2tpbmcoW10o
KSB7IH0pOworICAgIHVwZGF0ZUNhY2hlTWF4QWdlQ2FwKCk7CisgICAgdXBkYXRlQ2xpZW50U2lk
ZUNvb2tpZXNBZ2VDYXAoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZS5oCmluZGV4IGQyZTg4NmU2ZjJiMGM5ODQ2NWJmOWY0MDU2NTNlYWFlNmU4OGU2NzYu
LjY1YjNmMThmMjBhZjY1YTIyMDJiYzQ1NTg4NmUwMDg4M2UzMDFmMDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZS5oCkBAIC0xMTIsOCArMTEyLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGltZVRv
TGl2ZVVzZXJJbnRlcmFjdGlvbihTZWNvbmRzKTsKICAgICB2b2lkIHNldE1pbmltdW1UaW1lQmV0
d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChTZWNvbmRzKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVy
aW5nVGltZShTZWNvbmRzKTsKLSAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFNlY29uZHMpOwot
ICAgIHZvaWQgdXBkYXRlQ2FjaGVNYXhBZ2VDYXAoKTsKICAgICB2b2lkIHNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCk7CiAgICAgYm9vbCBpc0RlYnVnTW9kZUVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2RlYnVnTW9kZUVuYWJsZWQ7IH07CiAgICAgdm9pZCBzZXRQcmV2
YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShjb25zdCBTdHJpbmcmIGRvbWFpbik7CkBAIC0xMzAs
NiArMTI4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBTdHJpbmcm
IHByaW1hcnlEb21haW4sIFNlY29uZHMpOwogCisgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrUHJv
Y2VzcygpOworCiBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIHNob3VsZEJsb2NrQW5kS2VlcENv
b2tpZXMoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIHN0YXRp
YyBib29sIHNob3VsZEJsb2NrQW5kUHVyZ2VDb29raWVzKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3MmKTsKQEAgLTE1Miw2ICsxNTIsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHBydW5lU3RhdGlzdGljc0lmTmVlZGVkKCk7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyYgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbihjb25zdCBT
dHJpbmcmKTsKICAgICBWZWN0b3I8U3RyaW5nPiB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
c1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IoKTsKKyAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFNl
Y29uZHMpOworICAgIHZvaWQgdXBkYXRlQ2FjaGVNYXhBZ2VDYXAoKTsKKyAgICB2b2lkIHNldEFn
ZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFNlY29uZHMpOworICAgIHZvaWQgdXBkYXRlQ2xpZW50
U2lkZUNvb2tpZXNBZ2VDYXAoKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgcmVn
aXN0ZXJVc2VyRGVmYXVsdHNJZk5lZWRlZCgpOwpAQCAtMTY0LDYgKzE2OCw3IEBAIHByaXZhdGU6
CiAgICAgICAgIFNlY29uZHMgbWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsIHsg
MV9oIH07CiAgICAgICAgIFNlY29uZHMgZ3JhbmRmYXRoZXJpbmdUaW1lIHsgMjRfaCAqIDcgfTsK
ICAgICAgICAgU2Vjb25kcyBjYWNoZU1heEFnZUNhcFRpbWUgeyAyNF9oICogNyB9OworICAgICAg
ICBTZWNvbmRzIGNsaWVudFNpZGVDb29raWVzQWdlQ2FwVGltZSB7IDI0X2ggKiA3IH07CiAgICAg
ICAgIGJvb2wgc2hvdWxkTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCB7IGZh
bHNlIH07CiAgICAgICAgIGJvb2wgc2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVj
b3Jkc1JlbW92YWwgeyB0cnVlIH07CiAgICAgICAgIGJvb2wgc2hvdWxkU3VibWl0VGVsZW1ldHJ5
IHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggNmFkMDc5ZDUwYzQ5YmJjZmNhZTNl
ZmU2MjE2NDQxNDhmMGY3Y2I3ZC4uMDM0MTJhN2QxMGVjM2VlMzc0ZDBkMzVjNjM0YjA2MGViN2Mw
M2MzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0zMjksMTQgKzMyOSw4IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpCiAg
ICAgcG9zdFRhc2soW3RoaXNdIHsKICAgICAgICAgaWYgKCFtX21lbW9yeVN0b3JlKQogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBtX21lbW9yeVN0b3JlLT51cGRhdGVDb29raWVCbG9ja2lu
ZyhbXSgpIHsgfSk7Ci0gICAgICAgIG1fbWVtb3J5U3RvcmUtPnVwZGF0ZUNhY2hlTWF4QWdlQ2Fw
KCk7CisgICAgICAgIG1fbWVtb3J5U3RvcmUtPmRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAg
ICAgfSk7Ci0KLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGlmICht
X3dlYnNpdGVEYXRhU3RvcmUpCi0gICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+c2V0U2hvdWxk
Q2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhTaG91bGRDYXBMaWZldGltZUZvckNsaWVu
dFNpZGVDb29raWVzOjpZZXMsIFtdKCkgeyB9KTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4
IDc1ODExYjNiMWYxMzBjYmMzMjQ0ZWRhZjc5MGI5ZGI3OWQzYjI2ZjkuLjVmNGUzNGVjYTY5MjQ1
ZjIwMGM5ZTFjOGJiMGI0OWU0ZTFjZDIwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0xNDAsNiAr
MTQwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpOwog
CisgICAgV2Vic2l0ZURhdGFTdG9yZSogZ2V0V2Vic2l0ZURhdGFTdG9yZSgpIHsgcmV0dXJuIG1f
d2Vic2l0ZURhdGFTdG9yZS5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShXZWJzaXRlRGF0YVN0b3JlJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKaW5kZXggMWEyNTViODk1NjJkZTU4NDRiYmYzMjIxY2M0YjdlODIyMmY5YzY0OC4uNjNj
MzJkN2Q1Mjg4N2JjYjEzNzJjZTZhMTZlZGYzMDQzNGMwY2NmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAK
QEAgLTEyNjYsMTMgKzEyNjYsMTMgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjp1cGRhdGVQcmV2
YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmkKICAgICB9CiB9
CiAKLXZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRT
aWRlQ29va2llcyhTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzIHNob3VsZENh
cExpZmV0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKHN0
ZDo6b3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2Fs
bGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAg
IAogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgewogICAgICAg
ICBpZiAoYXV0byogcHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQotICAg
ICAgICAgICAgcHJvY2Vzcy0+c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2ll
cyhtX3Nlc3Npb25JRCwgc2hvdWxkQ2FwTGlmZXRpbWUsIFtwcm9jZXNzUG9vbCwgY2FsbGJhY2tB
Z2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKKyAgICAgICAg
ICAgIHByb2Nlc3MtPnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKG1fc2Vzc2lvbklELCBz
ZWNvbmRzLCBbcHJvY2Vzc1Bvb2wsIGNhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVn
YXRvci5jb3B5UmVmKCldIHsgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggYmQ1Nzkx
M2QzOTk0NzQ1MWQwZTk5YTBhZDVmMThiOTgzYWUxMDMxZS4uMTM0MmE1ZmIxZWU4MjcwYTU3YmJj
OTQ4OWI1ZjQ1YjhiODkxODdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNzQsOCArNzQsNiBAQCBlbnVt
IGNsYXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRTdGF0dXM7CiBzdHJ1Y3QgUGx1Z2luTW9kdWxlSW5m
bzsKICNlbmRpZgogCi1lbnVtIGNsYXNzIFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNv
b2tpZXMgeyBObywgWWVzIH07Ci0KIGNsYXNzIFdlYnNpdGVEYXRhU3RvcmUgOiBwdWJsaWMgUmVm
Q291bnRlZDxXZWJzaXRlRGF0YVN0b3JlPiwgcHVibGljIFdlYlByb2Nlc3NMaWZldGltZU9ic2Vy
dmVyLCBwdWJsaWMgSWRlbnRpZmllZDxXZWJzaXRlRGF0YVN0b3JlPiwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFdlYnNpdGVEYXRhU3RvcmU+ICB7CiBwdWJsaWM6CiAgICAgY29uc3RleHByIHN0YXRp
YyB1aW50NjRfdCBkZWZhdWx0Q2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEgPSA1MCAqIDEwMjQg
KiAxMDI0OwpAQCAtMTM4LDcgKzEzNiw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdm9pZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9j
a0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2NrLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JD
bGllbnRTaWRlQ29va2llcyhTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50
U2lkZUNvb2tpZXMoc3RkOjpvcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3Qg
U3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCBoYXNBY2Nlc3MpPiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVz
KHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYm
IGRvbWFpbnMpPiYmKTsKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3Qg
U3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCB3YXNHcmFudGVkKT4mJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354415</attachid>
            <date>2018-11-09 16:44:45 -0800</date>
            <delta_ts>2018-11-09 20:12:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191480-20181109164444.patch</filename>
            <type>text/plain</type>
            <size>27382</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY4M2U4NzhjNzI5OTIx
OGMwYzQ2OTk2OGU4MWI5ODFiN2QwZWY5Zi4uNWJlYTIxYTZmZTI5NTk3Y2VkMThkYjg2NDRkOTlh
MzMzNDNhM2EwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTExLTA5ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhYmlsaXR5IHRv
IGNvbmZpZ3VyZSBkb2N1bWVudC5jb29raWUgbGlmZXRpbWUgY2FwIHRocm91Z2ggdXNlciBkZWZh
dWx0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
NDgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTI0MDg3MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4aXN0aW5nIHRl
c3QgbWFrZXMgc3VyZSB3ZSBkb24ndCByZWdyZXNzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1h
a2VzIHRoZSBjYXBwZWQgbGlmZXRpbWUgaW4gc2Vjb25kcyBjb25maWd1cmFibGUgdGhyb3VnaAor
ICAgICAgICB1c2VyIGRlZmF1bHRzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVu
dFNpZGVDb29raWVzKTogRGVsZXRlZC4KKyAgICAgICAgICAgIFJlbmFtZWQgc2V0QWdlQ2FwRm9y
Q2xpZW50U2lkZUNvb2tpZXMoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6ZmlsdGVyQ29v
a2llcyk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tp
ZXNGcm9tRE9NIGNvbnN0KToKKwogMjAxOC0xMS0wOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9yIGluIHBh
c3N3b3JkIGZpZWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZDg4MTdiNDE2MWMwMWE4NzdjZGQwYmNjMDlhZTM3
OWExYzcyYTM1Li40ZjcwMWYzZjA1N2Q1ODdjYzlkMTk5MDgzOGY5NDJhOGRmNTUyMzU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTExLTA5ICBKb2huIFdpbGFuZGVyICA8d2lsYW5k
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhYmlsaXR5IHRvIGNvbmZpZ3VyZSBkb2N1bWVu
dC5jb29raWUgbGlmZXRpbWUgY2FwIHRocm91Z2ggdXNlciBkZWZhdWx0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNDgwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80NTI0MDg3MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyB0aGUgY2FwcGVkIGxpZmV0aW1lIGluIHNl
Y29uZHMgY29uZmlndXJhYmxlIHRocm91Z2gKKyAgICAgICAgdXNlciBkZWZhdWx0cy4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50
U2lkZUNvb2tpZXMpOiBEZWxldGVkLgorICAgICAgICAgICAgUmVuYW1lZCBzZXRBZ2VDYXBGb3JD
bGllbnRTaWRlQ29va2llcygpLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6OnJlZ2lzdGVyVXNlckRlZmF1bHRzSWZOZWVkZWQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFNldEFnZUNhcEZvckNsaWVu
dFNpZGVDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0
U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyk6IERlbGV0ZWQuCisgICAgICAg
ICAgICBSZW5hbWVkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKCkuCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xp
ZW50U2lkZUNvb2tpZXMpOiBEZWxldGVkLgorICAgICAgICAgICAgUmVuYW1lZCBkaWRTZXRBZ2VD
YXBGb3JDbGllbnRTaWRlQ29va2llcygpLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKToK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjp1cGRh
dGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6ZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MpOgorICAgICAg
ICAgICAgTmV3IGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBhbGwgdGhlIHRoaW5ncyB0aGF0IG5lZWQg
dG8gYmUgZG9uZSB3aGVuIGEgbmV0d29yaworICAgICAgICAgICAgcHJvY2VzcyBoYXMgYmVlbiBj
cmVhdGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpkaWRDcmVhdGVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICAgICBOb3cganVzdCBjYWxscyB0
aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbiBvbiBpdHMgbWVtb3J5IHN0b3JlIHdoZXJlIGFsbCB0
aGUKKyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUgYXZhaWxhYmxlLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29r
aWVzKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0U2hvdWxkQ2FwTGlm
ZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyk6IERlbGV0ZWQuCisgICAgICAgICAgICBSZW5hbWVk
IHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKCkuCisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKwogMjAxOC0xMS0wOSAgRGFuaWVsIEJhdGVz
ICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5k
aWNhdG9yIGluIHBhc3N3b3JkIGZpZWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYWE5ZTQyOGUzOTJl
ZjlkNTk2NjFkYzc1NGVmN2M1NWQwMWNiY2Y0OS4uZWZmN2QzNzFjODkxYWMxNGZiNTYwNTFiYTVk
NjYzZTFlM2E3MTA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IHBhZ2VJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91
bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJM
JiByZXNvdXJjZSwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gcGFnZUlEKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBy
ZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zvcihjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRl
Q29va2llcyhib29sIHZhbHVlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFnZUNhcEZv
ckNsaWVudFNpZGVDb29raWVzKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4pOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZG9tYWlucyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0
IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKSBjb25zdDsK
ICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBnZXRBbGxTdG9yYWdlQWNjZXNzRW50
cmllcygpIGNvbnN0OwpAQCAtMTkyLDcgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDx1
aW50NjRfdCwgSGFzaE1hcDx1aW50NjRfdCwgU3RyaW5nLCBEZWZhdWx0SGFzaDx1aW50NjRfdD46
Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0X3Q+PiwgRGVm
YXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJh
aXRzPHVpbnQ2NF90Pj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBIYXNoTWFw
PHVpbnQ2NF90LCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+
OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gbV9w
YWdlc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbV9j
YWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyB7IH07Ci0gICAgYm9vbCBtX3Nob3Vs
ZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyBmYWxzZSB9OworICAgIHN0ZDo6b3B0
aW9uYWw8U2Vjb25kcz4gbV9hZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyB7IH07CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcApp
bmRleCBmZmQ2YTYxNGNjZTc4MTcwYTljMTVjN2Q0YThhMzMzNmRhNGJhNDAyLi40YjZkNDNiNDkw
NzkyZWY5NjQyYTgyMGQxM2NlYmZiMDgyYTlmNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bkNGTmV0LmNwcApAQCAtMjczLDkgKzI3Myw5IEBAIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjptYXhBZ2VDYWNoZUNhcChjb25zdCBSZXNvdXJjZVJlcXVlCiAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoYm9vbCB2YWx1ZSkKK3Zv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhz
dGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMpCiB7Ci0gICAgbV9zaG91bGRDYXBMaWZldGlt
ZUZvckNsaWVudFNpZGVDb29raWVzID0gdmFsdWU7CisgICAgbV9hZ2VDYXBGb3JDbGllbnRTaWRl
Q29va2llcyA9IHNlY29uZHM7CiB9CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRQ
cmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRv
bWFpbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQppbmRleCBhOWYyNTg1
MTIyZGEzZmI0MzdjNWNmZTcyM2ZhYzY3Yjc2ZjYyMTA1Li5lMTNlYjM3YzgzOWJkMzViNzMxNzBm
ZGViMTI5M2I2NGU3OTE2NGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2Eu
bW0KQEAgLTI2MCwxMyArMjYwLDEyIEBAIHN0YXRpYyBOU0FycmF5ICpodHRwQ29va2llc0ZvclVS
TChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UsIE5TVVJMICpmCiAgICAgcmV0
dXJuIGNvb2tpZXNGb3JVUkwobnNDb29raWVTdG9yYWdlLmdldCgpLCB1cmwsIGZpcnN0UGFydHks
IHNhbWVTaXRlSW5mbyk7CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29v
a2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcywgYm9vbCBzaG91bGRDYXBMaWZldGltZSkK
K3N0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRl
cmVkQ29va2llcywgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBjYXBwZWRMaWZldGltZSkKIHsKICAg
ICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NS
YXdDb29raWVzKSk7CiAgICAgTlNVSW50ZWdlciBjb3VudCA9IFt1bmZpbHRlcmVkQ29va2llcyBj
b3VudF07CiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBh
ZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Y291bnRdKTsK
IAotICAgIGNvbnN0IE5TVGltZUludGVydmFsIHNlY29uZHNQZXJXZWVrID0gNyAqIDI0ICogNjAg
KiA2MDsKICAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAg
ICAgIE5TSFRUUENvb2tpZSAqY29va2llID0gKE5TSFRUUENvb2tpZSAqKVt1bmZpbHRlcmVkQ29v
a2llcyBvYmplY3RBdEluZGV4OmldOwogCkBAIC0yODEsMTAgKzI4MCwxMCBAQCBzdGF0aWMgUmV0
YWluUHRyPE5TQXJyYXk+IGZpbHRlckNvb2tpZXMoTlNBcnJheSAqdW5maWx0ZXJlZENvb2tpZXMs
IGJvb2wgc2hvdWxkQwogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgLy8gQ2FwIGxp
ZmV0aW1lIG9mIHBlcnNpc3RlbnQsIGNsaWVudC1zaWRlIGNvb2tpZXMgdG8gYSB3ZWVrLgotICAg
ICAgICBpZiAoc2hvdWxkQ2FwTGlmZXRpbWUgJiYgIVtjb29raWUgaXNTZXNzaW9uT25seV0pIHsK
LSAgICAgICAgICAgIGlmICghY29va2llLmV4cGlyZXNEYXRlIHx8IGNvb2tpZS5leHBpcmVzRGF0
ZS50aW1lSW50ZXJ2YWxTaW5jZU5vdyA+IHNlY29uZHNQZXJXZWVrKSB7CisgICAgICAgIGlmIChj
YXBwZWRMaWZldGltZSAmJiAhW2Nvb2tpZSBpc1Nlc3Npb25Pbmx5XSkgeworICAgICAgICAgICAg
aWYgKCFjb29raWUuZXhwaXJlc0RhdGUgfHwgY29va2llLmV4cGlyZXNEYXRlLnRpbWVJbnRlcnZh
bFNpbmNlTm93ID4gY2FwcGVkTGlmZXRpbWUtPnNlY29uZHMoKSkgewogICAgICAgICAgICAgICAg
IFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PE5TSFRUUENvb2tpZVByb3BlcnR5S2V5LCBp
ZD4+IHByb3BlcnRpZXMgPSBhZG9wdE5TKFtbY29va2llIHByb3BlcnRpZXNdIG11dGFibGVDb3B5
XSk7Ci0gICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TRGF0ZT4gZGF0ZUluQVdlZWsgPSBhZG9w
dE5TKFtbTlNEYXRlIGFsbG9jXSBpbml0V2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OnNlY29uZHNQ
ZXJXZWVrXSk7CisgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TRGF0ZT4gZGF0ZUluQVdlZWsg
PSBhZG9wdE5TKFtbTlNEYXRlIGFsbG9jXSBpbml0V2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OmNh
cHBlZExpZmV0aW1lLT5zZWNvbmRzKCldKTsKICAgICAgICAgICAgICAgICBbcHJvcGVydGllcyBz
ZXRPYmplY3Q6ZGF0ZUluQVdlZWsuZ2V0KCkgZm9yS2V5Ok5TSFRUUENvb2tpZUV4cGlyZXNdOwog
ICAgICAgICAgICAgICAgIGNvb2tpZSA9IFtOU0hUVFBDb29raWUgY29va2llV2l0aFByb3BlcnRp
ZXM6cHJvcGVydGllcy5nZXQoKV07CiAgICAgICAgICAgICB9CkBAIC00MDUsNyArNDA0LDcgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVMKICNlbmRpZgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKLSAgICBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyZWRDb29raWVzID0g
ZmlsdGVyQ29va2llcyh1bmZpbHRlcmVkQ29va2llcywgbV9zaG91bGRDYXBMaWZldGltZUZvckNs
aWVudFNpZGVDb29raWVzKTsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyZWRDb29raWVz
ID0gZmlsdGVyQ29va2llcyh1bmZpbHRlcmVkQ29va2llcywgbV9hZ2VDYXBGb3JDbGllbnRTaWRl
Q29va2llcyk7CiAjZWxzZQogICAgIFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJlZENvb2tpZXMg
PSBmaWx0ZXJDb29raWVzKHVuZmlsdGVyZWRDb29raWVzLCBmYWxzZSk7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMDcz
ZjM0ZjNhZjFjYWIxZDgyMTFhNGE0Y2Q4YzU4OTMyYjY1MWIyZS4uMTdiMDE2NzcyNDY1MGMyZWQz
YmI2ZmEzZDlkYzg1ZmI3MDE5ZDA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTUxMCwxMSArNTEwLDExIEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNl
c3Npb25JRCBzZXNzCiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkVXBkYXRlQmxvY2tDb29raWVzKGNvbnRleHRJZCks
IDApOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRDYXBMaWZldGltZUZvckNs
aWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgdWlu
dDY0X3QgY29udGV4dElkKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0QWdlQ2FwRm9yQ2xpZW50
U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29u
ZHM+IHNlY29uZHMsIHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBpZiAoYXV0byogbmV0d29y
a1N0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihz
ZXNzaW9uSUQpKQotICAgICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24tPnNldFNob3VsZENhcExp
ZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXModmFsdWUpOwotICAgIHBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRpZFNldFNob3Vs
ZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoY29udGV4dElkKSwgMCk7CisgICAgICAg
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoc2Vj
b25kcyk7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6RGlkU2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoY29udGV4
dElkKSwgMCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JG
cmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21h
aW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgcGFnZUlELCB1aW50NjRfdCBjb250ZXh0SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYmIwY2U4MzVmYjJiNDliOTdmOWJiNDFk
YzlhZjg0NjMzYzk1NmIxNi4uZGM0MTI1MzljZTkzNDA3NTAwMThlNjNmYzc1NGI2NzQ4MDQyMGFl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApA
QCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCiAgICAgdm9pZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNG
b3IoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jaywg
dWludDY0X3QgY29udGV4dElkKTsKLSAgICB2b2lkIHNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xp
ZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIHVpbnQ2NF90IGNvbnRl
eHRJZCk7CisgICAgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Np
b25JRCwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiwgdWludDY0X3QgY29udGV4dElkKTsKICAgICB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9p
ZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgY29u
dGV4dElkKTsKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29u
c3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWlu
LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2
NF90IGNvbnRleHRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA3ZmJiMDc0OTQ0OWUwNjRiYjRjNGJk
MGJkZThmYTQyZDE5YTY4M2VlLi5jNzk0N2I5MzQ5ZDk2ODA1YmZjMDNmYTA4MmFkMDFhNjA2MjQ2
MmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTc5LDcgKzc5LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKICAgICBVcGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8U3RyaW5nPiBkb21haW5zVG9CbG9jaywgdWlu
dDY0X3QgY29udGV4dElkKQotICAgIFNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNv
b2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCB1aW50NjRfdCBjb250
ZXh0SWQpCisgICAgU2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMsIHVpbnQ2NF90IGNvbnRl
eHRJZCkKICAgICBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBTdHJpbmcgcmVzb3VyY2VEb21haW4sIFN0cmluZyBmaXJzdFBhcnR5RG9tYWluLCB1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBH
ZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2
NF90IGNvbnRleHRJZCkKICAgICBHcmFudFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBTdHJpbmcgcmVzb3VyY2VEb21haW4sIFN0cmluZyBmaXJzdFBhcnR5RG9tYWluLCBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90
IGNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlQ29jb2EubW0K
aW5kZXggOGQ5ZDFiYjI2Mjg5NjJiZjVjNWEwZmU5ZmIyYmZjNTU5NzY4MjBhMS4uNjUyYmMxZDgy
ZDM4ZTA4OTQxOWZlMzE0YjRjNDU5NDg1ZmQxZGE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01lbW9yeVN0b3JlQ29jb2EubW0KQEAgLTU2LDYgKzU2LDEwIEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCkK
ICAgICAgICAgU2Vjb25kcyBjYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBkb3VibGVGb3JLZXk6QCJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzQ2FjaGVNYXhBZ2VDYXAiXSk7CiAgICAgICAgIGlmIChjYWNoZU1heEFn
ZUNhcEZvclByZXZhbGVudFJlc291cmNlcyA+IDBfcyAmJiBjYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyA8PSAyNF9oICogMzY1KQogICAgICAgICAgICAgc2V0Q2FjaGVNYXhBZ2VD
YXAoY2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMpOworICAgICAgICAKKyAgICAg
ICAgU2Vjb25kcyBjbGllbnRTaWRlQ29va2llc0FnZUNhcChbW05TVXNlckRlZmF1bHRzIHN0YW5k
YXJkVXNlckRlZmF1bHRzXSBkb3VibGVGb3JLZXk6QCJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xp
ZW50U2lkZUNvb2tpZXNBZ2VDYXAiXSk7CisgICAgICAgIGlmIChjbGllbnRTaWRlQ29va2llc0Fn
ZUNhcCA+IDBfcyAmJiBjbGllbnRTaWRlQ29va2llc0FnZUNhcCA8PSAyNF9oICogMzY1KQorICAg
ICAgICAgICAgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoY2xpZW50U2lkZUNvb2tpZXNB
Z2VDYXApOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzNzgwZjIyNGVkOThkYWRh
YTAwMzViOGE3ZjFlMTMyMzE0MmRjZGJjLi5lMTA3ZjViMjY2ZTIxYzJhY2M4MzkzZGM5NzRjOWQ5
MWU4ZjU2N2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTQxNSw3ICs0MTUsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmRpZFVwZGF0ZUJsb2NrQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lk
KQogICAgIG1fdXBkYXRlQmxvY2tDb29raWVzQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lkKSgp
OwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZENhcExpZmV0aW1lRm9y
Q2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTaG91bGRDYXBMaWZl
dGltZUZvckNsaWVudFNpZGVDb29raWVzIHNob3VsZENhcExpZmV0aW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKSB7
CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC00MjcsMTAgKzQyNywxMCBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNv
b2tpZXMoUEFMOjpTZXNzaW9uSQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0p
OwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Ci0g
ICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFNob3VsZENhcExpZmV0aW1lRm9y
Q2xpZW50U2lkZUNvb2tpZXMoc2Vzc2lvbklELCBzaG91bGRDYXBMaWZldGltZSA9PSBTaG91bGRD
YXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzOjpZZXMsIGNhbGxiYWNrSWQpLCAwKTsKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNv
b2tpZXMoc2Vzc2lvbklELCBzZWNvbmRzLCBjYWxsYmFja0lkKSwgMCk7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6ZGlkU2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29v
a2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRT
ZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQogewogICAg
IG1fdXBkYXRlQmxvY2tDb29raWVzQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lkKSgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaAppbmRleCBkYzlhZGQxYWRhZjdmNTI1YThmYjY0YjU2ZTAzYjVlMWE0NjQ1ODM1Li4z
MzI0MGUzZGFjMzIyOWExMjllMjg3ZTgzYzQ3ZjE2ZTMyZTE3MGUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAt
NzksNyArNzksNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQogICAgIHZvaWQgdXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRTaG91bGRDYXBMaWZldGltZUZv
ckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklELCBTaG91bGRDYXBMaWZldGltZUZvckNs
aWVudFNpZGVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQg
c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIHN0ZDo6b3B0aW9u
YWw8U2Vjb25kcz4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBoYXNT
dG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3Vy
Y2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxi
YWNrKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYgZG9tYWlucyk+JiYpOwog
ICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUg
dmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxl
KTsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgZGlkVXBk
YXRlQmxvY2tDb29raWVzKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCBkaWRTZXRTaG91
bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKHVpbnQ2NF90IGNvbnRleHRJZCk7Cisg
ICAgdm9pZCBkaWRTZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyh1aW50NjRfdCBjb250ZXh0
SWQpOwogICAgIHZvaWQgc3RvcmFnZUFjY2Vzc1JlcXVlc3RSZXN1bHQoYm9vbCB3YXNHcmFudGVk
LCB1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgYWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNS
ZXN1bHQoVmVjdG9yPFN0cmluZz4mJiBkb21haW5zLCB1aW50NjRfdCBjb250ZXh0SWQpOwogICAg
IHZvaWQgZGlkUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzcyh1aW50NjRfdCBjb250ZXh0SWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDA1ZDQ0MmZhZjI5MzAxZTE4MjlmNTEyNjRh
ZjFhOTkwNTExOGViZjguLmNkOTZhZmMyNmNjY2VlZjYzMGFjNmYzM2FmMTM5M2UxZDNiMDdhMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTQzLDcgKzQzLDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIERpZFVwZGF0ZUJsb2NrQ29va2llcyh1aW50
NjRfdCBjYWxsYmFja0lkKQotICAgIERpZFNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lk
ZUNvb2tpZXModWludDY0X3QgY2FsbGJhY2tJZCkKKyAgICBEaWRTZXRBZ2VDYXBGb3JDbGllbnRT
aWRlQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQogICAgIFN0b3JhZ2VBY2Nlc3NSZXF1ZXN0
UmVzdWx0KGJvb2wgd2FzR3JhbnRlZCwgdWludDY0X3QgY29udGV4dElkKQogICAgIEFsbFN0b3Jh
Z2VBY2Nlc3NFbnRyaWVzUmVzdWx0KFZlY3RvcjxTdHJpbmc+IGRvbWFpbnMsIHVpbnQ2NF90IGNv
bnRleHRJZCkKICAgICBEaWRSZW1vdmVBbGxTdG9yYWdlQWNjZXNzKHVpbnQ2NF90IGNvbnRleHRJ
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IDZkOTliZTk4YWMxYTMwMzA5OGY3YzQw
ZDlhZDMwMjM5NjI1NDBhYjAuLmZmNDAwMzFhMzg2OGFmMzJmOGNhZjg1NmMzYzUxNjQyNGNlNGZj
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcApAQCAtODQ4LDYgKzg0OCwyNyBAQCB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6dXBkYXRlQ2FjaGVNYXhBZ2VDYXAo
KQogICAgIH0pOwogfQogCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6
c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoU2Vjb25kcyBzZWNvbmRzKQoreworICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworICAgIEFTU0VSVChzZWNvbmRzID49IDBfcyk7Cisg
ICAgCisgICAgbV9wYXJhbWV0ZXJzLmNsaWVudFNpZGVDb29raWVzQWdlQ2FwVGltZSA9IHNlY29u
ZHM7CisgICAgdXBkYXRlQ2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoKTsKK30KKwordm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnVwZGF0ZUNsaWVudFNpZGVDb29raWVzQWdl
Q2FwKCkKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtz
dG9yZSA9IG1ha2VSZWYobV9zdG9yZSksIHNlY29uZHMgPSBtX3BhcmFtZXRlcnMuY2xpZW50U2lk
ZUNvb2tpZXNBZ2VDYXBUaW1lXSAoKSB7CisgICAgICAgIGlmIChhdXRvKiB3ZWJzaXRlRGF0YVN0
b3JlID0gc3RvcmUtPmdldFdlYnNpdGVEYXRhU3RvcmUoKSkKKyAgICAgICAgICAgIHdlYnNpdGVE
YXRhU3RvcmUtPnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKHNlY29uZHMsIFtdIHsgfSk7
CisgICAgfSk7CisjZW5kaWYKK30KKwogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU6OnNob3VsZFJlbW92ZURhdGFSZWNvcmRzKCkgY29uc3QKIHsKICAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKQEAgLTEyNjQsNCArMTI4NSwxMyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9u
SGFuZGxlcgogICAgIH0pOwogfQogCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6ZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MoKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOworCisgICAgdXBkYXRlQ29va2llQmxvY2tpbmcoW10oKSB7IH0pOworICAgIHVw
ZGF0ZUNhY2hlTWF4QWdlQ2FwKCk7CisgICAgdXBkYXRlQ2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4
IGQyZTg4NmU2ZjJiMGM5ODQ2NWJmOWY0MDU2NTNlYWFlNmU4OGU2NzYuLjY1YjNmMThmMjBhZjY1
YTIyMDJiYzQ1NTg4NmUwMDg4M2UzMDFmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBAIC0x
MTIsOCArMTEyLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFj
dGlvbihTZWNvbmRzKTsKICAgICB2b2lkIHNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRz
UmVtb3ZhbChTZWNvbmRzKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRz
KTsKLSAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFNlY29uZHMpOwotICAgIHZvaWQgdXBkYXRl
Q2FjaGVNYXhBZ2VDYXAoKTsKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1
Z01vZGUoYm9vbCk7CiAgICAgYm9vbCBpc0RlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX2RlYnVnTW9kZUVuYWJsZWQ7IH07CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZv
ckRlYnVnTW9kZShjb25zdCBTdHJpbmcmIGRvbWFpbik7CkBAIC0xMzAsNiArMTI4LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBTdHJpbmcmIHByaW1hcnlEb21haW4s
IFNlY29uZHMpOwogCisgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpOworCiBwcml2
YXRlOgogICAgIHN0YXRpYyBib29sIHNob3VsZEJsb2NrQW5kS2VlcENvb2tpZXMoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIHN0YXRpYyBib29sIHNob3VsZEJs
b2NrQW5kUHVyZ2VDb29raWVzKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3Mm
KTsKQEAgLTE1Miw2ICsxNTIsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBydW5lU3RhdGlzdGlj
c0lmTmVlZGVkKCk7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgZW5zdXJl
UmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbihjb25zdCBTdHJpbmcmKTsKICAgICBW
ZWN0b3I8U3RyaW5nPiB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc1RvUmVtb3ZlV2Vic2l0
ZURhdGFGb3IoKTsKKyAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFNlY29uZHMpOworICAgIHZv
aWQgdXBkYXRlQ2FjaGVNYXhBZ2VDYXAoKTsKKyAgICB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNp
ZGVDb29raWVzKFNlY29uZHMpOworICAgIHZvaWQgdXBkYXRlQ2xpZW50U2lkZUNvb2tpZXNBZ2VD
YXAoKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgcmVnaXN0ZXJVc2VyRGVmYXVs
dHNJZk5lZWRlZCgpOwpAQCAtMTY0LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIFNlY29u
ZHMgbWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsIHsgMV9oIH07CiAgICAgICAg
IFNlY29uZHMgZ3JhbmRmYXRoZXJpbmdUaW1lIHsgMjRfaCAqIDcgfTsKICAgICAgICAgU2Vjb25k
cyBjYWNoZU1heEFnZUNhcFRpbWUgeyAyNF9oICogNyB9OworICAgICAgICBTZWNvbmRzIGNsaWVu
dFNpZGVDb29raWVzQWdlQ2FwVGltZSB7IDI0X2ggKiA3IH07CiAgICAgICAgIGJvb2wgc2hvdWxk
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCB7IGZhbHNlIH07CiAgICAgICAg
IGJvb2wgc2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwgeyB0
cnVlIH07CiAgICAgICAgIGJvb2wgc2hvdWxkU3VibWl0VGVsZW1ldHJ5IHsgdHJ1ZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAKaW5kZXggNmFkMDc5ZDUwYzQ5YmJjZmNhZTNlZmU2MjE2NDQxNDhmMGY3
Y2I3ZC4uMDM0MTJhN2QxMGVjM2VlMzc0ZDBkMzVjNjM0YjA2MGViN2MwM2MzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuY3BwCkBAIC0zMjksMTQgKzMyOSw4IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpCiAgICAgcG9zdFRhc2soW3Ro
aXNdIHsKICAgICAgICAgaWYgKCFtX21lbW9yeVN0b3JlKQogICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBtX21lbW9yeVN0b3JlLT51cGRhdGVDb29raWVCbG9ja2luZyhbXSgpIHsgfSk7Ci0g
ICAgICAgIG1fbWVtb3J5U3RvcmUtPnVwZGF0ZUNhY2hlTWF4QWdlQ2FwKCk7CisgICAgICAgIG1f
bWVtb3J5U3RvcmUtPmRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgfSk7Ci0KLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGlmIChtX3dlYnNpdGVEYXRhU3Rv
cmUpCi0gICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JD
bGllbnRTaWRlQ29va2llcyhTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzOjpZ
ZXMsIFtdKCkgeyB9KTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDc1ODExYjNiMWYxMzBj
YmMzMjQ0ZWRhZjc5MGI5ZGI3OWQzYjI2ZjkuLjVmNGUzNGVjYTY5MjQ1ZjIwMGM5ZTFjOGJiMGI0
OWU0ZTFjZDIwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0xNDAsNiArMTQwLDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpOwogCisgICAgV2Vic2l0ZURh
dGFTdG9yZSogZ2V0V2Vic2l0ZURhdGFTdG9yZSgpIHsgcmV0dXJuIG1fd2Vic2l0ZURhdGFTdG9y
ZS5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZShXZWJzaXRlRGF0YVN0b3JlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMWEy
NTViODk1NjJkZTU4NDRiYmYzMjIxY2M0YjdlODIyMmY5YzY0OC4uNjNjMzJkN2Q1Mjg4N2JjYjEz
NzJjZTZhMTZlZGYzMDQzNGMwY2NmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTEyNjYsMTMgKzEy
NjYsMTMgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjp1cGRhdGVQcmV2YWxlbnREb21haW5zVG9C
bG9ja0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmkKICAgICB9CiB9CiAKLXZvaWQgV2Vic2l0
ZURhdGFTdG9yZTo6c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhTaG91
bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzIHNob3VsZENhcExpZmV0aW1lLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKHN0ZDo6b3B0aW9uYWw8U2Vj
b25kcz4gc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9y
OjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIAogICAgIGZvciAoYXV0
byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgewogICAgICAgICBpZiAoYXV0byogcHJv
Y2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQotICAgICAgICAgICAgcHJvY2Vz
cy0+c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhtX3Nlc3Npb25JRCwg
c2hvdWxkQ2FwTGlmZXRpbWUsIFtwcm9jZXNzUG9vbCwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2Fs
bGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKKyAgICAgICAgICAgIHByb2Nlc3MtPnNl
dEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKG1fc2Vzc2lvbklELCBzZWNvbmRzLCBbcHJvY2Vz
c1Bvb2wsIGNhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCld
IHsgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggYmQ1NzkxM2QzOTk0NzQ1MWQwZTk5
YTBhZDVmMThiOTgzYWUxMDMxZS4uMTM0MmE1ZmIxZWU4MjcwYTU3YmJjOTQ4OWI1ZjQ1YjhiODkx
ODdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNzQsOCArNzQsNiBAQCBlbnVtIGNsYXNzIFN0b3JhZ2VB
Y2Nlc3NQcm9tcHRTdGF0dXM7CiBzdHJ1Y3QgUGx1Z2luTW9kdWxlSW5mbzsKICNlbmRpZgogCi1l
bnVtIGNsYXNzIFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyBObywgWWVz
IH07Ci0KIGNsYXNzIFdlYnNpdGVEYXRhU3RvcmUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJzaXRl
RGF0YVN0b3JlPiwgcHVibGljIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLCBwdWJsaWMgSWRl
bnRpZmllZDxXZWJzaXRlRGF0YVN0b3JlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYnNpdGVE
YXRhU3RvcmU+ICB7CiBwdWJsaWM6CiAgICAgY29uc3RleHByIHN0YXRpYyB1aW50NjRfdCBkZWZh
dWx0Q2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEgPSA1MCAqIDEwMjQgKiAxMDI0OwpAQCAtMTM4
LDcgKzEzNiw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCiAgICAgdm9pZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoY29u
c3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2NrLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwotICAgIHZvaWQgc2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2ll
cyhTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoc3Rk
OjpvcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3RyaW5nJiByZXNvdXJj
ZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3Mp
PiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKHVpbnQ2NF90IHBhZ2VJ
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGRvbWFpbnMpPiYmKTsK
ICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3RyaW5nJiByZXNvdXJj
ZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCB3YXNHcmFudGVkKT4mJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354433</attachid>
            <date>2018-11-09 20:13:00 -0800</date>
            <delta_ts>2018-11-09 20:50:10 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191480-20181109201259.patch</filename>
            <type>text/plain</type>
            <size>27370</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY4M2U4NzhjNzI5OTIx
OGMwYzQ2OTk2OGU4MWI5ODFiN2QwZWY5Zi4uZmExYmZmYzk2N2YzN2Y4MjI1ZjBiMzc2ZGE2ZGJi
YjA3YWEyODQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTExLTA5ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhYmlsaXR5IHRv
IGNvbmZpZ3VyZSBkb2N1bWVudC5jb29raWUgbGlmZXRpbWUgY2FwIHRocm91Z2ggdXNlciBkZWZh
dWx0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
NDgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTI0MDg3MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4aXN0aW5nIHRlc3Qg
bWFrZXMgc3VyZSB3ZSBkb24ndCByZWdyZXNzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2Vz
IHRoZSBjYXBwZWQgbGlmZXRpbWUgaW4gc2Vjb25kcyBjb25maWd1cmFibGUgdGhyb3VnaAorICAg
ICAgICB1c2VyIGRlZmF1bHRzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNp
ZGVDb29raWVzKTogRGVsZXRlZC4KKyAgICAgICAgICAgIFJlbmFtZWQgc2V0QWdlQ2FwRm9yQ2xp
ZW50U2lkZUNvb2tpZXMoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6ZmlsdGVyQ29va2ll
cyk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNG
cm9tRE9NIGNvbnN0KToKKwogMjAxOC0xMS0wOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9yIGluIHBhc3N3
b3JkIGZpZWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZDg4MTdiNDE2MWMwMWE4NzdjZGQwYmNjMDlhZTM3OWEx
YzcyYTM1Li44OGRiMjA1NjlkMWNmNmQ2ZTQ0OThjMTVhY2VmZDBlNzEzZjJjZGE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTExLTA5ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhYmlsaXR5IHRvIGNvbmZpZ3VyZSBkb2N1bWVudC5j
b29raWUgbGlmZXRpbWUgY2FwIHRocm91Z2ggdXNlciBkZWZhdWx0cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNDgwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NTI0MDg3MT4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKwor
ICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyB0aGUgY2FwcGVkIGxpZmV0aW1lIGluIHNlY29uZHMg
Y29uZmlndXJhYmxlIHRocm91Z2gKKyAgICAgICAgdXNlciBkZWZhdWx0cy4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNv
b2tpZXMpOiBEZWxldGVkLgorICAgICAgICAgICAgUmVuYW1lZCBzZXRBZ2VDYXBGb3JDbGllbnRT
aWRlQ29va2llcygpLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU6OnJlZ2lzdGVyVXNlckRlZmF1bHRzSWZOZWVkZWQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFNldEFnZUNhcEZvckNsaWVudFNpZGVD
b29raWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxk
Q2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyk6IERlbGV0ZWQuCisgICAgICAgICAgICBS
ZW5hbWVkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKCkuCisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lk
ZUNvb2tpZXMpOiBEZWxldGVkLgorICAgICAgICAgICAgUmVuYW1lZCBkaWRTZXRBZ2VDYXBGb3JD
bGllbnRTaWRlQ29va2llcygpLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjp1cGRhdGVDbGll
bnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZTo6ZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAgICAg
TmV3IGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBhbGwgdGhlIHRoaW5ncyB0aGF0IG5lZWQgdG8gYmUg
ZG9uZSB3aGVuIGEgbmV0d29yaworICAgICAgICAgICAgcHJvY2VzcyBoYXMgYmVlbiBjcmVhdGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkaWRD
cmVhdGVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICAgICBOb3cganVzdCBjYWxscyB0aGUgY29y
cmVzcG9uZGluZyBmdW5jdGlvbiBvbiBpdHMgbWVtb3J5IHN0b3JlIHdoZXJlIGFsbCB0aGUKKyAg
ICAgICAgICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUgYXZhaWxhYmxlLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKToK
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0U2hvdWxkQ2FwTGlmZXRpbWVG
b3JDbGllbnRTaWRlQ29va2llcyk6IERlbGV0ZWQuCisgICAgICAgICAgICBSZW5hbWVkIHNldEFn
ZUNhcEZvckNsaWVudFNpZGVDb29raWVzKCkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKwogMjAxOC0xMS0wOSAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9y
IGluIHBhc3N3b3JkIGZpZWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYWE5ZTQyOGUzOTJlZjlkNTk2
NjFkYzc1NGVmN2M1NWQwMWNiY2Y0OS4uZWZmN2QzNzFjODkxYWMxNGZiNTYwNTFiYTVkNjYzZTFl
M2E3MTA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IHBhZ2VJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9j
a0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNv
dXJjZSwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gcGFnZUlEKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFByZXZhbGVu
dERvbWFpbnNUb0Jsb2NrQ29va2llc0Zvcihjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2ll
cyhib29sIHZhbHVlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFnZUNhcEZvckNsaWVu
dFNpZGVDb29raWVzKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4pOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlu
cyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN0cmlu
ZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKSBjb25zdDsKICAgICBX
RUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcygp
IGNvbnN0OwpAQCAtMTkyLDcgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgSGFzaE1hcDx1aW50NjRfdCwgU3RyaW5nLCBEZWZhdWx0SGFzaDx1aW50NjRfdD46Okhhc2gs
IFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0X3Q+PiwgRGVmYXVsdEhh
c2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVp
bnQ2NF90Pj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBIYXNoTWFwPHVpbnQ2
NF90LCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNo
LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gbV9wYWdlc0dy
YW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbV9jYWNoZU1h
eEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyB7IH07Ci0gICAgYm9vbCBtX3Nob3VsZENhcExp
ZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyBmYWxzZSB9OworICAgIHN0ZDo6b3B0aW9uYWw8
U2Vjb25kcz4gbV9hZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyB7IH07CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAppbmRleCBm
ZmQ2YTYxNGNjZTc4MTcwYTljMTVjN2Q0YThhMzMzNmRhNGJhNDAyLi40YjZkNDNiNDkwNzkyZWY5
NjQyYTgyMGQxM2NlYmZiMDgyYTlmNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0
LmNwcApAQCAtMjczLDkgKzI3Myw5IEBAIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjptYXhBZ2VDYWNoZUNhcChjb25zdCBSZXNvdXJjZVJlcXVlCiAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldFNo
b3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoYm9vbCB2YWx1ZSkKK3ZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhzdGQ6Om9w
dGlvbmFsPFNlY29uZHM+IHNlY29uZHMpCiB7Ci0gICAgbV9zaG91bGRDYXBMaWZldGltZUZvckNs
aWVudFNpZGVDb29raWVzID0gdmFsdWU7CisgICAgbV9hZ2VDYXBGb3JDbGllbnRTaWRlQ29va2ll
cyA9IHNlY29uZHM7CiB9CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRQcmV2YWxl
bnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQppbmRleCBhOWYyNTg1MTIyZGEz
ZmI0MzdjNWNmZTcyM2ZhYzY3Yjc2ZjYyMTA1Li5lMTNlYjM3YzgzOWJkMzViNzMxNzBmZGViMTI5
M2I2NGU3OTE2NGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KQEAg
LTI2MCwxMyArMjYwLDEyIEBAIHN0YXRpYyBOU0FycmF5ICpodHRwQ29va2llc0ZvclVSTChDRkhU
VFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UsIE5TVVJMICpmCiAgICAgcmV0dXJuIGNv
b2tpZXNGb3JVUkwobnNDb29raWVTdG9yYWdlLmdldCgpLCB1cmwsIGZpcnN0UGFydHksIHNhbWVT
aXRlSW5mbyk7CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhO
U0FycmF5ICp1bmZpbHRlcmVkQ29va2llcywgYm9vbCBzaG91bGRDYXBMaWZldGltZSkKK3N0YXRp
YyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29v
a2llcywgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBjYXBwZWRMaWZldGltZSkKIHsKICAgICBBU1NF
UlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29r
aWVzKSk7CiAgICAgTlNVSW50ZWdlciBjb3VudCA9IFt1bmZpbHRlcmVkQ29va2llcyBjb3VudF07
CiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBhZG9wdE5T
KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Y291bnRdKTsKIAotICAg
IGNvbnN0IE5TVGltZUludGVydmFsIHNlY29uZHNQZXJXZWVrID0gNyAqIDI0ICogNjAgKiA2MDsK
ICAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIE5T
SFRUUENvb2tpZSAqY29va2llID0gKE5TSFRUUENvb2tpZSAqKVt1bmZpbHRlcmVkQ29va2llcyBv
YmplY3RBdEluZGV4OmldOwogCkBAIC0yODEsMTAgKzI4MCwxMCBAQCBzdGF0aWMgUmV0YWluUHRy
PE5TQXJyYXk+IGZpbHRlckNvb2tpZXMoTlNBcnJheSAqdW5maWx0ZXJlZENvb2tpZXMsIGJvb2wg
c2hvdWxkQwogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgLy8gQ2FwIGxpZmV0aW1l
IG9mIHBlcnNpc3RlbnQsIGNsaWVudC1zaWRlIGNvb2tpZXMgdG8gYSB3ZWVrLgotICAgICAgICBp
ZiAoc2hvdWxkQ2FwTGlmZXRpbWUgJiYgIVtjb29raWUgaXNTZXNzaW9uT25seV0pIHsKLSAgICAg
ICAgICAgIGlmICghY29va2llLmV4cGlyZXNEYXRlIHx8IGNvb2tpZS5leHBpcmVzRGF0ZS50aW1l
SW50ZXJ2YWxTaW5jZU5vdyA+IHNlY29uZHNQZXJXZWVrKSB7CisgICAgICAgIGlmIChjYXBwZWRM
aWZldGltZSAmJiAhW2Nvb2tpZSBpc1Nlc3Npb25Pbmx5XSkgeworICAgICAgICAgICAgaWYgKCFj
b29raWUuZXhwaXJlc0RhdGUgfHwgY29va2llLmV4cGlyZXNEYXRlLnRpbWVJbnRlcnZhbFNpbmNl
Tm93ID4gY2FwcGVkTGlmZXRpbWUtPnNlY29uZHMoKSkgewogICAgICAgICAgICAgICAgIFJldGFp
blB0cjxOU011dGFibGVEaWN0aW9uYXJ5PE5TSFRUUENvb2tpZVByb3BlcnR5S2V5LCBpZD4+IHBy
b3BlcnRpZXMgPSBhZG9wdE5TKFtbY29va2llIHByb3BlcnRpZXNdIG11dGFibGVDb3B5XSk7Ci0g
ICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TRGF0ZT4gZGF0ZUluQVdlZWsgPSBhZG9wdE5TKFtb
TlNEYXRlIGFsbG9jXSBpbml0V2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OnNlY29uZHNQZXJXZWVr
XSk7CisgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TRGF0ZT4gZGF0ZUluQVdlZWsgPSBhZG9w
dE5TKFtbTlNEYXRlIGFsbG9jXSBpbml0V2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OmNhcHBlZExp
ZmV0aW1lLT5zZWNvbmRzKCldKTsKICAgICAgICAgICAgICAgICBbcHJvcGVydGllcyBzZXRPYmpl
Y3Q6ZGF0ZUluQVdlZWsuZ2V0KCkgZm9yS2V5Ok5TSFRUUENvb2tpZUV4cGlyZXNdOwogICAgICAg
ICAgICAgICAgIGNvb2tpZSA9IFtOU0hUVFBDb29raWUgY29va2llV2l0aFByb3BlcnRpZXM6cHJv
cGVydGllcy5nZXQoKV07CiAgICAgICAgICAgICB9CkBAIC00MDUsNyArNDA0LDcgQEAgdm9pZCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVMKICNlbmRpZgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKLSAgICBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyZWRDb29raWVzID0gZmlsdGVy
Q29va2llcyh1bmZpbHRlcmVkQ29va2llcywgbV9zaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNp
ZGVDb29raWVzKTsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyZWRDb29raWVzID0gZmls
dGVyQ29va2llcyh1bmZpbHRlcmVkQ29va2llcywgbV9hZ2VDYXBGb3JDbGllbnRTaWRlQ29va2ll
cyk7CiAjZWxzZQogICAgIFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBmaWx0
ZXJDb29raWVzKHVuZmlsdGVyZWRDb29raWVzLCBmYWxzZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMDczZjM0ZjNh
ZjFjYWIxZDgyMTFhNGE0Y2Q4YzU4OTMyYjY1MWIyZS4uMTdiMDE2NzcyNDY1MGMyZWQzYmI2ZmEz
ZDlkYzg1ZmI3MDE5ZDA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTUxMCwxMSArNTEwLDExIEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25J
RCBzZXNzCiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6RGlkVXBkYXRlQmxvY2tDb29raWVzKGNvbnRleHRJZCksIDApOwog
fQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNp
ZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgdWludDY0X3Qg
Y29udGV4dElkKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNv
b2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNl
Y29uZHMsIHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1N0b3Jh
Z2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9u
SUQpKQotICAgICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24tPnNldFNob3VsZENhcExpZmV0aW1l
Rm9yQ2xpZW50U2lkZUNvb2tpZXModmFsdWUpOwotICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRpZFNldFNob3VsZENhcExp
ZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMoY29udGV4dElkKSwgMCk7CisgICAgICAgIG5ldHdv
cmtTdG9yYWdlU2Vzc2lvbi0+c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoc2Vjb25kcyk7
CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3NQcm94eTo6RGlkU2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoY29udGV4dElkKSwg
MCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
cGFnZUlELCB1aW50NjRfdCBjb250ZXh0SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYmIwY2U4MzVmYjJiNDliOTdmOWJiNDFkYzlhZjg0
NjMzYzk1NmIxNi4uZGM0MTI1MzljZTkzNDA3NTAwMThlNjNmYzc1NGI2NzQ4MDQyMGFlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTU4
LDcgKzE1OCw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCiAgICAgdm9pZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jaywgdWludDY0
X3QgY29udGV4dElkKTsKLSAgICB2b2lkIHNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lk
ZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIHVpbnQ2NF90IGNvbnRleHRJZCk7
CisgICAgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCwg
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiwgdWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGhh
c1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiByZXNv
dXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBnZXRB
bGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgY29udGV4dElk
KTsKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3Ry
aW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNv
bnRleHRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA3ZmJiMDc0OTQ0OWUwNjRiYjRjNGJkMGJkZThm
YTQyZDE5YTY4M2VlLi5jNzk0N2I5MzQ5ZDk2ODA1YmZjMDNmYTA4MmFkMDFhNjA2MjQ2MmU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTc5LDcgKzc5LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKICAgICBVcGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8U3RyaW5nPiBkb21haW5zVG9CbG9jaywgdWludDY0X3Qg
Y29udGV4dElkKQotICAgIFNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCB1aW50NjRfdCBjb250ZXh0SWQp
CisgICAgU2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMsIHVpbnQ2NF90IGNvbnRleHRJZCkK
ICAgICBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcgcmVzb3VyY2VEb21haW4sIFN0cmluZyBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBHZXRBbGxT
dG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGNv
bnRleHRJZCkKICAgICBHcmFudFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBTdHJpbmcgcmVzb3VyY2VEb21haW4sIFN0cmluZyBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNvbnRl
eHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlQ29jb2EubW0KaW5kZXgg
OGQ5ZDFiYjI2Mjg5NjJiZjVjNWEwZmU5ZmIyYmZjNTU5NzY4MjBhMS4uNjUyYmMxZDgyZDM4ZTA4
OTQxOWZlMzE0YjRjNDU5NDg1ZmQxZGE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlQ29jb2EubW0KQEAgLTU2LDYgKzU2LDEwIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOjpyZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCkKICAgICAg
ICAgU2Vjb25kcyBjYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBkb3VibGVGb3JLZXk6QCJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzQ2FjaGVNYXhBZ2VDYXAiXSk7CiAgICAgICAgIGlmIChjYWNoZU1heEFnZUNhcEZv
clByZXZhbGVudFJlc291cmNlcyA+IDBfcyAmJiBjYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJl
c291cmNlcyA8PSAyNF9oICogMzY1KQogICAgICAgICAgICAgc2V0Q2FjaGVNYXhBZ2VDYXAoY2Fj
aGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMpOworICAgICAgICAKKyAgICAgICAgU2Vj
b25kcyBjbGllbnRTaWRlQ29va2llc0FnZUNhcChbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNl
ckRlZmF1bHRzXSBkb3VibGVGb3JLZXk6QCJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xpZW50U2lk
ZUNvb2tpZXNBZ2VDYXAiXSk7CisgICAgICAgIGlmIChjbGllbnRTaWRlQ29va2llc0FnZUNhcCA+
IDBfcyAmJiBjbGllbnRTaWRlQ29va2llc0FnZUNhcCA8PSAyNF9oICogMzY1KQorICAgICAgICAg
ICAgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoY2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAp
OwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzNzgwZjIyNGVkOThkYWRhYTAwMzVi
OGE3ZjFlMTMyMzE0MmRjZGJjLi5lMTA3ZjViMjY2ZTIxYzJhY2M4MzkzZGM5NzRjOWQ5MWU4ZjU2
N2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTQxNSw3ICs0MTUsNyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmRpZFVwZGF0ZUJsb2NrQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQogICAg
IG1fdXBkYXRlQmxvY2tDb29raWVzQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lkKSgpOwogfQog
Ci12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50
U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTaG91bGRDYXBMaWZldGltZUZv
ckNsaWVudFNpZGVDb29raWVzIHNob3VsZENhcExpZmV0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
dEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3Rk
OjpvcHRpb25hbDxTZWNvbmRzPiBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKSB7CiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC00MjcsMTAgKzQyNywxMCBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMo
UEFMOjpTZXNzaW9uSQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwogICAg
IEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Ci0gICAgc2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50
U2lkZUNvb2tpZXMoc2Vzc2lvbklELCBzaG91bGRDYXBMaWZldGltZSA9PSBTaG91bGRDYXBMaWZl
dGltZUZvckNsaWVudFNpZGVDb29raWVzOjpZZXMsIGNhbGxiYWNrSWQpLCAwKTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMo
c2Vzc2lvbklELCBzZWNvbmRzLCBjYWxsYmFja0lkKSwgMCk7CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6ZGlkU2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyh1
aW50NjRfdCBjYWxsYmFja0lkKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRTZXRBZ2VD
YXBGb3JDbGllbnRTaWRlQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQogewogICAgIG1fdXBk
YXRlQmxvY2tDb29raWVzQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lkKSgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aAppbmRleCBkYzlhZGQxYWRhZjdmNTI1YThmYjY0YjU2ZTAzYjVlMWE0NjQ1ODM1Li4zMzI0MGUz
ZGFjMzIyOWExMjllMjg3ZTgzYzQ3ZjE2ZTMyZTE3MGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtNzksNyAr
NzksNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQog
ICAgIHZvaWQgdXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2ssIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRTaG91bGRDYXBMaWZldGltZUZvckNsaWVu
dFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklELCBTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNp
ZGVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0QWdl
Q2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIHN0ZDo6b3B0aW9uYWw8U2Vj
b25kcz4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBoYXNTdG9yYWdl
QWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21h
aW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsK
ICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYgZG9tYWlucyk+JiYpOwogICAgIHZv
aWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHJlc291
cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjYWxsYmFjayk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUs
IHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKICNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgZGlkVXBkYXRlQmxv
Y2tDb29raWVzKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCBkaWRTZXRTaG91bGRDYXBM
aWZldGltZUZvckNsaWVudFNpZGVDb29raWVzKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9p
ZCBkaWRTZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyh1aW50NjRfdCBjb250ZXh0SWQpOwog
ICAgIHZvaWQgc3RvcmFnZUFjY2Vzc1JlcXVlc3RSZXN1bHQoYm9vbCB3YXNHcmFudGVkLCB1aW50
NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgYWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNSZXN1bHQo
VmVjdG9yPFN0cmluZz4mJiBkb21haW5zLCB1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQg
ZGlkUmVtb3ZlQWxsU3RvcmFnZUFjY2Vzcyh1aW50NjRfdCBjb250ZXh0SWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDA1ZDQ0MmZhZjI5MzAxZTE4MjlmNTEyNjRhZjFhOTkw
NTExOGViZjguLmNkOTZhZmMyNmNjY2VlZjYzMGFjNmYzM2FmMTM5M2UxZDNiMDdhMWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTQzLDcgKzQzLDcgQEAgbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIERpZFVwZGF0ZUJsb2NrQ29va2llcyh1aW50NjRfdCBj
YWxsYmFja0lkKQotICAgIERpZFNldFNob3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tp
ZXModWludDY0X3QgY2FsbGJhY2tJZCkKKyAgICBEaWRTZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29v
a2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQogICAgIFN0b3JhZ2VBY2Nlc3NSZXF1ZXN0UmVzdWx0
KGJvb2wgd2FzR3JhbnRlZCwgdWludDY0X3QgY29udGV4dElkKQogICAgIEFsbFN0b3JhZ2VBY2Nl
c3NFbnRyaWVzUmVzdWx0KFZlY3RvcjxTdHJpbmc+IGRvbWFpbnMsIHVpbnQ2NF90IGNvbnRleHRJ
ZCkKICAgICBEaWRSZW1vdmVBbGxTdG9yYWdlQWNjZXNzKHVpbnQ2NF90IGNvbnRleHRJZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IDZkOTliZTk4YWMxYTMwMzA5OGY3YzQwZDlhZDMw
MjM5NjI1NDBhYjAuLmM5ZDIyZjY3NjNmYjdhZGM2Y2U5MTIwMTU5ODIyMDc1NjhmNjAwYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcApAQCAtODQ4LDYgKzg0OCwyNyBAQCB2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6dXBkYXRlQ2FjaGVNYXhBZ2VDYXAoKQogICAg
IH0pOwogfQogCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6c2V0QWdl
Q2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoU2Vjb25kcyBzZWNvbmRzKQoreworICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOworICAgIEFTU0VSVChzZWNvbmRzID49IDBfcyk7CisgICAgCisg
ICAgbV9wYXJhbWV0ZXJzLmNsaWVudFNpZGVDb29raWVzQWdlQ2FwVGltZSA9IHNlY29uZHM7Cisg
ICAgdXBkYXRlQ2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoKTsKK30KKwordm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnVwZGF0ZUNsaWVudFNpZGVDb29raWVzQWdlQ2FwKCkK
K3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtzdG9yZSA9
IG1ha2VSZWYobV9zdG9yZSksIHNlY29uZHMgPSBtX3BhcmFtZXRlcnMuY2xpZW50U2lkZUNvb2tp
ZXNBZ2VDYXBUaW1lXSAoKSB7CisgICAgICAgIGlmIChhdXRvKiB3ZWJzaXRlRGF0YVN0b3JlID0g
c3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKSkKKyAgICAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUt
PnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKHNlY29uZHMsIFtdIHsgfSk7CisgICAgfSk7
CisjZW5kaWYKK30KKwogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnNo
b3VsZFJlbW92ZURhdGFSZWNvcmRzKCkgY29uc3QKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKQEAgLTEyNjQsNCArMTI4NSwxMyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9uSGFuZGxlcgog
ICAgIH0pOwogfQogCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6ZGlk
Q3JlYXRlTmV0d29ya1Byb2Nlc3MoKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OworCisgICAgdXBkYXRlQ29va2llQmxvY2tpbmcoW10oKSB7IH0pOworICAgIHVwZGF0ZUNhY2hl
TWF4QWdlQ2FwKCk7CisgICAgdXBkYXRlQ2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IGQyZTg4NmU2
ZjJiMGM5ODQ2NWJmOWY0MDU2NTNlYWFlNmU4OGU2NzYuLjY1YjNmMThmMjBhZjY1YTIyMDJiYzQ1
NTg4NmUwMDg4M2UzMDFmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBAIC0xMTIsOCArMTEy
LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihTZWNv
bmRzKTsKICAgICB2b2lkIHNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChT
ZWNvbmRzKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzKTsKLSAgICB2
b2lkIHNldENhY2hlTWF4QWdlQ2FwKFNlY29uZHMpOwotICAgIHZvaWQgdXBkYXRlQ2FjaGVNYXhB
Z2VDYXAoKTsKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9v
bCk7CiAgICAgYm9vbCBpc0RlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2RlYnVn
TW9kZUVuYWJsZWQ7IH07CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9k
ZShjb25zdCBTdHJpbmcmIGRvbWFpbik7CkBAIC0xMzAsNiArMTI4LDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBTdHJpbmcmIHByaW1hcnlEb21haW4sIFNlY29uZHMp
OwogCisgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpOworCiBwcml2YXRlOgogICAg
IHN0YXRpYyBib29sIHNob3VsZEJsb2NrQW5kS2VlcENvb2tpZXMoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIHN0YXRpYyBib29sIHNob3VsZEJsb2NrQW5kUHVy
Z2VDb29raWVzKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKQEAgLTE1
Miw2ICsxNTIsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBydW5lU3RhdGlzdGljc0lmTmVlZGVk
KCk7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgZW5zdXJlUmVzb3VyY2VT
dGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbihjb25zdCBTdHJpbmcmKTsKICAgICBWZWN0b3I8U3Ry
aW5nPiB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3Io
KTsKKyAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFNlY29uZHMpOworICAgIHZvaWQgdXBkYXRl
Q2FjaGVNYXhBZ2VDYXAoKTsKKyAgICB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVz
KFNlY29uZHMpOworICAgIHZvaWQgdXBkYXRlQ2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoKTsKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgcmVnaXN0ZXJVc2VyRGVmYXVsdHNJZk5lZWRl
ZCgpOwpAQCAtMTY0LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIFNlY29uZHMgbWluaW11
bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsIHsgMV9oIH07CiAgICAgICAgIFNlY29uZHMg
Z3JhbmRmYXRoZXJpbmdUaW1lIHsgMjRfaCAqIDcgfTsKICAgICAgICAgU2Vjb25kcyBjYWNoZU1h
eEFnZUNhcFRpbWUgeyAyNF9oICogNyB9OworICAgICAgICBTZWNvbmRzIGNsaWVudFNpZGVDb29r
aWVzQWdlQ2FwVGltZSB7IDI0X2ggKiA3IH07CiAgICAgICAgIGJvb2wgc2hvdWxkTm90aWZ5UGFn
ZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgc2hv
dWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwgeyB0cnVlIH07CiAg
ICAgICAgIGJvb2wgc2hvdWxkU3VibWl0VGVsZW1ldHJ5IHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHAKaW5kZXggNmFkMDc5ZDUwYzQ5YmJjZmNhZTNlZmU2MjE2NDQxNDhmMGY3Y2I3ZC4uMDM0
MTJhN2QxMGVjM2VlMzc0ZDBkMzVjNjM0YjA2MGViN2MwM2MzZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwCkBAIC0zMjksMTQgKzMyOSw4IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpCiAgICAgcG9zdFRhc2soW3RoaXNdIHsKICAg
ICAgICAgaWYgKCFtX21lbW9yeVN0b3JlKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBt
X21lbW9yeVN0b3JlLT51cGRhdGVDb29raWVCbG9ja2luZyhbXSgpIHsgfSk7Ci0gICAgICAgIG1f
bWVtb3J5U3RvcmUtPnVwZGF0ZUNhY2hlTWF4QWdlQ2FwKCk7CisgICAgICAgIG1fbWVtb3J5U3Rv
cmUtPmRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgfSk7Ci0KLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCi0gICAg
ICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRl
Q29va2llcyhTaG91bGRDYXBMaWZldGltZUZvckNsaWVudFNpZGVDb29raWVzOjpZZXMsIFtdKCkg
eyB9KTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDc1ODExYjNiMWYxMzBjYmMzMjQ0ZWRh
Zjc5MGI5ZGI3OWQzYjI2ZjkuLjcyZDk5MDg4MzAwOTQ2NGY3NDVmYTE2ZTI2YzEyYTkxYjVkOWU4
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0xNDAsNiArMTQwLDggQEAgcHVibGljOgogCiAgICAg
dm9pZCBkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpOwogCisgICAgV2Vic2l0ZURhdGFTdG9yZSog
d2Vic2l0ZURhdGFTdG9yZSgpIHsgcmV0dXJuIG1fd2Vic2l0ZURhdGFTdG9yZS5nZXQoKTsgfQor
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShX
ZWJzaXRlRGF0YVN0b3JlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMWEyNTViODk1NjJkZTU4
NDRiYmYzMjIxY2M0YjdlODIyMmY5YzY0OC4uNjNjMzJkN2Q1Mjg4N2JjYjEzNzJjZTZhMTZlZGYz
MDQzNGMwY2NmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTEyNjYsMTMgKzEyNjYsMTMgQEAgdm9p
ZCBXZWJzaXRlRGF0YVN0b3JlOjp1cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNG
b3IoY29uc3QgVmVjdG9yPFN0cmkKICAgICB9CiB9CiAKLXZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
c2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhTaG91bGRDYXBMaWZldGlt
ZUZvckNsaWVudFNpZGVDb29raWVzIHNob3VsZENhcExpZmV0aW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNl
dEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25k
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIAogICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bv
b2wgOiBwcm9jZXNzUG9vbHMoKSkgewogICAgICAgICBpZiAoYXV0byogcHJvY2VzcyA9IHByb2Nl
c3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQotICAgICAgICAgICAgcHJvY2Vzcy0+c2V0U2hvdWxk
Q2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhtX3Nlc3Npb25JRCwgc2hvdWxkQ2FwTGlm
ZXRpbWUsIFtwcm9jZXNzUG9vbCwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdh
dG9yLmNvcHlSZWYoKV0geyB9KTsKKyAgICAgICAgICAgIHByb2Nlc3MtPnNldEFnZUNhcEZvckNs
aWVudFNpZGVDb29raWVzKG1fc2Vzc2lvbklELCBzZWNvbmRzLCBbcHJvY2Vzc1Bvb2wsIGNhbGxi
YWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggYmQ1NzkxM2QzOTk0NzQ1MWQwZTk5YTBhZDVmMThiOTgz
YWUxMDMxZS4uMTM0MmE1ZmIxZWU4MjcwYTU3YmJjOTQ4OWI1ZjQ1YjhiODkxODdiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaApAQCAtNzQsOCArNzQsNiBAQCBlbnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRT
dGF0dXM7CiBzdHJ1Y3QgUGx1Z2luTW9kdWxlSW5mbzsKICNlbmRpZgogCi1lbnVtIGNsYXNzIFNo
b3VsZENhcExpZmV0aW1lRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyBObywgWWVzIH07Ci0KIGNsYXNz
IFdlYnNpdGVEYXRhU3RvcmUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJzaXRlRGF0YVN0b3JlPiwg
cHVibGljIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLCBwdWJsaWMgSWRlbnRpZmllZDxXZWJz
aXRlRGF0YVN0b3JlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYnNpdGVEYXRhU3RvcmU+ICB7
CiBwdWJsaWM6CiAgICAgY29uc3RleHByIHN0YXRpYyB1aW50NjRfdCBkZWZhdWx0Q2FjaGVTdG9y
YWdlUGVyT3JpZ2luUXVvdGEgPSA1MCAqIDEwMjQgKiAxMDI0OwpAQCAtMTM4LDcgKzEzNiw3IEBA
IHB1YmxpYzoKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdm9p
ZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRvbWFpbnNUb0Jsb2NrLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAg
IHZvaWQgc2V0U2hvdWxkQ2FwTGlmZXRpbWVGb3JDbGllbnRTaWRlQ29va2llcyhTaG91bGRDYXBM
aWZldGltZUZvckNsaWVudFNpZGVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OworICAgIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoc3RkOjpvcHRpb25hbDxT
ZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGhhc1N0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBw
YWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmKTsKICAgICB2
b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGRvbWFpbnMpPiYmKTsKICAgICB2b2lkIGdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCB3YXNHcmFu
dGVkKT4mJik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>