<?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>230795</bug_id>
          
          <creation_ts>2021-09-25 04:10:29 -0700</creation_ts>
          <short_desc>Add implementation for CSSNumericValue math functions</short_desc>
          <delta_ts>2023-01-18 00:37:41 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=237332</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WPTImpact</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>175733</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Qiaosong Zhou">johnson.zhou.sh</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ashvayka</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>johnson.zhou.sh</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1797197</commentid>
    <comment_count>0</comment_count>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-09-25 04:10:29 -0700</bug_when>
    <thetext>Add implementation for CSSNumericValue math functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797199</commentid>
    <comment_count>1</comment_count>
      <attachid>439259</attachid>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-09-25 04:11:20 -0700</bug_when>
    <thetext>Created attachment 439259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797200</commentid>
    <comment_count>2</comment_count>
      <attachid>439260</attachid>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-09-25 04:33:26 -0700</bug_when>
    <thetext>Created attachment 439260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797219</commentid>
    <comment_count>3</comment_count>
      <attachid>439268</attachid>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-09-25 12:32:29 -0700</bug_when>
    <thetext>Created attachment 439268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799726</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-02 04:11:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/83796319&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817151</commentid>
    <comment_count>5</comment_count>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-11-20 15:28:35 -0800</bug_when>
    <thetext>*** Bug 233400 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817543</commentid>
    <comment_count>6</comment_count>
      <attachid>445056</attachid>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-11-23 18:54:40 -0800</bug_when>
    <thetext>Created attachment 445056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817544</commentid>
    <comment_count>7</comment_count>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-11-23 18:58:37 -0800</bug_when>
    <thetext>Passing all tests in http://wpt.live/css/css-typed-om/stylevalue-subclasses/numeric-objects/arithmetic.tentative.html except the ones concerning CSSNumericType, which will be added in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817545</commentid>
    <comment_count>8</comment_count>
      <attachid>445057</attachid>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-11-23 19:01:52 -0800</bug_when>
    <thetext>Created attachment 445057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817654</commentid>
    <comment_count>9</comment_count>
      <attachid>445057</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-24 09:48:32 -0800</bug_when>
    <thetext>Comment on attachment 445057
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +

You need a description here of what this change is. If you&apos;re implementing a spec, provide a link to the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817658</commentid>
    <comment_count>10</comment_count>
      <attachid>445099</attachid>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-11-24 10:18:31 -0800</bug_when>
    <thetext>Created attachment 445099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817663</commentid>
    <comment_count>11</comment_count>
      <attachid>445099</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-24 10:43:17 -0800</bug_when>
    <thetext>Comment on attachment 445099
Patch

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

&gt; Source/WebCore/ChangeLog:1
&gt; +2021-11-23  Johnson Zhou  &lt;johnson.zhou.sh@icloud.com&gt;

This should be your Apple email address.

&gt; Source/WebCore/ChangeLog:6
&gt; +        Add implementation for CSSNumericValue math functions according to CSS Typed OM Spec. 
&gt; +        https://drafts.css-houdini.org/css-typed-om-1/#numeric-value
&gt; +
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=230795

The correct format here is prepared for you by &quot;webkit-patch upload&quot;:

    Add implementation for CSSNumericValue math functions
    https://bugs.webkit.org/show_bug.cgi?id=230795

    Add implementations of the CSS Types OM numeric operations: https://drafts.css-houdini.org/css-typed-om-1/#numeric-value

and add additional notes if there is anything interesting or confusing in the implementation that needs to be explained.

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:60
&gt; +        if (!is&lt;CSSUnitValue&gt;(*it) || downcast&lt;CSSUnitValue&gt;(numericVector.begin()-&gt;get()).unit() != downcast&lt;CSSUnitValue&gt;(it-&gt;get()).unit())

Might be worth copying downcast&lt;CSSUnitValue&gt;(numericVector.begin()-&gt;get()).unit() into a local variable.

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:102
&gt; +    // FIXME: Lacks impl. of &quot;Let type be the result of adding the types of every item in values. If type is failure, throw a TypeError.&quot;

You should file a bugzilla bug for this work and reference it here.

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:114
&gt; +    if (is&lt;CSSMathSum&gt;(*this)) {

It might be worth adding links to the spec for these; for example, at https://drafts.css-houdini.org/css-typed-om-1/#dom-cssnumericvalue-add, it&apos;s useful to know that the values from |this| are prepended.

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:147
&gt; +    

Blank line.

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:156
&gt; +    // FIXME: Lacks impl. of &quot;Let type be the result of adding the types of every item in values. If type is failure, throw a TypeError.&quot;

File and reference a bug.

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:225
&gt; +            if (value &lt; minValue)
&gt; +                minValue = value;

Can we just use std::min()?

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:256
&gt; +            if (value &gt; maxValue)
&gt; +                maxValue = value;

Can we just use std::max()?

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:320
&gt; +    if (is&lt;CSSUnitValue&gt;(*this))
&gt; +        return CSSUnitValue::create(-downcast&lt;CSSUnitValue&gt;(*this).value(), downcast&lt;CSSUnitValue&gt;(*this).unit());

Put downcast&lt;CSSUnitValue&gt;(*this) into a local variable.

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:334
&gt; +    if (is&lt;CSSUnitValue&gt;(*this) &amp;&amp; downcast&lt;CSSUnitValue&gt;(*this).unit() == &quot;number&quot;) {
&gt; +        if (downcast&lt;CSSUnitValue&gt;(*this).value() == 0.0)
&gt; +            return Exception { RangeError, &quot;Cannot invert CSSUnitValue with value 0.0 or -0.0&quot;_s };
&gt; +    
&gt; +        return Ref&lt;CSSNumericValue&gt; { CSSUnitValue::create(1.0 / downcast&lt;CSSUnitValue&gt;(*this).value(), downcast&lt;CSSUnitValue&gt;(*this).unit()) };

Put downcast&lt;CSSUnitValue&gt;(*this) into a local variable.

&gt; Source/WebCore/css/typedom/CSSNumericValue.h:48
&gt; +    const String* getSameUnit(const Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp;);
&gt; +    const String* getProductUnit(const Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp;);

We don&apos;t generally use &quot;get&quot; in function names. I suggest:

commonUnit()
unitForProduct()

&gt; Source/WebCore/css/typedom/CSSNumericValue.h:55
&gt;      Ref&lt;CSSNumericValue&gt; add(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt;      Ref&lt;CSSNumericValue&gt; sub(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt;      Ref&lt;CSSNumericValue&gt; mul(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt; -    Ref&lt;CSSNumericValue&gt; div(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt; +    ExceptionOr&lt;Ref&lt;CSSNumericValue&gt;&gt; div(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt;      Ref&lt;CSSNumericValue&gt; min(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt;      Ref&lt;CSSNumericValue&gt; max(Vector&lt;CSSNumberish&gt;&amp;&amp;);

I think these should all be const functions, right? They don&apos;t change the value of |this|. Ideally we&apos;d name them something different to make this more clear, but this naming matches the spec.

&gt; Source/WebCore/css/typedom/CSSNumericValue.h:69
&gt; +    Ref&lt;CSSNumericValue&gt; addImpl(Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp;&amp;);
&gt; +    Ref&lt;CSSNumericValue&gt; mulImpl(Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp;&amp;);

Can these be const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817666</commentid>
    <comment_count>12</comment_count>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-11-24 10:50:56 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #11)

&gt; &gt; Source/WebCore/ChangeLog:1
&gt; &gt; +2021-11-23  Johnson Zhou  &lt;johnson.zhou.sh@icloud.com&gt;
&gt; 
&gt; This should be your Apple email address.
&gt; 

I&apos;m no longer working at Apple, should I still use my Apple email that I no longer have access to?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817684</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-24 12:50:22 -0800</bug_when>
    <thetext>(In reply to Qiaosong Zhou from comment #12)
&gt; (In reply to Simon Fraser (smfr) from comment #11)
&gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:1
&gt; &gt; &gt; +2021-11-23  Johnson Zhou  &lt;johnson.zhou.sh@icloud.com&gt;
&gt; &gt; 
&gt; &gt; This should be your Apple email address.
&gt; &gt; 
&gt; 
&gt; I&apos;m no longer working at Apple, should I still use my Apple email that I no
&gt; longer have access to?

I see! Probably not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817731</commentid>
    <comment_count>14</comment_count>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-11-24 20:45:50 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #11)
&gt; Comment on attachment 445099 [details]
&gt; 
&gt; &gt; Source/WebCore/css/typedom/CSSNumericValue.h:55
&gt; &gt;      Ref&lt;CSSNumericValue&gt; add(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt; &gt;      Ref&lt;CSSNumericValue&gt; sub(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt; &gt;      Ref&lt;CSSNumericValue&gt; mul(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt; &gt; -    Ref&lt;CSSNumericValue&gt; div(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt; &gt; +    ExceptionOr&lt;Ref&lt;CSSNumericValue&gt;&gt; div(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt; &gt;      Ref&lt;CSSNumericValue&gt; min(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt; &gt;      Ref&lt;CSSNumericValue&gt; max(Vector&lt;CSSNumberish&gt;&amp;&amp;);
&gt; 
&gt; I think these should all be const functions, right? They don&apos;t change the
&gt; value of |this|. Ideally we&apos;d name them something different to make this
&gt; more clear, but this naming matches the spec.
&gt; 
&gt; &gt; Source/WebCore/css/typedom/CSSNumericValue.h:69
&gt; &gt; +    Ref&lt;CSSNumericValue&gt; addImpl(Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp;&amp;);
&gt; &gt; +    Ref&lt;CSSNumericValue&gt; mulImpl(Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp;&amp;);
&gt; 
&gt; Can these be const?

I can&apos;t seem to make them const because I&apos;m converting *this into a Ref that is then prepended into the Vector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817733</commentid>
    <comment_count>15</comment_count>
      <attachid>445117</attachid>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2021-11-24 21:50:51 -0800</bug_when>
    <thetext>Created attachment 445117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818398</commentid>
    <comment_count>16</comment_count>
      <attachid>445117</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-29 12:21:17 -0800</bug_when>
    <thetext>Comment on attachment 445117
Patch

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

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:54
&gt; +inline const String* CSSNumericValue::commonUnit(const Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp; numericVector)

Should probably return a String instead of a String*. A String is already a pointer (to a StringImpl) and already has a &quot;null&quot; state.

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:57
&gt; +        return nullptr;

return { };

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:61
&gt; +    for (auto it = numericVector.begin(); it != numericVector.end(); ++it) {

It looks like this loop is unnecessarily checking the first item in numericVector again.

I think I would write this like so:
```
if (numericVector.isEmpty())
    return { };

String unit;
for (auto&amp; numericValue : numericVector) {
    if (!is&lt;CSSUnitValue&gt;(numericValue.get()))
        return { };
    auto&amp; unitValue = downcast&lt;CSSUnitValue&gt;(numericValue.get());
    if (unit.isNull())
        unit = unitValue.unit();
    else if (unitValue.unit() != unit)
        return { };
}

return unit;
```

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:63
&gt; +            return nullptr;

return { };

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:69
&gt; +inline const String* CSSNumericValue::unitForProduct(const Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp; numericVector)

Same comment, seems this should return a `String`.

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:178
&gt; +        numericVector.append(Ref&lt;CSSNumericValue&gt; { *this });

`Ref&lt;CSSNumericValue&gt; { *this }` -&gt; `Ref { *this }`

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:190
&gt; +        return Ref&lt;CSSNumericValue&gt; { *this };

return Ref { *this };

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:198
&gt; +        numericVector.append(Ref&lt;CSSNumericValue&gt; { *this });

Ref { *this }

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:222
&gt; +        numericVector.append(Ref&lt;CSSNumericValue&gt; { *this });

Ref { *this }

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:251
&gt; +        numericVector.append(Ref&lt;CSSNumericValue&gt; { *this });

Ref { *this }

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:327
&gt; +    return CSSMathNegate::create(RefPtr&lt;CSSNumericValue&gt; { this });

RefPtr { this }

&gt; Source/WebCore/css/typedom/CSSNumericValue.cpp:344
&gt; +    return Ref&lt;CSSNumericValue&gt; { CSSMathInvert::create(RefPtr&lt;CSSNumericValue&gt; { this }) };

RefPtr { this }

&gt; Source/WebCore/css/typedom/CSSNumericValue.h:47
&gt; +    const String* commonUnit(const Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp;);

Why is this public? Does it even need to be in the header? Can be be a static function in the cpp only?

&gt; Source/WebCore/css/typedom/CSSNumericValue.h:48
&gt; +    const String* unitForProduct(const Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp;);

ditto.

&gt; Source/WebCore/css/typedom/numeric/CSSMathInvert.h:38
&gt; +    Ref&lt;CSSNumericValue&gt; value() const { return m_value.copyRef(); }

Not sure this change is actually useful. The caller can construct a Ref&lt;&gt; if they need one. Otherwise, it may cause ref counting churn unnecessarily.

&gt; Source/WebCore/css/typedom/numeric/CSSMathMax.h:45
&gt;      CSSMathMax(Vector&lt;CSSNumberish&gt;&amp;&amp;);

explicit.

&gt; Source/WebCore/css/typedom/numeric/CSSMathMax.h:46
&gt; +    CSSMathMax(Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp;&amp;);

explicit.

&gt; Source/WebCore/css/typedom/numeric/CSSMathMin.h:45
&gt;      CSSMathMin(Vector&lt;CSSNumberish&gt;&amp;&amp;);

explicit.

&gt; Source/WebCore/css/typedom/numeric/CSSMathMin.h:46
&gt; +    CSSMathMin(Vector&lt;Ref&lt;CSSNumericValue&gt;&gt;&amp;&amp;);

explicit.

&gt; Source/WebCore/css/typedom/numeric/CSSMathNegate.h:41
&gt; +    Ref&lt;CSSNumericValue&gt; value() const { return m_value.copyRef(); }

Not convinced this change is a good idea.

&gt; Source/WebCore/css/typedom/numeric/CSSMathProduct.h:47
&gt;      CSSMathProduct(Vector&lt;CSSNumberish&gt;&amp;&amp;);

explicit.

&gt; Source/WebCore/css/typedom/numeric/CSSMathProduct.h:48
&gt; +    CSSMathProduct(Ref&lt;CSSNumericArray&gt;&amp;&amp;);

explicit.

&gt; Source/WebCore/css/typedom/numeric/CSSMathSum.h:47
&gt; +    CSSMathSum(Ref&lt;CSSNumericArray&gt;&amp;&amp;);

explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828027</commentid>
    <comment_count>17</comment_count>
      <attachid>448316</attachid>
    <who name="Qiaosong Zhou">johnson.zhou.sh</who>
    <bug_when>2022-01-04 11:59:15 -0800</bug_when>
    <thetext>Created attachment 448316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847069</commentid>
    <comment_count>18</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-03-01 09:49:11 -0800</bug_when>
    <thetext>Lack of support for CSSNumericValue is causing two unique failures for Web Animations tests:

https://wpt.fyi/results/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html?label=experimental&amp;label=master&amp;aligned

https://wpt.fyi/results/web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html?label=experimental&amp;label=master&amp;aligned</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847070</commentid>
    <comment_count>19</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-03-01 09:51:17 -0800</bug_when>
    <thetext>Scratch that, those tests rely on CSSNumericValue.parse().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926217</commentid>
    <comment_count>20</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2023-01-18 00:36:15 -0800</bug_when>
    <thetext>This test now passes with STP 161.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926219</commentid>
    <comment_count>21</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2023-01-18 00:37:41 -0800</bug_when>
    <thetext>Sorry, closed this early, but it&apos;s not only about the Web Animations tests.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439259</attachid>
            <date>2021-09-25 04:11:20 -0700</date>
            <delta_ts>2021-09-25 04:33:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230795-20210925041119.patch</filename>
            <type>text/plain</type>
            <size>3731</size>
            <attacher name="Qiaosong Zhou">johnson.zhou.sh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmFiMTZhNWRiYTZjMmE2
NzA5MWE0ZjBjZTRlMTBlNDZjZGI0YTU3Yy4uOGYxMDM3YWZjNTlhNGU0YmIxODRlNzg5M2U0YjNj
YTQ4YzU5NjEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA5LTI1ICBKb2hu
c29uIFpob3UgIDxqb2huc29uLnpob3Uuc2hAaWNsb3VkLmNvbT4KKworICAgICAgICBBZGQgaW1w
bGVtZW50YXRpb24gZm9yIENTU051bWVyaWNWYWx1ZSBtYXRoIGZ1bmN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzk1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NO
dW1lcmljVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGQp
OgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljQXJyYXk6OmFycmF5IGNvbnN0KToKKwogMjAyMS0wOS0y
MyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbmRlckVsZW1lbnQ6
Om1vdmVMYXllcnMgc2hvdWxkIHRha2UgcmVmZXJlbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAppbmRleCA5YzBjMWM3MjU0OGFkNTc4YWY5Yjkz
ODg3MTUyOWJmMTI1MTVjZjRkLi45MjM0YmFkODVkMWE0YmViYWU0NjExYmFmYjg4MDMzN2ViMjVh
Zjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NOdW1lcmljVmFsdWUuaCIKIAogI2lu
Y2x1ZGUgIkNTU01hdGhTdW0uaCIKKyNpbmNsdWRlICJDU1NOdW1lcmljQXJyYXkuaCIKICNpbmNs
dWRlICJDU1NOdW1lcmljRmFjdG9yeS5oIgogI2luY2x1ZGUgIkNTU051bWVyaWNUeXBlLmgiCiAj
aW5jbHVkZSAiQ1NTVW5pdFZhbHVlLmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaWYgRU5BQkxFKENT
U19UWVBFRF9PTSkKIAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYs
OCArNDgsMzcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENTU051bWVyaWNWYWx1ZSk7
CiAKIFJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6YWRkKFZlY3RvcjxDU1NO
dW1iZXJpc2g+JiYgdmFsdWVzKQogewotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8v
IEZJWE1FOiBhZGQgaW1wbC4KKyAgICBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IG51bWVy
aWNWZWN0b3I7CisgICAgaWYgKGlzPENTU01hdGhTdW0+KCp0aGlzKSkKKyAgICAgICAgZm9yIChh
dXRvJiYgdmFsdWUgOiBkb3duY2FzdDxDU1NNYXRoU3VtPigqdGhpcykudmFsdWVzKCkuYXJyYXko
KSkKKyAgICAgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZhbHVlLmNvcHlSZWYoKSk7Cisg
ICAgZWxzZQorICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZChSZWY8Q1NTTnVtZXJpY1ZhbHVl
PiB7ICp0aGlzIH0pOworCisgICAgZm9yIChhdXRvJiYgbnVtYmVyaXNoIDogdmFsdWVzKSB7Cisg
ICAgICAgIGF1dG8gbnVtZXJpY1ZhbHVlID0gQ1NTTnVtZXJpY1ZhbHVlOjpyZWN0aWZ5TnVtYmVy
aXNoKFdURk1vdmUobnVtYmVyaXNoKSk7CisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKFdU
Rk1vdmUobnVtZXJpY1ZhbHVlKSk7CisgICAgfQorICAgIAorICAgIGF1dG8gdW5pdFZhbHVlSXQg
PSBudW1lcmljVmVjdG9yLmVuZCgpOworICAgIGZvciAoYXV0byBpdCA9IG51bWVyaWNWZWN0b3Iu
YmVnaW4oKTsgaXQgIT0gbnVtZXJpY1ZlY3Rvci5lbmQoKTsgKytpdCkgeworICAgICAgICBpZiAo
aXM8Q1NTVW5pdFZhbHVlPigqaXQpKXsKKyAgICAgICAgICAgIGlmICh1bml0VmFsdWVJdCA9PSBu
dW1lcmljVmVjdG9yLmVuZCgpKQorICAgICAgICAgICAgICAgIHVuaXRWYWx1ZUl0ID0gaXQ7Cisg
ICAgICAgICAgICBlbHNlIGlmIChkb3duY2FzdDxDU1NVbml0VmFsdWU+KCgqdW5pdFZhbHVlSXQp
LmdldCgpKS51bml0KCkgIT0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPigoKml0KS5nZXQoKSkudW5p
dCgpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgZG91YmxlIHN1bSA9IDA7CisgICAgaWYg
KHVuaXRWYWx1ZUl0ICE9IG51bWVyaWNWZWN0b3IuZW5kKCkpIHsKKyAgICAgICAgZm9yIChhdXRv
JiYgbnVtZXJpY1ZhbHVlIDogbnVtZXJpY1ZlY3RvcikKKyAgICAgICAgICAgIHN1bSArPSBkb3du
Y2FzdDxDU1NVbml0VmFsdWU+KG51bWVyaWNWYWx1ZS5nZXQoKSkudmFsdWUoKTsKKyAgICAgICAg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHN1bSwgZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPigo
KnVuaXRWYWx1ZUl0KS5nZXQoKSkudW5pdCgpKTsKKyAgICB9CisgICAgCisgICAgLy8gRklYTUU6
IExhY2tzIGltcGwuIG9mICJMZXQgdHlwZSBiZSB0aGUgcmVzdWx0IG9mIGFkZGluZyB0aGUgdHlw
ZXMgb2YgZXZlcnkgaXRlbSBpbiB2YWx1ZXMuIElmIHR5cGUgaXMgZmFpbHVyZSwgdGhyb3cgYSBU
eXBlRXJyb3IuIgogCiAgICAgcmV0dXJuICp0aGlzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmgKaW5kZXggODNiMDg2MzIx
YWQ1ZDlmM2Y4MjRkOTU4YmMxMjY2MTc2Yjk2ZWE3OC4uYTBlZjI1ZmUzY2ViODAwNThlNzVjNTY0
Zjg1YzU4NThjOGI2MTg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPENTU051bWVyaWNBcnJheT4gY3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPj4mJik7CiAgICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXku
c2l6ZSgpOyB9OwogICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBpdGVtKHNp
emVfdCBpbmRleCk7Ci0KKyAgICBjb25zdCBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiBh
cnJheSgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXk7IH0KIHByaXZhdGU6CiAgICAgVmVjdG9yPFJl
ZjxDU1NOdW1lcmljVmFsdWU+PiBtX2FycmF5OwogICAgIENTU051bWVyaWNBcnJheShWZWN0b3I8
UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439260</attachid>
            <date>2021-09-25 04:33:26 -0700</date>
            <delta_ts>2021-09-25 12:32:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230795-20210925043325.patch</filename>
            <type>text/plain</type>
            <size>3723</size>
            <attacher name="Qiaosong Zhou">johnson.zhou.sh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmFiMTZhNWRiYTZjMmE2
NzA5MWE0ZjBjZTRlMTBlNDZjZGI0YTU3Yy4uOGYxMDM3YWZjNTlhNGU0YmIxODRlNzg5M2U0YjNj
YTQ4YzU5NjEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA5LTI1ICBKb2hu
c29uIFpob3UgIDxqb2huc29uLnpob3Uuc2hAaWNsb3VkLmNvbT4KKworICAgICAgICBBZGQgaW1w
bGVtZW50YXRpb24gZm9yIENTU051bWVyaWNWYWx1ZSBtYXRoIGZ1bmN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzk1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NO
dW1lcmljVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGQp
OgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljQXJyYXk6OmFycmF5IGNvbnN0KToKKwogMjAyMS0wOS0y
MyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbmRlckVsZW1lbnQ6
Om1vdmVMYXllcnMgc2hvdWxkIHRha2UgcmVmZXJlbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAppbmRleCA5YzBjMWM3MjU0OGFkNTc4YWY5Yjkz
ODg3MTUyOWJmMTI1MTVjZjRkLi5jZDMxMDMwNmY3YzJmZDFjMWMyNWMyMjkzMzU1NTFhODE2YjM3
MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NOdW1lcmljVmFsdWUuaCIKIAogI2lu
Y2x1ZGUgIkNTU01hdGhTdW0uaCIKKyNpbmNsdWRlICJDU1NOdW1lcmljQXJyYXkuaCIKICNpbmNs
dWRlICJDU1NOdW1lcmljRmFjdG9yeS5oIgogI2luY2x1ZGUgIkNTU051bWVyaWNUeXBlLmgiCiAj
aW5jbHVkZSAiQ1NTVW5pdFZhbHVlLmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaWYgRU5BQkxFKENT
U19UWVBFRF9PTSkKIAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYs
OCArNDgsMzYgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENTU051bWVyaWNWYWx1ZSk7
CiAKIFJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6YWRkKFZlY3RvcjxDU1NO
dW1iZXJpc2g+JiYgdmFsdWVzKQogewotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8v
IEZJWE1FOiBhZGQgaW1wbC4KKyAgICBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IG51bWVy
aWNWZWN0b3I7CisgICAgaWYgKGlzPENTU01hdGhTdW0+KCp0aGlzKSkgeworICAgICAgICBmb3Ig
KGF1dG8mJiB2YWx1ZSA6IGRvd25jYXN0PENTU01hdGhTdW0+KCp0aGlzKS52YWx1ZXMoKS5hcnJh
eSgpKQorICAgICAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQodmFsdWUuY29weVJlZigpKTsK
KyAgICB9IGVsc2UKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQoUmVmPENTU051bWVyaWNW
YWx1ZT4geyAqdGhpcyB9KTsKKworICAgIGZvciAoYXV0byYmIG51bWJlcmlzaCA6IHZhbHVlcykg
eworICAgICAgICBhdXRvIG51bWVyaWNWYWx1ZSA9IENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51
bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpOworICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVu
ZChXVEZNb3ZlKG51bWVyaWNWYWx1ZSkpOworICAgIH0KKyAgICAKKyAgICBhdXRvIHVuaXRWYWx1
ZUl0ID0gbnVtZXJpY1ZlY3Rvci5lbmQoKTsKKyAgICBmb3IgKGF1dG8gaXQgPSBudW1lcmljVmVj
dG9yLmJlZ2luKCk7IGl0ICE9IG51bWVyaWNWZWN0b3IuZW5kKCk7ICsraXQpIHsKKyAgICAgICAg
aWYgKGlzPENTU1VuaXRWYWx1ZT4oKml0KSkgeworICAgICAgICAgICAgaWYgKHVuaXRWYWx1ZUl0
ID09IG51bWVyaWNWZWN0b3IuZW5kKCkpCisgICAgICAgICAgICAgICAgdW5pdFZhbHVlSXQgPSBp
dDsKKyAgICAgICAgICAgIGVsc2UgaWYgKGRvd25jYXN0PENTU1VuaXRWYWx1ZT4oKCp1bml0VmFs
dWVJdCkuZ2V0KCkpLnVuaXQoKSAhPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KCgqaXQpLmdldCgp
KS51bml0KCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGRvdWJsZSBzdW0gPSAwOworICAgIGlmICh1bml0VmFs
dWVJdCAhPSBudW1lcmljVmVjdG9yLmVuZCgpKSB7CisgICAgICAgIGZvciAoYXV0byYmIG51bWVy
aWNWYWx1ZSA6IG51bWVyaWNWZWN0b3IpCisgICAgICAgICAgICBzdW0gKz0gZG93bmNhc3Q8Q1NT
VW5pdFZhbHVlPihudW1lcmljVmFsdWUuZ2V0KCkpLnZhbHVlKCk7CisgICAgICAgIHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZShzdW0sIGRvd25jYXN0PENTU1VuaXRWYWx1ZT4oKCp1bml0VmFs
dWVJdCkuZ2V0KCkpLnVuaXQoKSk7CisgICAgfQorICAgIAorICAgIC8vIEZJWE1FOiBMYWNrcyBp
bXBsLiBvZiAiTGV0IHR5cGUgYmUgdGhlIHJlc3VsdCBvZiBhZGRpbmcgdGhlIHR5cGVzIG9mIGV2
ZXJ5IGl0ZW0gaW4gdmFsdWVzLiBJZiB0eXBlIGlzIGZhaWx1cmUsIHRocm93IGEgVHlwZUVycm9y
LiIKIAogICAgIHJldHVybiAqdGhpczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oCmluZGV4IDgzYjA4NjMyMWFkNWQ5ZjNm
ODI0ZDk1OGJjMTI2NjE3NmI5NmVhNzguLmEwZWYyNWZlM2NlYjgwMDU4ZTc1YzU2NGY4NWM1ODU4
YzhiNjE4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTnVtZXJpY0FycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJp
Yy9DU1NOdW1lcmljQXJyYXkuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxDU1NOdW1lcmljQXJyYXk+IGNyZWF0ZShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+
JiYpOwogICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2FycmF5LnNpemUoKTsg
fTsKICAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gaXRlbShzaXplX3QgaW5k
ZXgpOwotCisgICAgY29uc3QgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYgYXJyYXkoKSBj
b25zdCB7IHJldHVybiBtX2FycmF5OyB9CiBwcml2YXRlOgogICAgIFZlY3RvcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4gbV9hcnJheTsKICAgICBDU1NOdW1lcmljQXJyYXkoVmVjdG9yPFJlZjxDU1NO
dW1lcmljVmFsdWU+PiYmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439268</attachid>
            <date>2021-09-25 12:32:29 -0700</date>
            <delta_ts>2021-11-23 18:54:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230795-20210925123228.patch</filename>
            <type>text/plain</type>
            <size>5657</size>
            <attacher name="Qiaosong Zhou">johnson.zhou.sh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmFiMTZhNWRiYTZjMmE2
NzA5MWE0ZjBjZTRlMTBlNDZjZGI0YTU3Yy4uOGYxMDM3YWZjNTlhNGU0YmIxODRlNzg5M2U0YjNj
YTQ4YzU5NjEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA5LTI1ICBKb2hu
c29uIFpob3UgIDxqb2huc29uLnpob3Uuc2hAaWNsb3VkLmNvbT4KKworICAgICAgICBBZGQgaW1w
bGVtZW50YXRpb24gZm9yIENTU051bWVyaWNWYWx1ZSBtYXRoIGZ1bmN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzk1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NO
dW1lcmljVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGQp
OgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljQXJyYXk6OmFycmF5IGNvbnN0KToKKwogMjAyMS0wOS0y
MyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbmRlckVsZW1lbnQ6
Om1vdmVMYXllcnMgc2hvdWxkIHRha2UgcmVmZXJlbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAppbmRleCA5YzBjMWM3MjU0OGFkNTc4YWY5Yjkz
ODg3MTUyOWJmMTI1MTVjZjRkLi5lZWQ5YzIyYWU0ZGYxYWZjNWZhMDJmMTlmMDIxODZiMzEwODJk
NDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NOdW1lcmljVmFsdWUuaCIKIAogI2lu
Y2x1ZGUgIkNTU01hdGhTdW0uaCIKKyNpbmNsdWRlICJDU1NOdW1lcmljQXJyYXkuaCIKICNpbmNs
dWRlICJDU1NOdW1lcmljRmFjdG9yeS5oIgogI2luY2x1ZGUgIkNTU051bWVyaWNUeXBlLmgiCiAj
aW5jbHVkZSAiQ1NTVW5pdFZhbHVlLmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaWYgRU5BQkxFKENT
U19UWVBFRF9PTSkKIAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYs
MTAgKzQ4LDQyIEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChDU1NOdW1lcmljVmFsdWUp
OwogCiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6OmFkZChWZWN0b3I8Q1NT
TnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKLSAgICBVTlVTRURfUEFSQU0odmFsdWVzKTsKLSAgICAv
LyBGSVhNRTogYWRkIGltcGwuCi0KLSAgICByZXR1cm4gKnRoaXM7CisgICAgaWYgKHZhbHVlcy5l
bXB0eSgpKQorICAgICAgICByZXR1cm4gKnRoaXM7CisKKyAgICBWZWN0b3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+IG51bWVyaWNWZWN0b3I7CisKKyAgICBpZiAoaXM8Q1NTTWF0aFN1bT4oKnRoaXMp
KSB7CisgICAgICAgIGZvciAoYXV0byYmIHZhbHVlIDogZG93bmNhc3Q8Q1NTTWF0aFN1bT4oKnRo
aXMpLnZhbHVlcygpLmFycmF5KCkpCisgICAgICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZCh2
YWx1ZS5jb3B5UmVmKCkpOworICAgIH0gZWxzZQorICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVu
ZChSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7ICp0aGlzIH0pOworCisgICAgZm9yIChhdXRvJiYgbnVt
YmVyaXNoIDogdmFsdWVzKSB7CisgICAgICAgIGF1dG8gbnVtZXJpY1ZhbHVlID0gQ1NTTnVtZXJp
Y1ZhbHVlOjpyZWN0aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSk7CisgICAgICAgIG51
bWVyaWNWZWN0b3IuYXBwZW5kKFdURk1vdmUobnVtZXJpY1ZhbHVlKSk7CisgICAgfQorCisgICAg
YXV0byB1bml0VmFsdWVJdCA9IG51bWVyaWNWZWN0b3IuZW5kKCk7CisgICAgZm9yIChhdXRvIGl0
ID0gbnVtZXJpY1ZlY3Rvci5iZWdpbigpOyBpdCAhPSBudW1lcmljVmVjdG9yLmVuZCgpOyArK2l0
KSB7CisgICAgICAgIGlmIChpczxDU1NVbml0VmFsdWU+KCppdCkpIHsKKyAgICAgICAgICAgIGlm
ICh1bml0VmFsdWVJdCA9PSBudW1lcmljVmVjdG9yLmVuZCgpKQorICAgICAgICAgICAgICAgIHVu
aXRWYWx1ZUl0ID0gaXQ7CisgICAgICAgICAgICBlbHNlIGlmIChkb3duY2FzdDxDU1NVbml0VmFs
dWU+KCgqdW5pdFZhbHVlSXQpLmdldCgpKS51bml0KCkgIT0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVl
PigoKml0KS5nZXQoKSkudW5pdCgpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkb3VibGUgc3VtID0gMDsKKyAg
ICBpZiAodW5pdFZhbHVlSXQgIT0gbnVtZXJpY1ZlY3Rvci5lbmQoKSkgeworICAgICAgICBmb3Ig
KGF1dG8mJiBudW1lcmljVmFsdWUgOiBudW1lcmljVmVjdG9yKQorICAgICAgICAgICAgc3VtICs9
IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4obnVtZXJpY1ZhbHVlLmdldCgpKS52YWx1ZSgpOworICAg
ICAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoc3VtLCBkb3duY2FzdDxDU1NVbml0VmFs
dWU+KCgqdW5pdFZhbHVlSXQpLmdldCgpKS51bml0KCkpOworICAgIH0KKyAgICAKKyAgICAvLyBG
SVhNRTogTGFja3MgaW1wbC4gb2YgIkxldCB0eXBlIGJlIHRoZSByZXN1bHQgb2YgYWRkaW5nIHRo
ZSB0eXBlcyBvZiBldmVyeSBpdGVtIGluIHZhbHVlcy4gSWYgdHlwZSBpcyBmYWlsdXJlLCB0aHJv
dyBhIFR5cGVFcnJvci4iCisKKyAgICByZXR1cm4gQ1NTTWF0aFN1bTo6Y3JlYXRlKENTU051bWVy
aWNBcnJheTo6Y3JlYXRlKFdURk1vdmUobnVtZXJpY1ZlY3RvcikpKTsKIH0KIAogUmVmPENTU051
bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjpzdWIoVmVjdG9yPENTU051bWJlcmlzaD4mJiB2
YWx1ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhTdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRo
U3VtLmNwcAppbmRleCBhMGQ3ZWFkM2ViZTI3YjIyZDJjYWQ3MzQ1ZjQwNDVlNTE1NzBjMmJlLi5h
ZGRlMDc2OWQxNmRmZGNmMzFhZWYxM2RlZTlhZmRjOWIzZDVlNjMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAKQEAgLTQxLDEyICs0
MSwyMyBAQCBSZWY8Q1NTTWF0aFN1bT4gQ1NTTWF0aFN1bTo6Y3JlYXRlKFZlY3RvcjxDU1NOdW1i
ZXJpc2g+JiYgbnVtYmVyaXNoZXMpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aFN1
bShXVEZNb3ZlKG51bWJlcmlzaGVzKSkpOwogfQogCitSZWY8Q1NTTWF0aFN1bT4gQ1NTTWF0aFN1
bTo6Y3JlYXRlKFJlZjxDU1NOdW1lcmljQXJyYXk+JiYgYXJyYXkpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ1NTTWF0aFN1bShXVEZNb3ZlKGFycmF5KSkpOworfQorCiBDU1NNYXRoU3Vt
OjpDU1NNYXRoU3VtKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgbnVtYmVyaXNoZXMpCiAgICAgOiBD
U1NNYXRoVmFsdWUoQ1NTTWF0aE9wZXJhdG9yOjpTdW0pCiAgICAgLCBtX3ZhbHVlcyhDU1NOdW1l
cmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKG51bWJlcmlzaGVzKSkpCiB7CiB9CiAKK0NTU01hdGhT
dW06OkNTU01hdGhTdW0oUmVmPENTU051bWVyaWNBcnJheT4mJiBhcnJheSkKKyAgICA6IENTU01h
dGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6OlN1bSkKKyAgICAsIG1fdmFsdWVzKFdURk1vdmUoYXJy
YXkpKQoreworfQorCiBjb25zdCBDU1NOdW1lcmljQXJyYXkmIENTU01hdGhTdW06OnZhbHVlcygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmFsdWVzLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaAppbmRleCA1NDMxODc4YmVhZjM4NDVh
ZDIwODJiMTBiNDZiYWRjZmQwZDZlMjZlLi4xNjgxNjAxZDBmOWRkZTY2MDY2MjYwMGI4OGNhM2Rh
ZmM3MGExNjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhTdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhTdW0uaApAQCAtMzksMTAgKzM5LDEyIEBAIGNsYXNzIENTU01hdGhTdW0gOiBwdWJsaWMg
Q1NTTWF0aFZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKENTU01hdGhTdW0pOwog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8Q1NTTWF0aFN1bT4gY3JlYXRlKFZlY3RvcjxDU1NOdW1i
ZXJpc2g+JiYpOworICAgIHN0YXRpYyBSZWY8Q1NTTWF0aFN1bT4gY3JlYXRlKFJlZjxDU1NOdW1l
cmljQXJyYXk+JiYpOwogICAgIGNvbnN0IENTU051bWVyaWNBcnJheSYgdmFsdWVzKCkgY29uc3Q7
CiAKIHByaXZhdGU6CiAgICAgQ1NTTWF0aFN1bShWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAg
ICBDU1NNYXRoU3VtKFJlZjxDU1NOdW1lcmljQXJyYXk+JiYpOwogICAgIFJlZjxDU1NOdW1lcmlj
QXJyYXk+IG1fdmFsdWVzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmgKaW5kZXggODNiMDg2MzIxYWQ1ZDlmM2Y4MjRk
OTU4YmMxMjY2MTc2Yjk2ZWE3OC4uYTBlZjI1ZmUzY2ViODAwNThlNzVjNTY0Zjg1YzU4NThjOGI2
MTg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NO
dW1lcmljQXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U051bWVyaWNBcnJheS5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PENTU051bWVyaWNBcnJheT4gY3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7
CiAgICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXkuc2l6ZSgpOyB9Owog
ICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBpdGVtKHNpemVfdCBpbmRleCk7
Ci0KKyAgICBjb25zdCBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiBhcnJheSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXJyYXk7IH0KIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZjxDU1NOdW1lcmlj
VmFsdWU+PiBtX2FycmF5OwogICAgIENTU051bWVyaWNBcnJheShWZWN0b3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+JiYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445056</attachid>
            <date>2021-11-23 18:54:40 -0800</date>
            <delta_ts>2021-11-23 19:01:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230795-20211123185439.patch</filename>
            <type>text/plain</type>
            <size>25256</size>
            <attacher name="Qiaosong Zhou">johnson.zhou.sh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODM0ZTg1NzQyYWZkMDA1
ZDU0ZTdhN2U4N2E5MzAzYjA1NmQ5NzAxMy4uZTc2NjljNWJiN2ZmOWQ1YjQ1MmEwZTAyMjUyZjFm
MDJmY2Q4YjQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTExLTIzICBKb2hu
c29uIFpob3UgIDxqb2huc29uLnpob3Uuc2hAaWNsb3VkLmNvbT4KKworICAgICAgICBBZGQgaW1w
bGVtZW50YXRpb24gZm9yIENTU051bWVyaWNWYWx1ZSBtYXRoIGZ1bmN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzk1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NT
U1N0eWxlVmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRl
ZCk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6Z2V0U2FtZVVuaXQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTTnVtZXJpY1ZhbHVlOjpnZXRQcm9kdWN0VW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NOdW1lcmljVmFsdWU6OmFkZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1Zh
bHVlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjpzdWIpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWxJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU051bWVyaWNWYWx1ZTo6bXVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNW
YWx1ZTo6ZGl2KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6bWluKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6bWF4KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU051bWVyaWNWYWx1ZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1Zh
bHVlOjpuZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjppbnZlcnQp
OgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5oOgorICAgICAgICAqIGNz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TWF0aEludmVydDo6dmFsdWUgY29uc3QpOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aE1heC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoTWF4OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aE1heDo6Q1NTTWF0aE1heCk6CisgICAgICAgICogY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoTWluLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhNaW46OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoTWluOjpDU1NNYXRoTWluKToKKyAgICAgICAg
KiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uaDoKKyAgICAgICAgKiBjc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhOZWdhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhOZWdh
dGU6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQ
cm9kdWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhQcm9kdWN0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KToKKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0Lmg6CisgICAgICAgICogY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01h
dGhTdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoU3VtOjpDU1NNYXRoU3Vt
KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaDoKKyAgICAgICAg
KiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTTnVtZXJpY0FycmF5OjphcnJheSBjb25zdCk6CisKIDIwMjEtMTEtMjAgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlcG9ydCB0aGUg
aW5pdGlhdGluZyB1cmwgaW5zdGVhZCBvZiB0aGUgcmVkaXJlY3RlZCBvbmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVWYWx1ZUN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlVmFsdWVDdXN0b20uY3BwCmluZGV4
IDM4MzdlODkzYzNiN2UxNDk2OTY3ZjU0NmU5YjgzYjQ3YTkyYTg2MGYuLjdkNjE0YjAxYzc3MTk5
YzkzMzRlMDliOGY1NDI2ZjUxYjAxYzI0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ1NTU3R5bGVWYWx1ZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDU1NTdHlsZVZhbHVlQ3VzdG9tLmNwcApAQCAtMjksNiArMjksMTMgQEAK
ICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogCiAjaW5jbHVkZSAiSlNDU1NLZXl3b3JkVmFsdWUu
aCIKKyNpbmNsdWRlICJKU0NTU01hdGhJbnZlcnQuaCIKKyNpbmNsdWRlICJKU0NTU01hdGhNYXgu
aCIKKyNpbmNsdWRlICJKU0NTU01hdGhNaW4uaCIKKyNpbmNsdWRlICJKU0NTU01hdGhOZWdhdGUu
aCIKKyNpbmNsdWRlICJKU0NTU01hdGhPcGVyYXRvci5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0aFBy
b2R1Y3QuaCIKKyNpbmNsdWRlICJKU0NTU01hdGhTdW0uaCIKICNpbmNsdWRlICJKU0NTU01hdGhW
YWx1ZS5oIgogI2luY2x1ZGUgIkpTQ1NTTnVtZXJpY1ZhbHVlLmgiCiAjaW5jbHVkZSAiSlNDU1NT
dHlsZUltYWdlVmFsdWUuaCIKQEAgLTQ3LDYgKzU0LDIwIEBAIEpTVmFsdWUgdG9KU05ld2x5Q3Jl
YXRlZChKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
ZjxDCiAgICAgY2FzZSBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTTnVtZXJpY1ZhbHVlOgogICAgICAg
ICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NOdW1lcmljVmFsdWU+KGdsb2JhbE9iamVjdCwgV1RG
TW92ZSh2YWx1ZSkpOwogICAgIGNhc2UgQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU01hdGhWYWx1ZToK
KyAgICAgICAgc3dpdGNoIChkb3duY2FzdDxDU1NNYXRoVmFsdWU+KHZhbHVlLmdldCgpKS5nZXRP
cGVyYXRvcigpKSB7CisgICAgICAgIGNhc2UgQ1NTTWF0aE9wZXJhdG9yOjpTdW06CisgICAgICAg
ICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NNYXRoU3VtPihnbG9iYWxPYmplY3QsIFdURk1v
dmUodmFsdWUpKTsKKyAgICAgICAgY2FzZSBDU1NNYXRoT3BlcmF0b3I6OlByb2R1Y3Q6CisgICAg
ICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NNYXRoUHJvZHVjdD4oZ2xvYmFsT2JqZWN0
LCBXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIGNhc2UgQ1NTTWF0aE9wZXJhdG9yOjpOZWdhdGU6
CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NNYXRoTmVnYXRlPihnbG9iYWxP
YmplY3QsIFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgY2FzZSBDU1NNYXRoT3BlcmF0b3I6Oklu
dmVydDoKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU01hdGhJbnZlcnQ+KGds
b2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAgICAgICBjYXNlIENTU01hdGhPcGVyYXRv
cjo6TWluOgorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTTWF0aE1pbj4oZ2xv
YmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIGNhc2UgQ1NTTWF0aE9wZXJhdG9y
OjpNYXg6CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NNYXRoTWF4PihnbG9i
YWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gY3Jl
YXRlV3JhcHBlcjxDU1NNYXRoVmFsdWU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOwog
ICAgIGNhc2UgQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU1VuaXRWYWx1ZToKICAgICAgICAgcmV0dXJu
IGNyZWF0ZVdyYXBwZXI8Q1NTVW5pdFZhbHVlPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCmlu
ZGV4IDljMGMxYzcyNTQ4YWQ1NzhhZjliOTM4ODcxNTI5YmYxMjUxNWNmNGQuLjdiZmU4NWY5OGNj
OWI5NjIxMzE2YzAzMzkyOTA0YjI2YjdiMmFmNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcApAQCAtMzAsNyArMzAsMTMgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NOdW1lcmljVmFsdWUuaCIKIAorI2luY2x1ZGUgIkNT
U01hdGhJbnZlcnQuaCIKKyNpbmNsdWRlICJDU1NNYXRoTWF4LmgiCisjaW5jbHVkZSAiQ1NTTWF0
aE1pbi5oIgorI2luY2x1ZGUgIkNTU01hdGhOZWdhdGUuaCIKKyNpbmNsdWRlICJDU1NNYXRoUHJv
ZHVjdC5oIgogI2luY2x1ZGUgIkNTU01hdGhTdW0uaCIKKyNpbmNsdWRlICJDU1NOdW1lcmljQXJy
YXkuaCIKICNpbmNsdWRlICJDU1NOdW1lcmljRmFjdG9yeS5oIgogI2luY2x1ZGUgIkNTU051bWVy
aWNUeXBlLmgiCiAjaW5jbHVkZSAiQ1NTVW5pdFZhbHVlLmgiCkBAIC0zOSw1NSArNDUsMjIxIEBA
CiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENTU051bWVyaWNWYWx1ZSk7CiAK
K2lubGluZSBjb25zdCBTdHJpbmcqIENTU051bWVyaWNWYWx1ZTo6Z2V0U2FtZVVuaXQoY29uc3Qg
VmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYgbnVtZXJpY1ZlY3RvcikKK3sKKyAgICBpZiAo
bnVtZXJpY1ZlY3Rvci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIAor
ICAgIGZvciAoYXV0byBpdCA9IG51bWVyaWNWZWN0b3IuYmVnaW4oKTsgaXQgIT0gbnVtZXJpY1Zl
Y3Rvci5lbmQoKTsgKytpdCkgeworICAgICAgICBpZiAoIWlzPENTU1VuaXRWYWx1ZT4oKml0KSB8
fCBkb3duY2FzdDxDU1NVbml0VmFsdWU+KG51bWVyaWNWZWN0b3IuYmVnaW4oKS0+Z2V0KCkpLnVu
aXQoKSAhPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KGl0LT5nZXQoKSkudW5pdCgpKQorICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuICZkb3duY2FzdDxDU1NV
bml0VmFsdWU+KG51bWVyaWNWZWN0b3IuYmVnaW4oKS0+Z2V0KCkpLnVuaXQoKTsKK30KKworaW5s
aW5lIGNvbnN0IFN0cmluZyogQ1NTTnVtZXJpY1ZhbHVlOjpnZXRQcm9kdWN0VW5pdChjb25zdCBW
ZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiBudW1lcmljVmVjdG9yKQoreworICAgIGlmIChu
dW1lcmljVmVjdG9yLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgCisg
ICAgY29uc3QgU3RyaW5nKiBub25OdW1iZXJVbml0ID0gbnVsbHB0cjsKKyAgICAKKyAgICBmb3Ig
KGF1dG8gaXQgPSBudW1lcmljVmVjdG9yLmJlZ2luKCk7IGl0ICE9IG51bWVyaWNWZWN0b3IuZW5k
KCk7ICsraXQpIHsKKyAgICAgICAgaWYgKCFpczxDU1NVbml0VmFsdWU+KCppdCkpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgCisgICAgICAgIGNvbnN0IFN0cmluZyYgdW5p
dCA9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4oaXQtPmdldCgpKS51bml0KCk7CisgICAgICAgIGlm
ICh1bml0ICE9ICJudW1iZXIiX3MpIHsKKyAgICAgICAgICAgIGlmIChub25OdW1iZXJVbml0KQor
ICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBub25OdW1iZXJVbml0ID0gJnVuaXQ7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaWYg
KG5vbk51bWJlclVuaXQpCisgICAgICAgIHJldHVybiBub25OdW1iZXJVbml0OworCisgICAgcmV0
dXJuICZkb3duY2FzdDxDU1NVbml0VmFsdWU+KG51bWVyaWNWZWN0b3IuYmVnaW4oKS0+Z2V0KCkp
LnVuaXQoKTsKK30KKworUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjphZGRJ
bXBsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJiBudW1lcmljVmVjdG9yKQoreworICAg
IGlmIChhdXRvIHVuaXQgPSBnZXRTYW1lVW5pdChudW1lcmljVmVjdG9yKSkgeworICAgICAgICBk
b3VibGUgc3VtID0gMDsKKyAgICAgICAgZm9yIChhdXRvJiYgbnVtZXJpY1ZhbHVlIDogbnVtZXJp
Y1ZlY3RvcikKKyAgICAgICAgICAgIHN1bSArPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KG51bWVy
aWNWYWx1ZS5nZXQoKSkudmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHN1bSwgKnVuaXQpOworICAgIH0KKworICAgIC8vIEZJWE1FOiBMYWNrcyBpbXBsLiBvZiAi
TGV0IHR5cGUgYmUgdGhlIHJlc3VsdCBvZiBhZGRpbmcgdGhlIHR5cGVzIG9mIGV2ZXJ5IGl0ZW0g
aW4gdmFsdWVzLiBJZiB0eXBlIGlzIGZhaWx1cmUsIHRocm93IGEgVHlwZUVycm9yLiIKKworICAg
IHJldHVybiBDU1NNYXRoU3VtOjpjcmVhdGUoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92
ZShudW1lcmljVmVjdG9yKSkpOworfQorCiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmlj
VmFsdWU6OmFkZChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKLSAgICBVTlVTRURf
UEFSQU0odmFsdWVzKTsKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCisgICAgaWYgKHZhbHVlcy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiAqdGhpczsKIAotICAgIHJldHVybiAqdGhpczsKKyAg
ICBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IG51bWVyaWNWZWN0b3I7CisKKyAgICBpZiAo
aXM8Q1NTTWF0aFN1bT4oKnRoaXMpKSB7CisgICAgICAgIGZvciAoYXV0byYmIHZhbHVlIDogZG93
bmNhc3Q8Q1NTTWF0aFN1bT4oKnRoaXMpLnZhbHVlcygpLmFycmF5KCkpCisgICAgICAgICAgICBu
dW1lcmljVmVjdG9yLmFwcGVuZCh2YWx1ZS5jb3B5UmVmKCkpOworICAgIH0gZWxzZQorICAgICAg
ICBudW1lcmljVmVjdG9yLmFwcGVuZChSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7ICp0aGlzIH0pOwor
CisgICAgZm9yIChhdXRvJiYgbnVtYmVyaXNoIDogdmFsdWVzKQorICAgICAgICBudW1lcmljVmVj
dG9yLmFwcGVuZChDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1i
ZXJpc2gpKSk7CisKKyAgICByZXR1cm4gQ1NTTnVtZXJpY1ZhbHVlOjphZGRJbXBsKFdURk1vdmUo
bnVtZXJpY1ZlY3RvcikpOwogfQogCiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFs
dWU6OnN1YihWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKLSAgICBVTlVTRURfUEFS
QU0odmFsdWVzKTsKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCisgICAgaWYgKHZhbHVlcy5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiAqdGhpczsKKworICAgIFZlY3RvcjxSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPj4gbnVtZXJpY1ZlY3RvcjsKKworICAgIGlmIChpczxDU1NNYXRoU3VtPigqdGhpcykp
IHsKKyAgICAgICAgZm9yIChhdXRvJiYgdmFsdWUgOiBkb3duY2FzdDxDU1NNYXRoU3VtPigqdGhp
cykudmFsdWVzKCkuYXJyYXkoKSkKKyAgICAgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZh
bHVlLmNvcHlSZWYoKSk7CisgICAgfSBlbHNlCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5k
KFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgKnRoaXMgfSk7CisKKyAgICBmb3IgKGF1dG8mJiBudW1i
ZXJpc2ggOiB2YWx1ZXMpCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKENTU051bWVyaWNW
YWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpLT5uZWdhdGUoKSk7CiAK
LSAgICByZXR1cm4gKnRoaXM7CisgICAgcmV0dXJuIENTU051bWVyaWNWYWx1ZTo6YWRkSW1wbChX
VEZNb3ZlKG51bWVyaWNWZWN0b3IpKTsKK30KKworUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVt
ZXJpY1ZhbHVlOjptdWxJbXBsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJiBudW1lcmlj
VmVjdG9yKQoreworICAgIAorICAgIGlmIChhdXRvIHVuaXQgPSBnZXRQcm9kdWN0VW5pdChudW1l
cmljVmVjdG9yKSkgeworICAgICAgICBkb3VibGUgcHJvZCA9IDE7CisKKyAgICAgICAgZm9yIChh
dXRvJiYgbnVtZXJpY1ZhbHVlIDogbnVtZXJpY1ZlY3RvcikKKyAgICAgICAgICAgIHByb2QgKj0g
ZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPihudW1lcmljVmFsdWUuZ2V0KCkpLnZhbHVlKCk7CisgICAg
ICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZShwcm9kLCAqdW5pdCk7CisgICAgfQorICAg
IAorICAgIC8vIEZJWE1FOiBMYWNrcyBpbXBsLiBvZiAiTGV0IHR5cGUgYmUgdGhlIHJlc3VsdCBv
ZiBhZGRpbmcgdGhlIHR5cGVzIG9mIGV2ZXJ5IGl0ZW0gaW4gdmFsdWVzLiBJZiB0eXBlIGlzIGZh
aWx1cmUsIHRocm93IGEgVHlwZUVycm9yLiIKKworICAgIHJldHVybiBDU1NNYXRoUHJvZHVjdDo6
Y3JlYXRlKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUobnVtZXJpY1ZlY3RvcikpKTsK
IH0KIAogUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptdWwoVmVjdG9yPENT
U051bWJlcmlzaD4mJiB2YWx1ZXMpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHZhbHVlcyk7Ci0gICAg
Ly8gRklYTUU6IGFkZCBpbXBsLgorICAgIGlmICh2YWx1ZXMuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gKnRoaXM7CiAKLSAgICByZXR1cm4gKnRoaXM7CisgICAgVmVjdG9yPFJlZjxDU1NOdW1l
cmljVmFsdWU+PiBudW1lcmljVmVjdG9yOworCisgICAgaWYgKGlzPENTU01hdGhQcm9kdWN0Pigq
dGhpcykpIHsKKyAgICAgICAgZm9yIChhdXRvJiYgdmFsdWUgOiBkb3duY2FzdDxDU1NNYXRoUHJv
ZHVjdD4oKnRoaXMpLnZhbHVlcygpLmFycmF5KCkpCisgICAgICAgICAgICBudW1lcmljVmVjdG9y
LmFwcGVuZCh2YWx1ZS5jb3B5UmVmKCkpOworICAgIH0gZWxzZQorICAgICAgICBudW1lcmljVmVj
dG9yLmFwcGVuZChSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7ICp0aGlzIH0pOworCisgICAgZm9yIChh
dXRvJiYgbnVtYmVyaXNoIDogdmFsdWVzKQorICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZChD
U1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1iZXJpc2gpKSk7CisK
KyAgICByZXR1cm4gQ1NTTnVtZXJpY1ZhbHVlOjptdWxJbXBsKFdURk1vdmUobnVtZXJpY1ZlY3Rv
cikpOwogfQogCi1SZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6OmRpdihWZWN0
b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKK0V4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFs
dWU+PiBDU1NOdW1lcmljVmFsdWU6OmRpdihWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykK
IHsKLSAgICBVTlVTRURfUEFSQU0odmFsdWVzKTsKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCisg
ICAgaWYgKHZhbHVlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBSZWY8Q1NTTnVtZXJpY1Zh
bHVlPiB7ICp0aGlzIH07CisKKyAgICBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IG51bWVy
aWNWZWN0b3I7CisKKyAgICBpZiAoaXM8Q1NTTWF0aFByb2R1Y3Q+KCp0aGlzKSkgeworICAgICAg
ICBmb3IgKGF1dG8mJiB2YWx1ZSA6IGRvd25jYXN0PENTU01hdGhQcm9kdWN0PigqdGhpcykudmFs
dWVzKCkuYXJyYXkoKSkKKyAgICAgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZhbHVlLmNv
cHlSZWYoKSk7CisgICAgfSBlbHNlCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKFJlZjxD
U1NOdW1lcmljVmFsdWU+IHsgKnRoaXMgfSk7CisKKyAgICBmb3IgKGF1dG8mJiBudW1iZXJpc2gg
OiB2YWx1ZXMpIHsKKyAgICAgICAgYXV0byBpbnZlcnRlZFJlc3VsdCA9IENTU051bWVyaWNWYWx1
ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpLT5pbnZlcnQoKTsKKyAgICAg
ICAgaWYgKGludmVydGVkUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJu
IGludmVydGVkUmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICAgICAgbnVtZXJpY1ZlY3Rv
ci5hcHBlbmQoaW52ZXJ0ZWRSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgIH0KIAot
ICAgIHJldHVybiAqdGhpczsKKyAgICByZXR1cm4gQ1NTTnVtZXJpY1ZhbHVlOjptdWxJbXBsKFdU
Rk1vdmUobnVtZXJpY1ZlY3RvcikpOwogfQorCiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1l
cmljVmFsdWU6Om1pbihWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKLSAgICBVTlVT
RURfUEFSQU0odmFsdWVzKTsKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCisgICAgaWYgKHZhbHVl
cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAqdGhpczsKKworICAgIFZlY3RvcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4gbnVtZXJpY1ZlY3RvcjsKIAotICAgIHJldHVybiAqdGhpczsKKyAgICBp
ZiAoaXM8Q1NTTWF0aE1pbj4oKnRoaXMpKSB7CisgICAgICAgIGZvciAoYXV0byYmIHZhbHVlIDog
ZG93bmNhc3Q8Q1NTTWF0aE1pbj4oKnRoaXMpLnZhbHVlcygpLmFycmF5KCkpCisgICAgICAgICAg
ICBudW1lcmljVmVjdG9yLmFwcGVuZCh2YWx1ZS5jb3B5UmVmKCkpOworICAgIH0gZWxzZQorICAg
ICAgICBudW1lcmljVmVjdG9yLmFwcGVuZChSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7ICp0aGlzIH0p
OworCisgICAgZm9yIChhdXRvJiYgbnVtYmVyaXNoIDogdmFsdWVzKQorICAgICAgICBudW1lcmlj
VmVjdG9yLmFwcGVuZChDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShu
dW1iZXJpc2gpKSk7CisgICAgCisgICAgaWYgKGF1dG8gdW5pdCA9IGdldFNhbWVVbml0KG51bWVy
aWNWZWN0b3IpKSB7CisgICAgICAgIGF1dG8gbWluVmFsdWUgPSBkb3duY2FzdDxDU1NVbml0VmFs
dWU+KG51bWVyaWNWZWN0b3IuYmVnaW4oKS0+Z2V0KCkpLnZhbHVlKCk7CisgICAgICAgIAorICAg
ICAgICBmb3IgKGF1dG8mJiB1bml0VmFsdWUgOiBudW1lcmljVmVjdG9yKSB7CisgICAgICAgICAg
ICBhdXRvIHZhbHVlID0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih1bml0VmFsdWUuZ2V0KCkpLnZh
bHVlKCk7CisgICAgICAgICAgICBpZiAodmFsdWUgPCBtaW5WYWx1ZSkKKyAgICAgICAgICAgICAg
ICBtaW5WYWx1ZSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUobWluVmFsdWUsICp1bml0KTsKKyAgICB9CisKKyAgICByZXR1
cm4gQ1NTTWF0aE1pbjo6Y3JlYXRlKFdURk1vdmUobnVtZXJpY1ZlY3RvcikpOwogfQorCiBSZWY8
Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6Om1heChWZWN0b3I8Q1NTTnVtYmVyaXNo
PiYmIHZhbHVlcykKIHsKLSAgICBVTlVTRURfUEFSQU0odmFsdWVzKTsKLSAgICAvLyBGSVhNRTog
YWRkIGltcGwuCisgICAgaWYgKHZhbHVlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAqdGhp
czsKKworICAgIFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gbnVtZXJpY1ZlY3RvcjsKKwor
ICAgIGlmIChpczxDU1NNYXRoTWF4PigqdGhpcykpIHsKKyAgICAgICAgZm9yIChhdXRvJiYgdmFs
dWUgOiBkb3duY2FzdDxDU1NNYXRoTWF4PigqdGhpcykudmFsdWVzKCkuYXJyYXkoKSkKKyAgICAg
ICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZhbHVlLmNvcHlSZWYoKSk7CisgICAgfSBlbHNl
CisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgKnRo
aXMgfSk7CisKKyAgICBmb3IgKGF1dG8mJiBudW1iZXJpc2ggOiB2YWx1ZXMpCisgICAgICAgIG51
bWVyaWNWZWN0b3IuYXBwZW5kKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZN
b3ZlKG51bWJlcmlzaCkpKTsKKyAgICAKKyAgICBpZiAoYXV0byB1bml0ID0gZ2V0U2FtZVVuaXQo
bnVtZXJpY1ZlY3RvcikpIHsKKyAgICAgICAgYXV0byBtYXhWYWx1ZSA9IGRvd25jYXN0PENTU1Vu
aXRWYWx1ZT4obnVtZXJpY1ZlY3Rvci5iZWdpbigpLT5nZXQoKSkudmFsdWUoKTsKKyAgICAgICAg
CisgICAgICAgIGZvciAoYXV0byYmIHVuaXRWYWx1ZSA6IG51bWVyaWNWZWN0b3IpIHsKKyAgICAg
ICAgICAgIGF1dG8gdmFsdWUgPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHVuaXRWYWx1ZS5nZXQo
KSkudmFsdWUoKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA+IG1heFZhbHVlKQorICAgICAgICAg
ICAgICAgIG1heFZhbHVlID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZShtYXhWYWx1ZSwgKnVuaXQpOworICAgIH0KIAotICAg
IHJldHVybiAqdGhpczsKKyAgICByZXR1cm4gQ1NTTWF0aE1heDo6Y3JlYXRlKFdURk1vdmUobnVt
ZXJpY1ZlY3RvcikpOwogfQogCiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6
OnJlY3RpZnlOdW1iZXJpc2goQ1NTTnVtYmVyaXNoJiYgbnVtYmVyaXNoKQpAQCAtMTM2LDcgKzMw
OCwzMiBAQCBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVl
OjpwYXJzZShTdHJpbmcmJiBjc3NUZXh0KQogICAgIFVOVVNFRF9QQVJBTShjc3NUZXh0KTsKICAg
ICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3Nz
bnVtZXJpY3ZhbHVlLXBhcnNlCiAgICAgLy8gRklYTUU6IGFkZCBpbXBsLgotICAgIHJldHVybiBF
eGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIk5vdCBpbXBsZW1lbnRlZCBFcnJvciIgfTsK
KyAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJOb3QgaW1wbGVtZW50
ZWQgRXJyb3IiX3MgfTsKK30KKworUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVl
OjpuZWdhdGUoKQoreworICAgIGlmIChpczxDU1NNYXRoTmVnYXRlPigqdGhpcykpCisgICAgICAg
IHJldHVybiBkb3duY2FzdDxDU1NNYXRoTmVnYXRlPigqdGhpcykudmFsdWUoKTsKKworICAgIGlm
IChpczxDU1NVbml0VmFsdWU+KCp0aGlzKSkKKyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKC1kb3duY2FzdDxDU1NVbml0VmFsdWU+KCp0aGlzKS52YWx1ZSgpLCBkb3duY2FzdDxD
U1NVbml0VmFsdWU+KCp0aGlzKS51bml0KCkpOworCisgICAgcmV0dXJuIENTU01hdGhOZWdhdGU6
OmNyZWF0ZShSZWZQdHI8Q1NTTnVtZXJpY1ZhbHVlPiB7IHRoaXMgfSk7Cit9CisKK0V4Y2VwdGlv
bk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OmludmVydCgpCit7Cisg
ICAgaWYgKGlzPENTU01hdGhJbnZlcnQ+KCp0aGlzKSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0
PENTU01hdGhJbnZlcnQ+KCp0aGlzKS52YWx1ZSgpOworCisgICAgaWYgKGlzPENTU1VuaXRWYWx1
ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1VuaXRWYWx1ZT4oKnRoaXMpLnVuaXQoKSA9PSAibnVt
YmVyIikgeworICAgICAgICBpZiAoZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPigqdGhpcykudmFsdWUo
KSA9PSAwLjApCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgIkNh
bm5vdCBpbnZlcnQgQ1NTVW5pdFZhbHVlIHdpdGggdmFsdWUgMC4wIG9yIC0wLjAiX3MgfTsKKyAg
ICAKKyAgICAgICAgcmV0dXJuIFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgQ1NTVW5pdFZhbHVlOjpj
cmVhdGUoMS4wIC8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPigqdGhpcykudmFsdWUoKSwgZG93bmNh
c3Q8Q1NTVW5pdFZhbHVlPigqdGhpcykudW5pdCgpKSB9OworICAgIH0KKyAgICByZXR1cm4gUmVm
PENTU051bWVyaWNWYWx1ZT4geyBDU1NNYXRoSW52ZXJ0OjpjcmVhdGUoUmVmUHRyPENTU051bWVy
aWNWYWx1ZT4geyB0aGlzIH0pIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmgKaW5kZXggNTJiYjFmZjA3
ZDE3NTllNjFlZDkyYWNmZDhjMGZmYTE4ZDk5NjAzNS4uMGZlNzkzNTAyMmRmMTlkYTVjMzc2NDkw
ZmY4YjZmNzNhMmMyODAzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
Q1NTTnVtZXJpY1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVt
ZXJpY1ZhbHVlLmgKQEAgLTQ0LDEwICs0NCwxMyBAQCBjbGFzcyBDU1NOdW1lcmljVmFsdWUgOiBw
dWJsaWMgQ1NTU3R5bGVWYWx1ZSB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQ1NTTnVtYmVyaXNoID0g
c3RkOjp2YXJpYW50PGRvdWJsZSwgUmVmUHRyPENTU051bWVyaWNWYWx1ZT4+OwogCisgICAgY29u
c3QgU3RyaW5nKiBnZXRTYW1lVW5pdChjb25zdCBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+
Jik7CisgICAgY29uc3QgU3RyaW5nKiBnZXRQcm9kdWN0VW5pdChjb25zdCBWZWN0b3I8UmVmPENT
U051bWVyaWNWYWx1ZT4+Jik7CisKICAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBhZGQoVmVjdG9y
PENTU051bWJlcmlzaD4mJik7CiAgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gc3ViKFZlY3RvcjxD
U1NOdW1iZXJpc2g+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG11bChWZWN0b3I8Q1NT
TnVtYmVyaXNoPiYmKTsKLSAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBkaXYoVmVjdG9yPENTU051
bWJlcmlzaD4mJik7CisgICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGRpdihW
ZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBtaW4oVmVj
dG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gbWF4KFZlY3Rv
cjxDU1NOdW1iZXJpc2g+JiYpOwogICAgIApAQCAtNjEsNiArNjQsMTIgQEAgcHVibGljOgogICAg
IHN0YXRpYyBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiByZWN0aWZ5TnVtYmVyaXNoKENTU051bWJlcmlz
aCYmKTsKICAgICAKICAgICBDU1NTdHlsZVZhbHVlVHlwZSBnZXRUeXBlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU051bWVyaWNWYWx1ZTsgfQorICAgIAor
ICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IGFkZEltcGwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFs
dWU+PiYmKTsKKyAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBtdWxJbXBsKFZlY3RvcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4mJik7CisKKyAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBuZWdhdGUoKTsK
KyAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gaW52ZXJ0KCk7CiAKIHByb3Rl
Y3RlZDoKICAgICBDU1NOdW1lcmljVmFsdWUoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhJbnZlcnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5oCmluZGV4IGUwOWE4MDZj
YjE1MjdjOTJkOTc0OGU5NDE4ZjFjNDg0M2IxNTQ3YjYuLjhiNmJjYWZlYTY1MTUwZTk4ZDk2Y2I2
ZWY5YzUwNjkxZjhlY2VjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aEludmVydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aEludmVydC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENTU01hdGhJ
bnZlcnQgOiBwdWJsaWMgQ1NTTWF0aFZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KENTU01hdGhJbnZlcnQpOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q1NTTWF0aEludmVydD4g
Y3JlYXRlKENTU051bWJlcmlzaCYmKTsKLSAgICBjb25zdCBDU1NOdW1lcmljVmFsdWUmIHZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS5nZXQoKTsgfQorICAgIFJlZjxDU1NOdW1lcmljVmFs
dWU+IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS5jb3B5UmVmKCk7IH0KICAgICAKIHBy
aXZhdGU6CiAgICAgQ1NTTWF0aEludmVydChDU1NOdW1iZXJpc2gmJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXguY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4LmNwcAppbmRleCA3NGI5ZTAy
ODcyN2ZmZjhmMTA4YzRlNDE1ODcyMDQ5ZDQxNmEyN2E0Li41MGE0MTI0MWIyMzhiNTNiNDkzZGVh
NGI0YTk1MGRjNTMzMWVjYmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhNYXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aE1heC5jcHAKQEAgLTQxLDEyICs0MSwyMyBAQCBSZWY8Q1NTTWF0aE1h
eD4gQ1NTTWF0aE1heDo6Y3JlYXRlKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgbnVtYmVyaXNoZXMp
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aE1heChXVEZNb3ZlKG51bWJlcmlzaGVz
KSkpOwogfQogCitSZWY8Q1NTTWF0aE1heD4gQ1NTTWF0aE1heDo6Y3JlYXRlKFZlY3RvcjxSZWY8
Q1NTTnVtZXJpY1ZhbHVlPj4mJiB2YWx1ZXMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q1NTTWF0aE1heChXVEZNb3ZlKHZhbHVlcykpKTsKK30KKwogQ1NTTWF0aE1heDo6Q1NTTWF0aE1h
eChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQogICAgIDogQ1NTTWF0aFZhbHVl
KENTU01hdGhPcGVyYXRvcjo6TWF4KQogICAgICwgbV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5Ojpj
cmVhdGUoV1RGTW92ZShudW1iZXJpc2hlcykpKQogewogfQogCitDU1NNYXRoTWF4OjpDU1NNYXRo
TWF4KFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJiB2YWx1ZXMpCisgICAgOiBDU1NNYXRo
VmFsdWUoQ1NTTWF0aE9wZXJhdG9yOjpNYXgpCisgICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJy
YXk6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpKQoreworfQorCiBjb25zdCBDU1NOdW1lcmljQXJy
YXkmIENTU01hdGhNYXg6OnZhbHVlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmFsdWVzLmdl
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoTWF4LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXgu
aAppbmRleCAwNjU5NjBlMTUwODM1ZjA3OGQ4NDExYWQyNWVhZjRlNTBkNGMxNDEzLi41ZDJjOGNk
ZDljNjM4ZmY0MWY2Mzg0Mjk1Njc5OTA1OWZiODEzNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXguaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXguaApAQCAtMzgsMTAgKzM4LDEyIEBAIGNs
YXNzIENTU01hdGhNYXggOiBwdWJsaWMgQ1NTTWF0aFZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKENTU01hdGhNYXgpOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q1NTTWF0aE1h
eD4gY3JlYXRlKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOworICAgIHN0YXRpYyBSZWY8Q1NTTWF0
aE1heD4gY3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CiAgICAgY29uc3Qg
Q1NTTnVtZXJpY0FycmF5JiB2YWx1ZXMoKSBjb25zdDsKICAgICAKIHByaXZhdGU6CiAgICAgQ1NT
TWF0aE1heChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBDU1NNYXRoTWF4KFZlY3RvcjxS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CiAgICAgUmVmPENTU051bWVyaWNBcnJheT4gbV92YWx1
ZXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhNaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoTWluLmNwcAppbmRleCA1YzkzNGQ0NGI2YzZmYjIzNTA0NTc0ZTgyNDczM2M2OGNlNjE0NTE0
Li4wMWEwYzFkYmY4MmNkZGEzMzJlYmE1NzE5MzA5YzIxMDE0NzlkZTkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5jcHAKQEAgLTQxLDkg
KzQxLDIwIEBAIFJlZjxDU1NNYXRoTWluPiBDU1NNYXRoTWluOjpjcmVhdGUoVmVjdG9yPENTU051
bWJlcmlzaD4mJiBudW1iZXJpc2hlcykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRo
TWluKFdURk1vdmUobnVtYmVyaXNoZXMpKSk7CiB9CiAKLUNTU01hdGhNaW46OkNTU01hdGhNaW4o
VmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hlcykKK1JlZjxDU1NNYXRoTWluPiBDU1NN
YXRoTWluOjpjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIHZhbHVlcykKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoTWluKFdURk1vdmUodmFsdWVzKSkpOwor
fQorCitDU1NNYXRoTWluOjpDU1NNYXRoTWluKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4m
JiB2YWx1ZXMpCisgICAgOiBDU1NNYXRoVmFsdWUoQ1NTTWF0aE9wZXJhdG9yOjpNaW4pCisgICAg
LCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpKQorewor
fQorCitDU1NNYXRoTWluOjpDU1NNYXRoTWluKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVz
KQogICAgIDogQ1NTTWF0aFZhbHVlKENTU01hdGhPcGVyYXRvcjo6TWluKQotICAgICwgbV92YWx1
ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZShudW1iZXJpc2hlcykpKQorICAgICwg
bV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKSkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRo
TWluLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uaApp
bmRleCA0NGM1NTgzOTUyMjYyNjA2OWM5YjIxOTJiNzFjMmM5YzIzMjM5NTRjLi5jZWIyZWNmOGU3
ZDk0NDZmNjFkNWM1NjZhMDJhZTgzMGJlYjIwYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uaApAQCAtMzgsMTAgKzM4LDEyIEBAIGNsYXNz
IENTU01hdGhNaW4gOiBwdWJsaWMgQ1NTTWF0aFZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKENTU01hdGhNaW4pOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q1NTTWF0aE1pbj4g
Y3JlYXRlKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOworICAgIHN0YXRpYyBSZWY8Q1NTTWF0aE1p
bj4gY3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CiAgICAgY29uc3QgQ1NT
TnVtZXJpY0FycmF5JiB2YWx1ZXMoKSBjb25zdDsKICAgICAKIHByaXZhdGU6CiAgICAgQ1NTTWF0
aE1pbihWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBDU1NNYXRoTWluKFZlY3RvcjxSZWY8
Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CiAgICAgUmVmPENTU051bWVyaWNBcnJheT4gbV92YWx1ZXM7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhOZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0
aE5lZ2F0ZS5oCmluZGV4IDg4Y2NkOWE5MjAyZjA4Y2JmNmU1ZGRmOGI3NWU4ODQ1Yjk4MTFlMDAu
LmU3ZTQ1N2YxNTYyZTA4NzljMjZiYzczZGZjYjNkYjQ1ZGQ5ZWQzZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5oCkBAIC0zOCw3
ICszOCw3IEBAIGNsYXNzIENTU01hdGhOZWdhdGUgOiBwdWJsaWMgQ1NTTWF0aFZhbHVlIHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKENTU01hdGhOZWdhdGUpOwogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8Q1NTTWF0aE5lZ2F0ZT4gY3JlYXRlKENTU051bWJlcmlzaCYmKTsKLSAgICBjb25z
dCBDU1NOdW1lcmljVmFsdWUmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS5nZXQoKTsg
fQorICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1
ZS5jb3B5UmVmKCk7IH0KICAgICAKIHByaXZhdGU6CiAgICAgQ1NTTWF0aE5lZ2F0ZShDU1NOdW1i
ZXJpc2gmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhQcm9kdWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFByb2R1Y3QuY3BwCmluZGV4IGIxZjAwNzE2NzdiZWEyY2ZmMmQwNTYwZmFkZDA0ZDVm
NjgwNDYzMmQuLmIxYjZhMzhjYTJhYjFlOTQyZmY0MWIyYzIwN2YxNWEwOGQxMzJiZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1
Y3QuY3BwCkBAIC00MSwxMiArNDEsMjQgQEAgUmVmPENTU01hdGhQcm9kdWN0PiBDU1NNYXRoUHJv
ZHVjdDo6Y3JlYXRlKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgbnVtYmVyaXNoZXMpCiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aFByb2R1Y3QoV1RGTW92ZShudW1iZXJpc2hlcykpKTsK
IH0KIAorUmVmPENTU01hdGhQcm9kdWN0PiBDU1NNYXRoUHJvZHVjdDo6Y3JlYXRlKFJlZjxDU1NO
dW1lcmljQXJyYXk+JiYgYXJyYXkpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0
aFByb2R1Y3QoV1RGTW92ZShhcnJheSkpKTsKK30KKwogQ1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQ
cm9kdWN0KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgbnVtYmVyaXNoZXMpCiAgICAgOiBDU1NNYXRo
VmFsdWUoQ1NTTWF0aE9wZXJhdG9yOjpQcm9kdWN0KQogICAgICwgbV92YWx1ZXMoQ1NTTnVtZXJp
Y0FycmF5OjpjcmVhdGUoV1RGTW92ZShudW1iZXJpc2hlcykpKQogewogfQogCitDU1NNYXRoUHJv
ZHVjdDo6Q1NTTWF0aFByb2R1Y3QoUmVmPENTU051bWVyaWNBcnJheT4mJiBhcnJheSkKKyAgICA6
IENTU01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6OlByb2R1Y3QpCisgICAgLCBtX3ZhbHVlcyhX
VEZNb3ZlKGFycmF5KSkKK3sKK30KKworCiBjb25zdCBDU1NOdW1lcmljQXJyYXkmIENTU01hdGhQ
cm9kdWN0Ojp2YWx1ZXMoKSBjb25zdAogewogICAgIHJldHVybiBtX3ZhbHVlcy5nZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3Qu
aAppbmRleCBlMzM5OWQ0NjM2MTdiNTcyM2YxMmFlNDAwMDZmMWUwNjcyZDdmY2ExLi5kNDUzMGQ5
NjFkMGRjZDU1MTlhYmE2MDU5YzQ5NGZkZGYzODEzMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5oCkBAIC0zOCwxMiArMzgs
MTQgQEAgY2xhc3MgQ1NTTWF0aFByb2R1Y3QgOiBwdWJsaWMgQ1NTTWF0aFZhbHVlIHsKICAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKENTU01hdGhQcm9kdWN0KTsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPENTU01hdGhQcm9kdWN0PiBjcmVhdGUoVmVjdG9yPENTU051bWJlcmlzaD4mJik7Cisg
ICAgc3RhdGljIFJlZjxDU1NNYXRoUHJvZHVjdD4gY3JlYXRlKFJlZjxDU1NOdW1lcmljQXJyYXk+
JiYpOwogICAgIGNvbnN0IENTU051bWVyaWNBcnJheSYgdmFsdWVzKCkgY29uc3Q7CiAgICAgCiAg
ICAgQ1NTTWF0aE9wZXJhdG9yIGdldE9wZXJhdG9yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ1NT
TWF0aE9wZXJhdG9yOjpQcm9kdWN0OyB9CiAKIHByaXZhdGU6CiAgICAgQ1NTTWF0aFByb2R1Y3Qo
VmVjdG9yPENTU051bWJlcmlzaD4mJik7CisgICAgQ1NTTWF0aFByb2R1Y3QoUmVmPENTU051bWVy
aWNBcnJheT4mJik7CiAgICAgUmVmPENTU051bWVyaWNBcnJheT4gbV92YWx1ZXM7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcApp
bmRleCBhMGQ3ZWFkM2ViZTI3YjIyZDJjYWQ3MzQ1ZjQwNDVlNTE1NzBjMmJlLi5hZGRlMDc2OWQx
NmRmZGNmMzFhZWYxM2RlZTlhZmRjOWIzZDVlNjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAKQEAgLTQxLDEyICs0MSwyMyBAQCBS
ZWY8Q1NTTWF0aFN1bT4gQ1NTTWF0aFN1bTo6Y3JlYXRlKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYg
bnVtYmVyaXNoZXMpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aFN1bShXVEZNb3Zl
KG51bWJlcmlzaGVzKSkpOwogfQogCitSZWY8Q1NTTWF0aFN1bT4gQ1NTTWF0aFN1bTo6Y3JlYXRl
KFJlZjxDU1NOdW1lcmljQXJyYXk+JiYgYXJyYXkpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQ1NTTWF0aFN1bShXVEZNb3ZlKGFycmF5KSkpOworfQorCiBDU1NNYXRoU3VtOjpDU1NNYXRo
U3VtKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgbnVtYmVyaXNoZXMpCiAgICAgOiBDU1NNYXRoVmFs
dWUoQ1NTTWF0aE9wZXJhdG9yOjpTdW0pCiAgICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6
OmNyZWF0ZShXVEZNb3ZlKG51bWJlcmlzaGVzKSkpCiB7CiB9CiAKK0NTU01hdGhTdW06OkNTU01h
dGhTdW0oUmVmPENTU051bWVyaWNBcnJheT4mJiBhcnJheSkKKyAgICA6IENTU01hdGhWYWx1ZShD
U1NNYXRoT3BlcmF0b3I6OlN1bSkKKyAgICAsIG1fdmFsdWVzKFdURk1vdmUoYXJyYXkpKQorewor
fQorCiBjb25zdCBDU1NOdW1lcmljQXJyYXkmIENTU01hdGhTdW06OnZhbHVlcygpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fdmFsdWVzLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaAppbmRleCA1NDMxODc4YmVhZjM4NDVhZDIwODJiMTBi
NDZiYWRjZmQwZDZlMjZlLi4xNjgxNjAxZDBmOWRkZTY2MDY2MjYwMGI4OGNhM2RhZmM3MGExNjNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhT
dW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0u
aApAQCAtMzksMTAgKzM5LDEyIEBAIGNsYXNzIENTU01hdGhTdW0gOiBwdWJsaWMgQ1NTTWF0aFZh
bHVlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKENTU01hdGhTdW0pOwogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8Q1NTTWF0aFN1bT4gY3JlYXRlKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYp
OworICAgIHN0YXRpYyBSZWY8Q1NTTWF0aFN1bT4gY3JlYXRlKFJlZjxDU1NOdW1lcmljQXJyYXk+
JiYpOwogICAgIGNvbnN0IENTU051bWVyaWNBcnJheSYgdmFsdWVzKCkgY29uc3Q7CiAKIHByaXZh
dGU6CiAgICAgQ1NTTWF0aFN1bShWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBDU1NNYXRo
U3VtKFJlZjxDU1NOdW1lcmljQXJyYXk+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljQXJyYXk+IG1f
dmFsdWVzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NOdW1lcmljQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTnVtZXJpY0FycmF5LmgKaW5kZXggODNiMDg2MzIxYWQ1ZDlmM2Y4MjRkOTU4YmMxMjY2
MTc2Yjk2ZWE3OC4uYTBlZjI1ZmUzY2ViODAwNThlNzVjNTY0Zjg1YzU4NThjOGI2MTg0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJy
YXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNB
cnJheS5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPENTU051bWVy
aWNBcnJheT4gY3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CiAgICAgc2l6
ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXkuc2l6ZSgpOyB9OwogICAgIEV4Y2Vw
dGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBpdGVtKHNpemVfdCBpbmRleCk7Ci0KKyAgICBj
b25zdCBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiBhcnJheSgpIGNvbnN0IHsgcmV0dXJu
IG1fYXJyYXk7IH0KIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBt
X2FycmF5OwogICAgIENTU051bWVyaWNBcnJheShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+
JiYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445057</attachid>
            <date>2021-11-23 19:01:52 -0800</date>
            <delta_ts>2021-11-24 10:18:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230795-20211123190151.patch</filename>
            <type>text/plain</type>
            <size>36160</size>
            <attacher name="Qiaosong Zhou">johnson.zhou.sh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRhMzRiNjJjODRmOGU3
YmMyMDk4ZjJmNGQyYjI5ZjUzZjFkZTcxNy4uNmQzYmNhYjcyNDE0YjdkY2FjZTBjZmUwNGQ4MTE3
M2I3ZTY5YjBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTExLTIzICBKb2hu
c29uIFpob3UgIDxqb2huc29uLnpob3Uuc2hAaWNsb3VkLmNvbT4KKworICAgICAgICBBZGQgaW1w
bGVtZW50YXRpb24gZm9yIENTU051bWVyaWNWYWx1ZSBtYXRoIGZ1bmN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzk1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NT
U1N0eWxlVmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRl
ZCk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6Z2V0U2FtZVVuaXQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTTnVtZXJpY1ZhbHVlOjpnZXRQcm9kdWN0VW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NOdW1lcmljVmFsdWU6OmFkZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1Zh
bHVlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjpzdWIpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWxJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU051bWVyaWNWYWx1ZTo6bXVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNW
YWx1ZTo6ZGl2KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6bWluKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6bWF4KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU051bWVyaWNWYWx1ZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1Zh
bHVlOjpuZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjppbnZlcnQp
OgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5oOgorICAgICAgICAqIGNz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TWF0aEludmVydDo6dmFsdWUgY29uc3QpOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aE1heC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoTWF4OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aE1heDo6Q1NTTWF0aE1heCk6CisgICAgICAgICogY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoTWluLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhNaW46OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoTWluOjpDU1NNYXRoTWluKToKKyAgICAgICAg
KiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uaDoKKyAgICAgICAgKiBjc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhOZWdhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhOZWdh
dGU6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQ
cm9kdWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhQcm9kdWN0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KToKKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0Lmg6CisgICAgICAgICogY3Nz
L3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01h
dGhTdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoU3VtOjpDU1NNYXRoU3Vt
KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaDoKKyAgICAgICAg
KiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTTnVtZXJpY0FycmF5OjphcnJheSBjb25zdCk6CisKIDIwMjEtMTEtMjMgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBNb3Zl
IHRoZSBzb2Z0d2FyZSBGaWx0ZXJFZmZlY3QgZnVuY3Rpb25zIHRvIHNlcGFyYXRlIGFwcGxpZXIg
Y2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHls
ZVZhbHVlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVW
YWx1ZUN1c3RvbS5jcHAKaW5kZXggMzgzN2U4OTNjM2I3ZTE0OTY5NjdmNTQ2ZTliODNiNDdhOTJh
ODYwZi4uN2Q2MTRiMDFjNzcxOTljOTMzNGUwOWI4ZjU0MjZmNTFiMDFjMjQ4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZVZhbHVlQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlVmFsdWVDdXN0b20uY3Bw
CkBAIC0yOSw2ICsyOSwxMyBAQAogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAKICNpbmNsdWRl
ICJKU0NTU0tleXdvcmRWYWx1ZS5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0aEludmVydC5oIgorI2lu
Y2x1ZGUgIkpTQ1NTTWF0aE1heC5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0aE1pbi5oIgorI2luY2x1
ZGUgIkpTQ1NTTWF0aE5lZ2F0ZS5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0aE9wZXJhdG9yLmgiCisj
aW5jbHVkZSAiSlNDU1NNYXRoUHJvZHVjdC5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0aFN1bS5oIgog
I2luY2x1ZGUgIkpTQ1NTTWF0aFZhbHVlLmgiCiAjaW5jbHVkZSAiSlNDU1NOdW1lcmljVmFsdWUu
aCIKICNpbmNsdWRlICJKU0NTU1N0eWxlSW1hZ2VWYWx1ZS5oIgpAQCAtNDcsNiArNTQsMjAgQEAg
SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUmVmPEMKICAgICBjYXNlIENTU1N0eWxlVmFsdWVUeXBlOjpDU1NO
dW1lcmljVmFsdWU6CiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU051bWVyaWNWYWx1
ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CiAgICAgY2FzZSBDU1NTdHlsZVZhbHVl
VHlwZTo6Q1NTTWF0aFZhbHVlOgorICAgICAgICBzd2l0Y2ggKGRvd25jYXN0PENTU01hdGhWYWx1
ZT4odmFsdWUuZ2V0KCkpLmdldE9wZXJhdG9yKCkpIHsKKyAgICAgICAgY2FzZSBDU1NNYXRoT3Bl
cmF0b3I6OlN1bToKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU01hdGhTdW0+
KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAgICAgICBjYXNlIENTU01hdGhPcGVy
YXRvcjo6UHJvZHVjdDoKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU01hdGhQ
cm9kdWN0PihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgY2FzZSBDU1NN
YXRoT3BlcmF0b3I6Ok5lZ2F0ZToKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENT
U01hdGhOZWdhdGU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAgICAgICBjYXNl
IENTU01hdGhPcGVyYXRvcjo6SW52ZXJ0OgorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBw
ZXI8Q1NTTWF0aEludmVydD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAg
IGNhc2UgQ1NTTWF0aE9wZXJhdG9yOjpNaW46CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlV3Jh
cHBlcjxDU1NNYXRoTWluPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAg
Y2FzZSBDU1NNYXRoT3BlcmF0b3I6Ok1heDoKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFw
cGVyPENTU01hdGhNYXg+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAgICAgICB9
CiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU01hdGhWYWx1ZT4oZ2xvYmFsT2JqZWN0
LCBXVEZNb3ZlKHZhbHVlKSk7CiAgICAgY2FzZSBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTVW5pdFZh
bHVlOgogICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NVbml0VmFsdWU+KGdsb2JhbE9i
amVjdCwgV1RGTW92ZSh2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NT
U051bWVyaWNWYWx1ZS5jcHAKaW5kZXggOWMwYzFjNzI1NDhhZDU3OGFmOWI5Mzg4NzE1MjliZjEy
NTE1Y2Y0ZC4uN2JmZTg1Zjk4Y2M5Yjk2MjEzMTZjMDMzOTI5MDRiMjZiN2IyYWY0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCkBAIC0zMCw3
ICszMCwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU051bWVyaWNWYWx1
ZS5oIgogCisjaW5jbHVkZSAiQ1NTTWF0aEludmVydC5oIgorI2luY2x1ZGUgIkNTU01hdGhNYXgu
aCIKKyNpbmNsdWRlICJDU1NNYXRoTWluLmgiCisjaW5jbHVkZSAiQ1NTTWF0aE5lZ2F0ZS5oIgor
I2luY2x1ZGUgIkNTU01hdGhQcm9kdWN0LmgiCiAjaW5jbHVkZSAiQ1NTTWF0aFN1bS5oIgorI2lu
Y2x1ZGUgIkNTU051bWVyaWNBcnJheS5oIgogI2luY2x1ZGUgIkNTU051bWVyaWNGYWN0b3J5Lmgi
CiAjaW5jbHVkZSAiQ1NTTnVtZXJpY1R5cGUuaCIKICNpbmNsdWRlICJDU1NVbml0VmFsdWUuaCIK
QEAgLTM5LDU1ICs0NSwyMjEgQEAKICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogCiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
Q1NTTnVtZXJpY1ZhbHVlKTsKIAoraW5saW5lIGNvbnN0IFN0cmluZyogQ1NTTnVtZXJpY1ZhbHVl
OjpnZXRTYW1lVW5pdChjb25zdCBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiBudW1lcmlj
VmVjdG9yKQoreworICAgIGlmIChudW1lcmljVmVjdG9yLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgCisgICAgZm9yIChhdXRvIGl0ID0gbnVtZXJpY1ZlY3Rvci5iZWdp
bigpOyBpdCAhPSBudW1lcmljVmVjdG9yLmVuZCgpOyArK2l0KSB7CisgICAgICAgIGlmICghaXM8
Q1NTVW5pdFZhbHVlPigqaXQpIHx8IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4obnVtZXJpY1ZlY3Rv
ci5iZWdpbigpLT5nZXQoKSkudW5pdCgpICE9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4oaXQtPmdl
dCgpKS51bml0KCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBy
ZXR1cm4gJmRvd25jYXN0PENTU1VuaXRWYWx1ZT4obnVtZXJpY1ZlY3Rvci5iZWdpbigpLT5nZXQo
KSkudW5pdCgpOworfQorCitpbmxpbmUgY29uc3QgU3RyaW5nKiBDU1NOdW1lcmljVmFsdWU6Omdl
dFByb2R1Y3RVbml0KGNvbnN0IFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mIG51bWVyaWNW
ZWN0b3IpCit7CisgICAgaWYgKG51bWVyaWNWZWN0b3IuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICAKKyAgICBjb25zdCBTdHJpbmcqIG5vbk51bWJlclVuaXQgPSBudWxs
cHRyOworICAgIAorICAgIGZvciAoYXV0byBpdCA9IG51bWVyaWNWZWN0b3IuYmVnaW4oKTsgaXQg
IT0gbnVtZXJpY1ZlY3Rvci5lbmQoKTsgKytpdCkgeworICAgICAgICBpZiAoIWlzPENTU1VuaXRW
YWx1ZT4oKml0KSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAKKyAgICAg
ICAgY29uc3QgU3RyaW5nJiB1bml0ID0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPihpdC0+Z2V0KCkp
LnVuaXQoKTsKKyAgICAgICAgaWYgKHVuaXQgIT0gIm51bWJlciJfcykgeworICAgICAgICAgICAg
aWYgKG5vbk51bWJlclVuaXQpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIG5vbk51bWJlclVuaXQgPSAmdW5pdDsKKyAgICAgICAgfQor
ICAgIH0KKyAgICAKKyAgICBpZiAobm9uTnVtYmVyVW5pdCkKKyAgICAgICAgcmV0dXJuIG5vbk51
bWJlclVuaXQ7CisKKyAgICByZXR1cm4gJmRvd25jYXN0PENTU1VuaXRWYWx1ZT4obnVtZXJpY1Zl
Y3Rvci5iZWdpbigpLT5nZXQoKSkudW5pdCgpOworfQorCitSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBD
U1NOdW1lcmljVmFsdWU6OmFkZEltcGwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIG51
bWVyaWNWZWN0b3IpCit7CisgICAgaWYgKGF1dG8gdW5pdCA9IGdldFNhbWVVbml0KG51bWVyaWNW
ZWN0b3IpKSB7CisgICAgICAgIGRvdWJsZSBzdW0gPSAwOworICAgICAgICBmb3IgKGF1dG8mJiBu
dW1lcmljVmFsdWUgOiBudW1lcmljVmVjdG9yKQorICAgICAgICAgICAgc3VtICs9IGRvd25jYXN0
PENTU1VuaXRWYWx1ZT4obnVtZXJpY1ZhbHVlLmdldCgpKS52YWx1ZSgpOworICAgICAgICByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoc3VtLCAqdW5pdCk7CisgICAgfQorCisgICAgLy8gRklY
TUU6IExhY2tzIGltcGwuIG9mICJMZXQgdHlwZSBiZSB0aGUgcmVzdWx0IG9mIGFkZGluZyB0aGUg
dHlwZXMgb2YgZXZlcnkgaXRlbSBpbiB2YWx1ZXMuIElmIHR5cGUgaXMgZmFpbHVyZSwgdGhyb3cg
YSBUeXBlRXJyb3IuIgorCisgICAgcmV0dXJuIENTU01hdGhTdW06OmNyZWF0ZShDU1NOdW1lcmlj
QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKG51bWVyaWNWZWN0b3IpKSk7Cit9CisKIFJlZjxDU1NOdW1l
cmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6YWRkKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFs
dWVzKQogewotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8vIEZJWE1FOiBhZGQgaW1w
bC4KKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuICp0aGlzOwogCi0g
ICAgcmV0dXJuICp0aGlzOworICAgIFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gbnVtZXJp
Y1ZlY3RvcjsKKworICAgIGlmIChpczxDU1NNYXRoU3VtPigqdGhpcykpIHsKKyAgICAgICAgZm9y
IChhdXRvJiYgdmFsdWUgOiBkb3duY2FzdDxDU1NNYXRoU3VtPigqdGhpcykudmFsdWVzKCkuYXJy
YXkoKSkKKyAgICAgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZhbHVlLmNvcHlSZWYoKSk7
CisgICAgfSBlbHNlCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKFJlZjxDU1NOdW1lcmlj
VmFsdWU+IHsgKnRoaXMgfSk7CisKKyAgICBmb3IgKGF1dG8mJiBudW1iZXJpc2ggOiB2YWx1ZXMp
CisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51
bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKTsKKworICAgIHJldHVybiBDU1NOdW1lcmljVmFs
dWU6OmFkZEltcGwoV1RGTW92ZShudW1lcmljVmVjdG9yKSk7CiB9CiAKIFJlZjxDU1NOdW1lcmlj
VmFsdWU+IENTU051bWVyaWNWYWx1ZTo6c3ViKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVz
KQogewotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8vIEZJWE1FOiBhZGQgaW1wbC4K
KyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuICp0aGlzOworCisgICAg
VmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBudW1lcmljVmVjdG9yOworCisgICAgaWYgKGlz
PENTU01hdGhTdW0+KCp0aGlzKSkgeworICAgICAgICBmb3IgKGF1dG8mJiB2YWx1ZSA6IGRvd25j
YXN0PENTU01hdGhTdW0+KCp0aGlzKS52YWx1ZXMoKS5hcnJheSgpKQorICAgICAgICAgICAgbnVt
ZXJpY1ZlY3Rvci5hcHBlbmQodmFsdWUuY29weVJlZigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
bnVtZXJpY1ZlY3Rvci5hcHBlbmQoUmVmPENTU051bWVyaWNWYWx1ZT4geyAqdGhpcyB9KTsKKwor
ICAgIGZvciAoYXV0byYmIG51bWJlcmlzaCA6IHZhbHVlcykKKyAgICAgICAgbnVtZXJpY1ZlY3Rv
ci5hcHBlbmQoQ1NTTnVtZXJpY1ZhbHVlOjpyZWN0aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVy
aXNoKSktPm5lZ2F0ZSgpKTsKIAotICAgIHJldHVybiAqdGhpczsKKyAgICByZXR1cm4gQ1NTTnVt
ZXJpY1ZhbHVlOjphZGRJbXBsKFdURk1vdmUobnVtZXJpY1ZlY3RvcikpOworfQorCitSZWY8Q1NT
TnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6Om11bEltcGwoVmVjdG9yPFJlZjxDU1NOdW1l
cmljVmFsdWU+PiYmIG51bWVyaWNWZWN0b3IpCit7CisgICAgCisgICAgaWYgKGF1dG8gdW5pdCA9
IGdldFByb2R1Y3RVbml0KG51bWVyaWNWZWN0b3IpKSB7CisgICAgICAgIGRvdWJsZSBwcm9kID0g
MTsKKworICAgICAgICBmb3IgKGF1dG8mJiBudW1lcmljVmFsdWUgOiBudW1lcmljVmVjdG9yKQor
ICAgICAgICAgICAgcHJvZCAqPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KG51bWVyaWNWYWx1ZS5n
ZXQoKSkudmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHByb2Qs
ICp1bml0KTsKKyAgICB9CisgICAgCisgICAgLy8gRklYTUU6IExhY2tzIGltcGwuIG9mICJMZXQg
dHlwZSBiZSB0aGUgcmVzdWx0IG9mIGFkZGluZyB0aGUgdHlwZXMgb2YgZXZlcnkgaXRlbSBpbiB2
YWx1ZXMuIElmIHR5cGUgaXMgZmFpbHVyZSwgdGhyb3cgYSBUeXBlRXJyb3IuIgorCisgICAgcmV0
dXJuIENTU01hdGhQcm9kdWN0OjpjcmVhdGUoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92
ZShudW1lcmljVmVjdG9yKSkpOwogfQogCiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmlj
VmFsdWU6Om11bChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKLSAgICBVTlVTRURf
UEFSQU0odmFsdWVzKTsKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCisgICAgaWYgKHZhbHVlcy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiAqdGhpczsKIAotICAgIHJldHVybiAqdGhpczsKKyAg
ICBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IG51bWVyaWNWZWN0b3I7CisKKyAgICBpZiAo
aXM8Q1NTTWF0aFByb2R1Y3Q+KCp0aGlzKSkgeworICAgICAgICBmb3IgKGF1dG8mJiB2YWx1ZSA6
IGRvd25jYXN0PENTU01hdGhQcm9kdWN0PigqdGhpcykudmFsdWVzKCkuYXJyYXkoKSkKKyAgICAg
ICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZhbHVlLmNvcHlSZWYoKSk7CisgICAgfSBlbHNl
CisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgKnRo
aXMgfSk7CisKKyAgICBmb3IgKGF1dG8mJiBudW1iZXJpc2ggOiB2YWx1ZXMpCisgICAgICAgIG51
bWVyaWNWZWN0b3IuYXBwZW5kKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZN
b3ZlKG51bWJlcmlzaCkpKTsKKworICAgIHJldHVybiBDU1NOdW1lcmljVmFsdWU6Om11bEltcGwo
V1RGTW92ZShudW1lcmljVmVjdG9yKSk7CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051
bWVyaWNWYWx1ZTo6ZGl2KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQorRXhjZXB0aW9u
T3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6ZGl2KFZlY3RvcjxDU1NO
dW1iZXJpc2g+JiYgdmFsdWVzKQogewotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8v
IEZJWE1FOiBhZGQgaW1wbC4KKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgKnRoaXMgfTsKKworICAgIFZlY3RvcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4gbnVtZXJpY1ZlY3RvcjsKKworICAgIGlmIChpczxDU1NNYXRoUHJvZHVj
dD4oKnRoaXMpKSB7CisgICAgICAgIGZvciAoYXV0byYmIHZhbHVlIDogZG93bmNhc3Q8Q1NTTWF0
aFByb2R1Y3Q+KCp0aGlzKS52YWx1ZXMoKS5hcnJheSgpKQorICAgICAgICAgICAgbnVtZXJpY1Zl
Y3Rvci5hcHBlbmQodmFsdWUuY29weVJlZigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbnVtZXJp
Y1ZlY3Rvci5hcHBlbmQoUmVmPENTU051bWVyaWNWYWx1ZT4geyAqdGhpcyB9KTsKKworICAgIGZv
ciAoYXV0byYmIG51bWJlcmlzaCA6IHZhbHVlcykgeworICAgICAgICBhdXRvIGludmVydGVkUmVz
dWx0ID0gQ1NTTnVtZXJpY1ZhbHVlOjpyZWN0aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNo
KSktPmludmVydCgpOworICAgICAgICBpZiAoaW52ZXJ0ZWRSZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CisgICAgICAgICAgICByZXR1cm4gaW52ZXJ0ZWRSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwor
ICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZChpbnZlcnRlZFJlc3VsdC5yZWxlYXNlUmV0dXJu
VmFsdWUoKSk7CisgICAgfQogCi0gICAgcmV0dXJuICp0aGlzOworICAgIHJldHVybiBDU1NOdW1l
cmljVmFsdWU6Om11bEltcGwoV1RGTW92ZShudW1lcmljVmVjdG9yKSk7CiB9CisKIFJlZjxDU1NO
dW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bWluKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYg
dmFsdWVzKQogewotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8vIEZJWE1FOiBhZGQg
aW1wbC4KKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuICp0aGlzOwor
CisgICAgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBudW1lcmljVmVjdG9yOwogCi0gICAg
cmV0dXJuICp0aGlzOworICAgIGlmIChpczxDU1NNYXRoTWluPigqdGhpcykpIHsKKyAgICAgICAg
Zm9yIChhdXRvJiYgdmFsdWUgOiBkb3duY2FzdDxDU1NNYXRoTWluPigqdGhpcykudmFsdWVzKCku
YXJyYXkoKSkKKyAgICAgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZhbHVlLmNvcHlSZWYo
KSk7CisgICAgfSBlbHNlCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKFJlZjxDU1NOdW1l
cmljVmFsdWU+IHsgKnRoaXMgfSk7CisKKyAgICBmb3IgKGF1dG8mJiBudW1iZXJpc2ggOiB2YWx1
ZXMpCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKENTU051bWVyaWNWYWx1ZTo6cmVjdGlm
eU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKTsKKyAgICAKKyAgICBpZiAoYXV0byB1bml0
ID0gZ2V0U2FtZVVuaXQobnVtZXJpY1ZlY3RvcikpIHsKKyAgICAgICAgYXV0byBtaW5WYWx1ZSA9
IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4obnVtZXJpY1ZlY3Rvci5iZWdpbigpLT5nZXQoKSkudmFs
dWUoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoYXV0byYmIHVuaXRWYWx1ZSA6IG51bWVyaWNW
ZWN0b3IpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+
KHVuaXRWYWx1ZS5nZXQoKSkudmFsdWUoKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IG1pblZh
bHVlKQorICAgICAgICAgICAgICAgIG1pblZhbHVlID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZShtaW5WYWx1ZSwgKnVuaXQp
OworICAgIH0KKworICAgIHJldHVybiBDU1NNYXRoTWluOjpjcmVhdGUoV1RGTW92ZShudW1lcmlj
VmVjdG9yKSk7CiB9CisKIFJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bWF4
KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQogewotICAgIFVOVVNFRF9QQVJBTSh2YWx1
ZXMpOwotICAgIC8vIEZJWE1FOiBhZGQgaW1wbC4KKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuICp0aGlzOworCisgICAgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiBudW1lcmljVmVjdG9yOworCisgICAgaWYgKGlzPENTU01hdGhNYXg+KCp0aGlzKSkgeworICAg
ICAgICBmb3IgKGF1dG8mJiB2YWx1ZSA6IGRvd25jYXN0PENTU01hdGhNYXg+KCp0aGlzKS52YWx1
ZXMoKS5hcnJheSgpKQorICAgICAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQodmFsdWUuY29w
eVJlZigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQoUmVmPENT
U051bWVyaWNWYWx1ZT4geyAqdGhpcyB9KTsKKworICAgIGZvciAoYXV0byYmIG51bWJlcmlzaCA6
IHZhbHVlcykKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQoQ1NTTnVtZXJpY1ZhbHVlOjpy
ZWN0aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSkpOworICAgIAorICAgIGlmIChhdXRv
IHVuaXQgPSBnZXRTYW1lVW5pdChudW1lcmljVmVjdG9yKSkgeworICAgICAgICBhdXRvIG1heFZh
bHVlID0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPihudW1lcmljVmVjdG9yLmJlZ2luKCktPmdldCgp
KS52YWx1ZSgpOworICAgICAgICAKKyAgICAgICAgZm9yIChhdXRvJiYgdW5pdFZhbHVlIDogbnVt
ZXJpY1ZlY3RvcikgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IGRvd25jYXN0PENTU1VuaXRW
YWx1ZT4odW5pdFZhbHVlLmdldCgpKS52YWx1ZSgpOworICAgICAgICAgICAgaWYgKHZhbHVlID4g
bWF4VmFsdWUpCisgICAgICAgICAgICAgICAgbWF4VmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKG1heFZhbHVlLCAq
dW5pdCk7CisgICAgfQogCi0gICAgcmV0dXJuICp0aGlzOworICAgIHJldHVybiBDU1NNYXRoTWF4
OjpjcmVhdGUoV1RGTW92ZShudW1lcmljVmVjdG9yKSk7CiB9CiAKIFJlZjxDU1NOdW1lcmljVmFs
dWU+IENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChDU1NOdW1iZXJpc2gmJiBudW1i
ZXJpc2gpCkBAIC0xMzYsNyArMzA4LDMyIEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFs
dWU+PiBDU1NOdW1lcmljVmFsdWU6OnBhcnNlKFN0cmluZyYmIGNzc1RleHQpCiAgICAgVU5VU0VE
X1BBUkFNKGNzc1RleHQpOwogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9j
c3MtdHlwZWQtb20vI2RvbS1jc3NudW1lcmljdmFsdWUtcGFyc2UKICAgICAvLyBGSVhNRTogYWRk
IGltcGwuCi0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTm90IGlt
cGxlbWVudGVkIEVycm9yIiB9OworICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciwgIk5vdCBpbXBsZW1lbnRlZCBFcnJvciJfcyB9OworfQorCitSZWY8Q1NTTnVtZXJpY1Zh
bHVlPiBDU1NOdW1lcmljVmFsdWU6Om5lZ2F0ZSgpCit7CisgICAgaWYgKGlzPENTU01hdGhOZWdh
dGU+KCp0aGlzKSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU01hdGhOZWdhdGU+KCp0aGlz
KS52YWx1ZSgpOworCisgICAgaWYgKGlzPENTU1VuaXRWYWx1ZT4oKnRoaXMpKQorICAgICAgICBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoLWRvd25jYXN0PENTU1VuaXRWYWx1ZT4oKnRoaXMp
LnZhbHVlKCksIGRvd25jYXN0PENTU1VuaXRWYWx1ZT4oKnRoaXMpLnVuaXQoKSk7CisKKyAgICBy
ZXR1cm4gQ1NTTWF0aE5lZ2F0ZTo6Y3JlYXRlKFJlZlB0cjxDU1NOdW1lcmljVmFsdWU+IHsgdGhp
cyB9KTsKK30KKworRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNW
YWx1ZTo6aW52ZXJ0KCkKK3sKKyAgICBpZiAoaXM8Q1NTTWF0aEludmVydD4oKnRoaXMpKQorICAg
ICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTTWF0aEludmVydD4oKnRoaXMpLnZhbHVlKCk7CisKKyAg
ICBpZiAoaXM8Q1NTVW5pdFZhbHVlPigqdGhpcykgJiYgZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPigq
dGhpcykudW5pdCgpID09ICJudW1iZXIiKSB7CisgICAgICAgIGlmIChkb3duY2FzdDxDU1NVbml0
VmFsdWU+KCp0aGlzKS52YWx1ZSgpID09IDAuMCkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBSYW5nZUVycm9yLCAiQ2Fubm90IGludmVydCBDU1NVbml0VmFsdWUgd2l0aCB2YWx1ZSAw
LjAgb3IgLTAuMCJfcyB9OworICAgIAorICAgICAgICByZXR1cm4gUmVmPENTU051bWVyaWNWYWx1
ZT4geyBDU1NVbml0VmFsdWU6OmNyZWF0ZSgxLjAgLyBkb3duY2FzdDxDU1NVbml0VmFsdWU+KCp0
aGlzKS52YWx1ZSgpLCBkb3duY2FzdDxDU1NVbml0VmFsdWU+KCp0aGlzKS51bml0KCkpIH07Cisg
ICAgfQorICAgIHJldHVybiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7IENTU01hdGhJbnZlcnQ6OmNy
ZWF0ZShSZWZQdHI8Q1NTTnVtZXJpY1ZhbHVlPiB7IHRoaXMgfSkgfTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NT
TnVtZXJpY1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuaAppbmRleCA1MmJiMWZmMDdkMTc1OWU2MWVkOTJhY2ZkOGMwZmZhMThkOTk2MDM1Li4wZmU3
OTM1MDIyZGYxOWRhNWMzNzY0OTBmZjhiNmY3M2EyYzI4MDMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaApAQCAtNDQsMTAgKzQ0LDEzIEBAIGNsYXNz
IENTU051bWVyaWNWYWx1ZSA6IHB1YmxpYyBDU1NTdHlsZVZhbHVlIHsKIHB1YmxpYzoKICAgICB1
c2luZyBDU1NOdW1iZXJpc2ggPSBzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBSZWZQdHI8Q1NTTnVtZXJp
Y1ZhbHVlPj47CiAKKyAgICBjb25zdCBTdHJpbmcqIGdldFNhbWVVbml0KGNvbnN0IFZlY3RvcjxS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mKTsKKyAgICBjb25zdCBTdHJpbmcqIGdldFByb2R1Y3RVbml0
KGNvbnN0IFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mKTsKKwogICAgIFJlZjxDU1NOdW1l
cmljVmFsdWU+IGFkZChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPiBzdWIoVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgUmVmPENTU051bWVyaWNW
YWx1ZT4gbXVsKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwotICAgIFJlZjxDU1NOdW1lcmljVmFs
dWU+IGRpdihWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4gZGl2KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwogICAgIFJlZjxDU1NO
dW1lcmljVmFsdWU+IG1pbihWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPiBtYXgoVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgCkBAIC02MSw2ICs2
NCwxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NOdW1lcmljVmFsdWU+IHJlY3RpZnlO
dW1iZXJpc2goQ1NTTnVtYmVyaXNoJiYpOwogICAgIAogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdl
dFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTTnVt
ZXJpY1ZhbHVlOyB9CisgICAgCisgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gYWRkSW1wbChWZWN0
b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOworICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG11
bEltcGwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKKworICAgIFJlZjxDU1NOdW1l
cmljVmFsdWU+IG5lZ2F0ZSgpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiBpbnZlcnQoKTsKIAogcHJvdGVjdGVkOgogICAgIENTU051bWVyaWNWYWx1ZSgpID0gZGVmYXVs
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0
aEludmVydC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52
ZXJ0LmgKaW5kZXggZTA5YTgwNmNiMTUyN2M5MmQ5NzQ4ZTk0MThmMWM0ODQzYjE1NDdiNi4uOGI2
YmNhZmVhNjUxNTBlOThkOTZjYjZlZjljNTA2OTFmOGVjZWNkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmgKQEAgLTM1LDcgKzM1
LDcgQEAgY2xhc3MgQ1NTTWF0aEludmVydCA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aEludmVydCk7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxDU1NNYXRoSW52ZXJ0PiBjcmVhdGUoQ1NTTnVtYmVyaXNoJiYpOwotICAgIGNvbnN0IENT
U051bWVyaWNWYWx1ZSYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLmdldCgpOyB9Cisg
ICAgUmVmPENTU051bWVyaWNWYWx1ZT4gdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLmNv
cHlSZWYoKTsgfQogICAgIAogcHJpdmF0ZToKICAgICBDU1NNYXRoSW52ZXJ0KENTU051bWJlcmlz
aCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TWF0aE1heC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhN
YXguY3BwCmluZGV4IDc0YjllMDI4NzI3ZmZmOGYxMDhjNGU0MTU4NzIwNDlkNDE2YTI3YTQuLjUw
YTQxMjQxYjIzOGI1M2I0OTNkZWE0YjRhOTUwZGM1MzMxZWNiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4LmNwcApAQCAtNDEsMTIgKzQx
LDIzIEBAIFJlZjxDU1NNYXRoTWF4PiBDU1NNYXRoTWF4OjpjcmVhdGUoVmVjdG9yPENTU051bWJl
cmlzaD4mJiBudW1iZXJpc2hlcykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoTWF4
KFdURk1vdmUobnVtYmVyaXNoZXMpKSk7CiB9CiAKK1JlZjxDU1NNYXRoTWF4PiBDU1NNYXRoTWF4
OjpjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIHZhbHVlcykKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoTWF4KFdURk1vdmUodmFsdWVzKSkpOworfQorCiBD
U1NNYXRoTWF4OjpDU1NNYXRoTWF4KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgbnVtYmVyaXNoZXMp
CiAgICAgOiBDU1NNYXRoVmFsdWUoQ1NTTWF0aE9wZXJhdG9yOjpNYXgpCiAgICAgLCBtX3ZhbHVl
cyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKG51bWJlcmlzaGVzKSkpCiB7CiB9CiAK
K0NTU01hdGhNYXg6OkNTU01hdGhNYXgoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIHZh
bHVlcykKKyAgICA6IENTU01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6Ok1heCkKKyAgICAsIG1f
dmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSkpCit7Cit9CisK
IGNvbnN0IENTU051bWVyaWNBcnJheSYgQ1NTTWF0aE1heDo6dmFsdWVzKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV92YWx1ZXMuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXguaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aE1heC5oCmluZGV4IDA2NTk2MGUxNTA4MzVmMDc4ZDg0MTFhZDI1ZWFm
NGU1MGQ0YzE0MTMuLjVkMmM4Y2RkOWM2MzhmZjQxZjYzODQyOTU2Nzk5MDU5ZmI4MTM0ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5oCkBA
IC0zOCwxMCArMzgsMTIgQEAgY2xhc3MgQ1NTTWF0aE1heCA6IHB1YmxpYyBDU1NNYXRoVmFsdWUg
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aE1heCk7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxDU1NNYXRoTWF4PiBjcmVhdGUoVmVjdG9yPENTU051bWJlcmlzaD4mJik7Cisg
ICAgc3RhdGljIFJlZjxDU1NNYXRoTWF4PiBjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFs
dWU+PiYmKTsKICAgICBjb25zdCBDU1NOdW1lcmljQXJyYXkmIHZhbHVlcygpIGNvbnN0OwogICAg
IAogcHJpdmF0ZToKICAgICBDU1NNYXRoTWF4KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOworICAg
IENTU01hdGhNYXgoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKICAgICBSZWY8Q1NT
TnVtZXJpY0FycmF5PiBtX3ZhbHVlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uY3BwCmluZGV4IDVjOTM0ZDQ0YjZjNmZiMjM1MDQ1
NzRlODI0NzMzYzY4Y2U2MTQ1MTQuLjAxYTBjMWRiZjgyY2RkYTMzMmViYTU3MTkzMDljMjEwMTQ3
OWRlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TWF0aE1pbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoTWluLmNwcApAQCAtNDEsOSArNDEsMjAgQEAgUmVmPENTU01hdGhNaW4+IENTU01hdGhNaW46
OmNyZWF0ZShWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IENTU01hdGhNaW4oV1RGTW92ZShudW1iZXJpc2hlcykpKTsKIH0KIAotQ1NT
TWF0aE1pbjo6Q1NTTWF0aE1pbihWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQor
UmVmPENTU01hdGhNaW4+IENTU01hdGhNaW46OmNyZWF0ZShWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1ZT4+JiYgdmFsdWVzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhNaW4o
V1RGTW92ZSh2YWx1ZXMpKSk7Cit9CisKK0NTU01hdGhNaW46OkNTU01hdGhNaW4oVmVjdG9yPFJl
ZjxDU1NOdW1lcmljVmFsdWU+PiYmIHZhbHVlcykKKyAgICA6IENTU01hdGhWYWx1ZShDU1NNYXRo
T3BlcmF0b3I6Ok1pbikKKyAgICAsIG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdU
Rk1vdmUodmFsdWVzKSkpCit7Cit9CisKK0NTU01hdGhNaW46OkNTU01hdGhNaW4oVmVjdG9yPENT
U051bWJlcmlzaD4mJiB2YWx1ZXMpCiAgICAgOiBDU1NNYXRoVmFsdWUoQ1NTTWF0aE9wZXJhdG9y
OjpNaW4pCi0gICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKG51
bWJlcmlzaGVzKSkpCisgICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZN
b3ZlKHZhbHVlcykpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9udW1lcmljL0NTU01hdGhNaW4uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251
bWVyaWMvQ1NTTWF0aE1pbi5oCmluZGV4IDQ0YzU1ODM5NTIyNjI2MDY5YzliMjE5MmI3MWMyYzlj
MjMyMzk1NGMuLmNlYjJlY2Y4ZTdkOTQ0NmY2MWQ1YzU2NmEwMmFlODMwYmViMjBhY2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5oCkBAIC0z
OCwxMCArMzgsMTIgQEAgY2xhc3MgQ1NTTWF0aE1pbiA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewog
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aE1pbik7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxDU1NNYXRoTWluPiBjcmVhdGUoVmVjdG9yPENTU051bWJlcmlzaD4mJik7CisgICAg
c3RhdGljIFJlZjxDU1NNYXRoTWluPiBjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiYmKTsKICAgICBjb25zdCBDU1NOdW1lcmljQXJyYXkmIHZhbHVlcygpIGNvbnN0OwogICAgIAog
cHJpdmF0ZToKICAgICBDU1NNYXRoTWluKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOworICAgIENT
U01hdGhNaW4oVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKICAgICBSZWY8Q1NTTnVt
ZXJpY0FycmF5PiBtX3ZhbHVlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmgKaW5kZXggODhjY2Q5YTkyMDJmMDhjYmY2ZTVk
ZGY4Yjc1ZTg4NDViOTgxMWUwMC4uZTdlNDU3ZjE1NjJlMDg3OWMyNmJjNzNkZmNiM2RiNDVkZDll
ZDNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoTmVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoTmVnYXRlLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgQ1NTTWF0aE5lZ2F0ZSA6IHB1Ymxp
YyBDU1NNYXRoVmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aE5lZ2F0
ZSk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NNYXRoTmVnYXRlPiBjcmVhdGUoQ1NTTnVt
YmVyaXNoJiYpOwotICAgIGNvbnN0IENTU051bWVyaWNWYWx1ZSYgdmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlLmdldCgpOyB9CisgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gdmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX3ZhbHVlLmNvcHlSZWYoKTsgfQogICAgIAogcHJpdmF0ZToKICAgICBD
U1NNYXRoTmVnYXRlKENTU051bWJlcmlzaCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHAKaW5kZXggYjFmMDA3MTY3N2Jl
YTJjZmYyZDA1NjBmYWRkMDRkNWY2ODA0NjMyZC4uYjFiNmEzOGNhMmFiMWU5NDJmZjQxYjJjMjA3
ZjE1YTA4ZDEzMmJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHAKQEAgLTQxLDEyICs0MSwyNCBAQCBSZWY8Q1NTTWF0
aFByb2R1Y3Q+IENTU01hdGhQcm9kdWN0OjpjcmVhdGUoVmVjdG9yPENTU051bWJlcmlzaD4mJiBu
dW1iZXJpc2hlcykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoUHJvZHVjdChXVEZN
b3ZlKG51bWJlcmlzaGVzKSkpOwogfQogCitSZWY8Q1NTTWF0aFByb2R1Y3Q+IENTU01hdGhQcm9k
dWN0OjpjcmVhdGUoUmVmPENTU051bWVyaWNBcnJheT4mJiBhcnJheSkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDU1NNYXRoUHJvZHVjdChXVEZNb3ZlKGFycmF5KSkpOworfQorCiBDU1NN
YXRoUHJvZHVjdDo6Q1NTTWF0aFByb2R1Y3QoVmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJp
c2hlcykKICAgICA6IENTU01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6OlByb2R1Y3QpCiAgICAg
LCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKG51bWJlcmlzaGVzKSkp
CiB7CiB9CiAKK0NTU01hdGhQcm9kdWN0OjpDU1NNYXRoUHJvZHVjdChSZWY8Q1NTTnVtZXJpY0Fy
cmF5PiYmIGFycmF5KQorICAgIDogQ1NTTWF0aFZhbHVlKENTU01hdGhPcGVyYXRvcjo6UHJvZHVj
dCkKKyAgICAsIG1fdmFsdWVzKFdURk1vdmUoYXJyYXkpKQoreworfQorCisKIGNvbnN0IENTU051
bWVyaWNBcnJheSYgQ1NTTWF0aFByb2R1Y3Q6OnZhbHVlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fdmFsdWVzLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoUHJvZHVjdC5oCmluZGV4IGUzMzk5ZDQ2MzYxN2I1NzIzZjEyYWU0MDAwNmYx
ZTA2NzJkN2ZjYTEuLmQ0NTMwZDk2MWQwZGNkNTUxOWFiYTYwNTljNDk0ZmRkZjM4MTMyNDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9k
dWN0LmgKQEAgLTM4LDEyICszOCwxNCBAQCBjbGFzcyBDU1NNYXRoUHJvZHVjdCA6IHB1YmxpYyBD
U1NNYXRoVmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aFByb2R1Y3Qp
OwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q1NTTWF0aFByb2R1Y3Q+IGNyZWF0ZShWZWN0b3I8
Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBzdGF0aWMgUmVmPENTU01hdGhQcm9kdWN0PiBjcmVhdGUo
UmVmPENTU051bWVyaWNBcnJheT4mJik7CiAgICAgY29uc3QgQ1NTTnVtZXJpY0FycmF5JiB2YWx1
ZXMoKSBjb25zdDsKICAgICAKICAgICBDU1NNYXRoT3BlcmF0b3IgZ2V0T3BlcmF0b3IoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBDU1NNYXRoT3BlcmF0b3I6OlByb2R1Y3Q7IH0KIAogcHJpdmF0ZToK
ICAgICBDU1NNYXRoUHJvZHVjdChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBDU1NNYXRo
UHJvZHVjdChSZWY8Q1NTTnVtZXJpY0FycmF5PiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY0FycmF5
PiBtX3ZhbHVlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aFN1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU01hdGhTdW0uY3BwCmluZGV4IGEwZDdlYWQzZWJlMjdiMjJkMmNhZDczNDVmNDA0NWU1
MTU3MGMyYmUuLmFkZGUwNzY5ZDE2ZGZkY2YzMWFlZjEzZGVlOWFmZGM5YjNkNWU2MzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcApA
QCAtNDEsMTIgKzQxLDIzIEBAIFJlZjxDU1NNYXRoU3VtPiBDU1NNYXRoU3VtOjpjcmVhdGUoVmVj
dG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hlcykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDU1NNYXRoU3VtKFdURk1vdmUobnVtYmVyaXNoZXMpKSk7CiB9CiAKK1JlZjxDU1NNYXRoU3Vt
PiBDU1NNYXRoU3VtOjpjcmVhdGUoUmVmPENTU051bWVyaWNBcnJheT4mJiBhcnJheSkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoU3VtKFdURk1vdmUoYXJyYXkpKSk7Cit9CisK
IENTU01hdGhTdW06OkNTU01hdGhTdW0oVmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hl
cykKICAgICA6IENTU01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6OlN1bSkKICAgICAsIG1fdmFs
dWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUobnVtYmVyaXNoZXMpKSkKIHsKIH0K
IAorQ1NTTWF0aFN1bTo6Q1NTTWF0aFN1bShSZWY8Q1NTTnVtZXJpY0FycmF5PiYmIGFycmF5KQor
ICAgIDogQ1NTTWF0aFZhbHVlKENTU01hdGhPcGVyYXRvcjo6U3VtKQorICAgICwgbV92YWx1ZXMo
V1RGTW92ZShhcnJheSkpCit7Cit9CisKIGNvbnN0IENTU051bWVyaWNBcnJheSYgQ1NTTWF0aFN1
bTo6dmFsdWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV92YWx1ZXMuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCmluZGV4IDU0MzE4
NzhiZWFmMzg0NWFkMjA4MmIxMGI0NmJhZGNmZDBkNmUyNmUuLjE2ODE2MDFkMGY5ZGRlNjYwNjYy
NjAwYjg4Y2EzZGFmYzcwYTE2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aFN1bS5oCkBAIC0zOSwxMCArMzksMTIgQEAgY2xhc3MgQ1NTTWF0aFN1
bSA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NT
TWF0aFN1bSk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NNYXRoU3VtPiBjcmVhdGUoVmVj
dG9yPENTU051bWJlcmlzaD4mJik7CisgICAgc3RhdGljIFJlZjxDU1NNYXRoU3VtPiBjcmVhdGUo
UmVmPENTU051bWVyaWNBcnJheT4mJik7CiAgICAgY29uc3QgQ1NTTnVtZXJpY0FycmF5JiB2YWx1
ZXMoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBDU1NNYXRoU3VtKFZlY3RvcjxDU1NOdW1iZXJp
c2g+JiYpOworICAgIENTU01hdGhTdW0oUmVmPENTU051bWVyaWNBcnJheT4mJik7CiAgICAgUmVm
PENTU051bWVyaWNBcnJheT4gbV92YWx1ZXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuaAppbmRleCA4M2IwODYzMjFh
ZDVkOWYzZjgyNGQ5NThiYzEyNjYxNzZiOTZlYTc4Li5hMGVmMjVmZTNjZWI4MDA1OGU3NWM1NjRm
ODVjNTg1OGM4YjYxODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU051bWVyaWNBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBSZWY8Q1NTTnVtZXJpY0FycmF5PiBjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmlj
VmFsdWU+PiYmKTsKICAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9hcnJheS5z
aXplKCk7IH07CiAgICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGl0ZW0oc2l6
ZV90IGluZGV4KTsKLQorICAgIGNvbnN0IFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mIGFy
cmF5KCkgY29uc3QgeyByZXR1cm4gbV9hcnJheTsgfQogcHJpdmF0ZToKICAgICBWZWN0b3I8UmVm
PENTU051bWVyaWNWYWx1ZT4+IG1fYXJyYXk7CiAgICAgQ1NTTnVtZXJpY0FycmF5KFZlY3RvcjxS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRl
eCA1YTIwYTcxZjNkNjgyNGNhMWVlOWM3MmRmZmRhMWIzMjZkYTdhMmRmLi5jMmFmMGVmYzIxYWQ2
OGYwYzEyYzJlNDZkMWE3YzJiYzgxY2IxYjljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0xMS0yMyAgSm9obnNvbiBaaG91ICA8am9obnNvbi56
aG91LnNoQGljbG91ZC5jb20+CisKKyAgICAgICAgQWRkIGltcGxlbWVudGF0aW9uIGZvciBDU1NO
dW1lcmljVmFsdWUgbWF0aCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMDc5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20v
c3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0aG1ldGljLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIENTUDogc2VjdXJpdHkgcG9saWN5IHZpb2xhdGlv
biBldmVudCBpcyBhbHdheXMgdXNpbmcgZG9jdW1lbnQgYXMgdGFyZ2V0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQt
b20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0aG1ldGljLnRlbnRh
dGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2Jq
ZWN0cy9hcml0aG1ldGljLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggMWZmZDBlMGM2MDE0
YzZhZjQwY2FhM2ZiZmViY2YwYWVhOTljMTc2My4uNTM2ZWE1MmU1M2IwY2NiOGNlMjc4MDY3MDMw
NmEzNDdhZjE3MzkzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1l
cmljLW9iamVjdHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9z
dHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZl
LWV4cGVjdGVkLnR4dApAQCAtMSw2NSArMSw2NSBAQAogCiBQQVNTIENhbGxpbmcgQ1NTVW5pdFZh
bHVlLmFkZCB3aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgogUEFTUyBDYWxsaW5nIENT
U01hdGhWYWx1ZS5hZGQgd2l0aCBubyBhcmd1bWVudHMgcmV0dXJucyBpdHNlbGYKLUZBSUwgQ2Fs
bGluZyBDU1NOdW1lcmljVmFsdWUuYWRkIHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJl
dHVybnMgY29ycmVjdCB0eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoU3VtIiBi
dXQgZ290ICJDU1NVbml0VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLmFkZCB3
aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBD
YWxsaW5nIENTU01hdGhWYWx1ZS5hZGQgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0
dXJucyBjb3JyZWN0IHR5cGUKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuYWRkIHdpdGgg
bW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlw
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFN1bSIgYnV0IGdvdCAiQ1NTVW5pdFZh
bHVlIgorUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5hZGQgd2l0aCBtb3JlIHRoYW4gb25l
IG51bWJlciBDU1NOdW1lcmljVmFsdWVzIHJldHVybnMgY29ycmVjdCB0eXBlCiBQQVNTIENhbGxp
bmcgQ1NTTnVtZXJpY1ZhbHVlLmFkZCBjYW4gdGFrZSBudW1iZXJpc2ggdmFsdWVzCi1GQUlMIENh
bGxpbmcgQ1NTTWF0aFN1bS5hZGQgd2l0aCBudW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVz
IHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NVbml0VmFsdWUi
IGJ1dCBnb3QgIkNTU01hdGhTdW0iCitQQVNTIENhbGxpbmcgQ1NTTWF0aFN1bS5hZGQgd2l0aCBu
dW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCiBQQVNTIENh
bGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLmFkZCB3aXRoIGluY29tcGF0aWJsZSB0eXBlcyB0aHJvd3Mg
VHlwZUVycm9yCiBQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLnN1YiB3aXRoIG5vIGFyZ3VtZW50
cyByZXR1cm5zIGl0c2VsZgogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1ZS5zdWIgd2l0aCBubyBh
cmd1bWVudHMgcmV0dXJucyBpdHNlbGYKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuc3Vi
IHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoU3VtIiBidXQgZ290ICJDU1NVbml0VmFsdWUiCitQ
QVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1YiB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNW
YWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1ZS5zdWIg
d2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUKLUZBSUwg
Q2FsbGluZyBDU1NOdW1lcmljVmFsdWUuc3ViIHdpdGggbW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NT
TnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiQ1NTTWF0aFN1bSIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgorUEFTUyBDYWxsaW5nIENTU051
bWVyaWNWYWx1ZS5zdWIgd2l0aCBtb3JlIHRoYW4gb25lIG51bWJlciBDU1NOdW1lcmljVmFsdWVz
IHJldHVybnMgY29ycmVjdCB0eXBlCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1YiBj
YW4gdGFrZSBudW1iZXJpc2ggdmFsdWVzCi1GQUlMIENhbGxpbmcgQ1NTTWF0aFN1bS5zdWIgd2l0
aCBudW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJDU1NVbml0VmFsdWUiIGJ1dCBnb3QgIkNTU01hdGhTdW0iCitQ
QVNTIENhbGxpbmcgQ1NTTWF0aFN1bS5zdWIgd2l0aCBudW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1w
bGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1
YiB3aXRoIGluY29tcGF0aWJsZSB0eXBlcyB0aHJvd3MgVHlwZUVycm9yCiBQQVNTIENhbGxpbmcg
Q1NTVW5pdFZhbHVlLm11bCB3aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgogUEFTUyBD
YWxsaW5nIENTU01hdGhWYWx1ZS5tdWwgd2l0aCBubyBhcmd1bWVudHMgcmV0dXJucyBpdHNlbGYK
LUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubXVsIHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJp
Y1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NN
YXRoUHJvZHVjdCIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgorUEFTUyBDYWxsaW5nIENTU051bWVy
aWNWYWx1ZS5tdWwgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0
IHR5cGUKIFBBU1MgQ2FsbGluZyBDU1NNYXRoVmFsdWUubXVsIHdpdGggYSBzaW5nbGUgQ1NTTnVt
ZXJpY1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlCi1GQUlMIENhbGxpbmcgQ1NTTnVtZXJpY1Zh
bHVlLm11bCB3aXRoIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU051bWVyaWNWYWx1ZXMgcmV0dXJu
cyBjb3JyZWN0IHR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU01hdGhQcm9kdWN0IiBi
dXQgZ290ICJDU1NVbml0VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm11bCB3
aXRoIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU051bWVyaWNWYWx1ZXMgcmV0dXJucyBjb3JyZWN0
IHR5cGUKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubXVsIGNhbiB0YWtlIG51bWJlcmlz
aCB2YWx1ZXMKLUZBSUwgQ2FsbGluZyBDU1NNYXRoUHJvZHVjdC5tdWwgd2l0aCBudW1iZXIgQ1NT
VW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJDU1NVbml0VmFsdWUiIGJ1dCBnb3QgIkNTU01hdGhQcm9kdWN0IgorUEFTUyBDYWxs
aW5nIENTU01hdGhQcm9kdWN0Lm11bCB3aXRoIG51bWJlciBDU1NVbml0VmFsdWVzIHNpbXBsaWZp
ZXMgdG8gYSBDU1NVbml0VmFsdWUKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubXVsIHdp
dGggaW5jb21wYXRpYmxlIHR5cGVzIHRocm93cyBUeXBlRXJyb3IKIFBBU1MgQ2FsbGluZyBDU1NV
bml0VmFsdWUuZGl2IHdpdGggbm8gYXJndW1lbnRzIHJldHVybnMgaXRzZWxmCiBQQVNTIENhbGxp
bmcgQ1NTTWF0aFZhbHVlLmRpdiB3aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgotRkFJ
TCBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5kaXYgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFs
dWUgcmV0dXJucyBjb3JyZWN0IHR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU01hdGhQ
cm9kdWN0IiBidXQgZ290ICJDU1NVbml0VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1Zh
bHVlLmRpdiB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlw
ZQogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1ZS5kaXYgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmlj
VmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUu
ZGl2IHdpdGggbW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNv
cnJlY3QgdHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFByb2R1Y3QiIGJ1dCBn
b3QgIkNTU1VuaXRWYWx1ZSIKK1BBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuZGl2IHdpdGgg
bW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlw
ZQogUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5kaXYgY2FuIHRha2UgbnVtYmVyaXNoIHZh
bHVlcwotRkFJTCBDYWxsaW5nIENTU01hdGhQcm9kdWN0LmRpdiB3aXRoIG51bWJlciBDU1NVbml0
VmFsdWVzIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIkNTU1VuaXRWYWx1ZSIgYnV0IGdvdCAiQ1NTTWF0aFByb2R1Y3QiCitQQVNTIENhbGxpbmcg
Q1NTTWF0aFByb2R1Y3QuZGl2IHdpdGggbnVtYmVyIENTU1VuaXRWYWx1ZXMgc2ltcGxpZmllcyB0
byBhIENTU1VuaXRWYWx1ZQogUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5kaXYgd2l0aCBp
bmNvbXBhdGlibGUgdHlwZXMgdGhyb3dzIFR5cGVFcnJvcgogUEFTUyBDYWxsaW5nIENTU1VuaXRW
YWx1ZS5taW4gd2l0aCBubyBhcmd1bWVudHMgcmV0dXJucyBpdHNlbGYKIFBBU1MgQ2FsbGluZyBD
U1NNYXRoVmFsdWUubWluIHdpdGggbm8gYXJndW1lbnRzIHJldHVybnMgaXRzZWxmCi1GQUlMIENh
bGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1pbiB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSBy
ZXR1cm5zIGNvcnJlY3QgdHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aE1pbiIg
YnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgorUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5taW4g
d2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUKIFBBU1Mg
Q2FsbGluZyBDU1NNYXRoVmFsdWUubWluIHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJl
dHVybnMgY29ycmVjdCB0eXBlCi1GQUlMIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1pbiB3aXRo
IG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU051bWVyaWNWYWx1ZXMgcmV0dXJucyBjb3JyZWN0IHR5
cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU01hdGhNaW4iIGJ1dCBnb3QgIkNTU1VuaXRW
YWx1ZSIKK1BBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubWluIHdpdGggbW9yZSB0aGFuIG9u
ZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxs
aW5nIENTU051bWVyaWNWYWx1ZS5taW4gY2FuIHRha2UgbnVtYmVyaXNoIHZhbHVlcwotRkFJTCBD
YWxsaW5nIENTU01hdGhNaW4ubWluIHdpdGggbnVtYmVyIENTU1VuaXRWYWx1ZXMgc2ltcGxpZmll
cyB0byBhIENTU1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTVW5pdFZhbHVl
IiBidXQgZ290ICJDU1NNYXRoTWluIgorUEFTUyBDYWxsaW5nIENTU01hdGhNaW4ubWluIHdpdGgg
bnVtYmVyIENTU1VuaXRWYWx1ZXMgc2ltcGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZQogUEFTUyBD
YWxsaW5nIENTU051bWVyaWNWYWx1ZS5taW4gd2l0aCBpbmNvbXBhdGlibGUgdHlwZXMgdGhyb3dz
IFR5cGVFcnJvcgogUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5tYXggd2l0aCBubyBhcmd1bWVu
dHMgcmV0dXJucyBpdHNlbGYKIFBBU1MgQ2FsbGluZyBDU1NNYXRoVmFsdWUubWF4IHdpdGggbm8g
YXJndW1lbnRzIHJldHVybnMgaXRzZWxmCi1GQUlMIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1h
eCB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aE1heCIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgor
UEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5tYXggd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmlj
VmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUKIFBBU1MgQ2FsbGluZyBDU1NNYXRoVmFsdWUubWF4
IHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlCi1GQUlM
IENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1heCB3aXRoIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENT
U051bWVyaWNWYWx1ZXMgcmV0dXJucyBjb3JyZWN0IHR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIkNTU01hdGhNYXgiIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKK1BBU1MgQ2FsbGluZyBDU1NO
dW1lcmljVmFsdWUubWF4IHdpdGggbW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVl
cyByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5tYXgg
Y2FuIHRha2UgbnVtYmVyaXNoIHZhbHVlcwotRkFJTCBDYWxsaW5nIENTU01hdGhNYXgubWF4IHdp
dGggbnVtYmVyIENTU1VuaXRWYWx1ZXMgc2ltcGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTVW5pdFZhbHVlIiBidXQgZ290ICJDU1NNYXRoTWF4Igor
UEFTUyBDYWxsaW5nIENTU01hdGhNYXgubWF4IHdpdGggbnVtYmVyIENTU1VuaXRWYWx1ZXMgc2lt
cGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZQogUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5t
YXggd2l0aCBpbmNvbXBhdGlibGUgdHlwZXMgdGhyb3dzIFR5cGVFcnJvcgotRkFJTCBDYWxsaW5n
IENTU1VuaXRWYWx1ZS5hZGQgd2l0aCBDU1NVbml0VmFsdWVzIHdpdGggc2FtZSB1bml0IHNpbXBs
aWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMTcgYnV0IGdv
dCAxMAotRkFJTCBDYWxsaW5nIENTU1VuaXRWYWx1ZS5zdWIgd2l0aCBDU1NVbml0VmFsdWVzIHdp
dGggc2FtZSB1bml0IHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgMyBidXQgZ290IDEwCi1GQUlMIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm11bCB3aXRo
IGFsbCBudW1iZXJzIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMTAKLUZBSUwgQ2FsbGluZyBDU1NVbml0VmFsdWUubXVsIHdp
dGggb25seSBvbmUgbm9uLW51bWJlciBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIDEwMCBidXQgZ290IDEwCi1GQUlMIENhbGxpbmcgQ1NTVW5pdFZh
bHVlLm11bCB3aXRoIG1vcmUgdGhhbiBvbmUgbm9uLW51bWJlciBkb2VzIG5vdCBzaW1wbGlmeSB0
byBhIENTU1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFByb2R1Y3Qi
IGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKLUZBSUwgQ2FsbGluZyBDU1NVbml0VmFsdWUuZGl2IHdp
dGggYWxsIG51bWJlcnMgc2ltcGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAxIGJ1dCBnb3QgMTAKLUZBSUwgQ2FsbGluZyBDU1NVbml0VmFsdWUuZGl2IG9u
IGEgbm9uLW51bWJlciB2YWx1ZSBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIDEgYnV0IGdvdCAxMAotRkFJTCBDYWxsaW5nIENTU1VuaXRWYWx1ZS5k
aXYgd2l0aCBhIG5vbi1udW1iZXIgdmFsdWUgaW4gdGhlIGFyZ3VtZW50cyBkb2VzIG5vdCBzaW1w
bGlmeSB0byBhIENTU1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFBy
b2R1Y3QiIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKLUZBSUwgQ2FsbGluZyBDU1NVbml0VmFsdWUu
bWluIHdpdGggQ1NTVW5pdFZhbHVlcyB3aXRoIHNhbWUgdW5pdCBzaW1wbGlmaWVzIHRvIGEgQ1NT
VW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDIgYnV0IGdvdCAxMAorUEFTUyBDYWxs
aW5nIENTU1VuaXRWYWx1ZS5hZGQgd2l0aCBDU1NVbml0VmFsdWVzIHdpdGggc2FtZSB1bml0IHNp
bXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUKK1BBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUuc3Vi
IHdpdGggQ1NTVW5pdFZhbHVlcyB3aXRoIHNhbWUgdW5pdCBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5p
dFZhbHVlCitQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm11bCB3aXRoIGFsbCBudW1iZXJzIHNp
bXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUKK1BBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUubXVs
IHdpdGggb25seSBvbmUgbm9uLW51bWJlciBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCitQ
QVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm11bCB3aXRoIG1vcmUgdGhhbiBvbmUgbm9uLW51bWJl
ciBkb2VzIG5vdCBzaW1wbGlmeSB0byBhIENTU1VuaXRWYWx1ZQorUEFTUyBDYWxsaW5nIENTU1Vu
aXRWYWx1ZS5kaXYgd2l0aCBhbGwgbnVtYmVycyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVl
CitQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLmRpdiBvbiBhIG5vbi1udW1iZXIgdmFsdWUgc2lt
cGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZQorUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5kaXYg
d2l0aCBhIG5vbi1udW1iZXIgdmFsdWUgaW4gdGhlIGFyZ3VtZW50cyBkb2VzIG5vdCBzaW1wbGlm
eSB0byBhIENTU1VuaXRWYWx1ZQorUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5taW4gd2l0aCBD
U1NVbml0VmFsdWVzIHdpdGggc2FtZSB1bml0IHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUK
IFBBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUubWF4IHdpdGggQ1NTVW5pdFZhbHVlcyB3aXRoIHNh
bWUgdW5pdCBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCi1GQUlMIENhbGxpbmcgQ1NTTnVt
ZXJpY1ZhbHVlLnN1YiBuZWdhdGVzIGFsbCBhcmd1bWVudCB2YWx1ZXMgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIkNTU01hdGhTdW0iIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKLUZBSUwgQ2FsbGlu
ZyBDU1NOdW1lcmljVmFsdWUuZGl2IGludmVydHMgYWxsIGFyZ3VtZW50IHZhbHVlcyBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFByb2R1Y3QiIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIK
LUZBSUwgQ2FuIG5vdCBkaXZpZGUgd2l0aCBDU1NVbml0VmFsdWUgd2hpY2ggaGFzIHplcm8gdmFs
dWUgYW5kIG51bWJlciB0eXBlIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBDU1Mu
bnVtYmVyKDIpLmRpdihDU1MubnVtYmVyKDApKSIgZGlkIG5vdCB0aHJvdworUEFTUyBDYWxsaW5n
IENTU051bWVyaWNWYWx1ZS5zdWIgbmVnYXRlcyBhbGwgYXJndW1lbnQgdmFsdWVzCitQQVNTIENh
bGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLmRpdiBpbnZlcnRzIGFsbCBhcmd1bWVudCB2YWx1ZXMKK1BB
U1MgQ2FuIG5vdCBkaXZpZGUgd2l0aCBDU1NVbml0VmFsdWUgd2hpY2ggaGFzIHplcm8gdmFsdWUg
YW5kIG51bWJlciB0eXBlCiBGQUlMIENTU051bWVyaWNWYWx1ZS5hZGQgc2hvdWxkIHRocm93IFR5
cGVFcnJvciB3aGVuIHRoZSB0eXBlcyBhcmUgZGlmZmVyZW50LiBhc3NlcnRfdGhyb3dzX2pzOiBm
dW5jdGlvbiAiKCkgPT4gQ1NTLm51bWJlcigzKS5hZGQoQ1NTLnB4KDEwKSAsQ1NTLm51bWJlcigw
KSkiIGRpZCBub3QgdGhyb3cKIEZBSUwgQ1NTTnVtZXJpY1ZhbHVlLnN1YiBzaG91bGQgdGhyb3cg
VHlwZUVycm9yIHdoZW4gdGhlIHR5cGVzIGFyZSBkaWZmZXJlbnQuIGFzc2VydF90aHJvd3NfanM6
IGZ1bmN0aW9uICIoKSA9PiBDU1MubnVtYmVyKDMpLnN1YihDU1MucHgoMTApICxDU1MubnVtYmVy
KDApKSIgZGlkIG5vdCB0aHJvdwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445099</attachid>
            <date>2021-11-24 10:18:31 -0800</date>
            <delta_ts>2021-11-24 21:50:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230795-20211124101830.patch</filename>
            <type>text/plain</type>
            <size>36265</size>
            <attacher name="Qiaosong Zhou">johnson.zhou.sh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRhMzRiNjJjODRmOGU3
YmMyMDk4ZjJmNGQyYjI5ZjUzZjFkZTcxNy4uY2VlYjdiYzg2YTRjN2I4YzFiODAzYzFhYzg3ZDA5
NDg0MDUzZTg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTExLTIzICBKb2hu
c29uIFpob3UgIDxqb2huc29uLnpob3Uuc2hAaWNsb3VkLmNvbT4KKworICAgICAgICBBZGQgaW1w
bGVtZW50YXRpb24gZm9yIENTU051bWVyaWNWYWx1ZSBtYXRoIGZ1bmN0aW9ucyBhY2NvcmRpbmcg
dG8gQ1NTIFR5cGVkIE9NIFNwZWMuIAorICAgICAgICBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGlu
aS5vcmcvY3NzLXR5cGVkLW9tLTEvI251bWVyaWMtdmFsdWUKKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzk1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlVmFs
dWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAg
ICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU051bWVyaWNWYWx1ZTo6Z2V0U2FtZVVuaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVt
ZXJpY1ZhbHVlOjpnZXRQcm9kdWN0VW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmlj
VmFsdWU6OmFkZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGQp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjpzdWIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWxJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051
bWVyaWNWYWx1ZTo6bXVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6ZGl2
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6bWluKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6bWF4KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVy
aWNWYWx1ZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjpuZWdh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjppbnZlcnQpOgorICAgICAg
ICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5oOgorICAgICAgICAqIGNzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aEludmVydC5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aEludmVy
dDo6dmFsdWUgY29uc3QpOgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1h
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoTWF4OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTWF0aE1heDo6Q1NTTWF0aE1heCk6CisgICAgICAgICogY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoTWF4Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoTWluLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhNaW46OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NNYXRoTWluOjpDU1NNYXRoTWluKToKKyAgICAgICAgKiBjc3MvdHlw
ZWRvbS9udW1lcmljL0NTU01hdGhNaW4uaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhOZWdhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhOZWdhdGU6OnZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhQcm9kdWN0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQcm9kdWN0KToKKyAgICAgICAgKiBjc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0Lmg6CisgICAgICAgICogY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoU3VtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhTdW06OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoU3VtOjpDU1NNYXRoU3VtKToKKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaDoKKyAgICAgICAgKiBjc3MvdHlw
ZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVt
ZXJpY0FycmF5OjphcnJheSBjb25zdCk6CisKIDIwMjEtMTEtMjMgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBNb3ZlIHRoZSBzb2Z0
d2FyZSBGaWx0ZXJFZmZlY3QgZnVuY3Rpb25zIHRvIHNlcGFyYXRlIGFwcGxpZXIgY2xhc3Nlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZVZhbHVlQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVWYWx1ZUN1c3Rv
bS5jcHAKaW5kZXggMzgzN2U4OTNjM2I3ZTE0OTY5NjdmNTQ2ZTliODNiNDdhOTJhODYwZi4uN2Q2
MTRiMDFjNzcxOTljOTMzNGUwOWI4ZjU0MjZmNTFiMDFjMjQ4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZVZhbHVlQ3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlVmFsdWVDdXN0b20uY3BwCkBAIC0yOSw2
ICsyOSwxMyBAQAogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAKICNpbmNsdWRlICJKU0NTU0tl
eXdvcmRWYWx1ZS5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0aEludmVydC5oIgorI2luY2x1ZGUgIkpT
Q1NTTWF0aE1heC5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0aE1pbi5oIgorI2luY2x1ZGUgIkpTQ1NT
TWF0aE5lZ2F0ZS5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0aE9wZXJhdG9yLmgiCisjaW5jbHVkZSAi
SlNDU1NNYXRoUHJvZHVjdC5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0aFN1bS5oIgogI2luY2x1ZGUg
IkpTQ1NTTWF0aFZhbHVlLmgiCiAjaW5jbHVkZSAiSlNDU1NOdW1lcmljVmFsdWUuaCIKICNpbmNs
dWRlICJKU0NTU1N0eWxlSW1hZ2VWYWx1ZS5oIgpAQCAtNDcsNiArNTQsMjAgQEAgSlNWYWx1ZSB0
b0pTTmV3bHlDcmVhdGVkKEpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPEMKICAgICBjYXNlIENTU1N0eWxlVmFsdWVUeXBlOjpDU1NOdW1lcmljVmFs
dWU6CiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU051bWVyaWNWYWx1ZT4oZ2xvYmFs
T2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CiAgICAgY2FzZSBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NT
TWF0aFZhbHVlOgorICAgICAgICBzd2l0Y2ggKGRvd25jYXN0PENTU01hdGhWYWx1ZT4odmFsdWUu
Z2V0KCkpLmdldE9wZXJhdG9yKCkpIHsKKyAgICAgICAgY2FzZSBDU1NNYXRoT3BlcmF0b3I6OlN1
bToKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU01hdGhTdW0+KGdsb2JhbE9i
amVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAgICAgICBjYXNlIENTU01hdGhPcGVyYXRvcjo6UHJv
ZHVjdDoKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU01hdGhQcm9kdWN0Pihn
bG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgY2FzZSBDU1NNYXRoT3BlcmF0
b3I6Ok5lZ2F0ZToKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU01hdGhOZWdh
dGU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAgICAgICBjYXNlIENTU01hdGhP
cGVyYXRvcjo6SW52ZXJ0OgorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTTWF0
aEludmVydD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIGNhc2UgQ1NT
TWF0aE9wZXJhdG9yOjpNaW46CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NN
YXRoTWluPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgY2FzZSBDU1NN
YXRoT3BlcmF0b3I6Ok1heDoKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU01h
dGhNYXg+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAgICAgICB9CiAgICAgICAg
IHJldHVybiBjcmVhdGVXcmFwcGVyPENTU01hdGhWYWx1ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3Zl
KHZhbHVlKSk7CiAgICAgY2FzZSBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTVW5pdFZhbHVlOgogICAg
ICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NVbml0VmFsdWU+KGdsb2JhbE9iamVjdCwgV1RG
TW92ZSh2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NT
TnVtZXJpY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNW
YWx1ZS5jcHAKaW5kZXggOWMwYzFjNzI1NDhhZDU3OGFmOWI5Mzg4NzE1MjliZjEyNTE1Y2Y0ZC4u
N2JmZTg1Zjk4Y2M5Yjk2MjEzMTZjMDMzOTI5MDRiMjZiN2IyYWY0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCkBAIC0zMCw3ICszMCwxMyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU051bWVyaWNWYWx1ZS5oIgogCisj
aW5jbHVkZSAiQ1NTTWF0aEludmVydC5oIgorI2luY2x1ZGUgIkNTU01hdGhNYXguaCIKKyNpbmNs
dWRlICJDU1NNYXRoTWluLmgiCisjaW5jbHVkZSAiQ1NTTWF0aE5lZ2F0ZS5oIgorI2luY2x1ZGUg
IkNTU01hdGhQcm9kdWN0LmgiCiAjaW5jbHVkZSAiQ1NTTWF0aFN1bS5oIgorI2luY2x1ZGUgIkNT
U051bWVyaWNBcnJheS5oIgogI2luY2x1ZGUgIkNTU051bWVyaWNGYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiQ1NTTnVtZXJpY1R5cGUuaCIKICNpbmNsdWRlICJDU1NVbml0VmFsdWUuaCIKQEAgLTM5LDU1
ICs0NSwyMjEgQEAKICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogCiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ1NTTnVtZXJp
Y1ZhbHVlKTsKIAoraW5saW5lIGNvbnN0IFN0cmluZyogQ1NTTnVtZXJpY1ZhbHVlOjpnZXRTYW1l
VW5pdChjb25zdCBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiBudW1lcmljVmVjdG9yKQor
eworICAgIGlmIChudW1lcmljVmVjdG9yLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgCisgICAgZm9yIChhdXRvIGl0ID0gbnVtZXJpY1ZlY3Rvci5iZWdpbigpOyBpdCAh
PSBudW1lcmljVmVjdG9yLmVuZCgpOyArK2l0KSB7CisgICAgICAgIGlmICghaXM8Q1NTVW5pdFZh
bHVlPigqaXQpIHx8IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4obnVtZXJpY1ZlY3Rvci5iZWdpbigp
LT5nZXQoKSkudW5pdCgpICE9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4oaXQtPmdldCgpKS51bml0
KCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gJmRv
d25jYXN0PENTU1VuaXRWYWx1ZT4obnVtZXJpY1ZlY3Rvci5iZWdpbigpLT5nZXQoKSkudW5pdCgp
OworfQorCitpbmxpbmUgY29uc3QgU3RyaW5nKiBDU1NOdW1lcmljVmFsdWU6OmdldFByb2R1Y3RV
bml0KGNvbnN0IFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mIG51bWVyaWNWZWN0b3IpCit7
CisgICAgaWYgKG51bWVyaWNWZWN0b3IuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICAKKyAgICBjb25zdCBTdHJpbmcqIG5vbk51bWJlclVuaXQgPSBudWxscHRyOworICAg
IAorICAgIGZvciAoYXV0byBpdCA9IG51bWVyaWNWZWN0b3IuYmVnaW4oKTsgaXQgIT0gbnVtZXJp
Y1ZlY3Rvci5lbmQoKTsgKytpdCkgeworICAgICAgICBpZiAoIWlzPENTU1VuaXRWYWx1ZT4oKml0
KSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAKKyAgICAgICAgY29uc3Qg
U3RyaW5nJiB1bml0ID0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPihpdC0+Z2V0KCkpLnVuaXQoKTsK
KyAgICAgICAgaWYgKHVuaXQgIT0gIm51bWJlciJfcykgeworICAgICAgICAgICAgaWYgKG5vbk51
bWJlclVuaXQpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIG5vbk51bWJlclVuaXQgPSAmdW5pdDsKKyAgICAgICAgfQorICAgIH0KKyAg
ICAKKyAgICBpZiAobm9uTnVtYmVyVW5pdCkKKyAgICAgICAgcmV0dXJuIG5vbk51bWJlclVuaXQ7
CisKKyAgICByZXR1cm4gJmRvd25jYXN0PENTU1VuaXRWYWx1ZT4obnVtZXJpY1ZlY3Rvci5iZWdp
bigpLT5nZXQoKSkudW5pdCgpOworfQorCitSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmlj
VmFsdWU6OmFkZEltcGwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIG51bWVyaWNWZWN0
b3IpCit7CisgICAgaWYgKGF1dG8gdW5pdCA9IGdldFNhbWVVbml0KG51bWVyaWNWZWN0b3IpKSB7
CisgICAgICAgIGRvdWJsZSBzdW0gPSAwOworICAgICAgICBmb3IgKGF1dG8mJiBudW1lcmljVmFs
dWUgOiBudW1lcmljVmVjdG9yKQorICAgICAgICAgICAgc3VtICs9IGRvd25jYXN0PENTU1VuaXRW
YWx1ZT4obnVtZXJpY1ZhbHVlLmdldCgpKS52YWx1ZSgpOworICAgICAgICByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUoc3VtLCAqdW5pdCk7CisgICAgfQorCisgICAgLy8gRklYTUU6IExhY2tz
IGltcGwuIG9mICJMZXQgdHlwZSBiZSB0aGUgcmVzdWx0IG9mIGFkZGluZyB0aGUgdHlwZXMgb2Yg
ZXZlcnkgaXRlbSBpbiB2YWx1ZXMuIElmIHR5cGUgaXMgZmFpbHVyZSwgdGhyb3cgYSBUeXBlRXJy
b3IuIgorCisgICAgcmV0dXJuIENTU01hdGhTdW06OmNyZWF0ZShDU1NOdW1lcmljQXJyYXk6OmNy
ZWF0ZShXVEZNb3ZlKG51bWVyaWNWZWN0b3IpKSk7Cit9CisKIFJlZjxDU1NOdW1lcmljVmFsdWU+
IENTU051bWVyaWNWYWx1ZTo6YWRkKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQogewot
ICAgIFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8vIEZJWE1FOiBhZGQgaW1wbC4KKyAgICBp
ZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuICp0aGlzOwogCi0gICAgcmV0dXJu
ICp0aGlzOworICAgIFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gbnVtZXJpY1ZlY3RvcjsK
KworICAgIGlmIChpczxDU1NNYXRoU3VtPigqdGhpcykpIHsKKyAgICAgICAgZm9yIChhdXRvJiYg
dmFsdWUgOiBkb3duY2FzdDxDU1NNYXRoU3VtPigqdGhpcykudmFsdWVzKCkuYXJyYXkoKSkKKyAg
ICAgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZhbHVlLmNvcHlSZWYoKSk7CisgICAgfSBl
bHNlCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKFJlZjxDU1NOdW1lcmljVmFsdWU+IHsg
KnRoaXMgfSk7CisKKyAgICBmb3IgKGF1dG8mJiBudW1iZXJpc2ggOiB2YWx1ZXMpCisgICAgICAg
IG51bWVyaWNWZWN0b3IuYXBwZW5kKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChX
VEZNb3ZlKG51bWJlcmlzaCkpKTsKKworICAgIHJldHVybiBDU1NOdW1lcmljVmFsdWU6OmFkZElt
cGwoV1RGTW92ZShudW1lcmljVmVjdG9yKSk7CiB9CiAKIFJlZjxDU1NOdW1lcmljVmFsdWU+IENT
U051bWVyaWNWYWx1ZTo6c3ViKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQogewotICAg
IFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8vIEZJWE1FOiBhZGQgaW1wbC4KKyAgICBpZiAo
dmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuICp0aGlzOworCisgICAgVmVjdG9yPFJl
ZjxDU1NOdW1lcmljVmFsdWU+PiBudW1lcmljVmVjdG9yOworCisgICAgaWYgKGlzPENTU01hdGhT
dW0+KCp0aGlzKSkgeworICAgICAgICBmb3IgKGF1dG8mJiB2YWx1ZSA6IGRvd25jYXN0PENTU01h
dGhTdW0+KCp0aGlzKS52YWx1ZXMoKS5hcnJheSgpKQorICAgICAgICAgICAgbnVtZXJpY1ZlY3Rv
ci5hcHBlbmQodmFsdWUuY29weVJlZigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbnVtZXJpY1Zl
Y3Rvci5hcHBlbmQoUmVmPENTU051bWVyaWNWYWx1ZT4geyAqdGhpcyB9KTsKKworICAgIGZvciAo
YXV0byYmIG51bWJlcmlzaCA6IHZhbHVlcykKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQo
Q1NTTnVtZXJpY1ZhbHVlOjpyZWN0aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSktPm5l
Z2F0ZSgpKTsKIAotICAgIHJldHVybiAqdGhpczsKKyAgICByZXR1cm4gQ1NTTnVtZXJpY1ZhbHVl
OjphZGRJbXBsKFdURk1vdmUobnVtZXJpY1ZlY3RvcikpOworfQorCitSZWY8Q1NTTnVtZXJpY1Zh
bHVlPiBDU1NOdW1lcmljVmFsdWU6Om11bEltcGwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiYmIG51bWVyaWNWZWN0b3IpCit7CisgICAgCisgICAgaWYgKGF1dG8gdW5pdCA9IGdldFByb2R1
Y3RVbml0KG51bWVyaWNWZWN0b3IpKSB7CisgICAgICAgIGRvdWJsZSBwcm9kID0gMTsKKworICAg
ICAgICBmb3IgKGF1dG8mJiBudW1lcmljVmFsdWUgOiBudW1lcmljVmVjdG9yKQorICAgICAgICAg
ICAgcHJvZCAqPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KG51bWVyaWNWYWx1ZS5nZXQoKSkudmFs
dWUoKTsKKyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHByb2QsICp1bml0KTsK
KyAgICB9CisgICAgCisgICAgLy8gRklYTUU6IExhY2tzIGltcGwuIG9mICJMZXQgdHlwZSBiZSB0
aGUgcmVzdWx0IG9mIGFkZGluZyB0aGUgdHlwZXMgb2YgZXZlcnkgaXRlbSBpbiB2YWx1ZXMuIElm
IHR5cGUgaXMgZmFpbHVyZSwgdGhyb3cgYSBUeXBlRXJyb3IuIgorCisgICAgcmV0dXJuIENTU01h
dGhQcm9kdWN0OjpjcmVhdGUoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZShudW1lcmlj
VmVjdG9yKSkpOwogfQogCiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6Om11
bChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKLSAgICBVTlVTRURfUEFSQU0odmFs
dWVzKTsKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCisgICAgaWYgKHZhbHVlcy5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiAqdGhpczsKIAotICAgIHJldHVybiAqdGhpczsKKyAgICBWZWN0b3I8
UmVmPENTU051bWVyaWNWYWx1ZT4+IG51bWVyaWNWZWN0b3I7CisKKyAgICBpZiAoaXM8Q1NTTWF0
aFByb2R1Y3Q+KCp0aGlzKSkgeworICAgICAgICBmb3IgKGF1dG8mJiB2YWx1ZSA6IGRvd25jYXN0
PENTU01hdGhQcm9kdWN0PigqdGhpcykudmFsdWVzKCkuYXJyYXkoKSkKKyAgICAgICAgICAgIG51
bWVyaWNWZWN0b3IuYXBwZW5kKHZhbHVlLmNvcHlSZWYoKSk7CisgICAgfSBlbHNlCisgICAgICAg
IG51bWVyaWNWZWN0b3IuYXBwZW5kKFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgKnRoaXMgfSk7CisK
KyAgICBmb3IgKGF1dG8mJiBudW1iZXJpc2ggOiB2YWx1ZXMpCisgICAgICAgIG51bWVyaWNWZWN0
b3IuYXBwZW5kKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKG51bWJl
cmlzaCkpKTsKKworICAgIHJldHVybiBDU1NOdW1lcmljVmFsdWU6Om11bEltcGwoV1RGTW92ZShu
dW1lcmljVmVjdG9yKSk7CiB9CiAKLVJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1
ZTo6ZGl2KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQorRXhjZXB0aW9uT3I8UmVmPENT
U051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6ZGl2KFZlY3RvcjxDU1NOdW1iZXJpc2g+
JiYgdmFsdWVzKQogewotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8vIEZJWE1FOiBh
ZGQgaW1wbC4KKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFJlZjxD
U1NOdW1lcmljVmFsdWU+IHsgKnRoaXMgfTsKKworICAgIFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1Zh
bHVlPj4gbnVtZXJpY1ZlY3RvcjsKKworICAgIGlmIChpczxDU1NNYXRoUHJvZHVjdD4oKnRoaXMp
KSB7CisgICAgICAgIGZvciAoYXV0byYmIHZhbHVlIDogZG93bmNhc3Q8Q1NTTWF0aFByb2R1Y3Q+
KCp0aGlzKS52YWx1ZXMoKS5hcnJheSgpKQorICAgICAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBl
bmQodmFsdWUuY29weVJlZigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5h
cHBlbmQoUmVmPENTU051bWVyaWNWYWx1ZT4geyAqdGhpcyB9KTsKKworICAgIGZvciAoYXV0byYm
IG51bWJlcmlzaCA6IHZhbHVlcykgeworICAgICAgICBhdXRvIGludmVydGVkUmVzdWx0ID0gQ1NT
TnVtZXJpY1ZhbHVlOjpyZWN0aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSktPmludmVy
dCgpOworICAgICAgICBpZiAoaW52ZXJ0ZWRSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAg
ICAgICByZXR1cm4gaW52ZXJ0ZWRSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworICAgICAgICBu
dW1lcmljVmVjdG9yLmFwcGVuZChpbnZlcnRlZFJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CisgICAgfQogCi0gICAgcmV0dXJuICp0aGlzOworICAgIHJldHVybiBDU1NOdW1lcmljVmFsdWU6
Om11bEltcGwoV1RGTW92ZShudW1lcmljVmVjdG9yKSk7CiB9CisKIFJlZjxDU1NOdW1lcmljVmFs
dWU+IENTU051bWVyaWNWYWx1ZTo6bWluKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQog
ewotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8vIEZJWE1FOiBhZGQgaW1wbC4KKyAg
ICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuICp0aGlzOworCisgICAgVmVj
dG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBudW1lcmljVmVjdG9yOwogCi0gICAgcmV0dXJuICp0
aGlzOworICAgIGlmIChpczxDU1NNYXRoTWluPigqdGhpcykpIHsKKyAgICAgICAgZm9yIChhdXRv
JiYgdmFsdWUgOiBkb3duY2FzdDxDU1NNYXRoTWluPigqdGhpcykudmFsdWVzKCkuYXJyYXkoKSkK
KyAgICAgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZhbHVlLmNvcHlSZWYoKSk7CisgICAg
fSBlbHNlCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKFJlZjxDU1NOdW1lcmljVmFsdWU+
IHsgKnRoaXMgfSk7CisKKyAgICBmb3IgKGF1dG8mJiBudW1iZXJpc2ggOiB2YWx1ZXMpCisgICAg
ICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlz
aChXVEZNb3ZlKG51bWJlcmlzaCkpKTsKKyAgICAKKyAgICBpZiAoYXV0byB1bml0ID0gZ2V0U2Ft
ZVVuaXQobnVtZXJpY1ZlY3RvcikpIHsKKyAgICAgICAgYXV0byBtaW5WYWx1ZSA9IGRvd25jYXN0
PENTU1VuaXRWYWx1ZT4obnVtZXJpY1ZlY3Rvci5iZWdpbigpLT5nZXQoKSkudmFsdWUoKTsKKyAg
ICAgICAgCisgICAgICAgIGZvciAoYXV0byYmIHVuaXRWYWx1ZSA6IG51bWVyaWNWZWN0b3IpIHsK
KyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHVuaXRWYWx1
ZS5nZXQoKSkudmFsdWUoKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IG1pblZhbHVlKQorICAg
ICAgICAgICAgICAgIG1pblZhbHVlID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZShtaW5WYWx1ZSwgKnVuaXQpOworICAgIH0K
KworICAgIHJldHVybiBDU1NNYXRoTWluOjpjcmVhdGUoV1RGTW92ZShudW1lcmljVmVjdG9yKSk7
CiB9CisKIFJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bWF4KFZlY3RvcjxD
U1NOdW1iZXJpc2g+JiYgdmFsdWVzKQogewotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAg
IC8vIEZJWE1FOiBhZGQgaW1wbC4KKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuICp0aGlzOworCisgICAgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBudW1lcmlj
VmVjdG9yOworCisgICAgaWYgKGlzPENTU01hdGhNYXg+KCp0aGlzKSkgeworICAgICAgICBmb3Ig
KGF1dG8mJiB2YWx1ZSA6IGRvd25jYXN0PENTU01hdGhNYXg+KCp0aGlzKS52YWx1ZXMoKS5hcnJh
eSgpKQorICAgICAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQodmFsdWUuY29weVJlZigpKTsK
KyAgICB9IGVsc2UKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQoUmVmPENTU051bWVyaWNW
YWx1ZT4geyAqdGhpcyB9KTsKKworICAgIGZvciAoYXV0byYmIG51bWJlcmlzaCA6IHZhbHVlcykK
KyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQoQ1NTTnVtZXJpY1ZhbHVlOjpyZWN0aWZ5TnVt
YmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSkpOworICAgIAorICAgIGlmIChhdXRvIHVuaXQgPSBn
ZXRTYW1lVW5pdChudW1lcmljVmVjdG9yKSkgeworICAgICAgICBhdXRvIG1heFZhbHVlID0gZG93
bmNhc3Q8Q1NTVW5pdFZhbHVlPihudW1lcmljVmVjdG9yLmJlZ2luKCktPmdldCgpKS52YWx1ZSgp
OworICAgICAgICAKKyAgICAgICAgZm9yIChhdXRvJiYgdW5pdFZhbHVlIDogbnVtZXJpY1ZlY3Rv
cikgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odW5p
dFZhbHVlLmdldCgpKS52YWx1ZSgpOworICAgICAgICAgICAgaWYgKHZhbHVlID4gbWF4VmFsdWUp
CisgICAgICAgICAgICAgICAgbWF4VmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKG1heFZhbHVlLCAqdW5pdCk7Cisg
ICAgfQogCi0gICAgcmV0dXJuICp0aGlzOworICAgIHJldHVybiBDU1NNYXRoTWF4OjpjcmVhdGUo
V1RGTW92ZShudW1lcmljVmVjdG9yKSk7CiB9CiAKIFJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051
bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChDU1NOdW1iZXJpc2gmJiBudW1iZXJpc2gpCkBA
IC0xMzYsNyArMzA4LDMyIEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NO
dW1lcmljVmFsdWU6OnBhcnNlKFN0cmluZyYmIGNzc1RleHQpCiAgICAgVU5VU0VEX1BBUkFNKGNz
c1RleHQpOwogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQt
b20vI2RvbS1jc3NudW1lcmljdmFsdWUtcGFyc2UKICAgICAvLyBGSVhNRTogYWRkIGltcGwuCi0g
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTm90IGltcGxlbWVudGVk
IEVycm9yIiB9OworICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIk5v
dCBpbXBsZW1lbnRlZCBFcnJvciJfcyB9OworfQorCitSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NO
dW1lcmljVmFsdWU6Om5lZ2F0ZSgpCit7CisgICAgaWYgKGlzPENTU01hdGhOZWdhdGU+KCp0aGlz
KSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU01hdGhOZWdhdGU+KCp0aGlzKS52YWx1ZSgp
OworCisgICAgaWYgKGlzPENTU1VuaXRWYWx1ZT4oKnRoaXMpKQorICAgICAgICByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUoLWRvd25jYXN0PENTU1VuaXRWYWx1ZT4oKnRoaXMpLnZhbHVlKCks
IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4oKnRoaXMpLnVuaXQoKSk7CisKKyAgICByZXR1cm4gQ1NT
TWF0aE5lZ2F0ZTo6Y3JlYXRlKFJlZlB0cjxDU1NOdW1lcmljVmFsdWU+IHsgdGhpcyB9KTsKK30K
KworRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6aW52
ZXJ0KCkKK3sKKyAgICBpZiAoaXM8Q1NTTWF0aEludmVydD4oKnRoaXMpKQorICAgICAgICByZXR1
cm4gZG93bmNhc3Q8Q1NTTWF0aEludmVydD4oKnRoaXMpLnZhbHVlKCk7CisKKyAgICBpZiAoaXM8
Q1NTVW5pdFZhbHVlPigqdGhpcykgJiYgZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPigqdGhpcykudW5p
dCgpID09ICJudW1iZXIiKSB7CisgICAgICAgIGlmIChkb3duY2FzdDxDU1NVbml0VmFsdWU+KCp0
aGlzKS52YWx1ZSgpID09IDAuMCkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5n
ZUVycm9yLCAiQ2Fubm90IGludmVydCBDU1NVbml0VmFsdWUgd2l0aCB2YWx1ZSAwLjAgb3IgLTAu
MCJfcyB9OworICAgIAorICAgICAgICByZXR1cm4gUmVmPENTU051bWVyaWNWYWx1ZT4geyBDU1NV
bml0VmFsdWU6OmNyZWF0ZSgxLjAgLyBkb3duY2FzdDxDU1NVbml0VmFsdWU+KCp0aGlzKS52YWx1
ZSgpLCBkb3duY2FzdDxDU1NVbml0VmFsdWU+KCp0aGlzKS51bml0KCkpIH07CisgICAgfQorICAg
IHJldHVybiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7IENTU01hdGhJbnZlcnQ6OmNyZWF0ZShSZWZQ
dHI8Q1NTTnVtZXJpY1ZhbHVlPiB7IHRoaXMgfSkgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1Zh
bHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaAppbmRl
eCA1MmJiMWZmMDdkMTc1OWU2MWVkOTJhY2ZkOGMwZmZhMThkOTk2MDM1Li4wZmU3OTM1MDIyZGYx
OWRhNWMzNzY0OTBmZjhiNmY3M2EyYzI4MDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9DU1NOdW1lcmljVmFsdWUuaApAQCAtNDQsMTAgKzQ0LDEzIEBAIGNsYXNzIENTU051bWVy
aWNWYWx1ZSA6IHB1YmxpYyBDU1NTdHlsZVZhbHVlIHsKIHB1YmxpYzoKICAgICB1c2luZyBDU1NO
dW1iZXJpc2ggPSBzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBSZWZQdHI8Q1NTTnVtZXJpY1ZhbHVlPj47
CiAKKyAgICBjb25zdCBTdHJpbmcqIGdldFNhbWVVbml0KGNvbnN0IFZlY3RvcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4mKTsKKyAgICBjb25zdCBTdHJpbmcqIGdldFByb2R1Y3RVbml0KGNvbnN0IFZl
Y3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mKTsKKwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+
IGFkZChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBz
dWIoVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gbXVs
KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwotICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IGRpdihW
ZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1Zh
bHVlPj4gZGl2KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFs
dWU+IG1pbihWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVl
PiBtYXgoVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgCkBAIC02MSw2ICs2NCwxMiBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NOdW1lcmljVmFsdWU+IHJlY3RpZnlOdW1iZXJpc2go
Q1NTTnVtYmVyaXNoJiYpOwogICAgIAogICAgIENTU1N0eWxlVmFsdWVUeXBlIGdldFR5cGUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTTnVtZXJpY1ZhbHVl
OyB9CisgICAgCisgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gYWRkSW1wbChWZWN0b3I8UmVmPENT
U051bWVyaWNWYWx1ZT4+JiYpOworICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG11bEltcGwoVmVj
dG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKKworICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+
IG5lZ2F0ZSgpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBpbnZlcnQo
KTsKIAogcHJvdGVjdGVkOgogICAgIENTU051bWVyaWNWYWx1ZSgpID0gZGVmYXVsdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmgKaW5k
ZXggZTA5YTgwNmNiMTUyN2M5MmQ5NzQ4ZTk0MThmMWM0ODQzYjE1NDdiNi4uOGI2YmNhZmVhNjUx
NTBlOThkOTZjYjZlZjljNTA2OTFmOGVjZWNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xh
c3MgQ1NTTWF0aEludmVydCA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoQ1NTTWF0aEludmVydCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NN
YXRoSW52ZXJ0PiBjcmVhdGUoQ1NTTnVtYmVyaXNoJiYpOwotICAgIGNvbnN0IENTU051bWVyaWNW
YWx1ZSYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLmdldCgpOyB9CisgICAgUmVmPENT
U051bWVyaWNWYWx1ZT4gdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLmNvcHlSZWYoKTsg
fQogICAgIAogcHJpdmF0ZToKICAgICBDU1NNYXRoSW52ZXJ0KENTU051bWJlcmlzaCYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXguY3BwCmlu
ZGV4IDc0YjllMDI4NzI3ZmZmOGYxMDhjNGU0MTU4NzIwNDlkNDE2YTI3YTQuLjUwYTQxMjQxYjIz
OGI1M2I0OTNkZWE0YjRhOTUwZGM1MzMxZWNiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4LmNwcApAQCAtNDEsMTIgKzQxLDIzIEBAIFJl
ZjxDU1NNYXRoTWF4PiBDU1NNYXRoTWF4OjpjcmVhdGUoVmVjdG9yPENTU051bWJlcmlzaD4mJiBu
dW1iZXJpc2hlcykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoTWF4KFdURk1vdmUo
bnVtYmVyaXNoZXMpKSk7CiB9CiAKK1JlZjxDU1NNYXRoTWF4PiBDU1NNYXRoTWF4OjpjcmVhdGUo
VmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIHZhbHVlcykKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDU1NNYXRoTWF4KFdURk1vdmUodmFsdWVzKSkpOworfQorCiBDU1NNYXRoTWF4
OjpDU1NNYXRoTWF4KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgbnVtYmVyaXNoZXMpCiAgICAgOiBD
U1NNYXRoVmFsdWUoQ1NTTWF0aE9wZXJhdG9yOjpNYXgpCiAgICAgLCBtX3ZhbHVlcyhDU1NOdW1l
cmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKG51bWJlcmlzaGVzKSkpCiB7CiB9CiAKK0NTU01hdGhN
YXg6OkNTU01hdGhNYXgoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIHZhbHVlcykKKyAg
ICA6IENTU01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6Ok1heCkKKyAgICAsIG1fdmFsdWVzKENT
U051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSkpCit7Cit9CisKIGNvbnN0IENT
U051bWVyaWNBcnJheSYgQ1NTTWF0aE1heDo6dmFsdWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV92YWx1ZXMuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU01hdGhNYXguaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aE1heC5oCmluZGV4IDA2NTk2MGUxNTA4MzVmMDc4ZDg0MTFhZDI1ZWFmNGU1MGQ0YzE0
MTMuLjVkMmM4Y2RkOWM2MzhmZjQxZjYzODQyOTU2Nzk5MDU5ZmI4MTM0ZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5oCkBAIC0zOCwxMCAr
MzgsMTIgQEAgY2xhc3MgQ1NTTWF0aE1heCA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aE1heCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxDU1NNYXRoTWF4PiBjcmVhdGUoVmVjdG9yPENTU051bWJlcmlzaD4mJik7CisgICAgc3RhdGlj
IFJlZjxDU1NNYXRoTWF4PiBjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsK
ICAgICBjb25zdCBDU1NOdW1lcmljQXJyYXkmIHZhbHVlcygpIGNvbnN0OwogICAgIAogcHJpdmF0
ZToKICAgICBDU1NNYXRoTWF4KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOworICAgIENTU01hdGhN
YXgoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY0Fy
cmF5PiBtX3ZhbHVlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9u
dW1lcmljL0NTU01hdGhNaW4uY3BwCmluZGV4IDVjOTM0ZDQ0YjZjNmZiMjM1MDQ1NzRlODI0NzMz
YzY4Y2U2MTQ1MTQuLjAxYTBjMWRiZjgyY2RkYTMzMmViYTU3MTkzMDljMjEwMTQ3OWRlOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWluLmNw
cApAQCAtNDEsOSArNDEsMjAgQEAgUmVmPENTU01hdGhNaW4+IENTU01hdGhNaW46OmNyZWF0ZShW
ZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IENTU01hdGhNaW4oV1RGTW92ZShudW1iZXJpc2hlcykpKTsKIH0KIAotQ1NTTWF0aE1pbjo6
Q1NTTWF0aE1pbihWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQorUmVmPENTU01h
dGhNaW4+IENTU01hdGhNaW46OmNyZWF0ZShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYg
dmFsdWVzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhNaW4oV1RGTW92ZSh2
YWx1ZXMpKSk7Cit9CisKK0NTU01hdGhNaW46OkNTU01hdGhNaW4oVmVjdG9yPFJlZjxDU1NOdW1l
cmljVmFsdWU+PiYmIHZhbHVlcykKKyAgICA6IENTU01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6
Ok1pbikKKyAgICAsIG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUodmFs
dWVzKSkpCit7Cit9CisKK0NTU01hdGhNaW46OkNTU01hdGhNaW4oVmVjdG9yPENTU051bWJlcmlz
aD4mJiB2YWx1ZXMpCiAgICAgOiBDU1NNYXRoVmFsdWUoQ1NTTWF0aE9wZXJhdG9yOjpNaW4pCi0g
ICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKG51bWJlcmlzaGVz
KSkpCisgICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKHZhbHVl
cykpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU01hdGhNaW4uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NT
TWF0aE1pbi5oCmluZGV4IDQ0YzU1ODM5NTIyNjI2MDY5YzliMjE5MmI3MWMyYzljMjMyMzk1NGMu
LmNlYjJlY2Y4ZTdkOTQ0NmY2MWQ1YzU2NmEwMmFlODMwYmViMjBhY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5oCkBAIC0zOCwxMCArMzgs
MTIgQEAgY2xhc3MgQ1NTTWF0aE1pbiA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aE1pbik7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxD
U1NNYXRoTWluPiBjcmVhdGUoVmVjdG9yPENTU051bWJlcmlzaD4mJik7CisgICAgc3RhdGljIFJl
ZjxDU1NNYXRoTWluPiBjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKICAg
ICBjb25zdCBDU1NOdW1lcmljQXJyYXkmIHZhbHVlcygpIGNvbnN0OwogICAgIAogcHJpdmF0ZToK
ICAgICBDU1NNYXRoTWluKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOworICAgIENTU01hdGhNaW4o
VmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY0FycmF5
PiBtX3ZhbHVlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aE5lZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVt
ZXJpYy9DU1NNYXRoTmVnYXRlLmgKaW5kZXggODhjY2Q5YTkyMDJmMDhjYmY2ZTVkZGY4Yjc1ZTg4
NDViOTgxMWUwMC4uZTdlNDU3ZjE1NjJlMDg3OWMyNmJjNzNkZmNiM2RiNDVkZDllZDNlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRl
LmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgQ1NTTWF0aE5lZ2F0ZSA6IHB1YmxpYyBDU1NNYXRo
VmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aE5lZ2F0ZSk7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxDU1NNYXRoTmVnYXRlPiBjcmVhdGUoQ1NTTnVtYmVyaXNoJiYp
OwotICAgIGNvbnN0IENTU051bWVyaWNWYWx1ZSYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlLmdldCgpOyB9CisgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gdmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlLmNvcHlSZWYoKTsgfQogICAgIAogcHJpdmF0ZToKICAgICBDU1NNYXRoTmVn
YXRlKENTU051bWJlcmlzaCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHAKaW5kZXggYjFmMDA3MTY3N2JlYTJjZmYyZDA1
NjBmYWRkMDRkNWY2ODA0NjMyZC4uYjFiNmEzOGNhMmFiMWU5NDJmZjQxYjJjMjA3ZjE1YTA4ZDEz
MmJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoUHJvZHVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoUHJvZHVjdC5jcHAKQEAgLTQxLDEyICs0MSwyNCBAQCBSZWY8Q1NTTWF0aFByb2R1Y3Q+
IENTU01hdGhQcm9kdWN0OjpjcmVhdGUoVmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hl
cykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoUHJvZHVjdChXVEZNb3ZlKG51bWJl
cmlzaGVzKSkpOwogfQogCitSZWY8Q1NTTWF0aFByb2R1Y3Q+IENTU01hdGhQcm9kdWN0OjpjcmVh
dGUoUmVmPENTU051bWVyaWNBcnJheT4mJiBhcnJheSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDU1NNYXRoUHJvZHVjdChXVEZNb3ZlKGFycmF5KSkpOworfQorCiBDU1NNYXRoUHJvZHVj
dDo6Q1NTTWF0aFByb2R1Y3QoVmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hlcykKICAg
ICA6IENTU01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6OlByb2R1Y3QpCiAgICAgLCBtX3ZhbHVl
cyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKG51bWJlcmlzaGVzKSkpCiB7CiB9CiAK
K0NTU01hdGhQcm9kdWN0OjpDU1NNYXRoUHJvZHVjdChSZWY8Q1NTTnVtZXJpY0FycmF5PiYmIGFy
cmF5KQorICAgIDogQ1NTTWF0aFZhbHVlKENTU01hdGhPcGVyYXRvcjo6UHJvZHVjdCkKKyAgICAs
IG1fdmFsdWVzKFdURk1vdmUoYXJyYXkpKQoreworfQorCisKIGNvbnN0IENTU051bWVyaWNBcnJh
eSYgQ1NTTWF0aFByb2R1Y3Q6OnZhbHVlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmFsdWVz
LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoUHJvZHVjdC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NN
YXRoUHJvZHVjdC5oCmluZGV4IGUzMzk5ZDQ2MzYxN2I1NzIzZjEyYWU0MDAwNmYxZTA2NzJkN2Zj
YTEuLmQ0NTMwZDk2MWQwZGNkNTUxOWFiYTYwNTljNDk0ZmRkZjM4MTMyNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmgKQEAg
LTM4LDEyICszOCwxNCBAQCBjbGFzcyBDU1NNYXRoUHJvZHVjdCA6IHB1YmxpYyBDU1NNYXRoVmFs
dWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aFByb2R1Y3QpOwogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8Q1NTTWF0aFByb2R1Y3Q+IGNyZWF0ZShWZWN0b3I8Q1NTTnVtYmVy
aXNoPiYmKTsKKyAgICBzdGF0aWMgUmVmPENTU01hdGhQcm9kdWN0PiBjcmVhdGUoUmVmPENTU051
bWVyaWNBcnJheT4mJik7CiAgICAgY29uc3QgQ1NTTnVtZXJpY0FycmF5JiB2YWx1ZXMoKSBjb25z
dDsKICAgICAKICAgICBDU1NNYXRoT3BlcmF0b3IgZ2V0T3BlcmF0b3IoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBDU1NNYXRoT3BlcmF0b3I6OlByb2R1Y3Q7IH0KIAogcHJpdmF0ZToKICAgICBDU1NN
YXRoUHJvZHVjdChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBDU1NNYXRoUHJvZHVjdChS
ZWY8Q1NTTnVtZXJpY0FycmF5PiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY0FycmF5PiBtX3ZhbHVl
czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFN1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01h
dGhTdW0uY3BwCmluZGV4IGEwZDdlYWQzZWJlMjdiMjJkMmNhZDczNDVmNDA0NWU1MTU3MGMyYmUu
LmFkZGUwNzY5ZDE2ZGZkY2YzMWFlZjEzZGVlOWFmZGM5YjNkNWU2MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcApAQCAtNDEsMTIg
KzQxLDIzIEBAIFJlZjxDU1NNYXRoU3VtPiBDU1NNYXRoU3VtOjpjcmVhdGUoVmVjdG9yPENTU051
bWJlcmlzaD4mJiBudW1iZXJpc2hlcykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRo
U3VtKFdURk1vdmUobnVtYmVyaXNoZXMpKSk7CiB9CiAKK1JlZjxDU1NNYXRoU3VtPiBDU1NNYXRo
U3VtOjpjcmVhdGUoUmVmPENTU051bWVyaWNBcnJheT4mJiBhcnJheSkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDU1NNYXRoU3VtKFdURk1vdmUoYXJyYXkpKSk7Cit9CisKIENTU01hdGhT
dW06OkNTU01hdGhTdW0oVmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hlcykKICAgICA6
IENTU01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6OlN1bSkKICAgICAsIG1fdmFsdWVzKENTU051
bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUobnVtYmVyaXNoZXMpKSkKIHsKIH0KIAorQ1NTTWF0
aFN1bTo6Q1NTTWF0aFN1bShSZWY8Q1NTTnVtZXJpY0FycmF5PiYmIGFycmF5KQorICAgIDogQ1NT
TWF0aFZhbHVlKENTU01hdGhPcGVyYXRvcjo6U3VtKQorICAgICwgbV92YWx1ZXMoV1RGTW92ZShh
cnJheSkpCit7Cit9CisKIGNvbnN0IENTU051bWVyaWNBcnJheSYgQ1NTTWF0aFN1bTo6dmFsdWVz
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV92YWx1ZXMuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCmluZGV4IDU0MzE4NzhiZWFmMzg0
NWFkMjA4MmIxMGI0NmJhZGNmZDBkNmUyNmUuLjE2ODE2MDFkMGY5ZGRlNjYwNjYyNjAwYjg4Y2Ez
ZGFmYzcwYTE2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aFN1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aFN1bS5oCkBAIC0zOSwxMCArMzksMTIgQEAgY2xhc3MgQ1NTTWF0aFN1bSA6IHB1Ymxp
YyBDU1NNYXRoVmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aFN1bSk7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NNYXRoU3VtPiBjcmVhdGUoVmVjdG9yPENTU051
bWJlcmlzaD4mJik7CisgICAgc3RhdGljIFJlZjxDU1NNYXRoU3VtPiBjcmVhdGUoUmVmPENTU051
bWVyaWNBcnJheT4mJik7CiAgICAgY29uc3QgQ1NTTnVtZXJpY0FycmF5JiB2YWx1ZXMoKSBjb25z
dDsKIAogcHJpdmF0ZToKICAgICBDU1NNYXRoU3VtKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwor
ICAgIENTU01hdGhTdW0oUmVmPENTU051bWVyaWNBcnJheT4mJik7CiAgICAgUmVmPENTU051bWVy
aWNBcnJheT4gbV92YWx1ZXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuaAppbmRleCA4M2IwODYzMjFhZDVkOWYzZjgy
NGQ5NThiYzEyNjYxNzZiOTZlYTc4Li5hMGVmMjVmZTNjZWI4MDA1OGU3NWM1NjRmODVjNTg1OGM4
YjYxODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U051bWVyaWNBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTnVtZXJpY0FycmF5LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8Q1NTTnVtZXJpY0FycmF5PiBjcmVhdGUoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYm
KTsKICAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9hcnJheS5zaXplKCk7IH07
CiAgICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGl0ZW0oc2l6ZV90IGluZGV4
KTsKLQorICAgIGNvbnN0IFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mIGFycmF5KCkgY29u
c3QgeyByZXR1cm4gbV9hcnJheTsgfQogcHJpdmF0ZToKICAgICBWZWN0b3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+IG1fYXJyYXk7CiAgICAgQ1NTTnVtZXJpY0FycmF5KFZlY3RvcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4mJik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA1YTIwYTcx
ZjNkNjgyNGNhMWVlOWM3MmRmZmRhMWIzMjZkYTdhMmRmLi5jMmFmMGVmYzIxYWQ2OGYwYzEyYzJl
NDZkMWE3YzJiYzgxY2IxYjljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMS0xMS0yMyAgSm9obnNvbiBaaG91ICA8am9obnNvbi56aG91LnNoQGlj
bG91ZC5jb20+CisKKyAgICAgICAgQWRkIGltcGxlbWVudGF0aW9uIGZvciBDU1NOdW1lcmljVmFs
dWUgbWF0aCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMDc5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1
ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0aG1ldGljLnRlbnRhdGl2ZS1leHBlY3Rl
ZC50eHQ6CisKIDIwMjEtMTEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIENTUDogc2VjdXJpdHkgcG9saWN5IHZpb2xhdGlvbiBldmVudCBp
cyBhbHdheXMgdXNpbmcgZG9jdW1lbnQgYXMgdGFyZ2V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vc3R5bGV2
YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0aG1ldGljLnRlbnRhdGl2ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0
aG1ldGljLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKaW5kZXggMWZmZDBlMGM2MDE0YzZhZjQwY2Fh
M2ZiZmViY2YwYWVhOTljMTc2My4uNTM2ZWE1MmU1M2IwY2NiOGNlMjc4MDY3MDMwNmEzNDdhZjE3
MzkzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9iamVj
dHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVl
LXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZlLWV4cGVjdGVk
LnR4dApAQCAtMSw2NSArMSw2NSBAQAogCiBQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLmFkZCB3
aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1
ZS5hZGQgd2l0aCBubyBhcmd1bWVudHMgcmV0dXJucyBpdHNlbGYKLUZBSUwgQ2FsbGluZyBDU1NO
dW1lcmljVmFsdWUuYWRkIHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29y
cmVjdCB0eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoU3VtIiBidXQgZ290ICJD
U1NVbml0VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLmFkZCB3aXRoIGEgc2lu
Z2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxsaW5nIENT
U01hdGhWYWx1ZS5hZGQgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3Jy
ZWN0IHR5cGUKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuYWRkIHdpdGggbW9yZSB0aGFu
IG9uZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFN1bSIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgorUEFT
UyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5hZGQgd2l0aCBtb3JlIHRoYW4gb25lIG51bWJlciBD
U1NOdW1lcmljVmFsdWVzIHJldHVybnMgY29ycmVjdCB0eXBlCiBQQVNTIENhbGxpbmcgQ1NTTnVt
ZXJpY1ZhbHVlLmFkZCBjYW4gdGFrZSBudW1iZXJpc2ggdmFsdWVzCi1GQUlMIENhbGxpbmcgQ1NT
TWF0aFN1bS5hZGQgd2l0aCBudW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NT
VW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NVbml0VmFsdWUiIGJ1dCBnb3Qg
IkNTU01hdGhTdW0iCitQQVNTIENhbGxpbmcgQ1NTTWF0aFN1bS5hZGQgd2l0aCBudW1iZXIgQ1NT
VW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCiBQQVNTIENhbGxpbmcgQ1NT
TnVtZXJpY1ZhbHVlLmFkZCB3aXRoIGluY29tcGF0aWJsZSB0eXBlcyB0aHJvd3MgVHlwZUVycm9y
CiBQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLnN1YiB3aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5z
IGl0c2VsZgogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1ZS5zdWIgd2l0aCBubyBhcmd1bWVudHMg
cmV0dXJucyBpdHNlbGYKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuc3ViIHdpdGggYSBz
aW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJDU1NNYXRoU3VtIiBidXQgZ290ICJDU1NVbml0VmFsdWUiCitQQVNTIENhbGxp
bmcgQ1NTTnVtZXJpY1ZhbHVlLnN1YiB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1
cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1ZS5zdWIgd2l0aCBhIHNp
bmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUKLUZBSUwgQ2FsbGluZyBD
U1NOdW1lcmljVmFsdWUuc3ViIHdpdGggbW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVtZXJpY1Zh
bHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0
aFN1bSIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgorUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1
ZS5zdWIgd2l0aCBtb3JlIHRoYW4gb25lIG51bWJlciBDU1NOdW1lcmljVmFsdWVzIHJldHVybnMg
Y29ycmVjdCB0eXBlCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1YiBjYW4gdGFrZSBu
dW1iZXJpc2ggdmFsdWVzCi1GQUlMIENhbGxpbmcgQ1NTTWF0aFN1bS5zdWIgd2l0aCBudW1iZXIg
Q1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJDU1NVbml0VmFsdWUiIGJ1dCBnb3QgIkNTU01hdGhTdW0iCitQQVNTIENhbGxp
bmcgQ1NTTWF0aFN1bS5zdWIgd2l0aCBudW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRv
IGEgQ1NTVW5pdFZhbHVlCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1YiB3aXRoIGlu
Y29tcGF0aWJsZSB0eXBlcyB0aHJvd3MgVHlwZUVycm9yCiBQQVNTIENhbGxpbmcgQ1NTVW5pdFZh
bHVlLm11bCB3aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgogUEFTUyBDYWxsaW5nIENT
U01hdGhWYWx1ZS5tdWwgd2l0aCBubyBhcmd1bWVudHMgcmV0dXJucyBpdHNlbGYKLUZBSUwgQ2Fs
bGluZyBDU1NOdW1lcmljVmFsdWUubXVsIHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJl
dHVybnMgY29ycmVjdCB0eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoUHJvZHVj
dCIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgorUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5t
dWwgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUKIFBB
U1MgQ2FsbGluZyBDU1NNYXRoVmFsdWUubXVsIHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVl
IHJldHVybnMgY29ycmVjdCB0eXBlCi1GQUlMIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm11bCB3
aXRoIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU051bWVyaWNWYWx1ZXMgcmV0dXJucyBjb3JyZWN0
IHR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU01hdGhQcm9kdWN0IiBidXQgZ290ICJD
U1NVbml0VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm11bCB3aXRoIG1vcmUg
dGhhbiBvbmUgbnVtYmVyIENTU051bWVyaWNWYWx1ZXMgcmV0dXJucyBjb3JyZWN0IHR5cGUKIFBB
U1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubXVsIGNhbiB0YWtlIG51bWJlcmlzaCB2YWx1ZXMK
LUZBSUwgQ2FsbGluZyBDU1NNYXRoUHJvZHVjdC5tdWwgd2l0aCBudW1iZXIgQ1NTVW5pdFZhbHVl
cyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJD
U1NVbml0VmFsdWUiIGJ1dCBnb3QgIkNTU01hdGhQcm9kdWN0IgorUEFTUyBDYWxsaW5nIENTU01h
dGhQcm9kdWN0Lm11bCB3aXRoIG51bWJlciBDU1NVbml0VmFsdWVzIHNpbXBsaWZpZXMgdG8gYSBD
U1NVbml0VmFsdWUKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubXVsIHdpdGggaW5jb21w
YXRpYmxlIHR5cGVzIHRocm93cyBUeXBlRXJyb3IKIFBBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUu
ZGl2IHdpdGggbm8gYXJndW1lbnRzIHJldHVybnMgaXRzZWxmCiBQQVNTIENhbGxpbmcgQ1NTTWF0
aFZhbHVlLmRpdiB3aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgotRkFJTCBDYWxsaW5n
IENTU051bWVyaWNWYWx1ZS5kaXYgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJu
cyBjb3JyZWN0IHR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU01hdGhQcm9kdWN0IiBi
dXQgZ290ICJDU1NVbml0VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLmRpdiB3
aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBD
YWxsaW5nIENTU01hdGhWYWx1ZS5kaXYgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0
dXJucyBjb3JyZWN0IHR5cGUKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuZGl2IHdpdGgg
bW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlw
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFByb2R1Y3QiIGJ1dCBnb3QgIkNTU1Vu
aXRWYWx1ZSIKK1BBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuZGl2IHdpdGggbW9yZSB0aGFu
IG9uZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBD
YWxsaW5nIENTU051bWVyaWNWYWx1ZS5kaXYgY2FuIHRha2UgbnVtYmVyaXNoIHZhbHVlcwotRkFJ
TCBDYWxsaW5nIENTU01hdGhQcm9kdWN0LmRpdiB3aXRoIG51bWJlciBDU1NVbml0VmFsdWVzIHNp
bXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU1Vu
aXRWYWx1ZSIgYnV0IGdvdCAiQ1NTTWF0aFByb2R1Y3QiCitQQVNTIENhbGxpbmcgQ1NTTWF0aFBy
b2R1Y3QuZGl2IHdpdGggbnVtYmVyIENTU1VuaXRWYWx1ZXMgc2ltcGxpZmllcyB0byBhIENTU1Vu
aXRWYWx1ZQogUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5kaXYgd2l0aCBpbmNvbXBhdGli
bGUgdHlwZXMgdGhyb3dzIFR5cGVFcnJvcgogUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5taW4g
d2l0aCBubyBhcmd1bWVudHMgcmV0dXJucyBpdHNlbGYKIFBBU1MgQ2FsbGluZyBDU1NNYXRoVmFs
dWUubWluIHdpdGggbm8gYXJndW1lbnRzIHJldHVybnMgaXRzZWxmCi1GQUlMIENhbGxpbmcgQ1NT
TnVtZXJpY1ZhbHVlLm1pbiB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNv
cnJlY3QgdHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aE1pbiIgYnV0IGdvdCAi
Q1NTVW5pdFZhbHVlIgorUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5taW4gd2l0aCBhIHNp
bmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUKIFBBU1MgQ2FsbGluZyBD
U1NNYXRoVmFsdWUubWluIHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29y
cmVjdCB0eXBlCi1GQUlMIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1pbiB3aXRoIG1vcmUgdGhh
biBvbmUgbnVtYmVyIENTU051bWVyaWNWYWx1ZXMgcmV0dXJucyBjb3JyZWN0IHR5cGUgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIkNTU01hdGhNaW4iIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKK1BB
U1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubWluIHdpdGggbW9yZSB0aGFuIG9uZSBudW1iZXIg
Q1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxsaW5nIENTU051
bWVyaWNWYWx1ZS5taW4gY2FuIHRha2UgbnVtYmVyaXNoIHZhbHVlcwotRkFJTCBDYWxsaW5nIENT
U01hdGhNaW4ubWluIHdpdGggbnVtYmVyIENTU1VuaXRWYWx1ZXMgc2ltcGxpZmllcyB0byBhIENT
U1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTVW5pdFZhbHVlIiBidXQgZ290
ICJDU1NNYXRoTWluIgorUEFTUyBDYWxsaW5nIENTU01hdGhNaW4ubWluIHdpdGggbnVtYmVyIENT
U1VuaXRWYWx1ZXMgc2ltcGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZQogUEFTUyBDYWxsaW5nIENT
U051bWVyaWNWYWx1ZS5taW4gd2l0aCBpbmNvbXBhdGlibGUgdHlwZXMgdGhyb3dzIFR5cGVFcnJv
cgogUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5tYXggd2l0aCBubyBhcmd1bWVudHMgcmV0dXJu
cyBpdHNlbGYKIFBBU1MgQ2FsbGluZyBDU1NNYXRoVmFsdWUubWF4IHdpdGggbm8gYXJndW1lbnRz
IHJldHVybnMgaXRzZWxmCi1GQUlMIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1heCB3aXRoIGEg
c2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiQ1NTTWF0aE1heCIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgorUEFTUyBDYWxs
aW5nIENTU051bWVyaWNWYWx1ZS5tYXggd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0
dXJucyBjb3JyZWN0IHR5cGUKIFBBU1MgQ2FsbGluZyBDU1NNYXRoVmFsdWUubWF4IHdpdGggYSBz
aW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlCi1GQUlMIENhbGxpbmcg
Q1NTTnVtZXJpY1ZhbHVlLm1heCB3aXRoIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU051bWVyaWNW
YWx1ZXMgcmV0dXJucyBjb3JyZWN0IHR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU01h
dGhNYXgiIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKK1BBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFs
dWUubWF4IHdpdGggbW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5z
IGNvcnJlY3QgdHlwZQogUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5tYXggY2FuIHRha2Ug
bnVtYmVyaXNoIHZhbHVlcwotRkFJTCBDYWxsaW5nIENTU01hdGhNYXgubWF4IHdpdGggbnVtYmVy
IENTU1VuaXRWYWx1ZXMgc2ltcGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiQ1NTVW5pdFZhbHVlIiBidXQgZ290ICJDU1NNYXRoTWF4IgorUEFTUyBDYWxs
aW5nIENTU01hdGhNYXgubWF4IHdpdGggbnVtYmVyIENTU1VuaXRWYWx1ZXMgc2ltcGxpZmllcyB0
byBhIENTU1VuaXRWYWx1ZQogUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5tYXggd2l0aCBp
bmNvbXBhdGlibGUgdHlwZXMgdGhyb3dzIFR5cGVFcnJvcgotRkFJTCBDYWxsaW5nIENTU1VuaXRW
YWx1ZS5hZGQgd2l0aCBDU1NVbml0VmFsdWVzIHdpdGggc2FtZSB1bml0IHNpbXBsaWZpZXMgdG8g
YSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMTcgYnV0IGdvdCAxMAotRkFJ
TCBDYWxsaW5nIENTU1VuaXRWYWx1ZS5zdWIgd2l0aCBDU1NVbml0VmFsdWVzIHdpdGggc2FtZSB1
bml0IHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
MyBidXQgZ290IDEwCi1GQUlMIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm11bCB3aXRoIGFsbCBudW1i
ZXJzIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
MTAwIGJ1dCBnb3QgMTAKLUZBSUwgQ2FsbGluZyBDU1NVbml0VmFsdWUubXVsIHdpdGggb25seSBv
bmUgbm9uLW51bWJlciBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIDEwMCBidXQgZ290IDEwCi1GQUlMIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm11bCB3
aXRoIG1vcmUgdGhhbiBvbmUgbm9uLW51bWJlciBkb2VzIG5vdCBzaW1wbGlmeSB0byBhIENTU1Vu
aXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFByb2R1Y3QiIGJ1dCBnb3Qg
IkNTU1VuaXRWYWx1ZSIKLUZBSUwgQ2FsbGluZyBDU1NVbml0VmFsdWUuZGl2IHdpdGggYWxsIG51
bWJlcnMgc2ltcGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAxIGJ1dCBnb3QgMTAKLUZBSUwgQ2FsbGluZyBDU1NVbml0VmFsdWUuZGl2IG9uIGEgbm9uLW51
bWJlciB2YWx1ZSBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIDEgYnV0IGdvdCAxMAotRkFJTCBDYWxsaW5nIENTU1VuaXRWYWx1ZS5kaXYgd2l0aCBh
IG5vbi1udW1iZXIgdmFsdWUgaW4gdGhlIGFyZ3VtZW50cyBkb2VzIG5vdCBzaW1wbGlmeSB0byBh
IENTU1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFByb2R1Y3QiIGJ1
dCBnb3QgIkNTU1VuaXRWYWx1ZSIKLUZBSUwgQ2FsbGluZyBDU1NVbml0VmFsdWUubWluIHdpdGgg
Q1NTVW5pdFZhbHVlcyB3aXRoIHNhbWUgdW5pdCBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVl
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDIgYnV0IGdvdCAxMAorUEFTUyBDYWxsaW5nIENTU1Vu
aXRWYWx1ZS5hZGQgd2l0aCBDU1NVbml0VmFsdWVzIHdpdGggc2FtZSB1bml0IHNpbXBsaWZpZXMg
dG8gYSBDU1NVbml0VmFsdWUKK1BBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUuc3ViIHdpdGggQ1NT
VW5pdFZhbHVlcyB3aXRoIHNhbWUgdW5pdCBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCitQ
QVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm11bCB3aXRoIGFsbCBudW1iZXJzIHNpbXBsaWZpZXMg
dG8gYSBDU1NVbml0VmFsdWUKK1BBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUubXVsIHdpdGggb25s
eSBvbmUgbm9uLW51bWJlciBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCitQQVNTIENhbGxp
bmcgQ1NTVW5pdFZhbHVlLm11bCB3aXRoIG1vcmUgdGhhbiBvbmUgbm9uLW51bWJlciBkb2VzIG5v
dCBzaW1wbGlmeSB0byBhIENTU1VuaXRWYWx1ZQorUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5k
aXYgd2l0aCBhbGwgbnVtYmVycyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCitQQVNTIENh
bGxpbmcgQ1NTVW5pdFZhbHVlLmRpdiBvbiBhIG5vbi1udW1iZXIgdmFsdWUgc2ltcGxpZmllcyB0
byBhIENTU1VuaXRWYWx1ZQorUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5kaXYgd2l0aCBhIG5v
bi1udW1iZXIgdmFsdWUgaW4gdGhlIGFyZ3VtZW50cyBkb2VzIG5vdCBzaW1wbGlmeSB0byBhIENT
U1VuaXRWYWx1ZQorUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5taW4gd2l0aCBDU1NVbml0VmFs
dWVzIHdpdGggc2FtZSB1bml0IHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUKIFBBU1MgQ2Fs
bGluZyBDU1NVbml0VmFsdWUubWF4IHdpdGggQ1NTVW5pdFZhbHVlcyB3aXRoIHNhbWUgdW5pdCBz
aW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCi1GQUlMIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVl
LnN1YiBuZWdhdGVzIGFsbCBhcmd1bWVudCB2YWx1ZXMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
IkNTU01hdGhTdW0iIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKLUZBSUwgQ2FsbGluZyBDU1NOdW1l
cmljVmFsdWUuZGl2IGludmVydHMgYWxsIGFyZ3VtZW50IHZhbHVlcyBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiQ1NTTWF0aFByb2R1Y3QiIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKLUZBSUwgQ2Fu
IG5vdCBkaXZpZGUgd2l0aCBDU1NVbml0VmFsdWUgd2hpY2ggaGFzIHplcm8gdmFsdWUgYW5kIG51
bWJlciB0eXBlIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBDU1MubnVtYmVyKDIp
LmRpdihDU1MubnVtYmVyKDApKSIgZGlkIG5vdCB0aHJvdworUEFTUyBDYWxsaW5nIENTU051bWVy
aWNWYWx1ZS5zdWIgbmVnYXRlcyBhbGwgYXJndW1lbnQgdmFsdWVzCitQQVNTIENhbGxpbmcgQ1NT
TnVtZXJpY1ZhbHVlLmRpdiBpbnZlcnRzIGFsbCBhcmd1bWVudCB2YWx1ZXMKK1BBU1MgQ2FuIG5v
dCBkaXZpZGUgd2l0aCBDU1NVbml0VmFsdWUgd2hpY2ggaGFzIHplcm8gdmFsdWUgYW5kIG51bWJl
ciB0eXBlCiBGQUlMIENTU051bWVyaWNWYWx1ZS5hZGQgc2hvdWxkIHRocm93IFR5cGVFcnJvciB3
aGVuIHRoZSB0eXBlcyBhcmUgZGlmZmVyZW50LiBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAi
KCkgPT4gQ1NTLm51bWJlcigzKS5hZGQoQ1NTLnB4KDEwKSAsQ1NTLm51bWJlcigwKSkiIGRpZCBu
b3QgdGhyb3cKIEZBSUwgQ1NTTnVtZXJpY1ZhbHVlLnN1YiBzaG91bGQgdGhyb3cgVHlwZUVycm9y
IHdoZW4gdGhlIHR5cGVzIGFyZSBkaWZmZXJlbnQuIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9u
ICIoKSA9PiBDU1MubnVtYmVyKDMpLnN1YihDU1MucHgoMTApICxDU1MubnVtYmVyKDApKSIgZGlk
IG5vdCB0aHJvdwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445117</attachid>
            <date>2021-11-24 21:50:51 -0800</date>
            <delta_ts>2022-01-04 11:59:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230795-20211124215050.patch</filename>
            <type>text/plain</type>
            <size>36870</size>
            <attacher name="Qiaosong Zhou">johnson.zhou.sh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRhMzRiNjJjODRmOGU3
YmMyMDk4ZjJmNGQyYjI5ZjUzZjFkZTcxNy4uZmRlNDk5YTRlYjIyNjJjNTU4NGE2Y2M3NWQwNzRm
OWRiOTgxNjNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTExLTIzICBKb2hu
c29uIFpob3UgIDxqb2huc29uLnpob3Uuc2hAaWNsb3VkLmNvbT4KKworICAgICAgICBBZGQgaW1w
bGVtZW50YXRpb24gZm9yIENTU051bWVyaWNWYWx1ZSBtYXRoIGZ1bmN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzk1CisKKyAgICAgICAg
QWRkIGltcGxlbWVudGF0aW9ucyBmb3IgQ1NTIFR5cGVkIE9NIG51bWVyaWMgb3BlcmF0aW9uczog
aHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS0xLyNudW1lcmljLXZh
bHVlCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0NTU1N0eWxlVmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6Z2V0U2FtZVVuaXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjpnZXRQcm9kdWN0VW5pdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OmFkZEltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1Zh
bHVlOjpzdWIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWxJbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6bXVsKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU051bWVyaWNWYWx1ZTo6ZGl2KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNW
YWx1ZTo6bWluKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6bWF4KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTTnVtZXJpY1ZhbHVlOjpuZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJp
Y1ZhbHVlOjppbnZlcnQpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5o
OgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTTWF0aEludmVydDo6dmFsdWUgY29uc3QpOgorICAgICAgICAqIGNzcy90
eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRo
TWF4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aE1heDo6Q1NTTWF0aE1heCk6
CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4Lmg6CisgICAgICAgICog
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWluLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U01hdGhNaW46OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoTWluOjpDU1NNYXRo
TWluKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uaDoKKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU01hdGhOZWdhdGU6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9u
dW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhQcm9k
dWN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQ
cm9kdWN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0Lmg6
CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU01hdGhTdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRo
U3VtOjpDU1NNYXRoU3VtKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhT
dW0uaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY0FycmF5OjphcnJheSBjb25zdCk6CisKIDIwMjEt
MTEtMjMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQ
VSBQcm9jZXNzXSBNb3ZlIHRoZSBzb2Z0d2FyZSBGaWx0ZXJFZmZlY3QgZnVuY3Rpb25zIHRvIHNl
cGFyYXRlIGFwcGxpZXIgY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDU1NTdHlsZVZhbHVlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ1NTU3R5bGVWYWx1ZUN1c3RvbS5jcHAKaW5kZXggMzgzN2U4OTNjM2I3ZTE0OTY5Njdm
NTQ2ZTliODNiNDdhOTJhODYwZi4uN2Q2MTRiMDFjNzcxOTljOTMzNGUwOWI4ZjU0MjZmNTFiMDFj
MjQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZVZh
bHVlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxl
VmFsdWVDdXN0b20uY3BwCkBAIC0yOSw2ICsyOSwxMyBAQAogI2lmIEVOQUJMRShDU1NfVFlQRURf
T00pCiAKICNpbmNsdWRlICJKU0NTU0tleXdvcmRWYWx1ZS5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0
aEludmVydC5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0aE1heC5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0
aE1pbi5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0aE5lZ2F0ZS5oIgorI2luY2x1ZGUgIkpTQ1NTTWF0
aE9wZXJhdG9yLmgiCisjaW5jbHVkZSAiSlNDU1NNYXRoUHJvZHVjdC5oIgorI2luY2x1ZGUgIkpT
Q1NTTWF0aFN1bS5oIgogI2luY2x1ZGUgIkpTQ1NTTWF0aFZhbHVlLmgiCiAjaW5jbHVkZSAiSlND
U1NOdW1lcmljVmFsdWUuaCIKICNpbmNsdWRlICJKU0NTU1N0eWxlSW1hZ2VWYWx1ZS5oIgpAQCAt
NDcsNiArNTQsMjAgQEAgSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTR2xvYmFsT2JqZWN0Kiwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPEMKICAgICBjYXNlIENTU1N0eWxl
VmFsdWVUeXBlOjpDU1NOdW1lcmljVmFsdWU6CiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVy
PENTU051bWVyaWNWYWx1ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CiAgICAgY2Fz
ZSBDU1NTdHlsZVZhbHVlVHlwZTo6Q1NTTWF0aFZhbHVlOgorICAgICAgICBzd2l0Y2ggKGRvd25j
YXN0PENTU01hdGhWYWx1ZT4odmFsdWUuZ2V0KCkpLmdldE9wZXJhdG9yKCkpIHsKKyAgICAgICAg
Y2FzZSBDU1NNYXRoT3BlcmF0b3I6OlN1bToKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFw
cGVyPENTU01hdGhTdW0+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAgICAgICBj
YXNlIENTU01hdGhPcGVyYXRvcjo6UHJvZHVjdDoKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVX
cmFwcGVyPENTU01hdGhQcm9kdWN0PihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKKyAg
ICAgICAgY2FzZSBDU1NNYXRoT3BlcmF0b3I6Ok5lZ2F0ZToKKyAgICAgICAgICAgIHJldHVybiBj
cmVhdGVXcmFwcGVyPENTU01hdGhOZWdhdGU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkp
OworICAgICAgICBjYXNlIENTU01hdGhPcGVyYXRvcjo6SW52ZXJ0OgorICAgICAgICAgICAgcmV0
dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTTWF0aEludmVydD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZh
bHVlKSk7CisgICAgICAgIGNhc2UgQ1NTTWF0aE9wZXJhdG9yOjpNaW46CisgICAgICAgICAgICBy
ZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NNYXRoTWluPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFs
dWUpKTsKKyAgICAgICAgY2FzZSBDU1NNYXRoT3BlcmF0b3I6Ok1heDoKKyAgICAgICAgICAgIHJl
dHVybiBjcmVhdGVXcmFwcGVyPENTU01hdGhNYXg+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1
ZSkpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU01hdGhWYWx1
ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CiAgICAgY2FzZSBDU1NTdHlsZVZhbHVl
VHlwZTo6Q1NTVW5pdFZhbHVlOgogICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NVbml0
VmFsdWU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAKaW5kZXggOWMwYzFjNzI1NDhhZDU3OGFm
OWI5Mzg4NzE1MjliZjEyNTE1Y2Y0ZC4uMTVjZWY2YjAwYmY2MDU0NDgyZTQxNmQ4N2IwMDkwMGQy
MDI1Y2VkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuY3BwCkBAIC0zMCw3ICszMCwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkNTU051bWVyaWNWYWx1ZS5oIgogCisjaW5jbHVkZSAiQ1NTTWF0aEludmVydC5oIgorI2luY2x1
ZGUgIkNTU01hdGhNYXguaCIKKyNpbmNsdWRlICJDU1NNYXRoTWluLmgiCisjaW5jbHVkZSAiQ1NT
TWF0aE5lZ2F0ZS5oIgorI2luY2x1ZGUgIkNTU01hdGhQcm9kdWN0LmgiCiAjaW5jbHVkZSAiQ1NT
TWF0aFN1bS5oIgorI2luY2x1ZGUgIkNTU051bWVyaWNBcnJheS5oIgogI2luY2x1ZGUgIkNTU051
bWVyaWNGYWN0b3J5LmgiCiAjaW5jbHVkZSAiQ1NTTnVtZXJpY1R5cGUuaCIKICNpbmNsdWRlICJD
U1NVbml0VmFsdWUuaCIKQEAgLTM5LDU1ICs0NSwyMjQgQEAKICNpZiBFTkFCTEUoQ1NTX1RZUEVE
X09NKQogCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoQ1NTTnVtZXJpY1ZhbHVlKTsKIAoraW5saW5lIGNvbnN0IFN0cmluZyog
Q1NTTnVtZXJpY1ZhbHVlOjpjb21tb25Vbml0KGNvbnN0IFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1Zh
bHVlPj4mIG51bWVyaWNWZWN0b3IpCit7CisgICAgaWYgKG51bWVyaWNWZWN0b3IuaXNFbXB0eSgp
IHx8ICFpczxDU1NVbml0VmFsdWU+KG51bWVyaWNWZWN0b3IuYmVnaW4oKS0+Z2V0KCkpKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAKKyAgICBjb25zdCBTdHJpbmcmIHVuaXQgPSBkb3du
Y2FzdDxDU1NVbml0VmFsdWU+KG51bWVyaWNWZWN0b3IuYmVnaW4oKS0+Z2V0KCkpLnVuaXQoKTsK
KyAgICAKKyAgICBmb3IgKGF1dG8gaXQgPSBudW1lcmljVmVjdG9yLmJlZ2luKCk7IGl0ICE9IG51
bWVyaWNWZWN0b3IuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgaWYgKCFpczxDU1NVbml0VmFsdWU+
KCppdCkgfHwgdW5pdCAhPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KGl0LT5nZXQoKSkudW5pdCgp
KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuICZkb3du
Y2FzdDxDU1NVbml0VmFsdWU+KG51bWVyaWNWZWN0b3IuYmVnaW4oKS0+Z2V0KCkpLnVuaXQoKTsK
K30KKworaW5saW5lIGNvbnN0IFN0cmluZyogQ1NTTnVtZXJpY1ZhbHVlOjp1bml0Rm9yUHJvZHVj
dChjb25zdCBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiBudW1lcmljVmVjdG9yKQorewor
ICAgIGlmIChudW1lcmljVmVjdG9yLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgCisgICAgY29uc3QgU3RyaW5nKiBub25OdW1iZXJVbml0ID0gbnVsbHB0cjsKKyAgICAK
KyAgICBmb3IgKGF1dG8gaXQgPSBudW1lcmljVmVjdG9yLmJlZ2luKCk7IGl0ICE9IG51bWVyaWNW
ZWN0b3IuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgaWYgKCFpczxDU1NVbml0VmFsdWU+KCppdCkp
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgCisgICAgICAgIGNvbnN0IFN0
cmluZyYgdW5pdCA9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4oaXQtPmdldCgpKS51bml0KCk7Cisg
ICAgICAgIGlmICh1bml0ICE9ICJudW1iZXIiX3MpIHsKKyAgICAgICAgICAgIGlmIChub25OdW1i
ZXJVbml0KQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBub25OdW1iZXJVbml0ID0gJnVuaXQ7CisgICAgICAgIH0KKyAgICB9CisgICAg
CisgICAgaWYgKG5vbk51bWJlclVuaXQpCisgICAgICAgIHJldHVybiBub25OdW1iZXJVbml0Owor
CisgICAgcmV0dXJuICZkb3duY2FzdDxDU1NVbml0VmFsdWU+KG51bWVyaWNWZWN0b3IuYmVnaW4o
KS0+Z2V0KCkpLnVuaXQoKTsKK30KKworUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1Zh
bHVlOjphZGRJbXBsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJiBudW1lcmljVmVjdG9y
KQoreworICAgIGlmIChhdXRvIHVuaXQgPSBjb21tb25Vbml0KG51bWVyaWNWZWN0b3IpKSB7Cisg
ICAgICAgIGRvdWJsZSBzdW0gPSAwOworICAgICAgICBmb3IgKGF1dG8mJiBudW1lcmljVmFsdWUg
OiBudW1lcmljVmVjdG9yKQorICAgICAgICAgICAgc3VtICs9IGRvd25jYXN0PENTU1VuaXRWYWx1
ZT4obnVtZXJpY1ZhbHVlLmdldCgpKS52YWx1ZSgpOworICAgICAgICByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUoc3VtLCAqdW5pdCk7CisgICAgfQorCisgICAgLy8gRklYTUU6IExhY2tzIGlt
cGwuIG9mICJMZXQgdHlwZSBiZSB0aGUgcmVzdWx0IG9mIGFkZGluZyB0aGUgdHlwZXMgb2YgZXZl
cnkgaXRlbSBpbiB2YWx1ZXMuIElmIHR5cGUgaXMgZmFpbHVyZSwgdGhyb3cgYSBUeXBlRXJyb3Iu
IgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM0ODYK
KworICAgIHJldHVybiBDU1NNYXRoU3VtOjpjcmVhdGUoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUo
V1RGTW92ZShudW1lcmljVmVjdG9yKSkpOworfQorCiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NO
dW1lcmljVmFsdWU6OmFkZChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKLSAgICBV
TlVTRURfUEFSQU0odmFsdWVzKTsKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCisgICAgLy8gaHR0
cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS0xLyNkb20tY3NzbnVtZXJp
Y3ZhbHVlLWFkZAorICAgIGlmICh2YWx1ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gKnRo
aXM7CisKKyAgICBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IG51bWVyaWNWZWN0b3I7CisK
KyAgICBpZiAoaXM8Q1NTTWF0aFN1bT4oKnRoaXMpKSB7CisgICAgICAgIGZvciAoYXV0byYmIHZh
bHVlIDogZG93bmNhc3Q8Q1NTTWF0aFN1bT4oKnRoaXMpLnZhbHVlcygpLmFycmF5KCkpCisgICAg
ICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZCh2YWx1ZS5jb3B5UmVmKCkpOworICAgIH0gZWxz
ZQorICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZChSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7ICp0
aGlzIH0pOworCisgICAgZm9yIChhdXRvJiYgbnVtYmVyaXNoIDogdmFsdWVzKQorICAgICAgICBu
dW1lcmljVmVjdG9yLmFwcGVuZChDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RG
TW92ZShudW1iZXJpc2gpKSk7CiAKLSAgICByZXR1cm4gKnRoaXM7CisgICAgcmV0dXJuIENTU051
bWVyaWNWYWx1ZTo6YWRkSW1wbChXVEZNb3ZlKG51bWVyaWNWZWN0b3IpKTsKIH0KIAogUmVmPENT
U051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjpzdWIoVmVjdG9yPENTU051bWJlcmlzaD4m
JiB2YWx1ZXMpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHZhbHVlcyk7Ci0gICAgLy8gRklYTUU6IGFk
ZCBpbXBsLgorICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQt
b20tMS8jZG9tLWNzc251bWVyaWN2YWx1ZS1zdWIKKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuICp0aGlzOworCisgICAgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiBudW1lcmljVmVjdG9yOworCisgICAgaWYgKGlzPENTU01hdGhTdW0+KCp0aGlzKSkgeworICAg
ICAgICBmb3IgKGF1dG8mJiB2YWx1ZSA6IGRvd25jYXN0PENTU01hdGhTdW0+KCp0aGlzKS52YWx1
ZXMoKS5hcnJheSgpKQorICAgICAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQodmFsdWUuY29w
eVJlZigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQoUmVmPENT
U051bWVyaWNWYWx1ZT4geyAqdGhpcyB9KTsKKworICAgIGZvciAoYXV0byYmIG51bWJlcmlzaCA6
IHZhbHVlcykKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQoQ1NTTnVtZXJpY1ZhbHVlOjpy
ZWN0aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSktPm5lZ2F0ZSgpKTsKKworICAgIHJl
dHVybiBDU1NOdW1lcmljVmFsdWU6OmFkZEltcGwoV1RGTW92ZShudW1lcmljVmVjdG9yKSk7Cit9
CisKK1JlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsSW1wbChWZWN0b3I8
UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgbnVtZXJpY1ZlY3RvcikKK3sKKyAgICBpZiAoYXV0byB1
bml0ID0gdW5pdEZvclByb2R1Y3QobnVtZXJpY1ZlY3RvcikpIHsKKyAgICAgICAgZG91YmxlIHBy
b2QgPSAxOworCisgICAgICAgIGZvciAoYXV0byYmIG51bWVyaWNWYWx1ZSA6IG51bWVyaWNWZWN0
b3IpCisgICAgICAgICAgICBwcm9kICo9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4obnVtZXJpY1Zh
bHVlLmdldCgpKS52YWx1ZSgpOworICAgICAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
cHJvZCwgKnVuaXQpOworICAgIH0KKyAgICAKKyAgICAvLyBGSVhNRTogTGFja3MgaW1wbC4gb2Yg
IkxldCB0eXBlIGJlIHRoZSByZXN1bHQgb2YgYWRkaW5nIHRoZSB0eXBlcyBvZiBldmVyeSBpdGVt
IGluIHZhbHVlcy4gSWYgdHlwZSBpcyBmYWlsdXJlLCB0aHJvdyBhIFR5cGVFcnJvci4iCisgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQ4NgogCi0gICAg
cmV0dXJuICp0aGlzOworICAgIHJldHVybiBDU1NNYXRoUHJvZHVjdDo6Y3JlYXRlKENTU051bWVy
aWNBcnJheTo6Y3JlYXRlKFdURk1vdmUobnVtZXJpY1ZlY3RvcikpKTsKIH0KIAogUmVmPENTU051
bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptdWwoVmVjdG9yPENTU051bWJlcmlzaD4mJiB2
YWx1ZXMpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHZhbHVlcyk7Ci0gICAgLy8gRklYTUU6IGFkZCBp
bXBsLgorICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20t
MS8jZG9tLWNzc251bWVyaWN2YWx1ZS1tdWwKKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuICp0aGlzOworCisgICAgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBu
dW1lcmljVmVjdG9yOworCisgICAgaWYgKGlzPENTU01hdGhQcm9kdWN0PigqdGhpcykpIHsKKyAg
ICAgICAgZm9yIChhdXRvJiYgdmFsdWUgOiBkb3duY2FzdDxDU1NNYXRoUHJvZHVjdD4oKnRoaXMp
LnZhbHVlcygpLmFycmF5KCkpCisgICAgICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZCh2YWx1
ZS5jb3B5UmVmKCkpOworICAgIH0gZWxzZQorICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZChS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPiB7ICp0aGlzIH0pOworCisgICAgZm9yIChhdXRvJiYgbnVtYmVy
aXNoIDogdmFsdWVzKQorICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZChDU1NOdW1lcmljVmFs
dWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1iZXJpc2gpKSk7CiAKLSAgICByZXR1cm4g
KnRoaXM7CisgICAgcmV0dXJuIENTU051bWVyaWNWYWx1ZTo6bXVsSW1wbChXVEZNb3ZlKG51bWVy
aWNWZWN0b3IpKTsKIH0KIAotUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjpk
aXYoVmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCitFeGNlcHRpb25PcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjpkaXYoVmVjdG9yPENTU051bWJlcmlzaD4mJiB2
YWx1ZXMpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHZhbHVlcyk7Ci0gICAgLy8gRklYTUU6IGFkZCBp
bXBsLgorICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20t
MS8jZG9tLWNzc251bWVyaWN2YWx1ZS1kaXYKKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgKnRoaXMgfTsKKworICAgIFZlY3Rv
cjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gbnVtZXJpY1ZlY3RvcjsKKworICAgIGlmIChpczxDU1NN
YXRoUHJvZHVjdD4oKnRoaXMpKSB7CisgICAgICAgIGZvciAoYXV0byYmIHZhbHVlIDogZG93bmNh
c3Q8Q1NTTWF0aFByb2R1Y3Q+KCp0aGlzKS52YWx1ZXMoKS5hcnJheSgpKQorICAgICAgICAgICAg
bnVtZXJpY1ZlY3Rvci5hcHBlbmQodmFsdWUuY29weVJlZigpKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQoUmVmPENTU051bWVyaWNWYWx1ZT4geyAqdGhpcyB9KTsK
IAotICAgIHJldHVybiAqdGhpczsKKyAgICBmb3IgKGF1dG8mJiBudW1iZXJpc2ggOiB2YWx1ZXMp
IHsKKyAgICAgICAgYXV0byBpbnZlcnRlZFJlc3VsdCA9IENTU051bWVyaWNWYWx1ZTo6cmVjdGlm
eU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpLT5pbnZlcnQoKTsKKyAgICAgICAgaWYgKGlu
dmVydGVkUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGludmVydGVk
UmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQo
aW52ZXJ0ZWRSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgIH0KKworICAgIHJldHVy
biBDU1NOdW1lcmljVmFsdWU6Om11bEltcGwoV1RGTW92ZShudW1lcmljVmVjdG9yKSk7CiB9CisK
IFJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bWluKFZlY3RvcjxDU1NOdW1i
ZXJpc2g+JiYgdmFsdWVzKQogewotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8vIEZJ
WE1FOiBhZGQgaW1wbC4KKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3Nz
LXR5cGVkLW9tLTEvI2RvbS1jc3NudW1lcmljdmFsdWUtbWluCisgICAgaWYgKHZhbHVlcy5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiAqdGhpczsKKworICAgIFZlY3RvcjxSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPj4gbnVtZXJpY1ZlY3RvcjsKKworICAgIGlmIChpczxDU1NNYXRoTWluPigqdGhpcykp
IHsKKyAgICAgICAgZm9yIChhdXRvJiYgdmFsdWUgOiBkb3duY2FzdDxDU1NNYXRoTWluPigqdGhp
cykudmFsdWVzKCkuYXJyYXkoKSkKKyAgICAgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZh
bHVlLmNvcHlSZWYoKSk7CisgICAgfSBlbHNlCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5k
KFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgKnRoaXMgfSk7CisKKyAgICBmb3IgKGF1dG8mJiBudW1i
ZXJpc2ggOiB2YWx1ZXMpCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKENTU051bWVyaWNW
YWx1ZTo6cmVjdGlmeU51bWJlcmlzaChXVEZNb3ZlKG51bWJlcmlzaCkpKTsKKyAgICAKKyAgICBp
ZiAoYXV0byB1bml0ID0gY29tbW9uVW5pdChudW1lcmljVmVjdG9yKSkgeworICAgICAgICBhdXRv
IG1pblZhbHVlID0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPihudW1lcmljVmVjdG9yLmJlZ2luKCkt
PmdldCgpKS52YWx1ZSgpOworICAgICAgICAKKyAgICAgICAgZm9yIChhdXRvJiYgdW5pdFZhbHVl
IDogbnVtZXJpY1ZlY3RvcikKKyAgICAgICAgICAgIG1pblZhbHVlID0gc3RkOjptaW4oZG93bmNh
c3Q8Q1NTVW5pdFZhbHVlPih1bml0VmFsdWUuZ2V0KCkpLnZhbHVlKCksIG1pblZhbHVlKTsKKyAg
ICAgICAgCisgICAgICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZShtaW5WYWx1ZSwgKnVu
aXQpOworICAgIH0KIAotICAgIHJldHVybiAqdGhpczsKKyAgICByZXR1cm4gQ1NTTWF0aE1pbjo6
Y3JlYXRlKFdURk1vdmUobnVtZXJpY1ZlY3RvcikpOwogfQorCiBSZWY8Q1NTTnVtZXJpY1ZhbHVl
PiBDU1NOdW1lcmljVmFsdWU6Om1heChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKIHsK
LSAgICBVTlVTRURfUEFSQU0odmFsdWVzKTsKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCisgICAg
Ly8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS0xLyNkb20tY3Nz
bnVtZXJpY3ZhbHVlLW1heAorICAgIGlmICh2YWx1ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gKnRoaXM7CisKKyAgICBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IG51bWVyaWNWZWN0
b3I7CisKKyAgICBpZiAoaXM8Q1NTTWF0aE1heD4oKnRoaXMpKSB7CisgICAgICAgIGZvciAoYXV0
byYmIHZhbHVlIDogZG93bmNhc3Q8Q1NTTWF0aE1heD4oKnRoaXMpLnZhbHVlcygpLmFycmF5KCkp
CisgICAgICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZCh2YWx1ZS5jb3B5UmVmKCkpOworICAg
IH0gZWxzZQorICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZChSZWY8Q1NTTnVtZXJpY1ZhbHVl
PiB7ICp0aGlzIH0pOwogCi0gICAgcmV0dXJuICp0aGlzOworICAgIGZvciAoYXV0byYmIG51bWJl
cmlzaCA6IHZhbHVlcykKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQoQ1NTTnVtZXJpY1Zh
bHVlOjpyZWN0aWZ5TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSkpOworICAgIAorICAgIGlm
IChhdXRvIHVuaXQgPSBjb21tb25Vbml0KG51bWVyaWNWZWN0b3IpKSB7CisgICAgICAgIGF1dG8g
bWF4VmFsdWUgPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KG51bWVyaWNWZWN0b3IuYmVnaW4oKS0+
Z2V0KCkpLnZhbHVlKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGF1dG8mJiB1bml0VmFsdWUg
OiBudW1lcmljVmVjdG9yKQorICAgICAgICAgICAgbWF4VmFsdWUgPSBzdGQ6Om1heChkb3duY2Fz
dDxDU1NVbml0VmFsdWU+KHVuaXRWYWx1ZS5nZXQoKSkudmFsdWUoKSwgbWF4VmFsdWUpOworICAg
ICAgICAKKyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKG1heFZhbHVlLCAqdW5p
dCk7CisgICAgfQorCisgICAgcmV0dXJuIENTU01hdGhNYXg6OmNyZWF0ZShXVEZNb3ZlKG51bWVy
aWNWZWN0b3IpKTsKIH0KIAogUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjpy
ZWN0aWZ5TnVtYmVyaXNoKENTU051bWJlcmlzaCYmIG51bWJlcmlzaCkKQEAgLTEzNiw3ICszMTEs
MzcgQEAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6
cGFyc2UoU3RyaW5nJiYgY3NzVGV4dCkKICAgICBVTlVTRURfUEFSQU0oY3NzVGV4dCk7CiAgICAg
Ly8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251
bWVyaWN2YWx1ZS1wYXJzZQogICAgIC8vIEZJWE1FOiBhZGQgaW1wbC4KLSAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJOb3QgaW1wbGVtZW50ZWQgRXJyb3IiIH07Cisg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTm90IGltcGxlbWVudGVk
IEVycm9yIl9zIH07Cit9CisKK1JlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6
bmVnYXRlKCkKK3sKKyAgICBpZiAoaXM8Q1NTTWF0aE5lZ2F0ZT4oKnRoaXMpKQorICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8Q1NTTWF0aE5lZ2F0ZT4oKnRoaXMpLnZhbHVlKCk7CisKKyAgICBpZiAo
aXM8Q1NTVW5pdFZhbHVlPigqdGhpcykpIHsKKyAgICAgICAgYXV0byYgdW5pdFZhbHVlID0gZG93
bmNhc3Q8Q1NTVW5pdFZhbHVlPigqdGhpcyk7CisgICAgICAgIHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSgtdW5pdFZhbHVlLnZhbHVlKCksIHVuaXRWYWx1ZS51bml0KCkpOworICAgIH0KKwor
ICAgIHJldHVybiBDU1NNYXRoTmVnYXRlOjpjcmVhdGUoUmVmUHRyPENTU051bWVyaWNWYWx1ZT4g
eyB0aGlzIH0pOworfQorCitFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gQ1NTTnVt
ZXJpY1ZhbHVlOjppbnZlcnQoKQoreworICAgIGlmIChpczxDU1NNYXRoSW52ZXJ0PigqdGhpcykp
CisgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NNYXRoSW52ZXJ0PigqdGhpcykudmFsdWUoKTsK
KyAgICAKKyAgICBpZiAoaXM8Q1NTVW5pdFZhbHVlPigqdGhpcykpIHsKKyAgICAgICAgYXV0byYg
dW5pdFZhbHVlID0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPigqdGhpcyk7CisgICAgICAgIGlmICh1
bml0VmFsdWUudW5pdCgpID09ICJudW1iZXIiKSB7CisgICAgICAgICAgICBpZiAodW5pdFZhbHVl
LnZhbHVlKCkgPT0gMC4wKQorICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5n
ZUVycm9yLCAiQ2Fubm90IGludmVydCBDU1NVbml0VmFsdWUgd2l0aCB2YWx1ZSAwLjAgb3IgLTAu
MCJfcyB9OworICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBSZWY8Q1NTTnVtZXJpY1ZhbHVl
PiB7IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKDEuMCAvIHVuaXRWYWx1ZS52YWx1ZSgpLCB1bml0VmFs
dWUudW5pdCgpKSB9OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPiB7IENTU01hdGhJbnZlcnQ6OmNyZWF0ZShSZWZQdHI8Q1NTTnVtZXJpY1ZhbHVlPiB7
IHRoaXMgfSkgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaAppbmRleCA1MmJiMWZmMDdkMTc1OWU2MWVk
OTJhY2ZkOGMwZmZhMThkOTk2MDM1Li5lODg0ZGQyODFjZmQwNDNmZDFkYzg1Nzc1MTFiNTcxM2I4
ODEzZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmlj
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUu
aApAQCAtNDQsMTAgKzQ0LDEzIEBAIGNsYXNzIENTU051bWVyaWNWYWx1ZSA6IHB1YmxpYyBDU1NT
dHlsZVZhbHVlIHsKIHB1YmxpYzoKICAgICB1c2luZyBDU1NOdW1iZXJpc2ggPSBzdGQ6OnZhcmlh
bnQ8ZG91YmxlLCBSZWZQdHI8Q1NTTnVtZXJpY1ZhbHVlPj47CiAKKyAgICBjb25zdCBTdHJpbmcq
IGNvbW1vblVuaXQoY29uc3QgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYpOworICAgIGNv
bnN0IFN0cmluZyogdW5pdEZvclByb2R1Y3QoY29uc3QgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFs
dWU+PiYpOworCiAgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gYWRkKFZlY3RvcjxDU1NOdW1iZXJp
c2g+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IHN1YihWZWN0b3I8Q1NTTnVtYmVyaXNo
PiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBtdWwoVmVjdG9yPENTU051bWJlcmlzaD4m
Jik7Ci0gICAgUmVmPENTU051bWVyaWNWYWx1ZT4gZGl2KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYp
OworICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBkaXYoVmVjdG9yPENTU051
bWJlcmlzaD4mJik7CiAgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gbWluKFZlY3RvcjxDU1NOdW1i
ZXJpc2g+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IG1heChWZWN0b3I8Q1NTTnVtYmVy
aXNoPiYmKTsKICAgICAKQEAgLTYxLDYgKzY0LDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PENTU051bWVyaWNWYWx1ZT4gcmVjdGlmeU51bWJlcmlzaChDU1NOdW1iZXJpc2gmJik7CiAgICAg
CiAgICAgQ1NTU3R5bGVWYWx1ZVR5cGUgZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IENTU1N0eWxlVmFsdWVUeXBlOjpDU1NOdW1lcmljVmFsdWU7IH0KKyAgICAKKyAgICBSZWY8Q1NT
TnVtZXJpY1ZhbHVlPiBhZGRJbXBsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7Cisg
ICAgUmVmPENTU051bWVyaWNWYWx1ZT4gbXVsSW1wbChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1
ZT4+JiYpOworCisgICAgUmVmPENTU051bWVyaWNWYWx1ZT4gbmVnYXRlKCk7CisgICAgRXhjZXB0
aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IGludmVydCgpOwogCiBwcm90ZWN0ZWQ6CiAgICAg
Q1NTTnVtZXJpY1ZhbHVlKCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoSW52ZXJ0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhJbnZlcnQuaAppbmRleCBlMDlhODA2Y2IxNTI3YzkyZDk3
NDhlOTQxOGYxYzQ4NDNiMTU0N2I2Li44YjZiY2FmZWE2NTE1MGU5OGQ5NmNiNmVmOWM1MDY5MWY4
ZWNlY2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhJbnZlcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhJbnZlcnQuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDU1NNYXRoSW52ZXJ0IDogcHVi
bGljIENTU01hdGhWYWx1ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChDU1NNYXRoSW52
ZXJ0KTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPENTU01hdGhJbnZlcnQ+IGNyZWF0ZShDU1NO
dW1iZXJpc2gmJik7Ci0gICAgY29uc3QgQ1NTTnVtZXJpY1ZhbHVlJiB2YWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsdWUuZ2V0KCk7IH0KKyAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiB2YWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUuY29weVJlZigpOyB9CiAgICAgCiBwcml2YXRlOgogICAg
IENTU01hdGhJbnZlcnQoQ1NTTnVtYmVyaXNoJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5jcHAKaW5kZXggNzRiOWUwMjg3MjdmZmY4ZjEw
OGM0ZTQxNTg3MjA0OWQ0MTZhMjdhNC4uNTBhNDEyNDFiMjM4YjUzYjQ5M2RlYTRiNGE5NTBkYzUz
MzFlY2JlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoTWF4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NT
U01hdGhNYXguY3BwCkBAIC00MSwxMiArNDEsMjMgQEAgUmVmPENTU01hdGhNYXg+IENTU01hdGhN
YXg6OmNyZWF0ZShWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQogICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IENTU01hdGhNYXgoV1RGTW92ZShudW1iZXJpc2hlcykpKTsKIH0KIAor
UmVmPENTU01hdGhNYXg+IENTU01hdGhNYXg6OmNyZWF0ZShWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1ZT4+JiYgdmFsdWVzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhNYXgo
V1RGTW92ZSh2YWx1ZXMpKSk7Cit9CisKIENTU01hdGhNYXg6OkNTU01hdGhNYXgoVmVjdG9yPENT
U051bWJlcmlzaD4mJiBudW1iZXJpc2hlcykKICAgICA6IENTU01hdGhWYWx1ZShDU1NNYXRoT3Bl
cmF0b3I6Ok1heCkKICAgICAsIG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1v
dmUobnVtYmVyaXNoZXMpKSkKIHsKIH0KIAorQ1NTTWF0aE1heDo6Q1NTTWF0aE1heChWZWN0b3I8
UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgdmFsdWVzKQorICAgIDogQ1NTTWF0aFZhbHVlKENTU01h
dGhPcGVyYXRvcjo6TWF4KQorICAgICwgbV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUo
V1RGTW92ZSh2YWx1ZXMpKSkKK3sKK30KKwogY29uc3QgQ1NTTnVtZXJpY0FycmF5JiBDU1NNYXRo
TWF4Ojp2YWx1ZXMoKSBjb25zdAogewogICAgIHJldHVybiBtX3ZhbHVlcy5nZXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4LmgKaW5kZXggMDY1
OTYwZTE1MDgzNWYwNzhkODQxMWFkMjVlYWY0ZTUwZDRjMTQxMy4uNWQyYzhjZGQ5YzYzOGZmNDFm
NjM4NDI5NTY3OTkwNTlmYjgxMzRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoTWF4LmgKQEAgLTM4LDEwICszOCwxMiBAQCBjbGFzcyBDU1NNYXRo
TWF4IDogcHVibGljIENTU01hdGhWYWx1ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChD
U1NNYXRoTWF4KTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPENTU01hdGhNYXg+IGNyZWF0ZShW
ZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBzdGF0aWMgUmVmPENTU01hdGhNYXg+IGNyZWF0
ZShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOwogICAgIGNvbnN0IENTU051bWVyaWNB
cnJheSYgdmFsdWVzKCkgY29uc3Q7CiAgICAgCiBwcml2YXRlOgogICAgIENTU01hdGhNYXgoVmVj
dG9yPENTU051bWJlcmlzaD4mJik7CisgICAgQ1NTTWF0aE1heChWZWN0b3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljQXJyYXk+IG1fdmFsdWVzOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWlu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5jcHAK
aW5kZXggNWM5MzRkNDRiNmM2ZmIyMzUwNDU3NGU4MjQ3MzNjNjhjZTYxNDUxNC4uMDFhMGMxZGJm
ODJjZGRhMzMyZWJhNTcxOTMwOWMyMTAxNDc5ZGU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWluLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uY3BwCkBAIC00MSw5ICs0MSwyMCBAQCBS
ZWY8Q1NTTWF0aE1pbj4gQ1NTTWF0aE1pbjo6Y3JlYXRlKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYg
bnVtYmVyaXNoZXMpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aE1pbihXVEZNb3Zl
KG51bWJlcmlzaGVzKSkpOwogfQogCi1DU1NNYXRoTWluOjpDU1NNYXRoTWluKFZlY3RvcjxDU1NO
dW1iZXJpc2g+JiYgbnVtYmVyaXNoZXMpCitSZWY8Q1NTTWF0aE1pbj4gQ1NTTWF0aE1pbjo6Y3Jl
YXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJiB2YWx1ZXMpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ1NTTWF0aE1pbihXVEZNb3ZlKHZhbHVlcykpKTsKK30KKworQ1NTTWF0
aE1pbjo6Q1NTTWF0aE1pbihWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgdmFsdWVzKQor
ICAgIDogQ1NTTWF0aFZhbHVlKENTU01hdGhPcGVyYXRvcjo6TWluKQorICAgICwgbV92YWx1ZXMo
Q1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZSh2YWx1ZXMpKSkKK3sKK30KKworQ1NTTWF0
aE1pbjo6Q1NTTWF0aE1pbihWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKICAgICA6IENT
U01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6Ok1pbikKLSAgICAsIG1fdmFsdWVzKENTU051bWVy
aWNBcnJheTo6Y3JlYXRlKFdURk1vdmUobnVtYmVyaXNoZXMpKSkKKyAgICAsIG1fdmFsdWVzKENT
U051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSkpCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWluLmgKaW5kZXggNDRjNTU4
Mzk1MjI2MjYwNjljOWIyMTkyYjcxYzJjOWMyMzIzOTU0Yy4uY2ViMmVjZjhlN2Q5NDQ2ZjYxZDVj
NTY2YTAyYWU4MzBiZWIyMGFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoTWluLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoTWluLmgKQEAgLTM4LDEwICszOCwxMiBAQCBjbGFzcyBDU1NNYXRoTWlu
IDogcHVibGljIENTU01hdGhWYWx1ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChDU1NN
YXRoTWluKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPENTU01hdGhNaW4+IGNyZWF0ZShWZWN0
b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBzdGF0aWMgUmVmPENTU01hdGhNaW4+IGNyZWF0ZShW
ZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOwogICAgIGNvbnN0IENTU051bWVyaWNBcnJh
eSYgdmFsdWVzKCkgY29uc3Q7CiAgICAgCiBwcml2YXRlOgogICAgIENTU01hdGhNaW4oVmVjdG9y
PENTU051bWJlcmlzaD4mJik7CisgICAgQ1NTTWF0aE1pbihWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1ZT4+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljQXJyYXk+IG1fdmFsdWVzOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuaApp
bmRleCA4OGNjZDlhOTIwMmYwOGNiZjZlNWRkZjhiNzVlODg0NWI5ODExZTAwLi5lN2U0NTdmMTU2
MmUwODc5YzI2YmM3M2RmY2IzZGI0NWRkOWVkM2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuaApAQCAtMzgsNyArMzgsNyBAQCBj
bGFzcyBDU1NNYXRoTmVnYXRlIDogcHVibGljIENTU01hdGhWYWx1ZSB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChDU1NNYXRoTmVnYXRlKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPENT
U01hdGhOZWdhdGU+IGNyZWF0ZShDU1NOdW1iZXJpc2gmJik7Ci0gICAgY29uc3QgQ1NTTnVtZXJp
Y1ZhbHVlJiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUuZ2V0KCk7IH0KKyAgICBSZWY8
Q1NTTnVtZXJpY1ZhbHVlPiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUuY29weVJlZigp
OyB9CiAgICAgCiBwcml2YXRlOgogICAgIENTU01hdGhOZWdhdGUoQ1NTTnVtYmVyaXNoJiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJv
ZHVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9k
dWN0LmNwcAppbmRleCBiMWYwMDcxNjc3YmVhMmNmZjJkMDU2MGZhZGQwNGQ1ZjY4MDQ2MzJkLi5i
MWI2YTM4Y2EyYWIxZTk0MmZmNDFiMmMyMDdmMTVhMDhkMTMyYmZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcApAQCAt
NDEsMTIgKzQxLDI0IEBAIFJlZjxDU1NNYXRoUHJvZHVjdD4gQ1NTTWF0aFByb2R1Y3Q6OmNyZWF0
ZShWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQogICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IENTU01hdGhQcm9kdWN0KFdURk1vdmUobnVtYmVyaXNoZXMpKSk7CiB9CiAKK1JlZjxD
U1NNYXRoUHJvZHVjdD4gQ1NTTWF0aFByb2R1Y3Q6OmNyZWF0ZShSZWY8Q1NTTnVtZXJpY0FycmF5
PiYmIGFycmF5KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhQcm9kdWN0KFdU
Rk1vdmUoYXJyYXkpKSk7Cit9CisKIENTU01hdGhQcm9kdWN0OjpDU1NNYXRoUHJvZHVjdChWZWN0
b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQogICAgIDogQ1NTTWF0aFZhbHVlKENTU01h
dGhPcGVyYXRvcjo6UHJvZHVjdCkKICAgICAsIG1fdmFsdWVzKENTU051bWVyaWNBcnJheTo6Y3Jl
YXRlKFdURk1vdmUobnVtYmVyaXNoZXMpKSkKIHsKIH0KIAorQ1NTTWF0aFByb2R1Y3Q6OkNTU01h
dGhQcm9kdWN0KFJlZjxDU1NOdW1lcmljQXJyYXk+JiYgYXJyYXkpCisgICAgOiBDU1NNYXRoVmFs
dWUoQ1NTTWF0aE9wZXJhdG9yOjpQcm9kdWN0KQorICAgICwgbV92YWx1ZXMoV1RGTW92ZShhcnJh
eSkpCit7Cit9CisKKwogY29uc3QgQ1NTTnVtZXJpY0FycmF5JiBDU1NNYXRoUHJvZHVjdDo6dmFs
dWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV92YWx1ZXMuZ2V0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmgKaW5kZXggZTMz
OTlkNDYzNjE3YjU3MjNmMTJhZTQwMDA2ZjFlMDY3MmQ3ZmNhMS4uZDQ1MzBkOTYxZDBkY2Q1NTE5
YWJhNjA1OWM0OTRmZGRmMzgxMzI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaApAQCAtMzgsMTIgKzM4LDE0IEBAIGNsYXNz
IENTU01hdGhQcm9kdWN0IDogcHVibGljIENTU01hdGhWYWx1ZSB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChDU1NNYXRoUHJvZHVjdCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NN
YXRoUHJvZHVjdD4gY3JlYXRlKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOworICAgIHN0YXRpYyBS
ZWY8Q1NTTWF0aFByb2R1Y3Q+IGNyZWF0ZShSZWY8Q1NTTnVtZXJpY0FycmF5PiYmKTsKICAgICBj
b25zdCBDU1NOdW1lcmljQXJyYXkmIHZhbHVlcygpIGNvbnN0OwogICAgIAogICAgIENTU01hdGhP
cGVyYXRvciBnZXRPcGVyYXRvcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENTU01hdGhPcGVyYXRv
cjo6UHJvZHVjdDsgfQogCiBwcml2YXRlOgogICAgIENTU01hdGhQcm9kdWN0KFZlY3RvcjxDU1NO
dW1iZXJpc2g+JiYpOworICAgIENTU01hdGhQcm9kdWN0KFJlZjxDU1NOdW1lcmljQXJyYXk+JiYp
OwogICAgIFJlZjxDU1NOdW1lcmljQXJyYXk+IG1fdmFsdWVzOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAKaW5kZXggYTBkN2Vh
ZDNlYmUyN2IyMmQyY2FkNzM0NWY0MDQ1ZTUxNTcwYzJiZS4uYWRkZTA3NjlkMTZkZmRjZjMxYWVm
MTNkZWU5YWZkYzliM2Q1ZTYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9udW1lcmljL0NTU01hdGhTdW0uY3BwCkBAIC00MSwxMiArNDEsMjMgQEAgUmVmPENTU01hdGhT
dW0+IENTU01hdGhTdW06OmNyZWF0ZShWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVz
KQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhTdW0oV1RGTW92ZShudW1iZXJpc2hl
cykpKTsKIH0KIAorUmVmPENTU01hdGhTdW0+IENTU01hdGhTdW06OmNyZWF0ZShSZWY8Q1NTTnVt
ZXJpY0FycmF5PiYmIGFycmF5KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhT
dW0oV1RGTW92ZShhcnJheSkpKTsKK30KKwogQ1NTTWF0aFN1bTo6Q1NTTWF0aFN1bShWZWN0b3I8
Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlzaGVzKQogICAgIDogQ1NTTWF0aFZhbHVlKENTU01hdGhP
cGVyYXRvcjo6U3VtKQogICAgICwgbV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RG
TW92ZShudW1iZXJpc2hlcykpKQogewogfQogCitDU1NNYXRoU3VtOjpDU1NNYXRoU3VtKFJlZjxD
U1NOdW1lcmljQXJyYXk+JiYgYXJyYXkpCisgICAgOiBDU1NNYXRoVmFsdWUoQ1NTTWF0aE9wZXJh
dG9yOjpTdW0pCisgICAgLCBtX3ZhbHVlcyhXVEZNb3ZlKGFycmF5KSkKK3sKK30KKwogY29uc3Qg
Q1NTTnVtZXJpY0FycmF5JiBDU1NNYXRoU3VtOjp2YWx1ZXMoKSBjb25zdAogewogICAgIHJldHVy
biBtX3ZhbHVlcy5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aFN1bS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJp
Yy9DU1NNYXRoU3VtLmgKaW5kZXggNTQzMTg3OGJlYWYzODQ1YWQyMDgyYjEwYjQ2YmFkY2ZkMGQ2
ZTI2ZS4uMTY4MTYwMWQwZjlkZGU2NjA2NjI2MDBiODhjYTNkYWZjNzBhMTYzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmgKQEAgLTM5LDEw
ICszOSwxMiBAQCBjbGFzcyBDU1NNYXRoU3VtIDogcHVibGljIENTU01hdGhWYWx1ZSB7CiAgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChDU1NNYXRoU3VtKTsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPENTU01hdGhTdW0+IGNyZWF0ZShWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBzdGF0
aWMgUmVmPENTU01hdGhTdW0+IGNyZWF0ZShSZWY8Q1NTTnVtZXJpY0FycmF5PiYmKTsKICAgICBj
b25zdCBDU1NOdW1lcmljQXJyYXkmIHZhbHVlcygpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIENT
U01hdGhTdW0oVmVjdG9yPENTU051bWJlcmlzaD4mJik7CisgICAgQ1NTTWF0aFN1bShSZWY8Q1NT
TnVtZXJpY0FycmF5PiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY0FycmF5PiBtX3ZhbHVlczsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVt
ZXJpY0FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVy
aWNBcnJheS5oCmluZGV4IDgzYjA4NjMyMWFkNWQ5ZjNmODI0ZDk1OGJjMTI2NjE3NmI5NmVhNzgu
LmEwZWYyNWZlM2NlYjgwMDU4ZTc1YzU2NGY4NWM1ODU4YzhiNjE4NDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuaApAQCAt
NDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NOdW1lcmljQXJyYXk+IGNy
ZWF0ZShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOwogICAgIHNpemVfdCBsZW5ndGgo
KSBjb25zdCB7IHJldHVybiBtX2FycmF5LnNpemUoKTsgfTsKICAgICBFeGNlcHRpb25PcjxSZWY8
Q1NTTnVtZXJpY1ZhbHVlPj4gaXRlbShzaXplX3QgaW5kZXgpOwotCisgICAgY29uc3QgVmVjdG9y
PFJlZjxDU1NOdW1lcmljVmFsdWU+PiYgYXJyYXkoKSBjb25zdCB7IHJldHVybiBtX2FycmF5OyB9
CiBwcml2YXRlOgogICAgIFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gbV9hcnJheTsKICAg
ICBDU1NOdW1lcmljQXJyYXkoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDVhMjBhNzFmM2Q2ODI0Y2ExZWU5YzcyZGZmZGEx
YjMyNmRhN2EyZGYuLmMyYWYwZWZjMjFhZDY4ZjBjMTJjMmU0NmQxYTdjMmJjODFjYjFiOWMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTExLTIz
ICBKb2huc29uIFpob3UgIDxqb2huc29uLnpob3Uuc2hAaWNsb3VkLmNvbT4KKworICAgICAgICBB
ZGQgaW1wbGVtZW50YXRpb24gZm9yIENTU051bWVyaWNWYWx1ZSBtYXRoIGZ1bmN0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzk1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1v
YmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZlLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0xMS0yMyAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgQ1NQ
OiBzZWN1cml0eSBwb2xpY3kgdmlvbGF0aW9uIGV2ZW50IGlzIGFsd2F5cyB1c2luZyBkb2N1bWVu
dCBhcyB0YXJnZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJp
Yy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZh
bHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZlLWV4cGVj
dGVkLnR4dAppbmRleCAxZmZkMGUwYzYwMTRjNmFmNDBjYWEzZmJmZWJjZjBhZWE5OWMxNzYzLi41
MzZlYTUyZTUzYjBjY2I4Y2UyNzgwNjcwMzA2YTM0N2FmMTczOTNlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20v
c3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0aG1ldGljLnRlbnRhdGl2
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xhc3Nlcy9udW1lcmljLW9i
amVjdHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0xLDY1ICsxLDY1IEBA
CiAKIFBBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUuYWRkIHdpdGggbm8gYXJndW1lbnRzIHJldHVy
bnMgaXRzZWxmCiBQQVNTIENhbGxpbmcgQ1NTTWF0aFZhbHVlLmFkZCB3aXRoIG5vIGFyZ3VtZW50
cyByZXR1cm5zIGl0c2VsZgotRkFJTCBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5hZGQgd2l0aCBh
IHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgIkNTU01hdGhTdW0iIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKK1BBU1MgQ2Fs
bGluZyBDU1NOdW1lcmljVmFsdWUuYWRkIHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJl
dHVybnMgY29ycmVjdCB0eXBlCiBQQVNTIENhbGxpbmcgQ1NTTWF0aFZhbHVlLmFkZCB3aXRoIGEg
c2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZQotRkFJTCBDYWxsaW5n
IENTU051bWVyaWNWYWx1ZS5hZGQgd2l0aCBtb3JlIHRoYW4gb25lIG51bWJlciBDU1NOdW1lcmlj
VmFsdWVzIHJldHVybnMgY29ycmVjdCB0eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NN
YXRoU3VtIiBidXQgZ290ICJDU1NVbml0VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1Zh
bHVlLmFkZCB3aXRoIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU051bWVyaWNWYWx1ZXMgcmV0dXJu
cyBjb3JyZWN0IHR5cGUKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuYWRkIGNhbiB0YWtl
IG51bWJlcmlzaCB2YWx1ZXMKLUZBSUwgQ2FsbGluZyBDU1NNYXRoU3VtLmFkZCB3aXRoIG51bWJl
ciBDU1NVbml0VmFsdWVzIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgIkNTU1VuaXRWYWx1ZSIgYnV0IGdvdCAiQ1NTTWF0aFN1bSIKK1BBU1MgQ2Fs
bGluZyBDU1NNYXRoU3VtLmFkZCB3aXRoIG51bWJlciBDU1NVbml0VmFsdWVzIHNpbXBsaWZpZXMg
dG8gYSBDU1NVbml0VmFsdWUKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuYWRkIHdpdGgg
aW5jb21wYXRpYmxlIHR5cGVzIHRocm93cyBUeXBlRXJyb3IKIFBBU1MgQ2FsbGluZyBDU1NVbml0
VmFsdWUuc3ViIHdpdGggbm8gYXJndW1lbnRzIHJldHVybnMgaXRzZWxmCiBQQVNTIENhbGxpbmcg
Q1NTTWF0aFZhbHVlLnN1YiB3aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgotRkFJTCBD
YWxsaW5nIENTU051bWVyaWNWYWx1ZS5zdWIgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUg
cmV0dXJucyBjb3JyZWN0IHR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU01hdGhTdW0i
IGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKK1BBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuc3Vi
IHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlCiBQQVNT
IENhbGxpbmcgQ1NTTWF0aFZhbHVlLnN1YiB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSBy
ZXR1cm5zIGNvcnJlY3QgdHlwZQotRkFJTCBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5zdWIgd2l0
aCBtb3JlIHRoYW4gb25lIG51bWJlciBDU1NOdW1lcmljVmFsdWVzIHJldHVybnMgY29ycmVjdCB0
eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoU3VtIiBidXQgZ290ICJDU1NVbml0
VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1YiB3aXRoIG1vcmUgdGhhbiBv
bmUgbnVtYmVyIENTU051bWVyaWNWYWx1ZXMgcmV0dXJucyBjb3JyZWN0IHR5cGUKIFBBU1MgQ2Fs
bGluZyBDU1NOdW1lcmljVmFsdWUuc3ViIGNhbiB0YWtlIG51bWJlcmlzaCB2YWx1ZXMKLUZBSUwg
Q2FsbGluZyBDU1NNYXRoU3VtLnN1YiB3aXRoIG51bWJlciBDU1NVbml0VmFsdWVzIHNpbXBsaWZp
ZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU1VuaXRWYWx1
ZSIgYnV0IGdvdCAiQ1NTTWF0aFN1bSIKK1BBU1MgQ2FsbGluZyBDU1NNYXRoU3VtLnN1YiB3aXRo
IG51bWJlciBDU1NVbml0VmFsdWVzIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUKIFBBU1Mg
Q2FsbGluZyBDU1NOdW1lcmljVmFsdWUuc3ViIHdpdGggaW5jb21wYXRpYmxlIHR5cGVzIHRocm93
cyBUeXBlRXJyb3IKIFBBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUubXVsIHdpdGggbm8gYXJndW1l
bnRzIHJldHVybnMgaXRzZWxmCiBQQVNTIENhbGxpbmcgQ1NTTWF0aFZhbHVlLm11bCB3aXRoIG5v
IGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgotRkFJTCBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5t
dWwgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU01hdGhQcm9kdWN0IiBidXQgZ290ICJDU1NVbml0VmFs
dWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm11bCB3aXRoIGEgc2luZ2xlIENTU051
bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1
ZS5tdWwgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUK
LUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubXVsIHdpdGggbW9yZSB0aGFuIG9uZSBudW1i
ZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiQ1NTTWF0aFByb2R1Y3QiIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKK1BBU1MgQ2Fs
bGluZyBDU1NOdW1lcmljVmFsdWUubXVsIHdpdGggbW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVt
ZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxsaW5nIENTU051bWVyaWNW
YWx1ZS5tdWwgY2FuIHRha2UgbnVtYmVyaXNoIHZhbHVlcwotRkFJTCBDYWxsaW5nIENTU01hdGhQ
cm9kdWN0Lm11bCB3aXRoIG51bWJlciBDU1NVbml0VmFsdWVzIHNpbXBsaWZpZXMgdG8gYSBDU1NV
bml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU1VuaXRWYWx1ZSIgYnV0IGdvdCAi
Q1NTTWF0aFByb2R1Y3QiCitQQVNTIENhbGxpbmcgQ1NTTWF0aFByb2R1Y3QubXVsIHdpdGggbnVt
YmVyIENTU1VuaXRWYWx1ZXMgc2ltcGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZQogUEFTUyBDYWxs
aW5nIENTU051bWVyaWNWYWx1ZS5tdWwgd2l0aCBpbmNvbXBhdGlibGUgdHlwZXMgdGhyb3dzIFR5
cGVFcnJvcgogUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5kaXYgd2l0aCBubyBhcmd1bWVudHMg
cmV0dXJucyBpdHNlbGYKIFBBU1MgQ2FsbGluZyBDU1NNYXRoVmFsdWUuZGl2IHdpdGggbm8gYXJn
dW1lbnRzIHJldHVybnMgaXRzZWxmCi1GQUlMIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLmRpdiB3
aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFByb2R1Y3QiIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIK
K1BBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuZGl2IHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJp
Y1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlCiBQQVNTIENhbGxpbmcgQ1NTTWF0aFZhbHVlLmRp
diB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZQotRkFJ
TCBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5kaXYgd2l0aCBtb3JlIHRoYW4gb25lIG51bWJlciBD
U1NOdW1lcmljVmFsdWVzIHJldHVybnMgY29ycmVjdCB0eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJDU1NNYXRoUHJvZHVjdCIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgorUEFTUyBDYWxsaW5n
IENTU051bWVyaWNWYWx1ZS5kaXYgd2l0aCBtb3JlIHRoYW4gb25lIG51bWJlciBDU1NOdW1lcmlj
VmFsdWVzIHJldHVybnMgY29ycmVjdCB0eXBlCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVl
LmRpdiBjYW4gdGFrZSBudW1iZXJpc2ggdmFsdWVzCi1GQUlMIENhbGxpbmcgQ1NTTWF0aFByb2R1
Y3QuZGl2IHdpdGggbnVtYmVyIENTU1VuaXRWYWx1ZXMgc2ltcGxpZmllcyB0byBhIENTU1VuaXRW
YWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTVW5pdFZhbHVlIiBidXQgZ290ICJDU1NN
YXRoUHJvZHVjdCIKK1BBU1MgQ2FsbGluZyBDU1NNYXRoUHJvZHVjdC5kaXYgd2l0aCBudW1iZXIg
Q1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCiBQQVNTIENhbGxpbmcg
Q1NTTnVtZXJpY1ZhbHVlLmRpdiB3aXRoIGluY29tcGF0aWJsZSB0eXBlcyB0aHJvd3MgVHlwZUVy
cm9yCiBQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm1pbiB3aXRoIG5vIGFyZ3VtZW50cyByZXR1
cm5zIGl0c2VsZgogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1ZS5taW4gd2l0aCBubyBhcmd1bWVu
dHMgcmV0dXJucyBpdHNlbGYKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubWluIHdpdGgg
YSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJDU1NNYXRoTWluIiBidXQgZ290ICJDU1NVbml0VmFsdWUiCitQQVNTIENh
bGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1pbiB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSBy
ZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1ZS5taW4gd2l0aCBh
IHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUKLUZBSUwgQ2FsbGlu
ZyBDU1NOdW1lcmljVmFsdWUubWluIHdpdGggbW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVtZXJp
Y1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NT
TWF0aE1pbiIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgorUEFTUyBDYWxsaW5nIENTU051bWVyaWNW
YWx1ZS5taW4gd2l0aCBtb3JlIHRoYW4gb25lIG51bWJlciBDU1NOdW1lcmljVmFsdWVzIHJldHVy
bnMgY29ycmVjdCB0eXBlCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1pbiBjYW4gdGFr
ZSBudW1iZXJpc2ggdmFsdWVzCi1GQUlMIENhbGxpbmcgQ1NTTWF0aE1pbi5taW4gd2l0aCBudW1i
ZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJDU1NVbml0VmFsdWUiIGJ1dCBnb3QgIkNTU01hdGhNaW4iCitQQVNTIENh
bGxpbmcgQ1NTTWF0aE1pbi5taW4gd2l0aCBudW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVz
IHRvIGEgQ1NTVW5pdFZhbHVlCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1pbiB3aXRo
IGluY29tcGF0aWJsZSB0eXBlcyB0aHJvd3MgVHlwZUVycm9yCiBQQVNTIENhbGxpbmcgQ1NTVW5p
dFZhbHVlLm1heCB3aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgogUEFTUyBDYWxsaW5n
IENTU01hdGhWYWx1ZS5tYXggd2l0aCBubyBhcmd1bWVudHMgcmV0dXJucyBpdHNlbGYKLUZBSUwg
Q2FsbGluZyBDU1NOdW1lcmljVmFsdWUubWF4IHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVl
IHJldHVybnMgY29ycmVjdCB0eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoTWF4
IiBidXQgZ290ICJDU1NVbml0VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1h
eCB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFT
UyBDYWxsaW5nIENTU01hdGhWYWx1ZS5tYXggd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUg
cmV0dXJucyBjb3JyZWN0IHR5cGUKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubWF4IHdp
dGggbW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3Qg
dHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aE1heCIgYnV0IGdvdCAiQ1NTVW5p
dFZhbHVlIgorUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5tYXggd2l0aCBtb3JlIHRoYW4g
b25lIG51bWJlciBDU1NOdW1lcmljVmFsdWVzIHJldHVybnMgY29ycmVjdCB0eXBlCiBQQVNTIENh
bGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1heCBjYW4gdGFrZSBudW1iZXJpc2ggdmFsdWVzCi1GQUlM
IENhbGxpbmcgQ1NTTWF0aE1heC5tYXggd2l0aCBudW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlm
aWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NVbml0VmFs
dWUiIGJ1dCBnb3QgIkNTU01hdGhNYXgiCitQQVNTIENhbGxpbmcgQ1NTTWF0aE1heC5tYXggd2l0
aCBudW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCiBQQVNT
IENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1heCB3aXRoIGluY29tcGF0aWJsZSB0eXBlcyB0aHJv
d3MgVHlwZUVycm9yCi1GQUlMIENhbGxpbmcgQ1NTVW5pdFZhbHVlLmFkZCB3aXRoIENTU1VuaXRW
YWx1ZXMgd2l0aCBzYW1lIHVuaXQgc2ltcGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAxNyBidXQgZ290IDEwCi1GQUlMIENhbGxpbmcgQ1NTVW5pdFZhbHVl
LnN1YiB3aXRoIENTU1VuaXRWYWx1ZXMgd2l0aCBzYW1lIHVuaXQgc2ltcGxpZmllcyB0byBhIENT
U1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAzIGJ1dCBnb3QgMTAKLUZBSUwgQ2Fs
bGluZyBDU1NVbml0VmFsdWUubXVsIHdpdGggYWxsIG51bWJlcnMgc2ltcGxpZmllcyB0byBhIENT
U1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAxMDAgYnV0IGdvdCAxMAotRkFJTCBD
YWxsaW5nIENTU1VuaXRWYWx1ZS5tdWwgd2l0aCBvbmx5IG9uZSBub24tbnVtYmVyIHNpbXBsaWZp
ZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMTAwIGJ1dCBnb3Qg
MTAKLUZBSUwgQ2FsbGluZyBDU1NVbml0VmFsdWUubXVsIHdpdGggbW9yZSB0aGFuIG9uZSBub24t
bnVtYmVyIGRvZXMgbm90IHNpbXBsaWZ5IHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJDU1NNYXRoUHJvZHVjdCIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgotRkFJTCBD
YWxsaW5nIENTU1VuaXRWYWx1ZS5kaXYgd2l0aCBhbGwgbnVtYmVycyBzaW1wbGlmaWVzIHRvIGEg
Q1NTVW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDEgYnV0IGdvdCAxMAotRkFJTCBD
YWxsaW5nIENTU1VuaXRWYWx1ZS5kaXYgb24gYSBub24tbnVtYmVyIHZhbHVlIHNpbXBsaWZpZXMg
dG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMSBidXQgZ290IDEwCi1G
QUlMIENhbGxpbmcgQ1NTVW5pdFZhbHVlLmRpdiB3aXRoIGEgbm9uLW51bWJlciB2YWx1ZSBpbiB0
aGUgYXJndW1lbnRzIGRvZXMgbm90IHNpbXBsaWZ5IHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoUHJvZHVjdCIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgot
RkFJTCBDYWxsaW5nIENTU1VuaXRWYWx1ZS5taW4gd2l0aCBDU1NVbml0VmFsdWVzIHdpdGggc2Ft
ZSB1bml0IHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgMiBidXQgZ290IDEwCitQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLmFkZCB3aXRoIENTU1Vu
aXRWYWx1ZXMgd2l0aCBzYW1lIHVuaXQgc2ltcGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZQorUEFT
UyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5zdWIgd2l0aCBDU1NVbml0VmFsdWVzIHdpdGggc2FtZSB1
bml0IHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUKK1BBU1MgQ2FsbGluZyBDU1NVbml0VmFs
dWUubXVsIHdpdGggYWxsIG51bWJlcnMgc2ltcGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZQorUEFT
UyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5tdWwgd2l0aCBvbmx5IG9uZSBub24tbnVtYmVyIHNpbXBs
aWZpZXMgdG8gYSBDU1NVbml0VmFsdWUKK1BBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUubXVsIHdp
dGggbW9yZSB0aGFuIG9uZSBub24tbnVtYmVyIGRvZXMgbm90IHNpbXBsaWZ5IHRvIGEgQ1NTVW5p
dFZhbHVlCitQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLmRpdiB3aXRoIGFsbCBudW1iZXJzIHNp
bXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUKK1BBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUuZGl2
IG9uIGEgbm9uLW51bWJlciB2YWx1ZSBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCitQQVNT
IENhbGxpbmcgQ1NTVW5pdFZhbHVlLmRpdiB3aXRoIGEgbm9uLW51bWJlciB2YWx1ZSBpbiB0aGUg
YXJndW1lbnRzIGRvZXMgbm90IHNpbXBsaWZ5IHRvIGEgQ1NTVW5pdFZhbHVlCitQQVNTIENhbGxp
bmcgQ1NTVW5pdFZhbHVlLm1pbiB3aXRoIENTU1VuaXRWYWx1ZXMgd2l0aCBzYW1lIHVuaXQgc2lt
cGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZQogUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5tYXgg
d2l0aCBDU1NVbml0VmFsdWVzIHdpdGggc2FtZSB1bml0IHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0
VmFsdWUKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuc3ViIG5lZ2F0ZXMgYWxsIGFyZ3Vt
ZW50IHZhbHVlcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFN1bSIgYnV0IGdvdCAi
Q1NTVW5pdFZhbHVlIgotRkFJTCBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5kaXYgaW52ZXJ0cyBh
bGwgYXJndW1lbnQgdmFsdWVzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoUHJvZHVj
dCIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgotRkFJTCBDYW4gbm90IGRpdmlkZSB3aXRoIENTU1Vu
aXRWYWx1ZSB3aGljaCBoYXMgemVybyB2YWx1ZSBhbmQgbnVtYmVyIHR5cGUgYXNzZXJ0X3Rocm93
c19qczogZnVuY3Rpb24gIigpID0+IENTUy5udW1iZXIoMikuZGl2KENTUy5udW1iZXIoMCkpIiBk
aWQgbm90IHRocm93CitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1YiBuZWdhdGVzIGFs
bCBhcmd1bWVudCB2YWx1ZXMKK1BBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuZGl2IGludmVy
dHMgYWxsIGFyZ3VtZW50IHZhbHVlcworUEFTUyBDYW4gbm90IGRpdmlkZSB3aXRoIENTU1VuaXRW
YWx1ZSB3aGljaCBoYXMgemVybyB2YWx1ZSBhbmQgbnVtYmVyIHR5cGUKIEZBSUwgQ1NTTnVtZXJp
Y1ZhbHVlLmFkZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yIHdoZW4gdGhlIHR5cGVzIGFyZSBkaWZm
ZXJlbnQuIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBDU1MubnVtYmVyKDMpLmFk
ZChDU1MucHgoMTApICxDU1MubnVtYmVyKDApKSIgZGlkIG5vdCB0aHJvdwogRkFJTCBDU1NOdW1l
cmljVmFsdWUuc3ViIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiB0aGUgdHlwZXMgYXJlIGRp
ZmZlcmVudC4gYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IENTUy5udW1iZXIoMyku
c3ViKENTUy5weCgxMCkgLENTUy5udW1iZXIoMCkpIiBkaWQgbm90IHRocm93CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448316</attachid>
            <date>2022-01-04 11:59:15 -0800</date>
            <delta_ts>2022-01-04 11:59:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230795-20220104115914.patch</filename>
            <type>text/plain</type>
            <size>36999</size>
            <attacher name="Qiaosong Zhou">johnson.zhou.sh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI3OTRhOGMwYTUzMGVh
MGUwNWJkODU0ZTk5ZmNhODQwNmYyMWYzYi4uN2E3ZmMyYmQ2MTI0ZTQ0N2EwNWNkZDUzYzE3N2Ez
Yzc1MzIyYjljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTExLTIzICBKb2hu
c29uIFpob3UgIDxqb2huc29uLnpob3Uuc2hAaWNsb3VkLmNvbT4KKworICAgICAgICBBZGQgaW1w
bGVtZW50YXRpb24gZm9yIENTU051bWVyaWNWYWx1ZSBtYXRoIGZ1bmN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzk1CisKKyAgICAgICAg
QWRkIGltcGxlbWVudGF0aW9ucyBmb3IgQ1NTIFR5cGVkIE9NIG51bWVyaWMgb3BlcmF0aW9uczog
aHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS0xLyNudW1lcmljLXZh
bHVlCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0NTU1N0eWxlVmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6Z2V0U2FtZVVuaXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjpnZXRQcm9kdWN0VW5pdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OmFkZEltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTTnVtZXJpY1ZhbHVlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1Zh
bHVlOjpzdWIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWxJbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6bXVsKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU051bWVyaWNWYWx1ZTo6ZGl2KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNW
YWx1ZTo6bWluKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6bWF4KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTTnVtZXJpY1ZhbHVlOjpuZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJp
Y1ZhbHVlOjppbnZlcnQpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5o
OgorICAgICAgICAqIGNzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTTWF0aEludmVydDo6dmFsdWUgY29uc3QpOgorICAgICAgICAqIGNzcy90
eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRo
TWF4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aE1heDo6Q1NTTWF0aE1heCk6
CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4Lmg6CisgICAgICAgICog
Y3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWluLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U01hdGhNaW46OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRoTWluOjpDU1NNYXRo
TWluKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uaDoKKyAgICAg
ICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU01hdGhOZWdhdGU6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9u
dW1lcmljL0NTU01hdGhQcm9kdWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hdGhQcm9k
dWN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWF0aFByb2R1Y3Q6OkNTU01hdGhQ
cm9kdWN0KToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0Lmg6
CisgICAgICAgICogY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU01hdGhTdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXRo
U3VtOjpDU1NNYXRoU3VtKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhT
dW0uaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY0FycmF5OjphcnJheSBjb25zdCk6CisKIDIwMjEt
MTItMTQgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBTb3Vy
Y2VCdWZmZXJQYXJzZXIgc2hvdWxkIGJlIHVzaW5nIGNvbnRpZ3VvdXMgU2hhcmVkQnVmZmVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlVmFsdWVDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZVZhbHVlQ3VzdG9t
LmNwcAppbmRleCAzODM3ZTg5M2MzYjdlMTQ5Njk2N2Y1NDZlOWI4M2I0N2E5MmE4NjBmLi43ZDYx
NGIwMWM3NzE5OWM5MzM0ZTA5YjhmNTQyNmY1MWIwMWMyNDgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlVmFsdWVDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVWYWx1ZUN1c3RvbS5jcHAKQEAgLTI5LDYg
KzI5LDEzIEBACiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAogI2luY2x1ZGUgIkpTQ1NTS2V5
d29yZFZhbHVlLmgiCisjaW5jbHVkZSAiSlNDU1NNYXRoSW52ZXJ0LmgiCisjaW5jbHVkZSAiSlND
U1NNYXRoTWF4LmgiCisjaW5jbHVkZSAiSlNDU1NNYXRoTWluLmgiCisjaW5jbHVkZSAiSlNDU1NN
YXRoTmVnYXRlLmgiCisjaW5jbHVkZSAiSlNDU1NNYXRoT3BlcmF0b3IuaCIKKyNpbmNsdWRlICJK
U0NTU01hdGhQcm9kdWN0LmgiCisjaW5jbHVkZSAiSlNDU1NNYXRoU3VtLmgiCiAjaW5jbHVkZSAi
SlNDU1NNYXRoVmFsdWUuaCIKICNpbmNsdWRlICJKU0NTU051bWVyaWNWYWx1ZS5oIgogI2luY2x1
ZGUgIkpTQ1NTU3R5bGVJbWFnZVZhbHVlLmgiCkBAIC00Nyw2ICs1NCwyMCBAQCBKU1ZhbHVlIHRv
SlNOZXdseUNyZWF0ZWQoSlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBSZWY8QwogICAgIGNhc2UgQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU051bWVyaWNWYWx1
ZToKICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTTnVtZXJpY1ZhbHVlPihnbG9iYWxP
YmplY3QsIFdURk1vdmUodmFsdWUpKTsKICAgICBjYXNlIENTU1N0eWxlVmFsdWVUeXBlOjpDU1NN
YXRoVmFsdWU6CisgICAgICAgIHN3aXRjaCAoZG93bmNhc3Q8Q1NTTWF0aFZhbHVlPih2YWx1ZS5n
ZXQoKSkuZ2V0T3BlcmF0b3IoKSkgeworICAgICAgICBjYXNlIENTU01hdGhPcGVyYXRvcjo6U3Vt
OgorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTTWF0aFN1bT4oZ2xvYmFsT2Jq
ZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIGNhc2UgQ1NTTWF0aE9wZXJhdG9yOjpQcm9k
dWN0OgorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTTWF0aFByb2R1Y3Q+KGds
b2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAgICAgICBjYXNlIENTU01hdGhPcGVyYXRv
cjo6TmVnYXRlOgorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTTWF0aE5lZ2F0
ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIGNhc2UgQ1NTTWF0aE9w
ZXJhdG9yOjpJbnZlcnQ6CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NNYXRo
SW52ZXJ0PihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgY2FzZSBDU1NN
YXRoT3BlcmF0b3I6Ok1pbjoKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU01h
dGhNaW4+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAgICAgICBjYXNlIENTU01h
dGhPcGVyYXRvcjo6TWF4OgorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTTWF0
aE1heD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTTWF0aFZhbHVlPihnbG9iYWxPYmplY3QsIFdURk1vdmUo
dmFsdWUpKTsKICAgICBjYXNlIENTU1N0eWxlVmFsdWVUeXBlOjpDU1NVbml0VmFsdWU6CiAgICAg
ICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU1VuaXRWYWx1ZT4oZ2xvYmFsT2JqZWN0LCBXVEZN
b3ZlKHZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NO
dW1lcmljVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1Zh
bHVlLmNwcAppbmRleCA5YzBjMWM3MjU0OGFkNTc4YWY5YjkzODg3MTUyOWJmMTI1MTVjZjRkLi45
ZjFiOTBjYWM3MGY2ZmJiYWMxZTFjM2FhODAzMWViY2U2Y2Q1M2U3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAKQEAgLTMwLDcgKzMwLDEzIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTTnVtZXJpY1ZhbHVlLmgiCiAKKyNp
bmNsdWRlICJDU1NNYXRoSW52ZXJ0LmgiCisjaW5jbHVkZSAiQ1NTTWF0aE1heC5oIgorI2luY2x1
ZGUgIkNTU01hdGhNaW4uaCIKKyNpbmNsdWRlICJDU1NNYXRoTmVnYXRlLmgiCisjaW5jbHVkZSAi
Q1NTTWF0aFByb2R1Y3QuaCIKICNpbmNsdWRlICJDU1NNYXRoU3VtLmgiCisjaW5jbHVkZSAiQ1NT
TnVtZXJpY0FycmF5LmgiCiAjaW5jbHVkZSAiQ1NTTnVtZXJpY0ZhY3RvcnkuaCIKICNpbmNsdWRl
ICJDU1NOdW1lcmljVHlwZS5oIgogI2luY2x1ZGUgIkNTU1VuaXRWYWx1ZS5oIgpAQCAtMzksNTUg
KzQ1LDIyNCBAQAogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChDU1NOdW1lcmlj
VmFsdWUpOwogCitzdGF0aWMgaW5saW5lIGNvbnN0IFN0cmluZyBjb21tb25Vbml0KGNvbnN0IFZl
Y3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mIG51bWVyaWNWZWN0b3IpCit7CisgICAgaWYgKG51
bWVyaWNWZWN0b3IuaXNFbXB0eSgpIHx8ICFpczxDU1NVbml0VmFsdWU+KG51bWVyaWNWZWN0b3Iu
YmVnaW4oKS0+Z2V0KCkpKQorICAgICAgICByZXR1cm4geyB9OworICAgIFN0cmluZyB1bml0Owor
ICAgIAorICAgIGZvciAoYXV0byYgdmFsdWUgOiBudW1lcmljVmVjdG9yKSB7CisgICAgICAgIGlm
ICghaXM8Q1NTVW5pdFZhbHVlPih2YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAg
ICAgICBpZiAodW5pdC5pc051bGwoKSkKKyAgICAgICAgICAgIHVuaXQgPSBkb3duY2FzdDxDU1NV
bml0VmFsdWU+KHZhbHVlLmdldCgpKS51bml0KCk7CisgICAgICAgIGVsc2UgaWYgKGRvd25jYXN0
PENTU1VuaXRWYWx1ZT4odmFsdWUuZ2V0KCkpLnVuaXQoKSAhPSB1bml0KQorICAgICAgICAgICAg
cmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICByZXR1cm4gdW5pdDsKK30KKworc3RhdGljIGlubGlu
ZSBjb25zdCBTdHJpbmcgdW5pdEZvclByb2R1Y3QoY29uc3QgVmVjdG9yPFJlZjxDU1NOdW1lcmlj
VmFsdWU+PiYgbnVtZXJpY1ZlY3RvcikKK3sKKyAgICBpZiAobnVtZXJpY1ZlY3Rvci5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgCisgICAgU3RyaW5nIG5vbk51bWJlclVuaXQ7
CisgICAgCisgICAgZm9yIChhdXRvJiB2YWx1ZSA6IG51bWVyaWNWZWN0b3IpIHsKKyAgICAgICAg
aWYgKCFpczxDU1NVbml0VmFsdWU+KHZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07Cisg
ICAgICAgIAorICAgICAgICBjb25zdCBTdHJpbmcmIHVuaXQgPSBkb3duY2FzdDxDU1NVbml0VmFs
dWU+KHZhbHVlLmdldCgpKS51bml0KCk7CisgICAgICAgIGlmICh1bml0ICE9ICJudW1iZXIiX3Mp
IHsKKyAgICAgICAgICAgIGlmICghbm9uTnVtYmVyVW5pdC5pc051bGwoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4geyB9OworICAgICAgICAgICAgCisgICAgICAgICAgICBub25OdW1iZXJVbml0
ID0gdW5pdDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICByZXR1cm4gbm9uTnVtYmVyVW5p
dDsKK30KKworUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjphZGRJbXBsKFZl
Y3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJiBudW1lcmljVmVjdG9yKQoreworICAgIGlmIChh
dXRvIHVuaXQgPSBjb21tb25Vbml0KG51bWVyaWNWZWN0b3IpOyAhdW5pdC5pc051bGwoKSkgewor
ICAgICAgICBkb3VibGUgc3VtID0gMDsKKyAgICAgICAgZm9yIChhdXRvJiYgbnVtZXJpY1ZhbHVl
IDogbnVtZXJpY1ZlY3RvcikKKyAgICAgICAgICAgIHN1bSArPSBkb3duY2FzdDxDU1NVbml0VmFs
dWU+KG51bWVyaWNWYWx1ZS5nZXQoKSkudmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHN1bSwgdW5pdCk7CisgICAgfQorCisgICAgLy8gRklYTUU6IExhY2tzIGlt
cGwuIG9mICJMZXQgdHlwZSBiZSB0aGUgcmVzdWx0IG9mIGFkZGluZyB0aGUgdHlwZXMgb2YgZXZl
cnkgaXRlbSBpbiB2YWx1ZXMuIElmIHR5cGUgaXMgZmFpbHVyZSwgdGhyb3cgYSBUeXBlRXJyb3Iu
IgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM0ODYK
KworICAgIHJldHVybiBDU1NNYXRoU3VtOjpjcmVhdGUoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUo
V1RGTW92ZShudW1lcmljVmVjdG9yKSkpOworfQorCiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NO
dW1lcmljVmFsdWU6OmFkZChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKLSAgICBV
TlVTRURfUEFSQU0odmFsdWVzKTsKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCisgICAgLy8gaHR0
cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS0xLyNkb20tY3NzbnVtZXJp
Y3ZhbHVlLWFkZAorICAgIGlmICh2YWx1ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gKnRo
aXM7CiAKLSAgICByZXR1cm4gKnRoaXM7CisgICAgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiBudW1lcmljVmVjdG9yOworCisgICAgaWYgKGlzPENTU01hdGhTdW0+KCp0aGlzKSkgeworICAg
ICAgICBmb3IgKGF1dG8mJiB2YWx1ZSA6IGRvd25jYXN0PENTU01hdGhTdW0+KCp0aGlzKS52YWx1
ZXMoKS5hcnJheSgpKQorICAgICAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQodmFsdWUuY29w
eVJlZigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQoUmVmIHsg
KnRoaXMgfSk7CisKKyAgICBmb3IgKGF1dG8mJiBudW1iZXJpc2ggOiB2YWx1ZXMpCisgICAgICAg
IG51bWVyaWNWZWN0b3IuYXBwZW5kKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlzaChX
VEZNb3ZlKG51bWJlcmlzaCkpKTsKKworICAgIHJldHVybiBDU1NOdW1lcmljVmFsdWU6OmFkZElt
cGwoV1RGTW92ZShudW1lcmljVmVjdG9yKSk7CiB9CiAKIFJlZjxDU1NOdW1lcmljVmFsdWU+IENT
U051bWVyaWNWYWx1ZTo6c3ViKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgdmFsdWVzKQogewotICAg
IFVOVVNFRF9QQVJBTSh2YWx1ZXMpOwotICAgIC8vIEZJWE1FOiBhZGQgaW1wbC4KKyAgICAvLyBo
dHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLTEvI2RvbS1jc3NudW1l
cmljdmFsdWUtc3ViCisgICAgaWYgKHZhbHVlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAq
dGhpczsKKworICAgIFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gbnVtZXJpY1ZlY3RvcjsK
KworICAgIGlmIChpczxDU1NNYXRoU3VtPigqdGhpcykpIHsKKyAgICAgICAgZm9yIChhdXRvJiYg
dmFsdWUgOiBkb3duY2FzdDxDU1NNYXRoU3VtPigqdGhpcykudmFsdWVzKCkuYXJyYXkoKSkKKyAg
ICAgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZhbHVlLmNvcHlSZWYoKSk7CisgICAgfSBl
bHNlCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKFJlZiB7ICp0aGlzIH0pOworCisgICAg
Zm9yIChhdXRvJiYgbnVtYmVyaXNoIDogdmFsdWVzKQorICAgICAgICBudW1lcmljVmVjdG9yLmFw
cGVuZChDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1iZXJpc2gp
KS0+bmVnYXRlKCkpOwogCi0gICAgcmV0dXJuICp0aGlzOworICAgIHJldHVybiBDU1NOdW1lcmlj
VmFsdWU6OmFkZEltcGwoV1RGTW92ZShudW1lcmljVmVjdG9yKSk7Cit9CisKK1JlZjxDU1NOdW1l
cmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsSW1wbChWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1ZT4+JiYgbnVtZXJpY1ZlY3RvcikKK3sKKyAgICBpZiAoYXV0byB1bml0ID0gdW5pdEZvclBy
b2R1Y3QobnVtZXJpY1ZlY3Rvcik7IHVuaXQgIT0gbnVsbFN0cmluZygpKSB7CisgICAgICAgIGRv
dWJsZSBwcm9kID0gMTsKKworICAgICAgICBmb3IgKGF1dG8mJiBudW1lcmljVmFsdWUgOiBudW1l
cmljVmVjdG9yKQorICAgICAgICAgICAgcHJvZCAqPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KG51
bWVyaWNWYWx1ZS5nZXQoKSkudmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHByb2QsIHVuaXQpOworICAgIH0KKyAgICAKKyAgICAvLyBGSVhNRTogTGFja3MgaW1w
bC4gb2YgIkxldCB0eXBlIGJlIHRoZSByZXN1bHQgb2YgYWRkaW5nIHRoZSB0eXBlcyBvZiBldmVy
eSBpdGVtIGluIHZhbHVlcy4gSWYgdHlwZSBpcyBmYWlsdXJlLCB0aHJvdyBhIFR5cGVFcnJvci4i
CisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQ4Ngor
CisgICAgcmV0dXJuIENTU01hdGhQcm9kdWN0OjpjcmVhdGUoQ1NTTnVtZXJpY0FycmF5OjpjcmVh
dGUoV1RGTW92ZShudW1lcmljVmVjdG9yKSkpOwogfQogCiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBD
U1NOdW1lcmljVmFsdWU6Om11bChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKLSAg
ICBVTlVTRURfUEFSQU0odmFsdWVzKTsKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCisgICAgLy8g
aHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS0xLyNkb20tY3NzbnVt
ZXJpY3ZhbHVlLW11bAorICAgIGlmICh2YWx1ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
KnRoaXM7CiAKLSAgICByZXR1cm4gKnRoaXM7CisgICAgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFs
dWU+PiBudW1lcmljVmVjdG9yOworCisgICAgaWYgKGlzPENTU01hdGhQcm9kdWN0PigqdGhpcykp
IHsKKyAgICAgICAgZm9yIChhdXRvJiYgdmFsdWUgOiBkb3duY2FzdDxDU1NNYXRoUHJvZHVjdD4o
KnRoaXMpLnZhbHVlcygpLmFycmF5KCkpCisgICAgICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVu
ZCh2YWx1ZS5jb3B5UmVmKCkpOworICAgIH0gZWxzZQorICAgICAgICBudW1lcmljVmVjdG9yLmFw
cGVuZChSZWYgeyAqdGhpcyB9KTsKKworICAgIGZvciAoYXV0byYmIG51bWJlcmlzaCA6IHZhbHVl
cykKKyAgICAgICAgbnVtZXJpY1ZlY3Rvci5hcHBlbmQoQ1NTTnVtZXJpY1ZhbHVlOjpyZWN0aWZ5
TnVtYmVyaXNoKFdURk1vdmUobnVtYmVyaXNoKSkpOworCisgICAgcmV0dXJuIENTU051bWVyaWNW
YWx1ZTo6bXVsSW1wbChXVEZNb3ZlKG51bWVyaWNWZWN0b3IpKTsKIH0KIAotUmVmPENTU051bWVy
aWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjpkaXYoVmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1
ZXMpCitFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjpk
aXYoVmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHZh
bHVlcyk7Ci0gICAgLy8gRklYTUU6IGFkZCBpbXBsLgorICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNz
cy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20tMS8jZG9tLWNzc251bWVyaWN2YWx1ZS1kaXYKKyAg
ICBpZiAodmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFJlZiB7ICp0aGlzIH07CisK
KyAgICBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IG51bWVyaWNWZWN0b3I7CisKKyAgICBp
ZiAoaXM8Q1NTTWF0aFByb2R1Y3Q+KCp0aGlzKSkgeworICAgICAgICBmb3IgKGF1dG8mJiB2YWx1
ZSA6IGRvd25jYXN0PENTU01hdGhQcm9kdWN0PigqdGhpcykudmFsdWVzKCkuYXJyYXkoKSkKKyAg
ICAgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKHZhbHVlLmNvcHlSZWYoKSk7CisgICAgfSBl
bHNlCisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKFJlZiB7ICp0aGlzIH0pOworCisgICAg
Zm9yIChhdXRvJiYgbnVtYmVyaXNoIDogdmFsdWVzKSB7CisgICAgICAgIGF1dG8gaW52ZXJ0ZWRS
ZXN1bHQgPSBDU1NOdW1lcmljVmFsdWU6OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1iZXJp
c2gpKS0+aW52ZXJ0KCk7CisgICAgICAgIGlmIChpbnZlcnRlZFJlc3VsdC5oYXNFeGNlcHRpb24o
KSkKKyAgICAgICAgICAgIHJldHVybiBpbnZlcnRlZFJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7
CisgICAgICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKGludmVydGVkUmVzdWx0LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpKTsKKyAgICB9CiAKLSAgICByZXR1cm4gKnRoaXM7CisgICAgcmV0dXJuIENTU051
bWVyaWNWYWx1ZTo6bXVsSW1wbChXVEZNb3ZlKG51bWVyaWNWZWN0b3IpKTsKIH0KKwogUmVmPENT
U051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptaW4oVmVjdG9yPENTU051bWJlcmlzaD4m
JiB2YWx1ZXMpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHZhbHVlcyk7Ci0gICAgLy8gRklYTUU6IGFk
ZCBpbXBsLgorICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQt
b20tMS8jZG9tLWNzc251bWVyaWN2YWx1ZS1taW4KKyAgICBpZiAodmFsdWVzLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuICp0aGlzOworCisgICAgVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiBudW1lcmljVmVjdG9yOwogCi0gICAgcmV0dXJuICp0aGlzOworICAgIGlmIChpczxDU1NNYXRo
TWluPigqdGhpcykpIHsKKyAgICAgICAgZm9yIChhdXRvJiYgdmFsdWUgOiBkb3duY2FzdDxDU1NN
YXRoTWluPigqdGhpcykudmFsdWVzKCkuYXJyYXkoKSkKKyAgICAgICAgICAgIG51bWVyaWNWZWN0
b3IuYXBwZW5kKHZhbHVlLmNvcHlSZWYoKSk7CisgICAgfSBlbHNlCisgICAgICAgIG51bWVyaWNW
ZWN0b3IuYXBwZW5kKFJlZiB7ICp0aGlzIH0pOworCisgICAgZm9yIChhdXRvJiYgbnVtYmVyaXNo
IDogdmFsdWVzKQorICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZChDU1NOdW1lcmljVmFsdWU6
OnJlY3RpZnlOdW1iZXJpc2goV1RGTW92ZShudW1iZXJpc2gpKSk7CisgICAgCisgICAgaWYgKGF1
dG8gdW5pdCA9IGNvbW1vblVuaXQobnVtZXJpY1ZlY3Rvcik7IHVuaXQgIT0gbnVsbFN0cmluZygp
KSB7CisgICAgICAgIGF1dG8gbWluVmFsdWUgPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KG51bWVy
aWNWZWN0b3IuYmVnaW4oKS0+Z2V0KCkpLnZhbHVlKCk7CisgICAgICAgIAorICAgICAgICBmb3Ig
KGF1dG8mJiB1bml0VmFsdWUgOiBudW1lcmljVmVjdG9yKQorICAgICAgICAgICAgbWluVmFsdWUg
PSBzdGQ6Om1pbihkb3duY2FzdDxDU1NVbml0VmFsdWU+KHVuaXRWYWx1ZS5nZXQoKSkudmFsdWUo
KSwgbWluVmFsdWUpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKG1pblZhbHVlLCB1bml0KTsKKyAgICB9CisKKyAgICByZXR1cm4gQ1NTTWF0aE1pbjo6Y3Jl
YXRlKFdURk1vdmUobnVtZXJpY1ZlY3RvcikpOwogfQorCiBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBD
U1NOdW1lcmljVmFsdWU6Om1heChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIHZhbHVlcykKIHsKLSAg
ICBVTlVTRURfUEFSQU0odmFsdWVzKTsKLSAgICAvLyBGSVhNRTogYWRkIGltcGwuCisgICAgLy8g
aHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS0xLyNkb20tY3NzbnVt
ZXJpY3ZhbHVlLW1heAorICAgIGlmICh2YWx1ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
KnRoaXM7CisKKyAgICBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IG51bWVyaWNWZWN0b3I7
CisKKyAgICBpZiAoaXM8Q1NTTWF0aE1heD4oKnRoaXMpKSB7CisgICAgICAgIGZvciAoYXV0byYm
IHZhbHVlIDogZG93bmNhc3Q8Q1NTTWF0aE1heD4oKnRoaXMpLnZhbHVlcygpLmFycmF5KCkpCisg
ICAgICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZCh2YWx1ZS5jb3B5UmVmKCkpOworICAgIH0g
ZWxzZQorICAgICAgICBudW1lcmljVmVjdG9yLmFwcGVuZChSZWYgeyAqdGhpcyB9KTsKIAotICAg
IHJldHVybiAqdGhpczsKKyAgICBmb3IgKGF1dG8mJiBudW1iZXJpc2ggOiB2YWx1ZXMpCisgICAg
ICAgIG51bWVyaWNWZWN0b3IuYXBwZW5kKENTU051bWVyaWNWYWx1ZTo6cmVjdGlmeU51bWJlcmlz
aChXVEZNb3ZlKG51bWJlcmlzaCkpKTsKKyAgICAKKyAgICBpZiAoYXV0byB1bml0ID0gY29tbW9u
VW5pdChudW1lcmljVmVjdG9yKTsgdW5pdCAhPSBudWxsU3RyaW5nKCkpIHsKKyAgICAgICAgYXV0
byBtYXhWYWx1ZSA9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4obnVtZXJpY1ZlY3Rvci5iZWdpbigp
LT5nZXQoKSkudmFsdWUoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoYXV0byYmIHVuaXRWYWx1
ZSA6IG51bWVyaWNWZWN0b3IpCisgICAgICAgICAgICBtYXhWYWx1ZSA9IHN0ZDo6bWF4KGRvd25j
YXN0PENTU1VuaXRWYWx1ZT4odW5pdFZhbHVlLmdldCgpKS52YWx1ZSgpLCBtYXhWYWx1ZSk7Cisg
ICAgICAgIAorICAgICAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUobWF4VmFsdWUsIHVu
aXQpOworICAgIH0KKworICAgIHJldHVybiBDU1NNYXRoTWF4OjpjcmVhdGUoV1RGTW92ZShudW1l
cmljVmVjdG9yKSk7CiB9CiAKIFJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6
cmVjdGlmeU51bWJlcmlzaChDU1NOdW1iZXJpc2gmJiBudW1iZXJpc2gpCkBAIC0xMzYsNyArMzEx
LDM3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6
OnBhcnNlKFN0cmluZyYmIGNzc1RleHQpCiAgICAgVU5VU0VEX1BBUkFNKGNzc1RleHQpOwogICAg
IC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3Nu
dW1lcmljdmFsdWUtcGFyc2UKICAgICAvLyBGSVhNRTogYWRkIGltcGwuCi0gICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTm90IGltcGxlbWVudGVkIEVycm9yIiB9Owor
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIk5vdCBpbXBsZW1lbnRl
ZCBFcnJvciJfcyB9OworfQorCitSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6
Om5lZ2F0ZSgpCit7CisgICAgaWYgKGlzPENTU01hdGhOZWdhdGU+KCp0aGlzKSkKKyAgICAgICAg
cmV0dXJuIGRvd25jYXN0PENTU01hdGhOZWdhdGU+KCp0aGlzKS52YWx1ZSgpOworCisgICAgaWYg
KGlzPENTU1VuaXRWYWx1ZT4oKnRoaXMpKSB7CisgICAgICAgIGF1dG8mIHVuaXRWYWx1ZSA9IGRv
d25jYXN0PENTU1VuaXRWYWx1ZT4oKnRoaXMpOworICAgICAgICByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUoLXVuaXRWYWx1ZS52YWx1ZSgpLCB1bml0VmFsdWUudW5pdCgpKTsKKyAgICB9CisK
KyAgICByZXR1cm4gQ1NTTWF0aE5lZ2F0ZTo6Y3JlYXRlKFJlZlB0ciB7IHRoaXMgfSk7Cit9CisK
K0V4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OmludmVy
dCgpCit7CisgICAgaWYgKGlzPENTU01hdGhJbnZlcnQ+KCp0aGlzKSkKKyAgICAgICAgcmV0dXJu
IGRvd25jYXN0PENTU01hdGhJbnZlcnQ+KCp0aGlzKS52YWx1ZSgpOworICAgIAorICAgIGlmIChp
czxDU1NVbml0VmFsdWU+KCp0aGlzKSkgeworICAgICAgICBhdXRvJiB1bml0VmFsdWUgPSBkb3du
Y2FzdDxDU1NVbml0VmFsdWU+KCp0aGlzKTsKKyAgICAgICAgaWYgKHVuaXRWYWx1ZS51bml0KCkg
PT0gIm51bWJlciIpIHsKKyAgICAgICAgICAgIGlmICh1bml0VmFsdWUudmFsdWUoKSA9PSAwLjAp
CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJDYW5ub3Qg
aW52ZXJ0IENTU1VuaXRWYWx1ZSB3aXRoIHZhbHVlIDAuMCBvciAtMC4wIl9zIH07CisgICAgICAg
IAorICAgICAgICAgICAgcmV0dXJuIFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgQ1NTVW5pdFZhbHVl
OjpjcmVhdGUoMS4wIC8gdW5pdFZhbHVlLnZhbHVlKCksIHVuaXRWYWx1ZS51bml0KCkpIH07Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFJlZjxDU1NOdW1lcmljVmFsdWU+IHsgQ1NTTWF0
aEludmVydDo6Y3JlYXRlKFJlZlB0ciB7IHRoaXMgfSkgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaApp
bmRleCA1MmJiMWZmMDdkMTc1OWU2MWVkOTJhY2ZkOGMwZmZhMThkOTk2MDM1Li5jN2FlODEyMDky
NDk2MGIzYmJlOTRhZTdjZjE0ZGUzMmQ1ZjE5ZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaApAQCAtNDQsMTAgKzQ0LDEzIEBAIGNsYXNzIENTU051
bWVyaWNWYWx1ZSA6IHB1YmxpYyBDU1NTdHlsZVZhbHVlIHsKIHB1YmxpYzoKICAgICB1c2luZyBD
U1NOdW1iZXJpc2ggPSBzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBSZWZQdHI8Q1NTTnVtZXJpY1ZhbHVl
Pj47CiAKKy8vICAgIGNvbnN0IFN0cmluZyBjb21tb25Vbml0KGNvbnN0IFZlY3RvcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4mKTsKKy8vICAgIGNvbnN0IFN0cmluZyB1bml0Rm9yUHJvZHVjdChjb25z
dCBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+Jik7CisKICAgICBSZWY8Q1NTTnVtZXJpY1Zh
bHVlPiBhZGQoVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgUmVmPENTU051bWVyaWNWYWx1
ZT4gc3ViKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+
IG11bChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKLSAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBk
aXYoVmVjdG9yPENTU051bWJlcmlzaD4mJik7CisgICAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+IGRpdihWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPiBtaW4oVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgUmVmPENTU051bWVyaWNW
YWx1ZT4gbWF4KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwogICAgIApAQCAtNjEsNiArNjQsMTIg
QEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiByZWN0aWZ5TnVtYmVy
aXNoKENTU051bWJlcmlzaCYmKTsKICAgICAKICAgICBDU1NTdHlsZVZhbHVlVHlwZSBnZXRUeXBl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ1NTU3R5bGVWYWx1ZVR5cGU6OkNTU051bWVyaWNW
YWx1ZTsgfQorICAgIAorICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IGFkZEltcGwoVmVjdG9yPFJl
ZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKKyAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBtdWxJbXBs
KFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CisKKyAgICBSZWY8Q1NTTnVtZXJpY1Zh
bHVlPiBuZWdhdGUoKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gaW52
ZXJ0KCk7CiAKIHByb3RlY3RlZDoKICAgICBDU1NOdW1lcmljVmFsdWUoKSA9IGRlZmF1bHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhJbnZl
cnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5o
CmluZGV4IGUwOWE4MDZjYjE1MjdjOTJkOTc0OGU5NDE4ZjFjNDg0M2IxNTQ3YjYuLjkzMDVmNGNl
YWUzZTM2OTI1YWI0ZTRhNzM5OTIwNmJmMmU5MGU5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aEludmVydC5oCkBAIC0zNSwxMCArMzUsMTAg
QEAgY2xhc3MgQ1NTTWF0aEludmVydCA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aEludmVydCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxDU1NNYXRoSW52ZXJ0PiBjcmVhdGUoQ1NTTnVtYmVyaXNoJiYpOwotICAgIGNvbnN0IENTU051
bWVyaWNWYWx1ZSYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLmdldCgpOyB9CisgICAg
UmVmPENTU051bWVyaWNWYWx1ZT4gdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAg
ICAgCiBwcml2YXRlOgotICAgIENTU01hdGhJbnZlcnQoQ1NTTnVtYmVyaXNoJiYpOworICAgIGV4
cGxpY2l0IENTU01hdGhJbnZlcnQoQ1NTTnVtYmVyaXNoJiYpOwogICAgIFJlZjxDU1NOdW1lcmlj
VmFsdWU+IG1fdmFsdWU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlw
ZWRvbS9udW1lcmljL0NTU01hdGhNYXguY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
bnVtZXJpYy9DU1NNYXRoTWF4LmNwcAppbmRleCA3NGI5ZTAyODcyN2ZmZjhmMTA4YzRlNDE1ODcy
MDQ5ZDQxNmEyN2E0Li41MGE0MTI0MWIyMzhiNTNiNDkzZGVhNGI0YTk1MGRjNTMzMWVjYmVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1heC5j
cHAKQEAgLTQxLDEyICs0MSwyMyBAQCBSZWY8Q1NTTWF0aE1heD4gQ1NTTWF0aE1heDo6Y3JlYXRl
KFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYgbnVtYmVyaXNoZXMpCiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQ1NTTWF0aE1heChXVEZNb3ZlKG51bWJlcmlzaGVzKSkpOwogfQogCitSZWY8Q1NTTWF0
aE1heD4gQ1NTTWF0aE1heDo6Y3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJiB2
YWx1ZXMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTTWF0aE1heChXVEZNb3ZlKHZh
bHVlcykpKTsKK30KKwogQ1NTTWF0aE1heDo6Q1NTTWF0aE1heChWZWN0b3I8Q1NTTnVtYmVyaXNo
PiYmIG51bWJlcmlzaGVzKQogICAgIDogQ1NTTWF0aFZhbHVlKENTU01hdGhPcGVyYXRvcjo6TWF4
KQogICAgICwgbV92YWx1ZXMoQ1NTTnVtZXJpY0FycmF5OjpjcmVhdGUoV1RGTW92ZShudW1iZXJp
c2hlcykpKQogewogfQogCitDU1NNYXRoTWF4OjpDU1NNYXRoTWF4KFZlY3RvcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4mJiB2YWx1ZXMpCisgICAgOiBDU1NNYXRoVmFsdWUoQ1NTTWF0aE9wZXJhdG9y
OjpNYXgpCisgICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKHZh
bHVlcykpKQoreworfQorCiBjb25zdCBDU1NOdW1lcmljQXJyYXkmIENTU01hdGhNYXg6OnZhbHVl
cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmFsdWVzLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTWF4LmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNYXguaAppbmRleCAwNjU5NjBlMTUwODM1
ZjA3OGQ4NDExYWQyNWVhZjRlNTBkNGMxNDEzLi4xZTlhZDBmMzliOTQxZGM5ZmVlZmQwNjFkMDFl
YjczODhlMGMzMmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU01hdGhNYXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmlj
L0NTU01hdGhNYXguaApAQCAtMzgsMTAgKzM4LDEyIEBAIGNsYXNzIENTU01hdGhNYXggOiBwdWJs
aWMgQ1NTTWF0aFZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKENTU01hdGhNYXgp
OwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q1NTTWF0aE1heD4gY3JlYXRlKFZlY3RvcjxDU1NO
dW1iZXJpc2g+JiYpOworICAgIHN0YXRpYyBSZWY8Q1NTTWF0aE1heD4gY3JlYXRlKFZlY3RvcjxS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPj4mJik7CiAgICAgY29uc3QgQ1NTTnVtZXJpY0FycmF5JiB2YWx1
ZXMoKSBjb25zdDsKICAgICAKIHByaXZhdGU6Ci0gICAgQ1NTTWF0aE1heChWZWN0b3I8Q1NTTnVt
YmVyaXNoPiYmKTsKKyAgICBleHBsaWNpdCBDU1NNYXRoTWF4KFZlY3RvcjxDU1NOdW1iZXJpc2g+
JiYpOworICAgIGV4cGxpY2l0IENTU01hdGhNYXgoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+
PiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY0FycmF5PiBtX3ZhbHVlczsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uY3BwCmluZGV4IDVj
OTM0ZDQ0YjZjNmZiMjM1MDQ1NzRlODI0NzMzYzY4Y2U2MTQ1MTQuLjAxYTBjMWRiZjgyY2RkYTMz
MmViYTU3MTkzMDljMjEwMTQ3OWRlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoTWluLmNwcApAQCAtNDEsOSArNDEsMjAgQEAgUmVmPENTU01h
dGhNaW4+IENTU01hdGhNaW46OmNyZWF0ZShWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmIG51bWJlcmlz
aGVzKQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU01hdGhNaW4oV1RGTW92ZShudW1iZXJp
c2hlcykpKTsKIH0KIAotQ1NTTWF0aE1pbjo6Q1NTTWF0aE1pbihWZWN0b3I8Q1NTTnVtYmVyaXNo
PiYmIG51bWJlcmlzaGVzKQorUmVmPENTU01hdGhNaW4+IENTU01hdGhNaW46OmNyZWF0ZShWZWN0
b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYgdmFsdWVzKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IENTU01hdGhNaW4oV1RGTW92ZSh2YWx1ZXMpKSk7Cit9CisKK0NTU01hdGhNaW46OkNT
U01hdGhNaW4oVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiYmIHZhbHVlcykKKyAgICA6IENT
U01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6Ok1pbikKKyAgICAsIG1fdmFsdWVzKENTU051bWVy
aWNBcnJheTo6Y3JlYXRlKFdURk1vdmUodmFsdWVzKSkpCit7Cit9CisKK0NTU01hdGhNaW46OkNT
U01hdGhNaW4oVmVjdG9yPENTU051bWJlcmlzaD4mJiB2YWx1ZXMpCiAgICAgOiBDU1NNYXRoVmFs
dWUoQ1NTTWF0aE9wZXJhdG9yOjpNaW4pCi0gICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmljQXJyYXk6
OmNyZWF0ZShXVEZNb3ZlKG51bWJlcmlzaGVzKSkpCisgICAgLCBtX3ZhbHVlcyhDU1NOdW1lcmlj
QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlcykpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhNaW4uaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aE1pbi5oCmluZGV4IDQ0YzU1ODM5NTIyNjI2
MDY5YzliMjE5MmI3MWMyYzljMjMyMzk1NGMuLjQ0ODY1MTIxNDhmNDY0NDkzNWMwZWYzMjFlY2Fk
M2NiYzg1NGViOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVy
aWMvQ1NTTWF0aE1pbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMv
Q1NTTWF0aE1pbi5oCkBAIC0zOCwxMCArMzgsMTIgQEAgY2xhc3MgQ1NTTWF0aE1pbiA6IHB1Ymxp
YyBDU1NNYXRoVmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aE1pbik7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NNYXRoTWluPiBjcmVhdGUoVmVjdG9yPENTU051
bWJlcmlzaD4mJik7CisgICAgc3RhdGljIFJlZjxDU1NNYXRoTWluPiBjcmVhdGUoVmVjdG9yPFJl
ZjxDU1NOdW1lcmljVmFsdWU+PiYmKTsKICAgICBjb25zdCBDU1NOdW1lcmljQXJyYXkmIHZhbHVl
cygpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBDU1NNYXRoTWluKFZlY3RvcjxDU1NOdW1i
ZXJpc2g+JiYpOworICAgIGV4cGxpY2l0IENTU01hdGhNaW4oVmVjdG9yPENTU051bWJlcmlzaD4m
Jik7CisgICAgZXhwbGljaXQgQ1NTTWF0aE1pbihWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+
JiYpOwogICAgIFJlZjxDU1NOdW1lcmljQXJyYXk+IG1fdmFsdWVzOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoTmVnYXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuaAppbmRleCA4
OGNjZDlhOTIwMmYwOGNiZjZlNWRkZjhiNzVlODg0NWI5ODExZTAwLi5mMDUzM2MzYjgxYWY2NDk0
ZDIyYTcwYTY2MGU0M2Q0ODc0NzE3YTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9udW1lcmljL0NTU01hdGhOZWdhdGUuaApAQCAtMzgsMTAgKzM4LDEwIEBAIGNsYXNz
IENTU01hdGhOZWdhdGUgOiBwdWJsaWMgQ1NTTWF0aFZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKENTU01hdGhOZWdhdGUpOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q1NTTWF0
aE5lZ2F0ZT4gY3JlYXRlKENTU051bWJlcmlzaCYmKTsKLSAgICBjb25zdCBDU1NOdW1lcmljVmFs
dWUmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS5nZXQoKTsgfQorICAgIFJlZjxDU1NO
dW1lcmljVmFsdWU+IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS5jb3B5UmVmKCk7IH0K
ICAgICAKIHByaXZhdGU6Ci0gICAgQ1NTTWF0aE5lZ2F0ZShDU1NOdW1iZXJpc2gmJik7CisgICAg
ZXhwbGljaXQgQ1NTTWF0aE5lZ2F0ZShDU1NOdW1iZXJpc2gmJik7CiAgICAgUmVmPENTU051bWVy
aWNWYWx1ZT4gbV92YWx1ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vbnVtZXJpYy9DU1NNYXRoUHJvZHVjdC5jcHAKaW5kZXggYjFmMDA3MTY3N2JlYTJjZmYy
ZDA1NjBmYWRkMDRkNWY2ODA0NjMyZC4uYjFiNmEzOGNhMmFiMWU5NDJmZjQxYjJjMjA3ZjE1YTA4
ZDEzMmJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoUHJvZHVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJp
Yy9DU1NNYXRoUHJvZHVjdC5jcHAKQEAgLTQxLDEyICs0MSwyNCBAQCBSZWY8Q1NTTWF0aFByb2R1
Y3Q+IENTU01hdGhQcm9kdWN0OjpjcmVhdGUoVmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJp
c2hlcykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoUHJvZHVjdChXVEZNb3ZlKG51
bWJlcmlzaGVzKSkpOwogfQogCitSZWY8Q1NTTWF0aFByb2R1Y3Q+IENTU01hdGhQcm9kdWN0Ojpj
cmVhdGUoUmVmPENTU051bWVyaWNBcnJheT4mJiBhcnJheSkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDU1NNYXRoUHJvZHVjdChXVEZNb3ZlKGFycmF5KSkpOworfQorCiBDU1NNYXRoUHJv
ZHVjdDo6Q1NTTWF0aFByb2R1Y3QoVmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hlcykK
ICAgICA6IENTU01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6OlByb2R1Y3QpCiAgICAgLCBtX3Zh
bHVlcyhDU1NOdW1lcmljQXJyYXk6OmNyZWF0ZShXVEZNb3ZlKG51bWJlcmlzaGVzKSkpCiB7CiB9
CiAKK0NTU01hdGhQcm9kdWN0OjpDU1NNYXRoUHJvZHVjdChSZWY8Q1NTTnVtZXJpY0FycmF5PiYm
IGFycmF5KQorICAgIDogQ1NTTWF0aFZhbHVlKENTU01hdGhPcGVyYXRvcjo6UHJvZHVjdCkKKyAg
ICAsIG1fdmFsdWVzKFdURk1vdmUoYXJyYXkpKQoreworfQorCisKIGNvbnN0IENTU051bWVyaWNB
cnJheSYgQ1NTTWF0aFByb2R1Y3Q6OnZhbHVlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmFs
dWVzLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJp
Yy9DU1NNYXRoUHJvZHVjdC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9D
U1NNYXRoUHJvZHVjdC5oCmluZGV4IGUzMzk5ZDQ2MzYxN2I1NzIzZjEyYWU0MDAwNmYxZTA2NzJk
N2ZjYTEuLjNhOWY3ZDBhNmQ2YzhmNmQwNmU1YWIwMjkwNzg3MjkxMTIwYzExZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFByb2R1Y3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhQcm9kdWN0LmgK
QEAgLTM4LDEyICszOCwxNCBAQCBjbGFzcyBDU1NNYXRoUHJvZHVjdCA6IHB1YmxpYyBDU1NNYXRo
VmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTWF0aFByb2R1Y3QpOwogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8Q1NTTWF0aFByb2R1Y3Q+IGNyZWF0ZShWZWN0b3I8Q1NTTnVt
YmVyaXNoPiYmKTsKKyAgICBzdGF0aWMgUmVmPENTU01hdGhQcm9kdWN0PiBjcmVhdGUoUmVmPENT
U051bWVyaWNBcnJheT4mJik7CiAgICAgY29uc3QgQ1NTTnVtZXJpY0FycmF5JiB2YWx1ZXMoKSBj
b25zdDsKICAgICAKICAgICBDU1NNYXRoT3BlcmF0b3IgZ2V0T3BlcmF0b3IoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBDU1NNYXRoT3BlcmF0b3I6OlByb2R1Y3Q7IH0KIAogcHJpdmF0ZToKLSAgICBD
U1NNYXRoUHJvZHVjdChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBleHBsaWNpdCBDU1NN
YXRoUHJvZHVjdChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKKyAgICBleHBsaWNpdCBDU1NNYXRo
UHJvZHVjdChSZWY8Q1NTTnVtZXJpY0FycmF5PiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY0FycmF5
PiBtX3ZhbHVlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aFN1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1l
cmljL0NTU01hdGhTdW0uY3BwCmluZGV4IGEwZDdlYWQzZWJlMjdiMjJkMmNhZDczNDVmNDA0NWU1
MTU3MGMyYmUuLmFkZGUwNzY5ZDE2ZGZkY2YzMWFlZjEzZGVlOWFmZGM5YjNkNWU2MzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vbnVtZXJpYy9DU1NNYXRoU3VtLmNwcApA
QCAtNDEsMTIgKzQxLDIzIEBAIFJlZjxDU1NNYXRoU3VtPiBDU1NNYXRoU3VtOjpjcmVhdGUoVmVj
dG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hlcykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDU1NNYXRoU3VtKFdURk1vdmUobnVtYmVyaXNoZXMpKSk7CiB9CiAKK1JlZjxDU1NNYXRoU3Vt
PiBDU1NNYXRoU3VtOjpjcmVhdGUoUmVmPENTU051bWVyaWNBcnJheT4mJiBhcnJheSkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NNYXRoU3VtKFdURk1vdmUoYXJyYXkpKSk7Cit9CisK
IENTU01hdGhTdW06OkNTU01hdGhTdW0oVmVjdG9yPENTU051bWJlcmlzaD4mJiBudW1iZXJpc2hl
cykKICAgICA6IENTU01hdGhWYWx1ZShDU1NNYXRoT3BlcmF0b3I6OlN1bSkKICAgICAsIG1fdmFs
dWVzKENTU051bWVyaWNBcnJheTo6Y3JlYXRlKFdURk1vdmUobnVtYmVyaXNoZXMpKSkKIHsKIH0K
IAorQ1NTTWF0aFN1bTo6Q1NTTWF0aFN1bShSZWY8Q1NTTnVtZXJpY0FycmF5PiYmIGFycmF5KQor
ICAgIDogQ1NTTWF0aFZhbHVlKENTU01hdGhPcGVyYXRvcjo6U3VtKQorICAgICwgbV92YWx1ZXMo
V1RGTW92ZShhcnJheSkpCit7Cit9CisKIGNvbnN0IENTU051bWVyaWNBcnJheSYgQ1NTTWF0aFN1
bTo6dmFsdWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV92YWx1ZXMuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU01hdGhTdW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCmluZGV4IDU0MzE4
NzhiZWFmMzg0NWFkMjA4MmIxMGI0NmJhZGNmZDBkNmUyNmUuLjI1NmQwYzM3YWFjNjc1MjgzZThm
ZjBlYzNkYzUwZDIyZTFlYzExYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBl
ZG9tL251bWVyaWMvQ1NTTWF0aFN1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTWF0aFN1bS5oCkBAIC0zOSwxMCArMzksMTIgQEAgY2xhc3MgQ1NTTWF0aFN1
bSA6IHB1YmxpYyBDU1NNYXRoVmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NT
TWF0aFN1bSk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDU1NNYXRoU3VtPiBjcmVhdGUoVmVj
dG9yPENTU051bWJlcmlzaD4mJik7CisgICAgc3RhdGljIFJlZjxDU1NNYXRoU3VtPiBjcmVhdGUo
UmVmPENTU051bWVyaWNBcnJheT4mJik7CiAgICAgY29uc3QgQ1NTTnVtZXJpY0FycmF5JiB2YWx1
ZXMoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBDU1NNYXRoU3VtKFZlY3RvcjxDU1NOdW1iZXJp
c2g+JiYpOworICAgIGV4cGxpY2l0IENTU01hdGhTdW0oVmVjdG9yPENTU051bWJlcmlzaD4mJik7
CisgICAgZXhwbGljaXQgQ1NTTWF0aFN1bShSZWY8Q1NTTnVtZXJpY0FycmF5PiYmKTsKICAgICBS
ZWY8Q1NTTnVtZXJpY0FycmF5PiBtX3ZhbHVlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9udW1lcmljL0NTU051bWVyaWNBcnJheS5oCmluZGV4IDgzYjA4NjMy
MWFkNWQ5ZjNmODI0ZDk1OGJjMTI2NjE3NmI5NmVhNzguLjIyZWZiNzk2Y2FjMGU4ZjUyOTc0YzQz
MjU2ZmM0MzhkYTZkNmEwY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L251bWVyaWMvQ1NTTnVtZXJpY0FycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVk
b20vbnVtZXJpYy9DU1NOdW1lcmljQXJyYXkuaApAQCAtNDQsMTAgKzQ0LDEwIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPENTU051bWVyaWNBcnJheT4gY3JlYXRlKFZlY3RvcjxSZWY8Q1NTTnVt
ZXJpY1ZhbHVlPj4mJik7CiAgICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJy
YXkuc2l6ZSgpOyB9OwogICAgIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBpdGVt
KHNpemVfdCBpbmRleCk7Ci0KKyAgICBjb25zdCBWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+
JiBhcnJheSgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXk7IH0KIHByaXZhdGU6CiAgICAgVmVjdG9y
PFJlZjxDU1NOdW1lcmljVmFsdWU+PiBtX2FycmF5OwotICAgIENTU051bWVyaWNBcnJheShWZWN0
b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOworICAgIGV4cGxpY2l0IENTU051bWVyaWNBcnJh
eShWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1ZT4+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjZkMjQ2YjdiM2E0MjI3
NDliNTJlMjIzZjZlZjAwNWRmNGZmOGE5Mi4uOWFmYzE1ZjQ3OTJiZDMxMmFlYTg0Njc5ODc0ZmVi
MjM1NTIxYzI4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMjEtMTEtMjMgIEpvaG5zb24gWmhvdSAgPGpvaG5zb24uemhvdS5zaEBpY2xvdWQuY29t
PgorCisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBmb3IgQ1NTTnVtZXJpY1ZhbHVlIG1hdGgg
ZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzA3OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xh
c3Nlcy9udW1lcmljLW9iamVjdHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0Ogor
CiAyMDIxLTEyLTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2ZXJ0IHIyODQ4MTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS9zdHlsZXZhbHVlLXN1
YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMudGVudGF0aXZlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10
eXBlZC1vbS9zdHlsZXZhbHVlLXN1YmNsYXNzZXMvbnVtZXJpYy1vYmplY3RzL2FyaXRobWV0aWMu
dGVudGF0aXZlLWV4cGVjdGVkLnR4dAppbmRleCAxZmZkMGUwYzYwMTRjNmFmNDBjYWEzZmJmZWJj
ZjBhZWE5OWMxNzYzLi41MzZlYTUyZTUzYjBjY2I4Y2UyNzgwNjcwMzA2YTM0N2FmMTczOTNlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHlwZWQtb20vc3R5bGV2YWx1ZS1zdWJjbGFzc2VzL251bWVyaWMtb2JqZWN0cy9hcml0
aG1ldGljLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3N0eWxldmFsdWUtc3ViY2xh
c3Nlcy9udW1lcmljLW9iamVjdHMvYXJpdGhtZXRpYy50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBA
IC0xLDY1ICsxLDY1IEBACiAKIFBBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUuYWRkIHdpdGggbm8g
YXJndW1lbnRzIHJldHVybnMgaXRzZWxmCiBQQVNTIENhbGxpbmcgQ1NTTWF0aFZhbHVlLmFkZCB3
aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgotRkFJTCBDYWxsaW5nIENTU051bWVyaWNW
YWx1ZS5hZGQgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5
cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU01hdGhTdW0iIGJ1dCBnb3QgIkNTU1VuaXRW
YWx1ZSIKK1BBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuYWRkIHdpdGggYSBzaW5nbGUgQ1NT
TnVtZXJpY1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlCiBQQVNTIENhbGxpbmcgQ1NTTWF0aFZh
bHVlLmFkZCB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlw
ZQotRkFJTCBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5hZGQgd2l0aCBtb3JlIHRoYW4gb25lIG51
bWJlciBDU1NOdW1lcmljVmFsdWVzIHJldHVybnMgY29ycmVjdCB0eXBlIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJDU1NNYXRoU3VtIiBidXQgZ290ICJDU1NVbml0VmFsdWUiCitQQVNTIENhbGxp
bmcgQ1NTTnVtZXJpY1ZhbHVlLmFkZCB3aXRoIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU051bWVy
aWNWYWx1ZXMgcmV0dXJucyBjb3JyZWN0IHR5cGUKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFs
dWUuYWRkIGNhbiB0YWtlIG51bWJlcmlzaCB2YWx1ZXMKLUZBSUwgQ2FsbGluZyBDU1NNYXRoU3Vt
LmFkZCB3aXRoIG51bWJlciBDU1NVbml0VmFsdWVzIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFs
dWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU1VuaXRWYWx1ZSIgYnV0IGdvdCAiQ1NTTWF0
aFN1bSIKK1BBU1MgQ2FsbGluZyBDU1NNYXRoU3VtLmFkZCB3aXRoIG51bWJlciBDU1NVbml0VmFs
dWVzIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmlj
VmFsdWUuYWRkIHdpdGggaW5jb21wYXRpYmxlIHR5cGVzIHRocm93cyBUeXBlRXJyb3IKIFBBU1Mg
Q2FsbGluZyBDU1NVbml0VmFsdWUuc3ViIHdpdGggbm8gYXJndW1lbnRzIHJldHVybnMgaXRzZWxm
CiBQQVNTIENhbGxpbmcgQ1NTTWF0aFZhbHVlLnN1YiB3aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5z
IGl0c2VsZgotRkFJTCBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5zdWIgd2l0aCBhIHNpbmdsZSBD
U1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIkNTU01hdGhTdW0iIGJ1dCBnb3QgIkNTU1VuaXRWYWx1ZSIKK1BBU1MgQ2FsbGluZyBDU1NO
dW1lcmljVmFsdWUuc3ViIHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29y
cmVjdCB0eXBlCiBQQVNTIENhbGxpbmcgQ1NTTWF0aFZhbHVlLnN1YiB3aXRoIGEgc2luZ2xlIENT
U051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZQotRkFJTCBDYWxsaW5nIENTU051bWVy
aWNWYWx1ZS5zdWIgd2l0aCBtb3JlIHRoYW4gb25lIG51bWJlciBDU1NOdW1lcmljVmFsdWVzIHJl
dHVybnMgY29ycmVjdCB0eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoU3VtIiBi
dXQgZ290ICJDU1NVbml0VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLnN1YiB3
aXRoIG1vcmUgdGhhbiBvbmUgbnVtYmVyIENTU051bWVyaWNWYWx1ZXMgcmV0dXJucyBjb3JyZWN0
IHR5cGUKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuc3ViIGNhbiB0YWtlIG51bWJlcmlz
aCB2YWx1ZXMKLUZBSUwgQ2FsbGluZyBDU1NNYXRoU3VtLnN1YiB3aXRoIG51bWJlciBDU1NVbml0
VmFsdWVzIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIkNTU1VuaXRWYWx1ZSIgYnV0IGdvdCAiQ1NTTWF0aFN1bSIKK1BBU1MgQ2FsbGluZyBDU1NN
YXRoU3VtLnN1YiB3aXRoIG51bWJlciBDU1NVbml0VmFsdWVzIHNpbXBsaWZpZXMgdG8gYSBDU1NV
bml0VmFsdWUKIFBBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuc3ViIHdpdGggaW5jb21wYXRp
YmxlIHR5cGVzIHRocm93cyBUeXBlRXJyb3IKIFBBU1MgQ2FsbGluZyBDU1NVbml0VmFsdWUubXVs
IHdpdGggbm8gYXJndW1lbnRzIHJldHVybnMgaXRzZWxmCiBQQVNTIENhbGxpbmcgQ1NTTWF0aFZh
bHVlLm11bCB3aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgotRkFJTCBDYWxsaW5nIENT
U051bWVyaWNWYWx1ZS5tdWwgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBj
b3JyZWN0IHR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU01hdGhQcm9kdWN0IiBidXQg
Z290ICJDU1NVbml0VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm11bCB3aXRo
IGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxs
aW5nIENTU01hdGhWYWx1ZS5tdWwgd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJu
cyBjb3JyZWN0IHR5cGUKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubXVsIHdpdGggbW9y
ZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFByb2R1Y3QiIGJ1dCBnb3QgIkNTU1VuaXRW
YWx1ZSIKK1BBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubXVsIHdpdGggbW9yZSB0aGFuIG9u
ZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxs
aW5nIENTU051bWVyaWNWYWx1ZS5tdWwgY2FuIHRha2UgbnVtYmVyaXNoIHZhbHVlcwotRkFJTCBD
YWxsaW5nIENTU01hdGhQcm9kdWN0Lm11bCB3aXRoIG51bWJlciBDU1NVbml0VmFsdWVzIHNpbXBs
aWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkNTU1VuaXRW
YWx1ZSIgYnV0IGdvdCAiQ1NTTWF0aFByb2R1Y3QiCitQQVNTIENhbGxpbmcgQ1NTTWF0aFByb2R1
Y3QubXVsIHdpdGggbnVtYmVyIENTU1VuaXRWYWx1ZXMgc2ltcGxpZmllcyB0byBhIENTU1VuaXRW
YWx1ZQogUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5tdWwgd2l0aCBpbmNvbXBhdGlibGUg
dHlwZXMgdGhyb3dzIFR5cGVFcnJvcgogUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5kaXYgd2l0
aCBubyBhcmd1bWVudHMgcmV0dXJucyBpdHNlbGYKIFBBU1MgQ2FsbGluZyBDU1NNYXRoVmFsdWUu
ZGl2IHdpdGggbm8gYXJndW1lbnRzIHJldHVybnMgaXRzZWxmCi1GQUlMIENhbGxpbmcgQ1NTTnVt
ZXJpY1ZhbHVlLmRpdiB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJl
Y3QgdHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aFByb2R1Y3QiIGJ1dCBnb3Qg
IkNTU1VuaXRWYWx1ZSIKK1BBU1MgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuZGl2IHdpdGggYSBz
aW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlCiBQQVNTIENhbGxpbmcg
Q1NTTWF0aFZhbHVlLmRpdiB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNv
cnJlY3QgdHlwZQotRkFJTCBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5kaXYgd2l0aCBtb3JlIHRo
YW4gb25lIG51bWJlciBDU1NOdW1lcmljVmFsdWVzIHJldHVybnMgY29ycmVjdCB0eXBlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoUHJvZHVjdCIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVl
IgorUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5kaXYgd2l0aCBtb3JlIHRoYW4gb25lIG51
bWJlciBDU1NOdW1lcmljVmFsdWVzIHJldHVybnMgY29ycmVjdCB0eXBlCiBQQVNTIENhbGxpbmcg
Q1NTTnVtZXJpY1ZhbHVlLmRpdiBjYW4gdGFrZSBudW1iZXJpc2ggdmFsdWVzCi1GQUlMIENhbGxp
bmcgQ1NTTWF0aFByb2R1Y3QuZGl2IHdpdGggbnVtYmVyIENTU1VuaXRWYWx1ZXMgc2ltcGxpZmll
cyB0byBhIENTU1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTVW5pdFZhbHVl
IiBidXQgZ290ICJDU1NNYXRoUHJvZHVjdCIKK1BBU1MgQ2FsbGluZyBDU1NNYXRoUHJvZHVjdC5k
aXYgd2l0aCBudW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVl
CiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLmRpdiB3aXRoIGluY29tcGF0aWJsZSB0eXBl
cyB0aHJvd3MgVHlwZUVycm9yCiBQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm1pbiB3aXRoIG5v
IGFyZ3VtZW50cyByZXR1cm5zIGl0c2VsZgogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1ZS5taW4g
d2l0aCBubyBhcmd1bWVudHMgcmV0dXJucyBpdHNlbGYKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmlj
VmFsdWUubWluIHdpdGggYSBzaW5nbGUgQ1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29ycmVjdCB0
eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoTWluIiBidXQgZ290ICJDU1NVbml0
VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1pbiB3aXRoIGEgc2luZ2xlIENT
U051bWVyaWNWYWx1ZSByZXR1cm5zIGNvcnJlY3QgdHlwZQogUEFTUyBDYWxsaW5nIENTU01hdGhW
YWx1ZS5taW4gd2l0aCBhIHNpbmdsZSBDU1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5
cGUKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubWluIHdpdGggbW9yZSB0aGFuIG9uZSBu
dW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyByZXR1cm5zIGNvcnJlY3QgdHlwZSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiQ1NTTWF0aE1pbiIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgorUEFTUyBDYWxs
aW5nIENTU051bWVyaWNWYWx1ZS5taW4gd2l0aCBtb3JlIHRoYW4gb25lIG51bWJlciBDU1NOdW1l
cmljVmFsdWVzIHJldHVybnMgY29ycmVjdCB0eXBlCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1Zh
bHVlLm1pbiBjYW4gdGFrZSBudW1iZXJpc2ggdmFsdWVzCi1GQUlMIENhbGxpbmcgQ1NTTWF0aE1p
bi5taW4gd2l0aCBudW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZh
bHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NVbml0VmFsdWUiIGJ1dCBnb3QgIkNTU01h
dGhNaW4iCitQQVNTIENhbGxpbmcgQ1NTTWF0aE1pbi5taW4gd2l0aCBudW1iZXIgQ1NTVW5pdFZh
bHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJp
Y1ZhbHVlLm1pbiB3aXRoIGluY29tcGF0aWJsZSB0eXBlcyB0aHJvd3MgVHlwZUVycm9yCiBQQVNT
IENhbGxpbmcgQ1NTVW5pdFZhbHVlLm1heCB3aXRoIG5vIGFyZ3VtZW50cyByZXR1cm5zIGl0c2Vs
ZgogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1ZS5tYXggd2l0aCBubyBhcmd1bWVudHMgcmV0dXJu
cyBpdHNlbGYKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUubWF4IHdpdGggYSBzaW5nbGUg
Q1NTTnVtZXJpY1ZhbHVlIHJldHVybnMgY29ycmVjdCB0eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJDU1NNYXRoTWF4IiBidXQgZ290ICJDU1NVbml0VmFsdWUiCitQQVNTIENhbGxpbmcgQ1NT
TnVtZXJpY1ZhbHVlLm1heCB3aXRoIGEgc2luZ2xlIENTU051bWVyaWNWYWx1ZSByZXR1cm5zIGNv
cnJlY3QgdHlwZQogUEFTUyBDYWxsaW5nIENTU01hdGhWYWx1ZS5tYXggd2l0aCBhIHNpbmdsZSBD
U1NOdW1lcmljVmFsdWUgcmV0dXJucyBjb3JyZWN0IHR5cGUKLUZBSUwgQ2FsbGluZyBDU1NOdW1l
cmljVmFsdWUubWF4IHdpdGggbW9yZSB0aGFuIG9uZSBudW1iZXIgQ1NTTnVtZXJpY1ZhbHVlcyBy
ZXR1cm5zIGNvcnJlY3QgdHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0aE1heCIg
YnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgorUEFTUyBDYWxsaW5nIENTU051bWVyaWNWYWx1ZS5tYXgg
d2l0aCBtb3JlIHRoYW4gb25lIG51bWJlciBDU1NOdW1lcmljVmFsdWVzIHJldHVybnMgY29ycmVj
dCB0eXBlCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1heCBjYW4gdGFrZSBudW1iZXJp
c2ggdmFsdWVzCi1GQUlMIENhbGxpbmcgQ1NTTWF0aE1heC5tYXggd2l0aCBudW1iZXIgQ1NTVW5p
dFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJDU1NVbml0VmFsdWUiIGJ1dCBnb3QgIkNTU01hdGhNYXgiCitQQVNTIENhbGxpbmcgQ1NT
TWF0aE1heC5tYXggd2l0aCBudW1iZXIgQ1NTVW5pdFZhbHVlcyBzaW1wbGlmaWVzIHRvIGEgQ1NT
VW5pdFZhbHVlCiBQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVlLm1heCB3aXRoIGluY29tcGF0
aWJsZSB0eXBlcyB0aHJvd3MgVHlwZUVycm9yCi1GQUlMIENhbGxpbmcgQ1NTVW5pdFZhbHVlLmFk
ZCB3aXRoIENTU1VuaXRWYWx1ZXMgd2l0aCBzYW1lIHVuaXQgc2ltcGxpZmllcyB0byBhIENTU1Vu
aXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAxNyBidXQgZ290IDEwCi1GQUlMIENhbGxp
bmcgQ1NTVW5pdFZhbHVlLnN1YiB3aXRoIENTU1VuaXRWYWx1ZXMgd2l0aCBzYW1lIHVuaXQgc2lt
cGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAzIGJ1dCBn
b3QgMTAKLUZBSUwgQ2FsbGluZyBDU1NVbml0VmFsdWUubXVsIHdpdGggYWxsIG51bWJlcnMgc2lt
cGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAxMDAgYnV0
IGdvdCAxMAotRkFJTCBDYWxsaW5nIENTU1VuaXRWYWx1ZS5tdWwgd2l0aCBvbmx5IG9uZSBub24t
bnVtYmVyIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgMTAwIGJ1dCBnb3QgMTAKLUZBSUwgQ2FsbGluZyBDU1NVbml0VmFsdWUubXVsIHdpdGggbW9y
ZSB0aGFuIG9uZSBub24tbnVtYmVyIGRvZXMgbm90IHNpbXBsaWZ5IHRvIGEgQ1NTVW5pdFZhbHVl
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoUHJvZHVjdCIgYnV0IGdvdCAiQ1NTVW5p
dFZhbHVlIgotRkFJTCBDYWxsaW5nIENTU1VuaXRWYWx1ZS5kaXYgd2l0aCBhbGwgbnVtYmVycyBz
aW1wbGlmaWVzIHRvIGEgQ1NTVW5pdFZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDEgYnV0
IGdvdCAxMAotRkFJTCBDYWxsaW5nIENTU1VuaXRWYWx1ZS5kaXYgb24gYSBub24tbnVtYmVyIHZh
bHVlIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
MSBidXQgZ290IDEwCi1GQUlMIENhbGxpbmcgQ1NTVW5pdFZhbHVlLmRpdiB3aXRoIGEgbm9uLW51
bWJlciB2YWx1ZSBpbiB0aGUgYXJndW1lbnRzIGRvZXMgbm90IHNpbXBsaWZ5IHRvIGEgQ1NTVW5p
dFZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJDU1NNYXRoUHJvZHVjdCIgYnV0IGdvdCAi
Q1NTVW5pdFZhbHVlIgotRkFJTCBDYWxsaW5nIENTU1VuaXRWYWx1ZS5taW4gd2l0aCBDU1NVbml0
VmFsdWVzIHdpdGggc2FtZSB1bml0IHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgMiBidXQgZ290IDEwCitQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVl
LmFkZCB3aXRoIENTU1VuaXRWYWx1ZXMgd2l0aCBzYW1lIHVuaXQgc2ltcGxpZmllcyB0byBhIENT
U1VuaXRWYWx1ZQorUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5zdWIgd2l0aCBDU1NVbml0VmFs
dWVzIHdpdGggc2FtZSB1bml0IHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUKK1BBU1MgQ2Fs
bGluZyBDU1NVbml0VmFsdWUubXVsIHdpdGggYWxsIG51bWJlcnMgc2ltcGxpZmllcyB0byBhIENT
U1VuaXRWYWx1ZQorUEFTUyBDYWxsaW5nIENTU1VuaXRWYWx1ZS5tdWwgd2l0aCBvbmx5IG9uZSBu
b24tbnVtYmVyIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUKK1BBU1MgQ2FsbGluZyBDU1NV
bml0VmFsdWUubXVsIHdpdGggbW9yZSB0aGFuIG9uZSBub24tbnVtYmVyIGRvZXMgbm90IHNpbXBs
aWZ5IHRvIGEgQ1NTVW5pdFZhbHVlCitQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLmRpdiB3aXRo
IGFsbCBudW1iZXJzIHNpbXBsaWZpZXMgdG8gYSBDU1NVbml0VmFsdWUKK1BBU1MgQ2FsbGluZyBD
U1NVbml0VmFsdWUuZGl2IG9uIGEgbm9uLW51bWJlciB2YWx1ZSBzaW1wbGlmaWVzIHRvIGEgQ1NT
VW5pdFZhbHVlCitQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLmRpdiB3aXRoIGEgbm9uLW51bWJl
ciB2YWx1ZSBpbiB0aGUgYXJndW1lbnRzIGRvZXMgbm90IHNpbXBsaWZ5IHRvIGEgQ1NTVW5pdFZh
bHVlCitQQVNTIENhbGxpbmcgQ1NTVW5pdFZhbHVlLm1pbiB3aXRoIENTU1VuaXRWYWx1ZXMgd2l0
aCBzYW1lIHVuaXQgc2ltcGxpZmllcyB0byBhIENTU1VuaXRWYWx1ZQogUEFTUyBDYWxsaW5nIENT
U1VuaXRWYWx1ZS5tYXggd2l0aCBDU1NVbml0VmFsdWVzIHdpdGggc2FtZSB1bml0IHNpbXBsaWZp
ZXMgdG8gYSBDU1NVbml0VmFsdWUKLUZBSUwgQ2FsbGluZyBDU1NOdW1lcmljVmFsdWUuc3ViIG5l
Z2F0ZXMgYWxsIGFyZ3VtZW50IHZhbHVlcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiQ1NTTWF0
aFN1bSIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgotRkFJTCBDYWxsaW5nIENTU051bWVyaWNWYWx1
ZS5kaXYgaW52ZXJ0cyBhbGwgYXJndW1lbnQgdmFsdWVzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJDU1NNYXRoUHJvZHVjdCIgYnV0IGdvdCAiQ1NTVW5pdFZhbHVlIgotRkFJTCBDYW4gbm90IGRp
dmlkZSB3aXRoIENTU1VuaXRWYWx1ZSB3aGljaCBoYXMgemVybyB2YWx1ZSBhbmQgbnVtYmVyIHR5
cGUgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IENTUy5udW1iZXIoMikuZGl2KENT
Uy5udW1iZXIoMCkpIiBkaWQgbm90IHRocm93CitQQVNTIENhbGxpbmcgQ1NTTnVtZXJpY1ZhbHVl
LnN1YiBuZWdhdGVzIGFsbCBhcmd1bWVudCB2YWx1ZXMKK1BBU1MgQ2FsbGluZyBDU1NOdW1lcmlj
VmFsdWUuZGl2IGludmVydHMgYWxsIGFyZ3VtZW50IHZhbHVlcworUEFTUyBDYW4gbm90IGRpdmlk
ZSB3aXRoIENTU1VuaXRWYWx1ZSB3aGljaCBoYXMgemVybyB2YWx1ZSBhbmQgbnVtYmVyIHR5cGUK
IEZBSUwgQ1NTTnVtZXJpY1ZhbHVlLmFkZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yIHdoZW4gdGhl
IHR5cGVzIGFyZSBkaWZmZXJlbnQuIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBD
U1MubnVtYmVyKDMpLmFkZChDU1MucHgoMTApICxDU1MubnVtYmVyKDApKSIgZGlkIG5vdCB0aHJv
dwogRkFJTCBDU1NOdW1lcmljVmFsdWUuc3ViIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiB0
aGUgdHlwZXMgYXJlIGRpZmZlcmVudC4gYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+
IENTUy5udW1iZXIoMykuc3ViKENTUy5weCgxMCkgLENTUy5udW1iZXIoMCkpIiBkaWQgbm90IHRo
cm93CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>