<?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>185159</bug_id>
          
          <creation_ts>2018-04-30 23:05:38 -0700</creation_ts>
          <short_desc>Use default std::optional if it is provided</short_desc>
          <delta_ts>2018-07-13 16:59:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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=185176</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=187669</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=187672</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>
          <dependson>185229</dependson>
    
    <dependson>185256</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jbedard</cc>
    
    <cc>jfbastien</cc>
    
    <cc>magomez</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1419266</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-30 23:05:38 -0700</bug_when>
    <thetext>Use default std::optional if it is provided</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419268</commentid>
    <comment_count>1</comment_count>
      <attachid>339186</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-30 23:33:05 -0700</bug_when>
    <thetext>Created attachment 339186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419269</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-30 23:34:29 -0700</bug_when>
    <thetext>Attachment 339186 did not pass style-queue:


ERROR: Source/WTF/wtf/Optional.h:1061:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 2 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419271</commentid>
    <comment_count>3</comment_count>
      <attachid>339187</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-30 23:45:28 -0700</bug_when>
    <thetext>Created attachment 339187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419272</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-30 23:47:43 -0700</bug_when>
    <thetext>Attachment 339187 did not pass style-queue:


ERROR: Source/WTF/wtf/Optional.h:1061:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419273</commentid>
    <comment_count>5</comment_count>
      <attachid>339188</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-30 23:49:25 -0700</bug_when>
    <thetext>Created attachment 339188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419275</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-30 23:52:50 -0700</bug_when>
    <thetext>Attachment 339188 did not pass style-queue:


ERROR: Source/WTF/wtf/Optional.h:1061:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419280</commentid>
    <comment_count>7</comment_count>
      <attachid>339194</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-01 01:07:34 -0700</bug_when>
    <thetext>Created attachment 339194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419281</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-01 01:09:07 -0700</bug_when>
    <thetext>Attachment 339194 did not pass style-queue:


ERROR: Source/WTF/wtf/Optional.h:1061:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419296</commentid>
    <comment_count>9</comment_count>
      <attachid>339197</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-01 08:18:44 -0700</bug_when>
    <thetext>Created attachment 339197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419298</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-01 08:19:56 -0700</bug_when>
    <thetext>Attachment 339197 did not pass style-queue:


ERROR: Source/WTF/wtf/Optional.h:1061:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419310</commentid>
    <comment_count>11</comment_count>
      <attachid>339197</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-05-01 08:51:26 -0700</bug_when>
    <thetext>Comment on attachment 339197
Patch

Hmm the segfaults are annoying :(
I want to make sure we don&apos;t break Linux builds. Can you confirm that it works locally for you?

I started a patch yesterday to turn C++17 on in the Xcode build settings, will finish it later today (have a meeting now...). I think landing your patch first would be good because it&apos;ll simplify what I need to do, so assuming bots are happy r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419348</commentid>
    <comment_count>12</comment_count>
      <attachid>339197</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-05-01 10:44:51 -0700</bug_when>
    <thetext>Comment on attachment 339197
Patch

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

&gt; Source/WTF/ChangeLog:15
&gt; +        And we also remove std::optional&lt;T&amp;&gt; use since this is not accepted in C++17. Use
&gt; +        std::optional&lt;std::reference_wrapper&lt;T&gt;&gt; instead.

We often use T* for this purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419481</commentid>
    <comment_count>13</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-05-01 17:08:49 -0700</bug_when>
    <thetext>This patch might be subsumed by https://bugs.webkit.org/show_bug.cgi?id=185176
It can get checked in before as well, either works :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419524</commentid>
    <comment_count>14</comment_count>
      <attachid>339261</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-01 20:14:43 -0700</bug_when>
    <thetext>Created attachment 339261
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419525</commentid>
    <comment_count>15</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-01 20:15:47 -0700</bug_when>
    <thetext>Attachment 339261 did not pass style-queue:


ERROR: Source/WTF/wtf/Optional.h:1061:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419526</commentid>
    <comment_count>16</comment_count>
      <attachid>339262</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-01 20:24:26 -0700</bug_when>
    <thetext>Created attachment 339262
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419527</commentid>
    <comment_count>17</comment_count>
      <attachid>339263</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-01 20:25:29 -0700</bug_when>
    <thetext>Created attachment 339263
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419528</commentid>
    <comment_count>18</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-01 20:27:18 -0700</bug_when>
    <thetext>Attachment 339262 did not pass style-queue:


ERROR: Source/WTF/wtf/Optional.h:1061:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419529</commentid>
    <comment_count>19</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-01 20:28:28 -0700</bug_when>
    <thetext>Attachment 339263 did not pass style-queue:


ERROR: Source/WTF/wtf/Optional.h:1061:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419543</commentid>
    <comment_count>20</comment_count>
      <attachid>339267</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-01 21:06:35 -0700</bug_when>
    <thetext>Created attachment 339267
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419546</commentid>
    <comment_count>21</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-01 21:09:18 -0700</bug_when>
    <thetext>Attachment 339267 did not pass style-queue:


ERROR: Source/WTF/wtf/Optional.h:1061:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419548</commentid>
    <comment_count>22</comment_count>
      <attachid>339197</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-01 21:12:22 -0700</bug_when>
    <thetext>Comment on attachment 339197
Patch

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

&gt;&gt; Source/WTF/ChangeLog:15
&gt;&gt; +        std::optional&lt;std::reference_wrapper&lt;T&gt;&gt; instead.
&gt; 
&gt; We often use T* for this purpose.

I would like to change this in a separate patch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419556</commentid>
    <comment_count>23</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-01 21:32:13 -0700</bug_when>
    <thetext>(In reply to JF Bastien from comment #11)
&gt; Comment on attachment 339197 [details]
&gt; Patch
&gt; 
&gt; Hmm the segfaults are annoying :(
&gt; I want to make sure we don&apos;t break Linux builds. Can you confirm that it
&gt; works locally for you?

Yeah, finally, it works :)

&gt; 
&gt; I started a patch yesterday to turn C++17 on in the Xcode build settings,
&gt; will finish it later today (have a meeting now...). I think landing your
&gt; patch first would be good because it&apos;ll simplify what I need to do, so
&gt; assuming bots are happy r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419557</commentid>
    <comment_count>24</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-01 21:32:40 -0700</bug_when>
    <thetext>Committed r231223: &lt;https://trac.webkit.org/changeset/231223&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419558</commentid>
    <comment_count>25</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-01 21:33:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/39891074&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419769</commentid>
    <comment_count>26</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-05-02 11:56:01 -0700</bug_when>
    <thetext>Follow-up build fix &lt;https://trac.webkit.org/changeset/231251&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419938</commentid>
    <comment_count>27</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-02 17:24:06 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #26)
&gt; Follow-up build fix &lt;https://trac.webkit.org/changeset/231251&gt;.

This breaks GCC 7.3 build since __cpp_lib_optional is defined in &lt;optional&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419940</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-02 17:26:41 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 185229</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419945</commentid>
    <comment_count>29</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-02 17:30:05 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #27)
&gt; (In reply to Jonathan Bedard from comment #26)
&gt; &gt; Follow-up build fix &lt;https://trac.webkit.org/changeset/231251&gt;.
&gt; 
&gt; This breaks GCC 7.3 build since __cpp_lib_optional is defined in &lt;optional&gt;.

Jonathan, can we have the different fix for this?(In reply to Jonathan Bedard from comment #26)
&gt; Follow-up build fix &lt;https://trac.webkit.org/changeset/231251&gt;.

Jonathan, can we have a different fix for this? Your previous fix, checking &quot;__cpp_lib_optional&quot; before including &lt;optional&gt;, does not work since &quot;__cpp_lib_optional&quot; is defined in &lt;optional&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420122</commentid>
    <comment_count>30</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-05-03 08:13:58 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #29)
&gt; (In reply to Yusuke Suzuki from comment #27)
&gt; &gt; (In reply to Jonathan Bedard from comment #26)
&gt; &gt; &gt; Follow-up build fix &lt;https://trac.webkit.org/changeset/231251&gt;.
&gt; &gt; 
&gt; &gt; This breaks GCC 7.3 build since __cpp_lib_optional is defined in &lt;optional&gt;.
&gt; 
&gt; Jonathan, can we have the different fix for this?(In reply to Jonathan
&gt; Bedard from comment #26)
&gt; &gt; Follow-up build fix &lt;https://trac.webkit.org/changeset/231251&gt;.
&gt; 
&gt; Jonathan, can we have a different fix for this? Your previous fix, checking
&gt; &quot;__cpp_lib_optional&quot; before including &lt;optional&gt;, does not work since
&gt; &quot;__cpp_lib_optional&quot; is defined in &lt;optional&gt;.

Oops!  You&apos;re right, fixed one build, broke another.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420186</commentid>
    <comment_count>31</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-05-03 09:59:17 -0700</bug_when>
    <thetext>Rolled out in r231308 because this is breaking most of our builds.

Where is this &apos;__cpp_lib_optional&apos; macro coming from? It doesn&apos;t seem to be defined in the &lt;optional&gt; header I&apos;m looking at.

The compiler failure we&apos;re hitting is this:

.../WebKitBuild/Debug/usr/local/include/wtf/Optional.h:297:7: error: redefinition of &apos;bad_optional_access&apos;
class bad_optional_access : public std::logic_error {

....

.../usr/include/c++/v1/optional:167:29: note: previous definition is here
class _LIBCPP_EXCEPTION_ABI bad_optional_access</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420410</commentid>
    <comment_count>32</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-03 16:19:30 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #31)
&gt; Rolled out in r231308 because this is breaking most of our builds.
&gt; 
&gt; Where is this &apos;__cpp_lib_optional&apos; macro coming from? It doesn&apos;t seem to be
&gt; defined in the &lt;optional&gt; header I&apos;m looking at.
&gt; 
&gt; The compiler failure we&apos;re hitting is this:
&gt; 
&gt; .../WebKitBuild/Debug/usr/local/include/wtf/Optional.h:297:7: error:
&gt; redefinition of &apos;bad_optional_access&apos;
&gt; class bad_optional_access : public std::logic_error {
&gt; 
&gt; ....
&gt; 
&gt; .../usr/include/c++/v1/optional:167:29: note: previous definition is here
&gt; class _LIBCPP_EXCEPTION_ABI bad_optional_access

In libstdc++ (GCC), https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional#L54 defines this macro.
Could you check your environment&apos;s configuration? Since I don&apos;t have that environment and EWS says green, I cannot check how to avoid this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420416</commentid>
    <comment_count>33</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-03 16:29:25 -0700</bug_when>
    <thetext>Um, this is weird, but the *rollout* of this commit seems to have broken the GCC 8 build.

In file included from ../../Source/WTF/wtf/Threading.h:37,
                 from ../../Source/WTF/wtf/AutomaticThread.cpp:30:
../../Source/WTF/wtf/Expected.h:576:101: error: binding reference of type ‘std::experimental::fundamentals_v3::unexpected_t&amp;’ to ‘const std::experimental::fundamentals_v3::unexpected_t’ discards qualifiers
 __EXPECTED_INLINE_VARIABLE constexpr std::experimental::unexpected_t&amp; unexpect = std::experimental::unexpect;
                                                                                                     ^~~~~~~~</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420419</commentid>
    <comment_count>34</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-03 16:34:19 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #33)
&gt; Um, this is weird, but the *rollout* of this commit seems to have broken the
&gt; GCC 8 build.
&gt; 
&gt; In file included from ../../Source/WTF/wtf/Threading.h:37,
&gt;                  from ../../Source/WTF/wtf/AutomaticThread.cpp:30:
&gt; ../../Source/WTF/wtf/Expected.h:576:101: error: binding reference of type
&gt; ‘std::experimental::fundamentals_v3::unexpected_t&amp;’ to ‘const
&gt; std::experimental::fundamentals_v3::unexpected_t’ discards qualifiers
&gt;  __EXPECTED_INLINE_VARIABLE constexpr std::experimental::unexpected_t&amp;
&gt; unexpect = std::experimental::unexpect;
&gt;                                                                             
&gt; ^~~~~~~~

Yeah, currently, GCC 7.3 build is broken too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420422</commentid>
    <comment_count>35</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-03 16:39:53 -0700</bug_when>
    <thetext>Also:

In file included from /usr/include/c++/8/bits/node_handle.h:39,
                 from /usr/include/c++/8/bits/hashtable.h:37,
                 from /usr/include/c++/8/unordered_map:46,
                 from /usr/include/c++/8/functional:61,
                 from ../../Source/WTF/wtf/Variant.h:42,
                 from ../../Source/WTF/wtf/text/TextBreakIterator.h:26,
                 from ../../Source/WTF/wtf/text/StringView.cpp:36:
/usr/include/c++/8/optional:60:10: error: redefinition of ‘struct std::nullopt_t’
   struct nullopt_t
          ^~~~~~~~~</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420424</commentid>
    <comment_count>36</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-03 16:40:38 -0700</bug_when>
    <thetext>*** Bug 185194 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420437</commentid>
    <comment_count>37</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-03 16:54:00 -0700</bug_when>
    <thetext>Yusuke, here is the libc++ header:

https://llvm.org/viewvc/llvm-project/libcxx/trunk/include/optional?view=markup

Note there&apos;s no __cpp_lib_optional.

Isn&apos;t it sufficient to check &amp;&amp; __has_include(&lt;optional&gt;) instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420442</commentid>
    <comment_count>38</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-03 16:58:27 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #37)
&gt; Yusuke, here is the libc++ header:
&gt; 
&gt; https://llvm.org/viewvc/llvm-project/libcxx/trunk/include/
&gt; optional?view=markup
&gt; 
&gt; Note there&apos;s no __cpp_lib_optional.
&gt; 
&gt; Isn&apos;t it sufficient to check &amp;&amp; __has_include(&lt;optional&gt;) instead?

Discussed with jbedard at IRC.
In the internal environment, we do not want to include &lt;optional&gt;. But &lt;optional&gt; header exists.
So, COMPILER(CLANG) and version check would work. But I also want to check whether this works in Debian stable&apos;s clang bot.
clopez, could you take a look? I&apos;ll upload a merged patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420447</commentid>
    <comment_count>39</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-03 17:01:35 -0700</bug_when>
    <thetext>*** Bug 185198 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420450</commentid>
    <comment_count>40</comment_count>
      <attachid>339489</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-03 17:03:46 -0700</bug_when>
    <thetext>Created attachment 339489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420451</commentid>
    <comment_count>41</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-03 17:04:08 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #38)
&gt; So, COMPILER(CLANG) and version check would work. But I also want to check
&gt; whether this works in Debian stable&apos;s clang bot.
&gt; clopez, could you take a look? I&apos;ll upload a merged patch soon.

That bot is currently using libstdc++ 4.9. It&apos;s just not going to be practical to get that working with C++ 17. clopez is planning to upgrade the bot. Let&apos;s not worry about it for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420454</commentid>
    <comment_count>42</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-03 17:07:51 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #41)
&gt; (In reply to Yusuke Suzuki from comment #38)
&gt; &gt; So, COMPILER(CLANG) and version check would work. But I also want to check
&gt; &gt; whether this works in Debian stable&apos;s clang bot.
&gt; &gt; clopez, could you take a look? I&apos;ll upload a merged patch soon.
&gt; 
&gt; That bot is currently using libstdc++ 4.9. It&apos;s just not going to be
&gt; practical to get that working with C++ 17. clopez is planning to upgrade the
&gt; bot. Let&apos;s not worry about it for now.

OK nice. So, if the uploaded patch works, everything is OK :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420455</commentid>
    <comment_count>43</comment_count>
      <attachid>339489</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-03 17:08:00 -0700</bug_when>
    <thetext>Comment on attachment 339489
Patch

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

&gt; Source/WTF/wtf/Optional.h:54
&gt; +#if !COMPILER(MSVC) &amp;&amp; !COMPILER(CLANG) &amp;&amp; __has_include(&lt;optional&gt;)
&gt; +# include &lt;optional&gt;
&gt; +#endif
&gt; +
&gt; +#if !COMPILER(MSVC) &amp;&amp; !COMPILER(CLANG) &amp;&amp; defined(__cpp_lib_optional) &amp;&amp; __cpp_lib_optional &gt;= 201603

I hesitate to r- a patch that&apos;s going to fix the build for me personally, but this is still going to be broken with Clang and that&apos;s not OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420456</commentid>
    <comment_count>44</comment_count>
      <attachid>339489</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-03 17:10:51 -0700</bug_when>
    <thetext>Comment on attachment 339489
Patch

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

&gt;&gt; Source/WTF/wtf/Optional.h:54
&gt;&gt; +#if !COMPILER(MSVC) &amp;&amp; !COMPILER(CLANG) &amp;&amp; defined(__cpp_lib_optional) &amp;&amp; __cpp_lib_optional &gt;= 201603
&gt; 
&gt; I hesitate to r- a patch that&apos;s going to fix the build for me personally, but this is still going to be broken with Clang and that&apos;s not OK.

I&apos;ll change this to use `PLATFORM(COCOA)` instead. Basically, clang should work if we can include &lt;optional&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420460</commentid>
    <comment_count>45</comment_count>
      <attachid>339491</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-03 17:12:41 -0700</bug_when>
    <thetext>Created attachment 339491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420461</commentid>
    <comment_count>46</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-03 17:12:52 -0700</bug_when>
    <thetext>I tested your patch. It works with GCC. But, as expected, I see tons of errors with clang, related to nullopt_t.

(In reply to Yusuke Suzuki from comment #44)
&gt; I&apos;ll change this to use `PLATFORM(COCOA)` instead. Basically, clang should
&gt; work if we can include &lt;optional&gt;.

That&apos;s not great either, but I guess PLATFORM(COCOA) is good enough for now, OK. r=me, then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420462</commentid>
    <comment_count>47</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-03 17:13:53 -0700</bug_when>
    <thetext>Attachment 339491 did not pass style-queue:


ERROR: Source/WTF/wtf/Optional.h:1055:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420463</commentid>
    <comment_count>48</comment_count>
      <attachid>339491</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-03 17:14:20 -0700</bug_when>
    <thetext>Comment on attachment 339491
Patch

Clang build is still broken for me, but the error is no longer related to std::optional. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420464</commentid>
    <comment_count>49</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-03 17:16:04 -0700</bug_when>
    <thetext>GCC build is (probably) fixed (at least the build did not fail in first 30 seconds, so if it&apos;s still broken it won&apos;t be due to std::optional :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420467</commentid>
    <comment_count>50</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-03 17:20:45 -0700</bug_when>
    <thetext>Thanks. After EWS becomes green, I&apos;ll land this :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420498</commentid>
    <comment_count>51</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-03 17:55:44 -0700</bug_when>
    <thetext>OK, mac becomes green, landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420503</commentid>
    <comment_count>52</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-03 18:00:23 -0700</bug_when>
    <thetext>Committed r231342: &lt;https://trac.webkit.org/changeset/231342&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339186</attachid>
            <date>2018-04-30 23:33:05 -0700</date>
            <delta_ts>2018-04-30 23:45:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185159-20180501153304.patch</filename>
            <type>text/plain</type>
            <size>16510</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRkNzU5ODBjOWFiNzE5YTJiZTI0YWQx
ODVmYjY2NTdmNjAxMTIyMTMuLmU1OTI3ZTZmMjAyMGIzZWFlODQyMGUxNThlYWNmMmYyNWU4NTUy
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBp
ZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm93IEMrKzE3IGZsYWcgaXMgZW5hYmxlZC4gSXQgbWVhbnMgdGhhdCBhbnkgc3Rh
bmRhcmQgbGlicmFyaWVzIGNhbiB1c2UgPG9wdGlvbmFsPiBpbnRlcm5hbGx5LgorICAgICAgICBJ
ZiB3ZSBkZWZpbmUgc3RkOjpvcHRpb25hbCByZWdhcmRsZXNzIG9mIHRoZSBleGlzdGVuY2Ugb2Yg
dGhlIHN0YW5kYXJkIGxpYnJhcnkncyA8b3B0aW9uYWw+LAorICAgICAgICBpdCBjYXVzZXMgY29t
cGlsZSBlcnJvcnMuIEZvciBleGFtcGxlLCBpbiBHQ0MgNyAoc3BlY2lmaWNhbGx5IEdDQyA3LjMu
MCkgZW52aXJvbm1lbnQsCisgICAgICAgIDxvcHRpb25hbD4gaXMgaW5jbHVkZWQgaW4gPHVub3Jk
ZXJlZF9tYXA+LgorICAgICAgICBXZSBkbyBub3QgZGVmaW5lIHN0ZDo6b3B0aW9uYWwgaW4gV2Vi
S2l0IHNpZGUgaWYgPG9wdGlvbmFsPiBpcyBvZmZlcmVkLgorCisgICAgICAgIEFuZCB3ZSBhbHNv
IHJlbW92ZSBzdGQ6Om9wdGlvbmFsPFQmPiB1c2Ugc2luY2UgdGhpcyBpcyBub3QgYWNjZXB0ZWQg
aW4gQysrMTcuIFVzZQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8VD4+IGluc3RlYWQuCisKKyAgICAgICAgKiB3dGYvRXhwZWN0ZWQuaDoKKyAgICAgICAgY29u
c3RleHByIGRvZXMgbm90IG1lYW4gY29uc3QgaW4gQysrMTcuCisKKyAgICAgICAgKiB3dGYvT3B0
aW9uYWwuaDoKKyAgICAgICAgRG8gbm90IGRlZmluZSBzdGQ6Om9wdGlvbmFsIGlmIDxvcHRpb25h
bD4gaXMgcHJvdmlkZWQuCisKKyAgICAgICAgKFdURjo6dmFsdWVPckNvbXB1dGUpOgorCiAyMDE4
LTA0LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBseSBQ
dHJUYWdzIHRvIHRoZSBNZXRhQWxsb2NhdG9yIGFuZCBmcmllbmRzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM0
YjU1NDEwZjQ1NzViYTI3MmU0OWQ1ZTQyNTU4NmE1YmRkMTYxM2MuLjI1Zjg5N2I2NmIxNzJjNjc3
NjU4ZTlkOWJiYzViNmYyODRkZDk4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAx
OC0wNC0zMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFsIGlmIGl0IGlzIHByb3ZpZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUxNTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKToKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlU3lzdGVtQ29sb3IpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmg6
CisgICAgICAgICogZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YXNldERPTVN0cmluZ01hcDo6aXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhc2V0RE9NU3RyaW5nTWFwOjpuYW1lZEl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRGF0YXNldERPTVN0cmluZ01hcC5oOgor
ICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omlu
c2VydEFkamFjZW50SFRNTCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkN1cmxGb3JtRGF0YVN0cmVhbTo6Z2V0UG9zdERhdGEpOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFt
Lmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNb2NrQ0RNRmFjdG9yeTo6a2V5c0ZvclNlc3Npb25XaXRoSUQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja0NETUluc3RhbmNlOjp1cGRhdGVMaWNlbnNlKToKKyAgICAgICAgKFdl
YkNvcmU6OiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9y
eS5oOgorCiAyMDE4LTA0LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CiAKICAgICAgICAgSW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugb2YgRm9udENhc2NhZGVEZXNj
cmlwdGlvbidzIGVmZmVjdGl2ZUZhbWlsaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9F
eHBlY3RlZC5oIGIvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaAppbmRleCBkZDA0NWU1OTg3NWU0
ZjQ3NjdlYjJlYjE3OWMxYzI3MTllMGFmMmUyLi4yNGMyNzk1YTgzZmZjYjZkYTIxYjZhMGRlNWVh
ZTY2NTIyOGE5Zjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVkLmgKQEAgLTU3Myw1ICs1NzMsNSBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBFPiB2b2lkIHN3YXAoZXhwZWN0ZWQ8VCwgRT4mIHgsIGV4cGVj
dGVkPFQsIEU+JiB5KQogCiB9fX0gLy8gbmFtZXNwYWNlIHN0ZDo6ZXhwZXJpbWVudGFsOjpmdW5k
YW1lbnRhbHNfdjMKIAotX19FWFBFQ1RFRF9JTkxJTkVfVkFSSUFCTEUgY29uc3RleHByIHN0ZDo6
ZXhwZXJpbWVudGFsOjp1bmV4cGVjdGVkX3QmIHVuZXhwZWN0ID0gc3RkOjpleHBlcmltZW50YWw6
OnVuZXhwZWN0OworX19FWFBFQ1RFRF9JTkxJTkVfVkFSSUFCTEUgY29uc3RleHByIGNvbnN0IHN0
ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdGVkX3QmIHVuZXhwZWN0ID0gc3RkOjpleHBlcmltZW50
YWw6OnVuZXhwZWN0OwogdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgRT4gdXNpbmcgRXhwZWN0ZWQg
PSBzdGQ6OmV4cGVyaW1lbnRhbDo6ZXhwZWN0ZWQ8VCwgRT47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9PcHRpb25hbC5oIGIvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAppbmRleCBhM2Zj
NTg5MDgzNDVhYzFiMGEyMjRiYzJmMTc5ODQ2OTE2ZDlkMmQ3Li5kYzg1YzAzOTAxOGRiMTJlNjhj
YzIxNTM3NGRjZWJmMTE2M2IyNWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25h
bC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKQEAgLTQ3LDYgKzQ3LDE2IEBACiAj
IGluY2x1ZGUgPHd0Zi9Db21waWxlci5oPgogIyBpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxvcHRpb25hbD4pCisjIGluY2x1ZGUgPG9wdGlvbmFsPgor
I2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fY3BwX2xpYl9vcHRpb25hbCkgJiYgX19jcHBfbGliX29w
dGlvbmFsID49IDIwMTYwMworCisvLyBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFsLgorCisjZWxz
ZQorCiAjIGRlZmluZSBUUjJfT1BUSU9OQUxfUkVRVUlSRVMoLi4uKSB0eXBlbmFtZSBzdGQ6OmVu
YWJsZV9pZjxfX1ZBX0FSR1NfXzo6dmFsdWUsIGJvb2w+Ojp0eXBlID0gZmFsc2UKIAogIyBpZiBk
ZWZpbmVkIF9fR05VQ19fIC8vIE5PVEU6IEdOVUMgaXMgYWxzbyBkZWZpbmVkIGZvciBDbGFuZwpA
QCAtMTAxMiwyMCArMTAyMiw2IEBAIGNvbnN0ZXhwciBvcHRpb25hbDxYJj4gbWFrZV9vcHRpb25h
bChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFg+IHYpCiAKIH0gLy8gbmFtZXNwYWNlIHN0ZAogCi1u
YW1lc3BhY2UgV1RGIHsKLQotLy8gLS0gV2ViS2l0IEFkZGl0aW9ucyAtLQotdGVtcGxhdGUgPGNs
YXNzIE9wdGlvbmFsVHlwZSwgY2xhc3MgQ2FsbGJhY2s+Ci1BTFdBWVNfSU5MSU5FCi1hdXRvIHZh
bHVlT3JDb21wdXRlKE9wdGlvbmFsVHlwZSBvcHRpb25hbCwgQ2FsbGJhY2sgY2FsbGJhY2spIC0+
IHR5cGVuYW1lIE9wdGlvbmFsVHlwZTo6dmFsdWVfdHlwZQotewotICAgIGlmIChvcHRpb25hbCkK
LSAgICAgICAgcmV0dXJuICpvcHRpb25hbDsKLSAgICByZXR1cm4gY2FsbGJhY2soKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV1RGCi0KIG5hbWVzcGFjZSBzdGQKIHsKICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CkBAIC0xMDU0LDQgKzEwNTAsMjAgQEAgbmFtZXNwYWNlIHN0ZAogIyB1bmRlZiBUUjJf
T1BUSU9OQUxfUkVRVUlSRVMKICMgdW5kZWYgVFIyX09QVElPTkFMX0FTU0VSVEVEX0VYUFJFU1NJ
T04KIAorI2VuZGlmIC8vIGRlZmluZWQoX19jcHBfbGliX29wdGlvbmFsKQorCituYW1lc3BhY2Ug
V1RGIHsKKworLy8gLS0gV2ViS2l0IEFkZGl0aW9ucyAtLQordGVtcGxhdGUgPGNsYXNzIE9wdGlv
bmFsVHlwZSwgY2xhc3MgQ2FsbGJhY2s+CitBTFdBWVNfSU5MSU5FCithdXRvIHZhbHVlT3JDb21w
dXRlKE9wdGlvbmFsVHlwZSBvcHRpb25hbCwgQ2FsbGJhY2sgY2FsbGJhY2spIC0+IHR5cGVuYW1l
IE9wdGlvbmFsVHlwZTo6dmFsdWVfdHlwZQoreworICAgIGlmIChvcHRpb25hbCkKKyAgICAgICAg
cmV0dXJuICpvcHRpb25hbDsKKyAgICByZXR1cm4gY2FsbGJhY2soKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV1RGCisKIHVzaW5nIFdURjo6dmFsdWVPckNvbXB1dGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmlu
ZGV4IDg1MWM5YzgyYWY0MDk3ZWVkMzVmNjEwYzdhY2Y1ZDI1ZGJkNDRiMzUuLjE4YTVlZWRlOGVl
MmU0M2FiNWNmMjE2NjljOTE4ZDEyN2E1NTFmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC0zMDEs
MTIgKzMwMSwxMiBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRBZGRJY2VDYW5kaWRh
dGUoUlRDSWNlQ2FuZGlkYXRlKiBydGNDYW5kaWRhdGUsIERPTQogfQogCiAvLyBJbXBsZW1lbnRh
dGlvbiBvZiBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjLyNzZXQtcGMtY29uZmlndXJh
dGlvbgotc3RhdGljIGlubGluZSBFeGNlcHRpb25PcjxWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZp
Z3VyYXRpb246OkljZVNlcnZlckluZm8+PiBpY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24oUlRD
Q29uZmlndXJhdGlvbiYgbmV3Q29uZmlndXJhdGlvbiwgc3RkOjpvcHRpb25hbDxjb25zdCBSVEND
b25maWd1cmF0aW9uJj4gZXhpc3RpbmdDb25maWd1cmF0aW9uLCBib29sIGlzTG9jYWxEZXNjcmlw
dGlvblNldCkKK3N0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRD
b25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gaWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9u
KFJUQ0NvbmZpZ3VyYXRpb24mIG5ld0NvbmZpZ3VyYXRpb24sIHN0ZDo6b3B0aW9uYWw8c3RkOjpy
ZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBSVENDb25maWd1cmF0aW9uPj4gZXhpc3RpbmdDb25maWd1
cmF0aW9uLCBib29sIGlzTG9jYWxEZXNjcmlwdGlvblNldCkKIHsKLSAgICBpZiAoZXhpc3RpbmdD
b25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5ICE9IGV4aXN0aW5n
Q29uZmlndXJhdGlvbi0+YnVuZGxlUG9saWN5KQorICAgIGlmIChleGlzdGluZ0NvbmZpZ3VyYXRp
b24gJiYgbmV3Q29uZmlndXJhdGlvbi5idW5kbGVQb2xpY3kgIT0gZXhpc3RpbmdDb25maWd1cmF0
aW9uLnZhbHVlKCkuZ2V0KCkuYnVuZGxlUG9saWN5KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiSWNlVHJhbnNwb3J0UG9saWN5IGRvZXMgbm90
IG1hdGNoIGV4aXN0aW5nIHBvbGljeSIgfTsKIAotICAgIGlmIChleGlzdGluZ0NvbmZpZ3VyYXRp
b24gJiYgbmV3Q29uZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6ZSAhPSBleGlzdGluZ0Nv
bmZpZ3VyYXRpb24tPmljZUNhbmRpZGF0ZVBvb2xTaXplICYmIGlzTG9jYWxEZXNjcmlwdGlvblNl
dCkKKyAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uaWNl
Q2FuZGlkYXRlUG9vbFNpemUgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLnZhbHVlKCkuZ2V0KCku
aWNlQ2FuZGlkYXRlUG9vbFNpemUgJiYgaXNMb2NhbERlc2NyaXB0aW9uU2V0KQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiSWNlVHJhbnNwb3J0
UG9saWN5IHBvb2wgc2l6ZSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb29sIHNpemUiIH07CiAK
ICAgICBWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlckluZm8+IHNl
cnZlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKaW5kZXggOTU0YWIw
ODJlOWU2NjNiNjViYTE0NTg2NGM3NjdhY2JkNjdkMzZkNi4uNDdmYmNiMWRkZWVmNTZlZTEwYWVj
ZDhlZTUxYmViYzI5ZGMxNzUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
LmNwcApAQCAtMTc4LDE0ICsxNzgsMTQgQEAgQ29sb3IgQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBib29sIHN0cmljdCkKICAgICByZXR1cm4gcHJpbWl0aXZlVmFs
dWUuY29sb3IoKTsKIH0KIAotQ29sb3IgQ1NTUGFyc2VyOjpwYXJzZVN5c3RlbUNvbG9yKGNvbnN0
IFN0cmluZyYgc3RyaW5nLCBzdGQ6Om9wdGlvbmFsPGNvbnN0IENTU1BhcnNlckNvbnRleHQmPiBj
b250ZXh0KQorQ29sb3IgQ1NTUGFyc2VyOjpwYXJzZVN5c3RlbUNvbG9yKGNvbnN0IFN0cmluZyYg
c3RyaW5nLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQ1NTUGFy
c2VyQ29udGV4dD4+IGNvbnRleHQpCiB7CiAgICAgQ1NTVmFsdWVJRCBpZCA9IGNzc1ZhbHVlS2V5
d29yZElEKHN0cmluZyk7CiAgICAgaWYgKCFTdHlsZUNvbG9yOjppc1N5c3RlbUNvbG9yKGlkKSkK
ICAgICAgICAgcmV0dXJuIENvbG9yKCk7CiAKICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4gb3B0aW9uczsKLSAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0LnZhbHVlKCkudXNlU3lz
dGVtQXBwZWFyYW5jZSkKKyAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0LnZhbHVlKCkuZ2V0KCku
dXNlU3lzdGVtQXBwZWFyYW5jZSkKICAgICAgICAgb3B0aW9ucyB8PSBTdHlsZUNvbG9yOjpPcHRp
b25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlOwogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c2luZ2xl
dG9uKCkuc3lzdGVtQ29sb3IoaWQsIG9wdGlvbnMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyLmgKaW5kZXggZDkyZmE1YTc2YzNkMGM2NmRlY2JlODM4ZGFjYzQ0ZDI1ZDViNGFh
NC4uYWVlNzhlNTdhMWY3OTMwN2U0MjAxNzcyZDQyNDY5NDhiMTE1ODBiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oCkBAIC03OCw3ICs3OCw3IEBAIGNsYXNzIENTU1BhcnNl
ciB7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBwYXJzZVZhbHVlV2l0aFZhcmlhYmxlUmVmZXJlbmNl
cyhDU1NQcm9wZXJ0eUlELCBjb25zdCBDU1NWYWx1ZSYsIGNvbnN0IEN1c3RvbVByb3BlcnR5VmFs
dWVNYXAmIGN1c3RvbVByb3BlcnRpZXMsIFRleHREaXJlY3Rpb24sIFdyaXRpbmdNb2RlKTsKIAog
ICAgIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yKGNvbnN0IFN0cmluZyYsIGJvb2wgc3RyaWN0ID0g
ZmFsc2UpOwotICAgIHN0YXRpYyBDb2xvciBwYXJzZVN5c3RlbUNvbG9yKGNvbnN0IFN0cmluZyYs
IHN0ZDo6b3B0aW9uYWw8Y29uc3QgQ1NTUGFyc2VyQ29udGV4dCY+KTsKKyAgICBzdGF0aWMgQ29s
b3IgcGFyc2VTeXN0ZW1Db2xvcihjb25zdCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVm
ZXJlbmNlX3dyYXBwZXI8Y29uc3QgQ1NTUGFyc2VyQ29udGV4dD4+KTsKIAogcHJpdmF0ZToKICAg
ICBQYXJzZVJlc3VsdCBwYXJzZVZhbHVlKE11dGFibGVTdHlsZVByb3BlcnRpZXMmLCBDU1NQcm9w
ZXJ0eUlELCBjb25zdCBTdHJpbmcmLCBib29sIGltcG9ydGFudCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAKaW5kZXggZjJkODQyMDdiOTdhMzM2NDk1NGQ3MzBh
MTBiNDg4ZTNlMzgzYzY0OC4uNDVmOWUyMjJlN2FlMDhhZDM2ODAwNTg0ZDI4NDkwZGQ5NmRiODZk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcApAQCAtMTg4
LDcgKzE4OCw3IEBAIFZlY3RvcjxTdHJpbmc+IERhdGFzZXRET01TdHJpbmdNYXA6OnN1cHBvcnRl
ZFByb3BlcnR5TmFtZXMoKSBjb25zdAogICAgIHJldHVybiBuYW1lczsKIH0KIAotc3RkOjpvcHRp
b25hbDxjb25zdCBBdG9taWNTdHJpbmcmPiBEYXRhc2V0RE9NU3RyaW5nTWFwOjppdGVtKGNvbnN0
IFN0cmluZyYgcHJvcGVydHlOYW1lKSBjb25zdAorc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5j
ZV93cmFwcGVyPGNvbnN0IEF0b21pY1N0cmluZz4+IERhdGFzZXRET01TdHJpbmdNYXA6Oml0ZW0o
Y29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGNvbnN0CiB7CiAgICAgaWYgKG1fZWxlbWVudC5o
YXNBdHRyaWJ1dGVzKCkpIHsKICAgICAgICAgQXR0cmlidXRlSXRlcmF0b3JBY2Nlc3NvciBhdHRy
aWJ1dGVJdGVyYXRvckFjY2Vzc29yID0gbV9lbGVtZW50LmF0dHJpYnV0ZXNJdGVyYXRvcigpOwpA
QCAtMjEzLDcgKzIxMyw5IEBAIHN0ZDo6b3B0aW9uYWw8Y29uc3QgQXRvbWljU3RyaW5nJj4gRGF0
YXNldERPTVN0cmluZ01hcDo6aXRlbShjb25zdCBTdHJpbmcmIHByb3BlCiAKIFN0cmluZyBEYXRh
c2V0RE9NU3RyaW5nTWFwOjpuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25z
dAogewotICAgIHJldHVybiBpdGVtKG5hbWUpLnZhbHVlX29yKFN0cmluZyB7IH0pOworICAgIGlm
IChhdXRvIHZhbHVlID0gaXRlbShuYW1lKSkKKyAgICAgICAgcmV0dXJuICp2YWx1ZTsKKyAgICBy
ZXR1cm4gU3RyaW5nIHsgfTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gRGF0YXNldERPTVN0cmlu
Z01hcDo6c2V0TmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5oCmluZGV4IDQ4M2Y3NjNj
YzE2Y2Y5NjQxYmVhNTNmNGRiZTY5YjQ4M2JhMWI3ZDMuLmQ2ZDEwZDEyNjEyMmRjY2M5OTdkOTc4
ZjVlYTI1NGMzMjI0ZmZmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0
RE9NU3RyaW5nTWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdN
YXAuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBEYXRhc2V0RE9NU3RyaW5nTWFwIGZpbmFsIDog
cHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CiAgICAgRWxlbWVudCYgZWxlbWVudCgpIHsgcmV0dXJu
IG1fZWxlbWVudDsgfQogCiBwcml2YXRlOgotICAgIHN0ZDo6b3B0aW9uYWw8Y29uc3QgQXRvbWlj
U3RyaW5nJj4gaXRlbShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9u
YWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBBdG9taWNTdHJpbmc+PiBpdGVtKGNvbnN0
IFN0cmluZyYgbmFtZSkgY29uc3Q7CiAKICAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IGE0MzIzOTdkNzE3OWIxNDFkMjBkZjgwZmNiZTQ2OTUzY2Ix
ODY0OTYuLjVkMzI2NzY5NGQ5MDI5NmQzZGJkNDgxN2EyMzc1ODJkMzMzMjliZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKQEAgLTM3MzMsNyArMzczMyw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxS
ZWY8RWxlbWVudD4+IGNvbnRleHRFbGVtZW50Rm9ySW5zZXJ0aW9uKGNvbnN0IFN0cmluZyYgd2hl
cmUsCiB9CiAKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9ET00tUGFyc2luZy8jZG9tLWVsZW1l
bnQtaW5zZXJ0YWRqYWNlbnRodG1sCi1FeGNlcHRpb25Pcjx2b2lkPiBFbGVtZW50OjppbnNlcnRB
ZGphY2VudEhUTUwoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIHN0
ZDo6b3B0aW9uYWw8Tm9kZVZlY3RvciY+IGFkZGVkTm9kZXMpCitFeGNlcHRpb25Pcjx2b2lkPiBF
bGVtZW50OjppbnNlcnRBZGphY2VudEhUTUwoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3QgU3Ry
aW5nJiBtYXJrdXAsIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxOb2RlVmVj
dG9yPj4gYWRkZWROb2RlcykKIHsKICAgICAvLyBTdGVwcyAxIGFuZCAyLgogICAgIGF1dG8gY29u
dGV4dEVsZW1lbnQgPSBjb250ZXh0RWxlbWVudEZvckluc2VydGlvbih3aGVyZSwgKnRoaXMpOwpA
QCAtMzc0Nyw3ICszNzQ3LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRWxlbWVudDo6aW5zZXJ0QWRq
YWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYKICAgICBpZiAoVU5M
SUtFTFkoYWRkZWROb2RlcykpIHsKICAgICAgICAgLy8gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGlu
c2VydEFkamFjZW50LCBhcyBvdGhlcndpc2UgdGhlIGNoaWxkcmVuIG9mIGZyYWdtZW50IHdpbGwg
YmUgbW92ZWQKICAgICAgICAgLy8gdG8gdGhlaXIgbmV3IHBhcmVudCBhbmQgd2lsbCBiZSBoYXJk
ZXIgdG8ga2VlcCB0cmFjayBvZi4KLSAgICAgICAgKmFkZGVkTm9kZXMgPSBjb2xsZWN0Q2hpbGRO
b2RlcyhmcmFnbWVudC5yZXR1cm5WYWx1ZSgpKTsKKyAgICAgICAgYWRkZWROb2Rlcy52YWx1ZSgp
ID0gY29sbGVjdENoaWxkTm9kZXMoZnJhZ21lbnQucmV0dXJuVmFsdWUoKSk7CiAgICAgfQogCiAg
ICAgLy8gU3RlcCA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOWU1MmQzMzE1NTM5OTQ1NDY1NzAz
MjE0MTE3ZDdiMjA2YTNmMmFhMy4uOWFmNDExMzA0ZjRkOTk4YWFiMTFiOTI0YWY5MWQyMTkwMDA2
ZmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zMTQsNyArMzE0LDcgQEAgY2xhc3MgRWxlbWVu
dCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRh
YkluZGV4KGludCk7CiAgICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gZm9jdXNEZWxlZ2F0ZSgp
OwogCi0gICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmlu
ZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgc3RkOjpvcHRpb25hbDxOb2RlVmVjdG9yJj4g
YWRkZWROb2Rlcyk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRIVE1MKGNv
bnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgc3RkOjpvcHRpb25hbDxzdGQ6
OnJlZmVyZW5jZV93cmFwcGVyPE5vZGVWZWN0b3I+PiBhZGRlZE5vZGVzKTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIEV4Y2VwdGlvbk9yPEVsZW1lbnQqPiBpbnNlcnRBZGphY2VudEVsZW1lbnQoY29u
c3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVudCYgbmV3Q2hpbGQpOwogICAgIFdFQkNPUkVfRVhQT1JU
IEV4Y2VwdGlvbk9yPHZvaWQ+IGluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJl
LCBjb25zdCBTdHJpbmcmIGh0bWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcAppbmRleCA4NGY1ZTJi
OTQyYjhhMjFjYzJjNDUwMGZjMzVlMTFkZjA5NWE2NmU4Li41YzI1MzBmM2FkNTg0Yzk1NjU0ZDg5
MGFlOThhZDhiZTM4NzdjOWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcApAQCAtNjksNyArNjks
NyBAQCB2b2lkIEN1cmxGb3JtRGF0YVN0cmVhbTo6Y2xlYW4oKQogICAgIH0KIH0KIAotc3RkOjpv
cHRpb25hbDxjb25zdCBWZWN0b3I8Y2hhcj4mPiBDdXJsRm9ybURhdGFTdHJlYW06OmdldFBvc3RE
YXRhKCkKK3N0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8
Y2hhcj4+PiBDdXJsRm9ybURhdGFTdHJlYW06OmdldFBvc3REYXRhKCkKIHsKICAgICBpZiAoIW1f
Zm9ybURhdGEpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmgK
aW5kZXggZDFjYTFhZDVmMDBhNjc2ZmZhZTIwOTYwMjc2N2RiMjZiNTliMDBkMS4uZDMzZGY3ODAz
M2ExNDU3OWMxZWNiMjViODRlNWRmMDIxN2ExOThmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0uaApAQCAt
NDEsNyArNDEsNyBAQCBjbGFzcyBDdXJsRm9ybURhdGFTdHJlYW0gewogCiAgICAgc2l6ZV90IGVs
ZW1lbnRTaXplKCkgeyByZXR1cm4gbV9mb3JtRGF0YSA/IG1fZm9ybURhdGEtPmVsZW1lbnRzKCku
c2l6ZSgpIDogMDsgfQogCi0gICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8Y2hhcj4mPiBn
ZXRQb3N0RGF0YSgpOworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxj
b25zdCBWZWN0b3I8Y2hhcj4+PiBnZXRQb3N0RGF0YSgpOwogICAgIGJvb2wgc2hvdWxkVXNlQ2h1
bmtUcmFuc2ZlcigpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbFNpemUoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRleCA5NWY3ZTZiZGIyOGM4
NWZlNjZmMDRlMjc4MDAwNTJkNzQzODllN2FkLi5kNjYxZmNiN2Y5YzA5MzE1M2EwMjQ2YjhkYTE5
MTBlMzNlYzljZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1G
YWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNw
cApAQCAtODEsNyArODEsNyBAQCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IE1vY2tDRE1GYWN0
b3J5OjpyZW1vdmVLZXlzRnJvbVNlc3Npb25XaXRoSUQoY29uc3QgU3RyaQogICAgIHJldHVybiBX
VEZNb3ZlKGl0LT52YWx1ZSk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9yPFJlZjxT
aGFyZWRCdWZmZXI+PiY+IE1vY2tDRE1GYWN0b3J5OjprZXlzRm9yU2Vzc2lvbldpdGhJRChjb25z
dCBTdHJpbmcmIGlkKSBjb25zdAorc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVy
PGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+PiBNb2NrQ0RNRmFjdG9yeTo6a2V5c0Zv
clNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCkgY29uc3QKIHsKICAgICBhdXRvIGl0ID0g
bV9zZXNzaW9ucy5maW5kKGlkKTsKICAgICBpZiAoaXQgPT0gbV9zZXNzaW9ucy5lbmQoKSkKQEAg
LTMxNCw3ICszMTQsNyBAQCB2b2lkIE1vY2tDRE1JbnN0YW5jZTo6dXBkYXRlTGljZW5zZShjb25z
dCBTdHJpbmcmIHNlc3Npb25JRCwgTGljZW5zZVR5cGUsIGNvbnN0CiAKICAgICBzdGQ6Om9wdGlv
bmFsPEtleVN0YXR1c1ZlY3Rvcj4gY2hhbmdlZEtleXM7CiAgICAgaWYgKHJlc3BvbnNlVmVjdG9y
LmNvbnRhaW5zKFN0cmluZyhBU0NJSUxpdGVyYWwoImtleXMtY2hhbmdlZCIpKSkpIHsKLSAgICAg
ICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Jj4ga2V5cyA9
IGZhY3RvcnktPmtleXNGb3JTZXNzaW9uV2l0aElEKHNlc3Npb25JRCk7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8UmVmPFNoYXJlZEJ1
ZmZlcj4+Pj4ga2V5cyA9IGZhY3RvcnktPmtleXNGb3JTZXNzaW9uV2l0aElEKHNlc3Npb25JRCk7
CiAgICAgICAgIGlmIChrZXlzKSB7CiAgICAgICAgICAgICBLZXlTdGF0dXNWZWN0b3Iga2V5U3Rh
dHVzVmVjdG9yOwogICAgICAgICAgICAga2V5U3RhdHVzVmVjdG9yLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkoa2V5cy0+c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja0NETUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3Rvcnku
aAppbmRleCAyMzdiMmIzNjQyNjMzMGJjNzVhMDRkZjM1MGUwODFhYjc4ODYxODQzLi4zZTZkYjIx
ZDAxYmNkNWE1MGFmNWU5NzY1MGMzZjE0YjhiNzk2NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrQ0RNRmFjdG9yeS5oCkBAIC03Myw3ICs3Myw3IEBAIGNsYXNzIE1vY2tDRE1GYWN0b3J5
IDogcHVibGljIFJlZkNvdW50ZWQ8TW9ja0NETUZhY3Rvcnk+LCBwcml2YXRlIENETUZhY3Rvcnkg
ewogICAgIGJvb2wgaGFzU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKSB7IHJldHVybiBt
X3Nlc3Npb25zLmNvbnRhaW5zKGlkKTsgfQogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbldpdGhJRChj
b25zdCBTdHJpbmcmIGlkKSB7IG1fc2Vzc2lvbnMucmVtb3ZlKGlkKTsgfQogICAgIHZvaWQgYWRk
S2V5c1RvU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkLCBWZWN0b3I8UmVmPFNoYXJlZEJ1
ZmZlcj4+JiYpOwotICAgIHN0ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9yPFJlZjxTaGFyZWRCdWZm
ZXI+PiY+IGtleXNGb3JTZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQpIGNvbnN0OworICAg
IHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+Pj4ga2V5c0ZvclNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCkgY29u
c3Q7CiAgICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiByZW1vdmVLZXlzRnJvbVNlc3Npb25X
aXRoSUQoY29uc3QgU3RyaW5nJiBpZCk7CiAKIHByaXZhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339187</attachid>
            <date>2018-04-30 23:45:28 -0700</date>
            <delta_ts>2018-04-30 23:49:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185159-20180501154527.patch</filename>
            <type>text/plain</type>
            <size>18705</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRkNzU5ODBjOWFiNzE5YTJiZTI0YWQx
ODVmYjY2NTdmNjAxMTIyMTMuLmU1OTI3ZTZmMjAyMGIzZWFlODQyMGUxNThlYWNmMmYyNWU4NTUy
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBp
ZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm93IEMrKzE3IGZsYWcgaXMgZW5hYmxlZC4gSXQgbWVhbnMgdGhhdCBhbnkgc3Rh
bmRhcmQgbGlicmFyaWVzIGNhbiB1c2UgPG9wdGlvbmFsPiBpbnRlcm5hbGx5LgorICAgICAgICBJ
ZiB3ZSBkZWZpbmUgc3RkOjpvcHRpb25hbCByZWdhcmRsZXNzIG9mIHRoZSBleGlzdGVuY2Ugb2Yg
dGhlIHN0YW5kYXJkIGxpYnJhcnkncyA8b3B0aW9uYWw+LAorICAgICAgICBpdCBjYXVzZXMgY29t
cGlsZSBlcnJvcnMuIEZvciBleGFtcGxlLCBpbiBHQ0MgNyAoc3BlY2lmaWNhbGx5IEdDQyA3LjMu
MCkgZW52aXJvbm1lbnQsCisgICAgICAgIDxvcHRpb25hbD4gaXMgaW5jbHVkZWQgaW4gPHVub3Jk
ZXJlZF9tYXA+LgorICAgICAgICBXZSBkbyBub3QgZGVmaW5lIHN0ZDo6b3B0aW9uYWwgaW4gV2Vi
S2l0IHNpZGUgaWYgPG9wdGlvbmFsPiBpcyBvZmZlcmVkLgorCisgICAgICAgIEFuZCB3ZSBhbHNv
IHJlbW92ZSBzdGQ6Om9wdGlvbmFsPFQmPiB1c2Ugc2luY2UgdGhpcyBpcyBub3QgYWNjZXB0ZWQg
aW4gQysrMTcuIFVzZQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8VD4+IGluc3RlYWQuCisKKyAgICAgICAgKiB3dGYvRXhwZWN0ZWQuaDoKKyAgICAgICAgY29u
c3RleHByIGRvZXMgbm90IG1lYW4gY29uc3QgaW4gQysrMTcuCisKKyAgICAgICAgKiB3dGYvT3B0
aW9uYWwuaDoKKyAgICAgICAgRG8gbm90IGRlZmluZSBzdGQ6Om9wdGlvbmFsIGlmIDxvcHRpb25h
bD4gaXMgcHJvdmlkZWQuCisKKyAgICAgICAgKFdURjo6dmFsdWVPckNvbXB1dGUpOgorCiAyMDE4
LTA0LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBseSBQ
dHJUYWdzIHRvIHRoZSBNZXRhQWxsb2NhdG9yIGFuZCBmcmllbmRzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM0
YjU1NDEwZjQ1NzViYTI3MmU0OWQ1ZTQyNTU4NmE1YmRkMTYxM2MuLjQ5NTk4OGUzOGNlNWRhOTkx
NGU5NTk2ODZjYWU0NzdlNTUzZGNiMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAx
OC0wNC0zMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFsIGlmIGl0IGlzIHByb3ZpZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUxNTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aWNlU2VydmVyc0Zy
b21Db25maWd1cmF0aW9uKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmg6CisgICAgICAgICogZG9tL0RhdGFzZXRET01TdHJpbmdN
YXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YXNldERPTVN0cmluZ01hcDo6aXRlbSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhc2V0RE9NU3RyaW5nTWFwOjpuYW1lZEl0ZW0gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RGF0YXNldERPTVN0cmluZ01hcC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTCk6CisgICAgICAgICogZG9t
L0VsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRh
U3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxGb3JtRGF0YVN0cmVhbTo6Z2V0UG9z
dERhdGEpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6a2V5c0ZvclNlc3Np
b25XaXRoSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETUluc3RhbmNlOjp1cGRh
dGVMaWNlbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oOgorCiAyMDE4LTA0LTMwICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wcm92ZSB0aGUgcGVyZm9y
bWFuY2Ugb2YgRm9udENhc2NhZGVEZXNjcmlwdGlvbidzIGVmZmVjdGl2ZUZhbWlsaWVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGI2NzY0NjU5MjRmY2I4YTIzZGIyNzY4NDY2ZmZlOTNjNGE1NmJkMWYuLjYwYjc1YTAz
ZmEzYWM2ZWE4YTE2OGUzZjY4MDc4NDJhZjM3YmY0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTgtMDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
KyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBpZiBpdCBpcyBwcm92aWRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTU5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvU2Fu
ZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6VG91Y2hCYXJNZW51SXRlbURhdGE6OmRlY29kZSk6CisKIDIwMTgt
MDQtMzAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVz
ZSBjb3JyZWN0IHJ1bmxvb3AgdHlwZSBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaCBiL1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVk
LmgKaW5kZXggZGQwNDVlNTk4NzVlNGY0NzY3ZWIyZWIxNzljMWMyNzE5ZTBhZjJlMi4uMjRjMjc5
NWE4M2ZmY2I2ZGEyMWI2YTBkZTVlYWU2NjUyMjhhOWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvRXhwZWN0ZWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oCkBAIC01NzMs
NSArNTczLDUgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRT4gdm9pZCBzd2FwKGV4
cGVjdGVkPFQsIEU+JiB4LCBleHBlY3RlZDxULCBFPiYgeSkKIAogfX19IC8vIG5hbWVzcGFjZSBz
dGQ6OmV4cGVyaW1lbnRhbDo6ZnVuZGFtZW50YWxzX3YzCiAKLV9fRVhQRUNURURfSU5MSU5FX1ZB
UklBQkxFIGNvbnN0ZXhwciBzdGQ6OmV4cGVyaW1lbnRhbDo6dW5leHBlY3RlZF90JiB1bmV4cGVj
dCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdDsKK19fRVhQRUNURURfSU5MSU5FX1ZBUklB
QkxFIGNvbnN0ZXhwciBjb25zdCBzdGQ6OmV4cGVyaW1lbnRhbDo6dW5leHBlY3RlZF90JiB1bmV4
cGVjdCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdDsKIHRlbXBsYXRlPGNsYXNzIFQsIGNs
YXNzIEU+IHVzaW5nIEV4cGVjdGVkID0gc3RkOjpleHBlcmltZW50YWw6OmV4cGVjdGVkPFQsIEU+
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaCBiL1NvdXJjZS9XVEYvd3Rm
L09wdGlvbmFsLmgKaW5kZXggYTNmYzU4OTA4MzQ1YWMxYjBhMjI0YmMyZjE3OTg0NjkxNmQ5ZDJk
Ny4uZGM4NWMwMzkwMThkYjEyZTY4Y2MyMTUzNzRkY2ViZjExNjNiMjVmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvT3B0aW9uYWwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5o
CkBAIC00Nyw2ICs0NywxNiBAQAogIyBpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KICMgaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8b3B0aW9uYWw+KQor
IyBpbmNsdWRlIDxvcHRpb25hbD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX2NwcF9saWJfb3B0
aW9uYWwpICYmIF9fY3BwX2xpYl9vcHRpb25hbCA+PSAyMDE2MDMKKworLy8gVXNlIGRlZmF1bHQg
c3RkOjpvcHRpb25hbC4KKworI2Vsc2UKKwogIyBkZWZpbmUgVFIyX09QVElPTkFMX1JFUVVJUkVT
KC4uLikgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8X19WQV9BUkdTX186OnZhbHVlLCBib29sPjo6
dHlwZSA9IGZhbHNlCiAKICMgaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBOT1RFOiBHTlVDIGlzIGFs
c28gZGVmaW5lZCBmb3IgQ2xhbmcKQEAgLTEwMTIsMjAgKzEwMjIsNiBAQCBjb25zdGV4cHIgb3B0
aW9uYWw8WCY+IG1ha2Vfb3B0aW9uYWwoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxYPiB2KQogCiB9
IC8vIG5hbWVzcGFjZSBzdGQKIAotbmFtZXNwYWNlIFdURiB7Ci0KLS8vIC0tIFdlYktpdCBBZGRp
dGlvbnMgLS0KLXRlbXBsYXRlIDxjbGFzcyBPcHRpb25hbFR5cGUsIGNsYXNzIENhbGxiYWNrPgot
QUxXQVlTX0lOTElORQotYXV0byB2YWx1ZU9yQ29tcHV0ZShPcHRpb25hbFR5cGUgb3B0aW9uYWws
IENhbGxiYWNrIGNhbGxiYWNrKSAtPiB0eXBlbmFtZSBPcHRpb25hbFR5cGU6OnZhbHVlX3R5cGUK
LXsKLSAgICBpZiAob3B0aW9uYWwpCi0gICAgICAgIHJldHVybiAqb3B0aW9uYWw7Ci0gICAgcmV0
dXJuIGNhbGxiYWNrKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCiBuYW1lc3BhY2Ugc3Rk
CiB7CiAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpAQCAtMTA1NCw0ICsxMDUwLDIwIEBAIG5hbWVz
cGFjZSBzdGQKICMgdW5kZWYgVFIyX09QVElPTkFMX1JFUVVJUkVTCiAjIHVuZGVmIFRSMl9PUFRJ
T05BTF9BU1NFUlRFRF9FWFBSRVNTSU9OCiAKKyNlbmRpZiAvLyBkZWZpbmVkKF9fY3BwX2xpYl9v
cHRpb25hbCkKKworbmFtZXNwYWNlIFdURiB7CisKKy8vIC0tIFdlYktpdCBBZGRpdGlvbnMgLS0K
K3RlbXBsYXRlIDxjbGFzcyBPcHRpb25hbFR5cGUsIGNsYXNzIENhbGxiYWNrPgorQUxXQVlTX0lO
TElORQorYXV0byB2YWx1ZU9yQ29tcHV0ZShPcHRpb25hbFR5cGUgb3B0aW9uYWwsIENhbGxiYWNr
IGNhbGxiYWNrKSAtPiB0eXBlbmFtZSBPcHRpb25hbFR5cGU6OnZhbHVlX3R5cGUKK3sKKyAgICBp
ZiAob3B0aW9uYWwpCisgICAgICAgIHJldHVybiAqb3B0aW9uYWw7CisgICAgcmV0dXJuIGNhbGxi
YWNrKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiB1c2luZyBXVEY6OnZhbHVlT3JDb21w
dXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA4NTFjOWM4MmFmNDA5N2VlZDM1ZjYxMGM3YWNmNWQy
NWRiZDQ0YjM1Li5mZjQzMjg2MGM4NjU0NmMyOTRkYTI0MmMxNWJkMjk5NjAwN2IwMDk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmNwcApAQCAtMzAxLDEyICszMDEsMTIgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlv
bjo6cXVldWVkQWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSogcnRjQ2FuZGlkYXRlLCBE
T00KIH0KIAogLy8gSW1wbGVtZW50YXRpb24gb2YgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0
Yy1wYy8jc2V0LXBjLWNvbmZpZ3VyYXRpb24KLXN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8VmVj
dG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gaWNlU2VydmVy
c0Zyb21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mIG5ld0NvbmZpZ3VyYXRpb24sIHN0
ZDo6b3B0aW9uYWw8Y29uc3QgUlRDQ29uZmlndXJhdGlvbiY+IGV4aXN0aW5nQ29uZmlndXJhdGlv
biwgYm9vbCBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCitzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9y
PFZlY3RvcjxNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4+IGljZVNl
cnZlcnNGcm9tQ29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiBuZXdDb25maWd1cmF0aW9u
LCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgUlRDQ29uZmlndXJh
dGlvbj4+IGV4aXN0aW5nQ29uZmlndXJhdGlvbiwgYm9vbCBpc0xvY2FsRGVzY3JpcHRpb25TZXQp
CiB7Ci0gICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9uLmJ1
bmRsZVBvbGljeSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmJ1bmRsZVBvbGljeSkKKyAgICBp
ZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5
ICE9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi0+Z2V0KCkuYnVuZGxlUG9saWN5KQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiSWNlVHJhbnNwb3J0
UG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvbGljeSIgfTsKIAotICAgIGlmIChleGlz
dGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29uZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6
ZSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmljZUNhbmRpZGF0ZVBvb2xTaXplICYmIGlzTG9j
YWxEZXNjcmlwdGlvblNldCkKKyAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0Nv
bmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9u
LT5nZXQoKS5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJJY2VU
cmFuc3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvb2wgc2l6
ZSIgfTsKIAogICAgIFZlY3RvcjxNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVy
SW5mbz4gc2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAppbmRl
eCA5NTRhYjA4MmU5ZTY2M2I2NWJhMTQ1ODY0Yzc2N2FjYmQ2N2QzNmQ2Li4zM2Y1MmUxYTY1M2U1
YmQzMGZmNjRjZGRmMjAyMGQ3M2JmYTUwZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXIuY3BwCkBAIC0xNzgsMTQgKzE3OCwxNCBAQCBDb2xvciBDU1NQYXJzZXI6OnBhcnNl
Q29sb3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgc3RyaWN0KQogICAgIHJldHVybiBwcmlt
aXRpdmVWYWx1ZS5jb2xvcigpOwogfQogCi1Db2xvciBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29s
b3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHN0ZDo6b3B0aW9uYWw8Y29uc3QgQ1NTUGFyc2VyQ29u
dGV4dCY+IGNvbnRleHQpCitDb2xvciBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25z
dCBDU1NQYXJzZXJDb250ZXh0Pj4gY29udGV4dCkKIHsKICAgICBDU1NWYWx1ZUlEIGlkID0gY3Nz
VmFsdWVLZXl3b3JkSUQoc3RyaW5nKTsKICAgICBpZiAoIVN0eWxlQ29sb3I6OmlzU3lzdGVtQ29s
b3IoaWQpKQogICAgICAgICByZXR1cm4gQ29sb3IoKTsKIAogICAgIE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zOwotICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQudmFsdWUo
KS51c2VTeXN0ZW1BcHBlYXJhbmNlKQorICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQtPmdldCgp
LnVzZVN5c3RlbUFwcGVhcmFuY2UpCiAgICAgICAgIG9wdGlvbnMgfD0gU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZTsKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmds
ZXRvbigpLnN5c3RlbUNvbG9yKGlkLCBvcHRpb25zKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlci5oCmluZGV4IGQ5MmZhNWE3NmMzZDBjNjZkZWNiZTgzOGRhY2M0NGQyNWQ1YjRh
YTQuLmFlZTc4ZTU3YTFmNzkzMDdlNDIwMTc3MmQ0MjQ2OTQ4YjExNTgwYmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaApAQCAtNzgsNyArNzgsNyBAQCBjbGFzcyBDU1NQYXJz
ZXIgewogICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VWYWx1ZVdpdGhWYXJpYWJsZVJlZmVyZW5j
ZXMoQ1NTUHJvcGVydHlJRCwgY29uc3QgQ1NTVmFsdWUmLCBjb25zdCBDdXN0b21Qcm9wZXJ0eVZh
bHVlTWFwJiBjdXN0b21Qcm9wZXJ0aWVzLCBUZXh0RGlyZWN0aW9uLCBXcml0aW5nTW9kZSk7CiAK
ICAgICBzdGF0aWMgQ29sb3IgcGFyc2VDb2xvcihjb25zdCBTdHJpbmcmLCBib29sIHN0cmljdCA9
IGZhbHNlKTsKLSAgICBzdGF0aWMgQ29sb3IgcGFyc2VTeXN0ZW1Db2xvcihjb25zdCBTdHJpbmcm
LCBzdGQ6Om9wdGlvbmFsPGNvbnN0IENTU1BhcnNlckNvbnRleHQmPik7CisgICAgc3RhdGljIENv
bG9yIHBhcnNlU3lzdGVtQ29sb3IoY29uc3QgU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxzdGQ6OnJl
ZmVyZW5jZV93cmFwcGVyPGNvbnN0IENTU1BhcnNlckNvbnRleHQ+Pik7CiAKIHByaXZhdGU6CiAg
ICAgUGFyc2VSZXN1bHQgcGFyc2VWYWx1ZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiwgQ1NTUHJv
cGVydHlJRCwgY29uc3QgU3RyaW5nJiwgYm9vbCBpbXBvcnRhbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCmluZGV4IGYyZDg0MjA3Yjk3YTMzNjQ5NTRkNzMw
YTEwYjQ4OGUzZTM4M2M2NDguLjViNTYwZWMwMDFiZDFlMTg5Y2U1MWEyZDkwNTMzMDE5NGFmOGNi
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAKQEAgLTE4
OCw3ICsxODgsNyBAQCBWZWN0b3I8U3RyaW5nPiBEYXRhc2V0RE9NU3RyaW5nTWFwOjpzdXBwb3J0
ZWRQcm9wZXJ0eU5hbWVzKCkgY29uc3QKICAgICByZXR1cm4gbmFtZXM7CiB9CiAKLXN0ZDo6b3B0
aW9uYWw8Y29uc3QgQXRvbWljU3RyaW5nJj4gRGF0YXNldERPTVN0cmluZ01hcDo6aXRlbShjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVu
Y2Vfd3JhcHBlcjxjb25zdCBBdG9taWNTdHJpbmc+PiBEYXRhc2V0RE9NU3RyaW5nTWFwOjppdGVt
KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBjb25zdAogewogICAgIGlmIChtX2VsZW1lbnQu
aGFzQXR0cmlidXRlcygpKSB7CiAgICAgICAgIEF0dHJpYnV0ZUl0ZXJhdG9yQWNjZXNzb3IgYXR0
cmlidXRlSXRlcmF0b3JBY2Nlc3NvciA9IG1fZWxlbWVudC5hdHRyaWJ1dGVzSXRlcmF0b3IoKTsK
QEAgLTIxMyw3ICsyMTMsOSBAQCBzdGQ6Om9wdGlvbmFsPGNvbnN0IEF0b21pY1N0cmluZyY+IERh
dGFzZXRET01TdHJpbmdNYXA6Oml0ZW0oY29uc3QgU3RyaW5nJiBwcm9wZQogCiBTdHJpbmcgRGF0
YXNldERPTVN0cmluZ01hcDo6bmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29u
c3QKIHsKLSAgICByZXR1cm4gaXRlbShuYW1lKS52YWx1ZV9vcihTdHJpbmcgeyB9KTsKKyAgICBp
ZiAoYXV0byB2YWx1ZSA9IGl0ZW0obmFtZSkpCisgICAgICAgIHJldHVybiB2YWx1ZS0+Z2V0KCk7
CisgICAgcmV0dXJuIFN0cmluZyB7IH07CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IERhdGFzZXRE
T01TdHJpbmdNYXA6OnNldE5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmlu
Z01hcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaAppbmRleCA0
ODNmNzYzY2MxNmNmOTY0MWJlYTUzZjRkYmU2OWI0ODNiYTFiN2QzLi5kNmQxMGQxMjYxMjJkY2Nj
OTk3ZDk3OGY1ZWEyNTRjMzIyNGZmZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YXNldERPTVN0cmluZ01hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9N
U3RyaW5nTWFwLmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgRGF0YXNldERPTVN0cmluZ01hcCBm
aW5hbCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewogICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7
IHJldHVybiBtX2VsZW1lbnQ7IH0KIAogcHJpdmF0ZToKLSAgICBzdGQ6Om9wdGlvbmFsPGNvbnN0
IEF0b21pY1N0cmluZyY+IGl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKKyAgICBzdGQ6
Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQXRvbWljU3RyaW5nPj4gaXRl
bShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogCiAgICAgRWxlbWVudCYgbV9lbGVtZW50Owog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBhNDMyMzk3ZDcxNzliMTQxZDIwZGY4MGZjYmU0
Njk1M2NiMTg2NDk2Li4yNzNkOGNhZTcyNmFkYWE1NmJlNTUwZTIwYTcwYmFlMjY3MWJhZDVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zNzMzLDcgKzM3MzMsNyBAQCBzdGF0aWMgRXhjZXB0
aW9uT3I8UmVmPEVsZW1lbnQ+PiBjb250ZXh0RWxlbWVudEZvckluc2VydGlvbihjb25zdCBTdHJp
bmcmIHdoZXJlLAogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8vRE9NLVBhcnNpbmcvI2Rv
bS1lbGVtZW50LWluc2VydGFkamFjZW50aHRtbAotRXhjZXB0aW9uT3I8dm9pZD4gRWxlbWVudDo6
aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgbWFy
a3VwLCBzdGQ6Om9wdGlvbmFsPE5vZGVWZWN0b3ImPiBhZGRlZE5vZGVzKQorRXhjZXB0aW9uT3I8
dm9pZD4gRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNv
bnN0IFN0cmluZyYgbWFya3VwLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8
Tm9kZVZlY3Rvcj4+IGFkZGVkTm9kZXMpCiB7CiAgICAgLy8gU3RlcHMgMSBhbmQgMi4KICAgICBh
dXRvIGNvbnRleHRFbGVtZW50ID0gY29udGV4dEVsZW1lbnRGb3JJbnNlcnRpb24od2hlcmUsICp0
aGlzKTsKQEAgLTM3NDcsNyArMzc0Nyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEVsZW1lbnQ6Omlu
c2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmCiAgICAg
aWYgKFVOTElLRUxZKGFkZGVkTm9kZXMpKSB7CiAgICAgICAgIC8vIE11c3QgYmUgY2FsbGVkIGJl
Zm9yZSBpbnNlcnRBZGphY2VudCwgYXMgb3RoZXJ3aXNlIHRoZSBjaGlsZHJlbiBvZiBmcmFnbWVu
dCB3aWxsIGJlIG1vdmVkCiAgICAgICAgIC8vIHRvIHRoZWlyIG5ldyBwYXJlbnQgYW5kIHdpbGwg
YmUgaGFyZGVyIHRvIGtlZXAgdHJhY2sgb2YuCi0gICAgICAgICphZGRlZE5vZGVzID0gY29sbGVj
dENoaWxkTm9kZXMoZnJhZ21lbnQucmV0dXJuVmFsdWUoKSk7CisgICAgICAgIGFkZGVkTm9kZXMt
PmdldCgpID0gY29sbGVjdENoaWxkTm9kZXMoZnJhZ21lbnQucmV0dXJuVmFsdWUoKSk7CiAgICAg
fQogCiAgICAgLy8gU3RlcCA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOWU1MmQzMzE1NTM5OTQ1
NDY1NzAzMjE0MTE3ZDdiMjA2YTNmMmFhMy4uOWFmNDExMzA0ZjRkOTk4YWFiMTFiOTI0YWY5MWQy
MTkwMDA2ZmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zMTQsNyArMzE0LDcgQEAgY2xhc3Mg
RWxlbWVudCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFRhYkluZGV4KGludCk7CiAgICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gZm9jdXNEZWxl
Z2F0ZSgpOwogCi0gICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0
IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgc3RkOjpvcHRpb25hbDxOb2RlVmVj
dG9yJj4gYWRkZWROb2Rlcyk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRI
VE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgc3RkOjpvcHRpb25h
bDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPE5vZGVWZWN0b3I+PiBhZGRlZE5vZGVzKTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPEVsZW1lbnQqPiBpbnNlcnRBZGphY2VudEVsZW1l
bnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVudCYgbmV3Q2hpbGQpOwogICAgIFdFQkNPUkVf
RVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IGluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcm
IHdoZXJlLCBjb25zdCBTdHJpbmcmIGh0bWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcAppbmRleCA4
NGY1ZTJiOTQyYjhhMjFjYzJjNDUwMGZjMzVlMTFkZjA5NWE2NmU4Li41YzI1MzBmM2FkNTg0Yzk1
NjU0ZDg5MGFlOThhZDhiZTM4NzdjOWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcApAQCAtNjks
NyArNjksNyBAQCB2b2lkIEN1cmxGb3JtRGF0YVN0cmVhbTo6Y2xlYW4oKQogICAgIH0KIH0KIAot
c3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8Y2hhcj4mPiBDdXJsRm9ybURhdGFTdHJlYW06Omdl
dFBvc3REYXRhKCkKK3N0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBW
ZWN0b3I8Y2hhcj4+PiBDdXJsRm9ybURhdGFTdHJlYW06OmdldFBvc3REYXRhKCkKIHsKICAgICBp
ZiAoIW1fZm9ybURhdGEpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3Ry
ZWFtLmgKaW5kZXggZDFjYTFhZDVmMDBhNjc2ZmZhZTIwOTYwMjc2N2RiMjZiNTliMDBkMS4uZDMz
ZGY3ODAzM2ExNDU3OWMxZWNiMjViODRlNWRmMDIxN2ExOThmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0u
aApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBDdXJsRm9ybURhdGFTdHJlYW0gewogCiAgICAgc2l6
ZV90IGVsZW1lbnRTaXplKCkgeyByZXR1cm4gbV9mb3JtRGF0YSA/IG1fZm9ybURhdGEtPmVsZW1l
bnRzKCkuc2l6ZSgpIDogMDsgfQogCi0gICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8Y2hh
cj4mPiBnZXRQb3N0RGF0YSgpOworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3Jh
cHBlcjxjb25zdCBWZWN0b3I8Y2hhcj4+PiBnZXRQb3N0RGF0YSgpOwogICAgIGJvb2wgc2hvdWxk
VXNlQ2h1bmtUcmFuc2ZlcigpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbFNpemUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRleCA5NWY3ZTZi
ZGIyOGM4NWZlNjZmMDRlMjc4MDAwNTJkNzQzODllN2FkLi5kNjYxZmNiN2Y5YzA5MzE1M2EwMjQ2
YjhkYTE5MTBlMzNlYzljZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tDRE1GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0
b3J5LmNwcApAQCAtODEsNyArODEsNyBAQCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IE1vY2tD
RE1GYWN0b3J5OjpyZW1vdmVLZXlzRnJvbVNlc3Npb25XaXRoSUQoY29uc3QgU3RyaQogICAgIHJl
dHVybiBXVEZNb3ZlKGl0LT52YWx1ZSk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9y
PFJlZjxTaGFyZWRCdWZmZXI+PiY+IE1vY2tDRE1GYWN0b3J5OjprZXlzRm9yU2Vzc2lvbldpdGhJ
RChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAorc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93
cmFwcGVyPGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+PiBNb2NrQ0RNRmFjdG9yeTo6
a2V5c0ZvclNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCkgY29uc3QKIHsKICAgICBhdXRv
IGl0ID0gbV9zZXNzaW9ucy5maW5kKGlkKTsKICAgICBpZiAoaXQgPT0gbV9zZXNzaW9ucy5lbmQo
KSkKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIE1vY2tDRE1JbnN0YW5jZTo6dXBkYXRlTGljZW5z
ZShjb25zdCBTdHJpbmcmIHNlc3Npb25JRCwgTGljZW5zZVR5cGUsIGNvbnN0CiAKICAgICBzdGQ6
Om9wdGlvbmFsPEtleVN0YXR1c1ZlY3Rvcj4gY2hhbmdlZEtleXM7CiAgICAgaWYgKHJlc3BvbnNl
VmVjdG9yLmNvbnRhaW5zKFN0cmluZyhBU0NJSUxpdGVyYWwoImtleXMtY2hhbmdlZCIpKSkpIHsK
LSAgICAgICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Jj4g
a2V5cyA9IGZhY3RvcnktPmtleXNGb3JTZXNzaW9uV2l0aElEKHNlc3Npb25JRCk7CisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+Pj4ga2V5cyA9IGZhY3RvcnktPmtleXNGb3JTZXNzaW9uV2l0aElEKHNlc3Np
b25JRCk7CiAgICAgICAgIGlmIChrZXlzKSB7CiAgICAgICAgICAgICBLZXlTdGF0dXNWZWN0b3Ig
a2V5U3RhdHVzVmVjdG9yOwogICAgICAgICAgICAga2V5U3RhdHVzVmVjdG9yLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkoa2V5cy0+c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja0NETUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZh
Y3RvcnkuaAppbmRleCAyMzdiMmIzNjQyNjMzMGJjNzVhMDRkZjM1MGUwODFhYjc4ODYxODQzLi4z
ZTZkYjIxZDAxYmNkNWE1MGFmNWU5NzY1MGMzZjE0YjhiNzk2NDhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oCkBAIC03Myw3ICs3Myw3IEBAIGNsYXNzIE1vY2tDRE1G
YWN0b3J5IDogcHVibGljIFJlZkNvdW50ZWQ8TW9ja0NETUZhY3Rvcnk+LCBwcml2YXRlIENETUZh
Y3RvcnkgewogICAgIGJvb2wgaGFzU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKSB7IHJl
dHVybiBtX3Nlc3Npb25zLmNvbnRhaW5zKGlkKTsgfQogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbldp
dGhJRChjb25zdCBTdHJpbmcmIGlkKSB7IG1fc2Vzc2lvbnMucmVtb3ZlKGlkKTsgfQogICAgIHZv
aWQgYWRkS2V5c1RvU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkLCBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+JiYpOwotICAgIHN0ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+PiY+IGtleXNGb3JTZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQpIGNvbnN0
OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8
UmVmPFNoYXJlZEJ1ZmZlcj4+Pj4ga2V5c0ZvclNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBp
ZCkgY29uc3Q7CiAgICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiByZW1vdmVLZXlzRnJvbVNl
c3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKaW5kZXggMWY3NjgwODU2NGVkNGRiNmU1YzBjZTFlYjYz
MDIxMTcxZTkwZWQxYi4uY2I1M2FhZGU2M2UzOWYzMmUyYmY2MjY3OGRlN2MzY2I5NDJkZjM4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaApAQCAtMTIwLDcgKzEyMCw3
IEBAIGNsYXNzIFNhbmRib3hFeHRlbnNpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxTYW5kYm94RXh0
ZW5zaW9uPiB7CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpIYW5kbGUoKSB7IH0K
IGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6On5IYW5kbGUoKSB7IH0KIGlubGluZSB2
b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
IHsgfQotaW5saW5lIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImKSB7IHJldHVybiB7eyB9
fTsgfQoraW5saW5lIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImKSB7IHJldHVybiBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgeyB9OyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXk6OkhhbmRsZUFycmF5KCkgeyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXk6On5IYW5kbGVBcnJheSgpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlQXJyYXk6OmFsbG9jYXRlKHNpemVfdCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0YS5jcHAKaW5kZXggZDAyMjZiYjlhOWVjMWJhZTE4MzVi
YmRkZTEzNDhjMTI4NjZiZDEwMy4uNzg2MWMyMzk4M2ViMjNkNTVmMTYxYzZlNjQ3ZDQ1OTZiNjU0
OThkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvVG91Y2hCYXJNZW51SXRlbURh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNw
cApAQCAtNjUsNyArNjUsNyBAQCBzdGQ6Om9wdGlvbmFsPFRvdWNoQmFyTWVudUl0ZW1EYXRhPiBU
b3VjaEJhck1lbnVJdGVtRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZAogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LnByaW9yaXR5KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICAKLSAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339188</attachid>
            <date>2018-04-30 23:49:25 -0700</date>
            <delta_ts>2018-05-01 01:07:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185159-20180501154924.patch</filename>
            <type>text/plain</type>
            <size>18734</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRkNzU5ODBjOWFiNzE5YTJiZTI0YWQx
ODVmYjY2NTdmNjAxMTIyMTMuLmU1OTI3ZTZmMjAyMGIzZWFlODQyMGUxNThlYWNmMmYyNWU4NTUy
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBp
ZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm93IEMrKzE3IGZsYWcgaXMgZW5hYmxlZC4gSXQgbWVhbnMgdGhhdCBhbnkgc3Rh
bmRhcmQgbGlicmFyaWVzIGNhbiB1c2UgPG9wdGlvbmFsPiBpbnRlcm5hbGx5LgorICAgICAgICBJ
ZiB3ZSBkZWZpbmUgc3RkOjpvcHRpb25hbCByZWdhcmRsZXNzIG9mIHRoZSBleGlzdGVuY2Ugb2Yg
dGhlIHN0YW5kYXJkIGxpYnJhcnkncyA8b3B0aW9uYWw+LAorICAgICAgICBpdCBjYXVzZXMgY29t
cGlsZSBlcnJvcnMuIEZvciBleGFtcGxlLCBpbiBHQ0MgNyAoc3BlY2lmaWNhbGx5IEdDQyA3LjMu
MCkgZW52aXJvbm1lbnQsCisgICAgICAgIDxvcHRpb25hbD4gaXMgaW5jbHVkZWQgaW4gPHVub3Jk
ZXJlZF9tYXA+LgorICAgICAgICBXZSBkbyBub3QgZGVmaW5lIHN0ZDo6b3B0aW9uYWwgaW4gV2Vi
S2l0IHNpZGUgaWYgPG9wdGlvbmFsPiBpcyBvZmZlcmVkLgorCisgICAgICAgIEFuZCB3ZSBhbHNv
IHJlbW92ZSBzdGQ6Om9wdGlvbmFsPFQmPiB1c2Ugc2luY2UgdGhpcyBpcyBub3QgYWNjZXB0ZWQg
aW4gQysrMTcuIFVzZQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8VD4+IGluc3RlYWQuCisKKyAgICAgICAgKiB3dGYvRXhwZWN0ZWQuaDoKKyAgICAgICAgY29u
c3RleHByIGRvZXMgbm90IG1lYW4gY29uc3QgaW4gQysrMTcuCisKKyAgICAgICAgKiB3dGYvT3B0
aW9uYWwuaDoKKyAgICAgICAgRG8gbm90IGRlZmluZSBzdGQ6Om9wdGlvbmFsIGlmIDxvcHRpb25h
bD4gaXMgcHJvdmlkZWQuCisKKyAgICAgICAgKFdURjo6dmFsdWVPckNvbXB1dGUpOgorCiAyMDE4
LTA0LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBseSBQ
dHJUYWdzIHRvIHRoZSBNZXRhQWxsb2NhdG9yIGFuZCBmcmllbmRzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM0
YjU1NDEwZjQ1NzViYTI3MmU0OWQ1ZTQyNTU4NmE1YmRkMTYxM2MuLjQ5NTk4OGUzOGNlNWRhOTkx
NGU5NTk2ODZjYWU0NzdlNTUzZGNiMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAx
OC0wNC0zMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFsIGlmIGl0IGlzIHByb3ZpZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUxNTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aWNlU2VydmVyc0Zy
b21Db25maWd1cmF0aW9uKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmg6CisgICAgICAgICogZG9tL0RhdGFzZXRET01TdHJpbmdN
YXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YXNldERPTVN0cmluZ01hcDo6aXRlbSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhc2V0RE9NU3RyaW5nTWFwOjpuYW1lZEl0ZW0gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RGF0YXNldERPTVN0cmluZ01hcC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTCk6CisgICAgICAgICogZG9t
L0VsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRh
U3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxGb3JtRGF0YVN0cmVhbTo6Z2V0UG9z
dERhdGEpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6a2V5c0ZvclNlc3Np
b25XaXRoSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETUluc3RhbmNlOjp1cGRh
dGVMaWNlbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oOgorCiAyMDE4LTA0LTMwICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wcm92ZSB0aGUgcGVyZm9y
bWFuY2Ugb2YgRm9udENhc2NhZGVEZXNjcmlwdGlvbidzIGVmZmVjdGl2ZUZhbWlsaWVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGI2NzY0NjU5MjRmY2I4YTIzZGIyNzY4NDY2ZmZlOTNjNGE1NmJkMWYuLjYwYjc1YTAz
ZmEzYWM2ZWE4YTE2OGUzZjY4MDc4NDJhZjM3YmY0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTgtMDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
KyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBpZiBpdCBpcyBwcm92aWRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTU5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvU2Fu
ZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6VG91Y2hCYXJNZW51SXRlbURhdGE6OmRlY29kZSk6CisKIDIwMTgt
MDQtMzAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVz
ZSBjb3JyZWN0IHJ1bmxvb3AgdHlwZSBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaCBiL1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVk
LmgKaW5kZXggZGQwNDVlNTk4NzVlNGY0NzY3ZWIyZWIxNzljMWMyNzE5ZTBhZjJlMi4uMjRjMjc5
NWE4M2ZmY2I2ZGEyMWI2YTBkZTVlYWU2NjUyMjhhOWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvRXhwZWN0ZWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oCkBAIC01NzMs
NSArNTczLDUgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRT4gdm9pZCBzd2FwKGV4
cGVjdGVkPFQsIEU+JiB4LCBleHBlY3RlZDxULCBFPiYgeSkKIAogfX19IC8vIG5hbWVzcGFjZSBz
dGQ6OmV4cGVyaW1lbnRhbDo6ZnVuZGFtZW50YWxzX3YzCiAKLV9fRVhQRUNURURfSU5MSU5FX1ZB
UklBQkxFIGNvbnN0ZXhwciBzdGQ6OmV4cGVyaW1lbnRhbDo6dW5leHBlY3RlZF90JiB1bmV4cGVj
dCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdDsKK19fRVhQRUNURURfSU5MSU5FX1ZBUklB
QkxFIGNvbnN0ZXhwciBjb25zdCBzdGQ6OmV4cGVyaW1lbnRhbDo6dW5leHBlY3RlZF90JiB1bmV4
cGVjdCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdDsKIHRlbXBsYXRlPGNsYXNzIFQsIGNs
YXNzIEU+IHVzaW5nIEV4cGVjdGVkID0gc3RkOjpleHBlcmltZW50YWw6OmV4cGVjdGVkPFQsIEU+
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaCBiL1NvdXJjZS9XVEYvd3Rm
L09wdGlvbmFsLmgKaW5kZXggYTNmYzU4OTA4MzQ1YWMxYjBhMjI0YmMyZjE3OTg0NjkxNmQ5ZDJk
Ny4uZGM4NWMwMzkwMThkYjEyZTY4Y2MyMTUzNzRkY2ViZjExNjNiMjVmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvT3B0aW9uYWwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5o
CkBAIC00Nyw2ICs0NywxNiBAQAogIyBpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KICMgaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8b3B0aW9uYWw+KQor
IyBpbmNsdWRlIDxvcHRpb25hbD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX2NwcF9saWJfb3B0
aW9uYWwpICYmIF9fY3BwX2xpYl9vcHRpb25hbCA+PSAyMDE2MDMKKworLy8gVXNlIGRlZmF1bHQg
c3RkOjpvcHRpb25hbC4KKworI2Vsc2UKKwogIyBkZWZpbmUgVFIyX09QVElPTkFMX1JFUVVJUkVT
KC4uLikgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8X19WQV9BUkdTX186OnZhbHVlLCBib29sPjo6
dHlwZSA9IGZhbHNlCiAKICMgaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBOT1RFOiBHTlVDIGlzIGFs
c28gZGVmaW5lZCBmb3IgQ2xhbmcKQEAgLTEwMTIsMjAgKzEwMjIsNiBAQCBjb25zdGV4cHIgb3B0
aW9uYWw8WCY+IG1ha2Vfb3B0aW9uYWwoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxYPiB2KQogCiB9
IC8vIG5hbWVzcGFjZSBzdGQKIAotbmFtZXNwYWNlIFdURiB7Ci0KLS8vIC0tIFdlYktpdCBBZGRp
dGlvbnMgLS0KLXRlbXBsYXRlIDxjbGFzcyBPcHRpb25hbFR5cGUsIGNsYXNzIENhbGxiYWNrPgot
QUxXQVlTX0lOTElORQotYXV0byB2YWx1ZU9yQ29tcHV0ZShPcHRpb25hbFR5cGUgb3B0aW9uYWws
IENhbGxiYWNrIGNhbGxiYWNrKSAtPiB0eXBlbmFtZSBPcHRpb25hbFR5cGU6OnZhbHVlX3R5cGUK
LXsKLSAgICBpZiAob3B0aW9uYWwpCi0gICAgICAgIHJldHVybiAqb3B0aW9uYWw7Ci0gICAgcmV0
dXJuIGNhbGxiYWNrKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCiBuYW1lc3BhY2Ugc3Rk
CiB7CiAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpAQCAtMTA1NCw0ICsxMDUwLDIwIEBAIG5hbWVz
cGFjZSBzdGQKICMgdW5kZWYgVFIyX09QVElPTkFMX1JFUVVJUkVTCiAjIHVuZGVmIFRSMl9PUFRJ
T05BTF9BU1NFUlRFRF9FWFBSRVNTSU9OCiAKKyNlbmRpZiAvLyBkZWZpbmVkKF9fY3BwX2xpYl9v
cHRpb25hbCkKKworbmFtZXNwYWNlIFdURiB7CisKKy8vIC0tIFdlYktpdCBBZGRpdGlvbnMgLS0K
K3RlbXBsYXRlIDxjbGFzcyBPcHRpb25hbFR5cGUsIGNsYXNzIENhbGxiYWNrPgorQUxXQVlTX0lO
TElORQorYXV0byB2YWx1ZU9yQ29tcHV0ZShPcHRpb25hbFR5cGUgb3B0aW9uYWwsIENhbGxiYWNr
IGNhbGxiYWNrKSAtPiB0eXBlbmFtZSBPcHRpb25hbFR5cGU6OnZhbHVlX3R5cGUKK3sKKyAgICBp
ZiAob3B0aW9uYWwpCisgICAgICAgIHJldHVybiAqb3B0aW9uYWw7CisgICAgcmV0dXJuIGNhbGxi
YWNrKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiB1c2luZyBXVEY6OnZhbHVlT3JDb21w
dXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA4NTFjOWM4MmFmNDA5N2VlZDM1ZjYxMGM3YWNmNWQy
NWRiZDQ0YjM1Li5mZjQzMjg2MGM4NjU0NmMyOTRkYTI0MmMxNWJkMjk5NjAwN2IwMDk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmNwcApAQCAtMzAxLDEyICszMDEsMTIgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlv
bjo6cXVldWVkQWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSogcnRjQ2FuZGlkYXRlLCBE
T00KIH0KIAogLy8gSW1wbGVtZW50YXRpb24gb2YgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0
Yy1wYy8jc2V0LXBjLWNvbmZpZ3VyYXRpb24KLXN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8VmVj
dG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gaWNlU2VydmVy
c0Zyb21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mIG5ld0NvbmZpZ3VyYXRpb24sIHN0
ZDo6b3B0aW9uYWw8Y29uc3QgUlRDQ29uZmlndXJhdGlvbiY+IGV4aXN0aW5nQ29uZmlndXJhdGlv
biwgYm9vbCBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCitzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9y
PFZlY3RvcjxNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4+IGljZVNl
cnZlcnNGcm9tQ29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiBuZXdDb25maWd1cmF0aW9u
LCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgUlRDQ29uZmlndXJh
dGlvbj4+IGV4aXN0aW5nQ29uZmlndXJhdGlvbiwgYm9vbCBpc0xvY2FsRGVzY3JpcHRpb25TZXQp
CiB7Ci0gICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9uLmJ1
bmRsZVBvbGljeSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmJ1bmRsZVBvbGljeSkKKyAgICBp
ZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5
ICE9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi0+Z2V0KCkuYnVuZGxlUG9saWN5KQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiSWNlVHJhbnNwb3J0
UG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvbGljeSIgfTsKIAotICAgIGlmIChleGlz
dGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29uZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6
ZSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmljZUNhbmRpZGF0ZVBvb2xTaXplICYmIGlzTG9j
YWxEZXNjcmlwdGlvblNldCkKKyAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0Nv
bmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9u
LT5nZXQoKS5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJJY2VU
cmFuc3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvb2wgc2l6
ZSIgfTsKIAogICAgIFZlY3RvcjxNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVy
SW5mbz4gc2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAppbmRl
eCA5NTRhYjA4MmU5ZTY2M2I2NWJhMTQ1ODY0Yzc2N2FjYmQ2N2QzNmQ2Li4zM2Y1MmUxYTY1M2U1
YmQzMGZmNjRjZGRmMjAyMGQ3M2JmYTUwZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXIuY3BwCkBAIC0xNzgsMTQgKzE3OCwxNCBAQCBDb2xvciBDU1NQYXJzZXI6OnBhcnNl
Q29sb3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgc3RyaWN0KQogICAgIHJldHVybiBwcmlt
aXRpdmVWYWx1ZS5jb2xvcigpOwogfQogCi1Db2xvciBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29s
b3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHN0ZDo6b3B0aW9uYWw8Y29uc3QgQ1NTUGFyc2VyQ29u
dGV4dCY+IGNvbnRleHQpCitDb2xvciBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25z
dCBDU1NQYXJzZXJDb250ZXh0Pj4gY29udGV4dCkKIHsKICAgICBDU1NWYWx1ZUlEIGlkID0gY3Nz
VmFsdWVLZXl3b3JkSUQoc3RyaW5nKTsKICAgICBpZiAoIVN0eWxlQ29sb3I6OmlzU3lzdGVtQ29s
b3IoaWQpKQogICAgICAgICByZXR1cm4gQ29sb3IoKTsKIAogICAgIE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zOwotICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQudmFsdWUo
KS51c2VTeXN0ZW1BcHBlYXJhbmNlKQorICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQtPmdldCgp
LnVzZVN5c3RlbUFwcGVhcmFuY2UpCiAgICAgICAgIG9wdGlvbnMgfD0gU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZTsKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmds
ZXRvbigpLnN5c3RlbUNvbG9yKGlkLCBvcHRpb25zKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlci5oCmluZGV4IGQ5MmZhNWE3NmMzZDBjNjZkZWNiZTgzOGRhY2M0NGQyNWQ1YjRh
YTQuLmFlZTc4ZTU3YTFmNzkzMDdlNDIwMTc3MmQ0MjQ2OTQ4YjExNTgwYmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaApAQCAtNzgsNyArNzgsNyBAQCBjbGFzcyBDU1NQYXJz
ZXIgewogICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VWYWx1ZVdpdGhWYXJpYWJsZVJlZmVyZW5j
ZXMoQ1NTUHJvcGVydHlJRCwgY29uc3QgQ1NTVmFsdWUmLCBjb25zdCBDdXN0b21Qcm9wZXJ0eVZh
bHVlTWFwJiBjdXN0b21Qcm9wZXJ0aWVzLCBUZXh0RGlyZWN0aW9uLCBXcml0aW5nTW9kZSk7CiAK
ICAgICBzdGF0aWMgQ29sb3IgcGFyc2VDb2xvcihjb25zdCBTdHJpbmcmLCBib29sIHN0cmljdCA9
IGZhbHNlKTsKLSAgICBzdGF0aWMgQ29sb3IgcGFyc2VTeXN0ZW1Db2xvcihjb25zdCBTdHJpbmcm
LCBzdGQ6Om9wdGlvbmFsPGNvbnN0IENTU1BhcnNlckNvbnRleHQmPik7CisgICAgc3RhdGljIENv
bG9yIHBhcnNlU3lzdGVtQ29sb3IoY29uc3QgU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxzdGQ6OnJl
ZmVyZW5jZV93cmFwcGVyPGNvbnN0IENTU1BhcnNlckNvbnRleHQ+Pik7CiAKIHByaXZhdGU6CiAg
ICAgUGFyc2VSZXN1bHQgcGFyc2VWYWx1ZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiwgQ1NTUHJv
cGVydHlJRCwgY29uc3QgU3RyaW5nJiwgYm9vbCBpbXBvcnRhbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCmluZGV4IGYyZDg0MjA3Yjk3YTMzNjQ5NTRkNzMw
YTEwYjQ4OGUzZTM4M2M2NDguLjViNTYwZWMwMDFiZDFlMTg5Y2U1MWEyZDkwNTMzMDE5NGFmOGNi
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAKQEAgLTE4
OCw3ICsxODgsNyBAQCBWZWN0b3I8U3RyaW5nPiBEYXRhc2V0RE9NU3RyaW5nTWFwOjpzdXBwb3J0
ZWRQcm9wZXJ0eU5hbWVzKCkgY29uc3QKICAgICByZXR1cm4gbmFtZXM7CiB9CiAKLXN0ZDo6b3B0
aW9uYWw8Y29uc3QgQXRvbWljU3RyaW5nJj4gRGF0YXNldERPTVN0cmluZ01hcDo6aXRlbShjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVu
Y2Vfd3JhcHBlcjxjb25zdCBBdG9taWNTdHJpbmc+PiBEYXRhc2V0RE9NU3RyaW5nTWFwOjppdGVt
KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBjb25zdAogewogICAgIGlmIChtX2VsZW1lbnQu
aGFzQXR0cmlidXRlcygpKSB7CiAgICAgICAgIEF0dHJpYnV0ZUl0ZXJhdG9yQWNjZXNzb3IgYXR0
cmlidXRlSXRlcmF0b3JBY2Nlc3NvciA9IG1fZWxlbWVudC5hdHRyaWJ1dGVzSXRlcmF0b3IoKTsK
QEAgLTIxMyw3ICsyMTMsOSBAQCBzdGQ6Om9wdGlvbmFsPGNvbnN0IEF0b21pY1N0cmluZyY+IERh
dGFzZXRET01TdHJpbmdNYXA6Oml0ZW0oY29uc3QgU3RyaW5nJiBwcm9wZQogCiBTdHJpbmcgRGF0
YXNldERPTVN0cmluZ01hcDo6bmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29u
c3QKIHsKLSAgICByZXR1cm4gaXRlbShuYW1lKS52YWx1ZV9vcihTdHJpbmcgeyB9KTsKKyAgICBp
ZiAoYXV0byB2YWx1ZSA9IGl0ZW0obmFtZSkpCisgICAgICAgIHJldHVybiB2YWx1ZS0+Z2V0KCk7
CisgICAgcmV0dXJuIFN0cmluZyB7IH07CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IERhdGFzZXRE
T01TdHJpbmdNYXA6OnNldE5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmlu
Z01hcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaAppbmRleCA0
ODNmNzYzY2MxNmNmOTY0MWJlYTUzZjRkYmU2OWI0ODNiYTFiN2QzLi5kNmQxMGQxMjYxMjJkY2Nj
OTk3ZDk3OGY1ZWEyNTRjMzIyNGZmZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YXNldERPTVN0cmluZ01hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9N
U3RyaW5nTWFwLmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgRGF0YXNldERPTVN0cmluZ01hcCBm
aW5hbCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewogICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7
IHJldHVybiBtX2VsZW1lbnQ7IH0KIAogcHJpdmF0ZToKLSAgICBzdGQ6Om9wdGlvbmFsPGNvbnN0
IEF0b21pY1N0cmluZyY+IGl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKKyAgICBzdGQ6
Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQXRvbWljU3RyaW5nPj4gaXRl
bShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogCiAgICAgRWxlbWVudCYgbV9lbGVtZW50Owog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBhNDMyMzk3ZDcxNzliMTQxZDIwZGY4MGZjYmU0
Njk1M2NiMTg2NDk2Li4yNzNkOGNhZTcyNmFkYWE1NmJlNTUwZTIwYTcwYmFlMjY3MWJhZDVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zNzMzLDcgKzM3MzMsNyBAQCBzdGF0aWMgRXhjZXB0
aW9uT3I8UmVmPEVsZW1lbnQ+PiBjb250ZXh0RWxlbWVudEZvckluc2VydGlvbihjb25zdCBTdHJp
bmcmIHdoZXJlLAogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8vRE9NLVBhcnNpbmcvI2Rv
bS1lbGVtZW50LWluc2VydGFkamFjZW50aHRtbAotRXhjZXB0aW9uT3I8dm9pZD4gRWxlbWVudDo6
aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgbWFy
a3VwLCBzdGQ6Om9wdGlvbmFsPE5vZGVWZWN0b3ImPiBhZGRlZE5vZGVzKQorRXhjZXB0aW9uT3I8
dm9pZD4gRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNv
bnN0IFN0cmluZyYgbWFya3VwLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8
Tm9kZVZlY3Rvcj4+IGFkZGVkTm9kZXMpCiB7CiAgICAgLy8gU3RlcHMgMSBhbmQgMi4KICAgICBh
dXRvIGNvbnRleHRFbGVtZW50ID0gY29udGV4dEVsZW1lbnRGb3JJbnNlcnRpb24od2hlcmUsICp0
aGlzKTsKQEAgLTM3NDcsNyArMzc0Nyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEVsZW1lbnQ6Omlu
c2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmCiAgICAg
aWYgKFVOTElLRUxZKGFkZGVkTm9kZXMpKSB7CiAgICAgICAgIC8vIE11c3QgYmUgY2FsbGVkIGJl
Zm9yZSBpbnNlcnRBZGphY2VudCwgYXMgb3RoZXJ3aXNlIHRoZSBjaGlsZHJlbiBvZiBmcmFnbWVu
dCB3aWxsIGJlIG1vdmVkCiAgICAgICAgIC8vIHRvIHRoZWlyIG5ldyBwYXJlbnQgYW5kIHdpbGwg
YmUgaGFyZGVyIHRvIGtlZXAgdHJhY2sgb2YuCi0gICAgICAgICphZGRlZE5vZGVzID0gY29sbGVj
dENoaWxkTm9kZXMoZnJhZ21lbnQucmV0dXJuVmFsdWUoKSk7CisgICAgICAgIGFkZGVkTm9kZXMt
PmdldCgpID0gY29sbGVjdENoaWxkTm9kZXMoZnJhZ21lbnQucmV0dXJuVmFsdWUoKSk7CiAgICAg
fQogCiAgICAgLy8gU3RlcCA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOWU1MmQzMzE1NTM5OTQ1
NDY1NzAzMjE0MTE3ZDdiMjA2YTNmMmFhMy4uOWFmNDExMzA0ZjRkOTk4YWFiMTFiOTI0YWY5MWQy
MTkwMDA2ZmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zMTQsNyArMzE0LDcgQEAgY2xhc3Mg
RWxlbWVudCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFRhYkluZGV4KGludCk7CiAgICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gZm9jdXNEZWxl
Z2F0ZSgpOwogCi0gICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0
IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgc3RkOjpvcHRpb25hbDxOb2RlVmVj
dG9yJj4gYWRkZWROb2Rlcyk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRI
VE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgc3RkOjpvcHRpb25h
bDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPE5vZGVWZWN0b3I+PiBhZGRlZE5vZGVzKTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPEVsZW1lbnQqPiBpbnNlcnRBZGphY2VudEVsZW1l
bnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVudCYgbmV3Q2hpbGQpOwogICAgIFdFQkNPUkVf
RVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IGluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcm
IHdoZXJlLCBjb25zdCBTdHJpbmcmIGh0bWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcAppbmRleCA4
NGY1ZTJiOTQyYjhhMjFjYzJjNDUwMGZjMzVlMTFkZjA5NWE2NmU4Li41YzI1MzBmM2FkNTg0Yzk1
NjU0ZDg5MGFlOThhZDhiZTM4NzdjOWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcApAQCAtNjks
NyArNjksNyBAQCB2b2lkIEN1cmxGb3JtRGF0YVN0cmVhbTo6Y2xlYW4oKQogICAgIH0KIH0KIAot
c3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8Y2hhcj4mPiBDdXJsRm9ybURhdGFTdHJlYW06Omdl
dFBvc3REYXRhKCkKK3N0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBW
ZWN0b3I8Y2hhcj4+PiBDdXJsRm9ybURhdGFTdHJlYW06OmdldFBvc3REYXRhKCkKIHsKICAgICBp
ZiAoIW1fZm9ybURhdGEpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3Ry
ZWFtLmgKaW5kZXggZDFjYTFhZDVmMDBhNjc2ZmZhZTIwOTYwMjc2N2RiMjZiNTliMDBkMS4uZDMz
ZGY3ODAzM2ExNDU3OWMxZWNiMjViODRlNWRmMDIxN2ExOThmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0u
aApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBDdXJsRm9ybURhdGFTdHJlYW0gewogCiAgICAgc2l6
ZV90IGVsZW1lbnRTaXplKCkgeyByZXR1cm4gbV9mb3JtRGF0YSA/IG1fZm9ybURhdGEtPmVsZW1l
bnRzKCkuc2l6ZSgpIDogMDsgfQogCi0gICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8Y2hh
cj4mPiBnZXRQb3N0RGF0YSgpOworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3Jh
cHBlcjxjb25zdCBWZWN0b3I8Y2hhcj4+PiBnZXRQb3N0RGF0YSgpOwogICAgIGJvb2wgc2hvdWxk
VXNlQ2h1bmtUcmFuc2ZlcigpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbFNpemUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRleCA5NWY3ZTZi
ZGIyOGM4NWZlNjZmMDRlMjc4MDAwNTJkNzQzODllN2FkLi5kNjYxZmNiN2Y5YzA5MzE1M2EwMjQ2
YjhkYTE5MTBlMzNlYzljZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tDRE1GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0
b3J5LmNwcApAQCAtODEsNyArODEsNyBAQCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IE1vY2tD
RE1GYWN0b3J5OjpyZW1vdmVLZXlzRnJvbVNlc3Npb25XaXRoSUQoY29uc3QgU3RyaQogICAgIHJl
dHVybiBXVEZNb3ZlKGl0LT52YWx1ZSk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9y
PFJlZjxTaGFyZWRCdWZmZXI+PiY+IE1vY2tDRE1GYWN0b3J5OjprZXlzRm9yU2Vzc2lvbldpdGhJ
RChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAorc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93
cmFwcGVyPGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+PiBNb2NrQ0RNRmFjdG9yeTo6
a2V5c0ZvclNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCkgY29uc3QKIHsKICAgICBhdXRv
IGl0ID0gbV9zZXNzaW9ucy5maW5kKGlkKTsKICAgICBpZiAoaXQgPT0gbV9zZXNzaW9ucy5lbmQo
KSkKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIE1vY2tDRE1JbnN0YW5jZTo6dXBkYXRlTGljZW5z
ZShjb25zdCBTdHJpbmcmIHNlc3Npb25JRCwgTGljZW5zZVR5cGUsIGNvbnN0CiAKICAgICBzdGQ6
Om9wdGlvbmFsPEtleVN0YXR1c1ZlY3Rvcj4gY2hhbmdlZEtleXM7CiAgICAgaWYgKHJlc3BvbnNl
VmVjdG9yLmNvbnRhaW5zKFN0cmluZyhBU0NJSUxpdGVyYWwoImtleXMtY2hhbmdlZCIpKSkpIHsK
LSAgICAgICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Jj4g
a2V5cyA9IGZhY3RvcnktPmtleXNGb3JTZXNzaW9uV2l0aElEKHNlc3Npb25JRCk7CisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+Pj4ga2V5cyA9IGZhY3RvcnktPmtleXNGb3JTZXNzaW9uV2l0aElEKHNlc3Np
b25JRCk7CiAgICAgICAgIGlmIChrZXlzKSB7CiAgICAgICAgICAgICBLZXlTdGF0dXNWZWN0b3Ig
a2V5U3RhdHVzVmVjdG9yOwogICAgICAgICAgICAga2V5U3RhdHVzVmVjdG9yLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkoa2V5cy0+c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja0NETUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZh
Y3RvcnkuaAppbmRleCAyMzdiMmIzNjQyNjMzMGJjNzVhMDRkZjM1MGUwODFhYjc4ODYxODQzLi4z
ZTZkYjIxZDAxYmNkNWE1MGFmNWU5NzY1MGMzZjE0YjhiNzk2NDhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oCkBAIC03Myw3ICs3Myw3IEBAIGNsYXNzIE1vY2tDRE1G
YWN0b3J5IDogcHVibGljIFJlZkNvdW50ZWQ8TW9ja0NETUZhY3Rvcnk+LCBwcml2YXRlIENETUZh
Y3RvcnkgewogICAgIGJvb2wgaGFzU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKSB7IHJl
dHVybiBtX3Nlc3Npb25zLmNvbnRhaW5zKGlkKTsgfQogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbldp
dGhJRChjb25zdCBTdHJpbmcmIGlkKSB7IG1fc2Vzc2lvbnMucmVtb3ZlKGlkKTsgfQogICAgIHZv
aWQgYWRkS2V5c1RvU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkLCBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+JiYpOwotICAgIHN0ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+PiY+IGtleXNGb3JTZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQpIGNvbnN0
OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8
UmVmPFNoYXJlZEJ1ZmZlcj4+Pj4ga2V5c0ZvclNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBp
ZCkgY29uc3Q7CiAgICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiByZW1vdmVLZXlzRnJvbVNl
c3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKaW5kZXggMWY3NjgwODU2NGVkNGRiNmU1YzBjZTFlYjYz
MDIxMTcxZTkwZWQxYi4uY2I1M2FhZGU2M2UzOWYzMmUyYmY2MjY3OGRlN2MzY2I5NDJkZjM4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaApAQCAtMTIwLDcgKzEyMCw3
IEBAIGNsYXNzIFNhbmRib3hFeHRlbnNpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxTYW5kYm94RXh0
ZW5zaW9uPiB7CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpIYW5kbGUoKSB7IH0K
IGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6On5IYW5kbGUoKSB7IH0KIGlubGluZSB2
b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
IHsgfQotaW5saW5lIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImKSB7IHJldHVybiB7eyB9
fTsgfQoraW5saW5lIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImKSB7IHJldHVybiBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgeyB9OyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXk6OkhhbmRsZUFycmF5KCkgeyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXk6On5IYW5kbGVBcnJheSgpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlQXJyYXk6OmFsbG9jYXRlKHNpemVfdCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0YS5jcHAKaW5kZXggZDAyMjZiYjlhOWVjMWJhZTE4MzVi
YmRkZTEzNDhjMTI4NjZiZDEwMy4uM2NkZWU4MmQwYWRmMzQzNWM4ZWQ5Y2ZjZDdkYmQ0NjM5Zjgx
MDE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvVG91Y2hCYXJNZW51SXRlbURh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNw
cApAQCAtNjUsNyArNjUsNyBAQCBzdGQ6Om9wdGlvbmFsPFRvdWNoQmFyTWVudUl0ZW1EYXRhPiBU
b3VjaEJhck1lbnVJdGVtRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZAogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LnByaW9yaXR5KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICAKLSAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOworICAgIHJldHVybiBzdGQ6Om1h
a2Vfb3B0aW9uYWwoV1RGTW92ZShyZXN1bHQpKTsKIH0KIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339194</attachid>
            <date>2018-05-01 01:07:34 -0700</date>
            <delta_ts>2018-05-01 08:18:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185159-20180501170733.patch</filename>
            <type>text/plain</type>
            <size>18701</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRkNzU5ODBjOWFiNzE5YTJiZTI0YWQx
ODVmYjY2NTdmNjAxMTIyMTMuLmJlMmM4ZTlhYmY5OTQ3ZDU0Y2U2MWU4ZTNiNmI4ZDZjYWE1NDAx
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBp
ZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm93IEMrKzE3IGZsYWcgaXMgZW5hYmxlZC4gSXQgbWVhbnMgdGhhdCBhbnkgc3Rh
bmRhcmQgbGlicmFyaWVzIGNhbiB1c2UgPG9wdGlvbmFsPiBpbnRlcm5hbGx5LgorICAgICAgICBJ
ZiB3ZSBkZWZpbmUgc3RkOjpvcHRpb25hbCByZWdhcmRsZXNzIG9mIHRoZSBleGlzdGVuY2Ugb2Yg
dGhlIHN0YW5kYXJkIGxpYnJhcnkncyA8b3B0aW9uYWw+LAorICAgICAgICBpdCBjYXVzZXMgY29t
cGlsZSBlcnJvcnMuIEZvciBleGFtcGxlLCBpbiBHQ0MgNyAoc3BlY2lmaWNhbGx5IEdDQyA3LjMu
MCkgZW52aXJvbm1lbnQsCisgICAgICAgIDxvcHRpb25hbD4gaXMgaW5jbHVkZWQgaW4gPHVub3Jk
ZXJlZF9tYXA+LgorICAgICAgICBXZSBkbyBub3QgZGVmaW5lIHN0ZDo6b3B0aW9uYWwgaW4gV2Vi
S2l0IHNpZGUgaWYgPG9wdGlvbmFsPiBpcyBvZmZlcmVkLgorCisgICAgICAgIEFuZCB3ZSBhbHNv
IHJlbW92ZSBzdGQ6Om9wdGlvbmFsPFQmPiB1c2Ugc2luY2UgdGhpcyBpcyBub3QgYWNjZXB0ZWQg
aW4gQysrMTcuIFVzZQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8VD4+IGluc3RlYWQuCisKKyAgICAgICAgKiB3dGYvRXhwZWN0ZWQuaDoKKyAgICAgICAgY29u
c3RleHByIGRvZXMgbm90IG1lYW4gY29uc3QgaW4gQysrMTcuCisKKyAgICAgICAgKiB3dGYvT3B0
aW9uYWwuaDoKKyAgICAgICAgRG8gbm90IGRlZmluZSBzdGQ6Om9wdGlvbmFsIGlmIDxvcHRpb25h
bD4gaXMgcHJvdmlkZWQuCisKKyAgICAgICAgKFdURjo6dmFsdWVPckNvbXB1dGUpOgorCiAyMDE4
LTA0LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBseSBQ
dHJUYWdzIHRvIHRoZSBNZXRhQWxsb2NhdG9yIGFuZCBmcmllbmRzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM0
YjU1NDEwZjQ1NzViYTI3MmU0OWQ1ZTQyNTU4NmE1YmRkMTYxM2MuLmZlZmJkZWU2YTMxNWJhOGFm
YWMzOTAwZjFkMWMzMDU3OGQ1OTI4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAx
OC0wNS0wMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFsIGlmIGl0IGlzIHByb3ZpZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUxNTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aWNlU2VydmVyc0Zy
b21Db25maWd1cmF0aW9uKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmg6CisgICAgICAgICogZG9tL0RhdGFzZXRET01TdHJpbmdN
YXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YXNldERPTVN0cmluZ01hcDo6aXRlbSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhc2V0RE9NU3RyaW5nTWFwOjpuYW1lZEl0ZW0gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RGF0YXNldERPTVN0cmluZ01hcC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTCk6CisgICAgICAgICogZG9t
L0VsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRh
U3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxGb3JtRGF0YVN0cmVhbTo6Z2V0UG9z
dERhdGEpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6a2V5c0ZvclNlc3Np
b25XaXRoSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETUluc3RhbmNlOjp1cGRh
dGVMaWNlbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oOgorCiAyMDE4LTA0LTMwICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wcm92ZSB0aGUgcGVyZm9y
bWFuY2Ugb2YgRm9udENhc2NhZGVEZXNjcmlwdGlvbidzIGVmZmVjdGl2ZUZhbWlsaWVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGI2NzY0NjU5MjRmY2I4YTIzZGIyNzY4NDY2ZmZlOTNjNGE1NmJkMWYuLmQwNmJlMmZm
ODY2M2Q2ZjZkN2E2MGY4MmNjNDNkZmZlMjBkNGVjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTgtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
KyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBpZiBpdCBpcyBwcm92aWRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTU5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvU2Fu
ZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6VG91Y2hCYXJNZW51SXRlbURhdGE6OmRlY29kZSk6CisKIDIwMTgt
MDQtMzAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVz
ZSBjb3JyZWN0IHJ1bmxvb3AgdHlwZSBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaCBiL1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVk
LmgKaW5kZXggZGQwNDVlNTk4NzVlNGY0NzY3ZWIyZWIxNzljMWMyNzE5ZTBhZjJlMi4uZTliMGVj
OWY5ZTY0NWVjZWVkZDZmNDBlNDJjZjg5MTQwNTczN2E1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvRXhwZWN0ZWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oCkBAIC01NzMs
NSArNTczLDUgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRT4gdm9pZCBzd2FwKGV4
cGVjdGVkPFQsIEU+JiB4LCBleHBlY3RlZDxULCBFPiYgeSkKIAogfX19IC8vIG5hbWVzcGFjZSBz
dGQ6OmV4cGVyaW1lbnRhbDo6ZnVuZGFtZW50YWxzX3YzCiAKLV9fRVhQRUNURURfSU5MSU5FX1ZB
UklBQkxFIGNvbnN0ZXhwciBzdGQ6OmV4cGVyaW1lbnRhbDo6dW5leHBlY3RlZF90JiB1bmV4cGVj
dCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdDsKK19fRVhQRUNURURfSU5MSU5FX1ZBUklB
QkxFIGNvbnN0ZXhwciBhdXRvJiB1bmV4cGVjdCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVj
dDsKIHRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIEU+IHVzaW5nIEV4cGVjdGVkID0gc3RkOjpleHBl
cmltZW50YWw6OmV4cGVjdGVkPFQsIEU+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3B0
aW9uYWwuaCBiL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKaW5kZXggYTNmYzU4OTA4MzQ1YWMx
YjBhMjI0YmMyZjE3OTg0NjkxNmQ5ZDJkNy4uZGM4NWMwMzkwMThkYjEyZTY4Y2MyMTUzNzRkY2Vi
ZjExNjNiMjVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCkBAIC00Nyw2ICs0NywxNiBAQAogIyBpbmNsdWRlIDx3
dGYvQ29tcGlsZXIuaD4KICMgaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCisjaWYgX19o
YXNfaW5jbHVkZSg8b3B0aW9uYWw+KQorIyBpbmNsdWRlIDxvcHRpb25hbD4KKyNlbmRpZgorCisj
aWYgZGVmaW5lZChfX2NwcF9saWJfb3B0aW9uYWwpICYmIF9fY3BwX2xpYl9vcHRpb25hbCA+PSAy
MDE2MDMKKworLy8gVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbC4KKworI2Vsc2UKKwogIyBkZWZp
bmUgVFIyX09QVElPTkFMX1JFUVVJUkVTKC4uLikgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8X19W
QV9BUkdTX186OnZhbHVlLCBib29sPjo6dHlwZSA9IGZhbHNlCiAKICMgaWYgZGVmaW5lZCBfX0dO
VUNfXyAvLyBOT1RFOiBHTlVDIGlzIGFsc28gZGVmaW5lZCBmb3IgQ2xhbmcKQEAgLTEwMTIsMjAg
KzEwMjIsNiBAQCBjb25zdGV4cHIgb3B0aW9uYWw8WCY+IG1ha2Vfb3B0aW9uYWwoc3RkOjpyZWZl
cmVuY2Vfd3JhcHBlcjxYPiB2KQogCiB9IC8vIG5hbWVzcGFjZSBzdGQKIAotbmFtZXNwYWNlIFdU
RiB7Ci0KLS8vIC0tIFdlYktpdCBBZGRpdGlvbnMgLS0KLXRlbXBsYXRlIDxjbGFzcyBPcHRpb25h
bFR5cGUsIGNsYXNzIENhbGxiYWNrPgotQUxXQVlTX0lOTElORQotYXV0byB2YWx1ZU9yQ29tcHV0
ZShPcHRpb25hbFR5cGUgb3B0aW9uYWwsIENhbGxiYWNrIGNhbGxiYWNrKSAtPiB0eXBlbmFtZSBP
cHRpb25hbFR5cGU6OnZhbHVlX3R5cGUKLXsKLSAgICBpZiAob3B0aW9uYWwpCi0gICAgICAgIHJl
dHVybiAqb3B0aW9uYWw7Ci0gICAgcmV0dXJuIGNhbGxiYWNrKCk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdURgotCiBuYW1lc3BhY2Ugc3RkCiB7CiAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpAQCAt
MTA1NCw0ICsxMDUwLDIwIEBAIG5hbWVzcGFjZSBzdGQKICMgdW5kZWYgVFIyX09QVElPTkFMX1JF
UVVJUkVTCiAjIHVuZGVmIFRSMl9PUFRJT05BTF9BU1NFUlRFRF9FWFBSRVNTSU9OCiAKKyNlbmRp
ZiAvLyBkZWZpbmVkKF9fY3BwX2xpYl9vcHRpb25hbCkKKworbmFtZXNwYWNlIFdURiB7CisKKy8v
IC0tIFdlYktpdCBBZGRpdGlvbnMgLS0KK3RlbXBsYXRlIDxjbGFzcyBPcHRpb25hbFR5cGUsIGNs
YXNzIENhbGxiYWNrPgorQUxXQVlTX0lOTElORQorYXV0byB2YWx1ZU9yQ29tcHV0ZShPcHRpb25h
bFR5cGUgb3B0aW9uYWwsIENhbGxiYWNrIGNhbGxiYWNrKSAtPiB0eXBlbmFtZSBPcHRpb25hbFR5
cGU6OnZhbHVlX3R5cGUKK3sKKyAgICBpZiAob3B0aW9uYWwpCisgICAgICAgIHJldHVybiAqb3B0
aW9uYWw7CisgICAgcmV0dXJuIGNhbGxiYWNrKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgor
CiB1c2luZyBXVEY6OnZhbHVlT3JDb21wdXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA4NTFjOWM4
MmFmNDA5N2VlZDM1ZjYxMGM3YWNmNWQyNWRiZDQ0YjM1Li5mZjQzMjg2MGM4NjU0NmMyOTRkYTI0
MmMxNWJkMjk5NjAwN2IwMDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMzAxLDEyICszMDEsMTIg
QEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cXVldWVkQWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNh
bmRpZGF0ZSogcnRjQ2FuZGlkYXRlLCBET00KIH0KIAogLy8gSW1wbGVtZW50YXRpb24gb2YgaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy8jc2V0LXBjLWNvbmZpZ3VyYXRpb24KLXN0YXRp
YyBpbmxpbmUgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpJ
Y2VTZXJ2ZXJJbmZvPj4gaWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRp
b24mIG5ld0NvbmZpZ3VyYXRpb24sIHN0ZDo6b3B0aW9uYWw8Y29uc3QgUlRDQ29uZmlndXJhdGlv
biY+IGV4aXN0aW5nQ29uZmlndXJhdGlvbiwgYm9vbCBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCitz
dGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPFZlY3RvcjxNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlv
bjo6SWNlU2VydmVySW5mbz4+IGljZVNlcnZlcnNGcm9tQ29uZmlndXJhdGlvbihSVENDb25maWd1
cmF0aW9uJiBuZXdDb25maWd1cmF0aW9uLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dy
YXBwZXI8Y29uc3QgUlRDQ29uZmlndXJhdGlvbj4+IGV4aXN0aW5nQ29uZmlndXJhdGlvbiwgYm9v
bCBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCiB7Ci0gICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlv
biAmJiBuZXdDb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRp
b24tPmJ1bmRsZVBvbGljeSkKKyAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0Nv
bmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5ICE9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi0+Z2V0KCku
YnVuZGxlUG9saWN5KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNh
dGlvbkVycm9yLCAiSWNlVHJhbnNwb3J0UG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBv
bGljeSIgfTsKIAotICAgIGlmIChleGlzdGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29uZmlndXJh
dGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6ZSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmljZUNh
bmRpZGF0ZVBvb2xTaXplICYmIGlzTG9jYWxEZXNjcmlwdGlvblNldCkKKyAgICBpZiAoZXhpc3Rp
bmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUg
IT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5nZXQoKS5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBp
c0xvY2FsRGVzY3JpcHRpb25TZXQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
TW9kaWZpY2F0aW9uRXJyb3IsICJJY2VUcmFuc3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90
IG1hdGNoIGV4aXN0aW5nIHBvb2wgc2l6ZSIgfTsKIAogICAgIFZlY3RvcjxNZWRpYUVuZHBvaW50
Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4gc2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyLmNwcAppbmRleCA5NTRhYjA4MmU5ZTY2M2I2NWJhMTQ1ODY0Yzc2N2Fj
YmQ2N2QzNmQ2Li4zM2Y1MmUxYTY1M2U1YmQzMGZmNjRjZGRmMjAyMGQ3M2JmYTUwZTcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCkBAIC0xNzgsMTQgKzE3OCwxNCBA
QCBDb2xvciBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wg
c3RyaWN0KQogICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZS5jb2xvcigpOwogfQogCi1Db2xvciBD
U1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHN0ZDo6b3B0
aW9uYWw8Y29uc3QgQ1NTUGFyc2VyQ29udGV4dCY+IGNvbnRleHQpCitDb2xvciBDU1NQYXJzZXI6
OnBhcnNlU3lzdGVtQ29sb3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHN0ZDo6b3B0aW9uYWw8c3Rk
OjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBDU1NQYXJzZXJDb250ZXh0Pj4gY29udGV4dCkKIHsK
ICAgICBDU1NWYWx1ZUlEIGlkID0gY3NzVmFsdWVLZXl3b3JkSUQoc3RyaW5nKTsKICAgICBpZiAo
IVN0eWxlQ29sb3I6OmlzU3lzdGVtQ29sb3IoaWQpKQogICAgICAgICByZXR1cm4gQ29sb3IoKTsK
IAogICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zOwotICAgIGlmIChj
b250ZXh0ICYmIGNvbnRleHQudmFsdWUoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKQorICAgIGlmIChj
b250ZXh0ICYmIGNvbnRleHQtPmdldCgpLnVzZVN5c3RlbUFwcGVhcmFuY2UpCiAgICAgICAgIG9w
dGlvbnMgfD0gU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZTsKICAgICBy
ZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLnN5c3RlbUNvbG9yKGlkLCBvcHRpb25zKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oCmluZGV4IGQ5MmZhNWE3NmMzZDBj
NjZkZWNiZTgzOGRhY2M0NGQyNWQ1YjRhYTQuLmFlZTc4ZTU3YTFmNzkzMDdlNDIwMTc3MmQ0MjQ2
OTQ4YjExNTgwYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaApAQCAtNzgs
NyArNzgsNyBAQCBjbGFzcyBDU1NQYXJzZXIgewogICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VW
YWx1ZVdpdGhWYXJpYWJsZVJlZmVyZW5jZXMoQ1NTUHJvcGVydHlJRCwgY29uc3QgQ1NTVmFsdWUm
LCBjb25zdCBDdXN0b21Qcm9wZXJ0eVZhbHVlTWFwJiBjdXN0b21Qcm9wZXJ0aWVzLCBUZXh0RGly
ZWN0aW9uLCBXcml0aW5nTW9kZSk7CiAKICAgICBzdGF0aWMgQ29sb3IgcGFyc2VDb2xvcihjb25z
dCBTdHJpbmcmLCBib29sIHN0cmljdCA9IGZhbHNlKTsKLSAgICBzdGF0aWMgQ29sb3IgcGFyc2VT
eXN0ZW1Db2xvcihjb25zdCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFsPGNvbnN0IENTU1BhcnNlckNv
bnRleHQmPik7CisgICAgc3RhdGljIENvbG9yIHBhcnNlU3lzdGVtQ29sb3IoY29uc3QgU3RyaW5n
Jiwgc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IENTU1BhcnNlckNv
bnRleHQ+Pik7CiAKIHByaXZhdGU6CiAgICAgUGFyc2VSZXN1bHQgcGFyc2VWYWx1ZShNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJiwgQ1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiwgYm9vbCBpbXBv
cnRhbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdN
YXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCmluZGV4
IGYyZDg0MjA3Yjk3YTMzNjQ5NTRkNzMwYTEwYjQ4OGUzZTM4M2M2NDguLjViNTYwZWMwMDFiZDFl
MTg5Y2U1MWEyZDkwNTMzMDE5NGFmOGNiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNl
dERPTVN0cmluZ01hcC5jcHAKQEAgLTE4OCw3ICsxODgsNyBAQCBWZWN0b3I8U3RyaW5nPiBEYXRh
c2V0RE9NU3RyaW5nTWFwOjpzdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkgY29uc3QKICAgICByZXR1
cm4gbmFtZXM7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8Y29uc3QgQXRvbWljU3RyaW5nJj4gRGF0YXNl
dERPTVN0cmluZ01hcDo6aXRlbShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgY29uc3QKK3N0
ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBBdG9taWNTdHJpbmc+PiBE
YXRhc2V0RE9NU3RyaW5nTWFwOjppdGVtKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBjb25z
dAogewogICAgIGlmIChtX2VsZW1lbnQuaGFzQXR0cmlidXRlcygpKSB7CiAgICAgICAgIEF0dHJp
YnV0ZUl0ZXJhdG9yQWNjZXNzb3IgYXR0cmlidXRlSXRlcmF0b3JBY2Nlc3NvciA9IG1fZWxlbWVu
dC5hdHRyaWJ1dGVzSXRlcmF0b3IoKTsKQEAgLTIxMyw3ICsyMTMsOSBAQCBzdGQ6Om9wdGlvbmFs
PGNvbnN0IEF0b21pY1N0cmluZyY+IERhdGFzZXRET01TdHJpbmdNYXA6Oml0ZW0oY29uc3QgU3Ry
aW5nJiBwcm9wZQogCiBTdHJpbmcgRGF0YXNldERPTVN0cmluZ01hcDo6bmFtZWRJdGVtKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKIHsKLSAgICByZXR1cm4gaXRlbShuYW1lKS52YWx1
ZV9vcihTdHJpbmcgeyB9KTsKKyAgICBpZiAoYXV0byB2YWx1ZSA9IGl0ZW0obmFtZSkpCisgICAg
ICAgIHJldHVybiB2YWx1ZS0+Z2V0KCk7CisgICAgcmV0dXJuIFN0cmluZyB7IH07CiB9CiAKIEV4
Y2VwdGlvbk9yPHZvaWQ+IERhdGFzZXRET01TdHJpbmdNYXA6OnNldE5hbWVkSXRlbShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFz
ZXRET01TdHJpbmdNYXAuaAppbmRleCA0ODNmNzYzY2MxNmNmOTY0MWJlYTUzZjRkYmU2OWI0ODNi
YTFiN2QzLi5kNmQxMGQxMjYxMjJkY2NjOTk3ZDk3OGY1ZWEyNTRjMzIyNGZmZjM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xh
c3MgRGF0YXNldERPTVN0cmluZ01hcCBmaW5hbCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewog
ICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQ7IH0KIAogcHJpdmF0ZToK
LSAgICBzdGQ6Om9wdGlvbmFsPGNvbnN0IEF0b21pY1N0cmluZyY+IGl0ZW0oY29uc3QgU3RyaW5n
JiBuYW1lKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8
Y29uc3QgQXRvbWljU3RyaW5nPj4gaXRlbShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogCiAg
ICAgRWxlbWVudCYgbV9lbGVtZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBhNDMy
Mzk3ZDcxNzliMTQxZDIwZGY4MGZjYmU0Njk1M2NiMTg2NDk2Li4yNzNkOGNhZTcyNmFkYWE1NmJl
NTUwZTIwYTcwYmFlMjY3MWJhZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zNzMzLDcg
KzM3MzMsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEVsZW1lbnQ+PiBjb250ZXh0RWxlbWVu
dEZvckluc2VydGlvbihjb25zdCBTdHJpbmcmIHdoZXJlLAogfQogCiAvLyBodHRwczovL3czYy5n
aXRodWIuaW8vRE9NLVBhcnNpbmcvI2RvbS1lbGVtZW50LWluc2VydGFkamFjZW50aHRtbAotRXhj
ZXB0aW9uT3I8dm9pZD4gRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYg
d2hlcmUsIGNvbnN0IFN0cmluZyYgbWFya3VwLCBzdGQ6Om9wdGlvbmFsPE5vZGVWZWN0b3ImPiBh
ZGRlZE5vZGVzKQorRXhjZXB0aW9uT3I8dm9pZD4gRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1M
KGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgbWFya3VwLCBzdGQ6Om9wdGlvbmFs
PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Tm9kZVZlY3Rvcj4+IGFkZGVkTm9kZXMpCiB7CiAgICAg
Ly8gU3RlcHMgMSBhbmQgMi4KICAgICBhdXRvIGNvbnRleHRFbGVtZW50ID0gY29udGV4dEVsZW1l
bnRGb3JJbnNlcnRpb24od2hlcmUsICp0aGlzKTsKQEAgLTM3NDcsNyArMzc0Nyw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IEVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdo
ZXJlLCBjb25zdCBTdHJpbmcmCiAgICAgaWYgKFVOTElLRUxZKGFkZGVkTm9kZXMpKSB7CiAgICAg
ICAgIC8vIE11c3QgYmUgY2FsbGVkIGJlZm9yZSBpbnNlcnRBZGphY2VudCwgYXMgb3RoZXJ3aXNl
IHRoZSBjaGlsZHJlbiBvZiBmcmFnbWVudCB3aWxsIGJlIG1vdmVkCiAgICAgICAgIC8vIHRvIHRo
ZWlyIG5ldyBwYXJlbnQgYW5kIHdpbGwgYmUgaGFyZGVyIHRvIGtlZXAgdHJhY2sgb2YuCi0gICAg
ICAgICphZGRlZE5vZGVzID0gY29sbGVjdENoaWxkTm9kZXMoZnJhZ21lbnQucmV0dXJuVmFsdWUo
KSk7CisgICAgICAgIGFkZGVkTm9kZXMtPmdldCgpID0gY29sbGVjdENoaWxkTm9kZXMoZnJhZ21l
bnQucmV0dXJuVmFsdWUoKSk7CiAgICAgfQogCiAgICAgLy8gU3RlcCA0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKaW5kZXggOWU1MmQzMzE1NTM5OTQ1NDY1NzAzMjE0MTE3ZDdiMjA2YTNmMmFhMy4uOWFmNDEx
MzA0ZjRkOTk4YWFiMTFiOTI0YWY5MWQyMTkwMDA2ZmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBA
IC0zMTQsNyArMzE0LDcgQEAgY2xhc3MgRWxlbWVudCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRhYkluZGV4KGludCk7CiAgICAgdmlydHVhbCBS
ZWZQdHI8RWxlbWVudD4gZm9jdXNEZWxlZ2F0ZSgpOwogCi0gICAgRXhjZXB0aW9uT3I8dm9pZD4g
aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRt
bCwgc3RkOjpvcHRpb25hbDxOb2RlVmVjdG9yJj4gYWRkZWROb2Rlcyk7CisgICAgRXhjZXB0aW9u
T3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0
cmluZyYgaHRtbCwgc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPE5vZGVWZWN0
b3I+PiBhZGRlZE5vZGVzKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPEVsZW1l
bnQqPiBpbnNlcnRBZGphY2VudEVsZW1lbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVudCYg
bmV3Q2hpbGQpOwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IGluc2VydEFk
amFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIGh0bWwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0
YVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZv
cm1EYXRhU3RyZWFtLmNwcAppbmRleCA4NGY1ZTJiOTQyYjhhMjFjYzJjNDUwMGZjMzVlMTFkZjA5
NWE2NmU4Li41YzI1MzBmM2FkNTg0Yzk1NjU0ZDg5MGFlOThhZDhiZTM4NzdjOWE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3Ry
ZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZv
cm1EYXRhU3RyZWFtLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIEN1cmxGb3JtRGF0YVN0cmVh
bTo6Y2xlYW4oKQogICAgIH0KIH0KIAotc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8Y2hhcj4m
PiBDdXJsRm9ybURhdGFTdHJlYW06OmdldFBvc3REYXRhKCkKK3N0ZDo6b3B0aW9uYWw8c3RkOjpy
ZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8Y2hhcj4+PiBDdXJsRm9ybURhdGFTdHJlYW06
OmdldFBvc3REYXRhKCkKIHsKICAgICBpZiAoIW1fZm9ybURhdGEpCiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmgKaW5kZXggZDFjYTFhZDVmMDBhNjc2ZmZhZTIw
OTYwMjc2N2RiMjZiNTliMDBkMS4uZDMzZGY3ODAzM2ExNDU3OWMxZWNiMjViODRlNWRmMDIxN2Ex
OThmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxGb3JtRGF0YVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsRm9ybURhdGFTdHJlYW0uaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBDdXJsRm9y
bURhdGFTdHJlYW0gewogCiAgICAgc2l6ZV90IGVsZW1lbnRTaXplKCkgeyByZXR1cm4gbV9mb3Jt
RGF0YSA/IG1fZm9ybURhdGEtPmVsZW1lbnRzKCkuc2l6ZSgpIDogMDsgfQogCi0gICAgc3RkOjpv
cHRpb25hbDxjb25zdCBWZWN0b3I8Y2hhcj4mPiBnZXRQb3N0RGF0YSgpOworICAgIHN0ZDo6b3B0
aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8Y2hhcj4+PiBnZXRQb3N0
RGF0YSgpOwogICAgIGJvb2wgc2hvdWxkVXNlQ2h1bmtUcmFuc2ZlcigpOwogICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyB0b3RhbFNpemUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1G
YWN0b3J5LmNwcAppbmRleCA5NWY3ZTZiZGIyOGM4NWZlNjZmMDRlMjc4MDAwNTJkNzQzODllN2Fk
Li5kNjYxZmNiN2Y5YzA5MzE1M2EwMjQ2YjhkYTE5MTBlMzNlYzljZmEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcApAQCAtODEsNyArODEsNyBAQCBWZWN0b3I8
UmVmPFNoYXJlZEJ1ZmZlcj4+IE1vY2tDRE1GYWN0b3J5OjpyZW1vdmVLZXlzRnJvbVNlc3Npb25X
aXRoSUQoY29uc3QgU3RyaQogICAgIHJldHVybiBXVEZNb3ZlKGl0LT52YWx1ZSk7CiB9CiAKLXN0
ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiY+IE1vY2tDRE1GYWN0
b3J5OjprZXlzRm9yU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAorc3RkOjpv
cHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVm
ZmVyPj4+PiBNb2NrQ0RNRmFjdG9yeTo6a2V5c0ZvclNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5n
JiBpZCkgY29uc3QKIHsKICAgICBhdXRvIGl0ID0gbV9zZXNzaW9ucy5maW5kKGlkKTsKICAgICBp
ZiAoaXQgPT0gbV9zZXNzaW9ucy5lbmQoKSkKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIE1vY2tD
RE1JbnN0YW5jZTo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmIHNlc3Npb25JRCwgTGljZW5z
ZVR5cGUsIGNvbnN0CiAKICAgICBzdGQ6Om9wdGlvbmFsPEtleVN0YXR1c1ZlY3Rvcj4gY2hhbmdl
ZEtleXM7CiAgICAgaWYgKHJlc3BvbnNlVmVjdG9yLmNvbnRhaW5zKFN0cmluZyhBU0NJSUxpdGVy
YWwoImtleXMtY2hhbmdlZCIpKSkpIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0
b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Jj4ga2V5cyA9IGZhY3RvcnktPmtleXNGb3JTZXNzaW9uV2l0
aElEKHNlc3Npb25JRCk7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3Jh
cHBlcjxjb25zdCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Pj4ga2V5cyA9IGZhY3RvcnktPmtl
eXNGb3JTZXNzaW9uV2l0aElEKHNlc3Npb25JRCk7CiAgICAgICAgIGlmIChrZXlzKSB7CiAgICAg
ICAgICAgICBLZXlTdGF0dXNWZWN0b3Iga2V5U3RhdHVzVmVjdG9yOwogICAgICAgICAgICAga2V5
U3RhdHVzVmVjdG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoa2V5cy0+c2l6ZSgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuaAppbmRleCAyMzdiMmIzNjQyNjMzMGJjNzVh
MDRkZjM1MGUwODFhYjc4ODYxODQzLi4zZTZkYjIxZDAxYmNkNWE1MGFmNWU5NzY1MGMzZjE0Yjhi
Nzk2NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oCkBAIC03Myw3
ICs3Myw3IEBAIGNsYXNzIE1vY2tDRE1GYWN0b3J5IDogcHVibGljIFJlZkNvdW50ZWQ8TW9ja0NE
TUZhY3Rvcnk+LCBwcml2YXRlIENETUZhY3RvcnkgewogICAgIGJvb2wgaGFzU2Vzc2lvbldpdGhJ
RChjb25zdCBTdHJpbmcmIGlkKSB7IHJldHVybiBtX3Nlc3Npb25zLmNvbnRhaW5zKGlkKTsgfQog
ICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKSB7IG1fc2Vzc2lv
bnMucmVtb3ZlKGlkKTsgfQogICAgIHZvaWQgYWRkS2V5c1RvU2Vzc2lvbldpdGhJRChjb25zdCBT
dHJpbmcmIGlkLCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYpOwotICAgIHN0ZDo6b3B0aW9u
YWw8Y29uc3QgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiY+IGtleXNGb3JTZXNzaW9uV2l0aElE
KGNvbnN0IFN0cmluZyYgaWQpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVu
Y2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Pj4ga2V5c0ZvclNlc3Np
b25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCkgY29uc3Q7CiAgICAgVmVjdG9yPFJlZjxTaGFyZWRC
dWZmZXI+PiByZW1vdmVLZXlzRnJvbVNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCk7CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKaW5kZXggMWY3
NjgwODU2NGVkNGRiNmU1YzBjZTFlYjYzMDIxMTcxZTkwZWQxYi4uY2I1M2FhZGU2M2UzOWYzMmUy
YmY2MjY3OGRlN2MzY2I5NDJkZjM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
U2FuZGJveEV4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRl
bnNpb24uaApAQCAtMTIwLDcgKzEyMCw3IEBAIGNsYXNzIFNhbmRib3hFeHRlbnNpb24gOiBwdWJs
aWMgUmVmQ291bnRlZDxTYW5kYm94RXh0ZW5zaW9uPiB7CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlOjpIYW5kbGUoKSB7IH0KIGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6
On5IYW5kbGUoKSB7IH0KIGlubGluZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0IHsgfQotaW5saW5lIHN0ZDo6b3B0aW9uYWw8U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlPiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6
OkRlY29kZXImKSB7IHJldHVybiB7eyB9fTsgfQoraW5saW5lIHN0ZDo6b3B0aW9uYWw8U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlPiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6
OkRlY29kZXImKSB7IHJldHVybiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgeyB9OyB9CiBpbmxp
bmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OkhhbmRsZUFycmF5KCkgeyB9CiBpbmxp
bmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6On5IYW5kbGVBcnJheSgpIHsgfQogaW5s
aW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmFsbG9jYXRlKHNpemVfdCkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0YS5jcHAKaW5k
ZXggZDAyMjZiYjlhOWVjMWJhZTE4MzViYmRkZTEzNDhjMTI4NjZiZDEwMy4uM2NkZWU4MmQwYWRm
MzQzNWM4ZWQ5Y2ZjZDdkYmQ0NjM5ZjgxMDE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvVG91Y2hCYXJNZW51SXRlbURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcApAQCAtNjUsNyArNjUsNyBAQCBzdGQ6Om9wdGlvbmFs
PFRvdWNoQmFyTWVudUl0ZW1EYXRhPiBUb3VjaEJhck1lbnVJdGVtRGF0YTo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnByaW9yaXR5KSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAKLSAgICByZXR1cm4gV1RGTW92ZShyZXN1
bHQpOworICAgIHJldHVybiBzdGQ6Om1ha2Vfb3B0aW9uYWwoV1RGTW92ZShyZXN1bHQpKTsKIH0K
IAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339197</attachid>
            <date>2018-05-01 08:18:44 -0700</date>
            <delta_ts>2018-05-03 17:03:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185159-20180502001843.patch</filename>
            <type>text/plain</type>
            <size>21595</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRkNzU5ODBjOWFiNzE5YTJiZTI0YWQx
ODVmYjY2NTdmNjAxMTIyMTMuLmJlMmM4ZTlhYmY5OTQ3ZDU0Y2U2MWU4ZTNiNmI4ZDZjYWE1NDAx
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBp
ZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm93IEMrKzE3IGZsYWcgaXMgZW5hYmxlZC4gSXQgbWVhbnMgdGhhdCBhbnkgc3Rh
bmRhcmQgbGlicmFyaWVzIGNhbiB1c2UgPG9wdGlvbmFsPiBpbnRlcm5hbGx5LgorICAgICAgICBJ
ZiB3ZSBkZWZpbmUgc3RkOjpvcHRpb25hbCByZWdhcmRsZXNzIG9mIHRoZSBleGlzdGVuY2Ugb2Yg
dGhlIHN0YW5kYXJkIGxpYnJhcnkncyA8b3B0aW9uYWw+LAorICAgICAgICBpdCBjYXVzZXMgY29t
cGlsZSBlcnJvcnMuIEZvciBleGFtcGxlLCBpbiBHQ0MgNyAoc3BlY2lmaWNhbGx5IEdDQyA3LjMu
MCkgZW52aXJvbm1lbnQsCisgICAgICAgIDxvcHRpb25hbD4gaXMgaW5jbHVkZWQgaW4gPHVub3Jk
ZXJlZF9tYXA+LgorICAgICAgICBXZSBkbyBub3QgZGVmaW5lIHN0ZDo6b3B0aW9uYWwgaW4gV2Vi
S2l0IHNpZGUgaWYgPG9wdGlvbmFsPiBpcyBvZmZlcmVkLgorCisgICAgICAgIEFuZCB3ZSBhbHNv
IHJlbW92ZSBzdGQ6Om9wdGlvbmFsPFQmPiB1c2Ugc2luY2UgdGhpcyBpcyBub3QgYWNjZXB0ZWQg
aW4gQysrMTcuIFVzZQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8VD4+IGluc3RlYWQuCisKKyAgICAgICAgKiB3dGYvRXhwZWN0ZWQuaDoKKyAgICAgICAgY29u
c3RleHByIGRvZXMgbm90IG1lYW4gY29uc3QgaW4gQysrMTcuCisKKyAgICAgICAgKiB3dGYvT3B0
aW9uYWwuaDoKKyAgICAgICAgRG8gbm90IGRlZmluZSBzdGQ6Om9wdGlvbmFsIGlmIDxvcHRpb25h
bD4gaXMgcHJvdmlkZWQuCisKKyAgICAgICAgKFdURjo6dmFsdWVPckNvbXB1dGUpOgorCiAyMDE4
LTA0LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBseSBQ
dHJUYWdzIHRvIHRoZSBNZXRhQWxsb2NhdG9yIGFuZCBmcmllbmRzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM0
YjU1NDEwZjQ1NzViYTI3MmU0OWQ1ZTQyNTU4NmE1YmRkMTYxM2MuLjYwMzI2MDU5Y2RhMDg5NWM5
MzdlZjNiMWI4MjRkYTk5YmM3MDEwZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAx
OC0wNS0wMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFsIGlmIGl0IGlzIHByb3ZpZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUxNTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aWNlU2VydmVyc0Zy
b21Db25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpz
ZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmg6CisgICAgICAgICogZG9tL0RhdGFzZXRET01TdHJpbmdN
YXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YXNldERPTVN0cmluZ01hcDo6aXRlbSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhc2V0RE9NU3RyaW5nTWFwOjpuYW1lZEl0ZW0gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RGF0YXNldERPTVN0cmluZ01hcC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTCk6CisgICAgICAgICogZG9t
L0VsZW1lbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvRE9NRWRpdG9yLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkN1cmxGb3JtRGF0YVN0cmVhbTo6Z2V0UG9zdERhdGEpOgorICAgICAgICAoKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3Ry
ZWFtLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6a2V5c0ZvclNlc3Npb25XaXRoSUQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0NETUluc3RhbmNlOjp1cGRhdGVMaWNlbnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5oOgorCiAyMDE4LTA0LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgSW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugb2YgRm9udENhc2NhZGVE
ZXNjcmlwdGlvbidzIGVmZmVjdGl2ZUZhbWlsaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI2NzY0NjU5MjRmY2I4
YTIzZGIyNzY4NDY2ZmZlOTNjNGE1NmJkMWYuLmQwNmJlMmZmODY2M2Q2ZjZkN2E2MGY4MmNjNDNk
ZmZlMjBkNGVjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMDUtMDEgIFl1c3Vr
ZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQg
c3RkOjpvcHRpb25hbCBpZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oOgorICAg
ICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VG91
Y2hCYXJNZW51SXRlbURhdGE6OmRlY29kZSk6CisKIDIwMTgtMDQtMzAgIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBjb3JyZWN0IHJ1bmxvb3AgdHlw
ZSBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
RXhwZWN0ZWQuaCBiL1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVkLmgKaW5kZXggZGQwNDVlNTk4NzVl
NGY0NzY3ZWIyZWIxNzljMWMyNzE5ZTBhZjJlMi4uZTliMGVjOWY5ZTY0NWVjZWVkZDZmNDBlNDJj
Zjg5MTQwNTczN2E1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oCkBAIC01NzMsNSArNTczLDUgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgRT4gdm9pZCBzd2FwKGV4cGVjdGVkPFQsIEU+JiB4LCBleHBl
Y3RlZDxULCBFPiYgeSkKIAogfX19IC8vIG5hbWVzcGFjZSBzdGQ6OmV4cGVyaW1lbnRhbDo6ZnVu
ZGFtZW50YWxzX3YzCiAKLV9fRVhQRUNURURfSU5MSU5FX1ZBUklBQkxFIGNvbnN0ZXhwciBzdGQ6
OmV4cGVyaW1lbnRhbDo6dW5leHBlY3RlZF90JiB1bmV4cGVjdCA9IHN0ZDo6ZXhwZXJpbWVudGFs
Ojp1bmV4cGVjdDsKK19fRVhQRUNURURfSU5MSU5FX1ZBUklBQkxFIGNvbnN0ZXhwciBhdXRvJiB1
bmV4cGVjdCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdDsKIHRlbXBsYXRlPGNsYXNzIFQs
IGNsYXNzIEU+IHVzaW5nIEV4cGVjdGVkID0gc3RkOjpleHBlcmltZW50YWw6OmV4cGVjdGVkPFQs
IEU+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaCBiL1NvdXJjZS9XVEYv
d3RmL09wdGlvbmFsLmgKaW5kZXggYTNmYzU4OTA4MzQ1YWMxYjBhMjI0YmMyZjE3OTg0NjkxNmQ5
ZDJkNy4uZGM4NWMwMzkwMThkYjEyZTY4Y2MyMTUzNzRkY2ViZjExNjNiMjVmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25h
bC5oCkBAIC00Nyw2ICs0NywxNiBAQAogIyBpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KICMgaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8b3B0aW9uYWw+
KQorIyBpbmNsdWRlIDxvcHRpb25hbD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX2NwcF9saWJf
b3B0aW9uYWwpICYmIF9fY3BwX2xpYl9vcHRpb25hbCA+PSAyMDE2MDMKKworLy8gVXNlIGRlZmF1
bHQgc3RkOjpvcHRpb25hbC4KKworI2Vsc2UKKwogIyBkZWZpbmUgVFIyX09QVElPTkFMX1JFUVVJ
UkVTKC4uLikgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8X19WQV9BUkdTX186OnZhbHVlLCBib29s
Pjo6dHlwZSA9IGZhbHNlCiAKICMgaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBOT1RFOiBHTlVDIGlz
IGFsc28gZGVmaW5lZCBmb3IgQ2xhbmcKQEAgLTEwMTIsMjAgKzEwMjIsNiBAQCBjb25zdGV4cHIg
b3B0aW9uYWw8WCY+IG1ha2Vfb3B0aW9uYWwoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxYPiB2KQog
CiB9IC8vIG5hbWVzcGFjZSBzdGQKIAotbmFtZXNwYWNlIFdURiB7Ci0KLS8vIC0tIFdlYktpdCBB
ZGRpdGlvbnMgLS0KLXRlbXBsYXRlIDxjbGFzcyBPcHRpb25hbFR5cGUsIGNsYXNzIENhbGxiYWNr
PgotQUxXQVlTX0lOTElORQotYXV0byB2YWx1ZU9yQ29tcHV0ZShPcHRpb25hbFR5cGUgb3B0aW9u
YWwsIENhbGxiYWNrIGNhbGxiYWNrKSAtPiB0eXBlbmFtZSBPcHRpb25hbFR5cGU6OnZhbHVlX3R5
cGUKLXsKLSAgICBpZiAob3B0aW9uYWwpCi0gICAgICAgIHJldHVybiAqb3B0aW9uYWw7Ci0gICAg
cmV0dXJuIGNhbGxiYWNrKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCiBuYW1lc3BhY2Ug
c3RkCiB7CiAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpAQCAtMTA1NCw0ICsxMDUwLDIwIEBAIG5h
bWVzcGFjZSBzdGQKICMgdW5kZWYgVFIyX09QVElPTkFMX1JFUVVJUkVTCiAjIHVuZGVmIFRSMl9P
UFRJT05BTF9BU1NFUlRFRF9FWFBSRVNTSU9OCiAKKyNlbmRpZiAvLyBkZWZpbmVkKF9fY3BwX2xp
Yl9vcHRpb25hbCkKKworbmFtZXNwYWNlIFdURiB7CisKKy8vIC0tIFdlYktpdCBBZGRpdGlvbnMg
LS0KK3RlbXBsYXRlIDxjbGFzcyBPcHRpb25hbFR5cGUsIGNsYXNzIENhbGxiYWNrPgorQUxXQVlT
X0lOTElORQorYXV0byB2YWx1ZU9yQ29tcHV0ZShPcHRpb25hbFR5cGUgb3B0aW9uYWwsIENhbGxi
YWNrIGNhbGxiYWNrKSAtPiB0eXBlbmFtZSBPcHRpb25hbFR5cGU6OnZhbHVlX3R5cGUKK3sKKyAg
ICBpZiAob3B0aW9uYWwpCisgICAgICAgIHJldHVybiAqb3B0aW9uYWw7CisgICAgcmV0dXJuIGNh
bGxiYWNrKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiB1c2luZyBXVEY6OnZhbHVlT3JD
b21wdXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA4NTFjOWM4MmFmNDA5N2VlZDM1ZjYxMGM3YWNm
NWQyNWRiZDQ0YjM1Li41MzZjNTUyNmEyOGI1NjdiMDVmMDVmYzU3Y2MyYWNkNTBmN2ZiZTcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmNwcApAQCAtMzAxLDEyICszMDEsMTIgQEAgdm9pZCBSVENQZWVyQ29ubmVj
dGlvbjo6cXVldWVkQWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSogcnRjQ2FuZGlkYXRl
LCBET00KIH0KIAogLy8gSW1wbGVtZW50YXRpb24gb2YgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dl
YnJ0Yy1wYy8jc2V0LXBjLWNvbmZpZ3VyYXRpb24KLXN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8
VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gaWNlU2Vy
dmVyc0Zyb21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mIG5ld0NvbmZpZ3VyYXRpb24s
IHN0ZDo6b3B0aW9uYWw8Y29uc3QgUlRDQ29uZmlndXJhdGlvbiY+IGV4aXN0aW5nQ29uZmlndXJh
dGlvbiwgYm9vbCBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCitzdGF0aWMgaW5saW5lIEV4Y2VwdGlv
bk9yPFZlY3RvcjxNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4+IGlj
ZVNlcnZlcnNGcm9tQ29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiBuZXdDb25maWd1cmF0
aW9uLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgUlRDQ29uZmln
dXJhdGlvbj4+IGV4aXN0aW5nQ29uZmlndXJhdGlvbiwgYm9vbCBpc0xvY2FsRGVzY3JpcHRpb25T
ZXQpCiB7Ci0gICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9u
LmJ1bmRsZVBvbGljeSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmJ1bmRsZVBvbGljeSkKKyAg
ICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uYnVuZGxlUG9s
aWN5ICE9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi0+Z2V0KCkuYnVuZGxlUG9saWN5KQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiSWNlVHJhbnNw
b3J0UG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvbGljeSIgfTsKIAotICAgIGlmIChl
eGlzdGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29uZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29s
U2l6ZSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmljZUNhbmRpZGF0ZVBvb2xTaXplICYmIGlz
TG9jYWxEZXNjcmlwdGlvblNldCkKKyAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5l
d0NvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUgIT0gZXhpc3RpbmdDb25maWd1cmF0
aW9uLT5nZXQoKS5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBpc0xvY2FsRGVzY3JpcHRpb25TZXQp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJJ
Y2VUcmFuc3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvb2wg
c2l6ZSIgfTsKIAogICAgIFZlY3RvcjxNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2Vy
dmVySW5mbz4gc2VydmVyczsKQEAgLTM2MCw3ICszNjAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBS
VENQZWVyQ29ubmVjdGlvbjo6c2V0Q29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiYgY29u
ZmlndQogCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiAKLSAgICBhdXRvIHNlcnZlcnMg
PSBpY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbiwgbV9jb25maWd1cmF0
aW9uLCBtX2JhY2tlbmQtPmlzTG9jYWxEZXNjcmlwdGlvblNldCgpKTsKKyAgICBhdXRvIHNlcnZl
cnMgPSBpY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbiwgc3RkOjpjcmVm
KG1fY29uZmlndXJhdGlvbiksIG1fYmFja2VuZC0+aXNMb2NhbERlc2NyaXB0aW9uU2V0KCkpOwog
ICAgIGlmIChzZXJ2ZXJzLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gc2VydmVycy5y
ZWxlYXNlRXhjZXB0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cAppbmRleCA5NTRhYjA4MmU5ZTY2M2I2NWJhMTQ1ODY0Yzc2N2FjYmQ2N2QzNmQ2Li4zM2Y1MmUx
YTY1M2U1YmQzMGZmNjRjZGRmMjAyMGQ3M2JmYTUwZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXIuY3BwCkBAIC0xNzgsMTQgKzE3OCwxNCBAQCBDb2xvciBDU1NQYXJzZXI6
OnBhcnNlQ29sb3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgc3RyaWN0KQogICAgIHJldHVy
biBwcmltaXRpdmVWYWx1ZS5jb2xvcigpOwogfQogCi1Db2xvciBDU1NQYXJzZXI6OnBhcnNlU3lz
dGVtQ29sb3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHN0ZDo6b3B0aW9uYWw8Y29uc3QgQ1NTUGFy
c2VyQ29udGV4dCY+IGNvbnRleHQpCitDb2xvciBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3Io
Y29uc3QgU3RyaW5nJiBzdHJpbmcsIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBl
cjxjb25zdCBDU1NQYXJzZXJDb250ZXh0Pj4gY29udGV4dCkKIHsKICAgICBDU1NWYWx1ZUlEIGlk
ID0gY3NzVmFsdWVLZXl3b3JkSUQoc3RyaW5nKTsKICAgICBpZiAoIVN0eWxlQ29sb3I6OmlzU3lz
dGVtQ29sb3IoaWQpKQogICAgICAgICByZXR1cm4gQ29sb3IoKTsKIAogICAgIE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zOwotICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQu
dmFsdWUoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKQorICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQt
PmdldCgpLnVzZVN5c3RlbUFwcGVhcmFuY2UpCiAgICAgICAgIG9wdGlvbnMgfD0gU3R5bGVDb2xv
cjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZTsKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6
OnNpbmdsZXRvbigpLnN5c3RlbUNvbG9yKGlkLCBvcHRpb25zKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlci5oCmluZGV4IGQ5MmZhNWE3NmMzZDBjNjZkZWNiZTgzOGRhY2M0NGQy
NWQ1YjRhYTQuLmFlZTc4ZTU3YTFmNzkzMDdlNDIwMTc3MmQ0MjQ2OTQ4YjExNTgwYmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaApAQCAtNzgsNyArNzgsNyBAQCBjbGFzcyBD
U1NQYXJzZXIgewogICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VWYWx1ZVdpdGhWYXJpYWJsZVJl
ZmVyZW5jZXMoQ1NTUHJvcGVydHlJRCwgY29uc3QgQ1NTVmFsdWUmLCBjb25zdCBDdXN0b21Qcm9w
ZXJ0eVZhbHVlTWFwJiBjdXN0b21Qcm9wZXJ0aWVzLCBUZXh0RGlyZWN0aW9uLCBXcml0aW5nTW9k
ZSk7CiAKICAgICBzdGF0aWMgQ29sb3IgcGFyc2VDb2xvcihjb25zdCBTdHJpbmcmLCBib29sIHN0
cmljdCA9IGZhbHNlKTsKLSAgICBzdGF0aWMgQ29sb3IgcGFyc2VTeXN0ZW1Db2xvcihjb25zdCBT
dHJpbmcmLCBzdGQ6Om9wdGlvbmFsPGNvbnN0IENTU1BhcnNlckNvbnRleHQmPik7CisgICAgc3Rh
dGljIENvbG9yIHBhcnNlU3lzdGVtQ29sb3IoY29uc3QgU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxz
dGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IENTU1BhcnNlckNvbnRleHQ+Pik7CiAKIHByaXZh
dGU6CiAgICAgUGFyc2VSZXN1bHQgcGFyc2VWYWx1ZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiwg
Q1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiwgYm9vbCBpbXBvcnRhbnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCmluZGV4IGYyZDg0MjA3Yjk3YTMzNjQ5
NTRkNzMwYTEwYjQ4OGUzZTM4M2M2NDguLjhlODZhZWVmZTVkYzc4ODUzNzdmYWNjOTJmNmNkYzVj
NTU1MTIyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5n
TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAK
QEAgLTE4OCw3ICsxODgsNyBAQCBWZWN0b3I8U3RyaW5nPiBEYXRhc2V0RE9NU3RyaW5nTWFwOjpz
dXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkgY29uc3QKICAgICByZXR1cm4gbmFtZXM7CiB9CiAKLXN0
ZDo6b3B0aW9uYWw8Y29uc3QgQXRvbWljU3RyaW5nJj4gRGF0YXNldERPTVN0cmluZ01hcDo6aXRl
bShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8c3RkOjpy
ZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBBdG9taWNTdHJpbmc+PiBEYXRhc2V0RE9NU3RyaW5nTWFw
OjppdGVtKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBjb25zdAogewogICAgIGlmIChtX2Vs
ZW1lbnQuaGFzQXR0cmlidXRlcygpKSB7CiAgICAgICAgIEF0dHJpYnV0ZUl0ZXJhdG9yQWNjZXNz
b3IgYXR0cmlidXRlSXRlcmF0b3JBY2Nlc3NvciA9IG1fZWxlbWVudC5hdHRyaWJ1dGVzSXRlcmF0
b3IoKTsKQEAgLTE5OCwxMiArMTk4LDEyIEBAIHN0ZDo6b3B0aW9uYWw8Y29uc3QgQXRvbWljU3Ry
aW5nJj4gRGF0YXNldERPTVN0cmluZ01hcDo6aXRlbShjb25zdCBTdHJpbmcmIHByb3BlCiAgICAg
ICAgICAgICAvLyBCdWlsZGluZyBhIG5ldyBBdG9taWNTdHJpbmcgaW4gdGhhdCBjYXNlIGlzIG92
ZXJraWxsIHNvIHdlIGRvIGEgZGlyZWN0IGNoYXJhY3RlciBjb21wYXJpc29uLgogICAgICAgICAg
ICAgY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUgPSAqYXR0cmlidXRlSXRlcmF0b3JBY2Nlc3Nv
ci5iZWdpbigpOwogICAgICAgICAgICAgaWYgKHByb3BlcnR5TmFtZU1hdGNoZXNBdHRyaWJ1dGVO
YW1lKHByb3BlcnR5TmFtZSwgYXR0cmlidXRlLmxvY2FsTmFtZSgpKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gYXR0cmlidXRlLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
Y3JlZihhdHRyaWJ1dGUudmFsdWUoKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBB
dG9taWNTdHJpbmcgYXR0cmlidXRlTmFtZSA9IGNvbnZlcnRQcm9wZXJ0eU5hbWVUb0F0dHJpYnV0
ZU5hbWUocHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgQXR0cmlidXRlJiBh
dHRyaWJ1dGUgOiBhdHRyaWJ1dGVJdGVyYXRvckFjY2Vzc29yKSB7CiAgICAgICAgICAgICAgICAg
aWYgKGF0dHJpYnV0ZS5sb2NhbE5hbWUoKSA9PSBhdHRyaWJ1dGVOYW1lKQotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYXR0cmlidXRlLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBzdGQ6OmNyZWYoYXR0cmlidXRlLnZhbHVlKCkpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQpAQCAtMjEzLDcgKzIxMyw5IEBAIHN0ZDo6b3B0aW9uYWw8Y29uc3QgQXRvbWlj
U3RyaW5nJj4gRGF0YXNldERPTVN0cmluZ01hcDo6aXRlbShjb25zdCBTdHJpbmcmIHByb3BlCiAK
IFN0cmluZyBEYXRhc2V0RE9NU3RyaW5nTWFwOjpuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lKSBjb25zdAogewotICAgIHJldHVybiBpdGVtKG5hbWUpLnZhbHVlX29yKFN0cmluZyB7
IH0pOworICAgIGlmIChhdXRvIHZhbHVlID0gaXRlbShuYW1lKSkKKyAgICAgICAgcmV0dXJuIHZh
bHVlLT5nZXQoKTsKKyAgICByZXR1cm4gU3RyaW5nIHsgfTsKIH0KIAogRXhjZXB0aW9uT3I8dm9p
ZD4gRGF0YXNldERPTVN0cmluZ01hcDo6c2V0TmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
c2V0RE9NU3RyaW5nTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01h
cC5oCmluZGV4IDQ4M2Y3NjNjYzE2Y2Y5NjQxYmVhNTNmNGRiZTY5YjQ4M2JhMWI3ZDMuLmQ2ZDEw
ZDEyNjEyMmRjY2M5OTdkOTc4ZjVlYTI1NGMzMjI0ZmZmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFzZXRET01TdHJpbmdNYXAuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBEYXRhc2V0RE9N
U3RyaW5nTWFwIGZpbmFsIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CiAgICAgRWxlbWVudCYg
ZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudDsgfQogCiBwcml2YXRlOgotICAgIHN0ZDo6b3B0
aW9uYWw8Y29uc3QgQXRvbWljU3RyaW5nJj4gaXRlbShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0
OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBBdG9taWNT
dHJpbmc+PiBpdGVtKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CiAKICAgICBFbGVtZW50JiBt
X2VsZW1lbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGE0MzIzOTdkNzE3OWIxNDFk
MjBkZjgwZmNiZTQ2OTUzY2IxODY0OTYuLjI3M2Q4Y2FlNzI2YWRhYTU2YmU1NTBlMjBhNzBiYWUy
NjcxYmFkNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTM3MzMsNyArMzczMyw3IEBAIHN0
YXRpYyBFeGNlcHRpb25PcjxSZWY8RWxlbWVudD4+IGNvbnRleHRFbGVtZW50Rm9ySW5zZXJ0aW9u
KGNvbnN0IFN0cmluZyYgd2hlcmUsCiB9CiAKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9ET00t
UGFyc2luZy8jZG9tLWVsZW1lbnQtaW5zZXJ0YWRqYWNlbnRodG1sCi1FeGNlcHRpb25Pcjx2b2lk
PiBFbGVtZW50OjppbnNlcnRBZGphY2VudEhUTUwoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3Qg
U3RyaW5nJiBtYXJrdXAsIHN0ZDo6b3B0aW9uYWw8Tm9kZVZlY3RvciY+IGFkZGVkTm9kZXMpCitF
eGNlcHRpb25Pcjx2b2lkPiBFbGVtZW50OjppbnNlcnRBZGphY2VudEhUTUwoY29uc3QgU3RyaW5n
JiB3aGVyZSwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVu
Y2Vfd3JhcHBlcjxOb2RlVmVjdG9yPj4gYWRkZWROb2RlcykKIHsKICAgICAvLyBTdGVwcyAxIGFu
ZCAyLgogICAgIGF1dG8gY29udGV4dEVsZW1lbnQgPSBjb250ZXh0RWxlbWVudEZvckluc2VydGlv
bih3aGVyZSwgKnRoaXMpOwpAQCAtMzc0Nyw3ICszNzQ3LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
RWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0
cmluZyYKICAgICBpZiAoVU5MSUtFTFkoYWRkZWROb2RlcykpIHsKICAgICAgICAgLy8gTXVzdCBi
ZSBjYWxsZWQgYmVmb3JlIGluc2VydEFkamFjZW50LCBhcyBvdGhlcndpc2UgdGhlIGNoaWxkcmVu
IG9mIGZyYWdtZW50IHdpbGwgYmUgbW92ZWQKICAgICAgICAgLy8gdG8gdGhlaXIgbmV3IHBhcmVu
dCBhbmQgd2lsbCBiZSBoYXJkZXIgdG8ga2VlcCB0cmFjayBvZi4KLSAgICAgICAgKmFkZGVkTm9k
ZXMgPSBjb2xsZWN0Q2hpbGROb2RlcyhmcmFnbWVudC5yZXR1cm5WYWx1ZSgpKTsKKyAgICAgICAg
YWRkZWROb2Rlcy0+Z2V0KCkgPSBjb2xsZWN0Q2hpbGROb2RlcyhmcmFnbWVudC5yZXR1cm5WYWx1
ZSgpKTsKICAgICB9CiAKICAgICAvLyBTdGVwIDQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA5ZTUy
ZDMzMTU1Mzk5NDU0NjU3MDMyMTQxMTdkN2IyMDZhM2YyYWEzLi45YWY0MTEzMDRmNGQ5OThhYWIx
MWI5MjRhZjkxZDIxOTAwMDZmZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTMxNCw3ICszMTQs
NyBAQCBjbGFzcyBFbGVtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUgewogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0VGFiSW5kZXgoaW50KTsKICAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50
PiBmb2N1c0RlbGVnYXRlKCk7CiAKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbnNlcnRBZGphY2Vu
dEhUTUwoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3QgU3RyaW5nJiBodG1sLCBzdGQ6Om9wdGlv
bmFsPE5vZGVWZWN0b3ImPiBhZGRlZE5vZGVzKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbnNl
cnRBZGphY2VudEhUTUwoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3QgU3RyaW5nJiBodG1sLCBz
dGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Tm9kZVZlY3Rvcj4+IGFkZGVkTm9k
ZXMpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8RWxlbWVudCo+IGluc2VydEFk
amFjZW50RWxlbWVudChjb25zdCBTdHJpbmcmIHdoZXJlLCBFbGVtZW50JiBuZXdDaGlsZCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRIVE1MKGNv
bnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9ET01FZGl0b3IuY3BwCmluZGV4IDM0OTNiMDE3Y2EwNmI5ZjI5NzYyMzI3ZmEzMTM1M2Ri
OGY5NTg2OTguLjU5ZWNjZDQwNWMwMzdlZjJhNDQwYzRkNTUxYzljYmNhMTIxYzZhYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01FZGl0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9ET01FZGl0b3IuY3BwCkBAIC0yNjYsNyArMjY2LDcgQEAgY2xh
c3MgRE9NRWRpdG9yOjpJbnNlcnRBZGphY2VudEhUTUxBY3Rpb24gZmluYWwgOiBwdWJsaWMgSW5z
cGVjdG9ySGlzdG9yeTo6QWN0aW8KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlZG8oKSBmaW5h
bAogICAgIHsKLSAgICAgICAgYXV0byByZXN1bHQgPSBtX2VsZW1lbnQtPmluc2VydEFkamFjZW50
SFRNTChtX3Bvc2l0aW9uLCBtX2h0bWwsIG1fYWRkZWROb2Rlcyk7CisgICAgICAgIGF1dG8gcmVz
dWx0ID0gbV9lbGVtZW50LT5pbnNlcnRBZGphY2VudEhUTUwobV9wb3NpdGlvbiwgbV9odG1sLCBz
dGQ6OnJlZihtX2FkZGVkTm9kZXMpKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24o
KSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAg
ICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcAppbmRleCA4NGY1ZTJiOTQyYjhhMjFj
YzJjNDUwMGZjMzVlMTFkZjA5NWE2NmU4Li4yYWQ2YTE4NzI0YjJmYWMwNDI0MDY1NjAxYzUyOWFh
ZjkyYzk4MjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lk
IEN1cmxGb3JtRGF0YVN0cmVhbTo6Y2xlYW4oKQogICAgIH0KIH0KIAotc3RkOjpvcHRpb25hbDxj
b25zdCBWZWN0b3I8Y2hhcj4mPiBDdXJsRm9ybURhdGFTdHJlYW06OmdldFBvc3REYXRhKCkKK3N0
ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8Y2hhcj4+PiBD
dXJsRm9ybURhdGFTdHJlYW06OmdldFBvc3REYXRhKCkKIHsKICAgICBpZiAoIW1fZm9ybURhdGEp
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkBAIC03Nyw3ICs3Nyw3IEBAIHN0ZDo6b3B0
aW9uYWw8Y29uc3QgVmVjdG9yPGNoYXI+Jj4gQ3VybEZvcm1EYXRhU3RyZWFtOjpnZXRQb3N0RGF0
YSgpCiAgICAgaWYgKCFtX3Bvc3REYXRhKQogICAgICAgICBtX3Bvc3REYXRhID0gc3RkOjptYWtl
X3VuaXF1ZTxWZWN0b3I8Y2hhcj4+KG1fZm9ybURhdGEtPmZsYXR0ZW4oKSk7CiAKLSAgICByZXR1
cm4gKm1fcG9zdERhdGE7CisgICAgcmV0dXJuIHN0ZDo6Y3JlZigqbV9wb3N0RGF0YSk7CiB9CiAK
IGJvb2wgQ3VybEZvcm1EYXRhU3RyZWFtOjpzaG91bGRVc2VDaHVua1RyYW5zZmVyKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFT
dHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURh
dGFTdHJlYW0uaAppbmRleCBkMWNhMWFkNWYwMGE2NzZmZmFlMjA5NjAyNzY3ZGIyNmI1OWIwMGQx
Li5kMzNkZjc4MDMzYTE0NTc5YzFlY2IyNWI4NGU1ZGYwMjE3YTE5OGZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0
cmVhbS5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIEN1cmxGb3JtRGF0YVN0cmVhbSB7CiAKICAg
ICBzaXplX3QgZWxlbWVudFNpemUoKSB7IHJldHVybiBtX2Zvcm1EYXRhID8gbV9mb3JtRGF0YS0+
ZWxlbWVudHMoKS5zaXplKCkgOiAwOyB9CiAKLSAgICBzdGQ6Om9wdGlvbmFsPGNvbnN0IFZlY3Rv
cjxjaGFyPiY+IGdldFBvc3REYXRhKCk7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5j
ZV93cmFwcGVyPGNvbnN0IFZlY3RvcjxjaGFyPj4+IGdldFBvc3REYXRhKCk7CiAgICAgYm9vbCBz
aG91bGRVc2VDaHVua1RyYW5zZmVyKCk7CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsU2l6
ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCmluZGV4IDk1
ZjdlNmJkYjI4Yzg1ZmU2NmYwNGUyNzgwMDA1MmQ3NDM4OWU3YWQuLjQ0NWVhOWI1ODc5NzQ4Zjhk
NjBkNjI5ZjkzM2M5M2UwOTk3MDFhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NETUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NE
TUZhY3RvcnkuY3BwCkBAIC04MSwxMiArODEsMTIgQEAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
PiBNb2NrQ0RNRmFjdG9yeTo6cmVtb3ZlS2V5c0Zyb21TZXNzaW9uV2l0aElEKGNvbnN0IFN0cmkK
ICAgICByZXR1cm4gV1RGTW92ZShpdC0+dmFsdWUpOwogfQogCi1zdGQ6Om9wdGlvbmFsPGNvbnN0
IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4mPiBNb2NrQ0RNRmFjdG9yeTo6a2V5c0ZvclNlc3Np
b25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8c3RkOjpyZWZl
cmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Pj4gTW9ja0NETUZh
Y3Rvcnk6OmtleXNGb3JTZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQpIGNvbnN0CiB7CiAg
ICAgYXV0byBpdCA9IG1fc2Vzc2lvbnMuZmluZChpZCk7CiAgICAgaWYgKGl0ID09IG1fc2Vzc2lv
bnMuZW5kKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGl0LT52
YWx1ZTsKKyAgICByZXR1cm4gc3RkOjpjcmVmKGl0LT52YWx1ZSk7CiB9CiAKIHZvaWQgTW9ja0NE
TUZhY3Rvcnk6OnNldFN1cHBvcnRlZERhdGFUeXBlcyhWZWN0b3I8U3RyaW5nPiYmIHR5cGVzKQpA
QCAtMzE0LDExICszMTQsMTEgQEAgdm9pZCBNb2NrQ0RNSW5zdGFuY2U6OnVwZGF0ZUxpY2Vuc2Uo
Y29uc3QgU3RyaW5nJiBzZXNzaW9uSUQsIExpY2Vuc2VUeXBlLCBjb25zdAogCiAgICAgc3RkOjpv
cHRpb25hbDxLZXlTdGF0dXNWZWN0b3I+IGNoYW5nZWRLZXlzOwogICAgIGlmIChyZXNwb25zZVZl
Y3Rvci5jb250YWlucyhTdHJpbmcoQVNDSUlMaXRlcmFsKCJrZXlzLWNoYW5nZWQiKSkpKSB7Ci0g
ICAgICAgIHN0ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiY+IGtl
eXMgPSBmYWN0b3J5LT5rZXlzRm9yU2Vzc2lvbldpdGhJRChzZXNzaW9uSUQpOworICAgICAgICBz
dGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgVmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+Pj4+IGtleXMgPSBmYWN0b3J5LT5rZXlzRm9yU2Vzc2lvbldpdGhJRChzZXNzaW9u
SUQpOwogICAgICAgICBpZiAoa2V5cykgewogICAgICAgICAgICAgS2V5U3RhdHVzVmVjdG9yIGtl
eVN0YXR1c1ZlY3RvcjsKLSAgICAgICAgICAgIGtleVN0YXR1c1ZlY3Rvci5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGtleXMtPnNpemUoKSk7Ci0gICAgICAgICAgICBmb3IgKGF1dG8mIGtleSA6ICpr
ZXlzKQorICAgICAgICAgICAga2V5U3RhdHVzVmVjdG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
a2V5cy0+Z2V0KCkuc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoYXV0byYga2V5IDogKCprZXlz
KS5nZXQoKSkKICAgICAgICAgICAgICAgICBrZXlTdGF0dXNWZWN0b3IudW5jaGVja2VkQXBwZW5k
KHsga2V5LmNvcHlSZWYoKSwgS2V5U3RhdHVzOjpVc2FibGUgfSk7CiAKICAgICAgICAgICAgIGNo
YW5nZWRLZXlzID0gV1RGTW92ZShrZXlTdGF0dXNWZWN0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrQ0RNRmFjdG9yeS5oCmluZGV4IDIzN2IyYjM2NDI2MzMwYmM3NWEwNGRmMzUwZTA4MWFi
Nzg4NjE4NDMuLjNlNmRiMjFkMDFiY2Q1YTUwYWY1ZTk3NjUwYzNmMTRiOGI3OTY0OGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKQEAgLTczLDcgKzczLDcgQEAgY2xh
c3MgTW9ja0NETUZhY3RvcnkgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2NrQ0RNRmFjdG9yeT4sIHBy
aXZhdGUgQ0RNRmFjdG9yeSB7CiAgICAgYm9vbCBoYXNTZXNzaW9uV2l0aElEKGNvbnN0IFN0cmlu
ZyYgaWQpIHsgcmV0dXJuIG1fc2Vzc2lvbnMuY29udGFpbnMoaWQpOyB9CiAgICAgdm9pZCByZW1v
dmVTZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQpIHsgbV9zZXNzaW9ucy5yZW1vdmUoaWQp
OyB9CiAgICAgdm9pZCBhZGRLZXlzVG9TZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQsIFZl
Y3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4mJik7Ci0gICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0
b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Jj4ga2V5c0ZvclNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5n
JiBpZCkgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNv
bnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+PiBrZXlzRm9yU2Vzc2lvbldpdGhJRChjb25z
dCBTdHJpbmcmIGlkKSBjb25zdDsKICAgICBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IHJlbW92
ZUtleXNGcm9tU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKTsKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAppbmRleCAxZjc2ODA4NTY0ZWQ0ZGI2
ZTVjMGNlMWViNjMwMjExNzFlOTBlZDFiLi5jYjUzYWFkZTYzZTM5ZjMyZTJiZjYyNjc4ZGU3YzNj
Yjk0MmRmMzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCkBAIC0x
MjAsNyArMTIwLDcgQEAgY2xhc3MgU2FuZGJveEV4dGVuc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVk
PFNhbmRib3hFeHRlbnNpb24+IHsKIGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6Okhh
bmRsZSgpIHsgfQogaW5saW5lIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6fkhhbmRsZSgpIHsg
fQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjplbmNvZGUoSVBDOjpFbmNv
ZGVyJikgY29uc3QgeyB9Ci1pbmxpbmUgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYpIHsg
cmV0dXJuIHt7IH19OyB9CitpbmxpbmUgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYpIHsg
cmV0dXJuIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSB7IH07IH0KIGlubGluZSBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGVBcnJheTo6SGFuZGxlQXJyYXkoKSB7IH0KIGlubGluZSBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGVBcnJheTo6fkhhbmRsZUFycmF5KCkgeyB9CiBpbmxpbmUgdm9pZCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6YWxsb2NhdGUoc2l6ZV90KSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcAppbmRleCBkMDIyNmJiOWE5
ZWMxYmFlMTgzNWJiZGRlMTM0OGMxMjg2NmJkMTAzLi4zY2RlZTgyZDBhZGYzNDM1YzhlZDljZmNk
N2RiZDQ2MzlmODEwMTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ub3VjaEJh
ck1lbnVJdGVtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVG91Y2hCYXJNZW51
SXRlbURhdGEuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHN0ZDo6b3B0aW9uYWw8VG91Y2hCYXJNZW51
SXRlbURhdGE+IFRvdWNoQmFyTWVudUl0ZW1EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQucHJpb3JpdHkpKQogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIAotICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CisgICAgcmV0
dXJuIHN0ZDo6bWFrZV9vcHRpb25hbChXVEZNb3ZlKHJlc3VsdCkpOwogfQogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339261</attachid>
            <date>2018-05-01 20:14:43 -0700</date>
            <delta_ts>2018-05-01 20:27:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-185159-20180502121442.patch</filename>
            <type>text/plain</type>
            <size>22855</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4MWIxNjRjOTMzZWIyYWQyMjFlMzY1
YTdlNWFhYzljZjM0NmE1ZjcuLmY1ODU2OThiOTk5NWY1Y2VkM2RlNWJhMDUwZjRlYWVkZjcyYjY3
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBp
ZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm93IEMrKzE3IGZsYWcgaXMgZW5hYmxlZC4gSXQgbWVhbnMgdGhhdCBhbnkgc3Rh
bmRhcmQgbGlicmFyaWVzIGNhbiB1c2UgPG9wdGlvbmFsPiBpbnRlcm5hbGx5LgorICAgICAgICBJ
ZiB3ZSBkZWZpbmUgc3RkOjpvcHRpb25hbCByZWdhcmRsZXNzIG9mIHRoZSBleGlzdGVuY2Ugb2Yg
dGhlIHN0YW5kYXJkIGxpYnJhcnkncyA8b3B0aW9uYWw+LAorICAgICAgICBpdCBjYXVzZXMgY29t
cGlsZSBlcnJvcnMuIEZvciBleGFtcGxlLCBpbiBHQ0MgNyAoc3BlY2lmaWNhbGx5IEdDQyA3LjMu
MCkgZW52aXJvbm1lbnQsCisgICAgICAgIDxvcHRpb25hbD4gaXMgaW5jbHVkZWQgaW4gPHVub3Jk
ZXJlZF9tYXA+LgorICAgICAgICBXZSBkbyBub3QgZGVmaW5lIHN0ZDo6b3B0aW9uYWwgaW4gV2Vi
S2l0IHNpZGUgaWYgPG9wdGlvbmFsPiBpcyBvZmZlcmVkLgorCisgICAgICAgIEFuZCB3ZSBhbHNv
IHJlbW92ZSBzdGQ6Om9wdGlvbmFsPFQmPiB1c2Ugc2luY2UgdGhpcyBpcyBub3QgYWNjZXB0ZWQg
aW4gQysrMTcuIFVzZQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8VD4+IGluc3RlYWQuCisKKyAgICAgICAgKiB3dGYvRXhwZWN0ZWQuaDoKKyAgICAgICAgY29u
c3RleHByIGRvZXMgbm90IG1lYW4gY29uc3QgaW4gQysrMTcuCisKKyAgICAgICAgKiB3dGYvT3B0
aW9uYWwuaDoKKyAgICAgICAgRG8gbm90IGRlZmluZSBzdGQ6Om9wdGlvbmFsIGlmIDxvcHRpb25h
bD4gaXMgcHJvdmlkZWQuCisKKyAgICAgICAgKFdURjo6dmFsdWVPckNvbXB1dGUpOgorCiAyMDE4
LTA1LTAxICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAg
Q29ycmVjdGx5IGRldGVjdCBzdHJpbmcgb3ZlcmZsb3cgd2hlbiB1c2luZyB0aGUgJ0Z1bmN0aW9u
JyBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVlYjY5N2ZkOGI0NmNiZmM1YjE4ZWI0OGU0
MDZkMmY5OWE2YzMuLmJiNDk3ZjM4NmRlNzBlNTE2NGU4M2EwYzAyMjNmOTc2ODVlNjQxMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxOC0wNS0wMSAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFs
IGlmIGl0IGlzIHByb3ZpZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODUxNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6aWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAg
KiBjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OnBhcnNlU3lzdGVtQ29sb3IpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmg6Cisg
ICAgICAgICogZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YXNldERPTVN0cmluZ01hcDo6aXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
c2V0RE9NU3RyaW5nTWFwOjpuYW1lZEl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRGF0YXNldERPTVN0cmluZ01hcC5oOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omluc2Vy
dEFkamFjZW50SFRNTCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvRE9NRWRpdG9yLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bEZvcm1EYXRhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxGb3JtRGF0YVN0cmVh
bTo6Z2V0UG9zdERhdGEpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmg6CisgICAgICAgICogdGVzdGluZy9N
b2NrQ0RNRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6a2V5
c0ZvclNlc3Npb25XaXRoSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETUluc3Rh
bmNlOjp1cGRhdGVMaWNlbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OiBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oOgorCiAyMDE4LTA1LTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUgaW4gUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDU4NTRkNmRiOTY2OWQ1NzRlZDIxZDlkMTYxMmNkNzJkYzUxZTI1ODcuLjNhNGM1
NWI2NDJjNmNhY2JmNDJlMWZjOGQyNmIxMWMxNTQwMjA4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTgtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBpZiBpdCBpcyBwcm92aWRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTU5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQv
U2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VG91Y2hCYXJNZW51SXRlbURhdGE6OmRlY29kZSk6CisKIDIw
MTgtMDUtMDEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUHJv
ZHVjdGlvbiBidWlsZCBlcnJvciBpbiBNaWdyYXRlIEhlYWRlciBwaGFzZSB3aGVuIFdLX0FMVEVS
TkFURV9GUkFNRVdPUktTX0RJUiBpcyBzZXQgdG8gbm9uLWVtcHR5IHZhbHVlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oIGIvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaApp
bmRleCBkZDA0NWU1OTg3NWU0ZjQ3NjdlYjJlYjE3OWMxYzI3MTllMGFmMmUyLi5lOWIwZWM5Zjll
NjQ1ZWNlZWRkNmY0MGU0MmNmODkxNDA1NzM3YTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9FeHBlY3RlZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVkLmgKQEAgLTU3Myw1ICs1
NzMsNSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBFPiB2b2lkIHN3YXAoZXhwZWN0
ZWQ8VCwgRT4mIHgsIGV4cGVjdGVkPFQsIEU+JiB5KQogCiB9fX0gLy8gbmFtZXNwYWNlIHN0ZDo6
ZXhwZXJpbWVudGFsOjpmdW5kYW1lbnRhbHNfdjMKIAotX19FWFBFQ1RFRF9JTkxJTkVfVkFSSUFC
TEUgY29uc3RleHByIHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdGVkX3QmIHVuZXhwZWN0ID0g
c3RkOjpleHBlcmltZW50YWw6OnVuZXhwZWN0OworX19FWFBFQ1RFRF9JTkxJTkVfVkFSSUFCTEUg
Y29uc3RleHByIGF1dG8mIHVuZXhwZWN0ID0gc3RkOjpleHBlcmltZW50YWw6OnVuZXhwZWN0Owog
dGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgRT4gdXNpbmcgRXhwZWN0ZWQgPSBzdGQ6OmV4cGVyaW1l
bnRhbDo6ZXhwZWN0ZWQ8VCwgRT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25h
bC5oIGIvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAppbmRleCBhM2ZjNTg5MDgzNDVhYzFiMGEy
MjRiYzJmMTc5ODQ2OTE2ZDlkMmQ3Li5kYzg1YzAzOTAxOGRiMTJlNjhjYzIxNTM3NGRjZWJmMTE2
M2IyNWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL09wdGlvbmFsLmgKQEAgLTQ3LDYgKzQ3LDE2IEBACiAjIGluY2x1ZGUgPHd0Zi9D
b21waWxlci5oPgogIyBpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKKyNpZiBfX2hhc19p
bmNsdWRlKDxvcHRpb25hbD4pCisjIGluY2x1ZGUgPG9wdGlvbmFsPgorI2VuZGlmCisKKyNpZiBk
ZWZpbmVkKF9fY3BwX2xpYl9vcHRpb25hbCkgJiYgX19jcHBfbGliX29wdGlvbmFsID49IDIwMTYw
MworCisvLyBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFsLgorCisjZWxzZQorCiAjIGRlZmluZSBU
UjJfT1BUSU9OQUxfUkVRVUlSRVMoLi4uKSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxfX1ZBX0FS
R1NfXzo6dmFsdWUsIGJvb2w+Ojp0eXBlID0gZmFsc2UKIAogIyBpZiBkZWZpbmVkIF9fR05VQ19f
IC8vIE5PVEU6IEdOVUMgaXMgYWxzbyBkZWZpbmVkIGZvciBDbGFuZwpAQCAtMTAxMiwyMCArMTAy
Miw2IEBAIGNvbnN0ZXhwciBvcHRpb25hbDxYJj4gbWFrZV9vcHRpb25hbChzdGQ6OnJlZmVyZW5j
ZV93cmFwcGVyPFg+IHYpCiAKIH0gLy8gbmFtZXNwYWNlIHN0ZAogCi1uYW1lc3BhY2UgV1RGIHsK
LQotLy8gLS0gV2ViS2l0IEFkZGl0aW9ucyAtLQotdGVtcGxhdGUgPGNsYXNzIE9wdGlvbmFsVHlw
ZSwgY2xhc3MgQ2FsbGJhY2s+Ci1BTFdBWVNfSU5MSU5FCi1hdXRvIHZhbHVlT3JDb21wdXRlKE9w
dGlvbmFsVHlwZSBvcHRpb25hbCwgQ2FsbGJhY2sgY2FsbGJhY2spIC0+IHR5cGVuYW1lIE9wdGlv
bmFsVHlwZTo6dmFsdWVfdHlwZQotewotICAgIGlmIChvcHRpb25hbCkKLSAgICAgICAgcmV0dXJu
ICpvcHRpb25hbDsKLSAgICByZXR1cm4gY2FsbGJhY2soKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V1RGCi0KIG5hbWVzcGFjZSBzdGQKIHsKICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CkBAIC0xMDU0
LDQgKzEwNTAsMjAgQEAgbmFtZXNwYWNlIHN0ZAogIyB1bmRlZiBUUjJfT1BUSU9OQUxfUkVRVUlS
RVMKICMgdW5kZWYgVFIyX09QVElPTkFMX0FTU0VSVEVEX0VYUFJFU1NJT04KIAorI2VuZGlmIC8v
IGRlZmluZWQoX19jcHBfbGliX29wdGlvbmFsKQorCituYW1lc3BhY2UgV1RGIHsKKworLy8gLS0g
V2ViS2l0IEFkZGl0aW9ucyAtLQordGVtcGxhdGUgPGNsYXNzIE9wdGlvbmFsVHlwZSwgY2xhc3Mg
Q2FsbGJhY2s+CitBTFdBWVNfSU5MSU5FCithdXRvIHZhbHVlT3JDb21wdXRlKE9wdGlvbmFsVHlw
ZSBvcHRpb25hbCwgQ2FsbGJhY2sgY2FsbGJhY2spIC0+IHR5cGVuYW1lIE9wdGlvbmFsVHlwZTo6
dmFsdWVfdHlwZQoreworICAgIGlmIChvcHRpb25hbCkKKyAgICAgICAgcmV0dXJuICpvcHRpb25h
bDsKKyAgICByZXR1cm4gY2FsbGJhY2soKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKIHVz
aW5nIFdURjo6dmFsdWVPckNvbXB1dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDg1MWM5YzgyYWY0
MDk3ZWVkMzVmNjEwYzdhY2Y1ZDI1ZGJkNDRiMzUuLjUzNmM1NTI2YTI4YjU2N2IwNWYwNWZjNTdj
YzJhY2Q1MGY3ZmJlNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC0zMDEsMTIgKzMwMSwxMiBAQCB2
b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRBZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlk
YXRlKiBydGNDYW5kaWRhdGUsIERPTQogfQogCiAvLyBJbXBsZW1lbnRhdGlvbiBvZiBodHRwczov
L3czYy5naXRodWIuaW8vd2VicnRjLXBjLyNzZXQtcGMtY29uZmlndXJhdGlvbgotc3RhdGljIGlu
bGluZSBFeGNlcHRpb25PcjxWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNl
cnZlckluZm8+PiBpY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYg
bmV3Q29uZmlndXJhdGlvbiwgc3RkOjpvcHRpb25hbDxjb25zdCBSVENDb25maWd1cmF0aW9uJj4g
ZXhpc3RpbmdDb25maWd1cmF0aW9uLCBib29sIGlzTG9jYWxEZXNjcmlwdGlvblNldCkKK3N0YXRp
YyBpbmxpbmUgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpJ
Y2VTZXJ2ZXJJbmZvPj4gaWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRp
b24mIG5ld0NvbmZpZ3VyYXRpb24sIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBl
cjxjb25zdCBSVENDb25maWd1cmF0aW9uPj4gZXhpc3RpbmdDb25maWd1cmF0aW9uLCBib29sIGlz
TG9jYWxEZXNjcmlwdGlvblNldCkKIHsKLSAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYm
IG5ld0NvbmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5ICE9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi0+
YnVuZGxlUG9saWN5KQorICAgIGlmIChleGlzdGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29uZmln
dXJhdGlvbi5idW5kbGVQb2xpY3kgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5nZXQoKS5idW5k
bGVQb2xpY3kpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3IsICJJY2VUcmFuc3BvcnRQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5
IiB9OwogCi0gICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9u
LmljZUNhbmRpZGF0ZVBvb2xTaXplICE9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi0+aWNlQ2FuZGlk
YXRlUG9vbFNpemUgJiYgaXNMb2NhbERlc2NyaXB0aW9uU2V0KQorICAgIGlmIChleGlzdGluZ0Nv
bmZpZ3VyYXRpb24gJiYgbmV3Q29uZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6ZSAhPSBl
eGlzdGluZ0NvbmZpZ3VyYXRpb24tPmdldCgpLmljZUNhbmRpZGF0ZVBvb2xTaXplICYmIGlzTG9j
YWxEZXNjcmlwdGlvblNldCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2Rp
ZmljYXRpb25FcnJvciwgIkljZVRyYW5zcG9ydFBvbGljeSBwb29sIHNpemUgZG9lcyBub3QgbWF0
Y2ggZXhpc3RpbmcgcG9vbCBzaXplIiB9OwogCiAgICAgVmVjdG9yPE1lZGlhRW5kcG9pbnRDb25m
aWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPiBzZXJ2ZXJzOwpAQCAtMzYwLDcgKzM2MCw3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRDb25maWd1cmF0aW9uKFJUQ0Nv
bmZpZ3VyYXRpb24mJiBjb25maWd1CiAKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKIAot
ICAgIGF1dG8gc2VydmVycyA9IGljZVNlcnZlcnNGcm9tQ29uZmlndXJhdGlvbihjb25maWd1cmF0
aW9uLCBtX2NvbmZpZ3VyYXRpb24sIG1fYmFja2VuZC0+aXNMb2NhbERlc2NyaXB0aW9uU2V0KCkp
OworICAgIGF1dG8gc2VydmVycyA9IGljZVNlcnZlcnNGcm9tQ29uZmlndXJhdGlvbihjb25maWd1
cmF0aW9uLCBzdGQ6OmNyZWYobV9jb25maWd1cmF0aW9uKSwgbV9iYWNrZW5kLT5pc0xvY2FsRGVz
Y3JpcHRpb25TZXQoKSk7CiAgICAgaWYgKHNlcnZlcnMuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiBzZXJ2ZXJzLnJlbGVhc2VFeGNlcHRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXIuY3BwCmluZGV4IDk1NGFiMDgyZTllNjYzYjY1YmExNDU4NjRjNzY3YWNi
ZDY3ZDM2ZDYuLjMzZjUyZTFhNjUzZTViZDMwZmY2NGNkZGYyMDIwZDczYmZhNTBlNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKQEAgLTE3OCwxNCArMTc4LDE0IEBA
IENvbG9yIENTU1BhcnNlcjo6cGFyc2VDb2xvcihjb25zdCBTdHJpbmcmIHN0cmluZywgYm9vbCBz
dHJpY3QpCiAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlLmNvbG9yKCk7CiB9CiAKLUNvbG9yIENT
U1BhcnNlcjo6cGFyc2VTeXN0ZW1Db2xvcihjb25zdCBTdHJpbmcmIHN0cmluZywgc3RkOjpvcHRp
b25hbDxjb25zdCBDU1NQYXJzZXJDb250ZXh0Jj4gY29udGV4dCkKK0NvbG9yIENTU1BhcnNlcjo6
cGFyc2VTeXN0ZW1Db2xvcihjb25zdCBTdHJpbmcmIHN0cmluZywgc3RkOjpvcHRpb25hbDxzdGQ6
OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IENTU1BhcnNlckNvbnRleHQ+PiBjb250ZXh0KQogewog
ICAgIENTU1ZhbHVlSUQgaWQgPSBjc3NWYWx1ZUtleXdvcmRJRChzdHJpbmcpOwogICAgIGlmICgh
U3R5bGVDb2xvcjo6aXNTeXN0ZW1Db2xvcihpZCkpCiAgICAgICAgIHJldHVybiBDb2xvcigpOwog
CiAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnM7Ci0gICAgaWYgKGNv
bnRleHQgJiYgY29udGV4dC52YWx1ZSgpLnVzZVN5c3RlbUFwcGVhcmFuY2UpCisgICAgaWYgKGNv
bnRleHQgJiYgY29udGV4dC0+Z2V0KCkudXNlU3lzdGVtQXBwZWFyYW5jZSkKICAgICAgICAgb3B0
aW9ucyB8PSBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlOwogICAgIHJl
dHVybiBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuc3lzdGVtQ29sb3IoaWQsIG9wdGlvbnMpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmgKaW5kZXggZDkyZmE1YTc2YzNkMGM2
NmRlY2JlODM4ZGFjYzQ0ZDI1ZDViNGFhNC4uYWVlNzhlNTdhMWY3OTMwN2U0MjAxNzcyZDQyNDY5
NDhiMTE1ODBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJz
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oCkBAIC03OCw3
ICs3OCw3IEBAIGNsYXNzIENTU1BhcnNlciB7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBwYXJzZVZh
bHVlV2l0aFZhcmlhYmxlUmVmZXJlbmNlcyhDU1NQcm9wZXJ0eUlELCBjb25zdCBDU1NWYWx1ZSYs
IGNvbnN0IEN1c3RvbVByb3BlcnR5VmFsdWVNYXAmIGN1c3RvbVByb3BlcnRpZXMsIFRleHREaXJl
Y3Rpb24sIFdyaXRpbmdNb2RlKTsKIAogICAgIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yKGNvbnN0
IFN0cmluZyYsIGJvb2wgc3RyaWN0ID0gZmFsc2UpOwotICAgIHN0YXRpYyBDb2xvciBwYXJzZVN5
c3RlbUNvbG9yKGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8Y29uc3QgQ1NTUGFyc2VyQ29u
dGV4dCY+KTsKKyAgICBzdGF0aWMgQ29sb3IgcGFyc2VTeXN0ZW1Db2xvcihjb25zdCBTdHJpbmcm
LCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQ1NTUGFyc2VyQ29u
dGV4dD4+KTsKIAogcHJpdmF0ZToKICAgICBQYXJzZVJlc3VsdCBwYXJzZVZhbHVlKE11dGFibGVT
dHlsZVByb3BlcnRpZXMmLCBDU1NQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmLCBib29sIGltcG9y
dGFudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01h
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAKaW5kZXgg
ZjJkODQyMDdiOTdhMzM2NDk1NGQ3MzBhMTBiNDg4ZTNlMzgzYzY0OC4uOGU4NmFlZWZlNWRjNzg4
NTM3N2ZhY2M5MmY2Y2RjNWM1NTUxMjJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0
RE9NU3RyaW5nTWFwLmNwcApAQCAtMTg4LDcgKzE4OCw3IEBAIFZlY3RvcjxTdHJpbmc+IERhdGFz
ZXRET01TdHJpbmdNYXA6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdAogICAgIHJldHVy
biBuYW1lczsKIH0KIAotc3RkOjpvcHRpb25hbDxjb25zdCBBdG9taWNTdHJpbmcmPiBEYXRhc2V0
RE9NU3RyaW5nTWFwOjppdGVtKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBjb25zdAorc3Rk
OjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IEF0b21pY1N0cmluZz4+IERh
dGFzZXRET01TdHJpbmdNYXA6Oml0ZW0oY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGNvbnN0
CiB7CiAgICAgaWYgKG1fZWxlbWVudC5oYXNBdHRyaWJ1dGVzKCkpIHsKICAgICAgICAgQXR0cmli
dXRlSXRlcmF0b3JBY2Nlc3NvciBhdHRyaWJ1dGVJdGVyYXRvckFjY2Vzc29yID0gbV9lbGVtZW50
LmF0dHJpYnV0ZXNJdGVyYXRvcigpOwpAQCAtMTk4LDEyICsxOTgsMTIgQEAgc3RkOjpvcHRpb25h
bDxjb25zdCBBdG9taWNTdHJpbmcmPiBEYXRhc2V0RE9NU3RyaW5nTWFwOjppdGVtKGNvbnN0IFN0
cmluZyYgcHJvcGUKICAgICAgICAgICAgIC8vIEJ1aWxkaW5nIGEgbmV3IEF0b21pY1N0cmluZyBp
biB0aGF0IGNhc2UgaXMgb3ZlcmtpbGwgc28gd2UgZG8gYSBkaXJlY3QgY2hhcmFjdGVyIGNvbXBh
cmlzb24uCiAgICAgICAgICAgICBjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSA9ICphdHRyaWJ1
dGVJdGVyYXRvckFjY2Vzc29yLmJlZ2luKCk7CiAgICAgICAgICAgICBpZiAocHJvcGVydHlOYW1l
TWF0Y2hlc0F0dHJpYnV0ZU5hbWUocHJvcGVydHlOYW1lLCBhdHRyaWJ1dGUubG9jYWxOYW1lKCkp
KQotICAgICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGUudmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc3RkOjpjcmVmKGF0dHJpYnV0ZS52YWx1ZSgpKTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIEF0b21pY1N0cmluZyBhdHRyaWJ1dGVOYW1lID0gY29udmVydFByb3Bl
cnR5TmFtZVRvQXR0cmlidXRlTmFtZShwcm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAgZm9yIChj
b25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSA6IGF0dHJpYnV0ZUl0ZXJhdG9yQWNjZXNzb3IpIHsK
ICAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlLmxvY2FsTmFtZSgpID09IGF0dHJpYnV0ZU5h
bWUpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGUudmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6Y3JlZihhdHRyaWJ1dGUudmFsdWUoKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0yMTMsNyArMjEzLDkgQEAgc3RkOjpvcHRp
b25hbDxjb25zdCBBdG9taWNTdHJpbmcmPiBEYXRhc2V0RE9NU3RyaW5nTWFwOjppdGVtKGNvbnN0
IFN0cmluZyYgcHJvcGUKIAogU3RyaW5nIERhdGFzZXRET01TdHJpbmdNYXA6Om5hbWVkSXRlbShj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGl0ZW0obmFtZSku
dmFsdWVfb3IoU3RyaW5nIHsgfSk7CisgICAgaWYgKGF1dG8gdmFsdWUgPSBpdGVtKG5hbWUpKQor
ICAgICAgICByZXR1cm4gdmFsdWUtPmdldCgpOworICAgIHJldHVybiBTdHJpbmcgeyB9OwogfQog
CiBFeGNlcHRpb25Pcjx2b2lkPiBEYXRhc2V0RE9NU3RyaW5nTWFwOjpzZXROYW1lZEl0ZW0oY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhc2V0RE9NU3RyaW5nTWFwLmgKaW5kZXggNDgzZjc2M2NjMTZjZjk2NDFiZWE1M2Y0ZGJlNjli
NDgzYmExYjdkMy4uZDZkMTBkMTI2MTIyZGNjYzk5N2Q5NzhmNWVhMjU0YzMyMjRmZmYzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5oCkBAIC01Myw3ICs1Myw3IEBA
IGNsYXNzIERhdGFzZXRET01TdHJpbmdNYXAgZmluYWwgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxl
IHsKICAgICBFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50OyB9CiAKIHByaXZh
dGU6Ci0gICAgc3RkOjpvcHRpb25hbDxjb25zdCBBdG9taWNTdHJpbmcmPiBpdGVtKGNvbnN0IFN0
cmluZyYgbmFtZSkgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFw
cGVyPGNvbnN0IEF0b21pY1N0cmluZz4+IGl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsK
IAogICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXgg
YTQzMjM5N2Q3MTc5YjE0MWQyMGRmODBmY2JlNDY5NTNjYjE4NjQ5Ni4uMjczZDhjYWU3MjZhZGFh
NTZiZTU1MGUyMGE3MGJhZTI2NzFiYWQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMzcz
Myw3ICszNzMzLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxFbGVtZW50Pj4gY29udGV4dEVs
ZW1lbnRGb3JJbnNlcnRpb24oY29uc3QgU3RyaW5nJiB3aGVyZSwKIH0KIAogLy8gaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL0RPTS1QYXJzaW5nLyNkb20tZWxlbWVudC1pbnNlcnRhZGphY2VudGh0bWwK
LUV4Y2VwdGlvbk9yPHZvaWQ+IEVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJp
bmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgc3RkOjpvcHRpb25hbDxOb2RlVmVjdG9y
Jj4gYWRkZWROb2RlcykKK0V4Y2VwdGlvbk9yPHZvaWQ+IEVsZW1lbnQ6Omluc2VydEFkamFjZW50
SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgc3RkOjpvcHRp
b25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPE5vZGVWZWN0b3I+PiBhZGRlZE5vZGVzKQogewog
ICAgIC8vIFN0ZXBzIDEgYW5kIDIuCiAgICAgYXV0byBjb250ZXh0RWxlbWVudCA9IGNvbnRleHRF
bGVtZW50Rm9ySW5zZXJ0aW9uKHdoZXJlLCAqdGhpcyk7CkBAIC0zNzQ3LDcgKzM3NDcsNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBFbGVtZW50OjppbnNlcnRBZGphY2VudEhUTUwoY29uc3QgU3RyaW5n
JiB3aGVyZSwgY29uc3QgU3RyaW5nJgogICAgIGlmIChVTkxJS0VMWShhZGRlZE5vZGVzKSkgewog
ICAgICAgICAvLyBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgaW5zZXJ0QWRqYWNlbnQsIGFzIG90aGVy
d2lzZSB0aGUgY2hpbGRyZW4gb2YgZnJhZ21lbnQgd2lsbCBiZSBtb3ZlZAogICAgICAgICAvLyB0
byB0aGVpciBuZXcgcGFyZW50IGFuZCB3aWxsIGJlIGhhcmRlciB0byBrZWVwIHRyYWNrIG9mLgot
ICAgICAgICAqYWRkZWROb2RlcyA9IGNvbGxlY3RDaGlsZE5vZGVzKGZyYWdtZW50LnJldHVyblZh
bHVlKCkpOworICAgICAgICBhZGRlZE5vZGVzLT5nZXQoKSA9IGNvbGxlY3RDaGlsZE5vZGVzKGZy
YWdtZW50LnJldHVyblZhbHVlKCkpOwogICAgIH0KIAogICAgIC8vIFN0ZXAgNC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCmluZGV4IDllNTJkMzMxNTUzOTk0NTQ2NTcwMzIxNDExN2Q3YjIwNmEzZjJhYTMuLjlh
ZjQxMTMwNGY0ZDk5OGFhYjExYjkyNGFmOTFkMjE5MDAwNmZkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aApAQCAtMzE0LDcgKzMxNCw3IEBAIGNsYXNzIEVsZW1lbnQgOiBwdWJsaWMgQ29udGFpbmVyTm9k
ZSB7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUYWJJbmRleChpbnQpOwogICAgIHZpcnR1
YWwgUmVmUHRyPEVsZW1lbnQ+IGZvY3VzRGVsZWdhdGUoKTsKIAotICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IGluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcm
IGh0bWwsIHN0ZDo6b3B0aW9uYWw8Tm9kZVZlY3RvciY+IGFkZGVkTm9kZXMpOworICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IGluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25z
dCBTdHJpbmcmIGh0bWwsIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxOb2Rl
VmVjdG9yPj4gYWRkZWROb2Rlcyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxF
bGVtZW50Kj4gaW5zZXJ0QWRqYWNlbnRFbGVtZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIEVsZW1l
bnQmIG5ld0NoaWxkKTsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBpbnNl
cnRBZGphY2VudEhUTUwoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3QgU3RyaW5nJiBodG1sKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01FZGl0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5jcHAKaW5kZXggMzQ5M2IwMTdjYTA2Yjlm
Mjk3NjIzMjdmYTMxMzUzZGI4Zjk1ODY5OC4uNTllY2NkNDA1YzAzN2VmMmE0NDBjNGQ1NTFjOWNi
Y2ExMjFjNmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5jcHAKQEAgLTI2
Niw3ICsyNjYsNyBAQCBjbGFzcyBET01FZGl0b3I6Okluc2VydEFkamFjZW50SFRNTEFjdGlvbiBm
aW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JIaXN0b3J5OjpBY3RpbwogCiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gcmVkbygpIGZpbmFsCiAgICAgewotICAgICAgICBhdXRvIHJlc3VsdCA9IG1fZWxlbWVu
dC0+aW5zZXJ0QWRqYWNlbnRIVE1MKG1fcG9zaXRpb24sIG1faHRtbCwgbV9hZGRlZE5vZGVzKTsK
KyAgICAgICAgYXV0byByZXN1bHQgPSBtX2VsZW1lbnQtPmluc2VydEFkamFjZW50SFRNTChtX3Bv
c2l0aW9uLCBtX2h0bWwsIHN0ZDo6cmVmKG1fYWRkZWROb2RlcykpOwogICAgICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCk7CiAgICAgICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0uY3BwCmluZGV4
IDg0ZjVlMmI5NDJiOGEyMWNjMmM0NTAwZmMzNWUxMWRmMDk1YTY2ZTguLjJhZDZhMTg3MjRiMmZh
YzA0MjQwNjU2MDFjNTI5YWFmOTJjOTgyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0uY3BwCkBAIC02
OSw3ICs2OSw3IEBAIHZvaWQgQ3VybEZvcm1EYXRhU3RyZWFtOjpjbGVhbigpCiAgICAgfQogfQog
Ci1zdGQ6Om9wdGlvbmFsPGNvbnN0IFZlY3RvcjxjaGFyPiY+IEN1cmxGb3JtRGF0YVN0cmVhbTo6
Z2V0UG9zdERhdGEoKQorc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0
IFZlY3RvcjxjaGFyPj4+IEN1cmxGb3JtRGF0YVN0cmVhbTo6Z2V0UG9zdERhdGEoKQogewogICAg
IGlmICghbV9mb3JtRGF0YSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKQEAgLTc3LDcg
Kzc3LDcgQEAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8Y2hhcj4mPiBDdXJsRm9ybURhdGFT
dHJlYW06OmdldFBvc3REYXRhKCkKICAgICBpZiAoIW1fcG9zdERhdGEpCiAgICAgICAgIG1fcG9z
dERhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxjaGFyPj4obV9mb3JtRGF0YS0+ZmxhdHRl
bigpKTsKIAotICAgIHJldHVybiAqbV9wb3N0RGF0YTsKKyAgICByZXR1cm4gc3RkOjpjcmVmKCpt
X3Bvc3REYXRhKTsKIH0KIAogYm9vbCBDdXJsRm9ybURhdGFTdHJlYW06OnNob3VsZFVzZUNodW5r
VHJhbnNmZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5oCmluZGV4IGQxY2ExYWQ1ZjAwYTY3NmZmYWUyMDk2
MDI3NjdkYjI2YjU5YjAwZDEuLmQzM2RmNzgwMzNhMTQ1NzljMWVjYjI1Yjg0ZTVkZjAyMTdhMTk4
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
Rm9ybURhdGFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgQ3VybEZvcm1E
YXRhU3RyZWFtIHsKIAogICAgIHNpemVfdCBlbGVtZW50U2l6ZSgpIHsgcmV0dXJuIG1fZm9ybURh
dGEgPyBtX2Zvcm1EYXRhLT5lbGVtZW50cygpLnNpemUoKSA6IDA7IH0KIAotICAgIHN0ZDo6b3B0
aW9uYWw8Y29uc3QgVmVjdG9yPGNoYXI+Jj4gZ2V0UG9zdERhdGEoKTsKKyAgICBzdGQ6Om9wdGlv
bmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgVmVjdG9yPGNoYXI+Pj4gZ2V0UG9zdERh
dGEoKTsKICAgICBib29sIHNob3VsZFVzZUNodW5rVHJhbnNmZXIoKTsKICAgICB1bnNpZ25lZCBs
b25nIGxvbmcgdG90YWxTaXplKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NETUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5jcHAKaW5kZXggOTVmN2U2YmRiMjhjODVmZTY2ZjA0ZTI3ODAwMDUyZDc0Mzg5ZTdhZC4u
NDQ1ZWE5YjU4Nzk3NDhmOGQ2MGQ2MjlmOTMzYzkzZTA5OTcwMWEwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKQEAgLTgxLDEyICs4MSwxMiBAQCBWZWN0b3I8
UmVmPFNoYXJlZEJ1ZmZlcj4+IE1vY2tDRE1GYWN0b3J5OjpyZW1vdmVLZXlzRnJvbVNlc3Npb25X
aXRoSUQoY29uc3QgU3RyaQogICAgIHJldHVybiBXVEZNb3ZlKGl0LT52YWx1ZSk7CiB9CiAKLXN0
ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiY+IE1vY2tDRE1GYWN0
b3J5OjprZXlzRm9yU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAorc3RkOjpv
cHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVm
ZmVyPj4+PiBNb2NrQ0RNRmFjdG9yeTo6a2V5c0ZvclNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5n
JiBpZCkgY29uc3QKIHsKICAgICBhdXRvIGl0ID0gbV9zZXNzaW9ucy5maW5kKGlkKTsKICAgICBp
ZiAoaXQgPT0gbV9zZXNzaW9ucy5lbmQoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LSAgICByZXR1cm4gaXQtPnZhbHVlOworICAgIHJldHVybiBzdGQ6OmNyZWYoaXQtPnZhbHVlKTsK
IH0KIAogdm9pZCBNb2NrQ0RNRmFjdG9yeTo6c2V0U3VwcG9ydGVkRGF0YVR5cGVzKFZlY3RvcjxT
dHJpbmc+JiYgdHlwZXMpCkBAIC0zMTQsMTEgKzMxNCwxMSBAQCB2b2lkIE1vY2tDRE1JbnN0YW5j
ZTo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmIHNlc3Npb25JRCwgTGljZW5zZVR5cGUsIGNv
bnN0CiAKICAgICBzdGQ6Om9wdGlvbmFsPEtleVN0YXR1c1ZlY3Rvcj4gY2hhbmdlZEtleXM7CiAg
ICAgaWYgKHJlc3BvbnNlVmVjdG9yLmNvbnRhaW5zKFN0cmluZyhBU0NJSUxpdGVyYWwoImtleXMt
Y2hhbmdlZCIpKSkpIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+Jj4ga2V5cyA9IGZhY3RvcnktPmtleXNGb3JTZXNzaW9uV2l0aElEKHNlc3Np
b25JRCk7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25z
dCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Pj4ga2V5cyA9IGZhY3RvcnktPmtleXNGb3JTZXNz
aW9uV2l0aElEKHNlc3Npb25JRCk7CiAgICAgICAgIGlmIChrZXlzKSB7CiAgICAgICAgICAgICBL
ZXlTdGF0dXNWZWN0b3Iga2V5U3RhdHVzVmVjdG9yOwotICAgICAgICAgICAga2V5U3RhdHVzVmVj
dG9yLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoa2V5cy0+c2l6ZSgpKTsKLSAgICAgICAgICAgIGZv
ciAoYXV0byYga2V5IDogKmtleXMpCisgICAgICAgICAgICBrZXlTdGF0dXNWZWN0b3IucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShrZXlzLT5nZXQoKS5zaXplKCkpOworICAgICAgICAgICAgZm9yIChh
dXRvJiBrZXkgOiAoKmtleXMpLmdldCgpKQogICAgICAgICAgICAgICAgIGtleVN0YXR1c1ZlY3Rv
ci51bmNoZWNrZWRBcHBlbmQoeyBrZXkuY29weVJlZigpLCBLZXlTdGF0dXM6OlVzYWJsZSB9KTsK
IAogICAgICAgICAgICAgY2hhbmdlZEtleXMgPSBXVEZNb3ZlKGtleVN0YXR1c1ZlY3Rvcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKaW5kZXggMjM3YjJiMzY0MjYzMzBi
Yzc1YTA0ZGYzNTBlMDgxYWI3ODg2MTg0My4uM2U2ZGIyMWQwMWJjZDVhNTBhZjVlOTc2NTBjM2Yx
NGI4Yjc5NjQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuaApAQCAt
NzMsNyArNzMsNyBAQCBjbGFzcyBNb2NrQ0RNRmFjdG9yeSA6IHB1YmxpYyBSZWZDb3VudGVkPE1v
Y2tDRE1GYWN0b3J5PiwgcHJpdmF0ZSBDRE1GYWN0b3J5IHsKICAgICBib29sIGhhc1Nlc3Npb25X
aXRoSUQoY29uc3QgU3RyaW5nJiBpZCkgeyByZXR1cm4gbV9zZXNzaW9ucy5jb250YWlucyhpZCk7
IH0KICAgICB2b2lkIHJlbW92ZVNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCkgeyBtX3Nl
c3Npb25zLnJlbW92ZShpZCk7IH0KICAgICB2b2lkIGFkZEtleXNUb1Nlc3Npb25XaXRoSUQoY29u
c3QgU3RyaW5nJiBpZCwgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiYmKTsKLSAgICBzdGQ6Om9w
dGlvbmFsPGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4mPiBrZXlzRm9yU2Vzc2lvbldp
dGhJRChjb25zdCBTdHJpbmcmIGlkKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVm
ZXJlbmNlX3dyYXBwZXI8Y29uc3QgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4+IGtleXNGb3JT
ZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQpIGNvbnN0OwogICAgIFZlY3RvcjxSZWY8U2hh
cmVkQnVmZmVyPj4gcmVtb3ZlS2V5c0Zyb21TZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQp
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4
dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCmluZGV4
IDFmNzY4MDg1NjRlZDRkYjZlNWMwY2UxZWI2MzAyMTE3MWU5MGVkMWIuLmNiNTNhYWRlNjNlMzlm
MzJlMmJmNjI2NzhkZTdjM2NiOTQyZGYzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1NhbmRib3hFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94
RXh0ZW5zaW9uLmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBjbGFzcyBTYW5kYm94RXh0ZW5zaW9uIDog
cHVibGljIFJlZkNvdW50ZWQ8U2FuZGJveEV4dGVuc2lvbj4gewogaW5saW5lIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZTo6SGFuZGxlKCkgeyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlOjp+SGFuZGxlKCkgeyB9CiBpbmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6
OmVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdCB7IH0KLWlubGluZSBzdGQ6Om9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJikgeyByZXR1cm4ge3sgfX07IH0KK2lubGluZSBzdGQ6Om9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJikgeyByZXR1cm4gU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHsgfTsgfQog
aW5saW5lIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpIYW5kbGVBcnJheSgpIHsgfQog
aW5saW5lIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Ojp+SGFuZGxlQXJyYXkoKSB7IH0K
IGlubGluZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjphbGxvY2F0ZShzaXpl
X3QpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvVG91Y2hCYXJNZW51SXRl
bURhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVG91Y2hCYXJNZW51SXRlbURhdGEuY3Bw
CmluZGV4IGQwMjI2YmI5YTllYzFiYWUxODM1YmJkZGUxMzQ4YzEyODY2YmQxMDMuLjNjZGVlODJk
MGFkZjM0MzVjOGVkOWNmY2Q3ZGJkNDYzOWY4MTAxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0YS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgc3RkOjpvcHRp
b25hbDxUb3VjaEJhck1lbnVJdGVtRGF0YT4gVG91Y2hCYXJNZW51SXRlbURhdGE6OmRlY29kZShJ
UEM6OkRlY29kZXImIGQKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5wcmlvcml0eSkp
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgCi0gICAgcmV0dXJuIFdURk1vdmUo
cmVzdWx0KTsKKyAgICByZXR1cm4gc3RkOjptYWtlX29wdGlvbmFsKFdURk1vdmUocmVzdWx0KSk7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zTVNWQy5jbWFrZSBiL1Nv
dXJjZS9jbWFrZS9PcHRpb25zTVNWQy5jbWFrZQppbmRleCA3ZjM3OGZmOGFhOWY3NmNmYmM2YjYx
MTFmOWY5ODNkNjJmNjM2NjA1Li5hYzE4ZGU0YmFiYzAyZmQ0YTJkN2JjMzZhMWViNGY1NTdjNGYz
MjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc01TVkMuY21ha2UKKysrIGIvU291
cmNlL2NtYWtlL09wdGlvbnNNU1ZDLmNtYWtlCkBAIC0zMiw2ICszMiw5IEBAIGFkZF9jb21waWxl
X29wdGlvbnMoL0d5LSAvb3Blbm1wLSAvR0YtKQogIyBTcGVjaWZ5IHRoZSBzb3VyY2UgY29kZSBl
bmNvZGluZwogYWRkX2NvbXBpbGVfb3B0aW9ucygvdXRmLTggL3ZhbGlkYXRlLWNoYXJzZXQpCiAK
KyMgRW5hYmxlIEMrKzE3CithZGRfY29tcGlsZV9vcHRpb25zKC9zdGQ6YysrbGF0ZXN0KQorCiBp
ZiAoJHtDTUFLRV9CVUlMRF9UWVBFfSBNQVRDSEVTICJEZWJ1ZyIpCiAgICAgc2V0KENNQUtFX1NI
QVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30gL09QVDpOT1JF
RiAvT1BUOk5PSUNGIikKICAgICBzZXQoQ01BS0VfRVhFX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9F
WEVfTElOS0VSX0ZMQUdTfSAvT1BUOk5PUkVGIC9PUFQ6Tk9JQ0YiKQpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDJhNzM2ZGZjNDdkNjk2NDA4YzczNjc4N2VhZmJmZmRi
M2Q5ZDE0MmEuLmI2MTQ0NmRkM2IwYTYwYWQ0Y2RjMzViZDUyMzA5ZTgyZjEwNGU1ZjYgMTAwNjQ0
Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0w
NS0wMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBV
c2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFsIGlmIGl0IGlzIHByb3ZpZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUxNTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25z
TVNWQy5jbWFrZToKKwogMjAxOC0wNS0wMSAgTGVvIEJhbHRlciAgPGxlb25hcmRvLmJhbHRlckBn
bWFpbC5jb20+CiAKICAgICAgICAgQXV0byBzYXZlIHRoZSByZXN1bHRzIGZvciBUZXN0MjYyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339262</attachid>
            <date>2018-05-01 20:24:26 -0700</date>
            <delta_ts>2018-05-01 20:27:55 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-185159-20180502122424.patch</filename>
            <type>text/plain</type>
            <size>23625</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4MWIxNjRjOTMzZWIyYWQyMjFlMzY1
YTdlNWFhYzljZjM0NmE1ZjcuLmVkN2Y1YTJmNTc0ZmZlMzJjYWFlY2NlYzk0OWIzYmEyN2E5OTcx
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTgtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBp
ZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm93IEMrKzE3IGZsYWcgaXMgZW5hYmxlZC4gSXQgbWVhbnMgdGhhdCBhbnkgc3Rh
bmRhcmQgbGlicmFyaWVzIGNhbiB1c2UgPG9wdGlvbmFsPiBpbnRlcm5hbGx5LgorICAgICAgICBJ
ZiB3ZSBkZWZpbmUgc3RkOjpvcHRpb25hbCByZWdhcmRsZXNzIG9mIHRoZSBleGlzdGVuY2Ugb2Yg
dGhlIHN0YW5kYXJkIGxpYnJhcnkncyA8b3B0aW9uYWw+LAorICAgICAgICBpdCBjYXVzZXMgY29t
cGlsZSBlcnJvcnMuIEZvciBleGFtcGxlLCBpbiBHQ0MgNyAoc3BlY2lmaWNhbGx5IEdDQyA3LjMu
MCkgZW52aXJvbm1lbnQsCisgICAgICAgIDxvcHRpb25hbD4gaXMgaW5jbHVkZWQgaW4gPHVub3Jk
ZXJlZF9tYXA+LgorICAgICAgICBXZSBkbyBub3QgZGVmaW5lIHN0ZDo6b3B0aW9uYWwgaW4gV2Vi
S2l0IHNpZGUgaWYgPG9wdGlvbmFsPiBpcyBvZmZlcmVkLgorCisgICAgICAgIEFuZCB3ZSBhbHNv
IHJlbW92ZSBzdGQ6Om9wdGlvbmFsPFQmPiB1c2Ugc2luY2UgdGhpcyBpcyBub3QgYWNjZXB0ZWQg
aW4gQysrMTcuIFVzZQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8VD4+IGluc3RlYWQuCisKKyAgICAgICAgKiB3dGYvRXhwZWN0ZWQuaDoKKyAgICAgICAgY29u
c3RleHByIGRvZXMgbm90IG1lYW4gY29uc3QgaW4gQysrMTcuCisKKyAgICAgICAgKiB3dGYvT3B0
aW9uYWwuaDoKKyAgICAgICAgRG8gbm90IGRlZmluZSBzdGQ6Om9wdGlvbmFsIGlmIDxvcHRpb25h
bD4gaXMgcHJvdmlkZWQuCisKKyAgICAgICAgKFdURjo6dmFsdWVPckNvbXB1dGUpOgorCisgICAg
ICAgICogd3RmL0V4cGVjdGVkLmg6CisgICAgICAgICogd3RmL09wdGlvbmFsLmg6CisgICAgICAg
IChXVEY6OnZhbHVlT3JDb21wdXRlKToKKyAgICAgICAgKiB3dGYvU3RkTGliRXh0cmFzLmg6CisK
IDIwMTgtMDUtMDEgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAg
ICAgICBDb3JyZWN0bHkgZGV0ZWN0IHN0cmluZyBvdmVyZmxvdyB3aGVuIHVzaW5nIHRoZSAnRnVu
Y3Rpb24nIGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZmZWViNjk3ZmQ4YjQ2Y2JmYzViMThl
YjQ4ZTQwNmQyZjk5YTZjMy4uYmI0OTdmMzg2ZGU3MGU1MTY0ZTgzYTBjMDIyM2Y5NzY4NWU2NDEz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTA1LTAxICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBkZWZhdWx0IHN0ZDo6b3B0
aW9uYWwgaWYgaXQgaXMgcHJvdmlkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NTE1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjppY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnNldENvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cGFyc2VTeXN0ZW1Db2xvcik6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXIu
aDoKKyAgICAgICAgKiBkb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhc2V0RE9NU3RyaW5nTWFwOjppdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFzZXRET01TdHJpbmdNYXA6Om5hbWVkSXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjogY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmg6
CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
aW5zZXJ0QWRqYWNlbnRIVE1MKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9ET01FZGl0b3IuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsRm9ybURhdGFTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybEZvcm1EYXRh
U3RyZWFtOjpnZXRQb3N0RGF0YSk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0uaDoKKyAgICAgICAgKiB0ZXN0
aW5nL01vY2tDRE1GYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE1GYWN0b3J5
OjprZXlzRm9yU2Vzc2lvbldpdGhJRCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RN
SW5zdGFuY2U6OnVwZGF0ZUxpY2Vuc2UpOgorICAgICAgICAoV2ViQ29yZTo6IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDRE1GYWN0b3J5Lmg6CisKIDIwMTgtMDUtMDEg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZSBpbiBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNTg1NGQ2ZGI5NjY5ZDU3NGVkMjFkOWQxNjEyY2Q3MmRjNTFlMjU4Ny4u
M2E0YzU1YjY0MmM2Y2FjYmY0MmUxZmM4ZDI2YjExYzE1NDAyMDhlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOC0wNS0wMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFsIGlmIGl0IGlzIHByb3Zp
ZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUx
NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNo
YXJlZC9TYW5kYm94RXh0ZW5zaW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNp
b246OkhhbmRsZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvVG91Y2hCYXJNZW51SXRlbURh
dGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpUb3VjaEJhck1lbnVJdGVtRGF0YTo6ZGVjb2RlKToK
KwogMjAxOC0wNS0wMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBQcm9kdWN0aW9uIGJ1aWxkIGVycm9yIGluIE1pZ3JhdGUgSGVhZGVyIHBoYXNlIHdoZW4gV0tf
QUxURVJOQVRFX0ZSQU1FV09SS1NfRElSIGlzIHNldCB0byBub24tZW1wdHkgdmFsdWUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVkLmggYi9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3Rl
ZC5oCmluZGV4IGRkMDQ1ZTU5ODc1ZTRmNDc2N2ViMmViMTc5YzFjMjcxOWUwYWYyZTIuLmU5YjBl
YzlmOWU2NDVlY2VlZGQ2ZjQwZTQyY2Y4OTE0MDU3MzdhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0V4cGVjdGVkLmgKKysrIGIvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaApAQCAtNTcz
LDUgKzU3Myw1IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEU+IHZvaWQgc3dhcChl
eHBlY3RlZDxULCBFPiYgeCwgZXhwZWN0ZWQ8VCwgRT4mIHkpCiAKIH19fSAvLyBuYW1lc3BhY2Ug
c3RkOjpleHBlcmltZW50YWw6OmZ1bmRhbWVudGFsc192MwogCi1fX0VYUEVDVEVEX0lOTElORV9W
QVJJQUJMRSBjb25zdGV4cHIgc3RkOjpleHBlcmltZW50YWw6OnVuZXhwZWN0ZWRfdCYgdW5leHBl
Y3QgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6dW5leHBlY3Q7CitfX0VYUEVDVEVEX0lOTElORV9WQVJJ
QUJMRSBjb25zdGV4cHIgYXV0byYgdW5leHBlY3QgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6dW5leHBl
Y3Q7CiB0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBFPiB1c2luZyBFeHBlY3RlZCA9IHN0ZDo6ZXhw
ZXJpbWVudGFsOjpleHBlY3RlZDxULCBFPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL09w
dGlvbmFsLmggYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCmluZGV4IGEzZmM1ODkwODM0NWFj
MWIwYTIyNGJjMmYxNzk4NDY5MTZkOWQyZDcuLmRjODVjMDM5MDE4ZGIxMmU2OGNjMjE1Mzc0ZGNl
YmYxMTYzYjI1ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKKysrIGIv
U291cmNlL1dURi93dGYvT3B0aW9uYWwuaApAQCAtNDcsNiArNDcsMTYgQEAKICMgaW5jbHVkZSA8
d3RmL0NvbXBpbGVyLmg+CiAjIGluY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAorI2lmIF9f
aGFzX2luY2x1ZGUoPG9wdGlvbmFsPikKKyMgaW5jbHVkZSA8b3B0aW9uYWw+CisjZW5kaWYKKwor
I2lmIGRlZmluZWQoX19jcHBfbGliX29wdGlvbmFsKSAmJiBfX2NwcF9saWJfb3B0aW9uYWwgPj0g
MjAxNjAzCisKKy8vIFVzZSBkZWZhdWx0IHN0ZDo6b3B0aW9uYWwuCisKKyNlbHNlCisKICMgZGVm
aW5lIFRSMl9PUFRJT05BTF9SRVFVSVJFUyguLi4pIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPF9f
VkFfQVJHU19fOjp2YWx1ZSwgYm9vbD46OnR5cGUgPSBmYWxzZQogCiAjIGlmIGRlZmluZWQgX19H
TlVDX18gLy8gTk9URTogR05VQyBpcyBhbHNvIGRlZmluZWQgZm9yIENsYW5nCkBAIC0xMDEyLDIw
ICsxMDIyLDYgQEAgY29uc3RleHByIG9wdGlvbmFsPFgmPiBtYWtlX29wdGlvbmFsKHN0ZDo6cmVm
ZXJlbmNlX3dyYXBwZXI8WD4gdikKIAogfSAvLyBuYW1lc3BhY2Ugc3RkCiAKLW5hbWVzcGFjZSBX
VEYgewotCi0vLyAtLSBXZWJLaXQgQWRkaXRpb25zIC0tCi10ZW1wbGF0ZSA8Y2xhc3MgT3B0aW9u
YWxUeXBlLCBjbGFzcyBDYWxsYmFjaz4KLUFMV0FZU19JTkxJTkUKLWF1dG8gdmFsdWVPckNvbXB1
dGUoT3B0aW9uYWxUeXBlIG9wdGlvbmFsLCBDYWxsYmFjayBjYWxsYmFjaykgLT4gdHlwZW5hbWUg
T3B0aW9uYWxUeXBlOjp2YWx1ZV90eXBlCi17Ci0gICAgaWYgKG9wdGlvbmFsKQotICAgICAgICBy
ZXR1cm4gKm9wdGlvbmFsOwotICAgIHJldHVybiBjYWxsYmFjaygpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXVEYKLQogbmFtZXNwYWNlIHN0ZAogewogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KQEAg
LTEwNTQsNCArMTA1MCwyMCBAQCBuYW1lc3BhY2Ugc3RkCiAjIHVuZGVmIFRSMl9PUFRJT05BTF9S
RVFVSVJFUwogIyB1bmRlZiBUUjJfT1BUSU9OQUxfQVNTRVJURURfRVhQUkVTU0lPTgogCisjZW5k
aWYgLy8gZGVmaW5lZChfX2NwcF9saWJfb3B0aW9uYWwpCisKK25hbWVzcGFjZSBXVEYgeworCisv
LyAtLSBXZWJLaXQgQWRkaXRpb25zIC0tCit0ZW1wbGF0ZSA8Y2xhc3MgT3B0aW9uYWxUeXBlLCBj
bGFzcyBDYWxsYmFjaz4KK0FMV0FZU19JTkxJTkUKK2F1dG8gdmFsdWVPckNvbXB1dGUoT3B0aW9u
YWxUeXBlIG9wdGlvbmFsLCBDYWxsYmFjayBjYWxsYmFjaykgLT4gdHlwZW5hbWUgT3B0aW9uYWxU
eXBlOjp2YWx1ZV90eXBlCit7CisgICAgaWYgKG9wdGlvbmFsKQorICAgICAgICByZXR1cm4gKm9w
dGlvbmFsOworICAgIHJldHVybiBjYWxsYmFjaygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
KwogdXNpbmcgV1RGOjp2YWx1ZU9yQ29tcHV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1N0ZExpYkV4dHJhcy5oIGIvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKaW5kZXggNDlm
MmUyOTg4ZDkyNmJjNTY1OTVlYmM5YTBjZTkyNzE4NDA4N2FiZS4uNjc2ZjljNmMwZWUzNThlNDYy
OTFmYzlkZGZlODNlYjdlNjY5MzNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3RkTGli
RXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKQEAgLTU0Myw3ICs1
NDMsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBCMCwgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcy4uLiBC
bj4gc3RydWN0IHd0Zl9jb25qdW5jdGlvbl9pbXBsPAogdGVtcGxhdGU8Y2xhc3MuLi4gX0FyZ3M+
IHN0cnVjdCBjb25qdW5jdGlvbiA6IHd0Zl9jb25qdW5jdGlvbl9pbXBsPF9BcmdzLi4uPiB7IH07
CiAjZW5kaWYKIAotI2lmIF9fY3BsdXNwbHVzIDwgMjAxNzAzTAorI2lmIF9fY3BsdXNwbHVzIDwg
MjAxNzAzTCAmJiAoIWRlZmluZWQoX01TQ19GVUxMX1ZFUikgfHwgX01TQ19GVUxMX1ZFUiA8IDE5
MDAyMzkxOCkKIAogLy8gVGhlc2UgYXJlIGlubGluZSB2YXJpYWJsZSBmb3IgQysrMTcgYW5kIGxh
dGVyLgogI2RlZmluZSBfX0lOX1BMQUNFX0lOTElORV9WQVJJQUJMRSBzdGF0aWMgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5jcHAKaW5kZXggODUxYzljODJhZjQwOTdlZWQzNWY2MTBjN2FjZjVkMjVkYmQ0NGIz
NS4uNTM2YzU1MjZhMjhiNTY3YjA1ZjA1ZmM1N2NjMmFjZDUwZjdmYmU3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5jcHAKQEAgLTMwMSwxMiArMzAxLDEyIEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnF1ZXVl
ZEFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUqIHJ0Y0NhbmRpZGF0ZSwgRE9NCiB9CiAK
IC8vIEltcGxlbWVudGF0aW9uIG9mIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvI3Nl
dC1wYy1jb25maWd1cmF0aW9uCi1zdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPFZlY3RvcjxNZWRp
YUVuZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4+IGljZVNlcnZlcnNGcm9tQ29u
ZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiBuZXdDb25maWd1cmF0aW9uLCBzdGQ6Om9wdGlv
bmFsPGNvbnN0IFJUQ0NvbmZpZ3VyYXRpb24mPiBleGlzdGluZ0NvbmZpZ3VyYXRpb24sIGJvb2wg
aXNMb2NhbERlc2NyaXB0aW9uU2V0KQorc3RhdGljIGlubGluZSBFeGNlcHRpb25PcjxWZWN0b3I8
TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlckluZm8+PiBpY2VTZXJ2ZXJzRnJv
bUNvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYgbmV3Q29uZmlndXJhdGlvbiwgc3RkOjpv
cHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IFJUQ0NvbmZpZ3VyYXRpb24+PiBl
eGlzdGluZ0NvbmZpZ3VyYXRpb24sIGJvb2wgaXNMb2NhbERlc2NyaXB0aW9uU2V0KQogewotICAg
IGlmIChleGlzdGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29uZmlndXJhdGlvbi5idW5kbGVQb2xp
Y3kgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5idW5kbGVQb2xpY3kpCisgICAgaWYgKGV4aXN0
aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSAhPSBleGlz
dGluZ0NvbmZpZ3VyYXRpb24tPmdldCgpLmJ1bmRsZVBvbGljeSkKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIkljZVRyYW5zcG9ydFBvbGljeSBk
b2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiIH07CiAKLSAgICBpZiAoZXhpc3RpbmdDb25m
aWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUgIT0gZXhp
c3RpbmdDb25maWd1cmF0aW9uLT5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBpc0xvY2FsRGVzY3Jp
cHRpb25TZXQpCisgICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0
aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplICE9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi0+Z2V0KCku
aWNlQ2FuZGlkYXRlUG9vbFNpemUgJiYgaXNMb2NhbERlc2NyaXB0aW9uU2V0KQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiSWNlVHJhbnNwb3J0
UG9saWN5IHBvb2wgc2l6ZSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb29sIHNpemUiIH07CiAK
ICAgICBWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlckluZm8+IHNl
cnZlcnM7CkBAIC0zNjAsNyArMzYwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5l
Y3Rpb246OnNldENvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3UKIAogICAg
IElORk9fTE9HKExPR0lERU5USUZJRVIpOwogCi0gICAgYXV0byBzZXJ2ZXJzID0gaWNlU2VydmVy
c0Zyb21Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24sIG1fY29uZmlndXJhdGlvbiwgbV9iYWNr
ZW5kLT5pc0xvY2FsRGVzY3JpcHRpb25TZXQoKSk7CisgICAgYXV0byBzZXJ2ZXJzID0gaWNlU2Vy
dmVyc0Zyb21Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24sIHN0ZDo6Y3JlZihtX2NvbmZpZ3Vy
YXRpb24pLCBtX2JhY2tlbmQtPmlzTG9jYWxEZXNjcmlwdGlvblNldCgpKTsKICAgICBpZiAoc2Vy
dmVycy5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHNlcnZlcnMucmVsZWFzZUV4Y2Vw
dGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKaW5kZXggOTU0
YWIwODJlOWU2NjNiNjViYTE0NTg2NGM3NjdhY2JkNjdkMzZkNi4uMzNmNTJlMWE2NTNlNWJkMzBm
ZjY0Y2RkZjIwMjBkNzNiZmE1MGU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyLmNwcApAQCAtMTc4LDE0ICsxNzgsMTQgQEAgQ29sb3IgQ1NTUGFyc2VyOjpwYXJzZUNvbG9y
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBib29sIHN0cmljdCkKICAgICByZXR1cm4gcHJpbWl0aXZl
VmFsdWUuY29sb3IoKTsKIH0KIAotQ29sb3IgQ1NTUGFyc2VyOjpwYXJzZVN5c3RlbUNvbG9yKGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBzdGQ6Om9wdGlvbmFsPGNvbnN0IENTU1BhcnNlckNvbnRleHQm
PiBjb250ZXh0KQorQ29sb3IgQ1NTUGFyc2VyOjpwYXJzZVN5c3RlbUNvbG9yKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQ1NT
UGFyc2VyQ29udGV4dD4+IGNvbnRleHQpCiB7CiAgICAgQ1NTVmFsdWVJRCBpZCA9IGNzc1ZhbHVl
S2V5d29yZElEKHN0cmluZyk7CiAgICAgaWYgKCFTdHlsZUNvbG9yOjppc1N5c3RlbUNvbG9yKGlk
KSkKICAgICAgICAgcmV0dXJuIENvbG9yKCk7CiAKICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9uczsKLSAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0LnZhbHVlKCkudXNl
U3lzdGVtQXBwZWFyYW5jZSkKKyAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0LT5nZXQoKS51c2VT
eXN0ZW1BcHBlYXJhbmNlKQogICAgICAgICBvcHRpb25zIHw9IFN0eWxlQ29sb3I6Ok9wdGlvbnM6
OlVzZVN5c3RlbUFwcGVhcmFuY2U7CiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24o
KS5zeXN0ZW1Db2xvcihpZCwgb3B0aW9ucyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXIuaAppbmRleCBkOTJmYTVhNzZjM2QwYzY2ZGVjYmU4MzhkYWNjNDRkMjVkNWI0YWE0Li5h
ZWU3OGU1N2ExZjc5MzA3ZTQyMDE3NzJkNDI0Njk0OGIxMTU4MGJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyLmgKQEAgLTc4LDcgKzc4LDcgQEAgY2xhc3MgQ1NTUGFyc2VyIHsK
ICAgICBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlVmFsdWVXaXRoVmFyaWFibGVSZWZlcmVuY2VzKENT
U1Byb3BlcnR5SUQsIGNvbnN0IENTU1ZhbHVlJiwgY29uc3QgQ3VzdG9tUHJvcGVydHlWYWx1ZU1h
cCYgY3VzdG9tUHJvcGVydGllcywgVGV4dERpcmVjdGlvbiwgV3JpdGluZ01vZGUpOwogCiAgICAg
c3RhdGljIENvbG9yIHBhcnNlQ29sb3IoY29uc3QgU3RyaW5nJiwgYm9vbCBzdHJpY3QgPSBmYWxz
ZSk7Ci0gICAgc3RhdGljIENvbG9yIHBhcnNlU3lzdGVtQ29sb3IoY29uc3QgU3RyaW5nJiwgc3Rk
OjpvcHRpb25hbDxjb25zdCBDU1NQYXJzZXJDb250ZXh0Jj4pOworICAgIHN0YXRpYyBDb2xvciBw
YXJzZVN5c3RlbUNvbG9yKGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVu
Y2Vfd3JhcHBlcjxjb25zdCBDU1NQYXJzZXJDb250ZXh0Pj4pOwogCiBwcml2YXRlOgogICAgIFBh
cnNlUmVzdWx0IHBhcnNlVmFsdWUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyYsIENTU1Byb3BlcnR5
SUQsIGNvbnN0IFN0cmluZyYsIGJvb2wgaW1wb3J0YW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhc2V0RE9NU3RyaW5nTWFwLmNwcAppbmRleCBmMmQ4NDIwN2I5N2EzMzY0OTU0ZDczMGExMGI0
ODhlM2UzODNjNjQ4Li44ZTg2YWVlZmU1ZGM3ODg1Mzc3ZmFjYzkyZjZjZGM1YzU1NTEyMmM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCkBAIC0xODgsNyAr
MTg4LDcgQEAgVmVjdG9yPFN0cmluZz4gRGF0YXNldERPTVN0cmluZ01hcDo6c3VwcG9ydGVkUHJv
cGVydHlOYW1lcygpIGNvbnN0CiAgICAgcmV0dXJuIG5hbWVzOwogfQogCi1zdGQ6Om9wdGlvbmFs
PGNvbnN0IEF0b21pY1N0cmluZyY+IERhdGFzZXRET01TdHJpbmdNYXA6Oml0ZW0oY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dy
YXBwZXI8Y29uc3QgQXRvbWljU3RyaW5nPj4gRGF0YXNldERPTVN0cmluZ01hcDo6aXRlbShjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgY29uc3QKIHsKICAgICBpZiAobV9lbGVtZW50Lmhhc0F0
dHJpYnV0ZXMoKSkgewogICAgICAgICBBdHRyaWJ1dGVJdGVyYXRvckFjY2Vzc29yIGF0dHJpYnV0
ZUl0ZXJhdG9yQWNjZXNzb3IgPSBtX2VsZW1lbnQuYXR0cmlidXRlc0l0ZXJhdG9yKCk7CkBAIC0x
OTgsMTIgKzE5OCwxMiBAQCBzdGQ6Om9wdGlvbmFsPGNvbnN0IEF0b21pY1N0cmluZyY+IERhdGFz
ZXRET01TdHJpbmdNYXA6Oml0ZW0oY29uc3QgU3RyaW5nJiBwcm9wZQogICAgICAgICAgICAgLy8g
QnVpbGRpbmcgYSBuZXcgQXRvbWljU3RyaW5nIGluIHRoYXQgY2FzZSBpcyBvdmVya2lsbCBzbyB3
ZSBkbyBhIGRpcmVjdCBjaGFyYWN0ZXIgY29tcGFyaXNvbi4KICAgICAgICAgICAgIGNvbnN0IEF0
dHJpYnV0ZSYgYXR0cmlidXRlID0gKmF0dHJpYnV0ZUl0ZXJhdG9yQWNjZXNzb3IuYmVnaW4oKTsK
ICAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWVNYXRjaGVzQXR0cmlidXRlTmFtZShwcm9wZXJ0
eU5hbWUsIGF0dHJpYnV0ZS5sb2NhbE5hbWUoKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGF0
dHJpYnV0ZS52YWx1ZSgpOworICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OmNyZWYoYXR0cmli
dXRlLnZhbHVlKCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQXRvbWljU3RyaW5n
IGF0dHJpYnV0ZU5hbWUgPSBjb252ZXJ0UHJvcGVydHlOYW1lVG9BdHRyaWJ1dGVOYW1lKHByb3Bl
cnR5TmFtZSk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlIDog
YXR0cmlidXRlSXRlcmF0b3JBY2Nlc3NvcikgewogICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1
dGUubG9jYWxOYW1lKCkgPT0gYXR0cmlidXRlTmFtZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGF0dHJpYnV0ZS52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpj
cmVmKGF0dHJpYnV0ZS52YWx1ZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
QEAgLTIxMyw3ICsyMTMsOSBAQCBzdGQ6Om9wdGlvbmFsPGNvbnN0IEF0b21pY1N0cmluZyY+IERh
dGFzZXRET01TdHJpbmdNYXA6Oml0ZW0oY29uc3QgU3RyaW5nJiBwcm9wZQogCiBTdHJpbmcgRGF0
YXNldERPTVN0cmluZ01hcDo6bmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29u
c3QKIHsKLSAgICByZXR1cm4gaXRlbShuYW1lKS52YWx1ZV9vcihTdHJpbmcgeyB9KTsKKyAgICBp
ZiAoYXV0byB2YWx1ZSA9IGl0ZW0obmFtZSkpCisgICAgICAgIHJldHVybiB2YWx1ZS0+Z2V0KCk7
CisgICAgcmV0dXJuIFN0cmluZyB7IH07CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IERhdGFzZXRE
T01TdHJpbmdNYXA6OnNldE5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmlu
Z01hcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaAppbmRleCA0
ODNmNzYzY2MxNmNmOTY0MWJlYTUzZjRkYmU2OWI0ODNiYTFiN2QzLi5kNmQxMGQxMjYxMjJkY2Nj
OTk3ZDk3OGY1ZWEyNTRjMzIyNGZmZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YXNldERPTVN0cmluZ01hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9N
U3RyaW5nTWFwLmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgRGF0YXNldERPTVN0cmluZ01hcCBm
aW5hbCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewogICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7
IHJldHVybiBtX2VsZW1lbnQ7IH0KIAogcHJpdmF0ZToKLSAgICBzdGQ6Om9wdGlvbmFsPGNvbnN0
IEF0b21pY1N0cmluZyY+IGl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKKyAgICBzdGQ6
Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQXRvbWljU3RyaW5nPj4gaXRl
bShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogCiAgICAgRWxlbWVudCYgbV9lbGVtZW50Owog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBhNDMyMzk3ZDcxNzliMTQxZDIwZGY4MGZjYmU0
Njk1M2NiMTg2NDk2Li4yNzNkOGNhZTcyNmFkYWE1NmJlNTUwZTIwYTcwYmFlMjY3MWJhZDVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zNzMzLDcgKzM3MzMsNyBAQCBzdGF0aWMgRXhjZXB0
aW9uT3I8UmVmPEVsZW1lbnQ+PiBjb250ZXh0RWxlbWVudEZvckluc2VydGlvbihjb25zdCBTdHJp
bmcmIHdoZXJlLAogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8vRE9NLVBhcnNpbmcvI2Rv
bS1lbGVtZW50LWluc2VydGFkamFjZW50aHRtbAotRXhjZXB0aW9uT3I8dm9pZD4gRWxlbWVudDo6
aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgbWFy
a3VwLCBzdGQ6Om9wdGlvbmFsPE5vZGVWZWN0b3ImPiBhZGRlZE5vZGVzKQorRXhjZXB0aW9uT3I8
dm9pZD4gRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNv
bnN0IFN0cmluZyYgbWFya3VwLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8
Tm9kZVZlY3Rvcj4+IGFkZGVkTm9kZXMpCiB7CiAgICAgLy8gU3RlcHMgMSBhbmQgMi4KICAgICBh
dXRvIGNvbnRleHRFbGVtZW50ID0gY29udGV4dEVsZW1lbnRGb3JJbnNlcnRpb24od2hlcmUsICp0
aGlzKTsKQEAgLTM3NDcsNyArMzc0Nyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEVsZW1lbnQ6Omlu
c2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmCiAgICAg
aWYgKFVOTElLRUxZKGFkZGVkTm9kZXMpKSB7CiAgICAgICAgIC8vIE11c3QgYmUgY2FsbGVkIGJl
Zm9yZSBpbnNlcnRBZGphY2VudCwgYXMgb3RoZXJ3aXNlIHRoZSBjaGlsZHJlbiBvZiBmcmFnbWVu
dCB3aWxsIGJlIG1vdmVkCiAgICAgICAgIC8vIHRvIHRoZWlyIG5ldyBwYXJlbnQgYW5kIHdpbGwg
YmUgaGFyZGVyIHRvIGtlZXAgdHJhY2sgb2YuCi0gICAgICAgICphZGRlZE5vZGVzID0gY29sbGVj
dENoaWxkTm9kZXMoZnJhZ21lbnQucmV0dXJuVmFsdWUoKSk7CisgICAgICAgIGFkZGVkTm9kZXMt
PmdldCgpID0gY29sbGVjdENoaWxkTm9kZXMoZnJhZ21lbnQucmV0dXJuVmFsdWUoKSk7CiAgICAg
fQogCiAgICAgLy8gU3RlcCA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOWU1MmQzMzE1NTM5OTQ1
NDY1NzAzMjE0MTE3ZDdiMjA2YTNmMmFhMy4uOWFmNDExMzA0ZjRkOTk4YWFiMTFiOTI0YWY5MWQy
MTkwMDA2ZmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zMTQsNyArMzE0LDcgQEAgY2xhc3Mg
RWxlbWVudCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFRhYkluZGV4KGludCk7CiAgICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gZm9jdXNEZWxl
Z2F0ZSgpOwogCi0gICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0
IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgc3RkOjpvcHRpb25hbDxOb2RlVmVj
dG9yJj4gYWRkZWROb2Rlcyk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRI
VE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgc3RkOjpvcHRpb25h
bDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPE5vZGVWZWN0b3I+PiBhZGRlZE5vZGVzKTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPEVsZW1lbnQqPiBpbnNlcnRBZGphY2VudEVsZW1l
bnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVudCYgbmV3Q2hpbGQpOwogICAgIFdFQkNPUkVf
RVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IGluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcm
IHdoZXJlLCBjb25zdCBTdHJpbmcmIGh0bWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0RPTUVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NRWRp
dG9yLmNwcAppbmRleCAzNDkzYjAxN2NhMDZiOWYyOTc2MjMyN2ZhMzEzNTNkYjhmOTU4Njk4Li41
OWVjY2Q0MDVjMDM3ZWYyYTQ0MGM0ZDU1MWM5Y2JjYTEyMWM2YWEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvRE9NRWRpdG9yLmNwcApAQCAtMjY2LDcgKzI2Niw3IEBAIGNsYXNzIERPTUVkaXRv
cjo6SW5zZXJ0QWRqYWNlbnRIVE1MQWN0aW9uIGZpbmFsIDogcHVibGljIEluc3BlY3Rvckhpc3Rv
cnk6OkFjdGlvCiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZWRvKCkgZmluYWwKICAgICB7Ci0g
ICAgICAgIGF1dG8gcmVzdWx0ID0gbV9lbGVtZW50LT5pbnNlcnRBZGphY2VudEhUTUwobV9wb3Np
dGlvbiwgbV9odG1sLCBtX2FkZGVkTm9kZXMpOworICAgICAgICBhdXRvIHJlc3VsdCA9IG1fZWxl
bWVudC0+aW5zZXJ0QWRqYWNlbnRIVE1MKG1fcG9zaXRpb24sIG1faHRtbCwgc3RkOjpyZWYobV9h
ZGRlZE5vZGVzKSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgcmV0dXJuIHsg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
Rm9ybURhdGFTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxGb3JtRGF0YVN0cmVhbS5jcHAKaW5kZXggODRmNWUyYjk0MmI4YTIxY2MyYzQ1MDBmYzM1
ZTExZGYwOTVhNjZlOC4uMmFkNmExODcyNGIyZmFjMDQyNDA2NTYwMWM1MjlhYWY5MmM5ODI0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3Jt
RGF0YVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxGb3JtRGF0YVN0cmVhbS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBDdXJsRm9ybURh
dGFTdHJlYW06OmNsZWFuKCkKICAgICB9CiB9CiAKLXN0ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9y
PGNoYXI+Jj4gQ3VybEZvcm1EYXRhU3RyZWFtOjpnZXRQb3N0RGF0YSgpCitzdGQ6Om9wdGlvbmFs
PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgVmVjdG9yPGNoYXI+Pj4gQ3VybEZvcm1EYXRh
U3RyZWFtOjpnZXRQb3N0RGF0YSgpCiB7CiAgICAgaWYgKCFtX2Zvcm1EYXRhKQogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtNzcsNyArNzcsNyBAQCBzdGQ6Om9wdGlvbmFsPGNvbnN0
IFZlY3RvcjxjaGFyPiY+IEN1cmxGb3JtRGF0YVN0cmVhbTo6Z2V0UG9zdERhdGEoKQogICAgIGlm
ICghbV9wb3N0RGF0YSkKICAgICAgICAgbV9wb3N0RGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8VmVj
dG9yPGNoYXI+PihtX2Zvcm1EYXRhLT5mbGF0dGVuKCkpOwogCi0gICAgcmV0dXJuICptX3Bvc3RE
YXRhOworICAgIHJldHVybiBzdGQ6OmNyZWYoKm1fcG9zdERhdGEpOwogfQogCiBib29sIEN1cmxG
b3JtRGF0YVN0cmVhbTo6c2hvdWxkVXNlQ2h1bmtUcmFuc2ZlcigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmgK
aW5kZXggZDFjYTFhZDVmMDBhNjc2ZmZhZTIwOTYwMjc2N2RiMjZiNTliMDBkMS4uZDMzZGY3ODAz
M2ExNDU3OWMxZWNiMjViODRlNWRmMDIxN2ExOThmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0uaApAQCAt
NDEsNyArNDEsNyBAQCBjbGFzcyBDdXJsRm9ybURhdGFTdHJlYW0gewogCiAgICAgc2l6ZV90IGVs
ZW1lbnRTaXplKCkgeyByZXR1cm4gbV9mb3JtRGF0YSA/IG1fZm9ybURhdGEtPmVsZW1lbnRzKCku
c2l6ZSgpIDogMDsgfQogCi0gICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8Y2hhcj4mPiBn
ZXRQb3N0RGF0YSgpOworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxj
b25zdCBWZWN0b3I8Y2hhcj4+PiBnZXRQb3N0RGF0YSgpOwogICAgIGJvb2wgc2hvdWxkVXNlQ2h1
bmtUcmFuc2ZlcigpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbFNpemUoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRleCA5NWY3ZTZiZGIyOGM4
NWZlNjZmMDRlMjc4MDAwNTJkNzQzODllN2FkLi40NDVlYTliNTg3OTc0OGY4ZDYwZDYyOWY5MzNj
OTNlMDk5NzAxYTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1G
YWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNw
cApAQCAtODEsMTIgKzgxLDEyIEBAIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gTW9ja0NETUZh
Y3Rvcnk6OnJlbW92ZUtleXNGcm9tU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpCiAgICAgcmV0dXJu
IFdURk1vdmUoaXQtPnZhbHVlKTsKIH0KIAotc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8UmVm
PFNoYXJlZEJ1ZmZlcj4+Jj4gTW9ja0NETUZhY3Rvcnk6OmtleXNGb3JTZXNzaW9uV2l0aElEKGNv
bnN0IFN0cmluZyYgaWQpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8Y29uc3QgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4+IE1vY2tDRE1GYWN0b3J5OjprZXlz
Rm9yU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogewogICAgIGF1dG8gaXQg
PSBtX3Nlc3Npb25zLmZpbmQoaWQpOwogICAgIGlmIChpdCA9PSBtX3Nlc3Npb25zLmVuZCgpKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpdC0+dmFsdWU7CisgICAg
cmV0dXJuIHN0ZDo6Y3JlZihpdC0+dmFsdWUpOwogfQogCiB2b2lkIE1vY2tDRE1GYWN0b3J5Ojpz
ZXRTdXBwb3J0ZWREYXRhVHlwZXMoVmVjdG9yPFN0cmluZz4mJiB0eXBlcykKQEAgLTMxNCwxMSAr
MzE0LDExIEBAIHZvaWQgTW9ja0NETUluc3RhbmNlOjp1cGRhdGVMaWNlbnNlKGNvbnN0IFN0cmlu
ZyYgc2Vzc2lvbklELCBMaWNlbnNlVHlwZSwgY29uc3QKIAogICAgIHN0ZDo6b3B0aW9uYWw8S2V5
U3RhdHVzVmVjdG9yPiBjaGFuZ2VkS2V5czsKICAgICBpZiAocmVzcG9uc2VWZWN0b3IuY29udGFp
bnMoU3RyaW5nKEFTQ0lJTGl0ZXJhbCgia2V5cy1jaGFuZ2VkIikpKSkgewotICAgICAgICBzdGQ6
Om9wdGlvbmFsPGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4mPiBrZXlzID0gZmFjdG9y
eS0+a2V5c0ZvclNlc3Npb25XaXRoSUQoc2Vzc2lvbklEKTsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+
PiBrZXlzID0gZmFjdG9yeS0+a2V5c0ZvclNlc3Npb25XaXRoSUQoc2Vzc2lvbklEKTsKICAgICAg
ICAgaWYgKGtleXMpIHsKICAgICAgICAgICAgIEtleVN0YXR1c1ZlY3RvciBrZXlTdGF0dXNWZWN0
b3I7Ci0gICAgICAgICAgICBrZXlTdGF0dXNWZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShr
ZXlzLT5zaXplKCkpOwotICAgICAgICAgICAgZm9yIChhdXRvJiBrZXkgOiAqa2V5cykKKyAgICAg
ICAgICAgIGtleVN0YXR1c1ZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGtleXMtPmdldCgp
LnNpemUoKSk7CisgICAgICAgICAgICBmb3IgKGF1dG8mIGtleSA6ICgqa2V5cykuZ2V0KCkpCiAg
ICAgICAgICAgICAgICAga2V5U3RhdHVzVmVjdG9yLnVuY2hlY2tlZEFwcGVuZCh7IGtleS5jb3B5
UmVmKCksIEtleVN0YXR1czo6VXNhYmxlIH0pOwogCiAgICAgICAgICAgICBjaGFuZ2VkS2V5cyA9
IFdURk1vdmUoa2V5U3RhdHVzVmVjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja0NETUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZh
Y3RvcnkuaAppbmRleCAyMzdiMmIzNjQyNjMzMGJjNzVhMDRkZjM1MGUwODFhYjc4ODYxODQzLi4z
ZTZkYjIxZDAxYmNkNWE1MGFmNWU5NzY1MGMzZjE0YjhiNzk2NDhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oCkBAIC03Myw3ICs3Myw3IEBAIGNsYXNzIE1vY2tDRE1G
YWN0b3J5IDogcHVibGljIFJlZkNvdW50ZWQ8TW9ja0NETUZhY3Rvcnk+LCBwcml2YXRlIENETUZh
Y3RvcnkgewogICAgIGJvb2wgaGFzU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKSB7IHJl
dHVybiBtX3Nlc3Npb25zLmNvbnRhaW5zKGlkKTsgfQogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbldp
dGhJRChjb25zdCBTdHJpbmcmIGlkKSB7IG1fc2Vzc2lvbnMucmVtb3ZlKGlkKTsgfQogICAgIHZv
aWQgYWRkS2V5c1RvU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkLCBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+JiYpOwotICAgIHN0ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+PiY+IGtleXNGb3JTZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQpIGNvbnN0
OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0b3I8
UmVmPFNoYXJlZEJ1ZmZlcj4+Pj4ga2V5c0ZvclNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBp
ZCkgY29uc3Q7CiAgICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiByZW1vdmVLZXlzRnJvbVNl
c3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKaW5kZXggMWY3NjgwODU2NGVkNGRiNmU1YzBjZTFlYjYz
MDIxMTcxZTkwZWQxYi4uY2I1M2FhZGU2M2UzOWYzMmUyYmY2MjY3OGRlN2MzY2I5NDJkZjM4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaApAQCAtMTIwLDcgKzEyMCw3
IEBAIGNsYXNzIFNhbmRib3hFeHRlbnNpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxTYW5kYm94RXh0
ZW5zaW9uPiB7CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpIYW5kbGUoKSB7IH0K
IGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6On5IYW5kbGUoKSB7IH0KIGlubGluZSB2
b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
IHsgfQotaW5saW5lIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImKSB7IHJldHVybiB7eyB9
fTsgfQoraW5saW5lIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImKSB7IHJldHVybiBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgeyB9OyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXk6OkhhbmRsZUFycmF5KCkgeyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXk6On5IYW5kbGVBcnJheSgpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlQXJyYXk6OmFsbG9jYXRlKHNpemVfdCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0YS5jcHAKaW5kZXggZDAyMjZiYjlhOWVjMWJhZTE4MzVi
YmRkZTEzNDhjMTI4NjZiZDEwMy4uM2NkZWU4MmQwYWRmMzQzNWM4ZWQ5Y2ZjZDdkYmQ0NjM5Zjgx
MDE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvVG91Y2hCYXJNZW51SXRlbURh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNw
cApAQCAtNjUsNyArNjUsNyBAQCBzdGQ6Om9wdGlvbmFsPFRvdWNoQmFyTWVudUl0ZW1EYXRhPiBU
b3VjaEJhck1lbnVJdGVtRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZAogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LnByaW9yaXR5KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICAKLSAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOworICAgIHJldHVybiBzdGQ6Om1h
a2Vfb3B0aW9uYWwoV1RGTW92ZShyZXN1bHQpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L2NtYWtlL09wdGlvbnNNU1ZDLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNNU1ZDLmNtYWtl
CmluZGV4IDdmMzc4ZmY4YWE5Zjc2Y2ZiYzZiNjExMWY5Zjk4M2Q2MmY2MzY2MDUuLmFjMThkZTRi
YWJjMDJmZDRhMmQ3YmMzNmExZWI0ZjU1N2M0ZjMyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFr
ZS9PcHRpb25zTVNWQy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc01TVkMuY21ha2UK
QEAgLTMyLDYgKzMyLDkgQEAgYWRkX2NvbXBpbGVfb3B0aW9ucygvR3ktIC9vcGVubXAtIC9HRi0p
CiAjIFNwZWNpZnkgdGhlIHNvdXJjZSBjb2RlIGVuY29kaW5nCiBhZGRfY29tcGlsZV9vcHRpb25z
KC91dGYtOCAvdmFsaWRhdGUtY2hhcnNldCkKIAorIyBFbmFibGUgQysrMTcKK2FkZF9jb21waWxl
X29wdGlvbnMoL3N0ZDpjKytsYXRlc3QpCisKIGlmICgke0NNQUtFX0JVSUxEX1RZUEV9IE1BVENI
RVMgIkRlYnVnIikKICAgICBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9T
SEFSRURfTElOS0VSX0ZMQUdTfSAvT1BUOk5PUkVGIC9PUFQ6Tk9JQ0YiKQogICAgIHNldChDTUFL
RV9FWEVfTElOS0VSX0ZMQUdTICIke0NNQUtFX0VYRV9MSU5LRVJfRkxBR1N9IC9PUFQ6Tk9SRUYg
L09QVDpOT0lDRiIpCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMmE3
MzZkZmM0N2Q2OTY0MDhjNzM2Nzg3ZWFmYmZmZGIzZDlkMTQyYS4uYjYxNDQ2ZGQzYjBhNjBhZDRj
ZGMzNWJkNTIzMDllODJmMTA0ZTVmNiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTA1LTAxICBZdXN1a2UgU3V6dWtpICA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBkZWZhdWx0IHN0ZDo6b3B0aW9uYWwgaWYg
aXQgaXMgcHJvdmlkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4NTE1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNNU1ZDLmNtYWtlOgorCiAyMDE4LTA1LTAxICBM
ZW8gQmFsdGVyICA8bGVvbmFyZG8uYmFsdGVyQGdtYWlsLmNvbT4KIAogICAgICAgICBBdXRvIHNh
dmUgdGhlIHJlc3VsdHMgZm9yIFRlc3QyNjIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339263</attachid>
            <date>2018-05-01 20:25:29 -0700</date>
            <delta_ts>2018-05-03 17:03:42 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-185159-20180502122528.patch</filename>
            <type>text/plain</type>
            <size>23533</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4MWIxNjRjOTMzZWIyYWQyMjFlMzY1
YTdlNWFhYzljZjM0NmE1ZjcuLmRmYzFhZmVjYmI2ODQzMmJkMTBlY2ZiZWNiMDlkNjk0YTQ2M2Ex
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBp
ZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm93IEMrKzE3IGZsYWcgaXMgZW5hYmxlZC4gSXQgbWVhbnMgdGhhdCBhbnkgc3Rh
bmRhcmQgbGlicmFyaWVzIGNhbiB1c2UgPG9wdGlvbmFsPiBpbnRlcm5hbGx5LgorICAgICAgICBJ
ZiB3ZSBkZWZpbmUgc3RkOjpvcHRpb25hbCByZWdhcmRsZXNzIG9mIHRoZSBleGlzdGVuY2Ugb2Yg
dGhlIHN0YW5kYXJkIGxpYnJhcnkncyA8b3B0aW9uYWw+LAorICAgICAgICBpdCBjYXVzZXMgY29t
cGlsZSBlcnJvcnMuIEZvciBleGFtcGxlLCBpbiBHQ0MgNyAoc3BlY2lmaWNhbGx5IEdDQyA3LjMu
MCkgZW52aXJvbm1lbnQsCisgICAgICAgIDxvcHRpb25hbD4gaXMgaW5jbHVkZWQgaW4gPHVub3Jk
ZXJlZF9tYXA+LgorICAgICAgICBXZSBkbyBub3QgZGVmaW5lIHN0ZDo6b3B0aW9uYWwgaW4gV2Vi
S2l0IHNpZGUgaWYgPG9wdGlvbmFsPiBpcyBvZmZlcmVkLgorCisgICAgICAgIEFuZCB3ZSBhbHNv
IHJlbW92ZSBzdGQ6Om9wdGlvbmFsPFQmPiB1c2Ugc2luY2UgdGhpcyBpcyBub3QgYWNjZXB0ZWQg
aW4gQysrMTcuIFVzZQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8VD4+IGluc3RlYWQuCisKKyAgICAgICAgKiB3dGYvRXhwZWN0ZWQuaDoKKyAgICAgICAgY29u
c3RleHByIGRvZXMgbm90IG1lYW4gY29uc3QgaW4gQysrMTcuCisgICAgICAgICogd3RmL09wdGlv
bmFsLmg6CisgICAgICAgIERvIG5vdCBkZWZpbmUgc3RkOjpvcHRpb25hbCBpZiA8b3B0aW9uYWw+
IGlzIHByb3ZpZGVkLgorICAgICAgICAoV1RGOjp2YWx1ZU9yQ29tcHV0ZSk6CisgICAgICAgICog
d3RmL1N0ZExpYkV4dHJhcy5oOgorCiAyMDE4LTA1LTAxICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jp
c3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgQ29ycmVjdGx5IGRldGVjdCBzdHJpbmcgb3ZlcmZs
b3cgd2hlbiB1c2luZyB0aGUgJ0Z1bmN0aW9uJyBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2
ZmVlYjY5N2ZkOGI0NmNiZmM1YjE4ZWI0OGU0MDZkMmY5OWE2YzMuLmJiNDk3ZjM4NmRlNzBlNTE2
NGU4M2EwYzAyMjNmOTc2ODVlNjQxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAx
OC0wNS0wMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFsIGlmIGl0IGlzIHByb3ZpZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUxNTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aWNlU2VydmVyc0Zy
b21Db25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpz
ZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmg6CisgICAgICAgICogZG9tL0RhdGFzZXRET01TdHJpbmdN
YXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YXNldERPTVN0cmluZ01hcDo6aXRlbSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhc2V0RE9NU3RyaW5nTWFwOjpuYW1lZEl0ZW0gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
RGF0YXNldERPTVN0cmluZ01hcC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTCk6CisgICAgICAgICogZG9t
L0VsZW1lbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvRE9NRWRpdG9yLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkN1cmxGb3JtRGF0YVN0cmVhbTo6Z2V0UG9zdERhdGEpOgorICAgICAgICAoKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3Ry
ZWFtLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6a2V5c0ZvclNlc3Npb25XaXRoSUQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0NETUluc3RhbmNlOjp1cGRhdGVMaWNlbnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5oOgorCiAyMDE4LTA1LTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUgaW4g
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4NTRkNmRiOTY2OWQ1NzRlZDIx
ZDlkMTYxMmNkNzJkYzUxZTI1ODcuLjNhNGM1NWI2NDJjNmNhY2JmNDJlMWZjOGQyNmIxMWMxNTQw
MjA4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMDUtMDEgIFl1c3VrZSBTdXp1
a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpv
cHRpb25hbCBpZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAo
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VG91Y2hCYXJN
ZW51SXRlbURhdGE6OmRlY29kZSk6CisKIDIwMTgtMDUtMDEgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvZHVjdGlvbiBidWlsZCBlcnJvciBpbiBNaWdyYXRl
IEhlYWRlciBwaGFzZSB3aGVuIFdLX0FMVEVSTkFURV9GUkFNRVdPUktTX0RJUiBpcyBzZXQgdG8g
bm9uLWVtcHR5IHZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oIGIv
U291cmNlL1dURi93dGYvRXhwZWN0ZWQuaAppbmRleCBkZDA0NWU1OTg3NWU0ZjQ3NjdlYjJlYjE3
OWMxYzI3MTllMGFmMmUyLi5lOWIwZWM5ZjllNjQ1ZWNlZWRkNmY0MGU0MmNmODkxNDA1NzM3YTU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0V4cGVjdGVkLmgKQEAgLTU3Myw1ICs1NzMsNSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBFPiB2b2lkIHN3YXAoZXhwZWN0ZWQ8VCwgRT4mIHgsIGV4cGVjdGVkPFQsIEU+JiB5
KQogCiB9fX0gLy8gbmFtZXNwYWNlIHN0ZDo6ZXhwZXJpbWVudGFsOjpmdW5kYW1lbnRhbHNfdjMK
IAotX19FWFBFQ1RFRF9JTkxJTkVfVkFSSUFCTEUgY29uc3RleHByIHN0ZDo6ZXhwZXJpbWVudGFs
Ojp1bmV4cGVjdGVkX3QmIHVuZXhwZWN0ID0gc3RkOjpleHBlcmltZW50YWw6OnVuZXhwZWN0Owor
X19FWFBFQ1RFRF9JTkxJTkVfVkFSSUFCTEUgY29uc3RleHByIGF1dG8mIHVuZXhwZWN0ID0gc3Rk
OjpleHBlcmltZW50YWw6OnVuZXhwZWN0OwogdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgRT4gdXNp
bmcgRXhwZWN0ZWQgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6ZXhwZWN0ZWQ8VCwgRT47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oIGIvU291cmNlL1dURi93dGYvT3B0aW9uYWwu
aAppbmRleCBhM2ZjNTg5MDgzNDVhYzFiMGEyMjRiYzJmMTc5ODQ2OTE2ZDlkMmQ3Li5kYzg1YzAz
OTAxOGRiMTJlNjhjYzIxNTM3NGRjZWJmMTE2M2IyNWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9PcHRpb25hbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKQEAgLTQ3LDYg
KzQ3LDE2IEBACiAjIGluY2x1ZGUgPHd0Zi9Db21waWxlci5oPgogIyBpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxvcHRpb25hbD4pCisjIGluY2x1ZGUg
PG9wdGlvbmFsPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fY3BwX2xpYl9vcHRpb25hbCkgJiYg
X19jcHBfbGliX29wdGlvbmFsID49IDIwMTYwMworCisvLyBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlv
bmFsLgorCisjZWxzZQorCiAjIGRlZmluZSBUUjJfT1BUSU9OQUxfUkVRVUlSRVMoLi4uKSB0eXBl
bmFtZSBzdGQ6OmVuYWJsZV9pZjxfX1ZBX0FSR1NfXzo6dmFsdWUsIGJvb2w+Ojp0eXBlID0gZmFs
c2UKIAogIyBpZiBkZWZpbmVkIF9fR05VQ19fIC8vIE5PVEU6IEdOVUMgaXMgYWxzbyBkZWZpbmVk
IGZvciBDbGFuZwpAQCAtMTAxMiwyMCArMTAyMiw2IEBAIGNvbnN0ZXhwciBvcHRpb25hbDxYJj4g
bWFrZV9vcHRpb25hbChzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFg+IHYpCiAKIH0gLy8gbmFtZXNw
YWNlIHN0ZAogCi1uYW1lc3BhY2UgV1RGIHsKLQotLy8gLS0gV2ViS2l0IEFkZGl0aW9ucyAtLQot
dGVtcGxhdGUgPGNsYXNzIE9wdGlvbmFsVHlwZSwgY2xhc3MgQ2FsbGJhY2s+Ci1BTFdBWVNfSU5M
SU5FCi1hdXRvIHZhbHVlT3JDb21wdXRlKE9wdGlvbmFsVHlwZSBvcHRpb25hbCwgQ2FsbGJhY2sg
Y2FsbGJhY2spIC0+IHR5cGVuYW1lIE9wdGlvbmFsVHlwZTo6dmFsdWVfdHlwZQotewotICAgIGlm
IChvcHRpb25hbCkKLSAgICAgICAgcmV0dXJuICpvcHRpb25hbDsKLSAgICByZXR1cm4gY2FsbGJh
Y2soKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KIG5hbWVzcGFjZSBzdGQKIHsKICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+CkBAIC0xMDU0LDQgKzEwNTAsMjAgQEAgbmFtZXNwYWNlIHN0ZAog
IyB1bmRlZiBUUjJfT1BUSU9OQUxfUkVRVUlSRVMKICMgdW5kZWYgVFIyX09QVElPTkFMX0FTU0VS
VEVEX0VYUFJFU1NJT04KIAorI2VuZGlmIC8vIGRlZmluZWQoX19jcHBfbGliX29wdGlvbmFsKQor
CituYW1lc3BhY2UgV1RGIHsKKworLy8gLS0gV2ViS2l0IEFkZGl0aW9ucyAtLQordGVtcGxhdGUg
PGNsYXNzIE9wdGlvbmFsVHlwZSwgY2xhc3MgQ2FsbGJhY2s+CitBTFdBWVNfSU5MSU5FCithdXRv
IHZhbHVlT3JDb21wdXRlKE9wdGlvbmFsVHlwZSBvcHRpb25hbCwgQ2FsbGJhY2sgY2FsbGJhY2sp
IC0+IHR5cGVuYW1lIE9wdGlvbmFsVHlwZTo6dmFsdWVfdHlwZQoreworICAgIGlmIChvcHRpb25h
bCkKKyAgICAgICAgcmV0dXJuICpvcHRpb25hbDsKKyAgICByZXR1cm4gY2FsbGJhY2soKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV1RGCisKIHVzaW5nIFdURjo6dmFsdWVPckNvbXB1dGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaCBiL1NvdXJjZS9XVEYvd3RmL1N0
ZExpYkV4dHJhcy5oCmluZGV4IDQ5ZjJlMjk4OGQ5MjZiYzU2NTk1ZWJjOWEwY2U5MjcxODQwODdh
YmUuLjY3NmY5YzZjMGVlMzU4ZTQ2MjkxZmM5ZGRmZTgzZWI3ZTY2OTMzYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N0ZExp
YkV4dHJhcy5oCkBAIC01NDMsNyArNTQzLDcgQEAgdGVtcGxhdGU8Y2xhc3MgQjAsIGNsYXNzIEIx
LCBjbGFzcyBCMiwgY2xhc3MuLi4gQm4+IHN0cnVjdCB3dGZfY29uanVuY3Rpb25faW1wbDwKIHRl
bXBsYXRlPGNsYXNzLi4uIF9BcmdzPiBzdHJ1Y3QgY29uanVuY3Rpb24gOiB3dGZfY29uanVuY3Rp
b25faW1wbDxfQXJncy4uLj4geyB9OwogI2VuZGlmCiAKLSNpZiBfX2NwbHVzcGx1cyA8IDIwMTcw
M0wKKyNpZiBfX2NwbHVzcGx1cyA8IDIwMTcwM0wgJiYgKCFkZWZpbmVkKF9NU0NfRlVMTF9WRVIp
IHx8IF9NU0NfRlVMTF9WRVIgPCAxOTAwMjM5MTgpCiAKIC8vIFRoZXNlIGFyZSBpbmxpbmUgdmFy
aWFibGUgZm9yIEMrKzE3IGFuZCBsYXRlci4KICNkZWZpbmUgX19JTl9QTEFDRV9JTkxJTkVfVkFS
SUFCTEUgc3RhdGljIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDg1MWM5YzgyYWY0MDk3ZWVk
MzVmNjEwYzdhY2Y1ZDI1ZGJkNDRiMzUuLjUzNmM1NTI2YTI4YjU2N2IwNWYwNWZjNTdjYzJhY2Q1
MGY3ZmJlNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC0zMDEsMTIgKzMwMSwxMiBAQCB2b2lkIFJU
Q1BlZXJDb25uZWN0aW9uOjpxdWV1ZWRBZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlKiBy
dGNDYW5kaWRhdGUsIERPTQogfQogCiAvLyBJbXBsZW1lbnRhdGlvbiBvZiBodHRwczovL3czYy5n
aXRodWIuaW8vd2VicnRjLXBjLyNzZXQtcGMtY29uZmlndXJhdGlvbgotc3RhdGljIGlubGluZSBF
eGNlcHRpb25PcjxWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlcklu
Zm8+PiBpY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYgbmV3Q29u
ZmlndXJhdGlvbiwgc3RkOjpvcHRpb25hbDxjb25zdCBSVENDb25maWd1cmF0aW9uJj4gZXhpc3Rp
bmdDb25maWd1cmF0aW9uLCBib29sIGlzTG9jYWxEZXNjcmlwdGlvblNldCkKK3N0YXRpYyBpbmxp
bmUgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2
ZXJJbmZvPj4gaWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mIG5l
d0NvbmZpZ3VyYXRpb24sIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25z
dCBSVENDb25maWd1cmF0aW9uPj4gZXhpc3RpbmdDb25maWd1cmF0aW9uLCBib29sIGlzTG9jYWxE
ZXNjcmlwdGlvblNldCkKIHsKLSAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0Nv
bmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5ICE9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi0+YnVuZGxl
UG9saWN5KQorICAgIGlmIChleGlzdGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29uZmlndXJhdGlv
bi5idW5kbGVQb2xpY3kgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5nZXQoKS5idW5kbGVQb2xp
Y3kpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Is
ICJJY2VUcmFuc3BvcnRQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5IiB9Owog
Ci0gICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9uLmljZUNh
bmRpZGF0ZVBvb2xTaXplICE9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi0+aWNlQ2FuZGlkYXRlUG9v
bFNpemUgJiYgaXNMb2NhbERlc2NyaXB0aW9uU2V0KQorICAgIGlmIChleGlzdGluZ0NvbmZpZ3Vy
YXRpb24gJiYgbmV3Q29uZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6ZSAhPSBleGlzdGlu
Z0NvbmZpZ3VyYXRpb24tPmdldCgpLmljZUNhbmRpZGF0ZVBvb2xTaXplICYmIGlzTG9jYWxEZXNj
cmlwdGlvblNldCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRp
b25FcnJvciwgIkljZVRyYW5zcG9ydFBvbGljeSBwb29sIHNpemUgZG9lcyBub3QgbWF0Y2ggZXhp
c3RpbmcgcG9vbCBzaXplIiB9OwogCiAgICAgVmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0
aW9uOjpJY2VTZXJ2ZXJJbmZvPiBzZXJ2ZXJzOwpAQCAtMzYwLDcgKzM2MCw3IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRDb25maWd1cmF0aW9uKFJUQ0NvbmZpZ3Vy
YXRpb24mJiBjb25maWd1CiAKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKIAotICAgIGF1
dG8gc2VydmVycyA9IGljZVNlcnZlcnNGcm9tQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLCBt
X2NvbmZpZ3VyYXRpb24sIG1fYmFja2VuZC0+aXNMb2NhbERlc2NyaXB0aW9uU2V0KCkpOworICAg
IGF1dG8gc2VydmVycyA9IGljZVNlcnZlcnNGcm9tQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9u
LCBzdGQ6OmNyZWYobV9jb25maWd1cmF0aW9uKSwgbV9iYWNrZW5kLT5pc0xvY2FsRGVzY3JpcHRp
b25TZXQoKSk7CiAgICAgaWYgKHNlcnZlcnMuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVy
biBzZXJ2ZXJzLnJlbGVhc2VFeGNlcHRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXIuY3BwCmluZGV4IDk1NGFiMDgyZTllNjYzYjY1YmExNDU4NjRjNzY3YWNiZDY3ZDM2
ZDYuLjMzZjUyZTFhNjUzZTViZDMwZmY2NGNkZGYyMDIwZDczYmZhNTBlNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKQEAgLTE3OCwxNCArMTc4LDE0IEBAIENvbG9y
IENTU1BhcnNlcjo6cGFyc2VDb2xvcihjb25zdCBTdHJpbmcmIHN0cmluZywgYm9vbCBzdHJpY3Qp
CiAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlLmNvbG9yKCk7CiB9CiAKLUNvbG9yIENTU1BhcnNl
cjo6cGFyc2VTeXN0ZW1Db2xvcihjb25zdCBTdHJpbmcmIHN0cmluZywgc3RkOjpvcHRpb25hbDxj
b25zdCBDU1NQYXJzZXJDb250ZXh0Jj4gY29udGV4dCkKK0NvbG9yIENTU1BhcnNlcjo6cGFyc2VT
eXN0ZW1Db2xvcihjb25zdCBTdHJpbmcmIHN0cmluZywgc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVy
ZW5jZV93cmFwcGVyPGNvbnN0IENTU1BhcnNlckNvbnRleHQ+PiBjb250ZXh0KQogewogICAgIENT
U1ZhbHVlSUQgaWQgPSBjc3NWYWx1ZUtleXdvcmRJRChzdHJpbmcpOwogICAgIGlmICghU3R5bGVD
b2xvcjo6aXNTeXN0ZW1Db2xvcihpZCkpCiAgICAgICAgIHJldHVybiBDb2xvcigpOwogCiAgICAg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnM7Ci0gICAgaWYgKGNvbnRleHQg
JiYgY29udGV4dC52YWx1ZSgpLnVzZVN5c3RlbUFwcGVhcmFuY2UpCisgICAgaWYgKGNvbnRleHQg
JiYgY29udGV4dC0+Z2V0KCkudXNlU3lzdGVtQXBwZWFyYW5jZSkKICAgICAgICAgb3B0aW9ucyB8
PSBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlOwogICAgIHJldHVybiBS
ZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuc3lzdGVtQ29sb3IoaWQsIG9wdGlvbnMpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmgKaW5kZXggZDkyZmE1YTc2YzNkMGM2NmRlY2Jl
ODM4ZGFjYzQ0ZDI1ZDViNGFhNC4uYWVlNzhlNTdhMWY3OTMwN2U0MjAxNzcyZDQyNDY5NDhiMTE1
ODBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oCkBAIC03OCw3ICs3OCw3
IEBAIGNsYXNzIENTU1BhcnNlciB7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBwYXJzZVZhbHVlV2l0
aFZhcmlhYmxlUmVmZXJlbmNlcyhDU1NQcm9wZXJ0eUlELCBjb25zdCBDU1NWYWx1ZSYsIGNvbnN0
IEN1c3RvbVByb3BlcnR5VmFsdWVNYXAmIGN1c3RvbVByb3BlcnRpZXMsIFRleHREaXJlY3Rpb24s
IFdyaXRpbmdNb2RlKTsKIAogICAgIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yKGNvbnN0IFN0cmlu
ZyYsIGJvb2wgc3RyaWN0ID0gZmFsc2UpOwotICAgIHN0YXRpYyBDb2xvciBwYXJzZVN5c3RlbUNv
bG9yKGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8Y29uc3QgQ1NTUGFyc2VyQ29udGV4dCY+
KTsKKyAgICBzdGF0aWMgQ29sb3IgcGFyc2VTeXN0ZW1Db2xvcihjb25zdCBTdHJpbmcmLCBzdGQ6
Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQ1NTUGFyc2VyQ29udGV4dD4+
KTsKIAogcHJpdmF0ZToKICAgICBQYXJzZVJlc3VsdCBwYXJzZVZhbHVlKE11dGFibGVTdHlsZVBy
b3BlcnRpZXMmLCBDU1NQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmLCBib29sIGltcG9ydGFudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAKaW5kZXggZjJkODQy
MDdiOTdhMzM2NDk1NGQ3MzBhMTBiNDg4ZTNlMzgzYzY0OC4uOGU4NmFlZWZlNWRjNzg4NTM3N2Zh
Y2M5MmY2Y2RjNWM1NTUxMjJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFz
ZXRET01TdHJpbmdNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3Ry
aW5nTWFwLmNwcApAQCAtMTg4LDcgKzE4OCw3IEBAIFZlY3RvcjxTdHJpbmc+IERhdGFzZXRET01T
dHJpbmdNYXA6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdAogICAgIHJldHVybiBuYW1l
czsKIH0KIAotc3RkOjpvcHRpb25hbDxjb25zdCBBdG9taWNTdHJpbmcmPiBEYXRhc2V0RE9NU3Ry
aW5nTWFwOjppdGVtKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBjb25zdAorc3RkOjpvcHRp
b25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IEF0b21pY1N0cmluZz4+IERhdGFzZXRE
T01TdHJpbmdNYXA6Oml0ZW0oY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGNvbnN0CiB7CiAg
ICAgaWYgKG1fZWxlbWVudC5oYXNBdHRyaWJ1dGVzKCkpIHsKICAgICAgICAgQXR0cmlidXRlSXRl
cmF0b3JBY2Nlc3NvciBhdHRyaWJ1dGVJdGVyYXRvckFjY2Vzc29yID0gbV9lbGVtZW50LmF0dHJp
YnV0ZXNJdGVyYXRvcigpOwpAQCAtMTk4LDEyICsxOTgsMTIgQEAgc3RkOjpvcHRpb25hbDxjb25z
dCBBdG9taWNTdHJpbmcmPiBEYXRhc2V0RE9NU3RyaW5nTWFwOjppdGVtKGNvbnN0IFN0cmluZyYg
cHJvcGUKICAgICAgICAgICAgIC8vIEJ1aWxkaW5nIGEgbmV3IEF0b21pY1N0cmluZyBpbiB0aGF0
IGNhc2UgaXMgb3ZlcmtpbGwgc28gd2UgZG8gYSBkaXJlY3QgY2hhcmFjdGVyIGNvbXBhcmlzb24u
CiAgICAgICAgICAgICBjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSA9ICphdHRyaWJ1dGVJdGVy
YXRvckFjY2Vzc29yLmJlZ2luKCk7CiAgICAgICAgICAgICBpZiAocHJvcGVydHlOYW1lTWF0Y2hl
c0F0dHJpYnV0ZU5hbWUocHJvcGVydHlOYW1lLCBhdHRyaWJ1dGUubG9jYWxOYW1lKCkpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGUudmFsdWUoKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpjcmVmKGF0dHJpYnV0ZS52YWx1ZSgpKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIEF0b21pY1N0cmluZyBhdHRyaWJ1dGVOYW1lID0gY29udmVydFByb3BlcnR5TmFt
ZVRvQXR0cmlidXRlTmFtZShwcm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAgZm9yIChjb25zdCBB
dHRyaWJ1dGUmIGF0dHJpYnV0ZSA6IGF0dHJpYnV0ZUl0ZXJhdG9yQWNjZXNzb3IpIHsKICAgICAg
ICAgICAgICAgICBpZiAoYXR0cmlidXRlLmxvY2FsTmFtZSgpID09IGF0dHJpYnV0ZU5hbWUpCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGUudmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6Y3JlZihhdHRyaWJ1dGUudmFsdWUoKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0yMTMsNyArMjEzLDkgQEAgc3RkOjpvcHRpb25hbDxj
b25zdCBBdG9taWNTdHJpbmcmPiBEYXRhc2V0RE9NU3RyaW5nTWFwOjppdGVtKGNvbnN0IFN0cmlu
ZyYgcHJvcGUKIAogU3RyaW5nIERhdGFzZXRET01TdHJpbmdNYXA6Om5hbWVkSXRlbShjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGl0ZW0obmFtZSkudmFsdWVf
b3IoU3RyaW5nIHsgfSk7CisgICAgaWYgKGF1dG8gdmFsdWUgPSBpdGVtKG5hbWUpKQorICAgICAg
ICByZXR1cm4gdmFsdWUtPmdldCgpOworICAgIHJldHVybiBTdHJpbmcgeyB9OwogfQogCiBFeGNl
cHRpb25Pcjx2b2lkPiBEYXRhc2V0RE9NU3RyaW5nTWFwOjpzZXROYW1lZEl0ZW0oY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0
RE9NU3RyaW5nTWFwLmgKaW5kZXggNDgzZjc2M2NjMTZjZjk2NDFiZWE1M2Y0ZGJlNjliNDgzYmEx
YjdkMy4uZDZkMTBkMTI2MTIyZGNjYzk5N2Q5NzhmNWVhMjU0YzMyMjRmZmYzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNz
IERhdGFzZXRET01TdHJpbmdNYXAgZmluYWwgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsKICAg
ICBFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50OyB9CiAKIHByaXZhdGU6Ci0g
ICAgc3RkOjpvcHRpb25hbDxjb25zdCBBdG9taWNTdHJpbmcmPiBpdGVtKGNvbnN0IFN0cmluZyYg
bmFtZSkgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNv
bnN0IEF0b21pY1N0cmluZz4+IGl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKIAogICAg
IEVsZW1lbnQmIG1fZWxlbWVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYTQzMjM5
N2Q3MTc5YjE0MWQyMGRmODBmY2JlNDY5NTNjYjE4NjQ5Ni4uMjczZDhjYWU3MjZhZGFhNTZiZTU1
MGUyMGE3MGJhZTI2NzFiYWQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMzczMyw3ICsz
NzMzLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxFbGVtZW50Pj4gY29udGV4dEVsZW1lbnRG
b3JJbnNlcnRpb24oY29uc3QgU3RyaW5nJiB3aGVyZSwKIH0KIAogLy8gaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL0RPTS1QYXJzaW5nLyNkb20tZWxlbWVudC1pbnNlcnRhZGphY2VudGh0bWwKLUV4Y2Vw
dGlvbk9yPHZvaWQ+IEVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdo
ZXJlLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgc3RkOjpvcHRpb25hbDxOb2RlVmVjdG9yJj4gYWRk
ZWROb2RlcykKK0V4Y2VwdGlvbk9yPHZvaWQ+IEVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTChj
b25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgc3RkOjpvcHRpb25hbDxz
dGQ6OnJlZmVyZW5jZV93cmFwcGVyPE5vZGVWZWN0b3I+PiBhZGRlZE5vZGVzKQogewogICAgIC8v
IFN0ZXBzIDEgYW5kIDIuCiAgICAgYXV0byBjb250ZXh0RWxlbWVudCA9IGNvbnRleHRFbGVtZW50
Rm9ySW5zZXJ0aW9uKHdoZXJlLCAqdGhpcyk7CkBAIC0zNzQ3LDcgKzM3NDcsNyBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBFbGVtZW50OjppbnNlcnRBZGphY2VudEhUTUwoY29uc3QgU3RyaW5nJiB3aGVy
ZSwgY29uc3QgU3RyaW5nJgogICAgIGlmIChVTkxJS0VMWShhZGRlZE5vZGVzKSkgewogICAgICAg
ICAvLyBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgaW5zZXJ0QWRqYWNlbnQsIGFzIG90aGVyd2lzZSB0
aGUgY2hpbGRyZW4gb2YgZnJhZ21lbnQgd2lsbCBiZSBtb3ZlZAogICAgICAgICAvLyB0byB0aGVp
ciBuZXcgcGFyZW50IGFuZCB3aWxsIGJlIGhhcmRlciB0byBrZWVwIHRyYWNrIG9mLgotICAgICAg
ICAqYWRkZWROb2RlcyA9IGNvbGxlY3RDaGlsZE5vZGVzKGZyYWdtZW50LnJldHVyblZhbHVlKCkp
OworICAgICAgICBhZGRlZE5vZGVzLT5nZXQoKSA9IGNvbGxlY3RDaGlsZE5vZGVzKGZyYWdtZW50
LnJldHVyblZhbHVlKCkpOwogICAgIH0KIAogICAgIC8vIFN0ZXAgNC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CmluZGV4IDllNTJkMzMxNTUzOTk0NTQ2NTcwMzIxNDExN2Q3YjIwNmEzZjJhYTMuLjlhZjQxMTMw
NGY0ZDk5OGFhYjExYjkyNGFmOTFkMjE5MDAwNmZkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAt
MzE0LDcgKzMxNCw3IEBAIGNsYXNzIEVsZW1lbnQgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUYWJJbmRleChpbnQpOwogICAgIHZpcnR1YWwgUmVm
UHRyPEVsZW1lbnQ+IGZvY3VzRGVsZWdhdGUoKTsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGlu
c2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIGh0bWws
IHN0ZDo6b3B0aW9uYWw8Tm9kZVZlY3RvciY+IGFkZGVkTm9kZXMpOworICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IGluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJp
bmcmIGh0bWwsIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxOb2RlVmVjdG9y
Pj4gYWRkZWROb2Rlcyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxFbGVtZW50
Kj4gaW5zZXJ0QWRqYWNlbnRFbGVtZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIEVsZW1lbnQmIG5l
d0NoaWxkKTsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBpbnNlcnRBZGph
Y2VudEhUTUwoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3QgU3RyaW5nJiBodG1sKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01FZGl0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5jcHAKaW5kZXggMzQ5M2IwMTdjYTA2YjlmMjk3NjIz
MjdmYTMxMzUzZGI4Zjk1ODY5OC4uNTllY2NkNDA1YzAzN2VmMmE0NDBjNGQ1NTFjOWNiY2ExMjFj
NmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5jcHAKQEAgLTI2Niw3ICsy
NjYsNyBAQCBjbGFzcyBET01FZGl0b3I6Okluc2VydEFkamFjZW50SFRNTEFjdGlvbiBmaW5hbCA6
IHB1YmxpYyBJbnNwZWN0b3JIaXN0b3J5OjpBY3RpbwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
cmVkbygpIGZpbmFsCiAgICAgewotICAgICAgICBhdXRvIHJlc3VsdCA9IG1fZWxlbWVudC0+aW5z
ZXJ0QWRqYWNlbnRIVE1MKG1fcG9zaXRpb24sIG1faHRtbCwgbV9hZGRlZE5vZGVzKTsKKyAgICAg
ICAgYXV0byByZXN1bHQgPSBtX2VsZW1lbnQtPmluc2VydEFkamFjZW50SFRNTChtX3Bvc2l0aW9u
LCBtX2h0bWwsIHN0ZDo6cmVmKG1fYWRkZWROb2RlcykpOwogICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9u
KCk7CiAgICAgICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0uY3BwCmluZGV4IDg0ZjVl
MmI5NDJiOGEyMWNjMmM0NTAwZmMzNWUxMWRmMDk1YTY2ZTguLjJhZDZhMTg3MjRiMmZhYzA0MjQw
NjU2MDFjNTI5YWFmOTJjOTgyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0uY3BwCkBAIC02OSw3ICs2
OSw3IEBAIHZvaWQgQ3VybEZvcm1EYXRhU3RyZWFtOjpjbGVhbigpCiAgICAgfQogfQogCi1zdGQ6
Om9wdGlvbmFsPGNvbnN0IFZlY3RvcjxjaGFyPiY+IEN1cmxGb3JtRGF0YVN0cmVhbTo6Z2V0UG9z
dERhdGEoKQorc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IFZlY3Rv
cjxjaGFyPj4+IEN1cmxGb3JtRGF0YVN0cmVhbTo6Z2V0UG9zdERhdGEoKQogewogICAgIGlmICgh
bV9mb3JtRGF0YSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKQEAgLTc3LDcgKzc3LDcg
QEAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8Y2hhcj4mPiBDdXJsRm9ybURhdGFTdHJlYW06
OmdldFBvc3REYXRhKCkKICAgICBpZiAoIW1fcG9zdERhdGEpCiAgICAgICAgIG1fcG9zdERhdGEg
PSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxjaGFyPj4obV9mb3JtRGF0YS0+ZmxhdHRlbigpKTsK
IAotICAgIHJldHVybiAqbV9wb3N0RGF0YTsKKyAgICByZXR1cm4gc3RkOjpjcmVmKCptX3Bvc3RE
YXRhKTsKIH0KIAogYm9vbCBDdXJsRm9ybURhdGFTdHJlYW06OnNob3VsZFVzZUNodW5rVHJhbnNm
ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxGb3JtRGF0YVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxGb3JtRGF0YVN0cmVhbS5oCmluZGV4IGQxY2ExYWQ1ZjAwYTY3NmZmYWUyMDk2MDI3Njdk
YjI2YjU5YjAwZDEuLmQzM2RmNzgwMzNhMTQ1NzljMWVjYjI1Yjg0ZTVkZjAyMTdhMTk4ZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURh
dGFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bEZvcm1EYXRhU3RyZWFtLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgQ3VybEZvcm1EYXRhU3Ry
ZWFtIHsKIAogICAgIHNpemVfdCBlbGVtZW50U2l6ZSgpIHsgcmV0dXJuIG1fZm9ybURhdGEgPyBt
X2Zvcm1EYXRhLT5lbGVtZW50cygpLnNpemUoKSA6IDA7IH0KIAotICAgIHN0ZDo6b3B0aW9uYWw8
Y29uc3QgVmVjdG9yPGNoYXI+Jj4gZ2V0UG9zdERhdGEoKTsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgVmVjdG9yPGNoYXI+Pj4gZ2V0UG9zdERhdGEoKTsK
ICAgICBib29sIHNob3VsZFVzZUNodW5rVHJhbnNmZXIoKTsKICAgICB1bnNpZ25lZCBsb25nIGxv
bmcgdG90YWxTaXplKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a0NETUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5j
cHAKaW5kZXggOTVmN2U2YmRiMjhjODVmZTY2ZjA0ZTI3ODAwMDUyZDc0Mzg5ZTdhZC4uNDQ1ZWE5
YjU4Nzk3NDhmOGQ2MGQ2MjlmOTMzYzkzZTA5OTcwMWEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKQEAgLTgxLDEyICs4MSwxMiBAQCBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+IE1vY2tDRE1GYWN0b3J5OjpyZW1vdmVLZXlzRnJvbVNlc3Npb25XaXRoSUQo
Y29uc3QgU3RyaQogICAgIHJldHVybiBXVEZNb3ZlKGl0LT52YWx1ZSk7CiB9CiAKLXN0ZDo6b3B0
aW9uYWw8Y29uc3QgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiY+IE1vY2tDRE1GYWN0b3J5Ojpr
ZXlzRm9yU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAorc3RkOjpvcHRpb25h
bDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+
PiBNb2NrQ0RNRmFjdG9yeTo6a2V5c0ZvclNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCkg
Y29uc3QKIHsKICAgICBhdXRvIGl0ID0gbV9zZXNzaW9ucy5maW5kKGlkKTsKICAgICBpZiAoaXQg
PT0gbV9zZXNzaW9ucy5lbmQoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBy
ZXR1cm4gaXQtPnZhbHVlOworICAgIHJldHVybiBzdGQ6OmNyZWYoaXQtPnZhbHVlKTsKIH0KIAog
dm9pZCBNb2NrQ0RNRmFjdG9yeTo6c2V0U3VwcG9ydGVkRGF0YVR5cGVzKFZlY3RvcjxTdHJpbmc+
JiYgdHlwZXMpCkBAIC0zMTQsMTEgKzMxNCwxMSBAQCB2b2lkIE1vY2tDRE1JbnN0YW5jZTo6dXBk
YXRlTGljZW5zZShjb25zdCBTdHJpbmcmIHNlc3Npb25JRCwgTGljZW5zZVR5cGUsIGNvbnN0CiAK
ICAgICBzdGQ6Om9wdGlvbmFsPEtleVN0YXR1c1ZlY3Rvcj4gY2hhbmdlZEtleXM7CiAgICAgaWYg
KHJlc3BvbnNlVmVjdG9yLmNvbnRhaW5zKFN0cmluZyhBU0NJSUxpdGVyYWwoImtleXMtY2hhbmdl
ZCIpKSkpIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8UmVmPFNoYXJlZEJ1
ZmZlcj4+Jj4ga2V5cyA9IGZhY3RvcnktPmtleXNGb3JTZXNzaW9uV2l0aElEKHNlc3Npb25JRCk7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBWZWN0
b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Pj4ga2V5cyA9IGZhY3RvcnktPmtleXNGb3JTZXNzaW9uV2l0
aElEKHNlc3Npb25JRCk7CiAgICAgICAgIGlmIChrZXlzKSB7CiAgICAgICAgICAgICBLZXlTdGF0
dXNWZWN0b3Iga2V5U3RhdHVzVmVjdG9yOwotICAgICAgICAgICAga2V5U3RhdHVzVmVjdG9yLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkoa2V5cy0+c2l6ZSgpKTsKLSAgICAgICAgICAgIGZvciAoYXV0
byYga2V5IDogKmtleXMpCisgICAgICAgICAgICBrZXlTdGF0dXNWZWN0b3IucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShrZXlzLT5nZXQoKS5zaXplKCkpOworICAgICAgICAgICAgZm9yIChhdXRvJiBr
ZXkgOiAoKmtleXMpLmdldCgpKQogICAgICAgICAgICAgICAgIGtleVN0YXR1c1ZlY3Rvci51bmNo
ZWNrZWRBcHBlbmQoeyBrZXkuY29weVJlZigpLCBLZXlTdGF0dXM6OlVzYWJsZSB9KTsKIAogICAg
ICAgICAgICAgY2hhbmdlZEtleXMgPSBXVEZNb3ZlKGtleVN0YXR1c1ZlY3Rvcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmggYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKaW5kZXggMjM3YjJiMzY0MjYzMzBiYzc1YTA0
ZGYzNTBlMDgxYWI3ODg2MTg0My4uM2U2ZGIyMWQwMWJjZDVhNTBhZjVlOTc2NTBjM2YxNGI4Yjc5
NjQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuaApAQCAtNzMsNyAr
NzMsNyBAQCBjbGFzcyBNb2NrQ0RNRmFjdG9yeSA6IHB1YmxpYyBSZWZDb3VudGVkPE1vY2tDRE1G
YWN0b3J5PiwgcHJpdmF0ZSBDRE1GYWN0b3J5IHsKICAgICBib29sIGhhc1Nlc3Npb25XaXRoSUQo
Y29uc3QgU3RyaW5nJiBpZCkgeyByZXR1cm4gbV9zZXNzaW9ucy5jb250YWlucyhpZCk7IH0KICAg
ICB2b2lkIHJlbW92ZVNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCkgeyBtX3Nlc3Npb25z
LnJlbW92ZShpZCk7IH0KICAgICB2b2lkIGFkZEtleXNUb1Nlc3Npb25XaXRoSUQoY29uc3QgU3Ry
aW5nJiBpZCwgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiYmKTsKLSAgICBzdGQ6Om9wdGlvbmFs
PGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4mPiBrZXlzRm9yU2Vzc2lvbldpdGhJRChj
b25zdCBTdHJpbmcmIGlkKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNl
X3dyYXBwZXI8Y29uc3QgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4+IGtleXNGb3JTZXNzaW9u
V2l0aElEKGNvbnN0IFN0cmluZyYgaWQpIGNvbnN0OwogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVm
ZmVyPj4gcmVtb3ZlS2V5c0Zyb21TZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYgaWQpOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lv
bi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCmluZGV4IDFmNzY4
MDg1NjRlZDRkYjZlNWMwY2UxZWI2MzAyMTE3MWU5MGVkMWIuLmNiNTNhYWRlNjNlMzlmMzJlMmJm
NjI2NzhkZTdjM2NiOTQyZGYzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nh
bmRib3hFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBjbGFzcyBTYW5kYm94RXh0ZW5zaW9uIDogcHVibGlj
IFJlZkNvdW50ZWQ8U2FuZGJveEV4dGVuc2lvbj4gewogaW5saW5lIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZTo6SGFuZGxlKCkgeyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjp+
SGFuZGxlKCkgeyB9CiBpbmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdCB7IH0KLWlubGluZSBzdGQ6Om9wdGlvbmFsPFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZT4gU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJikgeyByZXR1cm4ge3sgfX07IH0KK2lubGluZSBzdGQ6Om9wdGlvbmFsPFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZT4gU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJikgeyByZXR1cm4gU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHsgfTsgfQogaW5saW5l
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpIYW5kbGVBcnJheSgpIHsgfQogaW5saW5l
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Ojp+SGFuZGxlQXJyYXkoKSB7IH0KIGlubGlu
ZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjphbGxvY2F0ZShzaXplX3QpIHsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvVG91Y2hCYXJNZW51SXRlbURhdGEu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVG91Y2hCYXJNZW51SXRlbURhdGEuY3BwCmluZGV4
IGQwMjI2YmI5YTllYzFiYWUxODM1YmJkZGUxMzQ4YzEyODY2YmQxMDMuLjNjZGVlODJkMGFkZjM0
MzVjOGVkOWNmY2Q3ZGJkNDYzOWY4MTAxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9U
b3VjaEJhck1lbnVJdGVtRGF0YS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgc3RkOjpvcHRpb25hbDxU
b3VjaEJhck1lbnVJdGVtRGF0YT4gVG91Y2hCYXJNZW51SXRlbURhdGE6OmRlY29kZShJUEM6OkRl
Y29kZXImIGQKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5wcmlvcml0eSkpCiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgCi0gICAgcmV0dXJuIFdURk1vdmUocmVzdWx0
KTsKKyAgICByZXR1cm4gc3RkOjptYWtlX29wdGlvbmFsKFdURk1vdmUocmVzdWx0KSk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zTVNWQy5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9PcHRpb25zTVNWQy5jbWFrZQppbmRleCA3ZjM3OGZmOGFhOWY3NmNmYmM2YjYxMTFmOWY5
ODNkNjJmNjM2NjA1Li5hYzE4ZGU0YmFiYzAyZmQ0YTJkN2JjMzZhMWViNGY1NTdjNGYzMjkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc01TVkMuY21ha2UKKysrIGIvU291cmNlL2Nt
YWtlL09wdGlvbnNNU1ZDLmNtYWtlCkBAIC0zMiw2ICszMiw5IEBAIGFkZF9jb21waWxlX29wdGlv
bnMoL0d5LSAvb3Blbm1wLSAvR0YtKQogIyBTcGVjaWZ5IHRoZSBzb3VyY2UgY29kZSBlbmNvZGlu
ZwogYWRkX2NvbXBpbGVfb3B0aW9ucygvdXRmLTggL3ZhbGlkYXRlLWNoYXJzZXQpCiAKKyMgRW5h
YmxlIEMrKzE3CithZGRfY29tcGlsZV9vcHRpb25zKC9zdGQ6YysrbGF0ZXN0KQorCiBpZiAoJHtD
TUFLRV9CVUlMRF9UWVBFfSBNQVRDSEVTICJEZWJ1ZyIpCiAgICAgc2V0KENNQUtFX1NIQVJFRF9M
SU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30gL09QVDpOT1JFRiAvT1BU
Ok5PSUNGIikKICAgICBzZXQoQ01BS0VfRVhFX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9FWEVfTElO
S0VSX0ZMQUdTfSAvT1BUOk5PUkVGIC9PUFQ6Tk9JQ0YiKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9n
IGIvQ2hhbmdlTG9nCmluZGV4IDJhNzM2ZGZjNDdkNjk2NDA4YzczNjc4N2VhZmJmZmRiM2Q5ZDE0
MmEuLmI2MTQ0NmRkM2IwYTYwYWQ0Y2RjMzViZDUyMzA5ZTgyZjEwNGU1ZjYgMTAwNjQ0Ci0tLSBh
L0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0wNS0wMSAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgZGVm
YXVsdCBzdGQ6Om9wdGlvbmFsIGlmIGl0IGlzIHByb3ZpZGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODUxNTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zTVNWQy5j
bWFrZToKKwogMjAxOC0wNS0wMSAgTGVvIEJhbHRlciAgPGxlb25hcmRvLmJhbHRlckBnbWFpbC5j
b20+CiAKICAgICAgICAgQXV0byBzYXZlIHRoZSByZXN1bHRzIGZvciBUZXN0MjYyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339267</attachid>
            <date>2018-05-01 21:06:35 -0700</date>
            <delta_ts>2018-05-03 17:03:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-185159-20180502130634.patch</filename>
            <type>text/plain</type>
            <size>21707</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4MWIxNjRjOTMzZWIyYWQyMjFlMzY1
YTdlNWFhYzljZjM0NmE1ZjcuLmY1ODU2OThiOTk5NWY1Y2VkM2RlNWJhMDUwZjRlYWVkZjcyYjY3
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBp
ZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm93IEMrKzE3IGZsYWcgaXMgZW5hYmxlZC4gSXQgbWVhbnMgdGhhdCBhbnkgc3Rh
bmRhcmQgbGlicmFyaWVzIGNhbiB1c2UgPG9wdGlvbmFsPiBpbnRlcm5hbGx5LgorICAgICAgICBJ
ZiB3ZSBkZWZpbmUgc3RkOjpvcHRpb25hbCByZWdhcmRsZXNzIG9mIHRoZSBleGlzdGVuY2Ugb2Yg
dGhlIHN0YW5kYXJkIGxpYnJhcnkncyA8b3B0aW9uYWw+LAorICAgICAgICBpdCBjYXVzZXMgY29t
cGlsZSBlcnJvcnMuIEZvciBleGFtcGxlLCBpbiBHQ0MgNyAoc3BlY2lmaWNhbGx5IEdDQyA3LjMu
MCkgZW52aXJvbm1lbnQsCisgICAgICAgIDxvcHRpb25hbD4gaXMgaW5jbHVkZWQgaW4gPHVub3Jk
ZXJlZF9tYXA+LgorICAgICAgICBXZSBkbyBub3QgZGVmaW5lIHN0ZDo6b3B0aW9uYWwgaW4gV2Vi
S2l0IHNpZGUgaWYgPG9wdGlvbmFsPiBpcyBvZmZlcmVkLgorCisgICAgICAgIEFuZCB3ZSBhbHNv
IHJlbW92ZSBzdGQ6Om9wdGlvbmFsPFQmPiB1c2Ugc2luY2UgdGhpcyBpcyBub3QgYWNjZXB0ZWQg
aW4gQysrMTcuIFVzZQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8VD4+IGluc3RlYWQuCisKKyAgICAgICAgKiB3dGYvRXhwZWN0ZWQuaDoKKyAgICAgICAgY29u
c3RleHByIGRvZXMgbm90IG1lYW4gY29uc3QgaW4gQysrMTcuCisKKyAgICAgICAgKiB3dGYvT3B0
aW9uYWwuaDoKKyAgICAgICAgRG8gbm90IGRlZmluZSBzdGQ6Om9wdGlvbmFsIGlmIDxvcHRpb25h
bD4gaXMgcHJvdmlkZWQuCisKKyAgICAgICAgKFdURjo6dmFsdWVPckNvbXB1dGUpOgorCiAyMDE4
LTA1LTAxICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAg
Q29ycmVjdGx5IGRldGVjdCBzdHJpbmcgb3ZlcmZsb3cgd2hlbiB1c2luZyB0aGUgJ0Z1bmN0aW9u
JyBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVlYjY5N2ZkOGI0NmNiZmM1YjE4ZWI0OGU0
MDZkMmY5OWE2YzMuLmJiNDk3ZjM4NmRlNzBlNTE2NGU4M2EwYzAyMjNmOTc2ODVlNjQxMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxOC0wNS0wMSAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgZGVmYXVsdCBzdGQ6Om9wdGlvbmFs
IGlmIGl0IGlzIHByb3ZpZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODUxNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6aWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAg
KiBjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OnBhcnNlU3lzdGVtQ29sb3IpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmg6Cisg
ICAgICAgICogZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YXNldERPTVN0cmluZ01hcDo6aXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
c2V0RE9NU3RyaW5nTWFwOjpuYW1lZEl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRGF0YXNldERPTVN0cmluZ01hcC5oOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omluc2Vy
dEFkamFjZW50SFRNTCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvRE9NRWRpdG9yLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bEZvcm1EYXRhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxGb3JtRGF0YVN0cmVh
bTo6Z2V0UG9zdERhdGEpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmg6CisgICAgICAgICogdGVzdGluZy9N
b2NrQ0RNRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6a2V5
c0ZvclNlc3Npb25XaXRoSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETUluc3Rh
bmNlOjp1cGRhdGVMaWNlbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OiBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oOgorCiAyMDE4LTA1LTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUgaW4gUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDU4NTRkNmRiOTY2OWQ1NzRlZDIxZDlkMTYxMmNkNzJkYzUxZTI1ODcuLjNhNGM1
NWI2NDJjNmNhY2JmNDJlMWZjOGQyNmIxMWMxNTQwMjA4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTgtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBpZiBpdCBpcyBwcm92aWRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTU5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQv
U2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VG91Y2hCYXJNZW51SXRlbURhdGE6OmRlY29kZSk6CisKIDIw
MTgtMDUtMDEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUHJv
ZHVjdGlvbiBidWlsZCBlcnJvciBpbiBNaWdyYXRlIEhlYWRlciBwaGFzZSB3aGVuIFdLX0FMVEVS
TkFURV9GUkFNRVdPUktTX0RJUiBpcyBzZXQgdG8gbm9uLWVtcHR5IHZhbHVlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oIGIvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaApp
bmRleCBkZDA0NWU1OTg3NWU0ZjQ3NjdlYjJlYjE3OWMxYzI3MTllMGFmMmUyLi5lOWIwZWM5Zjll
NjQ1ZWNlZWRkNmY0MGU0MmNmODkxNDA1NzM3YTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9FeHBlY3RlZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVkLmgKQEAgLTU3Myw1ICs1
NzMsNSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBFPiB2b2lkIHN3YXAoZXhwZWN0
ZWQ8VCwgRT4mIHgsIGV4cGVjdGVkPFQsIEU+JiB5KQogCiB9fX0gLy8gbmFtZXNwYWNlIHN0ZDo6
ZXhwZXJpbWVudGFsOjpmdW5kYW1lbnRhbHNfdjMKIAotX19FWFBFQ1RFRF9JTkxJTkVfVkFSSUFC
TEUgY29uc3RleHByIHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdGVkX3QmIHVuZXhwZWN0ID0g
c3RkOjpleHBlcmltZW50YWw6OnVuZXhwZWN0OworX19FWFBFQ1RFRF9JTkxJTkVfVkFSSUFCTEUg
Y29uc3RleHByIGF1dG8mIHVuZXhwZWN0ID0gc3RkOjpleHBlcmltZW50YWw6OnVuZXhwZWN0Owog
dGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgRT4gdXNpbmcgRXhwZWN0ZWQgPSBzdGQ6OmV4cGVyaW1l
bnRhbDo6ZXhwZWN0ZWQ8VCwgRT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25h
bC5oIGIvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAppbmRleCBhM2ZjNTg5MDgzNDVhYzFiMGEy
MjRiYzJmMTc5ODQ2OTE2ZDlkMmQ3Li5hYWM0NWE3MWMxYjJmMzQzYzhiZmQ2MTVhMjI2ZDFiMjMz
NDgzMWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL09wdGlvbmFsLmgKQEAgLTQ3LDYgKzQ3LDE2IEBACiAjIGluY2x1ZGUgPHd0Zi9D
b21waWxlci5oPgogIyBpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKKyNpZiAhQ09NUElM
RVIoTVNWQykgJiYgX19oYXNfaW5jbHVkZSg8b3B0aW9uYWw+KQorIyBpbmNsdWRlIDxvcHRpb25h
bD4KKyNlbmRpZgorCisjaWYgIUNPTVBJTEVSKE1TVkMpICYmIGRlZmluZWQoX19jcHBfbGliX29w
dGlvbmFsKSAmJiBfX2NwcF9saWJfb3B0aW9uYWwgPj0gMjAxNjAzCisKKy8vIFVzZSBkZWZhdWx0
IHN0ZDo6b3B0aW9uYWwuCisKKyNlbHNlCisKICMgZGVmaW5lIFRSMl9PUFRJT05BTF9SRVFVSVJF
UyguLi4pIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPF9fVkFfQVJHU19fOjp2YWx1ZSwgYm9vbD46
OnR5cGUgPSBmYWxzZQogCiAjIGlmIGRlZmluZWQgX19HTlVDX18gLy8gTk9URTogR05VQyBpcyBh
bHNvIGRlZmluZWQgZm9yIENsYW5nCkBAIC0xMDEyLDIwICsxMDIyLDYgQEAgY29uc3RleHByIG9w
dGlvbmFsPFgmPiBtYWtlX29wdGlvbmFsKHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8WD4gdikKIAog
fSAvLyBuYW1lc3BhY2Ugc3RkCiAKLW5hbWVzcGFjZSBXVEYgewotCi0vLyAtLSBXZWJLaXQgQWRk
aXRpb25zIC0tCi10ZW1wbGF0ZSA8Y2xhc3MgT3B0aW9uYWxUeXBlLCBjbGFzcyBDYWxsYmFjaz4K
LUFMV0FZU19JTkxJTkUKLWF1dG8gdmFsdWVPckNvbXB1dGUoT3B0aW9uYWxUeXBlIG9wdGlvbmFs
LCBDYWxsYmFjayBjYWxsYmFjaykgLT4gdHlwZW5hbWUgT3B0aW9uYWxUeXBlOjp2YWx1ZV90eXBl
Ci17Ci0gICAgaWYgKG9wdGlvbmFsKQotICAgICAgICByZXR1cm4gKm9wdGlvbmFsOwotICAgIHJl
dHVybiBjYWxsYmFjaygpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQogbmFtZXNwYWNlIHN0
ZAogewogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KQEAgLTEwNTQsNCArMTA1MCwyMCBAQCBuYW1l
c3BhY2Ugc3RkCiAjIHVuZGVmIFRSMl9PUFRJT05BTF9SRVFVSVJFUwogIyB1bmRlZiBUUjJfT1BU
SU9OQUxfQVNTRVJURURfRVhQUkVTU0lPTgogCisjZW5kaWYgLy8gZGVmaW5lZChfX2NwcF9saWJf
b3B0aW9uYWwpCisKK25hbWVzcGFjZSBXVEYgeworCisvLyAtLSBXZWJLaXQgQWRkaXRpb25zIC0t
Cit0ZW1wbGF0ZSA8Y2xhc3MgT3B0aW9uYWxUeXBlLCBjbGFzcyBDYWxsYmFjaz4KK0FMV0FZU19J
TkxJTkUKK2F1dG8gdmFsdWVPckNvbXB1dGUoT3B0aW9uYWxUeXBlIG9wdGlvbmFsLCBDYWxsYmFj
ayBjYWxsYmFjaykgLT4gdHlwZW5hbWUgT3B0aW9uYWxUeXBlOjp2YWx1ZV90eXBlCit7CisgICAg
aWYgKG9wdGlvbmFsKQorICAgICAgICByZXR1cm4gKm9wdGlvbmFsOworICAgIHJldHVybiBjYWxs
YmFjaygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwogdXNpbmcgV1RGOjp2YWx1ZU9yQ29t
cHV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggODUxYzljODJhZjQwOTdlZWQzNWY2MTBjN2FjZjVk
MjVkYmQ0NGIzNS4uNTM2YzU1MjZhMjhiNTY3YjA1ZjA1ZmM1N2NjMmFjZDUwZjdmYmU3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5jcHAKQEAgLTMwMSwxMiArMzAxLDEyIEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rp
b246OnF1ZXVlZEFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUqIHJ0Y0NhbmRpZGF0ZSwg
RE9NCiB9CiAKIC8vIEltcGxlbWVudGF0aW9uIG9mIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJy
dGMtcGMvI3NldC1wYy1jb25maWd1cmF0aW9uCi1zdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPFZl
Y3RvcjxNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4+IGljZVNlcnZl
cnNGcm9tQ29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiBuZXdDb25maWd1cmF0aW9uLCBz
dGQ6Om9wdGlvbmFsPGNvbnN0IFJUQ0NvbmZpZ3VyYXRpb24mPiBleGlzdGluZ0NvbmZpZ3VyYXRp
b24sIGJvb2wgaXNMb2NhbERlc2NyaXB0aW9uU2V0KQorc3RhdGljIGlubGluZSBFeGNlcHRpb25P
cjxWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlckluZm8+PiBpY2VT
ZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYgbmV3Q29uZmlndXJhdGlv
biwgc3RkOjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IFJUQ0NvbmZpZ3Vy
YXRpb24+PiBleGlzdGluZ0NvbmZpZ3VyYXRpb24sIGJvb2wgaXNMb2NhbERlc2NyaXB0aW9uU2V0
KQogewotICAgIGlmIChleGlzdGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29uZmlndXJhdGlvbi5i
dW5kbGVQb2xpY3kgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5idW5kbGVQb2xpY3kpCisgICAg
aWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9uLmJ1bmRsZVBvbGlj
eSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmdldCgpLmJ1bmRsZVBvbGljeSkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIkljZVRyYW5zcG9y
dFBvbGljeSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiIH07CiAKLSAgICBpZiAoZXhp
c3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNp
emUgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBpc0xv
Y2FsRGVzY3JpcHRpb25TZXQpCisgICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdD
b25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplICE9IGV4aXN0aW5nQ29uZmlndXJhdGlv
bi0+Z2V0KCkuaWNlQ2FuZGlkYXRlUG9vbFNpemUgJiYgaXNMb2NhbERlc2NyaXB0aW9uU2V0KQog
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiSWNl
VHJhbnNwb3J0UG9saWN5IHBvb2wgc2l6ZSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb29sIHNp
emUiIH07CiAKICAgICBWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZl
ckluZm8+IHNlcnZlcnM7CkBAIC0zNjAsNyArMzYwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRD
UGVlckNvbm5lY3Rpb246OnNldENvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYmIGNvbmZp
Z3UKIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogCi0gICAgYXV0byBzZXJ2ZXJzID0g
aWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24sIG1fY29uZmlndXJhdGlv
biwgbV9iYWNrZW5kLT5pc0xvY2FsRGVzY3JpcHRpb25TZXQoKSk7CisgICAgYXV0byBzZXJ2ZXJz
ID0gaWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24sIHN0ZDo6Y3JlZiht
X2NvbmZpZ3VyYXRpb24pLCBtX2JhY2tlbmQtPmlzTG9jYWxEZXNjcmlwdGlvblNldCgpKTsKICAg
ICBpZiAoc2VydmVycy5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHNlcnZlcnMucmVs
ZWFzZUV4Y2VwdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAK
aW5kZXggOTU0YWIwODJlOWU2NjNiNjViYTE0NTg2NGM3NjdhY2JkNjdkMzZkNi4uMzNmNTJlMWE2
NTNlNWJkMzBmZjY0Y2RkZjIwMjBkNzNiZmE1MGU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyLmNwcApAQCAtMTc4LDE0ICsxNzgsMTQgQEAgQ29sb3IgQ1NTUGFyc2VyOjpw
YXJzZUNvbG9yKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBib29sIHN0cmljdCkKICAgICByZXR1cm4g
cHJpbWl0aXZlVmFsdWUuY29sb3IoKTsKIH0KIAotQ29sb3IgQ1NTUGFyc2VyOjpwYXJzZVN5c3Rl
bUNvbG9yKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBzdGQ6Om9wdGlvbmFsPGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmPiBjb250ZXh0KQorQ29sb3IgQ1NTUGFyc2VyOjpwYXJzZVN5c3RlbUNvbG9yKGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8
Y29uc3QgQ1NTUGFyc2VyQ29udGV4dD4+IGNvbnRleHQpCiB7CiAgICAgQ1NTVmFsdWVJRCBpZCA9
IGNzc1ZhbHVlS2V5d29yZElEKHN0cmluZyk7CiAgICAgaWYgKCFTdHlsZUNvbG9yOjppc1N5c3Rl
bUNvbG9yKGlkKSkKICAgICAgICAgcmV0dXJuIENvbG9yKCk7CiAKICAgICBPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsKLSAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0LnZh
bHVlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSkKKyAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0LT5n
ZXQoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKQogICAgICAgICBvcHRpb25zIHw9IFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2U7CiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpz
aW5nbGV0b24oKS5zeXN0ZW1Db2xvcihpZCwgb3B0aW9ucyk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXIuaAppbmRleCBkOTJmYTVhNzZjM2QwYzY2ZGVjYmU4MzhkYWNjNDRkMjVk
NWI0YWE0Li5hZWU3OGU1N2ExZjc5MzA3ZTQyMDE3NzJkNDI0Njk0OGIxMTU4MGJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmgKQEAgLTc4LDcgKzc4LDcgQEAgY2xhc3MgQ1NT
UGFyc2VyIHsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlVmFsdWVXaXRoVmFyaWFibGVSZWZl
cmVuY2VzKENTU1Byb3BlcnR5SUQsIGNvbnN0IENTU1ZhbHVlJiwgY29uc3QgQ3VzdG9tUHJvcGVy
dHlWYWx1ZU1hcCYgY3VzdG9tUHJvcGVydGllcywgVGV4dERpcmVjdGlvbiwgV3JpdGluZ01vZGUp
OwogCiAgICAgc3RhdGljIENvbG9yIHBhcnNlQ29sb3IoY29uc3QgU3RyaW5nJiwgYm9vbCBzdHJp
Y3QgPSBmYWxzZSk7Ci0gICAgc3RhdGljIENvbG9yIHBhcnNlU3lzdGVtQ29sb3IoY29uc3QgU3Ry
aW5nJiwgc3RkOjpvcHRpb25hbDxjb25zdCBDU1NQYXJzZXJDb250ZXh0Jj4pOworICAgIHN0YXRp
YyBDb2xvciBwYXJzZVN5c3RlbUNvbG9yKGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8c3Rk
OjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBDU1NQYXJzZXJDb250ZXh0Pj4pOwogCiBwcml2YXRl
OgogICAgIFBhcnNlUmVzdWx0IHBhcnNlVmFsdWUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyYsIENT
U1Byb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYsIGJvb2wgaW1wb3J0YW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcAppbmRleCBmMmQ4NDIwN2I5N2EzMzY0OTU0
ZDczMGExMGI0ODhlM2UzODNjNjQ4Li44ZTg2YWVlZmU1ZGM3ODg1Mzc3ZmFjYzkyZjZjZGM1YzU1
NTEyMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01h
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCkBA
IC0xODgsNyArMTg4LDcgQEAgVmVjdG9yPFN0cmluZz4gRGF0YXNldERPTVN0cmluZ01hcDo6c3Vw
cG9ydGVkUHJvcGVydHlOYW1lcygpIGNvbnN0CiAgICAgcmV0dXJuIG5hbWVzOwogfQogCi1zdGQ6
Om9wdGlvbmFsPGNvbnN0IEF0b21pY1N0cmluZyY+IERhdGFzZXRET01TdHJpbmdNYXA6Oml0ZW0o
Y29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVm
ZXJlbmNlX3dyYXBwZXI8Y29uc3QgQXRvbWljU3RyaW5nPj4gRGF0YXNldERPTVN0cmluZ01hcDo6
aXRlbShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgY29uc3QKIHsKICAgICBpZiAobV9lbGVt
ZW50Lmhhc0F0dHJpYnV0ZXMoKSkgewogICAgICAgICBBdHRyaWJ1dGVJdGVyYXRvckFjY2Vzc29y
IGF0dHJpYnV0ZUl0ZXJhdG9yQWNjZXNzb3IgPSBtX2VsZW1lbnQuYXR0cmlidXRlc0l0ZXJhdG9y
KCk7CkBAIC0xOTgsMTIgKzE5OCwxMiBAQCBzdGQ6Om9wdGlvbmFsPGNvbnN0IEF0b21pY1N0cmlu
ZyY+IERhdGFzZXRET01TdHJpbmdNYXA6Oml0ZW0oY29uc3QgU3RyaW5nJiBwcm9wZQogICAgICAg
ICAgICAgLy8gQnVpbGRpbmcgYSBuZXcgQXRvbWljU3RyaW5nIGluIHRoYXQgY2FzZSBpcyBvdmVy
a2lsbCBzbyB3ZSBkbyBhIGRpcmVjdCBjaGFyYWN0ZXIgY29tcGFyaXNvbi4KICAgICAgICAgICAg
IGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlID0gKmF0dHJpYnV0ZUl0ZXJhdG9yQWNjZXNzb3Iu
YmVnaW4oKTsKICAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWVNYXRjaGVzQXR0cmlidXRlTmFt
ZShwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZS5sb2NhbE5hbWUoKSkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGF0dHJpYnV0ZS52YWx1ZSgpOworICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OmNy
ZWYoYXR0cmlidXRlLnZhbHVlKCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQXRv
bWljU3RyaW5nIGF0dHJpYnV0ZU5hbWUgPSBjb252ZXJ0UHJvcGVydHlOYW1lVG9BdHRyaWJ1dGVO
YW1lKHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IEF0dHJpYnV0ZSYgYXR0
cmlidXRlIDogYXR0cmlidXRlSXRlcmF0b3JBY2Nlc3NvcikgewogICAgICAgICAgICAgICAgIGlm
IChhdHRyaWJ1dGUubG9jYWxOYW1lKCkgPT0gYXR0cmlidXRlTmFtZSkKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGF0dHJpYnV0ZS52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gc3RkOjpjcmVmKGF0dHJpYnV0ZS52YWx1ZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KQEAgLTIxMyw3ICsyMTMsOSBAQCBzdGQ6Om9wdGlvbmFsPGNvbnN0IEF0b21pY1N0
cmluZyY+IERhdGFzZXRET01TdHJpbmdNYXA6Oml0ZW0oY29uc3QgU3RyaW5nJiBwcm9wZQogCiBT
dHJpbmcgRGF0YXNldERPTVN0cmluZ01hcDo6bmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSkgY29uc3QKIHsKLSAgICByZXR1cm4gaXRlbShuYW1lKS52YWx1ZV9vcihTdHJpbmcgeyB9
KTsKKyAgICBpZiAoYXV0byB2YWx1ZSA9IGl0ZW0obmFtZSkpCisgICAgICAgIHJldHVybiB2YWx1
ZS0+Z2V0KCk7CisgICAgcmV0dXJuIFN0cmluZyB7IH07CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+
IERhdGFzZXRET01TdHJpbmdNYXA6OnNldE5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNl
dERPTVN0cmluZ01hcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAu
aAppbmRleCA0ODNmNzYzY2MxNmNmOTY0MWJlYTUzZjRkYmU2OWI0ODNiYTFiN2QzLi5kNmQxMGQx
MjYxMjJkY2NjOTk3ZDk3OGY1ZWEyNTRjMzIyNGZmZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhc2V0RE9NU3RyaW5nTWFwLmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgRGF0YXNldERPTVN0
cmluZ01hcCBmaW5hbCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewogICAgIEVsZW1lbnQmIGVs
ZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQ7IH0KIAogcHJpdmF0ZToKLSAgICBzdGQ6Om9wdGlv
bmFsPGNvbnN0IEF0b21pY1N0cmluZyY+IGl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsK
KyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQXRvbWljU3Ry
aW5nPj4gaXRlbShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogCiAgICAgRWxlbWVudCYgbV9l
bGVtZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBhNDMyMzk3ZDcxNzliMTQxZDIw
ZGY4MGZjYmU0Njk1M2NiMTg2NDk2Li4yNzNkOGNhZTcyNmFkYWE1NmJlNTUwZTIwYTcwYmFlMjY3
MWJhZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zNzMzLDcgKzM3MzMsNyBAQCBzdGF0
aWMgRXhjZXB0aW9uT3I8UmVmPEVsZW1lbnQ+PiBjb250ZXh0RWxlbWVudEZvckluc2VydGlvbihj
b25zdCBTdHJpbmcmIHdoZXJlLAogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8vRE9NLVBh
cnNpbmcvI2RvbS1lbGVtZW50LWluc2VydGFkamFjZW50aHRtbAotRXhjZXB0aW9uT3I8dm9pZD4g
RWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0
cmluZyYgbWFya3VwLCBzdGQ6Om9wdGlvbmFsPE5vZGVWZWN0b3ImPiBhZGRlZE5vZGVzKQorRXhj
ZXB0aW9uT3I8dm9pZD4gRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYg
d2hlcmUsIGNvbnN0IFN0cmluZyYgbWFya3VwLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNl
X3dyYXBwZXI8Tm9kZVZlY3Rvcj4+IGFkZGVkTm9kZXMpCiB7CiAgICAgLy8gU3RlcHMgMSBhbmQg
Mi4KICAgICBhdXRvIGNvbnRleHRFbGVtZW50ID0gY29udGV4dEVsZW1lbnRGb3JJbnNlcnRpb24o
d2hlcmUsICp0aGlzKTsKQEAgLTM3NDcsNyArMzc0Nyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEVs
ZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJp
bmcmCiAgICAgaWYgKFVOTElLRUxZKGFkZGVkTm9kZXMpKSB7CiAgICAgICAgIC8vIE11c3QgYmUg
Y2FsbGVkIGJlZm9yZSBpbnNlcnRBZGphY2VudCwgYXMgb3RoZXJ3aXNlIHRoZSBjaGlsZHJlbiBv
ZiBmcmFnbWVudCB3aWxsIGJlIG1vdmVkCiAgICAgICAgIC8vIHRvIHRoZWlyIG5ldyBwYXJlbnQg
YW5kIHdpbGwgYmUgaGFyZGVyIHRvIGtlZXAgdHJhY2sgb2YuCi0gICAgICAgICphZGRlZE5vZGVz
ID0gY29sbGVjdENoaWxkTm9kZXMoZnJhZ21lbnQucmV0dXJuVmFsdWUoKSk7CisgICAgICAgIGFk
ZGVkTm9kZXMtPmdldCgpID0gY29sbGVjdENoaWxkTm9kZXMoZnJhZ21lbnQucmV0dXJuVmFsdWUo
KSk7CiAgICAgfQogCiAgICAgLy8gU3RlcCA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOWU1MmQz
MzE1NTM5OTQ1NDY1NzAzMjE0MTE3ZDdiMjA2YTNmMmFhMy4uOWFmNDExMzA0ZjRkOTk4YWFiMTFi
OTI0YWY5MWQyMTkwMDA2ZmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zMTQsNyArMzE0LDcg
QEAgY2xhc3MgRWxlbWVudCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFRhYkluZGV4KGludCk7CiAgICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4g
Zm9jdXNEZWxlZ2F0ZSgpOwogCi0gICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0QWRqYWNlbnRI
VE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgc3RkOjpvcHRpb25h
bDxOb2RlVmVjdG9yJj4gYWRkZWROb2Rlcyk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0
QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgc3Rk
OjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPE5vZGVWZWN0b3I+PiBhZGRlZE5vZGVz
KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPEVsZW1lbnQqPiBpbnNlcnRBZGph
Y2VudEVsZW1lbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVudCYgbmV3Q2hpbGQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IGluc2VydEFkamFjZW50SFRNTChjb25z
dCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIGh0bWwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvRE9NRWRpdG9yLmNwcAppbmRleCAzNDkzYjAxN2NhMDZiOWYyOTc2MjMyN2ZhMzEzNTNkYjhm
OTU4Njk4Li41OWVjY2Q0MDVjMDM3ZWYyYTQ0MGM0ZDU1MWM5Y2JjYTEyMWM2YWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NRWRpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvRE9NRWRpdG9yLmNwcApAQCAtMjY2LDcgKzI2Niw3IEBAIGNsYXNz
IERPTUVkaXRvcjo6SW5zZXJ0QWRqYWNlbnRIVE1MQWN0aW9uIGZpbmFsIDogcHVibGljIEluc3Bl
Y3Rvckhpc3Rvcnk6OkFjdGlvCiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZWRvKCkgZmluYWwK
ICAgICB7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gbV9lbGVtZW50LT5pbnNlcnRBZGphY2VudEhU
TUwobV9wb3NpdGlvbiwgbV9odG1sLCBtX2FkZGVkTm9kZXMpOworICAgICAgICBhdXRvIHJlc3Vs
dCA9IG1fZWxlbWVudC0+aW5zZXJ0QWRqYWNlbnRIVE1MKG1fcG9zaXRpb24sIG1faHRtbCwgc3Rk
OjpyZWYobV9hZGRlZE5vZGVzKSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAg
cmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsRm9ybURhdGFTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5jcHAKaW5kZXggODRmNWUyYjk0MmI4YTIxY2My
YzQ1MDBmYzM1ZTExZGYwOTVhNjZlOC4uMmFkNmExODcyNGIyZmFjMDQyNDA2NTYwMWM1MjlhYWY5
MmM5ODI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxGb3JtRGF0YVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBD
dXJsRm9ybURhdGFTdHJlYW06OmNsZWFuKCkKICAgICB9CiB9CiAKLXN0ZDo6b3B0aW9uYWw8Y29u
c3QgVmVjdG9yPGNoYXI+Jj4gQ3VybEZvcm1EYXRhU3RyZWFtOjpnZXRQb3N0RGF0YSgpCitzdGQ6
Om9wdGlvbmFsPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgVmVjdG9yPGNoYXI+Pj4gQ3Vy
bEZvcm1EYXRhU3RyZWFtOjpnZXRQb3N0RGF0YSgpCiB7CiAgICAgaWYgKCFtX2Zvcm1EYXRhKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtNzcsNyArNzcsNyBAQCBzdGQ6Om9wdGlv
bmFsPGNvbnN0IFZlY3RvcjxjaGFyPiY+IEN1cmxGb3JtRGF0YVN0cmVhbTo6Z2V0UG9zdERhdGEo
KQogICAgIGlmICghbV9wb3N0RGF0YSkKICAgICAgICAgbV9wb3N0RGF0YSA9IHN0ZDo6bWFrZV91
bmlxdWU8VmVjdG9yPGNoYXI+PihtX2Zvcm1EYXRhLT5mbGF0dGVuKCkpOwogCi0gICAgcmV0dXJu
ICptX3Bvc3REYXRhOworICAgIHJldHVybiBzdGQ6OmNyZWYoKm1fcG9zdERhdGEpOwogfQogCiBi
b29sIEN1cmxGb3JtRGF0YVN0cmVhbTo6c2hvdWxkVXNlQ2h1bmtUcmFuc2ZlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3Ry
ZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRh
U3RyZWFtLmgKaW5kZXggZDFjYTFhZDVmMDBhNjc2ZmZhZTIwOTYwMjc2N2RiMjZiNTliMDBkMS4u
ZDMzZGY3ODAzM2ExNDU3OWMxZWNiMjViODRlNWRmMDIxN2ExOThmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJl
YW0uaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBDdXJsRm9ybURhdGFTdHJlYW0gewogCiAgICAg
c2l6ZV90IGVsZW1lbnRTaXplKCkgeyByZXR1cm4gbV9mb3JtRGF0YSA/IG1fZm9ybURhdGEtPmVs
ZW1lbnRzKCkuc2l6ZSgpIDogMDsgfQogCi0gICAgc3RkOjpvcHRpb25hbDxjb25zdCBWZWN0b3I8
Y2hhcj4mPiBnZXRQb3N0RGF0YSgpOworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vf
d3JhcHBlcjxjb25zdCBWZWN0b3I8Y2hhcj4+PiBnZXRQb3N0RGF0YSgpOwogICAgIGJvb2wgc2hv
dWxkVXNlQ2h1bmtUcmFuc2ZlcigpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbFNpemUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRleCA5NWY3
ZTZiZGIyOGM4NWZlNjZmMDRlMjc4MDAwNTJkNzQzODllN2FkLi40NDVlYTliNTg3OTc0OGY4ZDYw
ZDYyOWY5MzNjOTNlMDk5NzAxYTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tDRE1GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1G
YWN0b3J5LmNwcApAQCAtODEsMTIgKzgxLDEyIEBAIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4g
TW9ja0NETUZhY3Rvcnk6OnJlbW92ZUtleXNGcm9tU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpCiAg
ICAgcmV0dXJuIFdURk1vdmUoaXQtPnZhbHVlKTsKIH0KIAotc3RkOjpvcHRpb25hbDxjb25zdCBW
ZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Jj4gTW9ja0NETUZhY3Rvcnk6OmtleXNGb3JTZXNzaW9u
V2l0aElEKGNvbnN0IFN0cmluZyYgaWQpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPHN0ZDo6cmVmZXJl
bmNlX3dyYXBwZXI8Y29uc3QgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4+IE1vY2tDRE1GYWN0
b3J5OjprZXlzRm9yU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogewogICAg
IGF1dG8gaXQgPSBtX3Nlc3Npb25zLmZpbmQoaWQpOwogICAgIGlmIChpdCA9PSBtX3Nlc3Npb25z
LmVuZCgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpdC0+dmFs
dWU7CisgICAgcmV0dXJuIHN0ZDo6Y3JlZihpdC0+dmFsdWUpOwogfQogCiB2b2lkIE1vY2tDRE1G
YWN0b3J5OjpzZXRTdXBwb3J0ZWREYXRhVHlwZXMoVmVjdG9yPFN0cmluZz4mJiB0eXBlcykKQEAg
LTMxNCwxMSArMzE0LDExIEBAIHZvaWQgTW9ja0NETUluc3RhbmNlOjp1cGRhdGVMaWNlbnNlKGNv
bnN0IFN0cmluZyYgc2Vzc2lvbklELCBMaWNlbnNlVHlwZSwgY29uc3QKIAogICAgIHN0ZDo6b3B0
aW9uYWw8S2V5U3RhdHVzVmVjdG9yPiBjaGFuZ2VkS2V5czsKICAgICBpZiAocmVzcG9uc2VWZWN0
b3IuY29udGFpbnMoU3RyaW5nKEFTQ0lJTGl0ZXJhbCgia2V5cy1jaGFuZ2VkIikpKSkgewotICAg
ICAgICBzdGQ6Om9wdGlvbmFsPGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4mPiBrZXlz
ID0gZmFjdG9yeS0+a2V5c0ZvclNlc3Npb25XaXRoSUQoc2Vzc2lvbklEKTsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IFZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj4+PiBrZXlzID0gZmFjdG9yeS0+a2V5c0ZvclNlc3Npb25XaXRoSUQoc2Vzc2lvbklE
KTsKICAgICAgICAgaWYgKGtleXMpIHsKICAgICAgICAgICAgIEtleVN0YXR1c1ZlY3RvciBrZXlT
dGF0dXNWZWN0b3I7Ci0gICAgICAgICAgICBrZXlTdGF0dXNWZWN0b3IucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShrZXlzLT5zaXplKCkpOwotICAgICAgICAgICAgZm9yIChhdXRvJiBrZXkgOiAqa2V5
cykKKyAgICAgICAgICAgIGtleVN0YXR1c1ZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGtl
eXMtPmdldCgpLnNpemUoKSk7CisgICAgICAgICAgICBmb3IgKGF1dG8mIGtleSA6ICgqa2V5cyku
Z2V0KCkpCiAgICAgICAgICAgICAgICAga2V5U3RhdHVzVmVjdG9yLnVuY2hlY2tlZEFwcGVuZCh7
IGtleS5jb3B5UmVmKCksIEtleVN0YXR1czo6VXNhYmxlIH0pOwogCiAgICAgICAgICAgICBjaGFu
Z2VkS2V5cyA9IFdURk1vdmUoa2V5U3RhdHVzVmVjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja0NETUZhY3RvcnkuaAppbmRleCAyMzdiMmIzNjQyNjMzMGJjNzVhMDRkZjM1MGUwODFhYjc4
ODYxODQzLi4zZTZkYjIxZDAxYmNkNWE1MGFmNWU5NzY1MGMzZjE0YjhiNzk2NDhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oCkBAIC03Myw3ICs3Myw3IEBAIGNsYXNz
IE1vY2tDRE1GYWN0b3J5IDogcHVibGljIFJlZkNvdW50ZWQ8TW9ja0NETUZhY3Rvcnk+LCBwcml2
YXRlIENETUZhY3RvcnkgewogICAgIGJvb2wgaGFzU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcm
IGlkKSB7IHJldHVybiBtX3Nlc3Npb25zLmNvbnRhaW5zKGlkKTsgfQogICAgIHZvaWQgcmVtb3Zl
U2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkKSB7IG1fc2Vzc2lvbnMucmVtb3ZlKGlkKTsg
fQogICAgIHZvaWQgYWRkS2V5c1RvU2Vzc2lvbldpdGhJRChjb25zdCBTdHJpbmcmIGlkLCBWZWN0
b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYpOwotICAgIHN0ZDo6b3B0aW9uYWw8Y29uc3QgVmVjdG9y
PFJlZjxTaGFyZWRCdWZmZXI+PiY+IGtleXNGb3JTZXNzaW9uV2l0aElEKGNvbnN0IFN0cmluZyYg
aWQpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25z
dCBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+Pj4ga2V5c0ZvclNlc3Npb25XaXRoSUQoY29uc3Qg
U3RyaW5nJiBpZCkgY29uc3Q7CiAgICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiByZW1vdmVL
ZXlzRnJvbVNlc3Npb25XaXRoSUQoY29uc3QgU3RyaW5nJiBpZCk7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKaW5kZXggMWY3NjgwODU2NGVkNGRiNmU1
YzBjZTFlYjYzMDIxMTcxZTkwZWQxYi4uY2I1M2FhZGU2M2UzOWYzMmUyYmY2MjY3OGRlN2MzY2I5
NDJkZjM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaApAQCAtMTIw
LDcgKzEyMCw3IEBAIGNsYXNzIFNhbmRib3hFeHRlbnNpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxT
YW5kYm94RXh0ZW5zaW9uPiB7CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpIYW5k
bGUoKSB7IH0KIGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6On5IYW5kbGUoKSB7IH0K
IGlubGluZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYpIGNvbnN0IHsgfQotaW5saW5lIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlPiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImKSB7IHJl
dHVybiB7eyB9fTsgfQoraW5saW5lIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlPiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImKSB7IHJl
dHVybiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgeyB9OyB9CiBpbmxpbmUgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXk6OkhhbmRsZUFycmF5KCkgeyB9CiBpbmxpbmUgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXk6On5IYW5kbGVBcnJheSgpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmFsbG9jYXRlKHNpemVfdCkgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0YS5jcHAKaW5kZXggZDAyMjZiYjlhOWVj
MWJhZTE4MzViYmRkZTEzNDhjMTI4NjZiZDEwMy4uM2NkZWU4MmQwYWRmMzQzNWM4ZWQ5Y2ZjZDdk
YmQ0NjM5ZjgxMDE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvVG91Y2hCYXJN
ZW51SXRlbURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RvdWNoQmFyTWVudUl0
ZW1EYXRhLmNwcApAQCAtNjUsNyArNjUsNyBAQCBzdGQ6Om9wdGlvbmFsPFRvdWNoQmFyTWVudUl0
ZW1EYXRhPiBUb3VjaEJhck1lbnVJdGVtRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZAogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnByaW9yaXR5KSkKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICAKLSAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOworICAgIHJldHVy
biBzdGQ6Om1ha2Vfb3B0aW9uYWwoV1RGTW92ZShyZXN1bHQpKTsKIH0KIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339489</attachid>
            <date>2018-05-03 17:03:46 -0700</date>
            <delta_ts>2018-05-03 17:12:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185159-20180504090345.patch</filename>
            <type>text/plain</type>
            <size>5355</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDllMTc2YjM4ZDhiZTUyYjQwMjM1YTk5
YTU2MWUxZjMyZGVhZTFlNjQuLjRhMThiOGMxNDY1MTZiZGZjYmZkYjU2NjI5N2MwNzY2ZmEyMjFk
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMDUtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBp
ZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvRXhwZWN0ZWQuaDoKKyAgICAgICAgKiB3dGYvT3B0aW9uYWwuaDoKKyAg
ICAgICAgRG8gbm90IHVzZSA8b3B0aW9uYWw+IGZvciBjbGFuZyBjdXJyZW50bHkuCisgICAgICAg
IChXVEY6OnZhbHVlT3JDb21wdXRlKToKKwogMjAxOC0wNS0wMyAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZHMgaW4gTllUaW1lcyBhcHAgYXJlIHNo
aWZ0ZWQgZG93bndhcmRzIGJ5IHRoZSBzY3JvbGwgdmlldydzIHRvcCBjb250ZW50IGluc2V0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGRkNTU5N2ZiYjUxYjU5MGUwMTg1Yzk3ODRiODQ3OGVjZGUzOGRlN2YuLmNlZTI1
ODMyNDBhOTc2OWQ0ODEwNjBhYjc0ZTQ1ZjRiZmFjMzAwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTgtMDUtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBpZiBpdCBpcyBwcm92aWRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTU5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQv
U2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VG91Y2hCYXJNZW51SXRlbURhdGE6OmRlY29kZSk6CisKIDIw
MTgtMDUtMDMgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2ViR0xdIEFkZCBydW50aW1lIGZsYWcgZm9yIGVuYWJsaW5nIEFTVEMgc3VwcG9ydCBpbiBXZWJH
TApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaCBiL1NvdXJjZS9XVEYvd3Rm
L0V4cGVjdGVkLmgKaW5kZXggZGQwNDVlNTk4NzVlNGY0NzY3ZWIyZWIxNzljMWMyNzE5ZTBhZjJl
Mi4uZTliMGVjOWY5ZTY0NWVjZWVkZDZmNDBlNDJjZjg5MTQwNTczN2E1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvRXhwZWN0ZWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5o
CkBAIC01NzMsNSArNTczLDUgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRT4gdm9p
ZCBzd2FwKGV4cGVjdGVkPFQsIEU+JiB4LCBleHBlY3RlZDxULCBFPiYgeSkKIAogfX19IC8vIG5h
bWVzcGFjZSBzdGQ6OmV4cGVyaW1lbnRhbDo6ZnVuZGFtZW50YWxzX3YzCiAKLV9fRVhQRUNURURf
SU5MSU5FX1ZBUklBQkxFIGNvbnN0ZXhwciBzdGQ6OmV4cGVyaW1lbnRhbDo6dW5leHBlY3RlZF90
JiB1bmV4cGVjdCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdDsKK19fRVhQRUNURURfSU5M
SU5FX1ZBUklBQkxFIGNvbnN0ZXhwciBhdXRvJiB1bmV4cGVjdCA9IHN0ZDo6ZXhwZXJpbWVudGFs
Ojp1bmV4cGVjdDsKIHRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIEU+IHVzaW5nIEV4cGVjdGVkID0g
c3RkOjpleHBlcmltZW50YWw6OmV4cGVjdGVkPFQsIEU+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvT3B0aW9uYWwuaCBiL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKaW5kZXggYTNmYzU4
OTA4MzQ1YWMxYjBhMjI0YmMyZjE3OTg0NjkxNmQ5ZDJkNy4uZGNlZjM3YWI4ZDUwMzc5MTBmODYx
ZjM1ZTUxZDEwMzIyMzIwMzcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCkBAIC00Nyw2ICs0NywxNiBAQAogIyBp
bmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KICMgaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgog
CisjaWYgIUNPTVBJTEVSKE1TVkMpICYmICFDT01QSUxFUihDTEFORykgJiYgX19oYXNfaW5jbHVk
ZSg8b3B0aW9uYWw+KQorIyBpbmNsdWRlIDxvcHRpb25hbD4KKyNlbmRpZgorCisjaWYgIUNPTVBJ
TEVSKE1TVkMpICYmICFDT01QSUxFUihDTEFORykgJiYgZGVmaW5lZChfX2NwcF9saWJfb3B0aW9u
YWwpICYmIF9fY3BwX2xpYl9vcHRpb25hbCA+PSAyMDE2MDMKKworLy8gVXNlIGRlZmF1bHQgc3Rk
OjpvcHRpb25hbC4KKworI2Vsc2UKKwogIyBkZWZpbmUgVFIyX09QVElPTkFMX1JFUVVJUkVTKC4u
LikgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8X19WQV9BUkdTX186OnZhbHVlLCBib29sPjo6dHlw
ZSA9IGZhbHNlCiAKICMgaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBOT1RFOiBHTlVDIGlzIGFsc28g
ZGVmaW5lZCBmb3IgQ2xhbmcKQEAgLTEwMTIsMjAgKzEwMjIsNiBAQCBjb25zdGV4cHIgb3B0aW9u
YWw8WCY+IG1ha2Vfb3B0aW9uYWwoc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxYPiB2KQogCiB9IC8v
IG5hbWVzcGFjZSBzdGQKIAotbmFtZXNwYWNlIFdURiB7Ci0KLS8vIC0tIFdlYktpdCBBZGRpdGlv
bnMgLS0KLXRlbXBsYXRlIDxjbGFzcyBPcHRpb25hbFR5cGUsIGNsYXNzIENhbGxiYWNrPgotQUxX
QVlTX0lOTElORQotYXV0byB2YWx1ZU9yQ29tcHV0ZShPcHRpb25hbFR5cGUgb3B0aW9uYWwsIENh
bGxiYWNrIGNhbGxiYWNrKSAtPiB0eXBlbmFtZSBPcHRpb25hbFR5cGU6OnZhbHVlX3R5cGUKLXsK
LSAgICBpZiAob3B0aW9uYWwpCi0gICAgICAgIHJldHVybiAqb3B0aW9uYWw7Ci0gICAgcmV0dXJu
IGNhbGxiYWNrKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCiBuYW1lc3BhY2Ugc3RkCiB7
CiAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpAQCAtMTA1NCw0ICsxMDUwLDIwIEBAIG5hbWVzcGFj
ZSBzdGQKICMgdW5kZWYgVFIyX09QVElPTkFMX1JFUVVJUkVTCiAjIHVuZGVmIFRSMl9PUFRJT05B
TF9BU1NFUlRFRF9FWFBSRVNTSU9OCiAKKyNlbmRpZiAvLyBkZWZpbmVkKF9fY3BwX2xpYl9vcHRp
b25hbCkKKworbmFtZXNwYWNlIFdURiB7CisKKy8vIC0tIFdlYktpdCBBZGRpdGlvbnMgLS0KK3Rl
bXBsYXRlIDxjbGFzcyBPcHRpb25hbFR5cGUsIGNsYXNzIENhbGxiYWNrPgorQUxXQVlTX0lOTElO
RQorYXV0byB2YWx1ZU9yQ29tcHV0ZShPcHRpb25hbFR5cGUgb3B0aW9uYWwsIENhbGxiYWNrIGNh
bGxiYWNrKSAtPiB0eXBlbmFtZSBPcHRpb25hbFR5cGU6OnZhbHVlX3R5cGUKK3sKKyAgICBpZiAo
b3B0aW9uYWwpCisgICAgICAgIHJldHVybiAqb3B0aW9uYWw7CisgICAgcmV0dXJuIGNhbGxiYWNr
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiB1c2luZyBXVEY6OnZhbHVlT3JDb21wdXRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCmluZGV4IDFmNzY4MDg1NjRl
ZDRkYjZlNWMwY2UxZWI2MzAyMTE3MWU5MGVkMWIuLmNiNTNhYWRlNjNlMzlmMzJlMmJmNjI2Nzhk
ZTdjM2NiOTQyZGYzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hF
eHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgK
QEAgLTEyMCw3ICsxMjAsNyBAQCBjbGFzcyBTYW5kYm94RXh0ZW5zaW9uIDogcHVibGljIFJlZkNv
dW50ZWQ8U2FuZGJveEV4dGVuc2lvbj4gewogaW5saW5lIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZTo6SGFuZGxlKCkgeyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjp+SGFuZGxl
KCkgeyB9CiBpbmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZShJUEM6
OkVuY29kZXImKSBjb25zdCB7IH0KLWlubGluZSBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZT4gU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVy
JikgeyByZXR1cm4ge3sgfX07IH0KK2lubGluZSBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZT4gU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVy
JikgeyByZXR1cm4gU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHsgfTsgfQogaW5saW5lIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpIYW5kbGVBcnJheSgpIHsgfQogaW5saW5lIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5Ojp+SGFuZGxlQXJyYXkoKSB7IH0KIGlubGluZSB2b2lk
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjphbGxvY2F0ZShzaXplX3QpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvVG91Y2hCYXJNZW51SXRlbURhdGEuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvVG91Y2hCYXJNZW51SXRlbURhdGEuY3BwCmluZGV4IGQwMjI2
YmI5YTllYzFiYWUxODM1YmJkZGUxMzQ4YzEyODY2YmQxMDMuLjNjZGVlODJkMGFkZjM0MzVjOGVk
OWNmY2Q3ZGJkNDYzOWY4MTAxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Rv
dWNoQmFyTWVudUl0ZW1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ub3VjaEJh
ck1lbnVJdGVtRGF0YS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgc3RkOjpvcHRpb25hbDxUb3VjaEJh
ck1lbnVJdGVtRGF0YT4gVG91Y2hCYXJNZW51SXRlbURhdGE6OmRlY29kZShJUEM6OkRlY29kZXIm
IGQKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5wcmlvcml0eSkpCiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgCi0gICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKKyAg
ICByZXR1cm4gc3RkOjptYWtlX29wdGlvbmFsKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339491</attachid>
            <date>2018-05-03 17:12:41 -0700</date>
            <delta_ts>2018-05-03 17:14:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185159-20180504091240.patch</filename>
            <type>text/plain</type>
            <size>5206</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDllMTc2YjM4ZDhiZTUyYjQwMjM1YTk5
YTU2MWUxZjMyZGVhZTFlNjQuLjRhMThiOGMxNDY1MTZiZGZjYmZkYjU2NjI5N2MwNzY2ZmEyMjFk
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMDUtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBp
ZiBpdCBpcyBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MTU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvRXhwZWN0ZWQuaDoKKyAgICAgICAgKiB3dGYvT3B0aW9uYWwuaDoKKyAg
ICAgICAgRG8gbm90IHVzZSA8b3B0aW9uYWw+IGZvciBjbGFuZyBjdXJyZW50bHkuCisgICAgICAg
IChXVEY6OnZhbHVlT3JDb21wdXRlKToKKwogMjAxOC0wNS0wMyAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZHMgaW4gTllUaW1lcyBhcHAgYXJlIHNo
aWZ0ZWQgZG93bndhcmRzIGJ5IHRoZSBzY3JvbGwgdmlldydzIHRvcCBjb250ZW50IGluc2V0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGRkNTU5N2ZiYjUxYjU5MGUwMTg1Yzk3ODRiODQ3OGVjZGUzOGRlN2YuLmNlZTI1
ODMyNDBhOTc2OWQ0ODEwNjBhYjc0ZTQ1ZjRiZmFjMzAwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTgtMDUtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgVXNlIGRlZmF1bHQgc3RkOjpvcHRpb25hbCBpZiBpdCBpcyBwcm92aWRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MTU5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQv
U2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1RvdWNoQmFyTWVudUl0ZW1EYXRhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VG91Y2hCYXJNZW51SXRlbURhdGE6OmRlY29kZSk6CisKIDIw
MTgtMDUtMDMgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2ViR0xdIEFkZCBydW50aW1lIGZsYWcgZm9yIGVuYWJsaW5nIEFTVEMgc3VwcG9ydCBpbiBXZWJH
TApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaCBiL1NvdXJjZS9XVEYvd3Rm
L0V4cGVjdGVkLmgKaW5kZXggZGQwNDVlNTk4NzVlNGY0NzY3ZWIyZWIxNzljMWMyNzE5ZTBhZjJl
Mi4uZTliMGVjOWY5ZTY0NWVjZWVkZDZmNDBlNDJjZjg5MTQwNTczN2E1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvRXhwZWN0ZWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5o
CkBAIC01NzMsNSArNTczLDUgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRT4gdm9p
ZCBzd2FwKGV4cGVjdGVkPFQsIEU+JiB4LCBleHBlY3RlZDxULCBFPiYgeSkKIAogfX19IC8vIG5h
bWVzcGFjZSBzdGQ6OmV4cGVyaW1lbnRhbDo6ZnVuZGFtZW50YWxzX3YzCiAKLV9fRVhQRUNURURf
SU5MSU5FX1ZBUklBQkxFIGNvbnN0ZXhwciBzdGQ6OmV4cGVyaW1lbnRhbDo6dW5leHBlY3RlZF90
JiB1bmV4cGVjdCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp1bmV4cGVjdDsKK19fRVhQRUNURURfSU5M
SU5FX1ZBUklBQkxFIGNvbnN0ZXhwciBhdXRvJiB1bmV4cGVjdCA9IHN0ZDo6ZXhwZXJpbWVudGFs
Ojp1bmV4cGVjdDsKIHRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIEU+IHVzaW5nIEV4cGVjdGVkID0g
c3RkOjpleHBlcmltZW50YWw6OmV4cGVjdGVkPFQsIEU+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvT3B0aW9uYWwuaCBiL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKaW5kZXggYTNmYzU4
OTA4MzQ1YWMxYjBhMjI0YmMyZjE3OTg0NjkxNmQ5ZDJkNy4uNjdlZTI3NzUyZmY5MDgyMDJiMzdi
YTg1YTcxZDE1ODBmNzFiNjEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCkBAIC00Nyw2ICs0NywxMCBAQAogIyBp
bmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KICMgaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgog
CisjaWYgIUNPTVBJTEVSKE1TVkMpICYmICFQTEFURk9STShDT0NPQSkgJiYgX19oYXNfaW5jbHVk
ZSg8b3B0aW9uYWw+KQorIyBpbmNsdWRlIDxvcHRpb25hbD4KKyNlbHNlCisKICMgZGVmaW5lIFRS
Ml9PUFRJT05BTF9SRVFVSVJFUyguLi4pIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPF9fVkFfQVJH
U19fOjp2YWx1ZSwgYm9vbD46OnR5cGUgPSBmYWxzZQogCiAjIGlmIGRlZmluZWQgX19HTlVDX18g
Ly8gTk9URTogR05VQyBpcyBhbHNvIGRlZmluZWQgZm9yIENsYW5nCkBAIC0xMDEyLDIwICsxMDE2
LDYgQEAgY29uc3RleHByIG9wdGlvbmFsPFgmPiBtYWtlX29wdGlvbmFsKHN0ZDo6cmVmZXJlbmNl
X3dyYXBwZXI8WD4gdikKIAogfSAvLyBuYW1lc3BhY2Ugc3RkCiAKLW5hbWVzcGFjZSBXVEYgewot
Ci0vLyAtLSBXZWJLaXQgQWRkaXRpb25zIC0tCi10ZW1wbGF0ZSA8Y2xhc3MgT3B0aW9uYWxUeXBl
LCBjbGFzcyBDYWxsYmFjaz4KLUFMV0FZU19JTkxJTkUKLWF1dG8gdmFsdWVPckNvbXB1dGUoT3B0
aW9uYWxUeXBlIG9wdGlvbmFsLCBDYWxsYmFjayBjYWxsYmFjaykgLT4gdHlwZW5hbWUgT3B0aW9u
YWxUeXBlOjp2YWx1ZV90eXBlCi17Ci0gICAgaWYgKG9wdGlvbmFsKQotICAgICAgICByZXR1cm4g
Km9wdGlvbmFsOwotICAgIHJldHVybiBjYWxsYmFjaygpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
VEYKLQogbmFtZXNwYWNlIHN0ZAogewogICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KQEAgLTEwNTQs
NCArMTA0NCwyMCBAQCBuYW1lc3BhY2Ugc3RkCiAjIHVuZGVmIFRSMl9PUFRJT05BTF9SRVFVSVJF
UwogIyB1bmRlZiBUUjJfT1BUSU9OQUxfQVNTRVJURURfRVhQUkVTU0lPTgogCisjZW5kaWYgLy8g
ZGVmaW5lZChfX2NwcF9saWJfb3B0aW9uYWwpCisKK25hbWVzcGFjZSBXVEYgeworCisvLyAtLSBX
ZWJLaXQgQWRkaXRpb25zIC0tCit0ZW1wbGF0ZSA8Y2xhc3MgT3B0aW9uYWxUeXBlLCBjbGFzcyBD
YWxsYmFjaz4KK0FMV0FZU19JTkxJTkUKK2F1dG8gdmFsdWVPckNvbXB1dGUoT3B0aW9uYWxUeXBl
IG9wdGlvbmFsLCBDYWxsYmFjayBjYWxsYmFjaykgLT4gdHlwZW5hbWUgT3B0aW9uYWxUeXBlOjp2
YWx1ZV90eXBlCit7CisgICAgaWYgKG9wdGlvbmFsKQorICAgICAgICByZXR1cm4gKm9wdGlvbmFs
OworICAgIHJldHVybiBjYWxsYmFjaygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwogdXNp
bmcgV1RGOjp2YWx1ZU9yQ29tcHV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1NhbmRib3hFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNp
b24uaAppbmRleCAxZjc2ODA4NTY0ZWQ0ZGI2ZTVjMGNlMWViNjMwMjExNzFlOTBlZDFiLi5jYjUz
YWFkZTYzZTM5ZjMyZTJiZjYyNjc4ZGU3YzNjYjk0MmRmMzgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvU2FuZGJveEV4dGVuc2lvbi5oCkBAIC0xMjAsNyArMTIwLDcgQEAgY2xhc3MgU2FuZGJveEV4
dGVuc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNhbmRib3hFeHRlbnNpb24+IHsKIGlubGluZSBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OkhhbmRsZSgpIHsgfQogaW5saW5lIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZTo6fkhhbmRsZSgpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3QgeyB9Ci1pbmxpbmUgc3RkOjpv
cHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYpIHsgcmV0dXJuIHt7IH19OyB9CitpbmxpbmUgc3RkOjpv
cHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYpIHsgcmV0dXJuIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSB7IH07IH0KIGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6SGFuZGxlQXJy
YXkoKSB7IH0KIGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6fkhhbmRsZUFy
cmF5KCkgeyB9CiBpbmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6YWxs
b2NhdGUoc2l6ZV90KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RvdWNo
QmFyTWVudUl0ZW1EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RvdWNoQmFyTWVudUl0
ZW1EYXRhLmNwcAppbmRleCBkMDIyNmJiOWE5ZWMxYmFlMTgzNWJiZGRlMTM0OGMxMjg2NmJkMTAz
Li4zY2RlZTgyZDBhZGYzNDM1YzhlZDljZmNkN2RiZDQ2MzlmODEwMTgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Ub3VjaEJhck1lbnVJdGVtRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvVG91Y2hCYXJNZW51SXRlbURhdGEuY3BwCkBAIC02NSw3ICs2NSw3IEBA
IHN0ZDo6b3B0aW9uYWw8VG91Y2hCYXJNZW51SXRlbURhdGE+IFRvdWNoQmFyTWVudUl0ZW1EYXRh
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
cHJpb3JpdHkpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIAotICAgIHJldHVy
biBXVEZNb3ZlKHJlc3VsdCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9vcHRpb25hbChXVEZNb3Zl
KHJlc3VsdCkpOwogfQogCiB9Cg==
</data>
<flag name="review"
          id="357733"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>