<?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>215672</bug_id>
          
          <creation_ts>2020-08-19 17:09:48 -0700</creation_ts>
          <short_desc>OSR availability validation should run for any node with exitOK</short_desc>
          <delta_ts>2020-08-27 16:12:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</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>1681539</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-08-19 17:09:48 -0700</bug_when>
    <thetext>OSR availability validation should run for any node with exitOK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681551</commentid>
    <comment_count>1</comment_count>
      <attachid>406893</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-08-19 17:26:10 -0700</bug_when>
    <thetext>Created attachment 406893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681555</commentid>
    <comment_count>2</comment_count>
      <attachid>406894</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-08-19 17:29:30 -0700</bug_when>
    <thetext>Created attachment 406894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681569</commentid>
    <comment_count>3</comment_count>
      <attachid>406894</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-08-19 18:15:22 -0700</bug_when>
    <thetext>Comment on attachment 406894
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:17
&gt; +        First, OpGetScope, should not mark it&apos;s first argument as used

it&apos;s =&gt; its

&gt; Source/JavaScriptCore/ChangeLog:20
&gt; +        since it&apos;s not. This is problematic because we could have a loop
&gt; +        where OpGetScope is the first bytecode, namely when doing tail
&gt; +        recursive inlining.

this doesn&apos;t say why this is bad. Talk about the issue w.r.t variables, CPS, and SSA conversion

&gt; Source/JavaScriptCore/ChangeLog:32
&gt; +        Fourth, MovHint removal phase had a second bug where a MovHint
&gt; +        that was not killed in the current block would be zombied, which

always? This didn&apos;t lead to bugs?

&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:129
&gt; +            // We may have made the graph invalid with the above transformation. It&apos;s possible that we have a node marked exitOK on while there&apos;s an operand we have ZombieHinted live in bytecode. If we transform our graph to insert something at that point we will no longer have all the information we need to OSR. For example, consider the following block:

weird wording: &quot;on while there&apos;s an operand&quot;

Also, please split this across more than 1 line

&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:144
&gt; +            for (unsigned nodeIndex = 0; nodeIndex &lt; block-&gt;size(); ++nodeIndex) {

this whole loop looks arbitrary. How is that exitValid is never flipped back to true over the entire block? What if we cross a point where we can exit again?

&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:158
&gt; +                        for (size_t i = 0; i &lt; currentZombies.size(); ++i)
&gt; +                            exitValid &amp;= !currentZombies[i];

this loop looks super expensive and easily avoidable by keeping a count or something

&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:170
&gt; +                    currentZombies.operand(node-&gt;unlinkedOperand()) = true;

shouldn&apos;t a MovHint to this local set this to false?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681570</commentid>
    <comment_count>4</comment_count>
      <attachid>406894</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-08-19 18:17:16 -0700</bug_when>
    <thetext>Comment on attachment 406894
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:167
&gt; +                node-&gt;origin.exitOK &amp;= exitValid;

isn&apos;t this gonna just lead to us marking a bunch fo stuff that needs to exit as exitInvalid? I&apos;m kinda not believing in what&apos;s preventing that from happening</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681571</commentid>
    <comment_count>5</comment_count>
      <attachid>406894</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-08-19 18:18:12 -0700</bug_when>
    <thetext>Comment on attachment 406894
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:132
&gt; +            // @3 KillStack(loc1, bc#2, ExitValid)

what if this weren&apos;t a KillStack, but something that exited? How would this transformation be sound?

&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:141
&gt; +            // But it would be perfectly valid to later insert some exiting node between @2 and @3. We no longer have availability for loc1 at that point, however, thus we need to mark @3 as ExitInvalid so we don&apos;t do that.

Can you also write the graph you expect to have?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681572</commentid>
    <comment_count>6</comment_count>
      <attachid>406894</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-08-19 18:18:59 -0700</bug_when>
    <thetext>Comment on attachment 406894
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:132
&gt;&gt; +            // @3 KillStack(loc1, bc#2, ExitValid)
&gt; 
&gt; what if this weren&apos;t a KillStack, but something that exited? How would this transformation be sound?

oh, I guess that means we wouldn&apos;t have made this is a ZombieHint...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682562</commentid>
    <comment_count>7</comment_count>
      <attachid>406894</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-08-24 21:29:45 -0700</bug_when>
    <thetext>Comment on attachment 406894
Patch

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

I commented on Saam&apos;s comments on MovHintRemoval even though we opted to remove that phase in a different patch.

&gt;&gt; Source/JavaScriptCore/ChangeLog:32
&gt;&gt; +        that was not killed in the current block would be zombied, which
&gt; 
&gt; always? This didn&apos;t lead to bugs?

No, only if there was no exit after the MovHint in the block.

&gt;&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:141
&gt;&gt; +            // But it would be perfectly valid to later insert some exiting node between @2 and @3. We no longer have availability for loc1 at that point, however, thus we need to mark @3 as ExitInvalid so we don&apos;t do that.
&gt; 
&gt; Can you also write the graph you expect to have?

Sure, although, the only difference is that @3 is just ExitInvalid.

&gt;&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:144
&gt;&gt; +            for (unsigned nodeIndex = 0; nodeIndex &lt; block-&gt;size(); ++nodeIndex) {
&gt; 
&gt; this whole loop looks arbitrary. How is that exitValid is never flipped back to true over the entire block? What if we cross a point where we can exit again?

If we passed a point where we can exit then we shouldn&apos;t have any zombies since that would be invalid. If you want I can add an assertion.

&gt;&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:158
&gt;&gt; +                            exitValid &amp;= !currentZombies[i];
&gt; 
&gt; this loop looks super expensive and easily avoidable by keeping a count or something

Sure, I thought Clang would convert it into a word loop since Operand&lt;bool&gt; is equivalent to FastBitVector but I guess I was misremembering.

&gt;&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:167
&gt;&gt; +                node-&gt;origin.exitOK &amp;= exitValid;
&gt; 
&gt; isn&apos;t this gonna just lead to us marking a bunch fo stuff that needs to exit as exitInvalid? I&apos;m kinda not believing in what&apos;s preventing that from happening

No, if something needed exit then mayExit should have returned !DoesNotExit so the above assert would have failed.

&gt;&gt; Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:170
&gt;&gt; +                    currentZombies.operand(node-&gt;unlinkedOperand()) = true;
&gt; 
&gt; shouldn&apos;t a MovHint to this local set this to false?

I expected it would be handled on by the forAllKilledOperands on the next iteration of the loop but it appears you are correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682565</commentid>
    <comment_count>8</comment_count>
      <attachid>407166</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-08-24 21:32:51 -0700</bug_when>
    <thetext>Created attachment 407166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682566</commentid>
    <comment_count>9</comment_count>
      <attachid>407167</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-08-24 21:35:10 -0700</bug_when>
    <thetext>Created attachment 407167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682704</commentid>
    <comment_count>10</comment_count>
      <attachid>407167</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-08-25 10:44:36 -0700</bug_when>
    <thetext>Comment on attachment 407167
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:14
&gt; +        Relaxing our criteria revealed a number of bugs however. Which I

nit: I get what you&apos;re trying to say here, but I think we&apos;re strengthening our criteria, not relaxing it.

&gt; Source/JavaScriptCore/ChangeLog:21
&gt; +        Second, OpGetScope, should not mark it&apos;s first argument as used

it&apos;s =&gt; its

&gt; Source/JavaScriptCore/ChangeLog:30
&gt; +        since it&apos;s not. This is problematic because we could have a loop
&gt; +        where OpGetScope is the first bytecode, namely when doing tail
&gt; +        recursive inlining. If we were in that position, there could be a
&gt; +        local that was used at a merge point at the loop backedge that had
&gt; +        two MovHint defs from both predecessors. When we do CPS conversion
&gt; +        those two defs will be seen as different variables. Then during
&gt; +        SSA conversion we won&apos;t insert a phi connecting, making the
&gt; +        argument to OpGetScope unrecoverable as we never PutStacked the
&gt; +        values.

this would all be a lot easier to understand with an IR graph</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683215</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-26 17:10:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/67838875&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683402</commentid>
    <comment_count>12</comment_count>
      <attachid>407412</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-08-27 09:33:04 -0700</bug_when>
    <thetext>Created attachment 407412
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683418</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-27 10:10:24 -0700</bug_when>
    <thetext>Committed r266242: &lt;https://trac.webkit.org/changeset/266242&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407412.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683511</commentid>
    <comment_count>14</comment_count>
      <attachid>407412</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-27 16:05:54 -0700</bug_when>
    <thetext>Comment on attachment 407412
Patch for landing

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

&gt; Source/JavaScriptCore/dfg/DFGSSACalculator.cpp:118
&gt; +    out.print(&quot;], \nDefs: [&quot;);

Trailing space before newline?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683513</commentid>
    <comment_count>15</comment_count>
      <attachid>407412</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-08-27 16:12:48 -0700</bug_when>
    <thetext>Comment on attachment 407412
Patch for landing

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGSSACalculator.cpp:118
&gt;&gt; +    out.print(&quot;], \nDefs: [&quot;);
&gt; 
&gt; Trailing space before newline?

Fair enough, not sure how much it matters since this is debugging code anyway.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406893</attachid>
            <date>2020-08-19 17:26:10 -0700</date>
            <delta_ts>2020-08-19 17:29:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215672-20200819172609.patch</filename>
            <type>text/plain</type>
            <size>17698</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Njg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MWQwNTI0OTdhZmMzODBhNWViYWE1YzUwY2JhODAwOWI1ZjVhMTRiLi41YjIyNjJkMjg2NjJlZWVh
NWU2OGZlNjI3MzMxOWVhMmRmMThhNzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAyMC0wOC0xOSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBPU1IgYXZhaWxhYmlsaXR5IHZhbGlkYXRpb24gc2hvdWxkIHJ1biBm
b3IgYW55IG5vZGUgd2l0aCBleGl0T0sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNTY3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEN1cnJlbnRseSB3ZSBvbmx5IHZhbGlkYXRlIE9TUiBleGl0IGF2YWls
YWJpbGl0eSBpZiBhIG5vZGUgd291bGQKKyAgICAgICAgc2F5IGBtYXlFeGl0KGdyYXBoLCBub2Rl
KSAhPSBEb2VzTm90RXhpdGAgYW5kIHRoZSBub2RlIGlzIG1hcmtlZAorICAgICAgICBhcyBleGl0
T0suIEhvd2V2ZXIsIGl0IHdvdWxkIGJlIHBlcmZlY3RseSB2YWxpZCB0byBpbnNlcnQgYSBub2Rl
CisgICAgICAgIHRoYXQgZXhpdHMgYW55d2hlcmUgd2UgaGF2ZSBhIG5vZGUgbWFya2VkIGV4aXRP
Sy4gU28gdGhpcyBwYXRjaAorICAgICAgICBsb29zZW5zIHRoZSBjcml0ZXJpYSBuZWVkZWQgZm9y
IHVzIHRvIHZhbGlkYXRlIGF2YWlsYWJpbGl0eS4KKworICAgICAgICBSZWxheGluZyBvdXIgY3Jp
dGVyaWEgcmV2ZWFsZWQgYSBudW1iZXIgb2YgYnVncyBob3dldmVyLiBXaGljaCBJCisgICAgICAg
IHdpbGwgZGVzY3JpYmUgYmVsb3cgaW4gSU1PIGluY3JlYXNpbmcgY29tcGxleGl0eS9zdWJ0bHku
CisKKyAgICAgICAgRmlyc3QsIE9wR2V0U2NvcGUsIHNob3VsZCBub3QgbWFyayBpdCdzIGZpcnN0
IGFyZ3VtZW50IGFzIHVzZWQKKyAgICAgICAgc2luY2UgaXQncyBub3QuIFRoaXMgaXMgcHJvYmxl
bWF0aWMgYmVjYXVzZSB3ZSBjb3VsZCBoYXZlIGEgbG9vcAorICAgICAgICB3aGVyZSBPcEdldFNj
b3BlIGlzIHRoZSBmaXJzdCBieXRlY29kZSwgbmFtZWx5IHdoZW4gZG9pbmcgdGFpbAorICAgICAg
ICByZWN1cnNpdmUgaW5saW5pbmcuCisKKyAgICAgICAgU2Vjb25kLCB3ZSBjdXJyZW50bHkgZG9u
J3QgbWFyayBhcml0eSBmaXh1cCBkdXJpbmcgaW5saW5pbmcgYXMgbm90CisgICAgICAgIGV4aXRP
Sy4gSG93ZXZlciwgc2luY2Ugb3VyIGFyaXR5IGNvZGUgc2F5cyBpdHMgY29kZSBvcmlnaW4gaXMK
KyAgICAgICAgT3BFbnRlciwgd2UgYXNzdW1lIGFyaXR5IGZpeHVwIGhhcyBhbHJlYWR5IGhhcHBl
bmVkLgorCisgICAgICAgIFRoaXJkLCBNb3ZIaW50IHJlbW92YWwgcGhhc2UgaGFkIGEgYnVnIHdo
ZXJlIGl0IHdvdWxkIG5vdCBtYXJrCisgICAgICAgIHNlY3Rpb25zIHdoZXJlIGEgem9tYmllZCBN
b3ZIaW50IGhhcyB5ZXQgdG8gYmUga2lsbGVkIGFzIG5vdAorICAgICAgICBleGl0T0suIFNvIGlu
IHRoZW9yeSBhbm90aGVyIHBoYXNlIGNvdWxkIGNvbWUgYWxvbmcgYW5kIGluc2VydCBhbgorICAg
ICAgICBleGl0aW5nIG5vZGUgdGhlcmUuCisKKyAgICAgICAgRm91cnRoLCBNb3ZIaW50IHJlbW92
YWwgcGhhc2UgaGFkIGEgc2Vjb25kIGJ1ZyB3aGVyZSBhIE1vdkhpbnQKKyAgICAgICAgdGhhdCB3
YXMgbm90IGtpbGxlZCBpbiB0aGUgY3VycmVudCBibG9jayB3b3VsZCBiZSB6b21iaWVkLCB3aGlj
aAorICAgICAgICBpcyB3cm9uZyBmb3IgU1NBLiBJdCdzIHdyb25nIGJlY2F1c2UgdGhlIE1vdkhp
bnRlZCB2YWx1ZSBjb3VsZAorICAgICAgICBzdGlsbCBiZSBsaXZlIGZvciBPU1IgZXhpdCBpbiBh
IHN1Y2Nlc3NvciBibG9jay4KKworICAgICAgICBMYXN0bHksIHRoaXMgcGF0Y2ggYWRkcyBzb21l
IG5ldyB2ZXJib3NlIG9wdGlvbnMgYXMgd2VsbCBhcyB0aGUgYWJpbGl0eSB0bworICAgICAgICBk
dW1wIGEgREZHOjpCYXNpY0Jsb2NrIHdpdGhvdXQgZGVyZWZlcmVuY2luZyBpdC4KKworICAgICAg
ICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVz
ZXNGb3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgICogZGZnL0RGR0Jhc2ljQmxvY2suY3Bw
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHQmFzaWNC
bG9jay5oOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmlubGluZUNhbGwpOgorICAgICAgICAqIGRmZy9ERkdD
UFNSZXRocmVhZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDUFNSZXRocmVhZGlu
Z1BoYXNlOjpwcm9wYWdhdGVQaGlzKToKKyAgICAgICAgKiBkZmcvREZHRXBvY2guaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpFcG9jaDo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgICogZGZn
L0RGR01vdkhpbnRSZW1vdmFsUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JBdmFpbGFi
aWxpdHlBbmFseXNpc1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JBdmFpbGFiaWxp
dHlBbmFseXNpc1BoYXNlOjpydW4pOgorICAgICAgICAqIGRmZy9ERkdTU0FDYWxjdWxhdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTU0FDYWxjdWxhdG9yOjpkdW1wIGNvbnN0KToKKwogMjAy
MC0wOC0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBPU1JBdmFpbGFiaWxpdHlBbmFseXNpcyBzaG91bGRuJ3QgbWFyayBHZXRTdGFjayBub2RlcyBk
aXJlY3RseSBhcyB2YWxpZCBwbGFjZXMgZm9yIHJlY292ZXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcAppbmRleCA1ZjU4NjU4YTJlNmIx
ZTQ0NmQ4M2EyMTAwMDI4NTNlYjIzOGNjNDFiLi5hYmMwZjIwMGJlNWZmMjI3MGVmMjkwZjUyOTFj
NDMyM2RlOTZmOThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVVc2VEZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZVVzZURlZi5jcHAKQEAgLTEwMCw5ICsxMDAsOSBAQCB2b2lkIGNvbXB1dGVVc2VzRm9y
Qnl0ZWNvZGVJbmRleEltcGwoVmlydHVhbFJlZ2lzdGVyIHNjb3BlUmVnaXN0ZXIsIGNvbnN0IElu
c3RydQogICAgIGNhc2Ugb3BfdW5yZWFjaGFibGU6CiAgICAgY2FzZSBvcF9zdXBlcl9zYW1wbGVy
X2JlZ2luOgogICAgIGNhc2Ugb3Bfc3VwZXJfc2FtcGxlcl9lbmQ6CisgICAgY2FzZSBvcF9nZXRf
c2NvcGU6CiAgICAgICAgIHJldHVybjsKIAotICAgIFVTRVMoT3BHZXRTY29wZSwgZHN0KQogICAg
IFVTRVMoT3BUb1RoaXMsIHNyY0RzdCkKICAgICBVU0VTKE9wQ2hlY2tUZHosIHRhcmdldFZpcnR1
YWxSZWdpc3RlcikKICAgICBVU0VTKE9wSWRlbnRpdHlXaXRoUHJvZmlsZSwgc3JjRHN0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Jsb2NrLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5jcHAKaW5kZXggOTMwNjU5OWRi
ZmEwZDM0NWJjN2M4MTZjZDllYmJhOWE2OWI5MTQ2Ny4uOTI0ZjZkNDNjNDY5YzYwZGU1MWZhNjhh
ODI4MjZlNGFjYTUzMzA1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCYXNpY0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2lj
QmxvY2suY3BwCkBAIC0xNTAsNSArMTUwLDE0IEBAIEJhc2ljQmxvY2s6OlNTQURhdGE6On5TU0FE
YXRhKCkgeyB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAorbmFtZXNwYWNlIFdURiB7
CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OkRGRzo6QmFzaWNC
bG9jayogYmxvY2spCit7CisgICAgb3V0LnByaW50KCpibG9jayk7Cit9CisKK30KKwogI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Jhc2ljQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNC
bG9jay5oCmluZGV4IGQyYzVhZTljMTNmM2I0ZTc3OWY5OGExNGMxNzAzN2Q5OGY5NmQ5YWEuLjJj
OGE2MTM2ZjM1ODEyZjBkYmU5ZWMyNWU4MWVmZDI3YWYwMTNiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oCkBAIC0yNzUsNCArMjc1LDggQEAgc3RhdGljIGlu
bGluZSBCYXNpY0Jsb2NrKiBibG9ja0ZvckJ5dGVjb2RlSW5kZXgoVmVjdG9yPEJhc2ljQmxvY2sq
PiYgbGlua2luZ1RhcmcKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCituYW1lc3BhY2Ug
V1RGIHsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6REZHOjpCYXNpY0Js
b2NrKik7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggYWM0Nzc1ODRiNDg3MDVl
NzMxMTQ3ZjhkY2YwZGY3NzQxODRhZGIzMS4uNjE0NzhiZjc3NjNiNjk3NWM3Njg2NjM2NGNlYzkx
ZGMxY2FhOTFiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTE3MjIsNiArMTcyMiw5IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6Omlu
bGluZUNhbGwoTm9kZSogY2FsbFRhcmdldE5vZGUsIE9wZXJhbmQgcmVzdWx0LCBDYWxsVmFyaWFu
CiAgICAgQnl0ZWNvZGVJbmRleCBvbGRJbmRleCA9IG1fY3VycmVudEluZGV4OwogICAgIG1fY3Vy
cmVudEluZGV4ID0gQnl0ZWNvZGVJbmRleCgwKTsKIAorICAgIC8vIFdlIGRvbid0IHdhbnQgdG8g
ZXhpdCBoZXJlIHNpbmNlIHdlIGNvdWxkIGRvIHRoaW5ncyBsaWtlIGFyaXR5IGZpeHVwIHdoaWNo
IGNvbXBsaWNhdGVzIE9TUiBleGl0IGF2YWlsYWJpbGl0eS4KKyAgICBtX2V4aXRPSyA9IGZhbHNl
OworCiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBJbmxpbmVDYWxsRnJhbWU6OkdldHRl
ckNhbGw6CiAgICAgY2FzZSBJbmxpbmVDYWxsRnJhbWU6OlNldHRlckNhbGw6IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NQU1JldGhyZWFkaW5nUGhhc2UuY3BwCmlu
ZGV4IDdlMGM4ZjNlYWRiOWYwMDEwZTdmMjZhYzg5YWJjMzU4ZTVkYTg2YjkuLmIwOTAyY2RiNzNh
YzM1YTk2MmJiN2E0MWJhMjcyMGM3MDU2NWJjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDUFNSZXRocmVhZGluZ1BoYXNlLmNwcApAQCAtMzUsNiArMzUsNyBA
QAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBDUFNSZXRocmVhZGlu
Z1BoYXNlIDogcHVibGljIFBoYXNlIHsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogcHVibGljOgogICAgIENQU1JldGhyZWFkaW5nUGhhc2UoR3JhcGgmIGdyYXBo
KQogICAgICAgICA6IFBoYXNlKGdyYXBoLCAiQ1BTIHJldGhyZWFkaW5nIikKQEAgLTQyNCw3ICs0
MjUsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIE5vZGUqIGN1cnJlbnRQaGkgPSBlbnRyeS5t
X3BoaTsKICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFibGUgPSBjdXJyZW50
UGhpLT52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKICAgICAgICAgICAgIHNpemVfdCBpbmRleCA9IGVu
dHJ5Lm1faW5kZXg7Ci0gICAgICAgICAgICAKKworICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsK
KyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgSXRlcmF0aW5nIG9uIHBoaSBmcm9tIGJsb2NrICIs
IGJsb2NrLCAiICIpOworICAgICAgICAgICAgICAgIG1fZ3JhcGguZHVtcChXVEY6OmRhdGFGaWxl
KCksICIiLCBjdXJyZW50UGhpKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZm9yIChz
aXplX3QgaSA9IHByZWRlY2Vzc29ycy5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgICAgICBC
YXNpY0Jsb2NrKiBwcmVkZWNlc3NvckJsb2NrID0gcHJlZGVjZXNzb3JzW2ldOwogICAgICAgICAg
ICAgICAgIApAQCAtNDMzLDExICs0MzksMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAg
ICAgdmFyaWFibGVJblByZXZpb3VzID0gYWRkUGhpPG9wZXJhbmRLaW5kPihwcmVkZWNlc3NvckJs
b2NrLCBjdXJyZW50UGhpLT5vcmlnaW4sIHZhcmlhYmxlLCBpbmRleCk7CiAgICAgICAgICAgICAg
ICAgICAgIHByZWRlY2Vzc29yQmxvY2stPnZhcmlhYmxlc0F0VGFpbC5hdEZvcjxvcGVyYW5kS2lu
ZD4oaW5kZXgpID0gdmFyaWFibGVJblByZXZpb3VzOwogICAgICAgICAgICAgICAgICAgICBwcmVk
ZWNlc3NvckJsb2NrLT52YXJpYWJsZXNBdEhlYWQuYXRGb3I8b3BlcmFuZEtpbmQ+KGluZGV4KSA9
IHZhcmlhYmxlSW5QcmV2aW91czsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0xuSWYodmVy
Ym9zZSwgIiAgICBObyB2YXJpYWJsZSBpbiBwcmVkZWNlc3NvciAiLCBwcmVkZWNlc3NvckJsb2Nr
LCAiIGNyZWF0aW5nIGEgbmV3IHBoaTogIiwgdmFyaWFibGVJblByZXZpb3VzKTsKICAgICAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhcmlhYmxlSW5Q
cmV2aW91cy0+b3AoKSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIEdldExvY2FsOgogICAg
ICAgICAgICAgICAgICAgICBjYXNlIFBoYW50b21Mb2NhbDoKICAgICAgICAgICAgICAgICAgICAg
Y2FzZSBGbHVzaDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2dMbklmKHZlcmJvc2Us
ICIgICAgVmFyaWFibGUgaW4gcHJlZGVjZXNzb3IgIiwgcHJlZGVjZXNzb3JCbG9jaywgIiAiLCB2
YXJpYWJsZUluUHJldmlvdXMsICIgbmVlZHMgdG8gYmUgZm9yd2FyZGVkIHRvIGZpcnN0IGNoaWxk
ICIsIHZhcmlhYmxlSW5QcmV2aW91cy0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIEFTU0VSVCh2YXJpYWJsZUluUHJldmlvdXMtPnZhcmlhYmxlQWNjZXNzRGF0YSgp
ID09IHZhcmlhYmxlSW5QcmV2aW91cy0+Y2hpbGQxKCktPnZhcmlhYmxlQWNjZXNzRGF0YSgpKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlSW5QcmV2aW91cyA9IHZhcmlhYmxlSW5Q
cmV2aW91cy0+Y2hpbGQxKCkubm9kZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC00NTIsNiArNDYwLDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgfHwgdmFy
aWFibGVJblByZXZpb3VzLT5vcCgpID09IFNldEFyZ3VtZW50RGVmaW5pdGVseQogICAgICAgICAg
ICAgICAgICAgICB8fCB2YXJpYWJsZUluUHJldmlvdXMtPm9wKCkgPT0gU2V0QXJndW1lbnRNYXli
ZSk7CiAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICAgICAgICAgIG1fZ3JhcGguZHVtcChXVEY6OmRhdGFGaWxlKCksICIgICAgQWRkaW5nIG5ldyB2
YXJpYWJsZSBmcm9tIHByZWRlY2Vzc29yICIsIHZhcmlhYmxlSW5QcmV2aW91cyk7CisKICAgICAg
ICAgICAgICAgICBpZiAoIWN1cnJlbnRQaGktPmNoaWxkMSgpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGN1cnJlbnRQaGktPmNoaWxkcmVuLnNldENoaWxkMShFZGdlKHZhcmlhYmxlSW5QcmV2aW91
cykpOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ3OSw3ICs0OTAsNyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgLCBtX3BoaShwaGkpCiAgICAgICAgIHsKICAgICAgICAgfQot
ICAgICAgICAKKwogICAgICAgICBCYXNpY0Jsb2NrKiBtX2Jsb2NrOwogICAgICAgICBzaXplX3Qg
bV9pbmRleDsKICAgICAgICAgTm9kZSogbV9waGk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Vwb2NoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Vw
b2NoLmgKaW5kZXggZjgwOTAzMTY5MDQ0NWQ5Yjc4Nzk0OTMxMjM4YjFjMmRhNTQyYmRkNS4uMjNl
NDQ0Nzc0NTIwOGQyNzNmOTkwZWY3NTgxZmZlMTJiZWVkOTY2NiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdFcG9jaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRXBvY2guaApAQCAtNjMsNiArNjMsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgcmV0dXJuIG1fZXBvY2ggPT0gc19ub25lOwogICAgIH0KKworICAgIGV4cGxpY2l0IG9wZXJh
dG9yIGJvb2woKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEhKnRoaXM7CisgICAgfQog
ICAgIAogICAgIEVwb2NoIG5leHQoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTW92SGludFJlbW92YWxQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR01vdkhpbnRSZW1vdmFsUGhhc2UuY3BwCmluZGV4IGNjOGY5ZTE3
NWRmYTljYThjMDhlNWM3MjAzOGM2NDRmMWRlYjdjMmQuLjIxZDg1NGYyZTMwYWFjOWE2OTg5ZWUx
MmE0ZmNmYWU5NmE1YTFjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTW92SGludFJlbW92YWxQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdNb3ZIaW50UmVtb3ZhbFBoYXNlLmNwcApAQCAtNDAsMTEgKzQwLDggQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBuYW1lc3BhY2UgewogCi1uYW1lc3BhY2UgREZHTW92
SGludFJlbW92YWxQaGFzZUludGVybmFsIHsKLXN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7Ci19Ci0KIGNsYXNzIE1vdkhpbnRSZW1vdmFsUGhhc2UgOiBwdWJsaWMgUGhhc2Ug
eworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiBwdWJsaWM6CiAg
ICAgTW92SGludFJlbW92YWxQaGFzZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgIDogUGhhc2UoZ3Jh
cGgsICJNb3ZIaW50IHJlbW92YWwiKQpAQCAtNTUsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgYm9vbCBydW4oKQogICAgIHsKLSAgICAgICAgaWYgKERGR01vdkhpbnRSZW1vdmFsUGhhc2VJ
bnRlcm5hbDo6dmVyYm9zZSkgeworICAgICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICAgICAg
ZGF0YUxvZygiR3JhcGggYmVmb3JlIE1vdkhpbnQgcmVtb3ZhbDpcbiIpOwogICAgICAgICAgICAg
bV9ncmFwaC5kdW1wKCk7CiAgICAgICAgIH0KQEAgLTY5LDcgKzY2LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICB2b2lkIGhhbmRsZUJsb2NrKEJhc2ljQmxvY2sqIGJsb2NrKQogICAgIHsKLSAg
ICAgICAgaWYgKERGR01vdkhpbnRSZW1vdmFsUGhhc2VJbnRlcm5hbDo6dmVyYm9zZSkKKyAgICAg
ICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJIYW5kaW5nIGJsb2NrICIsIHBv
aW50ZXJEdW1wKGJsb2NrKSwgIlxuIik7CiAgICAgICAgIAogICAgICAgICAvLyBBIE1vdkhpbnQg
aXMgdW5uZWNlc3NhcnkgaWYgdGhlIGxvY2FsIGRpZXMgYmVmb3JlIGl0IGlzIHVzZWQuIFdlIGFu
c3dlciB0aGlzIHF1ZXN0aW9uIGJ5CkBAIC04NywyMyArODQsMjQgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICBtX3N0YXRlLm9wZXJhbmQocmVnKSA9IGN1cnJlbnRFcG9jaDsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICAKLSAgICAgICAgaWYgKERGR01vdkhpbnRSZW1vdmFsUGhhc2VJbnRl
cm5hbDo6dmVyYm9zZSkKKyAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9n
KCIgICAgTG9jYWxzIGF0ICIsIGJsb2NrLT50ZXJtaW5hbCgpLT5vcmlnaW4uZm9yRXhpdCwgIjog
IiwgbV9zdGF0ZSwgIlxuIik7CiAgICAgICAgIAogICAgICAgICAvLyBBc3N1bWUgdGhhdCBibG9j
a3MgYWZ0ZXIgdXMgZXhpdC4KICAgICAgICAgY3VycmVudEVwb2NoLmJ1bXAoKTsKICAgICAgICAg
CisgICAgICAgIGJvb2wgY2hhbmdlZFRoaXNCbG9jayA9IGZhbHNlOwogICAgICAgICBmb3IgKHVu
c2lnbmVkIG5vZGVJbmRleCA9IGJsb2NrLT5zaXplKCk7IG5vZGVJbmRleC0tOykgewogICAgICAg
ICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOwogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBNb3ZIaW50KSB7CiAgICAgICAgICAgICAgICAg
RXBvY2ggbG9jYWxFcG9jaCA9IG1fc3RhdGUub3BlcmFuZChub2RlLT51bmxpbmtlZE9wZXJhbmQo
KSk7Ci0gICAgICAgICAgICAgICAgaWYgKERGR01vdkhpbnRSZW1vdmFsUGhhc2VJbnRlcm5hbDo6
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAg
ICAgZGF0YUxvZygiICAgIEF0ICIsIG5vZGUsICIgKCIsIG5vZGUtPnVubGlua2VkT3BlcmFuZCgp
LCAiKTogY3VycmVudCA9ICIsIGN1cnJlbnRFcG9jaCwgIiwgbG9jYWwgPSAiLCBsb2NhbEVwb2No
LCAiXG4iKTsKLSAgICAgICAgICAgICAgICBpZiAoIWxvY2FsRXBvY2ggfHwgbG9jYWxFcG9jaCA9
PSBjdXJyZW50RXBvY2gpIHsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxFcG9jaCAmJiBsb2Nh
bEVwb2NoID09IGN1cnJlbnRFcG9jaCkgewogICAgICAgICAgICAgICAgICAgICBub2RlLT5zZXRP
cEFuZERlZmF1bHRGbGFncyhab21iaWVIaW50KTsKICAgICAgICAgICAgICAgICAgICAgbm9kZS0+
Y2hpbGQxKCkgPSBFZGdlKCk7Ci0gICAgICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7
CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWRUaGlzQmxvY2sgPSB0cnVlOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBtX3N0YXRlLm9wZXJhbmQobm9kZS0+dW5saW5rZWRP
cGVyYW5kKCkpID0gRXBvY2goKTsKICAgICAgICAgICAgIH0KQEAgLTExNywxNSArMTE1LDY0IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIFsmXSAoT3BlcmFuZCBvcGVyYW5kKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGEgYml0IHNsb3BweSAt
IGl0IG1pZ2h0IGNsYWltIHRvIGtpbGwgYSBsb2NhbCBldmVuIGlmCiAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBpdCdzIHN0aWxsIGxpdmUgYWZ0ZXIuIFdlIG5lZWQgdG8gcHJvdGVjdCBhZ2Fp
bnN0IHRoYXQuCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFtX3N0YXRlLm9wZXJhbmQo
b3BlcmFuZCkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9zdGF0ZS5vcGVyYW5kKG9w
ZXJhbmQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERGR01vdkhpbnRSZW1v
dmFsUGhhc2VJbnRlcm5hbDo6dmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2
ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBLaWxsZWQg
b3BlcmFuZCBhdCAiLCBub2RlLCAiOiAiLCBvcGVyYW5kLCAiXG4iKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fc3RhdGUub3BlcmFuZChvcGVyYW5kKSA9IGN1cnJlbnRFcG9jaDsKICAgICAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICBp
ZiAoY2hhbmdlZFRoaXNCbG9jaykgeworICAgICAgICAgICAgLy8gV2UgbWF5IGhhdmUgbWFkZSB0
aGUgZ3JhcGggaW52YWxpZCB3aXRoIHRoZSBhYm92ZSB0cmFuc2Zvcm1hdGlvbi4gSXQncyBwb3Nz
aWJsZSB0aGF0IHdlIGhhdmUgYSBub2RlIG1hcmtlZCBleGl0T0sgb24gd2hpbGUgdGhlcmUncyBh
biBvcGVyYW5kIHdlIGhhdmUgWm9tYmllSGludGVkIGxpdmUgaW4gYnl0ZWNvZGUuIElmIHdlIHRy
YW5zZm9ybSBvdXIgZ3JhcGggdG8gaW5zZXJ0IHNvbWV0aGluZyBhdCB0aGF0IHBvaW50IHdlIHdp
bGwgbm8gbG9uZ2VyIGhhdmUgYWxsIHRoZSBpbmZvcm1hdGlvbiB3ZSBuZWVkIHRvIE9TUi4gRm9y
IGV4YW1wbGUsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgYmxvY2s6CisgICAgICAgICAgICAvLyAu
Li4KKyAgICAgICAgICAgIC8vIEAyIE1vdkhpbnQoQDAsIGxvYzEsIGJjIzEsIEV4aXRJbnZhbGlk
KQorICAgICAgICAgICAgLy8gQDMgS2lsbFN0YWNrKGxvYzEsIGJjIzIsIEV4aXRWYWxpZCkKKyAg
ICAgICAgICAgIC8vIEA0IE1vdkhpbnQoQDEsIGxvYzEsIGJjIzIsIEV4aXRJbnZhbGlkKQorICAg
ICAgICAgICAgLy8gLi4uCisgICAgICAgICAgICAvLyBUaGUgYWJvdmUgdHJhbnNmb3JtYXRpb24g
d2lsbCBjb252ZXJ0IHRoaXMgdG86CisgICAgICAgICAgICAvLyAuLi4KKyAgICAgICAgICAgIC8v
IEAyIFpvbWJpZUhpbnQobG9jMSwgYmMjMSwgRXhpdEludmFsaWQpCisgICAgICAgICAgICAvLyBA
MyBLaWxsU3RhY2sobG9jMSwgYmMjMiwgRXhpdFZhbGlkKQorICAgICAgICAgICAgLy8gQDQgTW92
SGludChAMSwgbG9jMSwgYmMjMiwgRXhpdEludmFsaWQpCisgICAgICAgICAgICAvLyAuLi4KKyAg
ICAgICAgICAgIC8vIEJ1dCBpdCB3b3VsZCBiZSBwZXJmZWN0bHkgdmFsaWQgdG8gbGF0ZXIgaW5z
ZXJ0IHNvbWUgZXhpdGluZyBub2RlIGJldHdlZW4gQDIgYW5kIEAzLiBXZSBubyBsb25nZXIgaGF2
ZSBhdmFpbGFiaWxpdHkgZm9yIGxvYzEgYXQgdGhhdCBwb2ludCwgaG93ZXZlciwgdGh1cyB3ZSBu
ZWVkIHRvIG1hcmsgQDMgYXMgRXhpdEludmFsaWQgc28gd2UgZG9uJ3QgZG8gdGhhdC4KKyAgICAg
ICAgICAgIGJvb2wgZXhpdFZhbGlkID0gdHJ1ZTsKKyAgICAgICAgICAgIE9wZXJhbmRzPGJvb2w+
IGN1cnJlbnRab21iaWVzKE9wZXJhbmRzTGlrZSwgbV9ncmFwaC5ibG9jaygwKS0+dmFyaWFibGVz
QXRIZWFkKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgbm9kZUluZGV4ID0gMDsgbm9kZUlu
ZGV4IDwgYmxvY2stPnNpemUoKTsgKytub2RlSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBOb2Rl
KiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRleCk7CisKKyAgICAgICAgICAgICAgICBpZiAobm9k
ZUluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgZGlkS2lsbFpvbWJpZSA9IGZhbHNl
OworICAgICAgICAgICAgICAgICAgICBmb3JBbGxLaWxsZWRPcGVyYW5kcyhtX2dyYXBoLCBibG9j
ay0+YXQobm9kZUluZGV4IC0gMSksIG5vZGUsIFsmXSAoT3BlcmFuZCBvcGVyYW5kKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFpvbWJpZXMub3BlcmFuZChvcGVyYW5kKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEtpbGxab21iaWUgPSB0cnVlOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRab21iaWVzLm9wZXJhbmQob3BlcmFuZCkg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChkaWRLaWxsWm9tYmllKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBleGl0VmFsaWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdXJyZW50Wm9tYmllcy5zaXplKCk7ICsraSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGl0VmFsaWQgJj0gIWN1cnJlbnRab21iaWVzW2ldOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgaWYgKHZlcmJvc2UgJiYgbm9kZS0+b3JpZ2luLmV4aXRPSyAmJiAhZXhpdFZhbGlkKQorICAg
ICAgICAgICAgICAgICAgICBkYXRhTG9nTG4oIiAgICBBdCAiLCBub2RlLCAiIGZsaXBwaW5nIHRv
IEV4aXRJbnZhbGlkIGJlY2F1c2UgbG9jYWwgaXMgaW4gem9tYmllIHN0YXRlLiBsb2NhbHM6ICIs
IGN1cnJlbnRab21iaWVzKTsKKworICAgICAgICAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwg
bm9kZSwgZXhpdFZhbGlkIHx8IG1heUV4aXQobV9ncmFwaCwgbm9kZSkgPT0gRG9lc05vdEV4aXQp
OworCisgICAgICAgICAgICAgICAgbm9kZS0+b3JpZ2luLmV4aXRPSyAmPSBleGl0VmFsaWQ7Cisg
ICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gWm9tYmllSGludCkgeworICAgICAgICAg
ICAgICAgICAgICBkYXRhTG9nTG5JZih2ZXJib3NlLCAiICAgIE9wZXJhbmQgIiwgbm9kZS0+dW5s
aW5rZWRPcGVyYW5kKCksICIgaGFzIGJlZW4gem9tYmlmaWVkIGF0ICIsIG5vZGUpOworICAgICAg
ICAgICAgICAgICAgICBjdXJyZW50Wm9tYmllcy5vcGVyYW5kKG5vZGUtPnVubGlua2VkT3BlcmFu
ZCgpKSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGV4aXRWYWxpZCA9IGZhbHNlOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtX2NoYW5n
ZWQgfD0gY2hhbmdlZFRoaXNCbG9jazsKICAgICB9CiAgICAgCiAgICAgT3BlcmFuZHM8RXBvY2g+
IG1fc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2
YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcAppbmRleCBmOWIyYTQ2N2M1OWZlODQ2
YjJmYjEzODQzNjVmYTNjMmQ0NjExYmEzLi5mOWMzOTEwYjRiZWFlYzk0YzZhMDI1NzYyYThmMjM1
Y2E3ZGU2MGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2
YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAKQEAgLTEzMyw4ICsxMzMsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9jay0+c2l6ZSgpOyArK25vZGVJbmRleCkg
ewogICAgICAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRleCk7
Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgbWF5RXhpdCBzdGF0dXMgb2YgYSBu
b2RlIGRvZXNuJ3Qgc2VlbSBsaWtlIGl0IHNob3VsZCBtZWFuIHdlIGRvbid0IG5lZWQgdG8gaGF2
ZSBldmVyeXRoaW5nIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICAgICAgICAgaWYgKG1heUV4aXQo
bV9ncmFwaCwgbm9kZSkgIT0gRG9lc05vdEV4aXQgJiYgbm9kZS0+b3JpZ2luLmV4aXRPSykgewor
ICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3JpZ2luLmV4aXRPSykgewogICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgYWxsb3dlZCB0byBleGl0IGhlcmUsIHRoZSBoZWFw
IG11c3QgYmUgaW4gYSBzdGF0ZQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlcmUgZXhp
dGluZyB3b3VsZG4ndCBjcmFzaC4gVGhlc2UgcGFydGljdWxhciBmaWVsZHMgYXJlCiAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyByZXF1aXJlZCBmb3IgY29ycmVjdG5lc3MgYmVjYXVzZSB3ZSB1
c2UgdGhlbSBkdXJpbmcgT1NSIGV4aXQKQEAgLTE0Miw3ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyB0byBiZSBkZWFkLgogCiAgICAgICAgICAgICAgICAgICAg
ICAgICBDb2RlT3JpZ2luIGV4aXRPcmlnaW4gPSBub2RlLT5vcmlnaW4uZm9yRXhpdDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIEF2YWlsYWJpbGl0eU1hcCYgYXZhaWxhYmlsaXR5TWFwID0gY2Fs
Y3VsYXRvci5tX2F2YWlsYWJpbGl0eTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEF2YWlsYWJp
bGl0eU1hcCBhdmFpbGFiaWxpdHlNYXAgPSBjYWxjdWxhdG9yLm1fYXZhaWxhYmlsaXR5OwogICAg
ICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5TWFwLnBydW5lQnlMaXZlbmVzcyhtX2dy
YXBoLCBleGl0T3JpZ2luKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChhdXRvIGhl
YXBQYWlyIDogYXZhaWxhYmlsaXR5TWFwLm1faGVhcCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDYWxjdWxhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU1NBQ2FsY3VsYXRvci5jcHAKaW5kZXggYjJmZjRhYzY4OTYwYWJhMGI5NmRk
MDhhOTkyMGYxODRhY2E2ZTRjYS4uNjY5OWM5MGYxNDUxNzNmOTQzNGIyNzZhY2JlNzVmZjVmOWUy
NTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDYWxjdWxh
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNhbGN1bGF0b3Iu
Y3BwCkBAIC0xMTUsMTYgKzExNSwxNiBAQCB2b2lkIFNTQUNhbGN1bGF0b3I6OmR1bXAoUHJpbnRT
dHJlYW0mIG91dCkgY29uc3QKICAgICAgICAgb3V0LnByaW50KGNvbW1hKTsKICAgICAgICAgbV92
YXJpYWJsZXNbaV0uZHVtcFZlcmJvc2Uob3V0KTsKICAgICB9Ci0gICAgb3V0LnByaW50KCJdLCBE
ZWZzOiBbIik7CisgICAgb3V0LnByaW50KCJdLCBcbkRlZnM6IFsiKTsKICAgICBjb21tYSA9IENv
bW1hUHJpbnRlcigpOwogICAgIGZvciAoRGVmKiBkZWYgOiBjb25zdF9jYXN0PFNTQUNhbGN1bGF0
b3IqPih0aGlzKS0+bV9kZWZzKQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICpkZWYpOwotICAg
IG91dC5wcmludCgiXSwgUGhpczogWyIpOworICAgIG91dC5wcmludCgiXSwgXG5QaGlzOiBbIik7
CiAgICAgY29tbWEgPSBDb21tYVByaW50ZXIoKTsKICAgICBmb3IgKERlZiogZGVmIDogY29uc3Rf
Y2FzdDxTU0FDYWxjdWxhdG9yKj4odGhpcyktPm1fcGhpcykKICAgICAgICAgb3V0LnByaW50KGNv
bW1hLCAqZGVmKTsKLSAgICBvdXQucHJpbnQoIl0sIEJsb2NrIGRhdGE6IFsiKTsKLSAgICBjb21t
YSA9IENvbW1hUHJpbnRlcigpOworICAgIG91dC5wcmludCgiXSwgXG5CbG9jayBkYXRhOiBbIik7
CisgICAgY29tbWEgPSBDb21tYVByaW50ZXIoIixcbiIpOwogICAgIGZvciAoQmxvY2tJbmRleCBi
bG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8IG1fZ3JhcGgubnVtQmxvY2tzKCk7ICsrYmxvY2tJ
bmRleCkgewogICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJ
bmRleCk7CiAgICAgICAgIGlmICghYmxvY2spCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406894</attachid>
            <date>2020-08-19 17:29:30 -0700</date>
            <delta_ts>2020-08-24 21:32:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215672-20200819172930.patch</filename>
            <type>text/plain</type>
            <size>17868</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Njg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MWQwNTI0OTdhZmMzODBhNWViYWE1YzUwY2JhODAwOWI1ZjVhMTRiLi41YjIyNjJkMjg2NjJlZWVh
NWU2OGZlNjI3MzMxOWVhMmRmMThhNzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAyMC0wOC0xOSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBPU1IgYXZhaWxhYmlsaXR5IHZhbGlkYXRpb24gc2hvdWxkIHJ1biBm
b3IgYW55IG5vZGUgd2l0aCBleGl0T0sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNTY3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEN1cnJlbnRseSB3ZSBvbmx5IHZhbGlkYXRlIE9TUiBleGl0IGF2YWls
YWJpbGl0eSBpZiBhIG5vZGUgd291bGQKKyAgICAgICAgc2F5IGBtYXlFeGl0KGdyYXBoLCBub2Rl
KSAhPSBEb2VzTm90RXhpdGAgYW5kIHRoZSBub2RlIGlzIG1hcmtlZAorICAgICAgICBhcyBleGl0
T0suIEhvd2V2ZXIsIGl0IHdvdWxkIGJlIHBlcmZlY3RseSB2YWxpZCB0byBpbnNlcnQgYSBub2Rl
CisgICAgICAgIHRoYXQgZXhpdHMgYW55d2hlcmUgd2UgaGF2ZSBhIG5vZGUgbWFya2VkIGV4aXRP
Sy4gU28gdGhpcyBwYXRjaAorICAgICAgICBsb29zZW5zIHRoZSBjcml0ZXJpYSBuZWVkZWQgZm9y
IHVzIHRvIHZhbGlkYXRlIGF2YWlsYWJpbGl0eS4KKworICAgICAgICBSZWxheGluZyBvdXIgY3Jp
dGVyaWEgcmV2ZWFsZWQgYSBudW1iZXIgb2YgYnVncyBob3dldmVyLiBXaGljaCBJCisgICAgICAg
IHdpbGwgZGVzY3JpYmUgYmVsb3cgaW4gSU1PIGluY3JlYXNpbmcgY29tcGxleGl0eS9zdWJ0bHku
CisKKyAgICAgICAgRmlyc3QsIE9wR2V0U2NvcGUsIHNob3VsZCBub3QgbWFyayBpdCdzIGZpcnN0
IGFyZ3VtZW50IGFzIHVzZWQKKyAgICAgICAgc2luY2UgaXQncyBub3QuIFRoaXMgaXMgcHJvYmxl
bWF0aWMgYmVjYXVzZSB3ZSBjb3VsZCBoYXZlIGEgbG9vcAorICAgICAgICB3aGVyZSBPcEdldFNj
b3BlIGlzIHRoZSBmaXJzdCBieXRlY29kZSwgbmFtZWx5IHdoZW4gZG9pbmcgdGFpbAorICAgICAg
ICByZWN1cnNpdmUgaW5saW5pbmcuCisKKyAgICAgICAgU2Vjb25kLCB3ZSBjdXJyZW50bHkgZG9u
J3QgbWFyayBhcml0eSBmaXh1cCBkdXJpbmcgaW5saW5pbmcgYXMgbm90CisgICAgICAgIGV4aXRP
Sy4gSG93ZXZlciwgc2luY2Ugb3VyIGFyaXR5IGNvZGUgc2F5cyBpdHMgY29kZSBvcmlnaW4gaXMK
KyAgICAgICAgT3BFbnRlciwgd2UgYXNzdW1lIGFyaXR5IGZpeHVwIGhhcyBhbHJlYWR5IGhhcHBl
bmVkLgorCisgICAgICAgIFRoaXJkLCBNb3ZIaW50IHJlbW92YWwgcGhhc2UgaGFkIGEgYnVnIHdo
ZXJlIGl0IHdvdWxkIG5vdCBtYXJrCisgICAgICAgIHNlY3Rpb25zIHdoZXJlIGEgem9tYmllZCBN
b3ZIaW50IGhhcyB5ZXQgdG8gYmUga2lsbGVkIGFzIG5vdAorICAgICAgICBleGl0T0suIFNvIGlu
IHRoZW9yeSBhbm90aGVyIHBoYXNlIGNvdWxkIGNvbWUgYWxvbmcgYW5kIGluc2VydCBhbgorICAg
ICAgICBleGl0aW5nIG5vZGUgdGhlcmUuCisKKyAgICAgICAgRm91cnRoLCBNb3ZIaW50IHJlbW92
YWwgcGhhc2UgaGFkIGEgc2Vjb25kIGJ1ZyB3aGVyZSBhIE1vdkhpbnQKKyAgICAgICAgdGhhdCB3
YXMgbm90IGtpbGxlZCBpbiB0aGUgY3VycmVudCBibG9jayB3b3VsZCBiZSB6b21iaWVkLCB3aGlj
aAorICAgICAgICBpcyB3cm9uZyBmb3IgU1NBLiBJdCdzIHdyb25nIGJlY2F1c2UgdGhlIE1vdkhp
bnRlZCB2YWx1ZSBjb3VsZAorICAgICAgICBzdGlsbCBiZSBsaXZlIGZvciBPU1IgZXhpdCBpbiBh
IHN1Y2Nlc3NvciBibG9jay4KKworICAgICAgICBMYXN0bHksIHRoaXMgcGF0Y2ggYWRkcyBzb21l
IG5ldyB2ZXJib3NlIG9wdGlvbnMgYXMgd2VsbCBhcyB0aGUgYWJpbGl0eSB0bworICAgICAgICBk
dW1wIGEgREZHOjpCYXNpY0Jsb2NrIHdpdGhvdXQgZGVyZWZlcmVuY2luZyBpdC4KKworICAgICAg
ICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVz
ZXNGb3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgICogZGZnL0RGR0Jhc2ljQmxvY2suY3Bw
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHQmFzaWNC
bG9jay5oOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmlubGluZUNhbGwpOgorICAgICAgICAqIGRmZy9ERkdD
UFNSZXRocmVhZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDUFNSZXRocmVhZGlu
Z1BoYXNlOjpwcm9wYWdhdGVQaGlzKToKKyAgICAgICAgKiBkZmcvREZHRXBvY2guaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpFcG9jaDo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgICogZGZn
L0RGR01vdkhpbnRSZW1vdmFsUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdPU1JBdmFpbGFi
aWxpdHlBbmFseXNpc1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JBdmFpbGFiaWxp
dHlBbmFseXNpc1BoYXNlOjpydW4pOgorICAgICAgICAqIGRmZy9ERkdTU0FDYWxjdWxhdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTU0FDYWxjdWxhdG9yOjpkdW1wIGNvbnN0KToKKwogMjAy
MC0wOC0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBPU1JBdmFpbGFiaWxpdHlBbmFseXNpcyBzaG91bGRuJ3QgbWFyayBHZXRTdGFjayBub2RlcyBk
aXJlY3RseSBhcyB2YWxpZCBwbGFjZXMgZm9yIHJlY292ZXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcAppbmRleCA1ZjU4NjU4YTJlNmIx
ZTQ0NmQ4M2EyMTAwMDI4NTNlYjIzOGNjNDFiLi5hYmMwZjIwMGJlNWZmMjI3MGVmMjkwZjUyOTFj
NDMyM2RlOTZmOThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVVc2VEZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZVVzZURlZi5jcHAKQEAgLTEwMCw5ICsxMDAsOSBAQCB2b2lkIGNvbXB1dGVVc2VzRm9y
Qnl0ZWNvZGVJbmRleEltcGwoVmlydHVhbFJlZ2lzdGVyIHNjb3BlUmVnaXN0ZXIsIGNvbnN0IElu
c3RydQogICAgIGNhc2Ugb3BfdW5yZWFjaGFibGU6CiAgICAgY2FzZSBvcF9zdXBlcl9zYW1wbGVy
X2JlZ2luOgogICAgIGNhc2Ugb3Bfc3VwZXJfc2FtcGxlcl9lbmQ6CisgICAgY2FzZSBvcF9nZXRf
c2NvcGU6CiAgICAgICAgIHJldHVybjsKIAotICAgIFVTRVMoT3BHZXRTY29wZSwgZHN0KQogICAg
IFVTRVMoT3BUb1RoaXMsIHNyY0RzdCkKICAgICBVU0VTKE9wQ2hlY2tUZHosIHRhcmdldFZpcnR1
YWxSZWdpc3RlcikKICAgICBVU0VTKE9wSWRlbnRpdHlXaXRoUHJvZmlsZSwgc3JjRHN0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Jsb2NrLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5jcHAKaW5kZXggOTMwNjU5OWRi
ZmEwZDM0NWJjN2M4MTZjZDllYmJhOWE2OWI5MTQ2Ny4uOTI0ZjZkNDNjNDY5YzYwZGU1MWZhNjhh
ODI4MjZlNGFjYTUzMzA1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCYXNpY0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2lj
QmxvY2suY3BwCkBAIC0xNTAsNSArMTUwLDE0IEBAIEJhc2ljQmxvY2s6OlNTQURhdGE6On5TU0FE
YXRhKCkgeyB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAorbmFtZXNwYWNlIFdURiB7
CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OkRGRzo6QmFzaWNC
bG9jayogYmxvY2spCit7CisgICAgb3V0LnByaW50KCpibG9jayk7Cit9CisKK30KKwogI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Jhc2ljQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNC
bG9jay5oCmluZGV4IGQyYzVhZTljMTNmM2I0ZTc3OWY5OGExNGMxNzAzN2Q5OGY5NmQ5YWEuLjJj
OGE2MTM2ZjM1ODEyZjBkYmU5ZWMyNWU4MWVmZDI3YWYwMTNiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oCkBAIC0yNzUsNCArMjc1LDggQEAgc3RhdGljIGlu
bGluZSBCYXNpY0Jsb2NrKiBibG9ja0ZvckJ5dGVjb2RlSW5kZXgoVmVjdG9yPEJhc2ljQmxvY2sq
PiYgbGlua2luZ1RhcmcKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCituYW1lc3BhY2Ug
V1RGIHsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6REZHOjpCYXNpY0Js
b2NrKik7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggYWM0Nzc1ODRiNDg3MDVl
NzMxMTQ3ZjhkY2YwZGY3NzQxODRhZGIzMS4uNjE0NzhiZjc3NjNiNjk3NWM3Njg2NjM2NGNlYzkx
ZGMxY2FhOTFiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTE3MjIsNiArMTcyMiw5IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6Omlu
bGluZUNhbGwoTm9kZSogY2FsbFRhcmdldE5vZGUsIE9wZXJhbmQgcmVzdWx0LCBDYWxsVmFyaWFu
CiAgICAgQnl0ZWNvZGVJbmRleCBvbGRJbmRleCA9IG1fY3VycmVudEluZGV4OwogICAgIG1fY3Vy
cmVudEluZGV4ID0gQnl0ZWNvZGVJbmRleCgwKTsKIAorICAgIC8vIFdlIGRvbid0IHdhbnQgdG8g
ZXhpdCBoZXJlIHNpbmNlIHdlIGNvdWxkIGRvIHRoaW5ncyBsaWtlIGFyaXR5IGZpeHVwIHdoaWNo
IGNvbXBsaWNhdGVzIE9TUiBleGl0IGF2YWlsYWJpbGl0eS4KKyAgICBtX2V4aXRPSyA9IGZhbHNl
OworCiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBJbmxpbmVDYWxsRnJhbWU6OkdldHRl
ckNhbGw6CiAgICAgY2FzZSBJbmxpbmVDYWxsRnJhbWU6OlNldHRlckNhbGw6IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NQU1JldGhyZWFkaW5nUGhhc2UuY3BwCmlu
ZGV4IDdlMGM4ZjNlYWRiOWYwMDEwZTdmMjZhYzg5YWJjMzU4ZTVkYTg2YjkuLmIwOTAyY2RiNzNh
YzM1YTk2MmJiN2E0MWJhMjcyMGM3MDU2NWJjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDUFNSZXRocmVhZGluZ1BoYXNlLmNwcApAQCAtMzUsNiArMzUsNyBA
QAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBDUFNSZXRocmVhZGlu
Z1BoYXNlIDogcHVibGljIFBoYXNlIHsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogcHVibGljOgogICAgIENQU1JldGhyZWFkaW5nUGhhc2UoR3JhcGgmIGdyYXBo
KQogICAgICAgICA6IFBoYXNlKGdyYXBoLCAiQ1BTIHJldGhyZWFkaW5nIikKQEAgLTQyNCw3ICs0
MjUsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIE5vZGUqIGN1cnJlbnRQaGkgPSBlbnRyeS5t
X3BoaTsKICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFibGUgPSBjdXJyZW50
UGhpLT52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKICAgICAgICAgICAgIHNpemVfdCBpbmRleCA9IGVu
dHJ5Lm1faW5kZXg7Ci0gICAgICAgICAgICAKKworICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsK
KyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgSXRlcmF0aW5nIG9uIHBoaSBmcm9tIGJsb2NrICIs
IGJsb2NrLCAiICIpOworICAgICAgICAgICAgICAgIG1fZ3JhcGguZHVtcChXVEY6OmRhdGFGaWxl
KCksICIiLCBjdXJyZW50UGhpKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZm9yIChz
aXplX3QgaSA9IHByZWRlY2Vzc29ycy5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgICAgICBC
YXNpY0Jsb2NrKiBwcmVkZWNlc3NvckJsb2NrID0gcHJlZGVjZXNzb3JzW2ldOwogICAgICAgICAg
ICAgICAgIApAQCAtNDMzLDExICs0MzksMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAg
ICAgdmFyaWFibGVJblByZXZpb3VzID0gYWRkUGhpPG9wZXJhbmRLaW5kPihwcmVkZWNlc3NvckJs
b2NrLCBjdXJyZW50UGhpLT5vcmlnaW4sIHZhcmlhYmxlLCBpbmRleCk7CiAgICAgICAgICAgICAg
ICAgICAgIHByZWRlY2Vzc29yQmxvY2stPnZhcmlhYmxlc0F0VGFpbC5hdEZvcjxvcGVyYW5kS2lu
ZD4oaW5kZXgpID0gdmFyaWFibGVJblByZXZpb3VzOwogICAgICAgICAgICAgICAgICAgICBwcmVk
ZWNlc3NvckJsb2NrLT52YXJpYWJsZXNBdEhlYWQuYXRGb3I8b3BlcmFuZEtpbmQ+KGluZGV4KSA9
IHZhcmlhYmxlSW5QcmV2aW91czsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0xuSWYodmVy
Ym9zZSwgIiAgICBObyB2YXJpYWJsZSBpbiBwcmVkZWNlc3NvciAiLCBwcmVkZWNlc3NvckJsb2Nr
LCAiIGNyZWF0aW5nIGEgbmV3IHBoaTogIiwgdmFyaWFibGVJblByZXZpb3VzKTsKICAgICAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhcmlhYmxlSW5Q
cmV2aW91cy0+b3AoKSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIEdldExvY2FsOgogICAg
ICAgICAgICAgICAgICAgICBjYXNlIFBoYW50b21Mb2NhbDoKICAgICAgICAgICAgICAgICAgICAg
Y2FzZSBGbHVzaDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2dMbklmKHZlcmJvc2Us
ICIgICAgVmFyaWFibGUgaW4gcHJlZGVjZXNzb3IgIiwgcHJlZGVjZXNzb3JCbG9jaywgIiAiLCB2
YXJpYWJsZUluUHJldmlvdXMsICIgbmVlZHMgdG8gYmUgZm9yd2FyZGVkIHRvIGZpcnN0IGNoaWxk
ICIsIHZhcmlhYmxlSW5QcmV2aW91cy0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIEFTU0VSVCh2YXJpYWJsZUluUHJldmlvdXMtPnZhcmlhYmxlQWNjZXNzRGF0YSgp
ID09IHZhcmlhYmxlSW5QcmV2aW91cy0+Y2hpbGQxKCktPnZhcmlhYmxlQWNjZXNzRGF0YSgpKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlSW5QcmV2aW91cyA9IHZhcmlhYmxlSW5Q
cmV2aW91cy0+Y2hpbGQxKCkubm9kZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC00NTIsNiArNDYwLDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgfHwgdmFy
aWFibGVJblByZXZpb3VzLT5vcCgpID09IFNldEFyZ3VtZW50RGVmaW5pdGVseQogICAgICAgICAg
ICAgICAgICAgICB8fCB2YXJpYWJsZUluUHJldmlvdXMtPm9wKCkgPT0gU2V0QXJndW1lbnRNYXli
ZSk7CiAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICAgICAgICAgIG1fZ3JhcGguZHVtcChXVEY6OmRhdGFGaWxlKCksICIgICAgQWRkaW5nIG5ldyB2
YXJpYWJsZSBmcm9tIHByZWRlY2Vzc29yICIsIHZhcmlhYmxlSW5QcmV2aW91cyk7CisKICAgICAg
ICAgICAgICAgICBpZiAoIWN1cnJlbnRQaGktPmNoaWxkMSgpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGN1cnJlbnRQaGktPmNoaWxkcmVuLnNldENoaWxkMShFZGdlKHZhcmlhYmxlSW5QcmV2aW91
cykpOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ3OSw3ICs0OTAsNyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgLCBtX3BoaShwaGkpCiAgICAgICAgIHsKICAgICAgICAgfQot
ICAgICAgICAKKwogICAgICAgICBCYXNpY0Jsb2NrKiBtX2Jsb2NrOwogICAgICAgICBzaXplX3Qg
bV9pbmRleDsKICAgICAgICAgTm9kZSogbV9waGk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Vwb2NoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Vw
b2NoLmgKaW5kZXggZjgwOTAzMTY5MDQ0NWQ5Yjc4Nzk0OTMxMjM4YjFjMmRhNTQyYmRkNS4uMjNl
NDQ0Nzc0NTIwOGQyNzNmOTkwZWY3NTgxZmZlMTJiZWVkOTY2NiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdFcG9jaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRXBvY2guaApAQCAtNjMsNiArNjMsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgcmV0dXJuIG1fZXBvY2ggPT0gc19ub25lOwogICAgIH0KKworICAgIGV4cGxpY2l0IG9wZXJh
dG9yIGJvb2woKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEhKnRoaXM7CisgICAgfQog
ICAgIAogICAgIEVwb2NoIG5leHQoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTW92SGludFJlbW92YWxQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR01vdkhpbnRSZW1vdmFsUGhhc2UuY3BwCmluZGV4IGNjOGY5ZTE3
NWRmYTljYThjMDhlNWM3MjAzOGM2NDRmMWRlYjdjMmQuLjIxZDg1NGYyZTMwYWFjOWE2OTg5ZWUx
MmE0ZmNmYWU5NmE1YTFjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTW92SGludFJlbW92YWxQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdNb3ZIaW50UmVtb3ZhbFBoYXNlLmNwcApAQCAtNDAsMTEgKzQwLDggQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBuYW1lc3BhY2UgewogCi1uYW1lc3BhY2UgREZHTW92
SGludFJlbW92YWxQaGFzZUludGVybmFsIHsKLXN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7Ci19Ci0KIGNsYXNzIE1vdkhpbnRSZW1vdmFsUGhhc2UgOiBwdWJsaWMgUGhhc2Ug
eworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiBwdWJsaWM6CiAg
ICAgTW92SGludFJlbW92YWxQaGFzZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgIDogUGhhc2UoZ3Jh
cGgsICJNb3ZIaW50IHJlbW92YWwiKQpAQCAtNTUsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgYm9vbCBydW4oKQogICAgIHsKLSAgICAgICAgaWYgKERGR01vdkhpbnRSZW1vdmFsUGhhc2VJ
bnRlcm5hbDo6dmVyYm9zZSkgeworICAgICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICAgICAg
ZGF0YUxvZygiR3JhcGggYmVmb3JlIE1vdkhpbnQgcmVtb3ZhbDpcbiIpOwogICAgICAgICAgICAg
bV9ncmFwaC5kdW1wKCk7CiAgICAgICAgIH0KQEAgLTY5LDcgKzY2LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICB2b2lkIGhhbmRsZUJsb2NrKEJhc2ljQmxvY2sqIGJsb2NrKQogICAgIHsKLSAg
ICAgICAgaWYgKERGR01vdkhpbnRSZW1vdmFsUGhhc2VJbnRlcm5hbDo6dmVyYm9zZSkKKyAgICAg
ICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJIYW5kaW5nIGJsb2NrICIsIHBv
aW50ZXJEdW1wKGJsb2NrKSwgIlxuIik7CiAgICAgICAgIAogICAgICAgICAvLyBBIE1vdkhpbnQg
aXMgdW5uZWNlc3NhcnkgaWYgdGhlIGxvY2FsIGRpZXMgYmVmb3JlIGl0IGlzIHVzZWQuIFdlIGFu
c3dlciB0aGlzIHF1ZXN0aW9uIGJ5CkBAIC04NywyMyArODQsMjQgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICBtX3N0YXRlLm9wZXJhbmQocmVnKSA9IGN1cnJlbnRFcG9jaDsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICAKLSAgICAgICAgaWYgKERGR01vdkhpbnRSZW1vdmFsUGhhc2VJbnRl
cm5hbDo6dmVyYm9zZSkKKyAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9n
KCIgICAgTG9jYWxzIGF0ICIsIGJsb2NrLT50ZXJtaW5hbCgpLT5vcmlnaW4uZm9yRXhpdCwgIjog
IiwgbV9zdGF0ZSwgIlxuIik7CiAgICAgICAgIAogICAgICAgICAvLyBBc3N1bWUgdGhhdCBibG9j
a3MgYWZ0ZXIgdXMgZXhpdC4KICAgICAgICAgY3VycmVudEVwb2NoLmJ1bXAoKTsKICAgICAgICAg
CisgICAgICAgIGJvb2wgY2hhbmdlZFRoaXNCbG9jayA9IGZhbHNlOwogICAgICAgICBmb3IgKHVu
c2lnbmVkIG5vZGVJbmRleCA9IGJsb2NrLT5zaXplKCk7IG5vZGVJbmRleC0tOykgewogICAgICAg
ICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOwogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBNb3ZIaW50KSB7CiAgICAgICAgICAgICAgICAg
RXBvY2ggbG9jYWxFcG9jaCA9IG1fc3RhdGUub3BlcmFuZChub2RlLT51bmxpbmtlZE9wZXJhbmQo
KSk7Ci0gICAgICAgICAgICAgICAgaWYgKERGR01vdkhpbnRSZW1vdmFsUGhhc2VJbnRlcm5hbDo6
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAg
ICAgZGF0YUxvZygiICAgIEF0ICIsIG5vZGUsICIgKCIsIG5vZGUtPnVubGlua2VkT3BlcmFuZCgp
LCAiKTogY3VycmVudCA9ICIsIGN1cnJlbnRFcG9jaCwgIiwgbG9jYWwgPSAiLCBsb2NhbEVwb2No
LCAiXG4iKTsKLSAgICAgICAgICAgICAgICBpZiAoIWxvY2FsRXBvY2ggfHwgbG9jYWxFcG9jaCA9
PSBjdXJyZW50RXBvY2gpIHsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxFcG9jaCAmJiBsb2Nh
bEVwb2NoID09IGN1cnJlbnRFcG9jaCkgewogICAgICAgICAgICAgICAgICAgICBub2RlLT5zZXRP
cEFuZERlZmF1bHRGbGFncyhab21iaWVIaW50KTsKICAgICAgICAgICAgICAgICAgICAgbm9kZS0+
Y2hpbGQxKCkgPSBFZGdlKCk7Ci0gICAgICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7
CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWRUaGlzQmxvY2sgPSB0cnVlOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBtX3N0YXRlLm9wZXJhbmQobm9kZS0+dW5saW5rZWRP
cGVyYW5kKCkpID0gRXBvY2goKTsKICAgICAgICAgICAgIH0KQEAgLTExNywxNSArMTE1LDY0IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIFsmXSAoT3BlcmFuZCBvcGVyYW5kKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGEgYml0IHNsb3BweSAt
IGl0IG1pZ2h0IGNsYWltIHRvIGtpbGwgYSBsb2NhbCBldmVuIGlmCiAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBpdCdzIHN0aWxsIGxpdmUgYWZ0ZXIuIFdlIG5lZWQgdG8gcHJvdGVjdCBhZ2Fp
bnN0IHRoYXQuCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFtX3N0YXRlLm9wZXJhbmQo
b3BlcmFuZCkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9zdGF0ZS5vcGVyYW5kKG9w
ZXJhbmQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERGR01vdkhpbnRSZW1v
dmFsUGhhc2VJbnRlcm5hbDo6dmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2
ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBLaWxsZWQg
b3BlcmFuZCBhdCAiLCBub2RlLCAiOiAiLCBvcGVyYW5kLCAiXG4iKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fc3RhdGUub3BlcmFuZChvcGVyYW5kKSA9IGN1cnJlbnRFcG9jaDsKICAgICAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICBp
ZiAoY2hhbmdlZFRoaXNCbG9jaykgeworICAgICAgICAgICAgLy8gV2UgbWF5IGhhdmUgbWFkZSB0
aGUgZ3JhcGggaW52YWxpZCB3aXRoIHRoZSBhYm92ZSB0cmFuc2Zvcm1hdGlvbi4gSXQncyBwb3Nz
aWJsZSB0aGF0IHdlIGhhdmUgYSBub2RlIG1hcmtlZCBleGl0T0sgb24gd2hpbGUgdGhlcmUncyBh
biBvcGVyYW5kIHdlIGhhdmUgWm9tYmllSGludGVkIGxpdmUgaW4gYnl0ZWNvZGUuIElmIHdlIHRy
YW5zZm9ybSBvdXIgZ3JhcGggdG8gaW5zZXJ0IHNvbWV0aGluZyBhdCB0aGF0IHBvaW50IHdlIHdp
bGwgbm8gbG9uZ2VyIGhhdmUgYWxsIHRoZSBpbmZvcm1hdGlvbiB3ZSBuZWVkIHRvIE9TUi4gRm9y
IGV4YW1wbGUsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgYmxvY2s6CisgICAgICAgICAgICAvLyAu
Li4KKyAgICAgICAgICAgIC8vIEAyIE1vdkhpbnQoQDAsIGxvYzEsIGJjIzEsIEV4aXRJbnZhbGlk
KQorICAgICAgICAgICAgLy8gQDMgS2lsbFN0YWNrKGxvYzEsIGJjIzIsIEV4aXRWYWxpZCkKKyAg
ICAgICAgICAgIC8vIEA0IE1vdkhpbnQoQDEsIGxvYzEsIGJjIzIsIEV4aXRJbnZhbGlkKQorICAg
ICAgICAgICAgLy8gLi4uCisgICAgICAgICAgICAvLyBUaGUgYWJvdmUgdHJhbnNmb3JtYXRpb24g
d2lsbCBjb252ZXJ0IHRoaXMgdG86CisgICAgICAgICAgICAvLyAuLi4KKyAgICAgICAgICAgIC8v
IEAyIFpvbWJpZUhpbnQobG9jMSwgYmMjMSwgRXhpdEludmFsaWQpCisgICAgICAgICAgICAvLyBA
MyBLaWxsU3RhY2sobG9jMSwgYmMjMiwgRXhpdFZhbGlkKQorICAgICAgICAgICAgLy8gQDQgTW92
SGludChAMSwgbG9jMSwgYmMjMiwgRXhpdEludmFsaWQpCisgICAgICAgICAgICAvLyAuLi4KKyAg
ICAgICAgICAgIC8vIEJ1dCBpdCB3b3VsZCBiZSBwZXJmZWN0bHkgdmFsaWQgdG8gbGF0ZXIgaW5z
ZXJ0IHNvbWUgZXhpdGluZyBub2RlIGJldHdlZW4gQDIgYW5kIEAzLiBXZSBubyBsb25nZXIgaGF2
ZSBhdmFpbGFiaWxpdHkgZm9yIGxvYzEgYXQgdGhhdCBwb2ludCwgaG93ZXZlciwgdGh1cyB3ZSBu
ZWVkIHRvIG1hcmsgQDMgYXMgRXhpdEludmFsaWQgc28gd2UgZG9uJ3QgZG8gdGhhdC4KKyAgICAg
ICAgICAgIGJvb2wgZXhpdFZhbGlkID0gdHJ1ZTsKKyAgICAgICAgICAgIE9wZXJhbmRzPGJvb2w+
IGN1cnJlbnRab21iaWVzKE9wZXJhbmRzTGlrZSwgbV9ncmFwaC5ibG9jaygwKS0+dmFyaWFibGVz
QXRIZWFkKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgbm9kZUluZGV4ID0gMDsgbm9kZUlu
ZGV4IDwgYmxvY2stPnNpemUoKTsgKytub2RlSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBOb2Rl
KiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRleCk7CisKKyAgICAgICAgICAgICAgICBpZiAobm9k
ZUluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgZGlkS2lsbFpvbWJpZSA9IGZhbHNl
OworICAgICAgICAgICAgICAgICAgICBmb3JBbGxLaWxsZWRPcGVyYW5kcyhtX2dyYXBoLCBibG9j
ay0+YXQobm9kZUluZGV4IC0gMSksIG5vZGUsIFsmXSAoT3BlcmFuZCBvcGVyYW5kKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFpvbWJpZXMub3BlcmFuZChvcGVyYW5kKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEtpbGxab21iaWUgPSB0cnVlOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRab21iaWVzLm9wZXJhbmQob3BlcmFuZCkg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChkaWRLaWxsWm9tYmllKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBleGl0VmFsaWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdXJyZW50Wm9tYmllcy5zaXplKCk7ICsraSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGl0VmFsaWQgJj0gIWN1cnJlbnRab21iaWVzW2ldOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgaWYgKHZlcmJvc2UgJiYgbm9kZS0+b3JpZ2luLmV4aXRPSyAmJiAhZXhpdFZhbGlkKQorICAg
ICAgICAgICAgICAgICAgICBkYXRhTG9nTG4oIiAgICBBdCAiLCBub2RlLCAiIGZsaXBwaW5nIHRv
IEV4aXRJbnZhbGlkIGJlY2F1c2UgbG9jYWwgaXMgaW4gem9tYmllIHN0YXRlLiBsb2NhbHM6ICIs
IGN1cnJlbnRab21iaWVzKTsKKworICAgICAgICAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwg
bm9kZSwgZXhpdFZhbGlkIHx8IG1heUV4aXQobV9ncmFwaCwgbm9kZSkgPT0gRG9lc05vdEV4aXQp
OworCisgICAgICAgICAgICAgICAgbm9kZS0+b3JpZ2luLmV4aXRPSyAmPSBleGl0VmFsaWQ7Cisg
ICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gWm9tYmllSGludCkgeworICAgICAgICAg
ICAgICAgICAgICBkYXRhTG9nTG5JZih2ZXJib3NlLCAiICAgIE9wZXJhbmQgIiwgbm9kZS0+dW5s
aW5rZWRPcGVyYW5kKCksICIgaGFzIGJlZW4gem9tYmlmaWVkIGF0ICIsIG5vZGUpOworICAgICAg
ICAgICAgICAgICAgICBjdXJyZW50Wm9tYmllcy5vcGVyYW5kKG5vZGUtPnVubGlua2VkT3BlcmFu
ZCgpKSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGV4aXRWYWxpZCA9IGZhbHNlOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtX2NoYW5n
ZWQgfD0gY2hhbmdlZFRoaXNCbG9jazsKICAgICB9CiAgICAgCiAgICAgT3BlcmFuZHM8RXBvY2g+
IG1fc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2
YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcAppbmRleCBmOWIyYTQ2N2M1OWZlODQ2
YjJmYjEzODQzNjVmYTNjMmQ0NjExYmEzLi5lZWQ0ODg5ODM2MjRiZjEwMTFmZjM0ZDljOWUyZDVm
NjA5NDJiMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2
YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAKQEAgLTEzMyw4ICsxMzMsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9jay0+c2l6ZSgpOyArK25vZGVJbmRleCkg
ewogICAgICAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRleCk7
Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgbWF5RXhpdCBzdGF0dXMgb2YgYSBu
b2RlIGRvZXNuJ3Qgc2VlbSBsaWtlIGl0IHNob3VsZCBtZWFuIHdlIGRvbid0IG5lZWQgdG8gaGF2
ZSBldmVyeXRoaW5nIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICAgICAgICAgaWYgKG1heUV4aXQo
bV9ncmFwaCwgbm9kZSkgIT0gRG9lc05vdEV4aXQgJiYgbm9kZS0+b3JpZ2luLmV4aXRPSykgewor
ICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3JpZ2luLmV4aXRPSykgewogICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgYWxsb3dlZCB0byBleGl0IGhlcmUsIHRoZSBoZWFw
IG11c3QgYmUgaW4gYSBzdGF0ZQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlcmUgZXhp
dGluZyB3b3VsZG4ndCBjcmFzaC4gVGhlc2UgcGFydGljdWxhciBmaWVsZHMgYXJlCiAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyByZXF1aXJlZCBmb3IgY29ycmVjdG5lc3MgYmVjYXVzZSB3ZSB1
c2UgdGhlbSBkdXJpbmcgT1NSIGV4aXQKQEAgLTE0Miw3ICsxNDEsOCBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyB0byBiZSBkZWFkLgogCiAgICAgICAgICAgICAgICAgICAg
ICAgICBDb2RlT3JpZ2luIGV4aXRPcmlnaW4gPSBub2RlLT5vcmlnaW4uZm9yRXhpdDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIEF2YWlsYWJpbGl0eU1hcCYgYXZhaWxhYmlsaXR5TWFwID0gY2Fs
Y3VsYXRvci5tX2F2YWlsYWJpbGl0eTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBhdmFpbGFiaWxpdHlNYXAgc2VlbXMgbGlrZSBpdCBzaG91bGQgYmUgYWJsZSB0byBiZSBhIHJl
ZmVyZW5jZSB0byB0aGUgY2FsY3VsYXRvcidzIG1hcC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNTY3NQorICAgICAgICAgICAgICAgICAgICAgICAgQXZhaWxhYmls
aXR5TWFwIGF2YWlsYWJpbGl0eU1hcCA9IGNhbGN1bGF0b3IubV9hdmFpbGFiaWxpdHk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlNYXAucHJ1bmVCeUxpdmVuZXNzKG1fZ3Jh
cGgsIGV4aXRPcmlnaW4pOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGF1dG8gaGVh
cFBhaXIgOiBhdmFpbGFiaWxpdHlNYXAubV9oZWFwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNhbGN1bGF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTU0FDYWxjdWxhdG9yLmNwcAppbmRleCBiMmZmNGFjNjg5NjBhYmEwYjk2ZGQw
OGE5OTIwZjE4NGFjYTZlNGNhLi42Njk5YzkwZjE0NTE3M2Y5NDM0YjI3NmFjYmU3NWZmNWY5ZTI1
NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNhbGN1bGF0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBQ2FsY3VsYXRvci5j
cHAKQEAgLTExNSwxNiArMTE1LDE2IEBAIHZvaWQgU1NBQ2FsY3VsYXRvcjo6ZHVtcChQcmludFN0
cmVhbSYgb3V0KSBjb25zdAogICAgICAgICBvdXQucHJpbnQoY29tbWEpOwogICAgICAgICBtX3Zh
cmlhYmxlc1tpXS5kdW1wVmVyYm9zZShvdXQpOwogICAgIH0KLSAgICBvdXQucHJpbnQoIl0sIERl
ZnM6IFsiKTsKKyAgICBvdXQucHJpbnQoIl0sIFxuRGVmczogWyIpOwogICAgIGNvbW1hID0gQ29t
bWFQcmludGVyKCk7CiAgICAgZm9yIChEZWYqIGRlZiA6IGNvbnN0X2Nhc3Q8U1NBQ2FsY3VsYXRv
cio+KHRoaXMpLT5tX2RlZnMpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgKmRlZik7Ci0gICAg
b3V0LnByaW50KCJdLCBQaGlzOiBbIik7CisgICAgb3V0LnByaW50KCJdLCBcblBoaXM6IFsiKTsK
ICAgICBjb21tYSA9IENvbW1hUHJpbnRlcigpOwogICAgIGZvciAoRGVmKiBkZWYgOiBjb25zdF9j
YXN0PFNTQUNhbGN1bGF0b3IqPih0aGlzKS0+bV9waGlzKQogICAgICAgICBvdXQucHJpbnQoY29t
bWEsICpkZWYpOwotICAgIG91dC5wcmludCgiXSwgQmxvY2sgZGF0YTogWyIpOwotICAgIGNvbW1h
ID0gQ29tbWFQcmludGVyKCk7CisgICAgb3V0LnByaW50KCJdLCBcbkJsb2NrIGRhdGE6IFsiKTsK
KyAgICBjb21tYSA9IENvbW1hUHJpbnRlcigiLFxuIik7CiAgICAgZm9yIChCbG9ja0luZGV4IGJs
b2NrSW5kZXggPSAwOyBibG9ja0luZGV4IDwgbV9ncmFwaC5udW1CbG9ja3MoKTsgKytibG9ja0lu
ZGV4KSB7CiAgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9ncmFwaC5ibG9jayhibG9ja0lu
ZGV4KTsKICAgICAgICAgaWYgKCFibG9jaykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407166</attachid>
            <date>2020-08-24 21:32:51 -0700</date>
            <delta_ts>2020-08-24 21:35:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215672-20200824213251.patch</filename>
            <type>text/plain</type>
            <size>12317</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NDJiZTkwZDY1YTI1NmVkYTNlZTY3ZmNjOTc2MTJkZmU3MTFjMGU5Li41MjkxNTBjYmNjMWEyOWI2
NWMwNDBkYWNiNDE1MGQ0ODA3YjMzOTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OCBAQAorMjAyMC0wOC0xOSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBPU1IgYXZhaWxhYmlsaXR5IHZhbGlkYXRpb24gc2hvdWxkIHJ1biBm
b3IgYW55IG5vZGUgd2l0aCBleGl0T0sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNTY3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEN1cnJlbnRseSB3ZSBvbmx5IHZhbGlkYXRlIE9TUiBleGl0IGF2YWls
YWJpbGl0eSBpZiBhIG5vZGUgd291bGQKKyAgICAgICAgc2F5IGBtYXlFeGl0KGdyYXBoLCBub2Rl
KSAhPSBEb2VzTm90RXhpdGAgYW5kIHRoZSBub2RlIGlzIG1hcmtlZAorICAgICAgICBhcyBleGl0
T0suIEhvd2V2ZXIsIGl0IHdvdWxkIGJlIHBlcmZlY3RseSB2YWxpZCB0byBpbnNlcnQgYSBub2Rl
CisgICAgICAgIHRoYXQgZXhpdHMgYW55d2hlcmUgd2UgaGF2ZSBhIG5vZGUgbWFya2VkIGV4aXRP
Sy4gU28gdGhpcyBwYXRjaAorICAgICAgICBsb29zZW5zIHRoZSBjcml0ZXJpYSBuZWVkZWQgZm9y
IHVzIHRvIHZhbGlkYXRlIGF2YWlsYWJpbGl0eS4KKworICAgICAgICBSZWxheGluZyBvdXIgY3Jp
dGVyaWEgcmV2ZWFsZWQgYSBudW1iZXIgb2YgYnVncyBob3dldmVyLiBXaGljaCBJCisgICAgICAg
IHdpbGwgZGVzY3JpYmUgYmVsb3cgaW4sIElNTywgaW5jcmVhc2luZyBjb21wbGV4aXR5L3N1YnRs
eS4KKworICAgICAgICBGaXJzdCwgd2UgY3VycmVudGx5IGRvbid0IG1hcmsgYXJpdHkgZml4dXAg
ZHVyaW5nIGlubGluaW5nIGFzIG5vdAorICAgICAgICBleGl0T0suIEhvd2V2ZXIsIHNpbmNlIG91
ciBhcml0eSBjb2RlIHNheXMgaXRzIGNvZGUgb3JpZ2luIGlzCisgICAgICAgIE9wRW50ZXIsIHdl
IGFzc3VtZSBhcml0eSBmaXh1cCBoYXMgYWxyZWFkeSBoYXBwZW5lZC4KKworICAgICAgICBTZWNv
bmQsIE9wR2V0U2NvcGUsIHNob3VsZCBub3QgbWFyayBpdCdzIGZpcnN0IGFyZ3VtZW50IGFzIHVz
ZWQKKyAgICAgICAgc2luY2UgaXQncyBub3QuIFRoaXMgaXMgcHJvYmxlbWF0aWMgYmVjYXVzZSB3
ZSBjb3VsZCBoYXZlIGEgbG9vcAorICAgICAgICB3aGVyZSBPcEdldFNjb3BlIGlzIHRoZSBmaXJz
dCBieXRlY29kZSwgbmFtZWx5IHdoZW4gZG9pbmcgdGFpbAorICAgICAgICByZWN1cnNpdmUgaW5s
aW5pbmcuIElmIHdlIHdlcmUgaW4gdGhhdCBwb3NpdGlvbiwgdGhlcmUgY291bGQgYmUgYQorICAg
ICAgICBsb2NhbCB0aGF0IHdhcyB1c2VkIGF0IGEgbWVyZ2UgcG9pbnQgYXQgdGhlIGxvb3AgYmFj
a2VkZ2UgdGhhdCBoYWQKKyAgICAgICAgdHdvIE1vdkhpbnQgZGVmcyBmcm9tIGJvdGggcHJlZGVj
ZXNzb3JzLiBXaGVuIHdlIGRvIENQUyBjb252ZXJzaW9uCisgICAgICAgIHRob3NlIHR3byBkZWZz
IHdpbGwgYmUgc2VlbiBhcyBkaWZmZXJlbnQgdmFyaWFibGVzLiBUaGVuIGR1cmluZworICAgICAg
ICBTU0EgY29udmVyc2lvbiB3ZSB3b24ndCBpbnNlcnQgYSBwaGkgY29ubmVjdGluZywgbWFraW5n
IHRoZQorICAgICAgICBhcmd1bWVudCB0byBPcEdldFNjb3BlIHVucmVjb3ZlcmFibGUgYXMgd2Ug
bmV2ZXIgUHV0U3RhY2tlZCB0aGUKKyAgICAgICAgdmFsdWVzLgorCisgICAgICAgIFRoZXJlIHdl
cmUgYWxzbyBpc3N1ZXMgd2l0aCBNb3ZIaW50UmVtb3ZhbCBQaGFzZSBidXQgcmF0aGVyIHRoYW4K
KyAgICAgICAgZml4IHRoZW0gd2Ugb3B0ZWQgdG8ganVzdCByZW1vdmUgdGhlIHBoYXNlIGFzIGl0
IGRpZG4ndCBzaG93IGFueQorICAgICAgICBwZXJmb3JtYW5jZSBpbXBhY3QuIEknbGwgZGVzY3Jp
YmUgdGhlIGlzc3VlcyBJIGZvdW5kIGJlbG93IGZvcgorICAgICAgICBjb21wbGV0ZW5lc3MsIGhv
d2V2ZXIuCisKKyAgICAgICAgVGhpcmQsIE1vdkhpbnQgcmVtb3ZhbCBwaGFzZSBoYWQgYSBidWcg
d2hlcmUgaXQgd291bGQgbm90IG1hcmsKKyAgICAgICAgc2VjdGlvbnMgd2hlcmUgYSB6b21iaWVk
IE1vdkhpbnQgaGFzIHlldCB0byBiZSBraWxsZWQgYXMgbm90CisgICAgICAgIGV4aXRPSy4gU28g
aW4gdGhlb3J5IGFub3RoZXIgcGhhc2UgY291bGQgY29tZSBhbG9uZyBhbmQgaW5zZXJ0IGFuCisg
ICAgICAgIGV4aXRpbmcgbm9kZSB0aGVyZS4KKworICAgICAgICBGb3VydGgsIE1vdkhpbnQgcmVt
b3ZhbCBwaGFzZSBoYWQgYSBzZWNvbmQgYnVnIHdoZXJlIGEgTW92SGludAorICAgICAgICB0aGF0
IHdhcyBub3Qga2lsbGVkIGluIHRoZSBjdXJyZW50IGJsb2NrIHdvdWxkIGJlIHpvbWJpZWQsIHdo
aWNoCisgICAgICAgIGlzIHdyb25nIGZvciBTU0EuIEl0J3Mgd3JvbmcgYmVjYXVzZSB0aGUgTW92
SGludGVkIHZhbHVlIGNvdWxkCisgICAgICAgIHN0aWxsIGJlIGxpdmUgZm9yIE9TUiBleGl0IGlu
IGEgc3VjY2Vzc29yIGJsb2NrLgorCisgICAgICAgIExhc3RseSwgdGhpcyBwYXRjaCBhZGRzIHNv
bWUgbmV3IHZlcmJvc2Ugb3B0aW9ucyBhcyB3ZWxsIGFzIHRoZSBhYmlsaXR5IHRvCisgICAgICAg
IGR1bXAgYSBERkc6OkJhc2ljQmxvY2sgd2l0aG91dCBkZXJlZmVyZW5jaW5nIGl0LgorCisgICAg
ICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwOgorICAgICAgICAoSlNDOjpjb21wdXRl
VXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKToKKyAgICAgICAgKiBkZmcvREZHQmFzaWNCbG9jay5j
cHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdCYXNp
Y0Jsb2NrLmg6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aW5saW5lQ2FsbCk6CisgICAgICAgICogZGZnL0RG
R0NQU1JldGhyZWFkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNQU1JldGhyZWFk
aW5nUGhhc2U6OnByb3BhZ2F0ZVBoaXMpOgorICAgICAgICAqIGRmZy9ERkdFcG9jaC5oOgorICAg
ICAgICAoSlNDOjpERkc6OkVwb2NoOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKiBk
ZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6T1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZH
U1NBQ2FsY3VsYXRvci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U1NBQ2FsY3VsYXRvcjo6ZHVt
cCBjb25zdCk6CisKIDIwMjAtMDgtMjQgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIE1vdkhpbnRSZW1vdmFsIHBoYXNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcAppbmRleCA3YTZj
NGE0MzdjYmZkYjg2ZmY2ZGZlNzNhYTRkNjMwZDg5NDE2MmZmLi4yOWU3YTEzZWY3YjFkNjA1ZTk4
MWE2YmVlYTQwODk3NmIyMmNlYjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKQEAgLTEwMCw5ICsxMDAsOSBAQCB2b2lkIGNvbXB1
dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwoVmlydHVhbFJlZ2lzdGVyIHNjb3BlUmVnaXN0ZXIs
IGNvbnN0IEluc3RydQogICAgIGNhc2Ugb3BfdW5yZWFjaGFibGU6CiAgICAgY2FzZSBvcF9zdXBl
cl9zYW1wbGVyX2JlZ2luOgogICAgIGNhc2Ugb3Bfc3VwZXJfc2FtcGxlcl9lbmQ6CisgICAgY2Fz
ZSBvcF9nZXRfc2NvcGU6CiAgICAgICAgIHJldHVybjsKIAotICAgIFVTRVMoT3BHZXRTY29wZSwg
ZHN0KQogICAgIFVTRVMoT3BUb1RoaXMsIHNyY0RzdCkKICAgICBVU0VTKE9wQ2hlY2tUZHosIHRh
cmdldFZpcnR1YWxSZWdpc3RlcikKICAgICBVU0VTKE9wSWRlbnRpdHlXaXRoUHJvZmlsZSwgc3Jj
RHN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Jsb2Nr
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5jcHAKaW5kZXgg
OTMwNjU5OWRiZmEwZDM0NWJjN2M4MTZjZDllYmJhOWE2OWI5MTQ2Ny4uOTI0ZjZkNDNjNDY5YzYw
ZGU1MWZhNjhhODI4MjZlNGFjYTUzMzA1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCYXNpY0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Jhc2ljQmxvY2suY3BwCkBAIC0xNTAsNSArMTUwLDE0IEBAIEJhc2ljQmxvY2s6OlNTQURh
dGE6On5TU0FEYXRhKCkgeyB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAorbmFtZXNw
YWNlIFdURiB7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OkRG
Rzo6QmFzaWNCbG9jayogYmxvY2spCit7CisgICAgb3V0LnByaW50KCpibG9jayk7Cit9CisKK30K
KwogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQmFzaWNCbG9jay5oCmluZGV4IGQyYzVhZTljMTNmM2I0ZTc3OWY5OGExNGMxNzAzN2Q5OGY5
NmQ5YWEuLjJjOGE2MTM2ZjM1ODEyZjBkYmU5ZWMyNWU4MWVmZDI3YWYwMTNiMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oCkBAIC0yNzUsNCArMjc1LDggQEAg
c3RhdGljIGlubGluZSBCYXNpY0Jsb2NrKiBibG9ja0ZvckJ5dGVjb2RlSW5kZXgoVmVjdG9yPEJh
c2ljQmxvY2sqPiYgbGlua2luZ1RhcmcKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCitu
YW1lc3BhY2UgV1RGIHsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6REZH
OjpCYXNpY0Jsb2NrKik7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMmNkNDlm
ZGFjMWE1MDM0MmUxOWRiYTljNmRmYjZiNGYzNjBjYzc0Yi4uMjEyMmFhNDk1ZGE3NDNjZGQ1ZWZj
MmQ0YWNhYjc2MDQzYmYzM2NiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTE3MjIsNiArMTcyMiw5IEBAIHZvaWQgQnl0ZUNvZGVQ
YXJzZXI6OmlubGluZUNhbGwoTm9kZSogY2FsbFRhcmdldE5vZGUsIE9wZXJhbmQgcmVzdWx0LCBD
YWxsVmFyaWFuCiAgICAgQnl0ZWNvZGVJbmRleCBvbGRJbmRleCA9IG1fY3VycmVudEluZGV4Owog
ICAgIG1fY3VycmVudEluZGV4ID0gQnl0ZWNvZGVJbmRleCgwKTsKIAorICAgIC8vIFdlIGRvbid0
IHdhbnQgdG8gZXhpdCBoZXJlIHNpbmNlIHdlIGNvdWxkIGRvIHRoaW5ncyBsaWtlIGFyaXR5IGZp
eHVwIHdoaWNoIGNvbXBsaWNhdGVzIE9TUiBleGl0IGF2YWlsYWJpbGl0eS4KKyAgICBtX2V4aXRP
SyA9IGZhbHNlOworCiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBJbmxpbmVDYWxsRnJh
bWU6OkdldHRlckNhbGw6CiAgICAgY2FzZSBJbmxpbmVDYWxsRnJhbWU6OlNldHRlckNhbGw6IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQ
aGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NQU1JldGhyZWFkaW5nUGhh
c2UuY3BwCmluZGV4IDdlMGM4ZjNlYWRiOWYwMDEwZTdmMjZhYzg5YWJjMzU4ZTVkYTg2YjkuLmIw
OTAyY2RiNzNhYzM1YTk2MmJiN2E0MWJhMjcyMGM3MDU2NWJjZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDUFNSZXRocmVhZGluZ1BoYXNlLmNwcApAQCAtMzUs
NiArMzUsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBDUFNS
ZXRocmVhZGluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgdmVyYm9zZSA9IGZhbHNlOwogcHVibGljOgogICAgIENQU1JldGhyZWFkaW5nUGhhc2UoR3Jh
cGgmIGdyYXBoKQogICAgICAgICA6IFBoYXNlKGdyYXBoLCAiQ1BTIHJldGhyZWFkaW5nIikKQEAg
LTQyNCw3ICs0MjUsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIE5vZGUqIGN1cnJlbnRQaGkg
PSBlbnRyeS5tX3BoaTsKICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFibGUg
PSBjdXJyZW50UGhpLT52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKICAgICAgICAgICAgIHNpemVfdCBp
bmRleCA9IGVudHJ5Lm1faW5kZXg7Ci0gICAgICAgICAgICAKKworICAgICAgICAgICAgaWYgKHZl
cmJvc2UpIHsKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgSXRlcmF0aW5nIG9uIHBoaSBmcm9t
IGJsb2NrICIsIGJsb2NrLCAiICIpOworICAgICAgICAgICAgICAgIG1fZ3JhcGguZHVtcChXVEY6
OmRhdGFGaWxlKCksICIiLCBjdXJyZW50UGhpKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IHByZWRlY2Vzc29ycy5zaXplKCk7IGktLTspIHsKICAgICAgICAg
ICAgICAgICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3NvckJsb2NrID0gcHJlZGVjZXNzb3JzW2ldOwog
ICAgICAgICAgICAgICAgIApAQCAtNDMzLDExICs0MzksMTMgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICAgICAgdmFyaWFibGVJblByZXZpb3VzID0gYWRkUGhpPG9wZXJhbmRLaW5kPihwcmVk
ZWNlc3NvckJsb2NrLCBjdXJyZW50UGhpLT5vcmlnaW4sIHZhcmlhYmxlLCBpbmRleCk7CiAgICAg
ICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yQmxvY2stPnZhcmlhYmxlc0F0VGFpbC5hdEZvcjxv
cGVyYW5kS2luZD4oaW5kZXgpID0gdmFyaWFibGVJblByZXZpb3VzOwogICAgICAgICAgICAgICAg
ICAgICBwcmVkZWNlc3NvckJsb2NrLT52YXJpYWJsZXNBdEhlYWQuYXRGb3I8b3BlcmFuZEtpbmQ+
KGluZGV4KSA9IHZhcmlhYmxlSW5QcmV2aW91czsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxv
Z0xuSWYodmVyYm9zZSwgIiAgICBObyB2YXJpYWJsZSBpbiBwcmVkZWNlc3NvciAiLCBwcmVkZWNl
c3NvckJsb2NrLCAiIGNyZWF0aW5nIGEgbmV3IHBoaTogIiwgdmFyaWFibGVJblByZXZpb3VzKTsK
ICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZh
cmlhYmxlSW5QcmV2aW91cy0+b3AoKSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIEdldExv
Y2FsOgogICAgICAgICAgICAgICAgICAgICBjYXNlIFBoYW50b21Mb2NhbDoKICAgICAgICAgICAg
ICAgICAgICAgY2FzZSBGbHVzaDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2dMbklm
KHZlcmJvc2UsICIgICAgVmFyaWFibGUgaW4gcHJlZGVjZXNzb3IgIiwgcHJlZGVjZXNzb3JCbG9j
aywgIiAiLCB2YXJpYWJsZUluUHJldmlvdXMsICIgbmVlZHMgdG8gYmUgZm9yd2FyZGVkIHRvIGZp
cnN0IGNoaWxkICIsIHZhcmlhYmxlSW5QcmV2aW91cy0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVCh2YXJpYWJsZUluUHJldmlvdXMtPnZhcmlhYmxlQWNj
ZXNzRGF0YSgpID09IHZhcmlhYmxlSW5QcmV2aW91cy0+Y2hpbGQxKCktPnZhcmlhYmxlQWNjZXNz
RGF0YSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlSW5QcmV2aW91cyA9IHZh
cmlhYmxlSW5QcmV2aW91cy0+Y2hpbGQxKCkubm9kZSgpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CkBAIC00NTIsNiArNDYwLDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAg
ICAgfHwgdmFyaWFibGVJblByZXZpb3VzLT5vcCgpID09IFNldEFyZ3VtZW50RGVmaW5pdGVseQog
ICAgICAgICAgICAgICAgICAgICB8fCB2YXJpYWJsZUluUHJldmlvdXMtPm9wKCkgPT0gU2V0QXJn
dW1lbnRNYXliZSk7CiAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisg
ICAgICAgICAgICAgICAgICAgIG1fZ3JhcGguZHVtcChXVEY6OmRhdGFGaWxlKCksICIgICAgQWRk
aW5nIG5ldyB2YXJpYWJsZSBmcm9tIHByZWRlY2Vzc29yICIsIHZhcmlhYmxlSW5QcmV2aW91cyk7
CisKICAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnRQaGktPmNoaWxkMSgpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGN1cnJlbnRQaGktPmNoaWxkcmVuLnNldENoaWxkMShFZGdlKHZhcmlhYmxl
SW5QcmV2aW91cykpOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ3OSw3ICs0
OTAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgLCBtX3BoaShwaGkpCiAgICAgICAgIHsKICAg
ICAgICAgfQotICAgICAgICAKKwogICAgICAgICBCYXNpY0Jsb2NrKiBtX2Jsb2NrOwogICAgICAg
ICBzaXplX3QgbV9pbmRleDsKICAgICAgICAgTm9kZSogbV9waGk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Vwb2NoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Vwb2NoLmgKaW5kZXggZjgwOTAzMTY5MDQ0NWQ5Yjc4Nzk0OTMxMjM4YjFjMmRhNTQy
YmRkNS4uMjNlNDQ0Nzc0NTIwOGQyNzNmOTkwZWY3NTgxZmZlMTJiZWVkOTY2NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdFcG9jaC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRXBvY2guaApAQCAtNjMsNiArNjMsMTEgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgcmV0dXJuIG1fZXBvY2ggPT0gc19ub25lOwogICAgIH0KKworICAgIGV4cGxp
Y2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEhKnRoaXM7
CisgICAgfQogICAgIAogICAgIEVwb2NoIG5leHQoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5
c2lzUGhhc2UuY3BwCmluZGV4IDNmNWFlNmJmMDU0ZTNmNzhkNzFhNmY0Mzg1ZmMxMDRjZmFhMWJl
NTkuLjhhZDJjYTgzMjVjODNhMTk0MmI4OWNjMDFjYjg5YmJjNzhjYTEzN2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JBdmFpbGFiaWxpdHlB
bmFseXNpc1BoYXNlLmNwcApAQCAtMTM0LDggKzEzNCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG5vZGVJbmRleCA9IDA7IG5vZGVJ
bmRleCA8IGJsb2NrLT5zaXplKCk7ICsrbm9kZUluZGV4KSB7CiAgICAgICAgICAgICAgICAgICAg
IE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsKLSAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IFRoZSBtYXlFeGl0IHN0YXR1cyBvZiBhIG5vZGUgZG9lc24ndCBzZWVtIGxpa2Ug
aXQgc2hvdWxkIG1lYW4gd2UgZG9uJ3QgbmVlZCB0byBoYXZlIGV2ZXJ5dGhpbmcgYXZhaWxhYmxl
LgotICAgICAgICAgICAgICAgICAgICBpZiAobWF5RXhpdChtX2dyYXBoLCBub2RlKSAhPSBEb2Vz
Tm90RXhpdCAmJiBub2RlLT5vcmlnaW4uZXhpdE9LKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChub2RlLT5vcmlnaW4uZXhpdE9LKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3
ZSdyZSBhbGxvd2VkIHRvIGV4aXQgaGVyZSwgdGhlIGhlYXAgbXVzdCBiZSBpbiBhIHN0YXRlCiAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGVyZSBleGl0aW5nIHdvdWxkbid0IGNyYXNoLiBU
aGVzZSBwYXJ0aWN1bGFyIGZpZWxkcyBhcmUKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJl
cXVpcmVkIGZvciBjb3JyZWN0bmVzcyBiZWNhdXNlIHdlIHVzZSB0aGVtIGR1cmluZyBPU1IgZXhp
dApAQCAtMTQzLDcgKzE0Miw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHRvIGJlIGRlYWQuCiAKICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVPcmlnaW4gZXhpdE9y
aWdpbiA9IG5vZGUtPm9yaWdpbi5mb3JFeGl0OwotICAgICAgICAgICAgICAgICAgICAgICAgQXZh
aWxhYmlsaXR5TWFwJiBhdmFpbGFiaWxpdHlNYXAgPSBjYWxjdWxhdG9yLm1fYXZhaWxhYmlsaXR5
OworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGF2YWlsYWJpbGl0eU1hcCBzZWVt
cyBsaWtlIGl0IHNob3VsZCBiZSBhYmxlIHRvIGJlIGEgcmVmZXJlbmNlIHRvIHRoZSBjYWxjdWxh
dG9yJ3MgbWFwLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1Njc1
CisgICAgICAgICAgICAgICAgICAgICAgICBBdmFpbGFiaWxpdHlNYXAgYXZhaWxhYmlsaXR5TWFw
ID0gY2FsY3VsYXRvci5tX2F2YWlsYWJpbGl0eTsKICAgICAgICAgICAgICAgICAgICAgICAgIGF2
YWlsYWJpbGl0eU1hcC5wcnVuZUJ5TGl2ZW5lc3MobV9ncmFwaCwgZXhpdE9yaWdpbik7CiAKICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciAoYXV0byBoZWFwUGFpciA6IGF2YWlsYWJpbGl0eU1h
cC5tX2hlYXApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NB
Q2FsY3VsYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNhbGN1bGF0
b3IuY3BwCmluZGV4IGIyZmY0YWM2ODk2MGFiYTBiOTZkZDA4YTk5MjBmMTg0YWNhNmU0Y2EuLjY2
OTljOTBmMTQ1MTczZjk0MzRiMjc2YWNiZTc1ZmY1ZjllMjU0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBQ2FsY3VsYXRvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDYWxjdWxhdG9yLmNwcApAQCAtMTE1LDE2ICsxMTUsMTYg
QEAgdm9pZCBTU0FDYWxjdWxhdG9yOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAg
ICAgIG91dC5wcmludChjb21tYSk7CiAgICAgICAgIG1fdmFyaWFibGVzW2ldLmR1bXBWZXJib3Nl
KG91dCk7CiAgICAgfQotICAgIG91dC5wcmludCgiXSwgRGVmczogWyIpOworICAgIG91dC5wcmlu
dCgiXSwgXG5EZWZzOiBbIik7CiAgICAgY29tbWEgPSBDb21tYVByaW50ZXIoKTsKICAgICBmb3Ig
KERlZiogZGVmIDogY29uc3RfY2FzdDxTU0FDYWxjdWxhdG9yKj4odGhpcyktPm1fZGVmcykKICAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCAqZGVmKTsKLSAgICBvdXQucHJpbnQoIl0sIFBoaXM6IFsi
KTsKKyAgICBvdXQucHJpbnQoIl0sIFxuUGhpczogWyIpOwogICAgIGNvbW1hID0gQ29tbWFQcmlu
dGVyKCk7CiAgICAgZm9yIChEZWYqIGRlZiA6IGNvbnN0X2Nhc3Q8U1NBQ2FsY3VsYXRvcio+KHRo
aXMpLT5tX3BoaXMpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgKmRlZik7Ci0gICAgb3V0LnBy
aW50KCJdLCBCbG9jayBkYXRhOiBbIik7Ci0gICAgY29tbWEgPSBDb21tYVByaW50ZXIoKTsKKyAg
ICBvdXQucHJpbnQoIl0sIFxuQmxvY2sgZGF0YTogWyIpOworICAgIGNvbW1hID0gQ29tbWFQcmlu
dGVyKCIsXG4iKTsKICAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IDA7IGJsb2NrSW5k
ZXggPCBtX2dyYXBoLm51bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgpIHsKICAgICAgICAgQmFzaWNC
bG9jayogYmxvY2sgPSBtX2dyYXBoLmJsb2NrKGJsb2NrSW5kZXgpOwogICAgICAgICBpZiAoIWJs
b2NrKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407167</attachid>
            <date>2020-08-24 21:35:10 -0700</date>
            <delta_ts>2020-08-27 09:33:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215672-20200824213509.patch</filename>
            <type>text/plain</type>
            <size>12124</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NDJiZTkwZDY1YTI1NmVkYTNlZTY3ZmNjOTc2MTJkZmU3MTFjMGU5Li41MjkxNTBjYmNjMWEyOWI2
NWMwNDBkYWNiNDE1MGQ0ODA3YjMzOTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OCBAQAorMjAyMC0wOC0xOSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBPU1IgYXZhaWxhYmlsaXR5IHZhbGlkYXRpb24gc2hvdWxkIHJ1biBm
b3IgYW55IG5vZGUgd2l0aCBleGl0T0sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNTY3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEN1cnJlbnRseSB3ZSBvbmx5IHZhbGlkYXRlIE9TUiBleGl0IGF2YWls
YWJpbGl0eSBpZiBhIG5vZGUgd291bGQKKyAgICAgICAgc2F5IGBtYXlFeGl0KGdyYXBoLCBub2Rl
KSAhPSBEb2VzTm90RXhpdGAgYW5kIHRoZSBub2RlIGlzIG1hcmtlZAorICAgICAgICBhcyBleGl0
T0suIEhvd2V2ZXIsIGl0IHdvdWxkIGJlIHBlcmZlY3RseSB2YWxpZCB0byBpbnNlcnQgYSBub2Rl
CisgICAgICAgIHRoYXQgZXhpdHMgYW55d2hlcmUgd2UgaGF2ZSBhIG5vZGUgbWFya2VkIGV4aXRP
Sy4gU28gdGhpcyBwYXRjaAorICAgICAgICBsb29zZW5zIHRoZSBjcml0ZXJpYSBuZWVkZWQgZm9y
IHVzIHRvIHZhbGlkYXRlIGF2YWlsYWJpbGl0eS4KKworICAgICAgICBSZWxheGluZyBvdXIgY3Jp
dGVyaWEgcmV2ZWFsZWQgYSBudW1iZXIgb2YgYnVncyBob3dldmVyLiBXaGljaCBJCisgICAgICAg
IHdpbGwgZGVzY3JpYmUgYmVsb3cgaW4sIElNTywgaW5jcmVhc2luZyBjb21wbGV4aXR5L3N1YnRs
eS4KKworICAgICAgICBGaXJzdCwgd2UgY3VycmVudGx5IGRvbid0IG1hcmsgYXJpdHkgZml4dXAg
ZHVyaW5nIGlubGluaW5nIGFzIG5vdAorICAgICAgICBleGl0T0suIEhvd2V2ZXIsIHNpbmNlIG91
ciBhcml0eSBjb2RlIHNheXMgaXRzIGNvZGUgb3JpZ2luIGlzCisgICAgICAgIE9wRW50ZXIsIHdl
IGFzc3VtZSBhcml0eSBmaXh1cCBoYXMgYWxyZWFkeSBoYXBwZW5lZC4KKworICAgICAgICBTZWNv
bmQsIE9wR2V0U2NvcGUsIHNob3VsZCBub3QgbWFyayBpdCdzIGZpcnN0IGFyZ3VtZW50IGFzIHVz
ZWQKKyAgICAgICAgc2luY2UgaXQncyBub3QuIFRoaXMgaXMgcHJvYmxlbWF0aWMgYmVjYXVzZSB3
ZSBjb3VsZCBoYXZlIGEgbG9vcAorICAgICAgICB3aGVyZSBPcEdldFNjb3BlIGlzIHRoZSBmaXJz
dCBieXRlY29kZSwgbmFtZWx5IHdoZW4gZG9pbmcgdGFpbAorICAgICAgICByZWN1cnNpdmUgaW5s
aW5pbmcuIElmIHdlIHdlcmUgaW4gdGhhdCBwb3NpdGlvbiwgdGhlcmUgY291bGQgYmUgYQorICAg
ICAgICBsb2NhbCB0aGF0IHdhcyB1c2VkIGF0IGEgbWVyZ2UgcG9pbnQgYXQgdGhlIGxvb3AgYmFj
a2VkZ2UgdGhhdCBoYWQKKyAgICAgICAgdHdvIE1vdkhpbnQgZGVmcyBmcm9tIGJvdGggcHJlZGVj
ZXNzb3JzLiBXaGVuIHdlIGRvIENQUyBjb252ZXJzaW9uCisgICAgICAgIHRob3NlIHR3byBkZWZz
IHdpbGwgYmUgc2VlbiBhcyBkaWZmZXJlbnQgdmFyaWFibGVzLiBUaGVuIGR1cmluZworICAgICAg
ICBTU0EgY29udmVyc2lvbiB3ZSB3b24ndCBpbnNlcnQgYSBwaGkgY29ubmVjdGluZywgbWFraW5n
IHRoZQorICAgICAgICBhcmd1bWVudCB0byBPcEdldFNjb3BlIHVucmVjb3ZlcmFibGUgYXMgd2Ug
bmV2ZXIgUHV0U3RhY2tlZCB0aGUKKyAgICAgICAgdmFsdWVzLgorCisgICAgICAgIFRoZXJlIHdl
cmUgYWxzbyBpc3N1ZXMgd2l0aCBNb3ZIaW50UmVtb3ZhbCBQaGFzZSBidXQgcmF0aGVyIHRoYW4K
KyAgICAgICAgZml4IHRoZW0gd2Ugb3B0ZWQgdG8ganVzdCByZW1vdmUgdGhlIHBoYXNlIGFzIGl0
IGRpZG4ndCBzaG93IGFueQorICAgICAgICBwZXJmb3JtYW5jZSBpbXBhY3QuIEknbGwgZGVzY3Jp
YmUgdGhlIGlzc3VlcyBJIGZvdW5kIGJlbG93IGZvcgorICAgICAgICBjb21wbGV0ZW5lc3MsIGhv
d2V2ZXIuCisKKyAgICAgICAgVGhpcmQsIE1vdkhpbnQgcmVtb3ZhbCBwaGFzZSBoYWQgYSBidWcg
d2hlcmUgaXQgd291bGQgbm90IG1hcmsKKyAgICAgICAgc2VjdGlvbnMgd2hlcmUgYSB6b21iaWVk
IE1vdkhpbnQgaGFzIHlldCB0byBiZSBraWxsZWQgYXMgbm90CisgICAgICAgIGV4aXRPSy4gU28g
aW4gdGhlb3J5IGFub3RoZXIgcGhhc2UgY291bGQgY29tZSBhbG9uZyBhbmQgaW5zZXJ0IGFuCisg
ICAgICAgIGV4aXRpbmcgbm9kZSB0aGVyZS4KKworICAgICAgICBGb3VydGgsIE1vdkhpbnQgcmVt
b3ZhbCBwaGFzZSBoYWQgYSBzZWNvbmQgYnVnIHdoZXJlIGEgTW92SGludAorICAgICAgICB0aGF0
IHdhcyBub3Qga2lsbGVkIGluIHRoZSBjdXJyZW50IGJsb2NrIHdvdWxkIGJlIHpvbWJpZWQsIHdo
aWNoCisgICAgICAgIGlzIHdyb25nIGZvciBTU0EuIEl0J3Mgd3JvbmcgYmVjYXVzZSB0aGUgTW92
SGludGVkIHZhbHVlIGNvdWxkCisgICAgICAgIHN0aWxsIGJlIGxpdmUgZm9yIE9TUiBleGl0IGlu
IGEgc3VjY2Vzc29yIGJsb2NrLgorCisgICAgICAgIExhc3RseSwgdGhpcyBwYXRjaCBhZGRzIHNv
bWUgbmV3IHZlcmJvc2Ugb3B0aW9ucyBhcyB3ZWxsIGFzIHRoZSBhYmlsaXR5IHRvCisgICAgICAg
IGR1bXAgYSBERkc6OkJhc2ljQmxvY2sgd2l0aG91dCBkZXJlZmVyZW5jaW5nIGl0LgorCisgICAg
ICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwOgorICAgICAgICAoSlNDOjpjb21wdXRl
VXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKToKKyAgICAgICAgKiBkZmcvREZHQmFzaWNCbG9jay5j
cHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdCYXNp
Y0Jsb2NrLmg6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aW5saW5lQ2FsbCk6CisgICAgICAgICogZGZnL0RG
R0NQU1JldGhyZWFkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNQU1JldGhyZWFk
aW5nUGhhc2U6OnByb3BhZ2F0ZVBoaXMpOgorICAgICAgICAqIGRmZy9ERkdFcG9jaC5oOgorICAg
ICAgICAoSlNDOjpERkc6OkVwb2NoOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKiBk
ZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6T1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZH
U1NBQ2FsY3VsYXRvci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U1NBQ2FsY3VsYXRvcjo6ZHVt
cCBjb25zdCk6CisKIDIwMjAtMDgtMjQgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIE1vdkhpbnRSZW1vdmFsIHBoYXNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcAppbmRleCA3YTZj
NGE0MzdjYmZkYjg2ZmY2ZGZlNzNhYTRkNjMwZDg5NDE2MmZmLi4yOWU3YTEzZWY3YjFkNjA1ZTk4
MWE2YmVlYTQwODk3NmIyMmNlYjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKQEAgLTEwMCw5ICsxMDAsOSBAQCB2b2lkIGNvbXB1
dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwoVmlydHVhbFJlZ2lzdGVyIHNjb3BlUmVnaXN0ZXIs
IGNvbnN0IEluc3RydQogICAgIGNhc2Ugb3BfdW5yZWFjaGFibGU6CiAgICAgY2FzZSBvcF9zdXBl
cl9zYW1wbGVyX2JlZ2luOgogICAgIGNhc2Ugb3Bfc3VwZXJfc2FtcGxlcl9lbmQ6CisgICAgY2Fz
ZSBvcF9nZXRfc2NvcGU6CiAgICAgICAgIHJldHVybjsKIAotICAgIFVTRVMoT3BHZXRTY29wZSwg
ZHN0KQogICAgIFVTRVMoT3BUb1RoaXMsIHNyY0RzdCkKICAgICBVU0VTKE9wQ2hlY2tUZHosIHRh
cmdldFZpcnR1YWxSZWdpc3RlcikKICAgICBVU0VTKE9wSWRlbnRpdHlXaXRoUHJvZmlsZSwgc3Jj
RHN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Jsb2Nr
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5jcHAKaW5kZXgg
OTMwNjU5OWRiZmEwZDM0NWJjN2M4MTZjZDllYmJhOWE2OWI5MTQ2Ny4uOTI0ZjZkNDNjNDY5YzYw
ZGU1MWZhNjhhODI4MjZlNGFjYTUzMzA1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCYXNpY0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Jhc2ljQmxvY2suY3BwCkBAIC0xNTAsNSArMTUwLDE0IEBAIEJhc2ljQmxvY2s6OlNTQURh
dGE6On5TU0FEYXRhKCkgeyB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAorbmFtZXNw
YWNlIFdURiB7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OkRG
Rzo6QmFzaWNCbG9jayogYmxvY2spCit7CisgICAgb3V0LnByaW50KCpibG9jayk7Cit9CisKK30K
KwogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQmFzaWNCbG9jay5oCmluZGV4IGQyYzVhZTljMTNmM2I0ZTc3OWY5OGExNGMxNzAzN2Q5OGY5
NmQ5YWEuLjJjOGE2MTM2ZjM1ODEyZjBkYmU5ZWMyNWU4MWVmZDI3YWYwMTNiMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oCkBAIC0yNzUsNCArMjc1LDggQEAg
c3RhdGljIGlubGluZSBCYXNpY0Jsb2NrKiBibG9ja0ZvckJ5dGVjb2RlSW5kZXgoVmVjdG9yPEJh
c2ljQmxvY2sqPiYgbGlua2luZ1RhcmcKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCitu
YW1lc3BhY2UgV1RGIHsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6REZH
OjpCYXNpY0Jsb2NrKik7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMmNkNDlm
ZGFjMWE1MDM0MmUxOWRiYTljNmRmYjZiNGYzNjBjYzc0Yi4uMjEyMmFhNDk1ZGE3NDNjZGQ1ZWZj
MmQ0YWNhYjc2MDQzYmYzM2NiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTE3MjIsNiArMTcyMiw5IEBAIHZvaWQgQnl0ZUNvZGVQ
YXJzZXI6OmlubGluZUNhbGwoTm9kZSogY2FsbFRhcmdldE5vZGUsIE9wZXJhbmQgcmVzdWx0LCBD
YWxsVmFyaWFuCiAgICAgQnl0ZWNvZGVJbmRleCBvbGRJbmRleCA9IG1fY3VycmVudEluZGV4Owog
ICAgIG1fY3VycmVudEluZGV4ID0gQnl0ZWNvZGVJbmRleCgwKTsKIAorICAgIC8vIFdlIGRvbid0
IHdhbnQgdG8gZXhpdCBoZXJlIHNpbmNlIHdlIGNvdWxkIGRvIHRoaW5ncyBsaWtlIGFyaXR5IGZp
eHVwIHdoaWNoIGNvbXBsaWNhdGVzIE9TUiBleGl0IGF2YWlsYWJpbGl0eS4KKyAgICBtX2V4aXRP
SyA9IGZhbHNlOworCiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBJbmxpbmVDYWxsRnJh
bWU6OkdldHRlckNhbGw6CiAgICAgY2FzZSBJbmxpbmVDYWxsRnJhbWU6OlNldHRlckNhbGw6IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQ
aGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NQU1JldGhyZWFkaW5nUGhh
c2UuY3BwCmluZGV4IDdlMGM4ZjNlYWRiOWYwMDEwZTdmMjZhYzg5YWJjMzU4ZTVkYTg2YjkuLmYy
NzNhNTBiMjlkYTg3YmMwM2Q5YTQ1Yjk0MjI0OWQxYzRjMzFiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDUFNSZXRocmVhZGluZ1BoYXNlLmNwcApAQCAtMzUs
NiArMzUsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBDUFNS
ZXRocmVhZGluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgdmVyYm9zZSA9IGZhbHNlOwogcHVibGljOgogICAgIENQU1JldGhyZWFkaW5nUGhhc2UoR3Jh
cGgmIGdyYXBoKQogICAgICAgICA6IFBoYXNlKGdyYXBoLCAiQ1BTIHJldGhyZWFkaW5nIikKQEAg
LTQyNSw2ICs0MjYsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0
YSogdmFyaWFibGUgPSBjdXJyZW50UGhpLT52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKICAgICAgICAg
ICAgIHNpemVfdCBpbmRleCA9IGVudHJ5Lm1faW5kZXg7CiAgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgZGF0YUxvZygiIEl0ZXJhdGluZyBv
biBwaGkgZnJvbSBibG9jayAiLCBibG9jaywgIiAiKTsKKyAgICAgICAgICAgICAgICBtX2dyYXBo
LmR1bXAoV1RGOjpkYXRhRmlsZSgpLCAiIiwgY3VycmVudFBoaSk7CisgICAgICAgICAgICB9CisK
ICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSBwcmVkZWNlc3NvcnMuc2l6ZSgpOyBpLS07KSB7
CiAgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogcHJlZGVjZXNzb3JCbG9jayA9IHByZWRlY2Vz
c29yc1tpXTsKICAgICAgICAgICAgICAgICAKQEAgLTQzMywxMSArNDM5LDEzIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlSW5QcmV2aW91cyA9IGFkZFBoaTxvcGVyYW5k
S2luZD4ocHJlZGVjZXNzb3JCbG9jaywgY3VycmVudFBoaS0+b3JpZ2luLCB2YXJpYWJsZSwgaW5k
ZXgpOwogICAgICAgICAgICAgICAgICAgICBwcmVkZWNlc3NvckJsb2NrLT52YXJpYWJsZXNBdFRh
aWwuYXRGb3I8b3BlcmFuZEtpbmQ+KGluZGV4KSA9IHZhcmlhYmxlSW5QcmV2aW91czsKICAgICAg
ICAgICAgICAgICAgICAgcHJlZGVjZXNzb3JCbG9jay0+dmFyaWFibGVzQXRIZWFkLmF0Rm9yPG9w
ZXJhbmRLaW5kPihpbmRleCkgPSB2YXJpYWJsZUluUHJldmlvdXM7CisgICAgICAgICAgICAgICAg
ICAgIGRhdGFMb2dMbklmKHZlcmJvc2UsICIgICAgTm8gdmFyaWFibGUgaW4gcHJlZGVjZXNzb3Ig
IiwgcHJlZGVjZXNzb3JCbG9jaywgIiBjcmVhdGluZyBhIG5ldyBwaGk6ICIsIHZhcmlhYmxlSW5Q
cmV2aW91cyk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg
c3dpdGNoICh2YXJpYWJsZUluUHJldmlvdXMtPm9wKCkpIHsKICAgICAgICAgICAgICAgICAgICAg
Y2FzZSBHZXRMb2NhbDoKICAgICAgICAgICAgICAgICAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAg
ICAgICAgICAgICAgICAgICAgIGNhc2UgRmx1c2g6CisgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nTG5JZih2ZXJib3NlLCAiICAgIFZhcmlhYmxlIGluIHByZWRlY2Vzc29yICIsIHByZWRl
Y2Vzc29yQmxvY2ssICIgIiwgdmFyaWFibGVJblByZXZpb3VzLCAiIG5lZWRzIHRvIGJlIGZvcndh
cmRlZCB0byBmaXJzdCBjaGlsZCAiLCB2YXJpYWJsZUluUHJldmlvdXMtPmNoaWxkMSgpLm5vZGUo
KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQodmFyaWFibGVJblByZXZpb3VzLT52
YXJpYWJsZUFjY2Vzc0RhdGEoKSA9PSB2YXJpYWJsZUluUHJldmlvdXMtPmNoaWxkMSgpLT52YXJp
YWJsZUFjY2Vzc0RhdGEoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZUluUHJl
dmlvdXMgPSB2YXJpYWJsZUluUHJldmlvdXMtPmNoaWxkMSgpLm5vZGUoKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDUyLDYgKzQ2MCw5IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAgICAgICAgIHx8IHZhcmlhYmxlSW5QcmV2aW91cy0+b3AoKSA9PSBTZXRBcmd1bWVudERl
ZmluaXRlbHkKICAgICAgICAgICAgICAgICAgICAgfHwgdmFyaWFibGVJblByZXZpb3VzLT5vcCgp
ID09IFNldEFyZ3VtZW50TWF5YmUpOwogICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmR1bXAoV1RGOjpkYXRhRmlsZSgp
LCAiICAgIEFkZGluZyBuZXcgdmFyaWFibGUgZnJvbSBwcmVkZWNlc3NvciAiLCB2YXJpYWJsZUlu
UHJldmlvdXMpOworCiAgICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50UGhpLT5jaGlsZDEoKSkg
ewogICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGhpLT5jaGlsZHJlbi5zZXRDaGlsZDEoRWRn
ZSh2YXJpYWJsZUluUHJldmlvdXMpKTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Vwb2NoLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Vwb2NoLmgKaW5kZXggZjgwOTAzMTY5MDQ0NWQ5Yjc4Nzk0
OTMxMjM4YjFjMmRhNTQyYmRkNS4uNjg4MjM0MDE4NzdjNmRjZGU4YjA0YzRmZGE3MTYxYzdlYmU4
YWRjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdFcG9jaC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRXBvY2guaApAQCAtNjQsNiArNjQsMTEg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9lcG9jaCA9PSBzX25vbmU7CiAgICAgfQogICAg
IAorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuICEhKnRoaXM7CisgICAgfQorICAgIAogICAgIEVwb2NoIG5leHQoKSBjb25zdAogICAgIHsK
ICAgICAgICAgRXBvY2ggcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAKaW5kZXggM2Y1
YWU2YmYwNTRlM2Y3OGQ3MWE2ZjQzODVmYzEwNGNmYWExYmU1OS4uOGFkMmNhODMyNWM4M2ExOTQy
Yjg5Y2MwMWNiODliYmM3OGNhMTM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCkBAIC0x
MzQsOCArMTM0LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
IGZvciAodW5zaWduZWQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgYmxvY2stPnNpemUoKTsg
Kytub2RlSW5kZXgpIHsKICAgICAgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5h
dChub2RlSW5kZXgpOwotICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhlIG1heUV4aXQg
c3RhdHVzIG9mIGEgbm9kZSBkb2Vzbid0IHNlZW0gbGlrZSBpdCBzaG91bGQgbWVhbiB3ZSBkb24n
dCBuZWVkIHRvIGhhdmUgZXZlcnl0aGluZyBhdmFpbGFibGUuCi0gICAgICAgICAgICAgICAgICAg
IGlmIChtYXlFeGl0KG1fZ3JhcGgsIG5vZGUpICE9IERvZXNOb3RFeGl0ICYmIG5vZGUtPm9yaWdp
bi5leGl0T0spIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9yaWdpbi5leGl0T0sp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlJ3JlIGFsbG93ZWQgdG8gZXhpdCBo
ZXJlLCB0aGUgaGVhcCBtdXN0IGJlIGluIGEgc3RhdGUKICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIHdoZXJlIGV4aXRpbmcgd291bGRuJ3QgY3Jhc2guIFRoZXNlIHBhcnRpY3VsYXIgZmllbGRz
IGFyZQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWlyZWQgZm9yIGNvcnJlY3RuZXNz
IGJlY2F1c2Ugd2UgdXNlIHRoZW0gZHVyaW5nIE9TUiBleGl0CkBAIC0xNDMsNyArMTQyLDggQEAg
cHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gYmUgZGVhZC4KIAogICAgICAg
ICAgICAgICAgICAgICAgICAgQ29kZU9yaWdpbiBleGl0T3JpZ2luID0gbm9kZS0+b3JpZ2luLmZv
ckV4aXQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBBdmFpbGFiaWxpdHlNYXAmIGF2YWlsYWJp
bGl0eU1hcCA9IGNhbGN1bGF0b3IubV9hdmFpbGFiaWxpdHk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogYXZhaWxhYmlsaXR5TWFwIHNlZW1zIGxpa2UgaXQgc2hvdWxkIGJlIGFi
bGUgdG8gYmUgYSByZWZlcmVuY2UgdG8gdGhlIGNhbGN1bGF0b3IncyBtYXAuIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU2NzUKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEF2YWlsYWJpbGl0eU1hcCBhdmFpbGFiaWxpdHlNYXAgPSBjYWxjdWxhdG9yLm1fYXZhaWxh
YmlsaXR5OwogICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5TWFwLnBydW5lQnlM
aXZlbmVzcyhtX2dyYXBoLCBleGl0T3JpZ2luKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAg
Zm9yIChhdXRvIGhlYXBQYWlyIDogYXZhaWxhYmlsaXR5TWFwLm1faGVhcCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDYWxjdWxhdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBQ2FsY3VsYXRvci5jcHAKaW5kZXggYjJmZjRhYzY4
OTYwYWJhMGI5NmRkMDhhOTkyMGYxODRhY2E2ZTRjYS4uNjY5OWM5MGYxNDUxNzNmOTQzNGIyNzZh
Y2JlNzVmZjVmOWUyNTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTU0FDYWxjdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NT
QUNhbGN1bGF0b3IuY3BwCkBAIC0xMTUsMTYgKzExNSwxNiBAQCB2b2lkIFNTQUNhbGN1bGF0b3I6
OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICAgICAgb3V0LnByaW50KGNvbW1hKTsK
ICAgICAgICAgbV92YXJpYWJsZXNbaV0uZHVtcFZlcmJvc2Uob3V0KTsKICAgICB9Ci0gICAgb3V0
LnByaW50KCJdLCBEZWZzOiBbIik7CisgICAgb3V0LnByaW50KCJdLCBcbkRlZnM6IFsiKTsKICAg
ICBjb21tYSA9IENvbW1hUHJpbnRlcigpOwogICAgIGZvciAoRGVmKiBkZWYgOiBjb25zdF9jYXN0
PFNTQUNhbGN1bGF0b3IqPih0aGlzKS0+bV9kZWZzKQogICAgICAgICBvdXQucHJpbnQoY29tbWEs
ICpkZWYpOwotICAgIG91dC5wcmludCgiXSwgUGhpczogWyIpOworICAgIG91dC5wcmludCgiXSwg
XG5QaGlzOiBbIik7CiAgICAgY29tbWEgPSBDb21tYVByaW50ZXIoKTsKICAgICBmb3IgKERlZiog
ZGVmIDogY29uc3RfY2FzdDxTU0FDYWxjdWxhdG9yKj4odGhpcyktPm1fcGhpcykKICAgICAgICAg
b3V0LnByaW50KGNvbW1hLCAqZGVmKTsKLSAgICBvdXQucHJpbnQoIl0sIEJsb2NrIGRhdGE6IFsi
KTsKLSAgICBjb21tYSA9IENvbW1hUHJpbnRlcigpOworICAgIG91dC5wcmludCgiXSwgXG5CbG9j
ayBkYXRhOiBbIik7CisgICAgY29tbWEgPSBDb21tYVByaW50ZXIoIixcbiIpOwogICAgIGZvciAo
QmxvY2tJbmRleCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8IG1fZ3JhcGgubnVtQmxvY2tz
KCk7ICsrYmxvY2tJbmRleCkgewogICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGgu
YmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAgIGlmICghYmxvY2spCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407412</attachid>
            <date>2020-08-27 09:33:04 -0700</date>
            <delta_ts>2020-08-27 10:10:24 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215672-20200827093303.patch</filename>
            <type>text/plain</type>
            <size>12696</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NDJiZTkwZDY1YTI1NmVkYTNlZTY3ZmNjOTc2MTJkZmU3MTFjMGU5Li4zYWRmZWZjNjQxYzQ4ZWU3
N2FmMThmZjVkYzBkNGNhNTNhYzIzY2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4OCBAQAorMjAyMC0wOC0xOSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBPU1IgYXZhaWxhYmlsaXR5IHZhbGlkYXRpb24gc2hvdWxkIHJ1biBm
b3IgYW55IG5vZGUgd2l0aCBleGl0T0sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNTY3MgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRp
LgorCisgICAgICAgIEN1cnJlbnRseSB3ZSBvbmx5IHZhbGlkYXRlIE9TUiBleGl0IGF2YWlsYWJp
bGl0eSBpZiBhIG5vZGUgd291bGQKKyAgICAgICAgc2F5IGBtYXlFeGl0KGdyYXBoLCBub2RlKSAh
PSBEb2VzTm90RXhpdGAgYW5kIHRoZSBub2RlIGlzIG1hcmtlZAorICAgICAgICBhcyBleGl0T0su
IEhvd2V2ZXIsIGl0IHdvdWxkIGJlIHBlcmZlY3RseSB2YWxpZCB0byBpbnNlcnQgYSBub2RlCisg
ICAgICAgIHRoYXQgZXhpdHMgYW55d2hlcmUgd2UgaGF2ZSBhIG5vZGUgbWFya2VkIGV4aXRPSy4g
U28gd2l0aCB0aGlzCisgICAgICAgIHBhdGNoIHdlIG5vdyB2YWxpZGF0ZSBhbGwgcGxhY2VzIHdo
ZXJlIGl0IHdvdWxkIGV2ZXIgYmUgcG9zc2libGUKKyAgICAgICAgdG8gT1NSIGV4aXQuCisKKyAg
ICAgICAgUmVsYXhpbmcgb3VyIGNyaXRlcmlhIHJldmVhbGVkIGEgbnVtYmVyIG9mIGJ1Z3MgaG93
ZXZlci4gV2hpY2ggSQorICAgICAgICB3aWxsIGRlc2NyaWJlIGJlbG93IGluLCBJTU8sIGluY3Jl
YXNpbmcgY29tcGxleGl0eS9zdWJ0bHkuCisKKyAgICAgICAgRmlyc3QsIHdlIGN1cnJlbnRseSBk
b24ndCBtYXJrIGFyaXR5IGZpeHVwIGR1cmluZyBpbmxpbmluZyBhcyBub3QKKyAgICAgICAgZXhp
dE9LLiBIb3dldmVyLCBzaW5jZSBvdXIgYXJpdHkgY29kZSBzYXlzIGl0cyBjb2RlIG9yaWdpbiBp
cworICAgICAgICBPcEVudGVyLCB3ZSBhc3N1bWUgYXJpdHkgZml4dXAgaGFzIGFscmVhZHkgaGFw
cGVuZWQuCisKKyAgICAgICAgU2Vjb25kLCBPcEdldFNjb3BlLCBzaG91bGQgbm90IG1hcmsgaXRz
IGZpcnN0IGFyZ3VtZW50IGFzIHVzZWQKKyAgICAgICAgc2luY2UgaXQncyBub3QgYWN0dWFsbHkg
dXNlZC4gVGhpcyBpcyBwcm9ibGVtYXRpYyBiZWNhdXNlIHdlIGNvdWxkCisgICAgICAgIGhhdmUg
YSBsb29wIHdoZXJlIE9wR2V0U2NvcGUgaXMgdGhlIGZpcnN0IGJ5dGVjb2RlLCBuYW1lbHkgd2hl
bgorICAgICAgICBkb2luZyB0YWlsIHJlY3Vyc2l2ZSBpbmxpbmluZy4gSWYgd2Ugd2VyZSBpbiB0
aGF0IHBvc2l0aW9uLCB0aGVyZQorICAgICAgICBjb3VsZCBiZSBhIGxvY2FsIHRoYXQgd2FzIHVz
ZWQgYXQgYSBtZXJnZSBwb2ludCBhdCB0aGUgbG9vcAorICAgICAgICBiYWNrZWRnZSB0aGF0IGhh
ZCB0d28gTW92SGludCBkZWZzIGZyb20gYm90aCBwcmVkZWNlc3NvcnMuIEluIERGRworICAgICAg
ICBJUiB0aGlzIHdvdWxkIGxvb2sgbGlrZToKKworICAgICAgICBCQiMxOgorICAgICAgICBAMTog
TW92SGludChVbmRlZmluZWQsIGxvYzEpCisgICAgICAgIC4uLgorICAgICAgICBKdW1wKCMyKQor
CisgICAgICAgIEJCIzI6CisgICAgICAgIC4uLiAvLyBsb2MxIGlzIGxpdmUgaGVyZSBpbiBieXRl
Y29kZQorICAgICAgICBAMjogTW92SGludChAc2NvcGVPYmplY3QsIGxvYzEpCisgICAgICAgIEAz
OiBTZXRMb2NhbChAc2NvcGVPYmplY3QsIGxvYzEpCisgICAgICAgIEJyYW5jaCgjMywgIzQpIC8v
ICM0IGlzIHRoZSBzdWNjZXNzb3Igb2YgdGhlIHRhaWwgY2FsbCBsb29wCisKKyAgICAgICAgQkIj
MzoKKyAgICAgICAgQDQgTW92SGludChVbmRlZmluZWQsIGxvYzEpCisgICAgICAgIC4uLgorICAg
ICAgICBKdW1wKCMyKQorCisgICAgICAgIFdoZW4gd2UgZG8gQ1BTIGNvbnZlcnNpb24gdGhlIE1v
dkhpbnRzIGF0IEAxIGFuZCBANCB3aWxsIGJlIHNlZW4KKyAgICAgICAgYXMgZGlmZmVyZW50IHZh
cmlhYmxlcyAodGhlcmUncyBubyBHZXRMb2NhbCkuIFRoZW4sIGFmdGVyLCBkdXJpbmcKKyAgICAg
ICAgU1NBIGNvbnZlcnNpb24gd2Ugd29uJ3QgaW5zZXJ0IGEgcGhpIGNvbm5lY3RpbmcgdGhlbSwg
bWFraW5nIHRoZQorICAgICAgICBhcmd1bWVudCB0byBPcEdldFNjb3BlLCBpbiB0aGlzIGNhc2Ug
bG9jMSwgdW5yZWNvdmVyYWJsZSB0aGVyZSBhcmUKKyAgICAgICAgY29uZmxpY3Rpbmcgbm9kZXMg
YW5kIHRoZSB2YWx1ZSBpc24ndCBzYXZlZCBvbiB0aGUgc3RhY2suCisKKyAgICAgICAgVGhlcmUg
d2VyZSBhbHNvIGlzc3VlcyB3aXRoIE1vdkhpbnRSZW1vdmFsIFBoYXNlIGJ1dCByYXRoZXIgdGhh
bgorICAgICAgICBmaXggdGhlbSB3ZSBvcHRlZCB0byBqdXN0IHJlbW92ZSB0aGUgcGhhc2UgYXMg
aXQgZGlkbid0IHNob3cgYW55CisgICAgICAgIHBlcmZvcm1hbmNlIGltcGFjdC4gSSdsbCBkZXNj
cmliZSB0aGUgaXNzdWVzIEkgZm91bmQgYmVsb3cgZm9yCisgICAgICAgIGNvbXBsZXRlbmVzcywg
aG93ZXZlci4KKworICAgICAgICBUaGlyZCwgTW92SGludCByZW1vdmFsIHBoYXNlIGhhZCBhIGJ1
ZyB3aGVyZSBpdCB3b3VsZCBub3QgbWFyaworICAgICAgICBzZWN0aW9ucyB3aGVyZSBhIHpvbWJp
ZWQgTW92SGludCBoYXMgeWV0IHRvIGJlIGtpbGxlZCBhcyBub3QKKyAgICAgICAgZXhpdE9LLiBT
byBpbiB0aGVvcnkgYW5vdGhlciBwaGFzZSBjb3VsZCBjb21lIGFsb25nIGFuZCBpbnNlcnQgYW4K
KyAgICAgICAgZXhpdGluZyBub2RlIHRoZXJlLgorCisgICAgICAgIEZvdXJ0aCwgTW92SGludCBy
ZW1vdmFsIHBoYXNlIGhhZCBhIHNlY29uZCBidWcgd2hlcmUgYSBNb3ZIaW50CisgICAgICAgIHRo
YXQgd2FzIG5vdCBraWxsZWQgaW4gdGhlIGN1cnJlbnQgYmxvY2sgd291bGQgYmUgem9tYmllZCwg
d2hpY2gKKyAgICAgICAgaXMgd3JvbmcgZm9yIFNTQS4gSXQncyB3cm9uZyBiZWNhdXNlIHRoZSBN
b3ZIaW50ZWQgdmFsdWUgY291bGQKKyAgICAgICAgc3RpbGwgYmUgbGl2ZSBmb3IgT1NSIGV4aXQg
aW4gYSBzdWNjZXNzb3IgYmxvY2suCisKKyAgICAgICAgTGFzdGx5LCB0aGlzIHBhdGNoIGFkZHMg
c29tZSBuZXcgdmVyYm9zZSBvcHRpb25zIGFzIHdlbGwgYXMgdGhlIGFiaWxpdHkgdG8KKyAgICAg
ICAgZHVtcCBhIERGRzo6QmFzaWNCbG9jayB3aXRob3V0IGRlcmVmZXJlbmNpbmcgaXQuCisKKyAg
ICAgICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHA6CisgICAgICAgIChKU0M6OmNvbXB1
dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAqIGRmZy9ERkdCYXNpY0Jsb2Nr
LmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogZGZnL0RGR0Jh
c2ljQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjppbmxpbmVDYWxsKToKKyAgICAgICAgKiBkZmcv
REZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q1BTUmV0aHJl
YWRpbmdQaGFzZTo6cHJvcGFnYXRlUGhpcyk6CisgICAgICAgICogZGZnL0RGR0Vwb2NoLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6RXBvY2g6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAq
IGRmZy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlOjpydW4pOgorICAgICAgICAqIGRmZy9E
RkdTU0FDYWxjdWxhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTU0FDYWxjdWxhdG9yOjpk
dW1wIGNvbnN0KToKKwogMjAyMC0wOC0yNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgTW92SGludFJlbW92YWwgcGhhc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCmluZGV4IDdh
NmM0YTQzN2NiZmRiODZmZjZkZmU3M2FhNGQ2MzBkODk0MTYyZmYuLjI5ZTdhMTNlZjdiMWQ2MDVl
OTgxYTZiZWVhNDA4OTc2YjIyY2ViODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcApAQCAtMTAwLDkgKzEwMCw5IEBAIHZvaWQgY29t
cHV0ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbChWaXJ0dWFsUmVnaXN0ZXIgc2NvcGVSZWdpc3Rl
ciwgY29uc3QgSW5zdHJ1CiAgICAgY2FzZSBvcF91bnJlYWNoYWJsZToKICAgICBjYXNlIG9wX3N1
cGVyX3NhbXBsZXJfYmVnaW46CiAgICAgY2FzZSBvcF9zdXBlcl9zYW1wbGVyX2VuZDoKKyAgICBj
YXNlIG9wX2dldF9zY29wZToKICAgICAgICAgcmV0dXJuOwogCi0gICAgVVNFUyhPcEdldFNjb3Bl
LCBkc3QpCiAgICAgVVNFUyhPcFRvVGhpcywgc3JjRHN0KQogICAgIFVTRVMoT3BDaGVja1Rkeiwg
dGFyZ2V0VmlydHVhbFJlZ2lzdGVyKQogICAgIFVTRVMoT3BJZGVudGl0eVdpdGhQcm9maWxlLCBz
cmNEc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxv
Y2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Jsb2NrLmNwcAppbmRl
eCA5MzA2NTk5ZGJmYTBkMzQ1YmM3YzgxNmNkOWViYmE5YTY5YjkxNDY3Li45MjRmNmQ0M2M0Njlj
NjBkZTUxZmE2OGE4MjgyNmU0YWNhNTMzMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQmFzaWNCbG9jay5jcHAKQEAgLTE1MCw1ICsxNTAsMTQgQEAgQmFzaWNCbG9jazo6U1NB
RGF0YTo6flNTQURhdGEoKSB7IH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCituYW1l
c3BhY2UgV1RGIHsKKwordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpTQzo6
REZHOjpCYXNpY0Jsb2NrKiBibG9jaykKK3sKKyAgICBvdXQucHJpbnQoKmJsb2NrKTsKK30KKwor
fQorCiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCYXNpY0Jsb2NrLmgKaW5kZXggZDJjNWFlOWMxM2YzYjRlNzc5Zjk4YTE0YzE3MDM3ZDk4
Zjk2ZDlhYS4uMmM4YTYxMzZmMzU4MTJmMGRiZTllYzI1ZTgxZWZkMjdhZjAxM2IzNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Jsb2NrLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNpY0Jsb2NrLmgKQEAgLTI3NSw0ICsyNzUsOCBA
QCBzdGF0aWMgaW5saW5lIEJhc2ljQmxvY2sqIGJsb2NrRm9yQnl0ZWNvZGVJbmRleChWZWN0b3I8
QmFzaWNCbG9jayo+JiBsaW5raW5nVGFyZwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAK
K25hbWVzcGFjZSBXVEYgewordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpE
Rkc6OkJhc2ljQmxvY2sqKTsKK30KKwogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCAyY2Q0
OWZkYWMxYTUwMzQyZTE5ZGJhOWM2ZGZiNmI0ZjM2MGNjNzRiLi4yMTIyYWE0OTVkYTc0M2NkZDVl
ZmMyZDRhY2FiNzYwNDNiZjMzY2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMTcyMiw2ICsxNzIyLDkgQEAgdm9pZCBCeXRlQ29k
ZVBhcnNlcjo6aW5saW5lQ2FsbChOb2RlKiBjYWxsVGFyZ2V0Tm9kZSwgT3BlcmFuZCByZXN1bHQs
IENhbGxWYXJpYW4KICAgICBCeXRlY29kZUluZGV4IG9sZEluZGV4ID0gbV9jdXJyZW50SW5kZXg7
CiAgICAgbV9jdXJyZW50SW5kZXggPSBCeXRlY29kZUluZGV4KDApOwogCisgICAgLy8gV2UgZG9u
J3Qgd2FudCB0byBleGl0IGhlcmUgc2luY2Ugd2UgY291bGQgZG8gdGhpbmdzIGxpa2UgYXJpdHkg
Zml4dXAgd2hpY2ggY29tcGxpY2F0ZXMgT1NSIGV4aXQgYXZhaWxhYmlsaXR5LgorICAgIG1fZXhp
dE9LID0gZmFsc2U7CisKICAgICBzd2l0Y2ggKGtpbmQpIHsKICAgICBjYXNlIElubGluZUNhbGxG
cmFtZTo6R2V0dGVyQ2FsbDoKICAgICBjYXNlIElubGluZUNhbGxGcmFtZTo6U2V0dGVyQ2FsbDog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDUFNSZXRocmVhZGlu
Z1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQ
aGFzZS5jcHAKaW5kZXggN2UwYzhmM2VhZGI5ZjAwMTBlN2YyNmFjODlhYmMzNThlNWRhODZiOS4u
ZjI3M2E1MGIyOWRhODdiYzAzZDlhNDViOTQyMjQ5ZDFjNGMzMWJmMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDUFNSZXRocmVhZGluZ1BoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NQU1JldGhyZWFkaW5nUGhhc2UuY3BwCkBAIC0z
NSw2ICszNSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIENQ
U1JldGhyZWFkaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgeworICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7CiBwdWJsaWM6CiAgICAgQ1BTUmV0aHJlYWRpbmdQaGFzZShH
cmFwaCYgZ3JhcGgpCiAgICAgICAgIDogUGhhc2UoZ3JhcGgsICJDUFMgcmV0aHJlYWRpbmciKQpA
QCAtNDI1LDYgKzQyNiwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgVmFyaWFibGVBY2Nlc3NE
YXRhKiB2YXJpYWJsZSA9IGN1cnJlbnRQaGktPnZhcmlhYmxlQWNjZXNzRGF0YSgpOwogICAgICAg
ICAgICAgc2l6ZV90IGluZGV4ID0gZW50cnkubV9pbmRleDsKICAgICAgICAgICAgIAorICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgSXRlcmF0aW5n
IG9uIHBoaSBmcm9tIGJsb2NrICIsIGJsb2NrLCAiICIpOworICAgICAgICAgICAgICAgIG1fZ3Jh
cGguZHVtcChXVEY6OmRhdGFGaWxlKCksICIiLCBjdXJyZW50UGhpKTsKKyAgICAgICAgICAgIH0K
KwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IHByZWRlY2Vzc29ycy5zaXplKCk7IGktLTsp
IHsKICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3NvckJsb2NrID0gcHJlZGVj
ZXNzb3JzW2ldOwogICAgICAgICAgICAgICAgIApAQCAtNDMzLDExICs0MzksMTMgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVJblByZXZpb3VzID0gYWRkUGhpPG9wZXJh
bmRLaW5kPihwcmVkZWNlc3NvckJsb2NrLCBjdXJyZW50UGhpLT5vcmlnaW4sIHZhcmlhYmxlLCBp
bmRleCk7CiAgICAgICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yQmxvY2stPnZhcmlhYmxlc0F0
VGFpbC5hdEZvcjxvcGVyYW5kS2luZD4oaW5kZXgpID0gdmFyaWFibGVJblByZXZpb3VzOwogICAg
ICAgICAgICAgICAgICAgICBwcmVkZWNlc3NvckJsb2NrLT52YXJpYWJsZXNBdEhlYWQuYXRGb3I8
b3BlcmFuZEtpbmQ+KGluZGV4KSA9IHZhcmlhYmxlSW5QcmV2aW91czsKKyAgICAgICAgICAgICAg
ICAgICAgZGF0YUxvZ0xuSWYodmVyYm9zZSwgIiAgICBObyB2YXJpYWJsZSBpbiBwcmVkZWNlc3Nv
ciAiLCBwcmVkZWNlc3NvckJsb2NrLCAiIGNyZWF0aW5nIGEgbmV3IHBoaTogIiwgdmFyaWFibGVJ
blByZXZpb3VzKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAg
ICBzd2l0Y2ggKHZhcmlhYmxlSW5QcmV2aW91cy0+b3AoKSkgewogICAgICAgICAgICAgICAgICAg
ICBjYXNlIEdldExvY2FsOgogICAgICAgICAgICAgICAgICAgICBjYXNlIFBoYW50b21Mb2NhbDoK
ICAgICAgICAgICAgICAgICAgICAgY2FzZSBGbHVzaDoKKyAgICAgICAgICAgICAgICAgICAgICAg
IGRhdGFMb2dMbklmKHZlcmJvc2UsICIgICAgVmFyaWFibGUgaW4gcHJlZGVjZXNzb3IgIiwgcHJl
ZGVjZXNzb3JCbG9jaywgIiAiLCB2YXJpYWJsZUluUHJldmlvdXMsICIgbmVlZHMgdG8gYmUgZm9y
d2FyZGVkIHRvIGZpcnN0IGNoaWxkICIsIHZhcmlhYmxlSW5QcmV2aW91cy0+Y2hpbGQxKCkubm9k
ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVCh2YXJpYWJsZUluUHJldmlvdXMt
PnZhcmlhYmxlQWNjZXNzRGF0YSgpID09IHZhcmlhYmxlSW5QcmV2aW91cy0+Y2hpbGQxKCktPnZh
cmlhYmxlQWNjZXNzRGF0YSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlSW5Q
cmV2aW91cyA9IHZhcmlhYmxlSW5QcmV2aW91cy0+Y2hpbGQxKCkubm9kZSgpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CkBAIC00NTIsNiArNDYwLDkgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICAgICAgfHwgdmFyaWFibGVJblByZXZpb3VzLT5vcCgpID09IFNldEFyZ3VtZW50
RGVmaW5pdGVseQogICAgICAgICAgICAgICAgICAgICB8fCB2YXJpYWJsZUluUHJldmlvdXMtPm9w
KCkgPT0gU2V0QXJndW1lbnRNYXliZSk7CiAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGguZHVtcChXVEY6OmRhdGFGaWxl
KCksICIgICAgQWRkaW5nIG5ldyB2YXJpYWJsZSBmcm9tIHByZWRlY2Vzc29yICIsIHZhcmlhYmxl
SW5QcmV2aW91cyk7CisKICAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnRQaGktPmNoaWxkMSgp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQaGktPmNoaWxkcmVuLnNldENoaWxkMShF
ZGdlKHZhcmlhYmxlSW5QcmV2aW91cykpOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRXBvY2guaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRXBvY2guaAppbmRleCBmODA5MDMxNjkwNDQ1ZDliNzg3
OTQ5MzEyMzhiMWMyZGE1NDJiZGQ1Li42ODgyMzQwMTg3N2M2ZGNkZThiMDRjNGZkYTcxNjFjN2Vi
ZThhZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Vwb2NoLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdFcG9jaC5oCkBAIC02NCw2ICs2NCwx
MSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2Vwb2NoID09IHNfbm9uZTsKICAgICB9CiAg
ICAgCisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gISEqdGhpczsKKyAgICB9CisgICAgCiAgICAgRXBvY2ggbmV4dCgpIGNvbnN0CiAgICAg
ewogICAgICAgICBFcG9jaCByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcAppbmRleCAz
ZjVhZTZiZjA1NGUzZjc4ZDcxYTZmNDM4NWZjMTA0Y2ZhYTFiZTU5Li44YWQyY2E4MzI1YzgzYTE5
NDJiODljYzAxY2I4OWJiYzc4Y2ExMzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAKQEAg
LTEzNCw4ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9jay0+c2l6ZSgp
OyArK25vZGVJbmRleCkgewogICAgICAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2st
PmF0KG5vZGVJbmRleCk7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgbWF5RXhp
dCBzdGF0dXMgb2YgYSBub2RlIGRvZXNuJ3Qgc2VlbSBsaWtlIGl0IHNob3VsZCBtZWFuIHdlIGRv
bid0IG5lZWQgdG8gaGF2ZSBldmVyeXRoaW5nIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICAgICAg
ICAgaWYgKG1heUV4aXQobV9ncmFwaCwgbm9kZSkgIT0gRG9lc05vdEV4aXQgJiYgbm9kZS0+b3Jp
Z2luLmV4aXRPSykgeworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3JpZ2luLmV4aXRP
SykgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgYWxsb3dlZCB0byBleGl0
IGhlcmUsIHRoZSBoZWFwIG11c3QgYmUgaW4gYSBzdGF0ZQogICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gd2hlcmUgZXhpdGluZyB3b3VsZG4ndCBjcmFzaC4gVGhlc2UgcGFydGljdWxhciBmaWVs
ZHMgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXF1aXJlZCBmb3IgY29ycmVjdG5l
c3MgYmVjYXVzZSB3ZSB1c2UgdGhlbSBkdXJpbmcgT1NSIGV4aXQKQEAgLTE0Myw3ICsxNDIsOCBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBiZSBkZWFkLgogCiAgICAg
ICAgICAgICAgICAgICAgICAgICBDb2RlT3JpZ2luIGV4aXRPcmlnaW4gPSBub2RlLT5vcmlnaW4u
Zm9yRXhpdDsKLSAgICAgICAgICAgICAgICAgICAgICAgIEF2YWlsYWJpbGl0eU1hcCYgYXZhaWxh
YmlsaXR5TWFwID0gY2FsY3VsYXRvci5tX2F2YWlsYWJpbGl0eTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBhdmFpbGFiaWxpdHlNYXAgc2VlbXMgbGlrZSBpdCBzaG91bGQgYmUg
YWJsZSB0byBiZSBhIHJlZmVyZW5jZSB0byB0aGUgY2FsY3VsYXRvcidzIG1hcC4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTY3NQorICAgICAgICAgICAgICAgICAg
ICAgICAgQXZhaWxhYmlsaXR5TWFwIGF2YWlsYWJpbGl0eU1hcCA9IGNhbGN1bGF0b3IubV9hdmFp
bGFiaWxpdHk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlNYXAucHJ1bmVC
eUxpdmVuZXNzKG1fZ3JhcGgsIGV4aXRPcmlnaW4pOwogCiAgICAgICAgICAgICAgICAgICAgICAg
ICBmb3IgKGF1dG8gaGVhcFBhaXIgOiBhdmFpbGFiaWxpdHlNYXAubV9oZWFwKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNhbGN1bGF0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDYWxjdWxhdG9yLmNwcAppbmRleCBiMmZmNGFj
Njg5NjBhYmEwYjk2ZGQwOGE5OTIwZjE4NGFjYTZlNGNhLi42Njk5YzkwZjE0NTE3M2Y5NDM0YjI3
NmFjYmU3NWZmNWY5ZTI1NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NTQUNhbGN1bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U1NBQ2FsY3VsYXRvci5jcHAKQEAgLTExNSwxNiArMTE1LDE2IEBAIHZvaWQgU1NBQ2FsY3VsYXRv
cjo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgICAgICBvdXQucHJpbnQoY29tbWEp
OwogICAgICAgICBtX3ZhcmlhYmxlc1tpXS5kdW1wVmVyYm9zZShvdXQpOwogICAgIH0KLSAgICBv
dXQucHJpbnQoIl0sIERlZnM6IFsiKTsKKyAgICBvdXQucHJpbnQoIl0sIFxuRGVmczogWyIpOwog
ICAgIGNvbW1hID0gQ29tbWFQcmludGVyKCk7CiAgICAgZm9yIChEZWYqIGRlZiA6IGNvbnN0X2Nh
c3Q8U1NBQ2FsY3VsYXRvcio+KHRoaXMpLT5tX2RlZnMpCiAgICAgICAgIG91dC5wcmludChjb21t
YSwgKmRlZik7Ci0gICAgb3V0LnByaW50KCJdLCBQaGlzOiBbIik7CisgICAgb3V0LnByaW50KCJd
LCBcblBoaXM6IFsiKTsKICAgICBjb21tYSA9IENvbW1hUHJpbnRlcigpOwogICAgIGZvciAoRGVm
KiBkZWYgOiBjb25zdF9jYXN0PFNTQUNhbGN1bGF0b3IqPih0aGlzKS0+bV9waGlzKQogICAgICAg
ICBvdXQucHJpbnQoY29tbWEsICpkZWYpOwotICAgIG91dC5wcmludCgiXSwgQmxvY2sgZGF0YTog
WyIpOwotICAgIGNvbW1hID0gQ29tbWFQcmludGVyKCk7CisgICAgb3V0LnByaW50KCJdLCBcbkJs
b2NrIGRhdGE6IFsiKTsKKyAgICBjb21tYSA9IENvbW1hUHJpbnRlcigiLFxuIik7CiAgICAgZm9y
IChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSAwOyBibG9ja0luZGV4IDwgbV9ncmFwaC5udW1CbG9j
a3MoKTsgKytibG9ja0luZGV4KSB7CiAgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9ncmFw
aC5ibG9jayhibG9ja0luZGV4KTsKICAgICAgICAgaWYgKCFibG9jaykK
</data>

          </attachment>
      

    </bug>

</bugzilla>