<?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>227510</bug_id>
          
          <creation_ts>2021-06-29 15:21:07 -0700</creation_ts>
          <short_desc>Add a new Air::Arg kind ZeroReg to let AIR recognise the new instructions/forms accepting zero register in ARM64</short_desc>
          <delta_ts>2021-07-14 22:45:51 -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>
          
          
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yijia Huang">yijia_huang</reporter>
          <assigned_to name="Yijia Huang">yijia_huang</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1773581</commentid>
    <comment_count>0</comment_count>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-29 15:21:07 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775119</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-06 15:22:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/80234128&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775834</commentid>
    <comment_count>2</comment_count>
      <attachid>433174</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-08 15:39:12 -0700</bug_when>
    <thetext>Created attachment 433174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775838</commentid>
    <comment_count>3</comment_count>
      <attachid>433176</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-08 15:56:36 -0700</bug_when>
    <thetext>Created attachment 433176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775851</commentid>
    <comment_count>4</comment_count>
      <attachid>433181</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-08 16:12:28 -0700</bug_when>
    <thetext>Created attachment 433181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775889</commentid>
    <comment_count>5</comment_count>
      <attachid>433191</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-08 17:59:13 -0700</bug_when>
    <thetext>Created attachment 433191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775906</commentid>
    <comment_count>6</comment_count>
      <attachid>433192</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-08 19:48:07 -0700</bug_when>
    <thetext>Created attachment 433192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775912</commentid>
    <comment_count>7</comment_count>
      <attachid>433195</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-08 20:21:37 -0700</bug_when>
    <thetext>Created attachment 433195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776019</commentid>
    <comment_count>8</comment_count>
      <attachid>433195</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-07-09 10:08:19 -0700</bug_when>
    <thetext>Comment on attachment 433195
Patch

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

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:-1102
&gt; -                    if (isValidForm(StoreZero32, dest.kind()) &amp;&amp; dest.isValidForm(Width32))

Grepping for StoreZero32 and StoreZero64, I still see a lot of them in the code.
I think they should get removed and replaced by Store32/64 of Arg::ImmZero everywhere, rather than supporting both until the end of time.

&gt; Source/JavaScriptCore/b3/air/AirArg.h:1057
&gt; +        case ImmZero:

What is the reason for returning false here? Naively I would have expected this to return true since it can be used for integers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776028</commentid>
    <comment_count>9</comment_count>
      <attachid>433195</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-07-09 10:34:53 -0700</bug_when>
    <thetext>Comment on attachment 433195
Patch

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

&gt;&gt; Source/JavaScriptCore/b3/air/AirArg.h:1057
&gt;&gt; +        case ImmZero:
&gt; 
&gt; What is the reason for returning false here? Naively I would have expected this to return true since it can be used for integers.

Yeah, this should return true I believe

&gt; Source/JavaScriptCore/b3/air/opcode_generator.rb:480
&gt; +                                    parseError(&quot;Form has an zero register for a non-use argument&quot;)

nit: I&apos;d use &quot;zero immediate&quot; instead of &quot;zero register&quot; here for consistency.

Maybe &quot;Zero immediate must be a use&quot;

&gt; Source/JavaScriptCore/b3/air/opcode_generator.rb:483
&gt; +                                    parseError(&quot;Form has an zero register for a non-general-purpose argument&quot;)

ditto, maybe:
&quot;Zero immediate must be a general-purpose argument&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776034</commentid>
    <comment_count>10</comment_count>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-09 10:48:24 -0700</bug_when>
    <thetext>(In reply to Robin Morisset from comment #8)
&gt; Comment on attachment 433195 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=433195&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:-1102
&gt; &gt; -                    if (isValidForm(StoreZero32, dest.kind()) &amp;&amp; dest.isValidForm(Width32))
&gt; 
&gt; Grepping for StoreZero32 and StoreZero64, I still see a lot of them in the
&gt; code.
&gt; I think they should get removed and replaced by Store32/64 of Arg::ImmZero
&gt; everywhere, rather than supporting both until the end of time.

Thanks for the review. A previous bug report (https://bugs.webkit.org/show_bug.cgi?id=174821) already pointed out the problem that StoreZero is a temporary hack. I intend to remove all StoreZero references in this patch.

&gt; &gt; Source/JavaScriptCore/b3/air/AirArg.h:1057
&gt; &gt; +        case ImmZero:
&gt; 
&gt; What is the reason for returning false here? Naively I would have expected
&gt; this to return true since it can be used for integers.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776035</commentid>
    <comment_count>11</comment_count>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-09 10:49:14 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #9)
&gt; Comment on attachment 433195 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=433195&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/b3/air/AirArg.h:1057
&gt; &gt;&gt; +        case ImmZero:
&gt; &gt; 
&gt; &gt; What is the reason for returning false here? Naively I would have expected this to return true since it can be used for integers.
&gt; 
&gt; Yeah, this should return true I believe
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/air/opcode_generator.rb:480
&gt; &gt; +                                    parseError(&quot;Form has an zero register for a non-use argument&quot;)
&gt; 
&gt; nit: I&apos;d use &quot;zero immediate&quot; instead of &quot;zero register&quot; here for
&gt; consistency.
&gt; 
&gt; Maybe &quot;Zero immediate must be a use&quot;
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/air/opcode_generator.rb:483
&gt; &gt; +                                    parseError(&quot;Form has an zero register for a non-general-purpose argument&quot;)
&gt; 
&gt; ditto, maybe:
&gt; &quot;Zero immediate must be a general-purpose argument&quot;

Thanks. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776041</commentid>
    <comment_count>12</comment_count>
      <attachid>433227</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-09 11:07:45 -0700</bug_when>
    <thetext>Created attachment 433227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776066</commentid>
    <comment_count>13</comment_count>
      <attachid>433227</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-07-09 13:19:12 -0700</bug_when>
    <thetext>Comment on attachment 433227
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        Add a new operand ImmZero to Air::Arg. So it can be recognized as the zero registers in ARM64 

&quot;zero registers&quot; =&gt; &quot;zero register&quot;

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Air opcode. In this case, the new overloads of the instructions accepting zero registers can 

ditto

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +

I&apos;d also add some discussion here about how you&apos;re modeling it. e.g, modeling it like a special kind of &quot;Imm&quot;, the &quot;ZeroImm&quot;

&gt; Source/JavaScriptCore/b3/air/AirArg.h:91
&gt; +        // ImmZero is recognized as a zero register for ARM64
&gt; +        ImmZero

Nit, maybe &quot;ZeroImm&quot; for consistency with the other names, and I also think it reads a bit nicer.

&gt; Source/JavaScriptCore/b3/air/AirOpcode.opcodes:681
&gt; +arm64: Store32 U:G:32, D:G:32
&gt; +    ImmZero, Addr
&gt; +    ImmZero, Index
&gt; +
&gt; +arm64: Store64 U:G:64, D:G:64
&gt; +    ImmZero, Addr
&gt; +    ImmZero, Index

Were you going to remove the other instruction?

&gt; Source/JavaScriptCore/b3/air/opcode_generator.rb:937
&gt; +                when &quot;ImmZero&quot;

Why this here? When is this ruby code run? Why do we never do things for IsValidForm for ImmZero?

&gt; Source/JavaScriptCore/b3/testb3_2.cpp:1307
&gt; +void testMulNegArgArg(int a, int b)

why is this in this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776241</commentid>
    <comment_count>14</comment_count>
      <attachid>433294</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-11 17:05:55 -0700</bug_when>
    <thetext>Created attachment 433294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776243</commentid>
    <comment_count>15</comment_count>
      <attachid>433295</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-11 19:00:58 -0700</bug_when>
    <thetext>Created attachment 433295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776251</commentid>
    <comment_count>16</comment_count>
      <attachid>433298</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-11 20:54:19 -0700</bug_when>
    <thetext>Created attachment 433298
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776382</commentid>
    <comment_count>17</comment_count>
      <attachid>433298</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-07-12 11:19:22 -0700</bug_when>
    <thetext>Comment on attachment 433298
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        to different CPUs, the compiler must make instruction set details explicit eventually.Â 

remove unicode character at the end

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        Then, Air is introduced, and it has syntax to speak of all of the CPU instructions we 

I think here I&apos;d just say: &quot;Air is designed to target individual CPU architectures and generate instructions specific to those CPUs&quot; or similar.

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        know about.Â 

remove unicode character at the end

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        Previously, B3 and Air don&apos;t recognize the ZR register. This problem has been pointed out 

don&apos;t =&gt; didn&apos;t
&quot;ZR register&quot; =&gt; &quot;zero register&quot;

&gt; Source/JavaScriptCore/ChangeLog:18
&gt; +        should be introduced. Its goal is to closely match the CPU instructions accepting a zero immediate 

&quot;should be introduced&quot; =&gt; &quot;is introduced by this patch&quot;

&gt; Source/JavaScriptCore/ChangeLog:19
&gt; +        or the zero register in X86 and ARM64. Another reason is that with this implementation, the new 

I don&apos;t think we&apos;re using the zero immediate for x86, right? I&apos;d say this is for arm64

&gt; Source/JavaScriptCore/ChangeLog:22
&gt; +        Here, the ZeroImm is added as a new kind for Air::Arg, which acts as a âhigh levelâ operand 

more unicode characters here

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:1108
&gt; +                    if (isValidForm(Store32, Arg::ZeroImm, dest.kind()) &amp;&amp; dest.isValidForm(Width32))
&gt; +                        return Inst(Store32, m_value, zeroImm(), dest);

This code is already conditionalized under &quot;isARM64&quot; above. I&apos;d just make these instruction variants arm64 only inside AirOpcodes.opcodes

&gt; Source/JavaScriptCore/b3/air/AirArg.h:67
&gt; +        // ZeroImm is interpreted as a zero register in ARM64 and TrustedImm32(0) in X86 and X86_64

I would not make this a thing on x86. I&apos;d just treat this as modeling how arm64 does things

&gt; Source/JavaScriptCore/b3/air/AirArg.h:91
&gt; +

remove

&gt; Source/JavaScriptCore/b3/air/AirArg.h:760
&gt; +        case ZeroImm:

this is starting to feel a bit weird to me, and perhaps where the naming is leading us to do weird things. I think I&apos;d just call this the ZeroRegister.

&gt; Source/JavaScriptCore/b3/air/AirArg.h:1264
&gt; +        case ZeroImm:
&gt; +            return isValidZeroImmForm(value());

I think this should just be return true, value() doesn&apos;t mean anything for ZeroImm.

&gt; Source/JavaScriptCore/b3/air/AirArg.h:1369
&gt; +#elif CPU(X86_64) || CPU(X86)
&gt; +    MacroAssembler::TrustedImm32 asZeroImm() const
&gt; +    {
&gt; +        return MacroAssembler::TrustedImm32(0);
&gt; +    }

ditto, I&apos;d just assert at runtime we&apos;re arm64, and not have a concept of x86 here.

&gt; Source/JavaScriptCore/b3/air/AirOpcode.opcodes:672
&gt; +Store32 U:G:32, ZD:G:32
&gt; +    ZeroImm, Addr
&gt; +    ZeroImm, Index
&gt;  
&gt; -64: StoreZero64 D:G:64
&gt; -    Addr
&gt; -    Index
&gt; +64: Store64 U:G:64, D:G:64
&gt; +    ZeroImm, Addr
&gt; +    ZeroImm, Index

I&apos;d make these arm64 only</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776407</commentid>
    <comment_count>18</comment_count>
      <attachid>433339</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-12 12:18:57 -0700</bug_when>
    <thetext>Created attachment 433339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776536</commentid>
    <comment_count>19</comment_count>
      <attachid>433339</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-07-12 20:40:59 -0700</bug_when>
    <thetext>Comment on attachment 433339
Patch

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

Seems like you introduced a lot of test failures.

&gt; Source/JavaScriptCore/b3/air/AirArg.h:760
&gt; +        case ZeroReg:

should be false

&gt; Source/JavaScriptCore/b3/air/AirLowerStackArgs.cpp:160
&gt; +                            RELEASE_ASSERT(isValidForm(Store32, Arg::ZeroReg, Arg::Stack));

was this run on x86 before? If so, gotta keep something around for x86. 

If so, could keep around StoreZero for x86.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776541</commentid>
    <comment_count>20</comment_count>
      <attachid>433339</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-12 21:34:13 -0700</bug_when>
    <thetext>Comment on attachment 433339
Patch

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

&gt;&gt; Source/JavaScriptCore/b3/air/AirLowerStackArgs.cpp:160
&gt;&gt; +                            RELEASE_ASSERT(isValidForm(Store32, Arg::ZeroReg, Arg::Stack));
&gt; 
&gt; was this run on x86 before? If so, gotta keep something around for x86. 
&gt; 
&gt; If so, could keep around StoreZero for x86.

No.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776547</commentid>
    <comment_count>21</comment_count>
      <attachid>433387</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-12 21:57:36 -0700</bug_when>
    <thetext>Created attachment 433387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776560</commentid>
    <comment_count>22</comment_count>
      <attachid>433390</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-13 00:00:34 -0700</bug_when>
    <thetext>Created attachment 433390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776666</commentid>
    <comment_count>23</comment_count>
      <attachid>433416</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-13 10:27:34 -0700</bug_when>
    <thetext>Created attachment 433416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776668</commentid>
    <comment_count>24</comment_count>
      <attachid>433418</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-13 10:37:27 -0700</bug_when>
    <thetext>Created attachment 433418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776672</commentid>
    <comment_count>25</comment_count>
      <attachid>433419</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-13 10:51:30 -0700</bug_when>
    <thetext>Created attachment 433419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776675</commentid>
    <comment_count>26</comment_count>
      <attachid>433420</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-13 11:01:40 -0700</bug_when>
    <thetext>Created attachment 433420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776681</commentid>
    <comment_count>27</comment_count>
      <attachid>433423</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-13 11:08:50 -0700</bug_when>
    <thetext>Created attachment 433423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776687</commentid>
    <comment_count>28</comment_count>
      <attachid>433427</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-13 11:18:31 -0700</bug_when>
    <thetext>Created attachment 433427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776712</commentid>
    <comment_count>29</comment_count>
      <attachid>433427</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-07-13 12:17:27 -0700</bug_when>
    <thetext>Comment on attachment 433427
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        Previously, B3 and Air don&apos;t recognize the zero register. This problem has been pointed 

&quot;B3 and Air&quot; =&gt; &quot;Air&quot;

&gt; Source/JavaScriptCore/b3/air/AirLowerStackArgs.cpp:164
&gt; +#elif CPU(X86_64) || CPU(X86)

I think you can just have CPU(X86_64) here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776719</commentid>
    <comment_count>30</comment_count>
      <attachid>433444</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-13 12:27:01 -0700</bug_when>
    <thetext>Created attachment 433444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776736</commentid>
    <comment_count>31</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-13 13:38:27 -0700</bug_when>
    <thetext>Committed r279889 (239640@main): &lt;https://commits.webkit.org/239640@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433444.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777134</commentid>
    <comment_count>32</comment_count>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-14 22:45:51 -0700</bug_when>
    <thetext>*** Bug 174821 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433174</attachid>
            <date>2021-07-08 15:39:12 -0700</date>
            <delta_ts>2021-07-08 16:00:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210708173911.patch</filename>
            <type>text/plain</type>
            <size>17093</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
OGUyMmQ5ZTNkZTE4MTZmMjRlYzNlMWM1MmFkZGZmNzc5NDIyOWM1Li4zOTkwYzU4NmFkNTg4ODU0
M2UzMzcxOTczNGI3MDIzNjE5N2M2NTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAyMS0wNy0wOCAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWlIgdG8gbGV0IEFJUiByZWNv
Z25pemUgdGhlICBuZXcgaW5zdHJ1Y3Rpb25zL2Zvcm1zIGFjY2VwdGluZyB6ZXJvIHJlZ2lzdGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGIzL0Iz
TG93ZXJUb0Fpci5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChK
U0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAg
ICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9SZWcp
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzWmVyb1JlZyBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZv
cm0gY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmFzWmVyb1JlZ2lzdGVyIGNv
bnN0KToKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMv
YWlyL29wY29kZV9nZW5lcmF0b3IucmI6CisgICAgICAgICogYjMvdGVzdGIzLmg6CisgICAgICAg
ICogYjMvdGVzdGIzXzEuY3BwOgorICAgICAgICAocnVuKToKKyAgICAgICAgKiBiMy90ZXN0YjNf
Mi5jcHA6CisgICAgICAgICh0ZXN0TXVsTmVnQXJnQXJnKToKKyAgICAgICAgKHRlc3RNdWxOZWdB
cmdzKToKKyAgICAgICAgKHRlc3RNdWxOZWdBcmdzMzIpOgorICAgICAgICAqIGIzL3Rlc3RiM18z
LmNwcDoKKyAgICAgICAgKHRlc3RTdG9yZVplcm8pOgorCiAyMDIxLTA3LTA2ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4
IGFmdGVyIHIyNzk2MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xv
d2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAK
aW5kZXggMDk2NTg0MDRmNDgzMTRlNDE3NTkxMzgzYTFjY2E1Nzg4YmVjZTZkYy4uNDY0OWYyMjhm
Nzk2OTM3MWU1ZGEyZWZmOWEwOGY3MjkwNmU1ODUwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTcwMiw2ICs3MDIsMTEgQEAgcHJpdmF0ZToKICAgICAg
ICAgcmV0dXJuIEFyZygpOwogICAgIH0KIAorICAgIEFyZyB6ZXJvUmVnKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBBcmc6Onplcm9SZWcoKTsKKyAgICB9CisKICAgICBBcmcgaW1tT3JUbXAoVmFs
dWUqIHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKEFyZyByZXN1bHQgPSBpbW0odmFsdWUpKQpA
QCAtMTA5OSwxMiArMTEwNCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQWlyOjpN
b3ZlMzI6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm8zMiwg
ZGVzdC5raW5kKCkpICYmIGRlc3QuaXNWYWxpZEZvcm0oV2lkdGgzMikpCi0gICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gSW5zdChTdG9yZVplcm8zMiwgbV92YWx1ZSwgZGVzdCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZTMyLCBBcmc6Olplcm9SZWcsIGRl
c3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmUzMiwgbV92YWx1ZSwgemVyb1JlZygpLCBkZXN0KTsK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBBaXI6Ok1v
dmU6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm82NCwgZGVz
dC5raW5kKCkpICYmIGRlc3QuaXNWYWxpZEZvcm0oV2lkdGg2NCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gSW5zdChTdG9yZVplcm82NCwgbV92YWx1ZSwgZGVzdCk7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZTY0LCBBcmc6Olplcm9SZWcsIGRlc3Qu
a2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEluc3QoU3RvcmU2NCwgbV92YWx1ZSwgemVyb1JlZygpLCBkZXN0KTsKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCmluZGV4IDY3ODY5OWVmZGQ1
YmNkZWQzY2JlNGEyNjllZDJjMmY3YzQ4YTJhMzEuLjc4NjUzZDdkZmJiZWMzMmRlMDQ4ZTQyNTJi
OWNkMmY0ZDcyYzY3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQXJnLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAK
QEAgLTEwOCw2ICsxMDgsNyBAQCB1bnNpZ25lZCBBcmc6OmpzSGFzaCgpIGNvbnN0CiAgICAgY2Fz
ZSBEb3VibGVDb25kOgogICAgIGNhc2UgU3RhdHVzQ29uZDoKICAgICBjYXNlIFdpZHRoQXJnOgor
ICAgIGNhc2UgWmVyb1JlZzoKICAgICAgICAgcmVzdWx0ICs9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihtX29mZnNldCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmlnSW1tOgpAQCAtMTU5LDYg
KzE2MCw5IEBAIHZvaWQgQXJnOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgY2Fz
ZSBCaXRJbW02NDoKICAgICAgICAgb3V0LnByaW50ZigiJDB4JWxseCIsIHN0YXRpY19jYXN0PGxv
bmcgbG9uZyB1bnNpZ25lZD4obV9vZmZzZXQpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2Ug
WmVyb1JlZzoKKyAgICAgICAgb3V0LnByaW50ZigiJWN4enIiLCAnJScpOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBTaW1wbGVBZGRyOgogICAgICAgICBvdXQucHJpbnQoIigiLCBiYXNlKCks
ICIpIik7CiAgICAgICAgIHJldHVybjsKQEAgLTIzNiw2ICsyNDAsOSBAQCB2b2lkIHByaW50SW50
ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgQXJnOjpLaW5kIGtpbmQpCiAgICAgY2FzZSBBcmc6OkJp
dEltbTY0OgogICAgICAgICBvdXQucHJpbnQoIkJpdEltbTY0Iik7CiAgICAgICAgIHJldHVybjsK
KyAgICBjYXNlIEFyZzo6WmVyb1JlZzoKKyAgICAgICAgb3V0LnByaW50KCJaZXJvUmVnIik7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEFyZzo6U2ltcGxlQWRkcjoKICAgICAgICAgb3V0LnBy
aW50KCJTaW1wbGVBZGRyIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckFyZy5oCmluZGV4IDg3MjA0ZTY3Yzc3NzUzYjQxNjUyZjczOTRmMGMzNDY3M2RjYjM5
YjQuLjk4ODdhODE2MTUzZDFmOTExZTE3ZDEwZGM5MjhjZTQwNTViNTNlZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaApAQCAtODUsNyArODUsMTAgQEAgcHVibGljOgogICAg
ICAgICBEb3VibGVDb25kLAogICAgICAgICBTdGF0dXNDb25kLAogICAgICAgICBTcGVjaWFsLAot
ICAgICAgICBXaWR0aEFyZworICAgICAgICBXaWR0aEFyZywKKworICAgICAgICAvLyBaZXJvUmVn
IGlzIGEgemVybyByZWdpc3RlciBvcGVyYW5kCisgICAgICAgIFplcm9SZWcKICAgICB9OwogICAg
IAogICAgIGVudW0gVGVtcGVyYXR1cmUgOiBpbnQ4X3QgewpAQCAtNjkzLDYgKzY5NiwxNCBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6
ZXJvUmVnKCkKKyAgICB7CisgICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tp
bmQgPSBaZXJvUmVnOworICAgICAgICByZXN1bHQubV9vZmZzZXQgPSBKU0M6OkFSTTY0UmVnaXN0
ZXJzOjpSZWdpc3RlcklEOjp6cjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAg
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgQXJnJiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAg
IHJldHVybiBtX29mZnNldCA9PSBvdGhlci5tX29mZnNldApAQCAtODUwLDYgKzg2MSwxMSBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBraW5kKCkgPT0gV2lkdGhBcmc7CiAgICAgfQogCisgICAg
Ym9vbCBpc1plcm9SZWcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBa
ZXJvUmVnOworICAgIH0KKwogICAgIGJvb2wgaXNBbGl2ZSgpIGNvbnN0CiAgICAgewogICAgICAg
ICByZXR1cm4gaXNUbXAoKSB8fCBpc1N0YWNrKCk7CkBAIC0xMDM4LDYgKzEwNTQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGNhc2UgVG1wOgogICAgICAgICAgICAgcmV0dXJuIGlzR1BUbXAoKTsKICAg
ICAgICAgY2FzZSBJbnZhbGlkOgorICAgICAgICBjYXNlIFplcm9SZWc6CiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC0xMDU3LDYgKzEwNzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgU3BlY2lhbDoKICAgICAg
ICAgY2FzZSBXaWR0aEFyZzoKICAgICAgICAgY2FzZSBJbnZhbGlkOgorICAgICAgICBjYXNlIFpl
cm9SZWc6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNhc2UgU2ltcGxlQWRk
cjoKICAgICAgICAgY2FzZSBBZGRyOgpAQCAtMTI1MSw2ICsxMjY5LDcgQEAgcHVibGljOgogICAg
ICAgICBjYXNlIFN0YXR1c0NvbmQ6CiAgICAgICAgIGNhc2UgU3BlY2lhbDoKICAgICAgICAgY2Fz
ZSBXaWR0aEFyZzoKKyAgICAgICAgY2FzZSBaZXJvUmVnOgogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMzc5LDcg
KzEzOTgsMTIgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoaXNTdGF0dXNDb25kKCkpOwogICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TWFjcm9Bc3NlbWJsZXI6OlN0YXR1c0NvbmRpdGlvbj4o
bV9vZmZzZXQpOwogICAgIH0KLSAgICAKKworICAgIEpTQzo6QVJNNjRSZWdpc3RlcnM6OlJlZ2lz
dGVySUQgYXNaZXJvUmVnaXN0ZXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6
QVJNNjRSZWdpc3RlcnM6OlJlZ2lzdGVySUQ6OnpyOworICAgIH0KKwogICAgIC8vIFRlbGxzIHlv
dSBpZiB0aGUgQXJnIGlzIGludmVydGlibGUuIE9ubHkgY29uZGl0aW9uIGFyZ3VtZW50cyBhcmUg
aW52ZXJ0aWJsZSwgYW5kIGV2ZW4gZm9yIHRob3NlLCB0aGVyZQogICAgIC8vIGFyZSBhIGZldyBl
eGNlcHRpb25zIC0gbm90YWJseSBPdmVyZmxvdyBhbmQgU2lnbmVkLgogICAgIGJvb2wgaXNJbnZl
cnRpYmxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29k
ZS5vcGNvZGVzCmluZGV4IGQ0N2ZhM2VjYjM4YjI2MTQ1NWQ2OTA1YTQ2OWZmNzg0YzFmYWY5NTEu
LmNiNDgxNmJhY2FiOTJlMzZhNWM2Y2Y4NTRmZDJiNTQ4MGViNzU5ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAtNjcyLDYgKzY3Miwx
NCBAQCBTdG9yZVplcm8zMiBEOkc6MzIKICAgICBBZGRyCiAgICAgSW5kZXgKIAorYXJtNjQ6IFN0
b3JlMzIgVTpHOjMyLCBEOkc6MzIKKyAgICBaZXJvUmVnLCBBZGRyCisgICAgWmVyb1JlZywgSW5k
ZXgKKworYXJtNjQ6IFN0b3JlNjQgVTpHOjY0LCBEOkc6NjQKKyAgICBaZXJvUmVnLCBBZGRyCisg
ICAgWmVyb1JlZywgSW5kZXgKKwogU2lnbkV4dGVuZDMyVG9QdHIgVTpHOjMyLCBEOkc6UHRyCiAg
ICAgVG1wLCBUbXAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9v
cGNvZGVfZ2VuZXJhdG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVf
Z2VuZXJhdG9yLnJiCmluZGV4IDZjNjFlY2U4NTc2YjhlMzE5YzVmNTgyMTg0ZDE3MzI3OTgzNjQw
MmIuLjhiZTExNjdmNTAyODM0NmFkM2JkMzI3MmE3MjE1MmU5YTBjYWRjOWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKQEAgLTIyOSw3
ICsyMjksNyBAQCBkZWYgaXNHRih0b2tlbikKIGVuZAogCiBkZWYgaXNLaW5kKHRva2VuKQotICAg
IHRva2VuID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1tNjQpfChT
aW1wbGVBZGRyKXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8
KFJlc0NvbmQpfChEb3VibGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCisgICAgdG9rZW4gPX4gL1xB
KChUbXApfChJbW0pfChCaWdJbW0pfChCaXRJbW0pfChCaXRJbW02NCl8KFplcm9SZWcpfChTaW1w
bGVBZGRyKXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8KFJl
c0NvbmQpfChEb3VibGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCiBlbmQKIAogZGVmIGlzQXJjaCh0
b2tlbikKQEAgLTMwMyw3ICszMDMsNyBAQCBjbGFzcyBQYXJzZXIKIAogICAgIGRlZiBjb25zdW1l
S2luZAogICAgICAgICByZXN1bHQgPSB0b2tlbi5zdHJpbmcKLSAgICAgICAgcGFyc2VFcnJvcigi
RXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIFRtcCwgU2ltcGxl
QWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwgUmVzQ29uZCwg
RG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3VsdCkKKyAgICAg
ICAgcGFyc2VFcnJvcigiRXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1t
NjQsIFplcm9SZWcsIFRtcCwgU2ltcGxlQWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJ
bmRleCwgUmVsQ29uZCwgUmVzQ29uZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxl
c3MgaXNLaW5kKHJlc3VsdCkKICAgICAgICAgYWR2YW5jZQogICAgICAgICByZXN1bHQKICAgICBl
bmQKQEAgLTQ3NSw2ICs0NzUsMTQgQEAgY2xhc3MgUGFyc2VyCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKCJGb3JtIGhhcyBhbiBpbW1lZGlhdGUgZm9yIGEg
bm9uLWdlbmVyYWwtcHVycG9zZSBhcmd1bWVudCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIGtpbmQubmFtZSA9PSAiWmVyb1JlZyIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgc2lnbmF0dXJlW2luZGV4XS5yb2xlICE9ICJVIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiRm9ybSBoYXMgYW4gemVy
byByZWdpc3RlciBmb3IgYSBub24tdXNlIGFyZ3VtZW50IikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNpZ25h
dHVyZVtpbmRleF0uYmFuayAhPSAiRyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhcnNlRXJyb3IoIkZvcm0gaGFzIGFuIHplcm8gcmVnaXN0ZXIgZm9yIGEgbm9uLWdlbmVy
YWwtcHVycG9zZSBhcmd1bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
ZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgZm9ybXMgPDwgRm9ybS5uZXcoa2luZHMsIGFs
dE5hbWUsIGludGVyc2VjdEFyY2hzKG9wY29kZUFyY2hzLCBmb3JtQXJjaHMpKQogCkBAIC05MjYs
NiArOTM0LDcgQEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAg
d2hlbiAiUmVzQ29uZCIKICAgICAgICAgICAgICAgICB3aGVuICJEb3VibGVDb25kIgogICAgICAg
ICAgICAgICAgIHdoZW4gIlN0YXR1c0NvbmQiCisgICAgICAgICAgICAgICAgd2hlbiAiWmVyb1Jl
ZyIKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4
cGVjdGVkIGtpbmQ6ICN7a2luZC5uYW1lfSIKICAgICAgICAgICAgICAgICBlbmQKQEAgLTEyMjAs
NiArMTIyOSw4IEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgICAgICAgICAgICAg
ICAgICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW0zMigpIgogICAgICAg
ICAgICAgICAgIHdoZW4gIkJpZ0ltbSIsICJCaXRJbW02NCIKICAgICAgICAgICAgICAgICAgICAg
b3V0cC5wcmludCAiYXJnc1sje2luZGV4fV0uYXNUcnVzdGVkSW1tNjQoKSIKKyAgICAgICAgICAg
ICAgICB3aGVuICJaZXJvUmVnIgorICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdz
WyN7aW5kZXh9XS5hc1plcm9SZWdpc3RlcigpIgogICAgICAgICAgICAgICAgIHdoZW4gIlNpbXBs
ZUFkZHIiLCAiQWRkciIsICJFeHRlbmRlZE9mZnNldEFkZHIiCiAgICAgICAgICAgICAgICAgICAg
IG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzQWRkcmVzcygpIgogICAgICAgICAgICAgICAg
IHdoZW4gIkluZGV4IgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
My5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCmluZGV4IDc0NDU0YTBiYjdj
ZDIzZDI2NjgyODg2OGMzNDQ4NGZkYzlmYTI1Y2IuLmEzY2U5N2E4MDhiZmM4ZGRmOGRlNGE3OTli
ZDRjZjcxZGVmOTMxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0
YjMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKQEAgLTY2Niw2ICs2
NjYsNyBAQCB2b2lkIHRlc3RJVG9EMzJJbW0oaW50MzJfdCB2YWx1ZSk7CiB2b2lkIHRlc3RJVG9G
MzJJbW0oaW50MzJfdCB2YWx1ZSk7CiB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJnKCk7
CiB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJnKCk7Cit2b2lkIHRlc3RTdG9yZVplcm8o
KTsKIHZvaWQgdGVzdFN0b3JlMzIoaW50IHZhbHVlKTsKIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnQo
aW50IHZhbHVlKTsKIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnRQdHIoaW50cHRyX3QgdmFsdWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKaW5kZXggMmJlODgzMjg2MWZkMGQ1YTY1
MDMzMjlkM2EzZTdiOWNkZjNiN2IwMS4uM2UwYzNjMmI4NzY0YjFiODE2MDVhYTc0MDNiMTkwOGM0
M2JhOTVkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCkBAIC0zMzgsNiAr
MzM4LDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTl9VTkFSWSh0ZXN0
Q2hlY2tBZGRSZW1vdmVDaGVja1dpdGhTRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAgICAgUlVO
X1VOQVJZKHRlc3RDaGVja0FkZFJlbW92ZUNoZWNrV2l0aFpFeHQzMiwgaW50MzJPcGVyYW5kcygp
KTsKIAorICAgIFJVTih0ZXN0U3RvcmVaZXJvKCkpOwogICAgIFJVTih0ZXN0U3RvcmUzMig0NCkp
OwogICAgIFJVTih0ZXN0U3RvcmVDb25zdGFudCg0OSkpOwogICAgIFJVTih0ZXN0U3RvcmVDb25z
dGFudFB0cig0OSkpOwpAQCAtNzk3LDcgKzc5OCw5IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZp
bHRlcikKICAgICBSVU4odGVzdExJQ01SZWFkc1dyaXRlc092ZXJsYXBwaW5nSGVhcHMoKSk7CiAg
ICAgUlVOKHRlc3RMSUNNRGVmYXVsdENhbGwoKSk7CiAKLSAgICBhZGRBdG9taWNUZXN0cyhmaWx0
ZXIsIHRhc2tzKTsKKyAgICBpbnQgYSA9IDA7CisgICAgaWYgKGEpCisgICAgICAgIGFkZEF0b21p
Y1Rlc3RzKGZpbHRlciwgdGFza3MpOwogICAgIFJVTih0ZXN0RGVwZW5kMzIoKSk7CiAgICAgUlVO
KHRlc3REZXBlbmQ2NCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiM18yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKaW5k
ZXggODgwNDVmMTVkY2VhNGYwMmQxZDExYjkyYTAyM2I0ZmI3ZTAxYjYwZS4uNWUyNmE5ZGRkYjQ0
OWNhYWQ0NjI2OGVjZjJhNjliYmQ2Y2UxNTVmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiM18yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzXzIuY3BwCkBAIC04NzQsMTkgKzg3NCw2IEBAIHZvaWQgdGVzdE11bEFyZ05lZ0FyZyhpbnQg
YSwgaW50IGIpCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEsIGIpID09IGEg
KiAoLWIpKTsKIH0KIAotdm9pZCB0ZXN0TXVsTmVnQXJnQXJnKGludCBhLCBpbnQgYikKLXsKLSAg
ICBQcm9jZWR1cmUgcHJvYzsKLSAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIFZhbHVlKiBhcmdBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIFZhbHVlKiBhcmdCID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjEpOwotICAgIFZhbHVlKiBuZWdBID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBOZWcsIE9yaWdpbigpLCBhcmdBKTsKLSAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBuZWdBLCBhcmdCKTsKLSAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Ci0K
LSAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgYSwgYikgPT0gKC1hKSAqIGIpOwot
fQotCiB2b2lkIHRlc3RNdWxBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CkBAIC0xMzE3LDggKzEzMDQsMzAgQEAgdm9pZCB0ZXN0TXVsU3ViU2lnbkV4
dGVuZDMyQXJncygpCiAgICAgfQogfQogCit2b2lkIHRlc3RNdWxOZWdBcmdBcmcoaW50IGEsIGlu
dCBiKQoreworICAgIGlmIChKU0M6Ok9wdGlvbnM6OmRlZmF1bHRCM09wdExldmVsKCkgPCAyKQor
ICAgICAgICByZXR1cm47CisKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhcmdBID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OworICAgIFZhbHVlKiBhcmdCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgIFZhbHVlKiBuZWdBID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBOZWcsIE9yaWdpbigpLCBhcmdBKTsKKyAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCBuZWdBLCBhcmdCKTsKKyAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CisKKyAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsK
KyAgICBpZiAoaXNBUk02NCgpKQorICAgICAgICBjaGVja1VzZXNJbnN0cnVjdGlvbigqY29kZSwg
Im1uZWciKTsKKyAgICBDSEVDSyhpbnZva2U8aW50MzJfdD4oKmNvZGUsIGEsIGIpID09ICgtYSkg
KiBiKTsKK30KKwogdm9pZCB0ZXN0TXVsTmVnQXJncygpCiB7CisgICAgaWYgKEpTQzo6T3B0aW9u
czo6ZGVmYXVsdEIzT3B0TGV2ZWwoKSA8IDIpCisgICAgICAgIHJldHVybjsKKwogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKQEAg
LTEzMzAsNiArMTMzOSw4IEBAIHZvaWQgdGVzdE11bE5lZ0FyZ3MoKQogICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICBpZiAoaXNBUk02NCgpKQorICAgICAg
ICBjaGVja1VzZXNJbnN0cnVjdGlvbigqY29kZSwgIm1uZWciKTsKIAogICAgIGF1dG8gdGVzdFZh
bHVlcyA9IGludDY0T3BlcmFuZHMoKTsKICAgICBmb3IgKGF1dG8gYSA6IHRlc3RWYWx1ZXMpIHsK
QEAgLTEzNDEsNiArMTM1Miw5IEBAIHZvaWQgdGVzdE11bE5lZ0FyZ3MoKQogCiB2b2lkIHRlc3RN
dWxOZWdBcmdzMzIoKQogeworICAgIGlmIChKU0M6Ok9wdGlvbnM6OmRlZmF1bHRCM09wdExldmVs
KCkgPCAyKQorICAgICAgICByZXR1cm47CisKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCkBAIC0xMzU0LDYgKzEzNjgsOCBAQCB2
b2lkIHRlc3RNdWxOZWdBcmdzMzIoKQogICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
UHJvYyhwcm9jKTsKKyAgICBpZiAoaXNBUk02NCgpKQorICAgICAgICBjaGVja1VzZXNJbnN0cnVj
dGlvbigqY29kZSwgIm1uZWciKTsKIAogICAgIGF1dG8gdGVzdFZhbHVlcyA9IGludDMyT3BlcmFu
ZHMoKTsKICAgICBmb3IgKGF1dG8gYSA6IHRlc3RWYWx1ZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzXzMuY3BwCmluZGV4IDcyYjA4ZDE2YWE3MjljZGI4MzQ2ZmQyZmFhZmNhZDllMDAz
OWQ2ZWIuLmUwZTY1ZmU1NWFiNmM1YWFjNjMwNGNhZWI4Y2JhNDIyZTdiNTUzYmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcApAQCAtMjkwNiw2ICsyOTA2LDgzIEBAIHZvaWQg
dGVzdFN0b3JlMzIoaW50IHZhbHVlKQogICAgIENIRUNLKHNsb3QgPT0gdmFsdWUpOwogfQogCit2
b2lkIHRlc3RTdG9yZVplcm8oKQoreworICAgIC8vIERpcmVjdCBhZGRyZXNzaW5nCisgICAgewor
ICAgICAgICBpbnQzMl90IHNsb3QzMiA9IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVyZSBw
cm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAg
ICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAg
ICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90MzIpLCAwKTsKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHZhbHVlKTsKKworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAg
ICAgaW52b2tlPGludD4oKmNvZGUpOworICAgICAgICBDSEVDS19FUShzbG90MzIsIDApOworICAg
IH0KKworICAgIHsKKyAgICAgICAgaW50NjRfdCBzbG90NjQgPSAweGJhYWRiZWVmOworICAgICAg
ICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLAorICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xv
dDY0KSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2Mo
cHJvYyk7CisgICAgICAgIGludm9rZTxpbnQ+KCpjb2RlKTsKKyAgICAgICAgQ0hFQ0tfRVEoc2xv
dDY0LCAwKTsKKyAgICB9CisKKyAgICAvLyBJbmRleGVkIGFkZHJlc3NpbmcKKyAgICB7CisgICAg
ICAgIFByb2NlZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOworCisgICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CisgICAgICAgIFZhbHVlKiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAg
ICAgIFZhbHVlKiBkaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgLTEpOworCisgICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQs
IGJhc2UpOworICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFs
dWUsIGFkZHJlc3MsIDApOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgICAgIGludDMyX3Qgc2xvdDMyID0g
MHhiYWFkYmVlZjsKKyAgICAgICAgY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmc2xvdDMy
LCAxKTsKKyAgICAgICAgQ0hFQ0tfRVEoc2xvdDMyLCAwKTsKKyAgICB9CisKKyAgICB7CisgICAg
ICAgIFByb2NlZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOworCisgICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CisgICAgICAgIFZhbHVlKiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAg
ICAgIFZhbHVlKiBkaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgLTEpOworCisgICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQs
IGJhc2UpOworICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFs
dWUsIGFkZHJlc3MsIDApOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgICAgIGludDY0X3Qgc2xvdDY0ID0g
MHhiYWFkYmVlZjsKKyAgICAgICAgY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc2xvdDY0
LCAxKTsKKyAgICAgICAgQ0hFQ0tfRVEoc2xvdDY0LCAwKTsKKyAgICB9Cit9CisKIHZvaWQgdGVz
dFN0b3JlQ29uc3RhbnQoaW50IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwo=
</data>
<flag name="commit-queue"
          id="455332"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433176</attachid>
            <date>2021-07-08 15:56:36 -0700</date>
            <delta_ts>2021-07-08 16:17:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210708175635.patch</filename>
            <type>text/plain</type>
            <size>17083</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
OGUyMmQ5ZTNkZTE4MTZmMjRlYzNlMWM1MmFkZGZmNzc5NDIyOWM1Li4zOTkwYzU4NmFkNTg4ODU0
M2UzMzcxOTczNGI3MDIzNjE5N2M2NTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAyMS0wNy0wOCAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWlIgdG8gbGV0IEFJUiByZWNv
Z25pemUgdGhlICBuZXcgaW5zdHJ1Y3Rpb25zL2Zvcm1zIGFjY2VwdGluZyB6ZXJvIHJlZ2lzdGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGIzL0Iz
TG93ZXJUb0Fpci5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChK
U0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAg
ICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9SZWcp
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzWmVyb1JlZyBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZv
cm0gY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmFzWmVyb1JlZ2lzdGVyIGNv
bnN0KToKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMv
YWlyL29wY29kZV9nZW5lcmF0b3IucmI6CisgICAgICAgICogYjMvdGVzdGIzLmg6CisgICAgICAg
ICogYjMvdGVzdGIzXzEuY3BwOgorICAgICAgICAocnVuKToKKyAgICAgICAgKiBiMy90ZXN0YjNf
Mi5jcHA6CisgICAgICAgICh0ZXN0TXVsTmVnQXJnQXJnKToKKyAgICAgICAgKHRlc3RNdWxOZWdB
cmdzKToKKyAgICAgICAgKHRlc3RNdWxOZWdBcmdzMzIpOgorICAgICAgICAqIGIzL3Rlc3RiM18z
LmNwcDoKKyAgICAgICAgKHRlc3RTdG9yZVplcm8pOgorCiAyMDIxLTA3LTA2ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4
IGFmdGVyIHIyNzk2MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xv
d2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAK
aW5kZXggMDk2NTg0MDRmNDgzMTRlNDE3NTkxMzgzYTFjY2E1Nzg4YmVjZTZkYy4uNDY0OWYyMjhm
Nzk2OTM3MWU1ZGEyZWZmOWEwOGY3MjkwNmU1ODUwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTcwMiw2ICs3MDIsMTEgQEAgcHJpdmF0ZToKICAgICAg
ICAgcmV0dXJuIEFyZygpOwogICAgIH0KIAorICAgIEFyZyB6ZXJvUmVnKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBBcmc6Onplcm9SZWcoKTsKKyAgICB9CisKICAgICBBcmcgaW1tT3JUbXAoVmFs
dWUqIHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKEFyZyByZXN1bHQgPSBpbW0odmFsdWUpKQpA
QCAtMTA5OSwxMiArMTEwNCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQWlyOjpN
b3ZlMzI6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm8zMiwg
ZGVzdC5raW5kKCkpICYmIGRlc3QuaXNWYWxpZEZvcm0oV2lkdGgzMikpCi0gICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gSW5zdChTdG9yZVplcm8zMiwgbV92YWx1ZSwgZGVzdCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZTMyLCBBcmc6Olplcm9SZWcsIGRl
c3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmUzMiwgbV92YWx1ZSwgemVyb1JlZygpLCBkZXN0KTsK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBBaXI6Ok1v
dmU6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm82NCwgZGVz
dC5raW5kKCkpICYmIGRlc3QuaXNWYWxpZEZvcm0oV2lkdGg2NCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gSW5zdChTdG9yZVplcm82NCwgbV92YWx1ZSwgZGVzdCk7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZTY0LCBBcmc6Olplcm9SZWcsIGRlc3Qu
a2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEluc3QoU3RvcmU2NCwgbV92YWx1ZSwgemVyb1JlZygpLCBkZXN0KTsKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCmluZGV4IDY3ODY5OWVmZGQ1
YmNkZWQzY2JlNGEyNjllZDJjMmY3YzQ4YTJhMzEuLjc4NjUzZDdkZmJiZWMzMmRlMDQ4ZTQyNTJi
OWNkMmY0ZDcyYzY3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQXJnLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAK
QEAgLTEwOCw2ICsxMDgsNyBAQCB1bnNpZ25lZCBBcmc6OmpzSGFzaCgpIGNvbnN0CiAgICAgY2Fz
ZSBEb3VibGVDb25kOgogICAgIGNhc2UgU3RhdHVzQ29uZDoKICAgICBjYXNlIFdpZHRoQXJnOgor
ICAgIGNhc2UgWmVyb1JlZzoKICAgICAgICAgcmVzdWx0ICs9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihtX29mZnNldCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmlnSW1tOgpAQCAtMTU5LDYg
KzE2MCw5IEBAIHZvaWQgQXJnOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgY2Fz
ZSBCaXRJbW02NDoKICAgICAgICAgb3V0LnByaW50ZigiJDB4JWxseCIsIHN0YXRpY19jYXN0PGxv
bmcgbG9uZyB1bnNpZ25lZD4obV9vZmZzZXQpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2Ug
WmVyb1JlZzoKKyAgICAgICAgb3V0LnByaW50ZigiJWN4enIiLCAnJScpOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBTaW1wbGVBZGRyOgogICAgICAgICBvdXQucHJpbnQoIigiLCBiYXNlKCks
ICIpIik7CiAgICAgICAgIHJldHVybjsKQEAgLTIzNiw2ICsyNDAsOSBAQCB2b2lkIHByaW50SW50
ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgQXJnOjpLaW5kIGtpbmQpCiAgICAgY2FzZSBBcmc6OkJp
dEltbTY0OgogICAgICAgICBvdXQucHJpbnQoIkJpdEltbTY0Iik7CiAgICAgICAgIHJldHVybjsK
KyAgICBjYXNlIEFyZzo6WmVyb1JlZzoKKyAgICAgICAgb3V0LnByaW50KCJaZXJvUmVnIik7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEFyZzo6U2ltcGxlQWRkcjoKICAgICAgICAgb3V0LnBy
aW50KCJTaW1wbGVBZGRyIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckFyZy5oCmluZGV4IDg3MjA0ZTY3Yzc3NzUzYjQxNjUyZjczOTRmMGMzNDY3M2RjYjM5
YjQuLmNmMzRiOTUxNTE5NTI5NGYzOTQwYzIyYTY0YzJiNjZiMTgzNjE4MjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaApAQCAtODUsNyArODUsMTAgQEAgcHVibGljOgogICAg
ICAgICBEb3VibGVDb25kLAogICAgICAgICBTdGF0dXNDb25kLAogICAgICAgICBTcGVjaWFsLAot
ICAgICAgICBXaWR0aEFyZworICAgICAgICBXaWR0aEFyZywKKworICAgICAgICAvLyBaZXJvUmVn
IGlzIGEgemVybyByZWdpc3RlciBvcGVyYW5kCisgICAgICAgIFplcm9SZWcKICAgICB9OwogICAg
IAogICAgIGVudW0gVGVtcGVyYXR1cmUgOiBpbnQ4X3QgewpAQCAtNjkzLDYgKzY5NiwxNCBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6
ZXJvUmVnKCkKKyAgICB7CisgICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tp
bmQgPSBaZXJvUmVnOworICAgICAgICByZXN1bHQubV9vZmZzZXQgPSBKU0M6OkFSTTY0UmVnaXN0
ZXJzOjpSZWdpc3RlcklEOjp6cjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAg
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgQXJnJiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAg
IHJldHVybiBtX29mZnNldCA9PSBvdGhlci5tX29mZnNldApAQCAtODUwLDYgKzg2MSwxMSBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBraW5kKCkgPT0gV2lkdGhBcmc7CiAgICAgfQogCisgICAg
Ym9vbCBpc1plcm9SZWcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBa
ZXJvUmVnOworICAgIH0KKwogICAgIGJvb2wgaXNBbGl2ZSgpIGNvbnN0CiAgICAgewogICAgICAg
ICByZXR1cm4gaXNUbXAoKSB8fCBpc1N0YWNrKCk7CkBAIC0xMDM4LDYgKzEwNTQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGNhc2UgVG1wOgogICAgICAgICAgICAgcmV0dXJuIGlzR1BUbXAoKTsKICAg
ICAgICAgY2FzZSBJbnZhbGlkOgorICAgICAgICBjYXNlIFplcm9SZWc6CiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC0xMDU3LDYgKzEwNzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgU3BlY2lhbDoKICAgICAg
ICAgY2FzZSBXaWR0aEFyZzoKICAgICAgICAgY2FzZSBJbnZhbGlkOgorICAgICAgICBjYXNlIFpl
cm9SZWc6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNhc2UgU2ltcGxlQWRk
cjoKICAgICAgICAgY2FzZSBBZGRyOgpAQCAtMTI1MSw2ICsxMjY5LDcgQEAgcHVibGljOgogICAg
ICAgICBjYXNlIFN0YXR1c0NvbmQ6CiAgICAgICAgIGNhc2UgU3BlY2lhbDoKICAgICAgICAgY2Fz
ZSBXaWR0aEFyZzoKKyAgICAgICAgY2FzZSBaZXJvUmVnOgogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMzc5LDcg
KzEzOTgsMTIgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoaXNTdGF0dXNDb25kKCkpOwogICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TWFjcm9Bc3NlbWJsZXI6OlN0YXR1c0NvbmRpdGlvbj4o
bV9vZmZzZXQpOwogICAgIH0KLSAgICAKKworICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklE
IGFzWmVyb1JlZ2lzdGVyKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBNYWNyb0Fzc2Vt
Ymxlcjo6UmVnaXN0ZXJJRDo6enI7CisgICAgfQorCiAgICAgLy8gVGVsbHMgeW91IGlmIHRoZSBB
cmcgaXMgaW52ZXJ0aWJsZS4gT25seSBjb25kaXRpb24gYXJndW1lbnRzIGFyZSBpbnZlcnRpYmxl
LCBhbmQgZXZlbiBmb3IgdGhvc2UsIHRoZXJlCiAgICAgLy8gYXJlIGEgZmV3IGV4Y2VwdGlvbnMg
LSBub3RhYmx5IE92ZXJmbG93IGFuZCBTaWduZWQuCiAgICAgYm9vbCBpc0ludmVydGlibGUoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUu
b3Bjb2RlcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMK
aW5kZXggZDQ3ZmEzZWNiMzhiMjYxNDU1ZDY5MDVhNDY5ZmY3ODRjMWZhZjk1MS4uY2I0ODE2YmFj
YWI5MmUzNmE1YzZjZjg1NGZkMmI1NDgwZWI3NTlmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCkBAIC02NzIsNiArNjcyLDE0IEBAIFN0b3Jl
WmVybzMyIEQ6RzozMgogICAgIEFkZHIKICAgICBJbmRleAogCithcm02NDogU3RvcmUzMiBVOkc6
MzIsIEQ6RzozMgorICAgIFplcm9SZWcsIEFkZHIKKyAgICBaZXJvUmVnLCBJbmRleAorCithcm02
NDogU3RvcmU2NCBVOkc6NjQsIEQ6Rzo2NAorICAgIFplcm9SZWcsIEFkZHIKKyAgICBaZXJvUmVn
LCBJbmRleAorCiBTaWduRXh0ZW5kMzJUb1B0ciBVOkc6MzIsIEQ6RzpQdHIKICAgICBUbXAsIFRt
cAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5l
cmF0b3IucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3Iu
cmIKaW5kZXggNmM2MWVjZTg1NzZiOGUzMTljNWY1ODIxODRkMTczMjc5ODM2NDAyYi4uOGJlMTE2
N2Y1MDI4MzQ2YWQzYmQzMjcyYTcyMTUyZTlhMGNhZGM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgpAQCAtMjI5LDcgKzIyOSw3IEBA
IGRlZiBpc0dGKHRva2VuKQogZW5kCiAKIGRlZiBpc0tpbmQodG9rZW4pCi0gICAgdG9rZW4gPX4g
L1xBKChUbXApfChJbW0pfChCaWdJbW0pfChCaXRJbW0pfChCaXRJbW02NCl8KFNpbXBsZUFkZHIp
fChBZGRyKXwoRXh0ZW5kZWRPZmZzZXRBZGRyKXwoSW5kZXgpfChSZWxDb25kKXwoUmVzQ29uZCl8
KERvdWJsZUNvbmQpfChTdGF0dXNDb25kKSlcWi8KKyAgICB0b2tlbiA9fiAvXEEoKFRtcCl8KElt
bSl8KEJpZ0ltbSl8KEJpdEltbSl8KEJpdEltbTY0KXwoWmVyb1JlZyl8KFNpbXBsZUFkZHIpfChB
ZGRyKXwoRXh0ZW5kZWRPZmZzZXRBZGRyKXwoSW5kZXgpfChSZWxDb25kKXwoUmVzQ29uZCl8KERv
dWJsZUNvbmQpfChTdGF0dXNDb25kKSlcWi8KIGVuZAogCiBkZWYgaXNBcmNoKHRva2VuKQpAQCAt
MzAzLDcgKzMwMyw3IEBAIGNsYXNzIFBhcnNlcgogCiAgICAgZGVmIGNvbnN1bWVLaW5kCiAgICAg
ICAgIHJlc3VsdCA9IHRva2VuLnN0cmluZwotICAgICAgICBwYXJzZUVycm9yKCJFeHBlY3RlZCBr
aW5kIChJbW0sIEJpZ0ltbSwgQml0SW1tLCBCaXRJbW02NCwgVG1wLCBTaW1wbGVBZGRyLCBBZGRy
LCBFeHRlbmRlZE9mZnNldEFkZHIsIEluZGV4LCBSZWxDb25kLCBSZXNDb25kLCBEb3VibGVDb25k
LCBvciBTdGF0dXNDb25kKSIpIHVubGVzcyBpc0tpbmQocmVzdWx0KQorICAgICAgICBwYXJzZUVy
cm9yKCJFeHBlY3RlZCBraW5kIChJbW0sIEJpZ0ltbSwgQml0SW1tLCBCaXRJbW02NCwgWmVyb1Jl
ZywgVG1wLCBTaW1wbGVBZGRyLCBBZGRyLCBFeHRlbmRlZE9mZnNldEFkZHIsIEluZGV4LCBSZWxD
b25kLCBSZXNDb25kLCBEb3VibGVDb25kLCBvciBTdGF0dXNDb25kKSIpIHVubGVzcyBpc0tpbmQo
cmVzdWx0KQogICAgICAgICBhZHZhbmNlCiAgICAgICAgIHJlc3VsdAogICAgIGVuZApAQCAtNDc1
LDYgKzQ3NSwxNCBAQCBjbGFzcyBQYXJzZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhcnNlRXJyb3IoIkZvcm0gaGFzIGFuIGltbWVkaWF0ZSBmb3IgYSBub24tZ2VuZXJh
bC1wdXJwb3NlIGFyZ3VtZW50IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5k
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYga2luZC5uYW1lID09ICJaZXJvUmVnIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiBzaWduYXR1cmVbaW5kZXhdLnJvbGUgIT0gIlUiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKCJGb3JtIGhhcyBhbiB6ZXJvIHJlZ2lzdGVy
IGZvciBhIG5vbi11c2UgYXJndW1lbnQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2lnbmF0dXJlW2luZGV4
XS5iYW5rICE9ICJHIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VF
cnJvcigiRm9ybSBoYXMgYW4gemVybyByZWdpc3RlciBmb3IgYSBub24tZ2VuZXJhbC1wdXJwb3Nl
IGFyZ3VtZW50IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgICBmb3JtcyA8PCBGb3JtLm5ldyhraW5kcywgYWx0TmFtZSwgaW50
ZXJzZWN0QXJjaHMob3Bjb2RlQXJjaHMsIGZvcm1BcmNocykpCiAKQEAgLTkyNiw2ICs5MzQsNyBA
QCB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICAgICAgICAgICAgICB3aGVuICJSZXND
b25kIgogICAgICAgICAgICAgICAgIHdoZW4gIkRvdWJsZUNvbmQiCiAgICAgICAgICAgICAgICAg
d2hlbiAiU3RhdHVzQ29uZCIKKyAgICAgICAgICAgICAgICB3aGVuICJaZXJvUmVnIgogICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgIlVuZXhwZWN0ZWQga2lu
ZDogI3traW5kLm5hbWV9IgogICAgICAgICAgICAgICAgIGVuZApAQCAtMTIyMCw2ICsxMjI5LDgg
QEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAgICAgIG91dHAu
cHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzVHJ1c3RlZEltbTMyKCkiCiAgICAgICAgICAgICAgICAg
d2hlbiAiQmlnSW1tIiwgIkJpdEltbTY0IgogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50
ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW02NCgpIgorICAgICAgICAgICAgICAgIHdoZW4g
Ilplcm9SZWciCisgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1d
LmFzWmVyb1JlZ2lzdGVyKCkiCiAgICAgICAgICAgICAgICAgd2hlbiAiU2ltcGxlQWRkciIsICJB
ZGRyIiwgIkV4dGVuZGVkT2Zmc2V0QWRkciIKICAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmlu
dCAiYXJnc1sje2luZGV4fV0uYXNBZGRyZXNzKCkiCiAgICAgICAgICAgICAgICAgd2hlbiAiSW5k
ZXgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKaW5kZXggNzQ0NTRhMGJiN2NkMjNkMjY2ODI4
ODY4YzM0NDg0ZmRjOWZhMjVjYi4uYTNjZTk3YTgwOGJmYzhkZGY4ZGU0YTc5OWJkNGNmNzFkZWY5
MzE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaApAQCAtNjY2LDYgKzY2Niw3IEBAIHZv
aWQgdGVzdElUb0QzMkltbShpbnQzMl90IHZhbHVlKTsKIHZvaWQgdGVzdElUb0YzMkltbShpbnQz
Ml90IHZhbHVlKTsKIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GNjRBcmcoKTsKIHZvaWQgdGVz
dElUb0RSZWR1Y2VkVG9JVG9GMzJBcmcoKTsKK3ZvaWQgdGVzdFN0b3JlWmVybygpOwogdm9pZCB0
ZXN0U3RvcmUzMihpbnQgdmFsdWUpOwogdm9pZCB0ZXN0U3RvcmVDb25zdGFudChpbnQgdmFsdWUp
Owogdm9pZCB0ZXN0U3RvcmVDb25zdGFudFB0cihpbnRwdHJfdCB2YWx1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiM18xLmNwcAppbmRleCAyYmU4ODMyODYxZmQwZDVhNjUwMzMyOWQzYTNl
N2I5Y2RmM2I3YjAxLi4zZTBjM2MyYjg3NjRiMWI4MTYwNWFhNzQwM2IxOTA4YzQzYmE5NWRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKQEAgLTMzOCw2ICszMzgsNyBAQCB2
b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOX1VOQVJZKHRlc3RDaGVja0FkZFJl
bW92ZUNoZWNrV2l0aFNFeHQzMiwgaW50MzJPcGVyYW5kcygpKTsKICAgICBSVU5fVU5BUlkodGVz
dENoZWNrQWRkUmVtb3ZlQ2hlY2tXaXRoWkV4dDMyLCBpbnQzMk9wZXJhbmRzKCkpOwogCisgICAg
UlVOKHRlc3RTdG9yZVplcm8oKSk7CiAgICAgUlVOKHRlc3RTdG9yZTMyKDQ0KSk7CiAgICAgUlVO
KHRlc3RTdG9yZUNvbnN0YW50KDQ5KSk7CiAgICAgUlVOKHRlc3RTdG9yZUNvbnN0YW50UHRyKDQ5
KSk7CkBAIC03OTcsNyArNzk4LDkgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAg
IFJVTih0ZXN0TElDTVJlYWRzV3JpdGVzT3ZlcmxhcHBpbmdIZWFwcygpKTsKICAgICBSVU4odGVz
dExJQ01EZWZhdWx0Q2FsbCgpKTsKIAotICAgIGFkZEF0b21pY1Rlc3RzKGZpbHRlciwgdGFza3Mp
OworICAgIGludCBhID0gMDsKKyAgICBpZiAoYSkKKyAgICAgICAgYWRkQXRvbWljVGVzdHMoZmls
dGVyLCB0YXNrcyk7CiAgICAgUlVOKHRlc3REZXBlbmQzMigpKTsKICAgICBSVU4odGVzdERlcGVu
ZDY0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcAppbmRleCA4ODA0NWYx
NWRjZWE0ZjAyZDFkMTFiOTJhMDIzYjRmYjdlMDFiNjBlLi41ZTI2YTlkZGRiNDQ5Y2FhZDQ2MjY4
ZWNmMmE2OWJiZDZjZTE1NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzXzIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAK
QEAgLTg3NCwxOSArODc0LDYgQEAgdm9pZCB0ZXN0TXVsQXJnTmVnQXJnKGludCBhLCBpbnQgYikK
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgYSwgYikgPT0gYSAqICgtYikpOwog
fQogCi12b2lkIHRlc3RNdWxOZWdBcmdBcmcoaW50IGEsIGludCBiKQotewotICAgIFByb2NlZHVy
ZSBwcm9jOwotICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgVmFs
dWUqIGFyZ0EgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgVmFsdWUqIGFyZ0IgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMSk7Ci0gICAgVmFsdWUqIG5lZ0EgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE5l
ZywgT3JpZ2luKCksIGFyZ0EpOwotICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIG5lZ0EsIGFyZ0IpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKLQotICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCBhLCBiKSA9PSAoLWEpICogYik7Ci19Ci0KIHZvaWQg
dGVzdE11bEFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKQEAgLTEzMTcsOCArMTMwNCwzMCBAQCB2b2lkIHRlc3RNdWxTdWJTaWduRXh0ZW5kMzJBcmdz
KCkKICAgICB9CiB9CiAKK3ZvaWQgdGVzdE11bE5lZ0FyZ0FyZyhpbnQgYSwgaW50IGIpCit7Cisg
ICAgaWYgKEpTQzo6T3B0aW9uczo6ZGVmYXVsdEIzT3B0TGV2ZWwoKSA8IDIpCisgICAgICAgIHJl
dHVybjsKKworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZ0EgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgVmFs
dWUqIGFyZ0IgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgVmFsdWUqIG5lZ0EgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIE5lZywgT3JpZ2luKCksIGFyZ0EpOworICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIG5lZ0EsIGFy
Z0IpOworICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKworICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgIGlmIChp
c0FSTTY0KCkpCisgICAgICAgIGNoZWNrVXNlc0luc3RydWN0aW9uKCpjb2RlLCAibW5lZyIpOwor
ICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwgYSwgYikgPT0gKC1hKSAqIGIpOworfQor
CiB2b2lkIHRlc3RNdWxOZWdBcmdzKCkKIHsKKyAgICBpZiAoSlNDOjpPcHRpb25zOjpkZWZhdWx0
QjNPcHRMZXZlbCgpIDwgMikKKyAgICAgICAgcmV0dXJuOworCiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIApAQCAtMTMzMCw2ICsx
MzM5LDggQEAgdm9pZCB0ZXN0TXVsTmVnQXJncygpCiAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGVQcm9jKHByb2MpOworICAgIGlmIChpc0FSTTY0KCkpCisgICAgICAgIGNoZWNrVXNl
c0luc3RydWN0aW9uKCpjb2RlLCAibW5lZyIpOwogCiAgICAgYXV0byB0ZXN0VmFsdWVzID0gaW50
NjRPcGVyYW5kcygpOwogICAgIGZvciAoYXV0byBhIDogdGVzdFZhbHVlcykgewpAQCAtMTM0MSw2
ICsxMzUyLDkgQEAgdm9pZCB0ZXN0TXVsTmVnQXJncygpCiAKIHZvaWQgdGVzdE11bE5lZ0FyZ3Mz
MigpCiB7CisgICAgaWYgKEpTQzo6T3B0aW9uczo6ZGVmYXVsdEIzT3B0TGV2ZWwoKSA8IDIpCisg
ICAgICAgIHJldHVybjsKKwogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKQEAgLTEzNTQsNiArMTM2OCw4IEBAIHZvaWQgdGVzdE11
bE5lZ0FyZ3MzMigpCiAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2Mp
OworICAgIGlmIChpc0FSTTY0KCkpCisgICAgICAgIGNoZWNrVXNlc0luc3RydWN0aW9uKCpjb2Rl
LCAibW5lZyIpOwogCiAgICAgYXV0byB0ZXN0VmFsdWVzID0gaW50MzJPcGVyYW5kcygpOwogICAg
IGZvciAoYXV0byBhIDogdGVzdFZhbHVlcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiM18zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNf
My5jcHAKaW5kZXggNzJiMDhkMTZhYTcyOWNkYjgzNDZmZDJmYWFmY2FkOWUwMDM5ZDZlYi4uZTBl
NjVmZTU1YWI2YzVhYWM2MzA0Y2FlYjhjYmE0MjJlN2I1NTNiZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvdGVzdGIzXzMuY3BwCkBAIC0yOTA2LDYgKzI5MDYsODMgQEAgdm9pZCB0ZXN0U3RvcmUz
MihpbnQgdmFsdWUpCiAgICAgQ0hFQ0soc2xvdCA9PSB2YWx1ZSk7CiB9CiAKK3ZvaWQgdGVzdFN0
b3JlWmVybygpCit7CisgICAgLy8gRGlyZWN0IGFkZHJlc3NpbmcKKyAgICB7CisgICAgICAgIGlu
dDMyX3Qgc2xvdDMyID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAg
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUq
IHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
OworICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJv
YywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QzMiksIDApOworICAgICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwor
CisgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBpbnZva2U8
aW50PigqY29kZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3QzMiwgMCk7CisgICAgfQorCisgICAg
eworICAgICAgICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVy
ZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisg
ICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAg
ICAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90NjQpLCAwKTsK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHZhbHVlKTsKKworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAg
ICAgICAgaW52b2tlPGludD4oKmNvZGUpOworICAgICAgICBDSEVDS19FUShzbG90NjQsIDApOwor
ICAgIH0KKworICAgIC8vIEluZGV4ZWQgYWRkcmVzc2luZworICAgIHsKKyAgICAgICAgUHJvY2Vk
dXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisK
KyAgICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
KyAgICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUq
IGRpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7Cisg
ICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVz
cywgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJhYWRiZWVm
OworICAgICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZzbG90MzIsIDEpOworICAg
ICAgICBDSEVDS19FUShzbG90MzIsIDApOworICAgIH0KKworICAgIHsKKyAgICAgICAgUHJvY2Vk
dXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisK
KyAgICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
KyAgICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUq
IGRpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7Cisg
ICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVz
cywgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50NjRfdCBzbG90NjQgPSAweGJhYWRiZWVm
OworICAgICAgICBjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzbG90NjQsIDEpOworICAg
ICAgICBDSEVDS19FUShzbG90NjQsIDApOworICAgIH0KK30KKwogdm9pZCB0ZXN0U3RvcmVDb25z
dGFudChpbnQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7Cg==
</data>
<flag name="commit-queue"
          id="455338"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433181</attachid>
            <date>2021-07-08 16:12:28 -0700</date>
            <delta_ts>2021-07-08 17:59:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210708181226.patch</filename>
            <type>text/plain</type>
            <size>17118</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NDc5MTRhNzhlZTE1ZmE2NzY5NWNiOTA1ZmFjNzc2MGExNWUwMjUwLi43MjlkNDIxOGI2ZWI1Mjlj
YTNhZDhiODVkN2M3MjQyNzg3ODgxMDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAyMS0wNy0wOCAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWlIgdG8gbGV0IEFJUiByZWNv
Z25pemUgdGhlICBuZXcgaW5zdHJ1Y3Rpb25zL2Zvcm1zIGFjY2VwdGluZyB6ZXJvIHJlZ2lzdGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGIzL0Iz
TG93ZXJUb0Fpci5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChK
U0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAg
ICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9SZWcp
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzWmVyb1JlZyBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZv
cm0gY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmFzWmVyb1JlZ2lzdGVyIGNv
bnN0KToKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMv
YWlyL29wY29kZV9nZW5lcmF0b3IucmI6CisgICAgICAgICogYjMvdGVzdGIzLmg6CisgICAgICAg
ICogYjMvdGVzdGIzXzEuY3BwOgorICAgICAgICAocnVuKToKKyAgICAgICAgKiBiMy90ZXN0YjNf
Mi5jcHA6CisgICAgICAgICh0ZXN0TXVsTmVnQXJnQXJnKToKKyAgICAgICAgKHRlc3RNdWxOZWdB
cmdzKToKKyAgICAgICAgKHRlc3RNdWxOZWdBcmdzMzIpOgorICAgICAgICAqIGIzL3Rlc3RiM18z
LmNwcDoKKyAgICAgICAgKHRlc3RTdG9yZVplcm8pOgorCiAyMDIxLTA3LTA4ICBLZWl0aCBNaWxs
ZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIGRpc3BsYXktcHJvZmlsZXIt
b3V0cHV0IHNob3VsZCBiZSBhYmxlIHRvIHByaW50IGRpc2Fzc2VtYmx5IGZvciB0aGUgRlRMCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IDQ3MGQ4YjUyODM2
Y2IyNDUzOTA1MTRmYWQ5NDZhNDVmNWQ1M2VmZTYuLmM3MGVkYmNkZjVmYzE4N2EyYzg2ODMzZTk0
YTZiYmIxNzJmNjkzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xv
d2VyVG9BaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIu
Y3BwCkBAIC03MDIsNiArNzAyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBBcmcoKTsK
ICAgICB9CiAKKyAgICBBcmcgemVyb1JlZygpCisgICAgeworICAgICAgICByZXR1cm4gQXJnOjp6
ZXJvUmVnKCk7CisgICAgfQorCiAgICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2YWx1ZSkKICAgICB7
CiAgICAgICAgIGlmIChBcmcgcmVzdWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEwOTksMTIgKzExMDQs
MTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIEFpcjo6TW92ZTMyOgotICAgICAgICAg
ICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmVaZXJvMzIsIGRlc3Qua2luZCgpKSAmJiBk
ZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEluc3QoU3RvcmVaZXJvMzIsIG1fdmFsdWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBp
ZiAoaXNWYWxpZEZvcm0oU3RvcmUzMiwgQXJnOjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVz
dC5pc1ZhbGlkRm9ybShXaWR0aDMyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJ
bnN0KFN0b3JlMzIsIG1fdmFsdWUsIHplcm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQWlyOjpNb3ZlOgotICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmVaZXJvNjQsIGRlc3Qua2luZCgpKSAmJiBkZXN0
LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElu
c3QoU3RvcmVaZXJvNjQsIG1fdmFsdWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAo
aXNWYWxpZEZvcm0oU3RvcmU2NCwgQXJnOjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5p
c1ZhbGlkRm9ybShXaWR0aDY0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0
KFN0b3JlNjQsIG1fdmFsdWUsIHplcm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQXJnLmNwcAppbmRleCA2Nzg2OTllZmRkNWJjZGVkM2NiZTRhMjY5ZWQy
YzJmN2M0OGEyYTMxLi43ODY1M2Q3ZGZiYmVjMzJkZTA0OGU0MjUyYjljZDJmNGQ3MmM2N2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCkBAIC0xMDgsNiArMTA4LDcg
QEAgdW5zaWduZWQgQXJnOjpqc0hhc2goKSBjb25zdAogICAgIGNhc2UgRG91YmxlQ29uZDoKICAg
ICBjYXNlIFN0YXR1c0NvbmQ6CiAgICAgY2FzZSBXaWR0aEFyZzoKKyAgICBjYXNlIFplcm9SZWc6
CiAgICAgICAgIHJlc3VsdCArPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9vZmZzZXQpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEJpZ0ltbToKQEAgLTE1OSw2ICsxNjAsOSBAQCB2b2lkIEFy
Zzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIGNhc2UgQml0SW1tNjQ6CiAgICAg
ICAgIG91dC5wcmludGYoIiQweCVsbHgiLCBzdGF0aWNfY2FzdDxsb25nIGxvbmcgdW5zaWduZWQ+
KG1fb2Zmc2V0KSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFplcm9SZWc6CisgICAgICAg
IG91dC5wcmludGYoIiVjeHpyIiwgJyUnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU2lt
cGxlQWRkcjoKICAgICAgICAgb3V0LnByaW50KCIoIiwgYmFzZSgpLCAiKSIpOwogICAgICAgICBy
ZXR1cm47CkBAIC0yMzYsNiArMjQwLDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFt
JiBvdXQsIEFyZzo6S2luZCBraW5kKQogICAgIGNhc2UgQXJnOjpCaXRJbW02NDoKICAgICAgICAg
b3V0LnByaW50KCJCaXRJbW02NCIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBBcmc6Olpl
cm9SZWc6CisgICAgICAgIG91dC5wcmludCgiWmVyb1JlZyIpOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBBcmc6OlNpbXBsZUFkZHI6CiAgICAgICAgIG91dC5wcmludCgiU2ltcGxlQWRkciIp
OwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckFyZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAppbmRl
eCA4NzIwNGU2N2M3Nzc1M2I0MTY1MmY3Mzk0ZjBjMzQ2NzNkY2IzOWI0Li5iZGQxMTUxNDYxNmY0
MzUwZDdmMjE2YjAxMTJkNDhlODdhMDQ5MjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckFyZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQXJnLmgKQEAgLTg1LDcgKzg1LDEwIEBAIHB1YmxpYzoKICAgICAgICAgRG91YmxlQ29uZCwK
ICAgICAgICAgU3RhdHVzQ29uZCwKICAgICAgICAgU3BlY2lhbCwKLSAgICAgICAgV2lkdGhBcmcK
KyAgICAgICAgV2lkdGhBcmcsCisKKyAgICAgICAgLy8gWmVyb1JlZyBpcyBhIHplcm8gcmVnaXN0
ZXIgb3BlcmFuZAorICAgICAgICBaZXJvUmVnCiAgICAgfTsKICAgICAKICAgICBlbnVtIFRlbXBl
cmF0dXJlIDogaW50OF90IHsKQEAgLTY5Myw2ICs2OTYsMTQgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KIAorICAgIHN0YXRpYyBBcmcgemVyb1JlZygpCisgICAgewor
ICAgICAgICBBcmcgcmVzdWx0OworICAgICAgICByZXN1bHQubV9raW5kID0gWmVyb1JlZzsKKyAg
ICAgICAgcmVzdWx0Lm1fb2Zmc2V0ID0gTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQ6OnpyOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBBcmcmIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb2Zmc2V0ID09IG90
aGVyLm1fb2Zmc2V0CkBAIC04NTAsNiArODYxLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGtpbmQoKSA9PSBXaWR0aEFyZzsKICAgICB9CiAKKyAgICBib29sIGlzWmVyb1JlZygpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4ga2luZCgpID09IFplcm9SZWc7CisgICAgfQorCiAgICAg
Ym9vbCBpc0FsaXZlKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBpc1RtcCgpIHx8IGlz
U3RhY2soKTsKQEAgLTEwMzgsNiArMTA1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBUbXA6
CiAgICAgICAgICAgICByZXR1cm4gaXNHUFRtcCgpOwogICAgICAgICBjYXNlIEludmFsaWQ6Cisg
ICAgICAgIGNhc2UgWmVyb1JlZzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEwNTcsNiArMTA3NCw3IEBAIHB1
YmxpYzoKICAgICAgICAgY2FzZSBTcGVjaWFsOgogICAgICAgICBjYXNlIFdpZHRoQXJnOgogICAg
ICAgICBjYXNlIEludmFsaWQ6CisgICAgICAgIGNhc2UgWmVyb1JlZzoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBTaW1wbGVBZGRyOgogICAgICAgICBjYXNlIEFkZHI6
CkBAIC0xMjUxLDYgKzEyNjksNyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgU3RhdHVzQ29uZDoK
ICAgICAgICAgY2FzZSBTcGVjaWFsOgogICAgICAgICBjYXNlIFdpZHRoQXJnOgorICAgICAgICBj
YXNlIFplcm9SZWc6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEzNzksNyArMTM5OCwxMiBAQCBwdWJsaWM6CiAg
ICAgICAgIEFTU0VSVChpc1N0YXR1c0NvbmQoKSk7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxNYWNyb0Fzc2VtYmxlcjo6U3RhdHVzQ29uZGl0aW9uPihtX29mZnNldCk7CiAgICAgfQotICAg
IAorCisgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgYXNaZXJvUmVnaXN0ZXIoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEOjp6cjsK
KyAgICB9CisKICAgICAvLyBUZWxscyB5b3UgaWYgdGhlIEFyZyBpcyBpbnZlcnRpYmxlLiBPbmx5
IGNvbmRpdGlvbiBhcmd1bWVudHMgYXJlIGludmVydGlibGUsIGFuZCBldmVuIGZvciB0aG9zZSwg
dGhlcmUKICAgICAvLyBhcmUgYSBmZXcgZXhjZXB0aW9ucyAtIG5vdGFibHkgT3ZlcmZsb3cgYW5k
IFNpZ25lZC4KICAgICBib29sIGlzSW52ZXJ0aWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwppbmRleCBkNDdmYTNlY2IzOGIyNjE0
NTVkNjkwNWE0NjlmZjc4NGMxZmFmOTUxLi5jYjQ4MTZiYWNhYjkyZTM2YTVjNmNmODU0ZmQyYjU0
ODBlYjc1OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9w
Y29kZS5vcGNvZGVzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2Rl
Lm9wY29kZXMKQEAgLTY3Miw2ICs2NzIsMTQgQEAgU3RvcmVaZXJvMzIgRDpHOjMyCiAgICAgQWRk
cgogICAgIEluZGV4CiAKK2FybTY0OiBTdG9yZTMyIFU6RzozMiwgRDpHOjMyCisgICAgWmVyb1Jl
ZywgQWRkcgorICAgIFplcm9SZWcsIEluZGV4CisKK2FybTY0OiBTdG9yZTY0IFU6Rzo2NCwgRDpH
OjY0CisgICAgWmVyb1JlZywgQWRkcgorICAgIFplcm9SZWcsIEluZGV4CisKIFNpZ25FeHRlbmQz
MlRvUHRyIFU6RzozMiwgRDpHOlB0cgogICAgIFRtcCwgVG1wCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgppbmRleCA2YzYxZWNlODU3NmI4
ZTMxOWM1ZjU4MjE4NGQxNzMyNzk4MzY0MDJiLi44YmUxMTY3ZjUwMjgzNDZhZDNiZDMyNzJhNzIx
NTJlOWEwY2FkYzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29w
Y29kZV9nZW5lcmF0b3IucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNv
ZGVfZ2VuZXJhdG9yLnJiCkBAIC0yMjksNyArMjI5LDcgQEAgZGVmIGlzR0YodG9rZW4pCiBlbmQK
IAogZGVmIGlzS2luZCh0b2tlbikKLSAgICB0b2tlbiA9fiAvXEEoKFRtcCl8KEltbSl8KEJpZ0lt
bSl8KEJpdEltbSl8KEJpdEltbTY0KXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNl
dEFkZHIpfChJbmRleCl8KFJlbENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0Nv
bmQpKVxaLworICAgIHRva2VuID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwo
Qml0SW1tNjQpfChaZXJvUmVnKXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFk
ZHIpfChJbmRleCl8KFJlbENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQp
KVxaLwogZW5kCiAKIGRlZiBpc0FyY2godG9rZW4pCkBAIC0zMDMsNyArMzAzLDcgQEAgY2xhc3Mg
UGFyc2VyCiAKICAgICBkZWYgY29uc3VtZUtpbmQKICAgICAgICAgcmVzdWx0ID0gdG9rZW4uc3Ry
aW5nCi0gICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJ
bW0sIEJpdEltbTY0LCBUbXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4dGVuZGVkT2Zmc2V0QWRkciwg
SW5kZXgsIFJlbENvbmQsIFJlc0NvbmQsIERvdWJsZUNvbmQsIG9yIFN0YXR1c0NvbmQpIikgdW5s
ZXNzIGlzS2luZChyZXN1bHQpCisgICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKElt
bSwgQmlnSW1tLCBCaXRJbW0sIEJpdEltbTY0LCBaZXJvUmVnLCBUbXAsIFNpbXBsZUFkZHIsIEFk
ZHIsIEV4dGVuZGVkT2Zmc2V0QWRkciwgSW5kZXgsIFJlbENvbmQsIFJlc0NvbmQsIERvdWJsZUNv
bmQsIG9yIFN0YXR1c0NvbmQpIikgdW5sZXNzIGlzS2luZChyZXN1bHQpCiAgICAgICAgIGFkdmFu
Y2UKICAgICAgICAgcmVzdWx0CiAgICAgZW5kCkBAIC00NzUsNiArNDc1LDE0IEBAIGNsYXNzIFBh
cnNlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiRm9y
bSBoYXMgYW4gaW1tZWRpYXRlIGZvciBhIG5vbi1nZW5lcmFsLXB1cnBvc2UgYXJndW1lbnQiKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBraW5kLm5hbWUgPT0g
Ilplcm9SZWciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNpZ25hdHVyZVtp
bmRleF0ucm9sZSAhPSAiVSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
cnNlRXJyb3IoIkZvcm0gaGFzIGFuIHplcm8gcmVnaXN0ZXIgZm9yIGEgbm9uLXVzZSBhcmd1bWVu
dCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiBzaWduYXR1cmVbaW5kZXhdLmJhbmsgIT0gIkciCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKCJGb3JtIGhhcyBhbiB6ZXJv
IHJlZ2lzdGVyIGZvciBhIG5vbi1nZW5lcmFsLXB1cnBvc2UgYXJndW1lbnQiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bmQKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGZv
cm1zIDw8IEZvcm0ubmV3KGtpbmRzLCBhbHROYW1lLCBpbnRlcnNlY3RBcmNocyhvcGNvZGVBcmNo
cywgZm9ybUFyY2hzKSkKIApAQCAtOTI2LDYgKzkzNCw3IEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJh
dGVkIikgewogICAgICAgICAgICAgICAgIHdoZW4gIlJlc0NvbmQiCiAgICAgICAgICAgICAgICAg
d2hlbiAiRG91YmxlQ29uZCIKICAgICAgICAgICAgICAgICB3aGVuICJTdGF0dXNDb25kIgorICAg
ICAgICAgICAgICAgIHdoZW4gIlplcm9SZWciCiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgICAgICByYWlzZSAiVW5leHBlY3RlZCBraW5kOiAje2tpbmQubmFtZX0iCiAgICAg
ICAgICAgICAgICAgZW5kCkBAIC0xMjIwLDYgKzEyMjksOCBAQCB3cml0ZUgoIk9wY29kZUdlbmVy
YXRlZCIpIHsKICAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmludCAiYXJnc1sje2luZGV4fV0u
YXNUcnVzdGVkSW1tMzIoKSIKICAgICAgICAgICAgICAgICB3aGVuICJCaWdJbW0iLCAiQml0SW1t
NjQiCiAgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzVHJ1
c3RlZEltbTY0KCkiCisgICAgICAgICAgICAgICAgd2hlbiAiWmVyb1JlZyIKKyAgICAgICAgICAg
ICAgICAgICAgb3V0cC5wcmludCAiYXJnc1sje2luZGV4fV0uYXNaZXJvUmVnaXN0ZXIoKSIKICAg
ICAgICAgICAgICAgICB3aGVuICJTaW1wbGVBZGRyIiwgIkFkZHIiLCAiRXh0ZW5kZWRPZmZzZXRB
ZGRyIgogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5hc0Fk
ZHJlc3MoKSIKICAgICAgICAgICAgICAgICB3aGVuICJJbmRleCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuaAppbmRleCA3NDQ1NGEwYmI3Y2QyM2QyNjY4Mjg4NjhjMzQ0ODRmZGM5ZmEyNWNiLi5h
M2NlOTdhODA4YmZjOGRkZjhkZTRhNzk5YmQ0Y2Y3MWRlZjkzMTVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5oCkBAIC02NjYsNiArNjY2LDcgQEAgdm9pZCB0ZXN0SVRvRDMySW1tKGludDMy
X3QgdmFsdWUpOwogdm9pZCB0ZXN0SVRvRjMySW1tKGludDMyX3QgdmFsdWUpOwogdm9pZCB0ZXN0
SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygpOwogdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0YzMkFy
ZygpOwordm9pZCB0ZXN0U3RvcmVaZXJvKCk7CiB2b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSk7
CiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSk7CiB2b2lkIHRlc3RTdG9yZUNvbnN0
YW50UHRyKGludHB0cl90IHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjNfMS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3Bw
CmluZGV4IDJiZTg4MzI4NjFmZDBkNWE2NTAzMzI5ZDNhM2U3YjljZGYzYjdiMDEuLjNlMGMzYzJi
ODc2NGIxYjgxNjA1YWE3NDAzYjE5MDhjNDNiYTk1ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiM18xLmNwcApAQCAtMzM4LDYgKzMzOCw3IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZp
bHRlcikKICAgICBSVU5fVU5BUlkodGVzdENoZWNrQWRkUmVtb3ZlQ2hlY2tXaXRoU0V4dDMyLCBp
bnQzMk9wZXJhbmRzKCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0Q2hlY2tBZGRSZW1vdmVDaGVja1dp
dGhaRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAKKyAgICBSVU4odGVzdFN0b3JlWmVybygpKTsK
ICAgICBSVU4odGVzdFN0b3JlMzIoNDQpKTsKICAgICBSVU4odGVzdFN0b3JlQ29uc3RhbnQoNDkp
KTsKICAgICBSVU4odGVzdFN0b3JlQ29uc3RhbnRQdHIoNDkpKTsKQEAgLTc5Nyw3ICs3OTgsOSBA
QCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRlc3RMSUNNUmVhZHNXcml0
ZXNPdmVybGFwcGluZ0hlYXBzKCkpOwogICAgIFJVTih0ZXN0TElDTURlZmF1bHRDYWxsKCkpOwog
Ci0gICAgYWRkQXRvbWljVGVzdHMoZmlsdGVyLCB0YXNrcyk7CisgICAgaW50IGEgPSAwOworICAg
IGlmIChhKQorICAgICAgICBhZGRBdG9taWNUZXN0cyhmaWx0ZXIsIHRhc2tzKTsKICAgICBSVU4o
dGVzdERlcGVuZDMyKCkpOwogICAgIFJVTih0ZXN0RGVwZW5kNjQoKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvdGVzdGIzXzIuY3BwCmluZGV4IDg4MDQ1ZjE1ZGNlYTRmMDJkMWQxMWI5MmEwMjNi
NGZiN2UwMWI2MGUuLjVlMjZhOWRkZGI0NDljYWFkNDYyNjhlY2YyYTY5YmJkNmNlMTU1ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcApAQCAtODc0LDE5ICs4NzQsNiBAQCB2
b2lkIHRlc3RNdWxBcmdOZWdBcmcoaW50IGEsIGludCBiKQogICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50Pihwcm9jLCBhLCBiKSA9PSBhICogKC1iKSk7CiB9CiAKLXZvaWQgdGVzdE11bE5lZ0Fy
Z0FyZyhpbnQgYSwgaW50IGIpCi17Ci0gICAgUHJvY2VkdXJlIHByb2M7Ci0gICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBWYWx1ZSogYXJnQSA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKLSAgICBWYWx1ZSogYXJnQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICBWYWx1ZSogbmVn
QSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTmVnLCBPcmlnaW4oKSwgYXJnQSk7Ci0g
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmln
aW4oKSwgbmVnQSwgYXJnQik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOwotCi0gICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHBy
b2MsIGEsIGIpID09ICgtYSkgKiBiKTsKLX0KLQogdm9pZCB0ZXN0TXVsQXJnSW1tKGludDY0X3Qg
YSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTMxNyw4ICsxMzA0LDMw
IEBAIHZvaWQgdGVzdE11bFN1YlNpZ25FeHRlbmQzMkFyZ3MoKQogICAgIH0KIH0KIAordm9pZCB0
ZXN0TXVsTmVnQXJnQXJnKGludCBhLCBpbnQgYikKK3sKKyAgICBpZiAoSlNDOjpPcHRpb25zOjpk
ZWZhdWx0QjNPcHRMZXZlbCgpIDwgMikKKyAgICAgICAgcmV0dXJuOworCisgICAgUHJvY2VkdXJl
IHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1
ZSogYXJnQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBWYWx1ZSogYXJnQiA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKTsKKyAgICBWYWx1ZSogbmVnQSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTmVn
LCBPcmlnaW4oKSwgYXJnQSk7CisgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgbmVnQSwgYXJnQik7CisgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworCisgICAgYXV0byBj
b2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAgY2hl
Y2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJtbmVnIik7CisgICAgQ0hFQ0soaW52b2tlPGludDMy
X3Q+KCpjb2RlLCBhLCBiKSA9PSAoLWEpICogYik7Cit9CisKIHZvaWQgdGVzdE11bE5lZ0FyZ3Mo
KQogeworICAgIGlmIChKU0M6Ok9wdGlvbnM6OmRlZmF1bHRCM09wdExldmVsKCkgPCAyKQorICAg
ICAgICByZXR1cm47CisKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogCkBAIC0xMzMwLDYgKzEzMzksOCBAQCB2b2lkIHRlc3RNdWxO
ZWdBcmdzKCkKICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7Cisg
ICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAgY2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJt
bmVnIik7CiAKICAgICBhdXRvIHRlc3RWYWx1ZXMgPSBpbnQ2NE9wZXJhbmRzKCk7CiAgICAgZm9y
IChhdXRvIGEgOiB0ZXN0VmFsdWVzKSB7CkBAIC0xMzQxLDYgKzEzNTIsOSBAQCB2b2lkIHRlc3RN
dWxOZWdBcmdzKCkKIAogdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCkKIHsKKyAgICBpZiAoSlNDOjpP
cHRpb25zOjpkZWZhdWx0QjNPcHRMZXZlbCgpIDwgMikKKyAgICAgICAgcmV0dXJuOworCiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
IApAQCAtMTM1NCw2ICsxMzY4LDggQEAgdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCkKICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgaWYgKGlzQVJNNjQoKSkK
KyAgICAgICAgY2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJtbmVnIik7CiAKICAgICBhdXRv
IHRlc3RWYWx1ZXMgPSBpbnQzMk9wZXJhbmRzKCk7CiAgICAgZm9yIChhdXRvIGEgOiB0ZXN0VmFs
dWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAppbmRleCA3MmIwOGQxNmFh
NzI5Y2RiODM0NmZkMmZhYWZjYWQ5ZTAwMzlkNmViLi5lMGU2NWZlNTVhYjZjNWFhYzYzMDRjYWVi
OGNiYTQyMmU3YjU1M2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzXzMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKQEAg
LTI5MDYsNiArMjkwNiw4MyBAQCB2b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSkKICAgICBDSEVD
SyhzbG90ID09IHZhbHVlKTsKIH0KIAordm9pZCB0ZXN0U3RvcmVaZXJvKCkKK3sKKyAgICAvLyBE
aXJlY3QgYWRkcmVzc2luZworICAgIHsKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJhYWRi
ZWVmOworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZh
bHVlLAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAmc2xvdDMyKSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgYXV0byBjb2RlID0g
Y29tcGlsZVByb2MocHJvYyk7CisgICAgICAgIGludm9rZTxpbnQ+KCpjb2RlKTsKKyAgICAgICAg
Q0hFQ0tfRVEoc2xvdDMyLCAwKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGludDY0X3Qgc2xv
dDY0ID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgU3RvcmUs
IE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3Q2NCksIDApOworICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgICAg
IGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBpbnZva2U8aW50PigqY29k
ZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Q2NCwgMCk7CisgICAgfQorCisgICAgLy8gSW5kZXhl
ZCBhZGRyZXNzaW5nCisgICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUg
PSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAg
ICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSogb2Zmc2V0
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAgICAgICBW
YWx1ZSogYmFzZURpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgZGlzcGxhY2VtZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFj
ZW1lbnQsIG9mZnNldCk7CisKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKwor
ICAgICAgICBpbnQzMl90IHNsb3QzMiA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgJnNsb3QzMiwgMSk7CisgICAgICAgIENIRUNLX0VRKHNsb3QzMiwg
MCk7CisgICAgfQorCisgICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUg
PSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAg
ICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSogb2Zmc2V0
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAgICAgICBW
YWx1ZSogYmFzZURpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgZGlzcGxhY2VtZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFj
ZW1lbnQsIG9mZnNldCk7CisKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKwor
ICAgICAgICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgJnNsb3Q2NCwgMSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Q2NCwg
MCk7CisgICAgfQorfQorCiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433191</attachid>
            <date>2021-07-08 17:59:13 -0700</date>
            <delta_ts>2021-07-08 19:48:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210708195911.patch</filename>
            <type>text/plain</type>
            <size>16618</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NDc5MTRhNzhlZTE1ZmE2NzY5NWNiOTA1ZmFjNzc2MGExNWUwMjUwLi5jMTdiNDQzMTUxNjIxYTY3
NDU2ZjBiOGU1MzJhNjk2OTY3YzI2MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMS0wNy0wOCAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWlIgdG8gbGV0IEFJUiByZWNv
Z25pemUgdGhlICBuZXcgaW5zdHJ1Y3Rpb25zL2Zvcm1zIGFjY2VwdGluZyB6ZXJvIHJlZ2lzdGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1MTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGIzL0Iz
TG93ZXJUb0Fpci5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChK
U0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAg
ICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9SZWcp
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzWmVyb1JlZyBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZv
cm0gY29uc3QpOgorICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKyAgICAgICAg
KiBiMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBiMy90ZXN0YjMuaDoKKyAg
ICAgICAgKiBiMy90ZXN0YjNfMS5jcHA6CisgICAgICAgIChydW4pOgorICAgICAgICAqIGIzL3Rl
c3RiM18yLmNwcDoKKyAgICAgICAgKHRlc3RNdWxOZWdBcmdBcmcpOgorICAgICAgICAodGVzdE11
bE5lZ0FyZ3MpOgorICAgICAgICAodGVzdE11bE5lZ0FyZ3MzMik6CisgICAgICAgICogYjMvdGVz
dGIzXzMuY3BwOgorICAgICAgICAodGVzdFN0b3JlWmVybyk6CisKIDIwMjEtMDctMDggIEtlaXRo
IE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgZGlzcGxheS1wcm9m
aWxlci1vdXRwdXQgc2hvdWxkIGJlIGFibGUgdG8gcHJpbnQgZGlzYXNzZW1ibHkgZm9yIHRoZSBG
VEwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKaW5kZXggNDcwZDhi
NTI4MzZjYjI0NTM5MDUxNGZhZDk0NmE0NWY1ZDUzZWZlNi4uYzcwZWRiY2RmNWZjMTg3YTJjODY4
MzNlOTRhNmJiYjE3MmY2OTM5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJU
b0Fpci5jcHAKQEAgLTcwMiw2ICs3MDIsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIEFy
ZygpOwogICAgIH0KIAorICAgIEFyZyB6ZXJvUmVnKCkKKyAgICB7CisgICAgICAgIHJldHVybiBB
cmc6Onplcm9SZWcoKTsKKyAgICB9CisKICAgICBBcmcgaW1tT3JUbXAoVmFsdWUqIHZhbHVlKQog
ICAgIHsKICAgICAgICAgaWYgKEFyZyByZXN1bHQgPSBpbW0odmFsdWUpKQpAQCAtMTA5OSwxMiAr
MTEwNCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQWlyOjpNb3ZlMzI6Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm8zMiwgZGVzdC5raW5kKCkp
ICYmIGRlc3QuaXNWYWxpZEZvcm0oV2lkdGgzMikpCi0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gSW5zdChTdG9yZVplcm8zMiwgbV92YWx1ZSwgZGVzdCk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZTMyLCBBcmc6Olplcm9SZWcsIGRlc3Qua2luZCgpKSAm
JiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEluc3QoU3RvcmUzMiwgbV92YWx1ZSwgemVyb1JlZygpLCBkZXN0KTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBBaXI6Ok1vdmU6Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm82NCwgZGVzdC5raW5kKCkpICYm
IGRlc3QuaXNWYWxpZEZvcm0oV2lkdGg2NCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gSW5zdChTdG9yZVplcm82NCwgbV92YWx1ZSwgZGVzdCk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChpc1ZhbGlkRm9ybShTdG9yZTY0LCBBcmc6Olplcm9SZWcsIGRlc3Qua2luZCgpKSAmJiBk
ZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEluc3QoU3RvcmU2NCwgbV92YWx1ZSwgemVyb1JlZygpLCBkZXN0KTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCmluZGV4IDY3ODY5OWVmZGQ1YmNkZWQzY2JlNGEy
NjllZDJjMmY3YzQ4YTJhMzEuLjc4NjUzZDdkZmJiZWMzMmRlMDQ4ZTQyNTJiOWNkMmY0ZDcyYzY3
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKQEAgLTEwOCw2ICsx
MDgsNyBAQCB1bnNpZ25lZCBBcmc6OmpzSGFzaCgpIGNvbnN0CiAgICAgY2FzZSBEb3VibGVDb25k
OgogICAgIGNhc2UgU3RhdHVzQ29uZDoKICAgICBjYXNlIFdpZHRoQXJnOgorICAgIGNhc2UgWmVy
b1JlZzoKICAgICAgICAgcmVzdWx0ICs9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX29mZnNldCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmlnSW1tOgpAQCAtMTU5LDYgKzE2MCw5IEBAIHZv
aWQgQXJnOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgY2FzZSBCaXRJbW02NDoK
ICAgICAgICAgb3V0LnByaW50ZigiJDB4JWxseCIsIHN0YXRpY19jYXN0PGxvbmcgbG9uZyB1bnNp
Z25lZD4obV9vZmZzZXQpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgWmVyb1JlZzoKKyAg
ICAgICAgb3V0LnByaW50ZigiJWN4enIiLCAnJScpOworICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBTaW1wbGVBZGRyOgogICAgICAgICBvdXQucHJpbnQoIigiLCBiYXNlKCksICIpIik7CiAgICAg
ICAgIHJldHVybjsKQEAgLTIzNiw2ICsyNDAsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRT
dHJlYW0mIG91dCwgQXJnOjpLaW5kIGtpbmQpCiAgICAgY2FzZSBBcmc6OkJpdEltbTY0OgogICAg
ICAgICBvdXQucHJpbnQoIkJpdEltbTY0Iik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEFy
Zzo6WmVyb1JlZzoKKyAgICAgICAgb3V0LnByaW50KCJaZXJvUmVnIik7CisgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIEFyZzo6U2ltcGxlQWRkcjoKICAgICAgICAgb3V0LnByaW50KCJTaW1wbGVB
ZGRyIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyQXJnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5o
CmluZGV4IDg3MjA0ZTY3Yzc3NzUzYjQxNjUyZjczOTRmMGMzNDY3M2RjYjM5YjQuLmIyYzc3Nzhk
MDI0ZjU5ZjAyNzUzM2VmNzJlMjgzYzE3ZDlhYjQ1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJBcmcuaApAQCAtODUsNyArODUsMTAgQEAgcHVibGljOgogICAgICAgICBEb3VibGVD
b25kLAogICAgICAgICBTdGF0dXNDb25kLAogICAgICAgICBTcGVjaWFsLAotICAgICAgICBXaWR0
aEFyZworICAgICAgICBXaWR0aEFyZywKKworICAgICAgICAvLyBaZXJvUmVnIGlzIGEgemVybyBy
ZWdpc3RlciBvcGVyYW5kCisgICAgICAgIFplcm9SZWcKICAgICB9OwogICAgIAogICAgIGVudW0g
VGVtcGVyYXR1cmUgOiBpbnQ4X3QgewpAQCAtNjkzLDYgKzY5NiwxNCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6ZXJvUmVnKCkKKyAg
ICB7CisgICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBaZXJvUmVn
OworICAgICAgICByZXN1bHQubV9vZmZzZXQgPSAwOworICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgIH0KKwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBcmcmIG90aGVyKSBjb25zdAogICAg
IHsKICAgICAgICAgcmV0dXJuIG1fb2Zmc2V0ID09IG90aGVyLm1fb2Zmc2V0CkBAIC04NTAsNiAr
ODYxLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBXaWR0aEFyZzsKICAg
ICB9CiAKKyAgICBib29sIGlzWmVyb1JlZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
a2luZCgpID09IFplcm9SZWc7CisgICAgfQorCiAgICAgYm9vbCBpc0FsaXZlKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBpc1RtcCgpIHx8IGlzU3RhY2soKTsKQEAgLTEwMzgsNiArMTA1
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBUbXA6CiAgICAgICAgICAgICByZXR1cm4gaXNH
UFRtcCgpOwogICAgICAgICBjYXNlIEludmFsaWQ6CisgICAgICAgIGNhc2UgWmVyb1JlZzoKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTEwNTcsNiArMTA3NCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBTcGVj
aWFsOgogICAgICAgICBjYXNlIFdpZHRoQXJnOgogICAgICAgICBjYXNlIEludmFsaWQ6CisgICAg
ICAgIGNhc2UgWmVyb1JlZzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2Fz
ZSBTaW1wbGVBZGRyOgogICAgICAgICBjYXNlIEFkZHI6CkBAIC0xMjUxLDYgKzEyNjksNyBAQCBw
dWJsaWM6CiAgICAgICAgIGNhc2UgU3RhdHVzQ29uZDoKICAgICAgICAgY2FzZSBTcGVjaWFsOgog
ICAgICAgICBjYXNlIFdpZHRoQXJnOgorICAgICAgICBjYXNlIFplcm9SZWc6CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTEzNzksNyArMTM5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGlzU3RhdHVzQ29u
ZCgpKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE1hY3JvQXNzZW1ibGVyOjpTdGF0dXND
b25kaXRpb24+KG1fb2Zmc2V0KTsKICAgICB9Ci0gICAgCisKICAgICAvLyBUZWxscyB5b3UgaWYg
dGhlIEFyZyBpcyBpbnZlcnRpYmxlLiBPbmx5IGNvbmRpdGlvbiBhcmd1bWVudHMgYXJlIGludmVy
dGlibGUsIGFuZCBldmVuIGZvciB0aG9zZSwgdGhlcmUKICAgICAvLyBhcmUgYSBmZXcgZXhjZXB0
aW9ucyAtIG5vdGFibHkgT3ZlcmZsb3cgYW5kIFNpZ25lZC4KICAgICBib29sIGlzSW52ZXJ0aWJs
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9w
Y29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bj
b2RlcwppbmRleCBkNDdmYTNlY2IzOGIyNjE0NTVkNjkwNWE0NjlmZjc4NGMxZmFmOTUxLi5jYjQ4
MTZiYWNhYjkyZTM2YTVjNmNmODU0ZmQyYjU0ODBlYjc1OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKQEAgLTY3Miw2ICs2NzIsMTQgQEAg
U3RvcmVaZXJvMzIgRDpHOjMyCiAgICAgQWRkcgogICAgIEluZGV4CiAKK2FybTY0OiBTdG9yZTMy
IFU6RzozMiwgRDpHOjMyCisgICAgWmVyb1JlZywgQWRkcgorICAgIFplcm9SZWcsIEluZGV4CisK
K2FybTY0OiBTdG9yZTY0IFU6Rzo2NCwgRDpHOjY0CisgICAgWmVyb1JlZywgQWRkcgorICAgIFpl
cm9SZWcsIEluZGV4CisKIFNpZ25FeHRlbmQzMlRvUHRyIFU6RzozMiwgRDpHOlB0cgogICAgIFRt
cCwgVG1wCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2Rl
X2dlbmVyYXRvci5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVy
YXRvci5yYgppbmRleCA2YzYxZWNlODU3NmI4ZTMxOWM1ZjU4MjE4NGQxNzMyNzk4MzY0MDJiLi5k
YWIyNTkwOWQxY2JhMGU4M2QwOWUyYzQ0NzI0NTViZGU0YzA4OTEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCkBAIC0yMjksNyArMjI5
LDcgQEAgZGVmIGlzR0YodG9rZW4pCiBlbmQKIAogZGVmIGlzS2luZCh0b2tlbikKLSAgICB0b2tl
biA9fiAvXEEoKFRtcCl8KEltbSl8KEJpZ0ltbSl8KEJpdEltbSl8KEJpdEltbTY0KXwoU2ltcGxl
QWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIpfChJbmRleCl8KFJlbENvbmQpfChSZXND
b25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxaLworICAgIHRva2VuID1+IC9cQSgoVG1w
KXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1tNjQpfChaZXJvUmVnKXwoU2ltcGxlQWRk
cil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIpfChJbmRleCl8KFJlbENvbmQpfChSZXNDb25k
KXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxaLwogZW5kCiAKIGRlZiBpc0FyY2godG9rZW4p
CkBAIC0zMDMsNyArMzAzLDcgQEAgY2xhc3MgUGFyc2VyCiAKICAgICBkZWYgY29uc3VtZUtpbmQK
ICAgICAgICAgcmVzdWx0ID0gdG9rZW4uc3RyaW5nCi0gICAgICAgIHBhcnNlRXJyb3IoIkV4cGVj
dGVkIGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJbW0sIEJpdEltbTY0LCBUbXAsIFNpbXBsZUFkZHIs
IEFkZHIsIEV4dGVuZGVkT2Zmc2V0QWRkciwgSW5kZXgsIFJlbENvbmQsIFJlc0NvbmQsIERvdWJs
ZUNvbmQsIG9yIFN0YXR1c0NvbmQpIikgdW5sZXNzIGlzS2luZChyZXN1bHQpCisgICAgICAgIHBh
cnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJbW0sIEJpdEltbTY0LCBa
ZXJvUmVnLCBUbXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4dGVuZGVkT2Zmc2V0QWRkciwgSW5kZXgs
IFJlbENvbmQsIFJlc0NvbmQsIERvdWJsZUNvbmQsIG9yIFN0YXR1c0NvbmQpIikgdW5sZXNzIGlz
S2luZChyZXN1bHQpCiAgICAgICAgIGFkdmFuY2UKICAgICAgICAgcmVzdWx0CiAgICAgZW5kCkBA
IC00NzUsNiArNDc1LDE0IEBAIGNsYXNzIFBhcnNlcgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFyc2VFcnJvcigiRm9ybSBoYXMgYW4gaW1tZWRpYXRlIGZvciBhIG5vbi1n
ZW5lcmFsLXB1cnBvc2UgYXJndW1lbnQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiBraW5kLm5hbWUgPT0gIlplcm9SZWciCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIHNpZ25hdHVyZVtpbmRleF0ucm9sZSAhPSAiVSIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IoIkZvcm0gaGFzIGFuIHplcm8gcmVn
aXN0ZXIgZm9yIGEgbm9uLXVzZSBhcmd1bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzaWduYXR1cmVb
aW5kZXhdLmJhbmsgIT0gIkciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXJzZUVycm9yKCJGb3JtIGhhcyBhbiB6ZXJvIHJlZ2lzdGVyIGZvciBhIG5vbi1nZW5lcmFsLXB1
cnBvc2UgYXJndW1lbnQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1zIDw8IEZvcm0ubmV3KGtpbmRzLCBhbHROYW1l
LCBpbnRlcnNlY3RBcmNocyhvcGNvZGVBcmNocywgZm9ybUFyY2hzKSkKIApAQCAtOTI2LDYgKzkz
NCw3IEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgICAgICAgICAgICAgIHdoZW4g
IlJlc0NvbmQiCiAgICAgICAgICAgICAgICAgd2hlbiAiRG91YmxlQ29uZCIKICAgICAgICAgICAg
ICAgICB3aGVuICJTdGF0dXNDb25kIgorICAgICAgICAgICAgICAgIHdoZW4gIlplcm9SZWciCiAg
ICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICByYWlzZSAiVW5leHBlY3Rl
ZCBraW5kOiAje2tpbmQubmFtZX0iCiAgICAgICAgICAgICAgICAgZW5kCkBAIC0xMjIwLDYgKzEy
MjksOCBAQCB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICAgICAgICAgICAgICAgICAg
b3V0cC5wcmludCAiYXJnc1sje2luZGV4fV0uYXNUcnVzdGVkSW1tMzIoKSIKICAgICAgICAgICAg
ICAgICB3aGVuICJCaWdJbW0iLCAiQml0SW1tNjQiCiAgICAgICAgICAgICAgICAgICAgIG91dHAu
cHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzVHJ1c3RlZEltbTY0KCkiCisgICAgICAgICAgICAgICAg
d2hlbiAiWmVyb1JlZyIKKyAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmludCAiSlNDOjpBUk02
NFJlZ2lzdGVyczo6enIiCiAgICAgICAgICAgICAgICAgd2hlbiAiU2ltcGxlQWRkciIsICJBZGRy
IiwgIkV4dGVuZGVkT2Zmc2V0QWRkciIKICAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmludCAi
YXJnc1sje2luZGV4fV0uYXNBZGRyZXNzKCkiCiAgICAgICAgICAgICAgICAgd2hlbiAiSW5kZXgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKaW5kZXggNzQ0NTRhMGJiN2NkMjNkMjY2ODI4ODY4
YzM0NDg0ZmRjOWZhMjVjYi4uYTNjZTk3YTgwOGJmYzhkZGY4ZGU0YTc5OWJkNGNmNzFkZWY5MzE1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaApAQCAtNjY2LDYgKzY2Niw3IEBAIHZvaWQg
dGVzdElUb0QzMkltbShpbnQzMl90IHZhbHVlKTsKIHZvaWQgdGVzdElUb0YzMkltbShpbnQzMl90
IHZhbHVlKTsKIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GNjRBcmcoKTsKIHZvaWQgdGVzdElU
b0RSZWR1Y2VkVG9JVG9GMzJBcmcoKTsKK3ZvaWQgdGVzdFN0b3JlWmVybygpOwogdm9pZCB0ZXN0
U3RvcmUzMihpbnQgdmFsdWUpOwogdm9pZCB0ZXN0U3RvcmVDb25zdGFudChpbnQgdmFsdWUpOwog
dm9pZCB0ZXN0U3RvcmVDb25zdGFudFB0cihpbnRwdHJfdCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiM18xLmNwcAppbmRleCAyYmU4ODMyODYxZmQwZDVhNjUwMzMyOWQzYTNlN2I5
Y2RmM2I3YjAxLi5mY2EwYjU5ZGQ2MjJlNDExYjlmNTBiZDJlNjAyMTY2NjU5MWEyYTBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKQEAgLTMzOCw2ICszMzgsNyBAQCB2b2lk
IHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOX1VOQVJZKHRlc3RDaGVja0FkZFJlbW92
ZUNoZWNrV2l0aFNFeHQzMiwgaW50MzJPcGVyYW5kcygpKTsKICAgICBSVU5fVU5BUlkodGVzdENo
ZWNrQWRkUmVtb3ZlQ2hlY2tXaXRoWkV4dDMyLCBpbnQzMk9wZXJhbmRzKCkpOwogCisgICAgUlVO
KHRlc3RTdG9yZVplcm8oKSk7CiAgICAgUlVOKHRlc3RTdG9yZTMyKDQ0KSk7CiAgICAgUlVOKHRl
c3RTdG9yZUNvbnN0YW50KDQ5KSk7CiAgICAgUlVOKHRlc3RTdG9yZUNvbnN0YW50UHRyKDQ5KSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcAppbmRleCA4ODA0NWYxNWRjZWE0ZjAy
ZDFkMTFiOTJhMDIzYjRmYjdlMDFiNjBlLi41ZTI2YTlkZGRiNDQ5Y2FhZDQ2MjY4ZWNmMmE2OWJi
ZDZjZTE1NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKQEAgLTg3NCwx
OSArODc0LDYgQEAgdm9pZCB0ZXN0TXVsQXJnTmVnQXJnKGludCBhLCBpbnQgYikKICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludD4ocHJvYywgYSwgYikgPT0gYSAqICgtYikpOwogfQogCi12b2lk
IHRlc3RNdWxOZWdBcmdBcmcoaW50IGEsIGludCBiKQotewotICAgIFByb2NlZHVyZSBwcm9jOwot
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgVmFsdWUqIGFyZ0Eg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgVmFsdWUqIGFyZ0IgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0g
ICAgVmFsdWUqIG5lZ0EgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE5lZywgT3JpZ2lu
KCksIGFyZ0EpOwotICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIE11bCwgT3JpZ2luKCksIG5lZ0EsIGFyZ0IpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKLQotICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50Pihwcm9jLCBhLCBiKSA9PSAoLWEpICogYik7Ci19Ci0KIHZvaWQgdGVzdE11bEFy
Z0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKQEAgLTEz
MTcsOCArMTMwNCwzMCBAQCB2b2lkIHRlc3RNdWxTdWJTaWduRXh0ZW5kMzJBcmdzKCkKICAgICB9
CiB9CiAKK3ZvaWQgdGVzdE11bE5lZ0FyZ0FyZyhpbnQgYSwgaW50IGIpCit7CisgICAgaWYgKEpT
Qzo6T3B0aW9uczo6ZGVmYXVsdEIzT3B0TGV2ZWwoKSA8IDIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CisgICAgVmFsdWUqIGFyZ0EgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgVmFsdWUqIGFyZ0Ig
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSk7CisgICAgVmFsdWUqIG5lZ0EgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE5lZywgT3JpZ2luKCksIGFyZ0EpOworICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIG5lZ0EsIGFyZ0IpOworICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KworICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgIGlmIChpc0FSTTY0KCkp
CisgICAgICAgIGNoZWNrVXNlc0luc3RydWN0aW9uKCpjb2RlLCAibW5lZyIpOworICAgIENIRUNL
KGludm9rZTxpbnQzMl90PigqY29kZSwgYSwgYikgPT0gKC1hKSAqIGIpOworfQorCiB2b2lkIHRl
c3RNdWxOZWdBcmdzKCkKIHsKKyAgICBpZiAoSlNDOjpPcHRpb25zOjpkZWZhdWx0QjNPcHRMZXZl
bCgpIDwgMikKKyAgICAgICAgcmV0dXJuOworCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIApAQCAtMTMzMCw2ICsxMzM5LDggQEAg
dm9pZCB0ZXN0TXVsTmVnQXJncygpCiAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQ
cm9jKHByb2MpOworICAgIGlmIChpc0FSTTY0KCkpCisgICAgICAgIGNoZWNrVXNlc0luc3RydWN0
aW9uKCpjb2RlLCAibW5lZyIpOwogCiAgICAgYXV0byB0ZXN0VmFsdWVzID0gaW50NjRPcGVyYW5k
cygpOwogICAgIGZvciAoYXV0byBhIDogdGVzdFZhbHVlcykgewpAQCAtMTM0MSw2ICsxMzUyLDkg
QEAgdm9pZCB0ZXN0TXVsTmVnQXJncygpCiAKIHZvaWQgdGVzdE11bE5lZ0FyZ3MzMigpCiB7Cisg
ICAgaWYgKEpTQzo6T3B0aW9uczo6ZGVmYXVsdEIzT3B0TGV2ZWwoKSA8IDIpCisgICAgICAgIHJl
dHVybjsKKwogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAKQEAgLTEzNTQsNiArMTM2OCw4IEBAIHZvaWQgdGVzdE11bE5lZ0FyZ3Mz
MigpCiAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgIGlm
IChpc0FSTTY0KCkpCisgICAgICAgIGNoZWNrVXNlc0luc3RydWN0aW9uKCpjb2RlLCAibW5lZyIp
OwogCiAgICAgYXV0byB0ZXN0VmFsdWVzID0gaW50MzJPcGVyYW5kcygpOwogICAgIGZvciAoYXV0
byBhIDogdGVzdFZhbHVlcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiM18zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKaW5k
ZXggNzJiMDhkMTZhYTcyOWNkYjgzNDZmZDJmYWFmY2FkOWUwMDM5ZDZlYi4uZTBlNjVmZTU1YWI2
YzVhYWM2MzA0Y2FlYjhjYmE0MjJlN2I1NTNiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiM18zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzXzMuY3BwCkBAIC0yOTA2LDYgKzI5MDYsODMgQEAgdm9pZCB0ZXN0U3RvcmUzMihpbnQgdmFs
dWUpCiAgICAgQ0hFQ0soc2xvdCA9PSB2YWx1ZSk7CiB9CiAKK3ZvaWQgdGVzdFN0b3JlWmVybygp
Cit7CisgICAgLy8gRGlyZWN0IGFkZHJlc3NpbmcKKyAgICB7CisgICAgICAgIGludDMyX3Qgc2xv
dDMyID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgU3RvcmUs
IE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QzMiksIDApOworICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgICAg
IGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBpbnZva2U8aW50PigqY29k
ZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3QzMiwgMCk7CisgICAgfQorCisgICAgeworICAgICAg
ICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOwor
ICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZh
bHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAg
IHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90NjQpLCAwKTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVl
KTsKKworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAgICAgaW52
b2tlPGludD4oKmNvZGUpOworICAgICAgICBDSEVDS19FUShzbG90NjQsIDApOworICAgIH0KKwor
ICAgIC8vIEluZGV4ZWQgYWRkcmVzc2luZworICAgIHsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7
CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAg
VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAg
VmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUqIGRpc3BsYWNl
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSk7
CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7CisgICAgICAgIFZh
bHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigp
LCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcywgMCk7Cisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCB2YWx1ZSk7CisKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJhYWRiZWVmOworICAgICAg
ICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZzbG90MzIsIDEpOworICAgICAgICBDSEVD
S19FUShzbG90MzIsIDApOworICAgIH0KKworICAgIHsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7
CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAg
VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAg
VmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUqIGRpc3BsYWNl
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSk7
CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7CisgICAgICAgIFZh
bHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigp
LCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcywgMCk7Cisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCB2YWx1ZSk7CisKKyAgICAgICAgaW50NjRfdCBzbG90NjQgPSAweGJhYWRiZWVmOworICAgICAg
ICBjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzbG90NjQsIDEpOworICAgICAgICBDSEVD
S19FUShzbG90NjQsIDApOworICAgIH0KK30KKwogdm9pZCB0ZXN0U3RvcmVDb25zdGFudChpbnQg
dmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433192</attachid>
            <date>2021-07-08 19:48:07 -0700</date>
            <delta_ts>2021-07-08 20:21:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210708214805.patch</filename>
            <type>text/plain</type>
            <size>16893</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NDc5MTRhNzhlZTE1ZmE2NzY5NWNiOTA1ZmFjNzc2MGExNWUwMjUwLi4yZGYxYzk1YmY1YThmNjdi
MTQ0NGUyYzI4OTI0ZDYxMWMzYzljNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAyMS0wNy0wOCAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWlIgdG8gbGV0IEFJUiByZWNv
Z25pemUgdGhlIG5ldyBpbnN0cnVjdGlvbnMvZm9ybXMgYWNjZXB0aW5nIHplcm8gcmVnaXN0ZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzUxMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5l
dyBvcGVyYW5kIEltbVplcm8gdG8gQWlyOjpBcmcuIFNvIGl0IGNhbiBiZSByZWNvZ25pemVkIGFz
IHRoZSB6ZXJvIHJlZ2lzdGVycyBpbiBBUk02NCAKKyAgICAgICAgQWlyIG9wY29kZS4gSW4gdGhp
cyBjYXNlLCB0aGUgbmV3IG92ZXJsb2FkcyBvZiB0aGUgaW5zdHJ1Y3Rpb25zIGFjY2VwdGluZyB6
ZXJvIHJlZ2lzdGVycyBjYW4gCisgICAgICAgIGJlIHV0aWxpemVkIGluIHRoZSBpbnN0cnVjdGlv
biBzZWxlY3Rpb24uCisKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAq
IGIzL2Fpci9BaXJBcmcuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmpzSGFzaCBj
b25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6ZHVtcCBjb25zdCk6CisgICAgICAg
IChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGIzL2Fpci9BaXJBcmcuaDoKKyAgICAg
ICAgKEpTQzo6QjM6OkFpcjo6QXJnOjp6ZXJvUmVnKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
QXJnOjppc0ltbVplcm8gY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzR1Ag
Y29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzRlAgY29uc3QpOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzVmFsaWRGb3JtIGNvbnN0KToKKyAgICAgICAgKiBiMy9h
aXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMvYWlyL29wY29kZV9nZW5lcmF0b3Iu
cmI6CisgICAgICAgICogYjMvdGVzdGIzLmg6CisgICAgICAgICogYjMvdGVzdGIzXzEuY3BwOgor
ICAgICAgICAocnVuKToKKyAgICAgICAgKiBiMy90ZXN0YjNfMi5jcHA6CisgICAgICAgICh0ZXN0
TXVsTmVnQXJnQXJnKToKKyAgICAgICAgKHRlc3RNdWxOZWdBcmdzKToKKyAgICAgICAgKHRlc3RN
dWxOZWdBcmdzMzIpOgorICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoKKyAgICAgICAgKHRlc3RT
dG9yZVplcm8pOgorCiAyMDIxLTA3LTA4ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIGRpc3BsYXktcHJvZmlsZXItb3V0cHV0IHNob3VsZCBiZSBhYmxl
IHRvIHByaW50IGRpc2Fzc2VtYmx5IGZvciB0aGUgRlRMCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IDQ3MGQ4YjUyODM2Y2IyNDUzOTA1MTRmYWQ5NDZhNDVm
NWQ1M2VmZTYuLjQ5MDNlZTg0YTUzZWY3MTJhODM1YWExNDZkYTRhYTQ1NjBiYjNiZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC03MDIsNiArNzAyLDEx
IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBBcmcoKTsKICAgICB9CiAKKyAgICBBcmcgemVy
b1JlZygpCisgICAgeworICAgICAgICByZXR1cm4gQXJnOjp6ZXJvUmVnKCk7CisgICAgfQorCiAg
ICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChBcmcgcmVz
dWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEwOTksMTIgKzExMDQsMTIgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICBjYXNlIEFpcjo6TW92ZTMyOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxp
ZEZvcm0oU3RvcmVaZXJvMzIsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRo
MzIpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvMzIsIG1f
dmFsdWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmUz
MiwgQXJnOjpJbW1aZXJvLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDMy
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlMzIsIG1fdmFsdWUs
IHplcm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIGNhc2UgQWlyOjpNb3ZlOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZv
cm0oU3RvcmVaZXJvNjQsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQp
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvNjQsIG1fdmFs
dWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmU2NCwg
QXJnOjpJbW1aZXJvLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDY0KSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlNjQsIG1fdmFsdWUsIHpl
cm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQXJnLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNw
cAppbmRleCA2Nzg2OTllZmRkNWJjZGVkM2NiZTRhMjY5ZWQyYzJmN2M0OGEyYTMxLi4yN2YyMDky
MDgzMDU4ZjFkMDM0ZWIyNzM1Y2E1NDYxZTBjY2YzNzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJBcmcuY3BwCkBAIC0xMDgsNiArMTA4LDcgQEAgdW5zaWduZWQgQXJnOjpqc0hh
c2goKSBjb25zdAogICAgIGNhc2UgRG91YmxlQ29uZDoKICAgICBjYXNlIFN0YXR1c0NvbmQ6CiAg
ICAgY2FzZSBXaWR0aEFyZzoKKyAgICBjYXNlIEltbVplcm86CiAgICAgICAgIHJlc3VsdCArPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obV9vZmZzZXQpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJpZ0ltbToKQEAgLTE1OSw2ICsxNjAsOSBAQCB2b2lkIEFyZzo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogICAgIGNhc2UgQml0SW1tNjQ6CiAgICAgICAgIG91dC5wcmludGYoIiQweCVs
bHgiLCBzdGF0aWNfY2FzdDxsb25nIGxvbmcgdW5zaWduZWQ+KG1fb2Zmc2V0KSk7CiAgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIEltbVplcm86CisgICAgICAgIG91dC5wcmludGYoIiVjeHpyIiwg
JyUnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU2ltcGxlQWRkcjoKICAgICAgICAgb3V0
LnByaW50KCIoIiwgYmFzZSgpLCAiKSIpOwogICAgICAgICByZXR1cm47CkBAIC0yMzYsNiArMjQw
LDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEFyZzo6S2luZCBraW5k
KQogICAgIGNhc2UgQXJnOjpCaXRJbW02NDoKICAgICAgICAgb3V0LnByaW50KCJCaXRJbW02NCIp
OwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBBcmc6OkltbVplcm86CisgICAgICAgIG91dC5w
cmludCgiSW1tWmVybyIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBcmc6OlNpbXBsZUFk
ZHI6CiAgICAgICAgIG91dC5wcmludCgiU2ltcGxlQWRkciIpOwogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAppbmRleCA4NzIwNGU2N2M3Nzc1M2I0MTY1
MmY3Mzk0ZjBjMzQ2NzNkY2IzOWI0Li4wZTVmMTA0YTE3Mjk3ZWNjZmUwMmNhMzZiYjVkODFkNTNj
NzliNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKQEAgLTg1LDcgKzg1
LDEwIEBAIHB1YmxpYzoKICAgICAgICAgRG91YmxlQ29uZCwKICAgICAgICAgU3RhdHVzQ29uZCwK
ICAgICAgICAgU3BlY2lhbCwKLSAgICAgICAgV2lkdGhBcmcKKyAgICAgICAgV2lkdGhBcmcsCisK
KyAgICAgICAgLy8gSW1tWmVybyBpcyByZWNvZ25pemVkIGFzIGEgemVybyByZWdpc3RlciBmb3Ig
QVJNNjQKKyAgICAgICAgSW1tWmVybwogICAgIH07CiAgICAgCiAgICAgZW51bSBUZW1wZXJhdHVy
ZSA6IGludDhfdCB7CkBAIC02OTMsNiArNjk2LDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CiAKKyAgICBzdGF0aWMgQXJnIHplcm9SZWcoKQorICAgIHsKKyAgICAg
ICAgQXJnIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fa2luZCA9IEltbVplcm87CisgICAgICAg
IHJlc3VsdC5tX29mZnNldCA9IDA7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCiAg
ICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEFyZyYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAg
ICByZXR1cm4gbV9vZmZzZXQgPT0gb3RoZXIubV9vZmZzZXQKQEAgLTg1MCw2ICs4NjEsMTEgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4ga2luZCgpID09IFdpZHRoQXJnOwogICAgIH0KIAorICAg
IGJvb2wgaXNJbW1aZXJvKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBraW5kKCkgPT0g
SW1tWmVybzsKKyAgICB9CisKICAgICBib29sIGlzQWxpdmUoKSBjb25zdAogICAgIHsKICAgICAg
ICAgcmV0dXJuIGlzVG1wKCkgfHwgaXNTdGFjaygpOwpAQCAtMTAzOCw2ICsxMDU0LDcgQEAgcHVi
bGljOgogICAgICAgICBjYXNlIFRtcDoKICAgICAgICAgICAgIHJldHVybiBpc0dQVG1wKCk7CiAg
ICAgICAgIGNhc2UgSW52YWxpZDoKKyAgICAgICAgY2FzZSBJbW1aZXJvOgogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtMTA1Nyw2ICsxMDc0LDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIFNwZWNpYWw6CiAgICAg
ICAgIGNhc2UgV2lkdGhBcmc6CiAgICAgICAgIGNhc2UgSW52YWxpZDoKKyAgICAgICAgY2FzZSBJ
bW1aZXJvOgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNlIFNpbXBsZUFk
ZHI6CiAgICAgICAgIGNhc2UgQWRkcjoKQEAgLTEyNTEsNiArMTI2OSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgY2FzZSBTdGF0dXNDb25kOgogICAgICAgICBjYXNlIFNwZWNpYWw6CiAgICAgICAgIGNh
c2UgV2lkdGhBcmc6CisgICAgICAgIGNhc2UgSW1tWmVybzoKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTM3OSw3
ICsxMzk4LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoaXNTdGF0dXNDb25kKCkpOwogICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TWFjcm9Bc3NlbWJsZXI6OlN0YXR1c0NvbmRpdGlvbj4o
bV9vZmZzZXQpOwogICAgIH0KLSAgICAKKwogICAgIC8vIFRlbGxzIHlvdSBpZiB0aGUgQXJnIGlz
IGludmVydGlibGUuIE9ubHkgY29uZGl0aW9uIGFyZ3VtZW50cyBhcmUgaW52ZXJ0aWJsZSwgYW5k
IGV2ZW4gZm9yIHRob3NlLCB0aGVyZQogICAgIC8vIGFyZSBhIGZldyBleGNlcHRpb25zIC0gbm90
YWJseSBPdmVyZmxvdyBhbmQgU2lnbmVkLgogICAgIGJvb2wgaXNJbnZlcnRpYmxlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29k
ZXMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4
IGQ0N2ZhM2VjYjM4YjI2MTQ1NWQ2OTA1YTQ2OWZmNzg0YzFmYWY5NTEuLmIzZjYwZTM2NGUxNzFl
MTJlMTViYzE3NTM4OTU2MTZlMGRiY2JkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAtNjcyLDYgKzY3MiwxNCBAQCBTdG9yZVplcm8z
MiBEOkc6MzIKICAgICBBZGRyCiAgICAgSW5kZXgKIAorYXJtNjQ6IFN0b3JlMzIgVTpHOjMyLCBE
Okc6MzIKKyAgICBJbW1aZXJvLCBBZGRyCisgICAgSW1tWmVybywgSW5kZXgKKworYXJtNjQ6IFN0
b3JlNjQgVTpHOjY0LCBEOkc6NjQKKyAgICBJbW1aZXJvLCBBZGRyCisgICAgSW1tWmVybywgSW5k
ZXgKKwogU2lnbkV4dGVuZDMyVG9QdHIgVTpHOjMyLCBEOkc6UHRyCiAgICAgVG1wLCBUbXAKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9y
LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCmlu
ZGV4IDZjNjFlY2U4NTc2YjhlMzE5YzVmNTgyMTg0ZDE3MzI3OTgzNjQwMmIuLjdjNzdjYTc0NmFi
NjNmYmZmZmMyZDg3ZWViMTQ5YzMyYjc3YmEwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKQEAgLTIyOSw3ICsyMjksNyBAQCBkZWYg
aXNHRih0b2tlbikKIGVuZAogCiBkZWYgaXNLaW5kKHRva2VuKQotICAgIHRva2VuID1+IC9cQSgo
VG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1tNjQpfChTaW1wbGVBZGRyKXwoQWRk
cil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8KFJlc0NvbmQpfChEb3Vi
bGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCisgICAgdG9rZW4gPX4gL1xBKChUbXApfChJbW0pfChC
aWdJbW0pfChCaXRJbW0pfChCaXRJbW02NCl8KEltbVplcm8pfChTaW1wbGVBZGRyKXwoQWRkcil8
KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8KFJlc0NvbmQpfChEb3VibGVD
b25kKXwoU3RhdHVzQ29uZCkpXFovCiBlbmQKIAogZGVmIGlzQXJjaCh0b2tlbikKQEAgLTMwMyw3
ICszMDMsNyBAQCBjbGFzcyBQYXJzZXIKIAogICAgIGRlZiBjb25zdW1lS2luZAogICAgICAgICBy
ZXN1bHQgPSB0b2tlbi5zdHJpbmcKLSAgICAgICAgcGFyc2VFcnJvcigiRXhwZWN0ZWQga2luZCAo
SW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIFRtcCwgU2ltcGxlQWRkciwgQWRkciwgRXh0
ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwgUmVzQ29uZCwgRG91YmxlQ29uZCwgb3Ig
U3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3VsdCkKKyAgICAgICAgcGFyc2VFcnJvcigi
RXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIEltbVplcm8sIFRt
cCwgU2ltcGxlQWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwg
UmVzQ29uZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3Vs
dCkKICAgICAgICAgYWR2YW5jZQogICAgICAgICByZXN1bHQKICAgICBlbmQKQEAgLTQ3NSw2ICs0
NzUsMTQgQEAgY2xhc3MgUGFyc2VyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXJzZUVycm9yKCJGb3JtIGhhcyBhbiBpbW1lZGlhdGUgZm9yIGEgbm9uLWdlbmVyYWwtcHVy
cG9zZSBhcmd1bWVudCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIGtpbmQubmFtZSA9PSAiSW1tWmVybyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgc2lnbmF0dXJlW2luZGV4XS5yb2xlICE9ICJVIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiRm9ybSBoYXMgYW4gemVybyByZWdpc3RlciBmb3Ig
YSBub24tdXNlIGFyZ3VtZW50IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNpZ25hdHVyZVtpbmRleF0uYmFu
ayAhPSAiRyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJyb3Io
IkZvcm0gaGFzIGFuIHplcm8gcmVnaXN0ZXIgZm9yIGEgbm9uLWdlbmVyYWwtcHVycG9zZSBhcmd1
bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICAgZm9ybXMgPDwgRm9ybS5uZXcoa2luZHMsIGFsdE5hbWUsIGludGVyc2Vj
dEFyY2hzKG9wY29kZUFyY2hzLCBmb3JtQXJjaHMpKQogCkBAIC05MjYsNiArOTM0LDcgQEAgd3Jp
dGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAgd2hlbiAiUmVzQ29uZCIK
ICAgICAgICAgICAgICAgICB3aGVuICJEb3VibGVDb25kIgogICAgICAgICAgICAgICAgIHdoZW4g
IlN0YXR1c0NvbmQiCisgICAgICAgICAgICAgICAgd2hlbiAiSW1tWmVybyIKICAgICAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVkIGtpbmQ6ICN7
a2luZC5uYW1lfSIKICAgICAgICAgICAgICAgICBlbmQKQEAgLTEyMjAsNiArMTIyOSw4IEBAIHdy
aXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50
ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW0zMigpIgogICAgICAgICAgICAgICAgIHdoZW4g
IkJpZ0ltbSIsICJCaXRJbW02NCIKICAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmludCAiYXJn
c1sje2luZGV4fV0uYXNUcnVzdGVkSW1tNjQoKSIKKyAgICAgICAgICAgICAgICB3aGVuICJJbW1a
ZXJvIgorICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJKU0M6OkFSTTY0UmVnaXN0ZXJz
Ojp6ciIKICAgICAgICAgICAgICAgICB3aGVuICJTaW1wbGVBZGRyIiwgIkFkZHIiLCAiRXh0ZW5k
ZWRPZmZzZXRBZGRyIgogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7aW5k
ZXh9XS5hc0FkZHJlc3MoKSIKICAgICAgICAgICAgICAgICB3aGVuICJJbmRleCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuaAppbmRleCA3NDQ1NGEwYmI3Y2QyM2QyNjY4Mjg4NjhjMzQ0ODRmZGM5
ZmEyNWNiLi5hM2NlOTdhODA4YmZjOGRkZjhkZTRhNzk5YmQ0Y2Y3MWRlZjkzMTVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC02NjYsNiArNjY2LDcgQEAgdm9pZCB0ZXN0SVRvRDMy
SW1tKGludDMyX3QgdmFsdWUpOwogdm9pZCB0ZXN0SVRvRjMySW1tKGludDMyX3QgdmFsdWUpOwog
dm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygpOwogdm9pZCB0ZXN0SVRvRFJlZHVjZWRU
b0lUb0YzMkFyZygpOwordm9pZCB0ZXN0U3RvcmVaZXJvKCk7CiB2b2lkIHRlc3RTdG9yZTMyKGlu
dCB2YWx1ZSk7CiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSk7CiB2b2lkIHRlc3RT
dG9yZUNvbnN0YW50UHRyKGludHB0cl90IHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzXzEuY3BwCmluZGV4IDJiZTg4MzI4NjFmZDBkNWE2NTAzMzI5ZDNhM2U3YjljZGYzYjdiMDEu
LmZjYTBiNTlkZDYyMmU0MTFiOWY1MGJkMmU2MDIxNjY2NTkxYTJhMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiM18xLmNwcApAQCAtMzM4LDYgKzMzOCw3IEBAIHZvaWQgcnVuKGNvbnN0
IGNoYXIqIGZpbHRlcikKICAgICBSVU5fVU5BUlkodGVzdENoZWNrQWRkUmVtb3ZlQ2hlY2tXaXRo
U0V4dDMyLCBpbnQzMk9wZXJhbmRzKCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0Q2hlY2tBZGRSZW1v
dmVDaGVja1dpdGhaRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAKKyAgICBSVU4odGVzdFN0b3Jl
WmVybygpKTsKICAgICBSVU4odGVzdFN0b3JlMzIoNDQpKTsKICAgICBSVU4odGVzdFN0b3JlQ29u
c3RhbnQoNDkpKTsKICAgICBSVU4odGVzdFN0b3JlQ29uc3RhbnRQdHIoNDkpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwCmluZGV4IDg4MDQ1ZjE1ZGNlYTRmMDJkMWQxMWI5MmEw
MjNiNGZiN2UwMWI2MGUuLjVlMjZhOWRkZGI0NDljYWFkNDYyNjhlY2YyYTY5YmJkNmNlMTU1ZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcApAQCAtODc0LDE5ICs4NzQsNiBA
QCB2b2lkIHRlc3RNdWxBcmdOZWdBcmcoaW50IGEsIGludCBiKQogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50Pihwcm9jLCBhLCBiKSA9PSBhICogKC1iKSk7CiB9CiAKLXZvaWQgdGVzdE11bE5l
Z0FyZ0FyZyhpbnQgYSwgaW50IGIpCi17Ci0gICAgUHJvY2VkdXJlIHByb2M7Ci0gICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBWYWx1ZSogYXJnQSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICBWYWx1ZSogYXJnQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICBWYWx1ZSog
bmVnQSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTmVnLCBPcmlnaW4oKSwgYXJnQSk7
Ci0gICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBP
cmlnaW4oKSwgbmVnQSwgYXJnQik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwotCi0gICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MsIGEsIGIpID09ICgtYSkgKiBiKTsKLX0KLQogdm9pZCB0ZXN0TXVsQXJnSW1tKGludDY0
X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTMxNyw4ICsxMzA0
LDMwIEBAIHZvaWQgdGVzdE11bFN1YlNpZ25FeHRlbmQzMkFyZ3MoKQogICAgIH0KIH0KIAordm9p
ZCB0ZXN0TXVsTmVnQXJnQXJnKGludCBhLCBpbnQgYikKK3sKKyAgICBpZiAoSlNDOjpPcHRpb25z
OjpkZWZhdWx0QjNPcHRMZXZlbCgpIDwgMikKKyAgICAgICAgcmV0dXJuOworCisgICAgUHJvY2Vk
dXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBW
YWx1ZSogYXJnQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBWYWx1ZSogYXJnQiA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKTsKKyAgICBWYWx1ZSogbmVnQSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
TmVnLCBPcmlnaW4oKSwgYXJnQSk7CisgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgbmVnQSwgYXJnQik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworCisgICAgYXV0
byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAg
Y2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJtbmVnIik7CisgICAgQ0hFQ0soaW52b2tlPGlu
dDMyX3Q+KCpjb2RlLCBhLCBiKSA9PSAoLWEpICogYik7Cit9CisKIHZvaWQgdGVzdE11bE5lZ0Fy
Z3MoKQogeworICAgIGlmIChKU0M6Ok9wdGlvbnM6OmRlZmF1bHRCM09wdExldmVsKCkgPCAyKQor
ICAgICAgICByZXR1cm47CisKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogCkBAIC0xMzMwLDYgKzEzMzksOCBAQCB2b2lkIHRlc3RN
dWxOZWdBcmdzKCkKICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7
CisgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAgY2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUs
ICJtbmVnIik7CiAKICAgICBhdXRvIHRlc3RWYWx1ZXMgPSBpbnQ2NE9wZXJhbmRzKCk7CiAgICAg
Zm9yIChhdXRvIGEgOiB0ZXN0VmFsdWVzKSB7CkBAIC0xMzQxLDYgKzEzNTIsOSBAQCB2b2lkIHRl
c3RNdWxOZWdBcmdzKCkKIAogdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCkKIHsKKyAgICBpZiAoSlND
OjpPcHRpb25zOjpkZWZhdWx0QjNPcHRMZXZlbCgpIDwgMikKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKIApAQCAtMTM1NCw2ICsxMzY4LDggQEAgdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCkKICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgaWYgKGlzQVJNNjQo
KSkKKyAgICAgICAgY2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJtbmVnIik7CiAKICAgICBh
dXRvIHRlc3RWYWx1ZXMgPSBpbnQzMk9wZXJhbmRzKCk7CiAgICAgZm9yIChhdXRvIGEgOiB0ZXN0
VmFsdWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAppbmRleCA3MmIwOGQx
NmFhNzI5Y2RiODM0NmZkMmZhYWZjYWQ5ZTAwMzlkNmViLi5lMGU2NWZlNTVhYjZjNWFhYzYzMDRj
YWViOGNiYTQyMmU3YjU1M2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzXzMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAK
QEAgLTI5MDYsNiArMjkwNiw4MyBAQCB2b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSkKICAgICBD
SEVDSyhzbG90ID09IHZhbHVlKTsKIH0KIAordm9pZCB0ZXN0U3RvcmVaZXJvKCkKK3sKKyAgICAv
LyBEaXJlY3QgYWRkcmVzc2luZworICAgIHsKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJh
YWRiZWVmOworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IHZhbHVlLAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAmc2xvdDMyKSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgICAgIGludm9rZTxpbnQ+KCpjb2RlKTsKKyAgICAg
ICAgQ0hFQ0tfRVEoc2xvdDMyLCAwKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGludDY0X3Qg
c2xvdDY0ID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgU3Rv
cmUsIE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0
clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3Q2NCksIDApOworICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAg
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBpbnZva2U8aW50Pigq
Y29kZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Q2NCwgMCk7CisgICAgfQorCisgICAgLy8gSW5k
ZXhlZCBhZGRyZXNzaW5nCisgICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFs
dWUgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7Cisg
ICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSogb2Zm
c2V0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAgICAg
ICBWYWx1ZSogYmFzZURpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgZGlzcGxhY2VtZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNw
bGFjZW1lbnQsIG9mZnNldCk7CisKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsK
KworICAgICAgICBpbnQzMl90IHNsb3QzMiA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgJnNsb3QzMiwgMSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Qz
MiwgMCk7CisgICAgfQorCisgICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFs
dWUgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7Cisg
ICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSogb2Zm
c2V0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAgICAg
ICBWYWx1ZSogYmFzZURpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgZGlzcGxhY2VtZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNw
bGFjZW1lbnQsIG9mZnNldCk7CisKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsK
KworICAgICAgICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgJnNsb3Q2NCwgMSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Q2
NCwgMCk7CisgICAgfQorfQorCiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433195</attachid>
            <date>2021-07-08 20:21:37 -0700</date>
            <delta_ts>2021-07-09 11:07:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210708222135.patch</filename>
            <type>text/plain</type>
            <size>16893</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NDc5MTRhNzhlZTE1ZmE2NzY5NWNiOTA1ZmFjNzc2MGExNWUwMjUwLi5mNTg3Y2Y2YzM5Y2NkMjI3
MTBlOGM1ZGUzOWYwM2U3YTliNDcwMWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAyMS0wNy0wOCAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWlIgdG8gbGV0IEFJUiByZWNv
Z25pemUgdGhlIG5ldyBpbnN0cnVjdGlvbnMvZm9ybXMgYWNjZXB0aW5nIHplcm8gcmVnaXN0ZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzUxMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5l
dyBvcGVyYW5kIEltbVplcm8gdG8gQWlyOjpBcmcuIFNvIGl0IGNhbiBiZSByZWNvZ25pemVkIGFz
IHRoZSB6ZXJvIHJlZ2lzdGVycyBpbiBBUk02NCAKKyAgICAgICAgQWlyIG9wY29kZS4gSW4gdGhp
cyBjYXNlLCB0aGUgbmV3IG92ZXJsb2FkcyBvZiB0aGUgaW5zdHJ1Y3Rpb25zIGFjY2VwdGluZyB6
ZXJvIHJlZ2lzdGVycyBjYW4gCisgICAgICAgIGJlIHV0aWxpemVkIGluIHRoZSBpbnN0cnVjdGlv
biBzZWxlY3Rpb24uCisKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAq
IGIzL2Fpci9BaXJBcmcuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmpzSGFzaCBj
b25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6ZHVtcCBjb25zdCk6CisgICAgICAg
IChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGIzL2Fpci9BaXJBcmcuaDoKKyAgICAg
ICAgKEpTQzo6QjM6OkFpcjo6QXJnOjppbW1aZXJvKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
QXJnOjppc0ltbVplcm8gY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzR1Ag
Y29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzRlAgY29uc3QpOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzVmFsaWRGb3JtIGNvbnN0KToKKyAgICAgICAgKiBiMy9h
aXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMvYWlyL29wY29kZV9nZW5lcmF0b3Iu
cmI6CisgICAgICAgICogYjMvdGVzdGIzLmg6CisgICAgICAgICogYjMvdGVzdGIzXzEuY3BwOgor
ICAgICAgICAocnVuKToKKyAgICAgICAgKiBiMy90ZXN0YjNfMi5jcHA6CisgICAgICAgICh0ZXN0
TXVsTmVnQXJnQXJnKToKKyAgICAgICAgKHRlc3RNdWxOZWdBcmdzKToKKyAgICAgICAgKHRlc3RN
dWxOZWdBcmdzMzIpOgorICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoKKyAgICAgICAgKHRlc3RT
dG9yZVplcm8pOgorCiAyMDIxLTA3LTA4ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIGRpc3BsYXktcHJvZmlsZXItb3V0cHV0IHNob3VsZCBiZSBhYmxl
IHRvIHByaW50IGRpc2Fzc2VtYmx5IGZvciB0aGUgRlRMCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IDQ3MGQ4YjUyODM2Y2IyNDUzOTA1MTRmYWQ5NDZhNDVm
NWQ1M2VmZTYuLjVkYTU2ODZiZWJiMTFhMjMwM2IwYzdmYWJjZjM3NzU2ZDgzOGY5ZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC03MDIsNiArNzAyLDEx
IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBBcmcoKTsKICAgICB9CiAKKyAgICBBcmcgaW1t
WmVybygpCisgICAgeworICAgICAgICByZXR1cm4gQXJnOjppbW1aZXJvKCk7CisgICAgfQorCiAg
ICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChBcmcgcmVz
dWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEwOTksMTIgKzExMDQsMTIgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICBjYXNlIEFpcjo6TW92ZTMyOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxp
ZEZvcm0oU3RvcmVaZXJvMzIsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRo
MzIpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvMzIsIG1f
dmFsdWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmUz
MiwgQXJnOjpJbW1aZXJvLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDMy
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlMzIsIG1fdmFsdWUs
IGltbVplcm8oKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIGNhc2UgQWlyOjpNb3ZlOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZv
cm0oU3RvcmVaZXJvNjQsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQp
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvNjQsIG1fdmFs
dWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmU2NCwg
QXJnOjpJbW1aZXJvLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDY0KSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlNjQsIG1fdmFsdWUsIGlt
bVplcm8oKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQXJnLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNw
cAppbmRleCA2Nzg2OTllZmRkNWJjZGVkM2NiZTRhMjY5ZWQyYzJmN2M0OGEyYTMxLi4yN2YyMDky
MDgzMDU4ZjFkMDM0ZWIyNzM1Y2E1NDYxZTBjY2YzNzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJBcmcuY3BwCkBAIC0xMDgsNiArMTA4LDcgQEAgdW5zaWduZWQgQXJnOjpqc0hh
c2goKSBjb25zdAogICAgIGNhc2UgRG91YmxlQ29uZDoKICAgICBjYXNlIFN0YXR1c0NvbmQ6CiAg
ICAgY2FzZSBXaWR0aEFyZzoKKyAgICBjYXNlIEltbVplcm86CiAgICAgICAgIHJlc3VsdCArPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obV9vZmZzZXQpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJpZ0ltbToKQEAgLTE1OSw2ICsxNjAsOSBAQCB2b2lkIEFyZzo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogICAgIGNhc2UgQml0SW1tNjQ6CiAgICAgICAgIG91dC5wcmludGYoIiQweCVs
bHgiLCBzdGF0aWNfY2FzdDxsb25nIGxvbmcgdW5zaWduZWQ+KG1fb2Zmc2V0KSk7CiAgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIEltbVplcm86CisgICAgICAgIG91dC5wcmludGYoIiVjeHpyIiwg
JyUnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU2ltcGxlQWRkcjoKICAgICAgICAgb3V0
LnByaW50KCIoIiwgYmFzZSgpLCAiKSIpOwogICAgICAgICByZXR1cm47CkBAIC0yMzYsNiArMjQw
LDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEFyZzo6S2luZCBraW5k
KQogICAgIGNhc2UgQXJnOjpCaXRJbW02NDoKICAgICAgICAgb3V0LnByaW50KCJCaXRJbW02NCIp
OwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBBcmc6OkltbVplcm86CisgICAgICAgIG91dC5w
cmludCgiSW1tWmVybyIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBcmc6OlNpbXBsZUFk
ZHI6CiAgICAgICAgIG91dC5wcmludCgiU2ltcGxlQWRkciIpOwogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAppbmRleCA4NzIwNGU2N2M3Nzc1M2I0MTY1
MmY3Mzk0ZjBjMzQ2NzNkY2IzOWI0Li5iZDNmZDg0OTZlZDU5NDM0MmIzMmMwZmQxNzcxOTkyYzBm
YjkwODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKQEAgLTg1LDcgKzg1
LDEwIEBAIHB1YmxpYzoKICAgICAgICAgRG91YmxlQ29uZCwKICAgICAgICAgU3RhdHVzQ29uZCwK
ICAgICAgICAgU3BlY2lhbCwKLSAgICAgICAgV2lkdGhBcmcKKyAgICAgICAgV2lkdGhBcmcsCisK
KyAgICAgICAgLy8gSW1tWmVybyBpcyByZWNvZ25pemVkIGFzIGEgemVybyByZWdpc3RlciBmb3Ig
QVJNNjQKKyAgICAgICAgSW1tWmVybwogICAgIH07CiAgICAgCiAgICAgZW51bSBUZW1wZXJhdHVy
ZSA6IGludDhfdCB7CkBAIC02OTMsNiArNjk2LDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CiAKKyAgICBzdGF0aWMgQXJnIGltbVplcm8oKQorICAgIHsKKyAgICAg
ICAgQXJnIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fa2luZCA9IEltbVplcm87CisgICAgICAg
IHJlc3VsdC5tX29mZnNldCA9IDA7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCiAg
ICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEFyZyYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAg
ICByZXR1cm4gbV9vZmZzZXQgPT0gb3RoZXIubV9vZmZzZXQKQEAgLTg1MCw2ICs4NjEsMTEgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4ga2luZCgpID09IFdpZHRoQXJnOwogICAgIH0KIAorICAg
IGJvb2wgaXNJbW1aZXJvKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBraW5kKCkgPT0g
SW1tWmVybzsKKyAgICB9CisKICAgICBib29sIGlzQWxpdmUoKSBjb25zdAogICAgIHsKICAgICAg
ICAgcmV0dXJuIGlzVG1wKCkgfHwgaXNTdGFjaygpOwpAQCAtMTAzOCw2ICsxMDU0LDcgQEAgcHVi
bGljOgogICAgICAgICBjYXNlIFRtcDoKICAgICAgICAgICAgIHJldHVybiBpc0dQVG1wKCk7CiAg
ICAgICAgIGNhc2UgSW52YWxpZDoKKyAgICAgICAgY2FzZSBJbW1aZXJvOgogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtMTA1Nyw2ICsxMDc0LDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIFNwZWNpYWw6CiAgICAg
ICAgIGNhc2UgV2lkdGhBcmc6CiAgICAgICAgIGNhc2UgSW52YWxpZDoKKyAgICAgICAgY2FzZSBJ
bW1aZXJvOgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNlIFNpbXBsZUFk
ZHI6CiAgICAgICAgIGNhc2UgQWRkcjoKQEAgLTEyNTEsNiArMTI2OSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgY2FzZSBTdGF0dXNDb25kOgogICAgICAgICBjYXNlIFNwZWNpYWw6CiAgICAgICAgIGNh
c2UgV2lkdGhBcmc6CisgICAgICAgIGNhc2UgSW1tWmVybzoKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTM3OSw3
ICsxMzk4LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoaXNTdGF0dXNDb25kKCkpOwogICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TWFjcm9Bc3NlbWJsZXI6OlN0YXR1c0NvbmRpdGlvbj4o
bV9vZmZzZXQpOwogICAgIH0KLSAgICAKKwogICAgIC8vIFRlbGxzIHlvdSBpZiB0aGUgQXJnIGlz
IGludmVydGlibGUuIE9ubHkgY29uZGl0aW9uIGFyZ3VtZW50cyBhcmUgaW52ZXJ0aWJsZSwgYW5k
IGV2ZW4gZm9yIHRob3NlLCB0aGVyZQogICAgIC8vIGFyZSBhIGZldyBleGNlcHRpb25zIC0gbm90
YWJseSBPdmVyZmxvdyBhbmQgU2lnbmVkLgogICAgIGJvb2wgaXNJbnZlcnRpYmxlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29k
ZXMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4
IGQ0N2ZhM2VjYjM4YjI2MTQ1NWQ2OTA1YTQ2OWZmNzg0YzFmYWY5NTEuLmIzZjYwZTM2NGUxNzFl
MTJlMTViYzE3NTM4OTU2MTZlMGRiY2JkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAtNjcyLDYgKzY3MiwxNCBAQCBTdG9yZVplcm8z
MiBEOkc6MzIKICAgICBBZGRyCiAgICAgSW5kZXgKIAorYXJtNjQ6IFN0b3JlMzIgVTpHOjMyLCBE
Okc6MzIKKyAgICBJbW1aZXJvLCBBZGRyCisgICAgSW1tWmVybywgSW5kZXgKKworYXJtNjQ6IFN0
b3JlNjQgVTpHOjY0LCBEOkc6NjQKKyAgICBJbW1aZXJvLCBBZGRyCisgICAgSW1tWmVybywgSW5k
ZXgKKwogU2lnbkV4dGVuZDMyVG9QdHIgVTpHOjMyLCBEOkc6UHRyCiAgICAgVG1wLCBUbXAKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9y
LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCmlu
ZGV4IDZjNjFlY2U4NTc2YjhlMzE5YzVmNTgyMTg0ZDE3MzI3OTgzNjQwMmIuLjdjNzdjYTc0NmFi
NjNmYmZmZmMyZDg3ZWViMTQ5YzMyYjc3YmEwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKQEAgLTIyOSw3ICsyMjksNyBAQCBkZWYg
aXNHRih0b2tlbikKIGVuZAogCiBkZWYgaXNLaW5kKHRva2VuKQotICAgIHRva2VuID1+IC9cQSgo
VG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1tNjQpfChTaW1wbGVBZGRyKXwoQWRk
cil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8KFJlc0NvbmQpfChEb3Vi
bGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCisgICAgdG9rZW4gPX4gL1xBKChUbXApfChJbW0pfChC
aWdJbW0pfChCaXRJbW0pfChCaXRJbW02NCl8KEltbVplcm8pfChTaW1wbGVBZGRyKXwoQWRkcil8
KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8KFJlc0NvbmQpfChEb3VibGVD
b25kKXwoU3RhdHVzQ29uZCkpXFovCiBlbmQKIAogZGVmIGlzQXJjaCh0b2tlbikKQEAgLTMwMyw3
ICszMDMsNyBAQCBjbGFzcyBQYXJzZXIKIAogICAgIGRlZiBjb25zdW1lS2luZAogICAgICAgICBy
ZXN1bHQgPSB0b2tlbi5zdHJpbmcKLSAgICAgICAgcGFyc2VFcnJvcigiRXhwZWN0ZWQga2luZCAo
SW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIFRtcCwgU2ltcGxlQWRkciwgQWRkciwgRXh0
ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwgUmVzQ29uZCwgRG91YmxlQ29uZCwgb3Ig
U3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3VsdCkKKyAgICAgICAgcGFyc2VFcnJvcigi
RXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIEltbVplcm8sIFRt
cCwgU2ltcGxlQWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwg
UmVzQ29uZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3Vs
dCkKICAgICAgICAgYWR2YW5jZQogICAgICAgICByZXN1bHQKICAgICBlbmQKQEAgLTQ3NSw2ICs0
NzUsMTQgQEAgY2xhc3MgUGFyc2VyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXJzZUVycm9yKCJGb3JtIGhhcyBhbiBpbW1lZGlhdGUgZm9yIGEgbm9uLWdlbmVyYWwtcHVy
cG9zZSBhcmd1bWVudCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIGtpbmQubmFtZSA9PSAiSW1tWmVybyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgc2lnbmF0dXJlW2luZGV4XS5yb2xlICE9ICJVIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiRm9ybSBoYXMgYW4gemVybyByZWdpc3RlciBmb3Ig
YSBub24tdXNlIGFyZ3VtZW50IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNpZ25hdHVyZVtpbmRleF0uYmFu
ayAhPSAiRyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJyb3Io
IkZvcm0gaGFzIGFuIHplcm8gcmVnaXN0ZXIgZm9yIGEgbm9uLWdlbmVyYWwtcHVycG9zZSBhcmd1
bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICAgZm9ybXMgPDwgRm9ybS5uZXcoa2luZHMsIGFsdE5hbWUsIGludGVyc2Vj
dEFyY2hzKG9wY29kZUFyY2hzLCBmb3JtQXJjaHMpKQogCkBAIC05MjYsNiArOTM0LDcgQEAgd3Jp
dGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAgd2hlbiAiUmVzQ29uZCIK
ICAgICAgICAgICAgICAgICB3aGVuICJEb3VibGVDb25kIgogICAgICAgICAgICAgICAgIHdoZW4g
IlN0YXR1c0NvbmQiCisgICAgICAgICAgICAgICAgd2hlbiAiSW1tWmVybyIKICAgICAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVkIGtpbmQ6ICN7
a2luZC5uYW1lfSIKICAgICAgICAgICAgICAgICBlbmQKQEAgLTEyMjAsNiArMTIyOSw4IEBAIHdy
aXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50
ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW0zMigpIgogICAgICAgICAgICAgICAgIHdoZW4g
IkJpZ0ltbSIsICJCaXRJbW02NCIKICAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmludCAiYXJn
c1sje2luZGV4fV0uYXNUcnVzdGVkSW1tNjQoKSIKKyAgICAgICAgICAgICAgICB3aGVuICJJbW1a
ZXJvIgorICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJKU0M6OkFSTTY0UmVnaXN0ZXJz
Ojp6ciIKICAgICAgICAgICAgICAgICB3aGVuICJTaW1wbGVBZGRyIiwgIkFkZHIiLCAiRXh0ZW5k
ZWRPZmZzZXRBZGRyIgogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7aW5k
ZXh9XS5hc0FkZHJlc3MoKSIKICAgICAgICAgICAgICAgICB3aGVuICJJbmRleCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuaAppbmRleCA3NDQ1NGEwYmI3Y2QyM2QyNjY4Mjg4NjhjMzQ0ODRmZGM5
ZmEyNWNiLi5hM2NlOTdhODA4YmZjOGRkZjhkZTRhNzk5YmQ0Y2Y3MWRlZjkzMTVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC02NjYsNiArNjY2LDcgQEAgdm9pZCB0ZXN0SVRvRDMy
SW1tKGludDMyX3QgdmFsdWUpOwogdm9pZCB0ZXN0SVRvRjMySW1tKGludDMyX3QgdmFsdWUpOwog
dm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygpOwogdm9pZCB0ZXN0SVRvRFJlZHVjZWRU
b0lUb0YzMkFyZygpOwordm9pZCB0ZXN0U3RvcmVaZXJvKCk7CiB2b2lkIHRlc3RTdG9yZTMyKGlu
dCB2YWx1ZSk7CiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSk7CiB2b2lkIHRlc3RT
dG9yZUNvbnN0YW50UHRyKGludHB0cl90IHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzXzEuY3BwCmluZGV4IDJiZTg4MzI4NjFmZDBkNWE2NTAzMzI5ZDNhM2U3YjljZGYzYjdiMDEu
LmZjYTBiNTlkZDYyMmU0MTFiOWY1MGJkMmU2MDIxNjY2NTkxYTJhMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiM18xLmNwcApAQCAtMzM4LDYgKzMzOCw3IEBAIHZvaWQgcnVuKGNvbnN0
IGNoYXIqIGZpbHRlcikKICAgICBSVU5fVU5BUlkodGVzdENoZWNrQWRkUmVtb3ZlQ2hlY2tXaXRo
U0V4dDMyLCBpbnQzMk9wZXJhbmRzKCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0Q2hlY2tBZGRSZW1v
dmVDaGVja1dpdGhaRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAKKyAgICBSVU4odGVzdFN0b3Jl
WmVybygpKTsKICAgICBSVU4odGVzdFN0b3JlMzIoNDQpKTsKICAgICBSVU4odGVzdFN0b3JlQ29u
c3RhbnQoNDkpKTsKICAgICBSVU4odGVzdFN0b3JlQ29uc3RhbnRQdHIoNDkpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwCmluZGV4IDg4MDQ1ZjE1ZGNlYTRmMDJkMWQxMWI5MmEw
MjNiNGZiN2UwMWI2MGUuLjVlMjZhOWRkZGI0NDljYWFkNDYyNjhlY2YyYTY5YmJkNmNlMTU1ZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcApAQCAtODc0LDE5ICs4NzQsNiBA
QCB2b2lkIHRlc3RNdWxBcmdOZWdBcmcoaW50IGEsIGludCBiKQogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50Pihwcm9jLCBhLCBiKSA9PSBhICogKC1iKSk7CiB9CiAKLXZvaWQgdGVzdE11bE5l
Z0FyZ0FyZyhpbnQgYSwgaW50IGIpCi17Ci0gICAgUHJvY2VkdXJlIHByb2M7Ci0gICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBWYWx1ZSogYXJnQSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICBWYWx1ZSogYXJnQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICBWYWx1ZSog
bmVnQSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTmVnLCBPcmlnaW4oKSwgYXJnQSk7
Ci0gICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBP
cmlnaW4oKSwgbmVnQSwgYXJnQik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwotCi0gICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MsIGEsIGIpID09ICgtYSkgKiBiKTsKLX0KLQogdm9pZCB0ZXN0TXVsQXJnSW1tKGludDY0
X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTMxNyw4ICsxMzA0
LDMwIEBAIHZvaWQgdGVzdE11bFN1YlNpZ25FeHRlbmQzMkFyZ3MoKQogICAgIH0KIH0KIAordm9p
ZCB0ZXN0TXVsTmVnQXJnQXJnKGludCBhLCBpbnQgYikKK3sKKyAgICBpZiAoSlNDOjpPcHRpb25z
OjpkZWZhdWx0QjNPcHRMZXZlbCgpIDwgMikKKyAgICAgICAgcmV0dXJuOworCisgICAgUHJvY2Vk
dXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBW
YWx1ZSogYXJnQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBWYWx1ZSogYXJnQiA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKTsKKyAgICBWYWx1ZSogbmVnQSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
TmVnLCBPcmlnaW4oKSwgYXJnQSk7CisgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgbmVnQSwgYXJnQik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworCisgICAgYXV0
byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAg
Y2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJtbmVnIik7CisgICAgQ0hFQ0soaW52b2tlPGlu
dDMyX3Q+KCpjb2RlLCBhLCBiKSA9PSAoLWEpICogYik7Cit9CisKIHZvaWQgdGVzdE11bE5lZ0Fy
Z3MoKQogeworICAgIGlmIChKU0M6Ok9wdGlvbnM6OmRlZmF1bHRCM09wdExldmVsKCkgPCAyKQor
ICAgICAgICByZXR1cm47CisKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogCkBAIC0xMzMwLDYgKzEzMzksOCBAQCB2b2lkIHRlc3RN
dWxOZWdBcmdzKCkKICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7
CisgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAgY2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUs
ICJtbmVnIik7CiAKICAgICBhdXRvIHRlc3RWYWx1ZXMgPSBpbnQ2NE9wZXJhbmRzKCk7CiAgICAg
Zm9yIChhdXRvIGEgOiB0ZXN0VmFsdWVzKSB7CkBAIC0xMzQxLDYgKzEzNTIsOSBAQCB2b2lkIHRl
c3RNdWxOZWdBcmdzKCkKIAogdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCkKIHsKKyAgICBpZiAoSlND
OjpPcHRpb25zOjpkZWZhdWx0QjNPcHRMZXZlbCgpIDwgMikKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKIApAQCAtMTM1NCw2ICsxMzY4LDggQEAgdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCkKICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgaWYgKGlzQVJNNjQo
KSkKKyAgICAgICAgY2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJtbmVnIik7CiAKICAgICBh
dXRvIHRlc3RWYWx1ZXMgPSBpbnQzMk9wZXJhbmRzKCk7CiAgICAgZm9yIChhdXRvIGEgOiB0ZXN0
VmFsdWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAppbmRleCA3MmIwOGQx
NmFhNzI5Y2RiODM0NmZkMmZhYWZjYWQ5ZTAwMzlkNmViLi5lMGU2NWZlNTVhYjZjNWFhYzYzMDRj
YWViOGNiYTQyMmU3YjU1M2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzXzMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAK
QEAgLTI5MDYsNiArMjkwNiw4MyBAQCB2b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSkKICAgICBD
SEVDSyhzbG90ID09IHZhbHVlKTsKIH0KIAordm9pZCB0ZXN0U3RvcmVaZXJvKCkKK3sKKyAgICAv
LyBEaXJlY3QgYWRkcmVzc2luZworICAgIHsKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJh
YWRiZWVmOworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IHZhbHVlLAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAmc2xvdDMyKSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgICAgIGludm9rZTxpbnQ+KCpjb2RlKTsKKyAgICAg
ICAgQ0hFQ0tfRVEoc2xvdDMyLCAwKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGludDY0X3Qg
c2xvdDY0ID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgU3Rv
cmUsIE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0
clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3Q2NCksIDApOworICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAg
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBpbnZva2U8aW50Pigq
Y29kZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Q2NCwgMCk7CisgICAgfQorCisgICAgLy8gSW5k
ZXhlZCBhZGRyZXNzaW5nCisgICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFs
dWUgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7Cisg
ICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSogb2Zm
c2V0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAgICAg
ICBWYWx1ZSogYmFzZURpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgZGlzcGxhY2VtZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNw
bGFjZW1lbnQsIG9mZnNldCk7CisKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsK
KworICAgICAgICBpbnQzMl90IHNsb3QzMiA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgJnNsb3QzMiwgMSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Qz
MiwgMCk7CisgICAgfQorCisgICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFs
dWUgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7Cisg
ICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSogb2Zm
c2V0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAgICAg
ICBWYWx1ZSogYmFzZURpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgZGlzcGxhY2VtZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNw
bGFjZW1lbnQsIG9mZnNldCk7CisKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsK
KworICAgICAgICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgJnNsb3Q2NCwgMSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Q2
NCwgMCk7CisgICAgfQorfQorCiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433227</attachid>
            <date>2021-07-09 11:07:45 -0700</date>
            <delta_ts>2021-07-11 17:05:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210709130744.patch</filename>
            <type>text/plain</type>
            <size>16896</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
M2U2MmU3ZWZlZTBiZjJiMTUwZjhhODM1NjAyZmY4OTIxMDUxY2FlLi4yZmJiNjU4YjQyNjg1NzU4
OTM1ZWFiZWMzMDRkMDE0MjhkODA4NTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAyMS0wNy0wOSAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgSW1tWmVybyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgbmV3IG9wZXJhbmQgSW1tWmVybyB0byBBaXI6OkFyZy4gU28gaXQgY2FuIGJl
IHJlY29nbml6ZWQgYXMgdGhlIHplcm8gcmVnaXN0ZXJzIGluIEFSTTY0IAorICAgICAgICBBaXIg
b3Bjb2RlLiBJbiB0aGlzIGNhc2UsIHRoZSBuZXcgb3ZlcmxvYWRzIG9mIHRoZSBpbnN0cnVjdGlv
bnMgYWNjZXB0aW5nIHplcm8gcmVnaXN0ZXJzIGNhbiAKKyAgICAgICAgYmUgdXRpbGl6ZWQgaW4g
dGhlIGluc3RydWN0aW9uIHNlbGVjdGlvbi4KKworICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5j
cHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OkFyZzo6anNIYXNoIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjpkdW1wIGNv
bnN0KToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogYjMvYWlyL0Fp
ckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmltbVplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6QWlyOjpBcmc6OmlzSW1tWmVybyBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpB
aXI6OkFyZzo6aXNHUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNGUCBj
b25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZvcm0gY29uc3QpOgor
ICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKyAgICAgICAgKiBiMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBiMy90ZXN0YjMuaDoKKyAgICAgICAgKiBiMy90
ZXN0YjNfMS5jcHA6CisgICAgICAgIChydW4pOgorICAgICAgICAqIGIzL3Rlc3RiM18yLmNwcDoK
KyAgICAgICAgKHRlc3RNdWxOZWdBcmdBcmcpOgorICAgICAgICAodGVzdE11bE5lZ0FyZ3MpOgor
ICAgICAgICAodGVzdE11bE5lZ0FyZ3MzMik6CisgICAgICAgICogYjMvdGVzdGIzXzMuY3BwOgor
ICAgICAgICAodGVzdFN0b3JlWmVybyk6CisKIDIwMjEtMDctMDggIFlpamlhIEh1YW5nICA8eWlq
aWFfaHVhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBBaXIgb3Bjb2RlIGFkZC9zdWItYW5k
LXNoaWZ0IGZvciBBUk02NCBhbmQgc2VsZWN0IHRoaXMgaW5zdHJ1Y3Rpb24gaW4gQWlyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IDJiNTU2ZDcxODMzMzcy
MGJmYTc4NzNjNzc5YmQyOTFmZDEyNjE3OTEuLmZkMzEwOGUxZDhkN2ZhY2Y4YWJhMjlhMGJhNWE1
MjJlM2ZjMjViOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2Vy
VG9BaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3Bw
CkBAIC03MDIsNiArNzAyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBBcmcoKTsKICAg
ICB9CiAKKyAgICBBcmcgaW1tWmVybygpCisgICAgeworICAgICAgICByZXR1cm4gQXJnOjppbW1a
ZXJvKCk7CisgICAgfQorCiAgICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2YWx1ZSkKICAgICB7CiAg
ICAgICAgIGlmIChBcmcgcmVzdWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEwOTksMTIgKzExMDQsMTIg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIEFpcjo6TW92ZTMyOgotICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmVaZXJvMzIsIGRlc3Qua2luZCgpKSAmJiBkZXN0
LmlzVmFsaWRGb3JtKFdpZHRoMzIpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElu
c3QoU3RvcmVaZXJvMzIsIG1fdmFsdWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAo
aXNWYWxpZEZvcm0oU3RvcmUzMiwgQXJnOjpJbW1aZXJvLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5p
c1ZhbGlkRm9ybShXaWR0aDMyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0
KFN0b3JlMzIsIG1fdmFsdWUsIGltbVplcm8oKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQWlyOjpNb3ZlOgotICAgICAgICAgICAgICAg
ICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmVaZXJvNjQsIGRlc3Qua2luZCgpKSAmJiBkZXN0Lmlz
VmFsaWRGb3JtKFdpZHRoNjQpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3Qo
U3RvcmVaZXJvNjQsIG1fdmFsdWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNW
YWxpZEZvcm0oU3RvcmU2NCwgQXJnOjpJbW1aZXJvLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1Zh
bGlkRm9ybShXaWR0aDY0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0
b3JlNjQsIG1fdmFsdWUsIGltbVplcm8oKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyQXJnLmNwcAppbmRleCA2Nzg2OTllZmRkNWJjZGVkM2NiZTRhMjY5ZWQyYzJm
N2M0OGEyYTMxLi4yN2YyMDkyMDgzMDU4ZjFkMDM0ZWIyNzM1Y2E1NDYxZTBjY2YzNzViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCkBAIC0xMDgsNiArMTA4LDcgQEAg
dW5zaWduZWQgQXJnOjpqc0hhc2goKSBjb25zdAogICAgIGNhc2UgRG91YmxlQ29uZDoKICAgICBj
YXNlIFN0YXR1c0NvbmQ6CiAgICAgY2FzZSBXaWR0aEFyZzoKKyAgICBjYXNlIEltbVplcm86CiAg
ICAgICAgIHJlc3VsdCArPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9vZmZzZXQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEJpZ0ltbToKQEAgLTE1OSw2ICsxNjAsOSBAQCB2b2lkIEFyZzo6
ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIGNhc2UgQml0SW1tNjQ6CiAgICAgICAg
IG91dC5wcmludGYoIiQweCVsbHgiLCBzdGF0aWNfY2FzdDxsb25nIGxvbmcgdW5zaWduZWQ+KG1f
b2Zmc2V0KSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEltbVplcm86CisgICAgICAgIG91
dC5wcmludGYoIiVjeHpyIiwgJyUnKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU2ltcGxl
QWRkcjoKICAgICAgICAgb3V0LnByaW50KCIoIiwgYmFzZSgpLCAiKSIpOwogICAgICAgICByZXR1
cm47CkBAIC0yMzYsNiArMjQwLDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBv
dXQsIEFyZzo6S2luZCBraW5kKQogICAgIGNhc2UgQXJnOjpCaXRJbW02NDoKICAgICAgICAgb3V0
LnByaW50KCJCaXRJbW02NCIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBBcmc6OkltbVpl
cm86CisgICAgICAgIG91dC5wcmludCgiSW1tWmVybyIpOworICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBBcmc6OlNpbXBsZUFkZHI6CiAgICAgICAgIG91dC5wcmludCgiU2ltcGxlQWRkciIpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckFyZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAppbmRleCA4
NzIwNGU2N2M3Nzc1M2I0MTY1MmY3Mzk0ZjBjMzQ2NzNkY2IzOWI0Li4yMGY3ZWU5NTBmY2NiMTEz
ZmVjZWM3MGI4ZDRlYTQ4NTI3MjMxZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckFyZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
QXJnLmgKQEAgLTg1LDcgKzg1LDEwIEBAIHB1YmxpYzoKICAgICAgICAgRG91YmxlQ29uZCwKICAg
ICAgICAgU3RhdHVzQ29uZCwKICAgICAgICAgU3BlY2lhbCwKLSAgICAgICAgV2lkdGhBcmcKKyAg
ICAgICAgV2lkdGhBcmcsCisKKyAgICAgICAgLy8gSW1tWmVybyBpcyByZWNvZ25pemVkIGFzIGEg
emVybyByZWdpc3RlciBmb3IgQVJNNjQKKyAgICAgICAgSW1tWmVybwogICAgIH07CiAgICAgCiAg
ICAgZW51bSBUZW1wZXJhdHVyZSA6IGludDhfdCB7CkBAIC02OTMsNiArNjk2LDE0IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKKyAgICBzdGF0aWMgQXJnIGltbVpl
cm8oKQorICAgIHsKKyAgICAgICAgQXJnIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fa2luZCA9
IEltbVplcm87CisgICAgICAgIHJlc3VsdC5tX29mZnNldCA9IDA7CisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgfQorCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEFyZyYgb3RoZXIpIGNv
bnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9vZmZzZXQgPT0gb3RoZXIubV9vZmZzZXQKQEAg
LTg1MCw2ICs4NjEsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4ga2luZCgpID09IFdpZHRo
QXJnOwogICAgIH0KIAorICAgIGJvb2wgaXNJbW1aZXJvKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBraW5kKCkgPT0gSW1tWmVybzsKKyAgICB9CisKICAgICBib29sIGlzQWxpdmUoKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIGlzVG1wKCkgfHwgaXNTdGFjaygpOwpAQCAtMTAz
NCw2ICsxMDUwLDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIFN0YXR1c0NvbmQ6CiAgICAgICAg
IGNhc2UgU3BlY2lhbDoKICAgICAgICAgY2FzZSBXaWR0aEFyZzoKKyAgICAgICAgY2FzZSBJbW1a
ZXJvOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgVG1wOgogICAgICAg
ICAgICAgcmV0dXJuIGlzR1BUbXAoKTsKQEAgLTEwNTcsNiArMTA3NCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgY2FzZSBTcGVjaWFsOgogICAgICAgICBjYXNlIFdpZHRoQXJnOgogICAgICAgICBjYXNl
IEludmFsaWQ6CisgICAgICAgIGNhc2UgSW1tWmVybzoKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgY2FzZSBTaW1wbGVBZGRyOgogICAgICAgICBjYXNlIEFkZHI6CkBAIC0xMjUx
LDYgKzEyNjksNyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgU3RhdHVzQ29uZDoKICAgICAgICAg
Y2FzZSBTcGVjaWFsOgogICAgICAgICBjYXNlIFdpZHRoQXJnOgorICAgICAgICBjYXNlIEltbVpl
cm86CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTEzNzksNyArMTM5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNT
RVJUKGlzU3RhdHVzQ29uZCgpKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE1hY3JvQXNz
ZW1ibGVyOjpTdGF0dXNDb25kaXRpb24+KG1fb2Zmc2V0KTsKICAgICB9Ci0gICAgCisKICAgICAv
LyBUZWxscyB5b3UgaWYgdGhlIEFyZyBpcyBpbnZlcnRpYmxlLiBPbmx5IGNvbmRpdGlvbiBhcmd1
bWVudHMgYXJlIGludmVydGlibGUsIGFuZCBldmVuIGZvciB0aG9zZSwgdGhlcmUKICAgICAvLyBh
cmUgYSBmZXcgZXhjZXB0aW9ucyAtIG5vdGFibHkgT3ZlcmZsb3cgYW5kIFNpZ25lZC4KICAgICBi
b29sIGlzSW52ZXJ0aWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJPcGNvZGUub3Bjb2RlcwppbmRleCAwNWRjM2E5ZmVjNDY5Njg0MDMxZDg4ZDczZWMzN2Nj
MDU4YmUxZjU3Li41NmZhMjUxMmYzYTQzYTA5ZTM1ODc4NDQ5Y2MxM2ZkN2VhYjdmYmU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKQEAgLTY3
Miw2ICs2NzIsMTQgQEAgU3RvcmVaZXJvMzIgRDpHOjMyCiAgICAgQWRkcgogICAgIEluZGV4CiAK
K2FybTY0OiBTdG9yZTMyIFU6RzozMiwgRDpHOjMyCisgICAgSW1tWmVybywgQWRkcgorICAgIElt
bVplcm8sIEluZGV4CisKK2FybTY0OiBTdG9yZTY0IFU6Rzo2NCwgRDpHOjY0CisgICAgSW1tWmVy
bywgQWRkcgorICAgIEltbVplcm8sIEluZGV4CisKIFNpZ25FeHRlbmQzMlRvUHRyIFU6RzozMiwg
RDpHOlB0cgogICAgIFRtcCwgVG1wCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvb3Bjb2RlX2dlbmVyYXRvci5yYgppbmRleCA2YzYxZWNlODU3NmI4ZTMxOWM1ZjU4MjE4NGQx
NzMyNzk4MzY0MDJiLi4wMmQ4YmU4MDNkZThmODc4ZTFlYjI3ZTYwYjAyZjMxY2QyOGYxZWE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3Iu
cmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJi
CkBAIC0yMjksNyArMjI5LDcgQEAgZGVmIGlzR0YodG9rZW4pCiBlbmQKIAogZGVmIGlzS2luZCh0
b2tlbikKLSAgICB0b2tlbiA9fiAvXEEoKFRtcCl8KEltbSl8KEJpZ0ltbSl8KEJpdEltbSl8KEJp
dEltbTY0KXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIpfChJbmRleCl8
KFJlbENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxaLworICAgIHRv
a2VuID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1tNjQpfChJbW1a
ZXJvKXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIpfChJbmRleCl8KFJl
bENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxaLwogZW5kCiAKIGRl
ZiBpc0FyY2godG9rZW4pCkBAIC0zMDMsNyArMzAzLDcgQEAgY2xhc3MgUGFyc2VyCiAKICAgICBk
ZWYgY29uc3VtZUtpbmQKICAgICAgICAgcmVzdWx0ID0gdG9rZW4uc3RyaW5nCi0gICAgICAgIHBh
cnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJbW0sIEJpdEltbTY0LCBU
bXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4dGVuZGVkT2Zmc2V0QWRkciwgSW5kZXgsIFJlbENvbmQs
IFJlc0NvbmQsIERvdWJsZUNvbmQsIG9yIFN0YXR1c0NvbmQpIikgdW5sZXNzIGlzS2luZChyZXN1
bHQpCisgICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJ
bW0sIEJpdEltbTY0LCBJbW1aZXJvLCBUbXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4dGVuZGVkT2Zm
c2V0QWRkciwgSW5kZXgsIFJlbENvbmQsIFJlc0NvbmQsIERvdWJsZUNvbmQsIG9yIFN0YXR1c0Nv
bmQpIikgdW5sZXNzIGlzS2luZChyZXN1bHQpCiAgICAgICAgIGFkdmFuY2UKICAgICAgICAgcmVz
dWx0CiAgICAgZW5kCkBAIC00NzUsNiArNDc1LDE0IEBAIGNsYXNzIFBhcnNlcgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiRm9ybSBoYXMgYW4gaW1tZWRp
YXRlIGZvciBhIG5vbi1nZW5lcmFsLXB1cnBvc2UgYXJndW1lbnQiKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBraW5kLm5hbWUgPT0gIkltbVplcm8iCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNpZ25hdHVyZVtpbmRleF0ucm9sZSAhPSAi
VSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IoIlplcm8g
aW1tZWRpYXRlIG11c3QgYmUgYSB1c2UgYXJndW1lbnQiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2lnbmF0
dXJlW2luZGV4XS5iYW5rICE9ICJHIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyc2VFcnJvcigiWmVybyBpbW1lZGlhdGUgbXVzdCBiZSBhIGdlbmVyYWwtcHVycG9zZSBh
cmd1bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICAgZm9ybXMgPDwgRm9ybS5uZXcoa2luZHMsIGFsdE5hbWUsIGludGVy
c2VjdEFyY2hzKG9wY29kZUFyY2hzLCBmb3JtQXJjaHMpKQogCkBAIC05MjYsNiArOTM0LDcgQEAg
d3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAgd2hlbiAiUmVzQ29u
ZCIKICAgICAgICAgICAgICAgICB3aGVuICJEb3VibGVDb25kIgogICAgICAgICAgICAgICAgIHdo
ZW4gIlN0YXR1c0NvbmQiCisgICAgICAgICAgICAgICAgd2hlbiAiSW1tWmVybyIKICAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVkIGtpbmQ6
ICN7a2luZC5uYW1lfSIKICAgICAgICAgICAgICAgICBlbmQKQEAgLTEyMjAsNiArMTIyOSw4IEBA
IHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgICAgICAgICAgICAgICAgICBvdXRwLnBy
aW50ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW0zMigpIgogICAgICAgICAgICAgICAgIHdo
ZW4gIkJpZ0ltbSIsICJCaXRJbW02NCIKICAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmludCAi
YXJnc1sje2luZGV4fV0uYXNUcnVzdGVkSW1tNjQoKSIKKyAgICAgICAgICAgICAgICB3aGVuICJJ
bW1aZXJvIgorICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJKU0M6OkFSTTY0UmVnaXN0
ZXJzOjp6ciIKICAgICAgICAgICAgICAgICB3aGVuICJTaW1wbGVBZGRyIiwgIkFkZHIiLCAiRXh0
ZW5kZWRPZmZzZXRBZGRyIgogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7
aW5kZXh9XS5hc0FkZHJlc3MoKSIKICAgICAgICAgICAgICAgICB3aGVuICJJbmRleCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjMuaAppbmRleCA5YzdkMjk5OGUyYTg5MGY1ZWRlNzBlYjZiOWUwZjk5
MTk0N2ZhMTFmLi4yMGYwYTNkNTk3NzVjYTVlZTc1MmI1N2IzNzZhYWFmMmQyNGU3ZGNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC02ODEsNiArNjgxLDcgQEAgdm9pZCB0ZXN0SVRv
RDMySW1tKGludDMyX3QgdmFsdWUpOwogdm9pZCB0ZXN0SVRvRjMySW1tKGludDMyX3QgdmFsdWUp
Owogdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygpOwogdm9pZCB0ZXN0SVRvRFJlZHVj
ZWRUb0lUb0YzMkFyZygpOwordm9pZCB0ZXN0U3RvcmVaZXJvKCk7CiB2b2lkIHRlc3RTdG9yZTMy
KGludCB2YWx1ZSk7CiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSk7CiB2b2lkIHRl
c3RTdG9yZUNvbnN0YW50UHRyKGludHB0cl90IHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzXzEuY3BwCmluZGV4IDJiZTg4MzI4NjFmZDBkNWE2NTAzMzI5ZDNhM2U3YjljZGYzYjdi
MDEuLmZjYTBiNTlkZDYyMmU0MTFiOWY1MGJkMmU2MDIxNjY2NTkxYTJhMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcApAQCAtMzM4LDYgKzMzOCw3IEBAIHZvaWQgcnVuKGNv
bnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU5fVU5BUlkodGVzdENoZWNrQWRkUmVtb3ZlQ2hlY2tX
aXRoU0V4dDMyLCBpbnQzMk9wZXJhbmRzKCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0Q2hlY2tBZGRS
ZW1vdmVDaGVja1dpdGhaRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAKKyAgICBSVU4odGVzdFN0
b3JlWmVybygpKTsKICAgICBSVU4odGVzdFN0b3JlMzIoNDQpKTsKICAgICBSVU4odGVzdFN0b3Jl
Q29uc3RhbnQoNDkpKTsKICAgICBSVU4odGVzdFN0b3JlQ29uc3RhbnRQdHIoNDkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwCmluZGV4IDhmNjBmY2M0YTRhMmVmMzU0MmU2NzQx
YzI1MGFlOWY5OGRiNmRhYjYuLmJmMjlhM2NkMmQ1ZmFjNzg5Y2U1NTllZjkyNWVlOTEwODhkYTg5
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcApAQCAtODc0LDE5ICs4NzQs
NiBAQCB2b2lkIHRlc3RNdWxBcmdOZWdBcmcoaW50IGEsIGludCBiKQogICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48aW50Pihwcm9jLCBhLCBiKSA9PSBhICogKC1iKSk7CiB9CiAKLXZvaWQgdGVzdE11
bE5lZ0FyZ0FyZyhpbnQgYSwgaW50IGIpCi17Ci0gICAgUHJvY2VkdXJlIHByb2M7Ci0gICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBWYWx1ZSogYXJnQSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKLSAgICBWYWx1ZSogYXJnQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICBWYWx1
ZSogbmVnQSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTmVnLCBPcmlnaW4oKSwgYXJn
QSk7Ci0gICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVs
LCBPcmlnaW4oKSwgbmVnQSwgYXJnQik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwotCi0gICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ+KHByb2MsIGEsIGIpID09ICgtYSkgKiBiKTsKLX0KLQogdm9pZCB0ZXN0TXVsQXJnSW1tKGlu
dDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTMxNyw4ICsx
MzA0LDMwIEBAIHZvaWQgdGVzdE11bFN1YlNpZ25FeHRlbmQzMkFyZ3MoKQogICAgIH0KIH0KIAor
dm9pZCB0ZXN0TXVsTmVnQXJnQXJnKGludCBhLCBpbnQgYikKK3sKKyAgICBpZiAoSlNDOjpPcHRp
b25zOjpkZWZhdWx0QjNPcHRMZXZlbCgpIDwgMikKKyAgICAgICAgcmV0dXJuOworCisgICAgUHJv
Y2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAg
ICBWYWx1ZSogYXJnQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBWYWx1ZSogYXJnQiA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKTsKKyAgICBWYWx1ZSogbmVnQSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTmVnLCBPcmlnaW4oKSwgYXJnQSk7CisgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgbmVnQSwgYXJnQik7CisgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworCisgICAg
YXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAg
ICAgY2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJtbmVnIik7CisgICAgQ0hFQ0soaW52b2tl
PGludDMyX3Q+KCpjb2RlLCBhLCBiKSA9PSAoLWEpICogYik7Cit9CisKIHZvaWQgdGVzdE11bE5l
Z0FyZ3MoKQogeworICAgIGlmIChKU0M6Ok9wdGlvbnM6OmRlZmF1bHRCM09wdExldmVsKCkgPCAy
KQorICAgICAgICByZXR1cm47CisKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCkBAIC0xMzMwLDYgKzEzMzksOCBAQCB2b2lkIHRl
c3RNdWxOZWdBcmdzKCkKICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJv
Yyk7CisgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAgY2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNv
ZGUsICJtbmVnIik7CiAKICAgICBhdXRvIHRlc3RWYWx1ZXMgPSBpbnQ2NE9wZXJhbmRzKCk7CiAg
ICAgZm9yIChhdXRvIGEgOiB0ZXN0VmFsdWVzKSB7CkBAIC0xMzQxLDYgKzEzNTIsOSBAQCB2b2lk
IHRlc3RNdWxOZWdBcmdzKCkKIAogdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCkKIHsKKyAgICBpZiAo
SlNDOjpPcHRpb25zOjpkZWZhdWx0QjNPcHRMZXZlbCgpIDwgMikKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKIApAQCAtMTM1NCw2ICsxMzY4LDggQEAgdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCkKICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRk
ZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgaWYgKGlzQVJN
NjQoKSkKKyAgICAgICAgY2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJtbmVnIik7CiAKICAg
ICBhdXRvIHRlc3RWYWx1ZXMgPSBpbnQzMk9wZXJhbmRzKCk7CiAgICAgZm9yIChhdXRvIGEgOiB0
ZXN0VmFsdWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
XzMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAppbmRleCA3MmIw
OGQxNmFhNzI5Y2RiODM0NmZkMmZhYWZjYWQ5ZTAwMzlkNmViLi5lMGU2NWZlNTVhYjZjNWFhYzYz
MDRjYWViOGNiYTQyMmU3YjU1M2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzXzMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5j
cHAKQEAgLTI5MDYsNiArMjkwNiw4MyBAQCB2b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSkKICAg
ICBDSEVDSyhzbG90ID09IHZhbHVlKTsKIH0KIAordm9pZCB0ZXN0U3RvcmVaZXJvKCkKK3sKKyAg
ICAvLyBEaXJlY3QgYWRkcmVzc2luZworICAgIHsKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAw
eGJhYWRiZWVmOworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2lu
KCksIHZhbHVlLAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAmc2xvdDMyKSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgYXV0byBj
b2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgICAgIGludm9rZTxpbnQ+KCpjb2RlKTsKKyAg
ICAgICAgQ0hFQ0tfRVEoc2xvdDMyLCAwKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGludDY0
X3Qgc2xvdDY0ID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwor
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywg
U3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3Q2NCksIDApOworICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisg
ICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBpbnZva2U8aW50
PigqY29kZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Q2NCwgMCk7CisgICAgfQorCisgICAgLy8g
SW5kZXhlZCBhZGRyZXNzaW5nCisgICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSog
dmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7
CisgICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSog
b2Zmc2V0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAg
ICAgICBWYWx1ZSogYmFzZURpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgZGlzcGxhY2VtZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VE
aXNwbGFjZW1lbnQsIG9mZnNldCk7CisKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVl
KTsKKworICAgICAgICBpbnQzMl90IHNsb3QzMiA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgJnNsb3QzMiwgMSk7CisgICAgICAgIENIRUNLX0VRKHNs
b3QzMiwgMCk7CisgICAgfQorCisgICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSog
dmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7
CisgICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSog
b2Zmc2V0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAg
ICAgICBWYWx1ZSogYmFzZURpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgZGlzcGxhY2VtZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VE
aXNwbGFjZW1lbnQsIG9mZnNldCk7CisKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVl
KTsKKworICAgICAgICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBp
bGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnNsb3Q2NCwgMSk7CisgICAgICAgIENIRUNLX0VRKHNs
b3Q2NCwgMCk7CisgICAgfQorfQorCiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433294</attachid>
            <date>2021-07-11 17:05:55 -0700</date>
            <delta_ts>2021-07-11 19:00:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210711190554.patch</filename>
            <type>text/plain</type>
            <size>19691</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
Zjk2NzYxZTk2ZTViNTEyOWEzMTg1ZjQ0NjkxYjY2Y2NiYjE4Mjc0Li43ZjZjNjIxODc4Y2Q4ZTBm
ZDRmZTA5YzdlNTE0M2E0ZThiMWFjZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMS0wNy0xMSAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgSW1tWmVybyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVplcm82NCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlWmVybzMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAq
IGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVaZXJvMzIpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlclg4Nl82NDo6c3RvcmVaZXJvNjQpOiBEZWxldGVkLgorICAgICAgICAqIGIzL0Iz
TG93ZXJUb0Fpci5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChK
U0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAg
ICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9JbW0p
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzWmVyb0ltbSBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZv
cm0gY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmFzWmVyb0ltbSBjb25zdCk6
CisgICAgICAgICogYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcDoKKyAgICAgICAgKEpTQzo6
QjM6OkFpcjo6bG93ZXJTdGFja0FyZ3MpOgorICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bj
b2RlczoKKyAgICAgICAgKiBiMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBi
My90ZXN0YjMuaDoKKyAgICAgICAgKiBiMy90ZXN0YjNfMS5jcHA6CisgICAgICAgIChydW4pOgor
ICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoKKyAgICAgICAgKHRlc3RTdG9yZVplcm9JbW0pOgor
CiAyMDIxLTA3LTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAg
IENvbnRpbnVlIHRvIGNvbnN1bHQgSW5saW5lQWNjZXNzJ3MgU3RydWN0dXJlIGV2ZW4gYWZ0ZXIg
c3dpdGNoaW5nIHRvIGEgc3R1YiBJQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCBkZjY1Y2I2MzYxZjRhYjA1YTA1
NTBlMzBlMzRhODU3NzlhZWRhZjdmLi5hNmFlYTI0MzI2MmViMWYzNzkxOTczMmQwZjZiYmNjNTMw
NTE1Nzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtMTcxMSwxNiArMTcxMSw2IEBAIHB1YmxpYzoKICAgICAg
ICAgbV9hc3NlbWJsZXIuc3RyPDY0PihzcmMsIGRlc3QsIHNpbW0pOwogICAgIH0KICAgICAKLSAg
ICB2b2lkIHN0b3JlWmVybzY0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAg
ICAgc3RvcmU2NChBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwotICAgIH0KLSAgICAKLSAg
ICB2b2lkIHN0b3JlWmVybzY0KEJhc2VJbmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3Rv
cmU2NChBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwotICAgIH0KLSAgICAKICAgICBEYXRh
TGFiZWwzMiBzdG9yZTY0V2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRk
cmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBA
IC0xODE4LDE2ICsxODA4LDYgQEAgcHVibGljOgogICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVn
aXN0ZXIsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVaZXJvMzIoSW1wbGljaXRB
ZGRyZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTMyKEFSTTY0UmVnaXN0ZXJzOjp6
ciwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8zMihCYXNlSW5kZXggYWRk
cmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMzIoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNz
KTsKLSAgICB9Ci0KICAgICBEYXRhTGFiZWwzMiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRj
aChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxh
YmVsMzIgbGFiZWwodGhpcyk7CkBAIC0xODczLDE2ICsxODUzLDYgQEAgcHVibGljOgogICAgICAg
ICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQg
c3RvcmVaZXJvMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9y
ZTE2KEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9y
ZVplcm8xNihCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoQVJNNjRS
ZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0KICAgICB2b2lkIHN0b3JlOChSZWdpc3Rl
cklEIHNyYywgQmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mu
b2Zmc2V0ICYmICFhZGRyZXNzLnNjYWxlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5kZXggYTI2NTUz
YTViY2UwZmNmN2JmMDgwNzJmNTk4MmM5YjUwNzYyMGFlZi4uNTRkNDU2N2Q0YzFjNDVkZmUwYzMy
OGNhN2JjZGI4NGU5ZWIyZjk3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaApAQCAtMTMzNywyNiArMTMz
Nyw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubW92bF9pMzJtKGltbS5tX3ZhbHVl
LCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNj
YWxlKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlWmVybzMyKEltcGxpY2l0QWRkcmVzcyBhZGRy
ZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwot
ICAgIH0KLQotICAgIHZvaWQgc3RvcmVaZXJvMzIoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewot
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAg
dm9pZCBzdG9yZVplcm8xNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAg
IHN0b3JlMTYoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0
b3JlWmVybzE2KEJhc2VJbmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihUcnVz
dGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQogICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJ
bW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBp
bW04KHN0YXRpY19jYXN0PGludDhfdD4oaW1tLm1fdmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAz
MzQ3MmRkOTMxYTk3YjA5Yjk3ZGM5MmY1MTFlNmMyMmRjYTMyMTIyLi45NDM3ZmQzYmQyYWMxNjY4
MTZmMjhmMzdkYmQ5OTA1MWRmMzdhMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCkBAIC0xMDE1LDE2ICsxMDE1
LDYgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX3JtKHNjcmF0Y2hSZWdpc3Rl
cigpLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNz
LnNjYWxlKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZVplcm82NChJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKDApLCBhZGRy
ZXNzKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzdG9yZVplcm82NChCYXNlSW5kZXggYWRkcmVz
cykKLSAgICB7Ci0gICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAg
ICB9Ci0gICAgCiAgICAgRGF0YUxhYmVsMzIgc3RvcmU2NFdpdGhBZGRyZXNzT2Zmc2V0UGF0Y2go
UmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHBhZEJlZm9y
ZVBhdGNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRv
QWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4
IDJiNTU2ZDcxODMzMzcyMGJmYTc4NzNjNzc5YmQyOTFmZDEyNjE3OTEuLjYzY2I5NjYzOWNkMmUz
MjAwNTYwMjRhNDVkYTA4MGY2YWVmOWMxZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0xvd2VyVG9BaXIuY3BwCkBAIC03MDIsNiArNzAyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybiBBcmcoKTsKICAgICB9CiAKKyAgICBBcmcgemVyb0ltbSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gQXJnOjp6ZXJvSW1tKCk7CisgICAgfQorCiAgICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2
YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChBcmcgcmVzdWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEw
OTksMTIgKzExMDQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIEFpcjo6TW92ZTMy
OgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmVaZXJvMzIsIGRlc3Qu
a2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvMzIsIG1fdmFsdWUsIGRlc3QpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmUzMiwgQXJnOjpaZXJvSW1tLCBkZXN0Lmtp
bmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDMyKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBJbnN0KFN0b3JlMzIsIG1fdmFsdWUsIHplcm9JbW0oKSwgZGVzdCk7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQWlyOjpNb3ZlOgot
ICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmVaZXJvNjQsIGRlc3Qua2lu
ZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvNjQsIG1fdmFsdWUsIGRlc3QpOworICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmU2NCwgQXJnOjpaZXJvSW1tLCBkZXN0LmtpbmQo
KSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDY0KSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBJbnN0KFN0b3JlNjQsIG1fdmFsdWUsIHplcm9JbW0oKSwgZGVzdCk7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAppbmRleCA2Nzg2OTllZmRkNWJjZGVk
M2NiZTRhMjY5ZWQyYzJmN2M0OGEyYTMxLi5lNmQwMGQ0ZGNlNjE3NDhkMmYzZTg3ZGIyOTcxNmQy
NzZkMTU2MTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFy
Zy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCkBAIC0x
MDgsNiArMTA4LDcgQEAgdW5zaWduZWQgQXJnOjpqc0hhc2goKSBjb25zdAogICAgIGNhc2UgRG91
YmxlQ29uZDoKICAgICBjYXNlIFN0YXR1c0NvbmQ6CiAgICAgY2FzZSBXaWR0aEFyZzoKKyAgICBj
YXNlIFplcm9JbW06CiAgICAgICAgIHJlc3VsdCArPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9v
ZmZzZXQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJpZ0ltbToKQEAgLTE1OSw2ICsxNjAs
OSBAQCB2b2lkIEFyZzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIGNhc2UgQml0
SW1tNjQ6CiAgICAgICAgIG91dC5wcmludGYoIiQweCVsbHgiLCBzdGF0aWNfY2FzdDxsb25nIGxv
bmcgdW5zaWduZWQ+KG1fb2Zmc2V0KSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFplcm9J
bW06CisgICAgICAgIG91dC5wcmludGYoIiQwIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IFNpbXBsZUFkZHI6CiAgICAgICAgIG91dC5wcmludCgiKCIsIGJhc2UoKSwgIikiKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMjM2LDYgKzI0MCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0
cmVhbSYgb3V0LCBBcmc6OktpbmQga2luZCkKICAgICBjYXNlIEFyZzo6Qml0SW1tNjQ6CiAgICAg
ICAgIG91dC5wcmludCgiQml0SW1tNjQiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQXJn
OjpaZXJvSW1tOgorICAgICAgICBvdXQucHJpbnQoIlplcm9JbW0iKTsKKyAgICAgICAgcmV0dXJu
OwogICAgIGNhc2UgQXJnOjpTaW1wbGVBZGRyOgogICAgICAgICBvdXQucHJpbnQoIlNpbXBsZUFk
ZHIiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJBcmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgK
aW5kZXggODcyMDRlNjdjNzc3NTNiNDE2NTJmNzM5NGYwYzM0NjczZGNiMzliNC4uOTRjOTQwNDQ1
OTQ2NmFkYTJmYzM3NTAwZjU0MzcwMjJlZWQ5N2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckFyZy5oCkBAIC02NCwxMCArNjQsMTIgQEAgcHVibGljOgogICAgICAgICAvLyB1c3Vh
bGx5IG9ubHkgdXNhYmxlIHdpdGggTW92ZS4gU3BlY2lhbHMgbWF5IGFsc28gYWRtaXQgaXQsIGZv
ciBleGFtcGxlIGZvciBzdGFja21hcHMgdXNlZCBmb3IKICAgICAgICAgLy8gT1NSIGV4aXQgYW5k
IHRhaWwgY2FsbHMuCiAgICAgICAgIC8vIEJpdEltbSBpcyBhbiBpbW1lZGlhdGUgZm9yIEJpdHdp
c2Ugb3BlcmF0aW9uIChBbmQsIFhvciwgZXRjKS4KKyAgICAgICAgLy8gWmVyb0ltbSBpcyBpbnRl
cnByZXRlZCBhcyBhIHplcm8gcmVnaXN0ZXIgaW4gQVJNNjQgYW5kIFRydXN0ZWRJbW0zMigwKSBp
biBYODYgYW5kIFg4Nl82NAogICAgICAgICBJbW0sCiAgICAgICAgIEJpZ0ltbSwKICAgICAgICAg
Qml0SW1tLAogICAgICAgICBCaXRJbW02NCwKKyAgICAgICAgWmVyb0ltbSwKIAogICAgICAgICAv
LyBUaGVzZSBhcmUgdGhlIGFkZHJlc3Nlcy4gSW5zdHJ1Y3Rpb25zIG1heSBsb2FkIGZyb20gKFVz
ZSksIHN0b3JlIHRvIChEZWYpLCBvciBldmFsdWF0ZQogICAgICAgICAvLyAoVXNlQWRkcikgYWRk
cmVzc2VzLgpAQCAtODYsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0YXR1c0NvbmQsCiAg
ICAgICAgIFNwZWNpYWwsCiAgICAgICAgIFdpZHRoQXJnCisKICAgICB9OwogICAgIAogICAgIGVu
dW0gVGVtcGVyYXR1cmUgOiBpbnQ4X3QgewpAQCAtNjkzLDYgKzY5NiwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6ZXJvSW1tKCkK
KyAgICB7CisgICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBaZXJv
SW1tOworICAgICAgICByZXN1bHQubV9vZmZzZXQgPSAwOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KKwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBcmcmIG90aGVyKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIG1fb2Zmc2V0ID09IG90aGVyLm1fb2Zmc2V0CkBAIC04NTAs
NiArODYxLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBXaWR0aEFyZzsK
ICAgICB9CiAKKyAgICBib29sIGlzWmVyb0ltbSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4ga2luZCgpID09IFplcm9JbW07CisgICAgfQorCiAgICAgYm9vbCBpc0FsaXZlKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIHJldHVybiBpc1RtcCgpIHx8IGlzU3RhY2soKTsKQEAgLTEwMjIsNiAr
MTAzOCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBCaWdJbW06CiAgICAgICAgIGNhc2UgQml0
SW1tOgogICAgICAgICBjYXNlIEJpdEltbTY0OgorICAgICAgICBjYXNlIFplcm9JbW06CiAgICAg
ICAgIGNhc2UgU2ltcGxlQWRkcjoKICAgICAgICAgY2FzZSBBZGRyOgogICAgICAgICBjYXNlIEV4
dGVuZGVkT2Zmc2V0QWRkcjoKQEAgLTEwNTcsNiArMTA3NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
Y2FzZSBTcGVjaWFsOgogICAgICAgICBjYXNlIFdpZHRoQXJnOgogICAgICAgICBjYXNlIEludmFs
aWQ6CisgICAgICAgIGNhc2UgWmVyb0ltbToKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgY2FzZSBTaW1wbGVBZGRyOgogICAgICAgICBjYXNlIEFkZHI6CkBAIC0xMjUxLDYgKzEy
NjksNyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgU3RhdHVzQ29uZDoKICAgICAgICAgY2FzZSBT
cGVjaWFsOgogICAgICAgICBjYXNlIFdpZHRoQXJnOgorICAgICAgICBjYXNlIFplcm9JbW06CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTEzMzEsNiArMTM1MCwxOCBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAK
KyNpZiBDUFUoQVJNNjQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgYXNaZXJvSW1t
KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBBUk02NFJlZ2lzdGVyczo6enI7CisgICAg
fQorI2VsaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKFg4NikKKyAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyIGFzWmVyb0ltbSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMigwKTsKKyAgICB9CisjZW5kaWYKKwogICAgIE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tUHRyIGFzVHJ1c3RlZEltbVB0cigpIGNvbnN0CiAgICAgewogICAg
ICAgICBpZiAoaXM2NEJpdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJMb3dlclN0YWNrQXJncy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0Fpckxvd2VyU3RhY2tBcmdzLmNwcAppbmRleCA5YzhmNTFlNGUwMjcwMWVlZGJhNGNlNzkyM2Nm
NTU3NGNmYjNkNzdjLi5lZmM2ZmJjMThjN2Y1YWQyMmQwNzZhMjFmNDUyNTNhMDZiMjEyYzg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdz
LmNwcApAQCAtMTU3LDkgKzE1Nyw5IEBAIHZvaWQgbG93ZXJTdGFja0FyZ3MoQ29kZSYgY29kZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzbG90LT5ieXRlU2l6
ZSgpID09IDgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHdp
ZHRoID09IFdpZHRoMzIpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoaXNWYWxpZEZvcm0oU3RvcmVaZXJvMzIsIEFyZzo6U3RhY2spKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChpc1ZhbGlkRm9ybShTdG9yZTMyLCBBcmc6
Olplcm9JbW0sIEFyZzo6U3RhY2spKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNl
cnRpb25TZXQuaW5zZXJ0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0SW5k
ZXggKyAxLCBTdG9yZVplcm8zMiwgaW5zdC5vcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluc3RJbmRleCArIDEsIFN0b3JlMzIsIGluc3Qub3JpZ2luLCBBcmc6Onplcm9J
bW0oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tBZGRyKGFyZy5vZmZz
ZXQoKSArIDQgKyBzbG90LT5vZmZzZXRGcm9tRlAoKSkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gc3RhY2tBZGRyKGFyZy5vZmZzZXQo
KSArIHNsb3QtPm9mZnNldEZyb21GUCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4IDA1ZGMzYTlmZWM0Njk2ODQwMzFkODhkNzNlYzM3
Y2MwNThiZTFmNTcuLjJlNDBkNTIzODE5ZTA1OWY3OGNkYmYyNjI5NDEwZTE4YTViZjY0NGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAt
NjYzLDE0ICs2NjMsMTMgQEAgTW92ZTMyIFU6RzozMiwgWkQ6RzozMgogTW92ZTMyIFU6RzozMiwg
WkQ6RzozMiwgUzpHOjMyCiAgICAgQWRkciwgQWRkciwgVG1wCiAKLSMgRklYTUU6IFN0b3JlWmVy
bzMyIGFuZCBTdG9yZVplcm82NCBhcmUgaGFja3Mgb24gQVJNNjQsIHdlIGNhbiBkbyBiZXR0ZXI6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ4MjEKLVN0b3JlWmVy
bzMyIEQ6RzozMgotICAgIEFkZHIKLSAgICBJbmRleAorU3RvcmUzMiBVOkc6MzIsIFpEOkc6MzIK
KyAgICBaZXJvSW1tLCBBZGRyCisgICAgWmVyb0ltbSwgSW5kZXgKIAotNjQ6IFN0b3JlWmVybzY0
IEQ6Rzo2NAotICAgIEFkZHIKLSAgICBJbmRleAorNjQ6IFN0b3JlNjQgVTpHOjY0LCBEOkc6NjQK
KyAgICBaZXJvSW1tLCBBZGRyCisgICAgWmVyb0ltbSwgSW5kZXgKIAogU2lnbkV4dGVuZDMyVG9Q
dHIgVTpHOjMyLCBEOkc6UHRyCiAgICAgVG1wLCBUbXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgppbmRleCA2YzYxZWNlODU3NmI4ZTMxOWM1
ZjU4MjE4NGQxNzMyNzk4MzY0MDJiLi5iNmIwNGE2ZDJjMWI5NmNjOGExM2QzOTBjMmE3ZDBkODBi
MjdmYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9n
ZW5lcmF0b3IucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2Vu
ZXJhdG9yLnJiCkBAIC0yMjksNyArMjI5LDcgQEAgZGVmIGlzR0YodG9rZW4pCiBlbmQKIAogZGVm
IGlzS2luZCh0b2tlbikKLSAgICB0b2tlbiA9fiAvXEEoKFRtcCl8KEltbSl8KEJpZ0ltbSl8KEJp
dEltbSl8KEJpdEltbTY0KXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIp
fChJbmRleCl8KFJlbENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxa
LworICAgIHRva2VuID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1t
NjQpfChaZXJvSW1tKXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIpfChJ
bmRleCl8KFJlbENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxaLwog
ZW5kCiAKIGRlZiBpc0FyY2godG9rZW4pCkBAIC0zMDMsNyArMzAzLDcgQEAgY2xhc3MgUGFyc2Vy
CiAKICAgICBkZWYgY29uc3VtZUtpbmQKICAgICAgICAgcmVzdWx0ID0gdG9rZW4uc3RyaW5nCi0g
ICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJbW0sIEJp
dEltbTY0LCBUbXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4dGVuZGVkT2Zmc2V0QWRkciwgSW5kZXgs
IFJlbENvbmQsIFJlc0NvbmQsIERvdWJsZUNvbmQsIG9yIFN0YXR1c0NvbmQpIikgdW5sZXNzIGlz
S2luZChyZXN1bHQpCisgICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmln
SW1tLCBCaXRJbW0sIEJpdEltbTY0LCBaZXJvSW1tLCBUbXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4
dGVuZGVkT2Zmc2V0QWRkciwgSW5kZXgsIFJlbENvbmQsIFJlc0NvbmQsIERvdWJsZUNvbmQsIG9y
IFN0YXR1c0NvbmQpIikgdW5sZXNzIGlzS2luZChyZXN1bHQpCiAgICAgICAgIGFkdmFuY2UKICAg
ICAgICAgcmVzdWx0CiAgICAgZW5kCkBAIC00NzUsNiArNDc1LDE0IEBAIGNsYXNzIFBhcnNlcgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiRm9ybSBoYXMg
YW4gaW1tZWRpYXRlIGZvciBhIG5vbi1nZW5lcmFsLXB1cnBvc2UgYXJndW1lbnQiKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBraW5kLm5hbWUgPT0gIlplcm9J
bW0iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNpZ25hdHVyZVtpbmRleF0u
cm9sZSAhPSAiVSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJy
b3IoIlplcm8gaW1tZWRpYXRlIG11c3QgYmUgYSB1c2UgYXJndW1lbnQiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgc2lnbmF0dXJlW2luZGV4XS5iYW5rICE9ICJHIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFyc2VFcnJvcigiWmVybyBpbW1lZGlhdGUgbXVzdCBiZSBhIGdlbmVyYWwt
cHVycG9zZSBhcmd1bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgZm9ybXMgPDwgRm9ybS5uZXcoa2luZHMsIGFsdE5h
bWUsIGludGVyc2VjdEFyY2hzKG9wY29kZUFyY2hzLCBmb3JtQXJjaHMpKQogCkBAIC05MjYsNiAr
OTM0LDcgQEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAgd2hl
biAiUmVzQ29uZCIKICAgICAgICAgICAgICAgICB3aGVuICJEb3VibGVDb25kIgogICAgICAgICAg
ICAgICAgIHdoZW4gIlN0YXR1c0NvbmQiCisgICAgICAgICAgICAgICAgd2hlbiAiWmVyb0ltbSIK
ICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVj
dGVkIGtpbmQ6ICN7a2luZC5uYW1lfSIKICAgICAgICAgICAgICAgICBlbmQKQEAgLTEyMjAsNiAr
MTIyOSw4IEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgICAgICAgICAgICAgICAg
ICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW0zMigpIgogICAgICAgICAg
ICAgICAgIHdoZW4gIkJpZ0ltbSIsICJCaXRJbW02NCIKICAgICAgICAgICAgICAgICAgICAgb3V0
cC5wcmludCAiYXJnc1sje2luZGV4fV0uYXNUcnVzdGVkSW1tNjQoKSIKKyAgICAgICAgICAgICAg
ICB3aGVuICJaZXJvSW1tIgorICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7
aW5kZXh9XS5hc1plcm9JbW0oKSIKICAgICAgICAgICAgICAgICB3aGVuICJTaW1wbGVBZGRyIiwg
IkFkZHIiLCAiRXh0ZW5kZWRPZmZzZXRBZGRyIgogICAgICAgICAgICAgICAgICAgICBvdXRwLnBy
aW50ICJhcmdzWyN7aW5kZXh9XS5hc0FkZHJlc3MoKSIKICAgICAgICAgICAgICAgICB3aGVuICJJ
bmRleCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAppbmRleCA5YzdkMjk5OGUyYTg5MGY1ZWRl
NzBlYjZiOWUwZjk5MTk0N2ZhMTFmLi43NTNlMTA0ZTQ1MzYxY2E3OGVlNDM1YjllZGYxNDI4MjNj
ZjAwYzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC02ODEsNiArNjgxLDcgQEAg
dm9pZCB0ZXN0SVRvRDMySW1tKGludDMyX3QgdmFsdWUpOwogdm9pZCB0ZXN0SVRvRjMySW1tKGlu
dDMyX3QgdmFsdWUpOwogdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygpOwogdm9pZCB0
ZXN0SVRvRFJlZHVjZWRUb0lUb0YzMkFyZygpOwordm9pZCB0ZXN0U3RvcmVaZXJvSW1tKCk7CiB2
b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSk7CiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2
YWx1ZSk7CiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50UHRyKGludHB0cl90IHZhbHVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCmluZGV4IDJiZTg4MzI4NjFmZDBkNWE2NTAzMzI5
ZDNhM2U3YjljZGYzYjdiMDEuLjE3MTkwY2M1ZjJjMGY3ZTlmYmE5NzNkNWUxNGE5Njc1YTEzMDZl
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcApAQCAtMzM4LDYgKzMzOCw3
IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU5fVU5BUlkodGVzdENoZWNr
QWRkUmVtb3ZlQ2hlY2tXaXRoU0V4dDMyLCBpbnQzMk9wZXJhbmRzKCkpOwogICAgIFJVTl9VTkFS
WSh0ZXN0Q2hlY2tBZGRSZW1vdmVDaGVja1dpdGhaRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAK
KyAgICBSVU4odGVzdFN0b3JlWmVyb0ltbSgpKTsKICAgICBSVU4odGVzdFN0b3JlMzIoNDQpKTsK
ICAgICBSVU4odGVzdFN0b3JlQ29uc3RhbnQoNDkpKTsKICAgICBSVU4odGVzdFN0b3JlQ29uc3Rh
bnRQdHIoNDkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNf
My5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCmluZGV4IDcyYjA4
ZDE2YWE3MjljZGI4MzQ2ZmQyZmFhZmNhZDllMDAzOWQ2ZWIuLmNlMDI5NmQ2MDBjODZhNTYzZDM5
Y2ViMDlmOGQ1MTY1MmM5YjdlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjNfMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNw
cApAQCAtMjkwNiw2ICsyOTA2LDgzIEBAIHZvaWQgdGVzdFN0b3JlMzIoaW50IHZhbHVlKQogICAg
IENIRUNLKHNsb3QgPT0gdmFsdWUpOwogfQogCit2b2lkIHRlc3RTdG9yZVplcm9JbW0oKQorewor
ICAgIC8vIERpcmVjdCBhZGRyZXNzaW5nCisgICAgeworICAgICAgICBpbnQzMl90IHNsb3QzMiA9
IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIFN0b3JlLCBPcmln
aW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksICZzbG90MzIpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKworICAgICAgICBhdXRv
IGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAgICAgaW52b2tlPGludD4oKmNvZGUpOwor
ICAgICAgICBDSEVDS19FUShzbG90MzIsIDApOworICAgIH0KKworICAgIHsKKyAgICAgICAgaW50
NjRfdCBzbG90NjQgPSAweGJhYWRiZWVmOworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSog
dmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdDY0KSwgMCk7CisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisK
KyAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgICAgIGludm9rZTxp
bnQ+KCpjb2RlKTsKKyAgICAgICAgQ0hFQ0tfRVEoc2xvdDY0LCAwKTsKKyAgICB9CisKKyAgICAv
LyBJbmRleGVkIGFkZHJlc3NpbmcKKyAgICB7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOworICAg
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZhbHVl
KiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIFZhbHVl
KiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIFZhbHVlKiBkaXNwbGFjZW1lbnQg
PSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpOworCisg
ICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQsIGJhc2UpOworICAgICAgICBWYWx1ZSog
YWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFz
ZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MsIDApOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFs
dWUpOworCisgICAgICAgIGludDMyX3Qgc2xvdDMyID0gMHhiYWFkYmVlZjsKKyAgICAgICAgY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmc2xvdDMyLCAxKTsKKyAgICAgICAgQ0hFQ0tfRVEo
c2xvdDMyLCAwKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOworICAg
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZhbHVl
KiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIFZhbHVl
KiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIFZhbHVlKiBkaXNwbGFjZW1lbnQg
PSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpOworCisg
ICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQsIGJhc2UpOworICAgICAgICBWYWx1ZSog
YWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFz
ZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MsIDApOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFs
dWUpOworCisgICAgICAgIGludDY0X3Qgc2xvdDY0ID0gMHhiYWFkYmVlZjsKKyAgICAgICAgY29t
cGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc2xvdDY0LCAxKTsKKyAgICAgICAgQ0hFQ0tfRVEo
c2xvdDY0LCAwKTsKKyAgICB9Cit9CisKIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnQoaW50IHZhbHVl
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433295</attachid>
            <date>2021-07-11 19:00:58 -0700</date>
            <delta_ts>2021-07-11 20:54:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210711210056.patch</filename>
            <type>text/plain</type>
            <size>21336</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
Zjk2NzYxZTk2ZTViNTEyOWEzMTg1ZjQ0NjkxYjY2Y2NiYjE4Mjc0Li4yNjk3Yjg5OWRmZjc4ZDk5
MzllMTJhZTk1Y2M5N2NlNmFhNTZkMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAyMS0wNy0xMSAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgSW1tWmVybyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVplcm82NCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlWmVybzMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAq
IGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVaZXJvMzIpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlclg4Nl82NDo6c3RvcmVaZXJvNjQpOiBEZWxldGVkLgorICAgICAgICAqIGIzL0Iz
TG93ZXJUb0Fpci5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChK
U0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAg
ICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9JbW0p
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzU29tZUltbSBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNaZXJvSW1tIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6QXJnOjppc0dQIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjppc0ZQ
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjppc1ZhbGlkWmVyb0ltbUZvcm0p
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzVmFsaWRGb3JtIGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6QjM6OkFpcjo6QXJnOjphc1plcm9JbW0gY29uc3QpOgorICAgICAgICAqIGIzL2Fp
ci9BaXJMb3dlclN0YWNrQXJncy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Omxvd2VyU3Rh
Y2tBcmdzKToKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICog
YjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmI6CisgICAgICAgICogYjMvdGVzdGIzLmg6CisgICAg
ICAgICogYjMvdGVzdGIzXzEuY3BwOgorICAgICAgICAocnVuKToKKyAgICAgICAgKiBiMy90ZXN0
YjNfMy5jcHA6CisgICAgICAgICh0ZXN0U3RvcmVaZXJvSW1tKToKKwogMjAyMS0wNy0xMCAgU2Fh
bSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBDb250aW51ZSB0byBjb25z
dWx0IElubGluZUFjY2VzcydzIFN0cnVjdHVyZSBldmVuIGFmdGVyIHN3aXRjaGluZyB0byBhIHN0
dWIgSUMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmgKaW5kZXggZGY2NWNiNjM2MWY0YWIwNWEwNTUwZTMwZTM0YTg1Nzc5YWVk
YWY3Zi4uYTZhZWEyNDMyNjJlYjFmMzc5MTk3MzJkMGY2YmJjYzUzMDUxNTc5NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0
LmgKQEAgLTE3MTEsMTYgKzE3MTEsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0
cjw2ND4oc3JjLCBkZXN0LCBzaW1tKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZVplcm82
NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlNjQoQVJNNjRS
ZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzdG9yZVplcm82
NChCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlNjQoQVJNNjRSZWdpc3Rl
cnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCiAgICAgRGF0YUxhYmVsMzIgc3RvcmU2NFdp
dGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAg
ICB7CiAgICAgICAgIERhdGFMYWJlbDMyIGxhYmVsKHRoaXMpOwpAQCAtMTgxOCwxNiArMTgwOCw2
IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsK
ICAgICB9CiAKLSAgICB2b2lkIHN0b3JlWmVybzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQot
ICAgIHsKLSAgICAgICAgc3RvcmUzMihBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwotICAg
IH0KLQotICAgIHZvaWQgc3RvcmVaZXJvMzIoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAg
ICAgICBzdG9yZTMyKEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotCiAgICAg
RGF0YUxhYmVsMzIgc3RvcmUzMldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMs
IEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIERhdGFMYWJlbDMyIGxhYmVsKHRoaXMp
OwpAQCAtMTg3MywxNiArMTg1Myw2IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUxNihkYXRhVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlWmVybzE2KEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihBUk02NFJlZ2lzdGVy
czo6enIsIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVaZXJvMTYoQmFzZUluZGV4
IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRk
cmVzcyk7Ci0gICAgfQotCiAgICAgdm9pZCBzdG9yZTgoUmVnaXN0ZXJJRCBzcmMsIEJhc2VJbmRl
eCBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCAmJiAhYWRkcmVz
cy5zY2FsZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IGEyNjU1M2E1YmNlMGZjZjdiZjA4MDcy
ZjU5ODJjOWI1MDc2MjBhZWYuLjU0ZDQ1NjdkNGMxYzQ1ZGZlMGMzMjhjYTdiY2RiODRlOWViMmY5
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKQEAgLTEzMzcsMjYgKzEzMzcsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfaTMybShpbW0ubV92YWx1ZSwgYWRkcmVzcy5vZmZzZXQs
IGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgfQogCi0g
ICAgdm9pZCBzdG9yZVplcm8zMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAg
ICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lk
IHN0b3JlWmVybzMyKEJhc2VJbmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUzMihU
cnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVaZXJvMTYo
SW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KFRydXN0ZWRJ
bW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihCYXNlSW5k
ZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoVHJ1c3RlZEltbTMyKDApLCBhZGRy
ZXNzKTsKLSAgICB9Ci0KICAgICB2b2lkIHN0b3JlOChUcnVzdGVkSW1tMzIgaW1tLCBBZGRyZXNz
IGFkZHJlc3MpCiAgICAgewogICAgICAgICBUcnVzdGVkSW1tMzIgaW1tOChzdGF0aWNfY2FzdDxp
bnQ4X3Q+KGltbS5tX3ZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKaW5kZXggMzM0NzJkZDkzMWE5N2IwOWI5
N2RjOTJmNTExZTZjMjJkY2EzMjEyMi4uOTQzN2ZkM2JkMmFjMTY2ODE2ZjI4ZjM3ZGJkOTkwNTFk
ZjM3YTFjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4Nl82NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODZfNjQuaApAQCAtMTAxNSwxNiArMTAxNSw2IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9hc3NlbWJsZXIubW92cV9ybShzY3JhdGNoUmVnaXN0ZXIoKSwgYWRkcmVzcy5vZmZz
ZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgfQog
ICAgIAotICAgIHZvaWQgc3RvcmVaZXJvNjQoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAg
ewotICAgICAgICBzdG9yZTY0KFRydXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotICAg
IAotICAgIHZvaWQgc3RvcmVaZXJvNjQoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAg
ICBzdG9yZTY0KFRydXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotICAgIAogICAgIERh
dGFMYWJlbDMyIHN0b3JlNjRXaXRoQWRkcmVzc09mZnNldFBhdGNoKFJlZ2lzdGVySUQgc3JjLCBB
ZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBwYWRCZWZvcmVQYXRjaCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAppbmRleCAyYjU1NmQ3MTgzMzM3MjBi
ZmE3ODczYzc3OWJkMjkxZmQxMjYxNzkxLi42M2NiOTY2MzljZDJlMzIwMDU2MDI0YTQ1ZGEwODBm
NmFlZjljMWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRv
QWlyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcApA
QCAtNzAyLDYgKzcwMiwxMSBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gQXJnKCk7CiAgICAg
fQogCisgICAgQXJnIHplcm9JbW0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFyZzo6emVyb0lt
bSgpOworICAgIH0KKwogICAgIEFyZyBpbW1PclRtcChWYWx1ZSogdmFsdWUpCiAgICAgewogICAg
ICAgICBpZiAoQXJnIHJlc3VsdCA9IGltbSh2YWx1ZSkpCkBAIC0xMDk5LDEyICsxMTA0LDEyIEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBBaXI6Ok1vdmUzMjoKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKGlzVmFsaWRGb3JtKFN0b3JlWmVybzMyLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5p
c1ZhbGlkRm9ybShXaWR0aDMyKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0
KFN0b3JlWmVybzMyLCBtX3ZhbHVlLCBkZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlz
VmFsaWRGb3JtKFN0b3JlMzIsIEFyZzo6WmVyb0ltbSwgZGVzdC5raW5kKCkpICYmIGRlc3QuaXNW
YWxpZEZvcm0oV2lkdGgzMikpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5zdChT
dG9yZTMyLCBtX3ZhbHVlLCB6ZXJvSW1tKCksIGRlc3QpOwogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICBjYXNlIEFpcjo6TW92ZToKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGlzVmFsaWRGb3JtKFN0b3JlWmVybzY0LCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1Zh
bGlkRm9ybShXaWR0aDY0KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0
b3JlWmVybzY0LCBtX3ZhbHVlLCBkZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzVmFs
aWRGb3JtKFN0b3JlNjQsIEFyZzo6WmVyb0ltbSwgZGVzdC5raW5kKCkpICYmIGRlc3QuaXNWYWxp
ZEZvcm0oV2lkdGg2NCkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5zdChTdG9y
ZTY0LCBtX3ZhbHVlLCB6ZXJvSW1tKCksIGRlc3QpOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckFyZy5jcHAKaW5kZXggNjc4Njk5ZWZkZDViY2RlZDNjYmU0YTI2OWVkMmMyZjdj
NDhhMmEzMS4uZTc1YmE1MGYwMjJhOGZjZTliMWU1YWE2OTNhOWFlZDZiMGViMDQ5NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcApAQCAtMTA4LDYgKzEwOCw3IEBAIHVu
c2lnbmVkIEFyZzo6anNIYXNoKCkgY29uc3QKICAgICBjYXNlIERvdWJsZUNvbmQ6CiAgICAgY2Fz
ZSBTdGF0dXNDb25kOgogICAgIGNhc2UgV2lkdGhBcmc6CisgICAgY2FzZSBaZXJvSW1tOgogICAg
ICAgICByZXN1bHQgKz0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fb2Zmc2V0KTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBCaWdJbW06CkBAIC0xNDAsNiArMTQxLDEyIEBAIHVuc2lnbmVkIEFy
Zzo6anNIYXNoKCkgY29uc3QKIAogdm9pZCBBcmc6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29u
c3QKIHsKKyAgICBhdXRvIGR1bXBaZXJvSW1tID0gWyZdICgpIC0+IGNvbnN0IGNoYXIqIHsKKyAg
ICAgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAgICAgIHJldHVybiAiJSV4enIiOworICAgICAg
ICByZXR1cm4gIiQwIjsKKyAgICB9OworCiAgICAgc3dpdGNoIChtX2tpbmQpIHsKICAgICBjYXNl
IEludmFsaWQ6CiAgICAgICAgIG91dC5wcmludCgiPGludmFsaWQ+Iik7CkBAIC0xNTksNiArMTY2
LDkgQEAgdm9pZCBBcmc6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBjYXNlIEJp
dEltbTY0OgogICAgICAgICBvdXQucHJpbnRmKCIkMHglbGx4Iiwgc3RhdGljX2Nhc3Q8bG9uZyBs
b25nIHVuc2lnbmVkPihtX29mZnNldCkpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBaZXJv
SW1tOgorICAgICAgICBvdXQucHJpbnQoZHVtcFplcm9JbW0oKSk7CisgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAgIG91dC5wcmludCgiKCIsIGJhc2UoKSwgIiki
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjM2LDYgKzI0Niw5IEBAIHZvaWQgcHJpbnRJbnRlcm5h
bChQcmludFN0cmVhbSYgb3V0LCBBcmc6OktpbmQga2luZCkKICAgICBjYXNlIEFyZzo6Qml0SW1t
NjQ6CiAgICAgICAgIG91dC5wcmludCgiQml0SW1tNjQiKTsKICAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgQXJnOjpaZXJvSW1tOgorICAgICAgICBvdXQucHJpbnQoIlplcm9JbW0iKTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIGNhc2UgQXJnOjpTaW1wbGVBZGRyOgogICAgICAgICBvdXQucHJpbnQo
IlNpbXBsZUFkZHIiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQXJnLmgKaW5kZXggODcyMDRlNjdjNzc3NTNiNDE2NTJmNzM5NGYwYzM0NjczZGNiMzliNC4u
MWZkOGI1NDY4OTYyYTcwYWUzODdiMjQxMWUzMzhjODQyYWI5YzU3YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC02NCwxMCArNjQsMTIgQEAgcHVibGljOgogICAgICAg
ICAvLyB1c3VhbGx5IG9ubHkgdXNhYmxlIHdpdGggTW92ZS4gU3BlY2lhbHMgbWF5IGFsc28gYWRt
aXQgaXQsIGZvciBleGFtcGxlIGZvciBzdGFja21hcHMgdXNlZCBmb3IKICAgICAgICAgLy8gT1NS
IGV4aXQgYW5kIHRhaWwgY2FsbHMuCiAgICAgICAgIC8vIEJpdEltbSBpcyBhbiBpbW1lZGlhdGUg
Zm9yIEJpdHdpc2Ugb3BlcmF0aW9uIChBbmQsIFhvciwgZXRjKS4KKyAgICAgICAgLy8gWmVyb0lt
bSBpcyBpbnRlcnByZXRlZCBhcyBhIHplcm8gcmVnaXN0ZXIgaW4gQVJNNjQgYW5kIFRydXN0ZWRJ
bW0zMigwKSBpbiBYODYgYW5kIFg4Nl82NAogICAgICAgICBJbW0sCiAgICAgICAgIEJpZ0ltbSwK
ICAgICAgICAgQml0SW1tLAogICAgICAgICBCaXRJbW02NCwKKyAgICAgICAgWmVyb0ltbSwKIAog
ICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIGFkZHJlc3Nlcy4gSW5zdHJ1Y3Rpb25zIG1heSBsb2Fk
IGZyb20gKFVzZSksIHN0b3JlIHRvIChEZWYpLCBvciBldmFsdWF0ZQogICAgICAgICAvLyAoVXNl
QWRkcikgYWRkcmVzc2VzLgpAQCAtODYsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0YXR1
c0NvbmQsCiAgICAgICAgIFNwZWNpYWwsCiAgICAgICAgIFdpZHRoQXJnCisKICAgICB9OwogICAg
IAogICAgIGVudW0gVGVtcGVyYXR1cmUgOiBpbnQ4X3QgewpAQCAtNjkzLDYgKzY5NiwxNCBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6
ZXJvSW1tKCkKKyAgICB7CisgICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tp
bmQgPSBaZXJvSW1tOworICAgICAgICByZXN1bHQubV9vZmZzZXQgPSAwOworICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBcmcmIG90aGVy
KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb2Zmc2V0ID09IG90aGVyLm1fb2Zmc2V0
CkBAIC03NDYsNiArNzU3LDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIEJpZ0ltbToKICAgICAg
ICAgY2FzZSBCaXRJbW06CiAgICAgICAgIGNhc2UgQml0SW1tNjQ6CisgICAgICAgIGNhc2UgWmVy
b0ltbToKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODUwLDYgKzg2MiwxMSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBraW5kKCkgPT0gV2lkdGhBcmc7CiAgICAgfQogCisgICAgYm9vbCBpc1plcm9JbW0o
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBaZXJvSW1tOworICAgIH0K
KwogICAgIGJvb2wgaXNBbGl2ZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gaXNUbXAo
KSB8fCBpc1N0YWNrKCk7CkBAIC0xMDIyLDYgKzEwMzksNyBAQCBwdWJsaWM6CiAgICAgICAgIGNh
c2UgQmlnSW1tOgogICAgICAgICBjYXNlIEJpdEltbToKICAgICAgICAgY2FzZSBCaXRJbW02NDoK
KyAgICAgICAgY2FzZSBaZXJvSW1tOgogICAgICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAg
IGNhc2UgQWRkcjoKICAgICAgICAgY2FzZSBFeHRlbmRlZE9mZnNldEFkZHI6CkBAIC0xMDU3LDYg
KzEwNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgU3BlY2lhbDoKICAgICAgICAgY2FzZSBX
aWR0aEFyZzoKICAgICAgICAgY2FzZSBJbnZhbGlkOgorICAgICAgICBjYXNlIFplcm9JbW06CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNhc2UgU2ltcGxlQWRkcjoKICAgICAg
ICAgY2FzZSBBZGRyOgpAQCAtMTE4MCw2ICsxMTk5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAorICAgIHN0YXRpYyBib29sIGlzVmFsaWRaZXJvSW1tRm9ybShp
bnQ2NF90IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuICF2YWx1ZTsKKyAgICB9CisKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnQsIHR5cGVuYW1lID0gVmFsdWU6OklzTGVnYWxPZmZzZXQ8
SW50Pj4KICAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkQWRkckZvcm0oSW50IG9mZnNldCwgc3RkOjpv
cHRpb25hbDxXaWR0aD4gd2lkdGggPSBzdGQ6Om51bGxvcHQpCiAgICAgewpAQCAtMTIzNiw2ICsx
MjYwLDggQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWRCaXRJbW1Gb3JtKHZh
bHVlKCkpOwogICAgICAgICBjYXNlIEJpdEltbTY0OgogICAgICAgICAgICAgcmV0dXJuIGlzVmFs
aWRCaXRJbW02NEZvcm0odmFsdWUoKSk7CisgICAgICAgIGNhc2UgWmVyb0ltbToKKyAgICAgICAg
ICAgIHJldHVybiBpc1ZhbGlkWmVyb0ltbUZvcm0odmFsdWUoKSk7CiAgICAgICAgIGNhc2UgU2lt
cGxlQWRkcjoKICAgICAgICAgY2FzZSBFeHRlbmRlZE9mZnNldEFkZHI6CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTEzMzEsNiArMTM1NywxOCBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlm
CiAKKyNpZiBDUFUoQVJNNjQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgYXNaZXJv
SW1tKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBBUk02NFJlZ2lzdGVyczo6enI7Cisg
ICAgfQorI2VsaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKFg4NikKKyAgICBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyIGFzWmVyb0ltbSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigwKTsKKyAgICB9CisjZW5kaWYKKwogICAgIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyIGFzVHJ1c3RlZEltbVB0cigpIGNvbnN0CiAgICAgewog
ICAgICAgICBpZiAoaXM2NEJpdCgpKQpAQCAtMTM3OSw3ICsxNDE3LDcgQEAgcHVibGljOgogICAg
ICAgICBBU1NFUlQoaXNTdGF0dXNDb25kKCkpOwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
TWFjcm9Bc3NlbWJsZXI6OlN0YXR1c0NvbmRpdGlvbj4obV9vZmZzZXQpOwogICAgIH0KLSAgICAK
KwogICAgIC8vIFRlbGxzIHlvdSBpZiB0aGUgQXJnIGlzIGludmVydGlibGUuIE9ubHkgY29uZGl0
aW9uIGFyZ3VtZW50cyBhcmUgaW52ZXJ0aWJsZSwgYW5kIGV2ZW4gZm9yIHRob3NlLCB0aGVyZQog
ICAgIC8vIGFyZSBhIGZldyBleGNlcHRpb25zIC0gbm90YWJseSBPdmVyZmxvdyBhbmQgU2lnbmVk
LgogICAgIGJvb2wgaXNJbnZlcnRpYmxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJMb3dlclN0YWNrQXJncy5jcHAKaW5kZXggOWM4ZjUxZTRlMDI3MDFl
ZWRiYTRjZTc5MjNjZjU1NzRjZmIzZDc3Yy4uZWZjNmZiYzE4YzdmNWFkMjJkMDc2YTIxZjQ1MjUz
YTA2YjIxMmM4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJM
b3dlclN0YWNrQXJncy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJM
b3dlclN0YWNrQXJncy5jcHAKQEAgLTE1Nyw5ICsxNTcsOSBAQCB2b2lkIGxvd2VyU3RhY2tBcmdz
KENvZGUmIGNvZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQo
c2xvdC0+Ynl0ZVNpemUoKSA9PSA4KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVCh3aWR0aCA9PSBXaWR0aDMyKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKGlzVmFsaWRGb3JtKFN0b3JlWmVybzMyLCBBcmc6OlN0YWNrKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNWYWxpZEZvcm0o
U3RvcmUzMiwgQXJnOjpaZXJvSW1tLCBBcmc6OlN0YWNrKSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5zdEluZGV4ICsgMSwgU3RvcmVaZXJvMzIsIGluc3Qub3JpZ2luLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnN0SW5kZXggKyAxLCBTdG9yZTMyLCBpbnN0Lm9yaWdp
biwgQXJnOjp6ZXJvSW1tKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNr
QWRkcihhcmcub2Zmc2V0KCkgKyA0ICsgc2xvdC0+b2Zmc2V0RnJvbUZQKCkpKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IHN0YWNrQWRk
cihhcmcub2Zmc2V0KCkgKyBzbG90LT5vZmZzZXRGcm9tRlAoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwppbmRleCAwNWRjM2E5ZmVjNDY5Njg0
MDMxZDg4ZDczZWMzN2NjMDU4YmUxZjU3Li4yZTQwZDUyMzgxOWUwNTlmNzhjZGJmMjYyOTQxMGUx
OGE1YmY2NDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9w
Y29kZS5vcGNvZGVzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2Rl
Lm9wY29kZXMKQEAgLTY2MywxNCArNjYzLDEzIEBAIE1vdmUzMiBVOkc6MzIsIFpEOkc6MzIKIE1v
dmUzMiBVOkc6MzIsIFpEOkc6MzIsIFM6RzozMgogICAgIEFkZHIsIEFkZHIsIFRtcAogCi0jIEZJ
WE1FOiBTdG9yZVplcm8zMiBhbmQgU3RvcmVaZXJvNjQgYXJlIGhhY2tzIG9uIEFSTTY0LCB3ZSBj
YW4gZG8gYmV0dGVyOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0
ODIxCi1TdG9yZVplcm8zMiBEOkc6MzIKLSAgICBBZGRyCi0gICAgSW5kZXgKK1N0b3JlMzIgVTpH
OjMyLCBaRDpHOjMyCisgICAgWmVyb0ltbSwgQWRkcgorICAgIFplcm9JbW0sIEluZGV4CiAKLTY0
OiBTdG9yZVplcm82NCBEOkc6NjQKLSAgICBBZGRyCi0gICAgSW5kZXgKKzY0OiBTdG9yZTY0IFU6
Rzo2NCwgRDpHOjY0CisgICAgWmVyb0ltbSwgQWRkcgorICAgIFplcm9JbW0sIEluZGV4CiAKIFNp
Z25FeHRlbmQzMlRvUHRyIFU6RzozMiwgRDpHOlB0cgogICAgIFRtcCwgVG1wCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKaW5kZXggNmM2MWVj
ZTg1NzZiOGUzMTljNWY1ODIxODRkMTczMjc5ODM2NDAyYi4uNGU2ODVhNTAzZWRmMmNlNDQwNDA2
MjRhMzRhMGYyOTgzYmJjNzE4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvb3Bjb2RlX2dlbmVyYXRvci5yYgpAQCAtMjI5LDcgKzIyOSw3IEBAIGRlZiBpc0dGKHRva2Vu
KQogZW5kCiAKIGRlZiBpc0tpbmQodG9rZW4pCi0gICAgdG9rZW4gPX4gL1xBKChUbXApfChJbW0p
fChCaWdJbW0pfChCaXRJbW0pfChCaXRJbW02NCl8KFNpbXBsZUFkZHIpfChBZGRyKXwoRXh0ZW5k
ZWRPZmZzZXRBZGRyKXwoSW5kZXgpfChSZWxDb25kKXwoUmVzQ29uZCl8KERvdWJsZUNvbmQpfChT
dGF0dXNDb25kKSlcWi8KKyAgICB0b2tlbiA9fiAvXEEoKFRtcCl8KEltbSl8KEJpZ0ltbSl8KEJp
dEltbSl8KEJpdEltbTY0KXwoWmVyb0ltbSl8KFNpbXBsZUFkZHIpfChBZGRyKXwoRXh0ZW5kZWRP
ZmZzZXRBZGRyKXwoSW5kZXgpfChSZWxDb25kKXwoUmVzQ29uZCl8KERvdWJsZUNvbmQpfChTdGF0
dXNDb25kKSlcWi8KIGVuZAogCiBkZWYgaXNBcmNoKHRva2VuKQpAQCAtMzAzLDcgKzMwMyw3IEBA
IGNsYXNzIFBhcnNlcgogCiAgICAgZGVmIGNvbnN1bWVLaW5kCiAgICAgICAgIHJlc3VsdCA9IHRv
a2VuLnN0cmluZwotICAgICAgICBwYXJzZUVycm9yKCJFeHBlY3RlZCBraW5kIChJbW0sIEJpZ0lt
bSwgQml0SW1tLCBCaXRJbW02NCwgVG1wLCBTaW1wbGVBZGRyLCBBZGRyLCBFeHRlbmRlZE9mZnNl
dEFkZHIsIEluZGV4LCBSZWxDb25kLCBSZXNDb25kLCBEb3VibGVDb25kLCBvciBTdGF0dXNDb25k
KSIpIHVubGVzcyBpc0tpbmQocmVzdWx0KQorICAgICAgICBwYXJzZUVycm9yKCJFeHBlY3RlZCBr
aW5kIChJbW0sIEJpZ0ltbSwgQml0SW1tLCBCaXRJbW02NCwgWmVyb0ltbSwgVG1wLCBTaW1wbGVB
ZGRyLCBBZGRyLCBFeHRlbmRlZE9mZnNldEFkZHIsIEluZGV4LCBSZWxDb25kLCBSZXNDb25kLCBE
b3VibGVDb25kLCBvciBTdGF0dXNDb25kKSIpIHVubGVzcyBpc0tpbmQocmVzdWx0KQogICAgICAg
ICBhZHZhbmNlCiAgICAgICAgIHJlc3VsdAogICAgIGVuZApAQCAtNDc1LDYgKzQ3NSwxNCBAQCBj
bGFzcyBQYXJzZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJy
b3IoIkZvcm0gaGFzIGFuIGltbWVkaWF0ZSBmb3IgYSBub24tZ2VuZXJhbC1wdXJwb3NlIGFyZ3Vt
ZW50IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYga2luZC5u
YW1lID09ICJaZXJvSW1tIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzaWdu
YXR1cmVbaW5kZXhdLnJvbGUgIT0gIlUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXJzZUVycm9yKCJaZXJvIGltbWVkaWF0ZSBtdXN0IGJlIGEgdXNlIGFyZ3VtZW50IikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIHNpZ25hdHVyZVtpbmRleF0uYmFuayAhPSAiRyIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IoIlplcm8gaW1tZWRpYXRlIG11c3Qg
YmUgYSBnZW5lcmFsLXB1cnBvc2UgYXJndW1lbnQiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1zIDw8IEZvcm0ubmV3
KGtpbmRzLCBhbHROYW1lLCBpbnRlcnNlY3RBcmNocyhvcGNvZGVBcmNocywgZm9ybUFyY2hzKSkK
IApAQCAtOTAzLDYgKzkxMSw5IEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgICAg
ICAgICAgICAgIHdoZW4gIkJpdEltbTY0IgogICAgICAgICAgICAgICAgICAgICBvdXRwLnB1dHMg
ImlmICghQXJnOjppc1ZhbGlkQml0SW1tNjRGb3JtKGFyZ3NbI3tpbmRleH1dLnZhbHVlKCkpKSIK
ICAgICAgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJPUEdFTl9SRVRVUk4oZmFsc2UpOyIKKyAg
ICAgICAgICAgICAgICB3aGVuICJaZXJvSW1tIgorICAgICAgICAgICAgICAgICAgICBvdXRwLnB1
dHMgImlmICghQXJnOjppc1ZhbGlkSW1tRm9ybShhcmdzWyN7aW5kZXh9XS52YWx1ZSgpKSkiCisg
ICAgICAgICAgICAgICAgICAgIG91dHAucHV0cyAiT1BHRU5fUkVUVVJOKGZhbHNlKTsiCiAgICAg
ICAgICAgICAgICAgd2hlbiAiU2ltcGxlQWRkciIKICAgICAgICAgICAgICAgICAgICAgb3V0cC5w
dXRzICJpZiAoIWFyZ3NbI3tpbmRleH1dLnB0cigpLmlzR1AoKSkiCiAgICAgICAgICAgICAgICAg
ICAgIG91dHAucHV0cyAiT1BHRU5fUkVUVVJOKGZhbHNlKTsiCkBAIC0xMjIwLDYgKzEyMzEsOCBA
QCB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICAgICAgICAgICAgICAgICAgb3V0cC5w
cmludCAiYXJnc1sje2luZGV4fV0uYXNUcnVzdGVkSW1tMzIoKSIKICAgICAgICAgICAgICAgICB3
aGVuICJCaWdJbW0iLCAiQml0SW1tNjQiCiAgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQg
ImFyZ3NbI3tpbmRleH1dLmFzVHJ1c3RlZEltbTY0KCkiCisgICAgICAgICAgICAgICAgd2hlbiAi
WmVyb0ltbSIKKyAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmludCAiYXJnc1sje2luZGV4fV0u
YXNaZXJvSW1tKCkiCiAgICAgICAgICAgICAgICAgd2hlbiAiU2ltcGxlQWRkciIsICJBZGRyIiwg
IkV4dGVuZGVkT2Zmc2V0QWRkciIKICAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmludCAiYXJn
c1sje2luZGV4fV0uYXNBZGRyZXNzKCkiCiAgICAgICAgICAgICAgICAgd2hlbiAiSW5kZXgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKaW5kZXggOWM3ZDI5OThlMmE4OTBmNWVkZTcwZWI2Yjll
MGY5OTE5NDdmYTExZi4uNzUzZTEwNGU0NTM2MWNhNzhlZTQzNWI5ZWRmMTQyODIzY2YwMGM4MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaApAQCAtNjgxLDYgKzY4MSw3IEBAIHZvaWQgdGVz
dElUb0QzMkltbShpbnQzMl90IHZhbHVlKTsKIHZvaWQgdGVzdElUb0YzMkltbShpbnQzMl90IHZh
bHVlKTsKIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GNjRBcmcoKTsKIHZvaWQgdGVzdElUb0RS
ZWR1Y2VkVG9JVG9GMzJBcmcoKTsKK3ZvaWQgdGVzdFN0b3JlWmVyb0ltbSgpOwogdm9pZCB0ZXN0
U3RvcmUzMihpbnQgdmFsdWUpOwogdm9pZCB0ZXN0U3RvcmVDb25zdGFudChpbnQgdmFsdWUpOwog
dm9pZCB0ZXN0U3RvcmVDb25zdGFudFB0cihpbnRwdHJfdCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiM18xLmNwcAppbmRleCAyYmU4ODMyODYxZmQwZDVhNjUwMzMyOWQzYTNlN2I5
Y2RmM2I3YjAxLi4xNzE5MGNjNWYyYzBmN2U5ZmJhOTczZDVlMTRhOTY3NWExMzA2ZWU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKQEAgLTMzOCw2ICszMzgsNyBAQCB2b2lk
IHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOX1VOQVJZKHRlc3RDaGVja0FkZFJlbW92
ZUNoZWNrV2l0aFNFeHQzMiwgaW50MzJPcGVyYW5kcygpKTsKICAgICBSVU5fVU5BUlkodGVzdENo
ZWNrQWRkUmVtb3ZlQ2hlY2tXaXRoWkV4dDMyLCBpbnQzMk9wZXJhbmRzKCkpOwogCisgICAgUlVO
KHRlc3RTdG9yZVplcm9JbW0oKSk7CiAgICAgUlVOKHRlc3RTdG9yZTMyKDQ0KSk7CiAgICAgUlVO
KHRlc3RTdG9yZUNvbnN0YW50KDQ5KSk7CiAgICAgUlVOKHRlc3RTdG9yZUNvbnN0YW50UHRyKDQ5
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAppbmRleCA3MmIwOGQxNmFhNzI5
Y2RiODM0NmZkMmZhYWZjYWQ5ZTAwMzlkNmViLi5jZTAyOTZkNjAwYzg2YTU2M2QzOWNlYjA5Zjhk
NTE2NTJjOWI3ZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
XzMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKQEAgLTI5
MDYsNiArMjkwNiw4MyBAQCB2b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSkKICAgICBDSEVDSyhz
bG90ID09IHZhbHVlKTsKIH0KIAordm9pZCB0ZXN0U3RvcmVaZXJvSW1tKCkKK3sKKyAgICAvLyBE
aXJlY3QgYWRkcmVzc2luZworICAgIHsKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJhYWRi
ZWVmOworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZh
bHVlLAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAmc2xvdDMyKSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgYXV0byBjb2RlID0g
Y29tcGlsZVByb2MocHJvYyk7CisgICAgICAgIGludm9rZTxpbnQ+KCpjb2RlKTsKKyAgICAgICAg
Q0hFQ0tfRVEoc2xvdDMyLCAwKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGludDY0X3Qgc2xv
dDY0ID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgU3RvcmUs
IE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3Q2NCksIDApOworICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgICAg
IGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBpbnZva2U8aW50PigqY29k
ZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Q2NCwgMCk7CisgICAgfQorCisgICAgLy8gSW5kZXhl
ZCBhZGRyZXNzaW5nCisgICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUg
PSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAg
ICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSogb2Zmc2V0
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAgICAgICBW
YWx1ZSogYmFzZURpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgZGlzcGxhY2VtZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFj
ZW1lbnQsIG9mZnNldCk7CisKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKwor
ICAgICAgICBpbnQzMl90IHNsb3QzMiA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgJnNsb3QzMiwgMSk7CisgICAgICAgIENIRUNLX0VRKHNsb3QzMiwg
MCk7CisgICAgfQorCisgICAgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUg
PSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAg
ICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSogb2Zmc2V0
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAgICAgICBW
YWx1ZSogYmFzZURpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgZGlzcGxhY2VtZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFj
ZW1lbnQsIG9mZnNldCk7CisKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKwor
ICAgICAgICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgJnNsb3Q2NCwgMSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Q2NCwg
MCk7CisgICAgfQorfQorCiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433298</attachid>
            <date>2021-07-11 20:54:19 -0700</date>
            <delta_ts>2021-07-12 12:18:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210711225417.patch</filename>
            <type>text/plain</type>
            <size>22609</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
Zjk2NzYxZTk2ZTViNTEyOWEzMTg1ZjQ0NjkxYjY2Y2NiYjE4Mjc0Li40NzZiNzFmZWRkN2Q1YTQ3
ZTQ3YWQ3ZjVlNmJkMjUzNzdjNTkxZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MSBAQAorMjAyMS0wNy0xMSAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgSW1tWmVybyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQjMgaXMgZGVzaWduZWQgdG8gYmUgcG9ydGFibGUgdG8gbWFueSBraW5kcyBvZiBDUFVz
LiBIb3dldmVyLCB0byBlZmZlY3RpdmVseSBjb21waWxlIGNvZGUgCisgICAgICAgIHRvIGRpZmZl
cmVudCBDUFVzLCB0aGUgY29tcGlsZXIgbXVzdCBtYWtlIGluc3RydWN0aW9uIHNldCBkZXRhaWxz
IGV4cGxpY2l0IGV2ZW50dWFsbHkuwqAKKyAgICAgICAgVGhlbiwgQWlyIGlzIGludHJvZHVjZWQs
IGFuZCBpdCBoYXMgc3ludGF4IHRvIHNwZWFrIG9mIGFsbCBvZiB0aGUgQ1BVIGluc3RydWN0aW9u
cyB3ZSAKKyAgICAgICAga25vdyBhYm91dC7CoAorCisgICAgICAgIFByZXZpb3VzbHksIEIzIGFu
ZCBBaXIgZG9uJ3QgcmVjb2duaXplIHRoZSBaUiByZWdpc3Rlci4gVGhpcyBwcm9ibGVtIGhhcyBi
ZWVuIHBvaW50ZWQgb3V0IAorICAgICAgICBpbiAjMTc0ODIxLCB3aGljaCB3YXMgdHJ5aW5nIHRv
IGludHJvZHVjZSB0aGUgbmV3IG9wY29kZXMgdG8gaGFuZGxlIGEgemVybyBpbW1lZGlhdGUgb3Ig
dGhlIAorICAgICAgICB6ZXJvIHJlZ2lzdGVyLiAKKworICAgICAgICBUbyBzb2x2ZSB0aGlzIHBy
b2JsZW0gaW4gYSBtb2R1bGFyIHJlYXNvbmluZyBhcHByb2FjaCwgYSBuZXcgQWlyIG9wZXJhbmQg
WmVyb0ltbSAKKyAgICAgICAgc2hvdWxkIGJlIGludHJvZHVjZWQuIEl0cyBnb2FsIGlzIHRvIGNs
b3NlbHkgbWF0Y2ggdGhlIENQVSBpbnN0cnVjdGlvbnMgYWNjZXB0aW5nIGEgemVybyBpbW1lZGlh
dGUgCisgICAgICAgIG9yIHRoZSB6ZXJvIHJlZ2lzdGVyIGluIFg4NiBhbmQgQVJNNjQuIEFub3Ro
ZXIgcmVhc29uIGlzIHRoYXQgd2l0aCB0aGlzIGltcGxlbWVudGF0aW9uLCB0aGUgbmV3IAorICAg
ICAgICBvdmVybG9hZHMgb2YgdGhlIGluc3RydWN0aW9ucyB0YWtpbmcgdGhlIHplcm8gcmVnaXN0
ZXIgY2FuIGJlbmVmaXQgaW5zdHJ1Y3Rpb24gc2VsZWN0aW9uLgorCisgICAgICAgIEhlcmUsIHRo
ZSBaZXJvSW1tIGlzIGFkZGVkIGFzIGEgbmV3IGtpbmQgZm9yIEFpcjo6QXJnLCB3aGljaCBhY3Rz
IGFzIGEg4oCcaGlnaCBsZXZlbOKAnSBvcGVyYW5kIAorICAgICAgICB0byBiZSBlbWl0dGVkIHdp
dGggdGhlIGFzc29jaWF0aXZlIG9wY29kZXMgZnJvbSBkaWZmZXJlbnQgYXJjaGl0ZWN0dXJlcy4g
SW4gQVJNNjQsIHRoZSBaZXJvSW1tIAorICAgICAgICB3b3VsZCBiZSBlbWl0dGVkIGFzIGEgemVy
byByZWdpc3Rlci4gRm9yIFg4NiwgdGhlIFplcm9JbW0gd291bGQgYmUgZW1pdHRlZCBhcyBhIHpl
cm8gaW1tZWRpYXRlLgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQu
aDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVaZXJvNjQpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVplcm8zMik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlWmVybzE2KTog
RGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnN0b3JlWmVybzMyKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnN0b3JlWmVybzE2
KTogRGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaDoK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnN0b3JlWmVybzY0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJB
cmcuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmpzSGFzaCBjb25zdCk6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6ZHVtcCBjb25zdCk6CisgICAgICAgIChXVEY6OnByaW50
SW50ZXJuYWwpOgorICAgICAgICAqIGIzL2Fpci9BaXJBcmcuaDoKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6QXJnOjp6ZXJvSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjppc1NvbWVJ
bW0gY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzWmVyb0ltbSBjb25zdCk6
CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBjb25zdCk6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6
aXNWYWxpZFplcm9JbW1Gb3JtKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjppc1ZhbGlk
Rm9ybSBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6YXNaZXJvSW1tIGNvbnN0
KToKKyAgICAgICAgKiBiMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpsb3dlclN0YWNrQXJncyk6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5v
cGNvZGVzOgorICAgICAgICAqIGIzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiOgorICAgICAgICAq
IGIzL3Rlc3RiMy5oOgorICAgICAgICAqIGIzL3Rlc3RiM18xLmNwcDoKKyAgICAgICAgKHJ1bik6
CisgICAgICAgICogYjMvdGVzdGIzXzMuY3BwOgorICAgICAgICAodGVzdFN0b3JlWmVyb0ltbSk6
CisKIDIwMjEtMDctMTAgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ29udGludWUgdG8gY29uc3VsdCBJbmxpbmVBY2Nlc3MncyBTdHJ1Y3R1cmUgZXZlbiBhZnRl
ciBzd2l0Y2hpbmcgdG8gYSBzdHViIElDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4IGRmNjVjYjYzNjFmNGFiMDVh
MDU1MGUzMGUzNGE4NTc3OWFlZGFmN2YuLmE2YWVhMjQzMjYyZWIxZjM3OTE5NzMyZDBmNmJiY2M1
MzA1MTU3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC0xNzExLDE2ICsxNzExLDYgQEAgcHVibGljOgogICAg
ICAgICBtX2Fzc2VtYmxlci5zdHI8NjQ+KHNyYywgZGVzdCwgc2ltbSk7CiAgICAgfQogICAgIAot
ICAgIHZvaWQgc3RvcmVaZXJvNjQoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewotICAg
ICAgICBzdG9yZTY0KEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotICAgIAot
ICAgIHZvaWQgc3RvcmVaZXJvNjQoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBz
dG9yZTY0KEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotICAgIAogICAgIERh
dGFMYWJlbDMyIHN0b3JlNjRXaXRoQWRkcmVzc09mZnNldFBhdGNoKFJlZ2lzdGVySUQgc3JjLCBB
ZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBEYXRhTGFiZWwzMiBsYWJlbCh0aGlzKTsK
QEAgLTE4MTgsMTYgKzE4MDgsNiBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlMzIoZGF0YVRlbXBS
ZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVplcm8zMihJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMzIoQVJNNjRSZWdpc3RlcnM6
OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3JlWmVybzMyKEJhc2VJbmRleCBh
ZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUzMihBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJl
c3MpOwotICAgIH0KLQogICAgIERhdGFMYWJlbDMyIHN0b3JlMzJXaXRoQWRkcmVzc09mZnNldFBh
dGNoKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBEYXRh
TGFiZWwzMiBsYWJlbCh0aGlzKTsKQEAgLTE4NzMsMTYgKzE4NTMsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHN0b3JlMTYoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9p
ZCBzdG9yZVplcm8xNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0
b3JlMTYoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0
b3JlWmVybzE2KEJhc2VJbmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihBUk02
NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwotICAgIH0KLQogICAgIHZvaWQgc3RvcmU4KFJlZ2lz
dGVySUQgc3JjLCBCYXNlSW5kZXggYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmICghYWRkcmVz
cy5vZmZzZXQgJiYgIWFkZHJlc3Muc2NhbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAppbmRleCBhMjY1
NTNhNWJjZTBmY2Y3YmYwODA3MmY1OTgyYzliNTA3NjIwYWVmLi41NGQ0NTY3ZDRjMWM0NWRmZTBj
MzI4Y2E3YmNkYjg0ZTllYjJmOTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCkBAIC0xMzM3LDI2ICsx
MzM3LDYgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZsX2kzMm0oaW1tLm1fdmFs
dWUsIGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Mu
c2NhbGUpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVaZXJvMzIoSW1wbGljaXRBZGRyZXNzIGFk
ZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7
Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8zMihCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7
Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAg
ICB2b2lkIHN0b3JlWmVybzE2KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAg
ICAgc3RvcmUxNihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQg
c3RvcmVaZXJvMTYoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KFRy
dXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCiAgICAgdm9pZCBzdG9yZTgoVHJ1c3Rl
ZEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMy
IGltbTgoc3RhdGljX2Nhc3Q8aW50OF90PihpbW0ubV92YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCmluZGV4
IDMzNDcyZGQ5MzFhOTdiMDliOTdkYzkyZjUxMWU2YzIyZGNhMzIxMjIuLjk0MzdmZDNiZDJhYzE2
NjgxNmYyOGYzN2RiZDk5MDUxZGYzN2ExYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKQEAgLTEwMTUsMTYgKzEw
MTUsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnFfcm0oc2NyYXRjaFJlZ2lz
dGVyKCksIGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJl
c3Muc2NhbGUpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChUcnVzdGVkSW1tMzIoMCksIGFk
ZHJlc3MpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEJhc2VJbmRleCBhZGRy
ZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwot
ICAgIH0KLSAgICAKICAgICBEYXRhTGFiZWwzMiBzdG9yZTY0V2l0aEFkZHJlc3NPZmZzZXRQYXRj
aChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgcGFkQmVm
b3JlUGF0Y2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2Vy
VG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKaW5k
ZXggMmI1NTZkNzE4MzMzNzIwYmZhNzg3M2M3NzliZDI5MWZkMTI2MTc5MS4uNjNjYjk2NjM5Y2Qy
ZTMyMDA1NjAyNGE0NWRhMDgwZjZhZWY5YzFkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJUb0Fpci5jcHAKQEAgLTcwMiw2ICs3MDIsMTEgQEAgcHJpdmF0ZToKICAgICAgICAg
cmV0dXJuIEFyZygpOwogICAgIH0KIAorICAgIEFyZyB6ZXJvSW1tKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBBcmc6Onplcm9JbW0oKTsKKyAgICB9CisKICAgICBBcmcgaW1tT3JUbXAoVmFsdWUq
IHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKEFyZyByZXN1bHQgPSBpbW0odmFsdWUpKQpAQCAt
MTA5OSwxMiArMTEwNCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQWlyOjpNb3Zl
MzI6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm8zMiwgZGVz
dC5raW5kKCkpICYmIGRlc3QuaXNWYWxpZEZvcm0oV2lkdGgzMikpCi0gICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gSW5zdChTdG9yZVplcm8zMiwgbV92YWx1ZSwgZGVzdCk7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZTMyLCBBcmc6Olplcm9JbW0sIGRlc3Qu
a2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEluc3QoU3RvcmUzMiwgbV92YWx1ZSwgemVyb0ltbSgpLCBkZXN0KTsKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBBaXI6Ok1vdmU6
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm82NCwgZGVzdC5r
aW5kKCkpICYmIGRlc3QuaXNWYWxpZEZvcm0oV2lkdGg2NCkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gSW5zdChTdG9yZVplcm82NCwgbV92YWx1ZSwgZGVzdCk7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZTY0LCBBcmc6Olplcm9JbW0sIGRlc3Qua2lu
ZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEluc3QoU3RvcmU2NCwgbV92YWx1ZSwgemVyb0ltbSgpLCBkZXN0KTsKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCmluZGV4IDY3ODY5OWVmZGQ1YmNk
ZWQzY2JlNGEyNjllZDJjMmY3YzQ4YTJhMzEuLmU3NWJhNTBmMDIyYThmY2U5YjFlNWFhNjkzYTlh
ZWQ2YjBlYjA0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
QXJnLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKQEAg
LTEwOCw2ICsxMDgsNyBAQCB1bnNpZ25lZCBBcmc6OmpzSGFzaCgpIGNvbnN0CiAgICAgY2FzZSBE
b3VibGVDb25kOgogICAgIGNhc2UgU3RhdHVzQ29uZDoKICAgICBjYXNlIFdpZHRoQXJnOgorICAg
IGNhc2UgWmVyb0ltbToKICAgICAgICAgcmVzdWx0ICs9IHN0YXRpY19jYXN0PHVuc2lnbmVkPiht
X29mZnNldCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmlnSW1tOgpAQCAtMTQwLDYgKzE0
MSwxMiBAQCB1bnNpZ25lZCBBcmc6OmpzSGFzaCgpIGNvbnN0CiAKIHZvaWQgQXJnOjpkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CisgICAgYXV0byBkdW1wWmVyb0ltbSA9IFsmXSAoKSAt
PiBjb25zdCBjaGFyKiB7CisgICAgICAgIGlmIChpc0FSTTY0KCkpCisgICAgICAgICAgICByZXR1
cm4gIiUleHpyIjsKKyAgICAgICAgcmV0dXJuICIkMCI7CisgICAgfTsKKwogICAgIHN3aXRjaCAo
bV9raW5kKSB7CiAgICAgY2FzZSBJbnZhbGlkOgogICAgICAgICBvdXQucHJpbnQoIjxpbnZhbGlk
PiIpOwpAQCAtMTU5LDYgKzE2Niw5IEBAIHZvaWQgQXJnOjpkdW1wKFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0CiAgICAgY2FzZSBCaXRJbW02NDoKICAgICAgICAgb3V0LnByaW50ZigiJDB4JWxseCIs
IHN0YXRpY19jYXN0PGxvbmcgbG9uZyB1bnNpZ25lZD4obV9vZmZzZXQpKTsKICAgICAgICAgcmV0
dXJuOworICAgIGNhc2UgWmVyb0ltbToKKyAgICAgICAgb3V0LnByaW50KGR1bXBaZXJvSW1tKCkp
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTaW1wbGVBZGRyOgogICAgICAgICBvdXQucHJp
bnQoIigiLCBiYXNlKCksICIpIik7CiAgICAgICAgIHJldHVybjsKQEAgLTIzNiw2ICsyNDYsOSBA
QCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgQXJnOjpLaW5kIGtpbmQpCiAg
ICAgY2FzZSBBcmc6OkJpdEltbTY0OgogICAgICAgICBvdXQucHJpbnQoIkJpdEltbTY0Iik7CiAg
ICAgICAgIHJldHVybjsKKyAgICBjYXNlIEFyZzo6WmVyb0ltbToKKyAgICAgICAgb3V0LnByaW50
KCJaZXJvSW1tIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEFyZzo6U2ltcGxlQWRkcjoK
ICAgICAgICAgb3V0LnByaW50KCJTaW1wbGVBZGRyIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCmluZGV4IDg3MjA0ZTY3Yzc3NzUzYjQxNjUyZjcz
OTRmMGMzNDY3M2RjYjM5YjQuLjFmZDhiNTQ2ODk2MmE3MGFlMzg3YjI0MTFlMzM4Yzg0MmFiOWM1
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaApAQCAtNjQsMTAgKzY0LDEy
IEBAIHB1YmxpYzoKICAgICAgICAgLy8gdXN1YWxseSBvbmx5IHVzYWJsZSB3aXRoIE1vdmUuIFNw
ZWNpYWxzIG1heSBhbHNvIGFkbWl0IGl0LCBmb3IgZXhhbXBsZSBmb3Igc3RhY2ttYXBzIHVzZWQg
Zm9yCiAgICAgICAgIC8vIE9TUiBleGl0IGFuZCB0YWlsIGNhbGxzLgogICAgICAgICAvLyBCaXRJ
bW0gaXMgYW4gaW1tZWRpYXRlIGZvciBCaXR3aXNlIG9wZXJhdGlvbiAoQW5kLCBYb3IsIGV0Yyku
CisgICAgICAgIC8vIFplcm9JbW0gaXMgaW50ZXJwcmV0ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVyIGlu
IEFSTTY0IGFuZCBUcnVzdGVkSW1tMzIoMCkgaW4gWDg2IGFuZCBYODZfNjQKICAgICAgICAgSW1t
LAogICAgICAgICBCaWdJbW0sCiAgICAgICAgIEJpdEltbSwKICAgICAgICAgQml0SW1tNjQsCisg
ICAgICAgIFplcm9JbW0sCiAKICAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBhZGRyZXNzZXMuIElu
c3RydWN0aW9ucyBtYXkgbG9hZCBmcm9tIChVc2UpLCBzdG9yZSB0byAoRGVmKSwgb3IgZXZhbHVh
dGUKICAgICAgICAgLy8gKFVzZUFkZHIpIGFkZHJlc3Nlcy4KQEAgLTg2LDYgKzg4LDcgQEAgcHVi
bGljOgogICAgICAgICBTdGF0dXNDb25kLAogICAgICAgICBTcGVjaWFsLAogICAgICAgICBXaWR0
aEFyZworCiAgICAgfTsKICAgICAKICAgICBlbnVtIFRlbXBlcmF0dXJlIDogaW50OF90IHsKQEAg
LTY5Myw2ICs2OTYsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
IAorICAgIHN0YXRpYyBBcmcgemVyb0ltbSgpCisgICAgeworICAgICAgICBBcmcgcmVzdWx0Owor
ICAgICAgICByZXN1bHQubV9raW5kID0gWmVyb0ltbTsKKyAgICAgICAgcmVzdWx0Lm1fb2Zmc2V0
ID0gMDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgQXJnJiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX29mZnNl
dCA9PSBvdGhlci5tX29mZnNldApAQCAtNzQ2LDYgKzc1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAg
Y2FzZSBCaWdJbW06CiAgICAgICAgIGNhc2UgQml0SW1tOgogICAgICAgICBjYXNlIEJpdEltbTY0
OgorICAgICAgICBjYXNlIFplcm9JbW06CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTg1MCw2ICs4NjIsMTEg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4ga2luZCgpID09IFdpZHRoQXJnOwogICAgIH0KIAor
ICAgIGJvb2wgaXNaZXJvSW1tKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBraW5kKCkg
PT0gWmVyb0ltbTsKKyAgICB9CisKICAgICBib29sIGlzQWxpdmUoKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIGlzVG1wKCkgfHwgaXNTdGFjaygpOwpAQCAtMTAyMiw2ICsxMDM5LDcgQEAg
cHVibGljOgogICAgICAgICBjYXNlIEJpZ0ltbToKICAgICAgICAgY2FzZSBCaXRJbW06CiAgICAg
ICAgIGNhc2UgQml0SW1tNjQ6CisgICAgICAgIGNhc2UgWmVyb0ltbToKICAgICAgICAgY2FzZSBT
aW1wbGVBZGRyOgogICAgICAgICBjYXNlIEFkZHI6CiAgICAgICAgIGNhc2UgRXh0ZW5kZWRPZmZz
ZXRBZGRyOgpAQCAtMTA1Nyw2ICsxMDc1LDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIFNwZWNp
YWw6CiAgICAgICAgIGNhc2UgV2lkdGhBcmc6CiAgICAgICAgIGNhc2UgSW52YWxpZDoKKyAgICAg
ICAgY2FzZSBaZXJvSW1tOgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNl
IFNpbXBsZUFkZHI6CiAgICAgICAgIGNhc2UgQWRkcjoKQEAgLTExODAsNiArMTE5OSwxMSBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBzdGF0aWMgYm9vbCBp
c1ZhbGlkWmVyb0ltbUZvcm0oaW50NjRfdCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiAh
dmFsdWU7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW50LCB0eXBlbmFtZSA9IFZh
bHVlOjpJc0xlZ2FsT2Zmc2V0PEludD4+CiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZEFkZHJGb3Jt
KEludCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8V2lkdGg+IHdpZHRoID0gc3RkOjpudWxsb3B0KQog
ICAgIHsKQEAgLTEyMzYsNiArMTI2MCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBp
c1ZhbGlkQml0SW1tRm9ybSh2YWx1ZSgpKTsKICAgICAgICAgY2FzZSBCaXRJbW02NDoKICAgICAg
ICAgICAgIHJldHVybiBpc1ZhbGlkQml0SW1tNjRGb3JtKHZhbHVlKCkpOworICAgICAgICBjYXNl
IFplcm9JbW06CisgICAgICAgICAgICByZXR1cm4gaXNWYWxpZFplcm9JbW1Gb3JtKHZhbHVlKCkp
OwogICAgICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAgIGNhc2UgRXh0ZW5kZWRPZmZzZXRB
ZGRyOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzMxLDYgKzEzNTcsMTggQEAgcHVi
bGljOgogICAgIH0KICNlbmRpZgogCisjaWYgQ1BVKEFSTTY0KQorICAgIE1hY3JvQXNzZW1ibGVy
OjpSZWdpc3RlcklEIGFzWmVyb0ltbSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gQVJN
NjRSZWdpc3RlcnM6OnpyOworICAgIH0KKyNlbGlmIENQVShYODZfNjQpIHx8IENQVShYODYpCisg
ICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBhc1plcm9JbW0oKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCk7CisgICAgfQor
I2VuZGlmCisKICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0ciBhc1RydXN0ZWRJbW1Q
dHIoKSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKGlzNjRCaXQoKSkKQEAgLTEzNzksNyArMTQx
Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGlzU3RhdHVzQ29uZCgpKTsKICAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PE1hY3JvQXNzZW1ibGVyOjpTdGF0dXNDb25kaXRpb24+KG1fb2Zm
c2V0KTsKICAgICB9Ci0gICAgCisKICAgICAvLyBUZWxscyB5b3UgaWYgdGhlIEFyZyBpcyBpbnZl
cnRpYmxlLiBPbmx5IGNvbmRpdGlvbiBhcmd1bWVudHMgYXJlIGludmVydGlibGUsIGFuZCBldmVu
IGZvciB0aG9zZSwgdGhlcmUKICAgICAvLyBhcmUgYSBmZXcgZXhjZXB0aW9ucyAtIG5vdGFibHkg
T3ZlcmZsb3cgYW5kIFNpZ25lZC4KICAgICBib29sIGlzSW52ZXJ0aWJsZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCmlu
ZGV4IDljOGY1MWU0ZTAyNzAxZWVkYmE0Y2U3OTIzY2Y1NTc0Y2ZiM2Q3N2MuLmVmYzZmYmMxOGM3
ZjVhZDIyZDA3NmEyMWY0NTI1M2EwNmIyMTJjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCkBAIC0xNTcsOSArMTU3LDkgQEAg
dm9pZCBsb3dlclN0YWNrQXJncyhDb2RlJiBjb2RlKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHNsb3QtPmJ5dGVTaXplKCkgPT0gOCk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQod2lkdGggPT0gV2lkdGgzMik7CiAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChpc1ZhbGlkRm9ybShTdG9yZVpl
cm8zMiwgQXJnOjpTdGFjaykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKGlzVmFsaWRGb3JtKFN0b3JlMzIsIEFyZzo6WmVyb0ltbSwgQXJnOjpTdGFjaykpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnQoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RJbmRleCArIDEsIFN0b3JlWmVybzMyLCBpbnN0
Lm9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdEluZGV4ICsgMSwg
U3RvcmUzMiwgaW5zdC5vcmlnaW4sIEFyZzo6emVyb0ltbSgpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGFja0FkZHIoYXJnLm9mZnNldCgpICsgNCArIHNsb3QtPm9mZnNldEZy
b21GUCgpKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICBhcmcgPSBzdGFja0FkZHIoYXJnLm9mZnNldCgpICsgc2xvdC0+b2Zmc2V0RnJvbUZQKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bj
b2RlcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKaW5k
ZXggMDVkYzNhOWZlYzQ2OTY4NDAzMWQ4OGQ3M2VjMzdjYzA1OGJlMWY1Ny4uMmU0MGQ1MjM4MTll
MDU5Zjc4Y2RiZjI2Mjk0MTBlMThhNWJmNjQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCkBAIC02NjMsMTQgKzY2MywxMyBAQCBNb3ZlMzIg
VTpHOjMyLCBaRDpHOjMyCiBNb3ZlMzIgVTpHOjMyLCBaRDpHOjMyLCBTOkc6MzIKICAgICBBZGRy
LCBBZGRyLCBUbXAKIAotIyBGSVhNRTogU3RvcmVaZXJvMzIgYW5kIFN0b3JlWmVybzY0IGFyZSBo
YWNrcyBvbiBBUk02NCwgd2UgY2FuIGRvIGJldHRlcjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NDgyMQotU3RvcmVaZXJvMzIgRDpHOjMyCi0gICAgQWRkcgotICAg
IEluZGV4CitTdG9yZTMyIFU6RzozMiwgWkQ6RzozMgorICAgIFplcm9JbW0sIEFkZHIKKyAgICBa
ZXJvSW1tLCBJbmRleAogCi02NDogU3RvcmVaZXJvNjQgRDpHOjY0Ci0gICAgQWRkcgotICAgIElu
ZGV4Cis2NDogU3RvcmU2NCBVOkc6NjQsIEQ6Rzo2NAorICAgIFplcm9JbW0sIEFkZHIKKyAgICBa
ZXJvSW1tLCBJbmRleAogCiBTaWduRXh0ZW5kMzJUb1B0ciBVOkc6MzIsIEQ6RzpQdHIKICAgICBU
bXAsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVf
Z2VuZXJhdG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJh
dG9yLnJiCmluZGV4IDZjNjFlY2U4NTc2YjhlMzE5YzVmNTgyMTg0ZDE3MzI3OTgzNjQwMmIuLjRl
Njg1YTUwM2VkZjJjZTQ0MDQwNjI0YTM0YTBmMjk4M2JiYzcxODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKQEAgLTIyOSw3ICsyMjks
NyBAQCBkZWYgaXNHRih0b2tlbikKIGVuZAogCiBkZWYgaXNLaW5kKHRva2VuKQotICAgIHRva2Vu
ID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1tNjQpfChTaW1wbGVB
ZGRyKXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8KFJlc0Nv
bmQpfChEb3VibGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCisgICAgdG9rZW4gPX4gL1xBKChUbXAp
fChJbW0pfChCaWdJbW0pfChCaXRJbW0pfChCaXRJbW02NCl8KFplcm9JbW0pfChTaW1wbGVBZGRy
KXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8KFJlc0NvbmQp
fChEb3VibGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCiBlbmQKIAogZGVmIGlzQXJjaCh0b2tlbikK
QEAgLTMwMyw3ICszMDMsNyBAQCBjbGFzcyBQYXJzZXIKIAogICAgIGRlZiBjb25zdW1lS2luZAog
ICAgICAgICByZXN1bHQgPSB0b2tlbi5zdHJpbmcKLSAgICAgICAgcGFyc2VFcnJvcigiRXhwZWN0
ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIFRtcCwgU2ltcGxlQWRkciwg
QWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwgUmVzQ29uZCwgRG91Ymxl
Q29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3VsdCkKKyAgICAgICAgcGFy
c2VFcnJvcigiRXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIFpl
cm9JbW0sIFRtcCwgU2ltcGxlQWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwg
UmVsQ29uZCwgUmVzQ29uZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNL
aW5kKHJlc3VsdCkKICAgICAgICAgYWR2YW5jZQogICAgICAgICByZXN1bHQKICAgICBlbmQKQEAg
LTQ3NSw2ICs0NzUsMTQgQEAgY2xhc3MgUGFyc2VyCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXJzZUVycm9yKCJGb3JtIGhhcyBhbiBpbW1lZGlhdGUgZm9yIGEgbm9uLWdl
bmVyYWwtcHVycG9zZSBhcmd1bWVudCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIGtpbmQubmFtZSA9PSAiWmVyb0ltbSIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgc2lnbmF0dXJlW2luZGV4XS5yb2xlICE9ICJVIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiWmVybyBpbW1lZGlhdGUgbXVzdCBi
ZSBhIHVzZSBhcmd1bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzaWduYXR1cmVbaW5kZXhdLmJhbmsg
IT0gIkciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKCJa
ZXJvIGltbWVkaWF0ZSBtdXN0IGJlIGEgZ2VuZXJhbC1wdXJwb3NlIGFyZ3VtZW50IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICBmb3JtcyA8PCBGb3JtLm5ldyhraW5kcywgYWx0TmFtZSwgaW50ZXJzZWN0QXJjaHMob3Bjb2Rl
QXJjaHMsIGZvcm1BcmNocykpCiAKQEAgLTkwMyw2ICs5MTEsOSBAQCB3cml0ZUgoIk9wY29kZUdl
bmVyYXRlZCIpIHsKICAgICAgICAgICAgICAgICB3aGVuICJCaXRJbW02NCIKICAgICAgICAgICAg
ICAgICAgICAgb3V0cC5wdXRzICJpZiAoIUFyZzo6aXNWYWxpZEJpdEltbTY0Rm9ybShhcmdzWyN7
aW5kZXh9XS52YWx1ZSgpKSkiCiAgICAgICAgICAgICAgICAgICAgIG91dHAucHV0cyAiT1BHRU5f
UkVUVVJOKGZhbHNlKTsiCisgICAgICAgICAgICAgICAgd2hlbiAiWmVyb0ltbSIKKyAgICAgICAg
ICAgICAgICAgICAgb3V0cC5wdXRzICJpZiAoIUFyZzo6aXNWYWxpZEltbUZvcm0oYXJnc1sje2lu
ZGV4fV0udmFsdWUoKSkpIgorICAgICAgICAgICAgICAgICAgICBvdXRwLnB1dHMgIk9QR0VOX1JF
VFVSTihmYWxzZSk7IgogICAgICAgICAgICAgICAgIHdoZW4gIlNpbXBsZUFkZHIiCiAgICAgICAg
ICAgICAgICAgICAgIG91dHAucHV0cyAiaWYgKCFhcmdzWyN7aW5kZXh9XS5wdHIoKS5pc0dQKCkp
IgogICAgICAgICAgICAgICAgICAgICBvdXRwLnB1dHMgIk9QR0VOX1JFVFVSTihmYWxzZSk7IgpA
QCAtMTIyMCw2ICsxMjMxLDggQEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAg
ICAgICAgICAgICAgIG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzVHJ1c3RlZEltbTMyKCki
CiAgICAgICAgICAgICAgICAgd2hlbiAiQmlnSW1tIiwgIkJpdEltbTY0IgogICAgICAgICAgICAg
ICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW02NCgpIgorICAg
ICAgICAgICAgICAgIHdoZW4gIlplcm9JbW0iCisgICAgICAgICAgICAgICAgICAgIG91dHAucHJp
bnQgImFyZ3NbI3tpbmRleH1dLmFzWmVyb0ltbSgpIgogICAgICAgICAgICAgICAgIHdoZW4gIlNp
bXBsZUFkZHIiLCAiQWRkciIsICJFeHRlbmRlZE9mZnNldEFkZHIiCiAgICAgICAgICAgICAgICAg
ICAgIG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzQWRkcmVzcygpIgogICAgICAgICAgICAg
ICAgIHdoZW4gIkluZGV4IgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCmluZGV4IDljN2QyOTk4
ZTJhODkwZjVlZGU3MGViNmI5ZTBmOTkxOTQ3ZmExMWYuLjc1M2UxMDRlNDUzNjFjYTc4ZWU0MzVi
OWVkZjE0MjgyM2NmMDBjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKQEAgLTY4MSw2
ICs2ODEsNyBAQCB2b2lkIHRlc3RJVG9EMzJJbW0oaW50MzJfdCB2YWx1ZSk7CiB2b2lkIHRlc3RJ
VG9GMzJJbW0oaW50MzJfdCB2YWx1ZSk7CiB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJn
KCk7CiB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJnKCk7Cit2b2lkIHRlc3RTdG9yZVpl
cm9JbW0oKTsKIHZvaWQgdGVzdFN0b3JlMzIoaW50IHZhbHVlKTsKIHZvaWQgdGVzdFN0b3JlQ29u
c3RhbnQoaW50IHZhbHVlKTsKIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnRQdHIoaW50cHRyX3QgdmFs
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKaW5kZXggMmJlODgzMjg2MWZk
MGQ1YTY1MDMzMjlkM2EzZTdiOWNkZjNiN2IwMS4uMTcxOTBjYzVmMmMwZjdlOWZiYTk3M2Q1ZTE0
YTk2NzVhMTMwNmVlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
M18xLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCkBAIC0z
MzgsNiArMzM4LDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTl9VTkFS
WSh0ZXN0Q2hlY2tBZGRSZW1vdmVDaGVja1dpdGhTRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAg
ICAgUlVOX1VOQVJZKHRlc3RDaGVja0FkZFJlbW92ZUNoZWNrV2l0aFpFeHQzMiwgaW50MzJPcGVy
YW5kcygpKTsKIAorICAgIFJVTih0ZXN0U3RvcmVaZXJvSW1tKCkpOwogICAgIFJVTih0ZXN0U3Rv
cmUzMig0NCkpOwogICAgIFJVTih0ZXN0U3RvcmVDb25zdGFudCg0OSkpOwogICAgIFJVTih0ZXN0
U3RvcmVDb25zdGFudFB0cig0OSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiM18zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAK
aW5kZXggNzJiMDhkMTZhYTcyOWNkYjgzNDZmZDJmYWFmY2FkOWUwMDM5ZDZlYi4uY2UwMjk2ZDYw
MGM4NmE1NjNkMzljZWIwOWY4ZDUxNjUyYzliN2U1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzXzMuY3BwCkBAIC0yOTA2LDYgKzI5MDYsODMgQEAgdm9pZCB0ZXN0U3RvcmUzMihpbnQg
dmFsdWUpCiAgICAgQ0hFQ0soc2xvdCA9PSB2YWx1ZSk7CiB9CiAKK3ZvaWQgdGVzdFN0b3JlWmVy
b0ltbSgpCit7CisgICAgLy8gRGlyZWN0IGFkZHJlc3NpbmcKKyAgICB7CisgICAgICAgIGludDMy
X3Qgc2xvdDMyID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwor
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywg
U3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QzMiksIDApOworICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisg
ICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBpbnZva2U8aW50
PigqY29kZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3QzMiwgMCk7CisgICAgfQorCisgICAgewor
ICAgICAgICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVyZSBw
cm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAg
ICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAg
ICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90NjQpLCAwKTsKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHZhbHVlKTsKKworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAg
ICAgaW52b2tlPGludD4oKmNvZGUpOworICAgICAgICBDSEVDS19FUShzbG90NjQsIDApOworICAg
IH0KKworICAgIC8vIEluZGV4ZWQgYWRkcmVzc2luZworICAgIHsKKyAgICAgICAgUHJvY2VkdXJl
IHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAg
ICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAg
ICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUqIGRp
c3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7CisgICAg
ICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcywg
MCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJhYWRiZWVmOwor
ICAgICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZzbG90MzIsIDEpOworICAgICAg
ICBDSEVDS19FUShzbG90MzIsIDApOworICAgIH0KKworICAgIHsKKyAgICAgICAgUHJvY2VkdXJl
IHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAg
ICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAg
ICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUqIGRp
c3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7CisgICAg
ICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcywg
MCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50NjRfdCBzbG90NjQgPSAweGJhYWRiZWVmOwor
ICAgICAgICBjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzbG90NjQsIDEpOworICAgICAg
ICBDSEVDS19FUShzbG90NjQsIDApOworICAgIH0KK30KKwogdm9pZCB0ZXN0U3RvcmVDb25zdGFu
dChpbnQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433339</attachid>
            <date>2021-07-12 12:18:57 -0700</date>
            <delta_ts>2021-07-12 21:57:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210712141856.patch</filename>
            <type>text/plain</type>
            <size>21131</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
Zjk2NzYxZTk2ZTViNTEyOWEzMTg1ZjQ0NjkxYjY2Y2NiYjE4Mjc0Li5lMmJhN2NiNjAzODljZmVi
YmYwNzk4NDBhNTQzZTU3NTE1YmJjZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAyMS0wNy0xMiAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgSW1tWmVybyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQjMgaXMgZGVzaWduZWQgdG8gYmUgcG9ydGFibGUgdG8gbWFueSBraW5kcyBvZiBDUFVz
LiBIb3dldmVyLCB0byBlZmZlY3RpdmVseSBjb21waWxlIGNvZGUgdG8gCisgICAgICAgIGRpZmZl
cmVudCBDUFVzLCB0aGUgY29tcGlsZXIgbXVzdCBldmVudHVhbGx5IG1ha2UgZXhwbGljaXQgaW5z
dHJ1Y3Rpb24gc2V0IGRldGFpbHMuIFRoZW4sIEFpciAKKyAgICAgICAgaXMgaW50cm9kdWNlZCwg
YW5kIGl0IGlzIGRlc2lnbmVkIHRvIHRhcmdldCBpbmRpdmlkdWFsIENQVSBhcmNoaXRlY3R1cmVz
IGFuZCBnZW5lcmF0ZSBpbnN0cnVjdGlvbnMgCisgICAgICAgIHNwZWNpZmljIHRvIHRob3NlIENQ
VXMuCisKKyAgICAgICAgUHJldmlvdXNseSwgQjMgYW5kIEFpciBkb24ndCByZWNvZ25pemUgdGhl
IHplcm8gcmVnaXN0ZXIuIFRoaXMgcHJvYmxlbSBoYXMgYmVlbiBwb2ludGVkIG91dCAKKyAgICAg
ICAgaW4gIzE3NDgyMSwgd2hpY2ggd2FzIHRyeWluZyB0byBpbnRyb2R1Y2UgdGhlIG5ldyBvcGNv
ZGVzIHRvIGhhbmRsZSB0aGUgemVybyByZWdpc3Rlci4gCisKKyAgICAgICAgVG8gc29sdmUgdGhp
cyBwcm9ibGVtIGluIGEgbW9kdWxhciByZWFzb25pbmcgYXBwcm9hY2gsIGEgbmV3IEFpciBvcGVy
YW5kIFplcm9SZWcgc2hvdWxkIGJlIAorICAgICAgICBpbnRyb2R1Y2VkLiBJdHMgZ29hbCBpcyB0
byBjbG9zZWx5IG1hdGNoIHRoZSBDUFUgaW5zdHJ1Y3Rpb25zIGFjY2VwdGluZyB0aGUgemVybyBy
ZWdpc3RlciBpbiAKKyAgICAgICAgQVJNNjQuIEFub3RoZXIgcmVhc29uIGlzIHRoYXQgdGhlIG5l
dyBvdmVybG9hZHMgb2YgdGhlIGluc3RydWN0aW9ucyB0YWtpbmcgdGhlIHplcm8gcmVnaXN0ZXIg
CisgICAgICAgIGNhbiBiZW5lZml0IGluc3RydWN0aW9uIHNlbGVjdGlvbiB3aXRoIHRoaXMgaW1w
bGVtZW50YXRpb24uCisKKyAgICAgICAgSGVyZSwgdGhlIFplcm9SZWcgaXMgYWRkZWQgYXMgYSBu
ZXcga2luZCBmb3IgQWlyOjpBcmcsIHdoaWNoIGFjdHMgYXMgYSAiaGlnaCBsZXZlbCIgb3BlcmFu
ZCAKKyAgICAgICAgdG8gYmUgZW1pdHRlZCB3aXRoIHRoZSBhc3NvY2lhdGl2ZSBvcGNvZGVzLiBJ
biBBUk02NCwgdGhlIFplcm9SZWcgd291bGQgYmUgZW1pdHRlZCBhcyBhIHplcm8gcmVnaXN0ZXIu
CisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVplcm82NCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlWmVybzMyKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAg
ICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVaZXJvMzIpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVaZXJvMTYpOiBEZWxldGVkLgor
ICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3RvcmVaZXJvNjQpOiBEZWxldGVkLgorICAgICAgICAq
IGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6Cisg
ICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6Onpl
cm9SZWcpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzU29tZUltbSBjb25zdCk6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNaZXJvUmVnIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6QXJnOjppc0dQIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJn
Ojppc0ZQIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjppc1ZhbGlkRm9ybSBj
b25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6YXNaZXJvUmVnIGNvbnN0KToKKyAg
ICAgICAgKiBiMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpsb3dlclN0YWNrQXJncyk6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVz
OgorICAgICAgICAqIGIzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiOgorICAgICAgICAqIGIzL3Rl
c3RiMy5oOgorICAgICAgICAqIGIzL3Rlc3RiM18xLmNwcDoKKyAgICAgICAgKHJ1bik6CisgICAg
ICAgICogYjMvdGVzdGIzXzMuY3BwOgorICAgICAgICAodGVzdFN0b3JlWmVyb1JlZyk6CisKIDIw
MjEtMDctMTAgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29u
dGludWUgdG8gY29uc3VsdCBJbmxpbmVBY2Nlc3MncyBTdHJ1Y3R1cmUgZXZlbiBhZnRlciBzd2l0
Y2hpbmcgdG8gYSBzdHViIElDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4IGRmNjVjYjYzNjFmNGFiMDVhMDU1MGUz
MGUzNGE4NTc3OWFlZGFmN2YuLmE2YWVhMjQzMjYyZWIxZjM3OTE5NzMyZDBmNmJiY2M1MzA1MTU3
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk02NC5oCkBAIC0xNzExLDE2ICsxNzExLDYgQEAgcHVibGljOgogICAgICAgICBt
X2Fzc2VtYmxlci5zdHI8NjQ+KHNyYywgZGVzdCwgc2ltbSk7CiAgICAgfQogICAgIAotICAgIHZv
aWQgc3RvcmVaZXJvNjQoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBz
dG9yZTY0KEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotICAgIAotICAgIHZv
aWQgc3RvcmVaZXJvNjQoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTY0
KEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotICAgIAogICAgIERhdGFMYWJl
bDMyIHN0b3JlNjRXaXRoQWRkcmVzc09mZnNldFBhdGNoKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNz
IGFkZHJlc3MpCiAgICAgewogICAgICAgICBEYXRhTGFiZWwzMiBsYWJlbCh0aGlzKTsKQEAgLTE4
MTgsMTYgKzE4MDgsNiBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlMzIoZGF0YVRlbXBSZWdpc3Rl
ciwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVplcm8zMihJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMzIoQVJNNjRSZWdpc3RlcnM6OnpyLCBh
ZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3JlWmVybzMyKEJhc2VJbmRleCBhZGRyZXNz
KQotICAgIHsKLSAgICAgICAgc3RvcmUzMihBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwot
ICAgIH0KLQogICAgIERhdGFMYWJlbDMyIHN0b3JlMzJXaXRoQWRkcmVzc09mZnNldFBhdGNoKFJl
Z2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBEYXRhTGFiZWwz
MiBsYWJlbCh0aGlzKTsKQEAgLTE4NzMsMTYgKzE4NTMsNiBAQCBwdWJsaWM6CiAgICAgICAgIHN0
b3JlMTYoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9y
ZVplcm8xNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYo
QVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3JlWmVy
bzE2KEJhc2VJbmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihBUk02NFJlZ2lz
dGVyczo6enIsIGFkZHJlc3MpOwotICAgIH0KLQogICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQg
c3JjLCBCYXNlSW5kZXggYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmICghYWRkcmVzcy5vZmZz
ZXQgJiYgIWFkZHJlc3Muc2NhbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAppbmRleCBhMjY1NTNhNWJj
ZTBmY2Y3YmYwODA3MmY1OTgyYzliNTA3NjIwYWVmLi41NGQ0NTY3ZDRjMWM0NWRmZTBjMzI4Y2E3
YmNkYjg0ZTllYjJmOTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCkBAIC0xMzM3LDI2ICsxMzM3LDYg
QEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZsX2kzMm0oaW1tLm1fdmFsdWUsIGFk
ZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUp
OwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVaZXJvMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Mp
Ci0gICAgewotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7Ci0gICAg
fQotCi0gICAgdm9pZCBzdG9yZVplcm8zMihCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAg
ICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lk
IHN0b3JlWmVybzE2KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3Rv
cmUxNihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVa
ZXJvMTYoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KFRydXN0ZWRJ
bW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCiAgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMy
IGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMyIGltbTgo
c3RhdGljX2Nhc3Q8aW50OF90PihpbW0ubV92YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCmluZGV4IDMzNDcy
ZGQ5MzFhOTdiMDliOTdkYzkyZjUxMWU2YzIyZGNhMzIxMjIuLjk0MzdmZDNiZDJhYzE2NjgxNmYy
OGYzN2RiZDk5MDUxZGYzN2ExYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKQEAgLTEwMTUsMTYgKzEwMTUsNiBA
QCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnFfcm0oc2NyYXRjaFJlZ2lzdGVyKCks
IGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2Nh
bGUpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3Mp
OwotICAgIH0KLSAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEJhc2VJbmRleCBhZGRyZXNzKQot
ICAgIHsKLSAgICAgICAgc3RvcmU2NChUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0K
LSAgICAKICAgICBEYXRhTGFiZWwzMiBzdG9yZTY0V2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdp
c3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgcGFkQmVmb3JlUGF0
Y2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKaW5kZXggMmI1
NTZkNzE4MzMzNzIwYmZhNzg3M2M3NzliZDI5MWZkMTI2MTc5MS4uODQ5OTUwMzQ0ZDRhZDIwMjVj
NGQ4NDQzYTZkYTVlMzEwYTM1YjcyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93
ZXJUb0Fpci5jcHAKQEAgLTcwMiw2ICs3MDIsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJu
IEFyZygpOwogICAgIH0KIAorICAgIEFyZyB6ZXJvUmVnKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBBcmc6Onplcm9SZWcoKTsKKyAgICB9CisKICAgICBBcmcgaW1tT3JUbXAoVmFsdWUqIHZhbHVl
KQogICAgIHsKICAgICAgICAgaWYgKEFyZyByZXN1bHQgPSBpbW0odmFsdWUpKQpAQCAtMTA5NCwx
NyArMTA5OSwxNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgdXNpbmcgbmFtZXNwYWNlIEFp
cjsKICAgICAgICAgaWYgKGF1dG8gaW1tX3ZhbHVlID0gaW1tKHZhbHVlKSkgewotICAgICAgICAg
ICAgaWYgKGlzQVJNNjQoKSAmJiBpbW1fdmFsdWUudmFsdWUoKSA9PSAwKSB7CisgICAgICAgICAg
ICBpZiAoIWltbV92YWx1ZS52YWx1ZSgpKSB7CiAgICAgICAgICAgICAgICAgc3dpdGNoIChtb3Zl
Lm9wY29kZSkgewogICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQWlyOjpNb3ZlMzI6Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm8zMiwgZGVzdC5raW5kKCkpICYmIGRlc3Qu
aXNWYWxpZEZvcm0oV2lkdGgzMikpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5z
dChTdG9yZVplcm8zMiwgbV92YWx1ZSwgZGVzdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChp
c1ZhbGlkRm9ybShTdG9yZTMyLCBBcmc6Olplcm9SZWcsIGRlc3Qua2luZCgpKSAmJiBkZXN0Lmlz
VmFsaWRGb3JtKFdpZHRoMzIpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3Qo
U3RvcmUzMiwgbV92YWx1ZSwgemVyb1JlZygpLCBkZXN0KTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBBaXI6Ok1vdmU6Ci0gICAgICAgICAgICAgICAg
ICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm82NCwgZGVzdC5raW5kKCkpICYmIGRlc3QuaXNW
YWxpZEZvcm0oV2lkdGg2NCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5zdChT
dG9yZVplcm82NCwgbV92YWx1ZSwgZGVzdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc1Zh
bGlkRm9ybShTdG9yZTY0LCBBcmc6Olplcm9SZWcsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFs
aWRGb3JtKFdpZHRoNjQpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3Rv
cmU2NCwgbV92YWx1ZSwgemVyb1JlZygpLCBkZXN0KTsKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJBcmcuY3BwCmluZGV4IDY3ODY5OWVmZGQ1YmNkZWQzY2JlNGEyNjllZDJjMmY3
YzQ4YTJhMzEuLmViN2Q0MmUzMzI2NmNhMGUzZDU2YjU2MDhiNTg4ZjEyM2NiMWUxZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKQEAgLTEwOCw2ICsxMDgsNyBAQCB1
bnNpZ25lZCBBcmc6OmpzSGFzaCgpIGNvbnN0CiAgICAgY2FzZSBEb3VibGVDb25kOgogICAgIGNh
c2UgU3RhdHVzQ29uZDoKICAgICBjYXNlIFdpZHRoQXJnOgorICAgIGNhc2UgWmVyb1JlZzoKICAg
ICAgICAgcmVzdWx0ICs9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX29mZnNldCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQmlnSW1tOgpAQCAtMTU5LDYgKzE2MCw5IEBAIHZvaWQgQXJnOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgY2FzZSBCaXRJbW02NDoKICAgICAgICAg
b3V0LnByaW50ZigiJDB4JWxseCIsIHN0YXRpY19jYXN0PGxvbmcgbG9uZyB1bnNpZ25lZD4obV9v
ZmZzZXQpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgWmVyb1JlZzoKKyAgICAgICAgb3V0
LnByaW50KCIlJXh6ciIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTaW1wbGVBZGRyOgog
ICAgICAgICBvdXQucHJpbnQoIigiLCBiYXNlKCksICIpIik7CiAgICAgICAgIHJldHVybjsKQEAg
LTIzNiw2ICsyNDAsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgQXJn
OjpLaW5kIGtpbmQpCiAgICAgY2FzZSBBcmc6OkJpdEltbTY0OgogICAgICAgICBvdXQucHJpbnQo
IkJpdEltbTY0Iik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEFyZzo6WmVyb1JlZzoKKyAg
ICAgICAgb3V0LnByaW50KCJaZXJvUmVnIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEFy
Zzo6U2ltcGxlQWRkcjoKICAgICAgICAgb3V0LnByaW50KCJTaW1wbGVBZGRyIik7CiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJn
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCmluZGV4IDg3MjA0ZTY3
Yzc3NzUzYjQxNjUyZjczOTRmMGMzNDY3M2RjYjM5YjQuLmRjYWI5NjI2Mzc1MWE3M2U5NzY2MTY1
YTQwOWRmYTMyMjk2YjFjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQXJnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaApA
QCAtODUsNyArODUsMTAgQEAgcHVibGljOgogICAgICAgICBEb3VibGVDb25kLAogICAgICAgICBT
dGF0dXNDb25kLAogICAgICAgICBTcGVjaWFsLAotICAgICAgICBXaWR0aEFyZworICAgICAgICBX
aWR0aEFyZywKKworICAgICAgICAvLyBaZXJvUmVnIGlzIGludGVycHJldGVkIGFzIGEgemVybyBy
ZWdpc3RlciBpbiBBUk02NAorICAgICAgICBaZXJvUmVnCiAgICAgfTsKICAgICAKICAgICBlbnVt
IFRlbXBlcmF0dXJlIDogaW50OF90IHsKQEAgLTY5Myw2ICs2OTYsMTQgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAorICAgIHN0YXRpYyBBcmcgemVyb1JlZygpCisg
ICAgeworICAgICAgICBBcmcgcmVzdWx0OworICAgICAgICByZXN1bHQubV9raW5kID0gWmVyb1Jl
ZzsKKyAgICAgICAgcmVzdWx0Lm1fb2Zmc2V0ID0gMDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQXJnJiBvdGhlcikgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBtX29mZnNldCA9PSBvdGhlci5tX29mZnNldApAQCAtNzQ2LDYg
Kzc1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBCaWdJbW06CiAgICAgICAgIGNhc2UgQml0
SW1tOgogICAgICAgICBjYXNlIEJpdEltbTY0OgorICAgICAgICBjYXNlIFplcm9SZWc6CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTg1MCw2ICs4NjIsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4ga2lu
ZCgpID09IFdpZHRoQXJnOwogICAgIH0KIAorICAgIGJvb2wgaXNaZXJvUmVnKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiBraW5kKCkgPT0gWmVyb1JlZzsKKyAgICB9CisKICAgICBib29s
IGlzQWxpdmUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIGlzVG1wKCkgfHwgaXNTdGFj
aygpOwpAQCAtMTAyMiw2ICsxMDM5LDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIEJpZ0ltbToK
ICAgICAgICAgY2FzZSBCaXRJbW06CiAgICAgICAgIGNhc2UgQml0SW1tNjQ6CisgICAgICAgIGNh
c2UgWmVyb1JlZzoKICAgICAgICAgY2FzZSBTaW1wbGVBZGRyOgogICAgICAgICBjYXNlIEFkZHI6
CiAgICAgICAgIGNhc2UgRXh0ZW5kZWRPZmZzZXRBZGRyOgpAQCAtMTA1Nyw2ICsxMDc1LDcgQEAg
cHVibGljOgogICAgICAgICBjYXNlIFNwZWNpYWw6CiAgICAgICAgIGNhc2UgV2lkdGhBcmc6CiAg
ICAgICAgIGNhc2UgSW52YWxpZDoKKyAgICAgICAgY2FzZSBaZXJvUmVnOgogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAgIGNhc2UgQWRk
cjoKQEAgLTEyMzYsNiArMTI1NSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBpc1Zh
bGlkQml0SW1tRm9ybSh2YWx1ZSgpKTsKICAgICAgICAgY2FzZSBCaXRJbW02NDoKICAgICAgICAg
ICAgIHJldHVybiBpc1ZhbGlkQml0SW1tNjRGb3JtKHZhbHVlKCkpOworICAgICAgICBjYXNlIFpl
cm9SZWc6CiAgICAgICAgIGNhc2UgU2ltcGxlQWRkcjoKICAgICAgICAgY2FzZSBFeHRlbmRlZE9m
ZnNldEFkZHI6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEzMzEsNiArMTM1MSwxMyBA
QCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAKKyNpZiBDUFUoQVJNNjQpCisgICAgTWFjcm9Bc3Nl
bWJsZXI6OlJlZ2lzdGVySUQgYXNaZXJvUmVnKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBBUk02NFJlZ2lzdGVyczo6enI7CisgICAgfQorI2VuZGlmCisKICAgICBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0ciBhc1RydXN0ZWRJbW1QdHIoKSBjb25zdAogICAgIHsKICAgICAgICAg
aWYgKGlzNjRCaXQoKSkKQEAgLTEzNzksNyArMTQwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNT
RVJUKGlzU3RhdHVzQ29uZCgpKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE1hY3JvQXNz
ZW1ibGVyOjpTdGF0dXNDb25kaXRpb24+KG1fb2Zmc2V0KTsKICAgICB9Ci0gICAgCisKICAgICAv
LyBUZWxscyB5b3UgaWYgdGhlIEFyZyBpcyBpbnZlcnRpYmxlLiBPbmx5IGNvbmRpdGlvbiBhcmd1
bWVudHMgYXJlIGludmVydGlibGUsIGFuZCBldmVuIGZvciB0aG9zZSwgdGhlcmUKICAgICAvLyBh
cmUgYSBmZXcgZXhjZXB0aW9ucyAtIG5vdGFibHkgT3ZlcmZsb3cgYW5kIFNpZ25lZC4KICAgICBi
b29sIGlzSW52ZXJ0aWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCmluZGV4IDljOGY1MWU0ZTAyNzAxZWVkYmE0Y2U3
OTIzY2Y1NTc0Y2ZiM2Q3N2MuLmFjN2Y1NDE1MTE1YWVlODhhNjZhZjU0NTA5MmI2YzI5MWNiODkz
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFj
a0FyZ3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFj
a0FyZ3MuY3BwCkBAIC0xNTcsOSArMTU3LDkgQEAgdm9pZCBsb3dlclN0YWNrQXJncyhDb2RlJiBj
b2RlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNsb3QtPmJ5
dGVTaXplKCkgPT0gOCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQod2lkdGggPT0gV2lkdGgzMik7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChpc1ZhbGlkRm9ybShTdG9yZVplcm8zMiwgQXJnOjpTdGFjaykpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzVmFsaWRGb3JtKFN0b3JlMzIs
IEFyZzo6WmVyb1JlZywgQXJnOjpTdGFjaykpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluc2VydGlvblNldC5pbnNlcnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
c3RJbmRleCArIDEsIFN0b3JlWmVybzMyLCBpbnN0Lm9yaWdpbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5zdEluZGV4ICsgMSwgU3RvcmUzMiwgaW5zdC5vcmlnaW4sIEFyZzo6
emVyb1JlZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFja0FkZHIoYXJn
Lm9mZnNldCgpICsgNCArIHNsb3QtPm9mZnNldEZyb21GUCgpKSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBzdGFja0FkZHIoYXJnLm9m
ZnNldCgpICsgc2xvdC0+b2Zmc2V0RnJvbUZQKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKaW5kZXggMDVkYzNhOWZlYzQ2OTY4NDAzMWQ4OGQ3
M2VjMzdjYzA1OGJlMWY1Ny4uN2NhOWQzOWFjZjAwZWNkNGM1M2MxOWIzZGYyNDU3ZThiOWE5M2Fj
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bj
b2RlcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVz
CkBAIC02NjMsMTQgKzY2MywxMyBAQCBNb3ZlMzIgVTpHOjMyLCBaRDpHOjMyCiBNb3ZlMzIgVTpH
OjMyLCBaRDpHOjMyLCBTOkc6MzIKICAgICBBZGRyLCBBZGRyLCBUbXAKIAotIyBGSVhNRTogU3Rv
cmVaZXJvMzIgYW5kIFN0b3JlWmVybzY0IGFyZSBoYWNrcyBvbiBBUk02NCwgd2UgY2FuIGRvIGJl
dHRlcjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDgyMQotU3Rv
cmVaZXJvMzIgRDpHOjMyCi0gICAgQWRkcgotICAgIEluZGV4Cithcm02NDogU3RvcmUzMiBVOkc6
MzIsIFpEOkc6MzIKKyAgICBaZXJvUmVnLCBBZGRyCisgICAgWmVyb1JlZywgSW5kZXgKIAotNjQ6
IFN0b3JlWmVybzY0IEQ6Rzo2NAotICAgIEFkZHIKLSAgICBJbmRleAorYXJtNjQ6IFN0b3JlNjQg
VTpHOjY0LCBEOkc6NjQKKyAgICBaZXJvUmVnLCBBZGRyCisgICAgWmVyb1JlZywgSW5kZXgKIAog
U2lnbkV4dGVuZDMyVG9QdHIgVTpHOjMyLCBEOkc6UHRyCiAgICAgVG1wLCBUbXAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgppbmRleCA2YzYx
ZWNlODU3NmI4ZTMxOWM1ZjU4MjE4NGQxNzMyNzk4MzY0MDJiLi4zNzQwZWZkYmRkMTQ2YTM3ZjZl
ZGU5ZGRiYzIzZGRiYTAzYjA3NjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCkBAIC0yMjksNyArMjI5LDcgQEAgZGVmIGlzR0YodG9r
ZW4pCiBlbmQKIAogZGVmIGlzS2luZCh0b2tlbikKLSAgICB0b2tlbiA9fiAvXEEoKFRtcCl8KElt
bSl8KEJpZ0ltbSl8KEJpdEltbSl8KEJpdEltbTY0KXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRl
bmRlZE9mZnNldEFkZHIpfChJbmRleCl8KFJlbENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8
KFN0YXR1c0NvbmQpKVxaLworICAgIHRva2VuID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1tKXwo
Qml0SW1tKXwoQml0SW1tNjQpfChaZXJvUmVnKXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRlbmRl
ZE9mZnNldEFkZHIpfChJbmRleCl8KFJlbENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0
YXR1c0NvbmQpKVxaLwogZW5kCiAKIGRlZiBpc0FyY2godG9rZW4pCkBAIC0zMDMsNyArMzAzLDcg
QEAgY2xhc3MgUGFyc2VyCiAKICAgICBkZWYgY29uc3VtZUtpbmQKICAgICAgICAgcmVzdWx0ID0g
dG9rZW4uc3RyaW5nCi0gICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmln
SW1tLCBCaXRJbW0sIEJpdEltbTY0LCBUbXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4dGVuZGVkT2Zm
c2V0QWRkciwgSW5kZXgsIFJlbENvbmQsIFJlc0NvbmQsIERvdWJsZUNvbmQsIG9yIFN0YXR1c0Nv
bmQpIikgdW5sZXNzIGlzS2luZChyZXN1bHQpCisgICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVk
IGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJbW0sIEJpdEltbTY0LCBaZXJvUmVnLCBUbXAsIFNpbXBs
ZUFkZHIsIEFkZHIsIEV4dGVuZGVkT2Zmc2V0QWRkciwgSW5kZXgsIFJlbENvbmQsIFJlc0NvbmQs
IERvdWJsZUNvbmQsIG9yIFN0YXR1c0NvbmQpIikgdW5sZXNzIGlzS2luZChyZXN1bHQpCiAgICAg
ICAgIGFkdmFuY2UKICAgICAgICAgcmVzdWx0CiAgICAgZW5kCkBAIC00NzUsNiArNDc1LDE0IEBA
IGNsYXNzIFBhcnNlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VF
cnJvcigiRm9ybSBoYXMgYW4gaW1tZWRpYXRlIGZvciBhIG5vbi1nZW5lcmFsLXB1cnBvc2UgYXJn
dW1lbnQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBraW5k
Lm5hbWUgPT0gIlplcm9SZWciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNp
Z25hdHVyZVtpbmRleF0ucm9sZSAhPSAiVSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhcnNlRXJyb3IoIlplcm8gaW1tZWRpYXRlIG11c3QgYmUgYSB1c2UgYXJndW1lbnQi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgc2lnbmF0dXJlW2luZGV4XS5iYW5rICE9ICJHIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiWmVybyBpbW1lZGlhdGUgbXVz
dCBiZSBhIGdlbmVyYWwtcHVycG9zZSBhcmd1bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgZm9ybXMgPDwgRm9ybS5u
ZXcoa2luZHMsIGFsdE5hbWUsIGludGVyc2VjdEFyY2hzKG9wY29kZUFyY2hzLCBmb3JtQXJjaHMp
KQogCkBAIC05MjYsNiArOTM0LDcgQEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAg
ICAgICAgICAgICAgd2hlbiAiUmVzQ29uZCIKICAgICAgICAgICAgICAgICB3aGVuICJEb3VibGVD
b25kIgogICAgICAgICAgICAgICAgIHdoZW4gIlN0YXR1c0NvbmQiCisgICAgICAgICAgICAgICAg
d2hlbiAiWmVyb1JlZyIKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
IHJhaXNlICJVbmV4cGVjdGVkIGtpbmQ6ICN7a2luZC5uYW1lfSIKICAgICAgICAgICAgICAgICBl
bmQKQEAgLTEyMjAsNiArMTIyOSw4IEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAg
ICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW0z
MigpIgogICAgICAgICAgICAgICAgIHdoZW4gIkJpZ0ltbSIsICJCaXRJbW02NCIKICAgICAgICAg
ICAgICAgICAgICAgb3V0cC5wcmludCAiYXJnc1sje2luZGV4fV0uYXNUcnVzdGVkSW1tNjQoKSIK
KyAgICAgICAgICAgICAgICB3aGVuICJaZXJvUmVnIgorICAgICAgICAgICAgICAgICAgICBvdXRw
LnByaW50ICJhcmdzWyN7aW5kZXh9XS5hc1plcm9SZWcoKSIKICAgICAgICAgICAgICAgICB3aGVu
ICJTaW1wbGVBZGRyIiwgIkFkZHIiLCAiRXh0ZW5kZWRPZmZzZXRBZGRyIgogICAgICAgICAgICAg
ICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5hc0FkZHJlc3MoKSIKICAgICAgICAg
ICAgICAgICB3aGVuICJJbmRleCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAppbmRleCA5Yzdk
Mjk5OGUyYTg5MGY1ZWRlNzBlYjZiOWUwZjk5MTk0N2ZhMTFmLi5kYTRhZDY2NjAwMGJjNTkwZWNj
ZTMzZTM5M2U0YzQ4NDIzZDE2Y2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC02
ODEsNiArNjgxLDcgQEAgdm9pZCB0ZXN0SVRvRDMySW1tKGludDMyX3QgdmFsdWUpOwogdm9pZCB0
ZXN0SVRvRjMySW1tKGludDMyX3QgdmFsdWUpOwogdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2
NEFyZygpOwogdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0YzMkFyZygpOwordm9pZCB0ZXN0U3Rv
cmVaZXJvUmVnKCk7CiB2b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSk7CiB2b2lkIHRlc3RTdG9y
ZUNvbnN0YW50KGludCB2YWx1ZSk7CiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50UHRyKGludHB0cl90
IHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCmluZGV4IDJiZTg4MzI4
NjFmZDBkNWE2NTAzMzI5ZDNhM2U3YjljZGYzYjdiMDEuLjFlMTM1Njc1NDQwMjdkYzdjNjY1MmU4
YzJkNjRjOWU4NTgwNzhkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjNfMS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcApA
QCAtMzM4LDYgKzMzOCw3IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU5f
VU5BUlkodGVzdENoZWNrQWRkUmVtb3ZlQ2hlY2tXaXRoU0V4dDMyLCBpbnQzMk9wZXJhbmRzKCkp
OwogICAgIFJVTl9VTkFSWSh0ZXN0Q2hlY2tBZGRSZW1vdmVDaGVja1dpdGhaRXh0MzIsIGludDMy
T3BlcmFuZHMoKSk7CiAKKyAgICBSVU4odGVzdFN0b3JlWmVyb1JlZygpKTsKICAgICBSVU4odGVz
dFN0b3JlMzIoNDQpKTsKICAgICBSVU4odGVzdFN0b3JlQ29uc3RhbnQoNDkpKTsKICAgICBSVU4o
dGVzdFN0b3JlQ29uc3RhbnRQdHIoNDkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjNfMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMu
Y3BwCmluZGV4IDcyYjA4ZDE2YWE3MjljZGI4MzQ2ZmQyZmFhZmNhZDllMDAzOWQ2ZWIuLjU3ODI1
Njg5ODdjYmM4YzZiZTY4MGE5NjJkMjdjM2Q0ZDE2MDY0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiM18zLmNwcApAQCAtMjkwNiw2ICsyOTA2LDgzIEBAIHZvaWQgdGVzdFN0b3JlMzIo
aW50IHZhbHVlKQogICAgIENIRUNLKHNsb3QgPT0gdmFsdWUpOwogfQogCit2b2lkIHRlc3RTdG9y
ZVplcm9SZWcoKQoreworICAgIC8vIERpcmVjdCBhZGRyZXNzaW5nCisgICAgeworICAgICAgICBp
bnQzMl90IHNsb3QzMiA9IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOworICAg
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZhbHVl
KiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHBy
b2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90MzIpLCAwKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsK
KworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAgICAgaW52b2tl
PGludD4oKmNvZGUpOworICAgICAgICBDSEVDS19FUShzbG90MzIsIDApOworICAgIH0KKworICAg
IHsKKyAgICAgICAgaW50NjRfdCBzbG90NjQgPSAweGJhYWRiZWVmOworICAgICAgICBQcm9jZWR1
cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKwor
ICAgICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisg
ICAgICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLAorICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdDY0KSwgMCk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB2YWx1ZSk7CisKKyAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7Cisg
ICAgICAgIGludm9rZTxpbnQ+KCpjb2RlKTsKKyAgICAgICAgQ0hFQ0tfRVEoc2xvdDY0LCAwKTsK
KyAgICB9CisKKyAgICAvLyBJbmRleGVkIGFkZHJlc3NpbmcKKyAgICB7CisgICAgICAgIFByb2Nl
ZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwor
CisgICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CisgICAgICAgIFZhbHVlKiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIFZhbHVl
KiBkaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgLTEpOworCisgICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQsIGJhc2UpOwor
ICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJl
c3MsIDApOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgICAgIGludDMyX3Qgc2xvdDMyID0gMHhiYWFkYmVl
ZjsKKyAgICAgICAgY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmc2xvdDMyLCAxKTsKKyAg
ICAgICAgQ0hFQ0tfRVEoc2xvdDMyLCAwKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFByb2Nl
ZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwor
CisgICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CisgICAgICAgIFZhbHVlKiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIFZhbHVl
KiBkaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgLTEpOworCisgICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQsIGJhc2UpOwor
ICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJl
c3MsIDApOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgICAgIGludDY0X3Qgc2xvdDY0ID0gMHhiYWFkYmVl
ZjsKKyAgICAgICAgY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc2xvdDY0LCAxKTsKKyAg
ICAgICAgQ0hFQ0tfRVEoc2xvdDY0LCAwKTsKKyAgICB9Cit9CisKIHZvaWQgdGVzdFN0b3JlQ29u
c3RhbnQoaW50IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433387</attachid>
            <date>2021-07-12 21:57:36 -0700</date>
            <delta_ts>2021-07-13 00:00:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210712235735.patch</filename>
            <type>text/plain</type>
            <size>19748</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
Zjk2NzYxZTk2ZTViNTEyOWEzMTg1ZjQ0NjkxYjY2Y2NiYjE4Mjc0Li5kN2U2ODkyYzc0ZGM4MDFj
MmNmMjg1YTcwMTBkMDI0NjgyMmRhOWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMS0wNy0xMiAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWmVyb1JlZyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVplcm82NCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlWmVybzMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAq
IGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVaZXJvMzIpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlclg4Nl82NDo6c3RvcmVaZXJvNjQpOiBEZWxldGVkLgorICAgICAgICAqIGIzL0Iz
TG93ZXJUb0Fpci5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChK
U0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAg
ICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9SZWcp
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzWmVyb1JlZyBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZv
cm0gY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmFzWmVyb1JlZyBjb25zdCk6
CisgICAgICAgICogYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcDoKKyAgICAgICAgKEpTQzo6
QjM6OkFpcjo6bG93ZXJTdGFja0FyZ3MpOgorICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bj
b2RlczoKKyAgICAgICAgKiBiMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBi
My90ZXN0YjMuaDoKKyAgICAgICAgKiBiMy90ZXN0YjNfMS5jcHA6CisgICAgICAgIChydW4pOgor
ICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoKKyAgICAgICAgKHRlc3RTdG9yZVplcm9SZWcpOgor
CiAyMDIxLTA3LTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAg
IENvbnRpbnVlIHRvIGNvbnN1bHQgSW5saW5lQWNjZXNzJ3MgU3RydWN0dXJlIGV2ZW4gYWZ0ZXIg
c3dpdGNoaW5nIHRvIGEgc3R1YiBJQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCBkZjY1Y2I2MzYxZjRhYjA1YTA1
NTBlMzBlMzRhODU3NzlhZWRhZjdmLi5hNmFlYTI0MzI2MmViMWYzNzkxOTczMmQwZjZiYmNjNTMw
NTE1Nzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtMTcxMSwxNiArMTcxMSw2IEBAIHB1YmxpYzoKICAgICAg
ICAgbV9hc3NlbWJsZXIuc3RyPDY0PihzcmMsIGRlc3QsIHNpbW0pOwogICAgIH0KICAgICAKLSAg
ICB2b2lkIHN0b3JlWmVybzY0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAg
ICAgc3RvcmU2NChBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwotICAgIH0KLSAgICAKLSAg
ICB2b2lkIHN0b3JlWmVybzY0KEJhc2VJbmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3Rv
cmU2NChBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwotICAgIH0KLSAgICAKICAgICBEYXRh
TGFiZWwzMiBzdG9yZTY0V2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRk
cmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBA
IC0xODE4LDE2ICsxODA4LDYgQEAgcHVibGljOgogICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVn
aXN0ZXIsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVaZXJvMzIoSW1wbGljaXRB
ZGRyZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTMyKEFSTTY0UmVnaXN0ZXJzOjp6
ciwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8zMihCYXNlSW5kZXggYWRk
cmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMzIoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNz
KTsKLSAgICB9Ci0KICAgICBEYXRhTGFiZWwzMiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRj
aChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxh
YmVsMzIgbGFiZWwodGhpcyk7CkBAIC0xODczLDE2ICsxODUzLDYgQEAgcHVibGljOgogICAgICAg
ICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQg
c3RvcmVaZXJvMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9y
ZTE2KEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9y
ZVplcm8xNihCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoQVJNNjRS
ZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0KICAgICB2b2lkIHN0b3JlOChSZWdpc3Rl
cklEIHNyYywgQmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mu
b2Zmc2V0ICYmICFhZGRyZXNzLnNjYWxlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5kZXggYTI2NTUz
YTViY2UwZmNmN2JmMDgwNzJmNTk4MmM5YjUwNzYyMGFlZi4uNTRkNDU2N2Q0YzFjNDVkZmUwYzMy
OGNhN2JjZGI4NGU5ZWIyZjk3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaApAQCAtMTMzNywyNiArMTMz
Nyw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubW92bF9pMzJtKGltbS5tX3ZhbHVl
LCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNj
YWxlKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlWmVybzMyKEltcGxpY2l0QWRkcmVzcyBhZGRy
ZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwot
ICAgIH0KLQotICAgIHZvaWQgc3RvcmVaZXJvMzIoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewot
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAg
dm9pZCBzdG9yZVplcm8xNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAg
IHN0b3JlMTYoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0
b3JlWmVybzE2KEJhc2VJbmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihUcnVz
dGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQogICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJ
bW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBp
bW04KHN0YXRpY19jYXN0PGludDhfdD4oaW1tLm1fdmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAz
MzQ3MmRkOTMxYTk3YjA5Yjk3ZGM5MmY1MTFlNmMyMmRjYTMyMTIyLi45NDM3ZmQzYmQyYWMxNjY4
MTZmMjhmMzdkYmQ5OTA1MWRmMzdhMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCkBAIC0xMDE1LDE2ICsxMDE1
LDYgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX3JtKHNjcmF0Y2hSZWdpc3Rl
cigpLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNz
LnNjYWxlKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZVplcm82NChJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKDApLCBhZGRy
ZXNzKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzdG9yZVplcm82NChCYXNlSW5kZXggYWRkcmVz
cykKLSAgICB7Ci0gICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAg
ICB9Ci0gICAgCiAgICAgRGF0YUxhYmVsMzIgc3RvcmU2NFdpdGhBZGRyZXNzT2Zmc2V0UGF0Y2go
UmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHBhZEJlZm9y
ZVBhdGNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRv
QWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4
IDJiNTU2ZDcxODMzMzcyMGJmYTc4NzNjNzc5YmQyOTFmZDEyNjE3OTEuLjg0OTk1MDM0NGQ0YWQy
MDI1YzRkODQ0M2E2ZGE1ZTMxMGEzNWI3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0xvd2VyVG9BaXIuY3BwCkBAIC03MDIsNiArNzAyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybiBBcmcoKTsKICAgICB9CiAKKyAgICBBcmcgemVyb1JlZygpCisgICAgeworICAgICAgICBy
ZXR1cm4gQXJnOjp6ZXJvUmVnKCk7CisgICAgfQorCiAgICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2
YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChBcmcgcmVzdWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEw
OTQsMTcgKzEwOTksMTcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIHVzaW5nIG5hbWVzcGFj
ZSBBaXI7CiAgICAgICAgIGlmIChhdXRvIGltbV92YWx1ZSA9IGltbSh2YWx1ZSkpIHsKLSAgICAg
ICAgICAgIGlmIChpc0FSTTY0KCkgJiYgaW1tX3ZhbHVlLnZhbHVlKCkgPT0gMCkgeworICAgICAg
ICAgICAgaWYgKCFpbW1fdmFsdWUudmFsdWUoKSkgewogICAgICAgICAgICAgICAgIHN3aXRjaCAo
bW92ZS5vcGNvZGUpIHsKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIEFpcjo6TW92ZTMyOgotICAgICAgICAg
ICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmVaZXJvMzIsIGRlc3Qua2luZCgpKSAmJiBk
ZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEluc3QoU3RvcmVaZXJvMzIsIG1fdmFsdWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBp
ZiAoaXNWYWxpZEZvcm0oU3RvcmUzMiwgQXJnOjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVz
dC5pc1ZhbGlkRm9ybShXaWR0aDMyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJ
bnN0KFN0b3JlMzIsIG1fdmFsdWUsIHplcm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQWlyOjpNb3ZlOgotICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmVaZXJvNjQsIGRlc3Qua2luZCgpKSAmJiBkZXN0
LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElu
c3QoU3RvcmVaZXJvNjQsIG1fdmFsdWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAo
aXNWYWxpZEZvcm0oU3RvcmU2NCwgQXJnOjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5p
c1ZhbGlkRm9ybShXaWR0aDY0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0
KFN0b3JlNjQsIG1fdmFsdWUsIHplcm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQXJnLmNwcAppbmRleCA2Nzg2OTllZmRkNWJjZGVkM2NiZTRhMjY5ZWQy
YzJmN2M0OGEyYTMxLi5lYjdkNDJlMzMyNjZjYTBlM2Q1NmI1NjA4YjU4OGYxMjNjYjFlMWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCkBAIC0xMDgsNiArMTA4LDcg
QEAgdW5zaWduZWQgQXJnOjpqc0hhc2goKSBjb25zdAogICAgIGNhc2UgRG91YmxlQ29uZDoKICAg
ICBjYXNlIFN0YXR1c0NvbmQ6CiAgICAgY2FzZSBXaWR0aEFyZzoKKyAgICBjYXNlIFplcm9SZWc6
CiAgICAgICAgIHJlc3VsdCArPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9vZmZzZXQpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEJpZ0ltbToKQEAgLTE1OSw2ICsxNjAsOSBAQCB2b2lkIEFy
Zzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIGNhc2UgQml0SW1tNjQ6CiAgICAg
ICAgIG91dC5wcmludGYoIiQweCVsbHgiLCBzdGF0aWNfY2FzdDxsb25nIGxvbmcgdW5zaWduZWQ+
KG1fb2Zmc2V0KSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFplcm9SZWc6CisgICAgICAg
IG91dC5wcmludCgiJSV4enIiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU2ltcGxlQWRk
cjoKICAgICAgICAgb3V0LnByaW50KCIoIiwgYmFzZSgpLCAiKSIpOwogICAgICAgICByZXR1cm47
CkBAIC0yMzYsNiArMjQwLDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQs
IEFyZzo6S2luZCBraW5kKQogICAgIGNhc2UgQXJnOjpCaXRJbW02NDoKICAgICAgICAgb3V0LnBy
aW50KCJCaXRJbW02NCIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBBcmc6Olplcm9SZWc6
CisgICAgICAgIG91dC5wcmludCgiWmVyb1JlZyIpOworICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBBcmc6OlNpbXBsZUFkZHI6CiAgICAgICAgIG91dC5wcmludCgiU2ltcGxlQWRkciIpOwogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckFyZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAppbmRleCA4NzIw
NGU2N2M3Nzc1M2I0MTY1MmY3Mzk0ZjBjMzQ2NzNkY2IzOWI0Li5jNDJjYTZiOTM5ZGJiYmQyNTY2
ZWZiMjhlMGRkOWJiZGM4ODNlYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckFyZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJn
LmgKQEAgLTg1LDcgKzg1LDEwIEBAIHB1YmxpYzoKICAgICAgICAgRG91YmxlQ29uZCwKICAgICAg
ICAgU3RhdHVzQ29uZCwKICAgICAgICAgU3BlY2lhbCwKLSAgICAgICAgV2lkdGhBcmcKKyAgICAg
ICAgV2lkdGhBcmcsCisKKyAgICAgICAgLy8gWmVyb1JlZyBpcyBpbnRlcnByZXRlZCBhcyBhIHpl
cm8gcmVnaXN0ZXIgaW4gQVJNNjQKKyAgICAgICAgWmVyb1JlZwogICAgIH07CiAgICAgCiAgICAg
ZW51bSBUZW1wZXJhdHVyZSA6IGludDhfdCB7CkBAIC02OTMsNiArNjk2LDE0IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKKyAgICBzdGF0aWMgQXJnIHplcm9SZWco
KQorICAgIHsKKyAgICAgICAgQXJnIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fa2luZCA9IFpl
cm9SZWc7CisgICAgICAgIHJlc3VsdC5tX29mZnNldCA9IDA7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfQorCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEFyZyYgb3RoZXIpIGNvbnN0
CiAgICAgewogICAgICAgICByZXR1cm4gbV9vZmZzZXQgPT0gb3RoZXIubV9vZmZzZXQKQEAgLTg1
MCw2ICs4NjEsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4ga2luZCgpID09IFdpZHRoQXJn
OwogICAgIH0KIAorICAgIGJvb2wgaXNaZXJvUmVnKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBraW5kKCkgPT0gWmVyb1JlZzsKKyAgICB9CisKICAgICBib29sIGlzQWxpdmUoKSBjb25z
dAogICAgIHsKICAgICAgICAgcmV0dXJuIGlzVG1wKCkgfHwgaXNTdGFjaygpOwpAQCAtMTAyMiw2
ICsxMDM4LDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIEJpZ0ltbToKICAgICAgICAgY2FzZSBC
aXRJbW06CiAgICAgICAgIGNhc2UgQml0SW1tNjQ6CisgICAgICAgIGNhc2UgWmVyb1JlZzoKICAg
ICAgICAgY2FzZSBTaW1wbGVBZGRyOgogICAgICAgICBjYXNlIEFkZHI6CiAgICAgICAgIGNhc2Ug
RXh0ZW5kZWRPZmZzZXRBZGRyOgpAQCAtMTA1Nyw2ICsxMDc0LDcgQEAgcHVibGljOgogICAgICAg
ICBjYXNlIFNwZWNpYWw6CiAgICAgICAgIGNhc2UgV2lkdGhBcmc6CiAgICAgICAgIGNhc2UgSW52
YWxpZDoKKyAgICAgICAgY2FzZSBaZXJvUmVnOgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAgIGNhc2UgQWRkcjoKQEAgLTEyMzYsNiAr
MTI1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkQml0SW1tRm9ybSh2
YWx1ZSgpKTsKICAgICAgICAgY2FzZSBCaXRJbW02NDoKICAgICAgICAgICAgIHJldHVybiBpc1Zh
bGlkQml0SW1tNjRGb3JtKHZhbHVlKCkpOworICAgICAgICBjYXNlIFplcm9SZWc6CiAgICAgICAg
IGNhc2UgU2ltcGxlQWRkcjoKICAgICAgICAgY2FzZSBFeHRlbmRlZE9mZnNldEFkZHI6CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEzMzEsNiArMTM1MCwxMyBAQCBwdWJsaWM6CiAgICAg
fQogI2VuZGlmCiAKKyNpZiBDUFUoQVJNNjQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVy
SUQgYXNaZXJvUmVnKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBBUk02NFJlZ2lzdGVy
czo6enI7CisgICAgfQorI2VuZGlmCisKICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
ciBhc1RydXN0ZWRJbW1QdHIoKSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKGlzNjRCaXQoKSkK
QEAgLTEzNzksNyArMTQwNSw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGlzU3RhdHVzQ29u
ZCgpKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE1hY3JvQXNzZW1ibGVyOjpTdGF0dXND
b25kaXRpb24+KG1fb2Zmc2V0KTsKICAgICB9Ci0gICAgCisKICAgICAvLyBUZWxscyB5b3UgaWYg
dGhlIEFyZyBpcyBpbnZlcnRpYmxlLiBPbmx5IGNvbmRpdGlvbiBhcmd1bWVudHMgYXJlIGludmVy
dGlibGUsIGFuZCBldmVuIGZvciB0aG9zZSwgdGhlcmUKICAgICAvLyBhcmUgYSBmZXcgZXhjZXB0
aW9ucyAtIG5vdGFibHkgT3ZlcmZsb3cgYW5kIFNpZ25lZC4KICAgICBib29sIGlzSW52ZXJ0aWJs
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxv
d2VyU3RhY2tBcmdzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJT
dGFja0FyZ3MuY3BwCmluZGV4IDljOGY1MWU0ZTAyNzAxZWVkYmE0Y2U3OTIzY2Y1NTc0Y2ZiM2Q3
N2MuLmFjN2Y1NDE1MTE1YWVlODhhNjZhZjU0NTA5MmI2YzI5MWNiODkzOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCkBAIC0x
NTcsOSArMTU3LDkgQEAgdm9pZCBsb3dlclN0YWNrQXJncyhDb2RlJiBjb2RlKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNsb3QtPmJ5dGVTaXplKCkgPT0gOCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQod2lkdGggPT0gV2lk
dGgzMik7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChpc1Zh
bGlkRm9ybShTdG9yZVplcm8zMiwgQXJnOjpTdGFjaykpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzVmFsaWRGb3JtKFN0b3JlMzIsIEFyZzo6WmVyb1JlZywg
QXJnOjpTdGFjaykpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5p
bnNlcnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RJbmRleCArIDEsIFN0
b3JlWmVybzMyLCBpbnN0Lm9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW5zdEluZGV4ICsgMSwgU3RvcmUzMiwgaW5zdC5vcmlnaW4sIEFyZzo6emVyb1JlZygpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFja0FkZHIoYXJnLm9mZnNldCgpICsgNCAr
IHNsb3QtPm9mZnNldEZyb21GUCgpKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmcgPSBzdGFja0FkZHIoYXJnLm9mZnNldCgpICsgc2xvdC0+
b2Zmc2V0RnJvbUZQKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJPcGNvZGUub3Bjb2RlcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bj
b2RlLm9wY29kZXMKaW5kZXggMDVkYzNhOWZlYzQ2OTY4NDAzMWQ4OGQ3M2VjMzdjYzA1OGJlMWY1
Ny4uN2NhOWQzOWFjZjAwZWNkNGM1M2MxOWIzZGYyNDU3ZThiOWE5M2FjNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCkBAIC02NjMsMTQgKzY2
MywxMyBAQCBNb3ZlMzIgVTpHOjMyLCBaRDpHOjMyCiBNb3ZlMzIgVTpHOjMyLCBaRDpHOjMyLCBT
Okc6MzIKICAgICBBZGRyLCBBZGRyLCBUbXAKIAotIyBGSVhNRTogU3RvcmVaZXJvMzIgYW5kIFN0
b3JlWmVybzY0IGFyZSBoYWNrcyBvbiBBUk02NCwgd2UgY2FuIGRvIGJldHRlcjogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDgyMQotU3RvcmVaZXJvMzIgRDpHOjMy
Ci0gICAgQWRkcgotICAgIEluZGV4Cithcm02NDogU3RvcmUzMiBVOkc6MzIsIFpEOkc6MzIKKyAg
ICBaZXJvUmVnLCBBZGRyCisgICAgWmVyb1JlZywgSW5kZXgKIAotNjQ6IFN0b3JlWmVybzY0IEQ6
Rzo2NAotICAgIEFkZHIKLSAgICBJbmRleAorYXJtNjQ6IFN0b3JlNjQgVTpHOjY0LCBEOkc6NjQK
KyAgICBaZXJvUmVnLCBBZGRyCisgICAgWmVyb1JlZywgSW5kZXgKIAogU2lnbkV4dGVuZDMyVG9Q
dHIgVTpHOjMyLCBEOkc6UHRyCiAgICAgVG1wLCBUbXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgppbmRleCA2YzYxZWNlODU3NmI4ZTMxOWM1
ZjU4MjE4NGQxNzMyNzk4MzY0MDJiLi4zNzQwZWZkYmRkMTQ2YTM3ZjZlZGU5ZGRiYzIzZGRiYTAz
YjA3NjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9n
ZW5lcmF0b3IucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2Vu
ZXJhdG9yLnJiCkBAIC0yMjksNyArMjI5LDcgQEAgZGVmIGlzR0YodG9rZW4pCiBlbmQKIAogZGVm
IGlzS2luZCh0b2tlbikKLSAgICB0b2tlbiA9fiAvXEEoKFRtcCl8KEltbSl8KEJpZ0ltbSl8KEJp
dEltbSl8KEJpdEltbTY0KXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIp
fChJbmRleCl8KFJlbENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxa
LworICAgIHRva2VuID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1t
NjQpfChaZXJvUmVnKXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIpfChJ
bmRleCl8KFJlbENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxaLwog
ZW5kCiAKIGRlZiBpc0FyY2godG9rZW4pCkBAIC0zMDMsNyArMzAzLDcgQEAgY2xhc3MgUGFyc2Vy
CiAKICAgICBkZWYgY29uc3VtZUtpbmQKICAgICAgICAgcmVzdWx0ID0gdG9rZW4uc3RyaW5nCi0g
ICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJbW0sIEJp
dEltbTY0LCBUbXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4dGVuZGVkT2Zmc2V0QWRkciwgSW5kZXgs
IFJlbENvbmQsIFJlc0NvbmQsIERvdWJsZUNvbmQsIG9yIFN0YXR1c0NvbmQpIikgdW5sZXNzIGlz
S2luZChyZXN1bHQpCisgICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmln
SW1tLCBCaXRJbW0sIEJpdEltbTY0LCBaZXJvUmVnLCBUbXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4
dGVuZGVkT2Zmc2V0QWRkciwgSW5kZXgsIFJlbENvbmQsIFJlc0NvbmQsIERvdWJsZUNvbmQsIG9y
IFN0YXR1c0NvbmQpIikgdW5sZXNzIGlzS2luZChyZXN1bHQpCiAgICAgICAgIGFkdmFuY2UKICAg
ICAgICAgcmVzdWx0CiAgICAgZW5kCkBAIC00NzUsNiArNDc1LDE0IEBAIGNsYXNzIFBhcnNlcgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiRm9ybSBoYXMg
YW4gaW1tZWRpYXRlIGZvciBhIG5vbi1nZW5lcmFsLXB1cnBvc2UgYXJndW1lbnQiKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBraW5kLm5hbWUgPT0gIlplcm9S
ZWciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNpZ25hdHVyZVtpbmRleF0u
cm9sZSAhPSAiVSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJy
b3IoIlplcm8gaW1tZWRpYXRlIG11c3QgYmUgYSB1c2UgYXJndW1lbnQiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgc2lnbmF0dXJlW2luZGV4XS5iYW5rICE9ICJHIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFyc2VFcnJvcigiWmVybyBpbW1lZGlhdGUgbXVzdCBiZSBhIGdlbmVyYWwt
cHVycG9zZSBhcmd1bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgZm9ybXMgPDwgRm9ybS5uZXcoa2luZHMsIGFsdE5h
bWUsIGludGVyc2VjdEFyY2hzKG9wY29kZUFyY2hzLCBmb3JtQXJjaHMpKQogCkBAIC05MjYsNiAr
OTM0LDcgQEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAgd2hl
biAiUmVzQ29uZCIKICAgICAgICAgICAgICAgICB3aGVuICJEb3VibGVDb25kIgogICAgICAgICAg
ICAgICAgIHdoZW4gIlN0YXR1c0NvbmQiCisgICAgICAgICAgICAgICAgd2hlbiAiWmVyb1JlZyIK
ICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVj
dGVkIGtpbmQ6ICN7a2luZC5uYW1lfSIKICAgICAgICAgICAgICAgICBlbmQKQEAgLTEyMjAsNiAr
MTIyOSw4IEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgICAgICAgICAgICAgICAg
ICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW0zMigpIgogICAgICAgICAg
ICAgICAgIHdoZW4gIkJpZ0ltbSIsICJCaXRJbW02NCIKICAgICAgICAgICAgICAgICAgICAgb3V0
cC5wcmludCAiYXJnc1sje2luZGV4fV0uYXNUcnVzdGVkSW1tNjQoKSIKKyAgICAgICAgICAgICAg
ICB3aGVuICJaZXJvUmVnIgorICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7
aW5kZXh9XS5hc1plcm9SZWcoKSIKICAgICAgICAgICAgICAgICB3aGVuICJTaW1wbGVBZGRyIiwg
IkFkZHIiLCAiRXh0ZW5kZWRPZmZzZXRBZGRyIgogICAgICAgICAgICAgICAgICAgICBvdXRwLnBy
aW50ICJhcmdzWyN7aW5kZXh9XS5hc0FkZHJlc3MoKSIKICAgICAgICAgICAgICAgICB3aGVuICJJ
bmRleCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAppbmRleCA5YzdkMjk5OGUyYTg5MGY1ZWRl
NzBlYjZiOWUwZjk5MTk0N2ZhMTFmLi5kYTRhZDY2NjAwMGJjNTkwZWNjZTMzZTM5M2U0YzQ4NDIz
ZDE2Y2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC02ODEsNiArNjgxLDcgQEAg
dm9pZCB0ZXN0SVRvRDMySW1tKGludDMyX3QgdmFsdWUpOwogdm9pZCB0ZXN0SVRvRjMySW1tKGlu
dDMyX3QgdmFsdWUpOwogdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygpOwogdm9pZCB0
ZXN0SVRvRFJlZHVjZWRUb0lUb0YzMkFyZygpOwordm9pZCB0ZXN0U3RvcmVaZXJvUmVnKCk7CiB2
b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSk7CiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2
YWx1ZSk7CiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50UHRyKGludHB0cl90IHZhbHVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCmluZGV4IDJiZTg4MzI4NjFmZDBkNWE2NTAzMzI5
ZDNhM2U3YjljZGYzYjdiMDEuLjFlMTM1Njc1NDQwMjdkYzdjNjY1MmU4YzJkNjRjOWU4NTgwNzhk
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcApAQCAtMzM4LDYgKzMzOCw3
IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU5fVU5BUlkodGVzdENoZWNr
QWRkUmVtb3ZlQ2hlY2tXaXRoU0V4dDMyLCBpbnQzMk9wZXJhbmRzKCkpOwogICAgIFJVTl9VTkFS
WSh0ZXN0Q2hlY2tBZGRSZW1vdmVDaGVja1dpdGhaRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAK
KyAgICBSVU4odGVzdFN0b3JlWmVyb1JlZygpKTsKICAgICBSVU4odGVzdFN0b3JlMzIoNDQpKTsK
ICAgICBSVU4odGVzdFN0b3JlQ29uc3RhbnQoNDkpKTsKICAgICBSVU4odGVzdFN0b3JlQ29uc3Rh
bnRQdHIoNDkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNf
My5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCmluZGV4IDcyYjA4
ZDE2YWE3MjljZGI4MzQ2ZmQyZmFhZmNhZDllMDAzOWQ2ZWIuLjU3ODI1Njg5ODdjYmM4YzZiZTY4
MGE5NjJkMjdjM2Q0ZDE2MDY0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjNfMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNw
cApAQCAtMjkwNiw2ICsyOTA2LDgzIEBAIHZvaWQgdGVzdFN0b3JlMzIoaW50IHZhbHVlKQogICAg
IENIRUNLKHNsb3QgPT0gdmFsdWUpOwogfQogCit2b2lkIHRlc3RTdG9yZVplcm9SZWcoKQorewor
ICAgIC8vIERpcmVjdCBhZGRyZXNzaW5nCisgICAgeworICAgICAgICBpbnQzMl90IHNsb3QzMiA9
IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIFN0b3JlLCBPcmln
aW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksICZzbG90MzIpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKworICAgICAgICBhdXRv
IGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAgICAgaW52b2tlPGludD4oKmNvZGUpOwor
ICAgICAgICBDSEVDS19FUShzbG90MzIsIDApOworICAgIH0KKworICAgIHsKKyAgICAgICAgaW50
NjRfdCBzbG90NjQgPSAweGJhYWRiZWVmOworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSog
dmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdDY0KSwgMCk7CisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisK
KyAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgICAgIGludm9rZTxp
bnQ+KCpjb2RlKTsKKyAgICAgICAgQ0hFQ0tfRVEoc2xvdDY0LCAwKTsKKyAgICB9CisKKyAgICAv
LyBJbmRleGVkIGFkZHJlc3NpbmcKKyAgICB7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOworICAg
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZhbHVl
KiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIFZhbHVl
KiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIFZhbHVlKiBkaXNwbGFjZW1lbnQg
PSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpOworCisg
ICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQsIGJhc2UpOworICAgICAgICBWYWx1ZSog
YWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFz
ZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MsIDApOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFs
dWUpOworCisgICAgICAgIGludDMyX3Qgc2xvdDMyID0gMHhiYWFkYmVlZjsKKyAgICAgICAgY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmc2xvdDMyLCAxKTsKKyAgICAgICAgQ0hFQ0tfRVEo
c2xvdDMyLCAwKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOworICAg
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZhbHVl
KiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIFZhbHVl
KiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIFZhbHVlKiBkaXNwbGFjZW1lbnQg
PSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpOworCisg
ICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQsIGJhc2UpOworICAgICAgICBWYWx1ZSog
YWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFz
ZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MsIDApOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFs
dWUpOworCisgICAgICAgIGludDY0X3Qgc2xvdDY0ID0gMHhiYWFkYmVlZjsKKyAgICAgICAgY29t
cGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc2xvdDY0LCAxKTsKKyAgICAgICAgQ0hFQ0tfRVEo
c2xvdDY0LCAwKTsKKyAgICB9Cit9CisKIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnQoaW50IHZhbHVl
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433390</attachid>
            <date>2021-07-13 00:00:34 -0700</date>
            <delta_ts>2021-07-13 10:27:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210713020033.patch</filename>
            <type>text/plain</type>
            <size>21470</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDQ4ODMzZDk5OTYyNWViYjliYzIxMzRhODFiOWYzNmNjNWEwYTYwLi5kNzA0ODc0MjI5OGNmMWEx
MTcxZGIyOWMyM2QzYzYzNzI3YmE0OGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAyMS0wNy0xMiAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWmVyb1JlZyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQjMgaXMgZGVzaWduZWQgdG8gYmUgcG9ydGFibGUgdG8gbWFueSBraW5kcyBvZiBDUFVz
LiBIb3dldmVyLCB0byBlZmZlY3RpdmVseSBjb21waWxlIAorICAgICAgICBjb2RlIHRvIGRpZmZl
cmVudCBDUFVzLCB0aGUgY29tcGlsZXIgbXVzdCBldmVudHVhbGx5IG1ha2UgZXhwbGljaXQgaW5z
dHJ1Y3Rpb24gc2V0IAorICAgICAgICBkZXRhaWxzLiBUaGVuLCBBaXIgaXMgaW50cm9kdWNlZCwg
YW5kIGl0IGlzIGRlc2lnbmVkIHRvIHRhcmdldCBpbmRpdmlkdWFsIENQVSBhcmNoaXRlY3R1cmVz
IAorICAgICAgICBhbmQgZ2VuZXJhdGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRob3NlIENQ
VXMuCisKKyAgICAgICAgUHJldmlvdXNseSwgQjMgYW5kIEFpciBkb24ndCByZWNvZ25pemUgdGhl
IHplcm8gcmVnaXN0ZXIuIFRoaXMgcHJvYmxlbSBoYXMgYmVlbiBwb2ludGVkIG91dCAKKyAgICAg
ICAgaW4gIzE3NDgyMSwgd2hpY2ggd2FzIHRyeWluZyB0byBpbnRyb2R1Y2UgdGhlIG5ldyBvcGNv
ZGVzIHRvIGhhbmRsZSBhIHplcm8gaW1tZWRpYXRlIG9yIHRoZSAKKyAgICAgICAgemVybyByZWdp
c3Rlci4gCisKKyAgICAgICAgVG8gc29sdmUgdGhpcyBwcm9ibGVtIGluIGEgbW9kdWxhciByZWFz
b25pbmcgYXBwcm9hY2gsIGEgbmV3IEFpciBvcGVyYW5kIFplcm9JbW0gaXMgaW50cm9kdWNlZCAK
KyAgICAgICAgYnkgdGhpcyBwYXRjaC4gSXRzIGdvYWwgaXMgdG8gY2xvc2VseSBtYXRjaCB0aGUg
Q1BVIGluc3RydWN0aW9ucyBhY2NlcHRpbmcgYSB6ZXJvIGltbWVkaWF0ZSBvciAKKyAgICAgICAg
dGhlIHplcm8gcmVnaXN0ZXIgaW4gWDg2IGFuZCBBUk02NC4gQW5vdGhlciByZWFzb24gaXMgdGhh
dCB0aGUgbmV3IG92ZXJsb2FkcyBvZiB0aGUgaW5zdHJ1Y3Rpb25zIAorICAgICAgICB0YWtpbmcg
dGhlIHplcm8gcmVnaXN0ZXIgY2FuIGJlbmVmaXQgaW5zdHJ1Y3Rpb24gc2VsZWN0aW9uIHdpdGgg
dGhpcyBpbXBsZW1lbnRhdGlvbi4gCisKKyAgICAgICAgSGVyZSwgdGhlIFplcm9JbW0gaXMgYWRk
ZWQgYXMgYSBuZXcga2luZCBmb3IgQWlyOjpBcmcsIHdoaWNoIGFjdHMgYXMgYSAiaGlnaCBsZXZl
bCIgb3BlcmFuZCB0byAKKyAgICAgICAgYmUgZW1pdHRlZCB3aXRoIHRoZSBhc3NvY2lhdGl2ZSBv
cGNvZGVzIGZyb20gZGlmZmVyZW50IGFyY2hpdGVjdHVyZXMuIEluIEFSTTY0LCB0aGUgWmVyb0lt
bSB3b3VsZCAKKyAgICAgICAgYmUgZW1pdHRlZCBhcyBhIHplcm8gcmVnaXN0ZXIuIEZvciBYODYs
IHRoZSBaZXJvSW1tIHdvdWxkIGJlIGVtaXR0ZWQgYXMgYSB6ZXJvIGltbWVkaWF0ZS4KKworICAg
ICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlWmVybzY0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVaZXJvMzIpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVplcm8xNik6IERlbGV0ZWQuCisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjpzdG9yZVplcm8zMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzdG9yZVplcm8xNik6IERlbGV0ZWQuCisgICAgICAg
ICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyWDg2XzY0OjpzdG9yZVplcm82NCk6IERlbGV0ZWQuCisgICAgICAgICogYjMvQjNM
b3dlclRvQWlyLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyQXJnLmNwcDoKKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6QXJnOjpqc0hhc2ggY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpB
cmc6OmR1bXAgY29uc3QpOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAg
KiBiMy9haXIvQWlyQXJnLmg6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6emVyb0ltbSk6
CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNaZXJvSW1tIGNvbnN0KToKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6QXJnOjppc1NvbWVJbW0gY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpBcmc6OmlzR1AgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzRlAg
Y29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzVmFsaWRGb3JtIGNvbnN0KToK
KyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjphc1plcm9JbW0gY29uc3QpOgorICAgICAgICAq
IGIzL2Fpci9BaXJMb3dlclN0YWNrQXJncy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Omxv
d2VyU3RhY2tBcmdzKToKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAg
ICAgICogYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmI6CisgICAgICAgICogYjMvdGVzdGIzLmg6
CisgICAgICAgICogYjMvdGVzdGIzXzEuY3BwOgorICAgICAgICAocnVuKToKKyAgICAgICAgKiBi
My90ZXN0YjNfMy5jcHA6CisgICAgICAgICh0ZXN0U3RvcmVaZXJvSW1tKToKKwogMjAyMS0wNy0x
MiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IHIyNzcw
Mjc6IGJyZWFrcyBHQy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggM2Q4NWNiYjhkYjUzM2M4NDA3YWFiNjVhMzkw
NDRmOWJhMmI0MDIyYy4uNGE5MGU1YTFmZGU0OGNjZmM0N2E3Mjc0OWU1ODVmN2QwMjRlMWNjNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmgKQEAgLTE3MzEsMTYgKzE3MzEsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNz
ZW1ibGVyLnN0cjw2ND4oc3JjLCBkZXN0LCBzaW1tKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBz
dG9yZVplcm82NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3Jl
NjQoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBz
dG9yZVplcm82NChCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlNjQoQVJN
NjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCiAgICAgRGF0YUxhYmVsMzIg
c3RvcmU2NFdpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRk
cmVzcykKICAgICB7CiAgICAgICAgIERhdGFMYWJlbDMyIGxhYmVsKHRoaXMpOwpAQCAtMTgzOCwx
NiArMTgyOCw2IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlWmVybzMyKEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUzMihBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJl
c3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVaZXJvMzIoQmFzZUluZGV4IGFkZHJlc3MpCi0g
ICAgewotICAgICAgICBzdG9yZTMyKEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAg
fQotCiAgICAgRGF0YUxhYmVsMzIgc3RvcmUzMldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0
ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIERhdGFMYWJlbDMyIGxh
YmVsKHRoaXMpOwpAQCAtMTg5MywxNiArMTg3Myw2IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUx
NihkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlWmVy
bzE2KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihBUk02
NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVaZXJvMTYo
QmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KEFSTTY0UmVnaXN0ZXJz
Ojp6ciwgYWRkcmVzcyk7Ci0gICAgfQotCiAgICAgdm9pZCBzdG9yZTgoUmVnaXN0ZXJJRCBzcmMs
IEJhc2VJbmRleCBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCAm
JiAhYWRkcmVzcy5zY2FsZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IGEyNjU1M2E1YmNlMGZj
ZjdiZjA4MDcyZjU5ODJjOWI1MDc2MjBhZWYuLjU0ZDQ1NjdkNGMxYzQ1ZGZlMGMzMjhjYTdiY2Ri
ODRlOWViMmY5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKQEAgLTEzMzcsMjYgKzEzMzcsNiBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfaTMybShpbW0ubV92YWx1ZSwgYWRkcmVz
cy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAg
ICAgfQogCi0gICAgdm9pZCBzdG9yZVplcm8zMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAg
ICB7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0K
LSAgICB2b2lkIHN0b3JlWmVybzMyKEJhc2VJbmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAg
c3RvcmUzMihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3Rv
cmVaZXJvMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2
KFRydXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8x
NihCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoVHJ1c3RlZEltbTMy
KDApLCBhZGRyZXNzKTsKLSAgICB9Ci0KICAgICB2b2lkIHN0b3JlOChUcnVzdGVkSW1tMzIgaW1t
LCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBUcnVzdGVkSW1tMzIgaW1tOChzdGF0
aWNfY2FzdDxpbnQ4X3Q+KGltbS5tX3ZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKaW5kZXggMzM0NzJkZDkz
MWE5N2IwOWI5N2RjOTJmNTExZTZjMjJkY2EzMjEyMi4uOTQzN2ZkM2JkMmFjMTY2ODE2ZjI4ZjM3
ZGJkOTkwNTFkZjM3YTFjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaApAQCAtMTAxNSwxNiArMTAxNSw2IEBAIHB1
YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubW92cV9ybShzY3JhdGNoUmVnaXN0ZXIoKSwgYWRk
cmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7
CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVaZXJvNjQoSW1wbGljaXRBZGRyZXNzIGFkZHJl
c3MpCi0gICAgewotICAgICAgICBzdG9yZTY0KFRydXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7Ci0g
ICAgfQotICAgIAotICAgIHZvaWQgc3RvcmVaZXJvNjQoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAg
ewotICAgICAgICBzdG9yZTY0KFRydXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotICAg
IAogICAgIERhdGFMYWJlbDMyIHN0b3JlNjRXaXRoQWRkcmVzc09mZnNldFBhdGNoKFJlZ2lzdGVy
SUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBwYWRCZWZvcmVQYXRjaCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAppbmRleCBkMjBiMTQx
MGQ3NzI4Mjg4MTRlZjJjYzU0MWQwY2JkMTQ3YTYzNTA3Li40MDk3ZWQ3ODc5OGViMTk2ZTA5NGM4
MThkMWE2YWNlYzljZmZhZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNMb3dlclRvQWlyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRv
QWlyLmNwcApAQCAtNzAyLDYgKzcwMiwxMSBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gQXJn
KCk7CiAgICAgfQogCisgICAgQXJnIHplcm9JbW0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFy
Zzo6emVyb0ltbSgpOworICAgIH0KKwogICAgIEFyZyBpbW1PclRtcChWYWx1ZSogdmFsdWUpCiAg
ICAgewogICAgICAgICBpZiAoQXJnIHJlc3VsdCA9IGltbSh2YWx1ZSkpCkBAIC0xMDk0LDE3ICsx
MDk5LDE3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICB1c2luZyBuYW1lc3BhY2UgQWlyOwog
ICAgICAgICBpZiAoYXV0byBpbW1fdmFsdWUgPSBpbW0odmFsdWUpKSB7Ci0gICAgICAgICAgICBp
ZiAoaXNBUk02NCgpICYmIGltbV92YWx1ZS52YWx1ZSgpID09IDApIHsKKyAgICAgICAgICAgIGlm
IChpc0FSTTY0KCkgJiYgIWltbV92YWx1ZS52YWx1ZSgpKSB7CiAgICAgICAgICAgICAgICAgc3dp
dGNoIChtb3ZlLm9wY29kZSkgewogICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQWlyOjpNb3ZlMzI6Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm8zMiwgZGVzdC5raW5kKCkp
ICYmIGRlc3QuaXNWYWxpZEZvcm0oV2lkdGgzMikpCi0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gSW5zdChTdG9yZVplcm8zMiwgbV92YWx1ZSwgZGVzdCk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZTMyLCBBcmc6Olplcm9JbW0sIGRlc3Qua2luZCgpKSAm
JiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEluc3QoU3RvcmUzMiwgbV92YWx1ZSwgemVyb0ltbSgpLCBkZXN0KTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBBaXI6Ok1vdmU6Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShTdG9yZVplcm82NCwgZGVzdC5raW5kKCkpICYm
IGRlc3QuaXNWYWxpZEZvcm0oV2lkdGg2NCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gSW5zdChTdG9yZVplcm82NCwgbV92YWx1ZSwgZGVzdCk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChpc1ZhbGlkRm9ybShTdG9yZTY0LCBBcmc6Olplcm9JbW0sIGRlc3Qua2luZCgpKSAmJiBk
ZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEluc3QoU3RvcmU2NCwgbV92YWx1ZSwgemVyb0ltbSgpLCBkZXN0KTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCmluZGV4IDY3ODY5OWVmZGQ1YmNkZWQzY2JlNGEy
NjllZDJjMmY3YzQ4YTJhMzEuLmU3ZTIyY2YyNGRlNzM2OWNjY2UyNmQ2YmY1OGZjYWE4NzA1ODli
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKQEAgLTEwMiw2ICsx
MDIsNyBAQCB1bnNpZ25lZCBBcmc6OmpzSGFzaCgpIGNvbnN0CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSW1tOgogICAgIGNhc2UgQml0SW1tOgorICAgIGNhc2UgWmVyb0ltbToKICAgICBjYXNl
IENhbGxBcmc6CiAgICAgY2FzZSBSZWxDb25kOgogICAgIGNhc2UgUmVzQ29uZDoKQEAgLTE1OSw2
ICsxNjAsMTMgQEAgdm9pZCBBcmc6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBj
YXNlIEJpdEltbTY0OgogICAgICAgICBvdXQucHJpbnRmKCIkMHglbGx4Iiwgc3RhdGljX2Nhc3Q8
bG9uZyBsb25nIHVuc2lnbmVkPihtX29mZnNldCkpOwogICAgICAgICByZXR1cm47CisgICAgY2Fz
ZSBaZXJvSW1tOgorI2lmIENQVShBUk02NCkKKyAgICAgICAgb3V0LnByaW50KCIlJXh6ciIpOwor
I2Vsc2UKKyAgICAgICAgb3V0LnByaW50KCIkMCIpOworI2VuZGlmCisgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAgIG91dC5wcmludCgiKCIsIGJhc2UoKSwgIiki
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjM2LDYgKzI0NCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5h
bChQcmludFN0cmVhbSYgb3V0LCBBcmc6OktpbmQga2luZCkKICAgICBjYXNlIEFyZzo6Qml0SW1t
NjQ6CiAgICAgICAgIG91dC5wcmludCgiQml0SW1tNjQiKTsKICAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgQXJnOjpaZXJvSW1tOgorICAgICAgICBvdXQucHJpbnQoIlplcm9JbW0iKTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIGNhc2UgQXJnOjpTaW1wbGVBZGRyOgogICAgICAgICBvdXQucHJpbnQo
IlNpbXBsZUFkZHIiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQXJnLmgKaW5kZXggODcyMDRlNjdjNzc3NTNiNDE2NTJmNzM5NGYwYzM0NjczZGNiMzliNC4u
MDIzOTg1NDllM2NiMWEzMWM0YTQ4N2E3ZWM1MjM0NTg4OWQ3M2I2NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC02NCwxMCArNjQsMTIgQEAgcHVibGljOgogICAgICAg
ICAvLyB1c3VhbGx5IG9ubHkgdXNhYmxlIHdpdGggTW92ZS4gU3BlY2lhbHMgbWF5IGFsc28gYWRt
aXQgaXQsIGZvciBleGFtcGxlIGZvciBzdGFja21hcHMgdXNlZCBmb3IKICAgICAgICAgLy8gT1NS
IGV4aXQgYW5kIHRhaWwgY2FsbHMuCiAgICAgICAgIC8vIEJpdEltbSBpcyBhbiBpbW1lZGlhdGUg
Zm9yIEJpdHdpc2Ugb3BlcmF0aW9uIChBbmQsIFhvciwgZXRjKS4KKyAgICAgICAgLy8gWmVyb0lt
bSBpcyBpbnRlcnByZXRlZCBhcyBhIHplcm8gcmVnaXN0ZXIgaW4gQVJNNjQgYW5kIFRydXN0ZWRJ
bW0zMigwKSBpbiBYODYgYW5kIFg4Nl82NAogICAgICAgICBJbW0sCiAgICAgICAgIEJpZ0ltbSwK
ICAgICAgICAgQml0SW1tLAogICAgICAgICBCaXRJbW02NCwKKyAgICAgICAgWmVyb0ltbSwKIAog
ICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIGFkZHJlc3Nlcy4gSW5zdHJ1Y3Rpb25zIG1heSBsb2Fk
IGZyb20gKFVzZSksIHN0b3JlIHRvIChEZWYpLCBvciBldmFsdWF0ZQogICAgICAgICAvLyAoVXNl
QWRkcikgYWRkcmVzc2VzLgpAQCAtNjkzLDYgKzY5NSwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6ZXJvSW1tKCkKKyAgICB7Cisg
ICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBaZXJvSW1tOworICAg
ICAgICByZXN1bHQubV9vZmZzZXQgPSAwOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBcmcmIG90aGVyKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1fb2Zmc2V0ID09IG90aGVyLm1fb2Zmc2V0CkBAIC03MzksNiArNzQ5LDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBCaXRJbW02NDsKICAgICB9CiAK
KyAgICBib29sIGlzWmVyb0ltbSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4ga2luZCgp
ID09IFplcm9JbW07CisgICAgfQorCiAgICAgYm9vbCBpc1NvbWVJbW0oKSBjb25zdAogICAgIHsK
ICAgICAgICAgc3dpdGNoIChraW5kKCkpIHsKQEAgLTc0Niw2ICs3NjEsOSBAQCBwdWJsaWM6CiAg
ICAgICAgIGNhc2UgQmlnSW1tOgogICAgICAgICBjYXNlIEJpdEltbToKICAgICAgICAgY2FzZSBC
aXRJbW02NDoKKyNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQorICAgICAgICBjYXNlIFplcm9J
bW06CisjZW5kaWYKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTAyMiw2ICsxMDQwLDcgQEAgcHVibGljOgog
ICAgICAgICBjYXNlIEJpZ0ltbToKICAgICAgICAgY2FzZSBCaXRJbW06CiAgICAgICAgIGNhc2Ug
Qml0SW1tNjQ6CisgICAgICAgIGNhc2UgWmVyb0ltbToKICAgICAgICAgY2FzZSBTaW1wbGVBZGRy
OgogICAgICAgICBjYXNlIEFkZHI6CiAgICAgICAgIGNhc2UgRXh0ZW5kZWRPZmZzZXRBZGRyOgpA
QCAtMTA1Nyw2ICsxMDc2LDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIFNwZWNpYWw6CiAgICAg
ICAgIGNhc2UgV2lkdGhBcmc6CiAgICAgICAgIGNhc2UgSW52YWxpZDoKKyAgICAgICAgY2FzZSBa
ZXJvSW1tOgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNlIFNpbXBsZUFk
ZHI6CiAgICAgICAgIGNhc2UgQWRkcjoKQEAgLTEyMzYsNiArMTI1Niw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIHJldHVybiBpc1ZhbGlkQml0SW1tRm9ybSh2YWx1ZSgpKTsKICAgICAgICAgY2Fz
ZSBCaXRJbW02NDoKICAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkQml0SW1tNjRGb3JtKHZhbHVl
KCkpOworICAgICAgICBjYXNlIFplcm9JbW06CiAgICAgICAgIGNhc2UgU2ltcGxlQWRkcjoKICAg
ICAgICAgY2FzZSBFeHRlbmRlZE9mZnNldEFkZHI6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTEzMzEsNiArMTM1MiwxOCBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAKKyNpZiBDUFUo
QVJNNjQpCisgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgYXNaZXJvSW1tKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBBUk02NFJlZ2lzdGVyczo6enI7CisgICAgfQorI2VsaWYg
Q1BVKFg4Nl82NCkgfHwgQ1BVKFg4NikKKyAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
IGFzWmVyb0ltbSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMigwKTsKKyAgICB9CisjZW5kaWYKKwogICAgIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tUHRyIGFzVHJ1c3RlZEltbVB0cigpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAo
aXM2NEJpdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJM
b3dlclN0YWNrQXJncy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2Vy
U3RhY2tBcmdzLmNwcAppbmRleCA5YzhmNTFlNGUwMjcwMWVlZGJhNGNlNzkyM2NmNTU3NGNmYjNk
NzdjLi5lZmM2ZmJjMThjN2Y1YWQyMmQwNzZhMjFmNDUyNTNhMDZiMjEyYzg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcApAQCAt
MTU3LDkgKzE1Nyw5IEBAIHZvaWQgbG93ZXJTdGFja0FyZ3MoQ29kZSYgY29kZSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzbG90LT5ieXRlU2l6ZSgpID09IDgp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHdpZHRoID09IFdp
ZHRoMzIpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNW
YWxpZEZvcm0oU3RvcmVaZXJvMzIsIEFyZzo6U3RhY2spKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVChpc1ZhbGlkRm9ybShTdG9yZTMyLCBBcmc6Olplcm9JbW0s
IEFyZzo6U3RhY2spKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQu
aW5zZXJ0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0SW5kZXggKyAxLCBT
dG9yZVplcm8zMiwgaW5zdC5vcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluc3RJbmRleCArIDEsIFN0b3JlMzIsIGluc3Qub3JpZ2luLCBBcmc6Onplcm9JbW0oKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tBZGRyKGFyZy5vZmZzZXQoKSArIDQg
KyBzbG90LT5vZmZzZXRGcm9tRlAoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgYXJnID0gc3RhY2tBZGRyKGFyZy5vZmZzZXQoKSArIHNsb3Qt
Pm9mZnNldEZyb21GUCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9w
Y29kZS5vcGNvZGVzCmluZGV4IDY0Y2E3NzdiZjA2NWVlZjc4NzZhOTA5Mjg0OWFkNTViODI0OWJk
N2EuLmJhZGRkMmQ4NzI1OTA0NzNmNjg3MGVjY2QwOThlNTU3OGIzODIzYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAtNjc1LDE0ICs2
NzUsMTMgQEAgTW92ZTMyIFU6RzozMiwgWkQ6RzozMgogTW92ZTMyIFU6RzozMiwgWkQ6RzozMiwg
UzpHOjMyCiAgICAgQWRkciwgQWRkciwgVG1wCiAKLSMgRklYTUU6IFN0b3JlWmVybzMyIGFuZCBT
dG9yZVplcm82NCBhcmUgaGFja3Mgb24gQVJNNjQsIHdlIGNhbiBkbyBiZXR0ZXI6IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ4MjEKLVN0b3JlWmVybzMyIEQ6Rzoz
MgotICAgIEFkZHIKLSAgICBJbmRleAorU3RvcmUzMiBVOkc6MzIsIFpEOkc6MzIKKyAgICBaZXJv
SW1tLCBBZGRyCisgICAgWmVyb0ltbSwgSW5kZXgKIAotNjQ6IFN0b3JlWmVybzY0IEQ6Rzo2NAot
ICAgIEFkZHIKLSAgICBJbmRleAorNjQ6IFN0b3JlNjQgVTpHOjY0LCBEOkc6NjQKKyAgICBaZXJv
SW1tLCBBZGRyCisgICAgWmVyb0ltbSwgSW5kZXgKIAogU2lnbkV4dGVuZDMyVG9QdHIgVTpHOjMy
LCBEOkc6UHRyCiAgICAgVG1wLCBUbXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvb3Bjb2RlX2dlbmVyYXRvci5yYgppbmRleCA2YzYxZWNlODU3NmI4ZTMxOWM1ZjU4MjE4NGQx
NzMyNzk4MzY0MDJiLi5iNmIwNGE2ZDJjMWI5NmNjOGExM2QzOTBjMmE3ZDBkODBiMjdmYjIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3Iu
cmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJi
CkBAIC0yMjksNyArMjI5LDcgQEAgZGVmIGlzR0YodG9rZW4pCiBlbmQKIAogZGVmIGlzS2luZCh0
b2tlbikKLSAgICB0b2tlbiA9fiAvXEEoKFRtcCl8KEltbSl8KEJpZ0ltbSl8KEJpdEltbSl8KEJp
dEltbTY0KXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIpfChJbmRleCl8
KFJlbENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxaLworICAgIHRv
a2VuID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1tNjQpfChaZXJv
SW1tKXwoU2ltcGxlQWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIpfChJbmRleCl8KFJl
bENvbmQpfChSZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxaLwogZW5kCiAKIGRl
ZiBpc0FyY2godG9rZW4pCkBAIC0zMDMsNyArMzAzLDcgQEAgY2xhc3MgUGFyc2VyCiAKICAgICBk
ZWYgY29uc3VtZUtpbmQKICAgICAgICAgcmVzdWx0ID0gdG9rZW4uc3RyaW5nCi0gICAgICAgIHBh
cnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJbW0sIEJpdEltbTY0LCBU
bXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4dGVuZGVkT2Zmc2V0QWRkciwgSW5kZXgsIFJlbENvbmQs
IFJlc0NvbmQsIERvdWJsZUNvbmQsIG9yIFN0YXR1c0NvbmQpIikgdW5sZXNzIGlzS2luZChyZXN1
bHQpCisgICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJ
bW0sIEJpdEltbTY0LCBaZXJvSW1tLCBUbXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4dGVuZGVkT2Zm
c2V0QWRkciwgSW5kZXgsIFJlbENvbmQsIFJlc0NvbmQsIERvdWJsZUNvbmQsIG9yIFN0YXR1c0Nv
bmQpIikgdW5sZXNzIGlzS2luZChyZXN1bHQpCiAgICAgICAgIGFkdmFuY2UKICAgICAgICAgcmVz
dWx0CiAgICAgZW5kCkBAIC00NzUsNiArNDc1LDE0IEBAIGNsYXNzIFBhcnNlcgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiRm9ybSBoYXMgYW4gaW1tZWRp
YXRlIGZvciBhIG5vbi1nZW5lcmFsLXB1cnBvc2UgYXJndW1lbnQiKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBraW5kLm5hbWUgPT0gIlplcm9JbW0iCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNpZ25hdHVyZVtpbmRleF0ucm9sZSAhPSAi
VSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IoIlplcm8g
aW1tZWRpYXRlIG11c3QgYmUgYSB1c2UgYXJndW1lbnQiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2lnbmF0
dXJlW2luZGV4XS5iYW5rICE9ICJHIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyc2VFcnJvcigiWmVybyBpbW1lZGlhdGUgbXVzdCBiZSBhIGdlbmVyYWwtcHVycG9zZSBh
cmd1bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICAgZm9ybXMgPDwgRm9ybS5uZXcoa2luZHMsIGFsdE5hbWUsIGludGVy
c2VjdEFyY2hzKG9wY29kZUFyY2hzLCBmb3JtQXJjaHMpKQogCkBAIC05MjYsNiArOTM0LDcgQEAg
d3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAgd2hlbiAiUmVzQ29u
ZCIKICAgICAgICAgICAgICAgICB3aGVuICJEb3VibGVDb25kIgogICAgICAgICAgICAgICAgIHdo
ZW4gIlN0YXR1c0NvbmQiCisgICAgICAgICAgICAgICAgd2hlbiAiWmVyb0ltbSIKICAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVkIGtpbmQ6
ICN7a2luZC5uYW1lfSIKICAgICAgICAgICAgICAgICBlbmQKQEAgLTEyMjAsNiArMTIyOSw4IEBA
IHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgICAgICAgICAgICAgICAgICBvdXRwLnBy
aW50ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW0zMigpIgogICAgICAgICAgICAgICAgIHdo
ZW4gIkJpZ0ltbSIsICJCaXRJbW02NCIKICAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmludCAi
YXJnc1sje2luZGV4fV0uYXNUcnVzdGVkSW1tNjQoKSIKKyAgICAgICAgICAgICAgICB3aGVuICJa
ZXJvSW1tIgorICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5h
c1plcm9JbW0oKSIKICAgICAgICAgICAgICAgICB3aGVuICJTaW1wbGVBZGRyIiwgIkFkZHIiLCAi
RXh0ZW5kZWRPZmZzZXRBZGRyIgogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdz
WyN7aW5kZXh9XS5hc0FkZHJlc3MoKSIKICAgICAgICAgICAgICAgICB3aGVuICJJbmRleCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy90ZXN0YjMuaAppbmRleCBmOGJlNzc5M2NlYWQ1ZDIzZGQ5NjBlNTE0MGZh
Zjg3MDRjZWFmNGMzLi43ZTk2ZjMzNDRmOTE3YTQzN2FhZWM4ZWNiMmFjYTNmMjU2Yjg4YjNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC02ODEsNiArNjgxLDcgQEAgdm9pZCB0ZXN0
SVRvRDMySW1tKGludDMyX3QgdmFsdWUpOwogdm9pZCB0ZXN0SVRvRjMySW1tKGludDMyX3QgdmFs
dWUpOwogdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygpOwogdm9pZCB0ZXN0SVRvRFJl
ZHVjZWRUb0lUb0YzMkFyZygpOwordm9pZCB0ZXN0U3RvcmVaZXJvSW1tKCk7CiB2b2lkIHRlc3RT
dG9yZTMyKGludCB2YWx1ZSk7CiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSk7CiB2
b2lkIHRlc3RTdG9yZUNvbnN0YW50UHRyKGludHB0cl90IHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvdGVzdGIzXzEuY3BwCmluZGV4IDJiZTg4MzI4NjFmZDBkNWE2NTAzMzI5ZDNhM2U3Yjlj
ZGYzYjdiMDEuLjE3MTkwY2M1ZjJjMGY3ZTlmYmE5NzNkNWUxNGE5Njc1YTEzMDZlZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcApAQCAtMzM4LDYgKzMzOCw3IEBAIHZvaWQg
cnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU5fVU5BUlkodGVzdENoZWNrQWRkUmVtb3Zl
Q2hlY2tXaXRoU0V4dDMyLCBpbnQzMk9wZXJhbmRzKCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0Q2hl
Y2tBZGRSZW1vdmVDaGVja1dpdGhaRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAKKyAgICBSVU4o
dGVzdFN0b3JlWmVyb0ltbSgpKTsKICAgICBSVU4odGVzdFN0b3JlMzIoNDQpKTsKICAgICBSVU4o
dGVzdFN0b3JlQ29uc3RhbnQoNDkpKTsKICAgICBSVU4odGVzdFN0b3JlQ29uc3RhbnRQdHIoNDkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCmluZGV4IGMxN2FiYzczNjM0MGQ1
YWJiMzY0YzQzZjVjODYwNzEwODY2ZGE0NmIuLjE5NzJmNGQ5ODU4YTQ5NmQ1NTFhY2VmZmIxNGNh
ZTljMTA1M2M0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNf
My5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcApAQCAtMjg4
OCw2ICsyODg4LDgzIEBAIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GMzJBcmcoKQogICAgICAg
ICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCB0ZXN0VmFsdWUudmFsdWUp
LCBzdGF0aWNfY2FzdDxmbG9hdD4odGVzdFZhbHVlLnZhbHVlKSkpOwogfQogCit2b2lkIHRlc3RT
dG9yZVplcm9JbW0oKQoreworICAgIC8vIERpcmVjdCBhZGRyZXNzaW5nCisgICAgeworICAgICAg
ICBpbnQzMl90IHNsb3QzMiA9IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOwor
ICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZh
bHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAg
IHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90MzIpLCAwKTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVl
KTsKKworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAgICAgaW52
b2tlPGludD4oKmNvZGUpOworICAgICAgICBDSEVDS19FUShzbG90MzIsIDApOworICAgIH0KKwor
ICAgIHsKKyAgICAgICAgaW50NjRfdCBzbG90NjQgPSAweGJhYWRiZWVmOworICAgICAgICBQcm9j
ZWR1cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
KworICAgICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
CisgICAgICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLAorICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdDY0KSwg
MCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7
CisgICAgICAgIGludm9rZTxpbnQ+KCpjb2RlKTsKKyAgICAgICAgQ0hFQ0tfRVEoc2xvdDY0LCAw
KTsKKyAgICB9CisKKyAgICAvLyBJbmRleGVkIGFkZHJlc3NpbmcKKyAgICB7CisgICAgICAgIFBy
b2NlZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OworCisgICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CisgICAgICAgIFZhbHVlKiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIFZh
bHVlKiBkaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgLTEpOworCisgICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQsIGJhc2Up
OworICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsIGFk
ZHJlc3MsIDApOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgICAgIGludDMyX3Qgc2xvdDMyID0gMHhiYWFk
YmVlZjsKKyAgICAgICAgY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmc2xvdDMyLCAxKTsK
KyAgICAgICAgQ0hFQ0tfRVEoc2xvdDMyLCAwKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFBy
b2NlZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OworCisgICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CisgICAgICAgIFZhbHVlKiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIFZh
bHVlKiBkaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgLTEpOworCisgICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQsIGJhc2Up
OworICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsIGFk
ZHJlc3MsIDApOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgICAgIGludDY0X3Qgc2xvdDY0ID0gMHhiYWFk
YmVlZjsKKyAgICAgICAgY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc2xvdDY0LCAxKTsK
KyAgICAgICAgQ0hFQ0tfRVEoc2xvdDY0LCAwKTsKKyAgICB9Cit9CisKIHZvaWQgdGVzdFN0b3Jl
MzIoaW50IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433416</attachid>
            <date>2021-07-13 10:27:34 -0700</date>
            <delta_ts>2021-07-13 10:38:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210713122733.patch</filename>
            <type>text/plain</type>
            <size>20836</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDQ4ODMzZDk5OTYyNWViYjliYzIxMzRhODFiOWYzNmNjNWEwYTYwLi5hMzg5ZmY4ZWFlODFkMWFi
YzA1OGI0YzRhMTcxNmMyYjBiNTNiMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAyMS0wNy0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWmVyb1JlZyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQjMgaXMgZGVzaWduZWQgdG8gYmUgcG9ydGFibGUgdG8gbWFueSBraW5kcyBvZiBDUFVz
LiBIb3dldmVyLCB0byBlZmZlY3RpdmVseSBjb21waWxlIAorICAgICAgICBjb2RlIHRvIGRpZmZl
cmVudCBDUFVzLCB0aGUgY29tcGlsZXIgbXVzdCBldmVudHVhbGx5IG1ha2UgZXhwbGljaXQgaW5z
dHJ1Y3Rpb24gc2V0IAorICAgICAgICBkZXRhaWxzLiBUaGVuLCBBaXIgaXMgaW50cm9kdWNlZCwg
YW5kIGl0IGlzIGRlc2lnbmVkIHRvIHRhcmdldCBpbmRpdmlkdWFsIENQVSAKKyAgICAgICAgYXJj
aGl0ZWN0dXJlcyBhbmQgZ2VuZXJhdGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRob3NlIENQ
VXMuIAorCisgICAgICAgIFByZXZpb3VzbHksIEIzIGFuZCBBaXIgZG9uJ3QgcmVjb2duaXplIHRo
ZSB6ZXJvIHJlZ2lzdGVyLiBUaGlzIHByb2JsZW0gaGFzIGJlZW4gcG9pbnRlZCAKKyAgICAgICAg
b3V0IGluICMxNzQ4MjEsIHdoaWNoIHdhcyB0cnlpbmcgdG8gaW50cm9kdWNlIHRoZSBuZXcgb3Bj
b2RlcyB0byBoYW5kbGUgdGhlIHplcm8gCisgICAgICAgIHJlZ2lzdGVyLiAKKworICAgICAgICBU
byBzb2x2ZSB0aGlzIHByb2JsZW0gaW4gYSBtb2R1bGFyIHJlYXNvbmluZyBhcHByb2FjaCwgYSBu
ZXcgQWlyIG9wZXJhbmQgWmVyb1JlZyBzaG91bGQgCisgICAgICAgIGJlIGludHJvZHVjZWQuIEl0
cyBnb2FsIGlzIHRvIGNsb3NlbHkgbWF0Y2ggdGhlIENQVSBpbnN0cnVjdGlvbnMgYWNjZXB0aW5n
IHRoZSB6ZXJvIAorICAgICAgICByZWdpc3RlciBpbiBBUk02NC4gQW5vdGhlciByZWFzb24gaXMg
dGhhdCB0aGUgbmV3IG92ZXJsb2FkcyBvZiB0aGUgaW5zdHJ1Y3Rpb25zIHRha2luZyAKKyAgICAg
ICAgdGhlIHplcm8gcmVnaXN0ZXIgY2FuIGJlbmVmaXQgaW5zdHJ1Y3Rpb24gc2VsZWN0aW9uIHdp
dGggdGhpcyBpbXBsZW1lbnRhdGlvbi4gCisKKyAgICAgICAgSGVyZSwgdGhlIFplcm9SZWcgaXMg
YWRkZWQgYXMgYSBuZXcga2luZCBmb3IgQWlyOjpBcmcsIHdoaWNoIGFjdHMgYXMgYSAiaGlnaCBs
ZXZlbCIgCisgICAgICAgIG9wZXJhbmQgdG8gYmUgZW1pdHRlZCB3aXRoIHRoZSBhc3NvY2lhdGl2
ZSBvcGNvZGVzLiBJbiBBUk02NCwgdGhlIFplcm9SZWcgd291bGQgYmUgCisgICAgICAgIGVtaXR0
ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVyLiAgCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk02NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVpl
cm82NCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3Jl
WmVybzMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3Rv
cmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVa
ZXJvMzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6
c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3RvcmVaZXJv
NjQpOiBEZWxldGVkLgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgICog
YjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9SZWcpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpB
cmc6OmlzWmVyb1JlZyBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBj
b25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZvcm0gY29uc3QpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpBcmc6OmFzWmVyb1JlZyBjb25zdCk6CisgICAgICAgICogYjMvYWlyL0Fpckxvd2Vy
U3RhY2tBcmdzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6bG93ZXJTdGFja0FyZ3MpOgor
ICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKyAgICAgICAgKiBiMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBiMy90ZXN0YjMuaDoKKyAgICAgICAgKiBiMy90
ZXN0YjNfMS5jcHA6CisgICAgICAgIChydW4pOgorICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoK
KyAgICAgICAgKHRlc3RTdG9yZVplcm9SZWcpOgorCiAyMDIxLTA3LTEyICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjI3NzAyNzogYnJlYWtzIEdDLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAppbmRleCAzZDg1Y2JiOGRiNTMzYzg0MDdhYWI2NWEzOTA0NGY5YmEyYjQwMjJjLi40
YTkwZTVhMWZkZTQ4Y2NmYzQ3YTcyNzQ5ZTU4NWY3ZDAyNGUxY2M1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAt
MTczMSwxNiArMTczMSw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3RyPDY0Pihz
cmMsIGRlc3QsIHNpbW0pOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVy
czo6enIsIGFkZHJlc3MpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEJhc2VJ
bmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVyczo6enIs
IGFkZHJlc3MpOwotICAgIH0KLSAgICAKICAgICBEYXRhTGFiZWwzMiBzdG9yZTY0V2l0aEFkZHJl
c3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAg
ICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0xODM4LDE2ICsxODI4LDYgQEAgcHVi
bGljOgogICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0K
IAotICAgIHZvaWQgc3RvcmVaZXJvMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewot
ICAgICAgICBzdG9yZTMyKEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotCi0g
ICAgdm9pZCBzdG9yZVplcm8zMihCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0
b3JlMzIoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0KICAgICBEYXRhTGFi
ZWwzMiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVz
cyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0x
ODkzLDE2ICsxODczLDYgQEAgcHVibGljOgogICAgICAgICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVaZXJvMTYoSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KEFSTTY0UmVnaXN0ZXJzOjp6ciwg
YWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihCYXNlSW5kZXggYWRkcmVz
cykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsK
LSAgICB9Ci0KICAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJl
c3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0ICYmICFhZGRyZXNzLnNjYWxl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5kZXggYTI2NTUzYTViY2UwZmNmN2JmMDgwNzJmNTk4MmM5
YjUwNzYyMGFlZi4uNTRkNDU2N2Q0YzFjNDVkZmUwYzMyOGNhN2JjZGI4NGU5ZWIyZjk3NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaApAQCAtMTMzNywyNiArMTMzNyw2IEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIubW92bF9pMzJtKGltbS5tX3ZhbHVlLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAKLSAgICB2b2lk
IHN0b3JlWmVybzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3Rv
cmUzMihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVa
ZXJvMzIoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJ
bW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoVHJ1c3RlZEltbTMyKDAp
LCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3JlWmVybzE2KEJhc2VJbmRleCBhZGRy
ZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwot
ICAgIH0KLQogICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBpbW04KHN0YXRpY19jYXN0PGludDhfdD4o
aW1tLm1fdmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAzMzQ3MmRkOTMxYTk3YjA5Yjk3ZGM5MmY1
MTFlNmMyMmRjYTMyMTIyLi45NDM3ZmQzYmQyYWMxNjY4MTZmMjhmMzdkYmQ5OTA1MWRmMzdhMWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCkBAIC0xMDE1LDE2ICsxMDE1LDYgQEAgcHVibGljOgogICAgICAgICBt
X2Fzc2VtYmxlci5tb3ZxX3JtKHNjcmF0Y2hSZWdpc3RlcigpLCBhZGRyZXNzLm9mZnNldCwgYWRk
cmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAgICAgCi0g
ICAgdm9pZCBzdG9yZVplcm82NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAg
ICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCi0gICAg
dm9pZCBzdG9yZVplcm82NChCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3Jl
NjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCiAgICAgRGF0YUxhYmVs
MzIgc3RvcmU2NFdpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIHBhZEJlZm9yZVBhdGNoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IGQyMGIxNDEwZDc3MjgyODgxNGVmMmNj
NTQxZDBjYmQxNDdhNjM1MDcuLjhmYzFhZmMyYTUzOTFmNDU2NWMzZDNkOThmN2EwZjc2NDgzNjIz
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC03MDIs
NiArNzAyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBBcmcoKTsKICAgICB9CiAKKyAg
ICBBcmcgemVyb1JlZygpCisgICAgeworICAgICAgICByZXR1cm4gQXJnOjp6ZXJvUmVnKCk7Cisg
ICAgfQorCiAgICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlm
IChBcmcgcmVzdWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEwOTQsMTcgKzEwOTksMTcgQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBBaXI7CiAgICAgICAgIGlmIChhdXRv
IGltbV92YWx1ZSA9IGltbSh2YWx1ZSkpIHsKLSAgICAgICAgICAgIGlmIChpc0FSTTY0KCkgJiYg
aW1tX3ZhbHVlLnZhbHVlKCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKCFpbW1fdmFsdWUudmFs
dWUoKSkgewogICAgICAgICAgICAgICAgIHN3aXRjaCAobW92ZS5vcGNvZGUpIHsKICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICBjYXNlIEFpcjo6TW92ZTMyOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZv
cm0oU3RvcmVaZXJvMzIsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIp
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvMzIsIG1fdmFs
dWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmUzMiwg
QXJnOjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDMyKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlMzIsIG1fdmFsdWUsIHpl
cm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIGNhc2UgQWlyOjpNb3ZlOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0o
U3RvcmVaZXJvNjQsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvNjQsIG1fdmFsdWUs
IGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmU2NCwgQXJn
OjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDY0KSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlNjQsIG1fdmFsdWUsIHplcm9S
ZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQXJnLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcApp
bmRleCA2Nzg2OTllZmRkNWJjZGVkM2NiZTRhMjY5ZWQyYzJmN2M0OGEyYTMxLi4xMDNjNmVjY2Ez
ZDMxNGJiNGVkOGMwMmE0ZDJmMDA5Y2E2NDFkMDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJBcmcuY3BwCkBAIC0xMDIsNiArMTAyLDcgQEAgdW5zaWduZWQgQXJnOjpqc0hhc2go
KSBjb25zdAogICAgICAgICBicmVhazsKICAgICBjYXNlIEltbToKICAgICBjYXNlIEJpdEltbToK
KyAgICBjYXNlIFplcm9SZWc6CiAgICAgY2FzZSBDYWxsQXJnOgogICAgIGNhc2UgUmVsQ29uZDoK
ICAgICBjYXNlIFJlc0NvbmQ6CkBAIC0xNTksNiArMTYwLDkgQEAgdm9pZCBBcmc6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBjYXNlIEJpdEltbTY0OgogICAgICAgICBvdXQucHJp
bnRmKCIkMHglbGx4Iiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nIHVuc2lnbmVkPihtX29mZnNldCkp
OwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBaZXJvUmVnOgorICAgICAgICBvdXQucHJpbnQo
IiUleHpyIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAg
IG91dC5wcmludCgiKCIsIGJhc2UoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjM2LDYg
KzI0MCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBBcmc6OktpbmQg
a2luZCkKICAgICBjYXNlIEFyZzo6Qml0SW1tNjQ6CiAgICAgICAgIG91dC5wcmludCgiQml0SW1t
NjQiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQXJnOjpaZXJvUmVnOgorICAgICAgICBv
dXQucHJpbnQoIlplcm9SZWciKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQXJnOjpTaW1w
bGVBZGRyOgogICAgICAgICBvdXQucHJpbnQoIlNpbXBsZUFkZHIiKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKaW5kZXggODcyMDRlNjdjNzc3NTNi
NDE2NTJmNzM5NGYwYzM0NjczZGNiMzliNC4uY2NlZjQ1Njg4MDNjZTI1NzIxMzBlM2JlYjc2YzEw
ZGVlYjhhNzI3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJB
cmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC04NSw3
ICs4NSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIERvdWJsZUNvbmQsCiAgICAgICAgIFN0YXR1c0Nv
bmQsCiAgICAgICAgIFNwZWNpYWwsCi0gICAgICAgIFdpZHRoQXJnCisgICAgICAgIFdpZHRoQXJn
LAorCisgICAgICAgIC8vIFplcm9SZWcgaXMgaW50ZXJwcmV0ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVy
IGluIEFSTTY0CisgICAgICAgIFplcm9SZWcKICAgICB9OwogICAgIAogICAgIGVudW0gVGVtcGVy
YXR1cmUgOiBpbnQ4X3QgewpAQCAtNjkzLDYgKzY5NiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6ZXJvUmVnKCkKKyAgICB7Cisg
ICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBaZXJvUmVnOworICAg
ICAgICByZXN1bHQubV9vZmZzZXQgPSAwOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBcmcmIG90aGVyKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1fb2Zmc2V0ID09IG90aGVyLm1fb2Zmc2V0CkBAIC03MzksNiArNzUwLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBCaXRJbW02NDsKICAgICB9CiAK
KyAgICBib29sIGlzWmVyb1JlZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4ga2luZCgp
ID09IFplcm9SZWc7CisgICAgfQorCiAgICAgYm9vbCBpc1NvbWVJbW0oKSBjb25zdAogICAgIHsK
ICAgICAgICAgc3dpdGNoIChraW5kKCkpIHsKQEAgLTEwMjIsNiArMTAzOCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgY2FzZSBCaWdJbW06CiAgICAgICAgIGNhc2UgQml0SW1tOgogICAgICAgICBjYXNl
IEJpdEltbTY0OgorICAgICAgICBjYXNlIFplcm9SZWc6CiAgICAgICAgIGNhc2UgU2ltcGxlQWRk
cjoKICAgICAgICAgY2FzZSBBZGRyOgogICAgICAgICBjYXNlIEV4dGVuZGVkT2Zmc2V0QWRkcjoK
QEAgLTEwNTcsNiArMTA3NCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBTcGVjaWFsOgogICAg
ICAgICBjYXNlIFdpZHRoQXJnOgogICAgICAgICBjYXNlIEludmFsaWQ6CisgICAgICAgIGNhc2Ug
WmVyb1JlZzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBTaW1wbGVB
ZGRyOgogICAgICAgICBjYXNlIEFkZHI6CkBAIC0xMjM2LDYgKzEyNTQsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbUZvcm0odmFsdWUoKSk7CiAgICAgICAgIGNh
c2UgQml0SW1tNjQ6CiAgICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbTY0Rm9ybSh2YWx1
ZSgpKTsKKyAgICAgICAgY2FzZSBaZXJvUmVnOgogICAgICAgICBjYXNlIFNpbXBsZUFkZHI6CiAg
ICAgICAgIGNhc2UgRXh0ZW5kZWRPZmZzZXRBZGRyOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0xMzMxLDYgKzEzNTAsMTMgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisjaWYgQ1BV
KEFSTTY0KQorICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGFzWmVyb1JlZygpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gQVJNNjRSZWdpc3RlcnM6OnpyOworICAgIH0KKyNlbmRp
ZgorCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIgYXNUcnVzdGVkSW1tUHRyKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIGlmIChpczY0Qml0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCmluZGV4IDljOGY1MWU0ZTAy
NzAxZWVkYmE0Y2U3OTIzY2Y1NTc0Y2ZiM2Q3N2MuLjllMTVmZmFjOWUzYWM4OGVlOGQ1ZWY5OWFm
ZmM5OThmMjNlYjllMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCkBAIC0xNTcsOSArMTU3LDE2IEBAIHZvaWQgbG93ZXJTdGFj
a0FyZ3MoQ29kZSYgY29kZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChzbG90LT5ieXRlU2l6ZSgpID09IDgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHdpZHRoID09IFdpZHRoMzIpOwogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNWYWxpZEZvcm0oU3RvcmVaZXJvMzIsIEFyZzo6U3Rh
Y2spKTsKKyNpZiBDUFUoQVJNNjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBr
aW5kID0gQXJnOjpaZXJvUmVnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gYXJn
ID0gQXJnOjp6ZXJvUmVnKCk7CisjZWxpZiBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2luZCA9IEFyZzo6SW1tOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8gYXJnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigw
KTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlz
VmFsaWRGb3JtKFN0b3JlMzIsIGtpbmQsIEFyZzo6U3RhY2spKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0KAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnN0SW5kZXggKyAxLCBTdG9yZVplcm8zMiwgaW5zdC5vcmlnaW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RJbmRleCArIDEsIFN0b3JlMzIsIGluc3Qub3Jp
Z2luLCBhcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrQWRkcihhcmcu
b2Zmc2V0KCkgKyA0ICsgc2xvdC0+b2Zmc2V0RnJvbUZQKCkpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IHN0YWNrQWRkcihhcmcub2Zm
c2V0KCkgKyBzbG90LT5vZmZzZXRGcm9tRlAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwppbmRleCA2NGNhNzc3YmYwNjVlZWY3ODc2YTkwOTI4
NDlhZDU1YjgyNDliZDdhLi5jMGEyNWJkZTBiZjQwMTFiY2Q4ZjIwYTFmYzE1MWFjZGNmNmM3N2U0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNv
ZGVzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMK
QEAgLTY3NSwxNCArNjc1LDE0IEBAIE1vdmUzMiBVOkc6MzIsIFpEOkc6MzIKIE1vdmUzMiBVOkc6
MzIsIFpEOkc6MzIsIFM6RzozMgogICAgIEFkZHIsIEFkZHIsIFRtcAogCi0jIEZJWE1FOiBTdG9y
ZVplcm8zMiBhbmQgU3RvcmVaZXJvNjQgYXJlIGhhY2tzIG9uIEFSTTY0LCB3ZSBjYW4gZG8gYmV0
dGVyOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0ODIxCi1TdG9y
ZVplcm8zMiBEOkc6MzIKLSAgICBBZGRyCi0gICAgSW5kZXgKK1N0b3JlMzIgVTpHOjMyLCBaRDpH
OjMyCisgICAgYXJtNjQ6IFplcm9SZWcsIEFkZHIKKyAgICBhcm02NDogWmVyb1JlZywgSW5kZXgK
KyAgICB4ODY6IEltbSwgQWRkcgogCi02NDogU3RvcmVaZXJvNjQgRDpHOjY0Ci0gICAgQWRkcgot
ICAgIEluZGV4Cithcm02NDogU3RvcmU2NCBVOkc6NjQsIEQ6Rzo2NAorICAgIFplcm9SZWcsIEFk
ZHIKKyAgICBaZXJvUmVnLCBJbmRleAogCiBTaWduRXh0ZW5kMzJUb1B0ciBVOkc6MzIsIEQ6RzpQ
dHIKICAgICBUbXAsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9vcGNvZGVfZ2VuZXJhdG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNv
ZGVfZ2VuZXJhdG9yLnJiCmluZGV4IDZjNjFlY2U4NTc2YjhlMzE5YzVmNTgyMTg0ZDE3MzI3OTgz
NjQwMmIuLjM3NDBlZmRiZGQxNDZhMzdmNmVkZTlkZGJjMjNkZGJhMDNiMDc2NDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKQEAgLTIy
OSw3ICsyMjksNyBAQCBkZWYgaXNHRih0b2tlbikKIGVuZAogCiBkZWYgaXNLaW5kKHRva2VuKQot
ICAgIHRva2VuID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1tNjQp
fChTaW1wbGVBZGRyKXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29u
ZCl8KFJlc0NvbmQpfChEb3VibGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCisgICAgdG9rZW4gPX4g
L1xBKChUbXApfChJbW0pfChCaWdJbW0pfChCaXRJbW0pfChCaXRJbW02NCl8KFplcm9SZWcpfChT
aW1wbGVBZGRyKXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8
KFJlc0NvbmQpfChEb3VibGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCiBlbmQKIAogZGVmIGlzQXJj
aCh0b2tlbikKQEAgLTMwMyw3ICszMDMsNyBAQCBjbGFzcyBQYXJzZXIKIAogICAgIGRlZiBjb25z
dW1lS2luZAogICAgICAgICByZXN1bHQgPSB0b2tlbi5zdHJpbmcKLSAgICAgICAgcGFyc2VFcnJv
cigiRXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIFRtcCwgU2lt
cGxlQWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwgUmVzQ29u
ZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3VsdCkKKyAg
ICAgICAgcGFyc2VFcnJvcigiRXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwgQml0
SW1tNjQsIFplcm9SZWcsIFRtcCwgU2ltcGxlQWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRy
LCBJbmRleCwgUmVsQ29uZCwgUmVzQ29uZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1
bmxlc3MgaXNLaW5kKHJlc3VsdCkKICAgICAgICAgYWR2YW5jZQogICAgICAgICByZXN1bHQKICAg
ICBlbmQKQEAgLTQ3NSw2ICs0NzUsMTQgQEAgY2xhc3MgUGFyc2VyCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKCJGb3JtIGhhcyBhbiBpbW1lZGlhdGUgZm9y
IGEgbm9uLWdlbmVyYWwtcHVycG9zZSBhcmd1bWVudCIpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIGtpbmQubmFtZSA9PSAiWmVyb1JlZyIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgc2lnbmF0dXJlW2luZGV4XS5yb2xlICE9ICJVIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiWmVybyBpbW1lZGlh
dGUgbXVzdCBiZSBhIHVzZSBhcmd1bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzaWduYXR1cmVbaW5k
ZXhdLmJhbmsgIT0gIkciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJz
ZUVycm9yKCJaZXJvIGltbWVkaWF0ZSBtdXN0IGJlIGEgZ2VuZXJhbC1wdXJwb3NlIGFyZ3VtZW50
IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgICBmb3JtcyA8PCBGb3JtLm5ldyhraW5kcywgYWx0TmFtZSwgaW50ZXJzZWN0QXJj
aHMob3Bjb2RlQXJjaHMsIGZvcm1BcmNocykpCiAKQEAgLTkyNiw2ICs5MzQsNyBAQCB3cml0ZUgo
Ik9wY29kZUdlbmVyYXRlZCIpIHsKICAgICAgICAgICAgICAgICB3aGVuICJSZXNDb25kIgogICAg
ICAgICAgICAgICAgIHdoZW4gIkRvdWJsZUNvbmQiCiAgICAgICAgICAgICAgICAgd2hlbiAiU3Rh
dHVzQ29uZCIKKyAgICAgICAgICAgICAgICB3aGVuICJaZXJvUmVnIgogICAgICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgIlVuZXhwZWN0ZWQga2luZDogI3traW5k
Lm5hbWV9IgogICAgICAgICAgICAgICAgIGVuZApAQCAtMTIyMCw2ICsxMjI5LDggQEAgd3JpdGVI
KCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQgImFy
Z3NbI3tpbmRleH1dLmFzVHJ1c3RlZEltbTMyKCkiCiAgICAgICAgICAgICAgICAgd2hlbiAiQmln
SW1tIiwgIkJpdEltbTY0IgogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7
aW5kZXh9XS5hc1RydXN0ZWRJbW02NCgpIgorICAgICAgICAgICAgICAgIHdoZW4gIlplcm9SZWci
CisgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzWmVyb1Jl
ZygpIgogICAgICAgICAgICAgICAgIHdoZW4gIlNpbXBsZUFkZHIiLCAiQWRkciIsICJFeHRlbmRl
ZE9mZnNldEFkZHIiCiAgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQgImFyZ3NbI3tpbmRl
eH1dLmFzQWRkcmVzcygpIgogICAgICAgICAgICAgICAgIHdoZW4gIkluZGV4IgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiMy5oCmluZGV4IGY4YmU3NzkzY2VhZDVkMjNkZDk2MGU1MTQwZmFmODcwNGNl
YWY0YzMuLjk4NDhmNjNlODY5YWYyYjNmYjU2YzVlYjA0YWZlMGJiMzc5N2IwMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzLmgKQEAgLTY4MSw2ICs2ODEsNyBAQCB2b2lkIHRlc3RJVG9EMzJJ
bW0oaW50MzJfdCB2YWx1ZSk7CiB2b2lkIHRlc3RJVG9GMzJJbW0oaW50MzJfdCB2YWx1ZSk7CiB2
b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJnKCk7CiB2b2lkIHRlc3RJVG9EUmVkdWNlZFRv
SVRvRjMyQXJnKCk7Cit2b2lkIHRlc3RTdG9yZVplcm9SZWcoKTsKIHZvaWQgdGVzdFN0b3JlMzIo
aW50IHZhbHVlKTsKIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnQoaW50IHZhbHVlKTsKIHZvaWQgdGVz
dFN0b3JlQ29uc3RhbnRQdHIoaW50cHRyX3QgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjNfMS5jcHAKaW5kZXggMmJlODgzMjg2MWZkMGQ1YTY1MDMzMjlkM2EzZTdiOWNkZjNiN2Iw
MS4uMWUxMzU2NzU0NDAyN2RjN2M2NjUyZThjMmQ2NGM5ZTg1ODA3OGRmMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCkBAIC0zMzgsNiArMzM4LDcgQEAgdm9pZCBydW4oY29u
c3QgY2hhciogZmlsdGVyKQogICAgIFJVTl9VTkFSWSh0ZXN0Q2hlY2tBZGRSZW1vdmVDaGVja1dp
dGhTRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAgICAgUlVOX1VOQVJZKHRlc3RDaGVja0FkZFJl
bW92ZUNoZWNrV2l0aFpFeHQzMiwgaW50MzJPcGVyYW5kcygpKTsKIAorICAgIFJVTih0ZXN0U3Rv
cmVaZXJvUmVnKCkpOwogICAgIFJVTih0ZXN0U3RvcmUzMig0NCkpOwogICAgIFJVTih0ZXN0U3Rv
cmVDb25zdGFudCg0OSkpOwogICAgIFJVTih0ZXN0U3RvcmVDb25zdGFudFB0cig0OSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKaW5kZXggYzE3YWJjNzM2MzQwZDVhYmIzNjRj
NDNmNWM4NjA3MTA4NjZkYTQ2Yi4uNGM1MmFkYTljYzQwMmRkZTUzOTg4Y2M4ZjJmNWU5ZTBkZGUy
ZTExYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCkBAIC0yODg4LDYgKzI4
ODgsODMgQEAgdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0YzMkFyZygpCiAgICAgICAgIENIRUNL
KGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIHRlc3RWYWx1ZS52YWx1ZSksIHN0YXRp
Y19jYXN0PGZsb2F0Pih0ZXN0VmFsdWUudmFsdWUpKSk7CiB9CiAKK3ZvaWQgdGVzdFN0b3JlWmVy
b1JlZygpCit7CisgICAgLy8gRGlyZWN0IGFkZHJlc3NpbmcKKyAgICB7CisgICAgICAgIGludDMy
X3Qgc2xvdDMyID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwor
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywg
U3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QzMiksIDApOworICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisg
ICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBpbnZva2U8aW50
PigqY29kZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3QzMiwgMCk7CisgICAgfQorCisgICAgewor
ICAgICAgICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVyZSBw
cm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAg
ICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAg
ICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90NjQpLCAwKTsKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHZhbHVlKTsKKworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAg
ICAgaW52b2tlPGludD4oKmNvZGUpOworICAgICAgICBDSEVDS19FUShzbG90NjQsIDApOworICAg
IH0KKworICAgIC8vIEluZGV4ZWQgYWRkcmVzc2luZworICAgIHsKKyAgICAgICAgUHJvY2VkdXJl
IHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAg
ICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAg
ICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUqIGRp
c3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7CisgICAg
ICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcywg
MCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJhYWRiZWVmOwor
ICAgICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZzbG90MzIsIDEpOworICAgICAg
ICBDSEVDS19FUShzbG90MzIsIDApOworICAgIH0KKworICAgIHsKKyAgICAgICAgUHJvY2VkdXJl
IHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAg
ICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAg
ICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUqIGRp
c3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7CisgICAg
ICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcywg
MCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50NjRfdCBzbG90NjQgPSAweGJhYWRiZWVmOwor
ICAgICAgICBjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzbG90NjQsIDEpOworICAgICAg
ICBDSEVDS19FUShzbG90NjQsIDApOworICAgIH0KK30KKwogdm9pZCB0ZXN0U3RvcmUzMihpbnQg
dmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7Cg==
</data>
<flag name="commit-queue"
          id="455648"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433418</attachid>
            <date>2021-07-13 10:37:27 -0700</date>
            <delta_ts>2021-07-13 11:11:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210713123726.patch</filename>
            <type>text/plain</type>
            <size>20857</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDQ4ODMzZDk5OTYyNWViYjliYzIxMzRhODFiOWYzNmNjNWEwYTYwLi5hMzg5ZmY4ZWFlODFkMWFi
YzA1OGI0YzRhMTcxNmMyYjBiNTNiMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAyMS0wNy0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWmVyb1JlZyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQjMgaXMgZGVzaWduZWQgdG8gYmUgcG9ydGFibGUgdG8gbWFueSBraW5kcyBvZiBDUFVz
LiBIb3dldmVyLCB0byBlZmZlY3RpdmVseSBjb21waWxlIAorICAgICAgICBjb2RlIHRvIGRpZmZl
cmVudCBDUFVzLCB0aGUgY29tcGlsZXIgbXVzdCBldmVudHVhbGx5IG1ha2UgZXhwbGljaXQgaW5z
dHJ1Y3Rpb24gc2V0IAorICAgICAgICBkZXRhaWxzLiBUaGVuLCBBaXIgaXMgaW50cm9kdWNlZCwg
YW5kIGl0IGlzIGRlc2lnbmVkIHRvIHRhcmdldCBpbmRpdmlkdWFsIENQVSAKKyAgICAgICAgYXJj
aGl0ZWN0dXJlcyBhbmQgZ2VuZXJhdGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRob3NlIENQ
VXMuIAorCisgICAgICAgIFByZXZpb3VzbHksIEIzIGFuZCBBaXIgZG9uJ3QgcmVjb2duaXplIHRo
ZSB6ZXJvIHJlZ2lzdGVyLiBUaGlzIHByb2JsZW0gaGFzIGJlZW4gcG9pbnRlZCAKKyAgICAgICAg
b3V0IGluICMxNzQ4MjEsIHdoaWNoIHdhcyB0cnlpbmcgdG8gaW50cm9kdWNlIHRoZSBuZXcgb3Bj
b2RlcyB0byBoYW5kbGUgdGhlIHplcm8gCisgICAgICAgIHJlZ2lzdGVyLiAKKworICAgICAgICBU
byBzb2x2ZSB0aGlzIHByb2JsZW0gaW4gYSBtb2R1bGFyIHJlYXNvbmluZyBhcHByb2FjaCwgYSBu
ZXcgQWlyIG9wZXJhbmQgWmVyb1JlZyBzaG91bGQgCisgICAgICAgIGJlIGludHJvZHVjZWQuIEl0
cyBnb2FsIGlzIHRvIGNsb3NlbHkgbWF0Y2ggdGhlIENQVSBpbnN0cnVjdGlvbnMgYWNjZXB0aW5n
IHRoZSB6ZXJvIAorICAgICAgICByZWdpc3RlciBpbiBBUk02NC4gQW5vdGhlciByZWFzb24gaXMg
dGhhdCB0aGUgbmV3IG92ZXJsb2FkcyBvZiB0aGUgaW5zdHJ1Y3Rpb25zIHRha2luZyAKKyAgICAg
ICAgdGhlIHplcm8gcmVnaXN0ZXIgY2FuIGJlbmVmaXQgaW5zdHJ1Y3Rpb24gc2VsZWN0aW9uIHdp
dGggdGhpcyBpbXBsZW1lbnRhdGlvbi4gCisKKyAgICAgICAgSGVyZSwgdGhlIFplcm9SZWcgaXMg
YWRkZWQgYXMgYSBuZXcga2luZCBmb3IgQWlyOjpBcmcsIHdoaWNoIGFjdHMgYXMgYSAiaGlnaCBs
ZXZlbCIgCisgICAgICAgIG9wZXJhbmQgdG8gYmUgZW1pdHRlZCB3aXRoIHRoZSBhc3NvY2lhdGl2
ZSBvcGNvZGVzLiBJbiBBUk02NCwgdGhlIFplcm9SZWcgd291bGQgYmUgCisgICAgICAgIGVtaXR0
ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVyLiAgCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk02NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVpl
cm82NCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3Jl
WmVybzMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3Rv
cmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVa
ZXJvMzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6
c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3RvcmVaZXJv
NjQpOiBEZWxldGVkLgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgICog
YjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9SZWcpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpB
cmc6OmlzWmVyb1JlZyBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBj
b25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZvcm0gY29uc3QpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpBcmc6OmFzWmVyb1JlZyBjb25zdCk6CisgICAgICAgICogYjMvYWlyL0Fpckxvd2Vy
U3RhY2tBcmdzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6bG93ZXJTdGFja0FyZ3MpOgor
ICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKyAgICAgICAgKiBiMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBiMy90ZXN0YjMuaDoKKyAgICAgICAgKiBiMy90
ZXN0YjNfMS5jcHA6CisgICAgICAgIChydW4pOgorICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoK
KyAgICAgICAgKHRlc3RTdG9yZVplcm9SZWcpOgorCiAyMDIxLTA3LTEyICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjI3NzAyNzogYnJlYWtzIEdDLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAppbmRleCAzZDg1Y2JiOGRiNTMzYzg0MDdhYWI2NWEzOTA0NGY5YmEyYjQwMjJjLi40
YTkwZTVhMWZkZTQ4Y2NmYzQ3YTcyNzQ5ZTU4NWY3ZDAyNGUxY2M1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAt
MTczMSwxNiArMTczMSw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3RyPDY0Pihz
cmMsIGRlc3QsIHNpbW0pOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVy
czo6enIsIGFkZHJlc3MpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEJhc2VJ
bmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVyczo6enIs
IGFkZHJlc3MpOwotICAgIH0KLSAgICAKICAgICBEYXRhTGFiZWwzMiBzdG9yZTY0V2l0aEFkZHJl
c3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAg
ICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0xODM4LDE2ICsxODI4LDYgQEAgcHVi
bGljOgogICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0K
IAotICAgIHZvaWQgc3RvcmVaZXJvMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewot
ICAgICAgICBzdG9yZTMyKEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotCi0g
ICAgdm9pZCBzdG9yZVplcm8zMihCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0
b3JlMzIoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0KICAgICBEYXRhTGFi
ZWwzMiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVz
cyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0x
ODkzLDE2ICsxODczLDYgQEAgcHVibGljOgogICAgICAgICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVaZXJvMTYoSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KEFSTTY0UmVnaXN0ZXJzOjp6ciwg
YWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihCYXNlSW5kZXggYWRkcmVz
cykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsK
LSAgICB9Ci0KICAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJl
c3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0ICYmICFhZGRyZXNzLnNjYWxl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5kZXggYTI2NTUzYTViY2UwZmNmN2JmMDgwNzJmNTk4MmM5
YjUwNzYyMGFlZi4uNTRkNDU2N2Q0YzFjNDVkZmUwYzMyOGNhN2JjZGI4NGU5ZWIyZjk3NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaApAQCAtMTMzNywyNiArMTMzNyw2IEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIubW92bF9pMzJtKGltbS5tX3ZhbHVlLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAKLSAgICB2b2lk
IHN0b3JlWmVybzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3Rv
cmUzMihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVa
ZXJvMzIoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJ
bW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoVHJ1c3RlZEltbTMyKDAp
LCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3JlWmVybzE2KEJhc2VJbmRleCBhZGRy
ZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwot
ICAgIH0KLQogICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBpbW04KHN0YXRpY19jYXN0PGludDhfdD4o
aW1tLm1fdmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAzMzQ3MmRkOTMxYTk3YjA5Yjk3ZGM5MmY1
MTFlNmMyMmRjYTMyMTIyLi45NDM3ZmQzYmQyYWMxNjY4MTZmMjhmMzdkYmQ5OTA1MWRmMzdhMWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCkBAIC0xMDE1LDE2ICsxMDE1LDYgQEAgcHVibGljOgogICAgICAgICBt
X2Fzc2VtYmxlci5tb3ZxX3JtKHNjcmF0Y2hSZWdpc3RlcigpLCBhZGRyZXNzLm9mZnNldCwgYWRk
cmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAgICAgCi0g
ICAgdm9pZCBzdG9yZVplcm82NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAg
ICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCi0gICAg
dm9pZCBzdG9yZVplcm82NChCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3Jl
NjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCiAgICAgRGF0YUxhYmVs
MzIgc3RvcmU2NFdpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIHBhZEJlZm9yZVBhdGNoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IGQyMGIxNDEwZDc3MjgyODgxNGVmMmNj
NTQxZDBjYmQxNDdhNjM1MDcuLjhmYzFhZmMyYTUzOTFmNDU2NWMzZDNkOThmN2EwZjc2NDgzNjIz
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC03MDIs
NiArNzAyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBBcmcoKTsKICAgICB9CiAKKyAg
ICBBcmcgemVyb1JlZygpCisgICAgeworICAgICAgICByZXR1cm4gQXJnOjp6ZXJvUmVnKCk7Cisg
ICAgfQorCiAgICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlm
IChBcmcgcmVzdWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEwOTQsMTcgKzEwOTksMTcgQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBBaXI7CiAgICAgICAgIGlmIChhdXRv
IGltbV92YWx1ZSA9IGltbSh2YWx1ZSkpIHsKLSAgICAgICAgICAgIGlmIChpc0FSTTY0KCkgJiYg
aW1tX3ZhbHVlLnZhbHVlKCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKCFpbW1fdmFsdWUudmFs
dWUoKSkgewogICAgICAgICAgICAgICAgIHN3aXRjaCAobW92ZS5vcGNvZGUpIHsKICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICBjYXNlIEFpcjo6TW92ZTMyOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZv
cm0oU3RvcmVaZXJvMzIsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIp
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvMzIsIG1fdmFs
dWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmUzMiwg
QXJnOjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDMyKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlMzIsIG1fdmFsdWUsIHpl
cm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIGNhc2UgQWlyOjpNb3ZlOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0o
U3RvcmVaZXJvNjQsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvNjQsIG1fdmFsdWUs
IGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmU2NCwgQXJn
OjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDY0KSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlNjQsIG1fdmFsdWUsIHplcm9S
ZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQXJnLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcApp
bmRleCA2Nzg2OTllZmRkNWJjZGVkM2NiZTRhMjY5ZWQyYzJmN2M0OGEyYTMxLi4xMDNjNmVjY2Ez
ZDMxNGJiNGVkOGMwMmE0ZDJmMDA5Y2E2NDFkMDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJBcmcuY3BwCkBAIC0xMDIsNiArMTAyLDcgQEAgdW5zaWduZWQgQXJnOjpqc0hhc2go
KSBjb25zdAogICAgICAgICBicmVhazsKICAgICBjYXNlIEltbToKICAgICBjYXNlIEJpdEltbToK
KyAgICBjYXNlIFplcm9SZWc6CiAgICAgY2FzZSBDYWxsQXJnOgogICAgIGNhc2UgUmVsQ29uZDoK
ICAgICBjYXNlIFJlc0NvbmQ6CkBAIC0xNTksNiArMTYwLDkgQEAgdm9pZCBBcmc6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBjYXNlIEJpdEltbTY0OgogICAgICAgICBvdXQucHJp
bnRmKCIkMHglbGx4Iiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nIHVuc2lnbmVkPihtX29mZnNldCkp
OwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBaZXJvUmVnOgorICAgICAgICBvdXQucHJpbnQo
IiUleHpyIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAg
IG91dC5wcmludCgiKCIsIGJhc2UoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjM2LDYg
KzI0MCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBBcmc6OktpbmQg
a2luZCkKICAgICBjYXNlIEFyZzo6Qml0SW1tNjQ6CiAgICAgICAgIG91dC5wcmludCgiQml0SW1t
NjQiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQXJnOjpaZXJvUmVnOgorICAgICAgICBv
dXQucHJpbnQoIlplcm9SZWciKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQXJnOjpTaW1w
bGVBZGRyOgogICAgICAgICBvdXQucHJpbnQoIlNpbXBsZUFkZHIiKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKaW5kZXggODcyMDRlNjdjNzc3NTNi
NDE2NTJmNzM5NGYwYzM0NjczZGNiMzliNC4uY2NlZjQ1Njg4MDNjZTI1NzIxMzBlM2JlYjc2YzEw
ZGVlYjhhNzI3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJB
cmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC04NSw3
ICs4NSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIERvdWJsZUNvbmQsCiAgICAgICAgIFN0YXR1c0Nv
bmQsCiAgICAgICAgIFNwZWNpYWwsCi0gICAgICAgIFdpZHRoQXJnCisgICAgICAgIFdpZHRoQXJn
LAorCisgICAgICAgIC8vIFplcm9SZWcgaXMgaW50ZXJwcmV0ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVy
IGluIEFSTTY0CisgICAgICAgIFplcm9SZWcKICAgICB9OwogICAgIAogICAgIGVudW0gVGVtcGVy
YXR1cmUgOiBpbnQ4X3QgewpAQCAtNjkzLDYgKzY5NiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6ZXJvUmVnKCkKKyAgICB7Cisg
ICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBaZXJvUmVnOworICAg
ICAgICByZXN1bHQubV9vZmZzZXQgPSAwOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBcmcmIG90aGVyKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1fb2Zmc2V0ID09IG90aGVyLm1fb2Zmc2V0CkBAIC03MzksNiArNzUwLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBCaXRJbW02NDsKICAgICB9CiAK
KyAgICBib29sIGlzWmVyb1JlZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4ga2luZCgp
ID09IFplcm9SZWc7CisgICAgfQorCiAgICAgYm9vbCBpc1NvbWVJbW0oKSBjb25zdAogICAgIHsK
ICAgICAgICAgc3dpdGNoIChraW5kKCkpIHsKQEAgLTEwMjIsNiArMTAzOCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgY2FzZSBCaWdJbW06CiAgICAgICAgIGNhc2UgQml0SW1tOgogICAgICAgICBjYXNl
IEJpdEltbTY0OgorICAgICAgICBjYXNlIFplcm9SZWc6CiAgICAgICAgIGNhc2UgU2ltcGxlQWRk
cjoKICAgICAgICAgY2FzZSBBZGRyOgogICAgICAgICBjYXNlIEV4dGVuZGVkT2Zmc2V0QWRkcjoK
QEAgLTEwNTcsNiArMTA3NCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBTcGVjaWFsOgogICAg
ICAgICBjYXNlIFdpZHRoQXJnOgogICAgICAgICBjYXNlIEludmFsaWQ6CisgICAgICAgIGNhc2Ug
WmVyb1JlZzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBTaW1wbGVB
ZGRyOgogICAgICAgICBjYXNlIEFkZHI6CkBAIC0xMjM2LDYgKzEyNTQsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbUZvcm0odmFsdWUoKSk7CiAgICAgICAgIGNh
c2UgQml0SW1tNjQ6CiAgICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbTY0Rm9ybSh2YWx1
ZSgpKTsKKyAgICAgICAgY2FzZSBaZXJvUmVnOgogICAgICAgICBjYXNlIFNpbXBsZUFkZHI6CiAg
ICAgICAgIGNhc2UgRXh0ZW5kZWRPZmZzZXRBZGRyOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0xMzMxLDYgKzEzNTAsMTMgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisjaWYgQ1BV
KEFSTTY0KQorICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGFzWmVyb1JlZygpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gQVJNNjRSZWdpc3RlcnM6OnpyOworICAgIH0KKyNlbmRp
ZgorCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIgYXNUcnVzdGVkSW1tUHRyKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIGlmIChpczY0Qml0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCmluZGV4IDljOGY1MWU0ZTAy
NzAxZWVkYmE0Y2U3OTIzY2Y1NTc0Y2ZiM2Q3N2MuLjllMTVmZmFjOWUzYWM4OGVlOGQ1ZWY5OWFm
ZmM5OThmMjNlYjllMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCkBAIC0xNTcsOSArMTU3LDE2IEBAIHZvaWQgbG93ZXJTdGFj
a0FyZ3MoQ29kZSYgY29kZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChzbG90LT5ieXRlU2l6ZSgpID09IDgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHdpZHRoID09IFdpZHRoMzIpOwogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNWYWxpZEZvcm0oU3RvcmVaZXJvMzIsIEFyZzo6U3Rh
Y2spKTsKKyNpZiBDUFUoQVJNNjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBr
aW5kID0gQXJnOjpaZXJvUmVnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gYXJn
ID0gQXJnOjp6ZXJvUmVnKCk7CisjZWxpZiBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2luZCA9IEFyZzo6SW1tOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8gYXJnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigw
KTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlz
VmFsaWRGb3JtKFN0b3JlMzIsIGtpbmQsIEFyZzo6U3RhY2spKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0KAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnN0SW5kZXggKyAxLCBTdG9yZVplcm8zMiwgaW5zdC5vcmlnaW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RJbmRleCArIDEsIFN0b3JlMzIsIGluc3Qub3Jp
Z2luLCBhcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrQWRkcihhcmcu
b2Zmc2V0KCkgKyA0ICsgc2xvdC0+b2Zmc2V0RnJvbUZQKCkpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IHN0YWNrQWRkcihhcmcub2Zm
c2V0KCkgKyBzbG90LT5vZmZzZXRGcm9tRlAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwppbmRleCA2NGNhNzc3YmYwNjVlZWY3ODc2YTkwOTI4
NDlhZDU1YjgyNDliZDdhLi5mZWYzZDYwYjRhMjBhOGYyY2IyODc2MzE0YzllNjU1Y2RjMGZhNjA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNv
ZGVzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMK
QEAgLTY3NSwxNCArNjc1LDE1IEBAIE1vdmUzMiBVOkc6MzIsIFpEOkc6MzIKIE1vdmUzMiBVOkc6
MzIsIFpEOkc6MzIsIFM6RzozMgogICAgIEFkZHIsIEFkZHIsIFRtcAogCi0jIEZJWE1FOiBTdG9y
ZVplcm8zMiBhbmQgU3RvcmVaZXJvNjQgYXJlIGhhY2tzIG9uIEFSTTY0LCB3ZSBjYW4gZG8gYmV0
dGVyOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0ODIxCi1TdG9y
ZVplcm8zMiBEOkc6MzIKLSAgICBBZGRyCi0gICAgSW5kZXgKK1N0b3JlMzIgVTpHOjMyLCBaRDpH
OjMyCisgICAgYXJtNjQ6IFplcm9SZWcsIEFkZHIKKyAgICBhcm02NDogWmVyb1JlZywgSW5kZXgK
KyAgICB4ODY6IEltbSwgQWRkcgorICAgIHg4NjogSW1tLCBJbmRleAogCi02NDogU3RvcmVaZXJv
NjQgRDpHOjY0Ci0gICAgQWRkcgotICAgIEluZGV4Cithcm02NDogU3RvcmU2NCBVOkc6NjQsIEQ6
Rzo2NAorICAgIFplcm9SZWcsIEFkZHIKKyAgICBaZXJvUmVnLCBJbmRleAogCiBTaWduRXh0ZW5k
MzJUb1B0ciBVOkc6MzIsIEQ6RzpQdHIKICAgICBUbXAsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCmluZGV4IDZjNjFlY2U4NTc2Yjhl
MzE5YzVmNTgyMTg0ZDE3MzI3OTgzNjQwMmIuLjM3NDBlZmRiZGQxNDZhMzdmNmVkZTlkZGJjMjNk
ZGJhMDNiMDc2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29k
ZV9nZW5lcmF0b3IucmIKQEAgLTIyOSw3ICsyMjksNyBAQCBkZWYgaXNHRih0b2tlbikKIGVuZAog
CiBkZWYgaXNLaW5kKHRva2VuKQotICAgIHRva2VuID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1t
KXwoQml0SW1tKXwoQml0SW1tNjQpfChTaW1wbGVBZGRyKXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0
QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8KFJlc0NvbmQpfChEb3VibGVDb25kKXwoU3RhdHVzQ29u
ZCkpXFovCisgICAgdG9rZW4gPX4gL1xBKChUbXApfChJbW0pfChCaWdJbW0pfChCaXRJbW0pfChC
aXRJbW02NCl8KFplcm9SZWcpfChTaW1wbGVBZGRyKXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0QWRk
cil8KEluZGV4KXwoUmVsQ29uZCl8KFJlc0NvbmQpfChEb3VibGVDb25kKXwoU3RhdHVzQ29uZCkp
XFovCiBlbmQKIAogZGVmIGlzQXJjaCh0b2tlbikKQEAgLTMwMyw3ICszMDMsNyBAQCBjbGFzcyBQ
YXJzZXIKIAogICAgIGRlZiBjb25zdW1lS2luZAogICAgICAgICByZXN1bHQgPSB0b2tlbi5zdHJp
bmcKLSAgICAgICAgcGFyc2VFcnJvcigiRXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdElt
bSwgQml0SW1tNjQsIFRtcCwgU2ltcGxlQWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJ
bmRleCwgUmVsQ29uZCwgUmVzQ29uZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxl
c3MgaXNLaW5kKHJlc3VsdCkKKyAgICAgICAgcGFyc2VFcnJvcigiRXhwZWN0ZWQga2luZCAoSW1t
LCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIFplcm9SZWcsIFRtcCwgU2ltcGxlQWRkciwgQWRk
ciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwgUmVzQ29uZCwgRG91YmxlQ29u
ZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3VsdCkKICAgICAgICAgYWR2YW5j
ZQogICAgICAgICByZXN1bHQKICAgICBlbmQKQEAgLTQ3NSw2ICs0NzUsMTQgQEAgY2xhc3MgUGFy
c2VyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKCJGb3Jt
IGhhcyBhbiBpbW1lZGlhdGUgZm9yIGEgbm9uLWdlbmVyYWwtcHVycG9zZSBhcmd1bWVudCIpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGtpbmQubmFtZSA9PSAi
WmVyb1JlZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2lnbmF0dXJlW2lu
ZGV4XS5yb2xlICE9ICJVIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFy
c2VFcnJvcigiWmVybyBpbW1lZGlhdGUgbXVzdCBiZSBhIHVzZSBhcmd1bWVudCIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiBzaWduYXR1cmVbaW5kZXhdLmJhbmsgIT0gIkciCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKCJaZXJvIGltbWVkaWF0ZSBtdXN0IGJlIGEgZ2Vu
ZXJhbC1wdXJwb3NlIGFyZ3VtZW50IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtcyA8PCBGb3JtLm5ldyhraW5kcywg
YWx0TmFtZSwgaW50ZXJzZWN0QXJjaHMob3Bjb2RlQXJjaHMsIGZvcm1BcmNocykpCiAKQEAgLTky
Niw2ICs5MzQsNyBAQCB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICAgICAgICAgICAg
ICB3aGVuICJSZXNDb25kIgogICAgICAgICAgICAgICAgIHdoZW4gIkRvdWJsZUNvbmQiCiAgICAg
ICAgICAgICAgICAgd2hlbiAiU3RhdHVzQ29uZCIKKyAgICAgICAgICAgICAgICB3aGVuICJaZXJv
UmVnIgogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgIlVu
ZXhwZWN0ZWQga2luZDogI3traW5kLm5hbWV9IgogICAgICAgICAgICAgICAgIGVuZApAQCAtMTIy
MCw2ICsxMjI5LDggQEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAg
ICAgICAgIG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzVHJ1c3RlZEltbTMyKCkiCiAgICAg
ICAgICAgICAgICAgd2hlbiAiQmlnSW1tIiwgIkJpdEltbTY0IgogICAgICAgICAgICAgICAgICAg
ICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW02NCgpIgorICAgICAgICAg
ICAgICAgIHdoZW4gIlplcm9SZWciCisgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQgImFy
Z3NbI3tpbmRleH1dLmFzWmVyb1JlZygpIgogICAgICAgICAgICAgICAgIHdoZW4gIlNpbXBsZUFk
ZHIiLCAiQWRkciIsICJFeHRlbmRlZE9mZnNldEFkZHIiCiAgICAgICAgICAgICAgICAgICAgIG91
dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzQWRkcmVzcygpIgogICAgICAgICAgICAgICAgIHdo
ZW4gIkluZGV4IgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCmluZGV4IGY4YmU3NzkzY2VhZDVk
MjNkZDk2MGU1MTQwZmFmODcwNGNlYWY0YzMuLjk4NDhmNjNlODY5YWYyYjNmYjU2YzVlYjA0YWZl
MGJiMzc5N2IwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKQEAgLTY4MSw2ICs2ODEs
NyBAQCB2b2lkIHRlc3RJVG9EMzJJbW0oaW50MzJfdCB2YWx1ZSk7CiB2b2lkIHRlc3RJVG9GMzJJ
bW0oaW50MzJfdCB2YWx1ZSk7CiB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJnKCk7CiB2
b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJnKCk7Cit2b2lkIHRlc3RTdG9yZVplcm9SZWco
KTsKIHZvaWQgdGVzdFN0b3JlMzIoaW50IHZhbHVlKTsKIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnQo
aW50IHZhbHVlKTsKIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnRQdHIoaW50cHRyX3QgdmFsdWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKaW5kZXggMmJlODgzMjg2MWZkMGQ1YTY1
MDMzMjlkM2EzZTdiOWNkZjNiN2IwMS4uMWUxMzU2NzU0NDAyN2RjN2M2NjUyZThjMmQ2NGM5ZTg1
ODA3OGRmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCkBAIC0zMzgsNiAr
MzM4LDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTl9VTkFSWSh0ZXN0
Q2hlY2tBZGRSZW1vdmVDaGVja1dpdGhTRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAgICAgUlVO
X1VOQVJZKHRlc3RDaGVja0FkZFJlbW92ZUNoZWNrV2l0aFpFeHQzMiwgaW50MzJPcGVyYW5kcygp
KTsKIAorICAgIFJVTih0ZXN0U3RvcmVaZXJvUmVnKCkpOwogICAgIFJVTih0ZXN0U3RvcmUzMig0
NCkpOwogICAgIFJVTih0ZXN0U3RvcmVDb25zdGFudCg0OSkpOwogICAgIFJVTih0ZXN0U3RvcmVD
b25zdGFudFB0cig0OSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiM18zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKaW5kZXgg
YzE3YWJjNzM2MzQwZDVhYmIzNjRjNDNmNWM4NjA3MTA4NjZkYTQ2Yi4uNGM1MmFkYTljYzQwMmRk
ZTUzOTg4Y2M4ZjJmNWU5ZTBkZGUyZTExYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiM18zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
XzMuY3BwCkBAIC0yODg4LDYgKzI4ODgsODMgQEAgdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Yz
MkFyZygpCiAgICAgICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIHRl
c3RWYWx1ZS52YWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pih0ZXN0VmFsdWUudmFsdWUpKSk7CiB9
CiAKK3ZvaWQgdGVzdFN0b3JlWmVyb1JlZygpCit7CisgICAgLy8gRGlyZWN0IGFkZHJlc3NpbmcK
KyAgICB7CisgICAgICAgIGludDMyX3Qgc2xvdDMyID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJv
Y2VkdXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApOworICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KAorICAgICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QzMiks
IDApOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgdmFsdWUpOworCisgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2Mp
OworICAgICAgICBpbnZva2U8aW50PigqY29kZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3QzMiwg
MCk7CisgICAgfQorCisgICAgeworICAgICAgICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7
CisgICAgICAgIFByb2NlZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOworCisgICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUs
CisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksICZzbG90NjQpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKworICAgICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlUHJvYyhwcm9jKTsKKyAgICAgICAgaW52b2tlPGludD4oKmNvZGUpOworICAgICAgICBDSEVD
S19FUShzbG90NjQsIDApOworICAgIH0KKworICAgIC8vIEluZGV4ZWQgYWRkcmVzc2luZworICAg
IHsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KTsKKyAgICAgICAgVmFsdWUqIGRpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFj
ZW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3Bs
YWNlbWVudCwgYmFzZSk7CisgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOwor
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCB2YWx1ZSwgYWRkcmVzcywgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50MzJfdCBz
bG90MzIgPSAweGJhYWRiZWVmOworICAgICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
ICZzbG90MzIsIDEpOworICAgICAgICBDSEVDS19FUShzbG90MzIsIDApOworICAgIH0KKworICAg
IHsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KTsKKyAgICAgICAgVmFsdWUqIGRpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFj
ZW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3Bs
YWNlbWVudCwgYmFzZSk7CisgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOwor
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCB2YWx1ZSwgYWRkcmVzcywgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50NjRfdCBz
bG90NjQgPSAweGJhYWRiZWVmOworICAgICAgICBjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
ICZzbG90NjQsIDEpOworICAgICAgICBDSEVDS19FUShzbG90NjQsIDApOworICAgIH0KK30KKwog
dm9pZCB0ZXN0U3RvcmUzMihpbnQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7Cg==
</data>
<flag name="commit-queue"
          id="455660"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433419</attachid>
            <date>2021-07-13 10:51:30 -0700</date>
            <delta_ts>2021-07-13 11:26:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210713125129.patch</filename>
            <type>text/plain</type>
            <size>20986</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDQ4ODMzZDk5OTYyNWViYjliYzIxMzRhODFiOWYzNmNjNWEwYTYwLi5hMzg5ZmY4ZWFlODFkMWFi
YzA1OGI0YzRhMTcxNmMyYjBiNTNiMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAyMS0wNy0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWmVyb1JlZyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQjMgaXMgZGVzaWduZWQgdG8gYmUgcG9ydGFibGUgdG8gbWFueSBraW5kcyBvZiBDUFVz
LiBIb3dldmVyLCB0byBlZmZlY3RpdmVseSBjb21waWxlIAorICAgICAgICBjb2RlIHRvIGRpZmZl
cmVudCBDUFVzLCB0aGUgY29tcGlsZXIgbXVzdCBldmVudHVhbGx5IG1ha2UgZXhwbGljaXQgaW5z
dHJ1Y3Rpb24gc2V0IAorICAgICAgICBkZXRhaWxzLiBUaGVuLCBBaXIgaXMgaW50cm9kdWNlZCwg
YW5kIGl0IGlzIGRlc2lnbmVkIHRvIHRhcmdldCBpbmRpdmlkdWFsIENQVSAKKyAgICAgICAgYXJj
aGl0ZWN0dXJlcyBhbmQgZ2VuZXJhdGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRob3NlIENQ
VXMuIAorCisgICAgICAgIFByZXZpb3VzbHksIEIzIGFuZCBBaXIgZG9uJ3QgcmVjb2duaXplIHRo
ZSB6ZXJvIHJlZ2lzdGVyLiBUaGlzIHByb2JsZW0gaGFzIGJlZW4gcG9pbnRlZCAKKyAgICAgICAg
b3V0IGluICMxNzQ4MjEsIHdoaWNoIHdhcyB0cnlpbmcgdG8gaW50cm9kdWNlIHRoZSBuZXcgb3Bj
b2RlcyB0byBoYW5kbGUgdGhlIHplcm8gCisgICAgICAgIHJlZ2lzdGVyLiAKKworICAgICAgICBU
byBzb2x2ZSB0aGlzIHByb2JsZW0gaW4gYSBtb2R1bGFyIHJlYXNvbmluZyBhcHByb2FjaCwgYSBu
ZXcgQWlyIG9wZXJhbmQgWmVyb1JlZyBzaG91bGQgCisgICAgICAgIGJlIGludHJvZHVjZWQuIEl0
cyBnb2FsIGlzIHRvIGNsb3NlbHkgbWF0Y2ggdGhlIENQVSBpbnN0cnVjdGlvbnMgYWNjZXB0aW5n
IHRoZSB6ZXJvIAorICAgICAgICByZWdpc3RlciBpbiBBUk02NC4gQW5vdGhlciByZWFzb24gaXMg
dGhhdCB0aGUgbmV3IG92ZXJsb2FkcyBvZiB0aGUgaW5zdHJ1Y3Rpb25zIHRha2luZyAKKyAgICAg
ICAgdGhlIHplcm8gcmVnaXN0ZXIgY2FuIGJlbmVmaXQgaW5zdHJ1Y3Rpb24gc2VsZWN0aW9uIHdp
dGggdGhpcyBpbXBsZW1lbnRhdGlvbi4gCisKKyAgICAgICAgSGVyZSwgdGhlIFplcm9SZWcgaXMg
YWRkZWQgYXMgYSBuZXcga2luZCBmb3IgQWlyOjpBcmcsIHdoaWNoIGFjdHMgYXMgYSAiaGlnaCBs
ZXZlbCIgCisgICAgICAgIG9wZXJhbmQgdG8gYmUgZW1pdHRlZCB3aXRoIHRoZSBhc3NvY2lhdGl2
ZSBvcGNvZGVzLiBJbiBBUk02NCwgdGhlIFplcm9SZWcgd291bGQgYmUgCisgICAgICAgIGVtaXR0
ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVyLiAgCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk02NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVpl
cm82NCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3Jl
WmVybzMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3Rv
cmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVa
ZXJvMzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6
c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3RvcmVaZXJv
NjQpOiBEZWxldGVkLgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgICog
YjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9SZWcpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpB
cmc6OmlzWmVyb1JlZyBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBj
b25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZvcm0gY29uc3QpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpBcmc6OmFzWmVyb1JlZyBjb25zdCk6CisgICAgICAgICogYjMvYWlyL0Fpckxvd2Vy
U3RhY2tBcmdzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6bG93ZXJTdGFja0FyZ3MpOgor
ICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKyAgICAgICAgKiBiMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBiMy90ZXN0YjMuaDoKKyAgICAgICAgKiBiMy90
ZXN0YjNfMS5jcHA6CisgICAgICAgIChydW4pOgorICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoK
KyAgICAgICAgKHRlc3RTdG9yZVplcm9SZWcpOgorCiAyMDIxLTA3LTEyICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjI3NzAyNzogYnJlYWtzIEdDLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAppbmRleCAzZDg1Y2JiOGRiNTMzYzg0MDdhYWI2NWEzOTA0NGY5YmEyYjQwMjJjLi40
YTkwZTVhMWZkZTQ4Y2NmYzQ3YTcyNzQ5ZTU4NWY3ZDAyNGUxY2M1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAt
MTczMSwxNiArMTczMSw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3RyPDY0Pihz
cmMsIGRlc3QsIHNpbW0pOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVy
czo6enIsIGFkZHJlc3MpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEJhc2VJ
bmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVyczo6enIs
IGFkZHJlc3MpOwotICAgIH0KLSAgICAKICAgICBEYXRhTGFiZWwzMiBzdG9yZTY0V2l0aEFkZHJl
c3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAg
ICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0xODM4LDE2ICsxODI4LDYgQEAgcHVi
bGljOgogICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0K
IAotICAgIHZvaWQgc3RvcmVaZXJvMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewot
ICAgICAgICBzdG9yZTMyKEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotCi0g
ICAgdm9pZCBzdG9yZVplcm8zMihCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0
b3JlMzIoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0KICAgICBEYXRhTGFi
ZWwzMiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVz
cyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0x
ODkzLDE2ICsxODczLDYgQEAgcHVibGljOgogICAgICAgICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVaZXJvMTYoSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KEFSTTY0UmVnaXN0ZXJzOjp6ciwg
YWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihCYXNlSW5kZXggYWRkcmVz
cykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsK
LSAgICB9Ci0KICAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJl
c3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0ICYmICFhZGRyZXNzLnNjYWxl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5kZXggYTI2NTUzYTViY2UwZmNmN2JmMDgwNzJmNTk4MmM5
YjUwNzYyMGFlZi4uNTRkNDU2N2Q0YzFjNDVkZmUwYzMyOGNhN2JjZGI4NGU5ZWIyZjk3NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaApAQCAtMTMzNywyNiArMTMzNyw2IEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIubW92bF9pMzJtKGltbS5tX3ZhbHVlLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAKLSAgICB2b2lk
IHN0b3JlWmVybzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3Rv
cmUzMihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVa
ZXJvMzIoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJ
bW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoVHJ1c3RlZEltbTMyKDAp
LCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3JlWmVybzE2KEJhc2VJbmRleCBhZGRy
ZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwot
ICAgIH0KLQogICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBpbW04KHN0YXRpY19jYXN0PGludDhfdD4o
aW1tLm1fdmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAzMzQ3MmRkOTMxYTk3YjA5Yjk3ZGM5MmY1
MTFlNmMyMmRjYTMyMTIyLi45NDM3ZmQzYmQyYWMxNjY4MTZmMjhmMzdkYmQ5OTA1MWRmMzdhMWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCkBAIC0xMDE1LDE2ICsxMDE1LDYgQEAgcHVibGljOgogICAgICAgICBt
X2Fzc2VtYmxlci5tb3ZxX3JtKHNjcmF0Y2hSZWdpc3RlcigpLCBhZGRyZXNzLm9mZnNldCwgYWRk
cmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAgICAgCi0g
ICAgdm9pZCBzdG9yZVplcm82NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAg
ICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCi0gICAg
dm9pZCBzdG9yZVplcm82NChCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3Jl
NjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCiAgICAgRGF0YUxhYmVs
MzIgc3RvcmU2NFdpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIHBhZEJlZm9yZVBhdGNoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IGQyMGIxNDEwZDc3MjgyODgxNGVmMmNj
NTQxZDBjYmQxNDdhNjM1MDcuLjhmYzFhZmMyYTUzOTFmNDU2NWMzZDNkOThmN2EwZjc2NDgzNjIz
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC03MDIs
NiArNzAyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBBcmcoKTsKICAgICB9CiAKKyAg
ICBBcmcgemVyb1JlZygpCisgICAgeworICAgICAgICByZXR1cm4gQXJnOjp6ZXJvUmVnKCk7Cisg
ICAgfQorCiAgICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlm
IChBcmcgcmVzdWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEwOTQsMTcgKzEwOTksMTcgQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBBaXI7CiAgICAgICAgIGlmIChhdXRv
IGltbV92YWx1ZSA9IGltbSh2YWx1ZSkpIHsKLSAgICAgICAgICAgIGlmIChpc0FSTTY0KCkgJiYg
aW1tX3ZhbHVlLnZhbHVlKCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKCFpbW1fdmFsdWUudmFs
dWUoKSkgewogICAgICAgICAgICAgICAgIHN3aXRjaCAobW92ZS5vcGNvZGUpIHsKICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICBjYXNlIEFpcjo6TW92ZTMyOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZv
cm0oU3RvcmVaZXJvMzIsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIp
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvMzIsIG1fdmFs
dWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmUzMiwg
QXJnOjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDMyKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlMzIsIG1fdmFsdWUsIHpl
cm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIGNhc2UgQWlyOjpNb3ZlOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0o
U3RvcmVaZXJvNjQsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvNjQsIG1fdmFsdWUs
IGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmU2NCwgQXJn
OjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDY0KSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlNjQsIG1fdmFsdWUsIHplcm9S
ZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQXJnLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcApp
bmRleCA2Nzg2OTllZmRkNWJjZGVkM2NiZTRhMjY5ZWQyYzJmN2M0OGEyYTMxLi4xMDNjNmVjY2Ez
ZDMxNGJiNGVkOGMwMmE0ZDJmMDA5Y2E2NDFkMDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJBcmcuY3BwCkBAIC0xMDIsNiArMTAyLDcgQEAgdW5zaWduZWQgQXJnOjpqc0hhc2go
KSBjb25zdAogICAgICAgICBicmVhazsKICAgICBjYXNlIEltbToKICAgICBjYXNlIEJpdEltbToK
KyAgICBjYXNlIFplcm9SZWc6CiAgICAgY2FzZSBDYWxsQXJnOgogICAgIGNhc2UgUmVsQ29uZDoK
ICAgICBjYXNlIFJlc0NvbmQ6CkBAIC0xNTksNiArMTYwLDkgQEAgdm9pZCBBcmc6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBjYXNlIEJpdEltbTY0OgogICAgICAgICBvdXQucHJp
bnRmKCIkMHglbGx4Iiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nIHVuc2lnbmVkPihtX29mZnNldCkp
OwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBaZXJvUmVnOgorICAgICAgICBvdXQucHJpbnQo
IiUleHpyIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAg
IG91dC5wcmludCgiKCIsIGJhc2UoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjM2LDYg
KzI0MCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBBcmc6OktpbmQg
a2luZCkKICAgICBjYXNlIEFyZzo6Qml0SW1tNjQ6CiAgICAgICAgIG91dC5wcmludCgiQml0SW1t
NjQiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQXJnOjpaZXJvUmVnOgorICAgICAgICBv
dXQucHJpbnQoIlplcm9SZWciKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQXJnOjpTaW1w
bGVBZGRyOgogICAgICAgICBvdXQucHJpbnQoIlNpbXBsZUFkZHIiKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKaW5kZXggODcyMDRlNjdjNzc3NTNi
NDE2NTJmNzM5NGYwYzM0NjczZGNiMzliNC4uY2NlZjQ1Njg4MDNjZTI1NzIxMzBlM2JlYjc2YzEw
ZGVlYjhhNzI3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJB
cmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC04NSw3
ICs4NSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIERvdWJsZUNvbmQsCiAgICAgICAgIFN0YXR1c0Nv
bmQsCiAgICAgICAgIFNwZWNpYWwsCi0gICAgICAgIFdpZHRoQXJnCisgICAgICAgIFdpZHRoQXJn
LAorCisgICAgICAgIC8vIFplcm9SZWcgaXMgaW50ZXJwcmV0ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVy
IGluIEFSTTY0CisgICAgICAgIFplcm9SZWcKICAgICB9OwogICAgIAogICAgIGVudW0gVGVtcGVy
YXR1cmUgOiBpbnQ4X3QgewpAQCAtNjkzLDYgKzY5NiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6ZXJvUmVnKCkKKyAgICB7Cisg
ICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBaZXJvUmVnOworICAg
ICAgICByZXN1bHQubV9vZmZzZXQgPSAwOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBcmcmIG90aGVyKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1fb2Zmc2V0ID09IG90aGVyLm1fb2Zmc2V0CkBAIC03MzksNiArNzUwLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBCaXRJbW02NDsKICAgICB9CiAK
KyAgICBib29sIGlzWmVyb1JlZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4ga2luZCgp
ID09IFplcm9SZWc7CisgICAgfQorCiAgICAgYm9vbCBpc1NvbWVJbW0oKSBjb25zdAogICAgIHsK
ICAgICAgICAgc3dpdGNoIChraW5kKCkpIHsKQEAgLTEwMjIsNiArMTAzOCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgY2FzZSBCaWdJbW06CiAgICAgICAgIGNhc2UgQml0SW1tOgogICAgICAgICBjYXNl
IEJpdEltbTY0OgorICAgICAgICBjYXNlIFplcm9SZWc6CiAgICAgICAgIGNhc2UgU2ltcGxlQWRk
cjoKICAgICAgICAgY2FzZSBBZGRyOgogICAgICAgICBjYXNlIEV4dGVuZGVkT2Zmc2V0QWRkcjoK
QEAgLTEwNTcsNiArMTA3NCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBTcGVjaWFsOgogICAg
ICAgICBjYXNlIFdpZHRoQXJnOgogICAgICAgICBjYXNlIEludmFsaWQ6CisgICAgICAgIGNhc2Ug
WmVyb1JlZzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBTaW1wbGVB
ZGRyOgogICAgICAgICBjYXNlIEFkZHI6CkBAIC0xMjM2LDYgKzEyNTQsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbUZvcm0odmFsdWUoKSk7CiAgICAgICAgIGNh
c2UgQml0SW1tNjQ6CiAgICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbTY0Rm9ybSh2YWx1
ZSgpKTsKKyAgICAgICAgY2FzZSBaZXJvUmVnOgogICAgICAgICBjYXNlIFNpbXBsZUFkZHI6CiAg
ICAgICAgIGNhc2UgRXh0ZW5kZWRPZmZzZXRBZGRyOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0xMzMxLDYgKzEzNTAsMTMgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisjaWYgQ1BV
KEFSTTY0KQorICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGFzWmVyb1JlZygpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gQVJNNjRSZWdpc3RlcnM6OnpyOworICAgIH0KKyNlbmRp
ZgorCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIgYXNUcnVzdGVkSW1tUHRyKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIGlmIChpczY0Qml0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCmluZGV4IDljOGY1MWU0ZTAy
NzAxZWVkYmE0Y2U3OTIzY2Y1NTc0Y2ZiM2Q3N2MuLjhkYzE3OWM4ODAyMDNlY2Y0NzM2MTIzMDkx
NjVhNmZjMzdhMTc3MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCkBAIC0xNTcsOSArMTU3LDIwIEBAIHZvaWQgbG93ZXJTdGFj
a0FyZ3MoQ29kZSYgY29kZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChzbG90LT5ieXRlU2l6ZSgpID09IDgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHdpZHRoID09IFdpZHRoMzIpOwogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNWYWxpZEZvcm0oU3RvcmVaZXJvMzIsIEFyZzo6U3Rh
Y2spKTsKKyNpZiBDUFUoQVJNNjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBz
dG9yZU9wY29kZSA9IFN0b3JlMzI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBv
cGVyYW5kS2luZCA9IEFyZzo6WmVyb1JlZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIG9wZXJhbmQgPSBBcmc6Onplcm9SZWcoKTsKKyNlbGlmIENQVShYODZfNjQpIHx8IENQVShY
ODYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdG9yZU9wY29kZSA9IE1vdmUz
MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG9wZXJhbmRLaW5kID0gQXJnOjpJ
bW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBvcGVyYW5kID0gVHJ1c3RlZElt
bTMyKDApOworI2Vsc2UKKyNlcnJvciBVbmhhbmRsZWQgYXJjaGl0ZWN0dXJlLgorI2VuZGlmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNWYWxpZEZvcm0oc3Rv
cmVPcGNvZGUsIG9wZXJhbmRLaW5kLCBBcmc6OlN0YWNrKSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5zdEluZGV4ICsgMSwgU3RvcmVaZXJvMzIsIGluc3Qub3JpZ2luLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnN0SW5kZXggKyAxLCBzdG9yZU9wY29kZSwgaW5zdC5v
cmlnaW4sIG9wZXJhbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrQWRk
cihhcmcub2Zmc2V0KCkgKyA0ICsgc2xvdC0+b2Zmc2V0RnJvbUZQKCkpKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IHN0YWNrQWRkcihh
cmcub2Zmc2V0KCkgKyBzbG90LT5vZmZzZXRGcm9tRlAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwppbmRleCA2NGNhNzc3YmYwNjVlZWY3ODc2
YTkwOTI4NDlhZDU1YjgyNDliZDdhLi41OTFkYTNhNDRmODVlMDA5NmRhNmQyNzgwOWVjOTkyYjhi
ZTE1NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29k
ZS5vcGNvZGVzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9w
Y29kZXMKQEAgLTY3NSwxNCArNjc1LDEzIEBAIE1vdmUzMiBVOkc6MzIsIFpEOkc6MzIKIE1vdmUz
MiBVOkc6MzIsIFpEOkc6MzIsIFM6RzozMgogICAgIEFkZHIsIEFkZHIsIFRtcAogCi0jIEZJWE1F
OiBTdG9yZVplcm8zMiBhbmQgU3RvcmVaZXJvNjQgYXJlIGhhY2tzIG9uIEFSTTY0LCB3ZSBjYW4g
ZG8gYmV0dGVyOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0ODIx
Ci1TdG9yZVplcm8zMiBEOkc6MzIKLSAgICBBZGRyCi0gICAgSW5kZXgKK2FybTY0OiBTdG9yZTMy
IFU6RzozMiwgWkQ6RzozMgorICAgIFplcm9SZWcsIEFkZHIKKyAgICBaZXJvUmVnLCBJbmRleAog
Ci02NDogU3RvcmVaZXJvNjQgRDpHOjY0Ci0gICAgQWRkcgotICAgIEluZGV4Cithcm02NDogU3Rv
cmU2NCBVOkc6NjQsIEQ6Rzo2NAorICAgIFplcm9SZWcsIEFkZHIKKyAgICBaZXJvUmVnLCBJbmRl
eAogCiBTaWduRXh0ZW5kMzJUb1B0ciBVOkc6MzIsIEQ6RzpQdHIKICAgICBUbXAsIFRtcApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJi
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCmluZGV4
IDZjNjFlY2U4NTc2YjhlMzE5YzVmNTgyMTg0ZDE3MzI3OTgzNjQwMmIuLjM3NDBlZmRiZGQxNDZh
MzdmNmVkZTlkZGJjMjNkZGJhMDNiMDc2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKQEAgLTIyOSw3ICsyMjksNyBAQCBkZWYgaXNH
Rih0b2tlbikKIGVuZAogCiBkZWYgaXNLaW5kKHRva2VuKQotICAgIHRva2VuID1+IC9cQSgoVG1w
KXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1tNjQpfChTaW1wbGVBZGRyKXwoQWRkcil8
KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8KFJlc0NvbmQpfChEb3VibGVD
b25kKXwoU3RhdHVzQ29uZCkpXFovCisgICAgdG9rZW4gPX4gL1xBKChUbXApfChJbW0pfChCaWdJ
bW0pfChCaXRJbW0pfChCaXRJbW02NCl8KFplcm9SZWcpfChTaW1wbGVBZGRyKXwoQWRkcil8KEV4
dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29uZCl8KFJlc0NvbmQpfChEb3VibGVDb25k
KXwoU3RhdHVzQ29uZCkpXFovCiBlbmQKIAogZGVmIGlzQXJjaCh0b2tlbikKQEAgLTMwMyw3ICsz
MDMsNyBAQCBjbGFzcyBQYXJzZXIKIAogICAgIGRlZiBjb25zdW1lS2luZAogICAgICAgICByZXN1
bHQgPSB0b2tlbi5zdHJpbmcKLSAgICAgICAgcGFyc2VFcnJvcigiRXhwZWN0ZWQga2luZCAoSW1t
LCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIFRtcCwgU2ltcGxlQWRkciwgQWRkciwgRXh0ZW5k
ZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwgUmVzQ29uZCwgRG91YmxlQ29uZCwgb3IgU3Rh
dHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3VsdCkKKyAgICAgICAgcGFyc2VFcnJvcigiRXhw
ZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIFplcm9SZWcsIFRtcCwg
U2ltcGxlQWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwgUmVz
Q29uZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3VsdCkK
ICAgICAgICAgYWR2YW5jZQogICAgICAgICByZXN1bHQKICAgICBlbmQKQEAgLTQ3NSw2ICs0NzUs
MTQgQEAgY2xhc3MgUGFyc2VyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXJzZUVycm9yKCJGb3JtIGhhcyBhbiBpbW1lZGlhdGUgZm9yIGEgbm9uLWdlbmVyYWwtcHVycG9z
ZSBhcmd1bWVudCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IGtpbmQubmFtZSA9PSAiWmVyb1JlZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgc2lnbmF0dXJlW2luZGV4XS5yb2xlICE9ICJVIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFyc2VFcnJvcigiWmVybyBpbW1lZGlhdGUgbXVzdCBiZSBhIHVzZSBhcmd1
bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiBzaWduYXR1cmVbaW5kZXhdLmJhbmsgIT0gIkciCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKCJaZXJvIGltbWVkaWF0
ZSBtdXN0IGJlIGEgZ2VuZXJhbC1wdXJwb3NlIGFyZ3VtZW50IikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtcyA8PCBG
b3JtLm5ldyhraW5kcywgYWx0TmFtZSwgaW50ZXJzZWN0QXJjaHMob3Bjb2RlQXJjaHMsIGZvcm1B
cmNocykpCiAKQEAgLTkyNiw2ICs5MzQsNyBAQCB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsK
ICAgICAgICAgICAgICAgICB3aGVuICJSZXNDb25kIgogICAgICAgICAgICAgICAgIHdoZW4gIkRv
dWJsZUNvbmQiCiAgICAgICAgICAgICAgICAgd2hlbiAiU3RhdHVzQ29uZCIKKyAgICAgICAgICAg
ICAgICB3aGVuICJaZXJvUmVnIgogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgcmFpc2UgIlVuZXhwZWN0ZWQga2luZDogI3traW5kLm5hbWV9IgogICAgICAgICAgICAg
ICAgIGVuZApAQCAtMTIyMCw2ICsxMjI5LDggQEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7
CiAgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzVHJ1c3Rl
ZEltbTMyKCkiCiAgICAgICAgICAgICAgICAgd2hlbiAiQmlnSW1tIiwgIkJpdEltbTY0IgogICAg
ICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW02
NCgpIgorICAgICAgICAgICAgICAgIHdoZW4gIlplcm9SZWciCisgICAgICAgICAgICAgICAgICAg
IG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzWmVyb1JlZygpIgogICAgICAgICAgICAgICAg
IHdoZW4gIlNpbXBsZUFkZHIiLCAiQWRkciIsICJFeHRlbmRlZE9mZnNldEFkZHIiCiAgICAgICAg
ICAgICAgICAgICAgIG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzQWRkcmVzcygpIgogICAg
ICAgICAgICAgICAgIHdoZW4gIkluZGV4IgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCmluZGV4
IGY4YmU3NzkzY2VhZDVkMjNkZDk2MGU1MTQwZmFmODcwNGNlYWY0YzMuLjk4NDhmNjNlODY5YWYy
YjNmYjU2YzVlYjA0YWZlMGJiMzc5N2IwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgK
QEAgLTY4MSw2ICs2ODEsNyBAQCB2b2lkIHRlc3RJVG9EMzJJbW0oaW50MzJfdCB2YWx1ZSk7CiB2
b2lkIHRlc3RJVG9GMzJJbW0oaW50MzJfdCB2YWx1ZSk7CiB2b2lkIHRlc3RJVG9EUmVkdWNlZFRv
SVRvRjY0QXJnKCk7CiB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJnKCk7Cit2b2lkIHRl
c3RTdG9yZVplcm9SZWcoKTsKIHZvaWQgdGVzdFN0b3JlMzIoaW50IHZhbHVlKTsKIHZvaWQgdGVz
dFN0b3JlQ29uc3RhbnQoaW50IHZhbHVlKTsKIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnRQdHIoaW50
cHRyX3QgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
M18xLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKaW5kZXggMmJl
ODgzMjg2MWZkMGQ1YTY1MDMzMjlkM2EzZTdiOWNkZjNiN2IwMS4uMWUxMzU2NzU0NDAyN2RjN2M2
NjUyZThjMmQ2NGM5ZTg1ODA3OGRmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiM18xLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEu
Y3BwCkBAIC0zMzgsNiArMzM4LDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAg
IFJVTl9VTkFSWSh0ZXN0Q2hlY2tBZGRSZW1vdmVDaGVja1dpdGhTRXh0MzIsIGludDMyT3BlcmFu
ZHMoKSk7CiAgICAgUlVOX1VOQVJZKHRlc3RDaGVja0FkZFJlbW92ZUNoZWNrV2l0aFpFeHQzMiwg
aW50MzJPcGVyYW5kcygpKTsKIAorICAgIFJVTih0ZXN0U3RvcmVaZXJvUmVnKCkpOwogICAgIFJV
Tih0ZXN0U3RvcmUzMig0NCkpOwogICAgIFJVTih0ZXN0U3RvcmVDb25zdGFudCg0OSkpOwogICAg
IFJVTih0ZXN0U3RvcmVDb25zdGFudFB0cig0OSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0
YjNfMy5jcHAKaW5kZXggYzE3YWJjNzM2MzQwZDVhYmIzNjRjNDNmNWM4NjA3MTA4NjZkYTQ2Yi4u
NGM1MmFkYTljYzQwMmRkZTUzOTg4Y2M4ZjJmNWU5ZTBkZGUyZTExYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvdGVzdGIzXzMuY3BwCkBAIC0yODg4LDYgKzI4ODgsODMgQEAgdm9pZCB0ZXN0SVRv
RFJlZHVjZWRUb0lUb0YzMkFyZygpCiAgICAgICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxm
bG9hdD4oKmNvZGUsIHRlc3RWYWx1ZS52YWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pih0ZXN0VmFs
dWUudmFsdWUpKSk7CiB9CiAKK3ZvaWQgdGVzdFN0b3JlWmVyb1JlZygpCit7CisgICAgLy8gRGly
ZWN0IGFkZHJlc3NpbmcKKyAgICB7CisgICAgICAgIGludDMyX3Qgc2xvdDMyID0gMHhiYWFkYmVl
ZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1
ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmln
aW4oKSwgJnNsb3QzMiksIDApOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgICAgIGF1dG8gY29kZSA9IGNv
bXBpbGVQcm9jKHByb2MpOworICAgICAgICBpbnZva2U8aW50PigqY29kZSk7CisgICAgICAgIENI
RUNLX0VRKHNsb3QzMiwgMCk7CisgICAgfQorCisgICAgeworICAgICAgICBpbnQ2NF90IHNsb3Q2
NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIFN0b3JlLCBP
cmlnaW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksICZzbG90NjQpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKworICAgICAgICBh
dXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAgICAgaW52b2tlPGludD4oKmNvZGUp
OworICAgICAgICBDSEVDS19FUShzbG90NjQsIDApOworICAgIH0KKworICAgIC8vIEluZGV4ZWQg
YWRkcmVzc2luZworICAgIHsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAgICAg
ICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgVmFsdWUqIG9mZnNldCA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUqIGRpc3BsYWNlbWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSk7CisKKyAgICAgICAgVmFs
dWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7CisgICAgICAgIFZhbHVlKiBhZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2Vt
ZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcywgMCk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAg
ICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJhYWRiZWVmOworICAgICAgICBjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsICZzbG90MzIsIDEpOworICAgICAgICBDSEVDS19FUShzbG90MzIsIDAp
OworICAgIH0KKworICAgIHsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAgICAg
ICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgVmFsdWUqIG9mZnNldCA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUqIGRpc3BsYWNlbWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSk7CisKKyAgICAgICAgVmFs
dWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7CisgICAgICAgIFZhbHVlKiBhZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2Vt
ZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcywgMCk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAg
ICAgICAgaW50NjRfdCBzbG90NjQgPSAweGJhYWRiZWVmOworICAgICAgICBjb21waWxlQW5kUnVu
PGludDY0X3Q+KHByb2MsICZzbG90NjQsIDEpOworICAgICAgICBDSEVDS19FUShzbG90NjQsIDAp
OworICAgIH0KK30KKwogdm9pZCB0ZXN0U3RvcmUzMihpbnQgdmFsdWUpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7Cg==
</data>
<flag name="commit-queue"
          id="455669"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433420</attachid>
            <date>2021-07-13 11:01:40 -0700</date>
            <delta_ts>2021-07-13 11:10:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210713130139.patch</filename>
            <type>text/plain</type>
            <size>21002</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDQ4ODMzZDk5OTYyNWViYjliYzIxMzRhODFiOWYzNmNjNWEwYTYwLi5hMzg5ZmY4ZWFlODFkMWFi
YzA1OGI0YzRhMTcxNmMyYjBiNTNiMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAyMS0wNy0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWmVyb1JlZyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQjMgaXMgZGVzaWduZWQgdG8gYmUgcG9ydGFibGUgdG8gbWFueSBraW5kcyBvZiBDUFVz
LiBIb3dldmVyLCB0byBlZmZlY3RpdmVseSBjb21waWxlIAorICAgICAgICBjb2RlIHRvIGRpZmZl
cmVudCBDUFVzLCB0aGUgY29tcGlsZXIgbXVzdCBldmVudHVhbGx5IG1ha2UgZXhwbGljaXQgaW5z
dHJ1Y3Rpb24gc2V0IAorICAgICAgICBkZXRhaWxzLiBUaGVuLCBBaXIgaXMgaW50cm9kdWNlZCwg
YW5kIGl0IGlzIGRlc2lnbmVkIHRvIHRhcmdldCBpbmRpdmlkdWFsIENQVSAKKyAgICAgICAgYXJj
aGl0ZWN0dXJlcyBhbmQgZ2VuZXJhdGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRob3NlIENQ
VXMuIAorCisgICAgICAgIFByZXZpb3VzbHksIEIzIGFuZCBBaXIgZG9uJ3QgcmVjb2duaXplIHRo
ZSB6ZXJvIHJlZ2lzdGVyLiBUaGlzIHByb2JsZW0gaGFzIGJlZW4gcG9pbnRlZCAKKyAgICAgICAg
b3V0IGluICMxNzQ4MjEsIHdoaWNoIHdhcyB0cnlpbmcgdG8gaW50cm9kdWNlIHRoZSBuZXcgb3Bj
b2RlcyB0byBoYW5kbGUgdGhlIHplcm8gCisgICAgICAgIHJlZ2lzdGVyLiAKKworICAgICAgICBU
byBzb2x2ZSB0aGlzIHByb2JsZW0gaW4gYSBtb2R1bGFyIHJlYXNvbmluZyBhcHByb2FjaCwgYSBu
ZXcgQWlyIG9wZXJhbmQgWmVyb1JlZyBzaG91bGQgCisgICAgICAgIGJlIGludHJvZHVjZWQuIEl0
cyBnb2FsIGlzIHRvIGNsb3NlbHkgbWF0Y2ggdGhlIENQVSBpbnN0cnVjdGlvbnMgYWNjZXB0aW5n
IHRoZSB6ZXJvIAorICAgICAgICByZWdpc3RlciBpbiBBUk02NC4gQW5vdGhlciByZWFzb24gaXMg
dGhhdCB0aGUgbmV3IG92ZXJsb2FkcyBvZiB0aGUgaW5zdHJ1Y3Rpb25zIHRha2luZyAKKyAgICAg
ICAgdGhlIHplcm8gcmVnaXN0ZXIgY2FuIGJlbmVmaXQgaW5zdHJ1Y3Rpb24gc2VsZWN0aW9uIHdp
dGggdGhpcyBpbXBsZW1lbnRhdGlvbi4gCisKKyAgICAgICAgSGVyZSwgdGhlIFplcm9SZWcgaXMg
YWRkZWQgYXMgYSBuZXcga2luZCBmb3IgQWlyOjpBcmcsIHdoaWNoIGFjdHMgYXMgYSAiaGlnaCBs
ZXZlbCIgCisgICAgICAgIG9wZXJhbmQgdG8gYmUgZW1pdHRlZCB3aXRoIHRoZSBhc3NvY2lhdGl2
ZSBvcGNvZGVzLiBJbiBBUk02NCwgdGhlIFplcm9SZWcgd291bGQgYmUgCisgICAgICAgIGVtaXR0
ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVyLiAgCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk02NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVpl
cm82NCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3Jl
WmVybzMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3Rv
cmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVa
ZXJvMzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6
c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3RvcmVaZXJv
NjQpOiBEZWxldGVkLgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgICog
YjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9SZWcpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpB
cmc6OmlzWmVyb1JlZyBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBj
b25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZvcm0gY29uc3QpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpBcmc6OmFzWmVyb1JlZyBjb25zdCk6CisgICAgICAgICogYjMvYWlyL0Fpckxvd2Vy
U3RhY2tBcmdzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6bG93ZXJTdGFja0FyZ3MpOgor
ICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKyAgICAgICAgKiBiMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBiMy90ZXN0YjMuaDoKKyAgICAgICAgKiBiMy90
ZXN0YjNfMS5jcHA6CisgICAgICAgIChydW4pOgorICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoK
KyAgICAgICAgKHRlc3RTdG9yZVplcm9SZWcpOgorCiAyMDIxLTA3LTEyICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjI3NzAyNzogYnJlYWtzIEdDLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAppbmRleCAzZDg1Y2JiOGRiNTMzYzg0MDdhYWI2NWEzOTA0NGY5YmEyYjQwMjJjLi40
YTkwZTVhMWZkZTQ4Y2NmYzQ3YTcyNzQ5ZTU4NWY3ZDAyNGUxY2M1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAt
MTczMSwxNiArMTczMSw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3RyPDY0Pihz
cmMsIGRlc3QsIHNpbW0pOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVy
czo6enIsIGFkZHJlc3MpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEJhc2VJ
bmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVyczo6enIs
IGFkZHJlc3MpOwotICAgIH0KLSAgICAKICAgICBEYXRhTGFiZWwzMiBzdG9yZTY0V2l0aEFkZHJl
c3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAg
ICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0xODM4LDE2ICsxODI4LDYgQEAgcHVi
bGljOgogICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0K
IAotICAgIHZvaWQgc3RvcmVaZXJvMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewot
ICAgICAgICBzdG9yZTMyKEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotCi0g
ICAgdm9pZCBzdG9yZVplcm8zMihCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0
b3JlMzIoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0KICAgICBEYXRhTGFi
ZWwzMiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVz
cyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0x
ODkzLDE2ICsxODczLDYgQEAgcHVibGljOgogICAgICAgICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVaZXJvMTYoSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KEFSTTY0UmVnaXN0ZXJzOjp6ciwg
YWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihCYXNlSW5kZXggYWRkcmVz
cykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsK
LSAgICB9Ci0KICAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJl
c3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0ICYmICFhZGRyZXNzLnNjYWxl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5kZXggYTI2NTUzYTViY2UwZmNmN2JmMDgwNzJmNTk4MmM5
YjUwNzYyMGFlZi4uNTRkNDU2N2Q0YzFjNDVkZmUwYzMyOGNhN2JjZGI4NGU5ZWIyZjk3NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaApAQCAtMTMzNywyNiArMTMzNyw2IEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIubW92bF9pMzJtKGltbS5tX3ZhbHVlLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAKLSAgICB2b2lk
IHN0b3JlWmVybzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3Rv
cmUzMihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVa
ZXJvMzIoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJ
bW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoVHJ1c3RlZEltbTMyKDAp
LCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3JlWmVybzE2KEJhc2VJbmRleCBhZGRy
ZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwot
ICAgIH0KLQogICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBpbW04KHN0YXRpY19jYXN0PGludDhfdD4o
aW1tLm1fdmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAzMzQ3MmRkOTMxYTk3YjA5Yjk3ZGM5MmY1
MTFlNmMyMmRjYTMyMTIyLi45NDM3ZmQzYmQyYWMxNjY4MTZmMjhmMzdkYmQ5OTA1MWRmMzdhMWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCkBAIC0xMDE1LDE2ICsxMDE1LDYgQEAgcHVibGljOgogICAgICAgICBt
X2Fzc2VtYmxlci5tb3ZxX3JtKHNjcmF0Y2hSZWdpc3RlcigpLCBhZGRyZXNzLm9mZnNldCwgYWRk
cmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAgICAgCi0g
ICAgdm9pZCBzdG9yZVplcm82NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAg
ICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCi0gICAg
dm9pZCBzdG9yZVplcm82NChCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3Jl
NjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCiAgICAgRGF0YUxhYmVs
MzIgc3RvcmU2NFdpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIHBhZEJlZm9yZVBhdGNoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IGQyMGIxNDEwZDc3MjgyODgxNGVmMmNj
NTQxZDBjYmQxNDdhNjM1MDcuLjhmYzFhZmMyYTUzOTFmNDU2NWMzZDNkOThmN2EwZjc2NDgzNjIz
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC03MDIs
NiArNzAyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBBcmcoKTsKICAgICB9CiAKKyAg
ICBBcmcgemVyb1JlZygpCisgICAgeworICAgICAgICByZXR1cm4gQXJnOjp6ZXJvUmVnKCk7Cisg
ICAgfQorCiAgICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlm
IChBcmcgcmVzdWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEwOTQsMTcgKzEwOTksMTcgQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBBaXI7CiAgICAgICAgIGlmIChhdXRv
IGltbV92YWx1ZSA9IGltbSh2YWx1ZSkpIHsKLSAgICAgICAgICAgIGlmIChpc0FSTTY0KCkgJiYg
aW1tX3ZhbHVlLnZhbHVlKCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKCFpbW1fdmFsdWUudmFs
dWUoKSkgewogICAgICAgICAgICAgICAgIHN3aXRjaCAobW92ZS5vcGNvZGUpIHsKICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICBjYXNlIEFpcjo6TW92ZTMyOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZv
cm0oU3RvcmVaZXJvMzIsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIp
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvMzIsIG1fdmFs
dWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmUzMiwg
QXJnOjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDMyKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlMzIsIG1fdmFsdWUsIHpl
cm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIGNhc2UgQWlyOjpNb3ZlOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0o
U3RvcmVaZXJvNjQsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvNjQsIG1fdmFsdWUs
IGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmU2NCwgQXJn
OjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDY0KSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlNjQsIG1fdmFsdWUsIHplcm9S
ZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQXJnLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcApp
bmRleCA2Nzg2OTllZmRkNWJjZGVkM2NiZTRhMjY5ZWQyYzJmN2M0OGEyYTMxLi4xMDNjNmVjY2Ez
ZDMxNGJiNGVkOGMwMmE0ZDJmMDA5Y2E2NDFkMDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJBcmcuY3BwCkBAIC0xMDIsNiArMTAyLDcgQEAgdW5zaWduZWQgQXJnOjpqc0hhc2go
KSBjb25zdAogICAgICAgICBicmVhazsKICAgICBjYXNlIEltbToKICAgICBjYXNlIEJpdEltbToK
KyAgICBjYXNlIFplcm9SZWc6CiAgICAgY2FzZSBDYWxsQXJnOgogICAgIGNhc2UgUmVsQ29uZDoK
ICAgICBjYXNlIFJlc0NvbmQ6CkBAIC0xNTksNiArMTYwLDkgQEAgdm9pZCBBcmc6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBjYXNlIEJpdEltbTY0OgogICAgICAgICBvdXQucHJp
bnRmKCIkMHglbGx4Iiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nIHVuc2lnbmVkPihtX29mZnNldCkp
OwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBaZXJvUmVnOgorICAgICAgICBvdXQucHJpbnQo
IiUleHpyIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAg
IG91dC5wcmludCgiKCIsIGJhc2UoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjM2LDYg
KzI0MCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBBcmc6OktpbmQg
a2luZCkKICAgICBjYXNlIEFyZzo6Qml0SW1tNjQ6CiAgICAgICAgIG91dC5wcmludCgiQml0SW1t
NjQiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQXJnOjpaZXJvUmVnOgorICAgICAgICBv
dXQucHJpbnQoIlplcm9SZWciKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQXJnOjpTaW1w
bGVBZGRyOgogICAgICAgICBvdXQucHJpbnQoIlNpbXBsZUFkZHIiKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKaW5kZXggODcyMDRlNjdjNzc3NTNi
NDE2NTJmNzM5NGYwYzM0NjczZGNiMzliNC4uY2NlZjQ1Njg4MDNjZTI1NzIxMzBlM2JlYjc2YzEw
ZGVlYjhhNzI3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJB
cmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC04NSw3
ICs4NSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIERvdWJsZUNvbmQsCiAgICAgICAgIFN0YXR1c0Nv
bmQsCiAgICAgICAgIFNwZWNpYWwsCi0gICAgICAgIFdpZHRoQXJnCisgICAgICAgIFdpZHRoQXJn
LAorCisgICAgICAgIC8vIFplcm9SZWcgaXMgaW50ZXJwcmV0ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVy
IGluIEFSTTY0CisgICAgICAgIFplcm9SZWcKICAgICB9OwogICAgIAogICAgIGVudW0gVGVtcGVy
YXR1cmUgOiBpbnQ4X3QgewpAQCAtNjkzLDYgKzY5NiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6ZXJvUmVnKCkKKyAgICB7Cisg
ICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBaZXJvUmVnOworICAg
ICAgICByZXN1bHQubV9vZmZzZXQgPSAwOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBcmcmIG90aGVyKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1fb2Zmc2V0ID09IG90aGVyLm1fb2Zmc2V0CkBAIC03MzksNiArNzUwLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBCaXRJbW02NDsKICAgICB9CiAK
KyAgICBib29sIGlzWmVyb1JlZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4ga2luZCgp
ID09IFplcm9SZWc7CisgICAgfQorCiAgICAgYm9vbCBpc1NvbWVJbW0oKSBjb25zdAogICAgIHsK
ICAgICAgICAgc3dpdGNoIChraW5kKCkpIHsKQEAgLTEwMjIsNiArMTAzOCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgY2FzZSBCaWdJbW06CiAgICAgICAgIGNhc2UgQml0SW1tOgogICAgICAgICBjYXNl
IEJpdEltbTY0OgorICAgICAgICBjYXNlIFplcm9SZWc6CiAgICAgICAgIGNhc2UgU2ltcGxlQWRk
cjoKICAgICAgICAgY2FzZSBBZGRyOgogICAgICAgICBjYXNlIEV4dGVuZGVkT2Zmc2V0QWRkcjoK
QEAgLTEwNTcsNiArMTA3NCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBTcGVjaWFsOgogICAg
ICAgICBjYXNlIFdpZHRoQXJnOgogICAgICAgICBjYXNlIEludmFsaWQ6CisgICAgICAgIGNhc2Ug
WmVyb1JlZzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBTaW1wbGVB
ZGRyOgogICAgICAgICBjYXNlIEFkZHI6CkBAIC0xMjM2LDYgKzEyNTQsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbUZvcm0odmFsdWUoKSk7CiAgICAgICAgIGNh
c2UgQml0SW1tNjQ6CiAgICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbTY0Rm9ybSh2YWx1
ZSgpKTsKKyAgICAgICAgY2FzZSBaZXJvUmVnOgogICAgICAgICBjYXNlIFNpbXBsZUFkZHI6CiAg
ICAgICAgIGNhc2UgRXh0ZW5kZWRPZmZzZXRBZGRyOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0xMzMxLDYgKzEzNTAsMTMgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisjaWYgQ1BV
KEFSTTY0KQorICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGFzWmVyb1JlZygpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gQVJNNjRSZWdpc3RlcnM6OnpyOworICAgIH0KKyNlbmRp
ZgorCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIgYXNUcnVzdGVkSW1tUHRyKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIGlmIChpczY0Qml0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCmluZGV4IDljOGY1MWU0ZTAy
NzAxZWVkYmE0Y2U3OTIzY2Y1NTc0Y2ZiM2Q3N2MuLjY5MzE4ZTY0Y2IyMDhjOWFmYzgyYWUyMWNh
OGYzYjI1MWU1MzdmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCkBAIC0xNTcsOSArMTU3LDIwIEBAIHZvaWQgbG93ZXJTdGFj
a0FyZ3MoQ29kZSYgY29kZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChzbG90LT5ieXRlU2l6ZSgpID09IDgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHdpZHRoID09IFdpZHRoMzIpOwogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNWYWxpZEZvcm0oU3RvcmVaZXJvMzIsIEFyZzo6U3Rh
Y2spKTsKKyNpZiBDUFUoQVJNNjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBz
dG9yZU9wY29kZSA9IFN0b3JlMzI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBv
cGVyYW5kS2luZCA9IEFyZzo6WmVyb1JlZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIG9wZXJhbmQgPSBBcmc6Onplcm9SZWcoKTsKKyNlbGlmIENQVShYODZfNjQpIHx8IENQVShY
ODYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdG9yZU9wY29kZSA9IE1vdmUz
MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG9wZXJhbmRLaW5kID0gQXJnOjpJ
bW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBvcGVyYW5kID0gTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMigwKTsKKyNlbHNlCisjZXJyb3IgVW5oYW5kbGVkIGFyY2hpdGVj
dHVyZS4KKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KGlzVmFsaWRGb3JtKHN0b3JlT3Bjb2RlLCBvcGVyYW5kS2luZCwgQXJnOjpTdGFjaykpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnQoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluc3RJbmRleCArIDEsIFN0b3JlWmVybzMyLCBpbnN0Lm9y
aWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdEluZGV4ICsgMSwgc3Rv
cmVPcGNvZGUsIGluc3Qub3JpZ2luLCBvcGVyYW5kLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGFja0FkZHIoYXJnLm9mZnNldCgpICsgNCArIHNsb3QtPm9mZnNldEZyb21GUCgp
KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBh
cmcgPSBzdGFja0FkZHIoYXJnLm9mZnNldCgpICsgc2xvdC0+b2Zmc2V0RnJvbUZQKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKaW5kZXggNjRj
YTc3N2JmMDY1ZWVmNzg3NmE5MDkyODQ5YWQ1NWI4MjQ5YmQ3YS4uNTkxZGEzYTQ0Zjg1ZTAwOTZk
YTZkMjc4MDllYzk5MmI4YmUxNTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0Fpck9wY29kZS5vcGNvZGVzCkBAIC02NzUsMTQgKzY3NSwxMyBAQCBNb3ZlMzIgVTpHOjMy
LCBaRDpHOjMyCiBNb3ZlMzIgVTpHOjMyLCBaRDpHOjMyLCBTOkc6MzIKICAgICBBZGRyLCBBZGRy
LCBUbXAKIAotIyBGSVhNRTogU3RvcmVaZXJvMzIgYW5kIFN0b3JlWmVybzY0IGFyZSBoYWNrcyBv
biBBUk02NCwgd2UgY2FuIGRvIGJldHRlcjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NDgyMQotU3RvcmVaZXJvMzIgRDpHOjMyCi0gICAgQWRkcgotICAgIEluZGV4
Cithcm02NDogU3RvcmUzMiBVOkc6MzIsIFpEOkc6MzIKKyAgICBaZXJvUmVnLCBBZGRyCisgICAg
WmVyb1JlZywgSW5kZXgKIAotNjQ6IFN0b3JlWmVybzY0IEQ6Rzo2NAotICAgIEFkZHIKLSAgICBJ
bmRleAorYXJtNjQ6IFN0b3JlNjQgVTpHOjY0LCBEOkc6NjQKKyAgICBaZXJvUmVnLCBBZGRyCisg
ICAgWmVyb1JlZywgSW5kZXgKIAogU2lnbkV4dGVuZDMyVG9QdHIgVTpHOjMyLCBEOkc6UHRyCiAg
ICAgVG1wLCBUbXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dl
bmVyYXRvci5yYgppbmRleCA2YzYxZWNlODU3NmI4ZTMxOWM1ZjU4MjE4NGQxNzMyNzk4MzY0MDJi
Li4zNzQwZWZkYmRkMTQ2YTM3ZjZlZGU5ZGRiYzIzZGRiYTAzYjA3NjQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCkBAIC0yMjksNyAr
MjI5LDcgQEAgZGVmIGlzR0YodG9rZW4pCiBlbmQKIAogZGVmIGlzS2luZCh0b2tlbikKLSAgICB0
b2tlbiA9fiAvXEEoKFRtcCl8KEltbSl8KEJpZ0ltbSl8KEJpdEltbSl8KEJpdEltbTY0KXwoU2lt
cGxlQWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIpfChJbmRleCl8KFJlbENvbmQpfChS
ZXNDb25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxaLworICAgIHRva2VuID1+IC9cQSgo
VG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1tNjQpfChaZXJvUmVnKXwoU2ltcGxl
QWRkcil8KEFkZHIpfChFeHRlbmRlZE9mZnNldEFkZHIpfChJbmRleCl8KFJlbENvbmQpfChSZXND
b25kKXwoRG91YmxlQ29uZCl8KFN0YXR1c0NvbmQpKVxaLwogZW5kCiAKIGRlZiBpc0FyY2godG9r
ZW4pCkBAIC0zMDMsNyArMzAzLDcgQEAgY2xhc3MgUGFyc2VyCiAKICAgICBkZWYgY29uc3VtZUtp
bmQKICAgICAgICAgcmVzdWx0ID0gdG9rZW4uc3RyaW5nCi0gICAgICAgIHBhcnNlRXJyb3IoIkV4
cGVjdGVkIGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJbW0sIEJpdEltbTY0LCBUbXAsIFNpbXBsZUFk
ZHIsIEFkZHIsIEV4dGVuZGVkT2Zmc2V0QWRkciwgSW5kZXgsIFJlbENvbmQsIFJlc0NvbmQsIERv
dWJsZUNvbmQsIG9yIFN0YXR1c0NvbmQpIikgdW5sZXNzIGlzS2luZChyZXN1bHQpCisgICAgICAg
IHBhcnNlRXJyb3IoIkV4cGVjdGVkIGtpbmQgKEltbSwgQmlnSW1tLCBCaXRJbW0sIEJpdEltbTY0
LCBaZXJvUmVnLCBUbXAsIFNpbXBsZUFkZHIsIEFkZHIsIEV4dGVuZGVkT2Zmc2V0QWRkciwgSW5k
ZXgsIFJlbENvbmQsIFJlc0NvbmQsIERvdWJsZUNvbmQsIG9yIFN0YXR1c0NvbmQpIikgdW5sZXNz
IGlzS2luZChyZXN1bHQpCiAgICAgICAgIGFkdmFuY2UKICAgICAgICAgcmVzdWx0CiAgICAgZW5k
CkBAIC00NzUsNiArNDc1LDE0IEBAIGNsYXNzIFBhcnNlcgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiRm9ybSBoYXMgYW4gaW1tZWRpYXRlIGZvciBhIG5v
bi1nZW5lcmFsLXB1cnBvc2UgYXJndW1lbnQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiBraW5kLm5hbWUgPT0gIlplcm9SZWciCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIHNpZ25hdHVyZVtpbmRleF0ucm9sZSAhPSAiVSIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IoIlplcm8gaW1tZWRpYXRlIG11
c3QgYmUgYSB1c2UgYXJndW1lbnQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2lnbmF0dXJlW2luZGV4XS5i
YW5rICE9ICJHIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJv
cigiWmVybyBpbW1lZGlhdGUgbXVzdCBiZSBhIGdlbmVyYWwtcHVycG9zZSBhcmd1bWVudCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgZm9ybXMgPDwgRm9ybS5uZXcoa2luZHMsIGFsdE5hbWUsIGludGVyc2VjdEFyY2hzKG9w
Y29kZUFyY2hzLCBmb3JtQXJjaHMpKQogCkBAIC05MjYsNiArOTM0LDcgQEAgd3JpdGVIKCJPcGNv
ZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAgd2hlbiAiUmVzQ29uZCIKICAgICAgICAg
ICAgICAgICB3aGVuICJEb3VibGVDb25kIgogICAgICAgICAgICAgICAgIHdoZW4gIlN0YXR1c0Nv
bmQiCisgICAgICAgICAgICAgICAgd2hlbiAiWmVyb1JlZyIKICAgICAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVkIGtpbmQ6ICN7a2luZC5uYW1l
fSIKICAgICAgICAgICAgICAgICBlbmQKQEAgLTEyMjAsNiArMTIyOSw4IEBAIHdyaXRlSCgiT3Bj
b2RlR2VuZXJhdGVkIikgewogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7
aW5kZXh9XS5hc1RydXN0ZWRJbW0zMigpIgogICAgICAgICAgICAgICAgIHdoZW4gIkJpZ0ltbSIs
ICJCaXRJbW02NCIKICAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmludCAiYXJnc1sje2luZGV4
fV0uYXNUcnVzdGVkSW1tNjQoKSIKKyAgICAgICAgICAgICAgICB3aGVuICJaZXJvUmVnIgorICAg
ICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5hc1plcm9SZWcoKSIK
ICAgICAgICAgICAgICAgICB3aGVuICJTaW1wbGVBZGRyIiwgIkFkZHIiLCAiRXh0ZW5kZWRPZmZz
ZXRBZGRyIgogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdzWyN7aW5kZXh9XS5h
c0FkZHJlc3MoKSIKICAgICAgICAgICAgICAgICB3aGVuICJJbmRleCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuaAppbmRleCBmOGJlNzc5M2NlYWQ1ZDIzZGQ5NjBlNTE0MGZhZjg3MDRjZWFmNGMz
Li45ODQ4ZjYzZTg2OWFmMmIzZmI1NmM1ZWIwNGFmZTBiYjM3OTdiMDBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiMy5oCkBAIC02ODEsNiArNjgxLDcgQEAgdm9pZCB0ZXN0SVRvRDMySW1tKGlu
dDMyX3QgdmFsdWUpOwogdm9pZCB0ZXN0SVRvRjMySW1tKGludDMyX3QgdmFsdWUpOwogdm9pZCB0
ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygpOwogdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Yz
MkFyZygpOwordm9pZCB0ZXN0U3RvcmVaZXJvUmVnKCk7CiB2b2lkIHRlc3RTdG9yZTMyKGludCB2
YWx1ZSk7CiB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSk7CiB2b2lkIHRlc3RTdG9y
ZUNvbnN0YW50UHRyKGludHB0cl90IHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
XzEuY3BwCmluZGV4IDJiZTg4MzI4NjFmZDBkNWE2NTAzMzI5ZDNhM2U3YjljZGYzYjdiMDEuLjFl
MTM1Njc1NDQwMjdkYzdjNjY1MmU4YzJkNjRjOWU4NTgwNzhkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiM18xLmNwcApAQCAtMzM4LDYgKzMzOCw3IEBAIHZvaWQgcnVuKGNvbnN0IGNo
YXIqIGZpbHRlcikKICAgICBSVU5fVU5BUlkodGVzdENoZWNrQWRkUmVtb3ZlQ2hlY2tXaXRoU0V4
dDMyLCBpbnQzMk9wZXJhbmRzKCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0Q2hlY2tBZGRSZW1vdmVD
aGVja1dpdGhaRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAKKyAgICBSVU4odGVzdFN0b3JlWmVy
b1JlZygpKTsKICAgICBSVU4odGVzdFN0b3JlMzIoNDQpKTsKICAgICBSVU4odGVzdFN0b3JlQ29u
c3RhbnQoNDkpKTsKICAgICBSVU4odGVzdFN0b3JlQ29uc3RhbnRQdHIoNDkpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCmluZGV4IGMxN2FiYzczNjM0MGQ1YWJiMzY0YzQzZjVj
ODYwNzEwODY2ZGE0NmIuLjRjNTJhZGE5Y2M0MDJkZGU1Mzk4OGNjOGYyZjVlOWUwZGRlMmUxMWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcApAQCAtMjg4OCw2ICsyODg4LDgz
IEBAIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GMzJBcmcoKQogICAgICAgICBDSEVDSyhpc0lk
ZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCB0ZXN0VmFsdWUudmFsdWUpLCBzdGF0aWNfY2Fz
dDxmbG9hdD4odGVzdFZhbHVlLnZhbHVlKSkpOwogfQogCit2b2lkIHRlc3RTdG9yZVplcm9SZWco
KQoreworICAgIC8vIERpcmVjdCBhZGRyZXNzaW5nCisgICAgeworICAgICAgICBpbnQzMl90IHNs
b3QzMiA9IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOworICAgICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZhbHVlKiB2YWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIFN0b3Jl
LCBPcmlnaW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90MzIpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKworICAgICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAgICAgaW52b2tlPGludD4oKmNv
ZGUpOworICAgICAgICBDSEVDS19FUShzbG90MzIsIDApOworICAgIH0KKworICAgIHsKKyAgICAg
ICAgaW50NjRfdCBzbG90NjQgPSAweGJhYWRiZWVmOworICAgICAgICBQcm9jZWR1cmUgcHJvYzsK
KyAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBW
YWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAg
ICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLAorICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdDY0KSwgMCk7CisgICAgICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1
ZSk7CisKKyAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgICAgIGlu
dm9rZTxpbnQ+KCpjb2RlKTsKKyAgICAgICAgQ0hFQ0tfRVEoc2xvdDY0LCAwKTsKKyAgICB9CisK
KyAgICAvLyBJbmRleGVkIGFkZHJlc3NpbmcKKyAgICB7CisgICAgICAgIFByb2NlZHVyZSBwcm9j
OworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAg
IFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAg
IFZhbHVlKiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIFZhbHVlKiBkaXNwbGFj
ZW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEp
OworCisgICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQsIGJhc2UpOworICAgICAgICBW
YWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MsIDApOwor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgdmFsdWUpOworCisgICAgICAgIGludDMyX3Qgc2xvdDMyID0gMHhiYWFkYmVlZjsKKyAgICAg
ICAgY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmc2xvdDMyLCAxKTsKKyAgICAgICAgQ0hF
Q0tfRVEoc2xvdDMyLCAwKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFByb2NlZHVyZSBwcm9j
OworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAg
IFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKTsKKyAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAg
IFZhbHVlKiBvZmZzZXQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIFZhbHVlKiBkaXNwbGFj
ZW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEp
OworCisgICAgICAgIFZhbHVlKiBiYXNlRGlzcGxhY2VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkaXNwbGFjZW1lbnQsIGJhc2UpOworICAgICAgICBW
YWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKKworICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MsIDApOwor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgdmFsdWUpOworCisgICAgICAgIGludDY0X3Qgc2xvdDY0ID0gMHhiYWFkYmVlZjsKKyAgICAg
ICAgY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc2xvdDY0LCAxKTsKKyAgICAgICAgQ0hF
Q0tfRVEoc2xvdDY0LCAwKTsKKyAgICB9Cit9CisKIHZvaWQgdGVzdFN0b3JlMzIoaW50IHZhbHVl
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwo=
</data>
<flag name="commit-queue"
          id="455658"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433423</attachid>
            <date>2021-07-13 11:08:50 -0700</date>
            <delta_ts>2021-07-13 11:19:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210713130849.patch</filename>
            <type>text/plain</type>
            <size>21016</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDQ4ODMzZDk5OTYyNWViYjliYzIxMzRhODFiOWYzNmNjNWEwYTYwLi5hMzg5ZmY4ZWFlODFkMWFi
YzA1OGI0YzRhMTcxNmMyYjBiNTNiMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAyMS0wNy0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWmVyb1JlZyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQjMgaXMgZGVzaWduZWQgdG8gYmUgcG9ydGFibGUgdG8gbWFueSBraW5kcyBvZiBDUFVz
LiBIb3dldmVyLCB0byBlZmZlY3RpdmVseSBjb21waWxlIAorICAgICAgICBjb2RlIHRvIGRpZmZl
cmVudCBDUFVzLCB0aGUgY29tcGlsZXIgbXVzdCBldmVudHVhbGx5IG1ha2UgZXhwbGljaXQgaW5z
dHJ1Y3Rpb24gc2V0IAorICAgICAgICBkZXRhaWxzLiBUaGVuLCBBaXIgaXMgaW50cm9kdWNlZCwg
YW5kIGl0IGlzIGRlc2lnbmVkIHRvIHRhcmdldCBpbmRpdmlkdWFsIENQVSAKKyAgICAgICAgYXJj
aGl0ZWN0dXJlcyBhbmQgZ2VuZXJhdGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRob3NlIENQ
VXMuIAorCisgICAgICAgIFByZXZpb3VzbHksIEIzIGFuZCBBaXIgZG9uJ3QgcmVjb2duaXplIHRo
ZSB6ZXJvIHJlZ2lzdGVyLiBUaGlzIHByb2JsZW0gaGFzIGJlZW4gcG9pbnRlZCAKKyAgICAgICAg
b3V0IGluICMxNzQ4MjEsIHdoaWNoIHdhcyB0cnlpbmcgdG8gaW50cm9kdWNlIHRoZSBuZXcgb3Bj
b2RlcyB0byBoYW5kbGUgdGhlIHplcm8gCisgICAgICAgIHJlZ2lzdGVyLiAKKworICAgICAgICBU
byBzb2x2ZSB0aGlzIHByb2JsZW0gaW4gYSBtb2R1bGFyIHJlYXNvbmluZyBhcHByb2FjaCwgYSBu
ZXcgQWlyIG9wZXJhbmQgWmVyb1JlZyBzaG91bGQgCisgICAgICAgIGJlIGludHJvZHVjZWQuIEl0
cyBnb2FsIGlzIHRvIGNsb3NlbHkgbWF0Y2ggdGhlIENQVSBpbnN0cnVjdGlvbnMgYWNjZXB0aW5n
IHRoZSB6ZXJvIAorICAgICAgICByZWdpc3RlciBpbiBBUk02NC4gQW5vdGhlciByZWFzb24gaXMg
dGhhdCB0aGUgbmV3IG92ZXJsb2FkcyBvZiB0aGUgaW5zdHJ1Y3Rpb25zIHRha2luZyAKKyAgICAg
ICAgdGhlIHplcm8gcmVnaXN0ZXIgY2FuIGJlbmVmaXQgaW5zdHJ1Y3Rpb24gc2VsZWN0aW9uIHdp
dGggdGhpcyBpbXBsZW1lbnRhdGlvbi4gCisKKyAgICAgICAgSGVyZSwgdGhlIFplcm9SZWcgaXMg
YWRkZWQgYXMgYSBuZXcga2luZCBmb3IgQWlyOjpBcmcsIHdoaWNoIGFjdHMgYXMgYSAiaGlnaCBs
ZXZlbCIgCisgICAgICAgIG9wZXJhbmQgdG8gYmUgZW1pdHRlZCB3aXRoIHRoZSBhc3NvY2lhdGl2
ZSBvcGNvZGVzLiBJbiBBUk02NCwgdGhlIFplcm9SZWcgd291bGQgYmUgCisgICAgICAgIGVtaXR0
ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVyLiAgCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk02NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVpl
cm82NCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3Jl
WmVybzMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3Rv
cmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVa
ZXJvMzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6
c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3RvcmVaZXJv
NjQpOiBEZWxldGVkLgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgICog
YjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9SZWcpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpB
cmc6OmlzWmVyb1JlZyBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBj
b25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZvcm0gY29uc3QpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpBcmc6OmFzWmVyb1JlZyBjb25zdCk6CisgICAgICAgICogYjMvYWlyL0Fpckxvd2Vy
U3RhY2tBcmdzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6bG93ZXJTdGFja0FyZ3MpOgor
ICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKyAgICAgICAgKiBiMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBiMy90ZXN0YjMuaDoKKyAgICAgICAgKiBiMy90
ZXN0YjNfMS5jcHA6CisgICAgICAgIChydW4pOgorICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoK
KyAgICAgICAgKHRlc3RTdG9yZVplcm9SZWcpOgorCiAyMDIxLTA3LTEyICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjI3NzAyNzogYnJlYWtzIEdDLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAppbmRleCAzZDg1Y2JiOGRiNTMzYzg0MDdhYWI2NWEzOTA0NGY5YmEyYjQwMjJjLi40
YTkwZTVhMWZkZTQ4Y2NmYzQ3YTcyNzQ5ZTU4NWY3ZDAyNGUxY2M1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAt
MTczMSwxNiArMTczMSw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3RyPDY0Pihz
cmMsIGRlc3QsIHNpbW0pOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVy
czo6enIsIGFkZHJlc3MpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEJhc2VJ
bmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVyczo6enIs
IGFkZHJlc3MpOwotICAgIH0KLSAgICAKICAgICBEYXRhTGFiZWwzMiBzdG9yZTY0V2l0aEFkZHJl
c3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAg
ICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0xODM4LDE2ICsxODI4LDYgQEAgcHVi
bGljOgogICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0K
IAotICAgIHZvaWQgc3RvcmVaZXJvMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewot
ICAgICAgICBzdG9yZTMyKEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotCi0g
ICAgdm9pZCBzdG9yZVplcm8zMihCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0
b3JlMzIoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0KICAgICBEYXRhTGFi
ZWwzMiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVz
cyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0x
ODkzLDE2ICsxODczLDYgQEAgcHVibGljOgogICAgICAgICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVaZXJvMTYoSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KEFSTTY0UmVnaXN0ZXJzOjp6ciwg
YWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihCYXNlSW5kZXggYWRkcmVz
cykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsK
LSAgICB9Ci0KICAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJl
c3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0ICYmICFhZGRyZXNzLnNjYWxl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5kZXggYTI2NTUzYTViY2UwZmNmN2JmMDgwNzJmNTk4MmM5
YjUwNzYyMGFlZi4uNTRkNDU2N2Q0YzFjNDVkZmUwYzMyOGNhN2JjZGI4NGU5ZWIyZjk3NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaApAQCAtMTMzNywyNiArMTMzNyw2IEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIubW92bF9pMzJtKGltbS5tX3ZhbHVlLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAKLSAgICB2b2lk
IHN0b3JlWmVybzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3Rv
cmUzMihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVa
ZXJvMzIoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJ
bW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoVHJ1c3RlZEltbTMyKDAp
LCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3JlWmVybzE2KEJhc2VJbmRleCBhZGRy
ZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwot
ICAgIH0KLQogICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBpbW04KHN0YXRpY19jYXN0PGludDhfdD4o
aW1tLm1fdmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAzMzQ3MmRkOTMxYTk3YjA5Yjk3ZGM5MmY1
MTFlNmMyMmRjYTMyMTIyLi45NDM3ZmQzYmQyYWMxNjY4MTZmMjhmMzdkYmQ5OTA1MWRmMzdhMWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCkBAIC0xMDE1LDE2ICsxMDE1LDYgQEAgcHVibGljOgogICAgICAgICBt
X2Fzc2VtYmxlci5tb3ZxX3JtKHNjcmF0Y2hSZWdpc3RlcigpLCBhZGRyZXNzLm9mZnNldCwgYWRk
cmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAgICAgCi0g
ICAgdm9pZCBzdG9yZVplcm82NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAg
ICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCi0gICAg
dm9pZCBzdG9yZVplcm82NChCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3Jl
NjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCiAgICAgRGF0YUxhYmVs
MzIgc3RvcmU2NFdpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIHBhZEJlZm9yZVBhdGNoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IGQyMGIxNDEwZDc3MjgyODgxNGVmMmNj
NTQxZDBjYmQxNDdhNjM1MDcuLjhmYzFhZmMyYTUzOTFmNDU2NWMzZDNkOThmN2EwZjc2NDgzNjIz
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC03MDIs
NiArNzAyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBBcmcoKTsKICAgICB9CiAKKyAg
ICBBcmcgemVyb1JlZygpCisgICAgeworICAgICAgICByZXR1cm4gQXJnOjp6ZXJvUmVnKCk7Cisg
ICAgfQorCiAgICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlm
IChBcmcgcmVzdWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEwOTQsMTcgKzEwOTksMTcgQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBBaXI7CiAgICAgICAgIGlmIChhdXRv
IGltbV92YWx1ZSA9IGltbSh2YWx1ZSkpIHsKLSAgICAgICAgICAgIGlmIChpc0FSTTY0KCkgJiYg
aW1tX3ZhbHVlLnZhbHVlKCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKCFpbW1fdmFsdWUudmFs
dWUoKSkgewogICAgICAgICAgICAgICAgIHN3aXRjaCAobW92ZS5vcGNvZGUpIHsKICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICBjYXNlIEFpcjo6TW92ZTMyOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZv
cm0oU3RvcmVaZXJvMzIsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIp
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvMzIsIG1fdmFs
dWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmUzMiwg
QXJnOjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDMyKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlMzIsIG1fdmFsdWUsIHpl
cm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIGNhc2UgQWlyOjpNb3ZlOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0o
U3RvcmVaZXJvNjQsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvNjQsIG1fdmFsdWUs
IGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmU2NCwgQXJn
OjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDY0KSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlNjQsIG1fdmFsdWUsIHplcm9S
ZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQXJnLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcApp
bmRleCA2Nzg2OTllZmRkNWJjZGVkM2NiZTRhMjY5ZWQyYzJmN2M0OGEyYTMxLi4xMDNjNmVjY2Ez
ZDMxNGJiNGVkOGMwMmE0ZDJmMDA5Y2E2NDFkMDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJBcmcuY3BwCkBAIC0xMDIsNiArMTAyLDcgQEAgdW5zaWduZWQgQXJnOjpqc0hhc2go
KSBjb25zdAogICAgICAgICBicmVhazsKICAgICBjYXNlIEltbToKICAgICBjYXNlIEJpdEltbToK
KyAgICBjYXNlIFplcm9SZWc6CiAgICAgY2FzZSBDYWxsQXJnOgogICAgIGNhc2UgUmVsQ29uZDoK
ICAgICBjYXNlIFJlc0NvbmQ6CkBAIC0xNTksNiArMTYwLDkgQEAgdm9pZCBBcmc6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBjYXNlIEJpdEltbTY0OgogICAgICAgICBvdXQucHJp
bnRmKCIkMHglbGx4Iiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nIHVuc2lnbmVkPihtX29mZnNldCkp
OwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBaZXJvUmVnOgorICAgICAgICBvdXQucHJpbnQo
IiUleHpyIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAg
IG91dC5wcmludCgiKCIsIGJhc2UoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjM2LDYg
KzI0MCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBBcmc6OktpbmQg
a2luZCkKICAgICBjYXNlIEFyZzo6Qml0SW1tNjQ6CiAgICAgICAgIG91dC5wcmludCgiQml0SW1t
NjQiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQXJnOjpaZXJvUmVnOgorICAgICAgICBv
dXQucHJpbnQoIlplcm9SZWciKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQXJnOjpTaW1w
bGVBZGRyOgogICAgICAgICBvdXQucHJpbnQoIlNpbXBsZUFkZHIiKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKaW5kZXggODcyMDRlNjdjNzc3NTNi
NDE2NTJmNzM5NGYwYzM0NjczZGNiMzliNC4uY2NlZjQ1Njg4MDNjZTI1NzIxMzBlM2JlYjc2YzEw
ZGVlYjhhNzI3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJB
cmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC04NSw3
ICs4NSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIERvdWJsZUNvbmQsCiAgICAgICAgIFN0YXR1c0Nv
bmQsCiAgICAgICAgIFNwZWNpYWwsCi0gICAgICAgIFdpZHRoQXJnCisgICAgICAgIFdpZHRoQXJn
LAorCisgICAgICAgIC8vIFplcm9SZWcgaXMgaW50ZXJwcmV0ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVy
IGluIEFSTTY0CisgICAgICAgIFplcm9SZWcKICAgICB9OwogICAgIAogICAgIGVudW0gVGVtcGVy
YXR1cmUgOiBpbnQ4X3QgewpAQCAtNjkzLDYgKzY5NiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6ZXJvUmVnKCkKKyAgICB7Cisg
ICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBaZXJvUmVnOworICAg
ICAgICByZXN1bHQubV9vZmZzZXQgPSAwOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBcmcmIG90aGVyKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1fb2Zmc2V0ID09IG90aGVyLm1fb2Zmc2V0CkBAIC03MzksNiArNzUwLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBCaXRJbW02NDsKICAgICB9CiAK
KyAgICBib29sIGlzWmVyb1JlZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4ga2luZCgp
ID09IFplcm9SZWc7CisgICAgfQorCiAgICAgYm9vbCBpc1NvbWVJbW0oKSBjb25zdAogICAgIHsK
ICAgICAgICAgc3dpdGNoIChraW5kKCkpIHsKQEAgLTEwMjIsNiArMTAzOCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgY2FzZSBCaWdJbW06CiAgICAgICAgIGNhc2UgQml0SW1tOgogICAgICAgICBjYXNl
IEJpdEltbTY0OgorICAgICAgICBjYXNlIFplcm9SZWc6CiAgICAgICAgIGNhc2UgU2ltcGxlQWRk
cjoKICAgICAgICAgY2FzZSBBZGRyOgogICAgICAgICBjYXNlIEV4dGVuZGVkT2Zmc2V0QWRkcjoK
QEAgLTEwNTcsNiArMTA3NCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBTcGVjaWFsOgogICAg
ICAgICBjYXNlIFdpZHRoQXJnOgogICAgICAgICBjYXNlIEludmFsaWQ6CisgICAgICAgIGNhc2Ug
WmVyb1JlZzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBTaW1wbGVB
ZGRyOgogICAgICAgICBjYXNlIEFkZHI6CkBAIC0xMjM2LDYgKzEyNTQsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbUZvcm0odmFsdWUoKSk7CiAgICAgICAgIGNh
c2UgQml0SW1tNjQ6CiAgICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbTY0Rm9ybSh2YWx1
ZSgpKTsKKyAgICAgICAgY2FzZSBaZXJvUmVnOgogICAgICAgICBjYXNlIFNpbXBsZUFkZHI6CiAg
ICAgICAgIGNhc2UgRXh0ZW5kZWRPZmZzZXRBZGRyOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0xMzMxLDYgKzEzNTAsMTMgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisjaWYgQ1BV
KEFSTTY0KQorICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGFzWmVyb1JlZygpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gQVJNNjRSZWdpc3RlcnM6OnpyOworICAgIH0KKyNlbmRp
ZgorCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIgYXNUcnVzdGVkSW1tUHRyKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIGlmIChpczY0Qml0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCmluZGV4IDljOGY1MWU0ZTAy
NzAxZWVkYmE0Y2U3OTIzY2Y1NTc0Y2ZiM2Q3N2MuLjgzZDMxOTgxYzMzY2U5NjgyMjk0NDBjNGQz
OGNiMDczODEwNTY2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCkBAIC0xNTcsOSArMTU3LDIwIEBAIHZvaWQgbG93ZXJTdGFj
a0FyZ3MoQ29kZSYgY29kZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChzbG90LT5ieXRlU2l6ZSgpID09IDgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHdpZHRoID09IFdpZHRoMzIpOwogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNWYWxpZEZvcm0oU3RvcmVaZXJvMzIsIEFyZzo6U3Rh
Y2spKTsKKyNpZiBDUFUoQVJNNjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWlyOjpP
cGNvZGUgc3RvcmVPcGNvZGUgPSBTdG9yZTMyOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG8gb3BlcmFuZEtpbmQgPSBBcmc6Olplcm9SZWc7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byBvcGVyYW5kID0gQXJnOjp6ZXJvUmVnKCk7CisjZWxpZiBDUFUoWDg2XzY0KSB8
fCBDUFUoWDg2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFpcjo6T3Bjb2RlIHN0b3Jl
T3Bjb2RlID0gTW92ZTMyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gb3BlcmFu
ZEtpbmQgPSBBcmc6OkltbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG9wZXJh
bmQgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApOworI2Vsc2UKKyNlcnJvciBVbmhh
bmRsZWQgYXJjaGl0ZWN0dXJlLgorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoaXNWYWxpZEZvcm0oc3RvcmVPcGNvZGUsIG9wZXJhbmRLaW5kLCBBcmc6
OlN0YWNrKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2Vy
dCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdEluZGV4ICsgMSwgU3RvcmVa
ZXJvMzIsIGluc3Qub3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0
SW5kZXggKyAxLCBzdG9yZU9wY29kZSwgaW5zdC5vcmlnaW4sIG9wZXJhbmQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YWNrQWRkcihhcmcub2Zmc2V0KCkgKyA0ICsgc2xvdC0+
b2Zmc2V0RnJvbUZQKCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZyA9IHN0YWNrQWRkcihhcmcub2Zmc2V0KCkgKyBzbG90LT5vZmZzZXRG
cm9tRlAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9w
Y29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bj
b2RlcwppbmRleCA2NGNhNzc3YmYwNjVlZWY3ODc2YTkwOTI4NDlhZDU1YjgyNDliZDdhLi41OTFk
YTNhNDRmODVlMDA5NmRhNmQyNzgwOWVjOTkyYjhiZTE1NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKQEAgLTY3NSwxNCArNjc1LDEzIEBA
IE1vdmUzMiBVOkc6MzIsIFpEOkc6MzIKIE1vdmUzMiBVOkc6MzIsIFpEOkc6MzIsIFM6RzozMgog
ICAgIEFkZHIsIEFkZHIsIFRtcAogCi0jIEZJWE1FOiBTdG9yZVplcm8zMiBhbmQgU3RvcmVaZXJv
NjQgYXJlIGhhY2tzIG9uIEFSTTY0LCB3ZSBjYW4gZG8gYmV0dGVyOiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0ODIxCi1TdG9yZVplcm8zMiBEOkc6MzIKLSAgICBB
ZGRyCi0gICAgSW5kZXgKK2FybTY0OiBTdG9yZTMyIFU6RzozMiwgWkQ6RzozMgorICAgIFplcm9S
ZWcsIEFkZHIKKyAgICBaZXJvUmVnLCBJbmRleAogCi02NDogU3RvcmVaZXJvNjQgRDpHOjY0Ci0g
ICAgQWRkcgotICAgIEluZGV4Cithcm02NDogU3RvcmU2NCBVOkc6NjQsIEQ6Rzo2NAorICAgIFpl
cm9SZWcsIEFkZHIKKyAgICBaZXJvUmVnLCBJbmRleAogCiBTaWduRXh0ZW5kMzJUb1B0ciBVOkc6
MzIsIEQ6RzpQdHIKICAgICBUbXAsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCmluZGV4IDZjNjFlY2U4NTc2YjhlMzE5YzVmNTgyMTg0
ZDE3MzI3OTgzNjQwMmIuLjM3NDBlZmRiZGQxNDZhMzdmNmVkZTlkZGJjMjNkZGJhMDNiMDc2NDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRv
ci5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3Iu
cmIKQEAgLTIyOSw3ICsyMjksNyBAQCBkZWYgaXNHRih0b2tlbikKIGVuZAogCiBkZWYgaXNLaW5k
KHRva2VuKQotICAgIHRva2VuID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwo
Qml0SW1tNjQpfChTaW1wbGVBZGRyKXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4
KXwoUmVsQ29uZCl8KFJlc0NvbmQpfChEb3VibGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCisgICAg
dG9rZW4gPX4gL1xBKChUbXApfChJbW0pfChCaWdJbW0pfChCaXRJbW0pfChCaXRJbW02NCl8KFpl
cm9SZWcpfChTaW1wbGVBZGRyKXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwo
UmVsQ29uZCl8KFJlc0NvbmQpfChEb3VibGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCiBlbmQKIAog
ZGVmIGlzQXJjaCh0b2tlbikKQEAgLTMwMyw3ICszMDMsNyBAQCBjbGFzcyBQYXJzZXIKIAogICAg
IGRlZiBjb25zdW1lS2luZAogICAgICAgICByZXN1bHQgPSB0b2tlbi5zdHJpbmcKLSAgICAgICAg
cGFyc2VFcnJvcigiRXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQs
IFRtcCwgU2ltcGxlQWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29u
ZCwgUmVzQ29uZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJl
c3VsdCkKKyAgICAgICAgcGFyc2VFcnJvcigiRXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJp
dEltbSwgQml0SW1tNjQsIFplcm9SZWcsIFRtcCwgU2ltcGxlQWRkciwgQWRkciwgRXh0ZW5kZWRP
ZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwgUmVzQ29uZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVz
Q29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3VsdCkKICAgICAgICAgYWR2YW5jZQogICAgICAgICBy
ZXN1bHQKICAgICBlbmQKQEAgLTQ3NSw2ICs0NzUsMTQgQEAgY2xhc3MgUGFyc2VyCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKCJGb3JtIGhhcyBhbiBpbW1l
ZGlhdGUgZm9yIGEgbm9uLWdlbmVyYWwtcHVycG9zZSBhcmd1bWVudCIpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGtpbmQubmFtZSA9PSAiWmVyb1JlZyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2lnbmF0dXJlW2luZGV4XS5yb2xlICE9
ICJVIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiWmVy
byBpbW1lZGlhdGUgbXVzdCBiZSBhIHVzZSBhcmd1bWVudCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzaWdu
YXR1cmVbaW5kZXhdLmJhbmsgIT0gIkciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXJzZUVycm9yKCJaZXJvIGltbWVkaWF0ZSBtdXN0IGJlIGEgZ2VuZXJhbC1wdXJwb3Nl
IGFyZ3VtZW50IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgICBmb3JtcyA8PCBGb3JtLm5ldyhraW5kcywgYWx0TmFtZSwgaW50
ZXJzZWN0QXJjaHMob3Bjb2RlQXJjaHMsIGZvcm1BcmNocykpCiAKQEAgLTkyNiw2ICs5MzQsNyBA
QCB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICAgICAgICAgICAgICB3aGVuICJSZXND
b25kIgogICAgICAgICAgICAgICAgIHdoZW4gIkRvdWJsZUNvbmQiCiAgICAgICAgICAgICAgICAg
d2hlbiAiU3RhdHVzQ29uZCIKKyAgICAgICAgICAgICAgICB3aGVuICJaZXJvUmVnIgogICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgIlVuZXhwZWN0ZWQga2lu
ZDogI3traW5kLm5hbWV9IgogICAgICAgICAgICAgICAgIGVuZApAQCAtMTIyMCw2ICsxMjI5LDgg
QEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAgICAgIG91dHAu
cHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzVHJ1c3RlZEltbTMyKCkiCiAgICAgICAgICAgICAgICAg
d2hlbiAiQmlnSW1tIiwgIkJpdEltbTY0IgogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50
ICJhcmdzWyN7aW5kZXh9XS5hc1RydXN0ZWRJbW02NCgpIgorICAgICAgICAgICAgICAgIHdoZW4g
Ilplcm9SZWciCisgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1d
LmFzWmVyb1JlZygpIgogICAgICAgICAgICAgICAgIHdoZW4gIlNpbXBsZUFkZHIiLCAiQWRkciIs
ICJFeHRlbmRlZE9mZnNldEFkZHIiCiAgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQgImFy
Z3NbI3tpbmRleH1dLmFzQWRkcmVzcygpIgogICAgICAgICAgICAgICAgIHdoZW4gIkluZGV4Igpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCmluZGV4IGY4YmU3NzkzY2VhZDVkMjNkZDk2MGU1MTQw
ZmFmODcwNGNlYWY0YzMuLjk4NDhmNjNlODY5YWYyYjNmYjU2YzVlYjA0YWZlMGJiMzc5N2IwMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKQEAgLTY4MSw2ICs2ODEsNyBAQCB2b2lkIHRl
c3RJVG9EMzJJbW0oaW50MzJfdCB2YWx1ZSk7CiB2b2lkIHRlc3RJVG9GMzJJbW0oaW50MzJfdCB2
YWx1ZSk7CiB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJnKCk7CiB2b2lkIHRlc3RJVG9E
UmVkdWNlZFRvSVRvRjMyQXJnKCk7Cit2b2lkIHRlc3RTdG9yZVplcm9SZWcoKTsKIHZvaWQgdGVz
dFN0b3JlMzIoaW50IHZhbHVlKTsKIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnQoaW50IHZhbHVlKTsK
IHZvaWQgdGVzdFN0b3JlQ29uc3RhbnRQdHIoaW50cHRyX3QgdmFsdWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjNfMS5jcHAKaW5kZXggMmJlODgzMjg2MWZkMGQ1YTY1MDMzMjlkM2EzZTdi
OWNkZjNiN2IwMS4uMWUxMzU2NzU0NDAyN2RjN2M2NjUyZThjMmQ2NGM5ZTg1ODA3OGRmMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCkBAIC0zMzgsNiArMzM4LDcgQEAgdm9p
ZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTl9VTkFSWSh0ZXN0Q2hlY2tBZGRSZW1v
dmVDaGVja1dpdGhTRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAgICAgUlVOX1VOQVJZKHRlc3RD
aGVja0FkZFJlbW92ZUNoZWNrV2l0aFpFeHQzMiwgaW50MzJPcGVyYW5kcygpKTsKIAorICAgIFJV
Tih0ZXN0U3RvcmVaZXJvUmVnKCkpOwogICAgIFJVTih0ZXN0U3RvcmUzMig0NCkpOwogICAgIFJV
Tih0ZXN0U3RvcmVDb25zdGFudCg0OSkpOwogICAgIFJVTih0ZXN0U3RvcmVDb25zdGFudFB0cig0
OSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKaW5kZXggYzE3YWJjNzM2MzQw
ZDVhYmIzNjRjNDNmNWM4NjA3MTA4NjZkYTQ2Yi4uNGM1MmFkYTljYzQwMmRkZTUzOTg4Y2M4ZjJm
NWU5ZTBkZGUyZTExYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
M18zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCkBAIC0y
ODg4LDYgKzI4ODgsODMgQEAgdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0YzMkFyZygpCiAgICAg
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIHRlc3RWYWx1ZS52YWx1
ZSksIHN0YXRpY19jYXN0PGZsb2F0Pih0ZXN0VmFsdWUudmFsdWUpKSk7CiB9CiAKK3ZvaWQgdGVz
dFN0b3JlWmVyb1JlZygpCit7CisgICAgLy8gRGlyZWN0IGFkZHJlc3NpbmcKKyAgICB7CisgICAg
ICAgIGludDMyX3Qgc2xvdDMyID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7
CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAg
VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApOworICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAg
ICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QzMiksIDApOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFs
dWUpOworCisgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBp
bnZva2U8aW50PigqY29kZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3QzMiwgMCk7CisgICAgfQor
CisgICAgeworICAgICAgICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIFBy
b2NlZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OworCisgICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKKyAgICAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsCisgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90NjQp
LCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHZhbHVlKTsKKworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9j
KTsKKyAgICAgICAgaW52b2tlPGludD4oKmNvZGUpOworICAgICAgICBDSEVDS19FUShzbG90NjQs
IDApOworICAgIH0KKworICAgIC8vIEluZGV4ZWQgYWRkcmVzc2luZworICAgIHsKKyAgICAgICAg
UHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKKyAgICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAg
VmFsdWUqIGRpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFz
ZSk7CisgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwg
YWRkcmVzcywgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJh
YWRiZWVmOworICAgICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZzbG90MzIsIDEp
OworICAgICAgICBDSEVDS19FUShzbG90MzIsIDApOworICAgIH0KKworICAgIHsKKyAgICAgICAg
UHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKKyAgICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAg
VmFsdWUqIGRpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFz
ZSk7CisgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwg
YWRkcmVzcywgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50NjRfdCBzbG90NjQgPSAweGJh
YWRiZWVmOworICAgICAgICBjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzbG90NjQsIDEp
OworICAgICAgICBDSEVDS19FUShzbG90NjQsIDApOworICAgIH0KK30KKwogdm9pZCB0ZXN0U3Rv
cmUzMihpbnQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7Cg==
</data>
<flag name="commit-queue"
          id="455667"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433427</attachid>
            <date>2021-07-13 11:18:31 -0700</date>
            <delta_ts>2021-07-13 12:26:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210713131830.patch</filename>
            <type>text/plain</type>
            <size>21024</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDQ4ODMzZDk5OTYyNWViYjliYzIxMzRhODFiOWYzNmNjNWEwYTYwLi5hMzg5ZmY4ZWFlODFkMWFi
YzA1OGI0YzRhMTcxNmMyYjBiNTNiMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAyMS0wNy0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWmVyb1JlZyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQjMgaXMgZGVzaWduZWQgdG8gYmUgcG9ydGFibGUgdG8gbWFueSBraW5kcyBvZiBDUFVz
LiBIb3dldmVyLCB0byBlZmZlY3RpdmVseSBjb21waWxlIAorICAgICAgICBjb2RlIHRvIGRpZmZl
cmVudCBDUFVzLCB0aGUgY29tcGlsZXIgbXVzdCBldmVudHVhbGx5IG1ha2UgZXhwbGljaXQgaW5z
dHJ1Y3Rpb24gc2V0IAorICAgICAgICBkZXRhaWxzLiBUaGVuLCBBaXIgaXMgaW50cm9kdWNlZCwg
YW5kIGl0IGlzIGRlc2lnbmVkIHRvIHRhcmdldCBpbmRpdmlkdWFsIENQVSAKKyAgICAgICAgYXJj
aGl0ZWN0dXJlcyBhbmQgZ2VuZXJhdGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRob3NlIENQ
VXMuIAorCisgICAgICAgIFByZXZpb3VzbHksIEIzIGFuZCBBaXIgZG9uJ3QgcmVjb2duaXplIHRo
ZSB6ZXJvIHJlZ2lzdGVyLiBUaGlzIHByb2JsZW0gaGFzIGJlZW4gcG9pbnRlZCAKKyAgICAgICAg
b3V0IGluICMxNzQ4MjEsIHdoaWNoIHdhcyB0cnlpbmcgdG8gaW50cm9kdWNlIHRoZSBuZXcgb3Bj
b2RlcyB0byBoYW5kbGUgdGhlIHplcm8gCisgICAgICAgIHJlZ2lzdGVyLiAKKworICAgICAgICBU
byBzb2x2ZSB0aGlzIHByb2JsZW0gaW4gYSBtb2R1bGFyIHJlYXNvbmluZyBhcHByb2FjaCwgYSBu
ZXcgQWlyIG9wZXJhbmQgWmVyb1JlZyBzaG91bGQgCisgICAgICAgIGJlIGludHJvZHVjZWQuIEl0
cyBnb2FsIGlzIHRvIGNsb3NlbHkgbWF0Y2ggdGhlIENQVSBpbnN0cnVjdGlvbnMgYWNjZXB0aW5n
IHRoZSB6ZXJvIAorICAgICAgICByZWdpc3RlciBpbiBBUk02NC4gQW5vdGhlciByZWFzb24gaXMg
dGhhdCB0aGUgbmV3IG92ZXJsb2FkcyBvZiB0aGUgaW5zdHJ1Y3Rpb25zIHRha2luZyAKKyAgICAg
ICAgdGhlIHplcm8gcmVnaXN0ZXIgY2FuIGJlbmVmaXQgaW5zdHJ1Y3Rpb24gc2VsZWN0aW9uIHdp
dGggdGhpcyBpbXBsZW1lbnRhdGlvbi4gCisKKyAgICAgICAgSGVyZSwgdGhlIFplcm9SZWcgaXMg
YWRkZWQgYXMgYSBuZXcga2luZCBmb3IgQWlyOjpBcmcsIHdoaWNoIGFjdHMgYXMgYSAiaGlnaCBs
ZXZlbCIgCisgICAgICAgIG9wZXJhbmQgdG8gYmUgZW1pdHRlZCB3aXRoIHRoZSBhc3NvY2lhdGl2
ZSBvcGNvZGVzLiBJbiBBUk02NCwgdGhlIFplcm9SZWcgd291bGQgYmUgCisgICAgICAgIGVtaXR0
ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVyLiAgCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk02NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVpl
cm82NCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3Jl
WmVybzMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3Rv
cmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmVa
ZXJvMzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6
c3RvcmVaZXJvMTYpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3RvcmVaZXJv
NjQpOiBEZWxldGVkLgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgICog
YjMvYWlyL0FpckFyZy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6anNIYXNoIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjpkdW1wIGNvbnN0KToKKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpBcmc6Onplcm9SZWcpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpB
cmc6OmlzWmVyb1JlZyBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNHUCBj
b25zdCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6aXNGUCBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEZvcm0gY29uc3QpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpBcmc6OmFzWmVyb1JlZyBjb25zdCk6CisgICAgICAgICogYjMvYWlyL0Fpckxvd2Vy
U3RhY2tBcmdzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6bG93ZXJTdGFja0FyZ3MpOgor
ICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKyAgICAgICAgKiBiMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBiMy90ZXN0YjMuaDoKKyAgICAgICAgKiBiMy90
ZXN0YjNfMS5jcHA6CisgICAgICAgIChydW4pOgorICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoK
KyAgICAgICAgKHRlc3RTdG9yZVplcm9SZWcpOgorCiAyMDIxLTA3LTEyICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjI3NzAyNzogYnJlYWtzIEdDLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAppbmRleCAzZDg1Y2JiOGRiNTMzYzg0MDdhYWI2NWEzOTA0NGY5YmEyYjQwMjJjLi40
YTkwZTVhMWZkZTQ4Y2NmYzQ3YTcyNzQ5ZTU4NWY3ZDAyNGUxY2M1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAt
MTczMSwxNiArMTczMSw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3RyPDY0Pihz
cmMsIGRlc3QsIHNpbW0pOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVy
czo6enIsIGFkZHJlc3MpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHN0b3JlWmVybzY0KEJhc2VJ
bmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVyczo6enIs
IGFkZHJlc3MpOwotICAgIH0KLSAgICAKICAgICBEYXRhTGFiZWwzMiBzdG9yZTY0V2l0aEFkZHJl
c3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAg
ICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0xODM4LDE2ICsxODI4LDYgQEAgcHVi
bGljOgogICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0K
IAotICAgIHZvaWQgc3RvcmVaZXJvMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewot
ICAgICAgICBzdG9yZTMyKEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotCi0g
ICAgdm9pZCBzdG9yZVplcm8zMihCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0
b3JlMzIoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0KICAgICBEYXRhTGFi
ZWwzMiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVz
cyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsMzIgbGFiZWwodGhpcyk7CkBAIC0x
ODkzLDE2ICsxODczLDYgQEAgcHVibGljOgogICAgICAgICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVaZXJvMTYoSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KEFSTTY0UmVnaXN0ZXJzOjp6ciwg
YWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihCYXNlSW5kZXggYWRkcmVz
cykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNzKTsK
LSAgICB9Ci0KICAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJl
c3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0ICYmICFhZGRyZXNzLnNjYWxl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5kZXggYTI2NTUzYTViY2UwZmNmN2JmMDgwNzJmNTk4MmM5
YjUwNzYyMGFlZi4uNTRkNDU2N2Q0YzFjNDVkZmUwYzMyOGNhN2JjZGI4NGU5ZWIyZjk3NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaApAQCAtMTMzNywyNiArMTMzNyw2IEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIubW92bF9pMzJtKGltbS5tX3ZhbHVlLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAKLSAgICB2b2lk
IHN0b3JlWmVybzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3Rv
cmUzMihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVa
ZXJvMzIoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJ
bW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoVHJ1c3RlZEltbTMyKDAp
LCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3JlWmVybzE2KEJhc2VJbmRleCBhZGRy
ZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihUcnVzdGVkSW1tMzIoMCksIGFkZHJlc3MpOwot
ICAgIH0KLQogICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBpbW04KHN0YXRpY19jYXN0PGludDhfdD4o
aW1tLm1fdmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAzMzQ3MmRkOTMxYTk3YjA5Yjk3ZGM5MmY1
MTFlNmMyMmRjYTMyMTIyLi45NDM3ZmQzYmQyYWMxNjY4MTZmMjhmMzdkYmQ5OTA1MWRmMzdhMWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCkBAIC0xMDE1LDE2ICsxMDE1LDYgQEAgcHVibGljOgogICAgICAgICBt
X2Fzc2VtYmxlci5tb3ZxX3JtKHNjcmF0Y2hSZWdpc3RlcigpLCBhZGRyZXNzLm9mZnNldCwgYWRk
cmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAgICAgCi0g
ICAgdm9pZCBzdG9yZVplcm82NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAg
ICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCi0gICAg
dm9pZCBzdG9yZVplcm82NChCYXNlSW5kZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3Jl
NjQoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCiAgICAgRGF0YUxhYmVs
MzIgc3RvcmU2NFdpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIHBhZEJlZm9yZVBhdGNoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IGQyMGIxNDEwZDc3MjgyODgxNGVmMmNj
NTQxZDBjYmQxNDdhNjM1MDcuLjhmYzFhZmMyYTUzOTFmNDU2NWMzZDNkOThmN2EwZjc2NDgzNjIz
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC03MDIs
NiArNzAyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBBcmcoKTsKICAgICB9CiAKKyAg
ICBBcmcgemVyb1JlZygpCisgICAgeworICAgICAgICByZXR1cm4gQXJnOjp6ZXJvUmVnKCk7Cisg
ICAgfQorCiAgICAgQXJnIGltbU9yVG1wKFZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlm
IChBcmcgcmVzdWx0ID0gaW1tKHZhbHVlKSkKQEAgLTEwOTQsMTcgKzEwOTksMTcgQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBBaXI7CiAgICAgICAgIGlmIChhdXRv
IGltbV92YWx1ZSA9IGltbSh2YWx1ZSkpIHsKLSAgICAgICAgICAgIGlmIChpc0FSTTY0KCkgJiYg
aW1tX3ZhbHVlLnZhbHVlKCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKCFpbW1fdmFsdWUudmFs
dWUoKSkgewogICAgICAgICAgICAgICAgIHN3aXRjaCAobW92ZS5vcGNvZGUpIHsKICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICBjYXNlIEFpcjo6TW92ZTMyOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZv
cm0oU3RvcmVaZXJvMzIsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoMzIp
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvMzIsIG1fdmFs
dWUsIGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmUzMiwg
QXJnOjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDMyKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlMzIsIG1fdmFsdWUsIHpl
cm9SZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIGNhc2UgQWlyOjpNb3ZlOgotICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0o
U3RvcmVaZXJvNjQsIGRlc3Qua2luZCgpKSAmJiBkZXN0LmlzVmFsaWRGb3JtKFdpZHRoNjQpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEluc3QoU3RvcmVaZXJvNjQsIG1fdmFsdWUs
IGRlc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oU3RvcmU2NCwgQXJn
OjpaZXJvUmVnLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDY0KSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlNjQsIG1fdmFsdWUsIHplcm9S
ZWcoKSwgZGVzdCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQXJnLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcApp
bmRleCA2Nzg2OTllZmRkNWJjZGVkM2NiZTRhMjY5ZWQyYzJmN2M0OGEyYTMxLi4xMDNjNmVjY2Ez
ZDMxNGJiNGVkOGMwMmE0ZDJmMDA5Y2E2NDFkMDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJBcmcuY3BwCkBAIC0xMDIsNiArMTAyLDcgQEAgdW5zaWduZWQgQXJnOjpqc0hhc2go
KSBjb25zdAogICAgICAgICBicmVhazsKICAgICBjYXNlIEltbToKICAgICBjYXNlIEJpdEltbToK
KyAgICBjYXNlIFplcm9SZWc6CiAgICAgY2FzZSBDYWxsQXJnOgogICAgIGNhc2UgUmVsQ29uZDoK
ICAgICBjYXNlIFJlc0NvbmQ6CkBAIC0xNTksNiArMTYwLDkgQEAgdm9pZCBBcmc6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBjYXNlIEJpdEltbTY0OgogICAgICAgICBvdXQucHJp
bnRmKCIkMHglbGx4Iiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nIHVuc2lnbmVkPihtX29mZnNldCkp
OwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBaZXJvUmVnOgorICAgICAgICBvdXQucHJpbnQo
IiUleHpyIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFNpbXBsZUFkZHI6CiAgICAgICAg
IG91dC5wcmludCgiKCIsIGJhc2UoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjM2LDYg
KzI0MCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBBcmc6OktpbmQg
a2luZCkKICAgICBjYXNlIEFyZzo6Qml0SW1tNjQ6CiAgICAgICAgIG91dC5wcmludCgiQml0SW1t
NjQiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQXJnOjpaZXJvUmVnOgorICAgICAgICBv
dXQucHJpbnQoIlplcm9SZWciKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQXJnOjpTaW1w
bGVBZGRyOgogICAgICAgICBvdXQucHJpbnQoIlNpbXBsZUFkZHIiKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKaW5kZXggODcyMDRlNjdjNzc3NTNi
NDE2NTJmNzM5NGYwYzM0NjczZGNiMzliNC4uY2NlZjQ1Njg4MDNjZTI1NzIxMzBlM2JlYjc2YzEw
ZGVlYjhhNzI3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJB
cmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC04NSw3
ICs4NSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIERvdWJsZUNvbmQsCiAgICAgICAgIFN0YXR1c0Nv
bmQsCiAgICAgICAgIFNwZWNpYWwsCi0gICAgICAgIFdpZHRoQXJnCisgICAgICAgIFdpZHRoQXJn
LAorCisgICAgICAgIC8vIFplcm9SZWcgaXMgaW50ZXJwcmV0ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVy
IGluIEFSTTY0CisgICAgICAgIFplcm9SZWcKICAgICB9OwogICAgIAogICAgIGVudW0gVGVtcGVy
YXR1cmUgOiBpbnQ4X3QgewpAQCAtNjkzLDYgKzY5NiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgc3RhdGljIEFyZyB6ZXJvUmVnKCkKKyAgICB7Cisg
ICAgICAgIEFyZyByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBaZXJvUmVnOworICAg
ICAgICByZXN1bHQubV9vZmZzZXQgPSAwOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBcmcmIG90aGVyKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1fb2Zmc2V0ID09IG90aGVyLm1fb2Zmc2V0CkBAIC03MzksNiArNzUwLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGtpbmQoKSA9PSBCaXRJbW02NDsKICAgICB9CiAK
KyAgICBib29sIGlzWmVyb1JlZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4ga2luZCgp
ID09IFplcm9SZWc7CisgICAgfQorCiAgICAgYm9vbCBpc1NvbWVJbW0oKSBjb25zdAogICAgIHsK
ICAgICAgICAgc3dpdGNoIChraW5kKCkpIHsKQEAgLTEwMjIsNiArMTAzOCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgY2FzZSBCaWdJbW06CiAgICAgICAgIGNhc2UgQml0SW1tOgogICAgICAgICBjYXNl
IEJpdEltbTY0OgorICAgICAgICBjYXNlIFplcm9SZWc6CiAgICAgICAgIGNhc2UgU2ltcGxlQWRk
cjoKICAgICAgICAgY2FzZSBBZGRyOgogICAgICAgICBjYXNlIEV4dGVuZGVkT2Zmc2V0QWRkcjoK
QEAgLTEwNTcsNiArMTA3NCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBTcGVjaWFsOgogICAg
ICAgICBjYXNlIFdpZHRoQXJnOgogICAgICAgICBjYXNlIEludmFsaWQ6CisgICAgICAgIGNhc2Ug
WmVyb1JlZzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBTaW1wbGVB
ZGRyOgogICAgICAgICBjYXNlIEFkZHI6CkBAIC0xMjM2LDYgKzEyNTQsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbUZvcm0odmFsdWUoKSk7CiAgICAgICAgIGNh
c2UgQml0SW1tNjQ6CiAgICAgICAgICAgICByZXR1cm4gaXNWYWxpZEJpdEltbTY0Rm9ybSh2YWx1
ZSgpKTsKKyAgICAgICAgY2FzZSBaZXJvUmVnOgogICAgICAgICBjYXNlIFNpbXBsZUFkZHI6CiAg
ICAgICAgIGNhc2UgRXh0ZW5kZWRPZmZzZXRBZGRyOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0xMzMxLDYgKzEzNTAsMTMgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisjaWYgQ1BV
KEFSTTY0KQorICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGFzWmVyb1JlZygpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gQVJNNjRSZWdpc3RlcnM6OnpyOworICAgIH0KKyNlbmRp
ZgorCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIgYXNUcnVzdGVkSW1tUHRyKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIGlmIChpczY0Qml0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyTG93ZXJTdGFja0FyZ3MuY3BwCmluZGV4IDljOGY1MWU0ZTAy
NzAxZWVkYmE0Y2U3OTIzY2Y1NTc0Y2ZiM2Q3N2MuLmM1N2UxOGM5YzYzYjYyOWMxY2Q0ZjY5NmNj
MjJlOGFhZTZmNmJkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyTG93ZXJTdGFja0FyZ3MuY3BwCkBAIC0xNTcsOSArMTU3LDIwIEBAIHZvaWQgbG93ZXJTdGFj
a0FyZ3MoQ29kZSYgY29kZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChzbG90LT5ieXRlU2l6ZSgpID09IDgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHdpZHRoID09IFdpZHRoMzIpOwogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNWYWxpZEZvcm0oU3RvcmVaZXJvMzIsIEFyZzo6U3Rh
Y2spKTsKKyNpZiBDUFUoQVJNNjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWlyOjpP
cGNvZGUgc3RvcmVPcGNvZGUgPSBTdG9yZTMyOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFpcjo6QXJnOjpLaW5kIG9wZXJhbmRLaW5kID0gQXJnOjpaZXJvUmVnOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFpcjo6QXJnIG9wZXJhbmQgPSBBcmc6Onplcm9SZWcoKTsKKyNlbGlm
IENQVShYODZfNjQpIHx8IENQVShYODYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWly
OjpPcGNvZGUgc3RvcmVPcGNvZGUgPSBNb3ZlMzI7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWlyOjpBcmc6OktpbmQgb3BlcmFuZEtpbmQgPSBBcmc6OkltbTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBaXI6OkFyZyBvcGVyYW5kID0gQXJnOjppbW0oMCk7CisjZWxzZQorI2Vy
cm9yIFVuaGFuZGxlZCBhcmNoaXRlY3R1cmUuCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVChpc1ZhbGlkRm9ybShzdG9yZU9wY29kZSwgb3BlcmFuZEtp
bmQsIEFyZzo6U3RhY2spKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25T
ZXQuaW5zZXJ0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0SW5kZXggKyAx
LCBTdG9yZVplcm8zMiwgaW5zdC5vcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluc3RJbmRleCArIDEsIHN0b3JlT3Bjb2RlLCBpbnN0Lm9yaWdpbiwgb3BlcmFuZCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tBZGRyKGFyZy5vZmZzZXQoKSArIDQg
KyBzbG90LT5vZmZzZXRGcm9tRlAoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgYXJnID0gc3RhY2tBZGRyKGFyZy5vZmZzZXQoKSArIHNsb3Qt
Pm9mZnNldEZyb21GUCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9w
Y29kZS5vcGNvZGVzCmluZGV4IDY0Y2E3NzdiZjA2NWVlZjc4NzZhOTA5Mjg0OWFkNTViODI0OWJk
N2EuLjU5MWRhM2E0NGY4NWUwMDk2ZGE2ZDI3ODA5ZWM5OTJiOGJlMTU1ZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAtNjc1LDE0ICs2
NzUsMTMgQEAgTW92ZTMyIFU6RzozMiwgWkQ6RzozMgogTW92ZTMyIFU6RzozMiwgWkQ6RzozMiwg
UzpHOjMyCiAgICAgQWRkciwgQWRkciwgVG1wCiAKLSMgRklYTUU6IFN0b3JlWmVybzMyIGFuZCBT
dG9yZVplcm82NCBhcmUgaGFja3Mgb24gQVJNNjQsIHdlIGNhbiBkbyBiZXR0ZXI6IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ4MjEKLVN0b3JlWmVybzMyIEQ6Rzoz
MgotICAgIEFkZHIKLSAgICBJbmRleAorYXJtNjQ6IFN0b3JlMzIgVTpHOjMyLCBaRDpHOjMyCisg
ICAgWmVyb1JlZywgQWRkcgorICAgIFplcm9SZWcsIEluZGV4CiAKLTY0OiBTdG9yZVplcm82NCBE
Okc6NjQKLSAgICBBZGRyCi0gICAgSW5kZXgKK2FybTY0OiBTdG9yZTY0IFU6Rzo2NCwgRDpHOjY0
CisgICAgWmVyb1JlZywgQWRkcgorICAgIFplcm9SZWcsIEluZGV4CiAKIFNpZ25FeHRlbmQzMlRv
UHRyIFU6RzozMiwgRDpHOlB0cgogICAgIFRtcCwgVG1wCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKaW5kZXggNmM2MWVjZTg1NzZiOGUzMTlj
NWY1ODIxODRkMTczMjc5ODM2NDAyYi4uMzc0MGVmZGJkZDE0NmEzN2Y2ZWRlOWRkYmMyM2RkYmEw
M2IwNzY0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVf
Z2VuZXJhdG9yLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dl
bmVyYXRvci5yYgpAQCAtMjI5LDcgKzIyOSw3IEBAIGRlZiBpc0dGKHRva2VuKQogZW5kCiAKIGRl
ZiBpc0tpbmQodG9rZW4pCi0gICAgdG9rZW4gPX4gL1xBKChUbXApfChJbW0pfChCaWdJbW0pfChC
aXRJbW0pfChCaXRJbW02NCl8KFNpbXBsZUFkZHIpfChBZGRyKXwoRXh0ZW5kZWRPZmZzZXRBZGRy
KXwoSW5kZXgpfChSZWxDb25kKXwoUmVzQ29uZCl8KERvdWJsZUNvbmQpfChTdGF0dXNDb25kKSlc
Wi8KKyAgICB0b2tlbiA9fiAvXEEoKFRtcCl8KEltbSl8KEJpZ0ltbSl8KEJpdEltbSl8KEJpdElt
bTY0KXwoWmVyb1JlZyl8KFNpbXBsZUFkZHIpfChBZGRyKXwoRXh0ZW5kZWRPZmZzZXRBZGRyKXwo
SW5kZXgpfChSZWxDb25kKXwoUmVzQ29uZCl8KERvdWJsZUNvbmQpfChTdGF0dXNDb25kKSlcWi8K
IGVuZAogCiBkZWYgaXNBcmNoKHRva2VuKQpAQCAtMzAzLDcgKzMwMyw3IEBAIGNsYXNzIFBhcnNl
cgogCiAgICAgZGVmIGNvbnN1bWVLaW5kCiAgICAgICAgIHJlc3VsdCA9IHRva2VuLnN0cmluZwot
ICAgICAgICBwYXJzZUVycm9yKCJFeHBlY3RlZCBraW5kIChJbW0sIEJpZ0ltbSwgQml0SW1tLCBC
aXRJbW02NCwgVG1wLCBTaW1wbGVBZGRyLCBBZGRyLCBFeHRlbmRlZE9mZnNldEFkZHIsIEluZGV4
LCBSZWxDb25kLCBSZXNDb25kLCBEb3VibGVDb25kLCBvciBTdGF0dXNDb25kKSIpIHVubGVzcyBp
c0tpbmQocmVzdWx0KQorICAgICAgICBwYXJzZUVycm9yKCJFeHBlY3RlZCBraW5kIChJbW0sIEJp
Z0ltbSwgQml0SW1tLCBCaXRJbW02NCwgWmVyb1JlZywgVG1wLCBTaW1wbGVBZGRyLCBBZGRyLCBF
eHRlbmRlZE9mZnNldEFkZHIsIEluZGV4LCBSZWxDb25kLCBSZXNDb25kLCBEb3VibGVDb25kLCBv
ciBTdGF0dXNDb25kKSIpIHVubGVzcyBpc0tpbmQocmVzdWx0KQogICAgICAgICBhZHZhbmNlCiAg
ICAgICAgIHJlc3VsdAogICAgIGVuZApAQCAtNDc1LDYgKzQ3NSwxNCBAQCBjbGFzcyBQYXJzZXIK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IoIkZvcm0gaGFz
IGFuIGltbWVkaWF0ZSBmb3IgYSBub24tZ2VuZXJhbC1wdXJwb3NlIGFyZ3VtZW50IikKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYga2luZC5uYW1lID09ICJaZXJv
UmVnIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzaWduYXR1cmVbaW5kZXhd
LnJvbGUgIT0gIlUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUVy
cm9yKCJaZXJvIGltbWVkaWF0ZSBtdXN0IGJlIGEgdXNlIGFyZ3VtZW50IikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIHNpZ25hdHVyZVtpbmRleF0uYmFuayAhPSAiRyIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhcnNlRXJyb3IoIlplcm8gaW1tZWRpYXRlIG11c3QgYmUgYSBnZW5lcmFs
LXB1cnBvc2UgYXJndW1lbnQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1zIDw8IEZvcm0ubmV3KGtpbmRzLCBhbHRO
YW1lLCBpbnRlcnNlY3RBcmNocyhvcGNvZGVBcmNocywgZm9ybUFyY2hzKSkKIApAQCAtOTI2LDYg
KzkzNCw3IEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgICAgICAgICAgICAgIHdo
ZW4gIlJlc0NvbmQiCiAgICAgICAgICAgICAgICAgd2hlbiAiRG91YmxlQ29uZCIKICAgICAgICAg
ICAgICAgICB3aGVuICJTdGF0dXNDb25kIgorICAgICAgICAgICAgICAgIHdoZW4gIlplcm9SZWci
CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICByYWlzZSAiVW5leHBl
Y3RlZCBraW5kOiAje2tpbmQubmFtZX0iCiAgICAgICAgICAgICAgICAgZW5kCkBAIC0xMjIwLDYg
KzEyMjksOCBAQCB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICAgICAgICAgICAgICAg
ICAgb3V0cC5wcmludCAiYXJnc1sje2luZGV4fV0uYXNUcnVzdGVkSW1tMzIoKSIKICAgICAgICAg
ICAgICAgICB3aGVuICJCaWdJbW0iLCAiQml0SW1tNjQiCiAgICAgICAgICAgICAgICAgICAgIG91
dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzVHJ1c3RlZEltbTY0KCkiCisgICAgICAgICAgICAg
ICAgd2hlbiAiWmVyb1JlZyIKKyAgICAgICAgICAgICAgICAgICAgb3V0cC5wcmludCAiYXJnc1sj
e2luZGV4fV0uYXNaZXJvUmVnKCkiCiAgICAgICAgICAgICAgICAgd2hlbiAiU2ltcGxlQWRkciIs
ICJBZGRyIiwgIkV4dGVuZGVkT2Zmc2V0QWRkciIKICAgICAgICAgICAgICAgICAgICAgb3V0cC5w
cmludCAiYXJnc1sje2luZGV4fV0uYXNBZGRyZXNzKCkiCiAgICAgICAgICAgICAgICAgd2hlbiAi
SW5kZXgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKaW5kZXggZjhiZTc3OTNjZWFkNWQyM2Rk
OTYwZTUxNDBmYWY4NzA0Y2VhZjRjMy4uOTg0OGY2M2U4NjlhZjJiM2ZiNTZjNWViMDRhZmUwYmIz
Nzk3YjAwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaApAQCAtNjgxLDYgKzY4MSw3IEBA
IHZvaWQgdGVzdElUb0QzMkltbShpbnQzMl90IHZhbHVlKTsKIHZvaWQgdGVzdElUb0YzMkltbShp
bnQzMl90IHZhbHVlKTsKIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GNjRBcmcoKTsKIHZvaWQg
dGVzdElUb0RSZWR1Y2VkVG9JVG9GMzJBcmcoKTsKK3ZvaWQgdGVzdFN0b3JlWmVyb1JlZygpOwog
dm9pZCB0ZXN0U3RvcmUzMihpbnQgdmFsdWUpOwogdm9pZCB0ZXN0U3RvcmVDb25zdGFudChpbnQg
dmFsdWUpOwogdm9pZCB0ZXN0U3RvcmVDb25zdGFudFB0cihpbnRwdHJfdCB2YWx1ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcAppbmRleCAyYmU4ODMyODYxZmQwZDVhNjUwMzMy
OWQzYTNlN2I5Y2RmM2I3YjAxLi4xZTEzNTY3NTQ0MDI3ZGM3YzY2NTJlOGMyZDY0YzllODU4MDc4
ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMS5jcHAKQEAgLTMzOCw2ICszMzgs
NyBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOX1VOQVJZKHRlc3RDaGVj
a0FkZFJlbW92ZUNoZWNrV2l0aFNFeHQzMiwgaW50MzJPcGVyYW5kcygpKTsKICAgICBSVU5fVU5B
UlkodGVzdENoZWNrQWRkUmVtb3ZlQ2hlY2tXaXRoWkV4dDMyLCBpbnQzMk9wZXJhbmRzKCkpOwog
CisgICAgUlVOKHRlc3RTdG9yZVplcm9SZWcoKSk7CiAgICAgUlVOKHRlc3RTdG9yZTMyKDQ0KSk7
CiAgICAgUlVOKHRlc3RTdG9yZUNvbnN0YW50KDQ5KSk7CiAgICAgUlVOKHRlc3RTdG9yZUNvbnN0
YW50UHRyKDQ5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
XzMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAppbmRleCBjMTdh
YmM3MzYzNDBkNWFiYjM2NGM0M2Y1Yzg2MDcxMDg2NmRhNDZiLi40YzUyYWRhOWNjNDAyZGRlNTM5
ODhjYzhmMmY1ZTllMGRkZTJlMTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzXzMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5j
cHAKQEAgLTI4ODgsNiArMjg4OCw4MyBAQCB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJn
KCkKICAgICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwgdGVzdFZh
bHVlLnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRlc3RWYWx1ZS52YWx1ZSkpKTsKIH0KIAor
dm9pZCB0ZXN0U3RvcmVaZXJvUmVnKCkKK3sKKyAgICAvLyBEaXJlY3QgYWRkcmVzc2luZworICAg
IHsKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJhYWRiZWVmOworICAgICAgICBQcm9jZWR1
cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKwor
ICAgICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisg
ICAgICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlLAorICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdDMyKSwgMCk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB2YWx1ZSk7CisKKyAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7Cisg
ICAgICAgIGludm9rZTxpbnQ+KCpjb2RlKTsKKyAgICAgICAgQ0hFQ0tfRVEoc2xvdDMyLCAwKTsK
KyAgICB9CisKKyAgICB7CisgICAgICAgIGludDY0X3Qgc2xvdDY0ID0gMHhiYWFkYmVlZjsKKyAg
ICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOworICAgICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwKKyAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
JnNsb3Q2NCksIDApOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworCisgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQ
cm9jKHByb2MpOworICAgICAgICBpbnZva2U8aW50PigqY29kZSk7CisgICAgICAgIENIRUNLX0VR
KHNsb3Q2NCwgMCk7CisgICAgfQorCisgICAgLy8gSW5kZXhlZCBhZGRyZXNzaW5nCisgICAgewor
ICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAgICAgIFZhbHVlKiBiYXNlID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSogb2Zmc2V0ID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwor
ICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAgICAgICBWYWx1ZSogYmFzZURpc3BsYWNlbWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZGlzcGxhY2Vt
ZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CisKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKworICAgICAgICBpbnQzMl90IHNsb3Qz
MiA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJnNs
b3QzMiwgMSk7CisgICAgICAgIENIRUNLX0VRKHNsb3QzMiwgMCk7CisgICAgfQorCisgICAgewor
ICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29u
c3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CisgICAgICAgIFZhbHVlKiBiYXNlID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOworICAgICAgICBWYWx1ZSogb2Zmc2V0ID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwor
ICAgICAgICBWYWx1ZSogZGlzcGxhY2VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIC0xKTsKKworICAgICAgICBWYWx1ZSogYmFzZURpc3BsYWNlbWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZGlzcGxhY2Vt
ZW50LCBiYXNlKTsKKyAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CisKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IHZhbHVlLCBhZGRyZXNzLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKworICAgICAgICBpbnQ2NF90IHNsb3Q2
NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnNs
b3Q2NCwgMSk7CisgICAgICAgIENIRUNLX0VRKHNsb3Q2NCwgMCk7CisgICAgfQorfQorCiB2b2lk
IHRlc3RTdG9yZTMyKGludCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433444</attachid>
            <date>2021-07-13 12:27:01 -0700</date>
            <delta_ts>2021-07-13 13:38:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227510-20210713142659.patch</filename>
            <type>text/plain</type>
            <size>21010</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDQ4ODMzZDk5OTYyNWViYjliYzIxMzRhODFiOWYzNmNjNWEwYTYwLi5kZDVjNzU0NmIxN2U3ODIw
MzM4MWVmNDA2NzQ0ZGNhZmI1M2UyZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAyMS0wNy0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWmVyb1JlZyB0byBsZXQgQUlS
IHJlY29nbmlzZSB0aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdp
c3RlciBpbiBBUk02NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAg
ICAgQjMgaXMgZGVzaWduZWQgdG8gYmUgcG9ydGFibGUgdG8gbWFueSBraW5kcyBvZiBDUFVzLiBI
b3dldmVyLCB0byBlZmZlY3RpdmVseSAKKyAgICAgICAgY29tcGlsZSBjb2RlIHRvIGRpZmZlcmVu
dCBDUFVzLCB0aGUgY29tcGlsZXIgbXVzdCBldmVudHVhbGx5IG1ha2UgZXhwbGljaXQgCisgICAg
ICAgIGluc3RydWN0aW9uIHNldCBkZXRhaWxzLiBUaGVuLCBBaXIgaXMgaW50cm9kdWNlZCwgYW5k
IGl0IGlzIGRlc2lnbmVkIHRvIHRhcmdldCAKKyAgICAgICAgaW5kaXZpZHVhbCBDUFUgYXJjaGl0
ZWN0dXJlcyBhbmQgZ2VuZXJhdGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRob3NlIENQVXMu
IAorCisgICAgICAgIFByZXZpb3VzbHksIEFpciBkb24ndCByZWNvZ25pemUgdGhlIHplcm8gcmVn
aXN0ZXIuIFRoaXMgcHJvYmxlbSBoYXMgYmVlbiBwb2ludGVkIAorICAgICAgICBvdXQgaW4gIzE3
NDgyMSwgd2hpY2ggd2FzIHRyeWluZyB0byBpbnRyb2R1Y2UgdGhlIG5ldyBvcGNvZGVzIHRvIGhh
bmRsZSB0aGUgemVybyAKKyAgICAgICAgcmVnaXN0ZXIuIAorCisgICAgICAgIFRvIHNvbHZlIHRo
aXMgcHJvYmxlbSBpbiBhIG1vZHVsYXIgcmVhc29uaW5nIGFwcHJvYWNoLCBhIG5ldyBBaXIgb3Bl
cmFuZCBaZXJvUmVnIAorICAgICAgICBzaG91bGQgYmUgaW50cm9kdWNlZC4gSXRzIGdvYWwgaXMg
dG8gY2xvc2VseSBtYXRjaCB0aGUgQ1BVIGluc3RydWN0aW9ucyAKKyAgICAgICAgYWNjZXB0aW5n
IHRoZSB6ZXJvIHJlZ2lzdGVyIGluIEFSTTY0LiBBbm90aGVyIHJlYXNvbiBpcyB0aGF0IHRoZSBu
ZXcgb3ZlcmxvYWRzIAorICAgICAgICBvZiB0aGUgaW5zdHJ1Y3Rpb25zIHRha2luZyB0aGUgemVy
byByZWdpc3RlciBjYW4gYmVuZWZpdCBpbnN0cnVjdGlvbiBzZWxlY3Rpb24gCisgICAgICAgIHdp
dGggdGhpcyBpbXBsZW1lbnRhdGlvbi4gCisKKyAgICAgICAgSGVyZSwgdGhlIFplcm9SZWcgaXMg
YWRkZWQgYXMgYSBuZXcga2luZCBmb3IgQWlyOjpBcmcsIHdoaWNoIGFjdHMgYXMgYSAiaGlnaCAK
KyAgICAgICAgbGV2ZWwiIG9wZXJhbmQgdG8gYmUgZW1pdHRlZCB3aXRoIHRoZSBhc3NvY2lhdGl2
ZSBvcGNvZGVzLiBJbiBBUk02NCwgdGhlIFplcm9SZWcgCisgICAgICAgIHdvdWxkIGJlIGVtaXR0
ZWQgYXMgYSB6ZXJvIHJlZ2lzdGVyLgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVaZXJv
NjQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVpl
cm8zMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3Jl
WmVybzE2KTogRGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnN0b3JlWmVy
bzMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnN0
b3JlWmVybzE2KTogRGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJY
ODZfNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnN0b3JlWmVybzY0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAqIGIz
L2Fpci9BaXJBcmcuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmpzSGFzaCBjb25z
dCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6ZHVtcCBjb25zdCk6CisgICAgICAgIChX
VEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGIzL2Fpci9BaXJBcmcuaDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6QXJnOjp6ZXJvUmVnKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJn
Ojppc1plcm9SZWcgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzR1AgY29u
c3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzRlAgY29uc3QpOgorICAgICAgICAo
SlNDOjpCMzo6QWlyOjpBcmc6OmlzVmFsaWRGb3JtIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6QXJnOjphc1plcm9SZWcgY29uc3QpOgorICAgICAgICAqIGIzL2Fpci9BaXJMb3dlclN0
YWNrQXJncy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Omxvd2VyU3RhY2tBcmdzKToKKyAg
ICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMvYWlyL29wY29k
ZV9nZW5lcmF0b3IucmI6CisgICAgICAgICogYjMvdGVzdGIzLmg6CisgICAgICAgICogYjMvdGVz
dGIzXzEuY3BwOgorICAgICAgICAocnVuKToKKyAgICAgICAgKiBiMy90ZXN0YjNfMy5jcHA6Cisg
ICAgICAgICh0ZXN0U3RvcmVaZXJvUmVnKToKKwogMjAyMS0wNy0xMiAgTWFyayBMYW0gIDxtYXJr
LmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IHIyNzcwMjc6IGJyZWFrcyBHQy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0LmgKaW5kZXggM2Q4NWNiYjhkYjUzM2M4NDA3YWFiNjVhMzkwNDRmOWJhMmI0MDIyYy4uNGE5
MGU1YTFmZGU0OGNjZmM0N2E3Mjc0OWU1ODVmN2QwMjRlMWNjNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAgLTE3
MzEsMTYgKzE3MzEsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0cjw2ND4oc3Jj
LCBkZXN0LCBzaW1tKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZVplcm82NChJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlNjQoQVJNNjRSZWdpc3RlcnM6
OnpyLCBhZGRyZXNzKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzdG9yZVplcm82NChCYXNlSW5k
ZXggYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3JlNjQoQVJNNjRSZWdpc3RlcnM6OnpyLCBh
ZGRyZXNzKTsKLSAgICB9Ci0gICAgCiAgICAgRGF0YUxhYmVsMzIgc3RvcmU2NFdpdGhBZGRyZXNz
T2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAg
ICAgIERhdGFMYWJlbDMyIGxhYmVsKHRoaXMpOwpAQCAtMTgzOCwxNiArMTgyOCw2IEBAIHB1Ymxp
YzoKICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAK
LSAgICB2b2lkIHN0b3JlWmVybzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQotICAgIHsKLSAg
ICAgICAgc3RvcmUzMihBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwotICAgIH0KLQotICAg
IHZvaWQgc3RvcmVaZXJvMzIoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9y
ZTMyKEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0gICAgfQotCiAgICAgRGF0YUxhYmVs
MzIgc3RvcmUzMldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIERhdGFMYWJlbDMyIGxhYmVsKHRoaXMpOwpAQCAtMTg5
MywxNiArMTg3Myw2IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUxNihkYXRhVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlWmVybzE2KEltcGxpY2l0QWRkcmVz
cyBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUxNihBUk02NFJlZ2lzdGVyczo6enIsIGFk
ZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVaZXJvMTYoQmFzZUluZGV4IGFkZHJlc3Mp
Ci0gICAgewotICAgICAgICBzdG9yZTE2KEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7Ci0g
ICAgfQotCiAgICAgdm9pZCBzdG9yZTgoUmVnaXN0ZXJJRCBzcmMsIEJhc2VJbmRleCBhZGRyZXNz
KQogICAgIHsKICAgICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCAmJiAhYWRkcmVzcy5zY2FsZSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IGEyNjU1M2E1YmNlMGZjZjdiZjA4MDcyZjU5ODJjOWI1
MDc2MjBhZWYuLjU0ZDQ1NjdkNGMxYzQ1ZGZlMGMzMjhjYTdiY2RiODRlOWViMmY5NzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2Q29tbW9uLmgKQEAgLTEzMzcsMjYgKzEzMzcsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
YXNzZW1ibGVyLm1vdmxfaTMybShpbW0ubV92YWx1ZSwgYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3Mu
YmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgfQogCi0gICAgdm9pZCBz
dG9yZVplcm8zMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIHN0b3Jl
MzIoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3JlWmVy
bzMyKEJhc2VJbmRleCBhZGRyZXNzKQotICAgIHsKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1t
MzIoMCksIGFkZHJlc3MpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmVaZXJvMTYoSW1wbGljaXRB
ZGRyZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTE2KFRydXN0ZWRJbW0zMigwKSwg
YWRkcmVzcyk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZVplcm8xNihCYXNlSW5kZXggYWRkcmVz
cykKLSAgICB7Ci0gICAgICAgIHN0b3JlMTYoVHJ1c3RlZEltbTMyKDApLCBhZGRyZXNzKTsKLSAg
ICB9Ci0KICAgICB2b2lkIHN0b3JlOChUcnVzdGVkSW1tMzIgaW1tLCBBZGRyZXNzIGFkZHJlc3Mp
CiAgICAgewogICAgICAgICBUcnVzdGVkSW1tMzIgaW1tOChzdGF0aWNfY2FzdDxpbnQ4X3Q+KGlt
bS5tX3ZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKaW5kZXggMzM0NzJkZDkzMWE5N2IwOWI5N2RjOTJmNTEx
ZTZjMjJkY2EzMjEyMi4uOTQzN2ZkM2JkMmFjMTY2ODE2ZjI4ZjM3ZGJkOTkwNTFkZjM3YTFjNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Nl82NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZfNjQuaApAQCAtMTAxNSwxNiArMTAxNSw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9h
c3NlbWJsZXIubW92cV9ybShzY3JhdGNoUmVnaXN0ZXIoKSwgYWRkcmVzcy5vZmZzZXQsIGFkZHJl
c3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgfQogICAgIAotICAg
IHZvaWQgc3RvcmVaZXJvNjQoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAg
ICBzdG9yZTY0KFRydXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotICAgIAotICAgIHZv
aWQgc3RvcmVaZXJvNjQoQmFzZUluZGV4IGFkZHJlc3MpCi0gICAgewotICAgICAgICBzdG9yZTY0
KFRydXN0ZWRJbW0zMigwKSwgYWRkcmVzcyk7Ci0gICAgfQotICAgIAogICAgIERhdGFMYWJlbDMy
IHN0b3JlNjRXaXRoQWRkcmVzc09mZnNldFBhdGNoKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFk
ZHJlc3MpCiAgICAgewogICAgICAgICBwYWRCZWZvcmVQYXRjaCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAppbmRleCBkMjBiMTQxMGQ3NzI4Mjg4MTRlZjJjYzU0
MWQwY2JkMTQ3YTYzNTA3Li44ZmMxYWZjMmE1MzkxZjQ1NjVjM2QzZDk4ZjdhMGY3NjQ4MzYyM2Rh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcApAQCAtNzAyLDYg
KzcwMiwxMSBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gQXJnKCk7CiAgICAgfQogCisgICAg
QXJnIHplcm9SZWcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFyZzo6emVyb1JlZygpOworICAg
IH0KKwogICAgIEFyZyBpbW1PclRtcChWYWx1ZSogdmFsdWUpCiAgICAgewogICAgICAgICBpZiAo
QXJnIHJlc3VsdCA9IGltbSh2YWx1ZSkpCkBAIC0xMDk0LDE3ICsxMDk5LDE3IEBAIHByaXZhdGU6
CiAgICAgewogICAgICAgICB1c2luZyBuYW1lc3BhY2UgQWlyOwogICAgICAgICBpZiAoYXV0byBp
bW1fdmFsdWUgPSBpbW0odmFsdWUpKSB7Ci0gICAgICAgICAgICBpZiAoaXNBUk02NCgpICYmIGlt
bV92YWx1ZS52YWx1ZSgpID09IDApIHsKKyAgICAgICAgICAgIGlmICghaW1tX3ZhbHVlLnZhbHVl
KCkpIHsKICAgICAgICAgICAgICAgICBzd2l0Y2ggKG1vdmUub3Bjb2RlKSB7CiAgICAgICAgICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgY2FzZSBBaXI6Ok1vdmUzMjoKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3Jt
KFN0b3JlWmVybzMyLCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDMyKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlWmVybzMyLCBtX3ZhbHVl
LCBkZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3JtKFN0b3JlMzIsIEFy
Zzo6WmVyb1JlZywgZGVzdC5raW5kKCkpICYmIGRlc3QuaXNWYWxpZEZvcm0oV2lkdGgzMikpCisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5zdChTdG9yZTMyLCBtX3ZhbHVlLCB6ZXJv
UmVnKCksIGRlc3QpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICBjYXNlIEFpcjo6TW92ZToKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3JtKFN0
b3JlWmVybzY0LCBkZXN0LmtpbmQoKSkgJiYgZGVzdC5pc1ZhbGlkRm9ybShXaWR0aDY0KSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnN0KFN0b3JlWmVybzY0LCBtX3ZhbHVlLCBk
ZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3JtKFN0b3JlNjQsIEFyZzo6
WmVyb1JlZywgZGVzdC5raW5kKCkpICYmIGRlc3QuaXNWYWxpZEZvcm0oV2lkdGg2NCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5zdChTdG9yZTY0LCBtX3ZhbHVlLCB6ZXJvUmVn
KCksIGRlc3QpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckFyZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKaW5k
ZXggNjc4Njk5ZWZkZDViY2RlZDNjYmU0YTI2OWVkMmMyZjdjNDhhMmEzMS4uMTAzYzZlY2NhM2Qz
MTRiYjRlZDhjMDJhNGQyZjAwOWNhNjQxZDAwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQXJnLmNwcApAQCAtMTAyLDYgKzEwMiw3IEBAIHVuc2lnbmVkIEFyZzo6anNIYXNoKCkg
Y29uc3QKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbW06CiAgICAgY2FzZSBCaXRJbW06Cisg
ICAgY2FzZSBaZXJvUmVnOgogICAgIGNhc2UgQ2FsbEFyZzoKICAgICBjYXNlIFJlbENvbmQ6CiAg
ICAgY2FzZSBSZXNDb25kOgpAQCAtMTU5LDYgKzE2MCw5IEBAIHZvaWQgQXJnOjpkdW1wKFByaW50
U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgY2FzZSBCaXRJbW02NDoKICAgICAgICAgb3V0LnByaW50
ZigiJDB4JWxseCIsIHN0YXRpY19jYXN0PGxvbmcgbG9uZyB1bnNpZ25lZD4obV9vZmZzZXQpKTsK
ICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgWmVyb1JlZzoKKyAgICAgICAgb3V0LnByaW50KCIl
JXh6ciIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTaW1wbGVBZGRyOgogICAgICAgICBv
dXQucHJpbnQoIigiLCBiYXNlKCksICIpIik7CiAgICAgICAgIHJldHVybjsKQEAgLTIzNiw2ICsy
NDAsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgQXJnOjpLaW5kIGtp
bmQpCiAgICAgY2FzZSBBcmc6OkJpdEltbTY0OgogICAgICAgICBvdXQucHJpbnQoIkJpdEltbTY0
Iik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEFyZzo6WmVyb1JlZzoKKyAgICAgICAgb3V0
LnByaW50KCJaZXJvUmVnIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEFyZzo6U2ltcGxl
QWRkcjoKICAgICAgICAgb3V0LnByaW50KCJTaW1wbGVBZGRyIik7CiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCmluZGV4IDg3MjA0ZTY3Yzc3NzUzYjQx
NjUyZjczOTRmMGMzNDY3M2RjYjM5YjQuLmNjZWY0NTY4ODAzY2UyNTcyMTMwZTNiZWI3NmMxMGRl
ZWI4YTcyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJn
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaApAQCAtODUsNyAr
ODUsMTAgQEAgcHVibGljOgogICAgICAgICBEb3VibGVDb25kLAogICAgICAgICBTdGF0dXNDb25k
LAogICAgICAgICBTcGVjaWFsLAotICAgICAgICBXaWR0aEFyZworICAgICAgICBXaWR0aEFyZywK
KworICAgICAgICAvLyBaZXJvUmVnIGlzIGludGVycHJldGVkIGFzIGEgemVybyByZWdpc3RlciBp
biBBUk02NAorICAgICAgICBaZXJvUmVnCiAgICAgfTsKICAgICAKICAgICBlbnVtIFRlbXBlcmF0
dXJlIDogaW50OF90IHsKQEAgLTY5Myw2ICs2OTYsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KIAorICAgIHN0YXRpYyBBcmcgemVyb1JlZygpCisgICAgeworICAg
ICAgICBBcmcgcmVzdWx0OworICAgICAgICByZXN1bHQubV9raW5kID0gWmVyb1JlZzsKKyAgICAg
ICAgcmVzdWx0Lm1fb2Zmc2V0ID0gMDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisK
ICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQXJnJiBvdGhlcikgY29uc3QKICAgICB7CiAgICAg
ICAgIHJldHVybiBtX29mZnNldCA9PSBvdGhlci5tX29mZnNldApAQCAtNzM5LDYgKzc1MCwxMSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBraW5kKCkgPT0gQml0SW1tNjQ7CiAgICAgfQogCisg
ICAgYm9vbCBpc1plcm9SZWcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGtpbmQoKSA9
PSBaZXJvUmVnOworICAgIH0KKwogICAgIGJvb2wgaXNTb21lSW1tKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHN3aXRjaCAoa2luZCgpKSB7CkBAIC0xMDIyLDYgKzEwMzgsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGNhc2UgQmlnSW1tOgogICAgICAgICBjYXNlIEJpdEltbToKICAgICAgICAgY2FzZSBC
aXRJbW02NDoKKyAgICAgICAgY2FzZSBaZXJvUmVnOgogICAgICAgICBjYXNlIFNpbXBsZUFkZHI6
CiAgICAgICAgIGNhc2UgQWRkcjoKICAgICAgICAgY2FzZSBFeHRlbmRlZE9mZnNldEFkZHI6CkBA
IC0xMDU3LDYgKzEwNzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgU3BlY2lhbDoKICAgICAg
ICAgY2FzZSBXaWR0aEFyZzoKICAgICAgICAgY2FzZSBJbnZhbGlkOgorICAgICAgICBjYXNlIFpl
cm9SZWc6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNhc2UgU2ltcGxlQWRk
cjoKICAgICAgICAgY2FzZSBBZGRyOgpAQCAtMTIzNiw2ICsxMjU0LDcgQEAgcHVibGljOgogICAg
ICAgICAgICAgcmV0dXJuIGlzVmFsaWRCaXRJbW1Gb3JtKHZhbHVlKCkpOwogICAgICAgICBjYXNl
IEJpdEltbTY0OgogICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWRCaXRJbW02NEZvcm0odmFsdWUo
KSk7CisgICAgICAgIGNhc2UgWmVyb1JlZzoKICAgICAgICAgY2FzZSBTaW1wbGVBZGRyOgogICAg
ICAgICBjYXNlIEV4dGVuZGVkT2Zmc2V0QWRkcjoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpA
QCAtMTMzMSw2ICsxMzUwLDEzIEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKIAorI2lmIENQVShB
Uk02NCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBhc1plcm9SZWcoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIEFSTTY0UmVnaXN0ZXJzOjp6cjsKKyAgICB9CisjZW5kaWYK
KwogICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyIGFzVHJ1c3RlZEltbVB0cigpIGNv
bnN0CiAgICAgewogICAgICAgICBpZiAoaXM2NEJpdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMb3dlclN0YWNrQXJncy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyU3RhY2tBcmdzLmNwcAppbmRleCA5YzhmNTFlNGUwMjcw
MWVlZGJhNGNlNzkyM2NmNTU3NGNmYjNkNzdjLi45MDVlNjE3ZmJkZTBlMmI3ZDc1NTU2M2U2ODg1
ODliZGFkNzI2YzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckxvd2VyU3RhY2tBcmdzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckxvd2VyU3RhY2tBcmdzLmNwcApAQCAtMTU3LDkgKzE1NywyMCBAQCB2b2lkIGxvd2VyU3RhY2tB
cmdzKENvZGUmIGNvZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoc2xvdC0+Ynl0ZVNpemUoKSA9PSA4KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVCh3aWR0aCA9PSBXaWR0aDMyKTsKIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzVmFsaWRGb3JtKFN0b3JlWmVybzMyLCBBcmc6OlN0YWNr
KSk7CisjaWYgQ1BVKEFSTTY0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFpcjo6T3Bj
b2RlIHN0b3JlT3Bjb2RlID0gU3RvcmUzMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
aXI6OkFyZzo6S2luZCBvcGVyYW5kS2luZCA9IEFyZzo6WmVyb1JlZzsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBaXI6OkFyZyBvcGVyYW5kID0gQXJnOjp6ZXJvUmVnKCk7CisjZWxpZiBD
UFUoWDg2XzY0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFpcjo6T3Bjb2RlIHN0b3Jl
T3Bjb2RlID0gTW92ZTMyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFpcjo6QXJnOjpL
aW5kIG9wZXJhbmRLaW5kID0gQXJnOjpJbW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QWlyOjpBcmcgb3BlcmFuZCA9IEFyZzo6aW1tKDApOworI2Vsc2UKKyNlcnJvciBVbmhhbmRsZWQg
YXJjaGl0ZWN0dXJlLgorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlQoaXNWYWxpZEZvcm0oc3RvcmVPcGNvZGUsIG9wZXJhbmRLaW5kLCBBcmc6OlN0YWNr
KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydCgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdEluZGV4ICsgMSwgU3RvcmVaZXJvMzIs
IGluc3Qub3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0SW5kZXgg
KyAxLCBzdG9yZU9wY29kZSwgaW5zdC5vcmlnaW4sIG9wZXJhbmQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YWNrQWRkcihhcmcub2Zmc2V0KCkgKyA0ICsgc2xvdC0+b2Zmc2V0
RnJvbUZQKCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgIGFyZyA9IHN0YWNrQWRkcihhcmcub2Zmc2V0KCkgKyBzbG90LT5vZmZzZXRGcm9tRlAo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5v
cGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2Rlcwpp
bmRleCA2NGNhNzc3YmYwNjVlZWY3ODc2YTkwOTI4NDlhZDU1YjgyNDliZDdhLi41OTFkYTNhNDRm
ODVlMDA5NmRhNmQyNzgwOWVjOTkyYjhiZTE1NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKQEAgLTY3NSwxNCArNjc1LDEzIEBAIE1vdmUz
MiBVOkc6MzIsIFpEOkc6MzIKIE1vdmUzMiBVOkc6MzIsIFpEOkc6MzIsIFM6RzozMgogICAgIEFk
ZHIsIEFkZHIsIFRtcAogCi0jIEZJWE1FOiBTdG9yZVplcm8zMiBhbmQgU3RvcmVaZXJvNjQgYXJl
IGhhY2tzIG9uIEFSTTY0LCB3ZSBjYW4gZG8gYmV0dGVyOiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0ODIxCi1TdG9yZVplcm8zMiBEOkc6MzIKLSAgICBBZGRyCi0g
ICAgSW5kZXgKK2FybTY0OiBTdG9yZTMyIFU6RzozMiwgWkQ6RzozMgorICAgIFplcm9SZWcsIEFk
ZHIKKyAgICBaZXJvUmVnLCBJbmRleAogCi02NDogU3RvcmVaZXJvNjQgRDpHOjY0Ci0gICAgQWRk
cgotICAgIEluZGV4Cithcm02NDogU3RvcmU2NCBVOkc6NjQsIEQ6Rzo2NAorICAgIFplcm9SZWcs
IEFkZHIKKyAgICBaZXJvUmVnLCBJbmRleAogCiBTaWduRXh0ZW5kMzJUb1B0ciBVOkc6MzIsIEQ6
RzpQdHIKICAgICBUbXAsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9v
cGNvZGVfZ2VuZXJhdG9yLnJiCmluZGV4IDZjNjFlY2U4NTc2YjhlMzE5YzVmNTgyMTg0ZDE3MzI3
OTgzNjQwMmIuLjM3NDBlZmRiZGQxNDZhMzdmNmVkZTlkZGJjMjNkZGJhMDNiMDc2NDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKQEAg
LTIyOSw3ICsyMjksNyBAQCBkZWYgaXNHRih0b2tlbikKIGVuZAogCiBkZWYgaXNLaW5kKHRva2Vu
KQotICAgIHRva2VuID1+IC9cQSgoVG1wKXwoSW1tKXwoQmlnSW1tKXwoQml0SW1tKXwoQml0SW1t
NjQpfChTaW1wbGVBZGRyKXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVs
Q29uZCl8KFJlc0NvbmQpfChEb3VibGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCisgICAgdG9rZW4g
PX4gL1xBKChUbXApfChJbW0pfChCaWdJbW0pfChCaXRJbW0pfChCaXRJbW02NCl8KFplcm9SZWcp
fChTaW1wbGVBZGRyKXwoQWRkcil8KEV4dGVuZGVkT2Zmc2V0QWRkcil8KEluZGV4KXwoUmVsQ29u
ZCl8KFJlc0NvbmQpfChEb3VibGVDb25kKXwoU3RhdHVzQ29uZCkpXFovCiBlbmQKIAogZGVmIGlz
QXJjaCh0b2tlbikKQEAgLTMwMyw3ICszMDMsNyBAQCBjbGFzcyBQYXJzZXIKIAogICAgIGRlZiBj
b25zdW1lS2luZAogICAgICAgICByZXN1bHQgPSB0b2tlbi5zdHJpbmcKLSAgICAgICAgcGFyc2VF
cnJvcigiRXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwgQml0SW1tNjQsIFRtcCwg
U2ltcGxlQWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRBZGRyLCBJbmRleCwgUmVsQ29uZCwgUmVz
Q29uZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCkiKSB1bmxlc3MgaXNLaW5kKHJlc3VsdCkK
KyAgICAgICAgcGFyc2VFcnJvcigiRXhwZWN0ZWQga2luZCAoSW1tLCBCaWdJbW0sIEJpdEltbSwg
Qml0SW1tNjQsIFplcm9SZWcsIFRtcCwgU2ltcGxlQWRkciwgQWRkciwgRXh0ZW5kZWRPZmZzZXRB
ZGRyLCBJbmRleCwgUmVsQ29uZCwgUmVzQ29uZCwgRG91YmxlQ29uZCwgb3IgU3RhdHVzQ29uZCki
KSB1bmxlc3MgaXNLaW5kKHJlc3VsdCkKICAgICAgICAgYWR2YW5jZQogICAgICAgICByZXN1bHQK
ICAgICBlbmQKQEAgLTQ3NSw2ICs0NzUsMTQgQEAgY2xhc3MgUGFyc2VyCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUVycm9yKCJGb3JtIGhhcyBhbiBpbW1lZGlhdGUg
Zm9yIGEgbm9uLWdlbmVyYWwtcHVycG9zZSBhcmd1bWVudCIpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIGtpbmQubmFtZSA9PSAiWmVyb1JlZyIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2lnbmF0dXJlW2luZGV4XS5yb2xlICE9ICJVIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigiWmVybyBpbW1l
ZGlhdGUgbXVzdCBiZSBhIHVzZSBhcmd1bWVudCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzaWduYXR1cmVb
aW5kZXhdLmJhbmsgIT0gIkciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXJzZUVycm9yKCJaZXJvIGltbWVkaWF0ZSBtdXN0IGJlIGEgZ2VuZXJhbC1wdXJwb3NlIGFyZ3Vt
ZW50IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICBmb3JtcyA8PCBGb3JtLm5ldyhraW5kcywgYWx0TmFtZSwgaW50ZXJzZWN0
QXJjaHMob3Bjb2RlQXJjaHMsIGZvcm1BcmNocykpCiAKQEAgLTkyNiw2ICs5MzQsNyBAQCB3cml0
ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICAgICAgICAgICAgICB3aGVuICJSZXNDb25kIgog
ICAgICAgICAgICAgICAgIHdoZW4gIkRvdWJsZUNvbmQiCiAgICAgICAgICAgICAgICAgd2hlbiAi
U3RhdHVzQ29uZCIKKyAgICAgICAgICAgICAgICB3aGVuICJaZXJvUmVnIgogICAgICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgIlVuZXhwZWN0ZWQga2luZDogI3tr
aW5kLm5hbWV9IgogICAgICAgICAgICAgICAgIGVuZApAQCAtMTIyMCw2ICsxMjI5LDggQEAgd3Jp
dGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQg
ImFyZ3NbI3tpbmRleH1dLmFzVHJ1c3RlZEltbTMyKCkiCiAgICAgICAgICAgICAgICAgd2hlbiAi
QmlnSW1tIiwgIkJpdEltbTY0IgogICAgICAgICAgICAgICAgICAgICBvdXRwLnByaW50ICJhcmdz
WyN7aW5kZXh9XS5hc1RydXN0ZWRJbW02NCgpIgorICAgICAgICAgICAgICAgIHdoZW4gIlplcm9S
ZWciCisgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQgImFyZ3NbI3tpbmRleH1dLmFzWmVy
b1JlZygpIgogICAgICAgICAgICAgICAgIHdoZW4gIlNpbXBsZUFkZHIiLCAiQWRkciIsICJFeHRl
bmRlZE9mZnNldEFkZHIiCiAgICAgICAgICAgICAgICAgICAgIG91dHAucHJpbnQgImFyZ3NbI3tp
bmRleH1dLmFzQWRkcmVzcygpIgogICAgICAgICAgICAgICAgIHdoZW4gIkluZGV4IgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiMy5oCmluZGV4IGY4YmU3NzkzY2VhZDVkMjNkZDk2MGU1MTQwZmFmODcw
NGNlYWY0YzMuLjk4NDhmNjNlODY5YWYyYjNmYjU2YzVlYjA0YWZlMGJiMzc5N2IwMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKQEAgLTY4MSw2ICs2ODEsNyBAQCB2b2lkIHRlc3RJVG9E
MzJJbW0oaW50MzJfdCB2YWx1ZSk7CiB2b2lkIHRlc3RJVG9GMzJJbW0oaW50MzJfdCB2YWx1ZSk7
CiB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJnKCk7CiB2b2lkIHRlc3RJVG9EUmVkdWNl
ZFRvSVRvRjMyQXJnKCk7Cit2b2lkIHRlc3RTdG9yZVplcm9SZWcoKTsKIHZvaWQgdGVzdFN0b3Jl
MzIoaW50IHZhbHVlKTsKIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnQoaW50IHZhbHVlKTsKIHZvaWQg
dGVzdFN0b3JlQ29uc3RhbnRQdHIoaW50cHRyX3QgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjNfMS5jcHAKaW5kZXggMmJlODgzMjg2MWZkMGQ1YTY1MDMzMjlkM2EzZTdiOWNkZjNi
N2IwMS4uMWUxMzU2NzU0NDAyN2RjN2M2NjUyZThjMmQ2NGM5ZTg1ODA3OGRmMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18xLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzXzEuY3BwCkBAIC0zMzgsNiArMzM4LDcgQEAgdm9pZCBydW4o
Y29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTl9VTkFSWSh0ZXN0Q2hlY2tBZGRSZW1vdmVDaGVj
a1dpdGhTRXh0MzIsIGludDMyT3BlcmFuZHMoKSk7CiAgICAgUlVOX1VOQVJZKHRlc3RDaGVja0Fk
ZFJlbW92ZUNoZWNrV2l0aFpFeHQzMiwgaW50MzJPcGVyYW5kcygpKTsKIAorICAgIFJVTih0ZXN0
U3RvcmVaZXJvUmVnKCkpOwogICAgIFJVTih0ZXN0U3RvcmUzMig0NCkpOwogICAgIFJVTih0ZXN0
U3RvcmVDb25zdGFudCg0OSkpOwogICAgIFJVTih0ZXN0U3RvcmVDb25zdGFudFB0cig0OSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKaW5kZXggYzE3YWJjNzM2MzQwZDVhYmIz
NjRjNDNmNWM4NjA3MTA4NjZkYTQ2Yi4uNGM1MmFkYTljYzQwMmRkZTUzOTg4Y2M4ZjJmNWU5ZTBk
ZGUyZTExYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCkBAIC0yODg4LDYg
KzI4ODgsODMgQEAgdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0YzMkFyZygpCiAgICAgICAgIENI
RUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIHRlc3RWYWx1ZS52YWx1ZSksIHN0
YXRpY19jYXN0PGZsb2F0Pih0ZXN0VmFsdWUudmFsdWUpKSk7CiB9CiAKK3ZvaWQgdGVzdFN0b3Jl
WmVyb1JlZygpCit7CisgICAgLy8gRGlyZWN0IGFkZHJlc3NpbmcKKyAgICB7CisgICAgICAgIGlu
dDMyX3Qgc2xvdDMyID0gMHhiYWFkYmVlZjsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAg
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUq
IHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
OworICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJv
YywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QzMiksIDApOworICAgICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwor
CisgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBpbnZva2U8
aW50PigqY29kZSk7CisgICAgICAgIENIRUNLX0VRKHNsb3QzMiwgMCk7CisgICAgfQorCisgICAg
eworICAgICAgICBpbnQ2NF90IHNsb3Q2NCA9IDB4YmFhZGJlZWY7CisgICAgICAgIFByb2NlZHVy
ZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisg
ICAgICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAg
ICAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWUsCisgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90NjQpLCAwKTsK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHZhbHVlKTsKKworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAg
ICAgICAgaW52b2tlPGludD4oKmNvZGUpOworICAgICAgICBDSEVDS19FUShzbG90NjQsIDApOwor
ICAgIH0KKworICAgIC8vIEluZGV4ZWQgYWRkcmVzc2luZworICAgIHsKKyAgICAgICAgUHJvY2Vk
dXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisK
KyAgICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
KyAgICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUq
IGRpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7Cisg
ICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVz
cywgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50MzJfdCBzbG90MzIgPSAweGJhYWRiZWVm
OworICAgICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZzbG90MzIsIDEpOworICAg
ICAgICBDSEVDS19FUShzbG90MzIsIDApOworICAgIH0KKworICAgIHsKKyAgICAgICAgUHJvY2Vk
dXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisK
KyAgICAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApOworICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
KyAgICAgICAgVmFsdWUqIG9mZnNldCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgVmFsdWUq
IGRpc3BsYWNlbWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCAtMSk7CisKKyAgICAgICAgVmFsdWUqIGJhc2VEaXNwbGFjZW1lbnQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRpc3BsYWNlbWVudCwgYmFzZSk7Cisg
ICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOworCisgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVz
cywgMCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB2YWx1ZSk7CisKKyAgICAgICAgaW50NjRfdCBzbG90NjQgPSAweGJhYWRiZWVm
OworICAgICAgICBjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzbG90NjQsIDEpOworICAg
ICAgICBDSEVDS19FUShzbG90NjQsIDApOworICAgIH0KK30KKwogdm9pZCB0ZXN0U3RvcmUzMihp
bnQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>