<?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>207073</bug_id>
          
          <creation_ts>2020-01-31 15:12:23 -0800</creation_ts>
          <short_desc>Regression(r248734) StorageAreaMap objects are getting leaked</short_desc>
          <delta_ts>2020-02-05 20:25:10 -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>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=143339</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>200373</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fujii</cc>
    
    <cc>ggaren</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1613604</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-31 15:12:23 -0800</bug_when>
    <thetext>Partial revert of r248734 to fix leak of StorageAreaMaps in WebContent processes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613605</commentid>
    <comment_count>1</comment_count>
      <attachid>389423</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-31 15:13:14 -0800</bug_when>
    <thetext>Created attachment 389423
WIP Patch

We are in the process of A/B testing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613680</commentid>
    <comment_count>2</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-01-31 17:54:35 -0800</bug_when>
    <thetext>I agree that we should remove web storage in web process if no page is using them any more.

I don&apos;t quite remember the reason why I let StorageNamespaceImpl own StorageAreaMap. I can think of two:
1. To somehow support session change (we no longer do this in tests).
2. To keep the StorageAreaMap around for a while so we don&apos;t need the sync messages to connect and get values from network process next time we visit the same origins.
With PSON, I think it&apos;s probably Okay to do 2. It would be like: let StorageAreaMap know whether it&apos;s used, and start a cleanup cache timer when its last client goes away.

Current approach by recovering the old behavior should work too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614294</commentid>
    <comment_count>3</comment_count>
      <attachid>389602</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-03 16:53:11 -0800</bug_when>
    <thetext>Created attachment 389602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614619</commentid>
    <comment_count>4</comment_count>
      <attachid>389602</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-04 10:24:04 -0800</bug_when>
    <thetext>Comment on attachment 389602
Patch

How does keeping a strong reference to something that was weak fix a memory leak?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614623</commentid>
    <comment_count>5</comment_count>
      <attachid>389602</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-04 10:30:37 -0800</bug_when>
    <thetext>Comment on attachment 389602
Patch

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

&gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:68
&gt; +    m_namespace.didDestroyStorageAreaMap(*this);

This is the code that removes the StorageAreaMap raw pointer from the StorageNamespaceImpl::m_storageAreaMaps HashMap. Previously, didDestroyStorageAreaMap() was dead code.

&gt; Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.h:-82
&gt; -    HashMap&lt;WebCore::SecurityOriginData, std::unique_ptr&lt;StorageAreaMap&gt;&gt; m_storageAreaMaps;

This HashMap was keeping the StorageAreaMaps alive because nothing was ever removing the maps from m_storageAreaMaps.

&gt; Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.h:82
&gt; +    HashMap&lt;WebCore::SecurityOriginData, StorageAreaMap*&gt; m_storageAreaMaps;

Now it is a map of raw pointers so it does not keep the StorageAreaMap alive. Only WebCore&apos;s Storage object keeps its StorageAreaMap alive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614624</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-04 10:32:55 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Comment on attachment 389602 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=389602&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:68
&gt; &gt; +    m_namespace.didDestroyStorageAreaMap(*this);
&gt; 
&gt; This is the code that removes the StorageAreaMap raw pointer from the
&gt; StorageNamespaceImpl::m_storageAreaMaps HashMap. Previously,
&gt; didDestroyStorageAreaMap() was dead code.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.h:-82
&gt; &gt; -    HashMap&lt;WebCore::SecurityOriginData, std::unique_ptr&lt;StorageAreaMap&gt;&gt; m_storageAreaMaps;
&gt; 
&gt; This HashMap was keeping the StorageAreaMaps alive because nothing was ever
&gt; removing the maps from m_storageAreaMaps.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.h:82
&gt; &gt; +    HashMap&lt;WebCore::SecurityOriginData, StorageAreaMap*&gt; m_storageAreaMaps;
&gt; 
&gt; Now it is a map of raw pointers so it does not keep the StorageAreaMap
&gt; alive. Only WebCore&apos;s Storage object keeps its StorageAreaMap alive.

In other words, the ownership is reversed. WebCore now owns the StorageAreaMaps, not the StorageNamespaceImpl at the WebKit layer. WebCore objects do get destroyed so StorageAreaMap objects get destroyed too now.
Previously, they would leak because the StorageNamespaceImpl would never remove StorageAreaMap from its HashMap and it would be the owner. This restores pre-r248734 behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614727</commentid>
    <comment_count>7</comment_count>
      <attachid>389602</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-04 14:09:05 -0800</bug_when>
    <thetext>Comment on attachment 389602
Patch

Could you mention which radar this is from?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614784</commentid>
    <comment_count>8</comment_count>
      <attachid>389602</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-04 15:22:48 -0800</bug_when>
    <thetext>Comment on attachment 389602
Patch

Clearing flags on attachment: 389602

Committed r255706: &lt;https://trac.webkit.org/changeset/255706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614785</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-04 15:22:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614786</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-04 15:23:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/59168065&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615056</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-05 08:39:18 -0800</bug_when>
    <thetext>Reverted r255706 for reason:

Caused assertions in API tests

Committed r255815: &lt;https://trac.webkit.org/changeset/255815&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615093</commentid>
    <comment_count>12</comment_count>
      <attachid>389821</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-05 09:49:57 -0800</bug_when>
    <thetext>Created attachment 389821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615112</commentid>
    <comment_count>13</comment_count>
      <attachid>389826</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-05 10:16:31 -0800</bug_when>
    <thetext>Created attachment 389826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615114</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-05 10:16:58 -0800</bug_when>
    <thetext>Alternative patch which does not revert Sihui&apos;s change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615244</commentid>
    <comment_count>15</comment_count>
      <attachid>389826</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-05 13:33:53 -0800</bug_when>
    <thetext>Comment on attachment 389826
Patch

Should we come up with some way to test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615248</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-05 13:39:42 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #15)
&gt; Comment on attachment 389826 [details]
&gt; Patch
&gt; 
&gt; Should we come up with some way to test this?

I will give it a shot. I think it is in theory possible with some extra test infrastructure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615289</commentid>
    <comment_count>17</comment_count>
      <attachid>389870</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-05 14:41:46 -0800</bug_when>
    <thetext>Created attachment 389870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615290</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-05 14:42:17 -0800</bug_when>
    <thetext>Requesting review again since I added a test and the test infrastructure for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615321</commentid>
    <comment_count>19</comment_count>
      <attachid>389870</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-05 15:18:49 -0800</bug_when>
    <thetext>Comment on attachment 389870
Patch

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

Looks great.

&gt; Source/WebCore/storage/StorageNamespaceProvider.h:62
&gt; +    WEBCORE_EXPORT StorageNamespace&amp; localStorageNamespace(PAL::SessionID);

Isn’t there a separate export macro just for internals? If so, we should ideally use it here. Or if the distinction doesn’t matter we should eventually get rid of it and just always use WEBCORE_EXPORT.

&gt; LayoutTests/TestExpectations:830
&gt; +# This test is only releveant for WebKit2.

Spelling error: &quot;relevant&quot;. Some day I hope we can retire the term &quot;WebKit2&quot; and move more fully to &quot;modern&quot; and &quot;legacy&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615331</commentid>
    <comment_count>20</comment_count>
      <attachid>389884</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-05 15:26:09 -0800</bug_when>
    <thetext>Created attachment 389884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615332</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-05 15:26:58 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #19)
&gt; Comment on attachment 389870 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=389870&amp;action=review
&gt; 
&gt; Looks great.
&gt; 
&gt; &gt; Source/WebCore/storage/StorageNamespaceProvider.h:62
&gt; &gt; +    WEBCORE_EXPORT StorageNamespace&amp; localStorageNamespace(PAL::SessionID);
&gt; 
&gt; Isn’t there a separate export macro just for internals? If so, we should
&gt; ideally use it here. Or if the distinction doesn’t matter we should
&gt; eventually get rid of it and just always use WEBCORE_EXPORT.

Switched to WEBCORE_TESTSUPPORT_EXPORT.

&gt; 
&gt; &gt; LayoutTests/TestExpectations:830
&gt; &gt; +# This test is only releveant for WebKit2.
&gt; 
&gt; Spelling error: &quot;relevant&quot;. Some day I hope we can retire the term &quot;WebKit2&quot;
&gt; and move more fully to &quot;modern&quot; and &quot;legacy&quot;.

Fixed the typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615370</commentid>
    <comment_count>22</comment_count>
      <attachid>389884</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-05 16:11:27 -0800</bug_when>
    <thetext>Comment on attachment 389884
Patch

Clearing flags on attachment: 389884

Committed r255875: &lt;https://trac.webkit.org/changeset/255875&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615371</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-05 16:11:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615516</commentid>
    <comment_count>24</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-02-05 20:25:10 -0800</bug_when>
    <thetext>Committed r255898: &lt;https://trac.webkit.org/changeset/255898&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389423</attachid>
            <date>2020-01-31 15:13:14 -0800</date>
            <delta_ts>2020-02-03 16:53:10 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>207073_wip.patch</filename>
            <type>text/plain</type>
            <size>7610</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VB
cmVhSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
QXJlYUltcGwuY3BwCmluZGV4IDk1NWQ1NjJiNzM3Li43ZDEzODI5NzFlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwu
Y3BwCkBAIC0zNywxNCArMzcsMTQgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLVJlZjxTdG9yYWdlQXJlYUltcGw+IFN0b3JhZ2VBcmVhSW1wbDo6Y3Jl
YXRlKFN0b3JhZ2VBcmVhTWFwJiBzdG9yYWdlQXJlYU1hcCkKK1JlZjxTdG9yYWdlQXJlYUltcGw+
IFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKFJlZjxTdG9yYWdlQXJlYU1hcD4mJiBzdG9yYWdlQXJl
YU1hcCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlQXJlYUltcGwoc3RvcmFn
ZUFyZWFNYXApKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlQXJlYUltcGwoV1RG
TW92ZShzdG9yYWdlQXJlYU1hcCkpKTsKIH0KIAotU3RvcmFnZUFyZWFJbXBsOjpTdG9yYWdlQXJl
YUltcGwoU3RvcmFnZUFyZWFNYXAmIHN0b3JhZ2VBcmVhTWFwKQorU3RvcmFnZUFyZWFJbXBsOjpT
dG9yYWdlQXJlYUltcGwoUmVmPFN0b3JhZ2VBcmVhTWFwPiYmIHN0b3JhZ2VBcmVhTWFwKQogICAg
IDogbV9pZGVudGlmaWVyKElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCi0gICAgLCBtX3N0b3JhZ2VB
cmVhTWFwKG1ha2VXZWFrUHRyKHN0b3JhZ2VBcmVhTWFwKSkKKyAgICAsIG1fc3RvcmFnZUFyZWFN
YXAoV1RGTW92ZShzdG9yYWdlQXJlYU1hcCkpCiB7CiB9CiAKQEAgLTU0LDU0ICs1NCw0NCBAQCBT
dG9yYWdlQXJlYUltcGw6On5TdG9yYWdlQXJlYUltcGwoKQogCiB1bnNpZ25lZCBTdG9yYWdlQXJl
YUltcGw6Omxlbmd0aCgpCiB7Ci0gICAgcmV0dXJuIG1fc3RvcmFnZUFyZWFNYXAgPyBtX3N0b3Jh
Z2VBcmVhTWFwLT5sZW5ndGgoKSA6IDA7CisgICAgcmV0dXJuIG1fc3RvcmFnZUFyZWFNYXAtPmxl
bmd0aCgpOwogfQogCiBTdHJpbmcgU3RvcmFnZUFyZWFJbXBsOjprZXkodW5zaWduZWQgaW5kZXgp
CiB7Ci0gICAgcmV0dXJuIG1fc3RvcmFnZUFyZWFNYXAgPyBtX3N0b3JhZ2VBcmVhTWFwLT5rZXko
aW5kZXgpIDogbnVsbFN0cmluZygpOworICAgIHJldHVybiBtX3N0b3JhZ2VBcmVhTWFwLT5rZXko
aW5kZXgpOwogfQogCiBTdHJpbmcgU3RvcmFnZUFyZWFJbXBsOjppdGVtKGNvbnN0IFN0cmluZyYg
a2V5KQogewotICAgIHJldHVybiBtX3N0b3JhZ2VBcmVhTWFwID8gbV9zdG9yYWdlQXJlYU1hcC0+
aXRlbShrZXkpIDogbnVsbFN0cmluZygpOworICAgIHJldHVybiBtX3N0b3JhZ2VBcmVhTWFwLT5p
dGVtKGtleSk7CiB9CiAKIHZvaWQgU3RvcmFnZUFyZWFJbXBsOjpzZXRJdGVtKEZyYW1lKiBzb3Vy
Y2VGcmFtZSwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wmIHF1
b3RhRXhjZXB0aW9uKQogewogICAgIEFTU0VSVCghdmFsdWUuaXNOdWxsKCkpOwogCi0gICAgaWYg
KG1fc3RvcmFnZUFyZWFNYXApCi0gICAgICAgIG1fc3RvcmFnZUFyZWFNYXAtPnNldEl0ZW0oc291
cmNlRnJhbWUsIHRoaXMsIGtleSwgdmFsdWUsIHF1b3RhRXhjZXB0aW9uKTsKKyAgICBtX3N0b3Jh
Z2VBcmVhTWFwLT5zZXRJdGVtKHNvdXJjZUZyYW1lLCB0aGlzLCBrZXksIHZhbHVlLCBxdW90YUV4
Y2VwdGlvbik7CiB9CiAKIHZvaWQgU3RvcmFnZUFyZWFJbXBsOjpyZW1vdmVJdGVtKEZyYW1lKiBz
b3VyY2VGcmFtZSwgY29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0gICAgaWYgKG1fc3RvcmFnZUFyZWFN
YXApCi0gICAgICAgIG1fc3RvcmFnZUFyZWFNYXAtPnJlbW92ZUl0ZW0oc291cmNlRnJhbWUsIHRo
aXMsIGtleSk7CisgICAgbV9zdG9yYWdlQXJlYU1hcC0+cmVtb3ZlSXRlbShzb3VyY2VGcmFtZSwg
dGhpcywga2V5KTsKIH0KIAogdm9pZCBTdG9yYWdlQXJlYUltcGw6OmNsZWFyKEZyYW1lKiBzb3Vy
Y2VGcmFtZSkKIHsKLSAgICBpZiAobV9zdG9yYWdlQXJlYU1hcCkKLSAgICAgICAgbV9zdG9yYWdl
QXJlYU1hcC0+Y2xlYXIoc291cmNlRnJhbWUsIHRoaXMpOworICAgIG1fc3RvcmFnZUFyZWFNYXAt
PmNsZWFyKHNvdXJjZUZyYW1lLCB0aGlzKTsKIH0KIAogYm9vbCBTdG9yYWdlQXJlYUltcGw6OmNv
bnRhaW5zKGNvbnN0IFN0cmluZyYga2V5KQogewotICAgIGlmIChtX3N0b3JhZ2VBcmVhTWFwKQot
ICAgICAgICByZXR1cm4gbV9zdG9yYWdlQXJlYU1hcC0+Y29udGFpbnMoa2V5KTsKLQotICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9zdG9yYWdlQXJlYU1hcC0+Y29udGFpbnMoa2V5KTsK
IH0KIAogU3RvcmFnZVR5cGUgU3RvcmFnZUFyZWFJbXBsOjpzdG9yYWdlVHlwZSgpIGNvbnN0CiB7
Ci0gICAgaWYgKG1fc3RvcmFnZUFyZWFNYXApCi0gICAgICAgIHJldHVybiBtX3N0b3JhZ2VBcmVh
TWFwLT50eXBlKCk7Ci0KLSAgICAvLyBXZSBwcm9iYWJseSBuZWVkIGFuIEludmFsaWQgdHlwZS4K
LSAgICByZXR1cm4gU3RvcmFnZVR5cGU6OkxvY2FsOworICAgIHJldHVybiBtX3N0b3JhZ2VBcmVh
TWFwLT50eXBlKCk7CiB9CiAKIHNpemVfdCBTdG9yYWdlQXJlYUltcGw6Om1lbW9yeUJ5dGVzVXNl
ZEJ5Q2FjaGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZUFyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYUltcGwuaAppbmRleCA3OWUxNGI5MWY4YS4uY2U0MjU3MDAyZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVh
SW1wbC5oCkBAIC00MywxMyArNDMsMTMgQEAgY2xhc3MgU3RvcmFnZUFyZWFJbXBsIGZpbmFsIDog
cHVibGljIFdlYkNvcmU6OlN0b3JhZ2VBcmVhIHsKIHB1YmxpYzoKICAgICB1c2luZyBJZGVudGlm
aWVyID0gU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcjsKIAotICAgIHN0YXRpYyBSZWY8U3RvcmFn
ZUFyZWFJbXBsPiBjcmVhdGUoU3RvcmFnZUFyZWFNYXAmKTsKKyAgICBzdGF0aWMgUmVmPFN0b3Jh
Z2VBcmVhSW1wbD4gY3JlYXRlKFJlZjxTdG9yYWdlQXJlYU1hcD4mJik7CiAgICAgdmlydHVhbCB+
U3RvcmFnZUFyZWFJbXBsKCk7CiAKICAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogcHJpdmF0ZToKLSAgICBTdG9yYWdlQXJlYUltcGwo
U3RvcmFnZUFyZWFNYXAmKTsKKyAgICBTdG9yYWdlQXJlYUltcGwoUmVmPFN0b3JhZ2VBcmVhTWFw
PiYmKTsKIAogICAgIC8vIFdlYkNvcmU6OlN0b3JhZ2VBcmVhLgogICAgIHVuc2lnbmVkIGxlbmd0
aCgpIG92ZXJyaWRlOwpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xvc2VE
YXRhYmFzZUlmSWRsZSgpIG92ZXJyaWRlOwogCiAgICAgSWRlbnRpZmllciBtX2lkZW50aWZpZXI7
Ci0gICAgV2Vha1B0cjxTdG9yYWdlQXJlYU1hcD4gbV9zdG9yYWdlQXJlYU1hcDsKKyAgICBSZWY8
U3RvcmFnZUFyZWFNYXA+IG1fc3RvcmFnZUFyZWFNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0
b3JhZ2VBcmVhTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0
b3JhZ2VBcmVhTWFwLmNwcAppbmRleCBiZGFjYjNhM2FjNC4uNjE0MzY0YjFlZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1h
cC5jcHAKQEAgLTQ5LDYgKzQ5LDExIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCitSZWY8U3RvcmFnZUFyZWFNYXA+IFN0b3JhZ2VBcmVhTWFwOjpjcmVh
dGUoU3RvcmFnZU5hbWVzcGFjZUltcGwmIHN0b3JhZ2VOYW1lc3BhY2UsIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiBzZWN1cml0eU9yaWdpbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTdG9yYWdlQXJlYU1hcChzdG9yYWdlTmFtZXNwYWNlLCBXVEZNb3ZlKHNlY3VyaXR5T3Jp
Z2luKSkpOworfQorCiBTdG9yYWdlQXJlYU1hcDo6U3RvcmFnZUFyZWFNYXAoU3RvcmFnZU5hbWVz
cGFjZUltcGwmIHN0b3JhZ2VOYW1lc3BhY2UsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiBzZWN1cml0eU9yaWdpbikKICAgICA6IG1fbmFtZXNwYWNlKHN0b3JhZ2VOYW1lc3BhY2UpCiAg
ICAgLCBtX3NlY3VyaXR5T3JpZ2luKFdURk1vdmUoc2VjdXJpdHlPcmlnaW4pKQpAQCAtNjAsNiAr
NjUsOCBAQCBTdG9yYWdlQXJlYU1hcDo6U3RvcmFnZUFyZWFNYXAoU3RvcmFnZU5hbWVzcGFjZUlt
cGwmIHN0b3JhZ2VOYW1lc3BhY2UsIFJlZjxXZWJDbwogCiBTdG9yYWdlQXJlYU1hcDo6flN0b3Jh
Z2VBcmVhTWFwKCkKIHsKKyAgICBtX25hbWVzcGFjZS5kaWREZXN0cm95U3RvcmFnZUFyZWFNYXAo
KnRoaXMpOworCiAgICAgZGlzY29ubmVjdCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaAppbmRleCA3YzgxMjE5ZmZl
OC4uZGNiNzI0MmYyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaApAQCAtNDYsMTAgKzQ2LDkgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiBjbGFzcyBTdG9yYWdlQXJlYUltcGw7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1w
bDsKIAotY2xhc3MgU3RvcmFnZUFyZWFNYXAgZmluYWwgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJl
Y2VpdmVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3RvcmFnZUFyZWFNYXA+IHsKLSAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK2NsYXNzIFN0b3JhZ2VBcmVhTWFwIGZpbmFsIDogcHVibGlj
IFJlZkNvdW50ZWQ8U3RvcmFnZUFyZWFNYXA+LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVy
LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3RvcmFnZUFyZWFNYXA+IHsKIHB1YmxpYzoKLSAgICBT
dG9yYWdlQXJlYU1hcChTdG9yYWdlTmFtZXNwYWNlSW1wbCYsIFJlZjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4mJik7CisgICAgc3RhdGljIFJlZjxTdG9yYWdlQXJlYU1hcD4gY3JlYXRlKFN0b3Jh
Z2VOYW1lc3BhY2VJbXBsJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmKTsKICAgICB+
U3RvcmFnZUFyZWFNYXAoKTsKIAogICAgIFdlYkNvcmU6OlN0b3JhZ2VUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KQEAgLTcxLDYgKzcwLDggQEAgcHVibGljOgogICAgIHZvaWQg
ZGlzY29ubmVjdCgpOwogCiBwcml2YXRlOgorICAgIFN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VOYW1l
c3BhY2VJbXBsJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmKTsKKwogICAgIHZvaWQg
ZGlkU2V0SXRlbSh1aW50NjRfdCBtYXBTZWVkLCBjb25zdCBTdHJpbmcmIGtleSwgYm9vbCBxdW90
YUVycm9yKTsKICAgICB2b2lkIGRpZFJlbW92ZUl0ZW0odWludDY0X3QgbWFwU2VlZCwgY29uc3Qg
U3RyaW5nJiBrZXkpOwogICAgIHZvaWQgZGlkQ2xlYXIodWludDY0X3QgbWFwU2VlZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
TmFtZXNwYWNlSW1wbC5jcHAKaW5kZXggZmQwZjEyMmMyNzMuLjQ4ODdiY2M4NTUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZU5hbWVzcGFjZUltcGwuY3BwCkBAIC0xMDIsMTAgKzEwMiwxMiBAQCB2b2lkIFN0b3JhZ2VOYW1l
c3BhY2VJbXBsOjpkaWREZXN0cm95U3RvcmFnZUFyZWFNYXAoU3RvcmFnZUFyZWFNYXAmIG1hcCkK
IAogUmVmPFN0b3JhZ2VBcmVhPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c3RvcmFnZUFyZWEoY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbkRhdGEpCiB7Ci0gICAgYXV0byYg
bWFwID0gbV9zdG9yYWdlQXJlYU1hcHMuZW5zdXJlKHNlY3VyaXR5T3JpZ2luRGF0YSwgWyZdIHsK
LSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8U3RvcmFnZUFyZWFNYXA+KCp0aGlzLCBzZWN1cml0
eU9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAgUmVmUHRyPFN0b3JhZ2VBcmVhTWFw
PiBtYXA7CisgICAgYXV0byogbWFwUHRyID0gbV9zdG9yYWdlQXJlYU1hcHMuZW5zdXJlKHNlY3Vy
aXR5T3JpZ2luRGF0YSwgWyZdIHsKKyAgICAgICAgbWFwID0gU3RvcmFnZUFyZWFNYXA6OmNyZWF0
ZSgqdGhpcywgc2VjdXJpdHlPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpOworICAgICAgICBy
ZXR1cm4gbWFwLmdldCgpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKLSAgICByZXR1cm4gU3Rv
cmFnZUFyZWFJbXBsOjpjcmVhdGUoKm1hcCk7CisgICAgcmV0dXJuIFN0b3JhZ2VBcmVhSW1wbDo6
Y3JlYXRlKCptYXBQdHIpOwogfQogCiBSZWY8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVz
cGFjZUltcGw6OmNvcHkoUGFnZSYgbmV3UGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCmluZGV4IDdm
YjAwZDIzY2I3Li5kNjRhNWNhM2VlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCkBAIC03OSw3ICs3
OSw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCB1bnNpZ25lZCBtX3F1b3RhSW5CeXRlczsKIAot
ICAgIEhhc2hNYXA8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8
U3RvcmFnZUFyZWFNYXA+PiBtX3N0b3JhZ2VBcmVhTWFwczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSwgU3RvcmFnZUFyZWFNYXAqPiBtX3N0b3JhZ2VBcmVhTWFwczsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389602</attachid>
            <date>2020-02-03 16:53:11 -0800</date>
            <delta_ts>2020-02-05 09:49:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207073-20200203165310.patch</filename>
            <type>text/plain</type>
            <size>9864</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4YzhjMzNhN2QzNGZhM2Jm
YmZkZTFmMzljZDg3YzE5YzViY2RjZWEuLjQyNmU4MzJiZWY1NjJmNmM3MTkwNjFmYTJkZWEyMDNm
MWFjNDBmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDItMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQYXJ0aWFsIHJldmVydCBvZiByMjQ4
NzM0IHRvIGZpeCBsZWFrIG9mIFN0b3JhZ2VBcmVhTWFwcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8gYSBwYXJ0aWFsIHJldmVydCBvZiByMjQ4NzM0
IHNvIHRoYXQgdGhlIFN0b3JhZ2VOYW1lc3BhY2VJbXBsIG5vIGxvbmdlciBob2xkcyBhIHN0cm9u
ZworICAgICAgICByZWZlcmVuY2UgdG8gaXRzIFN0b3JhZ2VBcmVhTWFwIG9iamVjdHMuIFRoZSBj
b2RlIGZvciByZW1vdmluZyBlbnRyaWVzIGZyb20gCisgICAgICAgIFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsOjptX3N0b3JhZ2VBcmVhTWFwcyAoU3RvcmFnZU5hbWVzcGFjZUltcGw6OmRpZERlc3Ryb3lT
dG9yYWdlQXJlYU1hcCgpKQorICAgICAgICB3YXMgZGVhZCBjb2RlIGFmdGVyIHIyNDg3MzQgYW5k
IHRodXMgU3RvcmFnZUFyZWFNYXAgd2VyZSBuZXZlciBkZXN0cm95ZWQuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZUFyZWFJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YUltcGw6OlN0b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1w
bDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsOjprZXkpOgorICAg
ICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUltcGw6Oml0ZW0pOgorICAgICAgICAoV2ViS2l0OjpT
dG9yYWdlQXJlYUltcGw6OnNldEl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUlt
cGw6OnJlbW92ZUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUltcGw6OmNsZWFy
KToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsOjpjb250YWlucyk6CisgICAgICAg
IChXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbDo6c3RvcmFnZVR5cGUgY29uc3QpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
dG9yYWdlQXJlYU1hcDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6
On5TdG9yYWdlQXJlYU1hcCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VBcmVhTWFwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OnN0
b3JhZ2VBcmVhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVz
cGFjZUltcGwuaDoKKwogMjAyMC0wMi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXSzJdIFVzZSBwZXItVUlQcm9jZXNzIGRlZmF1bHQgY29va2llIHN0b3Jh
Z2UgZm9yIE1hYyBDYXRhbHlzdCBhcHBzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAppbmRleCA5NTVkNTYyYjczN2I4
YjczZGEwODI1ZjY3YTRiOThmYTgwM2FlN2U4Li43ZDEzODI5NzFlZGU4OWI4Yzg2OGNjZmY4MTg3
ODQyZTlkZTBjNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKQEAgLTM3LDE0ICszNywxNCBAQAogbmFtZXNw
YWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFN0b3JhZ2VBcmVh
SW1wbD4gU3RvcmFnZUFyZWFJbXBsOjpjcmVhdGUoU3RvcmFnZUFyZWFNYXAmIHN0b3JhZ2VBcmVh
TWFwKQorUmVmPFN0b3JhZ2VBcmVhSW1wbD4gU3RvcmFnZUFyZWFJbXBsOjpjcmVhdGUoUmVmPFN0
b3JhZ2VBcmVhTWFwPiYmIHN0b3JhZ2VBcmVhTWFwKQogewotICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFN0b3JhZ2VBcmVhSW1wbChzdG9yYWdlQXJlYU1hcCkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFN0b3JhZ2VBcmVhSW1wbChXVEZNb3ZlKHN0b3JhZ2VBcmVhTWFwKSkpOwogfQogCi1T
dG9yYWdlQXJlYUltcGw6OlN0b3JhZ2VBcmVhSW1wbChTdG9yYWdlQXJlYU1hcCYgc3RvcmFnZUFy
ZWFNYXApCitTdG9yYWdlQXJlYUltcGw6OlN0b3JhZ2VBcmVhSW1wbChSZWY8U3RvcmFnZUFyZWFN
YXA+JiYgc3RvcmFnZUFyZWFNYXApCiAgICAgOiBtX2lkZW50aWZpZXIoSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKSkKLSAgICAsIG1fc3RvcmFnZUFyZWFNYXAobWFrZVdlYWtQdHIoc3RvcmFnZUFyZWFN
YXApKQorICAgICwgbV9zdG9yYWdlQXJlYU1hcChXVEZNb3ZlKHN0b3JhZ2VBcmVhTWFwKSkKIHsK
IH0KIApAQCAtNTQsNTQgKzU0LDQ0IEBAIFN0b3JhZ2VBcmVhSW1wbDo6flN0b3JhZ2VBcmVhSW1w
bCgpCiAKIHVuc2lnbmVkIFN0b3JhZ2VBcmVhSW1wbDo6bGVuZ3RoKCkKIHsKLSAgICByZXR1cm4g
bV9zdG9yYWdlQXJlYU1hcCA/IG1fc3RvcmFnZUFyZWFNYXAtPmxlbmd0aCgpIDogMDsKKyAgICBy
ZXR1cm4gbV9zdG9yYWdlQXJlYU1hcC0+bGVuZ3RoKCk7CiB9CiAKIFN0cmluZyBTdG9yYWdlQXJl
YUltcGw6OmtleSh1bnNpZ25lZCBpbmRleCkKIHsKLSAgICByZXR1cm4gbV9zdG9yYWdlQXJlYU1h
cCA/IG1fc3RvcmFnZUFyZWFNYXAtPmtleShpbmRleCkgOiBudWxsU3RyaW5nKCk7CisgICAgcmV0
dXJuIG1fc3RvcmFnZUFyZWFNYXAtPmtleShpbmRleCk7CiB9CiAKIFN0cmluZyBTdG9yYWdlQXJl
YUltcGw6Oml0ZW0oY29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0gICAgcmV0dXJuIG1fc3RvcmFnZUFy
ZWFNYXAgPyBtX3N0b3JhZ2VBcmVhTWFwLT5pdGVtKGtleSkgOiBudWxsU3RyaW5nKCk7CisgICAg
cmV0dXJuIG1fc3RvcmFnZUFyZWFNYXAtPml0ZW0oa2V5KTsKIH0KIAogdm9pZCBTdG9yYWdlQXJl
YUltcGw6OnNldEl0ZW0oRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCYgcXVvdGFFeGNlcHRpb24pCiB7CiAgICAgQVNTRVJUKCF2
YWx1ZS5pc051bGwoKSk7CiAKLSAgICBpZiAobV9zdG9yYWdlQXJlYU1hcCkKLSAgICAgICAgbV9z
dG9yYWdlQXJlYU1hcC0+c2V0SXRlbShzb3VyY2VGcmFtZSwgdGhpcywga2V5LCB2YWx1ZSwgcXVv
dGFFeGNlcHRpb24pOworICAgIG1fc3RvcmFnZUFyZWFNYXAtPnNldEl0ZW0oc291cmNlRnJhbWUs
IHRoaXMsIGtleSwgdmFsdWUsIHF1b3RhRXhjZXB0aW9uKTsKIH0KIAogdm9pZCBTdG9yYWdlQXJl
YUltcGw6OnJlbW92ZUl0ZW0oRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBTdHJpbmcmIGtleSkK
IHsKLSAgICBpZiAobV9zdG9yYWdlQXJlYU1hcCkKLSAgICAgICAgbV9zdG9yYWdlQXJlYU1hcC0+
cmVtb3ZlSXRlbShzb3VyY2VGcmFtZSwgdGhpcywga2V5KTsKKyAgICBtX3N0b3JhZ2VBcmVhTWFw
LT5yZW1vdmVJdGVtKHNvdXJjZUZyYW1lLCB0aGlzLCBrZXkpOwogfQogCiB2b2lkIFN0b3JhZ2VB
cmVhSW1wbDo6Y2xlYXIoRnJhbWUqIHNvdXJjZUZyYW1lKQogewotICAgIGlmIChtX3N0b3JhZ2VB
cmVhTWFwKQotICAgICAgICBtX3N0b3JhZ2VBcmVhTWFwLT5jbGVhcihzb3VyY2VGcmFtZSwgdGhp
cyk7CisgICAgbV9zdG9yYWdlQXJlYU1hcC0+Y2xlYXIoc291cmNlRnJhbWUsIHRoaXMpOwogfQog
CiBib29sIFN0b3JhZ2VBcmVhSW1wbDo6Y29udGFpbnMoY29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0g
ICAgaWYgKG1fc3RvcmFnZUFyZWFNYXApCi0gICAgICAgIHJldHVybiBtX3N0b3JhZ2VBcmVhTWFw
LT5jb250YWlucyhrZXkpOwotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3N0b3Jh
Z2VBcmVhTWFwLT5jb250YWlucyhrZXkpOwogfQogCiBTdG9yYWdlVHlwZSBTdG9yYWdlQXJlYUlt
cGw6OnN0b3JhZ2VUeXBlKCkgY29uc3QKIHsKLSAgICBpZiAobV9zdG9yYWdlQXJlYU1hcCkKLSAg
ICAgICAgcmV0dXJuIG1fc3RvcmFnZUFyZWFNYXAtPnR5cGUoKTsKLQotICAgIC8vIFdlIHByb2Jh
Ymx5IG5lZWQgYW4gSW52YWxpZCB0eXBlLgotICAgIHJldHVybiBTdG9yYWdlVHlwZTo6TG9jYWw7
CisgICAgcmV0dXJuIG1fc3RvcmFnZUFyZWFNYXAtPnR5cGUoKTsKIH0KIAogc2l6ZV90IFN0b3Jh
Z2VBcmVhSW1wbDo6bWVtb3J5Qnl0ZXNVc2VkQnlDYWNoZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCmluZGV4IDc5ZTE0
YjkxZjhhYzZkODJmZTc5MmFjMDZkMzk0ZWQ3NjU4NDJhNjIuLmNlNDI1NzAwMmZlNzFkMTZhZjg4
N2Y1OWQxN2IwZDQ0MDZmNDg2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCkBAIC00MywxMyArNDMsMTMgQEAgY2xh
c3MgU3RvcmFnZUFyZWFJbXBsIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlN0b3JhZ2VBcmVhIHsK
IHB1YmxpYzoKICAgICB1c2luZyBJZGVudGlmaWVyID0gU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmll
cjsKIAotICAgIHN0YXRpYyBSZWY8U3RvcmFnZUFyZWFJbXBsPiBjcmVhdGUoU3RvcmFnZUFyZWFN
YXAmKTsKKyAgICBzdGF0aWMgUmVmPFN0b3JhZ2VBcmVhSW1wbD4gY3JlYXRlKFJlZjxTdG9yYWdl
QXJlYU1hcD4mJik7CiAgICAgdmlydHVhbCB+U3RvcmFnZUFyZWFJbXBsKCk7CiAKICAgICBJZGVu
dGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogcHJp
dmF0ZToKLSAgICBTdG9yYWdlQXJlYUltcGwoU3RvcmFnZUFyZWFNYXAmKTsKKyAgICBTdG9yYWdl
QXJlYUltcGwoUmVmPFN0b3JhZ2VBcmVhTWFwPiYmKTsKIAogICAgIC8vIFdlYkNvcmU6OlN0b3Jh
Z2VBcmVhLgogICAgIHVuc2lnbmVkIGxlbmd0aCgpIG92ZXJyaWRlOwpAQCAtNjYsNyArNjYsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgY2xvc2VEYXRhYmFzZUlmSWRsZSgpIG92ZXJyaWRlOwogCiAg
ICAgSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgV2Vha1B0cjxTdG9yYWdlQXJlYU1hcD4g
bV9zdG9yYWdlQXJlYU1hcDsKKyAgICBSZWY8U3RvcmFnZUFyZWFNYXA+IG1fc3RvcmFnZUFyZWFN
YXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAppbmRleCBiZGFjYjNh
M2FjNDBlOWEzMWIyYmU4ODI1YjBiNWQwMDFiYzU3ZDYzLi42MTQzNjRiMWVlYzkxYzk5MTI3MTAw
MjExYzM5MTk4ZWU1OTQ5MGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCkBAIC00OSw2ICs0OSwxMSBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorUmVmPFN0b3JhZ2VB
cmVhTWFwPiBTdG9yYWdlQXJlYU1hcDo6Y3JlYXRlKFN0b3JhZ2VOYW1lc3BhY2VJbXBsJiBzdG9y
YWdlTmFtZXNwYWNlLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgc2VjdXJpdHlPcmln
aW4pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZUFyZWFNYXAoc3RvcmFnZU5h
bWVzcGFjZSwgV1RGTW92ZShzZWN1cml0eU9yaWdpbikpKTsKK30KKwogU3RvcmFnZUFyZWFNYXA6
OlN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VOYW1lc3BhY2VJbXBsJiBzdG9yYWdlTmFtZXNwYWNlLCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgc2VjdXJpdHlPcmlnaW4pCiAgICAgOiBtX25h
bWVzcGFjZShzdG9yYWdlTmFtZXNwYWNlKQogICAgICwgbV9zZWN1cml0eU9yaWdpbihXVEZNb3Zl
KHNlY3VyaXR5T3JpZ2luKSkKQEAgLTYwLDYgKzY1LDggQEAgU3RvcmFnZUFyZWFNYXA6OlN0b3Jh
Z2VBcmVhTWFwKFN0b3JhZ2VOYW1lc3BhY2VJbXBsJiBzdG9yYWdlTmFtZXNwYWNlLCBSZWY8V2Vi
Q28KIAogU3RvcmFnZUFyZWFNYXA6On5TdG9yYWdlQXJlYU1hcCgpCiB7CisgICAgbV9uYW1lc3Bh
Y2UuZGlkRGVzdHJveVN0b3JhZ2VBcmVhTWFwKCp0aGlzKTsKKwogICAgIGRpc2Nvbm5lY3QoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZUFyZWFNYXAuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VBcmVhTWFwLmgKaW5kZXggN2M4MTIxOWZmZTg1YWM3ZTc1NTVjODYwMTc0MTJlOGUwZmFhY2U5
Yy4uZGNiNzI0MmYyOTdkNjliMDgxNjU2Yzc1Y2IyYjhlNjFhYjA2MDJjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oCkBA
IC00NiwxMCArNDYsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFN0b3JhZ2VBcmVhSW1w
bDsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOwogCi1jbGFzcyBTdG9yYWdlQXJlYU1hcCBm
aW5hbCA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxTdG9yYWdlQXJlYU1hcD4gewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworY2xhc3Mg
U3RvcmFnZUFyZWFNYXAgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlQXJlYU1hcD4s
IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTdG9y
YWdlQXJlYU1hcD4gewogcHVibGljOgotICAgIFN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmKTsKKyAgICBzdGF0aWMgUmVm
PFN0b3JhZ2VBcmVhTWFwPiBjcmVhdGUoU3RvcmFnZU5hbWVzcGFjZUltcGwmLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYpOwogICAgIH5TdG9yYWdlQXJlYU1hcCgpOwogCiAgICAgV2Vi
Q29yZTo6U3RvcmFnZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpAQCAtNzEs
NiArNzAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNjb25uZWN0KCk7CiAKIHByaXZhdGU6Cisg
ICAgU3RvcmFnZUFyZWFNYXAoU3RvcmFnZU5hbWVzcGFjZUltcGwmLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYpOworCiAgICAgdm9pZCBkaWRTZXRJdGVtKHVpbnQ2NF90IG1hcFNlZWQs
IGNvbnN0IFN0cmluZyYga2V5LCBib29sIHF1b3RhRXJyb3IpOwogICAgIHZvaWQgZGlkUmVtb3Zl
SXRlbSh1aW50NjRfdCBtYXBTZWVkLCBjb25zdCBTdHJpbmcmIGtleSk7CiAgICAgdm9pZCBkaWRD
bGVhcih1aW50NjRfdCBtYXBTZWVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAppbmRleCBmZDBm
MTIyYzI3MzE4YzE1ZmUzZjUyOTc5MzBjNzliYmU3ZjM4ZTQzLi40ODg3YmNjODU1MTUyMTEzNDNm
M2E5MjllMWE5NGI4ZDIxOTY2YWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCkBAIC0xMDIs
MTAgKzEwMiwxMiBAQCB2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpkaWREZXN0cm95U3RvcmFn
ZUFyZWFNYXAoU3RvcmFnZUFyZWFNYXAmIG1hcCkKIAogUmVmPFN0b3JhZ2VBcmVhPiBTdG9yYWdl
TmFtZXNwYWNlSW1wbDo6c3RvcmFnZUFyZWEoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1
cml0eU9yaWdpbkRhdGEpCiB7Ci0gICAgYXV0byYgbWFwID0gbV9zdG9yYWdlQXJlYU1hcHMuZW5z
dXJlKHNlY3VyaXR5T3JpZ2luRGF0YSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8
U3RvcmFnZUFyZWFNYXA+KCp0aGlzLCBzZWN1cml0eU9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4o
KSk7CisgICAgUmVmUHRyPFN0b3JhZ2VBcmVhTWFwPiBtYXA7CisgICAgYXV0byogbWFwUHRyID0g
bV9zdG9yYWdlQXJlYU1hcHMuZW5zdXJlKHNlY3VyaXR5T3JpZ2luRGF0YSwgWyZdIHsKKyAgICAg
ICAgbWFwID0gU3RvcmFnZUFyZWFNYXA6OmNyZWF0ZSgqdGhpcywgc2VjdXJpdHlPcmlnaW5EYXRh
LnNlY3VyaXR5T3JpZ2luKCkpOworICAgICAgICByZXR1cm4gbWFwLmdldCgpOwogICAgIH0pLml0
ZXJhdG9yLT52YWx1ZTsKLSAgICByZXR1cm4gU3RvcmFnZUFyZWFJbXBsOjpjcmVhdGUoKm1hcCk7
CisgICAgcmV0dXJuIFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKCptYXBQdHIpOwogfQogCiBSZWY8
U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNvcHkoUGFnZSYgbmV3UGFn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VOYW1lc3BhY2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlTmFtZXNwYWNlSW1wbC5oCmluZGV4IDdmYjAwZDIzY2I3OGFkN2E0MTg2NGFjZjgwNzQ1
MjM2Yzk3ZGRiMjEuLmQ2NGE1Y2EzZWU1ZDY2OTZmYjA0ZTJhYmY1MTNhNTJlN2IxZmYwOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZUltcGwuaApAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogCiAgICAgY29u
c3QgdW5zaWduZWQgbV9xdW90YUluQnl0ZXM7CiAKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSwgc3RkOjp1bmlxdWVfcHRyPFN0b3JhZ2VBcmVhTWFwPj4gbV9zdG9yYWdl
QXJlYU1hcHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEsIFN0b3Jh
Z2VBcmVhTWFwKj4gbV9zdG9yYWdlQXJlYU1hcHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389821</attachid>
            <date>2020-02-05 09:49:57 -0800</date>
            <delta_ts>2020-02-05 10:16:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207073-20200205094956.patch</filename>
            <type>text/plain</type>
            <size>13568</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk5YzFiZjAyNGE1MWY0OWY3
ZGIwZjQ1NjJlYTBlZjQ3NmMwNGNmNzEuLjc0MWEzNDI1MTFkODA1MmJjNTVjOGQ5NWNiZTdlODVk
YjRmZTQ2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDItMDUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQYXJ0aWFsIHJldmVydCBvZiByMjQ4
NzM0IHRvIGZpeCBsZWFrIG9mIFN0b3JhZ2VBcmVhTWFwcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8gYSBwYXJ0aWFsIHJldmVydCBvZiByMjQ4NzM0
IHNvIHRoYXQgdGhlIFN0b3JhZ2VOYW1lc3BhY2VJbXBsIG5vIGxvbmdlciBob2xkcyBhIHN0cm9u
ZworICAgICAgICByZWZlcmVuY2UgdG8gaXRzIFN0b3JhZ2VBcmVhTWFwIG9iamVjdHMuIFRoZSBj
b2RlIGZvciByZW1vdmluZyBlbnRyaWVzIGZyb20gCisgICAgICAgIFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsOjptX3N0b3JhZ2VBcmVhTWFwcyAoU3RvcmFnZU5hbWVzcGFjZUltcGw6OmRpZERlc3Ryb3lT
dG9yYWdlQXJlYU1hcCgpKQorICAgICAgICB3YXMgZGVhZCBjb2RlIGFmdGVyIHIyNDg3MzQgYW5k
IHRodXMgU3RvcmFnZUFyZWFNYXAgd2VyZSBuZXZlciBkZXN0cm95ZWQuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZUFyZWFJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YUltcGw6OlN0b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1w
bDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsOjprZXkpOgorICAg
ICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUltcGw6Oml0ZW0pOgorICAgICAgICAoV2ViS2l0OjpT
dG9yYWdlQXJlYUltcGw6OnNldEl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUlt
cGw6OnJlbW92ZUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUltcGw6OmNsZWFy
KToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsOjpjb250YWlucyk6CisgICAgICAg
IChXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbDo6c3RvcmFnZVR5cGUgY29uc3QpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
dG9yYWdlQXJlYU1hcDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6
On5TdG9yYWdlQXJlYU1hcCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VBcmVhTWFwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OnN0
b3JhZ2VBcmVhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVz
cGFjZUltcGwuaDoKKwogMjAyMC0wMi0wNSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0NvY29hXSBVc2UgQVZBc3NldFdyaXRlckRlbGVnYXRlIHRvIGltcGxl
bWVudCBNZWRpYVJlY29yZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAppbmRleCA5NTVkNTYyYjczN2I4YjczZGEw
ODI1ZjY3YTRiOThmYTgwM2FlN2U4Li43ZDEzODI5NzFlZGU4OWI4Yzg2OGNjZmY4MTg3ODQyZTlk
ZTBjNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlQXJlYUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKQEAgLTM3LDE0ICszNywxNCBAQAogbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFN0b3JhZ2VBcmVhSW1wbD4g
U3RvcmFnZUFyZWFJbXBsOjpjcmVhdGUoU3RvcmFnZUFyZWFNYXAmIHN0b3JhZ2VBcmVhTWFwKQor
UmVmPFN0b3JhZ2VBcmVhSW1wbD4gU3RvcmFnZUFyZWFJbXBsOjpjcmVhdGUoUmVmPFN0b3JhZ2VB
cmVhTWFwPiYmIHN0b3JhZ2VBcmVhTWFwKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0
b3JhZ2VBcmVhSW1wbChzdG9yYWdlQXJlYU1hcCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFN0b3JhZ2VBcmVhSW1wbChXVEZNb3ZlKHN0b3JhZ2VBcmVhTWFwKSkpOwogfQogCi1TdG9yYWdl
QXJlYUltcGw6OlN0b3JhZ2VBcmVhSW1wbChTdG9yYWdlQXJlYU1hcCYgc3RvcmFnZUFyZWFNYXAp
CitTdG9yYWdlQXJlYUltcGw6OlN0b3JhZ2VBcmVhSW1wbChSZWY8U3RvcmFnZUFyZWFNYXA+JiYg
c3RvcmFnZUFyZWFNYXApCiAgICAgOiBtX2lkZW50aWZpZXIoSWRlbnRpZmllcjo6Z2VuZXJhdGUo
KSkKLSAgICAsIG1fc3RvcmFnZUFyZWFNYXAobWFrZVdlYWtQdHIoc3RvcmFnZUFyZWFNYXApKQor
ICAgICwgbV9zdG9yYWdlQXJlYU1hcChXVEZNb3ZlKHN0b3JhZ2VBcmVhTWFwKSkKIHsKIH0KIApA
QCAtNTQsNTQgKzU0LDQ0IEBAIFN0b3JhZ2VBcmVhSW1wbDo6flN0b3JhZ2VBcmVhSW1wbCgpCiAK
IHVuc2lnbmVkIFN0b3JhZ2VBcmVhSW1wbDo6bGVuZ3RoKCkKIHsKLSAgICByZXR1cm4gbV9zdG9y
YWdlQXJlYU1hcCA/IG1fc3RvcmFnZUFyZWFNYXAtPmxlbmd0aCgpIDogMDsKKyAgICByZXR1cm4g
bV9zdG9yYWdlQXJlYU1hcC0+bGVuZ3RoKCk7CiB9CiAKIFN0cmluZyBTdG9yYWdlQXJlYUltcGw6
OmtleSh1bnNpZ25lZCBpbmRleCkKIHsKLSAgICByZXR1cm4gbV9zdG9yYWdlQXJlYU1hcCA/IG1f
c3RvcmFnZUFyZWFNYXAtPmtleShpbmRleCkgOiBudWxsU3RyaW5nKCk7CisgICAgcmV0dXJuIG1f
c3RvcmFnZUFyZWFNYXAtPmtleShpbmRleCk7CiB9CiAKIFN0cmluZyBTdG9yYWdlQXJlYUltcGw6
Oml0ZW0oY29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0gICAgcmV0dXJuIG1fc3RvcmFnZUFyZWFNYXAg
PyBtX3N0b3JhZ2VBcmVhTWFwLT5pdGVtKGtleSkgOiBudWxsU3RyaW5nKCk7CisgICAgcmV0dXJu
IG1fc3RvcmFnZUFyZWFNYXAtPml0ZW0oa2V5KTsKIH0KIAogdm9pZCBTdG9yYWdlQXJlYUltcGw6
OnNldEl0ZW0oRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgYm9vbCYgcXVvdGFFeGNlcHRpb24pCiB7CiAgICAgQVNTRVJUKCF2YWx1ZS5p
c051bGwoKSk7CiAKLSAgICBpZiAobV9zdG9yYWdlQXJlYU1hcCkKLSAgICAgICAgbV9zdG9yYWdl
QXJlYU1hcC0+c2V0SXRlbShzb3VyY2VGcmFtZSwgdGhpcywga2V5LCB2YWx1ZSwgcXVvdGFFeGNl
cHRpb24pOworICAgIG1fc3RvcmFnZUFyZWFNYXAtPnNldEl0ZW0oc291cmNlRnJhbWUsIHRoaXMs
IGtleSwgdmFsdWUsIHF1b3RhRXhjZXB0aW9uKTsKIH0KIAogdm9pZCBTdG9yYWdlQXJlYUltcGw6
OnJlbW92ZUl0ZW0oRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBTdHJpbmcmIGtleSkKIHsKLSAg
ICBpZiAobV9zdG9yYWdlQXJlYU1hcCkKLSAgICAgICAgbV9zdG9yYWdlQXJlYU1hcC0+cmVtb3Zl
SXRlbShzb3VyY2VGcmFtZSwgdGhpcywga2V5KTsKKyAgICBtX3N0b3JhZ2VBcmVhTWFwLT5yZW1v
dmVJdGVtKHNvdXJjZUZyYW1lLCB0aGlzLCBrZXkpOwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhSW1w
bDo6Y2xlYXIoRnJhbWUqIHNvdXJjZUZyYW1lKQogewotICAgIGlmIChtX3N0b3JhZ2VBcmVhTWFw
KQotICAgICAgICBtX3N0b3JhZ2VBcmVhTWFwLT5jbGVhcihzb3VyY2VGcmFtZSwgdGhpcyk7Cisg
ICAgbV9zdG9yYWdlQXJlYU1hcC0+Y2xlYXIoc291cmNlRnJhbWUsIHRoaXMpOwogfQogCiBib29s
IFN0b3JhZ2VBcmVhSW1wbDo6Y29udGFpbnMoY29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0gICAgaWYg
KG1fc3RvcmFnZUFyZWFNYXApCi0gICAgICAgIHJldHVybiBtX3N0b3JhZ2VBcmVhTWFwLT5jb250
YWlucyhrZXkpOwotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3N0b3JhZ2VBcmVh
TWFwLT5jb250YWlucyhrZXkpOwogfQogCiBTdG9yYWdlVHlwZSBTdG9yYWdlQXJlYUltcGw6OnN0
b3JhZ2VUeXBlKCkgY29uc3QKIHsKLSAgICBpZiAobV9zdG9yYWdlQXJlYU1hcCkKLSAgICAgICAg
cmV0dXJuIG1fc3RvcmFnZUFyZWFNYXAtPnR5cGUoKTsKLQotICAgIC8vIFdlIHByb2JhYmx5IG5l
ZWQgYW4gSW52YWxpZCB0eXBlLgotICAgIHJldHVybiBTdG9yYWdlVHlwZTo6TG9jYWw7CisgICAg
cmV0dXJuIG1fc3RvcmFnZUFyZWFNYXAtPnR5cGUoKTsKIH0KIAogc2l6ZV90IFN0b3JhZ2VBcmVh
SW1wbDo6bWVtb3J5Qnl0ZXNVc2VkQnlDYWNoZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCmluZGV4IDc5ZTE0YjkxZjhh
YzZkODJmZTc5MmFjMDZkMzk0ZWQ3NjU4NDJhNjIuLmNlNDI1NzAwMmZlNzFkMTZhZjg4N2Y1OWQx
N2IwZDQ0MDZmNDg2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCkBAIC00MywxMyArNDMsMTMgQEAgY2xhc3MgU3Rv
cmFnZUFyZWFJbXBsIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlN0b3JhZ2VBcmVhIHsKIHB1Ymxp
YzoKICAgICB1c2luZyBJZGVudGlmaWVyID0gU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcjsKIAot
ICAgIHN0YXRpYyBSZWY8U3RvcmFnZUFyZWFJbXBsPiBjcmVhdGUoU3RvcmFnZUFyZWFNYXAmKTsK
KyAgICBzdGF0aWMgUmVmPFN0b3JhZ2VBcmVhSW1wbD4gY3JlYXRlKFJlZjxTdG9yYWdlQXJlYU1h
cD4mJik7CiAgICAgdmlydHVhbCB+U3RvcmFnZUFyZWFJbXBsKCk7CiAKICAgICBJZGVudGlmaWVy
IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogcHJpdmF0ZToK
LSAgICBTdG9yYWdlQXJlYUltcGwoU3RvcmFnZUFyZWFNYXAmKTsKKyAgICBTdG9yYWdlQXJlYUlt
cGwoUmVmPFN0b3JhZ2VBcmVhTWFwPiYmKTsKIAogICAgIC8vIFdlYkNvcmU6OlN0b3JhZ2VBcmVh
LgogICAgIHVuc2lnbmVkIGxlbmd0aCgpIG92ZXJyaWRlOwpAQCAtNjYsNyArNjYsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgY2xvc2VEYXRhYmFzZUlmSWRsZSgpIG92ZXJyaWRlOwogCiAgICAgSWRl
bnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgV2Vha1B0cjxTdG9yYWdlQXJlYU1hcD4gbV9zdG9y
YWdlQXJlYU1hcDsKKyAgICBSZWY8U3RvcmFnZUFyZWFNYXA+IG1fc3RvcmFnZUFyZWFNYXA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAppbmRleCBiZGFjYjNhM2FjNDBl
OWEzMWIyYmU4ODI1YjBiNWQwMDFiYzU3ZDYzLi4zOTBlZjM2NmM1ODY3NzM0YzFkY2Q3Njk5ODAz
NjZkOWFkZGEzMDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCkBAIC00OSw2ICs0OSwxMSBAQAogbmFtZXNwYWNl
IFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorUmVmPFN0b3JhZ2VBcmVhTWFw
PiBTdG9yYWdlQXJlYU1hcDo6Y3JlYXRlKFN0b3JhZ2VOYW1lc3BhY2VJbXBsJiBzdG9yYWdlTmFt
ZXNwYWNlLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgc2VjdXJpdHlPcmlnaW4pCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZUFyZWFNYXAoc3RvcmFnZU5hbWVzcGFj
ZSwgV1RGTW92ZShzZWN1cml0eU9yaWdpbikpKTsKK30KKwogU3RvcmFnZUFyZWFNYXA6OlN0b3Jh
Z2VBcmVhTWFwKFN0b3JhZ2VOYW1lc3BhY2VJbXBsJiBzdG9yYWdlTmFtZXNwYWNlLCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgc2VjdXJpdHlPcmlnaW4pCiAgICAgOiBtX25hbWVzcGFj
ZShzdG9yYWdlTmFtZXNwYWNlKQogICAgICwgbV9zZWN1cml0eU9yaWdpbihXVEZNb3ZlKHNlY3Vy
aXR5T3JpZ2luKSkKQEAgLTYwLDYgKzY1LDggQEAgU3RvcmFnZUFyZWFNYXA6OlN0b3JhZ2VBcmVh
TWFwKFN0b3JhZ2VOYW1lc3BhY2VJbXBsJiBzdG9yYWdlTmFtZXNwYWNlLCBSZWY8V2ViQ28KIAog
U3RvcmFnZUFyZWFNYXA6On5TdG9yYWdlQXJlYU1hcCgpCiB7CisgICAgbV9uYW1lc3BhY2UtPmRp
ZERlc3Ryb3lTdG9yYWdlQXJlYU1hcCgqdGhpcyk7CisKICAgICBkaXNjb25uZWN0KCk7CiB9CiAK
QEAgLTMwMyw3ICszMTAsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNwYXRjaFNlc3Npb25T
dG9yYWdlRXZlbnQoY29uc3QgT3B0aW9uYWw8U3RvcmFnZUFyZWFJbXBsSQogewogICAgIC8vIE5h
bWVzcGFjZSBJRHMgZm9yIHNlc3Npb24gc3RvcmFnZSBuYW1lc3BhY2VzIGFyZSBlcXVpdmFsZW50
IHRvIHdlYiBwYWdlIElEcwogICAgIC8vIHNvIHdlIGNhbiBnZXQgdGhlIHJpZ2h0IHBhZ2UgaGVy
ZS4KLSAgICBhdXRvKiB3ZWJQYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZSht
X25hbWVzcGFjZS5zZXNzaW9uU3RvcmFnZVBhZ2VJRCgpKTsKKyAgICBhdXRvKiB3ZWJQYWdlID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShtX25hbWVzcGFjZS0+c2Vzc2lvblN0b3Jh
Z2VQYWdlSUQoKSk7CiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAKQEAgLTMy
Miw3ICszMjksNyBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2
ZW50KGNvbnN0IE9wdGlvbmFsPFN0b3JhZ2VBcmVhSW1wbElkZQogICAgIFZlY3RvcjxSZWZQdHI8
RnJhbWU+PiBmcmFtZXM7CiAKICAgICAvLyBOYW1lc3BhY2UgSURzIGZvciBsb2NhbCBzdG9yYWdl
IG5hbWVzcGFjZXMgYXJlIGVxdWl2YWxlbnQgdG8gd2ViIHBhZ2UgZ3JvdXAgSURzLgotICAgIGF1
dG8mIHBhZ2VHcm91cCA9ICpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlR3JvdXAobV9u
YW1lc3BhY2UucGFnZUdyb3VwSUQoKSktPmNvcmVQYWdlR3JvdXAoKTsKKyAgICBhdXRvJiBwYWdl
R3JvdXAgPSAqV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZUdyb3VwKG1fbmFtZXNwYWNl
LT5wYWdlR3JvdXBJRCgpKS0+Y29yZVBhZ2VHcm91cCgpOwogICAgIGZvciAoYXV0byogcGFnZSA6
IHBhZ2VHcm91cC5wYWdlcygpKQogICAgICAgICBmcmFtZXMuYXBwZW5kVmVjdG9yKGZyYW1lc0Zv
ckV2ZW50RGlzcGF0Y2hpbmcoKnBhZ2UsIG1fc2VjdXJpdHlPcmlnaW4sIHN0b3JhZ2VBcmVhSW1w
bElEKSk7CiAKQEAgLTMzNywxMyArMzQ0LDEzIEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmNvbm5l
Y3QoKQogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBTdG9yYWdlVHlwZTo6TG9jYWw6
CiAgICAgY2FzZSBTdG9yYWdlVHlwZTo6VHJhbnNpZW50TG9jYWw6Ci0gICAgICAgIGlmIChTZWN1
cml0eU9yaWdpbiogdG9wTGV2ZWxPcmlnaW4gPSBtX25hbWVzcGFjZS50b3BMZXZlbE9yaWdpbigp
KQotICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpTdG9yYWdlTWFu
YWdlclNldDo6Q29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5zZXNzaW9uSUQoKSwgbV9uYW1lc3BhY2Uuc3RvcmFnZU5hbWVzcGFjZUlEKCks
IHRvcExldmVsT3JpZ2luLT5kYXRhKCksIG1fc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSksIE1lc3Nh
Z2VzOjpTdG9yYWdlTWFuYWdlclNldDo6Q29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJl
YTo6UmVwbHkobV9tYXBJRCksIDApOworICAgICAgICBpZiAoU2VjdXJpdHlPcmlnaW4qIHRvcExl
dmVsT3JpZ2luID0gbV9uYW1lc3BhY2UtPnRvcExldmVsT3JpZ2luKCkpCisgICAgICAgICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpDb25uZWN0
VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlc3Np
b25JRCgpLCBtX25hbWVzcGFjZS0+c3RvcmFnZU5hbWVzcGFjZUlEKCksIHRvcExldmVsT3JpZ2lu
LT5kYXRhKCksIG1fc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSksIE1lc3NhZ2VzOjpTdG9yYWdlTWFu
YWdlclNldDo6Q29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYTo6UmVwbHkobV9tYXBJ
RCksIDApOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMo
TWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpDb25uZWN0VG9Mb2NhbFN0b3JhZ2VBcmVhKFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlc3Npb25JRCgpLCBtX25hbWVzcGFjZS5zdG9yYWdlTmFt
ZXNwYWNlSUQoKSwgbV9zZWN1cml0eU9yaWdpbi0+ZGF0YSgpKSwgTWVzc2FnZXM6OlN0b3JhZ2VN
YW5hZ2VyU2V0OjpDb25uZWN0VG9Mb2NhbFN0b3JhZ2VBcmVhOjpSZXBseShtX21hcElEKSwgMCk7
CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlN0b3JhZ2VNYW5h
Z2VyU2V0OjpDb25uZWN0VG9Mb2NhbFN0b3JhZ2VBcmVhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnNlc3Npb25JRCgpLCBtX25hbWVzcGFjZS0+c3RvcmFnZU5hbWVzcGFjZUlEKCksIG1fc2VjdXJp
dHlPcmlnaW4tPmRhdGEoKSksIE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlclNldDo6Q29ubmVjdFRv
TG9jYWxTdG9yYWdlQXJlYTo6UmVwbHkobV9tYXBJRCksIDApOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFN0b3JhZ2VUeXBlOjpTZXNzaW9uOgotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5
bmMoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpDb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFy
ZWEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2Vzc2lvbklEKCksIG1fbmFtZXNwYWNlLnN0b3Jh
Z2VOYW1lc3BhY2VJRCgpLCBtX3NlY3VyaXR5T3JpZ2luLT5kYXRhKCkpLCBNZXNzYWdlczo6U3Rv
cmFnZU1hbmFnZXJTZXQ6OkNvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYTo6UmVwbHkobV9tYXBJ
RCksIDApOworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlN0b3JhZ2VN
YW5hZ2VyU2V0OjpDb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEoV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuc2Vzc2lvbklEKCksIG1fbmFtZXNwYWNlLT5zdG9yYWdlTmFtZXNwYWNlSUQoKSwgbV9z
ZWN1cml0eU9yaWdpbi0+ZGF0YSgpKSwgTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpDb25u
ZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWE6OlJlcGx5KG1fbWFwSUQpLCAwKTsKICAgICB9CiAKICAg
ICBpZiAobV9tYXBJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYU1hcC5oCmluZGV4IDdjODEyMTlmZmU4NWFjN2U3NTU1Yzg2MDE3NDEy
ZThlMGZhYWNlOWMuLmIxZjVmMmZkZGExNDgyMzE2NDI5MGZiNWZiMDkzYTRmYmM3YzVmN2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVh
TWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFy
ZWFNYXAuaApAQCAtNDYsMTAgKzQ2LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBTdG9y
YWdlQXJlYUltcGw7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbDsKIAotY2xhc3MgU3RvcmFn
ZUFyZWFNYXAgZmluYWwgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8U3RvcmFnZUFyZWFNYXA+IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK2NsYXNzIFN0b3JhZ2VBcmVhTWFwIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U3RvcmFn
ZUFyZWFNYXA+LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U3RvcmFnZUFyZWFNYXA+IHsKIHB1YmxpYzoKLSAgICBTdG9yYWdlQXJlYU1hcChTdG9y
YWdlTmFtZXNwYWNlSW1wbCYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJik7CisgICAg
c3RhdGljIFJlZjxTdG9yYWdlQXJlYU1hcD4gY3JlYXRlKFN0b3JhZ2VOYW1lc3BhY2VJbXBsJiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmKTsKICAgICB+U3RvcmFnZUFyZWFNYXAoKTsK
IAogICAgIFdlYkNvcmU6OlN0b3JhZ2VUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KQEAgLTcxLDYgKzcwLDggQEAgcHVibGljOgogICAgIHZvaWQgZGlzY29ubmVjdCgpOwogCiBw
cml2YXRlOgorICAgIFN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VOYW1lc3BhY2VJbXBsJiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmKTsKKwogICAgIHZvaWQgZGlkU2V0SXRlbSh1aW50NjRf
dCBtYXBTZWVkLCBjb25zdCBTdHJpbmcmIGtleSwgYm9vbCBxdW90YUVycm9yKTsKICAgICB2b2lk
IGRpZFJlbW92ZUl0ZW0odWludDY0X3QgbWFwU2VlZCwgY29uc3QgU3RyaW5nJiBrZXkpOwogICAg
IHZvaWQgZGlkQ2xlYXIodWludDY0X3QgbWFwU2VlZCk7CkBAIC04OSw3ICs5MCw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGNvbm5lY3QoKTsKIAotICAgIFN0b3JhZ2VOYW1lc3BhY2VJbXBsJiBt
X25hbWVzcGFjZTsKKyAgICBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IG1fbmFtZXNwYWNlOwog
ICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV9zZWN1cml0eU9yaWdpbjsKICAgICBS
ZWZQdHI8V2ViQ29yZTo6U3RvcmFnZU1hcD4gbV9tYXA7CiAgICAgT3B0aW9uYWw8U3RvcmFnZUFy
ZWFJZGVudGlmaWVyPiBtX21hcElEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCmluZGV4IGZkMGYx
MjJjMjczMThjMTVmZTNmNTI5NzkzMGM3OWJiZTdmMzhlNDMuLjQ4ODdiY2M4NTUxNTIxMTM0M2Yz
YTkyOWUxYTk0YjhkMjE5NjZhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKQEAgLTEwMiwx
MCArMTAyLDEyIEBAIHZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OmRpZERlc3Ryb3lTdG9yYWdl
QXJlYU1hcChTdG9yYWdlQXJlYU1hcCYgbWFwKQogCiBSZWY8U3RvcmFnZUFyZWE+IFN0b3JhZ2VO
YW1lc3BhY2VJbXBsOjpzdG9yYWdlQXJlYShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3Vy
aXR5T3JpZ2luRGF0YSkKIHsKLSAgICBhdXRvJiBtYXAgPSBtX3N0b3JhZ2VBcmVhTWFwcy5lbnN1
cmUoc2VjdXJpdHlPcmlnaW5EYXRhLCBbJl0gewotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxT
dG9yYWdlQXJlYU1hcD4oKnRoaXMsIHNlY3VyaXR5T3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigp
KTsKKyAgICBSZWZQdHI8U3RvcmFnZUFyZWFNYXA+IG1hcDsKKyAgICBhdXRvKiBtYXBQdHIgPSBt
X3N0b3JhZ2VBcmVhTWFwcy5lbnN1cmUoc2VjdXJpdHlPcmlnaW5EYXRhLCBbJl0geworICAgICAg
ICBtYXAgPSBTdG9yYWdlQXJlYU1hcDo6Y3JlYXRlKCp0aGlzLCBzZWN1cml0eU9yaWdpbkRhdGEu
c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgICAgIHJldHVybiBtYXAuZ2V0KCk7CiAgICAgfSkuaXRl
cmF0b3ItPnZhbHVlOwotICAgIHJldHVybiBTdG9yYWdlQXJlYUltcGw6OmNyZWF0ZSgqbWFwKTsK
KyAgICByZXR1cm4gU3RvcmFnZUFyZWFJbXBsOjpjcmVhdGUoKm1hcFB0cik7CiB9CiAKIFJlZjxT
dG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y29weShQYWdlJiBuZXdQYWdl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZU5hbWVzcGFjZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0
b3JhZ2VOYW1lc3BhY2VJbXBsLmgKaW5kZXggN2ZiMDBkMjNjYjc4YWQ3YTQxODY0YWNmODA3NDUy
MzZjOTdkZGIyMS4uZDY0YTVjYTNlZTVkNjY5NmZiMDRlMmFiZjUxM2E1MmU3YjFmZjA5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVz
cGFjZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlTmFtZXNwYWNlSW1wbC5oCkBAIC03OSw3ICs3OSw3IEBAIHByaXZhdGU6CiAKICAgICBjb25z
dCB1bnNpZ25lZCBtX3F1b3RhSW5CeXRlczsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8U3RvcmFnZUFyZWFNYXA+PiBtX3N0b3JhZ2VB
cmVhTWFwczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgU3RvcmFn
ZUFyZWFNYXAqPiBtX3N0b3JhZ2VBcmVhTWFwczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389826</attachid>
            <date>2020-02-05 10:16:31 -0800</date>
            <delta_ts>2020-02-05 14:41:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207073-20200205101630.patch</filename>
            <type>text/plain</type>
            <size>4891</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk5YzFiZjAyNGE1MWY0OWY3
ZGIwZjQ1NjJlYTBlZjQ3NmMwNGNmNzEuLmYyZTdmZmUxYmFhYTFhNmUwMzcyMDA2YzQxMzQ2MzI3
NzgxODhiY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDItMDUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWdyZXNzaW9uKHIyNDg3MzQpIFN0
b3JhZ2VBcmVhTWFwIG9iamVjdHMgYXJlIGdldHRpbmcgbGVha2VkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcwNzMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU5MTY4MDY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IFN0b3JhZ2VBcmVhTWFwIG9iamVjdHMgYXJlIGdldHRp
bmcgcmVtb3ZlZCBmcm9tIHRoZSBIYXNoTWFwCisgICAgICAgIGluIFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsLCBvbmNlIHRoZXkgbm8gbG9uZ2VyIGhhdmUgYW55IHVzZXJzLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlN0b3JhZ2VBcmVhSW1wbDo6U3RvcmFnZUFyZWFJbXBsKToKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZUFyZWFJbXBsOjp+U3RvcmFnZUFyZWFJbXBsKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YU1hcDo6aW5jcmVtZW50VXNlQ291bnQpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1h
cDo6ZGVjcmVtZW50VXNlQ291bnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlQXJlYU1hcC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
TmFtZXNwYWNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJbXBs
OjpkZXN0cm95U3RvcmFnZUFyZWFNYXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oOgorCiAyMDIwLTAyLTA1ICB5b3Vlbm4gZmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFVzZSBBVkFzc2V0V3JpdGVyRGVs
ZWdhdGUgdG8gaW1wbGVtZW50IE1lZGlhUmVjb3JkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCmluZGV4IDk1NWQ1
NjJiNzM3YjhiNzNkYTA4MjVmNjdhNGI5OGZhODAzYWU3ZTguLjhhNTQ3ZWE4OTk0NzQ0ZWJiZGY4
MTMzYTQ3MzhmYjQ2NzcxMTA0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcApAQCAtNDYsMTAgKzQ2LDEzIEBA
IFN0b3JhZ2VBcmVhSW1wbDo6U3RvcmFnZUFyZWFJbXBsKFN0b3JhZ2VBcmVhTWFwJiBzdG9yYWdl
QXJlYU1hcCkKICAgICA6IG1faWRlbnRpZmllcihJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogICAg
ICwgbV9zdG9yYWdlQXJlYU1hcChtYWtlV2Vha1B0cihzdG9yYWdlQXJlYU1hcCkpCiB7CisgICAg
c3RvcmFnZUFyZWFNYXAuaW5jcmVtZW50VXNlQ291bnQoKTsKIH0KIAogU3RvcmFnZUFyZWFJbXBs
Ojp+U3RvcmFnZUFyZWFJbXBsKCkKIHsKKyAgICBpZiAobV9zdG9yYWdlQXJlYU1hcCkKKyAgICAg
ICAgbV9zdG9yYWdlQXJlYU1hcC0+ZGVjcmVtZW50VXNlQ291bnQoKTsKIH0KIAogdW5zaWduZWQg
U3RvcmFnZUFyZWFJbXBsOjpsZW5ndGgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCmluZGV4IGJkYWNiM2EzYWM0MGU5
YTMxYjJiZTg4MjViMGI1ZDAwMWJjNTdkNjMuLjQ2ODdlMDMxMzhhZGRkMDQ5ODJhZjFlNDhlMjBk
MjcxMThiMTIwY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
U3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKQEAgLTM2NCw0ICszNjQsMTUgQEAgdm9pZCBTdG9y
YWdlQXJlYU1hcDo6ZGlzY29ubmVjdCgpCiAgICAgbV9tYXBJRCA9IHsgfTsKIH0KIAordm9pZCBT
dG9yYWdlQXJlYU1hcDo6aW5jcmVtZW50VXNlQ291bnQoKQoreworICAgICsrbV91c2VDb3VudDsK
K30KKwordm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGVjcmVtZW50VXNlQ291bnQoKQoreworICAgIGlm
ICghLS1tX3VzZUNvdW50KQorICAgICAgICBtX25hbWVzcGFjZS5kZXN0cm95U3RvcmFnZUFyZWFN
YXAoKnRoaXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oCmluZGV4IDdjODEy
MTlmZmU4NWFjN2U3NTU1Yzg2MDE3NDEyZThlMGZhYWNlOWMuLmMwYmQzNzU5NDM3YTk3ZmY4OWNi
Y2FlN2I0OWEyZTc5Zjg5NDNlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaApAQCAtNzAsNiArNzAsOSBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGRpc2Nvbm5lY3QoKTsKIAorICAgIHZvaWQgaW5jcmVtZW50VXNlQ291bnQo
KTsKKyAgICB2b2lkIGRlY3JlbWVudFVzZUNvdW50KCk7CisKIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRTZXRJdGVtKHVpbnQ2NF90IG1hcFNlZWQsIGNvbnN0IFN0cmluZyYga2V5LCBib29sIHF1b3Rh
RXJyb3IpOwogICAgIHZvaWQgZGlkUmVtb3ZlSXRlbSh1aW50NjRfdCBtYXBTZWVkLCBjb25zdCBT
dHJpbmcmIGtleSk7CkBAIC05Nyw2ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1f
Y3VycmVudFNlZWQgeyAwIH07CiAgICAgdW5zaWduZWQgbV9xdW90YUluQnl0ZXM7CiAgICAgV2Vi
Q29yZTo6U3RvcmFnZVR5cGUgbV90eXBlOworICAgIHVpbnQ2NF90IG1fdXNlQ291bnQgeyAwIH07
CiAgICAgYm9vbCBtX2hhc1BlbmRpbmdDbGVhciB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5jcHAKaW5kZXggZmQwZjEyMmMyNzMxOGMxNWZlM2Y1Mjk3OTMwYzc5YmJlN2YzOGU0
My4uMzkxMzgzZDM2ZWU1ZjhlMGViYjA3ZWVlMjcyNmVjMjQ5ZDNkNTZjNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcApAQCAtOTUsNyArOTUsNyBAQCBQQUw6OlNlc3Npb25JRCBTdG9yYWdlTmFt
ZXNwYWNlSW1wbDo6c2Vzc2lvbklEKCkgY29uc3QKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuc2Vzc2lvbklEKCk7CiB9CiAKLXZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OmRp
ZERlc3Ryb3lTdG9yYWdlQXJlYU1hcChTdG9yYWdlQXJlYU1hcCYgbWFwKQordm9pZCBTdG9yYWdl
TmFtZXNwYWNlSW1wbDo6ZGVzdHJveVN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VBcmVhTWFwJiBtYXAp
CiB7CiAgICAgbV9zdG9yYWdlQXJlYU1hcHMucmVtb3ZlKG1hcC5zZWN1cml0eU9yaWdpbigpLmRh
dGEoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAppbmRleCA3ZmIwMGQyM2NiNzhhZDdhNDE4NjRh
Y2Y4MDc0NTIzNmM5N2RkYjIxLi4wYzExMGEyOWEyYmFiNmU0MDJmYmFmYzgxODllYWQ5ZDQ3Mzhm
YTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlTmFtZXNwYWNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAg
IHVuc2lnbmVkIHF1b3RhSW5CeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcXVvdGFJbkJ5dGVzOyB9
CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2
b2lkIGRpZERlc3Ryb3lTdG9yYWdlQXJlYU1hcChTdG9yYWdlQXJlYU1hcCYpOworICAgIHZvaWQg
ZGVzdHJveVN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VBcmVhTWFwJik7CiAKICAgICB2b2lkIHNldFNl
c3Npb25JREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQpIG92ZXJyaWRlOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389870</attachid>
            <date>2020-02-05 14:41:46 -0800</date>
            <delta_ts>2020-02-05 15:26:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207073-20200205144145.patch</filename>
            <type>text/plain</type>
            <size>15547</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1ODUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJkNzUzOWM0M2RkZWEy
MmVmNzQ3NDMwNzFkY2E0ZTc5MDZlZjY5NC4uMThiM2ZjNzBmYmU3YTUwZTI0MDY0ODM4ZjM2MWQ1
ZGYzNjFlYjBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVncmVzc2lvbihyMjQ4NzM0
KSBTdG9yYWdlQXJlYU1hcCBvYmplY3RzIGFyZSBnZXR0aW5nIGxlYWtlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MDczCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81OTE2ODA2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgdGVzdCBpbmZyYXN0cnVjdHVyZSBmb3IgdGVzdGluZyB0aGlzIGNo
YW5nZS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3N0b3JhZ2Uvc3RvcmFnZS1tYXAtbGVh
a2luZy5odG1sCisKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2U6OnN0b3JhZ2VBcmVhTWFwQ291bnRGb3JUZXN0
aW5nIGNvbnN0KToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5o
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6c3RvcmFnZUFyZWFNYXBDb3VudCBjb25zdCk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjAtMDIt
MDUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBNYWtlIFdLV2ViVmlldy5fbmVnb3RpYXRlZExlZ2FjeVRMUyBhY2N1cmF0ZSB3aGVuIGxvYWRp
bmcgbWFpbiByZXNvdW9yY2UgZnJvbSBuZXR3b3JrIG9yIGNhY2hlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE2OTg3
YTliMzc5NzBhYjEwMzc4ODA3MzY2YTMyNDQ0MGQ4OWY3NDQuLjU1NTM3YTM1YTE1YTE0MTcwZTI3
YTk4MDlhZjMwNmFhMWMyZTg4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjAtMDIt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWdyZXNzaW9u
KHIyNDg3MzQpIFN0b3JhZ2VBcmVhTWFwIG9iamVjdHMgYXJlIGdldHRpbmcgbGVha2VkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcwNzMKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU5MTY4MDY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IFN0b3JhZ2VBcmVhTWFwIG9iamVj
dHMgYXJlIGdldHRpbmcgcmVtb3ZlZCBmcm9tIHRoZSBIYXNoTWFwCisgICAgICAgIGluIFN0b3Jh
Z2VOYW1lc3BhY2VJbXBsLCBvbmNlIHRoZXkgbm8gbG9uZ2VyIGhhdmUgYW55IHVzZXJzLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbDo6U3RvcmFnZUFyZWFJbXBsKToKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsOjp+U3RvcmFnZUFyZWFJbXBsKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwOgorICAgICAgICAoV2ViS2l0
OjpTdG9yYWdlQXJlYU1hcDo6aW5jcmVtZW50VXNlQ291bnQpOgorICAgICAgICAoV2ViS2l0OjpT
dG9yYWdlQXJlYU1hcDo6ZGVjcmVtZW50VXNlQ291bnQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VO
YW1lc3BhY2VJbXBsOjpkZXN0cm95U3RvcmFnZUFyZWFNYXApOgorICAgICAgICAoV2ViS2l0OjpT
dG9yYWdlTmFtZXNwYWNlSW1wbDo6ZGlkRGVzdHJveVN0b3JhZ2VBcmVhTWFwKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaDoK
KyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OnN0b3JhZ2VUeXBlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OnN0b3Jh
Z2VOYW1lc3BhY2VJRCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VO
YW1lc3BhY2VJbXBsOjp0b3BMZXZlbE9yaWdpbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpxdW90YUluQnl0ZXMgY29uc3QpOiBEZWxldGVk
LgorCiAyMDIwLTAyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0lQQyBIYXJkZW5pbmddIFByb3RlY3QgYWdhaW5zdCBtX2luc3BlY3RvclBhZ2UgYmVpbmcg
bnVsbCBpbiBXZWJJbnNwZWN0b3JQcm94eTo6c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoKSAvIHNl
dEF0dGFjaGVkV2luZG93V2lkdGgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2UuaAppbmRleCAzNTQwNzBmZmYyNGJiMjk5M2QzODA5ZDgxM2E2ODgyYmMxNjE2M2E4Li43
MWM1ZGI1MmJhZjhhYmI4YzJhN2U4Y2U1NzJhZGI4OGU0NGJkZWI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuaApAQCAtNDgsNiArNDgsOCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U2Vzc2lvbklERm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCkgPSAwOwor
CisgICAgdmlydHVhbCB1aW50NjRfdCBzdG9yYWdlQXJlYU1hcENvdW50Rm9yVGVzdGluZygpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oCmluZGV4IDI2
OWVjZTc2N2E3ZTRlYTU3MzVjYjljNzgzYzU4ZDliOWQxMGY3OWQuLmRlZDYzMGZjMDYxZmJhZjkz
MThmNDVhMDE5NGI1OTgxZTYxYWQyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaApAQCAtNTgsNyArNTgsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgU3RvcmFnZU5hbWVzcGFjZSogb3B0aW9uYWxMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoKSB7
IHJldHVybiBtX2xvY2FsU3RvcmFnZU5hbWVzcGFjZS5nZXQoKTsgfQogCiBwcml2YXRlOgotICAg
IFN0b3JhZ2VOYW1lc3BhY2UmIGxvY2FsU3RvcmFnZU5hbWVzcGFjZShQQUw6OlNlc3Npb25JRCk7
CisgICAgZnJpZW5kIGNsYXNzIEludGVybmFsczsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdG9yYWdl
TmFtZXNwYWNlJiBsb2NhbFN0b3JhZ2VOYW1lc3BhY2UoUEFMOjpTZXNzaW9uSUQpOwogICAgIFN0
b3JhZ2VOYW1lc3BhY2UmIHRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZShTZWN1cml0eU9y
aWdpbiYsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZpcnR1YWwgUmVmPFN0b3JhZ2VOYW1lc3Bh
Y2U+IGNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSwgUEFMOjpTZXNz
aW9uSUQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1Y2VmNTEw
MDVjNDhlYzdmZjczNmEwOTY4NzA3MTk1MTRlMmY4ZGJjLi5jMGJkOWNlNDI1MWFlYmYzNWU2OTk5
YjZhMjZkOGM0YzhiOGU0OTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBA
IC0xNzYsNiArMTc2LDggQEAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJT
cGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5oIgorI2luY2x1ZGUgIlN0
b3JhZ2VOYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJTdHJpbmdDYWxsYmFjay5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIK
ICNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKQEAgLTI1MzEsNiArMjUzMywxNSBAQCBib29sIEludGVy
bmFsczo6aXNEb2N1bWVudEFsaXZlKHVpbnQ2NF90IGRvY3VtZW50SWRlbnRpZmllcikgY29uc3QK
ICAgICByZXR1cm4gRG9jdW1lbnQ6OmFsbERvY3VtZW50c01hcCgpLmNvbnRhaW5zKG1ha2VPYmpl
Y3RJZGVudGlmaWVyPERvY3VtZW50SWRlbnRpZmllclR5cGU+KGRvY3VtZW50SWRlbnRpZmllcikp
OwogfQogCit1aW50NjRfdCBJbnRlcm5hbHM6OnN0b3JhZ2VBcmVhTWFwQ291bnQoKSBjb25zdAor
eworICAgIGF1dG8qIHBhZ2UgPSBjb250ZXh0RG9jdW1lbnQoKSA/IGNvbnRleHREb2N1bWVudCgp
LT5wYWdlKCkgOiBudWxscHRyOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICByZXR1cm4gcGFnZS0+c3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyKCkubG9jYWxTdG9yYWdl
TmFtZXNwYWNlKHBhZ2UtPnNlc3Npb25JRCgpKS5zdG9yYWdlQXJlYU1hcENvdW50Rm9yVGVzdGlu
ZygpOworfQorCiB1aW50NjRfdCBJbnRlcm5hbHM6OmVsZW1lbnRJZGVudGlmaWVyKEVsZW1lbnQm
IGVsZW1lbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGVsZW1lbnQuZG9jdW1lbnQoKS5pZGVudGlm
aWVyRm9yRWxlbWVudChlbGVtZW50KS50b1VJbnQ2NCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKaW5kZXggNGFmMTMxYmQxNGJmMjRhMDBjMWMyNTVjNzNmNTc4ZWEyZTI0MzgwZC4uNTMx
NzVjNTYyYzRhODA1ZDhiMTRmYTI2MDUwNTAxYjI2YTc4ZDMwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCkBAIC00MjQsNiArNDI0LDggQEAgcHVibGljOgogICAgIHVpbnQ2NF90IGRv
Y3VtZW50SWRlbnRpZmllcihjb25zdCBEb2N1bWVudCYpIGNvbnN0OwogICAgIGJvb2wgaXNEb2N1
bWVudEFsaXZlKHVpbnQ2NF90IGRvY3VtZW50SWRlbnRpZmllcikgY29uc3Q7CiAKKyAgICB1aW50
NjRfdCBzdG9yYWdlQXJlYU1hcENvdW50KCkgY29uc3Q7CisKICAgICB1aW50NjRfdCBlbGVtZW50
SWRlbnRpZmllcihFbGVtZW50JikgY29uc3Q7CiAgICAgdWludDY0X3QgZnJhbWVJZGVudGlmaWVy
KGNvbnN0IERvY3VtZW50JikgY29uc3Q7CiAgICAgdWludDY0X3QgcGFnZUlkZW50aWZpZXIoY29u
c3QgRG9jdW1lbnQmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRl
eCAxNzFlNTc3YmY4ZTUzNzZiZjI3MDA4NGRlYzljYmU2NDY3ZjBiYzYwLi5lOWU4YmUzNmI5MjU1
ZWYzZjJhNjE4ZWQwOWY1MjE4MDY2Nzk1ZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCkBAIC03MzQsNiArNzM0LDggQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAg
dW5zaWduZWQgbG9uZyBsb25nIGRvY3VtZW50SWRlbnRpZmllcihEb2N1bWVudCBkb2N1bWVudCk7
CiAgICAgYm9vbGVhbiBpc0RvY3VtZW50QWxpdmUodW5zaWduZWQgbG9uZyBsb25nIGRvY3VtZW50
SWRlbnRpZmllcik7CiAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25n
IHN0b3JhZ2VBcmVhTWFwQ291bnQ7CisKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgZWxlbWVudElk
ZW50aWZpZXIoRWxlbWVudCBlbGVtZW50KTsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgZnJhbWVJ
ZGVudGlmaWVyKERvY3VtZW50IGRvY3VtZW50KTsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcGFn
ZUlkZW50aWZpZXIoRG9jdW1lbnQgZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKaW5kZXggOTU1ZDU2
MmI3MzdiOGI3M2RhMDgyNWY2N2E0Yjk4ZmE4MDNhZTdlOC4uOGE1NDdlYTg5OTQ3NDRlYmJkZjgx
MzNhNDczOGZiNDY3NzExMDQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCkBAIC00NiwxMCArNDYsMTMgQEAg
U3RvcmFnZUFyZWFJbXBsOjpTdG9yYWdlQXJlYUltcGwoU3RvcmFnZUFyZWFNYXAmIHN0b3JhZ2VB
cmVhTWFwKQogICAgIDogbV9pZGVudGlmaWVyKElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAg
LCBtX3N0b3JhZ2VBcmVhTWFwKG1ha2VXZWFrUHRyKHN0b3JhZ2VBcmVhTWFwKSkKIHsKKyAgICBz
dG9yYWdlQXJlYU1hcC5pbmNyZW1lbnRVc2VDb3VudCgpOwogfQogCiBTdG9yYWdlQXJlYUltcGw6
On5TdG9yYWdlQXJlYUltcGwoKQogeworICAgIGlmIChtX3N0b3JhZ2VBcmVhTWFwKQorICAgICAg
ICBtX3N0b3JhZ2VBcmVhTWFwLT5kZWNyZW1lbnRVc2VDb3VudCgpOwogfQogCiB1bnNpZ25lZCBT
dG9yYWdlQXJlYUltcGw6Omxlbmd0aCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKaW5kZXggYmRhY2IzYTNhYzQwZTlh
MzFiMmJlODgyNWIwYjVkMDAxYmM1N2Q2My4uNDY4N2UwMzEzOGFkZGQwNDk4MmFmMWU0OGUyMGQy
NzExOGIxMjBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZUFyZWFNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcApAQCAtMzY0LDQgKzM2NCwxNSBAQCB2b2lkIFN0b3Jh
Z2VBcmVhTWFwOjpkaXNjb25uZWN0KCkKICAgICBtX21hcElEID0geyB9OwogfQogCit2b2lkIFN0
b3JhZ2VBcmVhTWFwOjppbmNyZW1lbnRVc2VDb3VudCgpCit7CisgICAgKyttX3VzZUNvdW50Owor
fQorCit2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkZWNyZW1lbnRVc2VDb3VudCgpCit7CisgICAgaWYg
KCEtLW1fdXNlQ291bnQpCisgICAgICAgIG1fbmFtZXNwYWNlLmRlc3Ryb3lTdG9yYWdlQXJlYU1h
cCgqdGhpcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgKaW5kZXggN2M4MTIx
OWZmZTg1YWM3ZTc1NTVjODYwMTc0MTJlOGUwZmFhY2U5Yy4uYzBiZDM3NTk0MzdhOTdmZjg5Y2Jj
YWU3YjQ5YTJlNzlmODk0M2U1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oCkBAIC03MCw2ICs3MCw5IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZGlzY29ubmVjdCgpOwogCisgICAgdm9pZCBpbmNyZW1lbnRVc2VDb3VudCgp
OworICAgIHZvaWQgZGVjcmVtZW50VXNlQ291bnQoKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFNldEl0ZW0odWludDY0X3QgbWFwU2VlZCwgY29uc3QgU3RyaW5nJiBrZXksIGJvb2wgcXVvdGFF
cnJvcik7CiAgICAgdm9pZCBkaWRSZW1vdmVJdGVtKHVpbnQ2NF90IG1hcFNlZWQsIGNvbnN0IFN0
cmluZyYga2V5KTsKQEAgLTk3LDYgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9j
dXJyZW50U2VlZCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX3F1b3RhSW5CeXRlczsKICAgICBXZWJD
b3JlOjpTdG9yYWdlVHlwZSBtX3R5cGU7CisgICAgdWludDY0X3QgbV91c2VDb3VudCB7IDAgfTsK
ICAgICBib29sIG1faGFzUGVuZGluZ0NsZWFyIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3Bh
Y2VJbXBsLmNwcAppbmRleCBmZDBmMTIyYzI3MzE4YzE1ZmUzZjUyOTc5MzBjNzliYmU3ZjM4ZTQz
Li4zOTEzODNkMzZlZTVmOGUwZWJiMDdlZWUyNzI2ZWMyNDlkM2Q1NmM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVz
cGFjZUltcGwuY3BwCkBAIC05NSw3ICs5NSw3IEBAIFBBTDo6U2Vzc2lvbklEIFN0b3JhZ2VOYW1l
c3BhY2VJbXBsOjpzZXNzaW9uSUQoKSBjb25zdAogICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5zZXNzaW9uSUQoKTsKIH0KIAotdm9pZCBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6ZGlk
RGVzdHJveVN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VBcmVhTWFwJiBtYXApCit2b2lkIFN0b3JhZ2VO
YW1lc3BhY2VJbXBsOjpkZXN0cm95U3RvcmFnZUFyZWFNYXAoU3RvcmFnZUFyZWFNYXAmIG1hcCkK
IHsKICAgICBtX3N0b3JhZ2VBcmVhTWFwcy5yZW1vdmUobWFwLnNlY3VyaXR5T3JpZ2luKCkuZGF0
YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdl
L1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCmluZGV4IDdmYjAwZDIzY2I3OGFkN2E0MTg2NGFj
ZjgwNzQ1MjM2Yzk3ZGRiMjEuLmM2ZjlmOGExYTA2MDc3OGU0NmFhMzA1Y2NhNTIxYzc0NDdmZmEx
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VOYW1lc3BhY2VJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIGNsYXNzIFN0b3JhZ2VBcmVhTWFwOwogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgU3Rv
cmFnZU5hbWVzcGFjZUltcGwgOiBwdWJsaWMgV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZSB7Citj
bGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTdG9yYWdl
TmFtZXNwYWNlIHsKIHB1YmxpYzoKICAgICB1c2luZyBJZGVudGlmaWVyID0gU3RvcmFnZU5hbWVz
cGFjZUlkZW50aWZpZXI7CiAKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVk
IHF1b3RhSW5CeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcXVvdGFJbkJ5dGVzOyB9CiAgICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpZERl
c3Ryb3lTdG9yYWdlQXJlYU1hcChTdG9yYWdlQXJlYU1hcCYpOworICAgIHZvaWQgZGVzdHJveVN0
b3JhZ2VBcmVhTWFwKFN0b3JhZ2VBcmVhTWFwJik7CiAKICAgICB2b2lkIHNldFNlc3Npb25JREZv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQpIG92ZXJyaWRlOwogCkBAIC02Niw2ICs2Niw3IEBAIHBy
aXZhdGU6CiAgICAgU3RvcmFnZU5hbWVzcGFjZUltcGwoV2ViQ29yZTo6U3RvcmFnZVR5cGUsIElk
ZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiYsIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbE9yaWdpbiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVz
KTsKIAogICAgIFJlZjxXZWJDb3JlOjpTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEoY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJikgb3ZlcnJpZGU7CisgICAgdWludDY0X3Qgc3RvcmFn
ZUFyZWFNYXBDb3VudEZvclRlc3RpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3N0b3JhZ2VB
cmVhTWFwcy5zaXplKCk7IH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9y
IHNlc3Npb24gc3RvcmFnZSBhbmQgc2hvdWxkIHByb2JhYmx5IGJlIG1vdmVkIHRvIGEgc3ViY2xh
c3MuCiAgICAgUmVmPFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2U+IGNvcHkoV2ViQ29yZTo6UGFn
ZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdjMjZiZTg1N2Y1ZDQ1YTE2NjlhNTYyMGY0MjRkOGZlOWZl
YTY4MTEuLjk0Yzc1YWI3YTRmMjcyZDI1MzI2MTM1MDk2ZmJiZTA4MDNhMTk3MDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAyMC0wMi0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFJlZ3Jlc3Npb24ocjI0ODczNCkgU3RvcmFnZUFyZWFNYXAgb2JqZWN0cyBh
cmUgZ2V0dGluZyBsZWFrZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNzA3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTkxNjgwNjU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0
ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3N0b3JhZ2UvcmVzb3VyY2VzL3N0b3JhZ2UtbWFwLWxlYWtpbmctaWZyYW1lLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZS9zdG9yYWdlLW1hcC1sZWFr
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlL3N0
b3JhZ2UtbWFwLWxlYWtpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMDItMDUgIEphc29uIExhd3JlbmNlICA8bGF3cmVuY2Uu
akBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbjogWyBNYWMgRGVidWcgd2syIF0gaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZXJ2ZXItY2xvc2UuaHRtbCBpcyBmbGFreSBj
cmFzaGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY4ZDc0MzRlZjFlMWIzNmM3ZWVhOTZjZTc3
N2M4OTgwNmE3YjE3NGEuLmU5YzI3NGJjMTgyY2NmZmE0NzdhNGE5OTk2NTI2YzQ1YzkwNGYxNmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtODI3LDYgKzgyNyw5IEBAIGZhc3QvcmVwYWludC9wbGFj
ZWhvbGRlci1hZnRlci1jYXBzLWxvY2staGlkZGVuLmh0bWwgWyBTa2lwIF0KICMgVGhpcyB0ZXN0
IGN1cnJlbnRseSBvbmx5IHdvcmtzIGZvciBtYWMtd2syCiBmYXN0L2V2ZW50cy9pbmFjdGl2ZS13
aW5kb3ctbm8tbW91c2UtZXZlbnQuaHRtbCBbIFNraXAgXQogCisjIFRoaXMgdGVzdCBpcyBvbmx5
IHJlbGV2ZWFudCBmb3IgV2ViS2l0Mi4KK2h0dHAvdGVzdHMvc3RvcmFnZS9zdG9yYWdlLW1hcC1s
ZWFraW5nLmh0bWwgWyBTa2lwIF0KKwogIyBUaGUgV2ViIFNoYXJlIEFQSSBpcyBjdXJyZW50bHkg
b25seSBpbXBsZW1lbnRlZCBmb3IgbW9kZXJuIFdlYktpdCBvbiBpT1MgYW5kIG1hY09TCiBmYXN0
L3dlYi1zaGFyZSBbIFNraXAgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2UvcmVzb3VyY2VzL3N0b3JhZ2UtbWFwLWxlYWtpbmctaWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2UvcmVzb3VyY2VzL3N0b3JhZ2UtbWFwLWxlYWtpbmct
aWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJmNWEyNWU5MzIyMGM1NGU3ZTE0YmRhNzNkNTQ2NmFl
OGYzYmQyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZS9yZXNvdXJjZXMvc3RvcmFnZS1tYXAtbGVha2luZy1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDMg
QEAKKzxzY3JpcHQ+Citsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZm9vIiwgImJhciIpOworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2Uvc3RvcmFnZS1t
YXAtbGVha2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2Uv
c3RvcmFnZS1tYXAtbGVha2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI1ZjE5NjZmN2U2
YzZmODBlZGYzOWYxYjlmYmZjN2E5NDI1OTU2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc3RvcmFnZS9zdG9yYWdlLW1hcC1sZWFraW5nLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACitNYWtlIHN1cmUgdGhhdCBTdG9yYWdlQXJlYU1hcCBvYmplY3RzIGRv
IG5vIGxlYWsuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2VB
cmVhTWFwIG9iamVjdHMgYXJlIG5vdCBsZWFraW5nCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zdG9yYWdlL3N0b3JhZ2UtbWFwLWxlYWtpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZS9zdG9yYWdlLW1hcC1sZWFraW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ3ZDE5
YWMwNTcxM2I0YWU3ZjRmNmRiZDYzY2ZiY2QwYWVkZWNkYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZS9zdG9yYWdlLW1hcC1sZWFraW5nLmh0bWwKQEAg
LTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiTWFrZSBzdXJlIHRoYXQgU3RvcmFnZUFyZWFNYXAgb2JqZWN0cyBkbyBubyBs
ZWFrLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7Citsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZm9v
IiwgImJhciIpOworCitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBpbml0aWFsU3RvcmFnZUFy
ZWFNYXBDb3VudCA9IGludGVybmFscy5zdG9yYWdlQXJlYU1hcENvdW50OworCisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnJlbW92ZSgpOworCisgICAgaGFuZGxlID0g
c2V0SW50ZXJ2YWwoKCkgPT4geworICAgICAgICBnYygpCisgICAgICAgIGlmIChpbnRlcm5hbHMu
c3RvcmFnZUFyZWFNYXBDb3VudCA8IGluaXRpYWxTdG9yYWdlQXJlYU1hcENvdW50KSB7CisgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJTdG9yYWdlQXJlYU1hcCBvYmplY3RzIGFyZSBub3QgbGVha2lu
ZyIpOworICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChoYW5kbGUpOworICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgIH0KKyAgICB9LCAxMCk7Cit9Cis8L3NjcmlwdD4KKzxpZnJh
bWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc3RvcmFnZS9yZXNv
dXJjZXMvc3RvcmFnZS1tYXAtbGVha2luZy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDkwNmE5MWQxY2Q3Y2U2MDE0NmJlYmZjZTU2NWU4M2RlZDllNTUxYTIuLjUwNmNlOGUwODg3NjRk
YjdmYjlkOGViYmY1M2U5MWM0YTBkNDc4YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9U
ZXN0RXhwZWN0YXRpb25zCkBAIC03MDIsNiArNzAyLDkgQEAgd2Via2l0Lm9yZy9iLzExNTI3NCBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtc2FtZS1vcmln
aW4KIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1uby1sYXlvdXQuaHRtbCBbIFBhc3MgXQogZmFz
dC9pbWFnZXMvZ2lmLWxvb3AtY291bnQuaHRtbCBbIFBhc3MgXQogCisjIE9ubHkgcmVsZXZhbnQg
Zm9yIFdlYktpdDIKK2h0dHAvdGVzdHMvc3RvcmFnZS9zdG9yYWdlLW1hcC1sZWFraW5nLmh0bWwg
WyBQYXNzIF0KKwogIyBEdW1wUmVuZGVyVHJlZSBkb2VzIG5vdCBpbXBsZW1lbnQgc2V0V2lsbFNl
bmRSZXF1ZXN0SFRUUEJvZHkKIGh0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC13aXRo
LWNsaWVudC1wcm92aWRlZC1odHRwLWJvZHkuaHRtbCBbIFBhc3MgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389884</attachid>
            <date>2020-02-05 15:26:09 -0800</date>
            <delta_ts>2020-02-05 16:11:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207073-20200205152608.patch</filename>
            <type>text/plain</type>
            <size>15600</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJkNzUzOWM0M2RkZWEy
MmVmNzQ3NDMwNzFkY2E0ZTc5MDZlZjY5NC4uMjljOTA0NjQ5ZTRjZDVlN2I2YzNmYzdkNWY1YTA1
MDY0NDQ2MGRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVncmVzc2lvbihyMjQ4NzM0
KSBTdG9yYWdlQXJlYU1hcCBvYmplY3RzIGFyZSBnZXR0aW5nIGxlYWtlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MDczCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81OTE2ODA2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBBZGQgdGVzdCBpbmZyYXN0cnVjdHVyZSBmb3IgdGVzdGluZyB0aGlzIGNoYW5n
ZS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3N0b3JhZ2Uvc3RvcmFnZS1tYXAtbGVha2lu
Zy5odG1sCisKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2U6OnN0b3JhZ2VBcmVhTWFwQ291bnRGb3JUZXN0aW5n
IGNvbnN0KToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6c3RvcmFnZUFyZWFNYXBDb3VudCBjb25zdCk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjAtMDItMDUg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBN
YWtlIFdLV2ViVmlldy5fbmVnb3RpYXRlZExlZ2FjeVRMUyBhY2N1cmF0ZSB3aGVuIGxvYWRpbmcg
bWFpbiByZXNvdW9yY2UgZnJvbSBuZXR3b3JrIG9yIGNhY2hlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFjMDY4MjYz
YTg5NjUzOWU0ZmE2NjhhZjVhNzdjZjZiZjI0YmMxNzQuLjZhOTM0NWY0N2VhMTBlMWNhYjk1MGNj
Mjc3YmNkYjdhNjMwNDRjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjAtMDItMDUg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWdyZXNzaW9uKHIy
NDg3MzQpIFN0b3JhZ2VBcmVhTWFwIG9iamVjdHMgYXJlIGdldHRpbmcgbGVha2VkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcwNzMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU5MTY4MDY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IFN0b3JhZ2VBcmVhTWFwIG9iamVjdHMgYXJl
IGdldHRpbmcgcmVtb3ZlZCBmcm9tIHRoZSBIYXNoTWFwCisgICAgICAgIGluIFN0b3JhZ2VOYW1l
c3BhY2VJbXBsLCBvbmNlIHRoZXkgbm8gbG9uZ2VyIGhhdmUgYW55IHVzZXJzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbDo6U3RvcmFnZUFyZWFJbXBsKToKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZUFyZWFJbXBsOjp+U3RvcmFnZUFyZWFJbXBsKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlQXJlYU1hcDo6aW5jcmVtZW50VXNlQ291bnQpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
QXJlYU1hcDo6ZGVjcmVtZW50VXNlQ291bnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYU1hcC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlTmFtZXNwYWNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsOjpkZXN0cm95U3RvcmFnZUFyZWFNYXApOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
TmFtZXNwYWNlSW1wbDo6ZGlkRGVzdHJveVN0b3JhZ2VBcmVhTWFwKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaDoKKyAgICAg
ICAgKFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OnN0b3JhZ2VUeXBlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OnN0b3JhZ2VOYW1l
c3BhY2VJRCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsOjp0b3BMZXZlbE9yaWdpbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpxdW90YUluQnl0ZXMgY29uc3QpOiBEZWxldGVkLgorCiAy
MDIwLTAyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW0lQ
QyBoYXJkZW5pbmddIFByb3RlY3QgYWdhaW5zdCBiYWQgb3JpZ2luSWRlbnRpZmllciBTdHJpbmcg
aW4gV2ViUGFnZVByb3h5OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKCkgLyBy
ZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2UuaAppbmRleCAzNTQwNzBmZmYyNGJiMjk5M2QzODA5ZDgxM2E2
ODgyYmMxNjE2M2E4Li43MWM1ZGI1MmJhZjhhYmI4YzJhN2U4Y2U1NzJhZGI4OGU0NGJkZWI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuaApAQCAtNDgsNiArNDgs
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vzc2lvbklERm9yVGVzdGluZyhQQUw6OlNl
c3Npb25JRCkgPSAwOworCisgICAgdmlydHVhbCB1aW50NjRfdCBzdG9yYWdlQXJlYU1hcENvdW50
Rm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VQcm92
aWRlci5oCmluZGV4IDI2OWVjZTc2N2E3ZTRlYTU3MzVjYjljNzgzYzU4ZDliOWQxMGY3OWQuLjBi
ODk0YmU5MzIxOWIxMmFhZGQ2ZWYzZGU5MzFhZmM1YjM5MGExMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaApAQCAtNTgsNyArNTgs
OCBAQCBwcm90ZWN0ZWQ6CiAgICAgU3RvcmFnZU5hbWVzcGFjZSogb3B0aW9uYWxMb2NhbFN0b3Jh
Z2VOYW1lc3BhY2UoKSB7IHJldHVybiBtX2xvY2FsU3RvcmFnZU5hbWVzcGFjZS5nZXQoKTsgfQog
CiBwcml2YXRlOgotICAgIFN0b3JhZ2VOYW1lc3BhY2UmIGxvY2FsU3RvcmFnZU5hbWVzcGFjZShQ
QUw6OlNlc3Npb25JRCk7CisgICAgZnJpZW5kIGNsYXNzIEludGVybmFsczsKKyAgICBXRUJDT1JF
X1RFU1RTVVBQT1JUX0VYUE9SVCBTdG9yYWdlTmFtZXNwYWNlJiBsb2NhbFN0b3JhZ2VOYW1lc3Bh
Y2UoUEFMOjpTZXNzaW9uSUQpOwogICAgIFN0b3JhZ2VOYW1lc3BhY2UmIHRyYW5zaWVudExvY2Fs
U3RvcmFnZU5hbWVzcGFjZShTZWN1cml0eU9yaWdpbiYsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAg
IHZpcnR1YWwgUmVmPFN0b3JhZ2VOYW1lc3BhY2U+IGNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFj
ZSh1bnNpZ25lZCBxdW90YSwgUEFMOjpTZXNzaW9uSUQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCA1Y2VmNTEwMDVjNDhlYzdmZjczNmEwOTY4NzA3MTk1MTRlMmY4
ZGJjLi5jMGJkOWNlNDI1MWFlYmYzNWU2OTk5YjZhMjZkOGM0YzhiOGU0OTI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNzYsNiArMTc2LDggQEAKICNpbmNsdWRlICJT
b3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJTdGF0
aWNOb2RlTGlzdC5oIgorI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdHJpbmdDYWxsYmFjay5oIgog
I2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKQEAgLTI1
MzEsNiArMjUzMywxNSBAQCBib29sIEludGVybmFsczo6aXNEb2N1bWVudEFsaXZlKHVpbnQ2NF90
IGRvY3VtZW50SWRlbnRpZmllcikgY29uc3QKICAgICByZXR1cm4gRG9jdW1lbnQ6OmFsbERvY3Vt
ZW50c01hcCgpLmNvbnRhaW5zKG1ha2VPYmplY3RJZGVudGlmaWVyPERvY3VtZW50SWRlbnRpZmll
clR5cGU+KGRvY3VtZW50SWRlbnRpZmllcikpOwogfQogCit1aW50NjRfdCBJbnRlcm5hbHM6OnN0
b3JhZ2VBcmVhTWFwQ291bnQoKSBjb25zdAoreworICAgIGF1dG8qIHBhZ2UgPSBjb250ZXh0RG9j
dW1lbnQoKSA/IGNvbnRleHREb2N1bWVudCgpLT5wYWdlKCkgOiBudWxscHRyOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gcGFnZS0+c3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyKCkubG9jYWxTdG9yYWdlTmFtZXNwYWNlKHBhZ2UtPnNlc3Npb25JRCgpKS5z
dG9yYWdlQXJlYU1hcENvdW50Rm9yVGVzdGluZygpOworfQorCiB1aW50NjRfdCBJbnRlcm5hbHM6
OmVsZW1lbnRJZGVudGlmaWVyKEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGVsZW1lbnQuZG9jdW1lbnQoKS5pZGVudGlmaWVyRm9yRWxlbWVudChlbGVtZW50KS50b1VJbnQ2
NCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNGFmMTMxYmQxNGJmMjRhMDBj
MWMyNTVjNzNmNTc4ZWEyZTI0MzgwZC4uNTMxNzVjNTYyYzRhODA1ZDhiMTRmYTI2MDUwNTAxYjI2
YTc4ZDMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC00MjQsNiArNDI0LDgg
QEAgcHVibGljOgogICAgIHVpbnQ2NF90IGRvY3VtZW50SWRlbnRpZmllcihjb25zdCBEb2N1bWVu
dCYpIGNvbnN0OwogICAgIGJvb2wgaXNEb2N1bWVudEFsaXZlKHVpbnQ2NF90IGRvY3VtZW50SWRl
bnRpZmllcikgY29uc3Q7CiAKKyAgICB1aW50NjRfdCBzdG9yYWdlQXJlYU1hcENvdW50KCkgY29u
c3Q7CisKICAgICB1aW50NjRfdCBlbGVtZW50SWRlbnRpZmllcihFbGVtZW50JikgY29uc3Q7CiAg
ICAgdWludDY0X3QgZnJhbWVJZGVudGlmaWVyKGNvbnN0IERvY3VtZW50JikgY29uc3Q7CiAgICAg
dWludDY0X3QgcGFnZUlkZW50aWZpZXIoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAxNzFlNTc3YmY4ZTUzNzZiZjI3MDA4NGRlYzlj
YmU2NDY3ZjBiYzYwLi5lOWU4YmUzNmI5MjU1ZWYzZjJhNjE4ZWQwOWY1MjE4MDY2Nzk1ZmU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC03MzQsNiArNzM0LDggQEAgZW51
bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIGRvY3VtZW50SWRl
bnRpZmllcihEb2N1bWVudCBkb2N1bWVudCk7CiAgICAgYm9vbGVhbiBpc0RvY3VtZW50QWxpdmUo
dW5zaWduZWQgbG9uZyBsb25nIGRvY3VtZW50SWRlbnRpZmllcik7CiAKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHN0b3JhZ2VBcmVhTWFwQ291bnQ7CisKICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgZWxlbWVudElkZW50aWZpZXIoRWxlbWVudCBlbGVtZW50KTsKICAg
ICB1bnNpZ25lZCBsb25nIGxvbmcgZnJhbWVJZGVudGlmaWVyKERvY3VtZW50IGRvY3VtZW50KTsK
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcGFnZUlkZW50aWZpZXIoRG9jdW1lbnQgZG9jdW1lbnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VBcmVhSW1wbC5jcHAKaW5kZXggOTU1ZDU2MmI3MzdiOGI3M2RhMDgyNWY2N2E0Yjk4ZmE4MDNh
ZTdlOC4uOGE1NDdlYTg5OTQ3NDRlYmJkZjgxMzNhNDczOGZiNDY3NzExMDQxYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUlt
cGwuY3BwCkBAIC00NiwxMCArNDYsMTMgQEAgU3RvcmFnZUFyZWFJbXBsOjpTdG9yYWdlQXJlYUlt
cGwoU3RvcmFnZUFyZWFNYXAmIHN0b3JhZ2VBcmVhTWFwKQogICAgIDogbV9pZGVudGlmaWVyKElk
ZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3N0b3JhZ2VBcmVhTWFwKG1ha2VXZWFrUHRy
KHN0b3JhZ2VBcmVhTWFwKSkKIHsKKyAgICBzdG9yYWdlQXJlYU1hcC5pbmNyZW1lbnRVc2VDb3Vu
dCgpOwogfQogCiBTdG9yYWdlQXJlYUltcGw6On5TdG9yYWdlQXJlYUltcGwoKQogeworICAgIGlm
IChtX3N0b3JhZ2VBcmVhTWFwKQorICAgICAgICBtX3N0b3JhZ2VBcmVhTWFwLT5kZWNyZW1lbnRV
c2VDb3VudCgpOwogfQogCiB1bnNpZ25lZCBTdG9yYWdlQXJlYUltcGw6Omxlbmd0aCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1h
cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1h
cC5jcHAKaW5kZXggYmRhY2IzYTNhYzQwZTlhMzFiMmJlODgyNWIwYjVkMDAxYmM1N2Q2My4uNDY4
N2UwMzEzOGFkZGQwNDk4MmFmMWU0OGUyMGQyNzExOGIxMjBjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcApAQCAt
MzY0LDQgKzM2NCwxNSBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNjb25uZWN0KCkKICAgICBt
X21hcElEID0geyB9OwogfQogCit2b2lkIFN0b3JhZ2VBcmVhTWFwOjppbmNyZW1lbnRVc2VDb3Vu
dCgpCit7CisgICAgKyttX3VzZUNvdW50OworfQorCit2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkZWNy
ZW1lbnRVc2VDb3VudCgpCit7CisgICAgaWYgKCEtLW1fdXNlQ291bnQpCisgICAgICAgIG1fbmFt
ZXNwYWNlLmRlc3Ryb3lTdG9yYWdlQXJlYU1hcCgqdGhpcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2Uv
U3RvcmFnZUFyZWFNYXAuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0
b3JhZ2VBcmVhTWFwLmgKaW5kZXggN2M4MTIxOWZmZTg1YWM3ZTc1NTVjODYwMTc0MTJlOGUwZmFh
Y2U5Yy4uYzBiZDM3NTk0MzdhOTdmZjg5Y2JjYWU3YjQ5YTJlNzlmODk0M2U1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5o
CkBAIC03MCw2ICs3MCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlzY29ubmVjdCgpOwogCisg
ICAgdm9pZCBpbmNyZW1lbnRVc2VDb3VudCgpOworICAgIHZvaWQgZGVjcmVtZW50VXNlQ291bnQo
KTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGRpZFNldEl0ZW0odWludDY0X3QgbWFwU2VlZCwgY29u
c3QgU3RyaW5nJiBrZXksIGJvb2wgcXVvdGFFcnJvcik7CiAgICAgdm9pZCBkaWRSZW1vdmVJdGVt
KHVpbnQ2NF90IG1hcFNlZWQsIGNvbnN0IFN0cmluZyYga2V5KTsKQEAgLTk3LDYgKzEwMCw3IEBA
IHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9jdXJyZW50U2VlZCB7IDAgfTsKICAgICB1bnNpZ25l
ZCBtX3F1b3RhSW5CeXRlczsKICAgICBXZWJDb3JlOjpTdG9yYWdlVHlwZSBtX3R5cGU7CisgICAg
dWludDY0X3QgbV91c2VDb3VudCB7IDAgfTsKICAgICBib29sIG1faGFzUGVuZGluZ0NsZWFyIHsg
ZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAppbmRleCBmZDBmMTIyYzI3MzE4
YzE1ZmUzZjUyOTc5MzBjNzliYmU3ZjM4ZTQzLi4zOTEzODNkMzZlZTVmOGUwZWJiMDdlZWUyNzI2
ZWMyNDlkM2Q1NmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCkBAIC05NSw3ICs5NSw3IEBA
IFBBTDo6U2Vzc2lvbklEIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXNzaW9uSUQoKSBjb25zdAog
ICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZXNzaW9uSUQoKTsKIH0KIAotdm9p
ZCBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6ZGlkRGVzdHJveVN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VB
cmVhTWFwJiBtYXApCit2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpkZXN0cm95U3RvcmFnZUFy
ZWFNYXAoU3RvcmFnZUFyZWFNYXAmIG1hcCkKIHsKICAgICBtX3N0b3JhZ2VBcmVhTWFwcy5yZW1v
dmUobWFwLnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCmlu
ZGV4IDdmYjAwZDIzY2I3OGFkN2E0MTg2NGFjZjgwNzQ1MjM2Yzk3ZGRiMjEuLmM2ZjlmOGExYTA2
MDc3OGU0NmFhMzA1Y2NhNTIxYzc0NDdmZmExOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaApAQCAt
NDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFN0b3JhZ2VBcmVhTWFwOwog
Y2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgU3RvcmFnZU5hbWVzcGFjZUltcGwgOiBwdWJsaWMgV2Vi
Q29yZTo6U3RvcmFnZU5hbWVzcGFjZSB7CitjbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbCBmaW5h
bCA6IHB1YmxpYyBXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlIHsKIHB1YmxpYzoKICAgICB1c2lu
ZyBJZGVudGlmaWVyID0gU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXI7CiAKQEAgLTU4LDcgKzU4
LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHF1b3RhSW5CeXRlcygpIGNvbnN0IHsgcmV0dXJu
IG1fcXVvdGFJbkJ5dGVzOyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpZERlc3Ryb3lTdG9yYWdlQXJlYU1hcChTdG9yYWdlQXJl
YU1hcCYpOworICAgIHZvaWQgZGVzdHJveVN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VBcmVhTWFwJik7
CiAKICAgICB2b2lkIHNldFNlc3Npb25JREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQpIG92ZXJy
aWRlOwogCkBAIC02Niw2ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgU3RvcmFnZU5hbWVzcGFjZUlt
cGwoV2ViQ29yZTo6U3RvcmFnZVR5cGUsIElkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyPiYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbE9y
aWdpbiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKTsKIAogICAgIFJlZjxXZWJDb3JlOjpTdG9yYWdl
QXJlYT4gc3RvcmFnZUFyZWEoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJikgb3Zl
cnJpZGU7CisgICAgdWludDY0X3Qgc3RvcmFnZUFyZWFNYXBDb3VudEZvclRlc3RpbmcoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3N0b3JhZ2VBcmVhTWFwcy5zaXplKCk7IH0KIAogICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIHNlc3Npb24gc3RvcmFnZSBhbmQgc2hvdWxkIHBy
b2JhYmx5IGJlIG1vdmVkIHRvIGEgc3ViY2xhc3MuCiAgICAgUmVmPFdlYkNvcmU6OlN0b3JhZ2VO
YW1lc3BhY2U+IGNvcHkoV2ViQ29yZTo6UGFnZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUzOWQ5NTg1
ZWZiYjI0OGFlYTRkZWVlYWYzODA5ZjY3N2U4OGU4MDAuLmYwYzZkNzI5NWJmYjdlN2M4NDZiNmU1
NDQ3NmI5ZTQ4YWQ5MWM5OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wMi0wNSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3Jlc3Npb24ocjI0ODcz
NCkgU3RvcmFnZUFyZWFNYXAgb2JqZWN0cyBhcmUgZ2V0dGluZyBsZWFrZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzA3MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNTkxNjgwNjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2UvcmVzb3VyY2VzL3N0b3Jh
Z2UtbWFwLWxlYWtpbmctaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c3RvcmFnZS9zdG9yYWdlLW1hcC1sZWFraW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zdG9yYWdlL3N0b3JhZ2UtbWFwLWxlYWtpbmcuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMDItMDUgIFRy
dWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiAo
cjI1NTgyMSkgWyBNYWMgd2sxIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWIt
YW5pbWF0aW9ucy90aW1pbmctbW9kZWwvYW5pbWF0aW9ucy9maW5pc2hpbmctYW4tYW5pbWF0aW9u
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY4ZDc0MzRlZjFlMWIzNmM3ZWVhOTZjZTc3N2M4
OTgwNmE3YjE3NGEuLmVjNjZkN2NmYzk5ZGE1NDg1NTIxYTc2OTVkMWJjMWRjMmNlMWY5ZTYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtODI3LDYgKzgyNyw5IEBAIGZhc3QvcmVwYWludC9wbGFjZWhv
bGRlci1hZnRlci1jYXBzLWxvY2staGlkZGVuLmh0bWwgWyBTa2lwIF0KICMgVGhpcyB0ZXN0IGN1
cnJlbnRseSBvbmx5IHdvcmtzIGZvciBtYWMtd2syCiBmYXN0L2V2ZW50cy9pbmFjdGl2ZS13aW5k
b3ctbm8tbW91c2UtZXZlbnQuaHRtbCBbIFNraXAgXQogCisjIFRoaXMgdGVzdCBpcyBvbmx5IHJl
bGV2YW50IGZvciBXZWJLaXQyLgoraHR0cC90ZXN0cy9zdG9yYWdlL3N0b3JhZ2UtbWFwLWxlYWtp
bmcuaHRtbCBbIFNraXAgXQorCiAjIFRoZSBXZWIgU2hhcmUgQVBJIGlzIGN1cnJlbnRseSBvbmx5
IGltcGxlbWVudGVkIGZvciBtb2Rlcm4gV2ViS2l0IG9uIGlPUyBhbmQgbWFjT1MKIGZhc3Qvd2Vi
LXNoYXJlIFsgU2tpcCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3Rv
cmFnZS9yZXNvdXJjZXMvc3RvcmFnZS1tYXAtbGVha2luZy1pZnJhbWUuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc3RvcmFnZS9yZXNvdXJjZXMvc3RvcmFnZS1tYXAtbGVha2luZy1pZnJh
bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MmY1YTI1ZTkzMjIwYzU0ZTdlMTRiZGE3M2Q1NDY2YWU4ZjNi
ZDJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlL3Jl
c291cmNlcy9zdG9yYWdlLW1hcC1sZWFraW5nLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMyBAQAor
PHNjcmlwdD4KK2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJmb28iLCAiYmFyIik7Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZS9zdG9yYWdlLW1hcC1s
ZWFraW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZS9zdG9y
YWdlLW1hcC1sZWFraW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjVmMTk2NmY3ZTZjNmY4
MGVkZjM5ZjFiOWZiZmM3YTk0MjU5NTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlL3N0b3JhZ2UtbWFwLWxlYWtpbmctZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK01ha2Ugc3VyZSB0aGF0IFN0b3JhZ2VBcmVhTWFwIG9iamVjdHMgZG8gbm8g
bGVhay4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZUFyZWFN
YXAgb2JqZWN0cyBhcmUgbm90IGxlYWtpbmcKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2Uvc3RvcmFnZS1tYXAtbGVha2luZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdG9yYWdlL3N0b3JhZ2UtbWFwLWxlYWtpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDdkMTlhYzA1
NzEzYjRhZTdmNGY2ZGJkNjNjZmJjZDBhZWRlY2RjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlL3N0b3JhZ2UtbWFwLWxlYWtpbmcuaHRtbApAQCAtMCww
ICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJNYWtlIHN1cmUgdGhhdCBTdG9yYWdlQXJlYU1hcCBvYmplY3RzIGRvIG5vIGxlYWsu
Iik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJmb28iLCAi
YmFyIik7CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGluaXRpYWxTdG9yYWdlQXJlYU1h
cENvdW50ID0gaW50ZXJuYWxzLnN0b3JhZ2VBcmVhTWFwQ291bnQ7CisKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdEZyYW1lIikucmVtb3ZlKCk7CisKKyAgICBoYW5kbGUgPSBzZXRJ
bnRlcnZhbCgoKSA9PiB7CisgICAgICAgIGdjKCkKKyAgICAgICAgaWYgKGludGVybmFscy5zdG9y
YWdlQXJlYU1hcENvdW50IDwgaW5pdGlhbFN0b3JhZ2VBcmVhTWFwQ291bnQpIHsKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIlN0b3JhZ2VBcmVhTWFwIG9iamVjdHMgYXJlIG5vdCBsZWFraW5nIik7
CisgICAgICAgICAgICBjbGVhckludGVydmFsKGhhbmRsZSk7CisgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgfQorICAgIH0sIDEwKTsKK30KKzwvc2NyaXB0PgorPGlmcmFtZSBp
ZD0idGVzdEZyYW1lIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlL3Jlc291cmNl
cy9zdG9yYWdlLW1hcC1sZWFraW5nLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTA2
YTkxZDFjZDdjZTYwMTQ2YmViZmNlNTY1ZTgzZGVkOWU1NTFhMi4uNTA2Y2U4ZTA4ODc2NGRiN2Zi
OWQ4ZWJiZjUzZTkxYzRhMGQ0NzhjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTcwMiw2ICs3MDIsOSBAQCB3ZWJraXQub3JnL2IvMTE1Mjc0IGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3JlcG9ydC1zYW1lLW9yaWdpbgog
ZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLW5vLWxheW91dC5odG1sIFsgUGFzcyBdCiBmYXN0L2lt
YWdlcy9naWYtbG9vcC1jb3VudC5odG1sIFsgUGFzcyBdCiAKKyMgT25seSByZWxldmFudCBmb3Ig
V2ViS2l0MgoraHR0cC90ZXN0cy9zdG9yYWdlL3N0b3JhZ2UtbWFwLWxlYWtpbmcuaHRtbCBbIFBh
c3MgXQorCiAjIER1bXBSZW5kZXJUcmVlIGRvZXMgbm90IGltcGxlbWVudCBzZXRXaWxsU2VuZFJl
cXVlc3RIVFRQQm9keQogaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXdpdGgtY2xp
ZW50LXByb3ZpZGVkLWh0dHAtYm9keS5odG1sIFsgUGFzcyBdCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>