<?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>204457</bug_id>
          
          <creation_ts>2019-11-21 09:47:47 -0800</creation_ts>
          <short_desc>Math.max() can yield the wrong result for max(0, -0).</short_desc>
          <delta_ts>2020-07-18 18:32:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214526</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>203406</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>pmatos</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1592412</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-21 09:47:47 -0800</bug_when>
    <thetext>Spec says 0 is greater than -0.  See https://www.ecma-international.org/ecma-262/6.0/#sec-math.max.

POC:
function foo(x, y) {
    return Math.max(x, y);
}
for (var i = 0; i &lt; 30000; ++i) {
    x = 100/foo(0.0, -0.0);
    if (x &lt; 0)
        throw &quot;FAILED&quot;;
}

Expected: should run to completion silently.
Actual: throws &quot;FAILED&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592413</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-21 09:48:33 -0800</bug_when>
    <thetext>This issue was brought to my attention by Xan Lopex in https://bugs.webkit.org/show_bug.cgi?id=203406#c8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592424</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-21 10:21:49 -0800</bug_when>
    <thetext>I&apos;ve reproduced the issue on ARM64 as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594367</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-30 16:44:26 -0800</bug_when>
    <thetext>If you look at how we do this in Wasm, I think we can do the same here for JS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608578</commentid>
    <comment_count>4</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-01-19 08:18:32 -0800</bug_when>
    <thetext>FWIW, a couple comments about this:

I believe the DFG AbstractInterpreter has the same bug. Something simple like this should work:

diff --git a/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h b/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
index e5284ad85d1..da8106c2a17 100644
--- a/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
+++ b/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
@@ -1108,7 +1108,8 @@ bool AbstractInterpreter&lt;AbstractStateType&gt;::executeEffects(unsigned clobberLimi
             if (left &amp;&amp; right &amp;&amp; left.isNumber() &amp;&amp; right.isNumber()) {
                 double a = left.asNumber();
                 double b = right.asNumber();
-                setConstant(node, jsDoubleNumber(a &lt; b ? a : (b &lt;= a ? b : a + b)));
+                double result = a &lt; b || (!a &amp;&amp; !b &amp;&amp; std::signbit(a)) ? a : (b &lt;= a ? b : a + b);
+                setConstant(node, jsDoubleNumber(result));
                 break;
             }
             setNonCellTypeForNode(node,
@@ -1137,7 +1138,8 @@ bool AbstractInterpreter&lt;AbstractStateType&gt;::executeEffects(unsigned clobberLimi
             if (left &amp;&amp; right &amp;&amp; left.isNumber() &amp;&amp; right.isNumber()) {
                 double a = left.asNumber();
                 double b = right.asNumber();
-                setConstant(node, jsDoubleNumber(a &gt; b ? a : (b &gt;= a ? b : a + b)));
+                double result = a &gt; b || (!a &amp;&amp; !b &amp;&amp; !std::signbit(a)) ? a : (b &gt;= a ? b : a + b);
+                setConstant(node, jsDoubleNumber(result));
                 break;
             }
             setNonCellTypeForNode(node,

Also, looking at the FTL code I think it also has the same bug again (see compileArithMinOrMax in FTLLowerDFGToB3.cpp).

Should we open one bug for each? Also since the code in the DFG AI only runs in a couple of passes (CFA and constant folding) I guess it should have its own test, if you have any preferred way of testing that feel free to comment. I understood you wanted to fix the DFG JIT but if not I&apos;m happy to work on all these in whatever way you want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616676</commentid>
    <comment_count>5</comment_count>
      <attachid>390207</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-02-09 09:26:02 -0800</bug_when>
    <thetext>Created attachment 390207
Consider negative zero in DFG JIT Math.{max,min}

This just fixes the bug in DFG JIT, as mentioned earlier I believe there same bug is present at least in the DFG AI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616704</commentid>
    <comment_count>6</comment_count>
      <attachid>390207</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-02-09 14:23:09 -0800</bug_when>
    <thetext>Comment on attachment 390207
Consider negative zero in DFG JIT Math.{max,min}

This test is already showing the bug in FTL I mentioned earlier (with the eager run), and a fail in the DFG with --validateGraph. I&apos;ll have a look at both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619619</commentid>
    <comment_count>7</comment_count>
      <attachid>390911</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-02-17 03:59:41 -0800</bug_when>
    <thetext>Created attachment 390911
Fix Math.{max,min} in DFG and FTL

Consider the negative zero special case in Math.{max,min} in DFG and FTL, plus a new test for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620105</commentid>
    <comment_count>8</comment_count>
      <attachid>391038</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-02-18 03:10:59 -0800</bug_when>
    <thetext>Created attachment 391038
Fix Math.{max,min} for negative zero in DFG and FTL

Fix some style nits. My local script still gives some warnings but AFAICT it&apos;s in existing code and they don&apos;t make much sense to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624257</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-29 01:29:31 -0800</bug_when>
    <thetext>Will look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638045</commentid>
    <comment_count>10</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-04-06 00:11:47 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #9)
&gt; Will look.

Ping about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638051</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-06 01:13:51 -0700</bug_when>
    <thetext>Looks like ARMv7 is failing. Can you fix it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638052</commentid>
    <comment_count>12</comment_count>
      <attachid>391038</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-06 01:20:21 -0700</bug_when>
    <thetext>Comment on attachment 391038
Fix Math.{max,min} for negative zero in DFG and FTL

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:5865
&gt; +            m_jit.andDouble(op1FPR, op2FPR, resultFPR);

andDouble/orDouble is defined only in x86 and ARM64. You need to define it for MIPS and ARMv7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638056</commentid>
    <comment_count>13</comment_count>
      <attachid>391038</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-04-06 02:05:35 -0700</bug_when>
    <thetext>Comment on attachment 391038
Fix Math.{max,min} for negative zero in DFG and FTL

Thanks! Will have a look at the ARMv7/MIPS issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660714</commentid>
    <comment_count>14</comment_count>
      <attachid>401446</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-06-09 09:19:40 -0700</bug_when>
    <thetext>Created attachment 401446
Fix Math.{max,min} to consider that -0.0 &lt; 0,0

With andDouble/orDouble implementations for MIPS and ARMv7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663439</commentid>
    <comment_count>15</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-06-17 04:48:11 -0700</bug_when>
    <thetext>I have taken a look at the patch and it looks good to me.
Patch applies to ToT, builds for ARMv7 and MIPS and tests pass.

However, style is currently failing. You probably should address this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663440</commentid>
    <comment_count>16</comment_count>
      <attachid>401446</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-06-17 04:48:29 -0700</bug_when>
    <thetext>Comment on attachment 401446
Fix Math.{max,min} to consider that -0.0 &lt; 0,0

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

Informal review. LGTM overall. I left some comments regarding documentation.

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        is not true for normal double arithmetic).

Do you mind placing a link to spec text about it? It is mentioned here https://tc39.es/ecma262/#sec-numeric-types-number-lessThan

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h:1161
&gt; +    }

I don&apos;t remember if MacroAssembler tests are running on ARMv7 and MIPS, but it would be nice to add those in this Patch before we forget it.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:3079
&gt; +    void andDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest)

This seems very straight forward into ARMv7, but more complex into MIPS. I think it would be nice have a comment about the following code and why it is necessary (IIRC, the reason is because MIPS doesn&apos;t have a double &quot;and&quot; or a double &quot;or&quot; instruction, right?)

&gt; Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h:3102
&gt; +    {

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665697</commentid>
    <comment_count>17</comment_count>
      <attachid>402636</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-06-24 05:01:02 -0700</bug_when>
    <thetext>Created attachment 402636
Math.{max,min} fixes, v2

Added requested comments and links to the spec, testmasm tests. Gave another shot at the style issue and still seems to me the code (both new and existing) is following the guide, so we should probably either tweak the script or change the whole file accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669360</commentid>
    <comment_count>18</comment_count>
      <attachid>403678</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-07-07 03:19:23 -0700</bug_when>
    <thetext>Created attachment 403678
Math.{max,min} fixes, v3

Rebased against master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671540</commentid>
    <comment_count>19</comment_count>
      <attachid>403678</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-07-14 15:08:43 -0700</bug_when>
    <thetext>Comment on attachment 403678
Math.{max,min} fixes, v3

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

Some comments for now while I think thru the DFG and FTL changes.

&gt; JSTests/stress/math-max-min-negative-zero.js:12
&gt; +    x = 100/testMax(0.0, -0.0);
&gt; +    if (x &lt; 0)
&gt; +        throw &quot;FAILED&quot;;

Please also add a case for `x = 100/testMax(-0.0, 0.0);`

&gt; JSTests/stress/math-max-min-negative-zero.js:15
&gt; +    x = 100/testMin(0.0, -0.0);
&gt; +    if (x &gt; 0)
&gt; +        throw &quot;FAILED&quot;;

Please also add a case for `x = 100/testMin(-0.0, 0.0);`

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        The implementations for Math.{max,min} in both DFG and FTL are not
&gt; +        considering the fact that according to the spec -0.0 &lt; 0.0 (which
&gt; +        is not true for normal double arithmetic).

I don&apos;t think this is what the spec says.  According to https://tc39.es/ecma262/#sec-numeric-types-number-lessThan,

for Number::lessThan ( x, y ),

4. If x is +0 and y is -0, return false.
5. If x is -0 and y is +0, return false.

This means +0 is not less than -0, and -0 is not less than +0.

I think the relevant spec is https://tc39.es/ecma262/#sec-math.max and https://tc39.es/ecma262/#sec-math.min, where it states &quot;The comparison of values to determine the largest value is done using the Abstract Relational Comparison algorithm except that +0 is considered to be larger than -0.&quot;

Oh, maybe you&apos;re quoting https://tc39.es/ecma262/#sec-numeric-types-number-lessThan to show that it considers -0 and +0 equal.  Please add the urls to /#sec-math.max and #sec-math.min as well.  I think those 2 are the mode relevant specs.

&gt; Source/JavaScriptCore/assembler/testmasm.cpp:2319
&gt; +    arg1 = 0.0;
&gt; +    arg2 = 0.0;
&gt; +    CHECK_EQ(invoke&lt;double&gt;(andDouble), 0.0);
&gt; +
&gt; +    arg1 = 0.0;
&gt; +    arg2 = -0.0;
&gt; +    CHECK_EQ(invoke&lt;double&gt;(andDouble), 0.0);
&gt; +
&gt; +    arg1 = -0.0;
&gt; +    arg2 = -0.0;
&gt; +    CHECK_EQ(invoke&lt;double&gt;(andDouble), -0.0);

Instead of just doing this, please iterate over doubleOperands() for arg1 and arg2 values.  The expected result should be bitwise_cast&lt;double&gt;(bitwise_cast&lt;uint64_t&gt;(arg1) &amp; bitwise_cast&lt;uint64_t&gt;(arg2)).

&gt; Source/JavaScriptCore/assembler/testmasm.cpp:2342
&gt; +    arg1 = 0.0;
&gt; +    arg2 = -0.0;
&gt; +    CHECK_EQ(invoke&lt;double&gt;(orDouble), -0.0);
&gt; +
&gt; +    arg1 = -0.0;
&gt; +    arg2 = -0.0;
&gt; +    CHECK_EQ(invoke&lt;double&gt;(orDouble), -0.0);
&gt; +
&gt; +    arg1 = 0.0;
&gt; +    arg2 = 0.0;
&gt; +    CHECK_EQ(invoke&lt;double&gt;(orDouble), 0.0);

Ditto: please iterate over doubleOperands() for arg1 and arg2 values.  The expected result should be bitwise_cast&lt;double&gt;(bitwise_cast&lt;uint64_t&gt;(arg1) | bitwise_cast&lt;uint64_t&gt;(arg2)).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671548</commentid>
    <comment_count>20</comment_count>
      <attachid>403678</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-07-14 15:33:50 -0700</bug_when>
    <thetext>Comment on attachment 403678
Math.{max,min} fixes, v3

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

r- for now because I think this patch can use a bit more work.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6188
&gt; +        MacroAssembler::Jump opEqual = m_jit.branchDouble(MacroAssembler::DoubleEqualAndOrdered, op1FPR, op2FPR);
&gt; +
&gt;          MacroAssembler::Jump op1Less = m_jit.branchDouble(node-&gt;op() == ArithMin ? MacroAssembler::DoubleLessThanAndOrdered : MacroAssembler::DoubleGreaterThanAndOrdered, op1FPR, op2FPR);
&gt;  
&gt; -        // op2 is eather the lesser one or one of then is NaN
&gt; -        MacroAssembler::Jump op2Less = m_jit.branchDouble(node-&gt;op() == ArithMin ? MacroAssembler::DoubleGreaterThanOrEqualAndOrdered : MacroAssembler::DoubleLessThanOrEqualAndOrdered, op1FPR, op2FPR);
&gt; +        // op2 is either the lesser one or one of then is NaN
&gt; +        MacroAssembler::Jump op2Less = m_jit.branchDouble(node-&gt;op() == ArithMin ? MacroAssembler::DoubleGreaterThanAndOrdered : MacroAssembler::DoubleLessThanAndOrdered, op1FPR, op2FPR);

Can we implement this code as follows instead?

    MacroAssembler::Jump op1Less = m_jit.branchDouble(node-&gt;op() == ArithMin ? MacroAssembler::DoubleLessThanAndOrdered : MacroAssembler::DoubleGreaterThanAndOrdered, op1FPR, op2FPR);
    MacroAssembler::Jump opNotEqual = m_jit.branchDouble(MacroAssembler::DoubleNotEqualOrUnordered, op1FPR, op2FPR);

    // If both doubles are equal there&apos;s a chance one of them is negative zero, so consider that case.
    if (node-&gt;op() == ArithMax)
        m_jit.andDouble(op1FPR, op2FPR, resultFPR);
    else
        m_jit.orDouble(op1FPR, op2FPR, resultFPR);
    done.append(m_jit.jump());

    opNotEqual.link(&amp;m_jit);

    // op2 is either the lesser one or one of then is NaN.
    MacroAssembler::Jump op2Less = m_jit.branchDouble(node-&gt;op() == ArithMin ? MacroAssembler::DoubleGreaterThanAndOrdered : MacroAssembler::DoubleLessThanAndOrdered, op1FPR, op2FPR);

This way the a &lt; b (for min) or a &gt; b (for max) case still take the same number of instructions.
Only the &gt;= (for min) or &lt;= (for max) case incurs the extra == check.

If I were to guess, I would guess that a almost never == b.  So, optimistically checking for a &lt; b or a &gt; b first would be a win half of the time.

Please do the same for the FTL code below.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6214
&gt; +        done.append(m_jit.jump());
&gt; +
&gt; +        // If both doubles are equal there&apos;s a chance one of them is negative zero, so consider that case.
&gt; +        opEqual.link(&amp;m_jit);
&gt; +        if (node-&gt;op() == ArithMax)
&gt; +            m_jit.andDouble(op1FPR, op2FPR, resultFPR);
&gt; +        else
&gt; +            m_jit.orDouble(op1FPR, op2FPR, resultFPR);
&gt; +

Remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672147</commentid>
    <comment_count>21</comment_count>
      <attachid>404452</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-07-16 09:34:35 -0700</bug_when>
    <thetext>Created attachment 404452
Math.{max,min} fixes, v4

This should address all your comments. I&apos;m comparing the testmasm results in uint64_t form, though (instead of casting back to double), because otherwise a lot of the results are just NaN and we get bogus (I think) errors. I think this should be fine but a sanity check is welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672188</commentid>
    <comment_count>22</comment_count>
      <attachid>404452</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-07-16 11:07:23 -0700</bug_when>
    <thetext>Comment on attachment 404452
Math.{max,min} fixes, v4

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

r=me with fixes and if EWS bits are green.

&gt; Source/JavaScriptCore/assembler/testmasm.cpp:2315
&gt; +            uint64_t result = bitwise_cast&lt;uint64_t&gt;(arg1) &amp; bitwise_cast&lt;uint64_t&gt;(arg2);
&gt; +            CHECK_EQ(bitwise_cast&lt;uint64_t&gt;(invoke&lt;double&gt;(andDouble)), result);

nit: can you rename &quot;result&quot; to &quot;expectedResult&quot;?

&gt; Source/JavaScriptCore/assembler/testmasm.cpp:2335
&gt; +            uint64_t result = bitwise_cast&lt;uint64_t&gt;(arg1) | bitwise_cast&lt;uint64_t&gt;(arg2);
&gt; +            CHECK_EQ(bitwise_cast&lt;uint64_t&gt;(invoke&lt;double&gt;(orDouble)), result);

Ditto.

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1184
&gt; +                double result = a &lt; b || (!a &amp;&amp; !b &amp;&amp; std::signbit(a)) ? a : (b &lt;= a ? b : a + b);

Please add a comment here to say &quot;The spec for min states that +0 is considered to be larger than -0.&quot;

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1214
&gt; +                double result = a &gt; b || (!a &amp;&amp; !b &amp;&amp; !std::signbit(a)) ? a : (b &gt;= a ? b : a + b);

Please add a comment here to say &quot;The spec for max states that +0 is considered to be larger than -0.&quot;

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6186
&gt; +        // If both doubles are equal there&apos;s a chance one of them is negative zero, so consider that case.

I think you can replace this comment with &quot;The spec for min and max states that +0 is considered to be larger than -0.&quot; which tells us everything we need to know about why we need to do this.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6190
&gt; +        if (node-&gt;op() == ArithMax)
&gt; +            m_jit.andDouble(op1FPR, op2FPR, resultFPR);
&gt; +        else
&gt; +            m_jit.orDouble(op1FPR, op2FPR, resultFPR);

Please change this to check for ArithMin instead and flip the 2 cases.  This will make the code match the FTL case and the other branch above that checks for ArithMin also.  I think that makes it slightly easier to follow and review for correctness.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:2889
&gt; +            m_out.branch(

Please also add a comment above here to say &quot;The spec for min and max states that +0 is considered to be larger than -0.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672427</commentid>
    <comment_count>23</comment_count>
      <attachid>404550</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-07-17 01:13:14 -0700</bug_when>
    <thetext>Created attachment 404550
Math.{max,min} fixes, v5

Another update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672429</commentid>
    <comment_count>24</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2020-07-17 01:20:00 -0700</bug_when>
    <thetext>*** Bug 203406 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672475</commentid>
    <comment_count>25</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-17 07:29:34 -0700</bug_when>
    <thetext>Committed r264507: &lt;https://trac.webkit.org/changeset/264507&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404550.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672476</commentid>
    <comment_count>26</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-17 07:30:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/65724890&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390207</attachid>
            <date>2020-02-09 09:26:02 -0800</date>
            <delta_ts>2020-02-17 03:59:41 -0800</delta_ts>
            <desc>Consider negative zero in DFG JIT Math.{max,min}</desc>
            <filename>0001-Math.max-can-yield-the-wrong-result-for-max-0-0.patch</filename>
            <type>text/plain</type>
            <size>3127</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA2MDk4MDVhZTk1NWRmNDJhMjRhMTc1ZTg2NDg0MDg1ODRmNmE1OTQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogU3VuLCA5IEZlYiAyMDIwIDE4OjIxOjMxICswMTAwClN1YmplY3Q6IFtQ
QVRDSF0gTWF0aC5tYXgoKSBjYW4geWllbGQgdGhlIHdyb25nIHJlc3VsdCBmb3IgbWF4KDAsIC0w
KS4KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0NTcKClJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKSlNUZXN0czoKKiBzdHJlc3MvZGZnLW1heC1taW4uanM6
IEFkZGVkLgoodGVzdE1heCk6Cih0ZXN0TWluKToKClNvdXJjZS9KYXZhU2NyaXB0Q29yZToKKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgooSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQXJpdGhNaW5NYXgpOiBjb25zaWRlciBuZWdhdGl2ZSB6ZXJvIHdoZW4gYm90aCBudW1iZXJz
IGFyZSBlcXVhbCAoLTAuMCA8IDAuMCBwZXIgdGhlIHNwZWMpCi0tLQogSlNUZXN0cy9zdHJlc3Mv
ZGZnLW1heC1taW4uanMgICAgICAgICAgICAgICAgICAgfCAxNiArKysrKysrKysrKysrKysrCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCB8IDE1ICsrKysr
KysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u
cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IEpTVGVzdHMvc3RyZXNzL2RmZy1tYXgtbWluLmpzCgpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGZnLW1heC1taW4uanMgYi9KU1Rlc3RzL3N0cmVz
cy9kZmctbWF4LW1pbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YjlkMjA4MWUxOWYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kZmctbWF4LW1p
bi5qcwpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiB0ZXN0TWF4KHgsIHkpIHsKKyAgICByZXR1
cm4gTWF0aC5tYXgoeCwgeSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RNaW4oeCwgeSkgeworICAgIHJl
dHVybiBNYXRoLm1pbih4LCB5KTsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kp
IHsKKyAgICB4ID0gMTAwL3Rlc3RNYXgoMC4wLCAtMC4wKTsKKyAgICBpZiAoeCA8IDApCisgICAg
ICAgIHRocm93ICJGQUlMRUQiOworICAgIHggPSAxMDAvdGVzdE1pbigwLjAsIC0wLjApOworICAg
IGlmICh4ID4gMCkKKyAgICAgICAgdGhyb3cgIkZBSUxFRCI7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDY0MmIxNjM1NmY5Li5j
YjNkYjAxZjVlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKQEAgLTU4MzQsMTAgKzU4MzQsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUFyaXRoTWluTWF4KE5vZGUqIG5vZGUpCiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXBMaXN0IGRvbmU7CiAKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3BFcXVhbCA9
IG1faml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlRXF1YWwsIG9wMUZQUiwg
b3AyRlBSKTsKKwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvcDFMZXNzID0gbV9qaXQu
YnJhbmNoRG91YmxlKG5vZGUtPm9wKCkgPT0gQXJpdGhNaW4gPyBNYWNyb0Fzc2VtYmxlcjo6RG91
YmxlTGVzc1RoYW4gOiBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlR3JlYXRlclRoYW4sIG9wMUZQUiwg
b3AyRlBSKTsKIAotICAgICAgICAvLyBvcDIgaXMgZWF0aGVyIHRoZSBsZXNzZXIgb25lIG9yIG9u
ZSBvZiB0aGVuIGlzIE5hTgotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvcDJMZXNzID0g
bV9qaXQuYnJhbmNoRG91YmxlKG5vZGUtPm9wKCkgPT0gQXJpdGhNaW4gPyBNYWNyb0Fzc2VtYmxl
cjo6RG91YmxlR3JlYXRlclRoYW5PckVxdWFsIDogTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUxlc3NU
aGFuT3JFcXVhbCwgb3AxRlBSLCBvcDJGUFIpOworICAgICAgICAvLyBvcDIgaXMgZWl0aGVyIHRo
ZSBsZXNzZXIgb25lIG9yIG9uZSBvZiB0aGVuIGlzIE5hTgorICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBvcDJMZXNzID0gbV9qaXQuYnJhbmNoRG91YmxlKG5vZGUtPm9wKCkgPT0gQXJpdGhN
aW4gPyBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlR3JlYXRlclRoYW4gOiBNYWNyb0Fzc2VtYmxlcjo6
RG91YmxlTGVzc1RoYW4sIG9wMUZQUiwgb3AyRlBSKTsKIAogICAgICAgICAvLyBVbm9yZGVyZWQg
Y2FzZS4gV2UgZG9uJ3Qga25vdyB3aGljaCBvZiBvcDEsIG9wMiBpcyBOYU4uIE1hbnVmYWN0dXJl
IE5hTiBieSBhZGRpbmcgCiAgICAgICAgIC8vIG9wMSArIG9wMiBhbmQgcHV0dGluZyBpdCBpbnRv
IHJlc3VsdC4KQEAgLTU4NTUsNiArNTg1NywxNSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQXJpdGhNaW5NYXgoTm9kZSogbm9kZSkKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBv
cDFMZXNzLmxpbmsoJm1faml0KTsKIAorICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5qdW1wKCkp
OworCisgICAgICAgIC8vIElmIGJvdGggZG91YmxlcyBhcmUgZXF1YWwgdGhlcmUncyBhIGNoYW5j
ZSBvbmUgb2YgdGhlbSBpcyBuZWdhdGl2ZSB6ZXJvLCBzbyBjb25zaWRlciB0aGF0IGNhc2UuCisg
ICAgICAgIG9wRXF1YWwubGluaygmbV9qaXQpOworICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBB
cml0aE1heCkKKyAgICAgICAgICAgIG1faml0LmFuZERvdWJsZShvcDFGUFIsIG9wMkZQUiwgcmVz
dWx0RlBSKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9qaXQub3JEb3VibGUob3AxRlBS
LCBvcDJGUFIsIHJlc3VsdEZQUik7CisKICAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CiAKICAg
ICAgICAgZG91YmxlUmVzdWx0KHJlc3VsdEZQUiwgbm9kZSk7Ci0tIAoyLjI0LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390911</attachid>
            <date>2020-02-17 03:59:41 -0800</date>
            <delta_ts>2020-02-18 03:10:59 -0800</delta_ts>
            <desc>Fix Math.{max,min} in DFG and FTL</desc>
            <filename>0001-Math.max-can-yield-the-wrong-result-for-max-0-0.patch</filename>
            <type>text/plain</type>
            <size>9206</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBjMDIzZTRiNmU5MzEyZTkxYTcwYjJiYzE2OTlmNDJiMDg0YzE1OGZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogTW9uLCAxNyBGZWIgMjAyMCAxMjoyNTowOSArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIE1hdGgubWF4KCkgY2FuIHlpZWxkIHRoZSB3cm9uZyByZXN1bHQgZm9yIG1heCgwLCAt
MCkuCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDU3CgpKU1Rl
c3RzOgoKQWRkIGEgdGVzdCB0byBtYWtlIHN1cmUgd2UgZm9sbG93IHRoZSBzcGVjIGluIE1hdGgu
e21heCxtaW59IGFuZAotMC4wIDwgMC4wLgoKKiBzdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZl
LXplcm8uanM6IEFkZGVkLgooYXNzZXJ0KToKKHRlc3QpOgoKU291cmNlL0phdmFTY3JpcHRDb3Jl
OgoKVGhlIGltcGxlbWVudGF0aW9ucyBmb3IgTWF0aC57bWF4LG1pbn0gaW4gYm90aCBERkcgYW5k
IEZUTCBhcmUgbm90CmNvbnNpZGVyaW5nIHRoZSBmYWN0IHRoYXQgYWNjb3JkaW5nIHRvIHRoZSBz
cGVjIC0wLjAgPCAwLjAgKHdoaWNoCmlzIG5vdCB0cnVlIGZvciBub3JtYWwgZG91YmxlIGFyaXRo
bWV0aWMpLgoKKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKEpTQzo6REZH
OjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMp
OgoqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CihKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVBcml0aE1pbk1heCk6CiogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CihKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVBcml0aE1pbk9yTWF4KToKLS0tCiBKU1Rlc3Rz
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNCArKysrKysrKysrKysK
IEpTVGVzdHMvc3RyZXNzL21hdGgtbWF4LW1pbi1uZWdhdGl2ZS16ZXJvLmpzICB8IDE2ICsrKysr
KysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
fCAxOCArKysrKysrKysrKysrKysKIC4uLi9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaCAgICAgICB8ICA2ICsrKy0tCiAuLi4vSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcCAgfCAxNSArKysrKysrKysrKy0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAgfCAyMiArKysrKysrKysrKysrKy0tLS0tCiA2IGZpbGVzIGNo
YW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgSlNUZXN0cy9zdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZlLXplcm8uanMKCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY1MjEyZmZh
MWQ3Li4wN2ZkMjk5NGZiMiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMS0xNyAgWGFuIExvcGV6ICA8
eGFuQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWF0aC5tYXgoKSBjYW4geWllbGQgdGhlIHdyb25n
IHJlc3VsdCBmb3IgbWF4KDAsIC0wKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gbWFrZSBzdXJlIHdlIGZvbGxvdyB0aGUgc3Bl
YyBpbiBNYXRoLnttYXgsbWlufSBhbmQKKyAgICAgICAgLTAuMCA8IDAuMC4KKworICAgICAgICAq
IHN0cmVzcy9tYXRoLW1heC1taW4tbmVnYXRpdmUtemVyby5qczogQWRkZWQuCisgICAgICAgIChh
c3NlcnQpOgorICAgICAgICAodGVzdCk6CisKIDIwMjAtMDItMTQgIFRhZGV1IFphZ2FsbG8gIDx0
emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZDogZml4IGJyb2tlbiB0ZXN0
cyBhZGRlZCBpbiByMjU2NjY1CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9tYXRoLW1heC1t
aW4tbmVnYXRpdmUtemVyby5qcyBiL0pTVGVzdHMvc3RyZXNzL21hdGgtbWF4LW1pbi1uZWdhdGl2
ZS16ZXJvLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOWQyMDgx
ZTE5ZgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL21hdGgtbWF4LW1pbi1uZWdh
dGl2ZS16ZXJvLmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIHRlc3RNYXgoeCwgeSkgewor
ICAgIHJldHVybiBNYXRoLm1heCh4LCB5KTsKK30KKworZnVuY3Rpb24gdGVzdE1pbih4LCB5KSB7
CisgICAgcmV0dXJuIE1hdGgubWluKHgsIHkpOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDA7ICsraSkgeworICAgIHggPSAxMDAvdGVzdE1heCgwLjAsIC0wLjApOworICAgIGlmICh4IDwg
MCkKKyAgICAgICAgdGhyb3cgIkZBSUxFRCI7CisgICAgeCA9IDEwMC90ZXN0TWluKDAuMCwgLTAu
MCk7CisgICAgaWYgKHggPiAwKQorICAgICAgICB0aHJvdyAiRkFJTEVEIjsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCmluZGV4IGNkNzk3NmIyYzk0Li4wNDQ3NmIwNWQ1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDItMTcgIFhhbiBMb3BleiAgPHhh
bkBpZ2FsaWEuY29tPgorCisgICAgICAgIE1hdGgubWF4KCkgY2FuIHlpZWxkIHRoZSB3cm9uZyBy
ZXN1bHQgZm9yIG1heCgwLCAtMCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDQ0NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb25zIGZvciBNYXRoLnttYXgsbWlufSBpbiBi
b3RoIERGRyBhbmQgRlRMIGFyZSBub3QKKyAgICAgICAgY29uc2lkZXJpbmcgdGhlIGZhY3QgdGhh
dCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMgLTAuMCA8IDAuMCAod2hpY2gKKyAgICAgICAgaXMgbm90
IHRydWUgZm9yIG5vcm1hbCBkb3VibGUgYXJpdGhtZXRpYykuCisKKyAgICAgICAgKiBkZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1pbk1heCk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVB
cml0aE1pbk9yTWF4KToKKwogMjAyMC0wMi0xNiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5G
dWppaUBzb255LmNvbT4KIAogICAgICAgICBSZW1vdmUgcmVtYWluaW5nIFdURl9FWFBPUlQgYW5k
IFdURl9JTVBPUlQgYnkgcmVwbGFjaW5nIHRoZW0gd2l0aCBXVEZfRVhQT1JUX0RFQ0xBUkFUSU9O
IGFuZCBXVEZfSU1QT1JUX0RFQ0xBUkFUSU9OCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggZTk1ODAw
YWZmMjYuLmI2MDk5ZWY0MzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0xMTA4LDcgKzExMDgs
OCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRl
RWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgaWYgKGxlZnQgJiYgcmln
aHQgJiYgbGVmdC5pc051bWJlcigpICYmIHJpZ2h0LmlzTnVtYmVyKCkpIHsKICAgICAgICAgICAg
ICAgICBkb3VibGUgYSA9IGxlZnQuYXNOdW1iZXIoKTsKICAgICAgICAgICAgICAgICBkb3VibGUg
YiA9IHJpZ2h0LmFzTnVtYmVyKCk7Ci0gICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwg
anNEb3VibGVOdW1iZXIoYSA8IGIgPyBhIDogKGIgPD0gYSA/IGIgOiBhICsgYikpKTsKKyAgICAg
ICAgICAgICAgICBkb3VibGUgcmVzdWx0ID0gYSA8IGIgfHwgKCFhICYmICFiICYmIHN0ZDo6c2ln
bmJpdChhKSkgPyBhIDogKGIgPD0gYSA/IGIgOiBhICsgYik7CisgICAgICAgICAgICAgICAgc2V0
Q29uc3RhbnQobm9kZSwganNEb3VibGVOdW1iZXIocmVzdWx0KSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUo
bm9kZSwgCkBAIC0xMTM3LDcgKzExMzgsOCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAg
ICAgICAgICAgaWYgKGxlZnQgJiYgcmlnaHQgJiYgbGVmdC5pc051bWJlcigpICYmIHJpZ2h0Lmlz
TnVtYmVyKCkpIHsKICAgICAgICAgICAgICAgICBkb3VibGUgYSA9IGxlZnQuYXNOdW1iZXIoKTsK
ICAgICAgICAgICAgICAgICBkb3VibGUgYiA9IHJpZ2h0LmFzTnVtYmVyKCk7Ci0gICAgICAgICAg
ICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNEb3VibGVOdW1iZXIoYSA+IGIgPyBhIDogKGIgPj0g
YSA/IGIgOiBhICsgYikpKTsKKyAgICAgICAgICAgICAgICBkb3VibGUgcmVzdWx0ID0gYSA+IGIg
fHwgKCFhICYmICFiICYmICFzdGQ6OnNpZ25iaXQoYSkpID8gYSA6IChiID49IGEgPyBiIDogYSAr
IGIpOworICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzRG91YmxlTnVtYmVyKHJl
c3VsdCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgc2V0Tm9uQ2VsbFR5cGVGb3JOb2RlKG5vZGUsIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA2NDJiMTYzNTZmOS4uY2IzZGIwMWY1
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCkBAIC01ODM0LDEwICs1ODM0LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVB
cml0aE1pbk1heChOb2RlKiBub2RlKQogCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlz
dCBkb25lOwogCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9wRXF1YWwgPSBtX2ppdC5i
cmFuY2hEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUVxdWFsLCBvcDFGUFIsIG9wMkZQUik7
CisKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3AxTGVzcyA9IG1faml0LmJyYW5jaERv
dWJsZShub2RlLT5vcCgpID09IEFyaXRoTWluID8gTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUxlc3NU
aGFuIDogTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUdyZWF0ZXJUaGFuLCBvcDFGUFIsIG9wMkZQUik7
CiAKLSAgICAgICAgLy8gb3AyIGlzIGVhdGhlciB0aGUgbGVzc2VyIG9uZSBvciBvbmUgb2YgdGhl
biBpcyBOYU4KLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3AyTGVzcyA9IG1faml0LmJy
YW5jaERvdWJsZShub2RlLT5vcCgpID09IEFyaXRoTWluID8gTWFjcm9Bc3NlbWJsZXI6OkRvdWJs
ZUdyZWF0ZXJUaGFuT3JFcXVhbCA6IE1hY3JvQXNzZW1ibGVyOjpEb3VibGVMZXNzVGhhbk9yRXF1
YWwsIG9wMUZQUiwgb3AyRlBSKTsKKyAgICAgICAgLy8gb3AyIGlzIGVpdGhlciB0aGUgbGVzc2Vy
IG9uZSBvciBvbmUgb2YgdGhlbiBpcyBOYU4KKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
b3AyTGVzcyA9IG1faml0LmJyYW5jaERvdWJsZShub2RlLT5vcCgpID09IEFyaXRoTWluID8gTWFj
cm9Bc3NlbWJsZXI6OkRvdWJsZUdyZWF0ZXJUaGFuIDogTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUxl
c3NUaGFuLCBvcDFGUFIsIG9wMkZQUik7CiAKICAgICAgICAgLy8gVW5vcmRlcmVkIGNhc2UuIFdl
IGRvbid0IGtub3cgd2hpY2ggb2Ygb3AxLCBvcDIgaXMgTmFOLiBNYW51ZmFjdHVyZSBOYU4gYnkg
YWRkaW5nIAogICAgICAgICAvLyBvcDEgKyBvcDIgYW5kIHB1dHRpbmcgaXQgaW50byByZXN1bHQu
CkBAIC01ODU1LDYgKzU4NTcsMTUgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRo
TWluTWF4KE5vZGUqIG5vZGUpCiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgb3AxTGVzcy5s
aW5rKCZtX2ppdCk7CiAKKyAgICAgICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKKworICAg
ICAgICAvLyBJZiBib3RoIGRvdWJsZXMgYXJlIGVxdWFsIHRoZXJlJ3MgYSBjaGFuY2Ugb25lIG9m
IHRoZW0gaXMgbmVnYXRpdmUgemVybywgc28gY29uc2lkZXIgdGhhdCBjYXNlLgorICAgICAgICBv
cEVxdWFsLmxpbmsoJm1faml0KTsKKyAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gQXJpdGhNYXgp
CisgICAgICAgICAgICBtX2ppdC5hbmREb3VibGUob3AxRlBSLCBvcDJGUFIsIHJlc3VsdEZQUik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1faml0Lm9yRG91YmxlKG9wMUZQUiwgb3AyRlBS
LCByZXN1bHRGUFIpOworCiAgICAgICAgIGRvbmUubGluaygmbV9qaXQpOwogCiAgICAgICAgIGRv
dWJsZVJlc3VsdChyZXN1bHRGUFIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDRkMzQyN2JjODJlLi5kOTRkYjFmMzgzYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMjcz
MCwyNCArMjczMCwzNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIERvdWJsZVJlcFVzZTogewog
ICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSk7Ci0g
ICAgICAgICAgICAKKworICAgICAgICAgICAgTEJhc2ljQmxvY2sgaXNFcXVhbCA9IG1fb3V0Lm5l
d0Jsb2NrKCk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RFcXVhbCA9IG1fb3V0Lm5ld0Js
b2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RMZXNzVGhhbiA9IG1fb3V0Lm5ld0Js
b2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdC
bG9jaygpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIFZlY3RvcjxWYWx1ZUZyb21CbG9j
aywgMj4gcmVzdWx0czsKICAgICAgICAgICAgIAogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQo
bV9vdXQuYW5jaG9yKGxlZnQpKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5kb3Vi
bGVFcXVhbChsZWZ0LCByaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgcmFyZWx5KGlz
RXF1YWwpLCB1c3VhbGx5KG5vdEVxdWFsKSk7CisKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxh
c3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNFcXVhbCwgbm90RXF1YWwpOworICAgICAgICAgICAg
cmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fbm9kZS0+b3AoKSA9PSBBcml0aE1pbgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbV9vdXQuYml0T3IobGVmdCwg
cmlnaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtX291dC5i
aXRBbmQobGVmdCwgcmlnaHQpKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlv
bik7CisKKyAgICAgICAgICAgIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90RXF1YWwsIG5v
dExlc3NUaGFuKTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBt
X25vZGUtPm9wKCkgPT0gQXJpdGhNaW4KICAgICAgICAgICAgICAgICAgICAgPyBtX291dC5kb3Vi
bGVMZXNzVGhhbihsZWZ0LCByaWdodCkKICAgICAgICAgICAgICAgICAgICAgOiBtX291dC5kb3Vi
bGVHcmVhdGVyVGhhbihsZWZ0LCByaWdodCksCiAgICAgICAgICAgICAgICAgdW5zdXJlKGNvbnRp
bnVhdGlvbiksIHVuc3VyZShub3RMZXNzVGhhbikpOwogICAgICAgICAgICAgCi0gICAgICAgICAg
ICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdExlc3NUaGFuLCBjb250
aW51YXRpb24pOworICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RMZXNz
VGhhbiwgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFu
Y2hvcihtX291dC5zZWxlY3QoCiAgICAgICAgICAgICAgICAgbV9ub2RlLT5vcCgpID09IEFyaXRo
TWluCi0gICAgICAgICAgICAgICAgICAgID8gbV9vdXQuZG91YmxlR3JlYXRlclRoYW5PckVxdWFs
KGxlZnQsIHJpZ2h0KQotICAgICAgICAgICAgICAgICAgICA6IG1fb3V0LmRvdWJsZUxlc3NUaGFu
T3JFcXVhbChsZWZ0LCByaWdodCksCisgICAgICAgICAgICAgICAgICAgID8gbV9vdXQuZG91Ymxl
R3JlYXRlclRoYW4obGVmdCwgcmlnaHQpCisgICAgICAgICAgICAgICAgICAgIDogbV9vdXQuZG91
YmxlTGVzc1RoYW4obGVmdCwgcmlnaHQpLAogICAgICAgICAgICAgICAgIHJpZ2h0LCBtX291dC5j
b25zdERvdWJsZShQTmFOKSkpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9u
KTsKICAgICAgICAgICAgIAotLSAKMi4yNC4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391038</attachid>
            <date>2020-02-18 03:10:59 -0800</date>
            <delta_ts>2020-04-06 02:05:35 -0700</delta_ts>
            <desc>Fix Math.{max,min} for negative zero in DFG and FTL</desc>
            <filename>0001-Math.max-can-yield-the-wrong-result-for-max-0-0.patch</filename>
            <type>text/plain</type>
            <size>9213</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBkODQxYTk3YzY4ODFmYjMxYjMwYjBkYmY0OTA0YmVmZDFiMzk0ZGJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogTW9uLCAxNyBGZWIgMjAyMCAxMjoyNTowOSArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIE1hdGgubWF4KCkgY2FuIHlpZWxkIHRoZSB3cm9uZyByZXN1bHQgZm9yIG1heCgwLCAt
MCkuCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDU3CgpKU1Rl
c3RzOgoKQWRkIGEgdGVzdCB0byBtYWtlIHN1cmUgd2UgZm9sbG93IHRoZSBzcGVjIGluIE1hdGgu
e21heCxtaW59IGFuZAotMC4wIDwgMC4wLgoKKiBzdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZl
LXplcm8uanM6IEFkZGVkLgooYXNzZXJ0KToKKHRlc3QpOgoKU291cmNlL0phdmFTY3JpcHRDb3Jl
OgoKVGhlIGltcGxlbWVudGF0aW9ucyBmb3IgTWF0aC57bWF4LG1pbn0gaW4gYm90aCBERkcgYW5k
IEZUTCBhcmUgbm90CmNvbnNpZGVyaW5nIHRoZSBmYWN0IHRoYXQgYWNjb3JkaW5nIHRvIHRoZSBz
cGVjIC0wLjAgPCAwLjAgKHdoaWNoCmlzIG5vdCB0cnVlIGZvciBub3JtYWwgZG91YmxlIGFyaXRo
bWV0aWMpLgoKKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKEpTQzo6REZH
OjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMp
OgoqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CihKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVBcml0aE1pbk1heCk6CiogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CihKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVBcml0aE1pbk9yTWF4KToKLS0tCiBKU1Rlc3Rz
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNCArKysrKysrKysrKwog
SlNUZXN0cy9zdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZlLXplcm8uanMgIHwgMTYgKysrKysr
KysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgIHwg
MTggKysrKysrKysrKysrKysKIC4uLi9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aCAgICAgICB8ICA2ICsrKy0tCiAuLi4vSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcCAgfCAxNSArKysrKysrKysrLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcCB8IDI0ICsrKysrKysrKysrKysrKy0tLS0KIDYgZmlsZXMgY2hhbmdl
ZCwgODQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBK
U1Rlc3RzL3N0cmVzcy9tYXRoLW1heC1taW4tbmVnYXRpdmUtemVyby5qcwoKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjNhNTkxNmY2MzIu
LjQ4ZGM4YjEwYTY4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAxLTE3ICBYYW4gTG9wZXogIDx4YW5A
aWdhbGlhLmNvbT4KKworICAgICAgICBNYXRoLm1heCgpIGNhbiB5aWVsZCB0aGUgd3JvbmcgcmVz
dWx0IGZvciBtYXgoMCwgLTApLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA0NDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGEgdGVzdCB0byBtYWtlIHN1cmUgd2UgZm9sbG93IHRoZSBzcGVjIGlu
IE1hdGgue21heCxtaW59IGFuZAorICAgICAgICAtMC4wIDwgMC4wLgorCisgICAgICAgICogc3Ry
ZXNzL21hdGgtbWF4LW1pbi1uZWdhdGl2ZS16ZXJvLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2Vy
dCk6CisgICAgICAgICh0ZXN0KToKKwogMjAyMC0wMi0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEpJVFRodW5rIHNob3VsZCBiZSBIYXNoU2V0
PFdlYWs8TmF0aXZlRXhlY3V0YWJsZT4+IHdpdGggYXBwcm9wcmlhdGUgR0Mgd2Vha25lc3MgaGFu
ZGxpbmcKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL21hdGgtbWF4LW1pbi1uZWdhdGl2ZS16
ZXJvLmpzIGIvSlNUZXN0cy9zdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZlLXplcm8uanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI5ZDIwODFlMTlmCi0tLSAvZGV2
L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZlLXplcm8uanMK
QEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVzdE1heCh4LCB5KSB7CisgICAgcmV0dXJuIE1h
dGgubWF4KHgsIHkpOworfQorCitmdW5jdGlvbiB0ZXN0TWluKHgsIHkpIHsKKyAgICByZXR1cm4g
TWF0aC5taW4oeCwgeSk7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7Cisg
ICAgeCA9IDEwMC90ZXN0TWF4KDAuMCwgLTAuMCk7CisgICAgaWYgKHggPCAwKQorICAgICAgICB0
aHJvdyAiRkFJTEVEIjsKKyAgICB4ID0gMTAwL3Rlc3RNaW4oMC4wLCAtMC4wKTsKKyAgICBpZiAo
eCA+IDApCisgICAgICAgIHRocm93ICJGQUlMRUQiOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
aW5kZXggMTU1ZTkyMDIwZTMuLjkxYTA5OWM1MGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAyMC0wMi0xNyAgWGFuIExvcGV6ICA8eGFuQGlnYWxpYS5jb20+
CisKKyAgICAgICAgTWF0aC5tYXgoKSBjYW4geWllbGQgdGhlIHdyb25nIHJlc3VsdCBmb3IgbWF4
KDAsIC0wKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBpbXBsZW1lbnRhdGlvbnMgZm9yIE1hdGgue21heCxtaW59IGluIGJvdGggREZHIGFuZCBG
VEwgYXJlIG5vdAorICAgICAgICBjb25zaWRlcmluZyB0aGUgZmFjdCB0aGF0IGFjY29yZGluZyB0
byB0aGUgc3BlYyAtMC4wIDwgMC4wICh3aGljaAorICAgICAgICBpcyBub3QgdHJ1ZSBmb3Igbm9y
bWFsIGRvdWJsZSBhcml0aG1ldGljKS4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUFyaXRoTWluTWF4KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUFyaXRoTWluT3JNYXgp
OgorCiAyMDIwLTAyLTE3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0pTQ10gSklUVGh1bmsgc2hvdWxkIGJlIEhhc2hTZXQ8V2VhazxOYXRpdmVFeGVjdXRh
YmxlPj4gd2l0aCBhcHByb3ByaWF0ZSBHQyB3ZWFrbmVzcyBoYW5kbGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oCmluZGV4IGU5NTgwMGFmZjI2Li5iNjA5OWVmNDMwOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApA
QCAtMTEwOCw3ICsxMTA4LDggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3Rh
dGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgICAg
IGlmIChsZWZ0ICYmIHJpZ2h0ICYmIGxlZnQuaXNOdW1iZXIoKSAmJiByaWdodC5pc051bWJlcigp
KSB7CiAgICAgICAgICAgICAgICAgZG91YmxlIGEgPSBsZWZ0LmFzTnVtYmVyKCk7CiAgICAgICAg
ICAgICAgICAgZG91YmxlIGIgPSByaWdodC5hc051bWJlcigpOwotICAgICAgICAgICAgICAgIHNl
dENvbnN0YW50KG5vZGUsIGpzRG91YmxlTnVtYmVyKGEgPCBiID8gYSA6IChiIDw9IGEgPyBiIDog
YSArIGIpKSk7CisgICAgICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IGEgPCBiIHx8ICghYSAm
JiAhYiAmJiBzdGQ6OnNpZ25iaXQoYSkpID8gYSA6IChiIDw9IGEgPyBiIDogYSArIGIpOworICAg
ICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzRG91YmxlTnVtYmVyKHJlc3VsdCkpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2V0Tm9u
Q2VsbFR5cGVGb3JOb2RlKG5vZGUsIApAQCAtMTEzNyw3ICsxMTM4LDggQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICAgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYmIGxlZnQuaXNOdW1i
ZXIoKSAmJiByaWdodC5pc051bWJlcigpKSB7CiAgICAgICAgICAgICAgICAgZG91YmxlIGEgPSBs
ZWZ0LmFzTnVtYmVyKCk7CiAgICAgICAgICAgICAgICAgZG91YmxlIGIgPSByaWdodC5hc051bWJl
cigpOwotICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzRG91YmxlTnVtYmVyKGEg
PiBiID8gYSA6IChiID49IGEgPyBiIDogYSArIGIpKSk7CisgICAgICAgICAgICAgICAgZG91Ymxl
IHJlc3VsdCA9IGEgPiBiIHx8ICghYSAmJiAhYiAmJiAhc3RkOjpzaWduYml0KGEpKSA/IGEgOiAo
YiA+PSBhID8gYiA6IGEgKyBiKTsKKyAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBq
c0RvdWJsZU51bWJlcihyZXN1bHQpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2RlLCAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggNjQyYjE2
MzU2ZjkuLmNiM2RiMDFmNWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcApAQCAtNTgzNCwxMCArNTgzNCwxMiBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlQXJpdGhNaW5NYXgoTm9kZSogbm9kZSkKIAogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3QgZG9uZTsKIAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBv
cEVxdWFsID0gbV9qaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVFcXVhbCwg
b3AxRlBSLCBvcDJGUFIpOworCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9wMUxlc3Mg
PSBtX2ppdC5icmFuY2hEb3VibGUobm9kZS0+b3AoKSA9PSBBcml0aE1pbiA/IE1hY3JvQXNzZW1i
bGVyOjpEb3VibGVMZXNzVGhhbiA6IE1hY3JvQXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbiwg
b3AxRlBSLCBvcDJGUFIpOwogCi0gICAgICAgIC8vIG9wMiBpcyBlYXRoZXIgdGhlIGxlc3NlciBv
bmUgb3Igb25lIG9mIHRoZW4gaXMgTmFOCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9w
Mkxlc3MgPSBtX2ppdC5icmFuY2hEb3VibGUobm9kZS0+b3AoKSA9PSBBcml0aE1pbiA/IE1hY3Jv
QXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbk9yRXF1YWwgOiBNYWNyb0Fzc2VtYmxlcjo6RG91
YmxlTGVzc1RoYW5PckVxdWFsLCBvcDFGUFIsIG9wMkZQUik7CisgICAgICAgIC8vIG9wMiBpcyBl
aXRoZXIgdGhlIGxlc3NlciBvbmUgb3Igb25lIG9mIHRoZW4gaXMgTmFOCisgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIG9wMkxlc3MgPSBtX2ppdC5icmFuY2hEb3VibGUobm9kZS0+b3AoKSA9
PSBBcml0aE1pbiA/IE1hY3JvQXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbiA6IE1hY3JvQXNz
ZW1ibGVyOjpEb3VibGVMZXNzVGhhbiwgb3AxRlBSLCBvcDJGUFIpOwogCiAgICAgICAgIC8vIFVu
b3JkZXJlZCBjYXNlLiBXZSBkb24ndCBrbm93IHdoaWNoIG9mIG9wMSwgb3AyIGlzIE5hTi4gTWFu
dWZhY3R1cmUgTmFOIGJ5IGFkZGluZyAKICAgICAgICAgLy8gb3AxICsgb3AyIGFuZCBwdXR0aW5n
IGl0IGludG8gcmVzdWx0LgpAQCAtNTg1NSw2ICs1ODU3LDE1IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVBcml0aE1pbk1heChOb2RlKiBub2RlKQogICAgICAgICB9IGVsc2UKICAgICAg
ICAgICAgIG9wMUxlc3MubGluaygmbV9qaXQpOwogCisgICAgICAgIGRvbmUuYXBwZW5kKG1faml0
Lmp1bXAoKSk7CisKKyAgICAgICAgLy8gSWYgYm90aCBkb3VibGVzIGFyZSBlcXVhbCB0aGVyZSdz
IGEgY2hhbmNlIG9uZSBvZiB0aGVtIGlzIG5lZ2F0aXZlIHplcm8sIHNvIGNvbnNpZGVyIHRoYXQg
Y2FzZS4KKyAgICAgICAgb3BFcXVhbC5saW5rKCZtX2ppdCk7CisgICAgICAgIGlmIChub2RlLT5v
cCgpID09IEFyaXRoTWF4KQorICAgICAgICAgICAgbV9qaXQuYW5kRG91YmxlKG9wMUZQUiwgb3Ay
RlBSLCByZXN1bHRGUFIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2ppdC5vckRvdWJs
ZShvcDFGUFIsIG9wMkZQUiwgcmVzdWx0RlBSKTsKKwogICAgICAgICBkb25lLmxpbmsoJm1faml0
KTsKIAogICAgICAgICBkb3VibGVSZXN1bHQocmVzdWx0RlBSLCBub2RlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA0ZDM0MjdiYzgyZS4u
NDZlOTNkMzc4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKQEAgLTI3MzAsMjQgKzI3MzAsMzggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBE
b3VibGVSZXBVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93RG91YmxlKG1fbm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93RG91YmxlKG1fbm9k
ZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgCisKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlz
RXF1YWwgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90RXF1
YWwgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90TGVzc1Ro
YW4gPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0
aW9uID0gbV9vdXQubmV3QmxvY2soKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBWZWN0
b3I8VmFsdWVGcm9tQmxvY2ssIDI+IHJlc3VsdHM7CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihsZWZ0KSk7CisgICAgICAgICAgICBtX291dC5i
cmFuY2goCisgICAgICAgICAgICAgICAgbV9vdXQuZG91YmxlRXF1YWwobGVmdCwgcmlnaHQpLAor
ICAgICAgICAgICAgICAgICAgICByYXJlbHkoaXNFcXVhbCksIHVzdWFsbHkobm90RXF1YWwpKTsK
KworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpc0Vx
dWFsLCBub3RFcXVhbCk7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3Io
CisgICAgICAgICAgICAgICAgbV9ub2RlLT5vcCgpID09IEFyaXRoTWluCisgICAgICAgICAgICAg
ICAgICAgID8gbV9vdXQuYml0T3IobGVmdCwgcmlnaHQpCisgICAgICAgICAgICAgICAgICAgIDog
bV9vdXQuYml0QW5kKGxlZnQsIHJpZ2h0KSkpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250
aW51YXRpb24pOworCisgICAgICAgICAgICBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdEVx
dWFsLCBub3RMZXNzVGhhbik7CiAgICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAg
ICAgICAgbV9ub2RlLT5vcCgpID09IEFyaXRoTWluCiAgICAgICAgICAgICAgICAgICAgID8gbV9v
dXQuZG91YmxlTGVzc1RoYW4obGVmdCwgcmlnaHQpCiAgICAgICAgICAgICAgICAgICAgIDogbV9v
dXQuZG91YmxlR3JlYXRlclRoYW4obGVmdCwgcmlnaHQpLAogICAgICAgICAgICAgICAgIHVuc3Vy
ZShjb250aW51YXRpb24pLCB1bnN1cmUobm90TGVzc1RoYW4pKTsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RMZXNzVGhh
biwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8o
bm90TGVzc1RoYW4sIGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZCht
X291dC5hbmNob3IobV9vdXQuc2VsZWN0KAogICAgICAgICAgICAgICAgIG1fbm9kZS0+b3AoKSA9
PSBBcml0aE1pbgotICAgICAgICAgICAgICAgICAgICA/IG1fb3V0LmRvdWJsZUdyZWF0ZXJUaGFu
T3JFcXVhbChsZWZ0LCByaWdodCkKLSAgICAgICAgICAgICAgICAgICAgOiBtX291dC5kb3VibGVM
ZXNzVGhhbk9yRXF1YWwobGVmdCwgcmlnaHQpLAorICAgICAgICAgICAgICAgICAgICA/IG1fb3V0
LmRvdWJsZUdyZWF0ZXJUaGFuKGxlZnQsIHJpZ2h0KQorICAgICAgICAgICAgICAgICAgICA6IG1f
b3V0LmRvdWJsZUxlc3NUaGFuKGxlZnQsIHJpZ2h0KSwKICAgICAgICAgICAgICAgICByaWdodCwg
bV9vdXQuY29uc3REb3VibGUoUE5hTikpKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRp
bnVhdGlvbik7CiAgICAgICAgICAgICAKLS0gCjIuMjQuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401446</attachid>
            <date>2020-06-09 09:19:40 -0700</date>
            <delta_ts>2020-06-24 05:01:02 -0700</delta_ts>
            <desc>Fix Math.{max,min} to consider that -0.0 &lt; 0,0</desc>
            <filename>0001-Math.max-can-yield-the-wrong-result-for-max-0-0.patch</filename>
            <type>text/plain</type>
            <size>14959</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBmNzc3ZWRkNWExYzg0ODAxMWYwMDZjMzQ3YWI2OWU1NmFkMDA0MDk4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogTW9uLCAxNyBGZWIgMjAyMCAxMjoyNTowOSArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIE1hdGgubWF4KCkgY2FuIHlpZWxkIHRoZSB3cm9uZyByZXN1bHQgZm9yIG1heCgwLCAt
MCkuCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDU3CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkpTVGVzdHM6CgpBZGQgYSB0ZXN0IHRvIG1ha2Ugc3Vy
ZSB3ZSBmb2xsb3cgdGhlIHNwZWMgaW4gTWF0aC57bWF4LG1pbn0gYW5kCi0wLjAgPCAwLjAuCgoq
IHN0cmVzcy9tYXRoLW1heC1taW4tbmVnYXRpdmUtemVyby5qczogQWRkZWQuCihhc3NlcnQpOgoo
dGVzdCk6CgpTb3VyY2UvSmF2YVNjcmlwdENvcmU6CgpUaGUgaW1wbGVtZW50YXRpb25zIGZvciBN
YXRoLnttYXgsbWlufSBpbiBib3RoIERGRyBhbmQgRlRMIGFyZSBub3QKY29uc2lkZXJpbmcgdGhl
IGZhY3QgdGhhdCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMgLTAuMCA8IDAuMCAod2hpY2gKaXMgbm90
IHRydWUgZm9yIG5vcm1hbCBkb3VibGUgYXJpdGhtZXRpYykuCgpCZXlvbmQgdHdlYWtpbmcgdGhl
IGFsZ29yaXRobXMgdXNlZCBpbiBERkcgYW5kIEZUTCB3ZSBtdXN0CmltcGxlbWVudCB0aGUgYW5k
L29yIG9wZXJhdGlvbnMgb24gZG91YmxlIGluIE1JUFMgYW5kIEFSTXY3LCBzaW5jZQp0aGVzZSBh
cmUgdXNlZCBpbiB0aGUgREZHIEpJVCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIC0wLjAgYW5kIDAu
MC4KCiogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2
YW5kKToKKEpTQzo6QVJNdjdBc3NlbWJsZXI6OnZvcnIpOgoqIGFzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3Lmg6CihKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmFuZERvdWJsZSk6CihKU0M6
Ok1hY3JvQXNzZW1ibGVyQVJNdjc6Om9yRG91YmxlKToKKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJNSVBTLmg6CihKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6YW5kRG91YmxlKToKKEpTQzo6TWFj
cm9Bc3NlbWJsZXJNSVBTOjpvckRvdWJsZSk6CiogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmg6IGNvbnNpZGVyIHRoYXQgLTAuMCA8IDAuMCBwZXIgdGhlIEVDTUFTY3JpcHQgc3Bl
Yy4KKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhl
Y3V0ZUVmZmVjdHMpOgoqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6IGRpdHRvLgooSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNaW5NYXgpOgoqIGZ0bC9GVExMb3dlckRG
R1RvQjMuY3BwOiBkaXR0by4KKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUFy
aXRoTWluT3JNYXgpOgotLS0KIEpTVGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDE0ICsrKysrKwogSlNUZXN0cy9zdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZl
LXplcm8uanMgIHwgMTYgKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrKwogLi4uL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BUk12N0Fzc2VtYmxlci5oIHwgMTQgKysrKysrCiAuLi4vYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaCAgICAgICAgICAgfCAxMCArKysrKwogLi4uL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlck1JUFMuaCAgICAgICAgICAgIHwgNDQgKysrKysrKysrKysrKysrKysrKwogLi4uL2Rm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oICAgICAgIHwgIDYgKystCiAuLi4vSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCAgfCAxNSArKysrKystCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgfCAyNCArKysrKysrLS0t
CiA5IGZpbGVzIGNoYW5nZWQsIDE2NSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IEpTVGVzdHMvc3RyZXNzL21hdGgtbWF4LW1pbi1uZWdhdGl2ZS16ZXJv
LmpzCgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCAzYzRmNmE5Y2MxYmEuLmVlZjc4NmEzODI2NCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNi0w
OSAgWGFuIExvcGV6ICA8eGFuQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWF0aC5tYXgoKSBjYW4g
eWllbGQgdGhlIHdyb25nIHJlc3VsdCBmb3IgbWF4KDAsIC0wKS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDQ1NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gbWFrZSBzdXJlIHdl
IGZvbGxvdyB0aGUgc3BlYyBpbiBNYXRoLnttYXgsbWlufSBhbmQKKyAgICAgICAgLTAuMCA8IDAu
MC4KKworICAgICAgICAqIHN0cmVzcy9tYXRoLW1heC1taW4tbmVnYXRpdmUtemVyby5qczogQWRk
ZWQuCisgICAgICAgIChhc3NlcnQpOgorICAgICAgICAodGVzdCk6CisKIDIwMjAtMDYtMDggIFJv
c3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtJbnRsXSBV
cGRhdGUgdGVzdHMgdG8gc3VwcG9ydCBJQ1UgNjcKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L21hdGgtbWF4LW1pbi1uZWdhdGl2ZS16ZXJvLmpzIGIvSlNUZXN0cy9zdHJlc3MvbWF0aC1tYXgt
bWluLW5lZ2F0aXZlLXplcm8uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi5iOWQyMDgxZTE5ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9tYXRo
LW1heC1taW4tbmVnYXRpdmUtemVyby5qcwpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiB0ZXN0
TWF4KHgsIHkpIHsKKyAgICByZXR1cm4gTWF0aC5tYXgoeCwgeSk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RNaW4oeCwgeSkgeworICAgIHJldHVybiBNYXRoLm1pbih4LCB5KTsKK30KKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICB4ID0gMTAwL3Rlc3RNYXgoMC4wLCAtMC4wKTsK
KyAgICBpZiAoeCA8IDApCisgICAgICAgIHRocm93ICJGQUlMRUQiOworICAgIHggPSAxMDAvdGVz
dE1pbigwLjAsIC0wLjApOworICAgIGlmICh4ID4gMCkKKyAgICAgICAgdGhyb3cgIkZBSUxFRCI7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0OGFhZTM5ODIyODEuLjdjOWI2NjQzZGNh
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMDYtMDkg
IFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAgICAgICBNYXRoLm1heCgpIGNhbiB5
aWVsZCB0aGUgd3JvbmcgcmVzdWx0IGZvciBtYXgoMCwgLTApLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDU3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9ucyBmb3IgTWF0
aC57bWF4LG1pbn0gaW4gYm90aCBERkcgYW5kIEZUTCBhcmUgbm90CisgICAgICAgIGNvbnNpZGVy
aW5nIHRoZSBmYWN0IHRoYXQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjIC0wLjAgPCAwLjAgKHdoaWNo
CisgICAgICAgIGlzIG5vdCB0cnVlIGZvciBub3JtYWwgZG91YmxlIGFyaXRobWV0aWMpLgorCisg
ICAgICAgIEJleW9uZCB0d2Vha2luZyB0aGUgYWxnb3JpdGhtcyB1c2VkIGluIERGRyBhbmQgRlRM
IHdlIG11c3QKKyAgICAgICAgaW1wbGVtZW50IHRoZSBhbmQvb3Igb3BlcmF0aW9ucyBvbiBkb3Vi
bGUgaW4gTUlQUyBhbmQgQVJNdjcsIHNpbmNlCisgICAgICAgIHRoZXNlIGFyZSB1c2VkIGluIHRo
ZSBERkcgSklUIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gLTAuMCBhbmQgMC4wLgorCisgICAgICAg
ICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1i
bGVyOjp2YW5kKToKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OnZvcnIpOgorICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OmFuZERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNdjc6Om9yRG91YmxlKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6YW5kRG91YmxlKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpvckRvdWJsZSk6CisgICAgICAgICogZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6IGNvbnNpZGVyIHRoYXQgLTAuMCA8IDAuMCBw
ZXIgdGhlIEVDTUFTY3JpcHQgc3BlYy4KKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6IGRpdHRvLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQXJpdGhNaW5NYXgpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRG
R1RvQjMuY3BwOiBkaXR0by4KKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZUFyaXRoTWluT3JNYXgpOgorCiAyMDIwLTA2LTA5ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gU2hyaW5rIF9fREFUQSwoX19kYXRhLF9f
YnNzLF9fY29tbW9uKSBtb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0FSTXY3QXNzZW1ibGVyLmgKaW5kZXggYmVkMzBjYzAzZTE0Li5hMDQxYThlZWY2MWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAg
LTU5NSw2ICs1OTUsOCBAQCBwcml2YXRlOgogICAgICAgICBPUF9WU1FSVF9UMSAgICAgPSAweEVF
QjAsCiAgICAgICAgIE9QX1ZDVlRTRF9UMSAgICA9IDB4RUVCMCwKICAgICAgICAgT1BfVkNWVERT
X1QxICAgID0gMHhFRUIwLAorICAgICAgICBPUF9WQU5EX1QxICAgICAgPSAweEVGMDAsCisgICAg
ICAgIE9QX1ZPUlJfVDEgICAgICA9IDB4RUYyMCwKICAgICAgICAgT1BfQl9UM2EgICAgICAgID0g
MHhGMDAwLAogICAgICAgICBPUF9CX1Q0YSAgICAgICAgPSAweEYwMDAsCiAgICAgICAgIE9QX0FO
RF9pbW1fVDEgICA9IDB4RjAwMCwKQEAgLTY1Myw2ICs2NTUsOCBAQCBwcml2YXRlOgogICAgIH0g
T3Bjb2RlSUQxOwogCiAgICAgdHlwZWRlZiBlbnVtIHsKKyAgICAgICAgT1BfVkFORF9UMWIgICAg
ICA9IDB4MDAxMCwKKyAgICAgICAgT1BfVk9SUl9UMWIgICAgICA9IDB4MDAxMCwKICAgICAgICAg
T1BfVkFERF9UMmIgICAgICA9IDB4MEEwMCwKICAgICAgICAgT1BfVkRJVmIgICAgICAgICA9IDB4
MEEwMCwKICAgICAgICAgT1BfRkxEU2IgICAgICAgICA9IDB4MEEwMCwKQEAgLTE4MjMsNiArMTgy
NywxNiBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAKKyAgICB2b2lkIHZhbmQoRlBEb3VibGVS
ZWdpc3RlcklEIHJkLCBGUERvdWJsZVJlZ2lzdGVySUQgcm4sIEZQRG91YmxlUmVnaXN0ZXJJRCBy
bSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZBTkRfVDEsIE9QX1ZBTkRf
VDFiLCB0cnVlLCBybiwgcmQsIHJtKTsKKyAgICB9CisKKyAgICB2b2lkIHZvcnIoRlBEb3VibGVS
ZWdpc3RlcklEIHJkLCBGUERvdWJsZVJlZ2lzdGVySUQgcm4sIEZQRG91YmxlUmVnaXN0ZXJJRCBy
bSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZPUlJfVDEsIE9QX1ZPUlJf
VDFiLCB0cnVlLCBybiwgcmQsIHJtKTsKKyAgICB9CisKICAgICB2b2lkIHZhZGQoRlBEb3VibGVS
ZWdpc3RlcklEIHJkLCBGUERvdWJsZVJlZ2lzdGVySUQgcm4sIEZQRG91YmxlUmVnaXN0ZXJJRCBy
bSkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZBRERfVDIsIE9QX1ZBRERf
VDJiLCB0cnVlLCBybiwgcmQsIHJtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggOTc2OTExZGRmNzRmLi4wYmY2
N2Y3ZjFhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oCkBAIC0xMTUwLDYgKzExNTAsMTYgQEAgcHVibGljOgogICAg
ICAgICBtX2Fzc2VtYmxlci52bXVsKGRlc3QsIG9wMSwgb3AyKTsKICAgICB9CiAKKyAgICB2b2lk
IGFuZERvdWJsZShGUFJlZ2lzdGVySUQgb3AxLCBGUFJlZ2lzdGVySUQgb3AyLCBGUFJlZ2lzdGVy
SUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnZhbmQob3AxLCBvcDIsIGRlc3Qp
OworICAgIH0KKworICAgIHZvaWQgb3JEb3VibGUoRlBSZWdpc3RlcklEIG9wMSwgRlBSZWdpc3Rl
cklEIG9wMiwgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci52
b3JyKG9wMSwgb3AyLCBkZXN0KTsKKyAgICB9CisKICAgICB2b2lkIHNxcnREb3VibGUoRlBSZWdp
c3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxl
ci52c3FydChkZXN0LCBzcmMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggM2YxOTk2MGM3MzQzLi5kYmYzMTIyMmU3
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlck1JUFMuaApAQCAtMzA3Niw2ICszMDc2LDUwIEBAIHB1YmxpYzoKICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkZChkZXN0LCBkZXN0LCBmcFRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisgICAg
dm9pZCBhbmREb3VibGUoRlBSZWdpc3RlcklEIG9wMSwgRlBSZWdpc3RlcklEIG9wMiwgRlBSZWdp
c3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5tZmMxKGltbVRlbXBSZWdp
c3Rlciwgb3AxKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZjMShkYXRhVGVtcFJlZ2lzdGVyLCBv
cDIpOworICAgICAgICBtX2Fzc2VtYmxlci5hbmRJbnNuKGNtcFRlbXBSZWdpc3RlciwgaW1tVGVt
cFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubXRjMShj
bXBUZW1wUmVnaXN0ZXIsIGRlc3QpOworCisjaWYgV1RGX01JUFNfSVNBX1JFVigyKSAmJiBXVEZf
TUlQU19GUDY0CisgICAgICAgIG1fYXNzZW1ibGVyLm1maGMxKGltbVRlbXBSZWdpc3Rlciwgb3Ax
KTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZoYzEoZGF0YVRlbXBSZWdpc3Rlciwgb3AyKTsKKyNl
bHNlCisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoaW1tVGVtcFJlZ2lzdGVyLCBGUFJlZ2lzdGVy
SUQob3AxKzEpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZjMShkYXRhVGVtcFJlZ2lzdGVyLCBG
UFJlZ2lzdGVySUQob3AyKzEpKTsKKyNlbmRpZgorICAgICAgICBtX2Fzc2VtYmxlci5hbmRJbnNu
KGNtcFRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyNp
ZiBXVEZfTUlQU19JU0FfUkVWKDIpICYmIFdURl9NSVBTX0ZQNjQKKyAgICAgICAgbV9hc3NlbWJs
ZXIubXRoYzEoY21wVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKyNlbHNlCisgICAgICAgIG1fYXNzZW1i
bGVyLm10YzEoY21wVGVtcFJlZ2lzdGVyLCBGUFJlZ2lzdGVySUQoZGVzdCsxKSk7CisjZW5kaWYK
KyAgICB9CisKKyAgICB2b2lkIG9yRG91YmxlKEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0ZXJJ
RCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZj
MShpbW1UZW1wUmVnaXN0ZXIsIG9wMSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoZGF0YVRl
bXBSZWdpc3Rlciwgb3AyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIub3JJbnNuKGNtcFRlbXBSZWdp
c3RlciwgaW1tVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3Nl
bWJsZXIubXRjMShjbXBUZW1wUmVnaXN0ZXIsIGRlc3QpOworCisjaWYgV1RGX01JUFNfSVNBX1JF
VigyKSAmJiBXVEZfTUlQU19GUDY0CisgICAgICAgIG1fYXNzZW1ibGVyLm1maGMxKGltbVRlbXBS
ZWdpc3Rlciwgb3AxKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZoYzEoZGF0YVRlbXBSZWdpc3Rl
ciwgb3AyKTsKKyNlbHNlCisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoaW1tVGVtcFJlZ2lzdGVy
LCBGUFJlZ2lzdGVySUQob3AxKzEpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZjMShkYXRhVGVt
cFJlZ2lzdGVyLCBGUFJlZ2lzdGVySUQob3AyKzEpKTsKKyNlbmRpZgorICAgICAgICBtX2Fzc2Vt
Ymxlci5vckluc24oY21wVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVn
aXN0ZXIpOworI2lmIFdURl9NSVBTX0lTQV9SRVYoMikgJiYgV1RGX01JUFNfRlA2NAorICAgICAg
ICBtX2Fzc2VtYmxlci5tdGhjMShjbXBUZW1wUmVnaXN0ZXIsIGRlc3QpOworI2Vsc2UKKyAgICAg
ICAgbV9hc3NlbWJsZXIubXRjMShjbXBUZW1wUmVnaXN0ZXIsIEZQUmVnaXN0ZXJJRChkZXN0KzEp
KTsKKyNlbmRpZgorICAgIH0KKwogICAgIHZvaWQgc3ViRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMs
IEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3ViZChkZXN0
LCBkZXN0LCBzcmMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDczNjZjZjFjYmExNS4uZjM2MGIw
Y2U3M2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0xMTgxLDcgKzExODEsOCBAQCBib29sIEFi
c3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNp
Z25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgaWYgKGxlZnQgJiYgcmlnaHQgJiYgbGVmdC5p
c051bWJlcigpICYmIHJpZ2h0LmlzTnVtYmVyKCkpIHsKICAgICAgICAgICAgICAgICBkb3VibGUg
YSA9IGxlZnQuYXNOdW1iZXIoKTsKICAgICAgICAgICAgICAgICBkb3VibGUgYiA9IHJpZ2h0LmFz
TnVtYmVyKCk7Ci0gICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNEb3VibGVOdW1i
ZXIoYSA8IGIgPyBhIDogKGIgPD0gYSA/IGIgOiBhICsgYikpKTsKKyAgICAgICAgICAgICAgICBk
b3VibGUgcmVzdWx0ID0gYSA8IGIgfHwgKCFhICYmICFiICYmIHN0ZDo6c2lnbmJpdChhKSkgPyBh
IDogKGIgPD0gYSA/IGIgOiBhICsgYik7CisgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9k
ZSwganNEb3VibGVOdW1iZXIocmVzdWx0KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUobm9kZSwgCkBAIC0x
MjEwLDcgKzEyMTEsOCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgaWYg
KGxlZnQgJiYgcmlnaHQgJiYgbGVmdC5pc051bWJlcigpICYmIHJpZ2h0LmlzTnVtYmVyKCkpIHsK
ICAgICAgICAgICAgICAgICBkb3VibGUgYSA9IGxlZnQuYXNOdW1iZXIoKTsKICAgICAgICAgICAg
ICAgICBkb3VibGUgYiA9IHJpZ2h0LmFzTnVtYmVyKCk7Ci0gICAgICAgICAgICAgICAgc2V0Q29u
c3RhbnQobm9kZSwganNEb3VibGVOdW1iZXIoYSA+IGIgPyBhIDogKGIgPj0gYSA/IGIgOiBhICsg
YikpKTsKKyAgICAgICAgICAgICAgICBkb3VibGUgcmVzdWx0ID0gYSA+IGIgfHwgKCFhICYmICFi
ICYmICFzdGQ6OnNpZ25iaXQoYSkpID8gYSA6IChiID49IGEgPyBiIDogYSArIGIpOworICAgICAg
ICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzRG91YmxlTnVtYmVyKHJlc3VsdCkpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2V0Tm9uQ2Vs
bFR5cGVGb3JOb2RlKG5vZGUsIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAppbmRleCA4OGFiZTBlM2I4NjAuLjA2ZTU0ZTRlMzY2MiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTYx
ODAsMTAgKzYxODAsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTWluTWF4
KE5vZGUqIG5vZGUpCiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGRvbmU7CiAK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3BFcXVhbCA9IG1faml0LmJyYW5jaERvdWJs
ZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlRXF1YWxBbmRPcmRlcmVkLCBvcDFGUFIsIG9wMkZQUik7
CisKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3AxTGVzcyA9IG1faml0LmJyYW5jaERv
dWJsZShub2RlLT5vcCgpID09IEFyaXRoTWluID8gTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUxlc3NU
aGFuQW5kT3JkZXJlZCA6IE1hY3JvQXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbkFuZE9yZGVy
ZWQsIG9wMUZQUiwgb3AyRlBSKTsKIAotICAgICAgICAvLyBvcDIgaXMgZWF0aGVyIHRoZSBsZXNz
ZXIgb25lIG9yIG9uZSBvZiB0aGVuIGlzIE5hTgotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBvcDJMZXNzID0gbV9qaXQuYnJhbmNoRG91YmxlKG5vZGUtPm9wKCkgPT0gQXJpdGhNaW4gPyBN
YWNyb0Fzc2VtYmxlcjo6RG91YmxlR3JlYXRlclRoYW5PckVxdWFsQW5kT3JkZXJlZCA6IE1hY3Jv
QXNzZW1ibGVyOjpEb3VibGVMZXNzVGhhbk9yRXF1YWxBbmRPcmRlcmVkLCBvcDFGUFIsIG9wMkZQ
Uik7CisgICAgICAgIC8vIG9wMiBpcyBlaXRoZXIgdGhlIGxlc3NlciBvbmUgb3Igb25lIG9mIHRo
ZW4gaXMgTmFOCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9wMkxlc3MgPSBtX2ppdC5i
cmFuY2hEb3VibGUobm9kZS0+b3AoKSA9PSBBcml0aE1pbiA/IE1hY3JvQXNzZW1ibGVyOjpEb3Vi
bGVHcmVhdGVyVGhhbkFuZE9yZGVyZWQgOiBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVzc1RoYW5B
bmRPcmRlcmVkLCBvcDFGUFIsIG9wMkZQUik7CiAKICAgICAgICAgLy8gVW5vcmRlcmVkIGNhc2Uu
IFdlIGRvbid0IGtub3cgd2hpY2ggb2Ygb3AxLCBvcDIgaXMgTmFOLiBNYW51ZmFjdHVyZSBOYU4g
YnkgYWRkaW5nIAogICAgICAgICAvLyBvcDEgKyBvcDIgYW5kIHB1dHRpbmcgaXQgaW50byByZXN1
bHQuCkBAIC02MjAxLDYgKzYyMDMsMTUgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFy
aXRoTWluTWF4KE5vZGUqIG5vZGUpCiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgb3AxTGVz
cy5saW5rKCZtX2ppdCk7CiAKKyAgICAgICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKKwor
ICAgICAgICAvLyBJZiBib3RoIGRvdWJsZXMgYXJlIGVxdWFsIHRoZXJlJ3MgYSBjaGFuY2Ugb25l
IG9mIHRoZW0gaXMgbmVnYXRpdmUgemVybywgc28gY29uc2lkZXIgdGhhdCBjYXNlLgorICAgICAg
ICBvcEVxdWFsLmxpbmsoJm1faml0KTsKKyAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gQXJpdGhN
YXgpCisgICAgICAgICAgICBtX2ppdC5hbmREb3VibGUob3AxRlBSLCBvcDJGUFIsIHJlc3VsdEZQ
Uik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1faml0Lm9yRG91YmxlKG9wMUZQUiwgb3Ay
RlBSLCByZXN1bHRGUFIpOworCiAgICAgICAgIGRvbmUubGluaygmbV9qaXQpOwogCiAgICAgICAg
IGRvdWJsZVJlc3VsdChyZXN1bHRGUFIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDUzMDA2Y2JlMzExYi4uZDYxZGE1NTZlOGZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBA
IC0yODY1LDI0ICsyODY1LDM4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRG91YmxlUmVwVXNl
OiB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigp
KTsKLSAgICAgICAgICAgIAorCisgICAgICAgICAgICBMQmFzaWNCbG9jayBpc0VxdWFsID0gbV9v
dXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdEVxdWFsID0gbV9vdXQu
bmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdExlc3NUaGFuID0gbV9vdXQu
bmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0
Lm5ld0Jsb2NrKCk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJv
bUJsb2NrLCAyPiByZXN1bHRzOwogICAgICAgICAgICAgCiAgICAgICAgICAgICByZXN1bHRzLmFw
cGVuZChtX291dC5hbmNob3IobGVmdCkpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAg
ICAgICAgICAgICAgIG1fb3V0LmRvdWJsZUVxdWFsKGxlZnQsIHJpZ2h0KSwKKyAgICAgICAgICAg
ICAgICAgICAgcmFyZWx5KGlzRXF1YWwpLCB1c3VhbGx5KG5vdEVxdWFsKSk7CisKKyAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNFcXVhbCwgbm90RXF1
YWwpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKAorICAgICAgICAg
ICAgICAgIG1fbm9kZS0+b3AoKSA9PSBBcml0aE1pbgorICAgICAgICAgICAgICAgICAgICA/IG1f
b3V0LmJpdE9yKGxlZnQsIHJpZ2h0KQorICAgICAgICAgICAgICAgICAgICA6IG1fb3V0LmJpdEFu
ZChsZWZ0LCByaWdodCkpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsK
KworICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RFcXVhbCwgbm90TGVz
c1RoYW4pOwogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fbm9k
ZS0+b3AoKSA9PSBBcml0aE1pbgogICAgICAgICAgICAgICAgICAgICA/IG1fb3V0LmRvdWJsZUxl
c3NUaGFuKGxlZnQsIHJpZ2h0KQogICAgICAgICAgICAgICAgICAgICA6IG1fb3V0LmRvdWJsZUdy
ZWF0ZXJUaGFuKGxlZnQsIHJpZ2h0KSwKICAgICAgICAgICAgICAgICB1bnN1cmUoY29udGludWF0
aW9uKSwgdW5zdXJlKG5vdExlc3NUaGFuKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIExC
YXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90TGVzc1RoYW4sIGNvbnRpbnVh
dGlvbik7CisgICAgICAgICAgICBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdExlc3NUaGFu
LCBjb250aW51YXRpb24pOwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9y
KG1fb3V0LnNlbGVjdCgKICAgICAgICAgICAgICAgICBtX25vZGUtPm9wKCkgPT0gQXJpdGhNaW4K
LSAgICAgICAgICAgICAgICAgICAgPyBtX291dC5kb3VibGVHcmVhdGVyVGhhbk9yRXF1YWwobGVm
dCwgcmlnaHQpCi0gICAgICAgICAgICAgICAgICAgIDogbV9vdXQuZG91YmxlTGVzc1RoYW5PckVx
dWFsKGxlZnQsIHJpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgPyBtX291dC5kb3VibGVHcmVh
dGVyVGhhbihsZWZ0LCByaWdodCkKKyAgICAgICAgICAgICAgICAgICAgOiBtX291dC5kb3VibGVM
ZXNzVGhhbihsZWZ0LCByaWdodCksCiAgICAgICAgICAgICAgICAgcmlnaHQsIG1fb3V0LmNvbnN0
RG91YmxlKFBOYU4pKSkpOwogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwog
ICAgICAgICAgICAgCi0tIAoyLjI2LjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402636</attachid>
            <date>2020-06-24 05:01:02 -0700</date>
            <delta_ts>2020-07-07 03:19:23 -0700</delta_ts>
            <desc>Math.{max,min} fixes, v2</desc>
            <filename>0001-Math.max-can-yield-the-wrong-result-for-max-0-0.patch</filename>
            <type>text/plain</type>
            <size>17804</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBmMTU0YzY1MWU2NWJmMTY5MjdiYmI2MmU0ZjE0M2MzODRiZTc0YmMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogTW9uLCAxNyBGZWIgMjAyMCAxMjoyNTowOSArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIE1hdGgubWF4KCkgY2FuIHlpZWxkIHRoZSB3cm9uZyByZXN1bHQgZm9yIG1heCgwLCAt
MCkuCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDU3CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkpTVGVzdHM6CgpBZGQgYSB0ZXN0IHRvIG1ha2Ugc3Vy
ZSB3ZSBmb2xsb3cgdGhlIHNwZWMgaW4gTWF0aC57bWF4LG1pbn0gYW5kCi0wLjAgPCAwLjAuCgoq
IHN0cmVzcy9tYXRoLW1heC1taW4tbmVnYXRpdmUtemVyby5qczogQWRkZWQuCihhc3NlcnQpOgoo
dGVzdCk6CgpTb3VyY2UvSmF2YVNjcmlwdENvcmU6CgpUaGUgaW1wbGVtZW50YXRpb25zIGZvciBN
YXRoLnttYXgsbWlufSBpbiBib3RoIERGRyBhbmQgRlRMIGFyZSBub3QKY29uc2lkZXJpbmcgdGhl
IGZhY3QgdGhhdCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMgLTAuMCA8IDAuMCAod2hpY2gKaXMgbm90
IHRydWUgZm9yIG5vcm1hbCBkb3VibGUgYXJpdGhtZXRpYykuClNlZTogaHR0cHM6Ly90YzM5LmVz
L2VjbWEyNjIvI3NlYy1udW1lcmljLXR5cGVzLW51bWJlci1sZXNzVGhhbgoKQmV5b25kIHR3ZWFr
aW5nIHRoZSBhbGdvcml0aG1zIHVzZWQgaW4gREZHIGFuZCBGVEwgd2UgbXVzdAppbXBsZW1lbnQg
dGhlIGFuZC9vciBvcGVyYXRpb25zIG9uIGRvdWJsZSBpbiBNSVBTIGFuZCBBUk12Nywgc2luY2UK
dGhlc2UgYXJlIHVzZWQgaW4gdGhlIERGRyBKSVQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiAtMC4w
IGFuZCAwLjAuCgoqIGFzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgooSlNDOjpBUk12N0Fzc2Vt
Ymxlcjo6dmFuZCk6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2b3JyKToKKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5oOgooSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjphbmREb3VibGUp
OgooSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpvckRvdWJsZSk6CiogYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyTUlQUy5oOgooSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmFuZERvdWJsZSk6CihK
U0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6b3JEb3VibGUpOgoqIGFzc2VtYmxlci90ZXN0bWFzbS5j
cHA6CihKU0M6OnRlc3RBbmRPckRvdWJsZSk6CihKU0M6OnJ1bik6CiogZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmg6IGNvbnNpZGVyIHRoYXQgLTAuMCA8IDAuMCBwZXIgdGhlIEVD
TUFTY3JpcHQgc3BlYy4KKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3Rh
dGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgoqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6IGRp
dHRvLgooSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNaW5NYXgpOgoqIGZ0
bC9GVExMb3dlckRGR1RvQjMuY3BwOiBkaXR0by4KKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9C
Mzo6Y29tcGlsZUFyaXRoTWluT3JNYXgpOgotLS0KIEpTVGVzdHMvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrCiBKU1Rlc3RzL3N0cmVzcy9tYXRoLW1heC1t
aW4tbmVnYXRpdmUtemVyby5qcyAgfCAxNiArKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICB8IDM1ICsrKysrKysrKysrKwogLi4uL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIHwgMTQgKysrKysKIC4uLi9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oICAgICAgICAgICB8IDEwICsrKysKIC4uLi9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJNSVBTLmggICAgICAgICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcCAgfCA1MyArKysrKysr
KysrKysrKysrKysrCiAuLi4vZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggICAg
ICAgfCAgNiArKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
ICB8IDE1ICsrKysrLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwIHwgMzYgKysrKysrKysrLS0tLQogMTAgZmlsZXMgY2hhbmdlZCwgMjMzIGluc2VydGlvbnMo
KyksIDE0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IEpTVGVzdHMvc3RyZXNzL21h
dGgtbWF4LW1pbi1uZWdhdGl2ZS16ZXJvLmpzCgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VM
b2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA3NzRkNmU5ODJlZjkuLmNjN2M1NzUyNzY0OSAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMC0wNi0yNCAgWGFuIExvcGV6ICA8eGFuQGlnYWxpYS5jb20+CisK
KyAgICAgICAgTWF0aC5tYXgoKSBjYW4geWllbGQgdGhlIHdyb25nIHJlc3VsdCBmb3IgbWF4KDAs
IC0wKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBhIHRlc3QgdG8gbWFrZSBzdXJlIHdlIGZvbGxvdyB0aGUgc3BlYyBpbiBNYXRoLnttYXgsbWlu
fSBhbmQKKyAgICAgICAgLTAuMCA8IDAuMC4KKworICAgICAgICAqIHN0cmVzcy9tYXRoLW1heC1t
aW4tbmVnYXRpdmUtemVyby5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnQpOgorICAgICAgICAo
dGVzdCk6CisKIDIwMjAtMDYtMjQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBbSlNDXSBDbG9iYmVyaXplIG1pc3NlcyBgd3JpdGUoSGVhcClgIHJlcG9ydCBp
biBzb21lIG5vZGVzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9tYXRoLW1heC1taW4tbmVn
YXRpdmUtemVyby5qcyBiL0pTVGVzdHMvc3RyZXNzL21hdGgtbWF4LW1pbi1uZWdhdGl2ZS16ZXJv
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjlkMjA4MWUxOWY1
Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZl
LXplcm8uanMKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVzdE1heCh4LCB5KSB7CisgICAg
cmV0dXJuIE1hdGgubWF4KHgsIHkpOworfQorCitmdW5jdGlvbiB0ZXN0TWluKHgsIHkpIHsKKyAg
ICByZXR1cm4gTWF0aC5taW4oeCwgeSk7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsg
KytpKSB7CisgICAgeCA9IDEwMC90ZXN0TWF4KDAuMCwgLTAuMCk7CisgICAgaWYgKHggPCAwKQor
ICAgICAgICB0aHJvdyAiRkFJTEVEIjsKKyAgICB4ID0gMTAwL3Rlc3RNaW4oMC4wLCAtMC4wKTsK
KyAgICBpZiAoeCA+IDApCisgICAgICAgIHRocm93ICJGQUlMRUQiOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKaW5kZXggZDllNGFkYzUyM2FlLi4yMWQ4OWI2YWY0ZjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA2LTI0ICBYYW4gTMOzcGV6ICA8eGFu
QGlnYWxpYS5jb20+CisKKyAgICAgICAgTWF0aC5tYXgoKSBjYW4geWllbGQgdGhlIHdyb25nIHJl
c3VsdCBmb3IgbWF4KDAsIC0wKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbnMgZm9yIE1hdGgue21heCxtaW59IGluIGJv
dGggREZHIGFuZCBGVEwgYXJlIG5vdAorICAgICAgICBjb25zaWRlcmluZyB0aGUgZmFjdCB0aGF0
IGFjY29yZGluZyB0byB0aGUgc3BlYyAtMC4wIDwgMC4wICh3aGljaAorICAgICAgICBpcyBub3Qg
dHJ1ZSBmb3Igbm9ybWFsIGRvdWJsZSBhcml0aG1ldGljKS4KKyAgICAgICAgU2VlOiBodHRwczov
L3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW51bWVyaWMtdHlwZXMtbnVtYmVyLWxlc3NUaGFuCisKKyAg
ICAgICAgQmV5b25kIHR3ZWFraW5nIHRoZSBhbGdvcml0aG1zIHVzZWQgaW4gREZHIGFuZCBGVEwg
d2UgbXVzdAorICAgICAgICBpbXBsZW1lbnQgdGhlIGFuZC9vciBvcGVyYXRpb25zIG9uIGRvdWJs
ZSBpbiBNSVBTIGFuZCBBUk12Nywgc2luY2UKKyAgICAgICAgdGhlc2UgYXJlIHVzZWQgaW4gdGhl
IERGRyBKSVQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiAtMC4wIGFuZCAwLjAuCisKKyAgICAgICAg
KiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJs
ZXI6OnZhbmQpOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6dm9ycik6CisgICAgICAg
ICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJBUk12Nzo6YW5kRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk12Nzo6b3JEb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMu
aDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjphbmREb3VibGUpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Om9yRG91YmxlKToKKyAgICAgICAgKiBhc3NlbWJs
ZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAoSlNDOjp0ZXN0QW5kT3JEb3VibGUpOgorICAgICAg
ICAoSlNDOjpydW4pOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oOiBjb25zaWRlciB0aGF0IC0wLjAgPCAwLjAgcGVyIHRoZSBFQ01BU2NyaXB0IHNwZWMuCisg
ICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46
OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOiBk
aXR0by4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTWlu
TWF4KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDogZGl0dG8uCisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVBcml0aE1pbk9yTWF4KToKKwog
MjAyMC0wNi0yNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAg
IFtKU0NdIENsb2JiZXJpemUgbWlzc2VzIGB3cml0ZShIZWFwKWAgcmVwb3J0IGluIHNvbWUgbm9k
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3Nl
bWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIu
aAppbmRleCAzMTQ0YTI5MjUzMWEuLjAyNWE0NzM5MmE0MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaApAQCAtNTk1LDYgKzU5NSw4IEBA
IHByaXZhdGU6CiAgICAgICAgIE9QX1ZTUVJUX1QxICAgICA9IDB4RUVCMCwKICAgICAgICAgT1Bf
VkNWVFNEX1QxICAgID0gMHhFRUIwLAogICAgICAgICBPUF9WQ1ZURFNfVDEgICAgPSAweEVFQjAs
CisgICAgICAgIE9QX1ZBTkRfVDEgICAgICA9IDB4RUYwMCwKKyAgICAgICAgT1BfVk9SUl9UMSAg
ICAgID0gMHhFRjIwLAogICAgICAgICBPUF9CX1QzYSAgICAgICAgPSAweEYwMDAsCiAgICAgICAg
IE9QX0JfVDRhICAgICAgICA9IDB4RjAwMCwKICAgICAgICAgT1BfQU5EX2ltbV9UMSAgID0gMHhG
MDAwLApAQCAtNjUzLDYgKzY1NSw4IEBAIHByaXZhdGU6CiAgICAgfSBPcGNvZGVJRDE7CiAKICAg
ICB0eXBlZGVmIGVudW0geworICAgICAgICBPUF9WQU5EX1QxYiAgICAgID0gMHgwMDEwLAorICAg
ICAgICBPUF9WT1JSX1QxYiAgICAgID0gMHgwMDEwLAogICAgICAgICBPUF9WQUREX1QyYiAgICAg
ID0gMHgwQTAwLAogICAgICAgICBPUF9WRElWYiAgICAgICAgID0gMHgwQTAwLAogICAgICAgICBP
UF9GTERTYiAgICAgICAgID0gMHgwQTAwLApAQCAtMTgyMyw2ICsxODI3LDE2IEBAIHB1YmxpYzoK
ICAgICB9CiAjZW5kaWYKIAorICAgIHZvaWQgdmFuZChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQ
RG91YmxlUmVnaXN0ZXJJRCBybiwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQorICAgIHsKKyAgICAg
ICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkFORF9UMSwgT1BfVkFORF9UMWIsIHRydWUsIHJuLCBy
ZCwgcm0pOworICAgIH0KKworICAgIHZvaWQgdm9ycihGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQ
RG91YmxlUmVnaXN0ZXJJRCBybiwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQorICAgIHsKKyAgICAg
ICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVk9SUl9UMSwgT1BfVk9SUl9UMWIsIHRydWUsIHJuLCBy
ZCwgcm0pOworICAgIH0KKwogICAgIHZvaWQgdmFkZChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQ
RG91YmxlUmVnaXN0ZXJJRCBybiwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQogICAgIHsKICAgICAg
ICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVkFERF9UMiwgT1BfVkFERF9UMmIsIHRydWUsIHJuLCBy
ZCwgcm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNdjcuaAppbmRleCA3MDQwMzZjMTc1ZDAuLjVmYjdjZGZiYmU5NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmgKQEAgLTExNjIsNiArMTE2MiwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVy
LnZtdWwoZGVzdCwgb3AxLCBvcDIpOwogICAgIH0KIAorICAgIHZvaWQgYW5kRG91YmxlKEZQUmVn
aXN0ZXJJRCBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsK
KyAgICAgICAgbV9hc3NlbWJsZXIudmFuZChvcDEsIG9wMiwgZGVzdCk7CisgICAgfQorCisgICAg
dm9pZCBvckRvdWJsZShGUFJlZ2lzdGVySUQgb3AxLCBGUFJlZ2lzdGVySUQgb3AyLCBGUFJlZ2lz
dGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnZvcnIob3AxLCBvcDIsIGRl
c3QpOworICAgIH0KKwogICAgIHZvaWQgc3FydERvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnZzcXJ0KGRlc3QsIHNy
Yyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlck1JUFMuaAppbmRleCAyZGNmNzJiYWM1MWYuLjNlZDIzNmI1YmNiMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCkBA
IC0zMDgwLDYgKzMwODAsNTQgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5hZGRkKGRl
c3QsIGRlc3QsIGZwVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKKyAgICAvLyBhbmREb3VibGUgYW5k
IG9yRG91YmxlIGFyZSBhIGJpdCBjb252b2x1dGVkIHRvIGltcGxlbWVudAorICAgIC8vIGJlY2F1
c2Ugd2UgZG9uJ3QgaGF2ZSBGUCBpbnN0cnVjdGlvbnMgZm9yIHRob3NlCisgICAgLy8gb3BlcmF0
aW9ucy4gVGhhdCBtZWFucyB3ZSdsbCBoYXZlIHRvIGdvIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4K
KyAgICAvLyB0aGUgRlBVIGFuZCB0aGUgQ1BVLCB3aGljaCBhY2NvdW50cyBmb3IgbW9zdCBvZiB0
aGUgY29kZSBoZXJlLgorICAgIHZvaWQgYW5kRG91YmxlKEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVn
aXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJs
ZXIubWZjMShpbW1UZW1wUmVnaXN0ZXIsIG9wMSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEo
ZGF0YVRlbXBSZWdpc3Rlciwgb3AyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuYW5kSW5zbihjbXBU
ZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAg
IG1fYXNzZW1ibGVyLm10YzEoY21wVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKworI2lmIFdURl9NSVBT
X0lTQV9SRVYoMikgJiYgV1RGX01JUFNfRlA2NAorICAgICAgICBtX2Fzc2VtYmxlci5tZmhjMShp
bW1UZW1wUmVnaXN0ZXIsIG9wMSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1maGMxKGRhdGFUZW1w
UmVnaXN0ZXIsIG9wMik7CisjZWxzZQorICAgICAgICBtX2Fzc2VtYmxlci5tZmMxKGltbVRlbXBS
ZWdpc3RlciwgRlBSZWdpc3RlcklEKG9wMSsxKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEo
ZGF0YVRlbXBSZWdpc3RlciwgRlBSZWdpc3RlcklEKG9wMisxKSk7CisjZW5kaWYKKyAgICAgICAg
bV9hc3NlbWJsZXIuYW5kSW5zbihjbXBUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3RlciwgZGF0
YVRlbXBSZWdpc3Rlcik7CisjaWYgV1RGX01JUFNfSVNBX1JFVigyKSAmJiBXVEZfTUlQU19GUDY0
CisgICAgICAgIG1fYXNzZW1ibGVyLm10aGMxKGNtcFRlbXBSZWdpc3RlciwgZGVzdCk7CisjZWxz
ZQorICAgICAgICBtX2Fzc2VtYmxlci5tdGMxKGNtcFRlbXBSZWdpc3RlciwgRlBSZWdpc3RlcklE
KGRlc3QrMSkpOworI2VuZGlmCisgICAgfQorCisgICAgdm9pZCBvckRvdWJsZShGUFJlZ2lzdGVy
SUQgb3AxLCBGUFJlZ2lzdGVySUQgb3AyLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAg
ICAgIG1fYXNzZW1ibGVyLm1mYzEoaW1tVGVtcFJlZ2lzdGVyLCBvcDEpOworICAgICAgICBtX2Fz
c2VtYmxlci5tZmMxKGRhdGFUZW1wUmVnaXN0ZXIsIG9wMik7CisgICAgICAgIG1fYXNzZW1ibGVy
Lm9ySW5zbihjbXBUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rl
cik7CisgICAgICAgIG1fYXNzZW1ibGVyLm10YzEoY21wVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKwor
I2lmIFdURl9NSVBTX0lTQV9SRVYoMikgJiYgV1RGX01JUFNfRlA2NAorICAgICAgICBtX2Fzc2Vt
Ymxlci5tZmhjMShpbW1UZW1wUmVnaXN0ZXIsIG9wMSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1m
aGMxKGRhdGFUZW1wUmVnaXN0ZXIsIG9wMik7CisjZWxzZQorICAgICAgICBtX2Fzc2VtYmxlci5t
ZmMxKGltbVRlbXBSZWdpc3RlciwgRlBSZWdpc3RlcklEKG9wMSsxKSk7CisgICAgICAgIG1fYXNz
ZW1ibGVyLm1mYzEoZGF0YVRlbXBSZWdpc3RlciwgRlBSZWdpc3RlcklEKG9wMisxKSk7CisjZW5k
aWYKKyAgICAgICAgbV9hc3NlbWJsZXIub3JJbnNuKGNtcFRlbXBSZWdpc3RlciwgaW1tVGVtcFJl
Z2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyNpZiBXVEZfTUlQU19JU0FfUkVWKDIpICYmIFdU
Rl9NSVBTX0ZQNjQKKyAgICAgICAgbV9hc3NlbWJsZXIubXRoYzEoY21wVGVtcFJlZ2lzdGVyLCBk
ZXN0KTsKKyNlbHNlCisgICAgICAgIG1fYXNzZW1ibGVyLm10YzEoY21wVGVtcFJlZ2lzdGVyLCBG
UFJlZ2lzdGVySUQoZGVzdCsxKSk7CisjZW5kaWYKKyAgICB9CisKICAgICB2b2lkIHN1YkRvdWJs
ZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1f
YXNzZW1ibGVyLnN1YmQoZGVzdCwgZGVzdCwgc3JjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggZGFiYjgxOTJmNzA3Li40MjZmNzY0MGQ4NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCkBAIC0y
MjkxLDYgKzIyOTEsNTcgQEAgdm9pZCB0ZXN0T3JJbW1NZW0oKQogICAgIENIRUNLX0VRKG1lbW9y
eUxvY2F0aW9uLCAweDEyMzQxMjM0KTsKIH0KIAordm9pZCB0ZXN0QW5kT3JEb3VibGUoKQorewor
ICAgIGRvdWJsZSBhcmcxLCBhcmcyOworCisgICAgYXV0byBhbmREb3VibGUgPSBjb21waWxlKFsm
XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0
KTsKKyAgICAgICAgaml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZh
cmcxKSwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgIGppdC5sb2FkRG91YmxlKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cigmYXJnMiksIEZQUkluZm86OmZwUmVnVDIpOworCisgICAgICAg
IGppdC5hbmREb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMiwgRlBSSW5m
bzo6cmV0dXJuVmFsdWVGUFIpOworCisgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7
CisgICAgICAgIGppdC5yZXQoKTsKKyAgICB9KTsKKworICAgIGFyZzEgPSAwLjA7CisgICAgYXJn
MiA9IDAuMDsKKyAgICBDSEVDS19FUShpbnZva2U8ZG91YmxlPihhbmREb3VibGUpLCAwLjApOwor
CisgICAgYXJnMSA9IDAuMDsKKyAgICBhcmcyID0gLTAuMDsKKyAgICBDSEVDS19FUShpbnZva2U8
ZG91YmxlPihhbmREb3VibGUpLCAwLjApOworCisgICAgYXJnMSA9IC0wLjA7CisgICAgYXJnMiA9
IC0wLjA7CisgICAgQ0hFQ0tfRVEoaW52b2tlPGRvdWJsZT4oYW5kRG91YmxlKSwgLTAuMCk7CisK
KyAgICBhdXRvIG9yRG91YmxlID0gY29tcGlsZShbJl0gKENDYWxsSGVscGVycyYgaml0KSB7Cisg
ICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisgICAgICAgIGppdC5sb2FkRG91Ymxl
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmYXJnMSksIEZQUkluZm86OmZwUmVnVDEpOwor
ICAgICAgICBqaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmFyZzIp
LCBGUFJJbmZvOjpmcFJlZ1QyKTsKKworICAgICAgICBqaXQub3JEb3VibGUoRlBSSW5mbzo6ZnBS
ZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMiwgRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIpOworCisgICAg
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CisgICAgICAgIGppdC5yZXQoKTsKKyAgICB9
KTsKKworICAgIGFyZzEgPSAwLjA7CisgICAgYXJnMiA9IC0wLjA7CisgICAgQ0hFQ0tfRVEoaW52
b2tlPGRvdWJsZT4ob3JEb3VibGUpLCAtMC4wKTsKKworICAgIGFyZzEgPSAtMC4wOworICAgIGFy
ZzIgPSAtMC4wOworICAgIENIRUNLX0VRKGludm9rZTxkb3VibGU+KG9yRG91YmxlKSwgLTAuMCk7
CisKKyAgICBhcmcxID0gMC4wOworICAgIGFyZzIgPSAwLjA7CisgICAgQ0hFQ0tfRVEoaW52b2tl
PGRvdWJsZT4ob3JEb3VibGUpLCAwLjApOworfQorCiB2b2lkIHRlc3RCeXRlU3dhcCgpCiB7CiAj
aWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQpAQCAtMjY1Miw2ICsyNzAzLDggQEAgdm9pZCBy
dW4oY29uc3QgY2hhciogZmlsdGVyKQogCiAgICAgUlVOKHRlc3RPckltbU1lbSgpKTsKIAorICAg
IFJVTih0ZXN0QW5kT3JEb3VibGUoKSk7CisKICAgICBpZiAodGFza3MuaXNFbXB0eSgpKQogICAg
ICAgICB1c2FnZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggMDU4YzdjMjY2ZWQ2Li5hMWIw
MTUzZjkzM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTExODEsNyArMTE4MSw4IEBAIGJvb2wg
QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVu
c2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgICAgICBpZiAobGVmdCAmJiByaWdodCAmJiBsZWZ0
LmlzTnVtYmVyKCkgJiYgcmlnaHQuaXNOdW1iZXIoKSkgewogICAgICAgICAgICAgICAgIGRvdWJs
ZSBhID0gbGVmdC5hc051bWJlcigpOwogICAgICAgICAgICAgICAgIGRvdWJsZSBiID0gcmlnaHQu
YXNOdW1iZXIoKTsKLSAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0RvdWJsZU51
bWJlcihhIDwgYiA/IGEgOiAoYiA8PSBhID8gYiA6IGEgKyBiKSkpOworICAgICAgICAgICAgICAg
IGRvdWJsZSByZXN1bHQgPSBhIDwgYiB8fCAoIWEgJiYgIWIgJiYgc3RkOjpzaWduYml0KGEpKSA/
IGEgOiAoYiA8PSBhID8gYiA6IGEgKyBiKTsKKyAgICAgICAgICAgICAgICBzZXRDb25zdGFudChu
b2RlLCBqc0RvdWJsZU51bWJlcihyZXN1bHQpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2RlLCAKQEAg
LTEyMTAsNyArMTIxMSw4IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgICAgICBp
ZiAobGVmdCAmJiByaWdodCAmJiBsZWZ0LmlzTnVtYmVyKCkgJiYgcmlnaHQuaXNOdW1iZXIoKSkg
ewogICAgICAgICAgICAgICAgIGRvdWJsZSBhID0gbGVmdC5hc051bWJlcigpOwogICAgICAgICAg
ICAgICAgIGRvdWJsZSBiID0gcmlnaHQuYXNOdW1iZXIoKTsKLSAgICAgICAgICAgICAgICBzZXRD
b25zdGFudChub2RlLCBqc0RvdWJsZU51bWJlcihhID4gYiA/IGEgOiAoYiA+PSBhID8gYiA6IGEg
KyBiKSkpOworICAgICAgICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSBhID4gYiB8fCAoIWEgJiYg
IWIgJiYgIXN0ZDo6c2lnbmJpdChhKSkgPyBhIDogKGIgPj0gYSA/IGIgOiBhICsgYik7CisgICAg
ICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNEb3VibGVOdW1iZXIocmVzdWx0KSk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzZXROb25D
ZWxsVHlwZUZvck5vZGUobm9kZSwgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDNhMTQxOWVlYTk5OS4uY2U5MjMwODc1NzFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAt
NjE4MCwxMCArNjE4MCwxMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNaW5N
YXgoTm9kZSogbm9kZSkKIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgZG9uZTsK
IAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvcEVxdWFsID0gbV9qaXQuYnJhbmNoRG91
YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVFcXVhbEFuZE9yZGVyZWQsIG9wMUZQUiwgb3AyRlBS
KTsKKwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvcDFMZXNzID0gbV9qaXQuYnJhbmNo
RG91YmxlKG5vZGUtPm9wKCkgPT0gQXJpdGhNaW4gPyBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVz
c1RoYW5BbmRPcmRlcmVkIDogTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUdyZWF0ZXJUaGFuQW5kT3Jk
ZXJlZCwgb3AxRlBSLCBvcDJGUFIpOwogCi0gICAgICAgIC8vIG9wMiBpcyBlYXRoZXIgdGhlIGxl
c3NlciBvbmUgb3Igb25lIG9mIHRoZW4gaXMgTmFOCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wIG9wMkxlc3MgPSBtX2ppdC5icmFuY2hEb3VibGUobm9kZS0+b3AoKSA9PSBBcml0aE1pbiA/
IE1hY3JvQXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbk9yRXF1YWxBbmRPcmRlcmVkIDogTWFj
cm9Bc3NlbWJsZXI6OkRvdWJsZUxlc3NUaGFuT3JFcXVhbEFuZE9yZGVyZWQsIG9wMUZQUiwgb3Ay
RlBSKTsKKyAgICAgICAgLy8gb3AyIGlzIGVpdGhlciB0aGUgbGVzc2VyIG9uZSBvciBvbmUgb2Yg
dGhlbiBpcyBOYU4KKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3AyTGVzcyA9IG1faml0
LmJyYW5jaERvdWJsZShub2RlLT5vcCgpID09IEFyaXRoTWluID8gTWFjcm9Bc3NlbWJsZXI6OkRv
dWJsZUdyZWF0ZXJUaGFuQW5kT3JkZXJlZCA6IE1hY3JvQXNzZW1ibGVyOjpEb3VibGVMZXNzVGhh
bkFuZE9yZGVyZWQsIG9wMUZQUiwgb3AyRlBSKTsKIAogICAgICAgICAvLyBVbm9yZGVyZWQgY2Fz
ZS4gV2UgZG9uJ3Qga25vdyB3aGljaCBvZiBvcDEsIG9wMiBpcyBOYU4uIE1hbnVmYWN0dXJlIE5h
TiBieSBhZGRpbmcgCiAgICAgICAgIC8vIG9wMSArIG9wMiBhbmQgcHV0dGluZyBpdCBpbnRvIHJl
c3VsdC4KQEAgLTYyMDEsNiArNjIwMywxNSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
QXJpdGhNaW5NYXgoTm9kZSogbm9kZSkKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBvcDFM
ZXNzLmxpbmsoJm1faml0KTsKIAorICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5qdW1wKCkpOwor
CisgICAgICAgIC8vIElmIGJvdGggZG91YmxlcyBhcmUgZXF1YWwgdGhlcmUncyBhIGNoYW5jZSBv
bmUgb2YgdGhlbSBpcyBuZWdhdGl2ZSB6ZXJvLCBzbyBjb25zaWRlciB0aGF0IGNhc2UuCisgICAg
ICAgIG9wRXF1YWwubGluaygmbV9qaXQpOworICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBBcml0
aE1heCkKKyAgICAgICAgICAgIG1faml0LmFuZERvdWJsZShvcDFGUFIsIG9wMkZQUiwgcmVzdWx0
RlBSKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9qaXQub3JEb3VibGUob3AxRlBSLCBv
cDJGUFIsIHJlc3VsdEZQUik7CisKICAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CiAKICAgICAg
ICAgZG91YmxlUmVzdWx0KHJlc3VsdEZQUiwgbm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggMzlmODVlNTlkYmExLi4xMjUwY2EyYjVi
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
QEAgLTI4NjYsMjUgKzI4NjYsNDEgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEb3VibGVSZXBV
c2U6IHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQy
KCkpOwotICAgICAgICAgICAgCisKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlzRXF1YWwgPSBt
X291dC5uZXdCbG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90RXF1YWwgPSBtX291
dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90TGVzc1RoYW4gPSBtX291
dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9v
dXQubmV3QmxvY2soKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBWZWN0b3I8VmFsdWVG
cm9tQmxvY2ssIDI+IHJlc3VsdHM7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgcmVzdWx0
cy5hcHBlbmQobV9vdXQuYW5jaG9yKGxlZnQpKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgK
KyAgICAgICAgICAgICAgICBtX291dC5kb3VibGVFcXVhbChsZWZ0LCByaWdodCksCisgICAgICAg
ICAgICAgICAgICAgIHJhcmVseShpc0VxdWFsKSwgdXN1YWxseShub3RFcXVhbCkpOworCisgICAg
ICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzRXF1YWwsIG5v
dEVxdWFsKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcigKKyAgICAg
ICAgICAgICAgICBtX25vZGUtPm9wKCkgPT0gQXJpdGhNaW4KKyAgICAgICAgICAgICAgICAgICAg
PyBtX291dC5iaXRPcihsZWZ0LCByaWdodCkKKyAgICAgICAgICAgICAgICAgICAgOiBtX291dC5i
aXRBbmQobGVmdCwgcmlnaHQpKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlv
bik7CisKKyAgICAgICAgICAgIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90RXF1YWwsIG5v
dExlc3NUaGFuKTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBt
X25vZGUtPm9wKCkgPT0gQXJpdGhNaW4KICAgICAgICAgICAgICAgICAgICAgPyBtX291dC5kb3Vi
bGVMZXNzVGhhbihsZWZ0LCByaWdodCkKICAgICAgICAgICAgICAgICAgICAgOiBtX291dC5kb3Vi
bGVHcmVhdGVyVGhhbihsZWZ0LCByaWdodCksCiAgICAgICAgICAgICAgICAgdW5zdXJlKGNvbnRp
bnVhdGlvbiksIHVuc3VyZShub3RMZXNzVGhhbikpOwotICAgICAgICAgICAgCi0gICAgICAgICAg
ICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdExlc3NUaGFuLCBjb250
aW51YXRpb24pOwotICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0
LnNlbGVjdCgKLSAgICAgICAgICAgICAgICBtX25vZGUtPm9wKCkgPT0gQXJpdGhNaW4KLSAgICAg
ICAgICAgICAgICAgICAgPyBtX291dC5kb3VibGVHcmVhdGVyVGhhbk9yRXF1YWwobGVmdCwgcmln
aHQpCi0gICAgICAgICAgICAgICAgICAgIDogbV9vdXQuZG91YmxlTGVzc1RoYW5PckVxdWFsKGxl
ZnQsIHJpZ2h0KSwKLSAgICAgICAgICAgICAgICByaWdodCwgbV9vdXQuY29uc3REb3VibGUoUE5h
TikpKSk7CisKKyAgICAgICAgICAgIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm90TGVzc1Ro
YW4sIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZCgKKyAgICAgICAg
ICAgICAgICBtX291dC5hbmNob3IoCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LnNlbGVjdCgK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZS0+b3AoKSA9PSBBcml0aE1pbgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID8gbV9vdXQuZG91YmxlR3JlYXRlclRoYW4obGVmdCwgcmln
aHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtX291dC5kb3VibGVMZXNzVGhhbihs
ZWZ0LCByaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICByaWdodCwgbV9vdXQuY29uc3RE
b3VibGUoUE5hTikpKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFz
dE5leHQpOwotLSAKMi4yNi4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403678</attachid>
            <date>2020-07-07 03:19:23 -0700</date>
            <delta_ts>2020-07-16 09:34:35 -0700</delta_ts>
            <desc>Math.{max,min} fixes, v3</desc>
            <filename>0001-Math.max-can-yield-the-wrong-result-for-max-0-0.patch</filename>
            <type>text/plain</type>
            <size>17821</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA4NjkyNTc5OGU3ZjI5NjFhOTVjMGFkNmM2ZGQ0MzIxNWQ5MDEzYmUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogTW9uLCAxNyBGZWIgMjAyMCAxMjoyNTowOSArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIE1hdGgubWF4KCkgY2FuIHlpZWxkIHRoZSB3cm9uZyByZXN1bHQgZm9yIG1heCgwLCAt
MCkuCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDU3CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkpTVGVzdHM6CgpBZGQgYSB0ZXN0IHRvIG1ha2Ugc3Vy
ZSB3ZSBmb2xsb3cgdGhlIHNwZWMgaW4gTWF0aC57bWF4LG1pbn0gYW5kCi0wLjAgPCAwLjAuCgoq
IHN0cmVzcy9tYXRoLW1heC1taW4tbmVnYXRpdmUtemVyby5qczogQWRkZWQuCihhc3NlcnQpOgoo
dGVzdCk6CgpTb3VyY2UvSmF2YVNjcmlwdENvcmU6CgpUaGUgaW1wbGVtZW50YXRpb25zIGZvciBN
YXRoLnttYXgsbWlufSBpbiBib3RoIERGRyBhbmQgRlRMIGFyZSBub3QKY29uc2lkZXJpbmcgdGhl
IGZhY3QgdGhhdCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMgLTAuMCA8IDAuMCAod2hpY2gKaXMgbm90
IHRydWUgZm9yIG5vcm1hbCBkb3VibGUgYXJpdGhtZXRpYykuClNlZTogaHR0cHM6Ly90YzM5LmVz
L2VjbWEyNjIvI3NlYy1udW1lcmljLXR5cGVzLW51bWJlci1sZXNzVGhhbgoKQmV5b25kIHR3ZWFr
aW5nIHRoZSBhbGdvcml0aG1zIHVzZWQgaW4gREZHIGFuZCBGVEwgd2UgbXVzdAppbXBsZW1lbnQg
dGhlIGFuZC9vciBvcGVyYXRpb25zIG9uIGRvdWJsZSBpbiBNSVBTIGFuZCBBUk12Nywgc2luY2UK
dGhlc2UgYXJlIHVzZWQgaW4gdGhlIERGRyBKSVQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiAtMC4w
IGFuZCAwLjAuCgoqIGFzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgooSlNDOjpBUk12N0Fzc2Vt
Ymxlcjo6dmFuZCk6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2b3JyKToKKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5oOgooSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjphbmREb3VibGUp
OgooSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpvckRvdWJsZSk6CiogYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyTUlQUy5oOgooSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmFuZERvdWJsZSk6CihK
U0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6b3JEb3VibGUpOgoqIGFzc2VtYmxlci90ZXN0bWFzbS5j
cHA6CihKU0M6OnRlc3RBbmRPckRvdWJsZSk6CihKU0M6OnJ1bik6CiogZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmg6IGNvbnNpZGVyIHRoYXQgLTAuMCA8IDAuMCBwZXIgdGhlIEVD
TUFTY3JpcHQgc3BlYy4KKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3Rh
dGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgoqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6IGRp
dHRvLgooSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNaW5NYXgpOgoqIGZ0
bC9GVExMb3dlckRGR1RvQjMuY3BwOiBkaXR0by4KKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9C
Mzo6Y29tcGlsZUFyaXRoTWluT3JNYXgpOgotLS0KIEpTVGVzdHMvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrCiBKU1Rlc3RzL3N0cmVzcy9tYXRoLW1heC1t
aW4tbmVnYXRpdmUtemVyby5qcyAgfCAxNiArKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICB8IDM1ICsrKysrKysrKysrKwogLi4uL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIHwgMTQgKysrKysKIC4uLi9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oICAgICAgICAgICB8IDEwICsrKysKIC4uLi9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJNSVBTLmggICAgICAgICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcCAgfCA1MyArKysrKysr
KysrKysrKysrKysrCiAuLi4vZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggICAg
ICAgfCAgNiArKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
ICB8IDE1ICsrKysrLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwIHwgMzYgKysrKysrKysrLS0tLQogMTAgZmlsZXMgY2hhbmdlZCwgMjMzIGluc2VydGlvbnMo
KyksIDE0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IEpTVGVzdHMvc3RyZXNzL21h
dGgtbWF4LW1pbi1uZWdhdGl2ZS16ZXJvLmpzCgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VM
b2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA2ZGZmNDI0ZWJkNjIuLmViNzA2NjI1ZjNjMiAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMC0wNy0wNyAgWGFuIExvcGV6ICA8eGFuQGlnYWxpYS5jb20+CisK
KyAgICAgICAgTWF0aC5tYXgoKSBjYW4geWllbGQgdGhlIHdyb25nIHJlc3VsdCBmb3IgbWF4KDAs
IC0wKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBhIHRlc3QgdG8gbWFrZSBzdXJlIHdlIGZvbGxvdyB0aGUgc3BlYyBpbiBNYXRoLnttYXgsbWlu
fSBhbmQKKyAgICAgICAgLTAuMCA8IDAuMC4KKworICAgICAgICAqIHN0cmVzcy9tYXRoLW1heC1t
aW4tbmVnYXRpdmUtemVyby5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnQpOgorICAgICAgICAo
dGVzdCk6CisKIDIwMjAtMDctMDQgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwu
Y29tPgogCiAgICAgICAgICVUeXBlZEFycmF5JS5wcm90b3R5cGUue2luZGV4T2YsbGFzdEluZGV4
T2Z9IGFyZSBub3Qgc3BlYy1wZXJmZWN0CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9tYXRo
LW1heC1taW4tbmVnYXRpdmUtemVyby5qcyBiL0pTVGVzdHMvc3RyZXNzL21hdGgtbWF4LW1pbi1u
ZWdhdGl2ZS16ZXJvLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
YjlkMjA4MWUxOWY1Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvbWF0aC1tYXgt
bWluLW5lZ2F0aXZlLXplcm8uanMKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVzdE1heCh4
LCB5KSB7CisgICAgcmV0dXJuIE1hdGgubWF4KHgsIHkpOworfQorCitmdW5jdGlvbiB0ZXN0TWlu
KHgsIHkpIHsKKyAgICByZXR1cm4gTWF0aC5taW4oeCwgeSk7Cit9CisKK2ZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDsgKytpKSB7CisgICAgeCA9IDEwMC90ZXN0TWF4KDAuMCwgLTAuMCk7CisgICAg
aWYgKHggPCAwKQorICAgICAgICB0aHJvdyAiRkFJTEVEIjsKKyAgICB4ID0gMTAwL3Rlc3RNaW4o
MC4wLCAtMC4wKTsKKyAgICBpZiAoeCA+IDApCisgICAgICAgIHRocm93ICJGQUlMRUQiOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNWE1NGY3ZDZiMjE2Li4xYmUyZDU0ODAwODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA3LTA3ICBYYW4g
TMOzcGV6ICA8eGFuQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWF0aC5tYXgoKSBjYW4geWllbGQg
dGhlIHdyb25nIHJlc3VsdCBmb3IgbWF4KDAsIC0wKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbnMgZm9yIE1hdGgue21h
eCxtaW59IGluIGJvdGggREZHIGFuZCBGVEwgYXJlIG5vdAorICAgICAgICBjb25zaWRlcmluZyB0
aGUgZmFjdCB0aGF0IGFjY29yZGluZyB0byB0aGUgc3BlYyAtMC4wIDwgMC4wICh3aGljaAorICAg
ICAgICBpcyBub3QgdHJ1ZSBmb3Igbm9ybWFsIGRvdWJsZSBhcml0aG1ldGljKS4KKyAgICAgICAg
U2VlOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW51bWVyaWMtdHlwZXMtbnVtYmVyLWxl
c3NUaGFuCisKKyAgICAgICAgQmV5b25kIHR3ZWFraW5nIHRoZSBhbGdvcml0aG1zIHVzZWQgaW4g
REZHIGFuZCBGVEwgd2UgbXVzdAorICAgICAgICBpbXBsZW1lbnQgdGhlIGFuZC9vciBvcGVyYXRp
b25zIG9uIGRvdWJsZSBpbiBNSVBTIGFuZCBBUk12Nywgc2luY2UKKyAgICAgICAgdGhlc2UgYXJl
IHVzZWQgaW4gdGhlIERGRyBKSVQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiAtMC4wIGFuZCAwLjAu
CisKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6
QVJNdjdBc3NlbWJsZXI6OnZhbmQpOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6dm9y
cik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6YW5kRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk12Nzo6b3JEb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlck1JUFMuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjphbmREb3Vi
bGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Om9yRG91YmxlKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAoSlNDOjp0ZXN0QW5kT3JEb3Vi
bGUpOgorICAgICAgICAoSlNDOjpydW4pOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOiBjb25zaWRlciB0aGF0IC0wLjAgPCAwLjAgcGVyIHRoZSBFQ01BU2Ny
aXB0IHNwZWMuCisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwOiBkaXR0by4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUFyaXRoTWluTWF4KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDogZGl0
dG8uCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVBcml0aE1p
bk9yTWF4KToKKwogMjAyMC0wNy0wNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQgc2hvdWxkIHVzZSB0aGUgc2FtZSBxdWV1ZSBh
cyBSdW5Mb29wOjpkaXNwYXRjaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9BUk12N0Fzc2VtYmxlci5oCmluZGV4IDMxNDRhMjkyNTMxYS4uMDI1YTQ3MzkyYTQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCkBA
IC01OTUsNiArNTk1LDggQEAgcHJpdmF0ZToKICAgICAgICAgT1BfVlNRUlRfVDEgICAgID0gMHhF
RUIwLAogICAgICAgICBPUF9WQ1ZUU0RfVDEgICAgPSAweEVFQjAsCiAgICAgICAgIE9QX1ZDVlRE
U19UMSAgICA9IDB4RUVCMCwKKyAgICAgICAgT1BfVkFORF9UMSAgICAgID0gMHhFRjAwLAorICAg
ICAgICBPUF9WT1JSX1QxICAgICAgPSAweEVGMjAsCiAgICAgICAgIE9QX0JfVDNhICAgICAgICA9
IDB4RjAwMCwKICAgICAgICAgT1BfQl9UNGEgICAgICAgID0gMHhGMDAwLAogICAgICAgICBPUF9B
TkRfaW1tX1QxICAgPSAweEYwMDAsCkBAIC02NTMsNiArNjU1LDggQEAgcHJpdmF0ZToKICAgICB9
IE9wY29kZUlEMTsKIAogICAgIHR5cGVkZWYgZW51bSB7CisgICAgICAgIE9QX1ZBTkRfVDFiICAg
ICAgPSAweDAwMTAsCisgICAgICAgIE9QX1ZPUlJfVDFiICAgICAgPSAweDAwMTAsCiAgICAgICAg
IE9QX1ZBRERfVDJiICAgICAgPSAweDBBMDAsCiAgICAgICAgIE9QX1ZESVZiICAgICAgICAgPSAw
eDBBMDAsCiAgICAgICAgIE9QX0ZMRFNiICAgICAgICAgPSAweDBBMDAsCkBAIC0xODIzLDYgKzE4
MjcsMTYgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisgICAgdm9pZCB2YW5kKEZQRG91Ymxl
UmVnaXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklEIHJuLCBGUERvdWJsZVJlZ2lzdGVySUQg
cm0pCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci52ZnBPcChPUF9WQU5EX1QxLCBPUF9WQU5E
X1QxYiwgdHJ1ZSwgcm4sIHJkLCBybSk7CisgICAgfQorCisgICAgdm9pZCB2b3JyKEZQRG91Ymxl
UmVnaXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklEIHJuLCBGUERvdWJsZVJlZ2lzdGVySUQg
cm0pCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci52ZnBPcChPUF9WT1JSX1QxLCBPUF9WT1JS
X1QxYiwgdHJ1ZSwgcm4sIHJkLCBybSk7CisgICAgfQorCiAgICAgdm9pZCB2YWRkKEZQRG91Ymxl
UmVnaXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklEIHJuLCBGUERvdWJsZVJlZ2lzdGVySUQg
cm0pCiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci52ZnBPcChPUF9WQUREX1QyLCBPUF9WQURE
X1QyYiwgdHJ1ZSwgcm4sIHJkLCBybSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDMwOGMxMTc3ZjYyZi4uYzhm
MzM1NWFmMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtMTE2Miw2ICsxMTYyLDE2IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9hc3NlbWJsZXIudm11bChkZXN0LCBvcDEsIG9wMik7CiAgICAgfQogCisgICAgdm9p
ZCBhbmREb3VibGUoRlBSZWdpc3RlcklEIG9wMSwgRlBSZWdpc3RlcklEIG9wMiwgRlBSZWdpc3Rl
cklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci52YW5kKG9wMSwgb3AyLCBkZXN0
KTsKKyAgICB9CisKKyAgICB2b2lkIG9yRG91YmxlKEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0
ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIu
dm9ycihvcDEsIG9wMiwgZGVzdCk7CisgICAgfQorCiAgICAgdm9pZCBzcXJ0RG91YmxlKEZQUmVn
aXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJs
ZXIudnNxcnQoZGVzdCwgc3JjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IGU5MTljZmJmMjI0Yi4uMjRiMTk3Mzk5
N2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJNSVBTLmgKQEAgLTMwODAsNiArMzA4MCw1NCBAQCBwdWJsaWM6CiAgICAgICAgIG1f
YXNzZW1ibGVyLmFkZGQoZGVzdCwgZGVzdCwgZnBUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAorICAg
IC8vIGFuZERvdWJsZSBhbmQgb3JEb3VibGUgYXJlIGEgYml0IGNvbnZvbHV0ZWQgdG8gaW1wbGVt
ZW50CisgICAgLy8gYmVjYXVzZSB3ZSBkb24ndCBoYXZlIEZQIGluc3RydWN0aW9ucyBmb3IgdGhv
c2UKKyAgICAvLyBvcGVyYXRpb25zLiBUaGF0IG1lYW5zIHdlJ2xsIGhhdmUgdG8gZ28gYmFjayBh
bmQgZm9ydGggYmV0d2VlbgorICAgIC8vIHRoZSBGUFUgYW5kIHRoZSBDUFUsIHdoaWNoIGFjY291
bnRzIGZvciBtb3N0IG9mIHRoZSBjb2RlIGhlcmUuCisgICAgdm9pZCBhbmREb3VibGUoRlBSZWdp
c3RlcklEIG9wMSwgRlBSZWdpc3RlcklEIG9wMiwgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgewor
ICAgICAgICBtX2Fzc2VtYmxlci5tZmMxKGltbVRlbXBSZWdpc3Rlciwgb3AxKTsKKyAgICAgICAg
bV9hc3NlbWJsZXIubWZjMShkYXRhVGVtcFJlZ2lzdGVyLCBvcDIpOworICAgICAgICBtX2Fzc2Vt
Ymxlci5hbmRJbnNuKGNtcFRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubXRjMShjbXBUZW1wUmVnaXN0ZXIsIGRlc3Qp
OworCisjaWYgV1RGX01JUFNfSVNBX1JFVigyKSAmJiBXVEZfTUlQU19GUDY0CisgICAgICAgIG1f
YXNzZW1ibGVyLm1maGMxKGltbVRlbXBSZWdpc3Rlciwgb3AxKTsKKyAgICAgICAgbV9hc3NlbWJs
ZXIubWZoYzEoZGF0YVRlbXBSZWdpc3Rlciwgb3AyKTsKKyNlbHNlCisgICAgICAgIG1fYXNzZW1i
bGVyLm1mYzEoaW1tVGVtcFJlZ2lzdGVyLCBGUFJlZ2lzdGVySUQob3AxKzEpKTsKKyAgICAgICAg
bV9hc3NlbWJsZXIubWZjMShkYXRhVGVtcFJlZ2lzdGVyLCBGUFJlZ2lzdGVySUQob3AyKzEpKTsK
KyNlbmRpZgorICAgICAgICBtX2Fzc2VtYmxlci5hbmRJbnNuKGNtcFRlbXBSZWdpc3RlciwgaW1t
VGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyNpZiBXVEZfTUlQU19JU0FfUkVWKDIp
ICYmIFdURl9NSVBTX0ZQNjQKKyAgICAgICAgbV9hc3NlbWJsZXIubXRoYzEoY21wVGVtcFJlZ2lz
dGVyLCBkZXN0KTsKKyNlbHNlCisgICAgICAgIG1fYXNzZW1ibGVyLm10YzEoY21wVGVtcFJlZ2lz
dGVyLCBGUFJlZ2lzdGVySUQoZGVzdCsxKSk7CisjZW5kaWYKKyAgICB9CisKKyAgICB2b2lkIG9y
RG91YmxlKEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZjMShpbW1UZW1wUmVnaXN0ZXIsIG9w
MSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoZGF0YVRlbXBSZWdpc3Rlciwgb3AyKTsKKyAg
ICAgICAgbV9hc3NlbWJsZXIub3JJbnNuKGNtcFRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVy
LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubXRjMShjbXBUZW1wUmVn
aXN0ZXIsIGRlc3QpOworCisjaWYgV1RGX01JUFNfSVNBX1JFVigyKSAmJiBXVEZfTUlQU19GUDY0
CisgICAgICAgIG1fYXNzZW1ibGVyLm1maGMxKGltbVRlbXBSZWdpc3Rlciwgb3AxKTsKKyAgICAg
ICAgbV9hc3NlbWJsZXIubWZoYzEoZGF0YVRlbXBSZWdpc3Rlciwgb3AyKTsKKyNlbHNlCisgICAg
ICAgIG1fYXNzZW1ibGVyLm1mYzEoaW1tVGVtcFJlZ2lzdGVyLCBGUFJlZ2lzdGVySUQob3AxKzEp
KTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZjMShkYXRhVGVtcFJlZ2lzdGVyLCBGUFJlZ2lzdGVy
SUQob3AyKzEpKTsKKyNlbmRpZgorICAgICAgICBtX2Fzc2VtYmxlci5vckluc24oY21wVGVtcFJl
Z2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIpOworI2lmIFdURl9NSVBT
X0lTQV9SRVYoMikgJiYgV1RGX01JUFNfRlA2NAorICAgICAgICBtX2Fzc2VtYmxlci5tdGhjMShj
bXBUZW1wUmVnaXN0ZXIsIGRlc3QpOworI2Vsc2UKKyAgICAgICAgbV9hc3NlbWJsZXIubXRjMShj
bXBUZW1wUmVnaXN0ZXIsIEZQUmVnaXN0ZXJJRChkZXN0KzEpKTsKKyNlbmRpZgorICAgIH0KKwog
ICAgIHZvaWQgc3ViRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3ViZChkZXN0LCBkZXN0LCBzcmMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAppbmRleCAwZWQwYTk4OTlm
ZjIuLjdlNWIwNGU0MDhkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci90ZXN0bWFzbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90
ZXN0bWFzbS5jcHAKQEAgLTIyOTEsNiArMjI5MSw1NyBAQCB2b2lkIHRlc3RPckltbU1lbSgpCiAg
ICAgQ0hFQ0tfRVEobWVtb3J5TG9jYXRpb24sIDB4MTIzNDEyMzQpOwogfQogCit2b2lkIHRlc3RB
bmRPckRvdWJsZSgpCit7CisgICAgZG91YmxlIGFyZzEsIGFyZzI7CisKKyAgICBhdXRvIGFuZERv
dWJsZSA9IGNvbXBpbGUoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICBlbWl0RnVu
Y3Rpb25Qcm9sb2d1ZShqaXQpOworICAgICAgICBqaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoJmFyZzEpLCBGUFJJbmZvOjpmcFJlZ1QxKTsKKyAgICAgICAgaml0Lmxv
YWREb3VibGUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZhcmcyKSwgRlBSSW5mbzo6ZnBS
ZWdUMik7CisKKyAgICAgICAgaml0LmFuZERvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZv
OjpmcFJlZ1QyLCBGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUik7CisKKyAgICAgICAgZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgaml0LnJldCgpOworICAgIH0pOworCisgICAgYXJn
MSA9IDAuMDsKKyAgICBhcmcyID0gMC4wOworICAgIENIRUNLX0VRKGludm9rZTxkb3VibGU+KGFu
ZERvdWJsZSksIDAuMCk7CisKKyAgICBhcmcxID0gMC4wOworICAgIGFyZzIgPSAtMC4wOworICAg
IENIRUNLX0VRKGludm9rZTxkb3VibGU+KGFuZERvdWJsZSksIDAuMCk7CisKKyAgICBhcmcxID0g
LTAuMDsKKyAgICBhcmcyID0gLTAuMDsKKyAgICBDSEVDS19FUShpbnZva2U8ZG91YmxlPihhbmRE
b3VibGUpLCAtMC4wKTsKKworICAgIGF1dG8gb3JEb3VibGUgPSBjb21waWxlKFsmXSAoQ0NhbGxI
ZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKyAgICAg
ICAgaml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZhcmcxKSwgRlBS
SW5mbzo6ZnBSZWdUMSk7CisgICAgICAgIGppdC5sb2FkRG91YmxlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cigmYXJnMiksIEZQUkluZm86OmZwUmVnVDIpOworCisgICAgICAgIGppdC5vckRv
dWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QyLCBGUFJJbmZvOjpyZXR1cm5W
YWx1ZUZQUik7CisKKyAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAg
aml0LnJldCgpOworICAgIH0pOworCisgICAgYXJnMSA9IDAuMDsKKyAgICBhcmcyID0gLTAuMDsK
KyAgICBDSEVDS19FUShpbnZva2U8ZG91YmxlPihvckRvdWJsZSksIC0wLjApOworCisgICAgYXJn
MSA9IC0wLjA7CisgICAgYXJnMiA9IC0wLjA7CisgICAgQ0hFQ0tfRVEoaW52b2tlPGRvdWJsZT4o
b3JEb3VibGUpLCAtMC4wKTsKKworICAgIGFyZzEgPSAwLjA7CisgICAgYXJnMiA9IDAuMDsKKyAg
ICBDSEVDS19FUShpbnZva2U8ZG91YmxlPihvckRvdWJsZSksIDAuMCk7Cit9CisKIHZvaWQgdGVz
dEJ5dGVTd2FwKCkKIHsKICNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCkBAIC0yNjUyLDYg
KzI3MDMsOCBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAKICAgICBSVU4odGVzdE9y
SW1tTWVtKCkpOwogCisgICAgUlVOKHRlc3RBbmRPckRvdWJsZSgpKTsKKwogICAgIGlmICh0YXNr
cy5pc0VtcHR5KCkpCiAgICAgICAgIHVzYWdlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCAw
NThjN2MyNjZlZDYuLmExYjAxNTNmOTMzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMTE4MSw3
ICsxMTgxLDggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6
ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgICAgIGlmIChsZWZ0
ICYmIHJpZ2h0ICYmIGxlZnQuaXNOdW1iZXIoKSAmJiByaWdodC5pc051bWJlcigpKSB7CiAgICAg
ICAgICAgICAgICAgZG91YmxlIGEgPSBsZWZ0LmFzTnVtYmVyKCk7CiAgICAgICAgICAgICAgICAg
ZG91YmxlIGIgPSByaWdodC5hc051bWJlcigpOwotICAgICAgICAgICAgICAgIHNldENvbnN0YW50
KG5vZGUsIGpzRG91YmxlTnVtYmVyKGEgPCBiID8gYSA6IChiIDw9IGEgPyBiIDogYSArIGIpKSk7
CisgICAgICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IGEgPCBiIHx8ICghYSAmJiAhYiAmJiBz
dGQ6OnNpZ25iaXQoYSkpID8gYSA6IChiIDw9IGEgPyBiIDogYSArIGIpOworICAgICAgICAgICAg
ICAgIHNldENvbnN0YW50KG5vZGUsIGpzRG91YmxlTnVtYmVyKHJlc3VsdCkpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2V0Tm9uQ2VsbFR5cGVG
b3JOb2RlKG5vZGUsIApAQCAtMTIxMCw3ICsxMjExLDggQEAgYm9vbCBBYnN0cmFjdEludGVycHJl
dGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxp
bWkKICAgICAgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYmIGxlZnQuaXNOdW1iZXIoKSAmJiBy
aWdodC5pc051bWJlcigpKSB7CiAgICAgICAgICAgICAgICAgZG91YmxlIGEgPSBsZWZ0LmFzTnVt
YmVyKCk7CiAgICAgICAgICAgICAgICAgZG91YmxlIGIgPSByaWdodC5hc051bWJlcigpOwotICAg
ICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzRG91YmxlTnVtYmVyKGEgPiBiID8gYSA6
IChiID49IGEgPyBiIDogYSArIGIpKSk7CisgICAgICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9
IGEgPiBiIHx8ICghYSAmJiAhYiAmJiAhc3RkOjpzaWduYml0KGEpKSA/IGEgOiAoYiA+PSBhID8g
YiA6IGEgKyBiKTsKKyAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0RvdWJsZU51
bWJlcihyZXN1bHQpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2RlLCAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggZmM0MTFlMzYzY2EyLi4w
NjFjZWNlODNmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCkBAIC02MTgwLDEwICs2MTgwLDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVBcml0aE1pbk1heChOb2RlKiBub2RlKQogCiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wTGlzdCBkb25lOwogCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9wRXF1YWwg
PSBtX2ppdC5icmFuY2hEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUVxdWFsQW5kT3JkZXJl
ZCwgb3AxRlBSLCBvcDJGUFIpOworCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9wMUxl
c3MgPSBtX2ppdC5icmFuY2hEb3VibGUobm9kZS0+b3AoKSA9PSBBcml0aE1pbiA/IE1hY3JvQXNz
ZW1ibGVyOjpEb3VibGVMZXNzVGhhbkFuZE9yZGVyZWQgOiBNYWNyb0Fzc2VtYmxlcjo6RG91Ymxl
R3JlYXRlclRoYW5BbmRPcmRlcmVkLCBvcDFGUFIsIG9wMkZQUik7CiAKLSAgICAgICAgLy8gb3Ay
IGlzIGVhdGhlciB0aGUgbGVzc2VyIG9uZSBvciBvbmUgb2YgdGhlbiBpcyBOYU4KLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3AyTGVzcyA9IG1faml0LmJyYW5jaERvdWJsZShub2RlLT5v
cCgpID09IEFyaXRoTWluID8gTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUdyZWF0ZXJUaGFuT3JFcXVh
bEFuZE9yZGVyZWQgOiBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVzc1RoYW5PckVxdWFsQW5kT3Jk
ZXJlZCwgb3AxRlBSLCBvcDJGUFIpOworICAgICAgICAvLyBvcDIgaXMgZWl0aGVyIHRoZSBsZXNz
ZXIgb25lIG9yIG9uZSBvZiB0aGVuIGlzIE5hTgorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBvcDJMZXNzID0gbV9qaXQuYnJhbmNoRG91YmxlKG5vZGUtPm9wKCkgPT0gQXJpdGhNaW4gPyBN
YWNyb0Fzc2VtYmxlcjo6RG91YmxlR3JlYXRlclRoYW5BbmRPcmRlcmVkIDogTWFjcm9Bc3NlbWJs
ZXI6OkRvdWJsZUxlc3NUaGFuQW5kT3JkZXJlZCwgb3AxRlBSLCBvcDJGUFIpOwogCiAgICAgICAg
IC8vIFVub3JkZXJlZCBjYXNlLiBXZSBkb24ndCBrbm93IHdoaWNoIG9mIG9wMSwgb3AyIGlzIE5h
Ti4gTWFudWZhY3R1cmUgTmFOIGJ5IGFkZGluZyAKICAgICAgICAgLy8gb3AxICsgb3AyIGFuZCBw
dXR0aW5nIGl0IGludG8gcmVzdWx0LgpAQCAtNjIwMSw2ICs2MjAzLDE1IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1pbk1heChOb2RlKiBub2RlKQogICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgIG9wMUxlc3MubGluaygmbV9qaXQpOwogCisgICAgICAgIGRvbmUuYXBwZW5k
KG1faml0Lmp1bXAoKSk7CisKKyAgICAgICAgLy8gSWYgYm90aCBkb3VibGVzIGFyZSBlcXVhbCB0
aGVyZSdzIGEgY2hhbmNlIG9uZSBvZiB0aGVtIGlzIG5lZ2F0aXZlIHplcm8sIHNvIGNvbnNpZGVy
IHRoYXQgY2FzZS4KKyAgICAgICAgb3BFcXVhbC5saW5rKCZtX2ppdCk7CisgICAgICAgIGlmIChu
b2RlLT5vcCgpID09IEFyaXRoTWF4KQorICAgICAgICAgICAgbV9qaXQuYW5kRG91YmxlKG9wMUZQ
Uiwgb3AyRlBSLCByZXN1bHRGUFIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2ppdC5v
ckRvdWJsZShvcDFGUFIsIG9wMkZQUiwgcmVzdWx0RlBSKTsKKwogICAgICAgICBkb25lLmxpbmso
Jm1faml0KTsKIAogICAgICAgICBkb3VibGVSZXN1bHQocmVzdWx0RlBSLCBub2RlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBkZWE2Y2Mz
ZGIzNzcuLmU3ZjNkMjE3ZDA4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcApAQCAtMjg2NiwyNSArMjg2Niw0MSBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIERvdWJsZVJlcFVzZTogewogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dEb3Vi
bGUobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dEb3Vi
bGUobV9ub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICAKKworICAgICAgICAgICAgTEJhc2lj
QmxvY2sgaXNFcXVhbCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgICAgICBMQmFzaWNCbG9j
ayBub3RFcXVhbCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBu
b3RMZXNzVGhhbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBj
b250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwotICAgICAgICAgICAgCisKICAgICAgICAg
ICAgIFZlY3RvcjxWYWx1ZUZyb21CbG9jaywgMj4gcmVzdWx0czsKLSAgICAgICAgICAgIAorCiAg
ICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IobGVmdCkpOworICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZUVxdWFsKGxlZnQs
IHJpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgcmFyZWx5KGlzRXF1YWwpLCB1c3VhbGx5KG5v
dEVxdWFsKSk7CisKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBw
ZW5kVG8oaXNFcXVhbCwgbm90RXF1YWwpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9v
dXQuYW5jaG9yKAorICAgICAgICAgICAgICAgIG1fbm9kZS0+b3AoKSA9PSBBcml0aE1pbgorICAg
ICAgICAgICAgICAgICAgICA/IG1fb3V0LmJpdE9yKGxlZnQsIHJpZ2h0KQorICAgICAgICAgICAg
ICAgICAgICA6IG1fb3V0LmJpdEFuZChsZWZ0LCByaWdodCkpKTsKKyAgICAgICAgICAgIG1fb3V0
Lmp1bXAoY29udGludWF0aW9uKTsKKworICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5hcHBl
bmRUbyhub3RFcXVhbCwgbm90TGVzc1RoYW4pOwogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAog
ICAgICAgICAgICAgICAgIG1fbm9kZS0+b3AoKSA9PSBBcml0aE1pbgogICAgICAgICAgICAgICAg
ICAgICA/IG1fb3V0LmRvdWJsZUxlc3NUaGFuKGxlZnQsIHJpZ2h0KQogICAgICAgICAgICAgICAg
ICAgICA6IG1fb3V0LmRvdWJsZUdyZWF0ZXJUaGFuKGxlZnQsIHJpZ2h0KSwKICAgICAgICAgICAg
ICAgICB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJlKG5vdExlc3NUaGFuKSk7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8o
bm90TGVzc1RoYW4sIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgICAgICByZXN1bHRzLmFwcGVuZCht
X291dC5hbmNob3IobV9vdXQuc2VsZWN0KAotICAgICAgICAgICAgICAgIG1fbm9kZS0+b3AoKSA9
PSBBcml0aE1pbgotICAgICAgICAgICAgICAgICAgICA/IG1fb3V0LmRvdWJsZUdyZWF0ZXJUaGFu
T3JFcXVhbChsZWZ0LCByaWdodCkKLSAgICAgICAgICAgICAgICAgICAgOiBtX291dC5kb3VibGVM
ZXNzVGhhbk9yRXF1YWwobGVmdCwgcmlnaHQpLAotICAgICAgICAgICAgICAgIHJpZ2h0LCBtX291
dC5jb25zdERvdWJsZShQTmFOKSkpKTsKKworICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5h
cHBlbmRUbyhub3RMZXNzVGhhbiwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIHJlc3VsdHMu
YXBwZW5kKAorICAgICAgICAgICAgICAgIG1fb3V0LmFuY2hvcigKKyAgICAgICAgICAgICAgICAg
ICAgbV9vdXQuc2VsZWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5vcCgpID09
IEFyaXRoTWluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBtX291dC5kb3VibGVHcmVh
dGVyVGhhbihsZWZ0LCByaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG1fb3V0
LmRvdWJsZUxlc3NUaGFuKGxlZnQsIHJpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJp
Z2h0LCBtX291dC5jb25zdERvdWJsZShQTmFOKSkpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAo
Y29udGludWF0aW9uKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8o
Y29udGludWF0aW9uLCBsYXN0TmV4dCk7Ci0tIAoyLjI2LjIKCg==
</data>
<flag name="review"
          id="419050"
          type_id="1"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404452</attachid>
            <date>2020-07-16 09:34:35 -0700</date>
            <delta_ts>2020-07-17 01:13:14 -0700</delta_ts>
            <desc>Math.{max,min} fixes, v4</desc>
            <filename>0001-Math.max-can-yield-the-wrong-result-for-max-0-0.patch</filename>
            <type>text/plain</type>
            <size>17977</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA4MjU5MDdkNTE2Y2IxYjQ2YmFhNzUyNWVjZDVhYmMzYzQyNDc0NjllIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogTW9uLCAxNyBGZWIgMjAyMCAxMjoyNTowOSArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIE1hdGgubWF4KCkgY2FuIHlpZWxkIHRoZSB3cm9uZyByZXN1bHQgZm9yIG1heCgwLCAt
MCkuCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDU3CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkpTVGVzdHM6CgpBZGQgYSB0ZXN0IHRvIG1ha2Ugc3Vy
ZSB3ZSBmb2xsb3cgdGhlIHNwZWMgaW4gTWF0aC57bWF4LG1pbn0gYW5kCi0wLjAgPCAwLjAuCgoq
IHN0cmVzcy9tYXRoLW1heC1taW4tbmVnYXRpdmUtemVyby5qczogQWRkZWQuCihhc3NlcnQpOgoo
dGVzdCk6CgpTb3VyY2UvSmF2YVNjcmlwdENvcmU6CgpUaGUgaW1wbGVtZW50YXRpb25zIGZvciBN
YXRoLnttYXgsbWlufSBpbiBib3RoIERGRyBhbmQgRlRMIGFyZSBub3QKY29uc2lkZXJpbmcgdGhl
IGZhY3QgdGhhdCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMgLTAuMCA8IDAuMCAod2hpY2gKaXMgbm90
IHRydWUgZm9yIG5vcm1hbCBkb3VibGUgYXJpdGhtZXRpYykuClNlZTogaHR0cHM6Ly90YzM5LmVz
L2VjbWEyNjIvI3NlYy1tYXRoLm1heCBhbmQgaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1t
YXRoLm1pbgoKQmV5b25kIHR3ZWFraW5nIHRoZSBhbGdvcml0aG1zIHVzZWQgaW4gREZHIGFuZCBG
VEwgd2UgbXVzdAppbXBsZW1lbnQgdGhlIGFuZC9vciBvcGVyYXRpb25zIG9uIGRvdWJsZSBpbiBN
SVBTIGFuZCBBUk12Nywgc2luY2UKdGhlc2UgYXJlIHVzZWQgaW4gdGhlIERGRyBKSVQgdG8gZGlz
dGluZ3Vpc2ggYmV0d2VlbiAtMC4wIGFuZCAwLjAuCgoqIGFzc2VtYmxlci9BUk12N0Fzc2VtYmxl
ci5oOgooSlNDOjpBUk12N0Fzc2VtYmxlcjo6dmFuZCk6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2
b3JyKToKKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgooSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTXY3OjphbmREb3VibGUpOgooSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpvckRvdWJs
ZSk6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgooSlNDOjpNYWNyb0Fzc2VtYmxl
ck1JUFM6OmFuZERvdWJsZSk6CihKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6b3JEb3VibGUpOgoq
IGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6CihKU0M6OnRlc3RBbmRPckRvdWJsZSk6CihKU0M6OnJ1
bik6CiogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6IGNvbnNpZGVyIHRoYXQg
LTAuMCA8IDAuMCBwZXIgdGhlIEVDTUFTY3JpcHQgc3BlYy4KKEpTQzo6REZHOjpBYnN0cmFjdElu
dGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgoqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHA6IGRpdHRvLgooSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQXJpdGhNaW5NYXgpOgoqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOiBkaXR0by4KKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUFyaXRoTWluT3JNYXgpOgotLS0KIEpTVGVz
dHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKwogSlNU
ZXN0cy9zdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZlLXplcm8uanMgIHwgMjMgKysrKysrKysr
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgfCAzNSArKysr
KysrKysrKysrKwogLi4uL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5o
IHwgMTQgKysrKysrCiAuLi4vYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCAgICAgICAg
ICAgfCAxMCArKysrCiAuLi4vYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oICAgICAgICAg
ICAgfCA0OCArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL3Rlc3RtYXNtLmNwcCAgfCA0OCArKysrKysrKysrKysrKysrKysrCiAuLi4vZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggICAgICAgfCAgNiArKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwICB8IDE0ICsrKysrLQogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIHwgMzQgKysrKysrKysrLS0tLQogMTAg
ZmlsZXMgY2hhbmdlZCwgMjMzIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IEpTVGVzdHMvc3RyZXNzL21hdGgtbWF4LW1pbi1uZWdhdGl2ZS16ZXJvLmpz
CgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCBhMDM4YjYyZjdjYjAuLjYwZWQ1NWFmYjhiMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNy0wNyAg
WGFuIExvcGV6ICA8eGFuQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWF0aC5tYXgoKSBjYW4geWll
bGQgdGhlIHdyb25nIHJlc3VsdCBmb3IgbWF4KDAsIC0wKS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gbWFrZSBzdXJlIHdlIGZv
bGxvdyB0aGUgc3BlYyBpbiBNYXRoLnttYXgsbWlufSBhbmQKKyAgICAgICAgLTAuMCA8IDAuMC4K
KworICAgICAgICAqIHN0cmVzcy9tYXRoLW1heC1taW4tbmVnYXRpdmUtemVyby5qczogQWRkZWQu
CisgICAgICAgIChhc3NlcnQpOgorICAgICAgICAodGVzdCk6CisKIDIwMjAtMDctMTUgIEFsZXhl
eSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIEVtaXQgSGFzT3du
UHJvcGVydHlGdW5jdGlvbkNhbGxEb3ROb2RlIGZvciAiUmVmbGVjdCIgaWRlbnRpZmllcnMKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL21hdGgtbWF4LW1pbi1uZWdhdGl2ZS16ZXJvLmpzIGIv
SlNUZXN0cy9zdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZlLXplcm8uanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44ZWU5ZmU3OTc4MTIKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3N0cmVzcy9tYXRoLW1heC1taW4tbmVnYXRpdmUtemVyby5qcwpAQCAtMCww
ICsxLDIzIEBACitmdW5jdGlvbiB0ZXN0TWF4KHgsIHkpIHsKKyAgICByZXR1cm4gTWF0aC5tYXgo
eCwgeSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RNaW4oeCwgeSkgeworICAgIHJldHVybiBNYXRoLm1p
bih4LCB5KTsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICB4ID0g
MTAwL3Rlc3RNYXgoMC4wLCAtMC4wKTsKKyAgICBpZiAoeCA8IDApCisgICAgICAgIHRocm93ICJG
QUlMRUQiOworICAgIHggPSAxMDAvdGVzdE1heCgtMC4wLCAwLjApOworICAgIGlmICh4IDwgMCkK
KyAgICAgICAgdGhyb3cgIkZBSUxFRCI7CisKKyAgICB4ID0gMTAwL3Rlc3RNaW4oMC4wLCAtMC4w
KTsKKyAgICBpZiAoeCA+IDApCisgICAgICAgIHRocm93ICJGQUlMRUQiOworICAgIHggPSAxMDAv
dGVzdE1pbigtMC4wLCAwLjApOworICAgIGlmICh4ID4gMCkKKyAgICAgICAgdGhyb3cgIkZBSUxF
RCI7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3NDQyNGRiNDI2NTEuLjZlMTg1OTM4
Y2UzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjAtMDct
MDcgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAgICAgICBNYXRoLm1heCgpIGNh
biB5aWVsZCB0aGUgd3JvbmcgcmVzdWx0IGZvciBtYXgoMCwgLTApLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDU3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9ucyBmb3Ig
TWF0aC57bWF4LG1pbn0gaW4gYm90aCBERkcgYW5kIEZUTCBhcmUgbm90CisgICAgICAgIGNvbnNp
ZGVyaW5nIHRoZSBmYWN0IHRoYXQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjIC0wLjAgPCAwLjAgKHdo
aWNoCisgICAgICAgIGlzIG5vdCB0cnVlIGZvciBub3JtYWwgZG91YmxlIGFyaXRobWV0aWMpLgor
ICAgICAgICBTZWU6IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtbWF0aC5tYXggYW5kIGh0
dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtbWF0aC5taW4KKworICAgICAgICBCZXlvbmQgdHdl
YWtpbmcgdGhlIGFsZ29yaXRobXMgdXNlZCBpbiBERkcgYW5kIEZUTCB3ZSBtdXN0CisgICAgICAg
IGltcGxlbWVudCB0aGUgYW5kL29yIG9wZXJhdGlvbnMgb24gZG91YmxlIGluIE1JUFMgYW5kIEFS
TXY3LCBzaW5jZQorICAgICAgICB0aGVzZSBhcmUgdXNlZCBpbiB0aGUgREZHIEpJVCB0byBkaXN0
aW5ndWlzaCBiZXR3ZWVuIC0wLjAgYW5kIDAuMC4KKworICAgICAgICAqIGFzc2VtYmxlci9BUk12
N0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6dmFuZCk6CisgICAg
ICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp2b3JyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojph
bmREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpvckRvdWJsZSk6
CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlck1JUFM6OmFuZERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyTUlQUzo6b3JEb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6
CisgICAgICAgIChKU0M6OnRlc3RBbmRPckRvdWJsZSk6CisgICAgICAgIChKU0M6OnJ1bik6Cisg
ICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6IGNvbnNpZGVyIHRo
YXQgLTAuMCA8IDAuMCBwZXIgdGhlIEVDTUFTY3JpcHQgc3BlYy4KKyAgICAgICAgKEpTQzo6REZH
OjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMp
OgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6IGRpdHRvLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNaW5NYXgpOgorICAgICAgICAq
IGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOiBkaXR0by4KKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6Y29tcGlsZUFyaXRoTWluT3JNYXgpOgorCiAyMDIwLTA3LTE1ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFrZV1b
V2ViRHJpdmVyXSBHZW5lcmF0aW5nIFdlYkRyaXZlckF0b21zLmNwcCBpcyByYXJlbHkgZmFpbGlu
ZyBhcyAiSW1wb3J0RXJyb3I6IE5vIG1vZHVsZSBuYW1lZCBqc21pbiIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCAzMTQ0YTI5MjUz
MWEuLjAyNWE0NzM5MmE0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BUk12N0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvQVJNdjdBc3NlbWJsZXIuaApAQCAtNTk1LDYgKzU5NSw4IEBAIHByaXZhdGU6CiAgICAgICAg
IE9QX1ZTUVJUX1QxICAgICA9IDB4RUVCMCwKICAgICAgICAgT1BfVkNWVFNEX1QxICAgID0gMHhF
RUIwLAogICAgICAgICBPUF9WQ1ZURFNfVDEgICAgPSAweEVFQjAsCisgICAgICAgIE9QX1ZBTkRf
VDEgICAgICA9IDB4RUYwMCwKKyAgICAgICAgT1BfVk9SUl9UMSAgICAgID0gMHhFRjIwLAogICAg
ICAgICBPUF9CX1QzYSAgICAgICAgPSAweEYwMDAsCiAgICAgICAgIE9QX0JfVDRhICAgICAgICA9
IDB4RjAwMCwKICAgICAgICAgT1BfQU5EX2ltbV9UMSAgID0gMHhGMDAwLApAQCAtNjUzLDYgKzY1
NSw4IEBAIHByaXZhdGU6CiAgICAgfSBPcGNvZGVJRDE7CiAKICAgICB0eXBlZGVmIGVudW0gewor
ICAgICAgICBPUF9WQU5EX1QxYiAgICAgID0gMHgwMDEwLAorICAgICAgICBPUF9WT1JSX1QxYiAg
ICAgID0gMHgwMDEwLAogICAgICAgICBPUF9WQUREX1QyYiAgICAgID0gMHgwQTAwLAogICAgICAg
ICBPUF9WRElWYiAgICAgICAgID0gMHgwQTAwLAogICAgICAgICBPUF9GTERTYiAgICAgICAgID0g
MHgwQTAwLApAQCAtMTgyMyw2ICsxODI3LDE2IEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKIAor
ICAgIHZvaWQgdmFuZChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQRG91YmxlUmVnaXN0ZXJJRCBy
biwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIudmZw
T3AoT1BfVkFORF9UMSwgT1BfVkFORF9UMWIsIHRydWUsIHJuLCByZCwgcm0pOworICAgIH0KKwor
ICAgIHZvaWQgdm9ycihGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQRG91YmxlUmVnaXN0ZXJJRCBy
biwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIudmZw
T3AoT1BfVk9SUl9UMSwgT1BfVk9SUl9UMWIsIHRydWUsIHJuLCByZCwgcm0pOworICAgIH0KKwog
ICAgIHZvaWQgdmFkZChGUERvdWJsZVJlZ2lzdGVySUQgcmQsIEZQRG91YmxlUmVnaXN0ZXJJRCBy
biwgRlBEb3VibGVSZWdpc3RlcklEIHJtKQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIudmZw
T3AoT1BfVkFERF9UMiwgT1BfVkFERF9UMmIsIHRydWUsIHJuLCByZCwgcm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApp
bmRleCAzMDhjMTE3N2Y2MmYuLmM4ZjMzNTVhZjAwNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTExNjIsNiAr
MTE2MiwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnZtdWwoZGVzdCwgb3AxLCBv
cDIpOwogICAgIH0KIAorICAgIHZvaWQgYW5kRG91YmxlKEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVn
aXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJs
ZXIudmFuZChvcDEsIG9wMiwgZGVzdCk7CisgICAgfQorCisgICAgdm9pZCBvckRvdWJsZShGUFJl
Z2lzdGVySUQgb3AxLCBGUFJlZ2lzdGVySUQgb3AyLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7
CisgICAgICAgIG1fYXNzZW1ibGVyLnZvcnIob3AxLCBvcDIsIGRlc3QpOworICAgIH0KKwogICAg
IHZvaWQgc3FydERvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnZzcXJ0KGRlc3QsIHNyYyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCBl
OTE5Y2ZiZjIyNGIuLjI0YjE5NzM5OTdmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCkBAIC0zMDgwLDYgKzMwODAsNTQg
QEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5hZGRkKGRlc3QsIGRlc3QsIGZwVGVtcFJl
Z2lzdGVyKTsKICAgICB9CiAKKyAgICAvLyBhbmREb3VibGUgYW5kIG9yRG91YmxlIGFyZSBhIGJp
dCBjb252b2x1dGVkIHRvIGltcGxlbWVudAorICAgIC8vIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBG
UCBpbnN0cnVjdGlvbnMgZm9yIHRob3NlCisgICAgLy8gb3BlcmF0aW9ucy4gVGhhdCBtZWFucyB3
ZSdsbCBoYXZlIHRvIGdvIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KKyAgICAvLyB0aGUgRlBVIGFu
ZCB0aGUgQ1BVLCB3aGljaCBhY2NvdW50cyBmb3IgbW9zdCBvZiB0aGUgY29kZSBoZXJlLgorICAg
IHZvaWQgYW5kRG91YmxlKEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZjMShpbW1UZW1wUmVn
aXN0ZXIsIG9wMSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoZGF0YVRlbXBSZWdpc3Rlciwg
b3AyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuYW5kSW5zbihjbXBUZW1wUmVnaXN0ZXIsIGltbVRl
bXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1fYXNzZW1ibGVyLm10YzEo
Y21wVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKworI2lmIFdURl9NSVBTX0lTQV9SRVYoMikgJiYgV1RG
X01JUFNfRlA2NAorICAgICAgICBtX2Fzc2VtYmxlci5tZmhjMShpbW1UZW1wUmVnaXN0ZXIsIG9w
MSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1maGMxKGRhdGFUZW1wUmVnaXN0ZXIsIG9wMik7Cisj
ZWxzZQorICAgICAgICBtX2Fzc2VtYmxlci5tZmMxKGltbVRlbXBSZWdpc3RlciwgRlBSZWdpc3Rl
cklEKG9wMSsxKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoZGF0YVRlbXBSZWdpc3Rlciwg
RlBSZWdpc3RlcklEKG9wMisxKSk7CisjZW5kaWYKKyAgICAgICAgbV9hc3NlbWJsZXIuYW5kSW5z
bihjbXBUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7Cisj
aWYgV1RGX01JUFNfSVNBX1JFVigyKSAmJiBXVEZfTUlQU19GUDY0CisgICAgICAgIG1fYXNzZW1i
bGVyLm10aGMxKGNtcFRlbXBSZWdpc3RlciwgZGVzdCk7CisjZWxzZQorICAgICAgICBtX2Fzc2Vt
Ymxlci5tdGMxKGNtcFRlbXBSZWdpc3RlciwgRlBSZWdpc3RlcklEKGRlc3QrMSkpOworI2VuZGlm
CisgICAgfQorCisgICAgdm9pZCBvckRvdWJsZShGUFJlZ2lzdGVySUQgb3AxLCBGUFJlZ2lzdGVy
SUQgb3AyLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLm1m
YzEoaW1tVGVtcFJlZ2lzdGVyLCBvcDEpOworICAgICAgICBtX2Fzc2VtYmxlci5tZmMxKGRhdGFU
ZW1wUmVnaXN0ZXIsIG9wMik7CisgICAgICAgIG1fYXNzZW1ibGVyLm9ySW5zbihjbXBUZW1wUmVn
aXN0ZXIsIGltbVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1fYXNz
ZW1ibGVyLm10YzEoY21wVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKworI2lmIFdURl9NSVBTX0lTQV9S
RVYoMikgJiYgV1RGX01JUFNfRlA2NAorICAgICAgICBtX2Fzc2VtYmxlci5tZmhjMShpbW1UZW1w
UmVnaXN0ZXIsIG9wMSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1maGMxKGRhdGFUZW1wUmVnaXN0
ZXIsIG9wMik7CisjZWxzZQorICAgICAgICBtX2Fzc2VtYmxlci5tZmMxKGltbVRlbXBSZWdpc3Rl
ciwgRlBSZWdpc3RlcklEKG9wMSsxKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoZGF0YVRl
bXBSZWdpc3RlciwgRlBSZWdpc3RlcklEKG9wMisxKSk7CisjZW5kaWYKKyAgICAgICAgbV9hc3Nl
bWJsZXIub3JJbnNuKGNtcFRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJl
Z2lzdGVyKTsKKyNpZiBXVEZfTUlQU19JU0FfUkVWKDIpICYmIFdURl9NSVBTX0ZQNjQKKyAgICAg
ICAgbV9hc3NlbWJsZXIubXRoYzEoY21wVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKyNlbHNlCisgICAg
ICAgIG1fYXNzZW1ibGVyLm10YzEoY21wVGVtcFJlZ2lzdGVyLCBGUFJlZ2lzdGVySUQoZGVzdCsx
KSk7CisjZW5kaWYKKyAgICB9CisKICAgICB2b2lkIHN1YkRvdWJsZShGUFJlZ2lzdGVySUQgc3Jj
LCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN1YmQoZGVz
dCwgZGVzdCwgc3JjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFz
bS5jcHAKaW5kZXggMGVkMGE5ODk5ZmYyLi5kYjRlN2E2NTZkZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCkBAIC0yMjkxLDYgKzIyOTEsNTIgQEAg
dm9pZCB0ZXN0T3JJbW1NZW0oKQogICAgIENIRUNLX0VRKG1lbW9yeUxvY2F0aW9uLCAweDEyMzQx
MjM0KTsKIH0KIAordm9pZCB0ZXN0QW5kT3JEb3VibGUoKQoreworICAgIGRvdWJsZSBhcmcxLCBh
cmcyOworCisgICAgYXV0byBhbmREb3VibGUgPSBjb21waWxlKFsmXSAoQ0NhbGxIZWxwZXJzJiBq
aXQpIHsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKyAgICAgICAgaml0Lmxv
YWREb3VibGUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZhcmcxKSwgRlBSSW5mbzo6ZnBS
ZWdUMSk7CisgICAgICAgIGppdC5sb2FkRG91YmxlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cigmYXJnMiksIEZQUkluZm86OmZwUmVnVDIpOworCisgICAgICAgIGppdC5hbmREb3VibGUoRlBS
SW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMiwgRlBSSW5mbzo6cmV0dXJuVmFsdWVGUFIp
OworCisgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CisgICAgICAgIGppdC5yZXQo
KTsKKyAgICB9KTsKKworICAgIGF1dG8gb3BlcmFuZHMgPSBkb3VibGVPcGVyYW5kcygpOworICAg
IGZvciAoYXV0byBhIDogb3BlcmFuZHMpIHsKKyAgICAgICAgZm9yIChhdXRvIGIgOiBvcGVyYW5k
cykgeworICAgICAgICAgICAgYXJnMSA9IGE7CisgICAgICAgICAgICBhcmcyID0gYjsKKyAgICAg
ICAgICAgIHVpbnQ2NF90IHJlc3VsdCA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oYXJnMSkgJiBi
aXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGFyZzIpOworICAgICAgICAgICAgQ0hFQ0tfRVEoYml0d2lz
ZV9jYXN0PHVpbnQ2NF90PihpbnZva2U8ZG91YmxlPihhbmREb3VibGUpKSwgcmVzdWx0KTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGF1dG8gb3JEb3VibGUgPSBjb21waWxlKFsmXSAoQ0NhbGxI
ZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKyAgICAg
ICAgaml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZhcmcxKSwgRlBS
SW5mbzo6ZnBSZWdUMSk7CisgICAgICAgIGppdC5sb2FkRG91YmxlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cigmYXJnMiksIEZQUkluZm86OmZwUmVnVDIpOworCisgICAgICAgIGppdC5vckRv
dWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QyLCBGUFJJbmZvOjpyZXR1cm5W
YWx1ZUZQUik7CisKKyAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAg
aml0LnJldCgpOworICAgIH0pOworCisgICAgZm9yIChhdXRvIGEgOiBvcGVyYW5kcykgeworICAg
ICAgICBmb3IgKGF1dG8gYiA6IG9wZXJhbmRzKSB7CisgICAgICAgICAgICBhcmcxID0gYTsKKyAg
ICAgICAgICAgIGFyZzIgPSBiOworICAgICAgICAgICAgdWludDY0X3QgcmVzdWx0ID0gYml0d2lz
ZV9jYXN0PHVpbnQ2NF90PihhcmcxKSB8IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oYXJnMik7Cisg
ICAgICAgICAgICBDSEVDS19FUShiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGludm9rZTxkb3VibGU+
KG9yRG91YmxlKSksIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgdGVzdEJ5
dGVTd2FwKCkKIHsKICNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCkBAIC0yNjUyLDYgKzI2
OTgsOCBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAKICAgICBSVU4odGVzdE9ySW1t
TWVtKCkpOwogCisgICAgUlVOKHRlc3RBbmRPckRvdWJsZSgpKTsKKwogICAgIGlmICh0YXNrcy5p
c0VtcHR5KCkpCiAgICAgICAgIHVzYWdlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCAwNThj
N2MyNjZlZDYuLmExYjAxNTNmOTMzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMTE4MSw3ICsx
MTgxLDggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhl
Y3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgICAgIGlmIChsZWZ0ICYm
IHJpZ2h0ICYmIGxlZnQuaXNOdW1iZXIoKSAmJiByaWdodC5pc051bWJlcigpKSB7CiAgICAgICAg
ICAgICAgICAgZG91YmxlIGEgPSBsZWZ0LmFzTnVtYmVyKCk7CiAgICAgICAgICAgICAgICAgZG91
YmxlIGIgPSByaWdodC5hc051bWJlcigpOwotICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5v
ZGUsIGpzRG91YmxlTnVtYmVyKGEgPCBiID8gYSA6IChiIDw9IGEgPyBiIDogYSArIGIpKSk7Cisg
ICAgICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IGEgPCBiIHx8ICghYSAmJiAhYiAmJiBzdGQ6
OnNpZ25iaXQoYSkpID8gYSA6IChiIDw9IGEgPyBiIDogYSArIGIpOworICAgICAgICAgICAgICAg
IHNldENvbnN0YW50KG5vZGUsIGpzRG91YmxlTnVtYmVyKHJlc3VsdCkpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2V0Tm9uQ2VsbFR5cGVGb3JO
b2RlKG5vZGUsIApAQCAtMTIxMCw3ICsxMjExLDggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkK
ICAgICAgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYmIGxlZnQuaXNOdW1iZXIoKSAmJiByaWdo
dC5pc051bWJlcigpKSB7CiAgICAgICAgICAgICAgICAgZG91YmxlIGEgPSBsZWZ0LmFzTnVtYmVy
KCk7CiAgICAgICAgICAgICAgICAgZG91YmxlIGIgPSByaWdodC5hc051bWJlcigpOwotICAgICAg
ICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzRG91YmxlTnVtYmVyKGEgPiBiID8gYSA6IChi
ID49IGEgPyBiIDogYSArIGIpKSk7CisgICAgICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IGEg
PiBiIHx8ICghYSAmJiAhYiAmJiAhc3RkOjpzaWduYml0KGEpKSA/IGEgOiAoYiA+PSBhID8gYiA6
IGEgKyBiKTsKKyAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0RvdWJsZU51bWJl
cihyZXN1bHQpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2RlLCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggZmM0MTFlMzYzY2EyLi44MDY3
MGViYmJiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCkBAIC02MTgxLDkgKzYxODEsMTkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUFyaXRoTWluTWF4KE5vZGUqIG5vZGUpCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1w
TGlzdCBkb25lOwogCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9wMUxlc3MgPSBtX2pp
dC5icmFuY2hEb3VibGUobm9kZS0+b3AoKSA9PSBBcml0aE1pbiA/IE1hY3JvQXNzZW1ibGVyOjpE
b3VibGVMZXNzVGhhbkFuZE9yZGVyZWQgOiBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlR3JlYXRlclRo
YW5BbmRPcmRlcmVkLCBvcDFGUFIsIG9wMkZQUik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wIG9wTm90RXF1YWwgPSBtX2ppdC5icmFuY2hEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJs
ZU5vdEVxdWFsQW5kT3JkZXJlZCwgb3AxRlBSLCBvcDJGUFIpOwogCi0gICAgICAgIC8vIG9wMiBp
cyBlYXRoZXIgdGhlIGxlc3NlciBvbmUgb3Igb25lIG9mIHRoZW4gaXMgTmFOCi0gICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIG9wMkxlc3MgPSBtX2ppdC5icmFuY2hEb3VibGUobm9kZS0+b3Ao
KSA9PSBBcml0aE1pbiA/IE1hY3JvQXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbk9yRXF1YWxB
bmRPcmRlcmVkIDogTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUxlc3NUaGFuT3JFcXVhbEFuZE9yZGVy
ZWQsIG9wMUZQUiwgb3AyRlBSKTsKKyAgICAgICAgLy8gSWYgYm90aCBkb3VibGVzIGFyZSBlcXVh
bCB0aGVyZSdzIGEgY2hhbmNlIG9uZSBvZiB0aGVtIGlzIG5lZ2F0aXZlIHplcm8sIHNvIGNvbnNp
ZGVyIHRoYXQgY2FzZS4KKyAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gQXJpdGhNYXgpCisgICAg
ICAgICAgICBtX2ppdC5hbmREb3VibGUob3AxRlBSLCBvcDJGUFIsIHJlc3VsdEZQUik7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIG1faml0Lm9yRG91YmxlKG9wMUZQUiwgb3AyRlBSLCByZXN1
bHRGUFIpOworCisgICAgICAgIGRvbmUuYXBwZW5kKG1faml0Lmp1bXAoKSk7CisKKyAgICAgICAg
b3BOb3RFcXVhbC5saW5rKCZtX2ppdCk7CisgICAgICAgIC8vIG9wMiBpcyBlaXRoZXIgdGhlIGxl
c3NlciBvbmUgb3Igb25lIG9mIHRoZW4gaXMgTmFOCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wIG9wMkxlc3MgPSBtX2ppdC5icmFuY2hEb3VibGUobm9kZS0+b3AoKSA9PSBBcml0aE1pbiA/
IE1hY3JvQXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbkFuZE9yZGVyZWQgOiBNYWNyb0Fzc2Vt
Ymxlcjo6RG91YmxlTGVzc1RoYW5BbmRPcmRlcmVkLCBvcDFGUFIsIG9wMkZQUik7CiAKICAgICAg
ICAgLy8gVW5vcmRlcmVkIGNhc2UuIFdlIGRvbid0IGtub3cgd2hpY2ggb2Ygb3AxLCBvcDIgaXMg
TmFOLiBNYW51ZmFjdHVyZSBOYU4gYnkgYWRkaW5nIAogICAgICAgICAvLyBvcDEgKyBvcDIgYW5k
IHB1dHRpbmcgaXQgaW50byByZXN1bHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKaW5kZXggZWM3YTU0NmExMWU5Li4yZWViMmJiMGRkZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTI4NzAs
MjUgKzI4NzAsNDEgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEb3VibGVSZXBVc2U6IHsKICAg
ICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAg
ICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAg
ICAgICAgICAgCisKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdExlc3NUaGFuID0gbV9vdXQu
bmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlzRXF1YWwgPSBtX291dC5uZXdC
bG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90RXF1YWwgPSBtX291dC5uZXdCbG9j
aygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3Qmxv
Y2soKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ss
IDI+IHJlc3VsdHM7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQo
bV9vdXQuYW5jaG9yKGxlZnQpKTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAg
ICAgICAgICBtX25vZGUtPm9wKCkgPT0gQXJpdGhNaW4KICAgICAgICAgICAgICAgICAgICAgPyBt
X291dC5kb3VibGVMZXNzVGhhbihsZWZ0LCByaWdodCkKICAgICAgICAgICAgICAgICAgICAgOiBt
X291dC5kb3VibGVHcmVhdGVyVGhhbihsZWZ0LCByaWdodCksCiAgICAgICAgICAgICAgICAgdW5z
dXJlKGNvbnRpbnVhdGlvbiksIHVuc3VyZShub3RMZXNzVGhhbikpOwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdExlc3NU
aGFuLCBjb250aW51YXRpb24pOwotICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5j
aG9yKG1fb3V0LnNlbGVjdCgKKworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBt
X291dC5hcHBlbmRUbyhub3RMZXNzVGhhbiwgaXNFcXVhbCk7CisgICAgICAgICAgICBtX291dC5i
cmFuY2goCisgICAgICAgICAgICAgICAgbV9vdXQuZG91YmxlRXF1YWwobGVmdCwgcmlnaHQpLAor
ICAgICAgICAgICAgICAgICAgICByYXJlbHkoaXNFcXVhbCksIHVzdWFsbHkobm90RXF1YWwpKTsK
KworICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpc0VxdWFsLCBub3RFcXVh
bCk7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IoCiAgICAgICAgICAg
ICAgICAgbV9ub2RlLT5vcCgpID09IEFyaXRoTWluCi0gICAgICAgICAgICAgICAgICAgID8gbV9v
dXQuZG91YmxlR3JlYXRlclRoYW5PckVxdWFsKGxlZnQsIHJpZ2h0KQotICAgICAgICAgICAgICAg
ICAgICA6IG1fb3V0LmRvdWJsZUxlc3NUaGFuT3JFcXVhbChsZWZ0LCByaWdodCksCi0gICAgICAg
ICAgICAgICAgcmlnaHQsIG1fb3V0LmNvbnN0RG91YmxlKFBOYU4pKSkpOworICAgICAgICAgICAg
ICAgICAgICA/IG1fb3V0LmJpdE9yKGxlZnQsIHJpZ2h0KQorICAgICAgICAgICAgICAgICAgICA6
IG1fb3V0LmJpdEFuZChsZWZ0LCByaWdodCkpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29u
dGludWF0aW9uKTsKKworICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RF
cXVhbCwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKAorICAgICAg
ICAgICAgICAgIG1fb3V0LmFuY2hvcigKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuc2VsZWN0
KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5vcCgpID09IEFyaXRoTWluCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPyBtX291dC5kb3VibGVHcmVhdGVyVGhhbihsZWZ0LCBy
aWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG1fb3V0LmRvdWJsZUxlc3NUaGFu
KGxlZnQsIHJpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0LCBtX291dC5jb25z
dERvdWJsZShQTmFOKSkpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBs
YXN0TmV4dCk7Ci0tIAoyLjI2LjIKCg==
</data>
<flag name="review"
          id="419837"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404550</attachid>
            <date>2020-07-17 01:13:14 -0700</date>
            <delta_ts>2020-07-17 07:29:35 -0700</delta_ts>
            <desc>Math.{max,min} fixes, v5</desc>
            <filename>0001-Math.max-can-yield-the-wrong-result-for-max-0-0.patch</filename>
            <type>text/plain</type>
            <size>18289</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA1NTZkMDQ0ZWZlMzA1MjQ4YzkxNDAxMzI2YjYwMjYzODlmNmRkYzZhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogTW9uLCAxNyBGZWIgMjAyMCAxMjoyNTowOSArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIE1hdGgubWF4KCkgY2FuIHlpZWxkIHRoZSB3cm9uZyByZXN1bHQgZm9yIG1heCgwLCAt
MCkuCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDU3CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkpTVGVzdHM6CgpBZGQgYSB0ZXN0IHRvIG1ha2Ugc3Vy
ZSB3ZSBmb2xsb3cgdGhlIHNwZWMgaW4gTWF0aC57bWF4LG1pbn0gYW5kCi0wLjAgPCAwLjAuCgoq
IHN0cmVzcy9tYXRoLW1heC1taW4tbmVnYXRpdmUtemVyby5qczogQWRkZWQuCihhc3NlcnQpOgoo
dGVzdCk6CgpTb3VyY2UvSmF2YVNjcmlwdENvcmU6CgpUaGUgaW1wbGVtZW50YXRpb25zIGZvciBN
YXRoLnttYXgsbWlufSBpbiBib3RoIERGRyBhbmQgRlRMIGFyZSBub3QKY29uc2lkZXJpbmcgdGhl
IGZhY3QgdGhhdCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMgLTAuMCA8IDAuMCAod2hpY2gKaXMgbm90
IHRydWUgZm9yIG5vcm1hbCBkb3VibGUgYXJpdGhtZXRpYykuClNlZTogaHR0cHM6Ly90YzM5LmVz
L2VjbWEyNjIvI3NlYy1tYXRoLm1heCBhbmQgaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1t
YXRoLm1pbgoKQmV5b25kIHR3ZWFraW5nIHRoZSBhbGdvcml0aG1zIHVzZWQgaW4gREZHIGFuZCBG
VEwgd2UgbXVzdAppbXBsZW1lbnQgdGhlIGFuZC9vciBvcGVyYXRpb25zIG9uIGRvdWJsZSBpbiBN
SVBTIGFuZCBBUk12Nywgc2luY2UKdGhlc2UgYXJlIHVzZWQgaW4gdGhlIERGRyBKSVQgdG8gZGlz
dGluZ3Vpc2ggYmV0d2VlbiAtMC4wIGFuZCAwLjAuCgoqIGFzc2VtYmxlci9BUk12N0Fzc2VtYmxl
ci5oOgooSlNDOjpBUk12N0Fzc2VtYmxlcjo6dmFuZCk6CihKU0M6OkFSTXY3QXNzZW1ibGVyOjp2
b3JyKToKKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgooSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTXY3OjphbmREb3VibGUpOgooSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpvckRvdWJs
ZSk6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgooSlNDOjpNYWNyb0Fzc2VtYmxl
ck1JUFM6OmFuZERvdWJsZSk6CihKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6b3JEb3VibGUpOgoq
IGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6CihKU0M6OnRlc3RBbmRPckRvdWJsZSk6CihKU0M6OnJ1
bik6CiogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6IGNvbnNpZGVyIHRoYXQg
LTAuMCA8IDAuMCBwZXIgdGhlIEVDTUFTY3JpcHQgc3BlYy4KKEpTQzo6REZHOjpBYnN0cmFjdElu
dGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgoqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHA6IGRpdHRvLgooSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQXJpdGhNaW5NYXgpOgoqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOiBkaXR0by4KKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUFyaXRoTWluT3JNYXgpOgotLS0KIEpTVGVz
dHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKwogSlNU
ZXN0cy9zdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZlLXplcm8uanMgIHwgMjMgKysrKysrKysr
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgfCAzNSArKysr
KysrKysrKysrKwogLi4uL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5o
IHwgMTQgKysrKysrCiAuLi4vYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCAgICAgICAg
ICAgfCAxMCArKysrCiAuLi4vYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oICAgICAgICAg
ICAgfCA0OCArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL3Rlc3RtYXNtLmNwcCAgfCA0OCArKysrKysrKysrKysrKysrKysrCiAuLi4vZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggICAgICAgfCAgOCArKystCiAuLi4vSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCAgfCAxNCArKysrKy0KIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCB8IDM1ICsrKysrKysrKystLS0tCiAx
MCBmaWxlcyBjaGFuZ2VkLCAyMzYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCiBjcmVh
dGUgbW9kZSAxMDA2NDQgSlNUZXN0cy9zdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZlLXplcm8u
anMKCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGEwMzhiNjJmN2NiMC4uNjBlZDU1YWZiOGIwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA3LTA3
ICBYYW4gTG9wZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAgICAgICBNYXRoLm1heCgpIGNhbiB5
aWVsZCB0aGUgd3JvbmcgcmVzdWx0IGZvciBtYXgoMCwgLTApLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDU3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCB0byBtYWtlIHN1cmUgd2Ug
Zm9sbG93IHRoZSBzcGVjIGluIE1hdGgue21heCxtaW59IGFuZAorICAgICAgICAtMC4wIDwgMC4w
LgorCisgICAgICAgICogc3RyZXNzL21hdGgtbWF4LW1pbi1uZWdhdGl2ZS16ZXJvLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGFzc2VydCk6CisgICAgICAgICh0ZXN0KToKKwogMjAyMC0wNy0xNSAgQWxl
eGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgRW1pdCBIYXNP
d25Qcm9wZXJ0eUZ1bmN0aW9uQ2FsbERvdE5vZGUgZm9yICJSZWZsZWN0IiBpZGVudGlmaWVycwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbWF0aC1tYXgtbWluLW5lZ2F0aXZlLXplcm8uanMg
Yi9KU1Rlc3RzL3N0cmVzcy9tYXRoLW1heC1taW4tbmVnYXRpdmUtemVyby5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhlZTlmZTc5NzgxMgotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvc3RyZXNzL21hdGgtbWF4LW1pbi1uZWdhdGl2ZS16ZXJvLmpzCkBAIC0w
LDAgKzEsMjMgQEAKK2Z1bmN0aW9uIHRlc3RNYXgoeCwgeSkgeworICAgIHJldHVybiBNYXRoLm1h
eCh4LCB5KTsKK30KKworZnVuY3Rpb24gdGVzdE1pbih4LCB5KSB7CisgICAgcmV0dXJuIE1hdGgu
bWluKHgsIHkpOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgIHgg
PSAxMDAvdGVzdE1heCgwLjAsIC0wLjApOworICAgIGlmICh4IDwgMCkKKyAgICAgICAgdGhyb3cg
IkZBSUxFRCI7CisgICAgeCA9IDEwMC90ZXN0TWF4KC0wLjAsIDAuMCk7CisgICAgaWYgKHggPCAw
KQorICAgICAgICB0aHJvdyAiRkFJTEVEIjsKKworICAgIHggPSAxMDAvdGVzdE1pbigwLjAsIC0w
LjApOworICAgIGlmICh4ID4gMCkKKyAgICAgICAgdGhyb3cgIkZBSUxFRCI7CisgICAgeCA9IDEw
MC90ZXN0TWluKC0wLjAsIDAuMCk7CisgICAgaWYgKHggPiAwKQorICAgICAgICB0aHJvdyAiRkFJ
TEVEIjsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDc0NDI0ZGI0MjY1MS4uNmUxODU5
MzhjZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAyMC0w
Ny0wNyAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAgIE1hdGgubWF4KCkg
Y2FuIHlpZWxkIHRoZSB3cm9uZyByZXN1bHQgZm9yIG1heCgwLCAtMCkuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0NTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb25zIGZv
ciBNYXRoLnttYXgsbWlufSBpbiBib3RoIERGRyBhbmQgRlRMIGFyZSBub3QKKyAgICAgICAgY29u
c2lkZXJpbmcgdGhlIGZhY3QgdGhhdCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMgLTAuMCA8IDAuMCAo
d2hpY2gKKyAgICAgICAgaXMgbm90IHRydWUgZm9yIG5vcm1hbCBkb3VibGUgYXJpdGhtZXRpYyku
CisgICAgICAgIFNlZTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1tYXRoLm1heCBhbmQg
aHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1tYXRoLm1pbgorCisgICAgICAgIEJleW9uZCB0
d2Vha2luZyB0aGUgYWxnb3JpdGhtcyB1c2VkIGluIERGRyBhbmQgRlRMIHdlIG11c3QKKyAgICAg
ICAgaW1wbGVtZW50IHRoZSBhbmQvb3Igb3BlcmF0aW9ucyBvbiBkb3VibGUgaW4gTUlQUyBhbmQg
QVJNdjcsIHNpbmNlCisgICAgICAgIHRoZXNlIGFyZSB1c2VkIGluIHRoZSBERkcgSklUIHRvIGRp
c3Rpbmd1aXNoIGJldHdlZW4gLTAuMCBhbmQgMC4wLgorCisgICAgICAgICogYXNzZW1ibGVyL0FS
TXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjp2YW5kKToKKyAg
ICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OnZvcnIpOgorICAgICAgICAqIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6
OmFuZERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6Om9yRG91Ymxl
KToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6YW5kRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJNSVBTOjpvckRvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNw
cDoKKyAgICAgICAgKEpTQzo6dGVzdEFuZE9yRG91YmxlKToKKyAgICAgICAgKEpTQzo6cnVuKToK
KyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDogY29uc2lkZXIg
dGhhdCAtMC4wIDwgMC4wIHBlciB0aGUgRUNNQVNjcmlwdCBzcGVjLgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDogZGl0dG8uCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1pbk1heCk6CisgICAgICAg
ICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6IGRpdHRvLgorICAgICAgICAoSlNDOjpGVEw6OkRG
Rzo6TG93ZXJERkdUb0IzOjpjb21waWxlQXJpdGhNaW5Pck1heCk6CisKIDIwMjAtMDctMTUgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtl
XVtXZWJEcml2ZXJdIEdlbmVyYXRpbmcgV2ViRHJpdmVyQXRvbXMuY3BwIGlzIHJhcmVseSBmYWls
aW5nIGFzICJJbXBvcnRFcnJvcjogTm8gbW9kdWxlIG5hbWVkIGpzbWluIgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCmluZGV4IDMxNDRhMjky
NTMxYS4uMDI1YTQ3MzkyYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BUk12N0Fzc2VtYmxlci5oCkBAIC01OTUsNiArNTk1LDggQEAgcHJpdmF0ZToKICAgICAg
ICAgT1BfVlNRUlRfVDEgICAgID0gMHhFRUIwLAogICAgICAgICBPUF9WQ1ZUU0RfVDEgICAgPSAw
eEVFQjAsCiAgICAgICAgIE9QX1ZDVlREU19UMSAgICA9IDB4RUVCMCwKKyAgICAgICAgT1BfVkFO
RF9UMSAgICAgID0gMHhFRjAwLAorICAgICAgICBPUF9WT1JSX1QxICAgICAgPSAweEVGMjAsCiAg
ICAgICAgIE9QX0JfVDNhICAgICAgICA9IDB4RjAwMCwKICAgICAgICAgT1BfQl9UNGEgICAgICAg
ID0gMHhGMDAwLAogICAgICAgICBPUF9BTkRfaW1tX1QxICAgPSAweEYwMDAsCkBAIC02NTMsNiAr
NjU1LDggQEAgcHJpdmF0ZToKICAgICB9IE9wY29kZUlEMTsKIAogICAgIHR5cGVkZWYgZW51bSB7
CisgICAgICAgIE9QX1ZBTkRfVDFiICAgICAgPSAweDAwMTAsCisgICAgICAgIE9QX1ZPUlJfVDFi
ICAgICAgPSAweDAwMTAsCiAgICAgICAgIE9QX1ZBRERfVDJiICAgICAgPSAweDBBMDAsCiAgICAg
ICAgIE9QX1ZESVZiICAgICAgICAgPSAweDBBMDAsCiAgICAgICAgIE9QX0ZMRFNiICAgICAgICAg
PSAweDBBMDAsCkBAIC0xODIzLDYgKzE4MjcsMTYgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgog
CisgICAgdm9pZCB2YW5kKEZQRG91YmxlUmVnaXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklE
IHJuLCBGUERvdWJsZVJlZ2lzdGVySUQgcm0pCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci52
ZnBPcChPUF9WQU5EX1QxLCBPUF9WQU5EX1QxYiwgdHJ1ZSwgcm4sIHJkLCBybSk7CisgICAgfQor
CisgICAgdm9pZCB2b3JyKEZQRG91YmxlUmVnaXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklE
IHJuLCBGUERvdWJsZVJlZ2lzdGVySUQgcm0pCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci52
ZnBPcChPUF9WT1JSX1QxLCBPUF9WT1JSX1QxYiwgdHJ1ZSwgcm4sIHJkLCBybSk7CisgICAgfQor
CiAgICAgdm9pZCB2YWRkKEZQRG91YmxlUmVnaXN0ZXJJRCByZCwgRlBEb3VibGVSZWdpc3RlcklE
IHJuLCBGUERvdWJsZVJlZ2lzdGVySUQgcm0pCiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci52
ZnBPcChPUF9WQUREX1QyLCBPUF9WQUREX1QyYiwgdHJ1ZSwgcm4sIHJkLCBybSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
CmluZGV4IDMwOGMxMTc3ZjYyZi4uYzhmMzM1NWFmMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtMTE2Miw2
ICsxMTYyLDE2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIudm11bChkZXN0LCBvcDEs
IG9wMik7CiAgICAgfQogCisgICAgdm9pZCBhbmREb3VibGUoRlBSZWdpc3RlcklEIG9wMSwgRlBS
ZWdpc3RlcklEIG9wMiwgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2Vt
Ymxlci52YW5kKG9wMSwgb3AyLCBkZXN0KTsKKyAgICB9CisKKyAgICB2b2lkIG9yRG91YmxlKEZQ
UmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAg
IHsKKyAgICAgICAgbV9hc3NlbWJsZXIudm9ycihvcDEsIG9wMiwgZGVzdCk7CisgICAgfQorCiAg
ICAgdm9pZCBzcXJ0RG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIudnNxcnQoZGVzdCwgc3JjKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4
IGU5MTljZmJmMjI0Yi4uMjRiMTk3Mzk5N2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTMwODAsNiArMzA4MCw1
NCBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGQoZGVzdCwgZGVzdCwgZnBUZW1w
UmVnaXN0ZXIpOwogICAgIH0KIAorICAgIC8vIGFuZERvdWJsZSBhbmQgb3JEb3VibGUgYXJlIGEg
Yml0IGNvbnZvbHV0ZWQgdG8gaW1wbGVtZW50CisgICAgLy8gYmVjYXVzZSB3ZSBkb24ndCBoYXZl
IEZQIGluc3RydWN0aW9ucyBmb3IgdGhvc2UKKyAgICAvLyBvcGVyYXRpb25zLiBUaGF0IG1lYW5z
IHdlJ2xsIGhhdmUgdG8gZ28gYmFjayBhbmQgZm9ydGggYmV0d2VlbgorICAgIC8vIHRoZSBGUFUg
YW5kIHRoZSBDUFUsIHdoaWNoIGFjY291bnRzIGZvciBtb3N0IG9mIHRoZSBjb2RlIGhlcmUuCisg
ICAgdm9pZCBhbmREb3VibGUoRlBSZWdpc3RlcklEIG9wMSwgRlBSZWdpc3RlcklEIG9wMiwgRlBS
ZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5tZmMxKGltbVRlbXBS
ZWdpc3Rlciwgb3AxKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZjMShkYXRhVGVtcFJlZ2lzdGVy
LCBvcDIpOworICAgICAgICBtX2Fzc2VtYmxlci5hbmRJbnNuKGNtcFRlbXBSZWdpc3RlciwgaW1t
VGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubXRj
MShjbXBUZW1wUmVnaXN0ZXIsIGRlc3QpOworCisjaWYgV1RGX01JUFNfSVNBX1JFVigyKSAmJiBX
VEZfTUlQU19GUDY0CisgICAgICAgIG1fYXNzZW1ibGVyLm1maGMxKGltbVRlbXBSZWdpc3Rlciwg
b3AxKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZoYzEoZGF0YVRlbXBSZWdpc3Rlciwgb3AyKTsK
KyNlbHNlCisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoaW1tVGVtcFJlZ2lzdGVyLCBGUFJlZ2lz
dGVySUQob3AxKzEpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZjMShkYXRhVGVtcFJlZ2lzdGVy
LCBGUFJlZ2lzdGVySUQob3AyKzEpKTsKKyNlbmRpZgorICAgICAgICBtX2Fzc2VtYmxlci5hbmRJ
bnNuKGNtcFRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsK
KyNpZiBXVEZfTUlQU19JU0FfUkVWKDIpICYmIFdURl9NSVBTX0ZQNjQKKyAgICAgICAgbV9hc3Nl
bWJsZXIubXRoYzEoY21wVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKyNlbHNlCisgICAgICAgIG1fYXNz
ZW1ibGVyLm10YzEoY21wVGVtcFJlZ2lzdGVyLCBGUFJlZ2lzdGVySUQoZGVzdCsxKSk7CisjZW5k
aWYKKyAgICB9CisKKyAgICB2b2lkIG9yRG91YmxlKEZQUmVnaXN0ZXJJRCBvcDEsIEZQUmVnaXN0
ZXJJRCBvcDIsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIu
bWZjMShpbW1UZW1wUmVnaXN0ZXIsIG9wMSk7CisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoZGF0
YVRlbXBSZWdpc3Rlciwgb3AyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIub3JJbnNuKGNtcFRlbXBS
ZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9h
c3NlbWJsZXIubXRjMShjbXBUZW1wUmVnaXN0ZXIsIGRlc3QpOworCisjaWYgV1RGX01JUFNfSVNB
X1JFVigyKSAmJiBXVEZfTUlQU19GUDY0CisgICAgICAgIG1fYXNzZW1ibGVyLm1maGMxKGltbVRl
bXBSZWdpc3Rlciwgb3AxKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZoYzEoZGF0YVRlbXBSZWdp
c3Rlciwgb3AyKTsKKyNlbHNlCisgICAgICAgIG1fYXNzZW1ibGVyLm1mYzEoaW1tVGVtcFJlZ2lz
dGVyLCBGUFJlZ2lzdGVySUQob3AxKzEpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZjMShkYXRh
VGVtcFJlZ2lzdGVyLCBGUFJlZ2lzdGVySUQob3AyKzEpKTsKKyNlbmRpZgorICAgICAgICBtX2Fz
c2VtYmxlci5vckluc24oY21wVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIsIGRhdGFUZW1w
UmVnaXN0ZXIpOworI2lmIFdURl9NSVBTX0lTQV9SRVYoMikgJiYgV1RGX01JUFNfRlA2NAorICAg
ICAgICBtX2Fzc2VtYmxlci5tdGhjMShjbXBUZW1wUmVnaXN0ZXIsIGRlc3QpOworI2Vsc2UKKyAg
ICAgICAgbV9hc3NlbWJsZXIubXRjMShjbXBUZW1wUmVnaXN0ZXIsIEZQUmVnaXN0ZXJJRChkZXN0
KzEpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIHZvaWQgc3ViRG91YmxlKEZQUmVnaXN0ZXJJRCBz
cmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3ViZChk
ZXN0LCBkZXN0LCBzcmMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci90ZXN0bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3Rt
YXNtLmNwcAppbmRleCAwZWQwYTk4OTlmZjIuLjdmOGI5NDg0NWU3NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKQEAgLTIyOTEsNiArMjI5MSw1MiBA
QCB2b2lkIHRlc3RPckltbU1lbSgpCiAgICAgQ0hFQ0tfRVEobWVtb3J5TG9jYXRpb24sIDB4MTIz
NDEyMzQpOwogfQogCit2b2lkIHRlc3RBbmRPckRvdWJsZSgpCit7CisgICAgZG91YmxlIGFyZzEs
IGFyZzI7CisKKyAgICBhdXRvIGFuZERvdWJsZSA9IGNvbXBpbGUoWyZdIChDQ2FsbEhlbHBlcnMm
IGppdCkgeworICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOworICAgICAgICBqaXQu
bG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJmFyZzEpLCBGUFJJbmZvOjpm
cFJlZ1QxKTsKKyAgICAgICAgaml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKCZhcmcyKSwgRlBSSW5mbzo6ZnBSZWdUMik7CisKKyAgICAgICAgaml0LmFuZERvdWJsZShG
UFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QyLCBGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQ
Uik7CisKKyAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgaml0LnJl
dCgpOworICAgIH0pOworCisgICAgYXV0byBvcGVyYW5kcyA9IGRvdWJsZU9wZXJhbmRzKCk7Cisg
ICAgZm9yIChhdXRvIGEgOiBvcGVyYW5kcykgeworICAgICAgICBmb3IgKGF1dG8gYiA6IG9wZXJh
bmRzKSB7CisgICAgICAgICAgICBhcmcxID0gYTsKKyAgICAgICAgICAgIGFyZzIgPSBiOworICAg
ICAgICAgICAgdWludDY0X3QgZXhwZWN0ZWRSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+
KGFyZzEpICYgYml0d2lzZV9jYXN0PHVpbnQ2NF90PihhcmcyKTsKKyAgICAgICAgICAgIENIRUNL
X0VRKGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oaW52b2tlPGRvdWJsZT4oYW5kRG91YmxlKSksIGV4
cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gb3JEb3VibGUgPSBj
b21waWxlKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJv
bG9ndWUoaml0KTsKKyAgICAgICAgaml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKCZhcmcxKSwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgIGppdC5sb2FkRG91Ymxl
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmYXJnMiksIEZQUkluZm86OmZwUmVnVDIpOwor
CisgICAgICAgIGppdC5vckRvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1Qy
LCBGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUik7CisKKyAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoaml0KTsKKyAgICAgICAgaml0LnJldCgpOworICAgIH0pOworCisgICAgZm9yIChhdXRvIGEg
OiBvcGVyYW5kcykgeworICAgICAgICBmb3IgKGF1dG8gYiA6IG9wZXJhbmRzKSB7CisgICAgICAg
ICAgICBhcmcxID0gYTsKKyAgICAgICAgICAgIGFyZzIgPSBiOworICAgICAgICAgICAgdWludDY0
X3QgZXhwZWN0ZWRSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGFyZzEpIHwgYml0d2lz
ZV9jYXN0PHVpbnQ2NF90PihhcmcyKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGJpdHdpc2VfY2Fz
dDx1aW50NjRfdD4oaW52b2tlPGRvdWJsZT4ob3JEb3VibGUpKSwgZXhwZWN0ZWRSZXN1bHQpOwor
ICAgICAgICB9CisgICAgfQorfQorCiB2b2lkIHRlc3RCeXRlU3dhcCgpCiB7CiAjaWYgQ1BVKFg4
Nl82NCkgfHwgQ1BVKEFSTTY0KQpAQCAtMjY1Miw2ICsyNjk4LDggQEAgdm9pZCBydW4oY29uc3Qg
Y2hhciogZmlsdGVyKQogCiAgICAgUlVOKHRlc3RPckltbU1lbSgpKTsKIAorICAgIFJVTih0ZXN0
QW5kT3JEb3VibGUoKSk7CisKICAgICBpZiAodGFza3MuaXNFbXB0eSgpKQogICAgICAgICB1c2Fn
ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggMDU4YzdjMjY2ZWQ2Li41ODA5YjVlMzM3ODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTExODEsNyArMTE4MSw5IEBAIGJvb2wgQWJzdHJhY3RJ
bnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNs
b2JiZXJMaW1pCiAgICAgICAgICAgICBpZiAobGVmdCAmJiByaWdodCAmJiBsZWZ0LmlzTnVtYmVy
KCkgJiYgcmlnaHQuaXNOdW1iZXIoKSkgewogICAgICAgICAgICAgICAgIGRvdWJsZSBhID0gbGVm
dC5hc051bWJlcigpOwogICAgICAgICAgICAgICAgIGRvdWJsZSBiID0gcmlnaHQuYXNOdW1iZXIo
KTsKLSAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0RvdWJsZU51bWJlcihhIDwg
YiA/IGEgOiAoYiA8PSBhID8gYiA6IGEgKyBiKSkpOworICAgICAgICAgICAgICAgIC8vIFRoZSBz
cGVjIGZvciBNYXRoLm1pbiBzdGF0ZXMgdGhhdCArMCBpcyBjb25zaWRlcmVkIHRvIGJlIGxhcmdl
ciB0aGFuIC0wLgorICAgICAgICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSBhIDwgYiB8fCAoIWEg
JiYgIWIgJiYgc3RkOjpzaWduYml0KGEpKSA/IGEgOiAoYiA8PSBhID8gYiA6IGEgKyBiKTsKKyAg
ICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0RvdWJsZU51bWJlcihyZXN1bHQpKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNldE5v
bkNlbGxUeXBlRm9yTm9kZShub2RlLCAKQEAgLTEyMTAsNyArMTIxMiw5IEBAIGJvb2wgQWJzdHJh
Y3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVk
IGNsb2JiZXJMaW1pCiAgICAgICAgICAgICBpZiAobGVmdCAmJiByaWdodCAmJiBsZWZ0LmlzTnVt
YmVyKCkgJiYgcmlnaHQuaXNOdW1iZXIoKSkgewogICAgICAgICAgICAgICAgIGRvdWJsZSBhID0g
bGVmdC5hc051bWJlcigpOwogICAgICAgICAgICAgICAgIGRvdWJsZSBiID0gcmlnaHQuYXNOdW1i
ZXIoKTsKLSAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0RvdWJsZU51bWJlcihh
ID4gYiA/IGEgOiAoYiA+PSBhID8gYiA6IGEgKyBiKSkpOworICAgICAgICAgICAgICAgIC8vIFRo
ZSBzcGVjIGZvciBNYXRoLm1heCBzdGF0ZXMgdGhhdCArMCBpcyBjb25zaWRlcmVkIHRvIGJlIGxh
cmdlciB0aGFuIC0wLgorICAgICAgICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSBhID4gYiB8fCAo
IWEgJiYgIWIgJiYgIXN0ZDo6c2lnbmJpdChhKSkgPyBhIDogKGIgPj0gYSA/IGIgOiBhICsgYik7
CisgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNEb3VibGVOdW1iZXIocmVzdWx0
KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBz
ZXROb25DZWxsVHlwZUZvck5vZGUobm9kZSwgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGZjNDExZTM2M2NhMi4uZGI2YjIzYmI5ZjY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cApAQCAtNjE4MSw5ICs2MTgxLDE5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0
aE1pbk1heChOb2RlKiBub2RlKQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgZG9u
ZTsKIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvcDFMZXNzID0gbV9qaXQuYnJhbmNo
RG91YmxlKG5vZGUtPm9wKCkgPT0gQXJpdGhNaW4gPyBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVz
c1RoYW5BbmRPcmRlcmVkIDogTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUdyZWF0ZXJUaGFuQW5kT3Jk
ZXJlZCwgb3AxRlBSLCBvcDJGUFIpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvcE5v
dEVxdWFsID0gbV9qaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVOb3RFcXVh
bEFuZE9yZGVyZWQsIG9wMUZQUiwgb3AyRlBSKTsKIAotICAgICAgICAvLyBvcDIgaXMgZWF0aGVy
IHRoZSBsZXNzZXIgb25lIG9yIG9uZSBvZiB0aGVuIGlzIE5hTgotICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBvcDJMZXNzID0gbV9qaXQuYnJhbmNoRG91YmxlKG5vZGUtPm9wKCkgPT0gQXJp
dGhNaW4gPyBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlR3JlYXRlclRoYW5PckVxdWFsQW5kT3JkZXJl
ZCA6IE1hY3JvQXNzZW1ibGVyOjpEb3VibGVMZXNzVGhhbk9yRXF1YWxBbmRPcmRlcmVkLCBvcDFG
UFIsIG9wMkZQUik7CisgICAgICAgIC8vIFRoZSBzcGVjIGZvciBNYXRoLm1pbiBhbmQgTWF0aC5t
YXggc3RhdGVzIHRoYXQgKzAgaXMgY29uc2lkZXJlZCB0byBiZSBsYXJnZXIgdGhhbiAtMC4KKyAg
ICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gQXJpdGhNaW4pCisgICAgICAgICAgICBtX2ppdC5vckRv
dWJsZShvcDFGUFIsIG9wMkZQUiwgcmVzdWx0RlBSKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbV9qaXQuYW5kRG91YmxlKG9wMUZQUiwgb3AyRlBSLCByZXN1bHRGUFIpOworCisgICAgICAg
IGRvbmUuYXBwZW5kKG1faml0Lmp1bXAoKSk7CisKKyAgICAgICAgb3BOb3RFcXVhbC5saW5rKCZt
X2ppdCk7CisgICAgICAgIC8vIG9wMiBpcyBlaXRoZXIgdGhlIGxlc3NlciBvbmUgb3Igb25lIG9m
IHRoZW4gaXMgTmFOCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9wMkxlc3MgPSBtX2pp
dC5icmFuY2hEb3VibGUobm9kZS0+b3AoKSA9PSBBcml0aE1pbiA/IE1hY3JvQXNzZW1ibGVyOjpE
b3VibGVHcmVhdGVyVGhhbkFuZE9yZGVyZWQgOiBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVzc1Ro
YW5BbmRPcmRlcmVkLCBvcDFGUFIsIG9wMkZQUik7CiAKICAgICAgICAgLy8gVW5vcmRlcmVkIGNh
c2UuIFdlIGRvbid0IGtub3cgd2hpY2ggb2Ygb3AxLCBvcDIgaXMgTmFOLiBNYW51ZmFjdHVyZSBO
YU4gYnkgYWRkaW5nIAogICAgICAgICAvLyBvcDEgKyBvcDIgYW5kIHB1dHRpbmcgaXQgaW50byBy
ZXN1bHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
aW5kZXggZWM3YTU0NmExMWU5Li43NGY0OTkwOTM2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTI4NzAsMjUgKzI4NzAsNDIgQEAgcHJp
dmF0ZToKICAgICAgICAgY2FzZSBEb3VibGVSZXBVc2U6IHsKICAgICAgICAgICAgIExWYWx1ZSBs
ZWZ0ID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJp
Z2h0ID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgCisKICAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIG5vdExlc3NUaGFuID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGlzRXF1YWwgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgbm90RXF1YWwgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAg
TEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKLSAgICAgICAgICAg
IAorCiAgICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDI+IHJlc3VsdHM7Ci0gICAg
ICAgICAgICAKKwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKGxlZnQp
KTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX25vZGUtPm9w
KCkgPT0gQXJpdGhNaW4KICAgICAgICAgICAgICAgICAgICAgPyBtX291dC5kb3VibGVMZXNzVGhh
bihsZWZ0LCByaWdodCkKICAgICAgICAgICAgICAgICAgICAgOiBtX291dC5kb3VibGVHcmVhdGVy
VGhhbihsZWZ0LCByaWdodCksCiAgICAgICAgICAgICAgICAgdW5zdXJlKGNvbnRpbnVhdGlvbiks
IHVuc3VyZShub3RMZXNzVGhhbikpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBMQmFzaWNC
bG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdExlc3NUaGFuLCBjb250aW51YXRpb24p
OwotICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LnNlbGVjdCgK
KworICAgICAgICAgICAgLy8gVGhlIHNwZWMgZm9yIE1hdGgubWluIGFuZCBNYXRoLm1heCBzdGF0
ZXMgdGhhdCArMCBpcyBjb25zaWRlcmVkIHRvIGJlIGxhcmdlciB0aGFuIC0wLgorICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RMZXNzVGhhbiwgaXNF
cXVhbCk7CisgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICAgICAgbV9vdXQu
ZG91YmxlRXF1YWwobGVmdCwgcmlnaHQpLAorICAgICAgICAgICAgICAgICAgICByYXJlbHkoaXNF
cXVhbCksIHVzdWFsbHkobm90RXF1YWwpKTsKKworICAgICAgICAgICAgbGFzdE5leHQgPSBtX291
dC5hcHBlbmRUbyhpc0VxdWFsLCBub3RFcXVhbCk7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVu
ZChtX291dC5hbmNob3IoCiAgICAgICAgICAgICAgICAgbV9ub2RlLT5vcCgpID09IEFyaXRoTWlu
Ci0gICAgICAgICAgICAgICAgICAgID8gbV9vdXQuZG91YmxlR3JlYXRlclRoYW5PckVxdWFsKGxl
ZnQsIHJpZ2h0KQotICAgICAgICAgICAgICAgICAgICA6IG1fb3V0LmRvdWJsZUxlc3NUaGFuT3JF
cXVhbChsZWZ0LCByaWdodCksCi0gICAgICAgICAgICAgICAgcmlnaHQsIG1fb3V0LmNvbnN0RG91
YmxlKFBOYU4pKSkpOworICAgICAgICAgICAgICAgICAgICA/IG1fb3V0LmJpdE9yKGxlZnQsIHJp
Z2h0KQorICAgICAgICAgICAgICAgICAgICA6IG1fb3V0LmJpdEFuZChsZWZ0LCByaWdodCkpKTsK
KyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKworICAgICAgICAgICAgbGFz
dE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RFcXVhbCwgY29udGludWF0aW9uKTsKKyAgICAgICAg
ICAgIHJlc3VsdHMuYXBwZW5kKAorICAgICAgICAgICAgICAgIG1fb3V0LmFuY2hvcigKKyAgICAg
ICAgICAgICAgICAgICAgbV9vdXQuc2VsZWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9u
b2RlLT5vcCgpID09IEFyaXRoTWluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBtX291
dC5kb3VibGVHcmVhdGVyVGhhbihsZWZ0LCByaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA6IG1fb3V0LmRvdWJsZUxlc3NUaGFuKGxlZnQsIHJpZ2h0KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJpZ2h0LCBtX291dC5jb25zdERvdWJsZShQTmFOKSkpKTsKICAgICAgICAgICAg
IG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7Ci0tIAoyLjI2LjIKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>