<?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>189199</bug_id>
          
          <creation_ts>2018-08-31 10:36:34 -0700</creation_ts>
          <short_desc>Assertion hit in ~CompletionHandler() from ~WebFrame()</short_desc>
          <delta_ts>2018-08-31 13:15:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1455754</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 10:36:34 -0700</bug_when>
    <thetext>Assertion hit in ~CompletionHandler() from ~WebFrame():
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x00000005e8d9bdb0 WTFCrash + 16 (Assertions.cpp:267)
1   com.apple.WebCore             	0x00000005d8b1de83 WTF::CompletionHandler&lt;void ()&gt;::~CompletionHandler() + 115 (CompletionHandler.h:51)
2   com.apple.WebCore             	0x00000005d8b1d6e5 WTF::CompletionHandler&lt;void ()&gt;::~CompletionHandler() + 21 (CompletionHandler.h:52)
3   com.apple.WebCore             	0x00000005da8251f1 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WTF::CompletionHandler&lt;void ()&gt; &gt;::~CallableWrapper() + 49 (Function.h:91)
4   com.apple.WebCore             	0x00000005da825165 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WTF::CompletionHandler&lt;void ()&gt; &gt;::~CallableWrapper() + 21 (Function.h:91)
5   com.apple.WebCore             	0x00000005da825189 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WTF::CompletionHandler&lt;void ()&gt; &gt;::~CallableWrapper() + 25 (Function.h:91)
6   com.apple.WebKit              	0x000000010862319f WTF::Function&lt;void ()&gt;::~Function() + 175 (memory:2598)
7   com.apple.WebKit              	0x0000000108622235 WTF::Function&lt;void ()&gt;::~Function() + 21 (Function.h:33)
8   com.apple.WebKit              	0x00000001086a9a79 WTF::KeyValuePair&lt;unsigned long long, WTF::Function&lt;void ()&gt; &gt;::~KeyValuePair() + 25 (KeyValuePair.h:33)
9   com.apple.WebKit              	0x00000001086a9a45 WTF::KeyValuePair&lt;unsigned long long, WTF::Function&lt;void ()&gt; &gt;::~KeyValuePair() + 21 (KeyValuePair.h:33)
10  com.apple.WebKit              	0x00000001086a99da WTF::HashTable&lt;unsigned long long, WTF::KeyValuePair&lt;unsigned long long, WTF::Function&lt;void ()&gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned long long, WTF::Function&lt;void ()&gt; &gt; &gt;, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashMap&lt;unsigned long long, WTF::Function&lt;void ()&gt;, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt;, WTF::HashTraits&lt;WTF::Function&lt;void ()&gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;unsigned long long&gt; &gt;::deallocateTable(WTF::KeyValuePair&lt;unsigned long long, WTF::Function&lt;void ()&gt; &gt;*, unsigned int) + 90 (HashTable.h:1159)
11  com.apple.WebKit              	0x00000001086a97c9 WTF::HashTable&lt;unsigned long long, WTF::KeyValuePair&lt;unsigned long long, WTF::Function&lt;void ()&gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned long long, WTF::Function&lt;void ()&gt; &gt; &gt;, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashMap&lt;unsigned long long, WTF::Function&lt;void ()&gt;, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt;, WTF::HashTraits&lt;WTF::Function&lt;void ()&gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;unsigned long long&gt; &gt;::~HashTable() + 57
12  com.apple.WebKit              	0x00000001086a9785 WTF::HashTable&lt;unsigned long long, WTF::KeyValuePair&lt;unsigned long long, WTF::Function&lt;void ()&gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned long long, WTF::Function&lt;void ()&gt; &gt; &gt;, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashMap&lt;unsigned long long, WTF::Function&lt;void ()&gt;, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt;, WTF::HashTraits&lt;WTF::Function&lt;void ()&gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;unsigned long long&gt; &gt;::~HashTable() + 21 (HashTable.h:365)
13  com.apple.WebKit              	0x00000001086a9765 WTF::HashMap&lt;unsigned long long, WTF::Function&lt;void ()&gt;, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt;, WTF::HashTraits&lt;WTF::Function&lt;void ()&gt; &gt; &gt;::~HashMap() + 21 (HashMap.h:36)
14  com.apple.WebKit              	0x000000010869b7e5 WTF::HashMap&lt;unsigned long long, WTF::Function&lt;void ()&gt;, WTF::IntHash&lt;unsigned long long&gt;, WTF::HashTraits&lt;unsigned long long&gt;, WTF::HashTraits&lt;WTF::Function&lt;void ()&gt; &gt; &gt;::~HashMap() + 21 (HashMap.h:36)
15  com.apple.WebKit              	0x00000001094971ef WebKit::WebFrame::~WebFrame() + 335 (WebFrame.cpp:169)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455755</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 10:36:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/42657233&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455757</commentid>
    <comment_count>2</comment_count>
      <attachid>348649</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 10:39:05 -0700</bug_when>
    <thetext>Created attachment 348649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455764</commentid>
    <comment_count>3</comment_count>
      <attachid>348649</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-08-31 10:51:06 -0700</bug_when>
    <thetext>Comment on attachment 348649
Patch

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

&gt; Source/WebCore/loader/EmptyClients.cpp:461
&gt; +void EmptyFrameLoaderClient::dispatchWillSubmitForm(FormState&amp;, CompletionHandler&lt;void(void)&gt;&amp;&amp; completionHandler)

s/void(void)/void()/ here and below?

&gt; Source/WebKit/WebProcess/WebPage/WebFrame.cpp:252
&gt; +        completionHandler();

Should we be safe here and move m_willSubmitFormCompletionHandlers.values in a local variable as well.
Then no need to clear it anymore below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455767</commentid>
    <comment_count>4</comment_count>
      <attachid>348652</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 10:58:09 -0700</bug_when>
    <thetext>Created attachment 348652
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455774</commentid>
    <comment_count>5</comment_count>
      <attachid>348652</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-31 11:05:42 -0700</bug_when>
    <thetext>Comment on attachment 348652
Patch

Hooray!  CompletionHandlers found and fixed a loading bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455795</commentid>
    <comment_count>6</comment_count>
      <attachid>348652</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-31 12:00:30 -0700</bug_when>
    <thetext>Comment on attachment 348652
Patch

Clearing flags on attachment: 348652

Committed r235562: &lt;https://trac.webkit.org/changeset/235562&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455796</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-31 12:00:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455814</commentid>
    <comment_count>8</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-08-31 12:52:19 -0700</bug_when>
    <thetext>This change broke the Windows build:
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKitLegacy\win\WebCoreSupport\WebFrameLoaderClient.cpp(626): error C3848: expression having type &apos;const WTF::CompletionHandler&lt;void (void)&gt;&apos; would lose some const-volatile qualifiers in order to call &apos;void WTF::CompletionHandler&lt;void (void)&gt;::operator ()(void)&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]

https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/11591/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455830</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 13:13:24 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #8)
&gt; This change broke the Windows build:
&gt; C:\cygwin\home\buildbot\slave\win-
&gt; release\build\Source\WebKitLegacy\win\WebCoreSupport\WebFrameLoaderClient.
&gt; cpp(626): error C3848: expression having type &apos;const
&gt; WTF::CompletionHandler&lt;void (void)&gt;&apos; would lose some const-volatile
&gt; qualifiers in order to call &apos;void WTF::CompletionHandler&lt;void
&gt; (void)&gt;::operator ()(void)&apos;
&gt; [C:\cygwin\home\buildbot\slave\win-
&gt; release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
&gt; 
&gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; 11591/steps/compile-webkit/logs/stdio

Thanks, will fix now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455831</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 13:15:48 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #9)
&gt; (In reply to Ryan Haddad from comment #8)
&gt; &gt; This change broke the Windows build:
&gt; &gt; C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\Source\WebKitLegacy\win\WebCoreSupport\WebFrameLoaderClient.
&gt; &gt; cpp(626): error C3848: expression having type &apos;const
&gt; &gt; WTF::CompletionHandler&lt;void (void)&gt;&apos; would lose some const-volatile
&gt; &gt; qualifiers in order to call &apos;void WTF::CompletionHandler&lt;void
&gt; &gt; (void)&gt;::operator ()(void)&apos;
&gt; &gt; [C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
&gt; &gt; 
&gt; &gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; &gt; 11591/steps/compile-webkit/logs/stdio
&gt; 
&gt; Thanks, will fix now.

Should be fixed as of  &lt;https://trac.webkit.org/changeset/235566&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348649</attachid>
            <date>2018-08-31 10:39:05 -0700</date>
            <delta_ts>2018-08-31 10:58:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189199-20180831103904.patch</filename>
            <type>text/plain</type>
            <size>17475</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhiYTEwNTkwYjQyZWFh
NTg4Mzg0OTFmNTFhYzNmYTk2NTQ3NzhjMi4uMGM0YWY3MTcyMjA1OTI4ODk4YjBhZGQyMjMzNTZm
YTk5YTA2NmIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTA4LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGhpdCBpbiB+
Q29tcGxldGlvbkhhbmRsZXIoKSBmcm9tIH5XZWJGcmFtZSgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkxOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQyNjU3MjMzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBpc3N1ZSB3YXMgY2F1c2VkIGJ5IFdlYkZyYW1lOjptX3dpbGxTdWJtaXRGb3Jt
Q29tcGxldGlvbkhhbmRsZXJzIGltcGxpY2l0bHkgY29udGFpbmluZworICAgICAgICBDb21wbGV0
aW9uSGFuZGxlcnMgKHdyYXBwZWQgaW4gV1RGOjpGdW5jdGlvbnMpIGFuZCBub3QgY2FsbGluZyB0
aGVtIHVwb24gV2ViRnJhbWUKKyAgICAgICAgZGVzdHJ1Y3Rpb24uCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBjb3ZlcmVkIGJ5IGZhc3QvZnJhbWVzL2lmcmFtZS10YXJnZXQuaHRtbC4KKworICAg
ICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybSk6CisgICAgICAgICogbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKwogMjAxOC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0RhdGFsaXN0XVtpT1NdIEFkZCBzdWdnZXN0aW9ucyBVSSBmb3Ig
VGV4dEZpZWxkSW5wdXRUeXBlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyN2ZhN2NmNzEyM2FkODAwNGEwMWM5ZmIw
OWRkMTFjMjRjZTAzNWJhLi41Mzk4YjA4ZjZhZjdjOWRlMjVhNTYzZjc2NWIwYWEwZGRhMjY1NTI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTA4LTMxICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGhpdCBpbiB+Q29tcGxldGlvbkhh
bmRsZXIoKSBmcm9tIH5XZWJGcmFtZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODkxOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQyNjU3MjMz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWU6On5XZWJGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
OjpzZXRVcFdpbGxTdWJtaXRGb3JtTGlzdGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZTo6aW52YWxpZGF0ZVBvbGljeUxpc3RlbmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaDoKKwogMjAxOC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0RhdGFsaXN0XVtpT1NdIEFkZCBzdWdnZXN0aW9ucyBVSSBm
b3IgVGV4dEZpZWxkSW5wdXRUeXBlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDY4
NWVjZjJiOTBlNGU1MzI4YjRkNDYzMWM2MmUzNDEyMDEwNjhmN2YuLjg4ZTMyOTBhZTI1ZjQwNTI3
YmMxMzBhMWZhZDU4OGM0NzFlMjFkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxOC0wOC0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIEFzc2VydGlvbiBoaXQgaW4gfkNvbXBsZXRpb25IYW5kbGVyKCkgZnJvbSB+
V2ViRnJhbWUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg5MTk5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MjY1NzIzMz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hX
aWxsU3VibWl0Rm9ybSk6CisKIDIwMTgtMDgtMzEgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIEJ1ZyAxODIwNTMgLSBbQ1NTT00gVmlld10gSW1wbGVtZW50IHN0
YW5kYXJkIGJlaGF2aW9yIGZvciBzY3JvbGxpbmdFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cKaW5kZXggYzJiOWIxYTgyNGM3YTU3YTRjNjlkMDM2MjY0ODZhYjk0MzRjNzcwMy4uZmI3
ZGViM2M4YWUzODc2NjBjY2NmZGFhZjg5NjQ5N2RjYTQ0YTJlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA4LTMxICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGhpdCBpbiB+Q29tcGxldGlvbkhh
bmRsZXIoKSBmcm9tIH5XZWJGcmFtZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODkxOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQyNjU3MjMz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMTgtMDgtMzEgIEZyZWRlcmljIFdh
bmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEJ1ZyAxODIwNTMgLSBbQ1NTT00gVmll
d10gSW1wbGVtZW50IHN0YW5kYXJkIGJlaGF2aW9yIGZvciBzY3JvbGxpbmdFbGVtZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGNhZDRiZDgxZDQ1ZDEzY2VhYzQ2
ZmY1ZmU4ZWU5ZGU0N2Y0YjVmYzcuLjM1ZTAyNzAyZTA3Y2E2MTE3YWE2NmY0N2I0OGQwM2Q2MzA1
ZWZhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC00NTgsOCAr
NDU4LDkgQEAgdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kU3Vi
bWl0RXZlbnQoUmVmPEZvcm1TdGF0ZT4mJikKIHsKIH0KIAotdm9pZCBFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZvcm1TdGF0ZSYsIFdURjo6RnVuY3Rpb248
dm9pZCh2b2lkKT4mJikKK3ZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxs
U3VibWl0Rm9ybShGb3JtU3RhdGUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHZvaWQpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogeworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIFJlZjxE
b2N1bWVudExvYWRlcj4gRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRG9jdW1lbnRMb2Fk
ZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYg
c3Vic3RpdHV0ZURhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlG
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQuaAppbmRleCAzNzRhYjhhMzczYjU2OTBmMzAxMzczOWU0MmJjZDJjOWRjYThkMDNi
Li42ZjQ4MDgxNzFhZjhhM2JiNTc0ZWRhNzYyODdlNzhjNTg2ZDQ3N2MyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEwMSw3ICsxMDEs
NyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGlj
IEZyYW1lTG9hZGVyQ2xpZW50IHsKICAgICB2b2lkIGRpc3BhdGNoVW5hYmxlVG9JbXBsZW1lbnRQ
b2xpY3koY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsIHsgfQogCiAgICAgdm9pZCBkaXNwYXRj
aFdpbGxTZW5kU3VibWl0RXZlbnQoUmVmPEZvcm1TdGF0ZT4mJikgZmluYWw7Ci0gICAgdm9pZCBk
aXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZvcm1TdGF0ZSYsIFdURjo6RnVuY3Rpb248dm9pZCh2b2lk
KT4mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZvcm1TdGF0ZSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQodm9pZCk+JiYpIGZpbmFsOwogCiAgICAgdm9pZCByZXZl
cnRUb1Byb3Zpc2lvbmFsU3RhdGUoRG9jdW1lbnRMb2FkZXIqKSBmaW5hbCB7IH0KICAgICB2b2lk
IHNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJv
ciYpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApp
bmRleCAwNzRlNTQxZjNiY2E1YTFhZGZmYjUxNjY1MTU0ZWRhZmZlNTNjMmJlLi41NTU3NTQyZmY1
MDA5MTM2ODU5MDE1NDU5Y2Q5N2FmOWQ5OGZmNzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTk5LDcgKzE5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBSZXNvdXJjZUVy
cm9yJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVu
dChSZWY8Rm9ybVN0YXRlPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFN1
Ym1pdEZvcm0oRm9ybVN0YXRlJiwgV1RGOjpGdW5jdGlvbjx2b2lkKHZvaWQpPiYmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oRm9ybVN0YXRlJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCh2b2lkKT4mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJldmVy
dFRvUHJvdmlzaW9uYWxTdGF0ZShEb2N1bWVudExvYWRlciopID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVy
cm9yJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMWI5NGJiYzcw
YWQ3YTgxNDM0OWJjODdmNDgxNWJjM2I0ZjYzYzBjOS4uZmUwMjE5ZjMzYTY1NmRkMGViYjBlMjZj
M2JkZTA3YTIyNDgxNGE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC05
NDAsMTEgKzk0MCwxMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxT
ZW5kU3VibWl0RXZlbnQoUmVmPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdAogICAgIHdlYlBhZ2UtPmlu
amVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLndpbGxTZW5kU3VibWl0RXZlbnQod2ViUGFnZSwgJmZv
cm0sIG1fZnJhbWUsIHNvdXJjZUZyYW1lLCBmb3JtU3RhdGUtPnRleHRGaWVsZFZhbHVlcygpKTsK
IH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShG
b3JtU3RhdGUmIGZvcm1TdGF0ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKHZvaWQpPiYmIGZ1bmN0aW9u
KQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGb3Jt
U3RhdGUmIGZvcm1TdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh2b2lkKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwot
ICAgIGlmICghd2ViUGFnZSkKKyAgICBpZiAoIXdlYlBhZ2UpIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8mIGZvcm0gPSBm
b3JtU3RhdGUuZm9ybSgpOwogCkBAIC05NTgsNyArOTYwLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGb3JtU3RhdGUmIGZvcm1TdGF0ZSwgV1RG
OjpGdW4KICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogICAgIHdlYlBhZ2UtPmlu
amVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLndpbGxTdWJtaXRGb3JtKHdlYlBhZ2UsICZmb3JtLCBt
X2ZyYW1lLCBzb3VyY2VGcmFtZSwgdmFsdWVzLCB1c2VyRGF0YSk7CiAKLSAgICB1aW50NjRfdCBs
aXN0ZW5lcklEID0gbV9mcmFtZS0+c2V0VXBXaWxsU3VibWl0Rm9ybUxpc3RlbmVyKFdURk1vdmUo
ZnVuY3Rpb24pKTsKKyAgICB1aW50NjRfdCBsaXN0ZW5lcklEID0gbV9mcmFtZS0+c2V0VXBXaWxs
U3VibWl0Rm9ybUxpc3RlbmVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIAogICAgIHdl
YlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6V2lsbFN1Ym1pdEZvcm0obV9mcmFt
ZS0+ZnJhbWVJRCgpLCBzb3VyY2VGcmFtZS0+ZnJhbWVJRCgpLCB2YWx1ZXMsIGxpc3RlbmVySUQs
IFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRs
ZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCAyNTQ1NjhlNDI3ZDE0Mjc0ZGUyNDA1MjM1ZjNhOWRhNGQ1MDYyZWExLi5iYzZiMmRj
OWNjZDc1YzgzM2ZmM2VjYWY5NGUzZWUzMmY1ZGU0ZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaFVu
YWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5h
bDsKICAgICAKICAgICB2b2lkIGRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChSZWY8V2ViQ29y
ZTo6Rm9ybVN0YXRlPiYmKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0o
V2ViQ29yZTo6Rm9ybVN0YXRlJiwgV1RGOjpGdW5jdGlvbjx2b2lkKHZvaWQpPiYmKSBmaW5hbDsK
KyAgICB2b2lkIGRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6Rm9ybVN0YXRlJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCh2b2lkKT4mJikgZmluYWw7CiAgICAgCiAgICAgdm9pZCByZXZl
cnRUb1Byb3Zpc2lvbmFsU3RhdGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBmaW5hbDsKICAg
ICB2b2lkIHNldE1haW5Eb2N1bWVudEVycm9yKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IGY2MmQxZGQ5ZWM1NjA5Yzk4ZjM1NDAy
MjgzMWFhNTU5NmViNjA1NDMuLjA1ZDVkNzE0M2JmYjIwYzNmZTQyMjkyMDU1MWE1ZWFjN2FhOWYy
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAK
QEAgLTE2Myw2ICsxNjMsMTAgQEAgV2ViRnJhbWU6On5XZWJGcmFtZSgpCiB7CiAgICAgQVNTRVJU
KCFtX2NvcmVGcmFtZSk7CiAKKyAgICBhdXRvIHdpbGxTdWJtaXRGb3JtQ29tcGxldGlvbkhhbmRs
ZXJzID0gV1RGTW92ZShtX3dpbGxTdWJtaXRGb3JtQ29tcGxldGlvbkhhbmRsZXJzKTsKKyAgICBm
b3IgKGF1dG8mIGNvbXBsZXRpb25IYW5kbGVyIDogd2lsbFN1Ym1pdEZvcm1Db21wbGV0aW9uSGFu
ZGxlcnMudmFsdWVzKCkpCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisKICNpZm5kZWYg
TkRFQlVHCiAgICAgd2ViRnJhbWVDb3VudGVyLmRlY3JlbWVudCgpOwogI2VuZGlmCkBAIC0yMTks
NyArMjIzLDcgQEAgdWludDY0X3QgV2ViRnJhbWU6OnNldFVwUG9saWN5TGlzdGVuZXIoV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmIHBvbGljeUZ1bmMKICAgICByZXR1cm4gbV9wb2xpY3lM
aXN0ZW5lcklEOwogfQogCi11aW50NjRfdCBXZWJGcmFtZTo6c2V0VXBXaWxsU3VibWl0Rm9ybUxp
c3RlbmVyKFdURjo6RnVuY3Rpb248dm9pZCh2b2lkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Vp
bnQ2NF90IFdlYkZyYW1lOjpzZXRVcFdpbGxTdWJtaXRGb3JtTGlzdGVuZXIoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCh2b2lkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICB1aW50NjRfdCBp
ZGVudGlmaWVyID0gZ2VuZXJhdGVMaXN0ZW5lcklEKCk7CiAgICAgaW52YWxpZGF0ZVBvbGljeUxp
c3RlbmVyKCk7CkBAIC0yNDQsOCArMjQ4LDggQEAgdm9pZCBXZWJGcmFtZTo6aW52YWxpZGF0ZVBv
bGljeUxpc3RlbmVyKCkKICAgICBpZiAoYXV0byBmdW5jdGlvbiA9IHN0ZDo6ZXhjaGFuZ2UobV9w
b2xpY3lGdW5jdGlvbiwgbnVsbHB0cikpCiAgICAgICAgIGZ1bmN0aW9uKFBvbGljeUFjdGlvbjo6
SWdub3JlKTsKICAgICBtX3BvbGljeUZ1bmN0aW9uRm9yTmF2aWdhdGlvbkFjdGlvbiA9IEZvck5h
dmlnYXRpb25BY3Rpb246Ok5vOwotICAgIGZvciAoYXV0byYgZnVuY3Rpb24gOiBtX3dpbGxTdWJt
aXRGb3JtQ29tcGxldGlvbkhhbmRsZXJzLnZhbHVlcygpKQotICAgICAgICBmdW5jdGlvbigpOwor
ICAgIGZvciAoYXV0byYgY29tcGxldGlvbkhhbmRsZXIgOiBtX3dpbGxTdWJtaXRGb3JtQ29tcGxl
dGlvbkhhbmRsZXJzLnZhbHVlcygpKQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAg
IG1fd2lsbFN1Ym1pdEZvcm1Db21wbGV0aW9uSGFuZGxlcnMuY2xlYXIoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggYTczZDIyZGI3MjM3
NzUyM2JlOGJiZTA4OWZhMTU3NzgyODliZGYyYi4uMTQ0Mjc2YWZkZmM4ODkxZjI5ZDM4YzRiNjQ2
NDcxMGIzM2EzYjVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5oCkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGVQb2xp
Y3lMaXN0ZW5lcigpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90
IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBEb3dubG9hZElELCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYpOwogCi0g
ICAgdWludDY0X3Qgc2V0VXBXaWxsU3VibWl0Rm9ybUxpc3RlbmVyKFdURjo6RnVuY3Rpb248dm9p
ZCh2b2lkKT4mJik7CisgICAgdWludDY0X3Qgc2V0VXBXaWxsU3VibWl0Rm9ybUxpc3RlbmVyKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQodm9pZCk+JiYpOwogICAgIHZvaWQgY29udGludWVXaWxsU3Vi
bWl0Rm9ybSh1aW50NjRfdCk7CiAKICAgICB2b2lkIHN0YXJ0RG93bmxvYWQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsK
QEAgLTE4Myw3ICsxODMsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fcG9saWN5TGlzdGVu
ZXJJRCB7IDAgfTsKICAgICBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uIG1fcG9saWN5RnVu
Y3Rpb247CiAgICAgRm9yTmF2aWdhdGlvbkFjdGlvbiBtX3BvbGljeUZ1bmN0aW9uRm9yTmF2aWdh
dGlvbkFjdGlvbiB7IEZvck5hdmlnYXRpb25BY3Rpb246Ok5vIH07Ci0gICAgSGFzaE1hcDx1aW50
NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkKHZvaWQpPj4gbV93aWxsU3VibWl0Rm9ybUNvbXBsZXRp
b25IYW5kbGVyczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHZvaWQpPj4gbV93aWxsU3VibWl0Rm9ybUNvbXBsZXRpb25IYW5kbGVyczsKICAgICBEb3dubG9h
ZElEIG1fcG9saWN5RG93bmxvYWRJRCB7IDAgfTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJG
cmFtZUxvYWRlckNsaWVudD4gbV9mcmFtZUxvYWRlckNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IDdkMTVjODIyMTQ5YjgxY2QzOWJmOThjMWNmZWRiZTE4YTgxZDE0NTEuLjJl
Y2ZlMjQyNTJhNDRjNmVhMmZiYjUzOTBlNTVmZDlhZGVhNThhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRj
aFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBm
aW5hbDsKIAogICAgIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFJlZjxXZWJDb3Jl
OjpGb3JtU3RhdGU+JiYpIGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShX
ZWJDb3JlOjpGb3JtU3RhdGUmLCBXVEY6OkZ1bmN0aW9uPHZvaWQodm9pZCk+JiYpIGZpbmFsOwor
ICAgIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGb3JtU3RhdGUmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHZvaWQpPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgcmV2ZXJ0VG9Q
cm92aXNpb25hbFN0YXRlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgZmluYWw7CiAgICAgdm9p
ZCBzZXRNYWluRG9jdW1lbnRFcnJvcihXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0K
aW5kZXggODZiZTZlNGUzNjcyYjdkMWJlOGU4N2U1NjQ1Y2Q3YmMwNmM1ZmU4Zi4uOTBlNmNmZWFj
YzEwYmMzNmY0YTJmZDRlMDgwYmJmOTE1ZDZhMTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW0KQEAgLTk0OSwxNiArOTQ5LDE2IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChSZWY8V2ViQ29yZTo6Rm9ybVN0YXRlPiYmCiAgICAg
Q2FsbEZvcm1EZWxlZ2F0ZShnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpLCBAc2VsZWN0b3Io
d2lsbFNlbmRTdWJtaXRFdmVudFRvRm9ybTppbkZyYW1lOndpdGhWYWx1ZXM6KSwgZm9ybUVsZW1l
bnQsIG1fd2ViRnJhbWUuZ2V0KCksIHZhbHVlcyk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oRm9ybVN0YXRlJiBmb3JtU3RhdGUsIFdURjo6
RnVuY3Rpb248dm9pZCh2b2lkKT4mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oRm9ybVN0YXRlJiBmb3JtU3RhdGUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQodm9pZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWQgPFdl
YkZvcm1EZWxlZ2F0ZT4gZm9ybURlbGVnYXRlID0gW2dldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQo
KSkgX2Zvcm1EZWxlZ2F0ZV07CiAgICAgaWYgKCFmb3JtRGVsZWdhdGUpIHsKLSAgICAgICAgZnVu
Y3Rpb24oKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIE5TRGljdGlvbmFyeSAqdmFsdWVzID0gbWFrZUZvcm1GaWVsZFZhbHVlc0Rp
Y3Rpb25hcnkoZm9ybVN0YXRlKTsKLSAgICBDYWxsRm9ybURlbGVnYXRlKGdldFdlYlZpZXcobV93
ZWJGcmFtZS5nZXQoKSksIEBzZWxlY3RvcihmcmFtZTpzb3VyY2VGcmFtZTp3aWxsU3VibWl0Rm9y
bTp3aXRoVmFsdWVzOnN1Ym1pc3Npb25MaXN0ZW5lcjopLCBtX3dlYkZyYW1lLmdldCgpLCBraXQo
Zm9ybVN0YXRlLnNvdXJjZURvY3VtZW50KCkuZnJhbWUoKSksIGtpdCgmZm9ybVN0YXRlLmZvcm0o
KSksIHZhbHVlcywgc2V0VXBQb2xpY3lMaXN0ZW5lcihbZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0
aW9uKV0oUG9saWN5QWN0aW9uKSB7IGZ1bmN0aW9uKCk7IH0sIFBvbGljeUFjdGlvbjo6SWdub3Jl
KS5nZXQoKSk7CisgICAgQ2FsbEZvcm1EZWxlZ2F0ZShnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0
KCkpLCBAc2VsZWN0b3IoZnJhbWU6c291cmNlRnJhbWU6d2lsbFN1Ym1pdEZvcm06d2l0aFZhbHVl
czpzdWJtaXNzaW9uTGlzdGVuZXI6KSwgbV93ZWJGcmFtZS5nZXQoKSwga2l0KGZvcm1TdGF0ZS5z
b3VyY2VEb2N1bWVudCgpLmZyYW1lKCkpLCBraXQoJmZvcm1TdGF0ZS5mb3JtKCkpLCB2YWx1ZXMs
IHNldFVwUG9saWN5TGlzdGVuZXIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKFBvbGljeUFjdGlvbikgbXV0YWJsZSB7IGNvbXBsZXRpb25IYW5kbGVyKCk7
IH0sIFBvbGljeUFjdGlvbjo6SWdub3JlKS5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OnJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZShEb2N1bWVudExvYWRlciogbG9hZGVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGJlZDU1YzFlZGZkNzNmNzI4MmQ0
MWQ5MzNmNWMwM2Q1MGJiZWVlOWQuLjA3OTU2NTcxYzUxMGE1ODVjNWMwNDgwZDdmZWExY2E2MTlm
YThlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTU5OSw3ICs1OTksNyBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQo
UmVmPFdlYkNvcmU6OkZvcm1TdGF0ZT4mJgogewogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZvcm1TdGF0ZSYgZm9ybVN0YXRlLCBXVEY6OkZ1
bmN0aW9uPHZvaWQodm9pZCk+JiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZvcm1TdGF0ZSYgZm9ybVN0YXRlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHZvaWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlZpZXcq
IHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUobV93ZWJGcmFtZSk7CkBAIC02MDgsNyArNjA4LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGb3JtU3RhdGUmIGZvcm1TdGF0ZSwgV1RG
OjpGdW4KICAgICBDT01QdHI8SVdlYkZvcm1EZWxlZ2F0ZT4gZm9ybURlbGVnYXRlOwogCiAgICAg
aWYgKEZBSUxFRCh3ZWJWaWV3LT5mb3JtRGVsZWdhdGUoJmZvcm1EZWxlZ2F0ZSkpKSB7Ci0gICAg
ICAgIGZ1bmN0aW9uKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTYyMywxMSArNjIzLDExIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oRm9ybVN0YXRlJiBmb3JtU3RhdGUsIFdURjo6
RnVuCiAgICAgQ09NUHRyPElQcm9wZXJ0eUJhZz4gZm9ybVZhbHVlc1Byb3BlcnR5QmFnKEFkb3B0
Q09NLCBDT01Qcm9wZXJ0eUJhZzxTdHJpbmc+OjpjcmVhdGVJbnN0YW5jZShmb3JtVmFsdWVzTWFw
KSk7CiAKICAgICBDT01QdHI8V2ViRnJhbWU+IHNvdXJjZUZyYW1lKGtpdChmb3JtU3RhdGUuc291
cmNlRG9jdW1lbnQoKS5mcmFtZSgpKSk7Ci0gICAgaWYgKFNVQ0NFRURFRChmb3JtRGVsZWdhdGUt
PndpbGxTdWJtaXRGb3JtKG1fd2ViRnJhbWUsIHNvdXJjZUZyYW1lLmdldCgpLCBmb3JtRWxlbWVu
dC5nZXQoKSwgZm9ybVZhbHVlc1Byb3BlcnR5QmFnLmdldCgpLCBzZXRVcFBvbGljeUxpc3RlbmVy
KFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSAoUG9saWN5QWN0aW9uKSB7IGZ1bmN0aW9u
KCk7IH0pLmdldCgpKSkpCisgICAgaWYgKFNVQ0NFRURFRChmb3JtRGVsZWdhdGUtPndpbGxTdWJt
aXRGb3JtKG1fd2ViRnJhbWUsIHNvdXJjZUZyYW1lLmdldCgpLCBmb3JtRWxlbWVudC5nZXQoKSwg
Zm9ybVZhbHVlc1Byb3BlcnR5QmFnLmdldCgpLCBzZXRVcFBvbGljeUxpc3RlbmVyKFtjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoUG9saWN5QWN0aW9uKSB7
IGNvbXBsZXRpb25IYW5kbGVyKCk7IH0pLmdldCgpKSkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IC8vIEZJWE1FOiBBZGQgYSBzYW5lIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KLSAgICBmdW5jdGlv
bigpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA1YjIxMDVjYzZl
MDljZmY2NGU2YTA4YmU5YmIyNTdhNjVhNWJkMGU3Li5hOGZhZWEzMjg3YmQ2ZTMwZGQ5NDM3ZjFm
MzJlNWRhNDFhODA5OTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEwOCw3ICsx
MDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlz
cGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFJlZjxXZWJDb3JlOjpGb3JtU3RhdGU+JiYpIG92ZXJy
aWRlOwotICAgIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGb3JtU3RhdGUm
LCBXVEY6OkZ1bmN0aW9uPHZvaWQodm9pZCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0
Y2hXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGb3JtU3RhdGUmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHZvaWQpPiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcmV2ZXJ0VG9Qcm92aXNpb25hbFN0
YXRlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgb3ZlcnJpZGU7CiAgICAgYm9vbCBkaXNwYXRj
aERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBpbnQgbGVuZ3RoKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348652</attachid>
            <date>2018-08-31 10:58:09 -0700</date>
            <delta_ts>2018-08-31 12:00:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189199-20180831105808.patch</filename>
            <type>text/plain</type>
            <size>19772</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhiYTEwNTkwYjQyZWFh
NTg4Mzg0OTFmNTFhYzNmYTk2NTQ3NzhjMi4uOTFjM2RjZTg2YjU4ODcwOTYwOGJkMzg5ZWVjMTE1
NWZjNTNjYTAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTA4LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGhpdCBpbiB+
Q29tcGxldGlvbkhhbmRsZXIoKSBmcm9tIH5XZWJGcmFtZSgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkxOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQyNjU3MjMzPgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAg
ICAgICAgVGhlIGlzc3VlIHdhcyBjYXVzZWQgYnkgV2ViRnJhbWU6Om1fd2lsbFN1Ym1pdEZvcm1D
b21wbGV0aW9uSGFuZGxlcnMgaW1wbGljaXRseSBjb250YWluaW5nCisgICAgICAgIENvbXBsZXRp
b25IYW5kbGVycyAod3JhcHBlZCBpbiBXVEY6OkZ1bmN0aW9ucykgYW5kIG5vdCBjYWxsaW5nIHRo
ZW0gdXBvbiBXZWJGcmFtZQorICAgICAgICBkZXN0cnVjdGlvbi4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIGNvdmVyZWQgYnkgZmFzdC9mcmFtZXMvaWZyYW1lLXRhcmdldC5odG1sLgorCisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKToKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oOgorCiAyMDE4LTA4LTMxICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxl
LmNvbT4KIAogICAgICAgICBbRGF0YWxpc3RdW2lPU10gQWRkIHN1Z2dlc3Rpb25zIFVJIGZvciBU
ZXh0RmllbGRJbnB1dFR5cGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3ZmE3Y2Y3MTIzYWQ4MDA0YTAxYzlmYjA5
ZGQxMWMyNGNlMDM1YmEuLmZhNGRjZjVhMTJjMTE2NjEzNjU5MjNlNmE0N2IzZjFhMDUyNDExMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTgtMDgtMzEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBc3NlcnRpb24gaGl0IGluIH5Db21wbGV0aW9uSGFu
ZGxlcigpIGZyb20gfldlYkZyYW1lKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4OTE5OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDI2NTcyMzM+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lOjp+V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6
c2V0VXBXaWxsU3VibWl0Rm9ybUxpc3RlbmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6
OmludmFsaWRhdGVQb2xpY3lMaXN0ZW5lcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmg6CisKIDIwMTgtMDgtMzEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFtEYXRhbGlzdF1baU9TXSBBZGQgc3VnZ2VzdGlvbnMgVUkgZm9y
IFRleHRGaWVsZElucHV0VHlwZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA2ODVl
Y2YyYjkwZTRlNTMyOGI0ZDQ2MzFjNjJlMzQxMjAxMDY4ZjdmLi45ZTViMzJmZDk0N2IyM2E1MDhl
ZjY2OGRmYzhhOGJjZjMxYTdiYjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTgtMDgtMzEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBBc3NlcnRpb24gaGl0IGluIH5Db21wbGV0aW9uSGFuZGxlcigpIGZyb20gfldl
YkZyYW1lKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4OTE5OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDI2NTcyMzM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxs
U3VibWl0Rm9ybSk6CisKIDIwMTgtMDgtMzEgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIEJ1ZyAxODIwNTMgLSBbQ1NTT00gVmlld10gSW1wbGVtZW50IHN0YW5k
YXJkIGJlaGF2aW9yIGZvciBzY3JvbGxpbmdFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cKaW5kZXggYzJiOWIxYTgyNGM3YTU3YTRjNjlkMDM2MjY0ODZhYjk0MzRjNzcwMy4uZDk0N2U4
ZTE5YjljMjdkMWVkN2Q2ODIxNWViYTBlYTJmYjYwOWJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA4LTMxICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGhpdCBpbiB+Q29tcGxldGlvbkhhbmRs
ZXIoKSBmcm9tIH5XZWJGcmFtZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODkxOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQyNjU3MjMzPgor
CisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybSk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxOC0wOC0zMSAgRnJlZGVyaWMgV2FuZyAg
PGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgQnVnIDE4MjA1MyAtIFtDU1NPTSBWaWV3XSBJ
bXBsZW1lbnQgc3RhbmRhcmQgYmVoYXZpb3IgZm9yIHNjcm9sbGluZ0VsZW1lbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggY2FkNGJkODFkNDVkMTNjZWFjNDZmZjVm
ZThlZTlkZTQ3ZjRiNWZjNy4uOTZkMTFlODY3YjI2M2JmYjk4MTY3ZTk0NzFhZDlhMjQyODYzZTY1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTQ1OCw4ICs0NTgs
OSBAQCB2b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRF
dmVudChSZWY8Rm9ybVN0YXRlPiYmKQogewogfQogCi12b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oRm9ybVN0YXRlJiwgV1RGOjpGdW5jdGlvbjx2b2lk
KHZvaWQpPiYmKQordm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTdWJt
aXRGb3JtKEZvcm1TdGF0ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCiBSZWY8RG9jdW1lbnRM
b2FkZXI+IEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1
dGVEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggMzc0YWI4YTM3M2I1NjkwZjMwMTM3MzllNDJiY2QyYzlkY2E4ZDAzYi4uN2MzNmMy
MDVmMjAyMDM0ZjM1YmE2MDEwMGQ0NGQzYmFlMWJkNTA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMDEsNyArMTAxLDcgQEAgY2xh
c3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxv
YWRlckNsaWVudCB7CiAgICAgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNv
bnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgZGlzcGF0Y2hXaWxsU2Vu
ZFN1Ym1pdEV2ZW50KFJlZjxGb3JtU3RhdGU+JiYpIGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hX
aWxsU3VibWl0Rm9ybShGb3JtU3RhdGUmLCBXVEY6OkZ1bmN0aW9uPHZvaWQodm9pZCk+JiYpIGZp
bmFsOworICAgIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGb3JtU3RhdGUmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogCiAgICAgdm9pZCByZXZlcnRUb1Byb3Zpc2lv
bmFsU3RhdGUoRG9jdW1lbnRMb2FkZXIqKSBmaW5hbCB7IH0KICAgICB2b2lkIHNldE1haW5Eb2N1
bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsIHsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMTU5OGVlZmI0MTY1MGUy
NDFlNzI4NWJkZWE0NGZmYzFkYmExOGNkMi4uYzg1ZmNjMWViYWZlYTAyNjc4YjFmNjg0MDc3YmVh
ZjBiMzhhMTBlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zMzM3
LDcgKzMzMzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRp
b25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZQogICAgICAgICBkaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpwYWdlQ2FjaGVLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXRyaWV2
YWxLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsLCBTaG91bGRTYW1wbGU6Olllcyk7
CiAgICAgfQogCi0gICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh2b2lkKT4gY29tcGxldGlvbkhh
bmRsZXIgPSBbdGhpcywgc2hvdWxkQ29udGludWVdIHsKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHNob3VsZENvbnRpbnVlXSB7CiAgICAg
ICAgIGlmICghbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5k
ZXggMDc0ZTU0MWYzYmNhNWExYWRmZmI1MTY2NTE1NGVkYWZmZTUzYzJiZS4uMGM5MTAzZTA2ZGM3
MDdlYjU5OGQ5NzEyMDk5MzhhODYwYzgzMGJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE5OSw3ICsxOTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koY29uc3QgUmVzb3VyY2VFcnJv
ciYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQo
UmVmPEZvcm1TdGF0ZT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTdWJt
aXRGb3JtKEZvcm1TdGF0ZSYsIFdURjo6RnVuY3Rpb248dm9pZCh2b2lkKT4mJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZvcm1TdGF0ZSYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJldmVydFRvUHJv
dmlzaW9uYWxTdGF0ZShEb2N1bWVudExvYWRlciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJikg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRm9ybVN1Ym1pc3Np
b25MaXN0ZW5lclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGb3JtU3VibWlz
c2lvbkxpc3RlbmVyUHJveHkuaAppbmRleCA5NTg4MTBkYWJmN2ZiMWU2NDgwZmE4NjViYTMxZTE2
ZTE2OTgxMGQwLi5mN2M5ZTRjOWFmZTdjY2NmMjc1MmI3ZmM0N2IwYTllOWE3YmE4NjNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGb3JtU3VibWlzc2lvbkxp
c3RlbmVyUHJveHkuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1w
bDxBUEk6Ok9iamVjdDo6VHlwZTo6Rm9ybVN1Ym1pc3Npb25MaXN0ZW5lcj4gewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8V2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5PiBjcmVhdGUoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCh2b2lkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICBzdGF0
aWMgUmVmPFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eT4gY3JlYXRlKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eShXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSkpOwogICAgIH0KQEAgLTQwLDEwICs0MCwxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjb250aW51ZVN1Ym1pc3Npb24oKTsKIAogcHJpdmF0ZToKLSAgICBXZWJGb3JtU3Vi
bWlzc2lvbkxpc3RlbmVyUHJveHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh2b2lkKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKKyAgICBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgICAgICA6IG1fY29t
cGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCiAgICAgeyB9Ci0gICAg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh2b2lkKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKKyAgICBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IG1fY29tcGxldGlvbkhhbmRsZXI7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDFi
OTRiYmM3MGFkN2E4MTQzNDliYzg3ZjQ4MTViYzNiNGY2M2MwYzkuLmYwNWU0M2ZmMDBmYzIzODkw
MWI4Y2YzMWM1OTE2NTBhM2VkMWJmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cApAQCAtOTQwLDExICs5NDAsMTMgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFJlZjxGb3JtU3RhdGU+JiYgZm9ybVN0YXQKICAgICB3ZWJQ
YWdlLT5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS53aWxsU2VuZFN1Ym1pdEV2ZW50KHdlYlBh
Z2UsICZmb3JtLCBtX2ZyYW1lLCBzb3VyY2VGcmFtZSwgZm9ybVN0YXRlLT50ZXh0RmllbGRWYWx1
ZXMoKSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFN1Ym1p
dEZvcm0oRm9ybVN0YXRlJiBmb3JtU3RhdGUsIFdURjo6RnVuY3Rpb248dm9pZCh2b2lkKT4mJiBm
dW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZv
cm0oRm9ybVN0YXRlJiBmb3JtU3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgp
OwotICAgIGlmICghd2ViUGFnZSkKKyAgICBpZiAoIXdlYlBhZ2UpIHsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8mIGZvcm0g
PSBmb3JtU3RhdGUuZm9ybSgpOwogCkBAIC05NTgsNyArOTYwLDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGb3JtU3RhdGUmIGZvcm1TdGF0ZSwg
V1RGOjpGdW4KICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogICAgIHdlYlBhZ2Ut
PmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLndpbGxTdWJtaXRGb3JtKHdlYlBhZ2UsICZmb3Jt
LCBtX2ZyYW1lLCBzb3VyY2VGcmFtZSwgdmFsdWVzLCB1c2VyRGF0YSk7CiAKLSAgICB1aW50NjRf
dCBsaXN0ZW5lcklEID0gbV9mcmFtZS0+c2V0VXBXaWxsU3VibWl0Rm9ybUxpc3RlbmVyKFdURk1v
dmUoZnVuY3Rpb24pKTsKKyAgICB1aW50NjRfdCBsaXN0ZW5lcklEID0gbV9mcmFtZS0+c2V0VXBX
aWxsU3VibWl0Rm9ybUxpc3RlbmVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIAogICAg
IHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6V2lsbFN1Ym1pdEZvcm0obV9m
cmFtZS0+ZnJhbWVJRCgpLCBzb3VyY2VGcmFtZS0+ZnJhbWVJRCgpLCB2YWx1ZXMsIGxpc3RlbmVy
SUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hh
bmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAppbmRleCAyNTQ1NjhlNDI3ZDE0Mjc0ZGUyNDA1MjM1ZjNhOWRhNGQ1MDYyZWExLi5iMmQw
OTMwNWQ5YmQ2NTA1M2NiMDMwZjQxZDA3MTVhZGYzYjg4N2I3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRj
aFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBm
aW5hbDsKICAgICAKICAgICB2b2lkIGRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChSZWY8V2Vi
Q29yZTo6Rm9ybVN0YXRlPiYmKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoV2lsbFN1Ym1pdEZv
cm0oV2ViQ29yZTo6Rm9ybVN0YXRlJiwgV1RGOjpGdW5jdGlvbjx2b2lkKHZvaWQpPiYmKSBmaW5h
bDsKKyAgICB2b2lkIGRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6Rm9ybVN0YXRlJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICAKICAgICB2b2lkIHJldmVy
dFRvUHJvdmlzaW9uYWxTdGF0ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopIGZpbmFsOwogICAg
IHZvaWQgc2V0TWFpbkRvY3VtZW50RXJyb3IoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggZjYyZDFkZDllYzU2MDljOThmMzU0MDIy
ODMxYWE1NTk2ZWI2MDU0My4uN2MyZGUzZWUxZjQ0MmUxMGE0MTc2M2NhYTM1OWMxY2I1ZGQxOTAw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApA
QCAtMTYzLDYgKzE2MywxMCBAQCBXZWJGcmFtZTo6fldlYkZyYW1lKCkKIHsKICAgICBBU1NFUlQo
IW1fY29yZUZyYW1lKTsKIAorICAgIGF1dG8gd2lsbFN1Ym1pdEZvcm1Db21wbGV0aW9uSGFuZGxl
cnMgPSBXVEZNb3ZlKG1fd2lsbFN1Ym1pdEZvcm1Db21wbGV0aW9uSGFuZGxlcnMpOworICAgIGZv
ciAoYXV0byYgY29tcGxldGlvbkhhbmRsZXIgOiB3aWxsU3VibWl0Rm9ybUNvbXBsZXRpb25IYW5k
bGVycy52YWx1ZXMoKSkKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKwogI2lmbmRlZiBO
REVCVUcKICAgICB3ZWJGcmFtZUNvdW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKQEAgLTIxOSw3
ICsyMjMsNyBAQCB1aW50NjRfdCBXZWJGcmFtZTo6c2V0VXBQb2xpY3lMaXN0ZW5lcihXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgcG9saWN5RnVuYwogICAgIHJldHVybiBtX3BvbGljeUxp
c3RlbmVySUQ7CiB9CiAKLXVpbnQ2NF90IFdlYkZyYW1lOjpzZXRVcFdpbGxTdWJtaXRGb3JtTGlz
dGVuZXIoV1RGOjpGdW5jdGlvbjx2b2lkKHZvaWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordWlu
dDY0X3QgV2ViRnJhbWU6OnNldFVwV2lsbFN1Ym1pdEZvcm1MaXN0ZW5lcihDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgdWludDY0X3QgaWRlbnRp
ZmllciA9IGdlbmVyYXRlTGlzdGVuZXJJRCgpOwogICAgIGludmFsaWRhdGVQb2xpY3lMaXN0ZW5l
cigpOwpAQCAtMjQ0LDkgKzI0OCwxMCBAQCB2b2lkIFdlYkZyYW1lOjppbnZhbGlkYXRlUG9saWN5
TGlzdGVuZXIoKQogICAgIGlmIChhdXRvIGZ1bmN0aW9uID0gc3RkOjpleGNoYW5nZShtX3BvbGlj
eUZ1bmN0aW9uLCBudWxscHRyKSkKICAgICAgICAgZnVuY3Rpb24oUG9saWN5QWN0aW9uOjpJZ25v
cmUpOwogICAgIG1fcG9saWN5RnVuY3Rpb25Gb3JOYXZpZ2F0aW9uQWN0aW9uID0gRm9yTmF2aWdh
dGlvbkFjdGlvbjo6Tm87Ci0gICAgZm9yIChhdXRvJiBmdW5jdGlvbiA6IG1fd2lsbFN1Ym1pdEZv
cm1Db21wbGV0aW9uSGFuZGxlcnMudmFsdWVzKCkpCi0gICAgICAgIGZ1bmN0aW9uKCk7Ci0gICAg
bV93aWxsU3VibWl0Rm9ybUNvbXBsZXRpb25IYW5kbGVycy5jbGVhcigpOworCisgICAgYXV0byB3
aWxsU3VibWl0Rm9ybUNvbXBsZXRpb25IYW5kbGVycyA9IFdURk1vdmUobV93aWxsU3VibWl0Rm9y
bUNvbXBsZXRpb25IYW5kbGVycyk7CisgICAgZm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxlciA6
IHdpbGxTdWJtaXRGb3JtQ29tcGxldGlvbkhhbmRsZXJzLnZhbHVlcygpKQorICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogfQogCiB2b2lkIFdlYkZyYW1lOjpkaWRSZWNlaXZlUG9saWN5RGVj
aXNpb24odWludDY0X3QgbGlzdGVuZXJJRCwgUG9saWN5QWN0aW9uIGFjdGlvbiwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQsIHN0ZDo6b3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAppbmRleCBhNzNkMjJkYjcyMzc3NTIzYmU4YmJlMDg5ZmEx
NTc3ODI4OWJkZjJiLi4yZTAzZjJiZDU1NjI1NDRkNjc4ZjFhODNhOTUzOGNjZmU0YTM0NjhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTg5LDcg
Kzg5LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZVBvbGljeUxpc3RlbmVyKCk7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgbGlzdGVuZXJJRCwgV2Vi
Q29yZTo6UG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIERvd25sb2FkSUQsIHN0
ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJik7CiAKLSAgICB1aW50NjRfdCBzZXRV
cFdpbGxTdWJtaXRGb3JtTGlzdGVuZXIoV1RGOjpGdW5jdGlvbjx2b2lkKHZvaWQpPiYmKTsKKyAg
ICB1aW50NjRfdCBzZXRVcFdpbGxTdWJtaXRGb3JtTGlzdGVuZXIoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIGNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3QpOwog
CiAgICAgdm9pZCBzdGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7CkBAIC0xODMsNyArMTgzLDcgQEAg
cHJpdmF0ZToKICAgICB1aW50NjRfdCBtX3BvbGljeUxpc3RlbmVySUQgeyAwIH07CiAgICAgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiBtX3BvbGljeUZ1bmN0aW9uOwogICAgIEZvck5hdmln
YXRpb25BY3Rpb24gbV9wb2xpY3lGdW5jdGlvbkZvck5hdmlnYXRpb25BY3Rpb24geyBGb3JOYXZp
Z2F0aW9uQWN0aW9uOjpObyB9OwotICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248
dm9pZCh2b2lkKT4+IG1fd2lsbFN1Ym1pdEZvcm1Db21wbGV0aW9uSGFuZGxlcnM7CisgICAgSGFz
aE1hcDx1aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV93aWxsU3VibWl0Rm9y
bUNvbXBsZXRpb25IYW5kbGVyczsKICAgICBEb3dubG9hZElEIG1fcG9saWN5RG93bmxvYWRJRCB7
IDAgfTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gbV9mcmFt
ZUxvYWRlckNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDdkMTVjODIyMTQ5
YjgxY2QzOWJmOThjMWNmZWRiZTE4YTgxZDE0NTEuLjc3MTgyZDIwZWJiYjM5MDcyMWFmYjgyZTU5
NGUyMTlhMGI0NDBkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTM0LDcgKzEz
NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKIAogICAgIHZvaWQgZGlzcGF0
Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFJlZjxXZWJDb3JlOjpGb3JtU3RhdGU+JiYpIGZpbmFsOwot
ICAgIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGb3JtU3RhdGUmLCBXVEY6
OkZ1bmN0aW9uPHZvaWQodm9pZCk+JiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hXaWxsU3Vi
bWl0Rm9ybShXZWJDb3JlOjpGb3JtU3RhdGUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
IGZpbmFsOwogCiAgICAgdm9pZCByZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGUoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE1haW5Eb2N1bWVudEVycm9yKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCA4NmJlNmU0ZTM2NzJiN2QxYmU4ZTg3
ZTU2NDVjZDdiYzA2YzVmZThmLi44ZmNlN2VmZGU1N2RmNTE3Zjc2NTkyN2ZlMGVlNTE0NzRjNzNj
OWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtOTQ5LDE2ICs5NDksMTYgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFJl
ZjxXZWJDb3JlOjpGb3JtU3RhdGU+JiYKICAgICBDYWxsRm9ybURlbGVnYXRlKGdldFdlYlZpZXco
bV93ZWJGcmFtZS5nZXQoKSksIEBzZWxlY3Rvcih3aWxsU2VuZFN1Ym1pdEV2ZW50VG9Gb3JtOmlu
RnJhbWU6d2l0aFZhbHVlczopLCBmb3JtRWxlbWVudCwgbV93ZWJGcmFtZS5nZXQoKSwgdmFsdWVz
KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9y
bShGb3JtU3RhdGUmIGZvcm1TdGF0ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKHZvaWQpPiYmIGZ1bmN0
aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShG
b3JtU3RhdGUmIGZvcm1TdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGlkIDxXZWJGb3JtRGVsZWdhdGU+IGZvcm1EZWxlZ2F0ZSA9IFtn
ZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpIF9mb3JtRGVsZWdhdGVdOwogICAgIGlmICghZm9y
bURlbGVnYXRlKSB7Ci0gICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBOU0RpY3Rpb25hcnkgKnZhbHVl
cyA9IG1ha2VGb3JtRmllbGRWYWx1ZXNEaWN0aW9uYXJ5KGZvcm1TdGF0ZSk7Ci0gICAgQ2FsbEZv
cm1EZWxlZ2F0ZShnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpLCBAc2VsZWN0b3IoZnJhbWU6
c291cmNlRnJhbWU6d2lsbFN1Ym1pdEZvcm06d2l0aFZhbHVlczpzdWJtaXNzaW9uTGlzdGVuZXI6
KSwgbV93ZWJGcmFtZS5nZXQoKSwga2l0KGZvcm1TdGF0ZS5zb3VyY2VEb2N1bWVudCgpLmZyYW1l
KCkpLCBraXQoJmZvcm1TdGF0ZS5mb3JtKCkpLCB2YWx1ZXMsIHNldFVwUG9saWN5TGlzdGVuZXIo
W2Z1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildKFBvbGljeUFjdGlvbikgeyBmdW5jdGlvbigp
OyB9LCBQb2xpY3lBY3Rpb246Oklnbm9yZSkuZ2V0KCkpOworICAgIENhbGxGb3JtRGVsZWdhdGUo
Z2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKSwgQHNlbGVjdG9yKGZyYW1lOnNvdXJjZUZyYW1l
OndpbGxTdWJtaXRGb3JtOndpdGhWYWx1ZXM6c3VibWlzc2lvbkxpc3RlbmVyOiksIG1fd2ViRnJh
bWUuZ2V0KCksIGtpdChmb3JtU3RhdGUuc291cmNlRG9jdW1lbnQoKS5mcmFtZSgpKSwga2l0KCZm
b3JtU3RhdGUuZm9ybSgpKSwgdmFsdWVzLCBzZXRVcFBvbGljeUxpc3RlbmVyKFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShQb2xpY3lBY3Rpb24pIG11dGFi
bGUgeyBjb21wbGV0aW9uSGFuZGxlcigpOyB9LCBQb2xpY3lBY3Rpb246Oklnbm9yZSkuZ2V0KCkp
OwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZXZlcnRUb1Byb3Zpc2lvbmFsU3Rh
dGUoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCBiZWQ1NWMxZWRmZDczZjcyODJkNDFkOTMzZjVjMDNkNTBiYmVlZTlkLi42ZTM4NjlkNGYw
ZTk1YzIwYWU5N2RiNWE5MWZmMzIxYzNjZTNmMTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCkBAIC01OTksNyArNTk5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFJlZjxXZWJDb3JlOjpGb3JtU3RhdGU+JiYKIHsKIH0K
IAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGb3Jt
U3RhdGUmIGZvcm1TdGF0ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKHZvaWQpPiYmIGZ1bmN0aW9uKQor
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGb3JtU3Rh
dGUmIGZvcm1TdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAg
ICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CkBAIC02MDgsNyArNjA4LDcg
QEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGb3Jt
U3RhdGUmIGZvcm1TdGF0ZSwgV1RGOjpGdW4KICAgICBDT01QdHI8SVdlYkZvcm1EZWxlZ2F0ZT4g
Zm9ybURlbGVnYXRlOwogCiAgICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5mb3JtRGVsZWdhdGUoJmZv
cm1EZWxlZ2F0ZSkpKSB7Ci0gICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTYyMywxMSArNjIzLDExIEBA
IHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oRm9ybVN0
YXRlJiBmb3JtU3RhdGUsIFdURjo6RnVuCiAgICAgQ09NUHRyPElQcm9wZXJ0eUJhZz4gZm9ybVZh
bHVlc1Byb3BlcnR5QmFnKEFkb3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxTdHJpbmc+OjpjcmVhdGVJ
bnN0YW5jZShmb3JtVmFsdWVzTWFwKSk7CiAKICAgICBDT01QdHI8V2ViRnJhbWU+IHNvdXJjZUZy
YW1lKGtpdChmb3JtU3RhdGUuc291cmNlRG9jdW1lbnQoKS5mcmFtZSgpKSk7Ci0gICAgaWYgKFNV
Q0NFRURFRChmb3JtRGVsZWdhdGUtPndpbGxTdWJtaXRGb3JtKG1fd2ViRnJhbWUsIHNvdXJjZUZy
YW1lLmdldCgpLCBmb3JtRWxlbWVudC5nZXQoKSwgZm9ybVZhbHVlc1Byb3BlcnR5QmFnLmdldCgp
LCBzZXRVcFBvbGljeUxpc3RlbmVyKFtmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSAoUG9s
aWN5QWN0aW9uKSB7IGZ1bmN0aW9uKCk7IH0pLmdldCgpKSkpCisgICAgaWYgKFNVQ0NFRURFRChm
b3JtRGVsZWdhdGUtPndpbGxTdWJtaXRGb3JtKG1fd2ViRnJhbWUsIHNvdXJjZUZyYW1lLmdldCgp
LCBmb3JtRWxlbWVudC5nZXQoKSwgZm9ybVZhbHVlc1Byb3BlcnR5QmFnLmdldCgpLCBzZXRVcFBv
bGljeUxpc3RlbmVyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoUG9saWN5QWN0aW9uKSB7IGNvbXBsZXRpb25IYW5kbGVyKCk7IH0pLmdldCgpKSkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIEZJWE1FOiBBZGQgYSBzYW5lIGRlZmF1bHQgaW1wbGVt
ZW50YXRpb24KLSAgICBmdW5jdGlvbigpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAK
IHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50
TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAppbmRleCA1YjIxMDVjYzZlMDljZmY2NGU2YTA4YmU5YmIyNTdhNjVhNWJkMGU3Li4zOWNk
MWMxNjc5YWRkZDIwNWJiMDdlODNmYTY5MjA5ODUzMjg1NzM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaFVu
YWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFJlZjxXZWJDb3Jl
OjpGb3JtU3RhdGU+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9y
bShXZWJDb3JlOjpGb3JtU3RhdGUmLCBXVEY6OkZ1bmN0aW9uPHZvaWQodm9pZCk+JiYpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGb3JtU3RhdGUm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXZl
cnRUb1Byb3Zpc2lvbmFsU3RhdGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBvdmVycmlkZTsK
ICAgICBib29sIGRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGludCBsZW5ndGgpIG92ZXJyaWRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>