<?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>231410</bug_id>
          
          <creation_ts>2021-10-07 21:19:21 -0700</creation_ts>
          <short_desc>Scroll To Text Fragment directive parsing</short_desc>
          <delta_ts>2024-11-07 22:24:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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=282814</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>231870</dependson>
    
    <dependson>231871</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bramus</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801917</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-07 21:19:21 -0700</bug_when>
    <thetext>Scroll To Text Fragment directive parsing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801919</commentid>
    <comment_count>1</comment_count>
      <attachid>440570</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-07 21:24:21 -0700</bug_when>
    <thetext>Created attachment 440570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801924</commentid>
    <comment_count>2</comment_count>
      <attachid>440570</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-10-07 21:42:17 -0700</bug_when>
    <thetext>Comment on attachment 440570
Patch

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

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:62
&gt; +    m_URLFragment = fragmentIdentifier.substring(0, fragmentDirectiveStart);

I would call this like &quot;remaining fragment&quot; or something. Also the comment should have a capital/punctuation.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:84
&gt; +    LOG_WITH_STREAM(Scrolling, stream &lt;&lt; *this &lt;&lt; &quot; parseFragmentDirective: &quot;);

I think this probably should not use the Scrolling log channel

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:88
&gt; +        // FIXME: add decoding for % encoded strings.

This is fairly critical, because it comes up as soon as you have a space in the string :)

Oddly the decoding code that decodeURIComponent is inline in JSGlobalObjectFunctions (and the URL parser&apos;s is similarly internal to it), so it&apos;s not clear what the right way to do this is.

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:45
&gt; +class FragmentDirectiveParser : public RefCounted&lt;FragmentDirectiveParser&gt; {

Unclear why this is refcounted, probably just a plain class?

&gt; Source/WebCore/page/FrameView.cpp:2224
&gt; +    }

I&apos;m guessing you either want to bail here, or pass the fragment parser&apos;s &quot;remaining fragment&quot; on down below, but likely /not/ fall through like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802112</commentid>
    <comment_count>3</comment_count>
      <attachid>440628</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-08 09:09:07 -0700</bug_when>
    <thetext>Created attachment 440628
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802125</commentid>
    <comment_count>4</comment_count>
      <attachid>440632</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-08 09:34:22 -0700</bug_when>
    <thetext>Created attachment 440632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802143</commentid>
    <comment_count>5</comment_count>
      <attachid>440638</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-08 10:26:16 -0700</bug_when>
    <thetext>Created attachment 440638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802200</commentid>
    <comment_count>6</comment_count>
      <attachid>440658</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-08 12:58:51 -0700</bug_when>
    <thetext>Created attachment 440658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802354</commentid>
    <comment_count>7</comment_count>
      <attachid>440699</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-08 19:54:11 -0700</bug_when>
    <thetext>Created attachment 440699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802751</commentid>
    <comment_count>8</comment_count>
      <attachid>440823</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-11 12:44:40 -0700</bug_when>
    <thetext>Created attachment 440823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802820</commentid>
    <comment_count>9</comment_count>
      <attachid>440843</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-11 14:59:00 -0700</bug_when>
    <thetext>Created attachment 440843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802827</commentid>
    <comment_count>10</comment_count>
      <attachid>440843</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-11 15:07:44 -0700</bug_when>
    <thetext>Comment on attachment 440843
Patch

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

Initial glance through seems reasonable, needs some polish and tests.

&gt; Source/WebCore/dom/Document.h:1631
&gt; +    String&amp; fragmentDirective() { return m_fragmentDirective; }

This one should probably be removed.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:37
&gt; +    String fragmentDirectiveDelimiter = &quot;:~:&quot;_s;

ASCIILiteral, which would prevent an allocation.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:40
&gt; +    m_isValid = false;

This should probably be done with an initializer list in the header
bool m_isValid { false };

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:79
&gt; +    auto directives = fragmentDirective.split(&quot;&amp;&quot;);

split(&apos;&amp;&apos;)

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:32
&gt; +class URL;

This should probably be replaced by wtf/Forward.h, which also has &quot;using WTF::URL&quot;

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:52
&gt; +    String fragmentDirective() { return m_fragmentDirective; };
&gt; +    StringView remainingURLFragment() { return m_remainingURLFragment; };

const String&amp; fragmentDirective() const
StringView remainingURLFragment() const

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:57
&gt; +    bool parseFragmentDirective(String fragmentDirective);

Can this take a StringView instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802834</commentid>
    <comment_count>11</comment_count>
      <attachid>440843</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-11 15:17:50 -0700</bug_when>
    <thetext>Comment on attachment 440843
Patch

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

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:68
&gt; +bool FragmentDirectiveParser::parseFragmentDirective(String fragmentDirective)

I agree with Alex that this should take in a StringView, but even if it took at String, we would not pass it by value.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:83
&gt; +    for (auto directive : directives) {

auto&amp;

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:90
&gt; +        for (auto token : tokens) {

auto&amp;

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:99
&gt; +            tokens[0].truncate(tokens[0].length()-2);

missing spaces around -

What if the token is &apos;-&apos; ? (would result in `1 - 2`)

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:46
&gt; +    WTF_MAKE_FAST_ALLOCATED(FragmentDirectiveParser);

Not needed since you subclass RefCounted.

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:48
&gt; +    FragmentDirectiveParser(const URL&amp;);

explicit?

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:50
&gt; +    Vector&lt;ParsedTextDirective&gt; parsedTextDirectives() { return m_parsedTextDirectives; };

I don&apos;t think you mean to copy the vector here? Should probably be const and return a `const Vector&lt;&gt;&amp;`

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:51
&gt; +    String fragmentDirective() { return m_fragmentDirective; };

ditto.

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:53
&gt; +    bool isValid() { return  m_isValid; };

should be const.

&gt; Source/WebCore/page/FrameView.cpp:2218
&gt; +        auto fragmentDirectiveParser = FragmentDirectiveParser(url);

FragmentDirectiveParser fragmentDirectiveParser(url); seems shorter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802845</commentid>
    <comment_count>12</comment_count>
      <attachid>440843</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-10-11 15:30:32 -0700</bug_when>
    <thetext>Comment on attachment 440843
Patch

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

&gt;&gt; Source/WebCore/dom/FragmentDirectiveParser.h:46
&gt;&gt; +    WTF_MAKE_FAST_ALLOCATED(FragmentDirectiveParser);
&gt; 
&gt; Not needed since you subclass RefCounted.

Oh, we discussed earlier not making this thing refcounted (see the public constructor and lack of ::create), but I think Megan missed removing the inheritance from RefCounted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802846</commentid>
    <comment_count>13</comment_count>
      <attachid>440843</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-11 15:32:01 -0700</bug_when>
    <thetext>Comment on attachment 440843
Patch

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

&gt;&gt;&gt; Source/WebCore/dom/FragmentDirectiveParser.h:46
&gt;&gt;&gt; +    WTF_MAKE_FAST_ALLOCATED(FragmentDirectiveParser);
&gt;&gt; 
&gt;&gt; Not needed since you subclass RefCounted.
&gt; 
&gt; Oh, we discussed earlier not making this thing refcounted (see the public constructor and lack of ::create), but I think Megan missed removing the inheritance from RefCounted.

Good point. Having a public constructor AND subclassing RefCounted&lt;&gt; is definitely wrong :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802847</commentid>
    <comment_count>14</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-11 15:33:09 -0700</bug_when>
    <thetext>Yes, I didn&apos;t remove the RefCounted bit, will fix shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802940</commentid>
    <comment_count>15</comment_count>
      <attachid>440874</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-11 20:03:59 -0700</bug_when>
    <thetext>Created attachment 440874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803259</commentid>
    <comment_count>16</comment_count>
      <attachid>440962</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-12 11:26:34 -0700</bug_when>
    <thetext>Created attachment 440962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803262</commentid>
    <comment_count>17</comment_count>
      <attachid>440874</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-10-12 11:33:52 -0700</bug_when>
    <thetext>Comment on attachment 440874
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        * Sources.txt:

This whole section could use more words.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:29
&gt; +#import &quot;Logging.h&quot;

#include to fix the windows build

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:57
&gt; +    // FIXME: this needs to be set on the original URL

Complete sentences with capitals and punctuations! Also I think it is a lie, you can&apos;t modify the loaded URL; the real thing you want to do is expose the de-directived fragment to other things in WebCore that use the fragment (e.g. normal scroll-to-fragment)... which it looks like you already do. Should talk to Alex.

&gt; Source/WebCore/page/FrameView.cpp:2225
&gt; +            

Shouldn&apos;t this `return` here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803269</commentid>
    <comment_count>18</comment_count>
      <attachid>440962</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-12 11:43:29 -0700</bug_when>
    <thetext>Comment on attachment 440962
Patch

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

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:61
&gt; +    parseFragmentDirective(fragmentDirectiveString);

Should pass fragmentDirective directly here. Going StringView -&gt; String -&gt; StringView is wrong.

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:43
&gt; +    FragmentDirectiveParser(const URL&amp;);

explicit

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:52
&gt; +    bool parseFragmentDirective(StringView fragmentDirective);

parameter name can be omitted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803283</commentid>
    <comment_count>19</comment_count>
      <attachid>440962</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-12 12:03:05 -0700</bug_when>
    <thetext>Comment on attachment 440962
Patch

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

Looks reasonable to me! Just a few minor comments.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:41
&gt; +    if (!fragmentIdentifier || fragmentIdentifier.isEmpty()) {

Nit - just `if (fragmentIdentifier.isEmpty())` is sufficient here, since the null string is considered empty.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:42
&gt; +        m_fragmentDirective = String();

Nit - I think you can just omit this line, since `m_fragmentDirective` is already initialized to the null string.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:50
&gt; +        m_fragmentDirective = String();

(Ditto)

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:58
&gt; +    m_remainingURLFragment = fragmentIdentifier.substring(0, fragmentDirectiveStart);

Nit - `m_remainingURLFragment = fragmentIdentifier.left(fragmentDirectiveStart);` might be a tiny bit cleaner.

&gt; Source/WebCore/page/FrameView.cpp:2213
&gt; +    auto&amp; document = *frame().document();

Nit - this should be a Ref or RefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803335</commentid>
    <comment_count>20</comment_count>
      <attachid>440975</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-12 13:25:52 -0700</bug_when>
    <thetext>Created attachment 440975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803429</commentid>
    <comment_count>21</comment_count>
      <attachid>440989</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-12 14:57:16 -0700</bug_when>
    <thetext>Created attachment 440989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803543</commentid>
    <comment_count>22</comment_count>
      <attachid>441016</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-12 16:36:59 -0700</bug_when>
    <thetext>Created attachment 441016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803898</commentid>
    <comment_count>23</comment_count>
      <attachid>441016</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 11:53:20 -0700</bug_when>
    <thetext>Comment on attachment 441016
Patch

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

r=me with changes.

&gt; Source/WebCore/dom/Document.h:2225
&gt; +    StringView m_fragmentDirective;

It doesn&apos;t seem right of have a StringView data member on the Document. What guarantees that the underlying String stays alive?

We probably want to use String here and `const String&amp;` in the getter/setter.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:73
&gt; +    fragmentDirective = fragmentDirective.substring(textDirective.length(), fragmentDirective.length());

Do you really need to specify the second parameter? Seems you want everything after the `text=` prefix.

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:29
&gt; +#include &lt;wtf/IsoMalloc.h&gt;

Should not be needed.

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:41
&gt; +    WTF_MAKE_FAST_ALLOCATED(FragmentDirectiveParser);

Should not be needed since you only stack-allocate it.

&gt; Source/WebCore/dom/FragmentDirectiveParser.h:45
&gt; +    const Vector&lt;ParsedTextDirective&gt;&amp; parsedTextDirectives() { return m_parsedTextDirectives; };

getter should be marked as const.

&gt; Source/WebCore/page/FrameView.cpp:2224
&gt; +            // TODO: Scroll to the range specified by the directive

Per coding style (https://webkit.org/code-style-guidelines/#comments), this should be FIXME, not TODO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803905</commentid>
    <comment_count>24</comment_count>
      <attachid>441016</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-13 12:11:27 -0700</bug_when>
    <thetext>Comment on attachment 441016
Patch

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

&gt;&gt; Source/WebCore/dom/Document.h:2225
&gt;&gt; +    StringView m_fragmentDirective;
&gt; 
&gt; It doesn&apos;t seem right of have a StringView data member on the Document. What guarantees that the underlying String stays alive?
&gt; 
&gt; We probably want to use String here and `const String&amp;` in the getter/setter.

Definitely don&apos;t store a StringView on the Document.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:81
&gt; +        Vector&lt;String&gt; tokens;
&gt; +        for (auto token : directive.split(&apos;,&apos;))
&gt; +            tokens.append(token.toString());

Could this be a Vector&lt;StringView&gt;?
nit: I think WTF::map could be used here to be more concise.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:98
&gt; +            tokens.remove(0);

Removing the first element of a Vector isn&apos;t efficient.  Could tokens be a Deque instead?

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:107
&gt; +        if (tokens.size() != 1 &amp;&amp; tokens.size() != 2) {
&gt; +            LOG_WITH_STREAM(TextFragment, stream &lt;&lt; &quot; not enough tokens &quot;);

not enough or too many?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803946</commentid>
    <comment_count>25</comment_count>
      <attachid>441016</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-13 13:42:14 -0700</bug_when>
    <thetext>Comment on attachment 441016
Patch

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

&gt;&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:81
&gt;&gt; +            tokens.append(token.toString());
&gt; 
&gt; Could this be a Vector&lt;StringView&gt;?
&gt; nit: I think WTF::map could be used here to be more concise.

I tried to do a vector of StringViews, but in the end, we want strings, and the change was easier to do here than later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803985</commentid>
    <comment_count>26</comment_count>
      <attachid>441141</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-13 15:04:32 -0700</bug_when>
    <thetext>Created attachment 441141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803994</commentid>
    <comment_count>27</comment_count>
      <attachid>441141</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 15:10:40 -0700</bug_when>
    <thetext>Comment on attachment 441141
Patch

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

&gt; Source/WebCore/dom/Document.h:1635
&gt; +    void setFragmentDirective(String&amp; fragmentDirective) { m_fragmentDirective = fragmentDirective; }

const String&amp;

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:92
&gt; +                continue;

What&apos;s the point of this continue statement? Seems like a no-op.

Maybe we could do this logging in the `for (auto token : textDirective.split(&apos;,&apos;))` loop above to avoid iterating over the tokens again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804020</commentid>
    <comment_count>28</comment_count>
      <attachid>441148</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-13 15:36:03 -0700</bug_when>
    <thetext>Created attachment 441148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804024</commentid>
    <comment_count>29</comment_count>
      <attachid>441148</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 15:40:17 -0700</bug_when>
    <thetext>Comment on attachment 441148
Patch

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

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:82
&gt; +        bool emptyToken = false;

The name is a bit unclear for a boolean. I think it would be nice to rename to containsEmptyToken or similar.

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:128
&gt; +    

Extra blank line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804025</commentid>
    <comment_count>30</comment_count>
      <attachid>441148</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-13 15:40:41 -0700</bug_when>
    <thetext>Comment on attachment 441148
Patch

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

&gt; Source/WTF/ChangeLog:6
&gt; +        Reviewed by NOBODY (OOPS!).

Feel free to put my name in the changelog since I already r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804035</commentid>
    <comment_count>31</comment_count>
      <attachid>441153</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-13 15:49:29 -0700</bug_when>
    <thetext>Created attachment 441153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804038</commentid>
    <comment_count>32</comment_count>
      <attachid>441153</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-13 15:56:58 -0700</bug_when>
    <thetext>Comment on attachment 441153
Patch

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

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:58
&gt; +    parseFragmentDirective(fragmentDirective);

The return value of this isn&apos;t used.  Do you want to check if it returns false and early return, or make it return void?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804112</commentid>
    <comment_count>33</comment_count>
      <attachid>441170</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-10-13 18:12:00 -0700</bug_when>
    <thetext>Created attachment 441170
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804130</commentid>
    <comment_count>34</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-13 19:12:39 -0700</bug_when>
    <thetext>Committed r284143 (242963@main): &lt;https://commits.webkit.org/242963@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441170.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804131</commentid>
    <comment_count>35</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-13 19:13:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/84228621&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805319</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-10-16 16:00:09 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 231870</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805325</commentid>
    <comment_count>37</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-10-16 16:35:54 -0700</bug_when>
    <thetext>Reverted r284143 for reason:

Caused a series of assertions in layout tests in EWS

Committed r284326 (243121@main): &lt;https://commits.webkit.org/243121@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805330</commentid>
    <comment_count>38</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-10-16 16:43:27 -0700</bug_when>
    <thetext>Reverted the in https://trac.webkit.org/changeset/284326/webkit
I wasn&apos;t able to repro the issue from https://bugs.webkit.org/show_bug.cgi?id=231752 locally either, so I didn&apos;t manage to fix it, we&apos;ll just have to try again; hopefully someone else knows what the assertion is about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805337</commentid>
    <comment_count>39</comment_count>
      <attachid>441170</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-16 18:52:34 -0700</bug_when>
    <thetext>Comment on attachment 441170
Patch for landing

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

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:60
&gt; +    m_fragmentDirective = fragmentDirective.toString();

This is wrong. You are allocating a new temporary String and then creating a StringView to that temporary String, since m_fragmentDirective is a StringView. This is very likely what’s causing the crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805338</commentid>
    <comment_count>40</comment_count>
      <attachid>441170</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-16 18:52:35 -0700</bug_when>
    <thetext>Comment on attachment 441170
Patch for landing

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

&gt; Source/WebCore/dom/FragmentDirectiveParser.cpp:60
&gt; +    m_fragmentDirective = fragmentDirective.toString();

This is wrong. You are allocating a new temporary String and then creating a StringView to that temporary String, since m_fragmentDirective is a StringView. This is very likely what’s causing the crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812945</commentid>
    <comment_count>41</comment_count>
      <attachid>443639</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-11-08 17:27:18 -0800</bug_when>
    <thetext>Created attachment 443639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812961</commentid>
    <comment_count>42</comment_count>
      <attachid>443645</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-11-08 18:32:46 -0800</bug_when>
    <thetext>Created attachment 443645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812965</commentid>
    <comment_count>43</comment_count>
      <attachid>443647</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-11-08 18:44:03 -0800</bug_when>
    <thetext>Created attachment 443647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813281</commentid>
    <comment_count>44</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-09 13:17:28 -0800</bug_when>
    <thetext>Committed r285528 (244045@main): &lt;https://commits.webkit.org/244045@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443647.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440570</attachid>
            <date>2021-10-07 21:24:21 -0700</date>
            <delta_ts>2021-10-08 09:09:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211008002419.patch</filename>
            <type>text/plain</type>
            <size>16076</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uMDJjYzE5MzU2NDUxZGVmYTAzYzQ4NDA1NjgyOGJjMDkzZDgxZmRlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
RWRpdG9yJiBlZGl0b3IoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQor
ICAgICAgICAKKyAgICB2b2lkIHNldEZyYWdtZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJh
Z21lbnREaXJlY3RpdmUpIHsgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
OyB9CisgICAgU3RyaW5nJiBmcmFnbWVudERpcmVjdGl2ZSgpIHsgcmV0dXJuIG1fZnJhZ21lbnRE
aXJlY3RpdmU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFz
ZXNGb3JEaXNwbGF5SWZOZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24o
SFRNTENhbnZhc0VsZW1lbnQmKTsKQEAgLTIyMTgsNiArMjIyMiw4IEBAIHByaXZhdGU6CiAKICAg
ICBVbmlxdWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rp
b24+IG1fc2VsZWN0aW9uOworICAgICAgICAKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2
ZTsKIAogICAgIExpc3RIYXNoU2V0PFJlZjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwog
ICAgIFVuaXF1ZVJlZjxXaGl0ZXNwYWNlQ2FjaGU+IG1fd2hpdGVzcGFjZUNhY2hlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmZhZWM3M2RlMGZlYWJlY2E1NDRkYmQ0OTkwNDNhYmJhYWZmZWRjMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKQEAgLTAs
MCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRnJhZ21lbnRE
aXJlY3RpdmVQYXJzZXIpOworCitSZWY8RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI+IEZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIodXJsKSk7Cit9CisKK0ZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcihjb25zdCBVUkwmIHVybCkK
K3sKKyAgICBTdHJpbmcgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIgPSAiOn46Il9zOworICAg
IGF1dG8gZnJhZ21lbnRJZGVudGlmaWVyID0gdXJsLmZyYWdtZW50SWRlbnRpZmllcigpOworICAg
IAorICAgIG1faXNWYWxpZCA9IGZhbHNlOworICAgIAorICAgIGlmICghZnJhZ21lbnRJZGVudGlm
aWVyIHx8IGZyYWdtZW50SWRlbnRpZmllci5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9mcmFnbWVu
dERpcmVjdGl2ZSA9IFN0cmluZygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICAgICAK
KyAgICBhdXRvIGZyYWdtZW50RGlyZWN0aXZlU3RhcnQgPSBmcmFnbWVudElkZW50aWZpZXIuZmlu
ZChmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlcik7CisgICAgCisgICAgaWYgKGZyYWdtZW50RGly
ZWN0aXZlU3RhcnQgPT0gbm90Rm91bmQpIHsKKyAgICAgICAgbV9mcmFnbWVudERpcmVjdGl2ZSA9
IFN0cmluZygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGF1dG8gZnJhZ21l
bnREaXJlY3RpdmUgPSBmcmFnbWVudElkZW50aWZpZXIuc3Vic3RyaW5nKGZyYWdtZW50RGlyZWN0
aXZlU3RhcnQgKyBmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlci5sZW5ndGgoKSk7CisgICAgCisg
ICAgLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gYmUgc2V0IG9uIHRoZSBvcmlnaW5hbCBVUkwKKyAg
ICBtX1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVyLnN1YnN0cmluZygwLCBmcmFnbWVu
dERpcmVjdGl2ZVN0YXJ0KTsKKyAgICAKKyAgICBhdXRvIGZyYWdtZW50RGlyZWN0aXZlU3RyaW5n
ID0gZnJhZ21lbnREaXJlY3RpdmUudG9TdHJpbmcoKTsKKyAgICBwYXJzZUZyYWdtZW50RGlyZWN0
aXZlKGZyYWdtZW50RGlyZWN0aXZlU3RyaW5nKTsKKyAgICAKKyAgICBtX2ZyYWdtZW50RGlyZWN0
aXZlID0gZnJhZ21lbnREaXJlY3RpdmVTdHJpbmc7CisgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKK30K
KworYm9vbCBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVjdGl2ZShT
dHJpbmcgZnJhZ21lbnREaXJlY3RpdmUpCit7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGlu
Zywgc3RyZWFtIDw8ICIgcGFyc2VGcmFnbWVudERpcmVjdGl2ZTogIik7CisgICAgCisgICAgVmVj
dG9yPFBhcnNlZFRleHREaXJlY3RpdmU+IHBhcnNlZFRleHREaXJlY3RpdmVzOworICAgIFN0cmlu
ZyB0ZXh0RGlyZWN0aXZlID0gInRleHQ9Il9zOworCisgICAgaWYgKCFmcmFnbWVudERpcmVjdGl2
ZS5zdGFydHNXaXRoKHRleHREaXJlY3RpdmUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
CisgICAgZnJhZ21lbnREaXJlY3RpdmUucmVtb3ZlKDAsIHRleHREaXJlY3RpdmUubGVuZ3RoKCkp
OworICAgIGF1dG8gZGlyZWN0aXZlcyA9IGZyYWdtZW50RGlyZWN0aXZlLnNwbGl0KCImIik7Cisg
ICAgCisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICp0aGlzIDw8ICIg
cGFyc2VGcmFnbWVudERpcmVjdGl2ZTogIik7CisgICAgCisgICAgZm9yIChhdXRvIGRpcmVjdGl2
ZSA6IGRpcmVjdGl2ZXMpIHsKKyAgICAgICAgYXV0byB0b2tlbnMgPSBkaXJlY3RpdmUuc3BsaXQo
IiwiKTsKKyAgICAgICAgLy8gRklYTUU6IGFkZCBkZWNvZGluZyBmb3IgJSBlbmNvZGVkIHN0cmlu
Z3MuCisgICAgICAgIGlmICh0b2tlbnMuc2l6ZSgpID4gNCB8fCB0b2tlbnMuc2l6ZSgpIDwgMSkg
eworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICIgd3Jv
bmcgbnVtYmVyIG9mIHRva2VucyAiKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CisgICAgICAgIGZvciAoYXV0byB0b2tlbiA6IHRva2VucykgeworICAgICAgICAgICAgaWYgKHRv
a2VuLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxp
bmcsIHN0cmVhbSA8PCAiIGVtcHR5IHRva2VuICIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFBhcnNlZFRleHREaXJlY3RpdmUg
cGFyc2VkVGV4dERpcmVjdGl2ZTsKKyAgICAgICAgCisgICAgICAgIGlmICh0b2tlbnNbMF0uZW5k
c1dpdGgoJy0nKSkgeworICAgICAgICAgICAgdG9rZW5zWzBdLnRydW5jYXRlKHRva2Vuc1swXS5s
ZW5ndGgoKS0yKTsKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUucHJlZml4ID0gdG9r
ZW5zWzBdOworICAgICAgICAgICAgdG9rZW5zLnJlbW92ZSgwKTsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgaWYgKHRva2Vucy5sYXN0KCkuc3RhcnRzV2l0aCgnLScpKSB7CisgICAgICAg
ICAgICB0b2tlbnMubGFzdCgpLnJlbW92ZSgwKTsKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJl
Y3RpdmUuc3VmZml4ID0gdG9rZW5zLnRha2VMYXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIGlmICh0b2tlbnMuc2l6ZSgpICE9IDEgJiYgdG9rZW5zLnNpemUoKSAhPSAyKSB7Cisg
ICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIiBub3QgZW5v
dWdoIHRva2VucyAiKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnRleHRTdGFydCA9IHRva2Vuc1swXTsKKyAg
ICAgICAgCisgICAgICAgIGlmICh0b2tlbnMuc2l6ZSgpID09IDIpCisgICAgICAgICAgICBwYXJz
ZWRUZXh0RGlyZWN0aXZlLnRleHRFbmQgPSB0b2tlbnNbMV07CisgICAgICAgIAorICAgICAgICBw
YXJzZWRUZXh0RGlyZWN0aXZlcy5hcHBlbmQocGFyc2VkVGV4dERpcmVjdGl2ZSk7CisgICAgfQor
ICAgIAorICAgIG1fcGFyc2VkVGV4dERpcmVjdGl2ZXMgPSBwYXJzZWRUZXh0RGlyZWN0aXZlczsK
KyAgICAKKyAgICByZXR1cm4gdHJ1ZTsKKyAgICAKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41YTFjOGRjNTNhOGFkMjU2ZThjZDg2NWYxMDdkMGQwNWE1MjdiZGJlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgKQEAg
LTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgVVJMOworCit9CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RydWN0IFBhcnNlZFRleHREaXJlY3RpdmUgeworICAgIFN0cmluZyB0
ZXh0U3RhcnQ7CisgICAgU3RyaW5nIHRleHRFbmQ7CisgICAgU3RyaW5nIHByZWZpeDsKKyAgICBT
dHJpbmcgc3VmZml4OworfTsKKworY2xhc3MgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxGcmFnbWVudERpcmVjdGl2ZVBhcnNlcj4geworICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIpOworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI+IGNyZWF0ZShjb25zdCBVUkwmKTsKKyAgICAK
KyAgICBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4gcGFyc2VkVGV4dERpcmVjdGl2ZXMoKSB7
IHJldHVybiBtX3BhcnNlZFRleHREaXJlY3RpdmVzOyB9OworICAgIFN0cmluZyBmcmFnbWVudERp
cmVjdGl2ZSgpIHsgcmV0dXJuIG1fZnJhZ21lbnREaXJlY3RpdmU7IH07CisgICAgU3RyaW5nVmll
dyB1cmxGcmFnbWVudCgpIHsgcmV0dXJuIG1fdXJsRnJhZ21lbnQ7IH07CisgICAgYm9vbCBpc1Zh
bGlkKCkgeyByZXR1cm4gIG1faXNWYWxpZDsgfTsKKyAgICAKK3ByaXZhdGU6CisgICAgRnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIoKSA9IGRlZmF1bHQ7CisgICAgRnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXIoY29uc3QgVVJMJik7CisgICAgYm9vbCBwYXJzZUZyYWdtZW50RGlyZWN0aXZlKFN0cmluZyBm
cmFnbWVudERpcmVjdGl2ZSk7CisgICAgCisgICAgVmVjdG9yPFBhcnNlZFRleHREaXJlY3RpdmU+
IG1fcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgU3RyaW5nVmlldyBtX3VybEZyYWdtZW50Owor
ICAgIFN0cmluZyBtX2ZyYWdtZW50RGlyZWN0aXZlOworICAgIGJvb2wgbV9pc1ZhbGlkOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4
IDE4NzdkY2YxMTZmYWIzNjgxZDZiY2Q2OTk5NzQ1MDBhNGExZDk2ZDAuLjE3OGZmOGY0NzYwYTRh
ODBhODQxZGM0Y2ViY2EzNTU1N2UwNmJhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
QEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
RmxhdHRlbmluZy5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC0yMjA4LDYgKzIyMDks
MjAgQEAgdm9pZCBGcmFtZVZpZXc6OnJlc3RvcmVTY3JvbGxiYXIoKQogCiBib29sIEZyYW1lVmll
dzo6c2Nyb2xsVG9GcmFnbWVudChjb25zdCBVUkwmIHVybCkKIHsKKyAgICBBU1NFUlQoZnJhbWUo
KS5kb2N1bWVudCgpKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9ICpmcmFtZSgpLmRvY3VtZW50KCk7
CisgICAgCisgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCkuc2Nyb2xsVG9UZXh0RnJhZ21lbnRF
bmFibGVkKCkpIHsKKyAgICAgICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZVBhcnNlciA9IEZyYWdt
ZW50RGlyZWN0aXZlUGFyc2VyOjpjcmVhdGUodXJsKTsKKyAgICAgICAgCisgICAgICAgIGlmIChm
cmFnbWVudERpcmVjdGl2ZVBhcnNlci0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICBkb2N1bWVu
dC5zZXRGcmFnbWVudERpcmVjdGl2ZShmcmFnbWVudERpcmVjdGl2ZVBhcnNlci0+ZnJhZ21lbnRE
aXJlY3RpdmUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF1dG8gcGFyc2VkVGV4dERp
cmVjdGl2ZXMgPSBmcmFnbWVudERpcmVjdGl2ZVBhcnNlci0+cGFyc2VkVGV4dERpcmVjdGl2ZXMo
KTsKKyAgICAgICAgICAgIC8vIFRPRE86IFNjcm9sbCB0byB0aGUgcmFuZ2Ugc3BlY2lmaWVkIGJ5
IHRoZSBkaXJlY3RpdmUKKyAgICAgICAgfQorICAgIH0KKyAgICAKICAgICBhdXRvIGZyYWdtZW50
SWRlbnRpZmllciA9IHVybC5mcmFnbWVudElkZW50aWZpZXIoKTsKICAgICBpZiAoc2Nyb2xsVG9G
cmFnbWVudEludGVybmFsKGZyYWdtZW50SWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiB0cnVl
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440628</attachid>
            <date>2021-10-08 09:09:07 -0700</date>
            <delta_ts>2021-10-08 09:36:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211008120906.patch</filename>
            <type>text/plain</type>
            <size>16076</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uMDJjYzE5MzU2NDUxZGVmYTAzYzQ4NDA1NjgyOGJjMDkzZDgxZmRlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
RWRpdG9yJiBlZGl0b3IoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQor
ICAgICAgICAKKyAgICB2b2lkIHNldEZyYWdtZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJh
Z21lbnREaXJlY3RpdmUpIHsgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
OyB9CisgICAgU3RyaW5nJiBmcmFnbWVudERpcmVjdGl2ZSgpIHsgcmV0dXJuIG1fZnJhZ21lbnRE
aXJlY3RpdmU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFz
ZXNGb3JEaXNwbGF5SWZOZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24o
SFRNTENhbnZhc0VsZW1lbnQmKTsKQEAgLTIyMTgsNiArMjIyMiw4IEBAIHByaXZhdGU6CiAKICAg
ICBVbmlxdWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rp
b24+IG1fc2VsZWN0aW9uOworICAgICAgICAKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2
ZTsKIAogICAgIExpc3RIYXNoU2V0PFJlZjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwog
ICAgIFVuaXF1ZVJlZjxXaGl0ZXNwYWNlQ2FjaGU+IG1fd2hpdGVzcGFjZUNhY2hlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzFiMWM3ZTVlMWVmZGIyYTI2ZjJiOTdhZjljMWQ2YzE2NDhlZWRjYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKQEAgLTAs
MCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRnJhZ21lbnRE
aXJlY3RpdmVQYXJzZXIpOworCitSZWY8RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI+IEZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIodXJsKSk7Cit9CisKK0ZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcihjb25zdCBVUkwmIHVybCkK
K3sKKyAgICBTdHJpbmcgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIgPSAiOn46Il9zOworICAg
IGF1dG8gZnJhZ21lbnRJZGVudGlmaWVyID0gdXJsLmZyYWdtZW50SWRlbnRpZmllcigpOworICAg
IAorICAgIG1faXNWYWxpZCA9IGZhbHNlOworICAgIAorICAgIGlmICghZnJhZ21lbnRJZGVudGlm
aWVyIHx8IGZyYWdtZW50SWRlbnRpZmllci5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9mcmFnbWVu
dERpcmVjdGl2ZSA9IFN0cmluZygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICAgICAK
KyAgICBhdXRvIGZyYWdtZW50RGlyZWN0aXZlU3RhcnQgPSBmcmFnbWVudElkZW50aWZpZXIuZmlu
ZChmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlcik7CisgICAgCisgICAgaWYgKGZyYWdtZW50RGly
ZWN0aXZlU3RhcnQgPT0gbm90Rm91bmQpIHsKKyAgICAgICAgbV9mcmFnbWVudERpcmVjdGl2ZSA9
IFN0cmluZygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGF1dG8gZnJhZ21l
bnREaXJlY3RpdmUgPSBmcmFnbWVudElkZW50aWZpZXIuc3Vic3RyaW5nKGZyYWdtZW50RGlyZWN0
aXZlU3RhcnQgKyBmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlci5sZW5ndGgoKSk7CisgICAgCisg
ICAgLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gYmUgc2V0IG9uIHRoZSBvcmlnaW5hbCBVUkwKKyAg
ICBtX3VybEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVyLnN1YnN0cmluZygwLCBmcmFnbWVu
dERpcmVjdGl2ZVN0YXJ0KTsKKyAgICAKKyAgICBhdXRvIGZyYWdtZW50RGlyZWN0aXZlU3RyaW5n
ID0gZnJhZ21lbnREaXJlY3RpdmUudG9TdHJpbmcoKTsKKyAgICBwYXJzZUZyYWdtZW50RGlyZWN0
aXZlKGZyYWdtZW50RGlyZWN0aXZlU3RyaW5nKTsKKyAgICAKKyAgICBtX2ZyYWdtZW50RGlyZWN0
aXZlID0gZnJhZ21lbnREaXJlY3RpdmVTdHJpbmc7CisgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKK30K
KworYm9vbCBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVjdGl2ZShT
dHJpbmcgZnJhZ21lbnREaXJlY3RpdmUpCit7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGlu
Zywgc3RyZWFtIDw8ICIgcGFyc2VGcmFnbWVudERpcmVjdGl2ZTogIik7CisgICAgCisgICAgVmVj
dG9yPFBhcnNlZFRleHREaXJlY3RpdmU+IHBhcnNlZFRleHREaXJlY3RpdmVzOworICAgIFN0cmlu
ZyB0ZXh0RGlyZWN0aXZlID0gInRleHQ9Il9zOworCisgICAgaWYgKCFmcmFnbWVudERpcmVjdGl2
ZS5zdGFydHNXaXRoKHRleHREaXJlY3RpdmUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
CisgICAgZnJhZ21lbnREaXJlY3RpdmUucmVtb3ZlKDAsIHRleHREaXJlY3RpdmUubGVuZ3RoKCkp
OworICAgIGF1dG8gZGlyZWN0aXZlcyA9IGZyYWdtZW50RGlyZWN0aXZlLnNwbGl0KCImIik7Cisg
ICAgCisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICp0aGlzIDw8ICIg
cGFyc2VGcmFnbWVudERpcmVjdGl2ZTogIik7CisgICAgCisgICAgZm9yIChhdXRvIGRpcmVjdGl2
ZSA6IGRpcmVjdGl2ZXMpIHsKKyAgICAgICAgYXV0byB0b2tlbnMgPSBkaXJlY3RpdmUuc3BsaXQo
IiwiKTsKKyAgICAgICAgLy8gRklYTUU6IGFkZCBkZWNvZGluZyBmb3IgJSBlbmNvZGVkIHN0cmlu
Z3MuCisgICAgICAgIGlmICh0b2tlbnMuc2l6ZSgpID4gNCB8fCB0b2tlbnMuc2l6ZSgpIDwgMSkg
eworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICIgd3Jv
bmcgbnVtYmVyIG9mIHRva2VucyAiKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CisgICAgICAgIGZvciAoYXV0byB0b2tlbiA6IHRva2VucykgeworICAgICAgICAgICAgaWYgKHRv
a2VuLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxp
bmcsIHN0cmVhbSA8PCAiIGVtcHR5IHRva2VuICIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFBhcnNlZFRleHREaXJlY3RpdmUg
cGFyc2VkVGV4dERpcmVjdGl2ZTsKKyAgICAgICAgCisgICAgICAgIGlmICh0b2tlbnNbMF0uZW5k
c1dpdGgoJy0nKSkgeworICAgICAgICAgICAgdG9rZW5zWzBdLnRydW5jYXRlKHRva2Vuc1swXS5s
ZW5ndGgoKS0yKTsKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUucHJlZml4ID0gdG9r
ZW5zWzBdOworICAgICAgICAgICAgdG9rZW5zLnJlbW92ZSgwKTsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgaWYgKHRva2Vucy5sYXN0KCkuc3RhcnRzV2l0aCgnLScpKSB7CisgICAgICAg
ICAgICB0b2tlbnMubGFzdCgpLnJlbW92ZSgwKTsKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJl
Y3RpdmUuc3VmZml4ID0gdG9rZW5zLnRha2VMYXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIGlmICh0b2tlbnMuc2l6ZSgpICE9IDEgJiYgdG9rZW5zLnNpemUoKSAhPSAyKSB7Cisg
ICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIiBub3QgZW5v
dWdoIHRva2VucyAiKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnRleHRTdGFydCA9IHRva2Vuc1swXTsKKyAg
ICAgICAgCisgICAgICAgIGlmICh0b2tlbnMuc2l6ZSgpID09IDIpCisgICAgICAgICAgICBwYXJz
ZWRUZXh0RGlyZWN0aXZlLnRleHRFbmQgPSB0b2tlbnNbMV07CisgICAgICAgIAorICAgICAgICBw
YXJzZWRUZXh0RGlyZWN0aXZlcy5hcHBlbmQocGFyc2VkVGV4dERpcmVjdGl2ZSk7CisgICAgfQor
ICAgIAorICAgIG1fcGFyc2VkVGV4dERpcmVjdGl2ZXMgPSBwYXJzZWRUZXh0RGlyZWN0aXZlczsK
KyAgICAKKyAgICByZXR1cm4gdHJ1ZTsKKyAgICAKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41YTFjOGRjNTNhOGFkMjU2ZThjZDg2NWYxMDdkMGQwNWE1MjdiZGJlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgKQEAg
LTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgVVJMOworCit9CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RydWN0IFBhcnNlZFRleHREaXJlY3RpdmUgeworICAgIFN0cmluZyB0
ZXh0U3RhcnQ7CisgICAgU3RyaW5nIHRleHRFbmQ7CisgICAgU3RyaW5nIHByZWZpeDsKKyAgICBT
dHJpbmcgc3VmZml4OworfTsKKworY2xhc3MgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxGcmFnbWVudERpcmVjdGl2ZVBhcnNlcj4geworICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIpOworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI+IGNyZWF0ZShjb25zdCBVUkwmKTsKKyAgICAK
KyAgICBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4gcGFyc2VkVGV4dERpcmVjdGl2ZXMoKSB7
IHJldHVybiBtX3BhcnNlZFRleHREaXJlY3RpdmVzOyB9OworICAgIFN0cmluZyBmcmFnbWVudERp
cmVjdGl2ZSgpIHsgcmV0dXJuIG1fZnJhZ21lbnREaXJlY3RpdmU7IH07CisgICAgU3RyaW5nVmll
dyB1cmxGcmFnbWVudCgpIHsgcmV0dXJuIG1fdXJsRnJhZ21lbnQ7IH07CisgICAgYm9vbCBpc1Zh
bGlkKCkgeyByZXR1cm4gIG1faXNWYWxpZDsgfTsKKyAgICAKK3ByaXZhdGU6CisgICAgRnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIoKSA9IGRlZmF1bHQ7CisgICAgRnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXIoY29uc3QgVVJMJik7CisgICAgYm9vbCBwYXJzZUZyYWdtZW50RGlyZWN0aXZlKFN0cmluZyBm
cmFnbWVudERpcmVjdGl2ZSk7CisgICAgCisgICAgVmVjdG9yPFBhcnNlZFRleHREaXJlY3RpdmU+
IG1fcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgU3RyaW5nVmlldyBtX3VybEZyYWdtZW50Owor
ICAgIFN0cmluZyBtX2ZyYWdtZW50RGlyZWN0aXZlOworICAgIGJvb2wgbV9pc1ZhbGlkOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4
IDE4NzdkY2YxMTZmYWIzNjgxZDZiY2Q2OTk5NzQ1MDBhNGExZDk2ZDAuLjE3OGZmOGY0NzYwYTRh
ODBhODQxZGM0Y2ViY2EzNTU1N2UwNmJhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
QEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
RmxhdHRlbmluZy5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC0yMjA4LDYgKzIyMDks
MjAgQEAgdm9pZCBGcmFtZVZpZXc6OnJlc3RvcmVTY3JvbGxiYXIoKQogCiBib29sIEZyYW1lVmll
dzo6c2Nyb2xsVG9GcmFnbWVudChjb25zdCBVUkwmIHVybCkKIHsKKyAgICBBU1NFUlQoZnJhbWUo
KS5kb2N1bWVudCgpKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9ICpmcmFtZSgpLmRvY3VtZW50KCk7
CisgICAgCisgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCkuc2Nyb2xsVG9UZXh0RnJhZ21lbnRF
bmFibGVkKCkpIHsKKyAgICAgICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZVBhcnNlciA9IEZyYWdt
ZW50RGlyZWN0aXZlUGFyc2VyOjpjcmVhdGUodXJsKTsKKyAgICAgICAgCisgICAgICAgIGlmIChm
cmFnbWVudERpcmVjdGl2ZVBhcnNlci0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICBkb2N1bWVu
dC5zZXRGcmFnbWVudERpcmVjdGl2ZShmcmFnbWVudERpcmVjdGl2ZVBhcnNlci0+ZnJhZ21lbnRE
aXJlY3RpdmUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF1dG8gcGFyc2VkVGV4dERp
cmVjdGl2ZXMgPSBmcmFnbWVudERpcmVjdGl2ZVBhcnNlci0+cGFyc2VkVGV4dERpcmVjdGl2ZXMo
KTsKKyAgICAgICAgICAgIC8vIFRPRE86IFNjcm9sbCB0byB0aGUgcmFuZ2Ugc3BlY2lmaWVkIGJ5
IHRoZSBkaXJlY3RpdmUKKyAgICAgICAgfQorICAgIH0KKyAgICAKICAgICBhdXRvIGZyYWdtZW50
SWRlbnRpZmllciA9IHVybC5mcmFnbWVudElkZW50aWZpZXIoKTsKICAgICBpZiAoc2Nyb2xsVG9G
cmFnbWVudEludGVybmFsKGZyYWdtZW50SWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiB0cnVl
Owo=
</data>
<flag name="commit-queue"
          id="464640"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440632</attachid>
            <date>2021-10-08 09:34:22 -0700</date>
            <delta_ts>2021-10-08 10:26:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211008123420.patch</filename>
            <type>text/plain</type>
            <size>16110</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uMDJjYzE5MzU2NDUxZGVmYTAzYzQ4NDA1NjgyOGJjMDkzZDgxZmRlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
RWRpdG9yJiBlZGl0b3IoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQor
ICAgICAgICAKKyAgICB2b2lkIHNldEZyYWdtZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJh
Z21lbnREaXJlY3RpdmUpIHsgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
OyB9CisgICAgU3RyaW5nJiBmcmFnbWVudERpcmVjdGl2ZSgpIHsgcmV0dXJuIG1fZnJhZ21lbnRE
aXJlY3RpdmU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFz
ZXNGb3JEaXNwbGF5SWZOZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24o
SFRNTENhbnZhc0VsZW1lbnQmKTsKQEAgLTIyMTgsNiArMjIyMiw4IEBAIHByaXZhdGU6CiAKICAg
ICBVbmlxdWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rp
b24+IG1fc2VsZWN0aW9uOworICAgICAgICAKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2
ZTsKIAogICAgIExpc3RIYXNoU2V0PFJlZjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwog
ICAgIFVuaXF1ZVJlZjxXaGl0ZXNwYWNlQ2FjaGU+IG1fd2hpdGVzcGFjZUNhY2hlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWI5Njg2ZGQ3NjFlMzViZmY2OGI2YmNkMmVlYmJmYzZlZjJkZWY0NgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKQEAgLTAs
MCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKTsKKworUmVm
PEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyPiBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6Y3JlYXRl
KGNvbnN0IFVSTCYgdXJsKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZyYWdtZW50RGly
ZWN0aXZlUGFyc2VyKHVybCkpOworfQorCitGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6RnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIoY29uc3QgVVJMJiB1cmwpCit7CisgICAgU3RyaW5nIGZyYWdtZW50
RGlyZWN0aXZlRGVsaW1pdGVyID0gIjp+OiJfczsKKyAgICBhdXRvIGZyYWdtZW50SWRlbnRpZmll
ciA9IHVybC5mcmFnbWVudElkZW50aWZpZXIoKTsKKyAgICAKKyAgICBtX2lzVmFsaWQgPSBmYWxz
ZTsKKyAgICAKKyAgICBpZiAoIWZyYWdtZW50SWRlbnRpZmllciB8fCBmcmFnbWVudElkZW50aWZp
ZXIuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fZnJhZ21lbnREaXJlY3RpdmUgPSBTdHJpbmcoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAgICAgCisgICAgYXV0byBmcmFnbWVudERpcmVj
dGl2ZVN0YXJ0ID0gZnJhZ21lbnRJZGVudGlmaWVyLmZpbmQoZnJhZ21lbnREaXJlY3RpdmVEZWxp
bWl0ZXIpOworICAgIAorICAgIGlmIChmcmFnbWVudERpcmVjdGl2ZVN0YXJ0ID09IG5vdEZvdW5k
KSB7CisgICAgICAgIG1fZnJhZ21lbnREaXJlY3RpdmUgPSBTdHJpbmcoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICAKKyAgICBhdXRvIGZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnRJ
ZGVudGlmaWVyLnN1YnN0cmluZyhmcmFnbWVudERpcmVjdGl2ZVN0YXJ0ICsgZnJhZ21lbnREaXJl
Y3RpdmVEZWxpbWl0ZXIubGVuZ3RoKCkpOworICAgIAorICAgIC8vIEZJWE1FOiB0aGlzIG5lZWRz
IHRvIGJlIHNldCBvbiB0aGUgb3JpZ2luYWwgVVJMCisgICAgbV91cmxGcmFnbWVudCA9IGZyYWdt
ZW50SWRlbnRpZmllci5zdWJzdHJpbmcoMCwgZnJhZ21lbnREaXJlY3RpdmVTdGFydCk7CisgICAg
CisgICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZVN0cmluZyA9IGZyYWdtZW50RGlyZWN0aXZlLnRv
U3RyaW5nKCk7CisgICAgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShmcmFnbWVudERpcmVjdGl2ZVN0
cmluZyk7CisgICAgCisgICAgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
U3RyaW5nOworICAgIG1faXNWYWxpZCA9IHRydWU7Cit9CisKK2Jvb2wgRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXI6OnBhcnNlRnJhZ21lbnREaXJlY3RpdmUoU3RyaW5nIGZyYWdtZW50RGlyZWN0aXZl
KQoreworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiIHBhcnNlRnJh
Z21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0aXZl
PiBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJpbmcgdGV4dERpcmVjdGl2ZSA9ICJ0ZXh0
PSJfczsKKworICAgIGlmICghZnJhZ21lbnREaXJlY3RpdmUuc3RhcnRzV2l0aCh0ZXh0RGlyZWN0
aXZlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGZyYWdtZW50RGlyZWN0aXZl
LnJlbW92ZSgwLCB0ZXh0RGlyZWN0aXZlLmxlbmd0aCgpKTsKKyAgICBhdXRvIGRpcmVjdGl2ZXMg
PSBmcmFnbWVudERpcmVjdGl2ZS5zcGxpdCgiJiIpOworICAgIAorICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxpbmcsIHN0cmVhbSA8PCAqdGhpcyA8PCAiIHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6
ICIpOworICAgIAorICAgIGZvciAoYXV0byBkaXJlY3RpdmUgOiBkaXJlY3RpdmVzKSB7CisgICAg
ICAgIGF1dG8gdG9rZW5zID0gZGlyZWN0aXZlLnNwbGl0KCIsIik7CisgICAgICAgIC8vIEZJWE1F
OiBhZGQgZGVjb2RpbmcgZm9yICUgZW5jb2RlZCBzdHJpbmdzLgorICAgICAgICBpZiAodG9rZW5z
LnNpemUoKSA+IDQgfHwgdG9rZW5zLnNpemUoKSA8IDEpIHsKKyAgICAgICAgICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiIHdyb25nIG51bWJlciBvZiB0b2tlbnMgIik7
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGF1dG8gdG9r
ZW4gOiB0b2tlbnMpIHsKKyAgICAgICAgICAgIGlmICh0b2tlbi5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIiBlbXB0eSB0
b2tlbiAiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBQYXJzZWRUZXh0RGlyZWN0aXZlIHBhcnNlZFRleHREaXJlY3RpdmU7Cisg
ICAgICAgIAorICAgICAgICBpZiAodG9rZW5zWzBdLmVuZHNXaXRoKCctJykpIHsKKyAgICAgICAg
ICAgIHRva2Vuc1swXS50cnVuY2F0ZSh0b2tlbnNbMF0ubGVuZ3RoKCktMik7CisgICAgICAgICAg
ICBwYXJzZWRUZXh0RGlyZWN0aXZlLnByZWZpeCA9IHRva2Vuc1swXTsKKyAgICAgICAgICAgIHRv
a2Vucy5yZW1vdmUoMCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh0b2tlbnMu
bGFzdCgpLnN0YXJ0c1dpdGgoJy0nKSkgeworICAgICAgICAgICAgdG9rZW5zLmxhc3QoKS5yZW1v
dmUoMCk7CisgICAgICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnN1ZmZpeCA9IHRva2Vucy50
YWtlTGFzdCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLnNpemUo
KSAhPSAxICYmIHRva2Vucy5zaXplKCkgIT0gMikgeworICAgICAgICAgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICIgbm90IGVub3VnaCB0b2tlbnMgIik7CisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFyc2VkVGV4dERp
cmVjdGl2ZS50ZXh0U3RhcnQgPSB0b2tlbnNbMF07CisgICAgICAgIAorICAgICAgICBpZiAodG9r
ZW5zLnNpemUoKSA9PSAyKQorICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS50ZXh0RW5k
ID0gdG9rZW5zWzFdOworICAgICAgICAKKyAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZXMuYXBw
ZW5kKHBhcnNlZFRleHREaXJlY3RpdmUpOworICAgIH0KKyAgICAKKyAgICBtX3BhcnNlZFRleHRE
aXJlY3RpdmVzID0gcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgCisgICAgcmV0dXJuIHRydWU7
CisgICAgCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWExYzhkYzUzYThhZDI1NmU4
Y2Q4NjVmMTA3ZDBkMDVhNTI3YmRiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdU
RiB7CisKK2NsYXNzIFVSTDsKKworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQ
YXJzZWRUZXh0RGlyZWN0aXZlIHsKKyAgICBTdHJpbmcgdGV4dFN0YXJ0OworICAgIFN0cmluZyB0
ZXh0RW5kOworICAgIFN0cmluZyBwcmVmaXg7CisgICAgU3RyaW5nIHN1ZmZpeDsKK307CisKK2Ns
YXNzIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyIDogcHVibGljIFJlZkNvdW50ZWQ8RnJhZ21lbnRE
aXJlY3RpdmVQYXJzZXI+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZyYWdtZW50RGly
ZWN0aXZlUGFyc2VyKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyPiBjcmVhdGUoY29uc3QgVVJMJik7CisgICAgCisgICAgVmVjdG9yPFBhcnNlZFRleHRE
aXJlY3RpdmU+IHBhcnNlZFRleHREaXJlY3RpdmVzKCkgeyByZXR1cm4gbV9wYXJzZWRUZXh0RGly
ZWN0aXZlczsgfTsKKyAgICBTdHJpbmcgZnJhZ21lbnREaXJlY3RpdmUoKSB7IHJldHVybiBtX2Zy
YWdtZW50RGlyZWN0aXZlOyB9OworICAgIFN0cmluZ1ZpZXcgdXJsRnJhZ21lbnQoKSB7IHJldHVy
biBtX3VybEZyYWdtZW50OyB9OworICAgIGJvb2wgaXNWYWxpZCgpIHsgcmV0dXJuICBtX2lzVmFs
aWQ7IH07CisgICAgCitwcml2YXRlOgorICAgIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKCkgPSBk
ZWZhdWx0OworICAgIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKGNvbnN0IFVSTCYpOworICAgIGJv
b2wgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmcgZnJhZ21lbnREaXJlY3RpdmUpOworICAg
IAorICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBtX3BhcnNlZFRleHREaXJlY3RpdmVz
OworICAgIFN0cmluZ1ZpZXcgbV91cmxGcmFnbWVudDsKKyAgICBTdHJpbmcgbV9mcmFnbWVudERp
cmVjdGl2ZTsKKyAgICBib29sIG1faXNWYWxpZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAxODc3ZGNmMTE2ZmFiMzY4MWQ2YmNk
Njk5OTc0NTAwYTRhMWQ5NmQwLi4xNzhmZjhmNDc2MGE0YTgwYTg0MWRjNGNlYmNhMzU1NTdlMDZi
YTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZv
Y3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUZsYXR0ZW5pbmcuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgpAQCAtMjIwOCw2ICsyMjA5LDIwIEBAIHZvaWQgRnJhbWVWaWV3Ojpy
ZXN0b3JlU2Nyb2xsYmFyKCkKIAogYm9vbCBGcmFtZVZpZXc6OnNjcm9sbFRvRnJhZ21lbnQoY29u
c3QgVVJMJiB1cmwpCiB7CisgICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKSk7CisgICAgYXV0
byYgZG9jdW1lbnQgPSAqZnJhbWUoKS5kb2N1bWVudCgpOworICAgIAorICAgIGlmIChkb2N1bWVu
dC5zZXR0aW5ncygpLnNjcm9sbFRvVGV4dEZyYWdtZW50RW5hYmxlZCgpKSB7CisgICAgICAgIGF1
dG8gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIgPSBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6Y3Jl
YXRlKHVybCk7CisgICAgICAgIAorICAgICAgICBpZiAoZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIt
PmlzVmFsaWQoKSkgeworICAgICAgICAgICAgZG9jdW1lbnQuc2V0RnJhZ21lbnREaXJlY3RpdmUo
ZnJhZ21lbnREaXJlY3RpdmVQYXJzZXItPmZyYWdtZW50RGlyZWN0aXZlKCkpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBhdXRvIHBhcnNlZFRleHREaXJlY3RpdmVzID0gZnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXItPnBhcnNlZFRleHREaXJlY3RpdmVzKCk7CisgICAgICAgICAgICAvLyBUT0RP
OiBTY3JvbGwgdG8gdGhlIHJhbmdlIHNwZWNpZmllZCBieSB0aGUgZGlyZWN0aXZlCisgICAgICAg
IH0KKyAgICB9CisgICAgCiAgICAgYXV0byBmcmFnbWVudElkZW50aWZpZXIgPSB1cmwuZnJhZ21l
bnRJZGVudGlmaWVyKCk7CiAgICAgaWYgKHNjcm9sbFRvRnJhZ21lbnRJbnRlcm5hbChmcmFnbWVu
dElkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440638</attachid>
            <date>2021-10-08 10:26:16 -0700</date>
            <delta_ts>2021-10-08 12:58:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211008132614.patch</filename>
            <type>text/plain</type>
            <size>16131</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uMDJjYzE5MzU2NDUxZGVmYTAzYzQ4NDA1NjgyOGJjMDkzZDgxZmRlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
RWRpdG9yJiBlZGl0b3IoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQor
ICAgICAgICAKKyAgICB2b2lkIHNldEZyYWdtZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJh
Z21lbnREaXJlY3RpdmUpIHsgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
OyB9CisgICAgU3RyaW5nJiBmcmFnbWVudERpcmVjdGl2ZSgpIHsgcmV0dXJuIG1fZnJhZ21lbnRE
aXJlY3RpdmU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFz
ZXNGb3JEaXNwbGF5SWZOZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24o
SFRNTENhbnZhc0VsZW1lbnQmKTsKQEAgLTIyMTgsNiArMjIyMiw4IEBAIHByaXZhdGU6CiAKICAg
ICBVbmlxdWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rp
b24+IG1fc2VsZWN0aW9uOworICAgICAgICAKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2
ZTsKIAogICAgIExpc3RIYXNoU2V0PFJlZjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwog
ICAgIFVuaXF1ZVJlZjxXaGl0ZXNwYWNlQ2FjaGU+IG1fd2hpdGVzcGFjZUNhY2hlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2UwNWE5OTFlODlkOTBkY2Y3MjE3MGEyY2RmNDI5NzQ3ZDQ5YzlkNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKQEAgLTAs
MCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCIKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZyYWdtZW50RGly
ZWN0aXZlUGFyc2VyKTsKKworUmVmPEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyPiBGcmFnbWVudERp
cmVjdGl2ZVBhcnNlcjo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKHVybCkpOworfQorCitGcmFnbWVudERp
cmVjdGl2ZVBhcnNlcjo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIoY29uc3QgVVJMJiB1cmwpCit7
CisgICAgU3RyaW5nIGZyYWdtZW50RGlyZWN0aXZlRGVsaW1pdGVyID0gIjp+OiJfczsKKyAgICBh
dXRvIGZyYWdtZW50SWRlbnRpZmllciA9IHVybC5mcmFnbWVudElkZW50aWZpZXIoKTsKKyAgICAK
KyAgICBtX2lzVmFsaWQgPSBmYWxzZTsKKyAgICAKKyAgICBpZiAoIWZyYWdtZW50SWRlbnRpZmll
ciB8fCBmcmFnbWVudElkZW50aWZpZXIuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fZnJhZ21lbnRE
aXJlY3RpdmUgPSBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAgICAgCisg
ICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZVN0YXJ0ID0gZnJhZ21lbnRJZGVudGlmaWVyLmZpbmQo
ZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIpOworICAgIAorICAgIGlmIChmcmFnbWVudERpcmVj
dGl2ZVN0YXJ0ID09IG5vdEZvdW5kKSB7CisgICAgICAgIG1fZnJhZ21lbnREaXJlY3RpdmUgPSBT
dHJpbmcoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBhdXRvIGZyYWdtZW50
RGlyZWN0aXZlID0gZnJhZ21lbnRJZGVudGlmaWVyLnN1YnN0cmluZyhmcmFnbWVudERpcmVjdGl2
ZVN0YXJ0ICsgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIubGVuZ3RoKCkpOworICAgIAorICAg
IC8vIEZJWE1FOiB0aGlzIG5lZWRzIHRvIGJlIHNldCBvbiB0aGUgb3JpZ2luYWwgVVJMCisgICAg
bV91cmxGcmFnbWVudCA9IGZyYWdtZW50SWRlbnRpZmllci5zdWJzdHJpbmcoMCwgZnJhZ21lbnRE
aXJlY3RpdmVTdGFydCk7CisgICAgCisgICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZVN0cmluZyA9
IGZyYWdtZW50RGlyZWN0aXZlLnRvU3RyaW5nKCk7CisgICAgcGFyc2VGcmFnbWVudERpcmVjdGl2
ZShmcmFnbWVudERpcmVjdGl2ZVN0cmluZyk7CisgICAgCisgICAgbV9mcmFnbWVudERpcmVjdGl2
ZSA9IGZyYWdtZW50RGlyZWN0aXZlU3RyaW5nOworICAgIG1faXNWYWxpZCA9IHRydWU7Cit9CisK
K2Jvb2wgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OnBhcnNlRnJhZ21lbnREaXJlY3RpdmUoU3Ry
aW5nIGZyYWdtZW50RGlyZWN0aXZlKQoreworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcs
IHN0cmVhbSA8PCAiIHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIFZlY3Rv
cjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJpbmcg
dGV4dERpcmVjdGl2ZSA9ICJ0ZXh0PSJfczsKKworICAgIGlmICghZnJhZ21lbnREaXJlY3RpdmUu
c3RhcnRzV2l0aCh0ZXh0RGlyZWN0aXZlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAor
ICAgIGZyYWdtZW50RGlyZWN0aXZlLnJlbW92ZSgwLCB0ZXh0RGlyZWN0aXZlLmxlbmd0aCgpKTsK
KyAgICBhdXRvIGRpcmVjdGl2ZXMgPSBmcmFnbWVudERpcmVjdGl2ZS5zcGxpdCgiJiIpOworICAg
IAorICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAqdGhpcyA8PCAiIHBh
cnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIGZvciAoYXV0byBkaXJlY3RpdmUg
OiBkaXJlY3RpdmVzKSB7CisgICAgICAgIGF1dG8gdG9rZW5zID0gZGlyZWN0aXZlLnNwbGl0KCIs
Iik7CisgICAgICAgIC8vIEZJWE1FOiBhZGQgZGVjb2RpbmcgZm9yICUgZW5jb2RlZCBzdHJpbmdz
LgorICAgICAgICBpZiAodG9rZW5zLnNpemUoKSA+IDQgfHwgdG9rZW5zLnNpemUoKSA8IDEpIHsK
KyAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiIHdyb25n
IG51bWJlciBvZiB0b2tlbnMgIik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor
ICAgICAgICBmb3IgKGF1dG8gdG9rZW4gOiB0b2tlbnMpIHsKKyAgICAgICAgICAgIGlmICh0b2tl
bi5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5n
LCBzdHJlYW0gPDwgIiBlbXB0eSB0b2tlbiAiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBQYXJzZWRUZXh0RGlyZWN0aXZlIHBh
cnNlZFRleHREaXJlY3RpdmU7CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zWzBdLmVuZHNX
aXRoKCctJykpIHsKKyAgICAgICAgICAgIHRva2Vuc1swXS50cnVuY2F0ZSh0b2tlbnNbMF0ubGVu
Z3RoKCktMik7CisgICAgICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnByZWZpeCA9IHRva2Vu
c1swXTsKKyAgICAgICAgICAgIHRva2Vucy5yZW1vdmUoMCk7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIGlmICh0b2tlbnMubGFzdCgpLnN0YXJ0c1dpdGgoJy0nKSkgeworICAgICAgICAg
ICAgdG9rZW5zLmxhc3QoKS5yZW1vdmUoMCk7CisgICAgICAgICAgICBwYXJzZWRUZXh0RGlyZWN0
aXZlLnN1ZmZpeCA9IHRva2Vucy50YWtlTGFzdCgpOworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICBpZiAodG9rZW5zLnNpemUoKSAhPSAxICYmIHRva2Vucy5zaXplKCkgIT0gMikgeworICAg
ICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICIgbm90IGVub3Vn
aCB0b2tlbnMgIik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS50ZXh0U3RhcnQgPSB0b2tlbnNbMF07CisgICAg
ICAgIAorICAgICAgICBpZiAodG9rZW5zLnNpemUoKSA9PSAyKQorICAgICAgICAgICAgcGFyc2Vk
VGV4dERpcmVjdGl2ZS50ZXh0RW5kID0gdG9rZW5zWzFdOworICAgICAgICAKKyAgICAgICAgcGFy
c2VkVGV4dERpcmVjdGl2ZXMuYXBwZW5kKHBhcnNlZFRleHREaXJlY3RpdmUpOworICAgIH0KKyAg
ICAKKyAgICBtX3BhcnNlZFRleHREaXJlY3RpdmVzID0gcGFyc2VkVGV4dERpcmVjdGl2ZXM7Cisg
ICAgCisgICAgcmV0dXJuIHRydWU7CisgICAgCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWExYzhkYzUzYThhZDI1NmU4Y2Q4NjVmMTA3ZDBkMDVhNTI3YmRiZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oCkBAIC0w
LDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFVSTDsKKworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0cnVjdCBQYXJzZWRUZXh0RGlyZWN0aXZlIHsKKyAgICBTdHJpbmcgdGV4
dFN0YXJ0OworICAgIFN0cmluZyB0ZXh0RW5kOworICAgIFN0cmluZyBwcmVmaXg7CisgICAgU3Ry
aW5nIHN1ZmZpeDsKK307CisKK2NsYXNzIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyIDogcHVibGlj
IFJlZkNvdW50ZWQ8RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI+IHsKKyAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyPiBjcmVhdGUoY29uc3QgVVJMJik7CisgICAgCisg
ICAgVmVjdG9yPFBhcnNlZFRleHREaXJlY3RpdmU+IHBhcnNlZFRleHREaXJlY3RpdmVzKCkgeyBy
ZXR1cm4gbV9wYXJzZWRUZXh0RGlyZWN0aXZlczsgfTsKKyAgICBTdHJpbmcgZnJhZ21lbnREaXJl
Y3RpdmUoKSB7IHJldHVybiBtX2ZyYWdtZW50RGlyZWN0aXZlOyB9OworICAgIFN0cmluZ1ZpZXcg
dXJsRnJhZ21lbnQoKSB7IHJldHVybiBtX3VybEZyYWdtZW50OyB9OworICAgIGJvb2wgaXNWYWxp
ZCgpIHsgcmV0dXJuICBtX2lzVmFsaWQ7IH07CisgICAgCitwcml2YXRlOgorICAgIEZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyKCkgPSBkZWZhdWx0OworICAgIEZyYWdtZW50RGlyZWN0aXZlUGFyc2Vy
KGNvbnN0IFVSTCYpOworICAgIGJvb2wgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmcgZnJh
Z21lbnREaXJlY3RpdmUpOworICAgIAorICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBt
X3BhcnNlZFRleHREaXJlY3RpdmVzOworICAgIFN0cmluZ1ZpZXcgbV91cmxGcmFnbWVudDsKKyAg
ICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2ZTsKKyAgICBib29sIG1faXNWYWxpZDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAx
ODc3ZGNmMTE2ZmFiMzY4MWQ2YmNkNjk5OTc0NTAwYTRhMWQ5NmQwLi4xNzhmZjhmNDc2MGE0YTgw
YTg0MWRjNGNlYmNhMzU1NTdlMDZiYTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUZs
YXR0ZW5pbmcuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtMjIwOCw2ICsyMjA5LDIw
IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0b3JlU2Nyb2xsYmFyKCkKIAogYm9vbCBGcmFtZVZpZXc6
OnNjcm9sbFRvRnJhZ21lbnQoY29uc3QgVVJMJiB1cmwpCiB7CisgICAgQVNTRVJUKGZyYW1lKCku
ZG9jdW1lbnQoKSk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUoKS5kb2N1bWVudCgpOwor
ICAgIAorICAgIGlmIChkb2N1bWVudC5zZXR0aW5ncygpLnNjcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZCgpKSB7CisgICAgICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIgPSBGcmFnbWVu
dERpcmVjdGl2ZVBhcnNlcjo6Y3JlYXRlKHVybCk7CisgICAgICAgIAorICAgICAgICBpZiAoZnJh
Z21lbnREaXJlY3RpdmVQYXJzZXItPmlzVmFsaWQoKSkgeworICAgICAgICAgICAgZG9jdW1lbnQu
c2V0RnJhZ21lbnREaXJlY3RpdmUoZnJhZ21lbnREaXJlY3RpdmVQYXJzZXItPmZyYWdtZW50RGly
ZWN0aXZlKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIHBhcnNlZFRleHREaXJl
Y3RpdmVzID0gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXItPnBhcnNlZFRleHREaXJlY3RpdmVzKCk7
CisgICAgICAgICAgICAvLyBUT0RPOiBTY3JvbGwgdG8gdGhlIHJhbmdlIHNwZWNpZmllZCBieSB0
aGUgZGlyZWN0aXZlCisgICAgICAgIH0KKyAgICB9CisgICAgCiAgICAgYXV0byBmcmFnbWVudElk
ZW50aWZpZXIgPSB1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCk7CiAgICAgaWYgKHNjcm9sbFRvRnJh
Z21lbnRJbnRlcm5hbChmcmFnbWVudElkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440658</attachid>
            <date>2021-10-08 12:58:51 -0700</date>
            <delta_ts>2021-10-08 19:53:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211008155849.patch</filename>
            <type>text/plain</type>
            <size>16122</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uMDJjYzE5MzU2NDUxZGVmYTAzYzQ4NDA1NjgyOGJjMDkzZDgxZmRlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
RWRpdG9yJiBlZGl0b3IoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQor
ICAgICAgICAKKyAgICB2b2lkIHNldEZyYWdtZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJh
Z21lbnREaXJlY3RpdmUpIHsgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
OyB9CisgICAgU3RyaW5nJiBmcmFnbWVudERpcmVjdGl2ZSgpIHsgcmV0dXJuIG1fZnJhZ21lbnRE
aXJlY3RpdmU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFz
ZXNGb3JEaXNwbGF5SWZOZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24o
SFRNTENhbnZhc0VsZW1lbnQmKTsKQEAgLTIyMTgsNiArMjIyMiw4IEBAIHByaXZhdGU6CiAKICAg
ICBVbmlxdWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rp
b24+IG1fc2VsZWN0aW9uOworICAgICAgICAKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2
ZTsKIAogICAgIExpc3RIYXNoU2V0PFJlZjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwog
ICAgIFVuaXF1ZVJlZjxXaGl0ZXNwYWNlQ2FjaGU+IG1fd2hpdGVzcGFjZUNhY2hlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2JkY2FkOTQ5ODZhOTgwY2JkMjJiOWM0NmYwNjI1YjQ2ZTkxM2E4YgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKQEAgLTAs
MCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCIKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZyYWdtZW50RGly
ZWN0aXZlUGFyc2VyKTsKKworUmVmPEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyPiBGcmFnbWVudERp
cmVjdGl2ZVBhcnNlcjo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKHVybCkpOworfQorCitGcmFnbWVudERp
cmVjdGl2ZVBhcnNlcjo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIoY29uc3QgVVJMJiB1cmwpCit7
CisgICAgU3RyaW5nIGZyYWdtZW50RGlyZWN0aXZlRGVsaW1pdGVyID0gIjp+OiJfczsKKyAgICBh
dXRvIGZyYWdtZW50SWRlbnRpZmllciA9IHVybC5mcmFnbWVudElkZW50aWZpZXIoKTsKKyAgICAK
KyAgICBtX2lzVmFsaWQgPSBmYWxzZTsKKyAgICAKKyAgICBpZiAoIWZyYWdtZW50SWRlbnRpZmll
ciB8fCBmcmFnbWVudElkZW50aWZpZXIuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fZnJhZ21lbnRE
aXJlY3RpdmUgPSBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAgICAgCisg
ICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZVN0YXJ0ID0gZnJhZ21lbnRJZGVudGlmaWVyLmZpbmQo
ZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIpOworICAgIAorICAgIGlmIChmcmFnbWVudERpcmVj
dGl2ZVN0YXJ0ID09IG5vdEZvdW5kKSB7CisgICAgICAgIG1fZnJhZ21lbnREaXJlY3RpdmUgPSBT
dHJpbmcoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBhdXRvIGZyYWdtZW50
RGlyZWN0aXZlID0gZnJhZ21lbnRJZGVudGlmaWVyLnN1YnN0cmluZyhmcmFnbWVudERpcmVjdGl2
ZVN0YXJ0ICsgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIubGVuZ3RoKCkpOworICAgIAorICAg
IC8vIEZJWE1FOiB0aGlzIG5lZWRzIHRvIGJlIHNldCBvbiB0aGUgb3JpZ2luYWwgVVJMCisgICAg
bV91cmxGcmFnbWVudCA9IGZyYWdtZW50SWRlbnRpZmllci5zdWJzdHJpbmcoMCwgZnJhZ21lbnRE
aXJlY3RpdmVTdGFydCk7CisgICAgCisgICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZVN0cmluZyA9
IGZyYWdtZW50RGlyZWN0aXZlLnRvU3RyaW5nKCk7CisgICAgcGFyc2VGcmFnbWVudERpcmVjdGl2
ZShmcmFnbWVudERpcmVjdGl2ZVN0cmluZyk7CisgICAgCisgICAgbV9mcmFnbWVudERpcmVjdGl2
ZSA9IGZyYWdtZW50RGlyZWN0aXZlU3RyaW5nOworICAgIG1faXNWYWxpZCA9IHRydWU7Cit9CisK
K2Jvb2wgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OnBhcnNlRnJhZ21lbnREaXJlY3RpdmUoU3Ry
aW5nIGZyYWdtZW50RGlyZWN0aXZlKQoreworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcs
IHN0cmVhbSA8PCAiIHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIFZlY3Rv
cjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJpbmcg
dGV4dERpcmVjdGl2ZSA9ICJ0ZXh0PSJfczsKKworICAgIGlmICghZnJhZ21lbnREaXJlY3RpdmUu
c3RhcnRzV2l0aCh0ZXh0RGlyZWN0aXZlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAor
ICAgIGZyYWdtZW50RGlyZWN0aXZlLnJlbW92ZSgwLCB0ZXh0RGlyZWN0aXZlLmxlbmd0aCgpKTsK
KyAgICBhdXRvIGRpcmVjdGl2ZXMgPSBmcmFnbWVudERpcmVjdGl2ZS5zcGxpdCgiJiIpOworICAg
IAorICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiIHBhcnNlRnJhZ21l
bnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIGZvciAoYXV0byBkaXJlY3RpdmUgOiBkaXJlY3Rp
dmVzKSB7CisgICAgICAgIGF1dG8gdG9rZW5zID0gZGlyZWN0aXZlLnNwbGl0KCIsIik7CisgICAg
ICAgIC8vIEZJWE1FOiBhZGQgZGVjb2RpbmcgZm9yICUgZW5jb2RlZCBzdHJpbmdzLgorICAgICAg
ICBpZiAodG9rZW5zLnNpemUoKSA+IDQgfHwgdG9rZW5zLnNpemUoKSA8IDEpIHsKKyAgICAgICAg
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiIHdyb25nIG51bWJlciBv
ZiB0b2tlbnMgIik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBm
b3IgKGF1dG8gdG9rZW4gOiB0b2tlbnMpIHsKKyAgICAgICAgICAgIGlmICh0b2tlbi5pc0VtcHR5
KCkpIHsKKyAgICAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0g
PDwgIiBlbXB0eSB0b2tlbiAiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBQYXJzZWRUZXh0RGlyZWN0aXZlIHBhcnNlZFRleHRE
aXJlY3RpdmU7CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zWzBdLmVuZHNXaXRoKCctJykp
IHsKKyAgICAgICAgICAgIHRva2Vuc1swXS50cnVuY2F0ZSh0b2tlbnNbMF0ubGVuZ3RoKCktMik7
CisgICAgICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnByZWZpeCA9IHRva2Vuc1swXTsKKyAg
ICAgICAgICAgIHRva2Vucy5yZW1vdmUoMCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IGlmICh0b2tlbnMubGFzdCgpLnN0YXJ0c1dpdGgoJy0nKSkgeworICAgICAgICAgICAgdG9rZW5z
Lmxhc3QoKS5yZW1vdmUoMCk7CisgICAgICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnN1ZmZp
eCA9IHRva2Vucy50YWtlTGFzdCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAo
dG9rZW5zLnNpemUoKSAhPSAxICYmIHRva2Vucy5zaXplKCkgIT0gMikgeworICAgICAgICAgICAg
TE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICIgbm90IGVub3VnaCB0b2tlbnMg
Iik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAg
cGFyc2VkVGV4dERpcmVjdGl2ZS50ZXh0U3RhcnQgPSB0b2tlbnNbMF07CisgICAgICAgIAorICAg
ICAgICBpZiAodG9rZW5zLnNpemUoKSA9PSAyKQorICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVj
dGl2ZS50ZXh0RW5kID0gdG9rZW5zWzFdOworICAgICAgICAKKyAgICAgICAgcGFyc2VkVGV4dERp
cmVjdGl2ZXMuYXBwZW5kKHBhcnNlZFRleHREaXJlY3RpdmUpOworICAgIH0KKyAgICAKKyAgICBt
X3BhcnNlZFRleHREaXJlY3RpdmVzID0gcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgCisgICAg
cmV0dXJuIHRydWU7CisgICAgCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWExYzhk
YzUzYThhZDI1NmU4Y2Q4NjVmMTA3ZDBkMDVhNTI3YmRiZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKwor
bmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFVSTDsKKworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0cnVjdCBQYXJzZWRUZXh0RGlyZWN0aXZlIHsKKyAgICBTdHJpbmcgdGV4dFN0YXJ0Owor
ICAgIFN0cmluZyB0ZXh0RW5kOworICAgIFN0cmluZyBwcmVmaXg7CisgICAgU3RyaW5nIHN1ZmZp
eDsKK307CisKK2NsYXNzIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyIDogcHVibGljIFJlZkNvdW50
ZWQ8RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEZyYWdt
ZW50RGlyZWN0aXZlUGFyc2VyPiBjcmVhdGUoY29uc3QgVVJMJik7CisgICAgCisgICAgVmVjdG9y
PFBhcnNlZFRleHREaXJlY3RpdmU+IHBhcnNlZFRleHREaXJlY3RpdmVzKCkgeyByZXR1cm4gbV9w
YXJzZWRUZXh0RGlyZWN0aXZlczsgfTsKKyAgICBTdHJpbmcgZnJhZ21lbnREaXJlY3RpdmUoKSB7
IHJldHVybiBtX2ZyYWdtZW50RGlyZWN0aXZlOyB9OworICAgIFN0cmluZ1ZpZXcgdXJsRnJhZ21l
bnQoKSB7IHJldHVybiBtX3VybEZyYWdtZW50OyB9OworICAgIGJvb2wgaXNWYWxpZCgpIHsgcmV0
dXJuICBtX2lzVmFsaWQ7IH07CisgICAgCitwcml2YXRlOgorICAgIEZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyKCkgPSBkZWZhdWx0OworICAgIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKGNvbnN0IFVS
TCYpOworICAgIGJvb2wgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmcgZnJhZ21lbnREaXJl
Y3RpdmUpOworICAgIAorICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBtX3BhcnNlZFRl
eHREaXJlY3RpdmVzOworICAgIFN0cmluZ1ZpZXcgbV91cmxGcmFnbWVudDsKKyAgICBTdHJpbmcg
bV9mcmFnbWVudERpcmVjdGl2ZTsKKyAgICBib29sIG1faXNWYWxpZDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAxODc3ZGNmMTE2
ZmFiMzY4MWQ2YmNkNjk5OTc0NTAwYTRhMWQ5NmQwLi4xNzhmZjhmNDc2MGE0YTgwYTg0MWRjNGNl
YmNhMzU1NTdlMDZiYTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00Niw2ICs0
Niw3IEBACiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgog
I2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUZsYXR0ZW5pbmcu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtMjIwOCw2ICsyMjA5LDIwIEBAIHZvaWQg
RnJhbWVWaWV3OjpyZXN0b3JlU2Nyb2xsYmFyKCkKIAogYm9vbCBGcmFtZVZpZXc6OnNjcm9sbFRv
RnJhZ21lbnQoY29uc3QgVVJMJiB1cmwpCiB7CisgICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQo
KSk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUoKS5kb2N1bWVudCgpOworICAgIAorICAg
IGlmIChkb2N1bWVudC5zZXR0aW5ncygpLnNjcm9sbFRvVGV4dEZyYWdtZW50RW5hYmxlZCgpKSB7
CisgICAgICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIgPSBGcmFnbWVudERpcmVjdGl2
ZVBhcnNlcjo6Y3JlYXRlKHVybCk7CisgICAgICAgIAorICAgICAgICBpZiAoZnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXItPmlzVmFsaWQoKSkgeworICAgICAgICAgICAgZG9jdW1lbnQuc2V0RnJhZ21l
bnREaXJlY3RpdmUoZnJhZ21lbnREaXJlY3RpdmVQYXJzZXItPmZyYWdtZW50RGlyZWN0aXZlKCkp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIHBhcnNlZFRleHREaXJlY3RpdmVzID0g
ZnJhZ21lbnREaXJlY3RpdmVQYXJzZXItPnBhcnNlZFRleHREaXJlY3RpdmVzKCk7CisgICAgICAg
ICAgICAvLyBUT0RPOiBTY3JvbGwgdG8gdGhlIHJhbmdlIHNwZWNpZmllZCBieSB0aGUgZGlyZWN0
aXZlCisgICAgICAgIH0KKyAgICB9CisgICAgCiAgICAgYXV0byBmcmFnbWVudElkZW50aWZpZXIg
PSB1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCk7CiAgICAgaWYgKHNjcm9sbFRvRnJhZ21lbnRJbnRl
cm5hbChmcmFnbWVudElkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440699</attachid>
            <date>2021-10-08 19:54:11 -0700</date>
            <delta_ts>2021-10-11 12:44:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211008225358.patch</filename>
            <type>text/plain</type>
            <size>16458</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uMDJjYzE5MzU2NDUxZGVmYTAzYzQ4NDA1NjgyOGJjMDkzZDgxZmRlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
RWRpdG9yJiBlZGl0b3IoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQor
ICAgICAgICAKKyAgICB2b2lkIHNldEZyYWdtZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJh
Z21lbnREaXJlY3RpdmUpIHsgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
OyB9CisgICAgU3RyaW5nJiBmcmFnbWVudERpcmVjdGl2ZSgpIHsgcmV0dXJuIG1fZnJhZ21lbnRE
aXJlY3RpdmU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFz
ZXNGb3JEaXNwbGF5SWZOZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24o
SFRNTENhbnZhc0VsZW1lbnQmKTsKQEAgLTIyMTgsNiArMjIyMiw4IEBAIHByaXZhdGU6CiAKICAg
ICBVbmlxdWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rp
b24+IG1fc2VsZWN0aW9uOworICAgICAgICAKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2
ZTsKIAogICAgIExpc3RIYXNoU2V0PFJlZjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwog
ICAgIFVuaXF1ZVJlZjxXaGl0ZXNwYWNlQ2FjaGU+IG1fd2hpdGVzcGFjZUNhY2hlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Njc0NDQ4YjM0NTE5Yzc1Y2Y0MDA2NTA0ZGY1NWFjN2Q4YmNkZjk4MgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKQEAgLTAs
MCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCIKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworRnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OkZyYWdtZW50RGlyZWN0
aXZlUGFyc2VyKGNvbnN0IFVSTCYgdXJsKQoreworICAgIFN0cmluZyBmcmFnbWVudERpcmVjdGl2
ZURlbGltaXRlciA9ICI6fjoiX3M7CisgICAgYXV0byBmcmFnbWVudElkZW50aWZpZXIgPSB1cmwu
ZnJhZ21lbnRJZGVudGlmaWVyKCk7CisgICAgCisgICAgbV9pc1ZhbGlkID0gZmFsc2U7CisgICAg
CisgICAgaWYgKCFmcmFnbWVudElkZW50aWZpZXIgfHwgZnJhZ21lbnRJZGVudGlmaWVyLmlzRW1w
dHkoKSkgeworICAgICAgICBtX2ZyYWdtZW50RGlyZWN0aXZlID0gU3RyaW5nKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmVTdGFy
dCA9IGZyYWdtZW50SWRlbnRpZmllci5maW5kKGZyYWdtZW50RGlyZWN0aXZlRGVsaW1pdGVyKTsK
KyAgICAKKyAgICBpZiAoZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9PSBub3RGb3VuZCkgeworICAg
ICAgICBtX2ZyYWdtZW50RGlyZWN0aXZlID0gU3RyaW5nKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgCisgICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50SWRlbnRpZmll
ci5zdWJzdHJpbmcoZnJhZ21lbnREaXJlY3RpdmVTdGFydCArIGZyYWdtZW50RGlyZWN0aXZlRGVs
aW1pdGVyLmxlbmd0aCgpKTsKKyAgICAKKyAgICAvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBiZSBz
ZXQgb24gdGhlIG9yaWdpbmFsIFVSTAorICAgIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFn
bWVudElkZW50aWZpZXIuc3Vic3RyaW5nKDAsIGZyYWdtZW50RGlyZWN0aXZlU3RhcnQpOworICAg
IAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmVTdHJpbmcgPSBmcmFnbWVudERpcmVjdGl2ZS50
b1N0cmluZygpOworICAgIHBhcnNlRnJhZ21lbnREaXJlY3RpdmUoZnJhZ21lbnREaXJlY3RpdmVT
dHJpbmcpOworICAgIAorICAgIG1fZnJhZ21lbnREaXJlY3RpdmUgPSBmcmFnbWVudERpcmVjdGl2
ZVN0cmluZzsKKyAgICBtX2lzVmFsaWQgPSB0cnVlOworfQorCitib29sIEZyYWdtZW50RGlyZWN0
aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKFN0cmluZyBmcmFnbWVudERpcmVjdGl2
ZSkKK3sKKyAgICBMT0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBwYXJz
ZUZyYWdtZW50RGlyZWN0aXZlOiAiKTsKKyAgICAKKyAgICBWZWN0b3I8UGFyc2VkVGV4dERpcmVj
dGl2ZT4gcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgU3RyaW5nIHRleHREaXJlY3RpdmUgPSAi
dGV4dD0iX3M7CisKKyAgICBpZiAoIWZyYWdtZW50RGlyZWN0aXZlLnN0YXJ0c1dpdGgodGV4dERp
cmVjdGl2ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBmcmFnbWVudERpcmVj
dGl2ZS5yZW1vdmUoMCwgdGV4dERpcmVjdGl2ZS5sZW5ndGgoKSk7CisgICAgYXV0byBkaXJlY3Rp
dmVzID0gZnJhZ21lbnREaXJlY3RpdmUuc3BsaXQoIiYiKTsKKyAgICAKKyAgICBMT0dfV0lUSF9T
VFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBwYXJzZUZyYWdtZW50RGlyZWN0aXZlOiAi
KTsKKyAgICAKKyAgICBmb3IgKGF1dG8gZGlyZWN0aXZlIDogZGlyZWN0aXZlcykgeworICAgICAg
ICBhdXRvIHRva2VucyA9IGRpcmVjdGl2ZS5zcGxpdCgiLCIpOworICAgICAgICAvLyBGSVhNRTog
YWRkIGRlY29kaW5nIGZvciAlIGVuY29kZWQgc3RyaW5ncy4KKyAgICAgICAgaWYgKHRva2Vucy5z
aXplKCkgPiA0IHx8IHRva2Vucy5zaXplKCkgPCAxKSB7CisgICAgICAgICAgICBMT0dfV0lUSF9T
VFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiB3cm9uZyBudW1iZXIgb2YgdG9rZW5zICIp
OworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChhdXRvIHRv
a2VuIDogdG9rZW5zKSB7CisgICAgICAgICAgICBpZiAodG9rZW4uaXNFbXB0eSgpKSB7CisgICAg
ICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFRleHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgZW1w
dHkgdG9rZW4gIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgUGFyc2VkVGV4dERpcmVjdGl2ZSBwYXJzZWRUZXh0RGlyZWN0aXZl
OworICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vuc1swXS5lbmRzV2l0aCgnLScpKSB7CisgICAg
ICAgICAgICB0b2tlbnNbMF0udHJ1bmNhdGUodG9rZW5zWzBdLmxlbmd0aCgpLTIpOworICAgICAg
ICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5wcmVmaXggPSB0b2tlbnNbMF07CisgICAgICAgICAg
ICB0b2tlbnMucmVtb3ZlKDApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodG9r
ZW5zLmxhc3QoKS5zdGFydHNXaXRoKCctJykpIHsKKyAgICAgICAgICAgIHRva2Vucy5sYXN0KCku
cmVtb3ZlKDApOworICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5zdWZmaXggPSB0b2tl
bnMudGFrZUxhc3QoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5z
aXplKCkgIT0gMSAmJiB0b2tlbnMuc2l6ZSgpICE9IDIpIHsKKyAgICAgICAgICAgIExPR19XSVRI
X1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIG5vdCBlbm91Z2ggdG9rZW5zICIpOwor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhcnNl
ZFRleHREaXJlY3RpdmUudGV4dFN0YXJ0ID0gdG9rZW5zWzBdOworICAgICAgICAKKyAgICAgICAg
aWYgKHRva2Vucy5zaXplKCkgPT0gMikKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUu
dGV4dEVuZCA9IHRva2Vuc1sxXTsKKyAgICAgICAgCisgICAgICAgIHBhcnNlZFRleHREaXJlY3Rp
dmVzLmFwcGVuZChwYXJzZWRUZXh0RGlyZWN0aXZlKTsKKyAgICB9CisgICAgCisgICAgbV9wYXJz
ZWRUZXh0RGlyZWN0aXZlcyA9IHBhcnNlZFRleHREaXJlY3RpdmVzOworICAgIAorICAgIHJldHVy
biB0cnVlOworICAgIAorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlZTE0MWVmM2M1
ZTVhNDllM2M5Y2MyNDc2OGVkZmJkNDhkNWEwZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApAQCAtMCwwICsxLDY1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisK
K25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBVUkw7CisKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdHJ1Y3QgUGFyc2VkVGV4dERpcmVjdGl2ZSB7CisgICAgU3RyaW5nIHRleHRTdGFydDsK
KyAgICBTdHJpbmcgdGV4dEVuZDsKKyAgICBTdHJpbmcgcHJlZml4OworICAgIFN0cmluZyBzdWZm
aXg7Cit9OworCitjbGFzcyBGcmFnbWVudERpcmVjdGl2ZVBhcnNlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQoRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIpOworcHVibGljOgorICAgIEZyYWdtZW50RGlyZWN0
aXZlUGFyc2VyKGNvbnN0IFVSTCYpOworICAgIAorICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0
aXZlPiBwYXJzZWRUZXh0RGlyZWN0aXZlcygpIHsgcmV0dXJuIG1fcGFyc2VkVGV4dERpcmVjdGl2
ZXM7IH07CisgICAgU3RyaW5nIGZyYWdtZW50RGlyZWN0aXZlKCkgeyByZXR1cm4gbV9mcmFnbWVu
dERpcmVjdGl2ZTsgfTsKKyAgICBTdHJpbmdWaWV3IHJlbWFpbmluZ1VSTEZyYWdtZW50KCkgeyBy
ZXR1cm4gbV9yZW1haW5pbmdVUkxGcmFnbWVudDsgfTsKKyAgICBib29sIGlzVmFsaWQoKSB7IHJl
dHVybiAgbV9pc1ZhbGlkOyB9OworICAgIAorcHJpdmF0ZToKKyAgICBGcmFnbWVudERpcmVjdGl2
ZVBhcnNlcigpID0gZGVsZXRlOworICAgIGJvb2wgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJp
bmcgZnJhZ21lbnREaXJlY3RpdmUpOworICAgIAorICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0
aXZlPiBtX3BhcnNlZFRleHREaXJlY3RpdmVzOworICAgIFN0cmluZ1ZpZXcgbV9yZW1haW5pbmdV
UkxGcmFnbWVudDsKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2ZTsKKyAgICBib29sIG1f
aXNWYWxpZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAppbmRleCAxODc3ZGNmMTE2ZmFiMzY4MWQ2YmNkNjk5OTc0NTAwYTRhMWQ5NmQwLi5i
MzFjOWY2Nzk1MTc1ZWM5NzE2MmFkZGEzMWNmMTc5NGNhMTgwMGRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgog
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUZsYXR0ZW5pbmcuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAt
MjIwOCw3ICsyMjA5LDI0IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0b3JlU2Nyb2xsYmFyKCkKIAog
Ym9vbCBGcmFtZVZpZXc6OnNjcm9sbFRvRnJhZ21lbnQoY29uc3QgVVJMJiB1cmwpCiB7CisgICAg
QVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKSk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUo
KS5kb2N1bWVudCgpOworICAgIAogICAgIGF1dG8gZnJhZ21lbnRJZGVudGlmaWVyID0gdXJsLmZy
YWdtZW50SWRlbnRpZmllcigpOworICAgIAorICAgIGlmIChkb2N1bWVudC5zZXR0aW5ncygpLnNj
cm9sbFRvVGV4dEZyYWdtZW50RW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8gZnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXIgPSBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcih1cmwpOworICAgICAgICAKKyAg
ICAgICAgaWYgKGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmlzVmFsaWQoKSkgeworICAgICAgICAg
ICAgZG9jdW1lbnQuc2V0RnJhZ21lbnREaXJlY3RpdmUoZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
ZnJhZ21lbnREaXJlY3RpdmUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF1dG8gcGFy
c2VkVGV4dERpcmVjdGl2ZXMgPSBmcmFnbWVudERpcmVjdGl2ZVBhcnNlci5wYXJzZWRUZXh0RGly
ZWN0aXZlcygpOworICAgICAgICAgICAgLy8gVE9ETzogU2Nyb2xsIHRvIHRoZSByYW5nZSBzcGVj
aWZpZWQgYnkgdGhlIGRpcmVjdGl2ZQorICAgICAgICAgICAgCisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgZnJhZ21lbnRJZGVudGlmaWVyID0gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIucmVt
YWluaW5nVVJMRnJhZ21lbnQoKTsKKyAgICB9CisgICAgCiAgICAgaWYgKHNjcm9sbFRvRnJhZ21l
bnRJbnRlcm5hbChmcmFnbWVudElkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDVjZGQ4YjNiOTVmNDFhMzhiMzI2Y2YwOTdh
OWRmMzY5ZGRhODhiZTUuLjNmYmU0MTdiZTk4MWI3NWU3NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTExNSw2ICsxMTUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgTShTdHlsZVNoZWV0cykgXAogICAgIE0oU1ZHKSBcCiAgICAgTShU
ZXh0QXV0b3NpemluZykgXAorICAgIE0oVGV4dEZyYWdtZW50KSBcCiAgICAgTShUZXh0U2hhcGlu
ZykgXAogICAgIE0oVGlsaW5nKSBcCiAgICAgTShUaHJlYWRpbmcpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440823</attachid>
            <date>2021-10-11 12:44:40 -0700</date>
            <delta_ts>2021-10-11 15:19:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211011124440.patch</filename>
            <type>text/plain</type>
            <size>16556</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uMDJjYzE5MzU2NDUxZGVmYTAzYzQ4NDA1NjgyOGJjMDkzZDgxZmRlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
RWRpdG9yJiBlZGl0b3IoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQor
ICAgICAgICAKKyAgICB2b2lkIHNldEZyYWdtZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJh
Z21lbnREaXJlY3RpdmUpIHsgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
OyB9CisgICAgU3RyaW5nJiBmcmFnbWVudERpcmVjdGl2ZSgpIHsgcmV0dXJuIG1fZnJhZ21lbnRE
aXJlY3RpdmU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFz
ZXNGb3JEaXNwbGF5SWZOZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24o
SFRNTENhbnZhc0VsZW1lbnQmKTsKQEAgLTIyMTgsNiArMjIyMiw4IEBAIHByaXZhdGU6CiAKICAg
ICBVbmlxdWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rp
b24+IG1fc2VsZWN0aW9uOworICAgICAgICAKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2
ZTsKIAogICAgIExpc3RIYXNoU2V0PFJlZjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwog
ICAgIFVuaXF1ZVJlZjxXaGl0ZXNwYWNlQ2FjaGU+IG1fd2hpdGVzcGFjZUNhY2hlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2Y3OTQzNTM5ZDhjMzBhOGZjYTQ5OTFjZThkZGE3MzY2YTMxMTViNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKQEAgLTAs
MCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCIKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworRnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OkZyYWdtZW50RGlyZWN0
aXZlUGFyc2VyKGNvbnN0IFVSTCYgdXJsKQoreworICAgIFN0cmluZyBmcmFnbWVudERpcmVjdGl2
ZURlbGltaXRlciA9ICI6fjoiX3M7CisgICAgYXV0byBmcmFnbWVudElkZW50aWZpZXIgPSB1cmwu
ZnJhZ21lbnRJZGVudGlmaWVyKCk7CisgICAgCisgICAgbV9pc1ZhbGlkID0gZmFsc2U7CisgICAg
CisgICAgaWYgKCFmcmFnbWVudElkZW50aWZpZXIgfHwgZnJhZ21lbnRJZGVudGlmaWVyLmlzRW1w
dHkoKSkgeworICAgICAgICBtX2ZyYWdtZW50RGlyZWN0aXZlID0gU3RyaW5nKCk7CisgICAgICAg
IG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAgICAgCisgICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZVN0YXJ0ID0gZnJhZ21lbnRJ
ZGVudGlmaWVyLmZpbmQoZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIpOworICAgIAorICAgIGlm
IChmcmFnbWVudERpcmVjdGl2ZVN0YXJ0ID09IG5vdEZvdW5kKSB7CisgICAgICAgIG1fZnJhZ21l
bnREaXJlY3RpdmUgPSBTdHJpbmcoKTsKKyAgICAgICAgbV9yZW1haW5pbmdVUkxGcmFnbWVudCA9
IGZyYWdtZW50SWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBh
dXRvIGZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnRJZGVudGlmaWVyLnN1YnN0cmluZyhmcmFn
bWVudERpcmVjdGl2ZVN0YXJ0ICsgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIubGVuZ3RoKCkp
OworICAgIAorICAgIC8vIEZJWE1FOiB0aGlzIG5lZWRzIHRvIGJlIHNldCBvbiB0aGUgb3JpZ2lu
YWwgVVJMCisgICAgbV9yZW1haW5pbmdVUkxGcmFnbWVudCA9IGZyYWdtZW50SWRlbnRpZmllci5z
dWJzdHJpbmcoMCwgZnJhZ21lbnREaXJlY3RpdmVTdGFydCk7CisgICAgCisgICAgYXV0byBmcmFn
bWVudERpcmVjdGl2ZVN0cmluZyA9IGZyYWdtZW50RGlyZWN0aXZlLnRvU3RyaW5nKCk7CisgICAg
cGFyc2VGcmFnbWVudERpcmVjdGl2ZShmcmFnbWVudERpcmVjdGl2ZVN0cmluZyk7CisgICAgCisg
ICAgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZlU3RyaW5nOworICAgIG1f
aXNWYWxpZCA9IHRydWU7Cit9CisKK2Jvb2wgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OnBhcnNl
RnJhZ21lbnREaXJlY3RpdmUoU3RyaW5nIGZyYWdtZW50RGlyZWN0aXZlKQoreworICAgIExPR19X
SVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIHBhcnNlRnJhZ21lbnREaXJlY3Rp
dmU6ICIpOworICAgIAorICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBwYXJzZWRUZXh0
RGlyZWN0aXZlczsKKyAgICBTdHJpbmcgdGV4dERpcmVjdGl2ZSA9ICJ0ZXh0PSJfczsKKworICAg
IGlmICghZnJhZ21lbnREaXJlY3RpdmUuc3RhcnRzV2l0aCh0ZXh0RGlyZWN0aXZlKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGZyYWdtZW50RGlyZWN0aXZlLnJlbW92ZSgwLCB0
ZXh0RGlyZWN0aXZlLmxlbmd0aCgpKTsKKyAgICBhdXRvIGRpcmVjdGl2ZXMgPSBmcmFnbWVudERp
cmVjdGl2ZS5zcGxpdCgiJiIpOworICAgIAorICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21l
bnQsIHN0cmVhbSA8PCAiIHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIGZv
ciAoYXV0byBkaXJlY3RpdmUgOiBkaXJlY3RpdmVzKSB7CisgICAgICAgIGF1dG8gdG9rZW5zID0g
ZGlyZWN0aXZlLnNwbGl0KCIsIik7CisgICAgICAgIC8vIEZJWE1FOiBhZGQgZGVjb2RpbmcgZm9y
ICUgZW5jb2RlZCBzdHJpbmdzLgorICAgICAgICBpZiAodG9rZW5zLnNpemUoKSA+IDQgfHwgdG9r
ZW5zLnNpemUoKSA8IDEpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21l
bnQsIHN0cmVhbSA8PCAiIHdyb25nIG51bWJlciBvZiB0b2tlbnMgIik7CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGF1dG8gdG9rZW4gOiB0b2tlbnMpIHsK
KyAgICAgICAgICAgIGlmICh0b2tlbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBMT0df
V0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBlbXB0eSB0b2tlbiAiKTsKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBQYXJzZWRUZXh0RGlyZWN0aXZlIHBhcnNlZFRleHREaXJlY3RpdmU7CisgICAgICAgIAorICAg
ICAgICBpZiAodG9rZW5zWzBdLmVuZHNXaXRoKCctJykpIHsKKyAgICAgICAgICAgIHRva2Vuc1sw
XS50cnVuY2F0ZSh0b2tlbnNbMF0ubGVuZ3RoKCktMik7CisgICAgICAgICAgICBwYXJzZWRUZXh0
RGlyZWN0aXZlLnByZWZpeCA9IHRva2Vuc1swXTsKKyAgICAgICAgICAgIHRva2Vucy5yZW1vdmUo
MCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh0b2tlbnMubGFzdCgpLnN0YXJ0
c1dpdGgoJy0nKSkgeworICAgICAgICAgICAgdG9rZW5zLmxhc3QoKS5yZW1vdmUoMCk7CisgICAg
ICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnN1ZmZpeCA9IHRva2Vucy50YWtlTGFzdCgpOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLnNpemUoKSAhPSAxICYmIHRv
a2Vucy5zaXplKCkgIT0gMikgeworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFRleHRGcmFn
bWVudCwgc3RyZWFtIDw8ICIgbm90IGVub3VnaCB0b2tlbnMgIik7CisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS50
ZXh0U3RhcnQgPSB0b2tlbnNbMF07CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLnNpemUo
KSA9PSAyKQorICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS50ZXh0RW5kID0gdG9rZW5z
WzFdOworICAgICAgICAKKyAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZXMuYXBwZW5kKHBhcnNl
ZFRleHREaXJlY3RpdmUpOworICAgIH0KKyAgICAKKyAgICBtX3BhcnNlZFRleHREaXJlY3RpdmVz
ID0gcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgCisgICAgcmV0dXJuIHRydWU7CisgICAgCit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWVlMTQxZWYzYzVlNWE0OWUzYzljYzI0NzY4
ZWRmYmQ0OGQ1YTBmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFn
bWVudERpcmVjdGl2ZVBhcnNlci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKworbmFtZXNwYWNlIFdURiB7
CisKK2NsYXNzIFVSTDsKKworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQYXJz
ZWRUZXh0RGlyZWN0aXZlIHsKKyAgICBTdHJpbmcgdGV4dFN0YXJ0OworICAgIFN0cmluZyB0ZXh0
RW5kOworICAgIFN0cmluZyBwcmVmaXg7CisgICAgU3RyaW5nIHN1ZmZpeDsKK307CisKK2NsYXNz
IEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyIDogcHVibGljIFJlZkNvdW50ZWQ8RnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRChGcmFnbWVudERpcmVj
dGl2ZVBhcnNlcik7CitwdWJsaWM6CisgICAgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIoY29uc3Qg
VVJMJik7CisgICAgCisgICAgVmVjdG9yPFBhcnNlZFRleHREaXJlY3RpdmU+IHBhcnNlZFRleHRE
aXJlY3RpdmVzKCkgeyByZXR1cm4gbV9wYXJzZWRUZXh0RGlyZWN0aXZlczsgfTsKKyAgICBTdHJp
bmcgZnJhZ21lbnREaXJlY3RpdmUoKSB7IHJldHVybiBtX2ZyYWdtZW50RGlyZWN0aXZlOyB9Owor
ICAgIFN0cmluZ1ZpZXcgcmVtYWluaW5nVVJMRnJhZ21lbnQoKSB7IHJldHVybiBtX3JlbWFpbmlu
Z1VSTEZyYWdtZW50OyB9OworICAgIGJvb2wgaXNWYWxpZCgpIHsgcmV0dXJuICBtX2lzVmFsaWQ7
IH07CisgICAgCitwcml2YXRlOgorICAgIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKCkgPSBkZWxl
dGU7CisgICAgYm9vbCBwYXJzZUZyYWdtZW50RGlyZWN0aXZlKFN0cmluZyBmcmFnbWVudERpcmVj
dGl2ZSk7CisgICAgCisgICAgVmVjdG9yPFBhcnNlZFRleHREaXJlY3RpdmU+IG1fcGFyc2VkVGV4
dERpcmVjdGl2ZXM7CisgICAgU3RyaW5nVmlldyBtX3JlbWFpbmluZ1VSTEZyYWdtZW50OworICAg
IFN0cmluZyBtX2ZyYWdtZW50RGlyZWN0aXZlOworICAgIGJvb2wgbV9pc1ZhbGlkOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDE4
NzdkY2YxMTZmYWIzNjgxZDZiY2Q2OTk5NzQ1MDBhNGExZDk2ZDAuLmIzMWM5ZjY3OTUxNzVlYzk3
MTYyYWRkYTMxY2YxNzk0Y2ExODAwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAg
LTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmxvYXRS
ZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhZ21lbnRE
aXJlY3RpdmVQYXJzZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lRmxh
dHRlbmluZy5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC0yMjA4LDcgKzIyMDksMjQg
QEAgdm9pZCBGcmFtZVZpZXc6OnJlc3RvcmVTY3JvbGxiYXIoKQogCiBib29sIEZyYW1lVmlldzo6
c2Nyb2xsVG9GcmFnbWVudChjb25zdCBVUkwmIHVybCkKIHsKKyAgICBBU1NFUlQoZnJhbWUoKS5k
b2N1bWVudCgpKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9ICpmcmFtZSgpLmRvY3VtZW50KCk7Cisg
ICAgCiAgICAgYXV0byBmcmFnbWVudElkZW50aWZpZXIgPSB1cmwuZnJhZ21lbnRJZGVudGlmaWVy
KCk7CisgICAgCisgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCkuc2Nyb2xsVG9UZXh0RnJhZ21l
bnRFbmFibGVkKCkpIHsKKyAgICAgICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZVBhcnNlciA9IEZy
YWdtZW50RGlyZWN0aXZlUGFyc2VyKHVybCk7CisgICAgICAgIAorICAgICAgICBpZiAoZnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBkb2N1bWVudC5zZXRG
cmFnbWVudERpcmVjdGl2ZShmcmFnbWVudERpcmVjdGl2ZVBhcnNlci5mcmFnbWVudERpcmVjdGl2
ZSgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXV0byBwYXJzZWRUZXh0RGlyZWN0aXZl
cyA9IGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLnBhcnNlZFRleHREaXJlY3RpdmVzKCk7CisgICAg
ICAgICAgICAvLyBUT0RPOiBTY3JvbGwgdG8gdGhlIHJhbmdlIHNwZWNpZmllZCBieSB0aGUgZGly
ZWN0aXZlCisgICAgICAgICAgICAKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmcmFnbWVu
dElkZW50aWZpZXIgPSBmcmFnbWVudERpcmVjdGl2ZVBhcnNlci5yZW1haW5pbmdVUkxGcmFnbWVu
dCgpOworICAgIH0KKyAgICAKICAgICBpZiAoc2Nyb2xsVG9GcmFnbWVudEludGVybmFsKGZyYWdt
ZW50SWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2dnaW5nLmgKaW5kZXggNWNkZDhiM2I5NWY0MWEzOGIzMjZjZjA5N2E5ZGYzNjlkZGE4OGJlNS4u
M2ZiZTQxN2JlOTgxYjc1ZTc3OWRlMjM4ZmM0YmUwNWE2ZDczMGZhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvZ2dpbmcuaApAQCAtMTE1LDYgKzExNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBNKFN0eWxlU2hlZXRzKSBcCiAgICAgTShTVkcpIFwKICAgICBNKFRleHRBdXRvc2l6aW5nKSBc
CisgICAgTShUZXh0RnJhZ21lbnQpIFwKICAgICBNKFRleHRTaGFwaW5nKSBcCiAgICAgTShUaWxp
bmcpIFwKICAgICBNKFRocmVhZGluZykgXAo=
</data>
<flag name="commit-queue"
          id="464922"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440843</attachid>
            <date>2021-10-11 14:59:00 -0700</date>
            <delta_ts>2021-10-11 20:09:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211011145859.patch</filename>
            <type>text/plain</type>
            <size>16566</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uMDJjYzE5MzU2NDUxZGVmYTAzYzQ4NDA1NjgyOGJjMDkzZDgxZmRlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
RWRpdG9yJiBlZGl0b3IoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQor
ICAgICAgICAKKyAgICB2b2lkIHNldEZyYWdtZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJh
Z21lbnREaXJlY3RpdmUpIHsgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
OyB9CisgICAgU3RyaW5nJiBmcmFnbWVudERpcmVjdGl2ZSgpIHsgcmV0dXJuIG1fZnJhZ21lbnRE
aXJlY3RpdmU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFz
ZXNGb3JEaXNwbGF5SWZOZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24o
SFRNTENhbnZhc0VsZW1lbnQmKTsKQEAgLTIyMTgsNiArMjIyMiw4IEBAIHByaXZhdGU6CiAKICAg
ICBVbmlxdWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rp
b24+IG1fc2VsZWN0aW9uOworICAgICAgICAKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2
ZTsKIAogICAgIExpc3RIYXNoU2V0PFJlZjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwog
ICAgIFVuaXF1ZVJlZjxXaGl0ZXNwYWNlQ2FjaGU+IG1fd2hpdGVzcGFjZUNhY2hlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Zjc2NzM4OTFjZTgzZmRmZDg3NThiYjY4ZGIwNzE0ZTQzNGM3YWMwNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKQEAgLTAs
MCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCIKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworRnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OkZyYWdtZW50RGlyZWN0
aXZlUGFyc2VyKGNvbnN0IFVSTCYgdXJsKQoreworICAgIFN0cmluZyBmcmFnbWVudERpcmVjdGl2
ZURlbGltaXRlciA9ICI6fjoiX3M7CisgICAgYXV0byBmcmFnbWVudElkZW50aWZpZXIgPSB1cmwu
ZnJhZ21lbnRJZGVudGlmaWVyKCk7CisgICAgCisgICAgbV9pc1ZhbGlkID0gZmFsc2U7CisgICAg
CisgICAgaWYgKCFmcmFnbWVudElkZW50aWZpZXIgfHwgZnJhZ21lbnRJZGVudGlmaWVyLmlzRW1w
dHkoKSkgeworICAgICAgICBtX2ZyYWdtZW50RGlyZWN0aXZlID0gU3RyaW5nKCk7CisgICAgICAg
IG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElkZW50aWZpZXI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9
IGZyYWdtZW50SWRlbnRpZmllci5maW5kKGZyYWdtZW50RGlyZWN0aXZlRGVsaW1pdGVyKTsKKyAg
ICAKKyAgICBpZiAoZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9PSBub3RGb3VuZCkgeworICAgICAg
ICBtX2ZyYWdtZW50RGlyZWN0aXZlID0gU3RyaW5nKCk7CisgICAgICAgIG1fcmVtYWluaW5nVVJM
RnJhZ21lbnQgPSBmcmFnbWVudElkZW50aWZpZXI7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgCisgICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50SWRlbnRpZmllci5zdWJz
dHJpbmcoZnJhZ21lbnREaXJlY3RpdmVTdGFydCArIGZyYWdtZW50RGlyZWN0aXZlRGVsaW1pdGVy
Lmxlbmd0aCgpKTsKKyAgICAKKyAgICAvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBiZSBzZXQgb24g
dGhlIG9yaWdpbmFsIFVSTAorICAgIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElk
ZW50aWZpZXIuc3Vic3RyaW5nKDAsIGZyYWdtZW50RGlyZWN0aXZlU3RhcnQpOworICAgIAorICAg
IGF1dG8gZnJhZ21lbnREaXJlY3RpdmVTdHJpbmcgPSBmcmFnbWVudERpcmVjdGl2ZS50b1N0cmlu
ZygpOworICAgIHBhcnNlRnJhZ21lbnREaXJlY3RpdmUoZnJhZ21lbnREaXJlY3RpdmVTdHJpbmcp
OworICAgIAorICAgIG1fZnJhZ21lbnREaXJlY3RpdmUgPSBmcmFnbWVudERpcmVjdGl2ZVN0cmlu
ZzsKKyAgICBtX2lzVmFsaWQgPSB0cnVlOworfQorCitib29sIEZyYWdtZW50RGlyZWN0aXZlUGFy
c2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKFN0cmluZyBmcmFnbWVudERpcmVjdGl2ZSkKK3sK
KyAgICBMT0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBwYXJzZUZyYWdt
ZW50RGlyZWN0aXZlOiAiKTsKKyAgICAKKyAgICBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4g
cGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgU3RyaW5nIHRleHREaXJlY3RpdmUgPSAidGV4dD0i
X3M7CisKKyAgICBpZiAoIWZyYWdtZW50RGlyZWN0aXZlLnN0YXJ0c1dpdGgodGV4dERpcmVjdGl2
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBmcmFnbWVudERpcmVjdGl2ZS5y
ZW1vdmUoMCwgdGV4dERpcmVjdGl2ZS5sZW5ndGgoKSk7CisgICAgYXV0byBkaXJlY3RpdmVzID0g
ZnJhZ21lbnREaXJlY3RpdmUuc3BsaXQoIiYiKTsKKyAgICAKKyAgICBMT0dfV0lUSF9TVFJFQU0o
VGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBwYXJzZUZyYWdtZW50RGlyZWN0aXZlOiAiKTsKKyAg
ICAKKyAgICBmb3IgKGF1dG8gZGlyZWN0aXZlIDogZGlyZWN0aXZlcykgeworICAgICAgICBhdXRv
IHRva2VucyA9IGRpcmVjdGl2ZS5zcGxpdCgiLCIpOworICAgICAgICAvLyBGSVhNRTogYWRkIGRl
Y29kaW5nIGZvciAlIGVuY29kZWQgc3RyaW5ncy4KKyAgICAgICAgaWYgKHRva2Vucy5zaXplKCkg
PiA0IHx8IHRva2Vucy5zaXplKCkgPCAxKSB7CisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0o
VGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiB3cm9uZyBudW1iZXIgb2YgdG9rZW5zICIpOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChhdXRvIHRva2VuIDog
dG9rZW5zKSB7CisgICAgICAgICAgICBpZiAodG9rZW4uaXNFbXB0eSgpKSB7CisgICAgICAgICAg
ICAgICAgTE9HX1dJVEhfU1RSRUFNKFRleHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgZW1wdHkgdG9r
ZW4gIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgUGFyc2VkVGV4dERpcmVjdGl2ZSBwYXJzZWRUZXh0RGlyZWN0aXZlOworICAg
ICAgICAKKyAgICAgICAgaWYgKHRva2Vuc1swXS5lbmRzV2l0aCgnLScpKSB7CisgICAgICAgICAg
ICB0b2tlbnNbMF0udHJ1bmNhdGUodG9rZW5zWzBdLmxlbmd0aCgpLTIpOworICAgICAgICAgICAg
cGFyc2VkVGV4dERpcmVjdGl2ZS5wcmVmaXggPSB0b2tlbnNbMF07CisgICAgICAgICAgICB0b2tl
bnMucmVtb3ZlKDApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLmxh
c3QoKS5zdGFydHNXaXRoKCctJykpIHsKKyAgICAgICAgICAgIHRva2Vucy5sYXN0KCkucmVtb3Zl
KDApOworICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5zdWZmaXggPSB0b2tlbnMudGFr
ZUxhc3QoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5zaXplKCkg
IT0gMSAmJiB0b2tlbnMuc2l6ZSgpICE9IDIpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NUUkVB
TShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIG5vdCBlbm91Z2ggdG9rZW5zICIpOworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhcnNlZFRleHRE
aXJlY3RpdmUudGV4dFN0YXJ0ID0gdG9rZW5zWzBdOworICAgICAgICAKKyAgICAgICAgaWYgKHRv
a2Vucy5zaXplKCkgPT0gMikKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUudGV4dEVu
ZCA9IHRva2Vuc1sxXTsKKyAgICAgICAgCisgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmVzLmFw
cGVuZChwYXJzZWRUZXh0RGlyZWN0aXZlKTsKKyAgICB9CisgICAgCisgICAgbV9wYXJzZWRUZXh0
RGlyZWN0aXZlcyA9IHBhcnNlZFRleHREaXJlY3RpdmVzOworICAgIAorICAgIHJldHVybiB0cnVl
OworICAgIAorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlZTE0MWVmM2M1ZTVhNDll
M2M5Y2MyNDc2OGVkZmJkNDhkNWEwZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisKK25hbWVz
cGFjZSBXVEYgeworCitjbGFzcyBVUkw7CisKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgUGFyc2VkVGV4dERpcmVjdGl2ZSB7CisgICAgU3RyaW5nIHRleHRTdGFydDsKKyAgICBT
dHJpbmcgdGV4dEVuZDsKKyAgICBTdHJpbmcgcHJlZml4OworICAgIFN0cmluZyBzdWZmaXg7Cit9
OworCitjbGFzcyBGcmFnbWVudERpcmVjdGl2ZVBhcnNlciA6IHB1YmxpYyBSZWZDb3VudGVkPEZy
YWdtZW50RGlyZWN0aXZlUGFyc2VyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQoRnJh
Z21lbnREaXJlY3RpdmVQYXJzZXIpOworcHVibGljOgorICAgIEZyYWdtZW50RGlyZWN0aXZlUGFy
c2VyKGNvbnN0IFVSTCYpOworICAgIAorICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBw
YXJzZWRUZXh0RGlyZWN0aXZlcygpIHsgcmV0dXJuIG1fcGFyc2VkVGV4dERpcmVjdGl2ZXM7IH07
CisgICAgU3RyaW5nIGZyYWdtZW50RGlyZWN0aXZlKCkgeyByZXR1cm4gbV9mcmFnbWVudERpcmVj
dGl2ZTsgfTsKKyAgICBTdHJpbmdWaWV3IHJlbWFpbmluZ1VSTEZyYWdtZW50KCkgeyByZXR1cm4g
bV9yZW1haW5pbmdVUkxGcmFnbWVudDsgfTsKKyAgICBib29sIGlzVmFsaWQoKSB7IHJldHVybiAg
bV9pc1ZhbGlkOyB9OworICAgIAorcHJpdmF0ZToKKyAgICBGcmFnbWVudERpcmVjdGl2ZVBhcnNl
cigpID0gZGVsZXRlOworICAgIGJvb2wgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmcgZnJh
Z21lbnREaXJlY3RpdmUpOworICAgIAorICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBt
X3BhcnNlZFRleHREaXJlY3RpdmVzOworICAgIFN0cmluZ1ZpZXcgbV9yZW1haW5pbmdVUkxGcmFn
bWVudDsKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2ZTsKKyAgICBib29sIG1faXNWYWxp
ZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAppbmRleCAxODc3ZGNmMTE2ZmFiMzY4MWQ2YmNkNjk5OTc0NTAwYTRhMWQ5NmQwLi5iMzFjOWY2
Nzk1MTc1ZWM5NzE2MmFkZGEzMWNmMTc5NGNhMTgwMGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUg
IkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUZsYXR0ZW5pbmcuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtMjIwOCw3
ICsyMjA5LDI0IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0b3JlU2Nyb2xsYmFyKCkKIAogYm9vbCBG
cmFtZVZpZXc6OnNjcm9sbFRvRnJhZ21lbnQoY29uc3QgVVJMJiB1cmwpCiB7CisgICAgQVNTRVJU
KGZyYW1lKCkuZG9jdW1lbnQoKSk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUoKS5kb2N1
bWVudCgpOworICAgIAogICAgIGF1dG8gZnJhZ21lbnRJZGVudGlmaWVyID0gdXJsLmZyYWdtZW50
SWRlbnRpZmllcigpOworICAgIAorICAgIGlmIChkb2N1bWVudC5zZXR0aW5ncygpLnNjcm9sbFRv
VGV4dEZyYWdtZW50RW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmVQ
YXJzZXIgPSBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcih1cmwpOworICAgICAgICAKKyAgICAgICAg
aWYgKGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmlzVmFsaWQoKSkgeworICAgICAgICAgICAgZG9j
dW1lbnQuc2V0RnJhZ21lbnREaXJlY3RpdmUoZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuZnJhZ21l
bnREaXJlY3RpdmUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF1dG8gcGFyc2VkVGV4
dERpcmVjdGl2ZXMgPSBmcmFnbWVudERpcmVjdGl2ZVBhcnNlci5wYXJzZWRUZXh0RGlyZWN0aXZl
cygpOworICAgICAgICAgICAgLy8gVE9ETzogU2Nyb2xsIHRvIHRoZSByYW5nZSBzcGVjaWZpZWQg
YnkgdGhlIGRpcmVjdGl2ZQorICAgICAgICAgICAgCisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgZnJhZ21lbnRJZGVudGlmaWVyID0gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIucmVtYWluaW5n
VVJMRnJhZ21lbnQoKTsKKyAgICB9CisgICAgCiAgICAgaWYgKHNjcm9sbFRvRnJhZ21lbnRJbnRl
cm5hbChmcmFnbWVudElkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDVjZGQ4YjNiOTVmNDFhMzhiMzI2Y2YwOTdhOWRmMzY5
ZGRhODhiZTUuLjNmYmU0MTdiZTk4MWI3NWU3NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTExNSw2ICsxMTUsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgTShTdHlsZVNoZWV0cykgXAogICAgIE0oU1ZHKSBcCiAgICAgTShUZXh0QXV0
b3NpemluZykgXAorICAgIE0oVGV4dEZyYWdtZW50KSBcCiAgICAgTShUZXh0U2hhcGluZykgXAog
ICAgIE0oVGlsaW5nKSBcCiAgICAgTShUaHJlYWRpbmcpIFwK
</data>
<flag name="commit-queue"
          id="464956"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440874</attachid>
            <date>2021-10-11 20:03:59 -0700</date>
            <delta_ts>2021-10-12 13:25:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211011200358.patch</filename>
            <type>text/plain</type>
            <size>16665</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uMmJmZTA1ZWE2YmQyYzhlM2U2NDg1NWYyN2YwNjQyYmQzODY4MzI4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBF
ZGl0b3ImIGVkaXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdG9yOyB9CiAgICAgRnJhbWVTZWxl
Y3Rpb24mIHNlbGVjdGlvbigpIHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9CiAgICAgY29uc3QgRnJh
bWVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Cisg
ICAgICAgIAorICAgIHZvaWQgc2V0RnJhZ21lbnREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBmcmFn
bWVudERpcmVjdGl2ZSkgeyBtX2ZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnREaXJlY3RpdmU7
IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFnbWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFzZXNGb3JEaXNw
bGF5SWZOZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24oSFRNTENhbnZh
c0VsZW1lbnQmKTsKQEAgLTIyMTgsNiArMjIyMSw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlxdWVS
ZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rpb24+IG1fc2Vs
ZWN0aW9uOworICAgICAgICAKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2ZTsKIAogICAg
IExpc3RIYXNoU2V0PFJlZjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwogICAgIFVuaXF1
ZVJlZjxXaGl0ZXNwYWNlQ2FjaGU+IG1fd2hpdGVzcGFjZUNhY2hlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzM3OTdkY2Jk
NTdlODM3MmJhNDEyODBlMjU1NWU2N2IwZmU1NjMzZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKQEAgLTAsMCArMSwxMjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhZ21lbnRE
aXJlY3RpdmVQYXJzZXIuaCIKKworI2ltcG9ydCAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi9V
UkwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXIoY29uc3QgVVJMJiB1cmwpCit7CisgICAgQVNDSUlMaXRlcmFsIGZyYWdtZW50RGlyZWN0aXZl
RGVsaW1pdGVyID0gIjp+OiJfczsKKyAgICBhdXRvIGZyYWdtZW50SWRlbnRpZmllciA9IHVybC5m
cmFnbWVudElkZW50aWZpZXIoKTsKKyAgICAKKyAgICBpZiAoIWZyYWdtZW50SWRlbnRpZmllciB8
fCBmcmFnbWVudElkZW50aWZpZXIuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fZnJhZ21lbnREaXJl
Y3RpdmUgPSBTdHJpbmcoKTsKKyAgICAgICAgbV9yZW1haW5pbmdVUkxGcmFnbWVudCA9IGZyYWdt
ZW50SWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAgICAgCisgICAgYXV0
byBmcmFnbWVudERpcmVjdGl2ZVN0YXJ0ID0gZnJhZ21lbnRJZGVudGlmaWVyLmZpbmQoU3RyaW5n
VmlldyhmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlcikpOworICAgIAorICAgIGlmIChmcmFnbWVu
dERpcmVjdGl2ZVN0YXJ0ID09IG5vdEZvdW5kKSB7CisgICAgICAgIG1fZnJhZ21lbnREaXJlY3Rp
dmUgPSBTdHJpbmcoKTsKKyAgICAgICAgbV9yZW1haW5pbmdVUkxGcmFnbWVudCA9IGZyYWdtZW50
SWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBhdXRvIGZyYWdt
ZW50RGlyZWN0aXZlID0gZnJhZ21lbnRJZGVudGlmaWVyLnN1YnN0cmluZyhmcmFnbWVudERpcmVj
dGl2ZVN0YXJ0ICsgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIubGVuZ3RoKCkpOworICAgIAor
ICAgIC8vIEZJWE1FOiB0aGlzIG5lZWRzIHRvIGJlIHNldCBvbiB0aGUgb3JpZ2luYWwgVVJMCisg
ICAgbV9yZW1haW5pbmdVUkxGcmFnbWVudCA9IGZyYWdtZW50SWRlbnRpZmllci5zdWJzdHJpbmco
MCwgZnJhZ21lbnREaXJlY3RpdmVTdGFydCk7CisgICAgCisgICAgYXV0byBmcmFnbWVudERpcmVj
dGl2ZVN0cmluZyA9IGZyYWdtZW50RGlyZWN0aXZlLnRvU3RyaW5nKCk7CisgICAgcGFyc2VGcmFn
bWVudERpcmVjdGl2ZShmcmFnbWVudERpcmVjdGl2ZVN0cmluZyk7CisgICAgCisgICAgbV9mcmFn
bWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZlU3RyaW5nOworICAgIG1faXNWYWxpZCA9
IHRydWU7Cit9CisKK2Jvb2wgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OnBhcnNlRnJhZ21lbnRE
aXJlY3RpdmUoU3RyaW5nVmlldyBmcmFnbWVudERpcmVjdGl2ZSkKK3sKKyAgICBMT0dfV0lUSF9T
VFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBwYXJzZUZyYWdtZW50RGlyZWN0aXZlOiAi
KTsKKyAgICAKKyAgICBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4gcGFyc2VkVGV4dERpcmVj
dGl2ZXM7CisgICAgU3RyaW5nIHRleHREaXJlY3RpdmUgPSAidGV4dD0iX3M7CisKKyAgICBpZiAo
IWZyYWdtZW50RGlyZWN0aXZlLnN0YXJ0c1dpdGgodGV4dERpcmVjdGl2ZSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICBmcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0
aXZlLnN1YnN0cmluZyh0ZXh0RGlyZWN0aXZlLmxlbmd0aCgpLCBmcmFnbWVudERpcmVjdGl2ZS5s
ZW5ndGgoKSk7CisgICAgYXV0byBkaXJlY3RpdmVzID0gZnJhZ21lbnREaXJlY3RpdmUuc3BsaXQo
JyYnKTsKKyAgICAKKyAgICBMT0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwg
IiBwYXJzZUZyYWdtZW50RGlyZWN0aXZlOiAiKTsKKyAgICAKKyAgICBmb3IgKGF1dG8gZGlyZWN0
aXZlIDogZGlyZWN0aXZlcykgeworICAgICAgICBWZWN0b3I8U3RyaW5nPiB0b2tlbnM7CisgICAg
ICAgIGZvciAoYXV0byB0b2tlbiA6IGRpcmVjdGl2ZS5zcGxpdCgnLCcpKQorICAgICAgICAgICAg
dG9rZW5zLmFwcGVuZCh0b2tlbi50b1N0cmluZygpKTsKKyAgICAgICAgLy8gRklYTUU6IGFkZCBk
ZWNvZGluZyBmb3IgJSBlbmNvZGVkIHN0cmluZ3MuCisgICAgICAgIGlmICh0b2tlbnMuc2l6ZSgp
ID4gNCB8fCB0b2tlbnMuc2l6ZSgpIDwgMSkgeworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFN
KFRleHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgd3JvbmcgbnVtYmVyIG9mIHRva2VucyAiKTsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGZvciAoYXV0byYgdG9rZW4g
OiB0b2tlbnMpIHsKKyAgICAgICAgICAgIGlmICh0b2tlbi5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgICAgICBMT0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBlbXB0eSB0
b2tlbiAiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBQYXJzZWRUZXh0RGlyZWN0aXZlIHBhcnNlZFRleHREaXJlY3RpdmU7Cisg
ICAgICAgIAorICAgICAgICBpZiAodG9rZW5zWzBdLmVuZHNXaXRoKCctJykgJiYgdG9rZW5zWzBd
Lmxlbmd0aCgpID4gMSkgeworICAgICAgICAgICAgdG9rZW5zWzBdLnRydW5jYXRlKHRva2Vuc1sw
XS5sZW5ndGgoKSAtIDIpOworICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5wcmVmaXgg
PSB0b2tlbnNbMF07CisgICAgICAgICAgICB0b2tlbnMucmVtb3ZlKDApOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLmxhc3QoKS5zdGFydHNXaXRoKCctJykgJiYgdG9r
ZW5zLmxhc3QoKS5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgIHRva2Vucy5sYXN0KCkucmVt
b3ZlKDApOworICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5zdWZmaXggPSB0b2tlbnMu
dGFrZUxhc3QoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5zaXpl
KCkgIT0gMSAmJiB0b2tlbnMuc2l6ZSgpICE9IDIpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NU
UkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIG5vdCBlbm91Z2ggdG9rZW5zICIpOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhcnNlZFRl
eHREaXJlY3RpdmUudGV4dFN0YXJ0ID0gdG9rZW5zWzBdOworICAgICAgICAKKyAgICAgICAgaWYg
KHRva2Vucy5zaXplKCkgPT0gMikKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUudGV4
dEVuZCA9IHRva2Vuc1sxXTsKKyAgICAgICAgCisgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmVz
LmFwcGVuZChwYXJzZWRUZXh0RGlyZWN0aXZlKTsKKyAgICB9CisgICAgCisgICAgbV9wYXJzZWRU
ZXh0RGlyZWN0aXZlcyA9IHBhcnNlZFRleHREaXJlY3RpdmVzOworICAgIAorICAgIHJldHVybiB0
cnVlOworICAgIAorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkZmMxNGIzM2FkMTI4
ZTAyMGQ5YmUyZjVlYmJlYzJlZTFlZjYzMDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApAQCAtMCwwICsxLDYwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGFy
c2VkVGV4dERpcmVjdGl2ZSB7CisgICAgU3RyaW5nIHRleHRTdGFydDsKKyAgICBTdHJpbmcgdGV4
dEVuZDsKKyAgICBTdHJpbmcgcHJlZml4OworICAgIFN0cmluZyBzdWZmaXg7Cit9OworCitjbGFz
cyBGcmFnbWVudERpcmVjdGl2ZVBhcnNlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQo
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIpOworcHVibGljOgorICAgIEZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyKGNvbnN0IFVSTCYpOworICAgIAorICAgIGNvbnN0IFZlY3RvcjxQYXJzZWRUZXh0RGly
ZWN0aXZlPiYgcGFyc2VkVGV4dERpcmVjdGl2ZXMoKSB7IHJldHVybiBtX3BhcnNlZFRleHREaXJl
Y3RpdmVzOyB9OworICAgIGNvbnN0IFN0cmluZyYgZnJhZ21lbnREaXJlY3RpdmUoKSBjb25zdCB7
IHJldHVybiBtX2ZyYWdtZW50RGlyZWN0aXZlOyB9OworICAgIFN0cmluZ1ZpZXcgcmVtYWluaW5n
VVJMRnJhZ21lbnQoKSBjb25zdCB7IHJldHVybiBtX3JlbWFpbmluZ1VSTEZyYWdtZW50OyB9Owor
ICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICBtX2lzVmFsaWQ7IH07CisgICAgCitw
cml2YXRlOgorICAgIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKCkgPSBkZWxldGU7CisgICAgYm9v
bCBwYXJzZUZyYWdtZW50RGlyZWN0aXZlKFN0cmluZ1ZpZXcgZnJhZ21lbnREaXJlY3RpdmUpOwor
ICAgIAorICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBtX3BhcnNlZFRleHREaXJlY3Rp
dmVzOworICAgIFN0cmluZ1ZpZXcgbV9yZW1haW5pbmdVUkxGcmFnbWVudDsKKyAgICBTdHJpbmcg
bV9mcmFnbWVudERpcmVjdGl2ZTsKKyAgICBib29sIG1faXNWYWxpZCB7IGZhbHNlIH07Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
MTg3N2RjZjExNmZhYjM2ODFkNmJjZDY5OTk3NDUwMGE0YTFkOTZkMC4uZGY5NjJjOTk1MDA2NGIy
ZWYxNmIwZmIzNGY0MDJhNzlkZGQ1NmY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFnbWVu
dERpcmVjdGl2ZVBhcnNlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVG
bGF0dGVuaW5nLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTIyMDgsNyArMjIwOSwy
NCBAQCB2b2lkIEZyYW1lVmlldzo6cmVzdG9yZVNjcm9sbGJhcigpCiAKIGJvb2wgRnJhbWVWaWV3
OjpzY3JvbGxUb0ZyYWdtZW50KGNvbnN0IFVSTCYgdXJsKQogeworICAgIEFTU0VSVChmcmFtZSgp
LmRvY3VtZW50KCkpOworICAgIGF1dG8mIGRvY3VtZW50ID0gKmZyYW1lKCkuZG9jdW1lbnQoKTsK
KyAgICAKICAgICBhdXRvIGZyYWdtZW50SWRlbnRpZmllciA9IHVybC5mcmFnbWVudElkZW50aWZp
ZXIoKTsKKyAgICAKKyAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS5zY3JvbGxUb1RleHRGcmFn
bWVudEVuYWJsZWQoKSkgeworICAgICAgICBGcmFnbWVudERpcmVjdGl2ZVBhcnNlciBmcmFnbWVu
dERpcmVjdGl2ZVBhcnNlcih1cmwpOworICAgICAgICAKKyAgICAgICAgaWYgKGZyYWdtZW50RGly
ZWN0aXZlUGFyc2VyLmlzVmFsaWQoKSkgeworICAgICAgICAgICAgZG9jdW1lbnQuc2V0RnJhZ21l
bnREaXJlY3RpdmUoZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuZnJhZ21lbnREaXJlY3RpdmUoKSk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF1dG8gcGFyc2VkVGV4dERpcmVjdGl2ZXMgPSBm
cmFnbWVudERpcmVjdGl2ZVBhcnNlci5wYXJzZWRUZXh0RGlyZWN0aXZlcygpOworICAgICAgICAg
ICAgLy8gVE9ETzogU2Nyb2xsIHRvIHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgdGhlIGRpcmVjdGl2
ZQorICAgICAgICAgICAgCisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZnJhZ21lbnRJZGVu
dGlmaWVyID0gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIucmVtYWluaW5nVVJMRnJhZ21lbnQoKTsK
KyAgICB9CisgICAgCiAgICAgaWYgKHNjcm9sbFRvRnJhZ21lbnRJbnRlcm5hbChmcmFnbWVudElk
ZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2lu
Zy5oCmluZGV4IDVjZGQ4YjNiOTVmNDFhMzhiMzI2Y2YwOTdhOWRmMzY5ZGRhODhiZTUuLjNmYmU0
MTdiZTk4MWI3NWU3NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2dnaW5nLmgKQEAgLTExNSw2ICsxMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShT
dHlsZVNoZWV0cykgXAogICAgIE0oU1ZHKSBcCiAgICAgTShUZXh0QXV0b3NpemluZykgXAorICAg
IE0oVGV4dEZyYWdtZW50KSBcCiAgICAgTShUZXh0U2hhcGluZykgXAogICAgIE0oVGlsaW5nKSBc
CiAgICAgTShUaHJlYWRpbmcpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440962</attachid>
            <date>2021-10-12 11:26:34 -0700</date>
            <delta_ts>2021-10-12 13:25:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211012112633.patch</filename>
            <type>text/plain</type>
            <size>16666</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uMmJmZTA1ZWE2YmQyYzhlM2U2NDg1NWYyN2YwNjQyYmQzODY4MzI4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBF
ZGl0b3ImIGVkaXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdG9yOyB9CiAgICAgRnJhbWVTZWxl
Y3Rpb24mIHNlbGVjdGlvbigpIHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9CiAgICAgY29uc3QgRnJh
bWVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Cisg
ICAgICAgIAorICAgIHZvaWQgc2V0RnJhZ21lbnREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBmcmFn
bWVudERpcmVjdGl2ZSkgeyBtX2ZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnREaXJlY3RpdmU7
IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFnbWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFzZXNGb3JEaXNw
bGF5SWZOZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24oSFRNTENhbnZh
c0VsZW1lbnQmKTsKQEAgLTIyMTgsNiArMjIyMSw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlxdWVS
ZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rpb24+IG1fc2Vs
ZWN0aW9uOworICAgICAgICAKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2ZTsKIAogICAg
IExpc3RIYXNoU2V0PFJlZjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwogICAgIFVuaXF1
ZVJlZjxXaGl0ZXNwYWNlQ2FjaGU+IG1fd2hpdGVzcGFjZUNhY2hlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkzMzc3MTlh
ODYyMGRkZWRhZGI5N2FlYTM3NDJiNjI0NWViOTA2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKQEAgLTAsMCArMSwxMjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhZ21lbnRE
aXJlY3RpdmVQYXJzZXIuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYv
VVJMLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgorCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworRnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFy
c2VyKGNvbnN0IFVSTCYgdXJsKQoreworICAgIEFTQ0lJTGl0ZXJhbCBmcmFnbWVudERpcmVjdGl2
ZURlbGltaXRlciA9ICI6fjoiX3M7CisgICAgYXV0byBmcmFnbWVudElkZW50aWZpZXIgPSB1cmwu
ZnJhZ21lbnRJZGVudGlmaWVyKCk7CisgICAgCisgICAgaWYgKCFmcmFnbWVudElkZW50aWZpZXIg
fHwgZnJhZ21lbnRJZGVudGlmaWVyLmlzRW1wdHkoKSkgeworICAgICAgICBtX2ZyYWdtZW50RGly
ZWN0aXZlID0gU3RyaW5nKCk7CisgICAgICAgIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFn
bWVudElkZW50aWZpZXI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgICAgIAorICAgIGF1
dG8gZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9IGZyYWdtZW50SWRlbnRpZmllci5maW5kKFN0cmlu
Z1ZpZXcoZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIpKTsKKyAgICAKKyAgICBpZiAoZnJhZ21l
bnREaXJlY3RpdmVTdGFydCA9PSBub3RGb3VuZCkgeworICAgICAgICBtX2ZyYWdtZW50RGlyZWN0
aXZlID0gU3RyaW5nKCk7CisgICAgICAgIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVu
dElkZW50aWZpZXI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgYXV0byBmcmFn
bWVudERpcmVjdGl2ZSA9IGZyYWdtZW50SWRlbnRpZmllci5zdWJzdHJpbmcoZnJhZ21lbnREaXJl
Y3RpdmVTdGFydCArIGZyYWdtZW50RGlyZWN0aXZlRGVsaW1pdGVyLmxlbmd0aCgpKTsKKyAgICAK
KyAgICAvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBiZSBzZXQgb24gdGhlIG9yaWdpbmFsIFVSTAor
ICAgIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElkZW50aWZpZXIuc3Vic3RyaW5n
KDAsIGZyYWdtZW50RGlyZWN0aXZlU3RhcnQpOworICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJl
Y3RpdmVTdHJpbmcgPSBmcmFnbWVudERpcmVjdGl2ZS50b1N0cmluZygpOworICAgIHBhcnNlRnJh
Z21lbnREaXJlY3RpdmUoZnJhZ21lbnREaXJlY3RpdmVTdHJpbmcpOworICAgIAorICAgIG1fZnJh
Z21lbnREaXJlY3RpdmUgPSBmcmFnbWVudERpcmVjdGl2ZVN0cmluZzsKKyAgICBtX2lzVmFsaWQg
PSB0cnVlOworfQorCitib29sIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50
RGlyZWN0aXZlKFN0cmluZ1ZpZXcgZnJhZ21lbnREaXJlY3RpdmUpCit7CisgICAgTE9HX1dJVEhf
U1RSRUFNKFRleHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgcGFyc2VGcmFnbWVudERpcmVjdGl2ZTog
Iik7CisgICAgCisgICAgVmVjdG9yPFBhcnNlZFRleHREaXJlY3RpdmU+IHBhcnNlZFRleHREaXJl
Y3RpdmVzOworICAgIFN0cmluZyB0ZXh0RGlyZWN0aXZlID0gInRleHQ9Il9zOworCisgICAgaWYg
KCFmcmFnbWVudERpcmVjdGl2ZS5zdGFydHNXaXRoKHRleHREaXJlY3RpdmUpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgCisgICAgZnJhZ21lbnREaXJlY3RpdmUgPSBmcmFnbWVudERpcmVj
dGl2ZS5zdWJzdHJpbmcodGV4dERpcmVjdGl2ZS5sZW5ndGgoKSwgZnJhZ21lbnREaXJlY3RpdmUu
bGVuZ3RoKCkpOworICAgIGF1dG8gZGlyZWN0aXZlcyA9IGZyYWdtZW50RGlyZWN0aXZlLnNwbGl0
KCcmJyk7CisgICAgCisgICAgTE9HX1dJVEhfU1RSRUFNKFRleHRGcmFnbWVudCwgc3RyZWFtIDw8
ICIgcGFyc2VGcmFnbWVudERpcmVjdGl2ZTogIik7CisgICAgCisgICAgZm9yIChhdXRvIGRpcmVj
dGl2ZSA6IGRpcmVjdGl2ZXMpIHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gdG9rZW5zOworICAg
ICAgICBmb3IgKGF1dG8gdG9rZW4gOiBkaXJlY3RpdmUuc3BsaXQoJywnKSkKKyAgICAgICAgICAg
IHRva2Vucy5hcHBlbmQodG9rZW4udG9TdHJpbmcoKSk7CisgICAgICAgIC8vIEZJWE1FOiBhZGQg
ZGVjb2RpbmcgZm9yICUgZW5jb2RlZCBzdHJpbmdzLgorICAgICAgICBpZiAodG9rZW5zLnNpemUo
KSA+IDQgfHwgdG9rZW5zLnNpemUoKSA8IDEpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NUUkVB
TShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIHdyb25nIG51bWJlciBvZiB0b2tlbnMgIik7Cisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGF1dG8mIHRva2Vu
IDogdG9rZW5zKSB7CisgICAgICAgICAgICBpZiAodG9rZW4uaXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFRleHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgZW1wdHkg
dG9rZW4gIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgUGFyc2VkVGV4dERpcmVjdGl2ZSBwYXJzZWRUZXh0RGlyZWN0aXZlOwor
ICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vuc1swXS5lbmRzV2l0aCgnLScpICYmIHRva2Vuc1sw
XS5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgIHRva2Vuc1swXS50cnVuY2F0ZSh0b2tlbnNb
MF0ubGVuZ3RoKCkgLSAyKTsKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUucHJlZml4
ID0gdG9rZW5zWzBdOworICAgICAgICAgICAgdG9rZW5zLnJlbW92ZSgwKTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5sYXN0KCkuc3RhcnRzV2l0aCgnLScpICYmIHRv
a2Vucy5sYXN0KCkubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICB0b2tlbnMubGFzdCgpLnJl
bW92ZSgwKTsKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUuc3VmZml4ID0gdG9rZW5z
LnRha2VMYXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh0b2tlbnMuc2l6
ZSgpICE9IDEgJiYgdG9rZW5zLnNpemUoKSAhPSAyKSB7CisgICAgICAgICAgICBMT0dfV0lUSF9T
VFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBub3QgZW5vdWdoIHRva2VucyAiKTsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwYXJzZWRU
ZXh0RGlyZWN0aXZlLnRleHRTdGFydCA9IHRva2Vuc1swXTsKKyAgICAgICAgCisgICAgICAgIGlm
ICh0b2tlbnMuc2l6ZSgpID09IDIpCisgICAgICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnRl
eHRFbmQgPSB0b2tlbnNbMV07CisgICAgICAgIAorICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZl
cy5hcHBlbmQocGFyc2VkVGV4dERpcmVjdGl2ZSk7CisgICAgfQorICAgIAorICAgIG1fcGFyc2Vk
VGV4dERpcmVjdGl2ZXMgPSBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICAKKyAgICByZXR1cm4g
dHJ1ZTsKKyAgICAKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZGZjMTRiMzNhZDEy
OGUwMjBkOWJlMmY1ZWJiZWMyZWUxZWY2MzA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgKQEAgLTAsMCArMSw2MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBh
cnNlZFRleHREaXJlY3RpdmUgeworICAgIFN0cmluZyB0ZXh0U3RhcnQ7CisgICAgU3RyaW5nIHRl
eHRFbmQ7CisgICAgU3RyaW5nIHByZWZpeDsKKyAgICBTdHJpbmcgc3VmZml4OworfTsKKworY2xh
c3MgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
KEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKTsKK3B1YmxpYzoKKyAgICBGcmFnbWVudERpcmVjdGl2
ZVBhcnNlcihjb25zdCBVUkwmKTsKKyAgICAKKyAgICBjb25zdCBWZWN0b3I8UGFyc2VkVGV4dERp
cmVjdGl2ZT4mIHBhcnNlZFRleHREaXJlY3RpdmVzKCkgeyByZXR1cm4gbV9wYXJzZWRUZXh0RGly
ZWN0aXZlczsgfTsKKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfTsKKyAgICBTdHJpbmdWaWV3IHJlbWFpbmlu
Z1VSTEZyYWdtZW50KCkgY29uc3QgeyByZXR1cm4gbV9yZW1haW5pbmdVUkxGcmFnbWVudDsgfTsK
KyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAgbV9pc1ZhbGlkOyB9OworICAgIAor
cHJpdmF0ZToKKyAgICBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcigpID0gZGVsZXRlOworICAgIGJv
b2wgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmdWaWV3IGZyYWdtZW50RGlyZWN0aXZlKTsK
KyAgICAKKyAgICBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4gbV9wYXJzZWRUZXh0RGlyZWN0
aXZlczsKKyAgICBTdHJpbmdWaWV3IG1fcmVtYWluaW5nVVJMRnJhZ21lbnQ7CisgICAgU3RyaW5n
IG1fZnJhZ21lbnREaXJlY3RpdmU7CisgICAgYm9vbCBtX2lzVmFsaWQgeyBmYWxzZSB9OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4
IDE4NzdkY2YxMTZmYWIzNjgxZDZiY2Q2OTk5NzQ1MDBhNGExZDk2ZDAuLmRmOTYyYzk5NTAwNjRi
MmVmMTZiMGZiMzRmNDAyYTc5ZGRkNTZmNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
QEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
RmxhdHRlbmluZy5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC0yMjA4LDcgKzIyMDks
MjQgQEAgdm9pZCBGcmFtZVZpZXc6OnJlc3RvcmVTY3JvbGxiYXIoKQogCiBib29sIEZyYW1lVmll
dzo6c2Nyb2xsVG9GcmFnbWVudChjb25zdCBVUkwmIHVybCkKIHsKKyAgICBBU1NFUlQoZnJhbWUo
KS5kb2N1bWVudCgpKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9ICpmcmFtZSgpLmRvY3VtZW50KCk7
CisgICAgCiAgICAgYXV0byBmcmFnbWVudElkZW50aWZpZXIgPSB1cmwuZnJhZ21lbnRJZGVudGlm
aWVyKCk7CisgICAgCisgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCkuc2Nyb2xsVG9UZXh0RnJh
Z21lbnRFbmFibGVkKCkpIHsKKyAgICAgICAgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIgZnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIodXJsKTsKKyAgICAgICAgCisgICAgICAgIGlmIChmcmFnbWVudERp
cmVjdGl2ZVBhcnNlci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LnNldEZyYWdt
ZW50RGlyZWN0aXZlKGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmZyYWdtZW50RGlyZWN0aXZlKCkp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIHBhcnNlZFRleHREaXJlY3RpdmVzID0g
ZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIucGFyc2VkVGV4dERpcmVjdGl2ZXMoKTsKKyAgICAgICAg
ICAgIC8vIFRPRE86IFNjcm9sbCB0byB0aGUgcmFuZ2Ugc3BlY2lmaWVkIGJ5IHRoZSBkaXJlY3Rp
dmUKKyAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGZyYWdtZW50SWRl
bnRpZmllciA9IGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLnJlbWFpbmluZ1VSTEZyYWdtZW50KCk7
CisgICAgfQorICAgIAogICAgIGlmIChzY3JvbGxUb0ZyYWdtZW50SW50ZXJuYWwoZnJhZ21lbnRJ
ZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dp
bmcuaAppbmRleCA1Y2RkOGIzYjk1ZjQxYTM4YjMyNmNmMDk3YTlkZjM2OWRkYTg4YmU1Li4zZmJl
NDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9nZ2luZy5oCkBAIC0xMTUsNiArMTE1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0o
U3R5bGVTaGVldHMpIFwKICAgICBNKFNWRykgXAogICAgIE0oVGV4dEF1dG9zaXppbmcpIFwKKyAg
ICBNKFRleHRGcmFnbWVudCkgXAogICAgIE0oVGV4dFNoYXBpbmcpIFwKICAgICBNKFRpbGluZykg
XAogICAgIE0oVGhyZWFkaW5nKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440975</attachid>
            <date>2021-10-12 13:25:52 -0700</date>
            <delta_ts>2021-10-12 14:57:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211012132551.patch</filename>
            <type>text/plain</type>
            <size>16476</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uZjE2YTk2YmEwNWVjZWViZmM0MDlmZGVjNzg0NTY4NWVjYzdlN2ViNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBF
ZGl0b3ImIGVkaXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdG9yOyB9CiAgICAgRnJhbWVTZWxl
Y3Rpb24mIHNlbGVjdGlvbigpIHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9CiAgICAgY29uc3QgRnJh
bWVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Cisg
ICAgICAgIAorICAgIHZvaWQgc2V0RnJhZ21lbnREaXJlY3RpdmUoU3RyaW5nVmlldyBmcmFnbWVu
dERpcmVjdGl2ZSkgeyBtX2ZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnREaXJlY3RpdmU7IH0K
KyAgICBTdHJpbmdWaWV3IGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9mcmFn
bWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFzZXNGb3JEaXNwbGF5SWZO
ZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24oSFRNTENhbnZhc0VsZW1l
bnQmKTsKQEAgLTIyMTgsNiArMjIyMSw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlxdWVSZWY8RWRp
dG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rpb24+IG1fc2VsZWN0aW9u
OworICAgICAgICAKKyAgICBTdHJpbmdWaWV3IG1fZnJhZ21lbnREaXJlY3RpdmU7CiAKICAgICBM
aXN0SGFzaFNldDxSZWY8RWxlbWVudD4+IG1fdG9wTGF5ZXJFbGVtZW50czsKICAgICBVbmlxdWVS
ZWY8V2hpdGVzcGFjZUNhY2hlPiBtX3doaXRlc3BhY2VDYWNoZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExNzdhZTVhNGZj
N2IyYzY4MDZkYzY0OGVmMDc0NjQyNmMyYzkwN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCkBAIC0wLDAgKzEsMTI2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYWdtZW50RGly
ZWN0aXZlUGFyc2VyLmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL1VS
TC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNl
cihjb25zdCBVUkwmIHVybCkKK3sKKyAgICBBU0NJSUxpdGVyYWwgZnJhZ21lbnREaXJlY3RpdmVE
ZWxpbWl0ZXIgPSAiOn46Il9zOworICAgIGF1dG8gZnJhZ21lbnRJZGVudGlmaWVyID0gdXJsLmZy
YWdtZW50SWRlbnRpZmllcigpOworICAgIAorICAgIGlmIChmcmFnbWVudElkZW50aWZpZXIuaXNF
bXB0eSgpKSB7CisgICAgICAgIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElkZW50
aWZpZXI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgICAgIAorICAgIGF1dG8gZnJhZ21l
bnREaXJlY3RpdmVTdGFydCA9IGZyYWdtZW50SWRlbnRpZmllci5maW5kKFN0cmluZ1ZpZXcoZnJh
Z21lbnREaXJlY3RpdmVEZWxpbWl0ZXIpKTsKKyAgICAKKyAgICBpZiAoZnJhZ21lbnREaXJlY3Rp
dmVTdGFydCA9PSBub3RGb3VuZCkgeworICAgICAgICBtX3JlbWFpbmluZ1VSTEZyYWdtZW50ID0g
ZnJhZ21lbnRJZGVudGlmaWVyOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGF1
dG8gZnJhZ21lbnREaXJlY3RpdmUgPSBmcmFnbWVudElkZW50aWZpZXIuc3Vic3RyaW5nKGZyYWdt
ZW50RGlyZWN0aXZlU3RhcnQgKyBmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlci5sZW5ndGgoKSk7
CisgICAgCisgICAgLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gYmUgc2V0IG9uIHRoZSBvcmlnaW5h
bCBVUkwKKyAgICBtX3JlbWFpbmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVyLmxl
ZnQoZnJhZ21lbnREaXJlY3RpdmVTdGFydCk7CisgICAgCisgICAgcGFyc2VGcmFnbWVudERpcmVj
dGl2ZShmcmFnbWVudERpcmVjdGl2ZSk7CisgICAgCisgICAgbV9mcmFnbWVudERpcmVjdGl2ZSA9
IGZyYWdtZW50RGlyZWN0aXZlLnRvU3RyaW5nKCk7CisgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKK30K
KworYm9vbCBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVjdGl2ZShT
dHJpbmdWaWV3IGZyYWdtZW50RGlyZWN0aXZlKQoreworICAgIExPR19XSVRIX1NUUkVBTShUZXh0
RnJhZ21lbnQsIHN0cmVhbSA8PCAiIHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAor
ICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAg
ICBTdHJpbmcgdGV4dERpcmVjdGl2ZSA9ICJ0ZXh0PSJfczsKKworICAgIGlmICghZnJhZ21lbnRE
aXJlY3RpdmUuc3RhcnRzV2l0aCh0ZXh0RGlyZWN0aXZlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIAorICAgIGZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnREaXJlY3RpdmUuc3Vic3Ry
aW5nKHRleHREaXJlY3RpdmUubGVuZ3RoKCksIGZyYWdtZW50RGlyZWN0aXZlLmxlbmd0aCgpKTsK
KyAgICBhdXRvIGRpcmVjdGl2ZXMgPSBmcmFnbWVudERpcmVjdGl2ZS5zcGxpdCgnJicpOworICAg
IAorICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIHBhcnNlRnJh
Z21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIGZvciAoYXV0byBkaXJlY3RpdmUgOiBkaXJl
Y3RpdmVzKSB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHRva2VuczsKKyAgICAgICAgZm9yIChh
dXRvIHRva2VuIDogZGlyZWN0aXZlLnNwbGl0KCcsJykpCisgICAgICAgICAgICB0b2tlbnMuYXBw
ZW5kKHRva2VuLnRvU3RyaW5nKCkpOworICAgICAgICAvLyBGSVhNRTogYWRkIGRlY29kaW5nIGZv
ciAlIGVuY29kZWQgc3RyaW5ncy4KKyAgICAgICAgaWYgKHRva2Vucy5zaXplKCkgPiA0IHx8IHRv
a2Vucy5zaXplKCkgPCAxKSB7CisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdt
ZW50LCBzdHJlYW0gPDwgIiB3cm9uZyBudW1iZXIgb2YgdG9rZW5zICIpOworICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChhdXRvJiB0b2tlbiA6IHRva2Vucykg
eworICAgICAgICAgICAgaWYgKHRva2VuLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIExP
R19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIGVtcHR5IHRva2VuICIpOwor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIFBhcnNlZFRleHREaXJlY3RpdmUgcGFyc2VkVGV4dERpcmVjdGl2ZTsKKyAgICAgICAgCisg
ICAgICAgIGlmICh0b2tlbnNbMF0uZW5kc1dpdGgoJy0nKSAmJiB0b2tlbnNbMF0ubGVuZ3RoKCkg
PiAxKSB7CisgICAgICAgICAgICB0b2tlbnNbMF0udHJ1bmNhdGUodG9rZW5zWzBdLmxlbmd0aCgp
IC0gMik7CisgICAgICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnByZWZpeCA9IHRva2Vuc1sw
XTsKKyAgICAgICAgICAgIHRva2Vucy5yZW1vdmUoMCk7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIGlmICh0b2tlbnMubGFzdCgpLnN0YXJ0c1dpdGgoJy0nKSAmJiB0b2tlbnMubGFzdCgp
Lmxlbmd0aCgpID4gMSkgeworICAgICAgICAgICAgdG9rZW5zLmxhc3QoKS5yZW1vdmUoMCk7Cisg
ICAgICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnN1ZmZpeCA9IHRva2Vucy50YWtlTGFzdCgp
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLnNpemUoKSAhPSAxICYm
IHRva2Vucy5zaXplKCkgIT0gMikgeworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFRleHRG
cmFnbWVudCwgc3RyZWFtIDw8ICIgbm90IGVub3VnaCB0b2tlbnMgIik7CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2
ZS50ZXh0U3RhcnQgPSB0b2tlbnNbMF07CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLnNp
emUoKSA9PSAyKQorICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS50ZXh0RW5kID0gdG9r
ZW5zWzFdOworICAgICAgICAKKyAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZXMuYXBwZW5kKHBh
cnNlZFRleHREaXJlY3RpdmUpOworICAgIH0KKyAgICAKKyAgICBtX3BhcnNlZFRleHREaXJlY3Rp
dmVzID0gcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgCisgICAgcmV0dXJuIHRydWU7CisgICAg
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdt
ZW50RGlyZWN0aXZlUGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY5ZGY4NWU4ODQ2ODI0NWYxN2E2Njg1
Y2M4NzgyMzQxYWRkNGMyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9G
cmFnbWVudERpcmVjdGl2ZVBhcnNlci5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQYXJzZWRUZXh0RGly
ZWN0aXZlIHsKKyAgICBTdHJpbmcgdGV4dFN0YXJ0OworICAgIFN0cmluZyB0ZXh0RW5kOworICAg
IFN0cmluZyBwcmVmaXg7CisgICAgU3RyaW5nIHN1ZmZpeDsKK307CisKK2NsYXNzIEZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRChGcmFnbWVudERp
cmVjdGl2ZVBhcnNlcik7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRnJhZ21lbnREaXJlY3RpdmVQ
YXJzZXIoY29uc3QgVVJMJik7CisgICAgCisgICAgY29uc3QgVmVjdG9yPFBhcnNlZFRleHREaXJl
Y3RpdmU+JiBwYXJzZWRUZXh0RGlyZWN0aXZlcygpIHsgcmV0dXJuIG1fcGFyc2VkVGV4dERpcmVj
dGl2ZXM7IH07CisgICAgU3RyaW5nVmlldyBmcmFnbWVudERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZnJhZ21lbnREaXJlY3RpdmU7IH07CisgICAgU3RyaW5nVmlldyByZW1haW5pbmdVUkxG
cmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQ7IH07CisgICAg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gIG1faXNWYWxpZDsgfTsKKyAgICAKK3ByaXZh
dGU6CisgICAgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIoKSA9IGRlbGV0ZTsKKyAgICBib29sIHBh
cnNlRnJhZ21lbnREaXJlY3RpdmUoU3RyaW5nVmlldyk7CisgICAgCisgICAgVmVjdG9yPFBhcnNl
ZFRleHREaXJlY3RpdmU+IG1fcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgU3RyaW5nVmlldyBt
X3JlbWFpbmluZ1VSTEZyYWdtZW50OworICAgIFN0cmluZ1ZpZXcgbV9mcmFnbWVudERpcmVjdGl2
ZTsKKyAgICBib29sIG1faXNWYWxpZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMTg3N2RjZjExNmZhYjM2ODFk
NmJjZDY5OTk3NDUwMGE0YTFkOTZkMC4uZGY5NjJjOTk1MDA2NGIyZWYxNmIwZmIzNGY0MDJhNzlk
ZGQ1NmY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNDYsNiArNDYsNyBAQAog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRl
ICJGb2N1c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVGbGF0dGVuaW5nLmgiCiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTIyMDgsNyArMjIwOSwyNCBAQCB2b2lkIEZyYW1lVmll
dzo6cmVzdG9yZVNjcm9sbGJhcigpCiAKIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxUb0ZyYWdtZW50
KGNvbnN0IFVSTCYgdXJsKQogeworICAgIEFTU0VSVChmcmFtZSgpLmRvY3VtZW50KCkpOworICAg
IGF1dG8mIGRvY3VtZW50ID0gKmZyYW1lKCkuZG9jdW1lbnQoKTsKKyAgICAKICAgICBhdXRvIGZy
YWdtZW50SWRlbnRpZmllciA9IHVybC5mcmFnbWVudElkZW50aWZpZXIoKTsKKyAgICAKKyAgICBp
ZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS5zY3JvbGxUb1RleHRGcmFnbWVudEVuYWJsZWQoKSkgewor
ICAgICAgICBGcmFnbWVudERpcmVjdGl2ZVBhcnNlciBmcmFnbWVudERpcmVjdGl2ZVBhcnNlcih1
cmwpOworICAgICAgICAKKyAgICAgICAgaWYgKGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmlzVmFs
aWQoKSkgeworICAgICAgICAgICAgZG9jdW1lbnQuc2V0RnJhZ21lbnREaXJlY3RpdmUoZnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuZnJhZ21lbnREaXJlY3RpdmUoKSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGF1dG8gcGFyc2VkVGV4dERpcmVjdGl2ZXMgPSBmcmFnbWVudERpcmVjdGl2ZVBh
cnNlci5wYXJzZWRUZXh0RGlyZWN0aXZlcygpOworICAgICAgICAgICAgLy8gVE9ETzogU2Nyb2xs
IHRvIHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgdGhlIGRpcmVjdGl2ZQorICAgICAgICAgICAgCisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZnJhZ21lbnRJZGVudGlmaWVyID0gZnJhZ21lbnRE
aXJlY3RpdmVQYXJzZXIucmVtYWluaW5nVVJMRnJhZ21lbnQoKTsKKyAgICB9CisgICAgCiAgICAg
aWYgKHNjcm9sbFRvRnJhZ21lbnRJbnRlcm5hbChmcmFnbWVudElkZW50aWZpZXIpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9n
Z2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDVjZGQ4YjNi
OTVmNDFhMzhiMzI2Y2YwOTdhOWRmMzY5ZGRhODhiZTUuLjNmYmU0MTdiZTk4MWI3NWU3NzlkZTIz
OGZjNGJlMDVhNmQ3MzBmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTExNSw2
ICsxMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShTdHlsZVNoZWV0cykgXAogICAg
IE0oU1ZHKSBcCiAgICAgTShUZXh0QXV0b3NpemluZykgXAorICAgIE0oVGV4dEZyYWdtZW50KSBc
CiAgICAgTShUZXh0U2hhcGluZykgXAogICAgIE0oVGlsaW5nKSBcCiAgICAgTShUaHJlYWRpbmcp
IFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440989</attachid>
            <date>2021-10-12 14:57:16 -0700</date>
            <delta_ts>2021-10-13 18:11:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211012145715.patch</filename>
            <type>text/plain</type>
            <size>16476</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmNhN2ZlZmU3NDcyMDFiM2EzNzQwNWNhYWQx
Mzk0YmNjMzY2Mjg4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBUZXh0IGRpcmVj
dGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjp1cmxGcmFnbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCk6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb0ZyYWdtZW50KToKKwogMjAyMS0xMC0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBjb250YWluZXJGb3JFbGVtZW50IGxvZ2ljIG1vcmUgZXhwbGlj
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNTI1ZTYwMzUyZjU4ZWU0YTU2ZWI0
ODgwY2QwNTQ2ZDljMDNkNmZhZC4uNDRiNDQ0ZDY5Y2ZmN2QwNDY1YjU4N2VhZjE0YjI2YmUxOTYx
YTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTMsNiArMTExMywxOCBA
QCBTY3JlZW5DYXB0dXJlRW5hYmxlZDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgICAKK1Njcm9sbFRvVGV4dEZyYWdtZW50RW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNjcm9sbCBUbyBUZXh0
IEZyYWdtZW50IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU2Nyb2xsIFRv
IFRleHQgRnJhZ21lbnQiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZk
NzBjMTAzM2U5M2YxMC4uMTdkOTFjZmViYzA4Y2RhYWM4ZjE5MmZjNGRhMzg1ZjgzMTI4MThhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTkxNCw2ICs5MTQsNyBAQCBkb20vRXhjZXB0aW9uRGF0YS5jcHAK
IGRvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKIGRvbS9Gb2N1c0V2ZW50LmNwcAogZG9tL0Zv
cm1EYXRhRXZlbnQuY3BwCitkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCiBkb20vRnVs
bHNjcmVlbk1hbmFnZXIuY3BwCiBkb20vR0NSZWFjaGFibGVSZWYuY3BwCiBkb20vSGFzaENoYW5n
ZUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEu
LmQ4MTQyY2VmOTdiNWRlOWE2MDBhYzEzOTY2Y2U1YjYyOWEzNGQ5YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MDIsNiAr
ODQwMiw4IEBACiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUyMTBERDI1RDYxRUZGMDAzQTJFRDgg
LyogQXBwSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEhp
Z2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDU2MTJBQTI3MEY2RjM3
MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NDU2MTJBQjI3MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTQyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU3NzVFOTIwNDczMDNC
MDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjQ2MjRBMjlEOUIwMDYxRjM5
MCAvKiBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMwNTM3LDYgKzMwNTM5LDggQEAKIAkJCQkyQTY2NDM5MTI2QTAw
NkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEwMDZB
RjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFFMDBD
MTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4
Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3MEY2
RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywK
IAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4
NTA4OTAwNi4uZjE2YTk2YmEwNWVjZWViZmM0MDlmZGVjNzg0NTY4NWVjYzdlN2ViNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE2MjYsNiArMTYyNiw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBF
ZGl0b3ImIGVkaXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdG9yOyB9CiAgICAgRnJhbWVTZWxl
Y3Rpb24mIHNlbGVjdGlvbigpIHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9CiAgICAgY29uc3QgRnJh
bWVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Cisg
ICAgICAgIAorICAgIHZvaWQgc2V0RnJhZ21lbnREaXJlY3RpdmUoU3RyaW5nVmlldyBmcmFnbWVu
dERpcmVjdGl2ZSkgeyBtX2ZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnREaXJlY3RpdmU7IH0K
KyAgICBTdHJpbmdWaWV3IGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9mcmFn
bWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFzZXNGb3JEaXNwbGF5SWZO
ZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24oSFRNTENhbnZhc0VsZW1l
bnQmKTsKQEAgLTIyMTgsNiArMjIyMSw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlxdWVSZWY8RWRp
dG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rpb24+IG1fc2VsZWN0aW9u
OworICAgICAgICAKKyAgICBTdHJpbmdWaWV3IG1fZnJhZ21lbnREaXJlY3RpdmU7CiAKICAgICBM
aXN0SGFzaFNldDxSZWY8RWxlbWVudD4+IG1fdG9wTGF5ZXJFbGVtZW50czsKICAgICBVbmlxdWVS
ZWY8V2hpdGVzcGFjZUNhY2hlPiBtX3doaXRlc3BhY2VDYWNoZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExNzdhZTVhNGZj
N2IyYzY4MDZkYzY0OGVmMDc0NjQyNmMyYzkwN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCkBAIC0wLDAgKzEsMTI2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYWdtZW50RGly
ZWN0aXZlUGFyc2VyLmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL1VS
TC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNl
cihjb25zdCBVUkwmIHVybCkKK3sKKyAgICBBU0NJSUxpdGVyYWwgZnJhZ21lbnREaXJlY3RpdmVE
ZWxpbWl0ZXIgPSAiOn46Il9zOworICAgIGF1dG8gZnJhZ21lbnRJZGVudGlmaWVyID0gdXJsLmZy
YWdtZW50SWRlbnRpZmllcigpOworICAgIAorICAgIGlmIChmcmFnbWVudElkZW50aWZpZXIuaXNF
bXB0eSgpKSB7CisgICAgICAgIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElkZW50
aWZpZXI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgICAgIAorICAgIGF1dG8gZnJhZ21l
bnREaXJlY3RpdmVTdGFydCA9IGZyYWdtZW50SWRlbnRpZmllci5maW5kKFN0cmluZ1ZpZXcoZnJh
Z21lbnREaXJlY3RpdmVEZWxpbWl0ZXIpKTsKKyAgICAKKyAgICBpZiAoZnJhZ21lbnREaXJlY3Rp
dmVTdGFydCA9PSBub3RGb3VuZCkgeworICAgICAgICBtX3JlbWFpbmluZ1VSTEZyYWdtZW50ID0g
ZnJhZ21lbnRJZGVudGlmaWVyOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGF1
dG8gZnJhZ21lbnREaXJlY3RpdmUgPSBmcmFnbWVudElkZW50aWZpZXIuc3Vic3RyaW5nKGZyYWdt
ZW50RGlyZWN0aXZlU3RhcnQgKyBmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlci5sZW5ndGgoKSk7
CisgICAgCisgICAgLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gYmUgc2V0IG9uIHRoZSBvcmlnaW5h
bCBVUkwKKyAgICBtX3JlbWFpbmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVyLmxl
ZnQoZnJhZ21lbnREaXJlY3RpdmVTdGFydCk7CisgICAgCisgICAgcGFyc2VGcmFnbWVudERpcmVj
dGl2ZShmcmFnbWVudERpcmVjdGl2ZSk7CisgICAgCisgICAgbV9mcmFnbWVudERpcmVjdGl2ZSA9
IGZyYWdtZW50RGlyZWN0aXZlLnRvU3RyaW5nKCk7CisgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKK30K
KworYm9vbCBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVjdGl2ZShT
dHJpbmdWaWV3IGZyYWdtZW50RGlyZWN0aXZlKQoreworICAgIExPR19XSVRIX1NUUkVBTShUZXh0
RnJhZ21lbnQsIHN0cmVhbSA8PCAiIHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAor
ICAgIFZlY3RvcjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAg
ICBTdHJpbmcgdGV4dERpcmVjdGl2ZSA9ICJ0ZXh0PSJfczsKKworICAgIGlmICghZnJhZ21lbnRE
aXJlY3RpdmUuc3RhcnRzV2l0aCh0ZXh0RGlyZWN0aXZlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIAorICAgIGZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnREaXJlY3RpdmUuc3Vic3Ry
aW5nKHRleHREaXJlY3RpdmUubGVuZ3RoKCksIGZyYWdtZW50RGlyZWN0aXZlLmxlbmd0aCgpKTsK
KyAgICBhdXRvIGRpcmVjdGl2ZXMgPSBmcmFnbWVudERpcmVjdGl2ZS5zcGxpdCgnJicpOworICAg
IAorICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIHBhcnNlRnJh
Z21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIGZvciAoYXV0byBkaXJlY3RpdmUgOiBkaXJl
Y3RpdmVzKSB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHRva2VuczsKKyAgICAgICAgZm9yIChh
dXRvIHRva2VuIDogZGlyZWN0aXZlLnNwbGl0KCcsJykpCisgICAgICAgICAgICB0b2tlbnMuYXBw
ZW5kKHRva2VuLnRvU3RyaW5nKCkpOworICAgICAgICAvLyBGSVhNRTogYWRkIGRlY29kaW5nIGZv
ciAlIGVuY29kZWQgc3RyaW5ncy4KKyAgICAgICAgaWYgKHRva2Vucy5zaXplKCkgPiA0IHx8IHRv
a2Vucy5zaXplKCkgPCAxKSB7CisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdt
ZW50LCBzdHJlYW0gPDwgIiB3cm9uZyBudW1iZXIgb2YgdG9rZW5zICIpOworICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChhdXRvJiB0b2tlbiA6IHRva2Vucykg
eworICAgICAgICAgICAgaWYgKHRva2VuLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIExP
R19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIGVtcHR5IHRva2VuICIpOwor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIFBhcnNlZFRleHREaXJlY3RpdmUgcGFyc2VkVGV4dERpcmVjdGl2ZTsKKyAgICAgICAgCisg
ICAgICAgIGlmICh0b2tlbnNbMF0uZW5kc1dpdGgoJy0nKSAmJiB0b2tlbnNbMF0ubGVuZ3RoKCkg
PiAxKSB7CisgICAgICAgICAgICB0b2tlbnNbMF0udHJ1bmNhdGUodG9rZW5zWzBdLmxlbmd0aCgp
IC0gMik7CisgICAgICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnByZWZpeCA9IHRva2Vuc1sw
XTsKKyAgICAgICAgICAgIHRva2Vucy5yZW1vdmUoMCk7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIGlmICh0b2tlbnMubGFzdCgpLnN0YXJ0c1dpdGgoJy0nKSAmJiB0b2tlbnMubGFzdCgp
Lmxlbmd0aCgpID4gMSkgeworICAgICAgICAgICAgdG9rZW5zLmxhc3QoKS5yZW1vdmUoMCk7Cisg
ICAgICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnN1ZmZpeCA9IHRva2Vucy50YWtlTGFzdCgp
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLnNpemUoKSAhPSAxICYm
IHRva2Vucy5zaXplKCkgIT0gMikgeworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFRleHRG
cmFnbWVudCwgc3RyZWFtIDw8ICIgbm90IGVub3VnaCB0b2tlbnMgIik7CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2
ZS50ZXh0U3RhcnQgPSB0b2tlbnNbMF07CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLnNp
emUoKSA9PSAyKQorICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS50ZXh0RW5kID0gdG9r
ZW5zWzFdOworICAgICAgICAKKyAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZXMuYXBwZW5kKHBh
cnNlZFRleHREaXJlY3RpdmUpOworICAgIH0KKyAgICAKKyAgICBtX3BhcnNlZFRleHREaXJlY3Rp
dmVzID0gcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgCisgICAgcmV0dXJuIHRydWU7CisgICAg
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdt
ZW50RGlyZWN0aXZlUGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY5ZGY4NWU4ODQ2ODI0NWYxN2E2Njg1
Y2M4NzgyMzQxYWRkNGMyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9G
cmFnbWVudERpcmVjdGl2ZVBhcnNlci5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQYXJzZWRUZXh0RGly
ZWN0aXZlIHsKKyAgICBTdHJpbmcgdGV4dFN0YXJ0OworICAgIFN0cmluZyB0ZXh0RW5kOworICAg
IFN0cmluZyBwcmVmaXg7CisgICAgU3RyaW5nIHN1ZmZpeDsKK307CisKK2NsYXNzIEZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRChGcmFnbWVudERp
cmVjdGl2ZVBhcnNlcik7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRnJhZ21lbnREaXJlY3RpdmVQ
YXJzZXIoY29uc3QgVVJMJik7CisgICAgCisgICAgY29uc3QgVmVjdG9yPFBhcnNlZFRleHREaXJl
Y3RpdmU+JiBwYXJzZWRUZXh0RGlyZWN0aXZlcygpIHsgcmV0dXJuIG1fcGFyc2VkVGV4dERpcmVj
dGl2ZXM7IH07CisgICAgU3RyaW5nVmlldyBmcmFnbWVudERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZnJhZ21lbnREaXJlY3RpdmU7IH07CisgICAgU3RyaW5nVmlldyByZW1haW5pbmdVUkxG
cmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQ7IH07CisgICAg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gIG1faXNWYWxpZDsgfTsKKyAgICAKK3ByaXZh
dGU6CisgICAgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIoKSA9IGRlbGV0ZTsKKyAgICBib29sIHBh
cnNlRnJhZ21lbnREaXJlY3RpdmUoU3RyaW5nVmlldyk7CisgICAgCisgICAgVmVjdG9yPFBhcnNl
ZFRleHREaXJlY3RpdmU+IG1fcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgU3RyaW5nVmlldyBt
X3JlbWFpbmluZ1VSTEZyYWdtZW50OworICAgIFN0cmluZ1ZpZXcgbV9mcmFnbWVudERpcmVjdGl2
ZTsKKyAgICBib29sIG1faXNWYWxpZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMTg3N2RjZjExNmZhYjM2ODFk
NmJjZDY5OTk3NDUwMGE0YTFkOTZkMC4uZTQxZDI2ZGEzMTY3NWFjNWMyNDdjYjkxNDFkZmI1ZWQ2
MDMwOTBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNDYsNiArNDYsNyBAQAog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRl
ICJGb2N1c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVGbGF0dGVuaW5nLmgiCiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTIyMDgsNyArMjIwOSwyNCBAQCB2b2lkIEZyYW1lVmll
dzo6cmVzdG9yZVNjcm9sbGJhcigpCiAKIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxUb0ZyYWdtZW50
KGNvbnN0IFVSTCYgdXJsKQogeworICAgIEFTU0VSVChmcmFtZSgpLmRvY3VtZW50KCkpOworICAg
IFJlZiBkb2N1bWVudCA9ICpmcmFtZSgpLmRvY3VtZW50KCk7CisgICAgCiAgICAgYXV0byBmcmFn
bWVudElkZW50aWZpZXIgPSB1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCk7CisgICAgCisgICAgaWYg
KGRvY3VtZW50LT5zZXR0aW5ncygpLnNjcm9sbFRvVGV4dEZyYWdtZW50RW5hYmxlZCgpKSB7Cisg
ICAgICAgIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyIGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKHVy
bCk7CisgICAgICAgIAorICAgICAgICBpZiAoZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaXNWYWxp
ZCgpKSB7CisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RnJhZ21lbnREaXJlY3RpdmUoZnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuZnJhZ21lbnREaXJlY3RpdmUoKSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGF1dG8gcGFyc2VkVGV4dERpcmVjdGl2ZXMgPSBmcmFnbWVudERpcmVjdGl2ZVBh
cnNlci5wYXJzZWRUZXh0RGlyZWN0aXZlcygpOworICAgICAgICAgICAgLy8gVE9ETzogU2Nyb2xs
IHRvIHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgdGhlIGRpcmVjdGl2ZQorICAgICAgICAgICAgCisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZnJhZ21lbnRJZGVudGlmaWVyID0gZnJhZ21lbnRE
aXJlY3RpdmVQYXJzZXIucmVtYWluaW5nVVJMRnJhZ21lbnQoKTsKKyAgICB9CisgICAgCiAgICAg
aWYgKHNjcm9sbFRvRnJhZ21lbnRJbnRlcm5hbChmcmFnbWVudElkZW50aWZpZXIpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9n
Z2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDVjZGQ4YjNi
OTVmNDFhMzhiMzI2Y2YwOTdhOWRmMzY5ZGRhODhiZTUuLjNmYmU0MTdiZTk4MWI3NWU3NzlkZTIz
OGZjNGJlMDVhNmQ3MzBmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTExNSw2
ICsxMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShTdHlsZVNoZWV0cykgXAogICAg
IE0oU1ZHKSBcCiAgICAgTShUZXh0QXV0b3NpemluZykgXAorICAgIE0oVGV4dEZyYWdtZW50KSBc
CiAgICAgTShUZXh0U2hhcGluZykgXAogICAgIE0oVGlsaW5nKSBcCiAgICAgTShUaHJlYWRpbmcp
IFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441016</attachid>
            <date>2021-10-12 16:36:59 -0700</date>
            <delta_ts>2021-10-13 18:11:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211012163658.patch</filename>
            <type>text/plain</type>
            <size>16709</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlY2M1YzgxODA2YTQ2YzlkNmI3NjI0
MGExYmY0NTIyODZhYzQ2NzAuLjIyMjIyZDNmMTg1MjY3NGY4Y2IzMDE1YzEzYzU4NjhlNTVmZmNj
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGFuIGFsdGVybmF0ZSBzdHlsZSBmb3IgZm9ybSBjb250cm9scywgYW5kIGltcGxlbWVudCBpdCBm
b3IgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2ZmVmNmE5OWY2
YWMyYTg5NTdiMDQxMzMyNTU4OTkzNGE2YzU2ODQuLmY1ZGNjZmE1NWM1NWUyY2I3MjkxZTI0NDNl
MjMwYWFlNzVjNzk3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAyMS0xMC0wNyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXh0IGRpcmVjdGl2ZSBwYXJzaW5nIGZvciAK
KyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwtdG8tdGV4dC1mcmFnbWVudC8K
KworICAgICAgICBNYWtlIGEgbmV3IGNsYXNzIHRvIGhhbmRsZSB0aGUgcGFyc2luZyBvZiB0aGUg
dGV4dCBkaXJlY3RpdmUuCisgICAgICAgIFRoZSBwYXJzaW5nIGlzIGRlZmluZWQgaW4gdGhlIGxp
bmtlZCBzcGVjLiAKKyAgICAgICAgVGhlIGRpcmVjdGl2ZSBzaG91bGQgYmUgc3RvcmVkIG9uIERv
Y3VtZW50IGFuZCBpbiBhIGZ1dHVyZQorICAgICAgICBwYXRjaCB0aGUgbWF0Y2hpbmcgYWxnb3Jp
dGhtIHdpbGwgZmluZCB0aGUgdGV4dCBhbmQgc2Nyb2xsCisgICAgICAgIGFuZCBoaWdobGlnaHQg
aXQuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c2V0RnJhZ21lbnREaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OmZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpmcmFnbWVudERpcmVjdGl2ZSBjb25zdCk6CisgICAgICAgICogZG9tL0ZyYWdtZW50RGly
ZWN0aXZlUGFyc2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVj
dGl2ZVBhcnNlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgICog
ZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OnBhcnNlZFRleHREaXJlY3RpdmVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpmcmFnbWVudERpcmVjdGl2ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6dXJsRnJhZ21lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmlzVmFsaWQpOgorICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2Nyb2xsVG9GcmFnbWVudCk6CisKIDIwMjEtMTAtMDYgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1ha2UgY29udGFpbmVyRm9yRWxlbWVudCBsb2dpYyBtb3JlIGV4
cGxpY2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IDUyNWU2MDM1MmY1OGVlNGE1
NmViNDg4MGNkMDU0NmQ5YzAzZDZmYWQuLjQ0YjQ0NGQ2OWNmZjdkMDQ2NWI1ODdlYWYxNGIyNmJl
MTk2MWEyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC0xMTEzLDYgKzExMTMs
MTggQEAgU2NyZWVuQ2FwdHVyZUVuYWJsZWQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgIFdl
YkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQorICAgICAgCitTY3JvbGxUb1RleHRGcmFnbWVu
dEVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTY3JvbGwgVG8g
VGV4dCBGcmFnbWVudCIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFNjcm9s
bCBUbyBUZXh0IEZyYWdtZW50IgorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5Ogor
ICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQor
ICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQogCiBTZXJ2ZXJUaW1pbmdFbmFibGVk
OgogICB0eXBlOiBib29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDFlZmY2YWViMzliYTAyYTczNWYyMTRj
MzRmZDcwYzEwMzNlOTNmMTAuLjE3ZDkxY2ZlYmMwOGNkYWFjOGYxOTJmYzRkYTM4NWY4MzEyODE4
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC05MTQsNiArOTE0LDcgQEAgZG9tL0V4Y2VwdGlvbkRhdGEu
Y3BwCiBkb20vRXh0ZW5zaW9uU3R5bGVTaGVldHMuY3BwCiBkb20vRm9jdXNFdmVudC5jcHAKIGRv
bS9Gb3JtRGF0YUV2ZW50LmNwcAorZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcAogZG9t
L0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAogZG9tL0dDUmVhY2hhYmxlUmVmLmNwcAogZG9tL0hhc2hD
aGFuZ2VFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2MTRjM2Q3MGMyY2IxM2RmYzFjMjBjYjI2MDg1MjY3MGY0ZWQ3
ZTVhLi5kODE0MmNlZjk3YjVkZTlhNjAwYWMxMzk2NmNlNWI2MjlhMzRkOWE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDAy
LDYgKzg0MDIsOCBAQAogCQk0NDNGMDQyNjBFNzVDOEZCMDA3RTU0MDcgLyogTmV0d29ya1N0YXRl
Tm90aWZpZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBO
ZXR3b3JrU3RhdGVOb3RpZmllcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDQ0RDRFMjEwRjcwOEIyRTAwMzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZUlP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MjEwREQyNUQ2MUVGRjAwM0Ey
RUQ4IC8qIEFwcEhpZ2hsaWdodC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
cHBIaWdobGlnaHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ1NjEyQUEyNzBG
NkYzNzAwNzU4Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDQ1NjEyQUIyNzBGNkYzODAwNzU4Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFy
c2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTc3NUU0MjA0NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERl
ZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3Rl
bUFwcGVhcmFuY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTkyMDQ3
MzAzQjAwOERDRTVEIC8qIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDZEQzY0NjI0QTI5RDlCMDA2
MUYzOTAgLyogUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDUzNyw2ICszMDUzOSw4IEBACiAJCQkJMkE2NjQzOTEy
NkEwMDZBRjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuY3BwICovLAogCQkJCTJBNjY0MzkwMjZB
MDA2QUYwMEMxNDdBMSAvKiBGb3JtRGF0YUV2ZW50LmggKi8sCiAJCQkJMkE2NjQzOEUyNkEwMDZB
RTAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaWRsICovLAorCQkJCTQ0NTYxMkFBMjcwRjZGMzcw
MDc1OEM5NyAvKiBGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAgKi8sCisJCQkJNDQ1NjEyQUIy
NzBGNkYzODAwNzU4Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmggKi8sCiAJCQkJQTg1
MzEyM0MxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oICov
LAogCQkJCUNEOTJGNTE3MjI2MTAzODIwMEY4N0JCMyAvKiBGdWxsc2NyZWVuTWFuYWdlci5jcHAg
Ki8sCiAJCQkJQ0Q5MkY1MTYyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmgg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDM4NmUzNzgyODA4OGYzZmQxZWE3YmZjODA2ODJl
OTVhODUwODkwMDYuLmYxNmE5NmJhMDVlY2VlYmZjNDA5ZmRlYzc4NDU2ODVlY2M3ZTdlYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNjI2LDYgKzE2MjYsOSBAQCBwdWJsaWM6CiAgICAgY29u
c3QgRWRpdG9yJiBlZGl0b3IoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1l
U2VsZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0
IEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsg
fQorICAgICAgICAKKyAgICB2b2lkIHNldEZyYWdtZW50RGlyZWN0aXZlKFN0cmluZ1ZpZXcgZnJh
Z21lbnREaXJlY3RpdmUpIHsgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
OyB9CisgICAgU3RyaW5nVmlldyBmcmFnbWVudERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnJhZ21lbnREaXJlY3RpdmU7IH0KIAogICAgIHZvaWQgcHJlcGFyZUNhbnZhc2VzRm9yRGlzcGxh
eUlmTmVlZGVkKCk7CiAgICAgdm9pZCBjbGVhckNhbnZhc1ByZXBhcmF0aW9uKEhUTUxDYW52YXNF
bGVtZW50Jik7CkBAIC0yMjE4LDYgKzIyMjEsOCBAQCBwcml2YXRlOgogCiAgICAgVW5pcXVlUmVm
PEVkaXRvcj4gbV9lZGl0b3I7CiAgICAgVW5pcXVlUmVmPEZyYW1lU2VsZWN0aW9uPiBtX3NlbGVj
dGlvbjsKKyAgICAgICAgCisgICAgU3RyaW5nVmlldyBtX2ZyYWdtZW50RGlyZWN0aXZlOwogCiAg
ICAgTGlzdEhhc2hTZXQ8UmVmPEVsZW1lbnQ+PiBtX3RvcExheWVyRWxlbWVudHM7CiAgICAgVW5p
cXVlUmVmPFdoaXRlc3BhY2VDYWNoZT4gbV93aGl0ZXNwYWNlQ2FjaGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGEwYjQ3
OGQxYWQyMDNkYjJjODFlYzE4ODA5MmM0MWUxYTBmYmViCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcApAQCAtMCwwICsxLDEy
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGcmFnbWVu
dERpcmVjdGl2ZVBhcnNlci5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0
Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6RnJhZ21lbnREaXJlY3RpdmVQ
YXJzZXIoY29uc3QgVVJMJiB1cmwpCit7CisgICAgQVNDSUlMaXRlcmFsIGZyYWdtZW50RGlyZWN0
aXZlRGVsaW1pdGVyID0gIjp+OiJfczsKKyAgICBhdXRvIGZyYWdtZW50SWRlbnRpZmllciA9IHVy
bC5mcmFnbWVudElkZW50aWZpZXIoKTsKKyAgICAKKyAgICBpZiAoZnJhZ21lbnRJZGVudGlmaWVy
LmlzRW1wdHkoKSkgeworICAgICAgICBtX3JlbWFpbmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJ
ZGVudGlmaWVyOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICAgICAKKyAgICBhdXRvIGZy
YWdtZW50RGlyZWN0aXZlU3RhcnQgPSBmcmFnbWVudElkZW50aWZpZXIuZmluZChTdHJpbmdWaWV3
KGZyYWdtZW50RGlyZWN0aXZlRGVsaW1pdGVyKSk7CisgICAgCisgICAgaWYgKGZyYWdtZW50RGly
ZWN0aXZlU3RhcnQgPT0gbm90Rm91bmQpIHsKKyAgICAgICAgbV9yZW1haW5pbmdVUkxGcmFnbWVu
dCA9IGZyYWdtZW50SWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAg
ICBhdXRvIGZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnRJZGVudGlmaWVyLnN1YnN0cmluZyhm
cmFnbWVudERpcmVjdGl2ZVN0YXJ0ICsgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIubGVuZ3Ro
KCkpOworICAgIAorICAgIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElkZW50aWZp
ZXIubGVmdChmcmFnbWVudERpcmVjdGl2ZVN0YXJ0KTsKKyAgICAKKyAgICBwYXJzZUZyYWdtZW50
RGlyZWN0aXZlKGZyYWdtZW50RGlyZWN0aXZlKTsKKyAgICAKKyAgICBtX2ZyYWdtZW50RGlyZWN0
aXZlID0gZnJhZ21lbnREaXJlY3RpdmUudG9TdHJpbmcoKTsKKyAgICBtX2lzVmFsaWQgPSB0cnVl
OworfQorCitib29sIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0
aXZlKFN0cmluZ1ZpZXcgZnJhZ21lbnREaXJlY3RpdmUpCit7CisgICAgTE9HX1dJVEhfU1RSRUFN
KFRleHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgcGFyc2VGcmFnbWVudERpcmVjdGl2ZTogIik7Cisg
ICAgCisgICAgVmVjdG9yPFBhcnNlZFRleHREaXJlY3RpdmU+IHBhcnNlZFRleHREaXJlY3RpdmVz
OworICAgIFN0cmluZyB0ZXh0RGlyZWN0aXZlID0gInRleHQ9Il9zOworCisgICAgaWYgKCFmcmFn
bWVudERpcmVjdGl2ZS5zdGFydHNXaXRoKHRleHREaXJlY3RpdmUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgCisgICAgZnJhZ21lbnREaXJlY3RpdmUgPSBmcmFnbWVudERpcmVjdGl2ZS5z
dWJzdHJpbmcodGV4dERpcmVjdGl2ZS5sZW5ndGgoKSwgZnJhZ21lbnREaXJlY3RpdmUubGVuZ3Ro
KCkpOworICAgIGF1dG8gZGlyZWN0aXZlcyA9IGZyYWdtZW50RGlyZWN0aXZlLnNwbGl0KCcmJyk7
CisgICAgCisgICAgTE9HX1dJVEhfU1RSRUFNKFRleHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgcGFy
c2VGcmFnbWVudERpcmVjdGl2ZTogIik7CisgICAgCisgICAgZm9yIChhdXRvIGRpcmVjdGl2ZSA6
IGRpcmVjdGl2ZXMpIHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gdG9rZW5zOworICAgICAgICBm
b3IgKGF1dG8gdG9rZW4gOiBkaXJlY3RpdmUuc3BsaXQoJywnKSkKKyAgICAgICAgICAgIHRva2Vu
cy5hcHBlbmQodG9rZW4udG9TdHJpbmcoKSk7CisgICAgICAgIC8vIEZJWE1FOiBBZGQgZGVjb2Rp
bmcgZm9yICUgZW5jb2RlZCBzdHJpbmdzLgorICAgICAgICBpZiAodG9rZW5zLnNpemUoKSA+IDQg
fHwgdG9rZW5zLnNpemUoKSA8IDEpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShUZXh0
RnJhZ21lbnQsIHN0cmVhbSA8PCAiIHdyb25nIG51bWJlciBvZiB0b2tlbnMgIik7CisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGF1dG8mIHRva2VuIDogdG9r
ZW5zKSB7CisgICAgICAgICAgICBpZiAodG9rZW4uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAg
ICAgTE9HX1dJVEhfU1RSRUFNKFRleHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgZW1wdHkgdG9rZW4g
Iik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgUGFyc2VkVGV4dERpcmVjdGl2ZSBwYXJzZWRUZXh0RGlyZWN0aXZlOworICAgICAg
ICAKKyAgICAgICAgaWYgKHRva2Vuc1swXS5lbmRzV2l0aCgnLScpICYmIHRva2Vuc1swXS5sZW5n
dGgoKSA+IDEpIHsKKyAgICAgICAgICAgIHRva2Vuc1swXS50cnVuY2F0ZSh0b2tlbnNbMF0ubGVu
Z3RoKCkgLSAyKTsKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUucHJlZml4ID0gdG9r
ZW5zWzBdOworICAgICAgICAgICAgdG9rZW5zLnJlbW92ZSgwKTsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgaWYgKHRva2Vucy5sYXN0KCkuc3RhcnRzV2l0aCgnLScpICYmIHRva2Vucy5s
YXN0KCkubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICB0b2tlbnMubGFzdCgpLnJlbW92ZSgw
KTsKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUuc3VmZml4ID0gdG9rZW5zLnRha2VM
YXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh0b2tlbnMuc2l6ZSgpICE9
IDEgJiYgdG9rZW5zLnNpemUoKSAhPSAyKSB7CisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0o
VGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBub3QgZW5vdWdoIHRva2VucyAiKTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwYXJzZWRUZXh0RGly
ZWN0aXZlLnRleHRTdGFydCA9IHRva2Vuc1swXTsKKyAgICAgICAgCisgICAgICAgIGlmICh0b2tl
bnMuc2l6ZSgpID09IDIpCisgICAgICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnRleHRFbmQg
PSB0b2tlbnNbMV07CisgICAgICAgIAorICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlcy5hcHBl
bmQocGFyc2VkVGV4dERpcmVjdGl2ZSk7CisgICAgfQorICAgIAorICAgIG1fcGFyc2VkVGV4dERp
cmVjdGl2ZXMgPSBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICAKKyAgICByZXR1cm4gdHJ1ZTsK
KyAgICAKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjlkZjg1ZTg4NDY4MjQ1ZjE3
YTY2ODVjYzg3ODIzNDFhZGQ0YzI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBhcnNlZFRl
eHREaXJlY3RpdmUgeworICAgIFN0cmluZyB0ZXh0U3RhcnQ7CisgICAgU3RyaW5nIHRleHRFbmQ7
CisgICAgU3RyaW5nIHByZWZpeDsKKyAgICBTdHJpbmcgc3VmZml4OworfTsKKworY2xhc3MgRnJh
Z21lbnREaXJlY3RpdmVQYXJzZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEKEZyYWdt
ZW50RGlyZWN0aXZlUGFyc2VyKTsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBGcmFnbWVudERpcmVj
dGl2ZVBhcnNlcihjb25zdCBVUkwmKTsKKyAgICAKKyAgICBjb25zdCBWZWN0b3I8UGFyc2VkVGV4
dERpcmVjdGl2ZT4mIHBhcnNlZFRleHREaXJlY3RpdmVzKCkgeyByZXR1cm4gbV9wYXJzZWRUZXh0
RGlyZWN0aXZlczsgfTsKKyAgICBTdHJpbmdWaWV3IGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfTsKKyAgICBTdHJpbmdWaWV3IHJlbWFpbmlu
Z1VSTEZyYWdtZW50KCkgY29uc3QgeyByZXR1cm4gbV9yZW1haW5pbmdVUkxGcmFnbWVudDsgfTsK
KyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAgbV9pc1ZhbGlkOyB9OworICAgIAor
cHJpdmF0ZToKKyAgICBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcigpID0gZGVsZXRlOworICAgIGJv
b2wgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmdWaWV3KTsKKyAgICAKKyAgICBWZWN0b3I8
UGFyc2VkVGV4dERpcmVjdGl2ZT4gbV9wYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJpbmdW
aWV3IG1fcmVtYWluaW5nVVJMRnJhZ21lbnQ7CisgICAgU3RyaW5nVmlldyBtX2ZyYWdtZW50RGly
ZWN0aXZlOworICAgIGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAxODc3ZGNmMTE2ZmFi
MzY4MWQ2YmNkNjk5OTc0NTAwYTRhMWQ5NmQwLi5lNDFkMjZkYTMxNjc1YWM1YzI0N2NiOTE0MWRm
YjVlZDYwMzA5MGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00Niw2ICs0Niw3
IEBACiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2lu
Y2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZlUGFy
c2VyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUZsYXR0ZW5pbmcuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtMjIwOCw3ICsyMjA5LDI0IEBAIHZvaWQgRnJh
bWVWaWV3OjpyZXN0b3JlU2Nyb2xsYmFyKCkKIAogYm9vbCBGcmFtZVZpZXc6OnNjcm9sbFRvRnJh
Z21lbnQoY29uc3QgVVJMJiB1cmwpCiB7CisgICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKSk7
CisgICAgUmVmIGRvY3VtZW50ID0gKmZyYW1lKCkuZG9jdW1lbnQoKTsKKyAgICAKICAgICBhdXRv
IGZyYWdtZW50SWRlbnRpZmllciA9IHVybC5mcmFnbWVudElkZW50aWZpZXIoKTsKKyAgICAKKyAg
ICBpZiAoZG9jdW1lbnQtPnNldHRpbmdzKCkuc2Nyb2xsVG9UZXh0RnJhZ21lbnRFbmFibGVkKCkp
IHsKKyAgICAgICAgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIgZnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXIodXJsKTsKKyAgICAgICAgCisgICAgICAgIGlmIChmcmFnbWVudERpcmVjdGl2ZVBhcnNlci5p
c1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LT5zZXRGcmFnbWVudERpcmVjdGl2ZShm
cmFnbWVudERpcmVjdGl2ZVBhcnNlci5mcmFnbWVudERpcmVjdGl2ZSgpKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgYXV0byBwYXJzZWRUZXh0RGlyZWN0aXZlcyA9IGZyYWdtZW50RGlyZWN0
aXZlUGFyc2VyLnBhcnNlZFRleHREaXJlY3RpdmVzKCk7CisgICAgICAgICAgICAvLyBUT0RPOiBT
Y3JvbGwgdG8gdGhlIHJhbmdlIHNwZWNpZmllZCBieSB0aGUgZGlyZWN0aXZlCisgICAgICAgICAg
ICAKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmcmFnbWVudElkZW50aWZpZXIgPSBmcmFn
bWVudERpcmVjdGl2ZVBhcnNlci5yZW1haW5pbmdVUkxGcmFnbWVudCgpOworICAgIH0KKyAgICAK
ICAgICBpZiAoc2Nyb2xsVG9GcmFnbWVudEludGVybmFsKGZyYWdtZW50SWRlbnRpZmllcikpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggNWNk
ZDhiM2I5NWY0MWEzOGIzMjZjZjA5N2E5ZGYzNjlkZGE4OGJlNS4uM2ZiZTQxN2JlOTgxYjc1ZTc3
OWRlMjM4ZmM0YmUwNWE2ZDczMGZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAt
MTE1LDYgKzExNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFN0eWxlU2hlZXRzKSBc
CiAgICAgTShTVkcpIFwKICAgICBNKFRleHRBdXRvc2l6aW5nKSBcCisgICAgTShUZXh0RnJhZ21l
bnQpIFwKICAgICBNKFRleHRTaGFwaW5nKSBcCiAgICAgTShUaWxpbmcpIFwKICAgICBNKFRocmVh
ZGluZykgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441141</attachid>
            <date>2021-10-13 15:04:32 -0700</date>
            <delta_ts>2021-10-13 18:11:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211013150431.patch</filename>
            <type>text/plain</type>
            <size>16774</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGViMDFiZmY5MDVjNWUxZmVkY2U1NWRm
YzdhNWUwZjE4ZGYwYWVlZjQuLmJiN2EyMzZiMmRiODI0MWUxOGE2YjcyZWViOTY5Yjg5YTBmMGVh
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMTMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisgICAgICAgIGh0dHBzOi8vd2lj
Zy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MTIgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDEyMDdkOGM1NWE0NTA5OGM0Njk0MGIzYjRmNTU2NmM2MmJjNzZlZmEuLjNiNjM5ZGRiZGZm
NjFmNTdmZjQ2ZmY1OTgwNTkyNGViNDdiZjI0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBA
QAorMjAyMS0xMC0xMyAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFNjcm9sbCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXh0IGRpcmVjdGl2
ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwtdG8t
dGV4dC1mcmFnbWVudC8KKyAKKyAgICAgICAgTWFrZSBhIG5ldyBjbGFzcyB0byBoYW5kbGUgdGhl
IHBhcnNpbmcgb2YgdGhlIHRleHQgZGlyZWN0aXZlLgorICAgICAgICBUaGUgcGFyc2luZyBpcyBk
ZWZpbmVkIGluIHRoZSBsaW5rZWQgc3BlYy4gCisgICAgICAgIFRoZSBkaXJlY3RpdmUgc2hvdWxk
IGJlIHN0b3JlZCBvbiBEb2N1bWVudCBhbmQgaW4gYSBmdXR1cmUKKyAgICAgICAgcGF0Y2ggdGhl
IG1hdGNoaW5nIGFsZ29yaXRobSB3aWxsIGZpbmQgdGhlIHRleHQgYW5kIHNjcm9sbAorICAgICAg
ICBhbmQgaGlnaGxpZ2h0IGl0LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZyYWdtZW50RGlyZWN0aXZlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpmcmFnbWVudERpcmVjdGl2ZSBjb25zdCk6Cisg
ICAgICAgICogZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVu
dERpcmVjdGl2ZSk6CisgICAgICAgICogZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OnBhcnNlZFRl
eHREaXJlY3RpdmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2Vy
OjpmcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2
ZVBhcnNlcjo6dXJsRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXI6OmlzVmFsaWQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9GcmFnbWVudCk6CisgICAgICAgICogcGxh
dGZvcm0vTG9nZ2luZy5oOgorCiAyMDIxLTEwLTEyICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIExhenlMaW5lQnJlYWtJdGVyYXRvciBzaG91bGQg
YmUgY29ycmVjdGx5IHNldHVwIGZvciB0aGUgcHJpb3IgY29udGV4dCBjYXNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCmluZGV4IDZhOWU3MDdmNjc2ZjBkZDE1MDEwYmE2MzdiNzViZDY4MTNl
NTc5ZTMuLmViMzlhZGZmNDE4YTMxNWQyODhiOGU0MGEwOWQ4ZmNkNGMwMDUzYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC0xMTQ5LDYgKzExNDksMTggQEAgU2NyZWVuQ2FwdHVy
ZUVuYWJsZWQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgIFdlYkNvcmU6CiAgICAgICBkZWZh
dWx0OiBmYWxzZQorICAgICAgCitTY3JvbGxUb1RleHRGcmFnbWVudEVuYWJsZWQ6CisgIHR5cGU6
IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCIKKyAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFNjcm9sbCBUbyBUZXh0IEZyYWdtZW50
IgorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFs
c2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQogCiBTZXJ2ZXJUaW1pbmdFbmFibGVkOgogICB0eXBlOiBib29sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDUyOGVjZWIxZDM5MjNhMDE0ZDdmMTUxNTljNmI3ZjM1M2ZiMzQ5ZmIu
LjQ2ODU5OTM0ZjYyMzgyYWM2NTI1YWFjY2M0NjNkYjNhMmFkYzQ3MDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC05MjEsNiArOTIxLDcgQEAgZG9tL0V4Y2VwdGlvbkRhdGEuY3BwCiBkb20vRXh0ZW5zaW9u
U3R5bGVTaGVldHMuY3BwCiBkb20vRm9jdXNFdmVudC5jcHAKIGRvbS9Gb3JtRGF0YUV2ZW50LmNw
cAorZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcAogZG9tL0Z1bGxzY3JlZW5NYW5hZ2Vy
LmNwcAogZG9tL0dDUmVhY2hhYmxlUmVmLmNwcAogZG9tL0hhc2hDaGFuZ2VFdmVudC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA1OWQ2ZWVmNzEwYjM5YzI4YWMxNGIyN2Y1MzE5MGM1MmU4NGM5MzA3Li45Y2EwMTQ0NjhlZjll
YzUyNTI0MWIxMzAwMDliMTE5ZGJiMmY5NzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDM2LDYgKzg0MzYsOCBAQAogCQk0
NDNGMDQyNjBFNzVDOEZCMDA3RTU0MDcgLyogTmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrU3RhdGVOb3RpZmll
cklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ0RDRFMjEwRjcwOEIyRTAw
MzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MjEwREQyNUQ2MUVGRjAwM0EyRUQ4IC8qIEFwcEhpZ2hsaWdo
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBIaWdobGlnaHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4Qzk3IC8qIEZy
YWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYWdtZW50RGly
ZWN0aXZlUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ1NjEyQUIy
NzBGNkYzODAwNzU4Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0NTc3NUU0MjA0NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTkyMDQ3MzAzQjAwOERDRTVEIC8qIExv
Y2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NDZEQzY0NjI0QTI5RDlCMDA2MUYzOTAgLyogUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0zMDY3OSw2ICszMDY4MSw4IEBACiAJCQkJMkE2NjQzOTEyNkEwMDZBRjAwQzE0N0ExIC8q
IEZvcm1EYXRhRXZlbnQuY3BwICovLAogCQkJCTJBNjY0MzkwMjZBMDA2QUYwMEMxNDdBMSAvKiBG
b3JtRGF0YUV2ZW50LmggKi8sCiAJCQkJMkE2NjQzOEUyNkEwMDZBRTAwQzE0N0ExIC8qIEZvcm1E
YXRhRXZlbnQuaWRsICovLAorCQkJCTQ0NTYxMkFBMjcwRjZGMzcwMDc1OEM5NyAvKiBGcmFnbWVu
dERpcmVjdGl2ZVBhcnNlci5jcHAgKi8sCisJCQkJNDQ1NjEyQUIyNzBGNkYzODAwNzU4Qzk3IC8q
IEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmggKi8sCiAJCQkJQTg1MzEyM0MxMUQwNDcxQjAwRDRE
MDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oICovLAogCQkJCUNEOTJGNTE3MjI2
MTAzODIwMEY4N0JCMyAvKiBGdWxsc2NyZWVuTWFuYWdlci5jcHAgKi8sCiAJCQkJQ0Q5MkY1MTYy
MjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmggKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IGEyMjU0ZDE1OGU0Mzk2YWE5MTdiMjU2Yjc2MDI0MWRmMDBmNjZkN2IuLjQzNGM1
MmQ5MWY2NzE4ZDZkMmVmOTdmZjJjNmI5ZjZmYmQ4OTEyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC0xNjMxLDYgKzE2MzEsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgRWRpdG9yJiBlZGl0b3Io
KSBjb25zdCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rp
b24oKSB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZyYW1lU2VsZWN0aW9uJiBz
ZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQorICAgICAgICAKKyAgICB2
b2lkIHNldEZyYWdtZW50RGlyZWN0aXZlKFN0cmluZyYgZnJhZ21lbnREaXJlY3RpdmUpIHsgbV9m
cmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZlOyB9CisgICAgY29uc3QgU3RyaW5n
JiBmcmFnbWVudERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnREaXJlY3RpdmU7
IH0KIAogICAgIHZvaWQgcHJlcGFyZUNhbnZhc2VzRm9yRGlzcGxheUlmTmVlZGVkKCk7CiAgICAg
dm9pZCBjbGVhckNhbnZhc1ByZXBhcmF0aW9uKEhUTUxDYW52YXNFbGVtZW50Jik7CkBAIC0yMjI2
LDYgKzIyMjksOCBAQCBwcml2YXRlOgogCiAgICAgVW5pcXVlUmVmPEVkaXRvcj4gbV9lZGl0b3I7
CiAgICAgVW5pcXVlUmVmPEZyYW1lU2VsZWN0aW9uPiBtX3NlbGVjdGlvbjsKKyAgICAgICAgCisg
ICAgU3RyaW5nIG1fZnJhZ21lbnREaXJlY3RpdmU7CiAKICAgICBMaXN0SGFzaFNldDxSZWY8RWxl
bWVudD4+IG1fdG9wTGF5ZXJFbGVtZW50czsKICAgICBVbmlxdWVSZWY8V2hpdGVzcGFjZUNhY2hl
PiBtX3doaXRlc3BhY2VDYWNoZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFn
bWVudERpcmVjdGl2ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhMTMyMmY3ZDkzMTkxMTYwOTUyY2UyNjAwYjYz
OGM5NmQxYjgyNDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuY3BwCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgiCisK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcihjb25zdCBVUkwmIHVybCkK
K3sKKyAgICBBU0NJSUxpdGVyYWwgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIgPSAiOn46Il9z
OworICAgIGF1dG8gZnJhZ21lbnRJZGVudGlmaWVyID0gdXJsLmZyYWdtZW50SWRlbnRpZmllcigp
OworICAgIAorICAgIGlmIChmcmFnbWVudElkZW50aWZpZXIuaXNFbXB0eSgpKSB7CisgICAgICAg
IG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElkZW50aWZpZXI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9
IGZyYWdtZW50SWRlbnRpZmllci5maW5kKFN0cmluZ1ZpZXcoZnJhZ21lbnREaXJlY3RpdmVEZWxp
bWl0ZXIpKTsKKyAgICAKKyAgICBpZiAoZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9PSBub3RGb3Vu
ZCkgeworICAgICAgICBtX3JlbWFpbmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVy
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3Rp
dmUgPSBmcmFnbWVudElkZW50aWZpZXIuc3Vic3RyaW5nKGZyYWdtZW50RGlyZWN0aXZlU3RhcnQg
KyBmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlci5sZW5ndGgoKSk7CisgICAgCisgICAgLy8gRklY
TUU6IHRoaXMgbmVlZHMgdG8gYmUgc2V0IG9uIHRoZSBvcmlnaW5hbCBVUkwKKyAgICBtX3JlbWFp
bmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVyLmxlZnQoZnJhZ21lbnREaXJlY3Rp
dmVTdGFydCk7CisgICAgCisgICAgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShmcmFnbWVudERpcmVj
dGl2ZSk7CisgICAgCisgICAgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
LnRvU3RyaW5nKCk7CisgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKK30KKworYm9vbCBGcmFnbWVudERp
cmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmdWaWV3IGZyYWdtZW50
RGlyZWN0aXZlKQoreworICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8
PCAiIHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIFZlY3RvcjxQYXJzZWRU
ZXh0RGlyZWN0aXZlPiBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJpbmcgdGV4dERpcmVj
dGl2ZVByZWZpeCA9ICJ0ZXh0PSJfczsKKworICAgIGF1dG8gZGlyZWN0aXZlcyA9IGZyYWdtZW50
RGlyZWN0aXZlLnNwbGl0KCcmJyk7CisgICAgCisgICAgTE9HX1dJVEhfU1RSRUFNKFRleHRGcmFn
bWVudCwgc3RyZWFtIDw8ICIgcGFyc2VGcmFnbWVudERpcmVjdGl2ZTogIik7CisgICAgCisgICAg
Zm9yIChhdXRvIGRpcmVjdGl2ZSA6IGRpcmVjdGl2ZXMpIHsKKyAgICAgICAgaWYgKCFkaXJlY3Rp
dmUuc3RhcnRzV2l0aCh0ZXh0RGlyZWN0aXZlUHJlZml4KSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAKKyAgICAgICAgYXV0byB0ZXh0RGlyZWN0aXZlID0gZGlyZWN0aXZlLnN1YnN0
cmluZyh0ZXh0RGlyZWN0aXZlUHJlZml4Lmxlbmd0aCgpKTsKKyAgICAgICAgCisgICAgICAgIERl
cXVlPFN0cmluZz4gdG9rZW5zOworICAgICAgICBmb3IgKGF1dG8gdG9rZW4gOiB0ZXh0RGlyZWN0
aXZlLnNwbGl0KCcsJykpCisgICAgICAgICAgICB0b2tlbnMuYXBwZW5kKHRva2VuLnRvU3RyaW5n
KCkpOworICAgICAgICAvLyBGSVhNRTogYWRkIGRlY29kaW5nIGZvciAlIGVuY29kZWQgc3RyaW5n
cy4KKyAgICAgICAgaWYgKHRva2Vucy5zaXplKCkgPiA0IHx8IHRva2Vucy5zaXplKCkgPCAxKSB7
CisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiB3
cm9uZyBudW1iZXIgb2YgdG9rZW5zICIpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IH0KKyAgICAgICAgZm9yIChhdXRvJiB0b2tlbiA6IHRva2VucykgeworICAgICAgICAgICAgaWYg
KHRva2VuLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShUZXh0
RnJhZ21lbnQsIHN0cmVhbSA8PCAiIGVtcHR5IHRva2VuICIpOworICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFBhcnNlZFRleHREaXJl
Y3RpdmUgcGFyc2VkVGV4dERpcmVjdGl2ZTsKKyAgICAgICAgCisgICAgICAgIGlmICh0b2tlbnMu
Zmlyc3QoKS5lbmRzV2l0aCgnLScpICYmIHRva2Vucy5maXJzdCgpLmxlbmd0aCgpID4gMSkgewor
ICAgICAgICAgICAgdG9rZW5zLmZpcnN0KCkudHJ1bmNhdGUodG9rZW5zLmZpcnN0KCkubGVuZ3Ro
KCkgLSAyKTsKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUucHJlZml4ID0gdG9rZW5z
LmZpcnN0KCk7CisgICAgICAgICAgICB0b2tlbnMucmVtb3ZlRmlyc3QoKTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5sYXN0KCkuc3RhcnRzV2l0aCgnLScpICYmIHRv
a2Vucy5sYXN0KCkubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICB0b2tlbnMubGFzdCgpLnJl
bW92ZSgwKTsKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUuc3VmZml4ID0gdG9rZW5z
LnRha2VMYXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh0b2tlbnMuc2l6
ZSgpICE9IDEgJiYgdG9rZW5zLnNpemUoKSAhPSAyKSB7CisgICAgICAgICAgICBMT0dfV0lUSF9T
VFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBub3QgZW5vdWdoIHRva2VucyAiKTsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwYXJzZWRU
ZXh0RGlyZWN0aXZlLnRleHRTdGFydCA9IHRva2Vucy5maXJzdCgpOworICAgICAgICAKKyAgICAg
ICAgaWYgKHRva2Vucy5zaXplKCkgPT0gMikKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3Rp
dmUudGV4dEVuZCA9IHRva2Vucy5sYXN0KCk7CisgICAgICAgIAorICAgICAgICBwYXJzZWRUZXh0
RGlyZWN0aXZlcy5hcHBlbmQocGFyc2VkVGV4dERpcmVjdGl2ZSk7CisgICAgfQorICAgIAorICAg
IG1fcGFyc2VkVGV4dERpcmVjdGl2ZXMgPSBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICAKKyAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjYw
MjgyN2Y1MDQ5MzUyZTkzMzNiZDQ0ZDhiMzVjNjE0NTQ2NzA1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgKQEAgLTAsMCArMSw1
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGFyc2VkVGV4dERpcmVjdGl2ZSB7
CisgICAgU3RyaW5nIHRleHRTdGFydDsKKyAgICBTdHJpbmcgdGV4dEVuZDsKKyAgICBTdHJpbmcg
cHJlZml4OworICAgIFN0cmluZyBzdWZmaXg7Cit9OworCitjbGFzcyBGcmFnbWVudERpcmVjdGl2
ZVBhcnNlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIo
Y29uc3QgVVJMJik7CisgICAgCisgICAgY29uc3QgVmVjdG9yPFBhcnNlZFRleHREaXJlY3RpdmU+
JiBwYXJzZWRUZXh0RGlyZWN0aXZlcygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VkVGV4dERpcmVj
dGl2ZXM7IH07CisgICAgU3RyaW5nVmlldyBmcmFnbWVudERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZnJhZ21lbnREaXJlY3RpdmU7IH07CisgICAgU3RyaW5nVmlldyByZW1haW5pbmdVUkxG
cmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQ7IH07CisgICAg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gIG1faXNWYWxpZDsgfTsKKyAgICAKK3ByaXZh
dGU6CisgICAgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIoKSA9IGRlbGV0ZTsKKyAgICBib29sIHBh
cnNlRnJhZ21lbnREaXJlY3RpdmUoU3RyaW5nVmlldyk7CisgICAgCisgICAgVmVjdG9yPFBhcnNl
ZFRleHREaXJlY3RpdmU+IG1fcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgU3RyaW5nVmlldyBt
X3JlbWFpbmluZ1VSTEZyYWdtZW50OworICAgIFN0cmluZ1ZpZXcgbV9mcmFnbWVudERpcmVjdGl2
ZTsKKyAgICBib29sIG1faXNWYWxpZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNWRhMzAwNDI4NTcxMTA5NWQy
MWUxOTBjM2M2OTUxMjE4ODI1NWVlMS4uYzEyOGQxNDBiZDcyOTI1N2U4MzIwNmUxNmQ4OGMwNGM5
YjY1YTk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNDYsNiArNDYsNyBAQAog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRl
ICJGb2N1c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVGbGF0dGVuaW5nLmgiCiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTIyMTUsNyArMjIxNiwyNSBAQCB2b2lkIEZyYW1lVmll
dzo6cmVzdG9yZVNjcm9sbGJhcigpCiAKIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxUb0ZyYWdtZW50
KGNvbnN0IFVSTCYgdXJsKQogeworICAgIEFTU0VSVChmcmFtZSgpLmRvY3VtZW50KCkpOworICAg
IFJlZiBkb2N1bWVudCA9ICpmcmFtZSgpLmRvY3VtZW50KCk7CisgICAgCiAgICAgYXV0byBmcmFn
bWVudElkZW50aWZpZXIgPSB1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCk7CisgICAgCisgICAgaWYg
KGRvY3VtZW50LT5zZXR0aW5ncygpLnNjcm9sbFRvVGV4dEZyYWdtZW50RW5hYmxlZCgpKSB7Cisg
ICAgICAgIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyIGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKHVy
bCk7CisgICAgICAgIAorICAgICAgICBpZiAoZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaXNWYWxp
ZCgpKSB7CisgICAgICAgICAgICBhdXRvIGZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXIuZnJhZ21lbnREaXJlY3RpdmUoKS50b1N0cmluZygpOworICAgICAgICAgICAg
ZG9jdW1lbnQtPnNldEZyYWdtZW50RGlyZWN0aXZlKGZyYWdtZW50RGlyZWN0aXZlKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgYXV0byBwYXJzZWRUZXh0RGlyZWN0aXZlcyA9IGZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyLnBhcnNlZFRleHREaXJlY3RpdmVzKCk7CisgICAgICAgICAgICAvLyBG
SVhNRTogU2Nyb2xsIHRvIHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgdGhlIGRpcmVjdGl2ZS4KKyAg
ICAgICAgICAgIAorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGZyYWdtZW50SWRlbnRpZmll
ciA9IGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLnJlbWFpbmluZ1VSTEZyYWdtZW50KCk7CisgICAg
fQorICAgIAogICAgIGlmIChzY3JvbGxUb0ZyYWdtZW50SW50ZXJuYWwoZnJhZ21lbnRJZGVudGlm
aWVyKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApp
bmRleCA1Y2RkOGIzYjk1ZjQxYTM4YjMyNmNmMDk3YTlkZjM2OWRkYTg4YmU1Li4zZmJlNDE3YmU5
ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2lu
Zy5oCkBAIC0xMTUsNiArMTE1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oU3R5bGVT
aGVldHMpIFwKICAgICBNKFNWRykgXAogICAgIE0oVGV4dEF1dG9zaXppbmcpIFwKKyAgICBNKFRl
eHRGcmFnbWVudCkgXAogICAgIE0oVGV4dFNoYXBpbmcpIFwKICAgICBNKFRpbGluZykgXAogICAg
IE0oVGhyZWFkaW5nKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441148</attachid>
            <date>2021-10-13 15:36:03 -0700</date>
            <delta_ts>2021-10-13 18:11:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211013153602.patch</filename>
            <type>text/plain</type>
            <size>16869</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGViMDFiZmY5MDVjNWUxZmVkY2U1NWRm
YzdhNWUwZjE4ZGYwYWVlZjQuLmJiN2EyMzZiMmRiODI0MWUxOGE2YjcyZWViOTY5Yjg5YTBmMGVh
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMTMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisgICAgICAgIGh0dHBzOi8vd2lj
Zy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisKKyAgICAgICAgKiBTY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAt
MTIgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDEyMDdkOGM1NWE0NTA5OGM0Njk0MGIzYjRmNTU2NmM2MmJjNzZlZmEuLjNiNjM5ZGRiZGZm
NjFmNTdmZjQ2ZmY1OTgwNTkyNGViNDdiZjI0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBA
QAorMjAyMS0xMC0xMyAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFNjcm9sbCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXh0IGRpcmVjdGl2
ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwtdG8t
dGV4dC1mcmFnbWVudC8KKyAKKyAgICAgICAgTWFrZSBhIG5ldyBjbGFzcyB0byBoYW5kbGUgdGhl
IHBhcnNpbmcgb2YgdGhlIHRleHQgZGlyZWN0aXZlLgorICAgICAgICBUaGUgcGFyc2luZyBpcyBk
ZWZpbmVkIGluIHRoZSBsaW5rZWQgc3BlYy4gCisgICAgICAgIFRoZSBkaXJlY3RpdmUgc2hvdWxk
IGJlIHN0b3JlZCBvbiBEb2N1bWVudCBhbmQgaW4gYSBmdXR1cmUKKyAgICAgICAgcGF0Y2ggdGhl
IG1hdGNoaW5nIGFsZ29yaXRobSB3aWxsIGZpbmQgdGhlIHRleHQgYW5kIHNjcm9sbAorICAgICAg
ICBhbmQgaGlnaGxpZ2h0IGl0LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZyYWdtZW50RGlyZWN0aXZlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpmcmFnbWVudERpcmVjdGl2ZSBjb25zdCk6Cisg
ICAgICAgICogZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVu
dERpcmVjdGl2ZSk6CisgICAgICAgICogZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OnBhcnNlZFRl
eHREaXJlY3RpdmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2Vy
OjpmcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2
ZVBhcnNlcjo6dXJsRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXI6OmlzVmFsaWQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9GcmFnbWVudCk6CisgICAgICAgICogcGxh
dGZvcm0vTG9nZ2luZy5oOgorCiAyMDIxLTEwLTEyICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIExhenlMaW5lQnJlYWtJdGVyYXRvciBzaG91bGQg
YmUgY29ycmVjdGx5IHNldHVwIGZvciB0aGUgcHJpb3IgY29udGV4dCBjYXNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCmluZGV4IDZhOWU3MDdmNjc2ZjBkZDE1MDEwYmE2MzdiNzViZDY4MTNl
NTc5ZTMuLmViMzlhZGZmNDE4YTMxNWQyODhiOGU0MGEwOWQ4ZmNkNGMwMDUzYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC0xMTQ5LDYgKzExNDksMTggQEAgU2NyZWVuQ2FwdHVy
ZUVuYWJsZWQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgIFdlYkNvcmU6CiAgICAgICBkZWZh
dWx0OiBmYWxzZQorICAgICAgCitTY3JvbGxUb1RleHRGcmFnbWVudEVuYWJsZWQ6CisgIHR5cGU6
IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCIKKyAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFNjcm9sbCBUbyBUZXh0IEZyYWdtZW50
IgorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFs
c2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQogCiBTZXJ2ZXJUaW1pbmdFbmFibGVkOgogICB0eXBlOiBib29sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDUyOGVjZWIxZDM5MjNhMDE0ZDdmMTUxNTljNmI3ZjM1M2ZiMzQ5ZmIu
LjQ2ODU5OTM0ZjYyMzgyYWM2NTI1YWFjY2M0NjNkYjNhMmFkYzQ3MDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC05MjEsNiArOTIxLDcgQEAgZG9tL0V4Y2VwdGlvbkRhdGEuY3BwCiBkb20vRXh0ZW5zaW9u
U3R5bGVTaGVldHMuY3BwCiBkb20vRm9jdXNFdmVudC5jcHAKIGRvbS9Gb3JtRGF0YUV2ZW50LmNw
cAorZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcAogZG9tL0Z1bGxzY3JlZW5NYW5hZ2Vy
LmNwcAogZG9tL0dDUmVhY2hhYmxlUmVmLmNwcAogZG9tL0hhc2hDaGFuZ2VFdmVudC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA1OWQ2ZWVmNzEwYjM5YzI4YWMxNGIyN2Y1MzE5MGM1MmU4NGM5MzA3Li45Y2EwMTQ0NjhlZjll
YzUyNTI0MWIxMzAwMDliMTE5ZGJiMmY5NzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDM2LDYgKzg0MzYsOCBAQAogCQk0
NDNGMDQyNjBFNzVDOEZCMDA3RTU0MDcgLyogTmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrU3RhdGVOb3RpZmll
cklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ0RDRFMjEwRjcwOEIyRTAw
MzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MjEwREQyNUQ2MUVGRjAwM0EyRUQ4IC8qIEFwcEhpZ2hsaWdo
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBIaWdobGlnaHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4Qzk3IC8qIEZy
YWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYWdtZW50RGly
ZWN0aXZlUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ1NjEyQUIy
NzBGNkYzODAwNzU4Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0NTc3NUU0MjA0NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTkyMDQ3MzAzQjAwOERDRTVEIC8qIExv
Y2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NDZEQzY0NjI0QTI5RDlCMDA2MUYzOTAgLyogUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0zMDY3OSw2ICszMDY4MSw4IEBACiAJCQkJMkE2NjQzOTEyNkEwMDZBRjAwQzE0N0ExIC8q
IEZvcm1EYXRhRXZlbnQuY3BwICovLAogCQkJCTJBNjY0MzkwMjZBMDA2QUYwMEMxNDdBMSAvKiBG
b3JtRGF0YUV2ZW50LmggKi8sCiAJCQkJMkE2NjQzOEUyNkEwMDZBRTAwQzE0N0ExIC8qIEZvcm1E
YXRhRXZlbnQuaWRsICovLAorCQkJCTQ0NTYxMkFBMjcwRjZGMzcwMDc1OEM5NyAvKiBGcmFnbWVu
dERpcmVjdGl2ZVBhcnNlci5jcHAgKi8sCisJCQkJNDQ1NjEyQUIyNzBGNkYzODAwNzU4Qzk3IC8q
IEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmggKi8sCiAJCQkJQTg1MzEyM0MxMUQwNDcxQjAwRDRE
MDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oICovLAogCQkJCUNEOTJGNTE3MjI2
MTAzODIwMEY4N0JCMyAvKiBGdWxsc2NyZWVuTWFuYWdlci5jcHAgKi8sCiAJCQkJQ0Q5MkY1MTYy
MjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmggKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IGEyMjU0ZDE1OGU0Mzk2YWE5MTdiMjU2Yjc2MDI0MWRmMDBmNjZkN2IuLmM1MmRl
ZjNiYWYyMzI4NWIwNGEwYWNiMTFkMTRmMjVhMjQ2MzkzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC0xNjMxLDYgKzE2MzEsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgRWRpdG9yJiBlZGl0b3Io
KSBjb25zdCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rp
b24oKSB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZyYW1lU2VsZWN0aW9uJiBz
ZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQorICAgICAgICAKKyAgICB2
b2lkIHNldEZyYWdtZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJhZ21lbnREaXJlY3RpdmUp
IHsgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZlOyB9CisgICAgY29uc3Qg
U3RyaW5nJiBmcmFnbWVudERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnREaXJl
Y3RpdmU7IH0KIAogICAgIHZvaWQgcHJlcGFyZUNhbnZhc2VzRm9yRGlzcGxheUlmTmVlZGVkKCk7
CiAgICAgdm9pZCBjbGVhckNhbnZhc1ByZXBhcmF0aW9uKEhUTUxDYW52YXNFbGVtZW50Jik7CkBA
IC0yMjI2LDYgKzIyMjksOCBAQCBwcml2YXRlOgogCiAgICAgVW5pcXVlUmVmPEVkaXRvcj4gbV9l
ZGl0b3I7CiAgICAgVW5pcXVlUmVmPEZyYW1lU2VsZWN0aW9uPiBtX3NlbGVjdGlvbjsKKyAgICAg
ICAgCisgICAgU3RyaW5nIG1fZnJhZ21lbnREaXJlY3RpdmU7CiAKICAgICBMaXN0SGFzaFNldDxS
ZWY8RWxlbWVudD4+IG1fdG9wTGF5ZXJFbGVtZW50czsKICAgICBVbmlxdWVSZWY8V2hpdGVzcGFj
ZUNhY2hlPiBtX3doaXRlc3BhY2VDYWNoZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0N2Y3ZWI3NzIyYzk5ZGViZDljOGJl
YjZiYmQwYmFjNzg3NmZmZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZlUGFyc2Vy
LmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Zy
YWdtZW50RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcihjb25zdCBVUkwm
IHVybCkKK3sKKyAgICBBU0NJSUxpdGVyYWwgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIgPSAi
On46Il9zOworICAgIGF1dG8gZnJhZ21lbnRJZGVudGlmaWVyID0gdXJsLmZyYWdtZW50SWRlbnRp
ZmllcigpOworICAgIAorICAgIGlmIChmcmFnbWVudElkZW50aWZpZXIuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElkZW50aWZpZXI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmVT
dGFydCA9IGZyYWdtZW50SWRlbnRpZmllci5maW5kKFN0cmluZ1ZpZXcoZnJhZ21lbnREaXJlY3Rp
dmVEZWxpbWl0ZXIpKTsKKyAgICAKKyAgICBpZiAoZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9PSBu
b3RGb3VuZCkgeworICAgICAgICBtX3JlbWFpbmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVu
dGlmaWVyOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGF1dG8gZnJhZ21lbnRE
aXJlY3RpdmUgPSBmcmFnbWVudElkZW50aWZpZXIuc3Vic3RyaW5nKGZyYWdtZW50RGlyZWN0aXZl
U3RhcnQgKyBmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlci5sZW5ndGgoKSk7CisgICAgCisgICAg
Ly8gRklYTUU6IHRoaXMgbmVlZHMgdG8gYmUgc2V0IG9uIHRoZSBvcmlnaW5hbCBVUkwKKyAgICBt
X3JlbWFpbmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVyLmxlZnQoZnJhZ21lbnRE
aXJlY3RpdmVTdGFydCk7CisgICAgCisgICAgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShmcmFnbWVu
dERpcmVjdGl2ZSk7CisgICAgCisgICAgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGly
ZWN0aXZlLnRvU3RyaW5nKCk7CisgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKK30KKworYm9vbCBGcmFn
bWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmdWaWV3IGZy
YWdtZW50RGlyZWN0aXZlKQoreworICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0
cmVhbSA8PCAiIHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIFZlY3RvcjxQ
YXJzZWRUZXh0RGlyZWN0aXZlPiBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJpbmcgdGV4
dERpcmVjdGl2ZVByZWZpeCA9ICJ0ZXh0PSJfczsKKworICAgIGF1dG8gZGlyZWN0aXZlcyA9IGZy
YWdtZW50RGlyZWN0aXZlLnNwbGl0KCcmJyk7CisgICAgCisgICAgTE9HX1dJVEhfU1RSRUFNKFRl
eHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgcGFyc2VGcmFnbWVudERpcmVjdGl2ZTogIik7CisgICAg
CisgICAgZm9yIChhdXRvIGRpcmVjdGl2ZSA6IGRpcmVjdGl2ZXMpIHsKKyAgICAgICAgaWYgKCFk
aXJlY3RpdmUuc3RhcnRzV2l0aCh0ZXh0RGlyZWN0aXZlUHJlZml4KSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAKKyAgICAgICAgYXV0byB0ZXh0RGlyZWN0aXZlID0gZGlyZWN0aXZl
LnN1YnN0cmluZyh0ZXh0RGlyZWN0aXZlUHJlZml4Lmxlbmd0aCgpKTsKKyAgICAgICAgCisgICAg
ICAgIERlcXVlPFN0cmluZz4gdG9rZW5zOworICAgICAgICBib29sIGVtcHR5VG9rZW4gPSBmYWxz
ZTsKKyAgICAgICAgZm9yIChhdXRvIHRva2VuIDogdGV4dERpcmVjdGl2ZS5zcGxpdCgnLCcpKSB7
CisgICAgICAgICAgICBpZiAodG9rZW4uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKFRleHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgZW1wdHkgdG9rZW4gIik7Cisg
ICAgICAgICAgICAgICAgZW1wdHlUb2tlbiA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0b2tlbnMuYXBwZW5kKHRva2VuLnRvU3RyaW5n
KCkpOworICAgICAgICB9CisgICAgICAgIGlmIChlbXB0eVRva2VuKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIC8vIEZJWE1FOiBhZGQgZGVjb2RpbmcgZm9yICUgZW5jb2RlZCBzdHJp
bmdzLgorICAgICAgICBpZiAodG9rZW5zLnNpemUoKSA+IDQgfHwgdG9rZW5zLnNpemUoKSA8IDEp
IHsKKyAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAi
IHdyb25nIG51bWJlciBvZiB0b2tlbnMgIik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgUGFyc2VkVGV4dERpcmVjdGl2ZSBwYXJzZWRUZXh0RGly
ZWN0aXZlOworICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5maXJzdCgpLmVuZHNXaXRoKCct
JykgJiYgdG9rZW5zLmZpcnN0KCkubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICB0b2tlbnMu
Zmlyc3QoKS50cnVuY2F0ZSh0b2tlbnMuZmlyc3QoKS5sZW5ndGgoKSAtIDIpOworICAgICAgICAg
ICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5wcmVmaXggPSB0b2tlbnMuZmlyc3QoKTsKKyAgICAgICAg
ICAgIHRva2Vucy5yZW1vdmVGaXJzdCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBp
ZiAodG9rZW5zLmxhc3QoKS5zdGFydHNXaXRoKCctJykgJiYgdG9rZW5zLmxhc3QoKS5sZW5ndGgo
KSA+IDEpIHsKKyAgICAgICAgICAgIHRva2Vucy5sYXN0KCkucmVtb3ZlKDApOworICAgICAgICAg
ICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5zdWZmaXggPSB0b2tlbnMudGFrZUxhc3QoKTsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5zaXplKCkgIT0gMSAmJiB0b2tlbnMu
c2l6ZSgpICE9IDIpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQs
IHN0cmVhbSA8PCAiIG5vdCBlbm91Z2ggdG9rZW5zICIpOworICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUudGV4dFN0
YXJ0ID0gdG9rZW5zLmZpcnN0KCk7CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLnNpemUo
KSA9PSAyKQorICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS50ZXh0RW5kID0gdG9rZW5z
Lmxhc3QoKTsKKyAgICAgICAgCisgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmVzLmFwcGVuZChw
YXJzZWRUZXh0RGlyZWN0aXZlKTsKKyAgICB9CisgICAgCisgICAgbV9wYXJzZWRUZXh0RGlyZWN0
aXZlcyA9IHBhcnNlZFRleHREaXJlY3RpdmVzOworICAgIAorICAgIHJldHVybiB0cnVlOworICAg
IAorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFn
bWVudERpcmVjdGl2ZVBhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNjAyODI3ZjUwNDkzNTJlOTMzM2Jk
NDRkOGIzNWM2MTQ1NDY3MDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBQYXJzZWRUZXh0RGlyZWN0aXZlIHsKKyAgICBTdHJpbmcgdGV4dFN0
YXJ0OworICAgIFN0cmluZyB0ZXh0RW5kOworICAgIFN0cmluZyBwcmVmaXg7CisgICAgU3RyaW5n
IHN1ZmZpeDsKK307CisKK2NsYXNzIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyIHsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcihjb25zdCBVUkwmKTsKKyAgICAK
KyAgICBjb25zdCBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4mIHBhcnNlZFRleHREaXJlY3Rp
dmVzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZWRUZXh0RGlyZWN0aXZlczsgfTsKKyAgICBTdHJp
bmdWaWV3IGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudERpcmVj
dGl2ZTsgfTsKKyAgICBTdHJpbmdWaWV3IHJlbWFpbmluZ1VSTEZyYWdtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZW1haW5pbmdVUkxGcmFnbWVudDsgfTsKKyAgICBib29sIGlzVmFsaWQoKSBjb25z
dCB7IHJldHVybiAgbV9pc1ZhbGlkOyB9OworICAgIAorcHJpdmF0ZToKKyAgICBGcmFnbWVudERp
cmVjdGl2ZVBhcnNlcigpID0gZGVsZXRlOworICAgIGJvb2wgcGFyc2VGcmFnbWVudERpcmVjdGl2
ZShTdHJpbmdWaWV3KTsKKyAgICAKKyAgICBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4gbV9w
YXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJpbmdWaWV3IG1fcmVtYWluaW5nVVJMRnJhZ21l
bnQ7CisgICAgU3RyaW5nVmlldyBtX2ZyYWdtZW50RGlyZWN0aXZlOworICAgIGJvb2wgbV9pc1Zh
bGlkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCA1ZGEzMDA0Mjg1NzExMDk1ZDIxZTE5MGMzYzY5NTEyMTg4MjU1
ZWUxLi5jMTI4ZDE0MGJkNzI5MjU3ZTgzMjA2ZTE2ZDg4YzA0YzliNjVhOTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5o
IgorI2luY2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZUZsYXR0ZW5pbmcuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgpAQCAtMjIxNSw3ICsyMjE2LDI1IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0b3JlU2Nyb2xsYmFy
KCkKIAogYm9vbCBGcmFtZVZpZXc6OnNjcm9sbFRvRnJhZ21lbnQoY29uc3QgVVJMJiB1cmwpCiB7
CisgICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKSk7CisgICAgUmVmIGRvY3VtZW50ID0gKmZy
YW1lKCkuZG9jdW1lbnQoKTsKKyAgICAKICAgICBhdXRvIGZyYWdtZW50SWRlbnRpZmllciA9IHVy
bC5mcmFnbWVudElkZW50aWZpZXIoKTsKKyAgICAKKyAgICBpZiAoZG9jdW1lbnQtPnNldHRpbmdz
KCkuc2Nyb2xsVG9UZXh0RnJhZ21lbnRFbmFibGVkKCkpIHsKKyAgICAgICAgRnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXIgZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIodXJsKTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChmcmFnbWVudERpcmVjdGl2ZVBhcnNlci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAg
IGF1dG8gZnJhZ21lbnREaXJlY3RpdmUgPSBmcmFnbWVudERpcmVjdGl2ZVBhcnNlci5mcmFnbWVu
dERpcmVjdGl2ZSgpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RnJhZ21l
bnREaXJlY3RpdmUoZnJhZ21lbnREaXJlY3RpdmUpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBhdXRvIHBhcnNlZFRleHREaXJlY3RpdmVzID0gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIucGFy
c2VkVGV4dERpcmVjdGl2ZXMoKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTY3JvbGwgdG8gdGhl
IHJhbmdlIHNwZWNpZmllZCBieSB0aGUgZGlyZWN0aXZlLgorICAgICAgICAgICAgCisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgZnJhZ21lbnRJZGVudGlmaWVyID0gZnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIucmVtYWluaW5nVVJMRnJhZ21lbnQoKTsKKyAgICB9CisgICAgCiAgICAgaWYgKHNj
cm9sbFRvRnJhZ21lbnRJbnRlcm5hbChmcmFnbWVudElkZW50aWZpZXIpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDVjZGQ4YjNiOTVmNDFh
MzhiMzI2Y2YwOTdhOWRmMzY5ZGRhODhiZTUuLjNmYmU0MTdiZTk4MWI3NWU3NzlkZTIzOGZjNGJl
MDVhNmQ3MzBmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTExNSw2ICsxMTUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShTdHlsZVNoZWV0cykgXAogICAgIE0oU1ZH
KSBcCiAgICAgTShUZXh0QXV0b3NpemluZykgXAorICAgIE0oVGV4dEZyYWdtZW50KSBcCiAgICAg
TShUZXh0U2hhcGluZykgXAogICAgIE0oVGlsaW5nKSBcCiAgICAgTShUaHJlYWRpbmcpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441153</attachid>
            <date>2021-10-13 15:49:29 -0700</date>
            <delta_ts>2021-10-13 18:11:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211013154928.patch</filename>
            <type>text/plain</type>
            <size>16881</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGViMDFiZmY5MDVjNWUxZmVkY2U1NWRm
YzdhNWUwZjE4ZGYwYWVlZjQuLjQ4MjZhMTFhMTRlY2NlMzNlYzU3MmFkYjM4MGYzNGJjNmUzNTQx
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMTMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAg
ICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisgICAgICAgIGh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAtMTIg
IFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDEyMDdkOGM1NWE0NTA5OGM0Njk0MGIzYjRmNTU2NmM2MmJjNzZlZmEuLmYyNzMwNjdlOWY3NjNh
NTk1MzY1MGQ4YWMyZTIzODUyZDU3MjUwODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAor
MjAyMS0xMC0xMyAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFNjcm9sbCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBUZXh0IGRpcmVjdGl2ZSBwYXJz
aW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwtdG8tdGV4dC1m
cmFnbWVudC8KKyAKKyAgICAgICAgTWFrZSBhIG5ldyBjbGFzcyB0byBoYW5kbGUgdGhlIHBhcnNp
bmcgb2YgdGhlIHRleHQgZGlyZWN0aXZlLgorICAgICAgICBUaGUgcGFyc2luZyBpcyBkZWZpbmVk
IGluIHRoZSBsaW5rZWQgc3BlYy4gCisgICAgICAgIFRoZSBkaXJlY3RpdmUgc2hvdWxkIGJlIHN0
b3JlZCBvbiBEb2N1bWVudCBhbmQgaW4gYSBmdXR1cmUKKyAgICAgICAgcGF0Y2ggdGhlIG1hdGNo
aW5nIGFsZ29yaXRobSB3aWxsIGZpbmQgdGhlIHRleHQgYW5kIHNjcm9sbAorICAgICAgICBhbmQg
aGlnaGxpZ2h0IGl0LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpmcmFnbWVudERpcmVjdGl2ZSBjb25zdCk6CisgICAgICAg
ICogZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcik6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVj
dGl2ZSk6CisgICAgICAgICogZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OnBhcnNlZFRleHREaXJl
Y3RpdmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpmcmFn
bWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNl
cjo6dXJsRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OmlzVmFsaWQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9GcmFnbWVudCk6CisgICAgICAgICogcGxhdGZvcm0v
TG9nZ2luZy5oOgorCiAyMDIxLTEwLTEyICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJRkNdIExhenlMaW5lQnJlYWtJdGVyYXRvciBzaG91bGQgYmUgY29y
cmVjdGx5IHNldHVwIGZvciB0aGUgcHJpb3IgY29udGV4dCBjYXNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCmluZGV4IDZhOWU3MDdmNjc2ZjBkZDE1MDEwYmE2MzdiNzViZDY4MTNlNTc5ZTMu
LmViMzlhZGZmNDE4YTMxNWQyODhiOGU0MGEwOWQ4ZmNkNGMwMDUzYmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCkBAIC0xMTQ5LDYgKzExNDksMTggQEAgU2NyZWVuQ2FwdHVyZUVuYWJs
ZWQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBm
YWxzZQorICAgICAgCitTY3JvbGxUb1RleHRGcmFnbWVudEVuYWJsZWQ6CisgIHR5cGU6IGJvb2wK
KyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCIKKyAgaHVtYW5S
ZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFNjcm9sbCBUbyBUZXh0IEZyYWdtZW50IgorICBk
ZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZh
dWx0OiBmYWxzZQogCiBTZXJ2ZXJUaW1pbmdFbmFibGVkOgogICB0eXBlOiBib29sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDUyOGVjZWIxZDM5MjNhMDE0ZDdmMTUxNTljNmI3ZjM1M2ZiMzQ5ZmIuLjQ2ODU5
OTM0ZjYyMzgyYWM2NTI1YWFjY2M0NjNkYjNhMmFkYzQ3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC05
MjEsNiArOTIxLDcgQEAgZG9tL0V4Y2VwdGlvbkRhdGEuY3BwCiBkb20vRXh0ZW5zaW9uU3R5bGVT
aGVldHMuY3BwCiBkb20vRm9jdXNFdmVudC5jcHAKIGRvbS9Gb3JtRGF0YUV2ZW50LmNwcAorZG9t
L0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcAogZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAog
ZG9tL0dDUmVhY2hhYmxlUmVmLmNwcAogZG9tL0hhc2hDaGFuZ2VFdmVudC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1OWQ2
ZWVmNzEwYjM5YzI4YWMxNGIyN2Y1MzE5MGM1MmU4NGM5MzA3Li45Y2EwMTQ0NjhlZjllYzUyNTI0
MWIxMzAwMDliMTE5ZGJiMmY5NzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDM2LDYgKzg0MzYsOCBAQAogCQk0NDNGMDQy
NjBFNzVDOEZCMDA3RTU0MDcgLyogTmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrU3RhdGVOb3RpZmllcklPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ0RDRFMjEwRjcwOEIyRTAwMzE1OEUw
IC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQ1MjEwREQyNUQ2MUVGRjAwM0EyRUQ4IC8qIEFwcEhpZ2hsaWdodC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBIaWdobGlnaHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4Qzk3IC8qIEZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ1NjEyQUIyNzBGNkYz
ODAwNzU4Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZy
YWdtZW50RGlyZWN0aXZlUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0
NTc3NUU0MjA0NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTkyMDQ3MzAzQjAwOERDRTVEIC8qIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NDZEQzY0NjI0QTI5RDlCMDA2MUYzOTAgLyogUGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MDY3OSw2ICszMDY4MSw4IEBACiAJCQkJMkE2NjQzOTEyNkEwMDZBRjAwQzE0N0ExIC8qIEZvcm1E
YXRhRXZlbnQuY3BwICovLAogCQkJCTJBNjY0MzkwMjZBMDA2QUYwMEMxNDdBMSAvKiBGb3JtRGF0
YUV2ZW50LmggKi8sCiAJCQkJMkE2NjQzOEUyNkEwMDZBRTAwQzE0N0ExIC8qIEZvcm1EYXRhRXZl
bnQuaWRsICovLAorCQkJCTQ0NTYxMkFBMjcwRjZGMzcwMDc1OEM5NyAvKiBGcmFnbWVudERpcmVj
dGl2ZVBhcnNlci5jcHAgKi8sCisJCQkJNDQ1NjEyQUIyNzBGNkYzODAwNzU4Qzk3IC8qIEZyYWdt
ZW50RGlyZWN0aXZlUGFyc2VyLmggKi8sCiAJCQkJQTg1MzEyM0MxMUQwNDcxQjAwRDREMDc3IC8q
IEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oICovLAogCQkJCUNEOTJGNTE3MjI2MTAzODIw
MEY4N0JCMyAvKiBGdWxsc2NyZWVuTWFuYWdlci5jcHAgKi8sCiAJCQkJQ0Q5MkY1MTYyMjYxMDM4
MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IGEyMjU0ZDE1OGU0Mzk2YWE5MTdiMjU2Yjc2MDI0MWRmMDBmNjZkN2IuLmM1MmRlZjNiYWYy
MzI4NWIwNGEwYWNiMTFkMTRmMjVhMjQ2MzkzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0x
NjMxLDYgKzE2MzEsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgRWRpdG9yJiBlZGl0b3IoKSBjb25z
dCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSB7
IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQorICAgICAgICAKKyAgICB2b2lkIHNl
dEZyYWdtZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJhZ21lbnREaXJlY3RpdmUpIHsgbV9m
cmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZlOyB9CisgICAgY29uc3QgU3RyaW5n
JiBmcmFnbWVudERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnREaXJlY3RpdmU7
IH0KIAogICAgIHZvaWQgcHJlcGFyZUNhbnZhc2VzRm9yRGlzcGxheUlmTmVlZGVkKCk7CiAgICAg
dm9pZCBjbGVhckNhbnZhc1ByZXBhcmF0aW9uKEhUTUxDYW52YXNFbGVtZW50Jik7CkBAIC0yMjI2
LDYgKzIyMjksOCBAQCBwcml2YXRlOgogCiAgICAgVW5pcXVlUmVmPEVkaXRvcj4gbV9lZGl0b3I7
CiAgICAgVW5pcXVlUmVmPEZyYW1lU2VsZWN0aW9uPiBtX3NlbGVjdGlvbjsKKyAgICAgICAgCisg
ICAgU3RyaW5nIG1fZnJhZ21lbnREaXJlY3RpdmU7CiAKICAgICBMaXN0SGFzaFNldDxSZWY8RWxl
bWVudD4+IG1fdG9wTGF5ZXJFbGVtZW50czsKICAgICBVbmlxdWVSZWY8V2hpdGVzcGFjZUNhY2hl
PiBtX3doaXRlc3BhY2VDYWNoZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFn
bWVudERpcmVjdGl2ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwMGM2YTNkMTlmMDBjODgwYTQzYzVmOTAyMDlh
YzZiNzhlNjkyNzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuY3BwCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgiCisK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcihjb25zdCBVUkwmIHVybCkK
K3sKKyAgICBBU0NJSUxpdGVyYWwgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIgPSAiOn46Il9z
OworICAgIGF1dG8gZnJhZ21lbnRJZGVudGlmaWVyID0gdXJsLmZyYWdtZW50SWRlbnRpZmllcigp
OworICAgIAorICAgIGlmIChmcmFnbWVudElkZW50aWZpZXIuaXNFbXB0eSgpKSB7CisgICAgICAg
IG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElkZW50aWZpZXI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9
IGZyYWdtZW50SWRlbnRpZmllci5maW5kKFN0cmluZ1ZpZXcoZnJhZ21lbnREaXJlY3RpdmVEZWxp
bWl0ZXIpKTsKKyAgICAKKyAgICBpZiAoZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9PSBub3RGb3Vu
ZCkgeworICAgICAgICBtX3JlbWFpbmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVy
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3Rp
dmUgPSBmcmFnbWVudElkZW50aWZpZXIuc3Vic3RyaW5nKGZyYWdtZW50RGlyZWN0aXZlU3RhcnQg
KyBmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlci5sZW5ndGgoKSk7CisgICAgCisgICAgLy8gRklY
TUU6IHRoaXMgbmVlZHMgdG8gYmUgc2V0IG9uIHRoZSBvcmlnaW5hbCBVUkwKKyAgICBtX3JlbWFp
bmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVyLmxlZnQoZnJhZ21lbnREaXJlY3Rp
dmVTdGFydCk7CisgICAgCisgICAgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShmcmFnbWVudERpcmVj
dGl2ZSk7CisgICAgCisgICAgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
LnRvU3RyaW5nKCk7CisgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKK30KKworYm9vbCBGcmFnbWVudERp
cmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmdWaWV3IGZyYWdtZW50
RGlyZWN0aXZlKQoreworICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8
PCAiIHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIFZlY3RvcjxQYXJzZWRU
ZXh0RGlyZWN0aXZlPiBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJpbmcgdGV4dERpcmVj
dGl2ZVByZWZpeCA9ICJ0ZXh0PSJfczsKKworICAgIGF1dG8gZGlyZWN0aXZlcyA9IGZyYWdtZW50
RGlyZWN0aXZlLnNwbGl0KCcmJyk7CisgICAgCisgICAgTE9HX1dJVEhfU1RSRUFNKFRleHRGcmFn
bWVudCwgc3RyZWFtIDw8ICIgcGFyc2VGcmFnbWVudERpcmVjdGl2ZTogIik7CisgICAgCisgICAg
Zm9yIChhdXRvIGRpcmVjdGl2ZSA6IGRpcmVjdGl2ZXMpIHsKKyAgICAgICAgaWYgKCFkaXJlY3Rp
dmUuc3RhcnRzV2l0aCh0ZXh0RGlyZWN0aXZlUHJlZml4KSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAKKyAgICAgICAgYXV0byB0ZXh0RGlyZWN0aXZlID0gZGlyZWN0aXZlLnN1YnN0
cmluZyh0ZXh0RGlyZWN0aXZlUHJlZml4Lmxlbmd0aCgpKTsKKyAgICAgICAgCisgICAgICAgIERl
cXVlPFN0cmluZz4gdG9rZW5zOworICAgICAgICBib29sIGNvbnRhaW5zRW1wdHlUb2tlbiA9IGZh
bHNlOworICAgICAgICBmb3IgKGF1dG8gdG9rZW4gOiB0ZXh0RGlyZWN0aXZlLnNwbGl0KCcsJykp
IHsKKyAgICAgICAgICAgIGlmICh0b2tlbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBM
T0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBlbXB0eSB0b2tlbiAiKTsK
KyAgICAgICAgICAgICAgICBjb250YWluc0VtcHR5VG9rZW4gPSB0cnVlOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdG9rZW5zLmFwcGVuZCh0b2tl
bi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29udGFpbnNFbXB0eVRva2Vu
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIC8vIEZJWE1FOiBhZGQgZGVjb2Rpbmcg
Zm9yICUgZW5jb2RlZCBzdHJpbmdzLgorICAgICAgICBpZiAodG9rZW5zLnNpemUoKSA+IDQgfHwg
dG9rZW5zLnNpemUoKSA8IDEpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJh
Z21lbnQsIHN0cmVhbSA8PCAiIHdyb25nIG51bWJlciBvZiB0b2tlbnMgIik7CisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUGFyc2VkVGV4dERpcmVj
dGl2ZSBwYXJzZWRUZXh0RGlyZWN0aXZlOworICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5m
aXJzdCgpLmVuZHNXaXRoKCctJykgJiYgdG9rZW5zLmZpcnN0KCkubGVuZ3RoKCkgPiAxKSB7Cisg
ICAgICAgICAgICB0b2tlbnMuZmlyc3QoKS50cnVuY2F0ZSh0b2tlbnMuZmlyc3QoKS5sZW5ndGgo
KSAtIDIpOworICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5wcmVmaXggPSB0b2tlbnMu
Zmlyc3QoKTsKKyAgICAgICAgICAgIHRva2Vucy5yZW1vdmVGaXJzdCgpOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLmxhc3QoKS5zdGFydHNXaXRoKCctJykgJiYgdG9r
ZW5zLmxhc3QoKS5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgIHRva2Vucy5sYXN0KCkucmVt
b3ZlKDApOworICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5zdWZmaXggPSB0b2tlbnMu
dGFrZUxhc3QoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5zaXpl
KCkgIT0gMSAmJiB0b2tlbnMuc2l6ZSgpICE9IDIpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NU
UkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIG5vdCBlbm91Z2ggdG9rZW5zICIpOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhcnNlZFRl
eHREaXJlY3RpdmUudGV4dFN0YXJ0ID0gdG9rZW5zLmZpcnN0KCk7CisgICAgICAgIAorICAgICAg
ICBpZiAodG9rZW5zLnNpemUoKSA9PSAyKQorICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2
ZS50ZXh0RW5kID0gdG9rZW5zLmxhc3QoKTsKKyAgICAgICAgCisgICAgICAgIHBhcnNlZFRleHRE
aXJlY3RpdmVzLmFwcGVuZChwYXJzZWRUZXh0RGlyZWN0aXZlKTsKKyAgICB9CisgICAgCisgICAg
bV9wYXJzZWRUZXh0RGlyZWN0aXZlcyA9IHBhcnNlZFRleHREaXJlY3RpdmVzOworICAgIAorICAg
IHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNjAyODI3ZjUw
NDkzNTJlOTMzM2JkNDRkOGIzNWM2MTQ1NDY3MDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApAQCAtMCwwICsxLDU4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQYXJzZWRUZXh0RGlyZWN0aXZlIHsKKyAgICBT
dHJpbmcgdGV4dFN0YXJ0OworICAgIFN0cmluZyB0ZXh0RW5kOworICAgIFN0cmluZyBwcmVmaXg7
CisgICAgU3RyaW5nIHN1ZmZpeDsKK307CisKK2NsYXNzIEZyYWdtZW50RGlyZWN0aXZlUGFyc2Vy
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcihjb25zdCBV
UkwmKTsKKyAgICAKKyAgICBjb25zdCBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4mIHBhcnNl
ZFRleHREaXJlY3RpdmVzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZWRUZXh0RGlyZWN0aXZlczsg
fTsKKyAgICBTdHJpbmdWaWV3IGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9m
cmFnbWVudERpcmVjdGl2ZTsgfTsKKyAgICBTdHJpbmdWaWV3IHJlbWFpbmluZ1VSTEZyYWdtZW50
KCkgY29uc3QgeyByZXR1cm4gbV9yZW1haW5pbmdVUkxGcmFnbWVudDsgfTsKKyAgICBib29sIGlz
VmFsaWQoKSBjb25zdCB7IHJldHVybiAgbV9pc1ZhbGlkOyB9OworICAgIAorcHJpdmF0ZToKKyAg
ICBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcigpID0gZGVsZXRlOworICAgIGJvb2wgcGFyc2VGcmFn
bWVudERpcmVjdGl2ZShTdHJpbmdWaWV3KTsKKyAgICAKKyAgICBWZWN0b3I8UGFyc2VkVGV4dERp
cmVjdGl2ZT4gbV9wYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJpbmdWaWV3IG1fcmVtYWlu
aW5nVVJMRnJhZ21lbnQ7CisgICAgU3RyaW5nVmlldyBtX2ZyYWdtZW50RGlyZWN0aXZlOworICAg
IGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA1ZGEzMDA0Mjg1NzExMDk1ZDIxZTE5MGMz
YzY5NTEyMTg4MjU1ZWUxLi5jMTI4ZDE0MGJkNzI5MjU3ZTgzMjA2ZTE2ZDg4YzA0YzliNjVhOTZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3Vz
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUZsYXR0ZW5pbmcuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgpAQCAtMjIxNSw3ICsyMjE2LDI1IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0
b3JlU2Nyb2xsYmFyKCkKIAogYm9vbCBGcmFtZVZpZXc6OnNjcm9sbFRvRnJhZ21lbnQoY29uc3Qg
VVJMJiB1cmwpCiB7CisgICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKSk7CisgICAgUmVmIGRv
Y3VtZW50ID0gKmZyYW1lKCkuZG9jdW1lbnQoKTsKKyAgICAKICAgICBhdXRvIGZyYWdtZW50SWRl
bnRpZmllciA9IHVybC5mcmFnbWVudElkZW50aWZpZXIoKTsKKyAgICAKKyAgICBpZiAoZG9jdW1l
bnQtPnNldHRpbmdzKCkuc2Nyb2xsVG9UZXh0RnJhZ21lbnRFbmFibGVkKCkpIHsKKyAgICAgICAg
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIgZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIodXJsKTsKKyAg
ICAgICAgCisgICAgICAgIGlmIChmcmFnbWVudERpcmVjdGl2ZVBhcnNlci5pc1ZhbGlkKCkpIHsK
KyAgICAgICAgICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmUgPSBmcmFnbWVudERpcmVjdGl2ZVBh
cnNlci5mcmFnbWVudERpcmVjdGl2ZSgpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBkb2N1bWVu
dC0+c2V0RnJhZ21lbnREaXJlY3RpdmUoZnJhZ21lbnREaXJlY3RpdmUpOworICAgICAgICAgICAg
CisgICAgICAgICAgICBhdXRvIHBhcnNlZFRleHREaXJlY3RpdmVzID0gZnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIucGFyc2VkVGV4dERpcmVjdGl2ZXMoKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBT
Y3JvbGwgdG8gdGhlIHJhbmdlIHNwZWNpZmllZCBieSB0aGUgZGlyZWN0aXZlLgorICAgICAgICAg
ICAgCisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZnJhZ21lbnRJZGVudGlmaWVyID0gZnJh
Z21lbnREaXJlY3RpdmVQYXJzZXIucmVtYWluaW5nVVJMRnJhZ21lbnQoKTsKKyAgICB9CisgICAg
CiAgICAgaWYgKHNjcm9sbFRvRnJhZ21lbnRJbnRlcm5hbChmcmFnbWVudElkZW50aWZpZXIpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDVj
ZGQ4YjNiOTVmNDFhMzhiMzI2Y2YwOTdhOWRmMzY5ZGRhODhiZTUuLjNmYmU0MTdiZTk4MWI3NWU3
NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAg
LTExNSw2ICsxMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShTdHlsZVNoZWV0cykg
XAogICAgIE0oU1ZHKSBcCiAgICAgTShUZXh0QXV0b3NpemluZykgXAorICAgIE0oVGV4dEZyYWdt
ZW50KSBcCiAgICAgTShUZXh0U2hhcGluZykgXAogICAgIE0oVGlsaW5nKSBcCiAgICAgTShUaHJl
YWRpbmcpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441170</attachid>
            <date>2021-10-13 18:12:00 -0700</date>
            <delta_ts>2021-11-08 17:27:15 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231410-20211013181159.patch</filename>
            <type>text/plain</type>
            <size>16857</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGViMDFiZmY5MDVjNWUxZmVkY2U1NWRm
YzdhNWUwZjE4ZGYwYWVlZjQuLjQ4MjZhMTFhMTRlY2NlMzNlYzU3MmFkYjM4MGYzNGJjNmUzNTQx
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMTMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAg
ICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisgICAgICAgIGh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTAtMTIg
IFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDEyMDdkOGM1NWE0NTA5OGM0Njk0MGIzYjRmNTU2NmM2MmJjNzZlZmEuLmYyNzMwNjdlOWY3NjNh
NTk1MzY1MGQ4YWMyZTIzODUyZDU3MjUwODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAor
MjAyMS0xMC0xMyAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFNjcm9sbCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBUZXh0IGRpcmVjdGl2ZSBwYXJz
aW5nIGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwtdG8tdGV4dC1m
cmFnbWVudC8KKyAKKyAgICAgICAgTWFrZSBhIG5ldyBjbGFzcyB0byBoYW5kbGUgdGhlIHBhcnNp
bmcgb2YgdGhlIHRleHQgZGlyZWN0aXZlLgorICAgICAgICBUaGUgcGFyc2luZyBpcyBkZWZpbmVk
IGluIHRoZSBsaW5rZWQgc3BlYy4gCisgICAgICAgIFRoZSBkaXJlY3RpdmUgc2hvdWxkIGJlIHN0
b3JlZCBvbiBEb2N1bWVudCBhbmQgaW4gYSBmdXR1cmUKKyAgICAgICAgcGF0Y2ggdGhlIG1hdGNo
aW5nIGFsZ29yaXRobSB3aWxsIGZpbmQgdGhlIHRleHQgYW5kIHNjcm9sbAorICAgICAgICBhbmQg
aGlnaGxpZ2h0IGl0LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpmcmFnbWVudERpcmVjdGl2ZSBjb25zdCk6CisgICAgICAg
ICogZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcik6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVj
dGl2ZSk6CisgICAgICAgICogZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OnBhcnNlZFRleHREaXJl
Y3RpdmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpmcmFn
bWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNl
cjo6dXJsRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXI6OmlzVmFsaWQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9GcmFnbWVudCk6CisgICAgICAgICogcGxhdGZvcm0v
TG9nZ2luZy5oOgorCiAyMDIxLTEwLTEyICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJRkNdIExhenlMaW5lQnJlYWtJdGVyYXRvciBzaG91bGQgYmUgY29y
cmVjdGx5IHNldHVwIGZvciB0aGUgcHJpb3IgY29udGV4dCBjYXNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCmluZGV4IDZhOWU3MDdmNjc2ZjBkZDE1MDEwYmE2MzdiNzViZDY4MTNlNTc5ZTMu
LmViMzlhZGZmNDE4YTMxNWQyODhiOGU0MGEwOWQ4ZmNkNGMwMDUzYmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCkBAIC0xMTQ5LDYgKzExNDksMTggQEAgU2NyZWVuQ2FwdHVyZUVuYWJs
ZWQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBm
YWxzZQorICAgICAgCitTY3JvbGxUb1RleHRGcmFnbWVudEVuYWJsZWQ6CisgIHR5cGU6IGJvb2wK
KyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCIKKyAgaHVtYW5S
ZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFNjcm9sbCBUbyBUZXh0IEZyYWdtZW50IgorICBk
ZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZh
dWx0OiBmYWxzZQogCiBTZXJ2ZXJUaW1pbmdFbmFibGVkOgogICB0eXBlOiBib29sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDUyOGVjZWIxZDM5MjNhMDE0ZDdmMTUxNTljNmI3ZjM1M2ZiMzQ5ZmIuLjQ2ODU5
OTM0ZjYyMzgyYWM2NTI1YWFjY2M0NjNkYjNhMmFkYzQ3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC05
MjEsNiArOTIxLDcgQEAgZG9tL0V4Y2VwdGlvbkRhdGEuY3BwCiBkb20vRXh0ZW5zaW9uU3R5bGVT
aGVldHMuY3BwCiBkb20vRm9jdXNFdmVudC5jcHAKIGRvbS9Gb3JtRGF0YUV2ZW50LmNwcAorZG9t
L0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcAogZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAog
ZG9tL0dDUmVhY2hhYmxlUmVmLmNwcAogZG9tL0hhc2hDaGFuZ2VFdmVudC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1OWQ2
ZWVmNzEwYjM5YzI4YWMxNGIyN2Y1MzE5MGM1MmU4NGM5MzA3Li45Y2EwMTQ0NjhlZjllYzUyNTI0
MWIxMzAwMDliMTE5ZGJiMmY5NzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDM2LDYgKzg0MzYsOCBAQAogCQk0NDNGMDQy
NjBFNzVDOEZCMDA3RTU0MDcgLyogTmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrU3RhdGVOb3RpZmllcklPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ0RDRFMjEwRjcwOEIyRTAwMzE1OEUw
IC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQ1MjEwREQyNUQ2MUVGRjAwM0EyRUQ4IC8qIEFwcEhpZ2hsaWdodC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBIaWdobGlnaHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ1NjEyQUEyNzBGNkYzNzAwNzU4Qzk3IC8qIEZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ1NjEyQUIyNzBGNkYz
ODAwNzU4Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZy
YWdtZW50RGlyZWN0aXZlUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0
NTc3NUU0MjA0NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1Nzc1RTkyMDQ3MzAzQjAwOERDRTVEIC8qIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NDZEQzY0NjI0QTI5RDlCMDA2MUYzOTAgLyogUGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MDY3OSw2ICszMDY4MSw4IEBACiAJCQkJMkE2NjQzOTEyNkEwMDZBRjAwQzE0N0ExIC8qIEZvcm1E
YXRhRXZlbnQuY3BwICovLAogCQkJCTJBNjY0MzkwMjZBMDA2QUYwMEMxNDdBMSAvKiBGb3JtRGF0
YUV2ZW50LmggKi8sCiAJCQkJMkE2NjQzOEUyNkEwMDZBRTAwQzE0N0ExIC8qIEZvcm1EYXRhRXZl
bnQuaWRsICovLAorCQkJCTQ0NTYxMkFBMjcwRjZGMzcwMDc1OEM5NyAvKiBGcmFnbWVudERpcmVj
dGl2ZVBhcnNlci5jcHAgKi8sCisJCQkJNDQ1NjEyQUIyNzBGNkYzODAwNzU4Qzk3IC8qIEZyYWdt
ZW50RGlyZWN0aXZlUGFyc2VyLmggKi8sCiAJCQkJQTg1MzEyM0MxMUQwNDcxQjAwRDREMDc3IC8q
IEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oICovLAogCQkJCUNEOTJGNTE3MjI2MTAzODIw
MEY4N0JCMyAvKiBGdWxsc2NyZWVuTWFuYWdlci5jcHAgKi8sCiAJCQkJQ0Q5MkY1MTYyMjYxMDM4
MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IGEyMjU0ZDE1OGU0Mzk2YWE5MTdiMjU2Yjc2MDI0MWRmMDBmNjZkN2IuLmM1MmRlZjNiYWYy
MzI4NWIwNGEwYWNiMTFkMTRmMjVhMjQ2MzkzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0x
NjMxLDYgKzE2MzEsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgRWRpdG9yJiBlZGl0b3IoKSBjb25z
dCB7IHJldHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSB7
IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQorICAgICAgICAKKyAgICB2b2lkIHNl
dEZyYWdtZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJhZ21lbnREaXJlY3RpdmUpIHsgbV9m
cmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZlOyB9CisgICAgY29uc3QgU3RyaW5n
JiBmcmFnbWVudERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnREaXJlY3RpdmU7
IH0KIAogICAgIHZvaWQgcHJlcGFyZUNhbnZhc2VzRm9yRGlzcGxheUlmTmVlZGVkKCk7CiAgICAg
dm9pZCBjbGVhckNhbnZhc1ByZXBhcmF0aW9uKEhUTUxDYW52YXNFbGVtZW50Jik7CkBAIC0yMjI2
LDYgKzIyMjksOCBAQCBwcml2YXRlOgogCiAgICAgVW5pcXVlUmVmPEVkaXRvcj4gbV9lZGl0b3I7
CiAgICAgVW5pcXVlUmVmPEZyYW1lU2VsZWN0aW9uPiBtX3NlbGVjdGlvbjsKKyAgICAgICAgCisg
ICAgU3RyaW5nIG1fZnJhZ21lbnREaXJlY3RpdmU7CiAKICAgICBMaXN0SGFzaFNldDxSZWY8RWxl
bWVudD4+IG1fdG9wTGF5ZXJFbGVtZW50czsKICAgICBVbmlxdWVSZWY8V2hpdGVzcGFjZUNhY2hl
PiBtX3doaXRlc3BhY2VDYWNoZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFn
bWVudERpcmVjdGl2ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkZmM2ZDJkOWIwYzgyM2IwODVlYjdiMTY4ZDlh
NGExMzM5N2ZlMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuY3BwCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgiCisK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcihjb25zdCBVUkwmIHVybCkK
K3sKKyAgICBBU0NJSUxpdGVyYWwgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIgPSAiOn46Il9z
OworICAgIGF1dG8gZnJhZ21lbnRJZGVudGlmaWVyID0gdXJsLmZyYWdtZW50SWRlbnRpZmllcigp
OworICAgIAorICAgIGlmIChmcmFnbWVudElkZW50aWZpZXIuaXNFbXB0eSgpKSB7CisgICAgICAg
IG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElkZW50aWZpZXI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9
IGZyYWdtZW50SWRlbnRpZmllci5maW5kKFN0cmluZ1ZpZXcoZnJhZ21lbnREaXJlY3RpdmVEZWxp
bWl0ZXIpKTsKKyAgICAKKyAgICBpZiAoZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9PSBub3RGb3Vu
ZCkgeworICAgICAgICBtX3JlbWFpbmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVy
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3Rp
dmUgPSBmcmFnbWVudElkZW50aWZpZXIuc3Vic3RyaW5nKGZyYWdtZW50RGlyZWN0aXZlU3RhcnQg
KyBmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlci5sZW5ndGgoKSk7CisgICAgCisgICAgLy8gRklY
TUU6IHRoaXMgbmVlZHMgdG8gYmUgc2V0IG9uIHRoZSBvcmlnaW5hbCBVUkwKKyAgICBtX3JlbWFp
bmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVyLmxlZnQoZnJhZ21lbnREaXJlY3Rp
dmVTdGFydCk7CisgICAgCisgICAgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShmcmFnbWVudERpcmVj
dGl2ZSk7CisgICAgCisgICAgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZl
LnRvU3RyaW5nKCk7CisgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKK30KKwordm9pZCBGcmFnbWVudERp
cmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmdWaWV3IGZyYWdtZW50
RGlyZWN0aXZlKQoreworICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8
PCAiIHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIFZlY3RvcjxQYXJzZWRU
ZXh0RGlyZWN0aXZlPiBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJpbmcgdGV4dERpcmVj
dGl2ZVByZWZpeCA9ICJ0ZXh0PSJfczsKKworICAgIGF1dG8gZGlyZWN0aXZlcyA9IGZyYWdtZW50
RGlyZWN0aXZlLnNwbGl0KCcmJyk7CisgICAgCisgICAgTE9HX1dJVEhfU1RSRUFNKFRleHRGcmFn
bWVudCwgc3RyZWFtIDw8ICIgcGFyc2VGcmFnbWVudERpcmVjdGl2ZTogIik7CisgICAgCisgICAg
Zm9yIChhdXRvIGRpcmVjdGl2ZSA6IGRpcmVjdGl2ZXMpIHsKKyAgICAgICAgaWYgKCFkaXJlY3Rp
dmUuc3RhcnRzV2l0aCh0ZXh0RGlyZWN0aXZlUHJlZml4KSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAKKyAgICAgICAgYXV0byB0ZXh0RGlyZWN0aXZlID0gZGlyZWN0aXZlLnN1YnN0
cmluZyh0ZXh0RGlyZWN0aXZlUHJlZml4Lmxlbmd0aCgpKTsKKyAgICAgICAgCisgICAgICAgIERl
cXVlPFN0cmluZz4gdG9rZW5zOworICAgICAgICBib29sIGNvbnRhaW5zRW1wdHlUb2tlbiA9IGZh
bHNlOworICAgICAgICBmb3IgKGF1dG8gdG9rZW4gOiB0ZXh0RGlyZWN0aXZlLnNwbGl0KCcsJykp
IHsKKyAgICAgICAgICAgIGlmICh0b2tlbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBM
T0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBlbXB0eSB0b2tlbiAiKTsK
KyAgICAgICAgICAgICAgICBjb250YWluc0VtcHR5VG9rZW4gPSB0cnVlOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdG9rZW5zLmFwcGVuZCh0b2tl
bi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29udGFpbnNFbXB0eVRva2Vu
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIC8vIEZJWE1FOiBhZGQgZGVjb2Rpbmcg
Zm9yICUgZW5jb2RlZCBzdHJpbmdzLgorICAgICAgICBpZiAodG9rZW5zLnNpemUoKSA+IDQgfHwg
dG9rZW5zLnNpemUoKSA8IDEpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJh
Z21lbnQsIHN0cmVhbSA8PCAiIHdyb25nIG51bWJlciBvZiB0b2tlbnMgIik7CisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUGFyc2VkVGV4dERpcmVj
dGl2ZSBwYXJzZWRUZXh0RGlyZWN0aXZlOworICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5m
aXJzdCgpLmVuZHNXaXRoKCctJykgJiYgdG9rZW5zLmZpcnN0KCkubGVuZ3RoKCkgPiAxKSB7Cisg
ICAgICAgICAgICB0b2tlbnMuZmlyc3QoKS50cnVuY2F0ZSh0b2tlbnMuZmlyc3QoKS5sZW5ndGgo
KSAtIDIpOworICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5wcmVmaXggPSB0b2tlbnMu
Zmlyc3QoKTsKKyAgICAgICAgICAgIHRva2Vucy5yZW1vdmVGaXJzdCgpOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLmxhc3QoKS5zdGFydHNXaXRoKCctJykgJiYgdG9r
ZW5zLmxhc3QoKS5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgIHRva2Vucy5sYXN0KCkucmVt
b3ZlKDApOworICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5zdWZmaXggPSB0b2tlbnMu
dGFrZUxhc3QoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5zaXpl
KCkgIT0gMSAmJiB0b2tlbnMuc2l6ZSgpICE9IDIpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NU
UkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIG5vdCBlbm91Z2ggdG9rZW5zICIpOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhcnNlZFRl
eHREaXJlY3RpdmUudGV4dFN0YXJ0ID0gdG9rZW5zLmZpcnN0KCk7CisgICAgICAgIAorICAgICAg
ICBpZiAodG9rZW5zLnNpemUoKSA9PSAyKQorICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2
ZS50ZXh0RW5kID0gdG9rZW5zLmxhc3QoKTsKKyAgICAgICAgCisgICAgICAgIHBhcnNlZFRleHRE
aXJlY3RpdmVzLmFwcGVuZChwYXJzZWRUZXh0RGlyZWN0aXZlKTsKKyAgICB9CisgICAgCisgICAg
bV9wYXJzZWRUZXh0RGlyZWN0aXZlcyA9IHBhcnNlZFRleHREaXJlY3RpdmVzOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2
ZVBhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NmJlYzFmM2M0ZmFmZmVmOWY1OWQ5ZWI3YTc5ZmQyYWI0
Zjk4Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
cnVjdCBQYXJzZWRUZXh0RGlyZWN0aXZlIHsKKyAgICBTdHJpbmcgdGV4dFN0YXJ0OworICAgIFN0
cmluZyB0ZXh0RW5kOworICAgIFN0cmluZyBwcmVmaXg7CisgICAgU3RyaW5nIHN1ZmZpeDsKK307
CisKK2NsYXNzIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcihjb25zdCBVUkwmKTsKKyAgICAKKyAgICBjb25zdCBW
ZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4mIHBhcnNlZFRleHREaXJlY3RpdmVzKCkgY29uc3Qg
eyByZXR1cm4gbV9wYXJzZWRUZXh0RGlyZWN0aXZlczsgfTsKKyAgICBTdHJpbmdWaWV3IGZyYWdt
ZW50RGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfTsKKyAg
ICBTdHJpbmdWaWV3IHJlbWFpbmluZ1VSTEZyYWdtZW50KCkgY29uc3QgeyByZXR1cm4gbV9yZW1h
aW5pbmdVUkxGcmFnbWVudDsgfTsKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAg
bV9pc1ZhbGlkOyB9OworICAgIAorcHJpdmF0ZToKKyAgICBGcmFnbWVudERpcmVjdGl2ZVBhcnNl
cigpID0gZGVsZXRlOworICAgIHZvaWQgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmdWaWV3
KTsKKyAgICAKKyAgICBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4gbV9wYXJzZWRUZXh0RGly
ZWN0aXZlczsKKyAgICBTdHJpbmdWaWV3IG1fcmVtYWluaW5nVVJMRnJhZ21lbnQ7CisgICAgU3Ry
aW5nVmlldyBtX2ZyYWdtZW50RGlyZWN0aXZlOworICAgIGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2Ug
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAppbmRleCA1ZGEzMDA0Mjg1NzExMDk1ZDIxZTE5MGMzYzY5NTEyMTg4MjU1ZWUxLi5jMTI4ZDE0
MGJkNzI5MjU3ZTgzMjA2ZTE2ZDg4YzA0YzliNjVhOTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUg
IkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUZsYXR0ZW5pbmcuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtMjIxNSw3
ICsyMjE2LDI1IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0b3JlU2Nyb2xsYmFyKCkKIAogYm9vbCBG
cmFtZVZpZXc6OnNjcm9sbFRvRnJhZ21lbnQoY29uc3QgVVJMJiB1cmwpCiB7CisgICAgQVNTRVJU
KGZyYW1lKCkuZG9jdW1lbnQoKSk7CisgICAgUmVmIGRvY3VtZW50ID0gKmZyYW1lKCkuZG9jdW1l
bnQoKTsKKyAgICAKICAgICBhdXRvIGZyYWdtZW50SWRlbnRpZmllciA9IHVybC5mcmFnbWVudElk
ZW50aWZpZXIoKTsKKyAgICAKKyAgICBpZiAoZG9jdW1lbnQtPnNldHRpbmdzKCkuc2Nyb2xsVG9U
ZXh0RnJhZ21lbnRFbmFibGVkKCkpIHsKKyAgICAgICAgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIg
ZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIodXJsKTsKKyAgICAgICAgCisgICAgICAgIGlmIChmcmFn
bWVudERpcmVjdGl2ZVBhcnNlci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGF1dG8gZnJhZ21l
bnREaXJlY3RpdmUgPSBmcmFnbWVudERpcmVjdGl2ZVBhcnNlci5mcmFnbWVudERpcmVjdGl2ZSgp
LnRvU3RyaW5nKCk7CisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RnJhZ21lbnREaXJlY3RpdmUo
ZnJhZ21lbnREaXJlY3RpdmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIHBhcnNl
ZFRleHREaXJlY3RpdmVzID0gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIucGFyc2VkVGV4dERpcmVj
dGl2ZXMoKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTY3JvbGwgdG8gdGhlIHJhbmdlIHNwZWNp
ZmllZCBieSB0aGUgZGlyZWN0aXZlLgorICAgICAgICAgICAgCisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgZnJhZ21lbnRJZGVudGlmaWVyID0gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIucmVt
YWluaW5nVVJMRnJhZ21lbnQoKTsKKyAgICB9CisgICAgCiAgICAgaWYgKHNjcm9sbFRvRnJhZ21l
bnRJbnRlcm5hbChmcmFnbWVudElkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDVjZGQ4YjNiOTVmNDFhMzhiMzI2Y2YwOTdh
OWRmMzY5ZGRhODhiZTUuLjNmYmU0MTdiZTk4MWI3NWU3NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTExNSw2ICsxMTUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgTShTdHlsZVNoZWV0cykgXAogICAgIE0oU1ZHKSBcCiAgICAgTShU
ZXh0QXV0b3NpemluZykgXAorICAgIE0oVGV4dEZyYWdtZW50KSBcCiAgICAgTShUZXh0U2hhcGlu
ZykgXAogICAgIE0oVGlsaW5nKSBcCiAgICAgTShUaHJlYWRpbmcpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443639</attachid>
            <date>2021-11-08 17:27:18 -0800</date>
            <delta_ts>2021-11-08 18:38:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211108172717.patch</filename>
            <type>text/plain</type>
            <size>8656</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY3ZGZiOTVmMzhhZGE1NTgyNmU2YTg3
YjE3ZmJiNWE1YWQ2ZDk1NWIuLmRlNmU1ZjMzMGI0YzE3NjdiYzZmOGMxZDNjYTEwMDgzNzZmNGE3
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTEtMDggIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisgICAg
ICAgIAorICAgICAgICBUZXh0IGRpcmVjdGl2ZSBwYXJzaW5nIGZvciAKKyAgICAgICAgaHR0cHM6
Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwtdG8tdGV4dC1mcmFnbWVudC8KKworICAgICAgICAqIFNj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAy
MS0xMS0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBFbmFibGluZyAibWVkaWEgc291cmNlIGlubGluZSBwYWludGluZyIgYnkgZGVmYXVsdCBzaG91
bGQgd29yayB3aGVuIHVzaW5nIEdQVSBQcm9jZXNzIGZvciBtZWRpYQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU1
MjNiMmMzMGZlOTY5ZjJjNTc2YTVhOTg3NjI5MzkzMTcyY2VlZTAuLjNiZDMxMDRlMmFkN2RmYWQ3
ODdmM2FkYWQxYTBlZmY3MWQ0ZDA2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAy
MS0xMS0wOCAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIFNjcm9sbCBUbyBUZXh0IEZyYWdtZW50IGRpcmVjdGl2ZSBwYXJzaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0MTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBUZXh0IGRpcmVjdGl2ZSBwYXJzaW5n
IGZvciAKKyAgICAgICAgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zY3JvbGwtdG8tdGV4dC1mcmFn
bWVudC8KKyAKKyAgICAgICAgTWFrZSBhIG5ldyBjbGFzcyB0byBoYW5kbGUgdGhlIHBhcnNpbmcg
b2YgdGhlIHRleHQgZGlyZWN0aXZlLgorICAgICAgICBUaGUgcGFyc2luZyBpcyBkZWZpbmVkIGlu
IHRoZSBsaW5rZWQgc3BlYy4gCisgICAgICAgIFRoZSBkaXJlY3RpdmUgc2hvdWxkIGJlIHN0b3Jl
ZCBvbiBEb2N1bWVudCBhbmQgaW4gYSBmdXR1cmUKKyAgICAgICAgcGF0Y2ggdGhlIG1hdGNoaW5n
IGFsZ29yaXRobSB3aWxsIGZpbmQgdGhlIHRleHQgYW5kIHNjcm9sbAorICAgICAgICBhbmQgaGln
aGxpZ2h0IGl0LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpmcmFnbWVudERpcmVjdGl2ZSBjb25zdCk6CisgICAgICAgICog
cGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxU
b0ZyYWdtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmg6CisKIDIwMjEtMTEtMDgg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2Vi
R1BVXSBDb25uZWN0IEpTIGJpbmRpbmdzIGNvZGUgdG8gaW50ZXJuYWwgV2ViR1BVIGludGVyZmFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA0NzMyODc3M2MzNDg3YjAyYTA0ZjA4
Njc1YWZmYzQ1OWNjMGY5ZTljLi4wZjBlZDNlMTQ1M2Y1YTA0OWIyNTc3OGIyM2VhM2NjOGQwYWMz
NmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTIwNSw2ICsxMjA1LDE4IEBA
IFNjcmVlbkNhcHR1cmVFbmFibGVkOgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3Jl
OgogICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICAgIAorU2Nyb2xsVG9UZXh0RnJhZ21lbnRFbmFi
bGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiU2Nyb2xsIFRvIFRleHQg
RnJhZ21lbnQiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBTY3JvbGwgVG8g
VGV4dCBGcmFnbWVudCIKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAg
IGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBX
ZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKIAogU2VydmVyVGltaW5nRW5hYmxlZDoKICAg
dHlwZTogYm9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2NDkzMjE1ZGJkNjhlMGYxMmJhMmJmODdjNTRi
ODQyN2ZjN2VkZTVjLi5iZDk4NGYzY2U0NjVlODFmMDI4YTkyZWUwYmFhMGUzNWUxNzQ0MTZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtOTQ5LDYgKzk0OSw3IEBAIGRvbS9FeGNlcHRpb25EYXRhLmNwcAog
ZG9tL0V4dGVuc2lvblN0eWxlU2hlZXRzLmNwcAogZG9tL0ZvY3VzRXZlbnQuY3BwCiBkb20vRm9y
bURhdGFFdmVudC5jcHAKK2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKIGRvbS9GdWxs
c2NyZWVuTWFuYWdlci5jcHAKIGRvbS9HQ1JlYWNoYWJsZVJlZi5jcHAKIGRvbS9IYXNoQ2hhbmdl
RXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZmQ1OTE4YTg1NGRlOGE5OGYyZWZiMTQwNDc4MWZjZDdjYWQ5NDcwZi4u
MzlkNGE4ZWNmMjM0YTU5NGI4MjBjNjZjMWM2MmI3OTdhYTAwOGIwMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODczOCw2ICs4
NzM4LDggQEAKIAkJNDQzRjA0MjYwRTc1QzhGQjAwN0U1NDA3IC8qIE5ldHdvcmtTdGF0ZU5vdGlm
aWVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29y
a1N0YXRlTm90aWZpZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NEQ0
RTIxMEY3MDhCMkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTIxMEREMjVENjFFRkYwMDNBMkVEOCAv
KiBBcHBIaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwSGln
aGxpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0NTYxMkFBMjcwRjZGMzcw
MDc1OEM5NyAvKiBGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0NTYxMkFCMjcwRjZGMzgwMDc1OEM5NyAvKiBGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NDU3NzVFNDIwNDcyRjczMDA4RENFNUQgLyogTG9jYWxEZWZhdWx0
U3lzdGVtQXBwZWFyYW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTc3NUU5MjA0NzMwM0Iw
MDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ2REM2NDYyNEEyOUQ5QjAwNjFGMzkw
IC8qIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzEzMDIsNiArMzEzMDQsOCBAQAogCQkJCTJBNjY0MzkxMjZBMDA2
QUYwMEMxNDdBMSAvKiBGb3JtRGF0YUV2ZW50LmNwcCAqLywKIAkJCQkyQTY2NDM5MDI2QTAwNkFG
MDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5oICovLAogCQkJCTJBNjY0MzhFMjZBMDA2QUUwMEMx
NDdBMSAvKiBGb3JtRGF0YUV2ZW50LmlkbCAqLywKKwkJCQk0NDU2MTJBQTI3MEY2RjM3MDA3NThD
OTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuY3BwICovLAorCQkJCTQ0NTYxMkFCMjcwRjZG
MzgwMDc1OEM5NyAvKiBGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oICovLAogCQkJCUE4NTMxMjND
MTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCAqLywKIAkJ
CQlDRDkyRjUxNzIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuY3BwICovLAog
CQkJCUNEOTJGNTE2MjI2MTAzODIwMEY4N0JCMyAvKiBGdWxsc2NyZWVuTWFuYWdlci5oICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAppbmRleCA1OTI1NzRiZTNjZmUyZjI4ZGFlNzY5MzhmYzE2Y2IxNDUz
Yjk1M2ViLi5jZDAzZGQxNzRlNzIzOTk4MjJjZWFhNGNiODQ3MmM0YzE4MmNkMmE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaApAQCAtMTY0MCw2ICsxNjQwLDkgQEAgcHVibGljOgogICAgIGNvbnN0IEVk
aXRvciYgZWRpdG9yKCkgY29uc3QgeyByZXR1cm4gbV9lZGl0b3I7IH0KICAgICBGcmFtZVNlbGVj
dGlvbiYgc2VsZWN0aW9uKCkgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KICAgICBjb25zdCBGcmFt
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KKyAg
ICAgICAgCisgICAgdm9pZCBzZXRGcmFnbWVudERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIGZyYWdt
ZW50RGlyZWN0aXZlKSB7IG1fZnJhZ21lbnREaXJlY3RpdmUgPSBmcmFnbWVudERpcmVjdGl2ZTsg
fQorICAgIGNvbnN0IFN0cmluZyYgZnJhZ21lbnREaXJlY3RpdmUoKSBjb25zdCB7IHJldHVybiBt
X2ZyYWdtZW50RGlyZWN0aXZlOyB9CiAKICAgICB2b2lkIHByZXBhcmVDYW52YXNlc0ZvckRpc3Bs
YXlJZk5lZWRlZCgpOwogICAgIHZvaWQgY2xlYXJDYW52YXNQcmVwYXJhdGlvbihIVE1MQ2FudmFz
RWxlbWVudCYpOwpAQCAtMjIzNSw2ICsyMjM4LDggQEAgcHJpdmF0ZToKIAogICAgIFVuaXF1ZVJl
ZjxFZGl0b3I+IG1fZWRpdG9yOwogICAgIFVuaXF1ZVJlZjxGcmFtZVNlbGVjdGlvbj4gbV9zZWxl
Y3Rpb247CisgICAgICAgIAorICAgIFN0cmluZyBtX2ZyYWdtZW50RGlyZWN0aXZlOwogCiAgICAg
TGlzdEhhc2hTZXQ8UmVmPEVsZW1lbnQ+PiBtX3RvcExheWVyRWxlbWVudHM7CiAgICAgVW5pcXVl
UmVmPFdoaXRlc3BhY2VDYWNoZT4gbV93aGl0ZXNwYWNlQ2FjaGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKaW5kZXggMzI5NWU4MDg0MjgxZjM0OGRhNWNiOTY1NGUyZTA4NDBjNzMyYThiNi4u
ZjA4ZTJkNTZkYWMxZjYyMmJhMTk3ZDViOGFlN2MzNTUxMmNkMTY5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
ICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlICJGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVGbGF0dGVuaW5nLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAg
LTIyMTYsNyArMjIxNywyNSBAQCB2b2lkIEZyYW1lVmlldzo6cmVzdG9yZVNjcm9sbGJhcigpCiAK
IGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxUb0ZyYWdtZW50KGNvbnN0IFVSTCYgdXJsKQogeworICAg
IEFTU0VSVChmcmFtZSgpLmRvY3VtZW50KCkpOworICAgIFJlZiBkb2N1bWVudCA9ICpmcmFtZSgp
LmRvY3VtZW50KCk7CisgICAgCiAgICAgYXV0byBmcmFnbWVudElkZW50aWZpZXIgPSB1cmwuZnJh
Z21lbnRJZGVudGlmaWVyKCk7CisgICAgCisgICAgaWYgKGRvY3VtZW50LT5zZXR0aW5ncygpLnNj
cm9sbFRvVGV4dEZyYWdtZW50RW5hYmxlZCgpKSB7CisgICAgICAgIEZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyIGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKHVybCk7CisgICAgICAgIAorICAgICAgICBp
ZiAoZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBhdXRv
IGZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuZnJhZ21lbnREaXJl
Y3RpdmUoKS50b1N0cmluZygpOworICAgICAgICAgICAgZG9jdW1lbnQtPnNldEZyYWdtZW50RGly
ZWN0aXZlKGZyYWdtZW50RGlyZWN0aXZlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXV0
byBwYXJzZWRUZXh0RGlyZWN0aXZlcyA9IGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLnBhcnNlZFRl
eHREaXJlY3RpdmVzKCk7CisgICAgICAgICAgICAvLyBGSVhNRTogU2Nyb2xsIHRvIHRoZSByYW5n
ZSBzcGVjaWZpZWQgYnkgdGhlIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgIAorICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIGZyYWdtZW50SWRlbnRpZmllciA9IGZyYWdtZW50RGlyZWN0aXZlUGFy
c2VyLnJlbWFpbmluZ1VSTEZyYWdtZW50KCk7CisgICAgfQorICAgIAogICAgIGlmIChzY3JvbGxU
b0ZyYWdtZW50SW50ZXJuYWwoZnJhZ21lbnRJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCA1Y2RkOGIzYjk1ZjQxYTM4YjMy
NmNmMDk3YTlkZjM2OWRkYTg4YmU1Li4zZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZk
NzMwZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC0xMTUsNiArMTE1LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oU3R5bGVTaGVldHMpIFwKICAgICBNKFNWRykgXAog
ICAgIE0oVGV4dEF1dG9zaXppbmcpIFwKKyAgICBNKFRleHRGcmFnbWVudCkgXAogICAgIE0oVGV4
dFNoYXBpbmcpIFwKICAgICBNKFRpbGluZykgXAogICAgIE0oVGhyZWFkaW5nKSBcCg==
</data>
<flag name="commit-queue"
          id="468420"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443645</attachid>
            <date>2021-11-08 18:32:46 -0800</date>
            <delta_ts>2021-11-08 18:44:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211108183245.patch</filename>
            <type>text/plain</type>
            <size>17410</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY3ZGZiOTVmMzhhZGE1NTgyNmU2YTg3
YjE3ZmJiNWE1YWQ2ZDk1NWIuLmY3ODhiZWUyZGFlM2VkZjE2ZThlYmU4ZjRjOTQ4ZDMyN2NlYTM0
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTEtMDggIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAg
ICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisgICAgICAgIGh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTEtMDgg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxp
bmcgIm1lZGlhIHNvdXJjZSBpbmxpbmUgcGFpbnRpbmciIGJ5IGRlZmF1bHQgc2hvdWxkIHdvcmsg
d2hlbiB1c2luZyBHUFUgUHJvY2VzcyBmb3IgbWVkaWEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNTIzYjJjMzBm
ZTk2OWYyYzU3NmE1YTk4NzYyOTM5MzE3MmNlZWUwLi5hNzY5NmZiYTU5ODcxOWE1MWQwYjcxY2Iw
ZGRlYjA4MmZhNDRmNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMTEtMDgg
IE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3Jv
bGwgVG8gVGV4dCBGcmFnbWVudCBkaXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisg
ICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisg
CisgICAgICAgIE1ha2UgYSBuZXcgY2xhc3MgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIG9mIHRoZSB0
ZXh0IGRpcmVjdGl2ZS4KKyAgICAgICAgVGhlIHBhcnNpbmcgaXMgZGVmaW5lZCBpbiB0aGUgbGlu
a2VkIHNwZWMuIAorICAgICAgICBUaGUgZGlyZWN0aXZlIHNob3VsZCBiZSBzdG9yZWQgb24gRG9j
dW1lbnQgYW5kIGluIGEgZnV0dXJlCisgICAgICAgIHBhdGNoIHRoZSBtYXRjaGluZyBhbGdvcml0
aG0gd2lsbCBmaW5kIHRoZSB0ZXh0IGFuZCBzY3JvbGwKKyAgICAgICAgYW5kIGhpZ2hsaWdodCBp
dC4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpzZXRGcmFnbWVudERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6ZnJhZ21lbnREaXJlY3RpdmUgY29uc3QpOgorICAgICAgICAqIGRvbS9GcmFn
bWVudERpcmVjdGl2ZVBhcnNlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21l
bnREaXJlY3RpdmVQYXJzZXI6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToK
KyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdt
ZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyOjpyZW1haW5pbmdVUkxGcmFnbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNWYWxpZCBjb25zdCk6CisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxUb0ZyYWdt
ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmg6CisKIDIwMjEtMTEtMDggIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBD
b25uZWN0IEpTIGJpbmRpbmdzIGNvZGUgdG8gaW50ZXJuYWwgV2ViR1BVIGludGVyZmFjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA0NzMyODc3M2MzNDg3YjAyYTA0ZjA4Njc1YWZm
YzQ1OWNjMGY5ZTljLi4wZjBlZDNlMTQ1M2Y1YTA0OWIyNTc3OGIyM2VhM2NjOGQwYWMzNmNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTIwNSw2ICsxMjA1LDE4IEBAIFNjcmVl
bkNhcHR1cmVFbmFibGVkOgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgogICAg
ICAgZGVmYXVsdDogZmFsc2UKKyAgICAgIAorU2Nyb2xsVG9UZXh0RnJhZ21lbnRFbmFibGVkOgor
ICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiU2Nyb2xsIFRvIFRleHQgRnJhZ21l
bnQiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBTY3JvbGwgVG8gVGV4dCBG
cmFnbWVudCIKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1
bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3Jl
OgorICAgICAgZGVmYXVsdDogZmFsc2UKIAogU2VydmVyVGltaW5nRW5hYmxlZDoKICAgdHlwZTog
Ym9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCA2NDkzMjE1ZGJkNjhlMGYxMmJhMmJmODdjNTRiODQyN2Zj
N2VkZTVjLi5iZDk4NGYzY2U0NjVlODFmMDI4YTkyZWUwYmFhMGUzNWUxNzQ0MTZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtOTQ5LDYgKzk0OSw3IEBAIGRvbS9FeGNlcHRpb25EYXRhLmNwcAogZG9tL0V4
dGVuc2lvblN0eWxlU2hlZXRzLmNwcAogZG9tL0ZvY3VzRXZlbnQuY3BwCiBkb20vRm9ybURhdGFF
dmVudC5jcHAKK2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKIGRvbS9GdWxsc2NyZWVu
TWFuYWdlci5jcHAKIGRvbS9HQ1JlYWNoYWJsZVJlZi5jcHAKIGRvbS9IYXNoQ2hhbmdlRXZlbnQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZmQ1OTE4YTg1NGRlOGE5OGYyZWZiMTQwNDc4MWZjZDdjYWQ5NDcwZi4uNmNhMmMy
YTE3YzE3NTgxNjgyNGUyMzZmMzA1ZjY4ZTg2NTU5OTJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODczOCw2ICs4NzM4LDgg
QEAKIAkJNDQzRjA0MjYwRTc1QzhGQjAwN0U1NDA3IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVySU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1N0YXRl
Tm90aWZpZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NEQ0RTIxMEY3
MDhCMkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTIxMEREMjVENjFFRkYwMDNBMkVEOCAvKiBBcHBI
aWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwSGlnaGxpZ2h0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0NTYxMkFBMjcwRjZGMzcwMDc1OEM5
NyAvKiBGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFn
bWVudERpcmVjdGl2ZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0
NTYxMkFCMjcwRjZGMzgwMDc1OEM5NyAvKiBGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NDU3NzVFNDIwNDcyRjczMDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVt
QXBwZWFyYW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTc3NUU5MjA0NzMwM0IwMDhEQ0U1
RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ2REM2NDYyNEEyOUQ5QjAwNjFGMzkwIC8qIFBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTg4OTgsMTEgKzE4OTAwLDExIEBACiAJCTFBNTY5Q0M0MEQ3RTJCNjAwMDdD
Mzk4MyAvKiBicmlkZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAotCQkJCTFBNTY5Q0UyMEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjICovLAogCQkJCTU5OUU3NThG
MTEwNTVBMUYwMEQ5MDRGQSAvKiBCcmlkZ2UuaCAqLywKIAkJCQkxQTcxRDU3OTBGMzM4MTkwMDBG
OUNFNEUgLyogSWRlbnRpZmllclJlcC5jcHAgKi8sCiAJCQkJMUE3MUQ1N0EwRjMzODE5MDAwRjlD
RTRFIC8qIElkZW50aWZpZXJSZXAuaCAqLywKIAkJCQk1OUI1OTc3MTExMDg2NTU2MDA3MTU5RTgg
LyoganNjICovLAorCQkJCTFBNTY5Q0UyMEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjICovLAogCQkJ
CTFBNTY5Q0VGMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmNwcCAqLywKIAkJCQkx
QTU2OUNGMDBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5oICovLAogCQkJCTFBNTY5
Q0YxMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX21ldGhvZC5jcHAgKi8sCkBAIC0zMTMwMiw2
ICszMTMwNCw4IEBACiAJCQkJMkE2NjQzOTEyNkEwMDZBRjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZl
bnQuY3BwICovLAogCQkJCTJBNjY0MzkwMjZBMDA2QUYwMEMxNDdBMSAvKiBGb3JtRGF0YUV2ZW50
LmggKi8sCiAJCQkJMkE2NjQzOEUyNkEwMDZBRTAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaWRs
ICovLAorCQkJCTQ0NTYxMkFBMjcwRjZGMzcwMDc1OEM5NyAvKiBGcmFnbWVudERpcmVjdGl2ZVBh
cnNlci5jcHAgKi8sCisJCQkJNDQ1NjEyQUIyNzBGNkYzODAwNzU4Qzk3IC8qIEZyYWdtZW50RGly
ZWN0aXZlUGFyc2VyLmggKi8sCiAJCQkJQTg1MzEyM0MxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdt
ZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oICovLAogCQkJCUNEOTJGNTE3MjI2MTAzODIwMEY4N0JC
MyAvKiBGdWxsc2NyZWVuTWFuYWdlci5jcHAgKi8sCiAJCQkJQ0Q5MkY1MTYyMjYxMDM4MjAwRjg3
QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDU5
MjU3NGJlM2NmZTJmMjhkYWU3NjkzOGZjMTZjYjE0NTNiOTUzZWIuLmNkMDNkZDE3NGU3MjM5OTgy
MmNlYWE0Y2I4NDcyYzRjMTgyY2QyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNjQwLDYg
KzE2NDAsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgRWRpdG9yJiBlZGl0b3IoKSBjb25zdCB7IHJl
dHVybiBtX2VkaXRvcjsgfQogICAgIEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVy
biBtX3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQorICAgICAgICAKKyAgICB2b2lkIHNldEZyYWdt
ZW50RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgZnJhZ21lbnREaXJlY3RpdmUpIHsgbV9mcmFnbWVu
dERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZlOyB9CisgICAgY29uc3QgU3RyaW5nJiBmcmFn
bWVudERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnREaXJlY3RpdmU7IH0KIAog
ICAgIHZvaWQgcHJlcGFyZUNhbnZhc2VzRm9yRGlzcGxheUlmTmVlZGVkKCk7CiAgICAgdm9pZCBj
bGVhckNhbnZhc1ByZXBhcmF0aW9uKEhUTUxDYW52YXNFbGVtZW50Jik7CkBAIC0yMjM1LDYgKzIy
MzgsOCBAQCBwcml2YXRlOgogCiAgICAgVW5pcXVlUmVmPEVkaXRvcj4gbV9lZGl0b3I7CiAgICAg
VW5pcXVlUmVmPEZyYW1lU2VsZWN0aW9uPiBtX3NlbGVjdGlvbjsKKyAgICAgICAgCisgICAgU3Ry
aW5nIG1fZnJhZ21lbnREaXJlY3RpdmU7CiAKICAgICBMaXN0SGFzaFNldDxSZWY8RWxlbWVudD4+
IG1fdG9wTGF5ZXJFbGVtZW50czsKICAgICBVbmlxdWVSZWY8V2hpdGVzcGFjZUNhY2hlPiBtX3do
aXRlc3BhY2VDYWNoZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERp
cmVjdGl2ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQ
YXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNjE5MTZlMzc4N2MzNmNjNGNhODgxNTZhOWY3Yjc4ZTYz
NTUzYjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXIuY3BwCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgiCisKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1RleHRTdHJlYW0uaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZyYWdtZW50RGlyZWN0
aXZlUGFyc2VyOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcihjb25zdCBVUkwmIHVybCkKK3sKKyAg
ICBBU0NJSUxpdGVyYWwgZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIgPSAiOn46Il9zOworICAg
IGF1dG8gZnJhZ21lbnRJZGVudGlmaWVyID0gdXJsLmZyYWdtZW50SWRlbnRpZmllcigpOworICAg
IAorICAgIGlmIChmcmFnbWVudElkZW50aWZpZXIuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fcmVt
YWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElkZW50aWZpZXI7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9IGZyYWdt
ZW50SWRlbnRpZmllci5maW5kKFN0cmluZ1ZpZXcoZnJhZ21lbnREaXJlY3RpdmVEZWxpbWl0ZXIp
KTsKKyAgICAKKyAgICBpZiAoZnJhZ21lbnREaXJlY3RpdmVTdGFydCA9PSBub3RGb3VuZCkgewor
ICAgICAgICBtX3JlbWFpbmluZ1VSTEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVyOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGF1dG8gZnJhZ21lbnREaXJlY3RpdmUgPSBm
cmFnbWVudElkZW50aWZpZXIuc3Vic3RyaW5nKGZyYWdtZW50RGlyZWN0aXZlU3RhcnQgKyBmcmFn
bWVudERpcmVjdGl2ZURlbGltaXRlci5sZW5ndGgoKSk7CisgICAgCisgICAgLy8gRklYTUU6IHRo
aXMgbmVlZHMgdG8gYmUgc2V0IG9uIHRoZSBvcmlnaW5hbCBVUkwKKyAgICBtX3JlbWFpbmluZ1VS
TEZyYWdtZW50ID0gZnJhZ21lbnRJZGVudGlmaWVyLmxlZnQoZnJhZ21lbnREaXJlY3RpdmVTdGFy
dCk7CisgICAgCisgICAgcGFyc2VGcmFnbWVudERpcmVjdGl2ZShmcmFnbWVudERpcmVjdGl2ZSk7
CisgICAgCisgICAgbV9mcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50RGlyZWN0aXZlOworICAg
IG1faXNWYWxpZCA9IHRydWU7Cit9CisKK3ZvaWQgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OnBh
cnNlRnJhZ21lbnREaXJlY3RpdmUoU3RyaW5nVmlldyBmcmFnbWVudERpcmVjdGl2ZSkKK3sKKyAg
ICBMT0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBwYXJzZUZyYWdtZW50
RGlyZWN0aXZlOiAiKTsKKyAgICAKKyAgICBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4gcGFy
c2VkVGV4dERpcmVjdGl2ZXM7CisgICAgU3RyaW5nIHRleHREaXJlY3RpdmVQcmVmaXggPSAidGV4
dD0iX3M7CisKKyAgICBhdXRvIGRpcmVjdGl2ZXMgPSBmcmFnbWVudERpcmVjdGl2ZS5zcGxpdCgn
JicpOworICAgIAorICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAi
IHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIGZvciAoYXV0byBkaXJlY3Rp
dmUgOiBkaXJlY3RpdmVzKSB7CisgICAgICAgIGlmICghZGlyZWN0aXZlLnN0YXJ0c1dpdGgodGV4
dERpcmVjdGl2ZVByZWZpeCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAg
ICAgIGF1dG8gdGV4dERpcmVjdGl2ZSA9IGRpcmVjdGl2ZS5zdWJzdHJpbmcodGV4dERpcmVjdGl2
ZVByZWZpeC5sZW5ndGgoKSk7CisgICAgICAgIAorICAgICAgICBEZXF1ZTxTdHJpbmc+IHRva2Vu
czsKKyAgICAgICAgYm9vbCBjb250YWluc0VtcHR5VG9rZW4gPSBmYWxzZTsKKyAgICAgICAgZm9y
IChhdXRvIHRva2VuIDogdGV4dERpcmVjdGl2ZS5zcGxpdCgnLCcpKSB7CisgICAgICAgICAgICBp
ZiAodG9rZW4uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFRl
eHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgZW1wdHkgdG9rZW4gIik7CisgICAgICAgICAgICAgICAg
Y29udGFpbnNFbXB0eVRva2VuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHRva2Vucy5hcHBlbmQodG9rZW4udG9TdHJpbmcoKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKGNvbnRhaW5zRW1wdHlUb2tlbikKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAvLyBGSVhNRTogYWRkIGRlY29kaW5nIGZvciAlIGVuY29kZWQgc3Ry
aW5ncy4KKyAgICAgICAgaWYgKHRva2Vucy5zaXplKCkgPiA0IHx8IHRva2Vucy5zaXplKCkgPCAx
KSB7CisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwg
IiB3cm9uZyBudW1iZXIgb2YgdG9rZW5zICIpOworICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIFBhcnNlZFRleHREaXJlY3RpdmUgcGFyc2VkVGV4dERp
cmVjdGl2ZTsKKyAgICAgICAgCisgICAgICAgIGlmICh0b2tlbnMuZmlyc3QoKS5lbmRzV2l0aCgn
LScpICYmIHRva2Vucy5maXJzdCgpLmxlbmd0aCgpID4gMSkgeworICAgICAgICAgICAgdG9rZW5z
LmZpcnN0KCkudHJ1bmNhdGUodG9rZW5zLmZpcnN0KCkubGVuZ3RoKCkgLSAyKTsKKyAgICAgICAg
ICAgIHBhcnNlZFRleHREaXJlY3RpdmUucHJlZml4ID0gdG9rZW5zLmZpcnN0KCk7CisgICAgICAg
ICAgICB0b2tlbnMucmVtb3ZlRmlyc3QoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAg
aWYgKHRva2Vucy5sYXN0KCkuc3RhcnRzV2l0aCgnLScpICYmIHRva2Vucy5sYXN0KCkubGVuZ3Ro
KCkgPiAxKSB7CisgICAgICAgICAgICB0b2tlbnMubGFzdCgpLnJlbW92ZSgwKTsKKyAgICAgICAg
ICAgIHBhcnNlZFRleHREaXJlY3RpdmUuc3VmZml4ID0gdG9rZW5zLnRha2VMYXN0KCk7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh0b2tlbnMuc2l6ZSgpICE9IDEgJiYgdG9rZW5z
LnNpemUoKSAhPSAyKSB7CisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50
LCBzdHJlYW0gPDwgIiBub3QgZW5vdWdoIHRva2VucyAiKTsKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlLnRleHRT
dGFydCA9IHRva2Vucy5maXJzdCgpOworICAgICAgICAKKyAgICAgICAgaWYgKHRva2Vucy5zaXpl
KCkgPT0gMikKKyAgICAgICAgICAgIHBhcnNlZFRleHREaXJlY3RpdmUudGV4dEVuZCA9IHRva2Vu
cy5sYXN0KCk7CisgICAgICAgIAorICAgICAgICBwYXJzZWRUZXh0RGlyZWN0aXZlcy5hcHBlbmQo
cGFyc2VkVGV4dERpcmVjdGl2ZSk7CisgICAgfQorICAgIAorICAgIG1fcGFyc2VkVGV4dERpcmVj
dGl2ZXMgPSBwYXJzZWRUZXh0RGlyZWN0aXZlczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNjZiZWMxZjNjNGZhZmZlZjlmNTlkOWViN2E3OWZkMmFiNGY5OGNkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgKQEAg
LTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGFyc2VkVGV4dERp
cmVjdGl2ZSB7CisgICAgU3RyaW5nIHRleHRTdGFydDsKKyAgICBTdHJpbmcgdGV4dEVuZDsKKyAg
ICBTdHJpbmcgcHJlZml4OworICAgIFN0cmluZyBzdWZmaXg7Cit9OworCitjbGFzcyBGcmFnbWVu
dERpcmVjdGl2ZVBhcnNlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIoY29uc3QgVVJMJik7CisgICAgCisgICAgY29uc3QgVmVjdG9yPFBhcnNlZFRleHRE
aXJlY3RpdmU+JiBwYXJzZWRUZXh0RGlyZWN0aXZlcygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2Vk
VGV4dERpcmVjdGl2ZXM7IH07CisgICAgU3RyaW5nVmlldyBmcmFnbWVudERpcmVjdGl2ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZnJhZ21lbnREaXJlY3RpdmU7IH07CisgICAgU3RyaW5nVmlldyByZW1h
aW5pbmdVUkxGcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQ7
IH07CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gIG1faXNWYWxpZDsgfTsKKyAg
ICAKK3ByaXZhdGU6CisgICAgRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIoKSA9IGRlbGV0ZTsKKyAg
ICB2b2lkIHBhcnNlRnJhZ21lbnREaXJlY3RpdmUoU3RyaW5nVmlldyk7CisgICAgCisgICAgVmVj
dG9yPFBhcnNlZFRleHREaXJlY3RpdmU+IG1fcGFyc2VkVGV4dERpcmVjdGl2ZXM7CisgICAgU3Ry
aW5nVmlldyBtX3JlbWFpbmluZ1VSTEZyYWdtZW50OworICAgIFN0cmluZ1ZpZXcgbV9mcmFnbWVu
dERpcmVjdGl2ZTsKKyAgICBib29sIG1faXNWYWxpZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMzI5NWU4MDg0
MjgxZjM0OGRhNWNiOTY1NGUyZTA4NDBjNzMyYThiNi4uZjA4ZTJkNTZkYWMxZjYyMmJhMTk3ZDVi
OGFlN2MzNTUxMmNkMTY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNDcsNiAr
NDcsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIK
ICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFnbWVudERpcmVjdGl2
ZVBhcnNlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVGbGF0dGVuaW5n
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTIyMTYsNyArMjIxNywyNSBAQCB2b2lk
IEZyYW1lVmlldzo6cmVzdG9yZVNjcm9sbGJhcigpCiAKIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxU
b0ZyYWdtZW50KGNvbnN0IFVSTCYgdXJsKQogeworICAgIEFTU0VSVChmcmFtZSgpLmRvY3VtZW50
KCkpOworICAgIFJlZiBkb2N1bWVudCA9ICpmcmFtZSgpLmRvY3VtZW50KCk7CisgICAgCiAgICAg
YXV0byBmcmFnbWVudElkZW50aWZpZXIgPSB1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCk7CisgICAg
CisgICAgaWYgKGRvY3VtZW50LT5zZXR0aW5ncygpLnNjcm9sbFRvVGV4dEZyYWdtZW50RW5hYmxl
ZCgpKSB7CisgICAgICAgIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyIGZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyKHVybCk7CisgICAgICAgIAorICAgICAgICBpZiAoZnJhZ21lbnREaXJlY3RpdmVQYXJz
ZXIuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBhdXRvIGZyYWdtZW50RGlyZWN0aXZlID0gZnJh
Z21lbnREaXJlY3RpdmVQYXJzZXIuZnJhZ21lbnREaXJlY3RpdmUoKS50b1N0cmluZygpOworICAg
ICAgICAgICAgZG9jdW1lbnQtPnNldEZyYWdtZW50RGlyZWN0aXZlKGZyYWdtZW50RGlyZWN0aXZl
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXV0byBwYXJzZWRUZXh0RGlyZWN0aXZlcyA9
IGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLnBhcnNlZFRleHREaXJlY3RpdmVzKCk7CisgICAgICAg
ICAgICAvLyBGSVhNRTogU2Nyb2xsIHRvIHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgdGhlIGRpcmVj
dGl2ZS4KKyAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGZyYWdtZW50
SWRlbnRpZmllciA9IGZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLnJlbWFpbmluZ1VSTEZyYWdtZW50
KCk7CisgICAgfQorICAgIAogICAgIGlmIChzY3JvbGxUb0ZyYWdtZW50SW50ZXJuYWwoZnJhZ21l
bnRJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuaAppbmRleCA1Y2RkOGIzYjk1ZjQxYTM4YjMyNmNmMDk3YTlkZjM2OWRkYTg4YmU1Li4z
ZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5oCkBAIC0xMTUsNiArMTE1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IE0oU3R5bGVTaGVldHMpIFwKICAgICBNKFNWRykgXAogICAgIE0oVGV4dEF1dG9zaXppbmcpIFwK
KyAgICBNKFRleHRGcmFnbWVudCkgXAogICAgIE0oVGV4dFNoYXBpbmcpIFwKICAgICBNKFRpbGlu
ZykgXAogICAgIE0oVGhyZWFkaW5nKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443647</attachid>
            <date>2021-11-08 18:44:03 -0800</date>
            <delta_ts>2021-11-09 13:17:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231410-20211108184402.patch</filename>
            <type>text/plain</type>
            <size>17382</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFiMmUyNjYxZmZmOTA5MTJkMzlhMTg2
NTEwYTIxMDU3NGUwMjRhOTMuLmI3MzNkNDlkNzQwM2JiNTNhZjdlNGIwMzRmZGQ2NmY0NTMwODYy
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTEtMDggIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBk
aXJlY3RpdmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAg
ICAgICAgVGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisgICAgICAgIGh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTEtMDgg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQ
YXJzZSByZWRpcmVjdCBhbmQgbW9kaWZ5LWhlYWRlcnMgYWN0aW9ucyBmb3IgV0tDb250ZW50UnVs
ZUxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAwMjUxMTJlMjQ4ZDI0N2M0NWEzMThhYTk5ZDkwOTA5OWI5ZmYw
ZjA2Li5hYWZiNjIyZmUxZjQ1YjFkZWMwM2ZjZTQyMzhhNTZlOGRkNGY3YTE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMTEtMDggIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJk
bmVyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCBkaXJlY3Rp
dmUgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMxNDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAg
VGV4dCBkaXJlY3RpdmUgcGFyc2luZyBmb3IgCisgICAgICAgIGh0dHBzOi8vd2ljZy5naXRodWIu
aW8vc2Nyb2xsLXRvLXRleHQtZnJhZ21lbnQvCisgCisgICAgICAgIE1ha2UgYSBuZXcgY2xhc3Mg
dG8gaGFuZGxlIHRoZSBwYXJzaW5nIG9mIHRoZSB0ZXh0IGRpcmVjdGl2ZS4KKyAgICAgICAgVGhl
IHBhcnNpbmcgaXMgZGVmaW5lZCBpbiB0aGUgbGlua2VkIHNwZWMuIAorICAgICAgICBUaGUgZGly
ZWN0aXZlIHNob3VsZCBiZSBzdG9yZWQgb24gRG9jdW1lbnQgYW5kIGluIGEgZnV0dXJlCisgICAg
ICAgIHBhdGNoIHRoZSBtYXRjaGluZyBhbGdvcml0aG0gd2lsbCBmaW5kIHRoZSB0ZXh0IGFuZCBz
Y3JvbGwKKyAgICAgICAgYW5kIGhpZ2hsaWdodCBpdC4KKworICAgICAgICAqIFNvdXJjZXMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGcmFnbWVu
dERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZnJhZ21lbnREaXJlY3Rp
dmUgY29uc3QpOgorICAgICAgICAqIGRvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OkZyYWdtZW50
RGlyZWN0aXZlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFy
c2VyOjpwYXJzZUZyYWdtZW50RGlyZWN0aXZlKToKKyAgICAgICAgKiBkb20vRnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2
ZVBhcnNlcjo6cGFyc2VkVGV4dERpcmVjdGl2ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OmZyYWdtZW50RGlyZWN0aXZlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyOjpyZW1haW5pbmdVUkxGcmFnbWVu
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6aXNW
YWxpZCBjb25zdCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpzY3JvbGxUb0ZyYWdtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9M
b2dnaW5nLmg6CisKIDIwMjEtMTEtMDggIFBhdHJpY2sgR3JpZmZpcyAgPHBncmlmZmlzQGlnYWxp
YS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG5vbmNlLWhpZGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlh
bWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAppbmRleCA0NzMyODc3M2MzNDg3YjAyYTA0ZjA4Njc1YWZmYzQ1OWNjMGY5ZTlj
Li4wZjBlZDNlMTQ1M2Y1YTA0OWIyNTc3OGIyM2VhM2NjOGQwYWMzNmNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwu
eWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbApAQCAtMTIwNSw2ICsxMjA1LDE4IEBAIFNjcmVlbkNhcHR1cmVFbmFi
bGVkOgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDog
ZmFsc2UKKyAgICAgIAorU2Nyb2xsVG9UZXh0RnJhZ21lbnRFbmFibGVkOgorICB0eXBlOiBib29s
CisgIGh1bWFuUmVhZGFibGVOYW1lOiAiU2Nyb2xsIFRvIFRleHQgRnJhZ21lbnQiCisgIGh1bWFu
UmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBTY3JvbGwgVG8gVGV4dCBGcmFnbWVudCIKKyAg
ZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisg
ICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVm
YXVsdDogZmFsc2UKIAogU2VydmVyVGltaW5nRW5hYmxlZDoKICAgdHlwZTogYm9vbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAppbmRleCA5MjhkOGI0OTcyYjI2NTM4NDk3NGQ1MWQxNDY0OWRhODZkNDI0OTQyLi4zNTkw
MzY2NTdkOWNiNTYxOTI2ZGE5N2Q1MWM3NTU3MjBkMTJiYTczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAt
OTUwLDYgKzk1MCw3IEBAIGRvbS9FeGNlcHRpb25EYXRhLmNwcAogZG9tL0V4dGVuc2lvblN0eWxl
U2hlZXRzLmNwcAogZG9tL0ZvY3VzRXZlbnQuY3BwCiBkb20vRm9ybURhdGFFdmVudC5jcHAKK2Rv
bS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAK
IGRvbS9HQ1JlYWNoYWJsZVJlZi5jcHAKIGRvbS9IYXNoQ2hhbmdlRXZlbnQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2I1
NTdkZTEwZDAxZmI1ZDA5Y2EzMWVlNGQ0OTZjZmM3NGQ3ZmQzNi4uOTg1MzExNjYzMjcxYjkyYWVm
NGE3NDQ0OTliMzljZWUxMDA1ZmE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODc0MSw2ICs4NzQxLDggQEAKIAkJNDQzRjA0
MjYwRTc1QzhGQjAwN0U1NDA3IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVySU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1N0YXRlTm90aWZpZXJJT1Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NEQ0RTIxMEY3MDhCMkUwMDMxNThF
MCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0NTIxMEREMjVENjFFRkYwMDNBMkVEOCAvKiBBcHBIaWdobGlnaHQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwSGlnaGxpZ2h0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0NTYxMkFBMjcwRjZGMzcwMDc1OEM5NyAvKiBGcmFnbWVu
dERpcmVjdGl2ZVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFnbWVudERpcmVjdGl2
ZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0NTYxMkFCMjcwRjZG
MzgwMDc1OEM5NyAvKiBGcmFnbWVudERpcmVjdGl2ZVBhcnNlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
cmFnbWVudERpcmVjdGl2ZVBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NDU3NzVFNDIwNDcyRjczMDA4RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTc3NUU5MjA0NzMwM0IwMDhEQ0U1RCAvKiBMb2NhbERl
ZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDQ2REM2NDYyNEEyOUQ5QjAwNjFGMzkwIC8qIFBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTg5MDcsMTEgKzE4OTA5LDExIEBACiAJCTFBNTY5Q0M0MEQ3RTJCNjAwMDdDMzk4MyAvKiBicmlk
Z2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTU5QjU5
NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8sCi0JCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0Mz
OTgzIC8qIG9iamMgKi8sCiAJCQkJNTk5RTc1OEYxMTA1NUExRjAwRDkwNEZBIC8qIEJyaWRnZS5o
ICovLAogCQkJCTFBNzFENTc5MEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmNwcCAq
LywKIAkJCQkxQTcxRDU3QTBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5oICovLAor
CQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8sCisJCQkJMUE1NjlDRTIwRDdF
MkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJMUE1NjlDRUYwRDdFMkI4MjAwN0MzOTgzIC8q
IHJ1bnRpbWVfYXJyYXkuY3BwICovLAogCQkJCTFBNTY5Q0YwMEQ3RTJCODIwMDdDMzk4MyAvKiBy
dW50aW1lX2FycmF5LmggKi8sCiAJCQkJMUE1NjlDRjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRp
bWVfbWV0aG9kLmNwcCAqLywKQEAgLTMxMzI1LDYgKzMxMzI3LDggQEAKIAkJCQkyQTY2NDM5MTI2
QTAwNkFGMDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5jcHAgKi8sCiAJCQkJMkE2NjQzOTAyNkEw
MDZBRjAwQzE0N0ExIC8qIEZvcm1EYXRhRXZlbnQuaCAqLywKIAkJCQkyQTY2NDM4RTI2QTAwNkFF
MDBDMTQ3QTEgLyogRm9ybURhdGFFdmVudC5pZGwgKi8sCisJCQkJNDQ1NjEyQUEyNzBGNkYzNzAw
NzU4Qzk3IC8qIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKKwkJCQk0NDU2MTJBQjI3
MEY2RjM4MDA3NThDOTcgLyogRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCAqLywKIAkJCQlBODUz
MTIzQzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8s
CiAJCQkJQ0Q5MkY1MTcyMjYxMDM4MjAwRjg3QkIzIC8qIEZ1bGxzY3JlZW5NYW5hZ2VyLmNwcCAq
LywKIAkJCQlDRDkyRjUxNjIyNjEwMzgyMDBGODdCQjMgLyogRnVsbHNjcmVlbk1hbmFnZXIuaCAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNTkyNTc0YmUzY2ZlMmYyOGRhZTc2OTM4ZmMxNmNi
MTQ1M2I5NTNlYi4uY2QwM2RkMTc0ZTcyMzk5ODIyY2VhYTRjYjg0NzJjNGMxODJjZDJhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTE2NDAsNiArMTY0MCw5IEBAIHB1YmxpYzoKICAgICBjb25z
dCBFZGl0b3ImIGVkaXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdG9yOyB9CiAgICAgRnJhbWVT
ZWxlY3Rpb24mIHNlbGVjdGlvbigpIHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9CiAgICAgY29uc3Qg
RnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9
CisgICAgICAgIAorICAgIHZvaWQgc2V0RnJhZ21lbnREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBm
cmFnbWVudERpcmVjdGl2ZSkgeyBtX2ZyYWdtZW50RGlyZWN0aXZlID0gZnJhZ21lbnREaXJlY3Rp
dmU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3QgeyByZXR1
cm4gbV9mcmFnbWVudERpcmVjdGl2ZTsgfQogCiAgICAgdm9pZCBwcmVwYXJlQ2FudmFzZXNGb3JE
aXNwbGF5SWZOZWVkZWQoKTsKICAgICB2b2lkIGNsZWFyQ2FudmFzUHJlcGFyYXRpb24oSFRNTENh
bnZhc0VsZW1lbnQmKTsKQEAgLTIyMzUsNiArMjIzOCw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlx
dWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8RnJhbWVTZWxlY3Rpb24+IG1f
c2VsZWN0aW9uOworICAgICAgICAKKyAgICBTdHJpbmcgbV9mcmFnbWVudERpcmVjdGl2ZTsKIAog
ICAgIExpc3RIYXNoU2V0PFJlZjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwogICAgIFVu
aXF1ZVJlZjxXaGl0ZXNwYWNlQ2FjaGU+IG1fd2hpdGVzcGFjZUNhY2hlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI2MTkx
NmUzNzg3YzM2Y2M0Y2E4ODE1NmE5ZjdiNzhlNjM1NTNiNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudERpcmVjdGl2ZVBhcnNlci5jcHAKQEAgLTAsMCArMSwx
MjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhZ21l
bnREaXJlY3RpdmVQYXJzZXIuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3
dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgorCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworRnJhZ21lbnREaXJlY3RpdmVQYXJzZXI6OkZyYWdtZW50RGlyZWN0aXZl
UGFyc2VyKGNvbnN0IFVSTCYgdXJsKQoreworICAgIEFTQ0lJTGl0ZXJhbCBmcmFnbWVudERpcmVj
dGl2ZURlbGltaXRlciA9ICI6fjoiX3M7CisgICAgYXV0byBmcmFnbWVudElkZW50aWZpZXIgPSB1
cmwuZnJhZ21lbnRJZGVudGlmaWVyKCk7CisgICAgCisgICAgaWYgKGZyYWdtZW50SWRlbnRpZmll
ci5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9yZW1haW5pbmdVUkxGcmFnbWVudCA9IGZyYWdtZW50
SWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAgICAgCisgICAgYXV0byBm
cmFnbWVudERpcmVjdGl2ZVN0YXJ0ID0gZnJhZ21lbnRJZGVudGlmaWVyLmZpbmQoU3RyaW5nVmll
dyhmcmFnbWVudERpcmVjdGl2ZURlbGltaXRlcikpOworICAgIAorICAgIGlmIChmcmFnbWVudERp
cmVjdGl2ZVN0YXJ0ID09IG5vdEZvdW5kKSB7CisgICAgICAgIG1fcmVtYWluaW5nVVJMRnJhZ21l
bnQgPSBmcmFnbWVudElkZW50aWZpZXI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisg
ICAgYXV0byBmcmFnbWVudERpcmVjdGl2ZSA9IGZyYWdtZW50SWRlbnRpZmllci5zdWJzdHJpbmco
ZnJhZ21lbnREaXJlY3RpdmVTdGFydCArIGZyYWdtZW50RGlyZWN0aXZlRGVsaW1pdGVyLmxlbmd0
aCgpKTsKKyAgICAKKyAgICAvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBiZSBzZXQgb24gdGhlIG9y
aWdpbmFsIFVSTAorICAgIG1fcmVtYWluaW5nVVJMRnJhZ21lbnQgPSBmcmFnbWVudElkZW50aWZp
ZXIubGVmdChmcmFnbWVudERpcmVjdGl2ZVN0YXJ0KTsKKyAgICAKKyAgICBwYXJzZUZyYWdtZW50
RGlyZWN0aXZlKGZyYWdtZW50RGlyZWN0aXZlKTsKKyAgICAKKyAgICBtX2ZyYWdtZW50RGlyZWN0
aXZlID0gZnJhZ21lbnREaXJlY3RpdmU7CisgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKK30KKwordm9p
ZCBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcjo6cGFyc2VGcmFnbWVudERpcmVjdGl2ZShTdHJpbmdW
aWV3IGZyYWdtZW50RGlyZWN0aXZlKQoreworICAgIExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21l
bnQsIHN0cmVhbSA8PCAiIHBhcnNlRnJhZ21lbnREaXJlY3RpdmU6ICIpOworICAgIAorICAgIFZl
Y3RvcjxQYXJzZWRUZXh0RGlyZWN0aXZlPiBwYXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJp
bmcgdGV4dERpcmVjdGl2ZVByZWZpeCA9ICJ0ZXh0PSJfczsKKworICAgIGF1dG8gZGlyZWN0aXZl
cyA9IGZyYWdtZW50RGlyZWN0aXZlLnNwbGl0KCcmJyk7CisgICAgCisgICAgTE9HX1dJVEhfU1RS
RUFNKFRleHRGcmFnbWVudCwgc3RyZWFtIDw8ICIgcGFyc2VGcmFnbWVudERpcmVjdGl2ZTogIik7
CisgICAgCisgICAgZm9yIChhdXRvIGRpcmVjdGl2ZSA6IGRpcmVjdGl2ZXMpIHsKKyAgICAgICAg
aWYgKCFkaXJlY3RpdmUuc3RhcnRzV2l0aCh0ZXh0RGlyZWN0aXZlUHJlZml4KSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgYXV0byB0ZXh0RGlyZWN0aXZlID0gZGly
ZWN0aXZlLnN1YnN0cmluZyh0ZXh0RGlyZWN0aXZlUHJlZml4Lmxlbmd0aCgpKTsKKyAgICAgICAg
CisgICAgICAgIERlcXVlPFN0cmluZz4gdG9rZW5zOworICAgICAgICBib29sIGNvbnRhaW5zRW1w
dHlUb2tlbiA9IGZhbHNlOworICAgICAgICBmb3IgKGF1dG8gdG9rZW4gOiB0ZXh0RGlyZWN0aXZl
LnNwbGl0KCcsJykpIHsKKyAgICAgICAgICAgIGlmICh0b2tlbi5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oVGV4dEZyYWdtZW50LCBzdHJlYW0gPDwgIiBlbXB0
eSB0b2tlbiAiKTsKKyAgICAgICAgICAgICAgICBjb250YWluc0VtcHR5VG9rZW4gPSB0cnVlOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdG9rZW5z
LmFwcGVuZCh0b2tlbi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29udGFp
bnNFbXB0eVRva2VuKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIC8vIEZJWE1FOiBh
ZGQgZGVjb2RpbmcgZm9yICUgZW5jb2RlZCBzdHJpbmdzLgorICAgICAgICBpZiAodG9rZW5zLnNp
emUoKSA+IDQgfHwgdG9rZW5zLnNpemUoKSA8IDEpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NU
UkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIHdyb25nIG51bWJlciBvZiB0b2tlbnMgIik7
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUGFy
c2VkVGV4dERpcmVjdGl2ZSBwYXJzZWRUZXh0RGlyZWN0aXZlOworICAgICAgICAKKyAgICAgICAg
aWYgKHRva2Vucy5maXJzdCgpLmVuZHNXaXRoKCctJykgJiYgdG9rZW5zLmZpcnN0KCkubGVuZ3Ro
KCkgPiAxKSB7CisgICAgICAgICAgICB0b2tlbnMuZmlyc3QoKS50cnVuY2F0ZSh0b2tlbnMuZmly
c3QoKS5sZW5ndGgoKSAtIDIpOworICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5wcmVm
aXggPSB0b2tlbnMuZmlyc3QoKTsKKyAgICAgICAgICAgIHRva2Vucy5yZW1vdmVGaXJzdCgpOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodG9rZW5zLmxhc3QoKS5zdGFydHNXaXRo
KCctJykgJiYgdG9rZW5zLmxhc3QoKS5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgIHRva2Vu
cy5sYXN0KCkucmVtb3ZlKDApOworICAgICAgICAgICAgcGFyc2VkVGV4dERpcmVjdGl2ZS5zdWZm
aXggPSB0b2tlbnMudGFrZUxhc3QoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYg
KHRva2Vucy5zaXplKCkgIT0gMSAmJiB0b2tlbnMuc2l6ZSgpICE9IDIpIHsKKyAgICAgICAgICAg
IExPR19XSVRIX1NUUkVBTShUZXh0RnJhZ21lbnQsIHN0cmVhbSA8PCAiIG5vdCBlbm91Z2ggdG9r
ZW5zICIpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIHBhcnNlZFRleHREaXJlY3RpdmUudGV4dFN0YXJ0ID0gdG9rZW5zLmZpcnN0KCk7CisgICAg
ICAgIAorICAgICAgICBpZiAodG9rZW5zLnNpemUoKSA9PSAyKQorICAgICAgICAgICAgcGFyc2Vk
VGV4dERpcmVjdGl2ZS50ZXh0RW5kID0gdG9rZW5zLmxhc3QoKTsKKyAgICAgICAgCisgICAgICAg
IHBhcnNlZFRleHREaXJlY3RpdmVzLmFwcGVuZChwYXJzZWRUZXh0RGlyZWN0aXZlKTsKKyAgICB9
CisgICAgCisgICAgbV9wYXJzZWRUZXh0RGlyZWN0aXZlcyA9IHBhcnNlZFRleHREaXJlY3RpdmVz
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GcmFn
bWVudERpcmVjdGl2ZVBhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NmJlYzFmM2M0ZmFmZmVmOWY1OWQ5
ZWI3YTc5ZmQyYWI0Zjk4Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RnJhZ21lbnREaXJlY3RpdmVQYXJzZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBQYXJzZWRUZXh0RGlyZWN0aXZlIHsKKyAgICBTdHJpbmcgdGV4dFN0
YXJ0OworICAgIFN0cmluZyB0ZXh0RW5kOworICAgIFN0cmluZyBwcmVmaXg7CisgICAgU3RyaW5n
IHN1ZmZpeDsKK307CisKK2NsYXNzIEZyYWdtZW50RGlyZWN0aXZlUGFyc2VyIHsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBGcmFnbWVudERpcmVjdGl2ZVBhcnNlcihjb25zdCBVUkwmKTsKKyAgICAK
KyAgICBjb25zdCBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4mIHBhcnNlZFRleHREaXJlY3Rp
dmVzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZWRUZXh0RGlyZWN0aXZlczsgfTsKKyAgICBTdHJp
bmdWaWV3IGZyYWdtZW50RGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudERpcmVj
dGl2ZTsgfTsKKyAgICBTdHJpbmdWaWV3IHJlbWFpbmluZ1VSTEZyYWdtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZW1haW5pbmdVUkxGcmFnbWVudDsgfTsKKyAgICBib29sIGlzVmFsaWQoKSBjb25z
dCB7IHJldHVybiAgbV9pc1ZhbGlkOyB9OworICAgIAorcHJpdmF0ZToKKyAgICBGcmFnbWVudERp
cmVjdGl2ZVBhcnNlcigpID0gZGVsZXRlOworICAgIHZvaWQgcGFyc2VGcmFnbWVudERpcmVjdGl2
ZShTdHJpbmdWaWV3KTsKKyAgICAKKyAgICBWZWN0b3I8UGFyc2VkVGV4dERpcmVjdGl2ZT4gbV9w
YXJzZWRUZXh0RGlyZWN0aXZlczsKKyAgICBTdHJpbmdWaWV3IG1fcmVtYWluaW5nVVJMRnJhZ21l
bnQ7CisgICAgU3RyaW5nVmlldyBtX2ZyYWdtZW50RGlyZWN0aXZlOworICAgIGJvb2wgbV9pc1Zh
bGlkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCAzMjk1ZTgwODQyODFmMzQ4ZGE1Y2I5NjU0ZTJlMDg0MGM3MzJh
OGI2Li5mMDhlMmQ1NmRhYzFmNjIyYmExOTdkNWI4YWU3YzM1NTEyY2QxNjk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5o
IgorI2luY2x1ZGUgIkZyYWdtZW50RGlyZWN0aXZlUGFyc2VyLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZUZsYXR0ZW5pbmcuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgpAQCAtMjIxNiw3ICsyMjE3LDI1IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0b3JlU2Nyb2xsYmFy
KCkKIAogYm9vbCBGcmFtZVZpZXc6OnNjcm9sbFRvRnJhZ21lbnQoY29uc3QgVVJMJiB1cmwpCiB7
CisgICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKSk7CisgICAgUmVmIGRvY3VtZW50ID0gKmZy
YW1lKCkuZG9jdW1lbnQoKTsKKyAgICAKICAgICBhdXRvIGZyYWdtZW50SWRlbnRpZmllciA9IHVy
bC5mcmFnbWVudElkZW50aWZpZXIoKTsKKyAgICAKKyAgICBpZiAoZG9jdW1lbnQtPnNldHRpbmdz
KCkuc2Nyb2xsVG9UZXh0RnJhZ21lbnRFbmFibGVkKCkpIHsKKyAgICAgICAgRnJhZ21lbnREaXJl
Y3RpdmVQYXJzZXIgZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIodXJsKTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChmcmFnbWVudERpcmVjdGl2ZVBhcnNlci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAg
IGF1dG8gZnJhZ21lbnREaXJlY3RpdmUgPSBmcmFnbWVudERpcmVjdGl2ZVBhcnNlci5mcmFnbWVu
dERpcmVjdGl2ZSgpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RnJhZ21l
bnREaXJlY3RpdmUoZnJhZ21lbnREaXJlY3RpdmUpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBhdXRvIHBhcnNlZFRleHREaXJlY3RpdmVzID0gZnJhZ21lbnREaXJlY3RpdmVQYXJzZXIucGFy
c2VkVGV4dERpcmVjdGl2ZXMoKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTY3JvbGwgdG8gdGhl
IHJhbmdlIHNwZWNpZmllZCBieSB0aGUgZGlyZWN0aXZlLgorICAgICAgICAgICAgCisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgZnJhZ21lbnRJZGVudGlmaWVyID0gZnJhZ21lbnREaXJlY3Rp
dmVQYXJzZXIucmVtYWluaW5nVVJMRnJhZ21lbnQoKTsKKyAgICB9CisgICAgCiAgICAgaWYgKHNj
cm9sbFRvRnJhZ21lbnRJbnRlcm5hbChmcmFnbWVudElkZW50aWZpZXIpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDVjZGQ4YjNiOTVmNDFh
MzhiMzI2Y2YwOTdhOWRmMzY5ZGRhODhiZTUuLjNmYmU0MTdiZTk4MWI3NWU3NzlkZTIzOGZjNGJl
MDVhNmQ3MzBmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTExNSw2ICsxMTUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShTdHlsZVNoZWV0cykgXAogICAgIE0oU1ZH
KSBcCiAgICAgTShUZXh0QXV0b3NpemluZykgXAorICAgIE0oVGV4dEZyYWdtZW50KSBcCiAgICAg
TShUZXh0U2hhcGluZykgXAogICAgIE0oVGlsaW5nKSBcCiAgICAgTShUaHJlYWRpbmcpIFwK
</data>

          </attachment>
      

    </bug>

</bugzilla>