<?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>234324</bug_id>
          
          <creation_ts>2021-12-14 15:55:34 -0800</creation_ts>
          <short_desc>Clean-up: Adopt Page::forEachDocument in some missed spots</short_desc>
          <delta_ts>2021-12-15 16:42:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824163</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-14 15:55:34 -0800</bug_when>
    <thetext>We missed some spots after Bug 203811 (and Darin&apos;s refactoring work in Bug 205567). We should use a consistent idiom for these types of loops.

&lt;rdar://problem/85443831&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824165</commentid>
    <comment_count>1</comment_count>
      <attachid>447172</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-14 15:58:19 -0800</bug_when>
    <thetext>Created attachment 447172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824167</commentid>
    <comment_count>2</comment_count>
      <attachid>447172</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-14 16:00:25 -0800</bug_when>
    <thetext>Comment on attachment 447172
Patch

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

&gt; Source/WebCore/page/ios/FrameIOS.mm:641
&gt; +static void forEachDocument(Frame&amp; startFrame, const Function&lt;void(Document&amp;)&gt;&amp; functor)

@Darin: Would it be better to use m_page-&gt;forEachDocument instead of this local implementation? I wasn&apos;t sure if we would always have a page object at the time these calls were made, and Frame::document() doesn&apos;t pass through m_page to do its work, so it wasn&apos;t obvious that it was always the same behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824174</commentid>
    <comment_count>3</comment_count>
      <attachid>447176</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-14 16:34:18 -0800</bug_when>
    <thetext>Created attachment 447176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824182</commentid>
    <comment_count>4</comment_count>
      <attachid>447180</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-14 17:01:13 -0800</bug_when>
    <thetext>Created attachment 447180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824198</commentid>
    <comment_count>5</comment_count>
      <attachid>447172</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-14 17:55:25 -0800</bug_when>
    <thetext>Comment on attachment 447172
Patch

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

&gt;&gt; Source/WebCore/page/ios/FrameIOS.mm:641
&gt;&gt; +static void forEachDocument(Frame&amp; startFrame, const Function&lt;void(Document&amp;)&gt;&amp; functor)
&gt; 
&gt; @Darin: Would it be better to use m_page-&gt;forEachDocument instead of this local implementation? I wasn&apos;t sure if we would always have a page object at the time these calls were made, and Frame::document() doesn&apos;t pass through m_page to do its work, so it wasn&apos;t obvious that it was always the same behavior.

We should not have two copies of the function.

We can refactor the Page one so you can also call it on a main frame, I suppose. I think what I would do is expose a function:

    Page::forEachDocumentFromMainFrame(Frame&amp; ...)

Keep it in Page rather than moving it here to Frame. And certainly not to FrameIOS. It would be nice some day to not need it at all. Then Page can use forEachDocumentFromMainFrame to implement forEachDocument. Refactor them like that.

While it might seem strange to have the function there, I think it’s a good place for it. If we had the MainFrame class (something I added and then removed), maybe we’d keep it there instead.

I’m pretty sure we don’t really need to dispatch pagehide or pageshow events to frames without a page, so I suspect that eventually we can just delete those functions. It also seems messy to have functions on Frame like dispatchPageHideEventBeforePause and dispatchPageShowEventBeforeResume that are only to be called on main frames. We try to put functions like that on Page instead. So I think in the end we will move them there and then be able to get rid of Page::forEachDocumentFromMainFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824489</commentid>
    <comment_count>6</comment_count>
      <attachid>447275</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-15 12:34:54 -0800</bug_when>
    <thetext>Created attachment 447275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824491</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-15 12:36:14 -0800</bug_when>
    <thetext>This patch attempts to adopt Darin&apos;s recommended approach. Let&apos;s see what EWS thinks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824500</commentid>
    <comment_count>8</comment_count>
      <attachid>447278</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-15 12:44:56 -0800</bug_when>
    <thetext>Created attachment 447278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824505</commentid>
    <comment_count>9</comment_count>
      <attachid>447278</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-15 12:56:21 -0800</bug_when>
    <thetext>Comment on attachment 447278
Patch

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

Looks really good.

&gt; Source/WebCore/page/Page.h:895
&gt; +    static void forEachDocumentFromFrame(const Frame&amp;, const Function&lt;void(Document&amp;)&gt;&amp;);

The callers all seem to be passing the main frame, although orientationChanged doesn’t make it explicit. I suggest we say &quot;FromMainFrame&quot; here.

&gt; Source/WebCore/page/Page.h:896
&gt; +    void forEachFrameFromMainFrame(const Function&lt;void(Frame&amp;)&gt;&amp;);

This could just be named forEachFrame without mention of the main frame; I don’t see any main frame here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824548</commentid>
    <comment_count>10</comment_count>
      <attachid>447285</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-15 14:36:51 -0800</bug_when>
    <thetext>Created attachment 447285
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824555</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-15 15:21:38 -0800</bug_when>
    <thetext>Committed r287110 (?): &lt;https://commits.webkit.org/r287110&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447285.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824565</commentid>
    <comment_count>12</comment_count>
      <attachid>447285</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-12-15 15:44:00 -0800</bug_when>
    <thetext>Comment on attachment 447285
Patch for landing

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

&gt; Source/WebCore/page/Page.h:896
&gt; +    void forEachFrameFromMainFrame(const Function&lt;void(Frame&amp;)&gt;&amp;);

This adds ambiguity. Why is it different than forEachDocument()? Should it be forEachFrameFromFrame() and not assume the passed Frame is the main frame?

&gt; Source/WebCore/page/ios/FrameIOS.mm:649
&gt; +    Page::forEachDocumentFromMainFrame(*this, [pagehideEvent = eventNames().pagehideEvent, mainDocument = document()](Document&amp; document) {
&gt; +        document.domWindow()-&gt;dispatchEvent(PageTransitionEvent::create(pagehideEvent, true), mainDocument);
&gt; +    });

Why doesn&apos;t this just use forEachDocument()? Is there some subtlety where mainFrame() is something different than usual?

&gt; Source/WebCore/page/ios/FrameIOS.mm:660
&gt; +    Page::forEachDocumentFromMainFrame(*this, [pageshowEvent = eventNames().pageshowEvent, mainDocument = document()](Document&amp; document) {
&gt; +        document.domWindow()-&gt;dispatchEvent(PageTransitionEvent::create(pageshowEvent, true), mainDocument);
&gt; +    });

Same question</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824568</commentid>
    <comment_count>13</comment_count>
      <attachid>447285</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-15 15:51:14 -0800</bug_when>
    <thetext>Comment on attachment 447285
Patch for landing

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

&gt;&gt; Source/WebCore/page/Page.h:896
&gt;&gt; +    void forEachFrameFromMainFrame(const Function&lt;void(Frame&amp;)&gt;&amp;);
&gt; 
&gt; This adds ambiguity. Why is it different than forEachDocument()? Should it be forEachFrameFromFrame() and not assume the passed Frame is the main frame?

I made the naming match the new static method we added, since it always starts from the main frame, not an arbitrary frame. It might have been good to name the &apos;forEachDocument&apos; method &apos;forEachDocumentFromMainFrame&apos;.

&gt;&gt; Source/WebCore/page/ios/FrameIOS.mm:649
&gt;&gt; +    });
&gt; 
&gt; Why doesn&apos;t this just use forEachDocument()? Is there some subtlety where mainFrame() is something different than usual?

forEachDocument is a method on the Page class, and &apos;m_page&apos; may be nullptr. I suppose this page hide event is only likely to be called if it is non-null, but it wasn&apos;t clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824582</commentid>
    <comment_count>14</comment_count>
      <attachid>447285</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-15 16:42:13 -0800</bug_when>
    <thetext>Comment on attachment 447285
Patch for landing

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

&gt;&gt;&gt; Source/WebCore/page/Page.h:896
&gt;&gt;&gt; +    void forEachFrameFromMainFrame(const Function&lt;void(Frame&amp;)&gt;&amp;);
&gt;&gt; 
&gt;&gt; This adds ambiguity. Why is it different than forEachDocument()? Should it be forEachFrameFromFrame() and not assume the passed Frame is the main frame?
&gt; 
&gt; I made the naming match the new static method we added, since it always starts from the main frame, not an arbitrary frame. It might have been good to name the &apos;forEachDocument&apos; method &apos;forEachDocumentFromMainFrame&apos;.

The reason I suggested &quot;FromMainFrame&quot; for the new function is to explain why the caller has to pass a frame.

I agree with Simon: The core functions themselves need not mention the &quot;main frame&quot;. They iterate all frames and all documents. The role of the main frame is an unimportant implementation detail that should not be in the function names.

We should immediately rename forEachFrameFromMainFrame to just forEachFrame. The odd function out is forEachDocumentFromMainFrame, and it’s something we should intend to remove (see below).

&gt;&gt;&gt; Source/WebCore/page/ios/FrameIOS.mm:649
&gt;&gt;&gt; +    });
&gt;&gt; 
&gt;&gt; Why doesn&apos;t this just use forEachDocument()? Is there some subtlety where mainFrame() is something different than usual?
&gt; 
&gt; forEachDocument is a method on the Page class, and &apos;m_page&apos; may be nullptr. I suppose this page hide event is only likely to be called if it is non-null, but it wasn&apos;t clear.

Our ambition should be to soon change this to use Page::forEachDocument, and delete forEachDocumentFromMainFrame. We are adding this mainly to bridge us for now without making a riskier change at this moment about whether this works when page is null.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447172</attachid>
            <date>2021-12-14 15:58:19 -0800</date>
            <delta_ts>2021-12-14 17:08:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234324-20211214155819.patch</filename>
            <type>text/plain</type>
            <size>6397</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcyOTI5NzYwYjVmNjc4
YjM3OTQzZTFiNDIyMzI5YzNjNTI4ZjVkYS4uZTUxZWZjY2YyNjYxMjNmOTM5MWFmZjZkNjAxMGFi
ZjkyY2JmNmZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEyLTE0ICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuLXVwOiBBZG9w
dCBQYWdlOjpmb3JFYWNoRG9jdW1lbnQgaW4gc29tZSBtaXNzZWQgc3BvdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDMyNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODU0NDM4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3dpdGNoIG1hbnVhbCBsb29wcyB0byBvdXIgJ2ZvckVhY2hEb2N1bWVu
dCcgc3R5bGUgaW4gYSBmZXcgcGxhY2VzIHRoYXQgd2VyZSBtaXNzZWQKKyAgICAgICAgaW4gZWFy
bGllciByZWZhY3RvcmluZy4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6flBhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OnVzZXJBZ2VudENoYW5nZWQpOgorICAgICAgICAqIHBhZ2UvaW9zL0Zy
YW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRpc3BhdGNoUGFnZUhpZGVFdmVu
dEJlZm9yZVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkaXNwYXRjaFBhZ2VTaG93
RXZlbnRCZWZvcmVSZXN1bWUpOgorCiAyMDIxLTEyLTE0ICBUeWxlciBXaWxjb2NrICA8dHlsZXJf
d0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogdGVzdCB3ZWJwYWdlIGtlZXBz
IHJlbG9hZGluZyB3aGVuIEluc3BlY3RvciBpcyBvcGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA5
N2UwMWI1YzY5NzZkNjdmMGYzYmRmY2VkZWM2YWJjZjA0ODUyYzQ0Li4yMGQ1MTFlNDIzNjcxMTRk
NTBkMGM1ZDhjMTBmNjc0ODM2NjZlMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTQwNywxMCAr
NDA3LDEwIEBAIFBhZ2U6On5QYWdlKCkKIAogICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+aW5z
cGVjdGVkUGFnZURlc3Ryb3llZCgpOwogCi0gICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZy
YW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKLSAg
ICAgICAgZnJhbWUtPndpbGxEZXRhY2hQYWdlKCk7Ci0gICAgICAgIGZyYW1lLT5kZXRhY2hGcm9t
UGFnZSgpOwotICAgIH0KKyAgICBmb3JFYWNoRnJhbWUoW10gKEZyYW1lJiBmcmFtZSkgeworICAg
ICAgICBmcmFtZS53aWxsRGV0YWNoUGFnZSgpOworICAgICAgICBmcmFtZS5kZXRhY2hGcm9tUGFn
ZSgpOworICAgIH0pOwogCiAgICAgaWYgKG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAgICAg
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnBhZ2VEZXN0cm95ZWQoKTsKQEAgLTEyNDMsMTAgKzEy
NDMsOSBAQCB2b2lkIFBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJ
RCBkaXNwbGF5SUQsIHN0ZDo6b3B0aW9uYWw8RnJhbQogICAgICAgICBtX2Rpc3BsYXlOb21pbmFs
RnJhbWVzUGVyU2Vjb25kID0gRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcigpLm5vbWluYWxGcmFtZXNQZXJTZWNvbmRGb3JEaXNwbGF5KG1fZGlzcGxheUlELCBjaHJv
bWUoKS5jbGllbnQoKS5kaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkpOwogICAgIH0KIAot
ICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KSkKLSAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53aW5kb3dTY3JlZW5EaWRDaGFuZ2Uo
ZGlzcGxheUlEKTsKLSAgICB9CisgICAgZm9yRWFjaERvY3VtZW50KFsmXSAoRG9jdW1lbnQmIGRv
Y3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5
SUQpOworICAgIH0pOwogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGF1dG8gbW9kZSA9IHByZWZl
cnJlZER5bmFtaWNSYW5nZU1vZGUobWFpbkZyYW1lKCkudmlldygpKTsKQEAgLTE5ODQsMTMgKzE5
ODMsMTIgQEAgY29uc3QgU3RyaW5nJiBQYWdlOjp1c2VyU3R5bGVTaGVldCgpIGNvbnN0CiAKIHZv
aWQgUGFnZTo6dXNlckFnZW50Q2hhbmdlZCgpCiB7Ci0gICAgZm9yIChhdXRvKiBmcmFtZSA9ICZt
X21haW5GcmFtZS5nZXQoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5l
eHQoKSkgewotICAgICAgICBhdXRvKiB3aW5kb3cgPSBmcmFtZS0+d2luZG93KCk7Ci0gICAgICAg
IGlmICghd2luZG93KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChhdXRvKiBu
YXZpZ2F0b3IgPSB3aW5kb3ctPm9wdGlvbmFsTmF2aWdhdG9yKCkpCi0gICAgICAgICAgICBuYXZp
Z2F0b3ItPnVzZXJBZ2VudENoYW5nZWQoKTsKLSAgICB9CisgICAgZm9yRWFjaERvY3VtZW50KFtd
IChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvY3Vt
ZW50LmRvbVdpbmRvdygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogbmF2aWdhdG9yID0gd2lu
ZG93LT5vcHRpb25hbE5hdmlnYXRvcigpKQorICAgICAgICAgICAgICAgIG5hdmlnYXRvci0+dXNl
ckFnZW50Q2hhbmdlZCgpOworICAgICAgICB9CisgICAgfSk7CiB9CiAKIHZvaWQgUGFnZTo6aW52
YWxpZGF0ZVN0eWxlc0ZvckFsbExpbmtzKCkKQEAgLTM0MjgsNiArMzQyNiwxNiBAQCB2b2lkIFBh
Z2U6OmZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVt
ZW50Jik+JiBmdW5jdG9yKQogI2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6Zm9yRWFjaEZyYW1lKGNv
bnN0IEZ1bmN0aW9uPHZvaWQoRnJhbWUmKT4mIGZ1bmN0b3IpCit7CisgICAgVmVjdG9yPFJlZjxG
cmFtZT4+IGZyYW1lczsKKyAgICBmb3IgKGF1dG8qIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQorICAgICAgICBmcmFtZXMu
YXBwZW5kKCpmcmFtZSk7CisKKyAgICBmb3IgKGF1dG8mIGZyYW1lIDogZnJhbWVzKQorICAgICAg
ICBmdW5jdG9yKGZyYW1lKTsKK30KKwogYm9vbCBQYWdlOjphbGxvd3NMb2FkRnJvbVVSTChjb25z
dCBVUkwmIHVybCwgTWFpbkZyYW1lTWFpblJlc291cmNlIG1haW5GcmFtZU1haW5SZXNvdXJjZSkg
Y29uc3QKIHsKICAgICBpZiAobWFpbkZyYW1lTWFpblJlc291cmNlID09IE1haW5GcmFtZU1haW5S
ZXNvdXJjZTo6Tm8gJiYgIW1fbG9hZHNTdWJyZXNvdXJjZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGVi
ODUwYWZhMzM2NDhmZjg3ZTg3NmExMWQzNmE0MTk0NzkzMzE1YWYuLmNiM2YzN2Q1NTUxYzIyYjM1
MTJjMjEwODQ2MzFjZGNlMzU1NTMxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04OTIsNiArODkyLDcg
QEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmb3JFYWNoRG9jdW1lbnQoY29u
c3QgRnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYpIGNvbnN0OwogICAgIHZvaWQgZm9yRWFjaE1l
ZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mKTsKKyAg
ICB2b2lkIGZvckVhY2hGcmFtZShjb25zdCBGdW5jdGlvbjx2b2lkKEZyYW1lJik+Jik7CiAKICAg
ICBib29sIHNob3VsZERpc2FibGVDb3JzRm9yUmVxdWVzdFRvKGNvbnN0IFVSTCYpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCmluZGV4IGZmNzY5YzczOWFhZWE2NGRiN2Y3
MDdiNDkwYmQ1YzBhMWM2MzRkYzguLjJjNDZlNDlmY2RjYmJlOGNhZGI4NTZmZDc5MTQxYzBiOWQ1
ZmFkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCkBAIC02MzgsMTQgKzYzOCwz
MSBAQCB2b2lkIEZyYW1lOjpzZXRUaW1lcnNQYXVzZWQoYm9vbCBwYXVzZWQpCiAgICAgICAgIG1f
cGFnZS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKIH0KIAorc3RhdGlj
IHZvaWQgZm9yRWFjaERvY3VtZW50KEZyYW1lJiBzdGFydEZyYW1lLCBjb25zdCBGdW5jdGlvbjx2
b2lkKERvY3VtZW50Jik+JiBmdW5jdG9yKQoreworICAgIGlmICghc3RhcnRGcmFtZS5pc01haW5G
cmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8UmVmPERvY3VtZW50Pj4gZG9j
dW1lbnRzOworICAgIGZvciAoYXV0byogZnJhbWUgPSAmc3RhcnRGcmFtZTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICBhdXRvKiBkb2N1bWVu
dCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgICAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIGRvY3VtZW50cy5hcHBlbmQoKmRvY3VtZW50KTsKKyAgICB9
CisgICAgZm9yIChhdXRvJiBkb2N1bWVudCA6IGRvY3VtZW50cykKKyAgICAgICAgZnVuY3Rvcihk
b2N1bWVudCk7Cit9CisKIHZvaWQgRnJhbWU6OmRpc3BhdGNoUGFnZUhpZGVFdmVudEJlZm9yZVBh
dXNlKCkKIHsKICAgICBBU1NFUlQoaXNNYWluRnJhbWUoKSk7CiAgICAgaWYgKCFpc01haW5GcmFt
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHRoaXM7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KHRoaXMpKQotICAgICAgICBm
cmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRp
b25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCB0cnVlKSwgZG9jdW1l
bnQoKSk7CisgICAgZm9yRWFjaERvY3VtZW50KCp0aGlzLCBbcGFnZUhpZGVFdmVudCA9IGV2ZW50
TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCBtYWluRG9jdW1lbnQgPSBkb2N1bWVudCgpXShEb2N1bWVu
dCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQuZG9tV2luZG93KCktPmRpc3BhdGNoRXZl
bnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKHBhZ2VoaWRlRXZlbnQsIHRydWUpLCBtYWlu
RG9jdW1lbnQpOworICAgIH0pCiB9CiAKIHZvaWQgRnJhbWU6OmRpc3BhdGNoUGFnZVNob3dFdmVu
dEJlZm9yZVJlc3VtZSgpCkBAIC02NTQsOCArNjcxLDkgQEAgdm9pZCBGcmFtZTo6ZGlzcGF0Y2hQ
YWdlU2hvd0V2ZW50QmVmb3JlUmVzdW1lKCkKICAgICBpZiAoIWlzTWFpbkZyYW1lKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gdGhpczsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQodGhpcykpCi0gICAgICAgIGZyYW1lLT5kb2N1
bWVudCgpLT5kb21XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChQYWdlVHJhbnNpdGlvbkV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnBhZ2VzaG93RXZlbnQsIHRydWUpLCBkb2N1bWVudCgpKTsKKyAg
ICBmb3JFYWNoRG9jdW1lbnQoKnRoaXMsIFtwYWdlc2hvd0V2ZW50ID0gZXZlbnROYW1lcygpLnBh
Z2VzaG93RXZlbnQsIG1haW5Eb2N1bWVudCA9IGRvY3VtZW50KCldKERvY3VtZW50JiBkb2N1bWVu
dCkgeworICAgICAgICBkb2N1bWVudC5kb21XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChQYWdlVHJh
bnNpdGlvbkV2ZW50OjpjcmVhdGUocGFnZXNob3dFdmVudCwgdHJ1ZSksIG1haW5Eb2N1bWVudCk7
CisgICAgfSkKIH0KIAogdm9pZCBGcmFtZTo6c2V0UmFuZ2VkU2VsZWN0aW9uQmFzZVRvQ3VycmVu
dFNlbGVjdGlvbigpCg==
</data>
<flag name="commit-queue"
          id="472747"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447176</attachid>
            <date>2021-12-14 16:34:18 -0800</date>
            <delta_ts>2021-12-14 17:15:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234324-20211214163417.patch</filename>
            <type>text/plain</type>
            <size>6397</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcyOTI5NzYwYjVmNjc4
YjM3OTQzZTFiNDIyMzI5YzNjNTI4ZjVkYS4uZTUxZWZjY2YyNjYxMjNmOTM5MWFmZjZkNjAxMGFi
ZjkyY2JmNmZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEyLTE0ICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuLXVwOiBBZG9w
dCBQYWdlOjpmb3JFYWNoRG9jdW1lbnQgaW4gc29tZSBtaXNzZWQgc3BvdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDMyNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODU0NDM4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3dpdGNoIG1hbnVhbCBsb29wcyB0byBvdXIgJ2ZvckVhY2hEb2N1bWVu
dCcgc3R5bGUgaW4gYSBmZXcgcGxhY2VzIHRoYXQgd2VyZSBtaXNzZWQKKyAgICAgICAgaW4gZWFy
bGllciByZWZhY3RvcmluZy4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6flBhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OnVzZXJBZ2VudENoYW5nZWQpOgorICAgICAgICAqIHBhZ2UvaW9zL0Zy
YW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRpc3BhdGNoUGFnZUhpZGVFdmVu
dEJlZm9yZVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkaXNwYXRjaFBhZ2VTaG93
RXZlbnRCZWZvcmVSZXN1bWUpOgorCiAyMDIxLTEyLTE0ICBUeWxlciBXaWxjb2NrICA8dHlsZXJf
d0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogdGVzdCB3ZWJwYWdlIGtlZXBz
IHJlbG9hZGluZyB3aGVuIEluc3BlY3RvciBpcyBvcGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA5
N2UwMWI1YzY5NzZkNjdmMGYzYmRmY2VkZWM2YWJjZjA0ODUyYzQ0Li4yMGQ1MTFlNDIzNjcxMTRk
NTBkMGM1ZDhjMTBmNjc0ODM2NjZlMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTQwNywxMCAr
NDA3LDEwIEBAIFBhZ2U6On5QYWdlKCkKIAogICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+aW5z
cGVjdGVkUGFnZURlc3Ryb3llZCgpOwogCi0gICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZy
YW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKLSAg
ICAgICAgZnJhbWUtPndpbGxEZXRhY2hQYWdlKCk7Ci0gICAgICAgIGZyYW1lLT5kZXRhY2hGcm9t
UGFnZSgpOwotICAgIH0KKyAgICBmb3JFYWNoRnJhbWUoW10gKEZyYW1lJiBmcmFtZSkgeworICAg
ICAgICBmcmFtZS53aWxsRGV0YWNoUGFnZSgpOworICAgICAgICBmcmFtZS5kZXRhY2hGcm9tUGFn
ZSgpOworICAgIH0pOwogCiAgICAgaWYgKG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAgICAg
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnBhZ2VEZXN0cm95ZWQoKTsKQEAgLTEyNDMsMTAgKzEy
NDMsOSBAQCB2b2lkIFBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJ
RCBkaXNwbGF5SUQsIHN0ZDo6b3B0aW9uYWw8RnJhbQogICAgICAgICBtX2Rpc3BsYXlOb21pbmFs
RnJhbWVzUGVyU2Vjb25kID0gRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcigpLm5vbWluYWxGcmFtZXNQZXJTZWNvbmRGb3JEaXNwbGF5KG1fZGlzcGxheUlELCBjaHJv
bWUoKS5jbGllbnQoKS5kaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkpOwogICAgIH0KIAot
ICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KSkKLSAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53aW5kb3dTY3JlZW5EaWRDaGFuZ2Uo
ZGlzcGxheUlEKTsKLSAgICB9CisgICAgZm9yRWFjaERvY3VtZW50KFsmXSAoRG9jdW1lbnQmIGRv
Y3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5
SUQpOworICAgIH0pOwogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGF1dG8gbW9kZSA9IHByZWZl
cnJlZER5bmFtaWNSYW5nZU1vZGUobWFpbkZyYW1lKCkudmlldygpKTsKQEAgLTE5ODQsMTMgKzE5
ODMsMTIgQEAgY29uc3QgU3RyaW5nJiBQYWdlOjp1c2VyU3R5bGVTaGVldCgpIGNvbnN0CiAKIHZv
aWQgUGFnZTo6dXNlckFnZW50Q2hhbmdlZCgpCiB7Ci0gICAgZm9yIChhdXRvKiBmcmFtZSA9ICZt
X21haW5GcmFtZS5nZXQoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5l
eHQoKSkgewotICAgICAgICBhdXRvKiB3aW5kb3cgPSBmcmFtZS0+d2luZG93KCk7Ci0gICAgICAg
IGlmICghd2luZG93KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChhdXRvKiBu
YXZpZ2F0b3IgPSB3aW5kb3ctPm9wdGlvbmFsTmF2aWdhdG9yKCkpCi0gICAgICAgICAgICBuYXZp
Z2F0b3ItPnVzZXJBZ2VudENoYW5nZWQoKTsKLSAgICB9CisgICAgZm9yRWFjaERvY3VtZW50KFtd
IChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvY3Vt
ZW50LmRvbVdpbmRvdygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogbmF2aWdhdG9yID0gd2lu
ZG93LT5vcHRpb25hbE5hdmlnYXRvcigpKQorICAgICAgICAgICAgICAgIG5hdmlnYXRvci0+dXNl
ckFnZW50Q2hhbmdlZCgpOworICAgICAgICB9CisgICAgfSk7CiB9CiAKIHZvaWQgUGFnZTo6aW52
YWxpZGF0ZVN0eWxlc0ZvckFsbExpbmtzKCkKQEAgLTM0MjgsNiArMzQyNiwxNiBAQCB2b2lkIFBh
Z2U6OmZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVt
ZW50Jik+JiBmdW5jdG9yKQogI2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6Zm9yRWFjaEZyYW1lKGNv
bnN0IEZ1bmN0aW9uPHZvaWQoRnJhbWUmKT4mIGZ1bmN0b3IpCit7CisgICAgVmVjdG9yPFJlZjxG
cmFtZT4+IGZyYW1lczsKKyAgICBmb3IgKGF1dG8qIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQorICAgICAgICBmcmFtZXMu
YXBwZW5kKCpmcmFtZSk7CisKKyAgICBmb3IgKGF1dG8mIGZyYW1lIDogZnJhbWVzKQorICAgICAg
ICBmdW5jdG9yKGZyYW1lKTsKK30KKwogYm9vbCBQYWdlOjphbGxvd3NMb2FkRnJvbVVSTChjb25z
dCBVUkwmIHVybCwgTWFpbkZyYW1lTWFpblJlc291cmNlIG1haW5GcmFtZU1haW5SZXNvdXJjZSkg
Y29uc3QKIHsKICAgICBpZiAobWFpbkZyYW1lTWFpblJlc291cmNlID09IE1haW5GcmFtZU1haW5S
ZXNvdXJjZTo6Tm8gJiYgIW1fbG9hZHNTdWJyZXNvdXJjZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGVi
ODUwYWZhMzM2NDhmZjg3ZTg3NmExMWQzNmE0MTk0NzkzMzE1YWYuLmNiM2YzN2Q1NTUxYzIyYjM1
MTJjMjEwODQ2MzFjZGNlMzU1NTMxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04OTIsNiArODkyLDcg
QEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmb3JFYWNoRG9jdW1lbnQoY29u
c3QgRnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYpIGNvbnN0OwogICAgIHZvaWQgZm9yRWFjaE1l
ZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mKTsKKyAg
ICB2b2lkIGZvckVhY2hGcmFtZShjb25zdCBGdW5jdGlvbjx2b2lkKEZyYW1lJik+Jik7CiAKICAg
ICBib29sIHNob3VsZERpc2FibGVDb3JzRm9yUmVxdWVzdFRvKGNvbnN0IFVSTCYpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCmluZGV4IGZmNzY5YzczOWFhZWE2NGRiN2Y3
MDdiNDkwYmQ1YzBhMWM2MzRkYzguLjQ3NWQ5ZDc4MDk5MWQ3OGYzYjVmZmZhODZiYzRjZTA0ZDlm
NmFmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCkBAIC02MzgsMTQgKzYzOCwz
MSBAQCB2b2lkIEZyYW1lOjpzZXRUaW1lcnNQYXVzZWQoYm9vbCBwYXVzZWQpCiAgICAgICAgIG1f
cGFnZS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKIH0KIAorc3RhdGlj
IHZvaWQgZm9yRWFjaERvY3VtZW50KEZyYW1lJiBzdGFydEZyYW1lLCBjb25zdCBGdW5jdGlvbjx2
b2lkKERvY3VtZW50Jik+JiBmdW5jdG9yKQoreworICAgIGlmICghc3RhcnRGcmFtZS5pc01haW5G
cmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8UmVmPERvY3VtZW50Pj4gZG9j
dW1lbnRzOworICAgIGZvciAoYXV0byogZnJhbWUgPSAmc3RhcnRGcmFtZTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICBhdXRvKiBkb2N1bWVu
dCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgICAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIGRvY3VtZW50cy5hcHBlbmQoKmRvY3VtZW50KTsKKyAgICB9
CisgICAgZm9yIChhdXRvJiBkb2N1bWVudCA6IGRvY3VtZW50cykKKyAgICAgICAgZnVuY3Rvcihk
b2N1bWVudCk7Cit9CisKIHZvaWQgRnJhbWU6OmRpc3BhdGNoUGFnZUhpZGVFdmVudEJlZm9yZVBh
dXNlKCkKIHsKICAgICBBU1NFUlQoaXNNYWluRnJhbWUoKSk7CiAgICAgaWYgKCFpc01haW5GcmFt
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHRoaXM7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KHRoaXMpKQotICAgICAgICBm
cmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRp
b25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCB0cnVlKSwgZG9jdW1l
bnQoKSk7CisgICAgZm9yRWFjaERvY3VtZW50KCp0aGlzLCBbcGFnZWhpZGVFdmVudCA9IGV2ZW50
TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCBtYWluRG9jdW1lbnQgPSBkb2N1bWVudCgpXShEb2N1bWVu
dCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQuZG9tV2luZG93KCktPmRpc3BhdGNoRXZl
bnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKHBhZ2VoaWRlRXZlbnQsIHRydWUpLCBtYWlu
RG9jdW1lbnQpOworICAgIH0pCiB9CiAKIHZvaWQgRnJhbWU6OmRpc3BhdGNoUGFnZVNob3dFdmVu
dEJlZm9yZVJlc3VtZSgpCkBAIC02NTQsOCArNjcxLDkgQEAgdm9pZCBGcmFtZTo6ZGlzcGF0Y2hQ
YWdlU2hvd0V2ZW50QmVmb3JlUmVzdW1lKCkKICAgICBpZiAoIWlzTWFpbkZyYW1lKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gdGhpczsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQodGhpcykpCi0gICAgICAgIGZyYW1lLT5kb2N1
bWVudCgpLT5kb21XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChQYWdlVHJhbnNpdGlvbkV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnBhZ2VzaG93RXZlbnQsIHRydWUpLCBkb2N1bWVudCgpKTsKKyAg
ICBmb3JFYWNoRG9jdW1lbnQoKnRoaXMsIFtwYWdlc2hvd0V2ZW50ID0gZXZlbnROYW1lcygpLnBh
Z2VzaG93RXZlbnQsIG1haW5Eb2N1bWVudCA9IGRvY3VtZW50KCldKERvY3VtZW50JiBkb2N1bWVu
dCkgeworICAgICAgICBkb2N1bWVudC5kb21XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChQYWdlVHJh
bnNpdGlvbkV2ZW50OjpjcmVhdGUocGFnZXNob3dFdmVudCwgdHJ1ZSksIG1haW5Eb2N1bWVudCk7
CisgICAgfSkKIH0KIAogdm9pZCBGcmFtZTo6c2V0UmFuZ2VkU2VsZWN0aW9uQmFzZVRvQ3VycmVu
dFNlbGVjdGlvbigpCg==
</data>
<flag name="commit-queue"
          id="472748"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447180</attachid>
            <date>2021-12-14 17:01:13 -0800</date>
            <delta_ts>2021-12-15 12:34:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234324-20211214170113.patch</filename>
            <type>text/plain</type>
            <size>6399</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcyOTI5NzYwYjVmNjc4
YjM3OTQzZTFiNDIyMzI5YzNjNTI4ZjVkYS4uZTUxZWZjY2YyNjYxMjNmOTM5MWFmZjZkNjAxMGFi
ZjkyY2JmNmZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEyLTE0ICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuLXVwOiBBZG9w
dCBQYWdlOjpmb3JFYWNoRG9jdW1lbnQgaW4gc29tZSBtaXNzZWQgc3BvdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDMyNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODU0NDM4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3dpdGNoIG1hbnVhbCBsb29wcyB0byBvdXIgJ2ZvckVhY2hEb2N1bWVu
dCcgc3R5bGUgaW4gYSBmZXcgcGxhY2VzIHRoYXQgd2VyZSBtaXNzZWQKKyAgICAgICAgaW4gZWFy
bGllciByZWZhY3RvcmluZy4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6flBhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OnVzZXJBZ2VudENoYW5nZWQpOgorICAgICAgICAqIHBhZ2UvaW9zL0Zy
YW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRpc3BhdGNoUGFnZUhpZGVFdmVu
dEJlZm9yZVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkaXNwYXRjaFBhZ2VTaG93
RXZlbnRCZWZvcmVSZXN1bWUpOgorCiAyMDIxLTEyLTE0ICBUeWxlciBXaWxjb2NrICA8dHlsZXJf
d0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogdGVzdCB3ZWJwYWdlIGtlZXBz
IHJlbG9hZGluZyB3aGVuIEluc3BlY3RvciBpcyBvcGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA5
N2UwMWI1YzY5NzZkNjdmMGYzYmRmY2VkZWM2YWJjZjA0ODUyYzQ0Li4yMGQ1MTFlNDIzNjcxMTRk
NTBkMGM1ZDhjMTBmNjc0ODM2NjZlMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTQwNywxMCAr
NDA3LDEwIEBAIFBhZ2U6On5QYWdlKCkKIAogICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+aW5z
cGVjdGVkUGFnZURlc3Ryb3llZCgpOwogCi0gICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZy
YW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKLSAg
ICAgICAgZnJhbWUtPndpbGxEZXRhY2hQYWdlKCk7Ci0gICAgICAgIGZyYW1lLT5kZXRhY2hGcm9t
UGFnZSgpOwotICAgIH0KKyAgICBmb3JFYWNoRnJhbWUoW10gKEZyYW1lJiBmcmFtZSkgeworICAg
ICAgICBmcmFtZS53aWxsRGV0YWNoUGFnZSgpOworICAgICAgICBmcmFtZS5kZXRhY2hGcm9tUGFn
ZSgpOworICAgIH0pOwogCiAgICAgaWYgKG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAgICAg
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnBhZ2VEZXN0cm95ZWQoKTsKQEAgLTEyNDMsMTAgKzEy
NDMsOSBAQCB2b2lkIFBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJ
RCBkaXNwbGF5SUQsIHN0ZDo6b3B0aW9uYWw8RnJhbQogICAgICAgICBtX2Rpc3BsYXlOb21pbmFs
RnJhbWVzUGVyU2Vjb25kID0gRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcigpLm5vbWluYWxGcmFtZXNQZXJTZWNvbmRGb3JEaXNwbGF5KG1fZGlzcGxheUlELCBjaHJv
bWUoKS5jbGllbnQoKS5kaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkpOwogICAgIH0KIAot
ICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KSkKLSAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53aW5kb3dTY3JlZW5EaWRDaGFuZ2Uo
ZGlzcGxheUlEKTsKLSAgICB9CisgICAgZm9yRWFjaERvY3VtZW50KFsmXSAoRG9jdW1lbnQmIGRv
Y3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5
SUQpOworICAgIH0pOwogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGF1dG8gbW9kZSA9IHByZWZl
cnJlZER5bmFtaWNSYW5nZU1vZGUobWFpbkZyYW1lKCkudmlldygpKTsKQEAgLTE5ODQsMTMgKzE5
ODMsMTIgQEAgY29uc3QgU3RyaW5nJiBQYWdlOjp1c2VyU3R5bGVTaGVldCgpIGNvbnN0CiAKIHZv
aWQgUGFnZTo6dXNlckFnZW50Q2hhbmdlZCgpCiB7Ci0gICAgZm9yIChhdXRvKiBmcmFtZSA9ICZt
X21haW5GcmFtZS5nZXQoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5l
eHQoKSkgewotICAgICAgICBhdXRvKiB3aW5kb3cgPSBmcmFtZS0+d2luZG93KCk7Ci0gICAgICAg
IGlmICghd2luZG93KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChhdXRvKiBu
YXZpZ2F0b3IgPSB3aW5kb3ctPm9wdGlvbmFsTmF2aWdhdG9yKCkpCi0gICAgICAgICAgICBuYXZp
Z2F0b3ItPnVzZXJBZ2VudENoYW5nZWQoKTsKLSAgICB9CisgICAgZm9yRWFjaERvY3VtZW50KFtd
IChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvY3Vt
ZW50LmRvbVdpbmRvdygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogbmF2aWdhdG9yID0gd2lu
ZG93LT5vcHRpb25hbE5hdmlnYXRvcigpKQorICAgICAgICAgICAgICAgIG5hdmlnYXRvci0+dXNl
ckFnZW50Q2hhbmdlZCgpOworICAgICAgICB9CisgICAgfSk7CiB9CiAKIHZvaWQgUGFnZTo6aW52
YWxpZGF0ZVN0eWxlc0ZvckFsbExpbmtzKCkKQEAgLTM0MjgsNiArMzQyNiwxNiBAQCB2b2lkIFBh
Z2U6OmZvckVhY2hNZWRpYUVsZW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChIVE1MTWVkaWFFbGVt
ZW50Jik+JiBmdW5jdG9yKQogI2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6Zm9yRWFjaEZyYW1lKGNv
bnN0IEZ1bmN0aW9uPHZvaWQoRnJhbWUmKT4mIGZ1bmN0b3IpCit7CisgICAgVmVjdG9yPFJlZjxG
cmFtZT4+IGZyYW1lczsKKyAgICBmb3IgKGF1dG8qIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQorICAgICAgICBmcmFtZXMu
YXBwZW5kKCpmcmFtZSk7CisKKyAgICBmb3IgKGF1dG8mIGZyYW1lIDogZnJhbWVzKQorICAgICAg
ICBmdW5jdG9yKGZyYW1lKTsKK30KKwogYm9vbCBQYWdlOjphbGxvd3NMb2FkRnJvbVVSTChjb25z
dCBVUkwmIHVybCwgTWFpbkZyYW1lTWFpblJlc291cmNlIG1haW5GcmFtZU1haW5SZXNvdXJjZSkg
Y29uc3QKIHsKICAgICBpZiAobWFpbkZyYW1lTWFpblJlc291cmNlID09IE1haW5GcmFtZU1haW5S
ZXNvdXJjZTo6Tm8gJiYgIW1fbG9hZHNTdWJyZXNvdXJjZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGVi
ODUwYWZhMzM2NDhmZjg3ZTg3NmExMWQzNmE0MTk0NzkzMzE1YWYuLmNiM2YzN2Q1NTUxYzIyYjM1
MTJjMjEwODQ2MzFjZGNlMzU1NTMxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04OTIsNiArODkyLDcg
QEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmb3JFYWNoRG9jdW1lbnQoY29u
c3QgRnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYpIGNvbnN0OwogICAgIHZvaWQgZm9yRWFjaE1l
ZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mKTsKKyAg
ICB2b2lkIGZvckVhY2hGcmFtZShjb25zdCBGdW5jdGlvbjx2b2lkKEZyYW1lJik+Jik7CiAKICAg
ICBib29sIHNob3VsZERpc2FibGVDb3JzRm9yUmVxdWVzdFRvKGNvbnN0IFVSTCYpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCmluZGV4IGZmNzY5YzczOWFhZWE2NGRiN2Y3
MDdiNDkwYmQ1YzBhMWM2MzRkYzguLmVlODE1NzllNjdkNTM2YjJiYmZiNzUxN2YxOGI3NmQ0ZDZl
NTlkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCkBAIC02MzgsMTQgKzYzOCwz
MSBAQCB2b2lkIEZyYW1lOjpzZXRUaW1lcnNQYXVzZWQoYm9vbCBwYXVzZWQpCiAgICAgICAgIG1f
cGFnZS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKIH0KIAorc3RhdGlj
IHZvaWQgZm9yRWFjaERvY3VtZW50KEZyYW1lJiBzdGFydEZyYW1lLCBjb25zdCBGdW5jdGlvbjx2
b2lkKERvY3VtZW50Jik+JiBmdW5jdG9yKQoreworICAgIGlmICghc3RhcnRGcmFtZS5pc01haW5G
cmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8UmVmPERvY3VtZW50Pj4gZG9j
dW1lbnRzOworICAgIGZvciAoYXV0byogZnJhbWUgPSAmc3RhcnRGcmFtZTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICBhdXRvKiBkb2N1bWVu
dCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgICAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIGRvY3VtZW50cy5hcHBlbmQoKmRvY3VtZW50KTsKKyAgICB9
CisgICAgZm9yIChhdXRvJiBkb2N1bWVudCA6IGRvY3VtZW50cykKKyAgICAgICAgZnVuY3Rvcihk
b2N1bWVudCk7Cit9CisKIHZvaWQgRnJhbWU6OmRpc3BhdGNoUGFnZUhpZGVFdmVudEJlZm9yZVBh
dXNlKCkKIHsKICAgICBBU1NFUlQoaXNNYWluRnJhbWUoKSk7CiAgICAgaWYgKCFpc01haW5GcmFt
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHRoaXM7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KHRoaXMpKQotICAgICAgICBm
cmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRp
b25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCB0cnVlKSwgZG9jdW1l
bnQoKSk7CisgICAgZm9yRWFjaERvY3VtZW50KCp0aGlzLCBbcGFnZWhpZGVFdmVudCA9IGV2ZW50
TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCBtYWluRG9jdW1lbnQgPSBkb2N1bWVudCgpXShEb2N1bWVu
dCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQuZG9tV2luZG93KCktPmRpc3BhdGNoRXZl
bnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKHBhZ2VoaWRlRXZlbnQsIHRydWUpLCBtYWlu
RG9jdW1lbnQpOworICAgIH0pOwogfQogCiB2b2lkIEZyYW1lOjpkaXNwYXRjaFBhZ2VTaG93RXZl
bnRCZWZvcmVSZXN1bWUoKQpAQCAtNjU0LDggKzY3MSw5IEBAIHZvaWQgRnJhbWU6OmRpc3BhdGNo
UGFnZVNob3dFdmVudEJlZm9yZVJlc3VtZSgpCiAgICAgaWYgKCFpc01haW5GcmFtZSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHRoaXM7IGZyYW1lOyBmcmFt
ZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KHRoaXMpKQotICAgICAgICBmcmFtZS0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlc2hvd0V2ZW50LCB0cnVlKSwgZG9jdW1lbnQoKSk7Cisg
ICAgZm9yRWFjaERvY3VtZW50KCp0aGlzLCBbcGFnZXNob3dFdmVudCA9IGV2ZW50TmFtZXMoKS5w
YWdlc2hvd0V2ZW50LCBtYWluRG9jdW1lbnQgPSBkb2N1bWVudCgpXShEb2N1bWVudCYgZG9jdW1l
bnQpIHsKKyAgICAgICAgZG9jdW1lbnQuZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRy
YW5zaXRpb25FdmVudDo6Y3JlYXRlKHBhZ2VzaG93RXZlbnQsIHRydWUpLCBtYWluRG9jdW1lbnQp
OworICAgIH0pOwogfQogCiB2b2lkIEZyYW1lOjpzZXRSYW5nZWRTZWxlY3Rpb25CYXNlVG9DdXJy
ZW50U2VsZWN0aW9uKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447275</attachid>
            <date>2021-12-15 12:34:54 -0800</date>
            <delta_ts>2021-12-15 12:59:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234324-20211215123453.patch</filename>
            <type>text/plain</type>
            <size>10617</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcyOTI5NzYwYjVmNjc4
YjM3OTQzZTFiNDIyMzI5YzNjNTI4ZjVkYS4uMzk5ZTA3Yjg5YzNlZTRmMWM3ODUzMGJiZWQwZjk3
Mzg0NDI3M2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTEyLTE0ICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuLXVwOiBBZG9w
dCBQYWdlOjpmb3JFYWNoRG9jdW1lbnQgaW4gc29tZSBtaXNzZWQgc3BvdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDMyNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODU0NDM4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3dpdGNoIG1hbnVhbCBsb29wcyB0byBvdXIgJ2ZvckVhY2hEb2N1bWVu
dCcgc3R5bGUgaW4gYSBmZXcgcGxhY2VzIHRoYXQgd2VyZSBtaXNzZWQKKyAgICAgICAgaW4gZWFy
bGllciByZWZhY3RvcmluZy4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURyYWdnZWRDb250ZW50RG9jdW1lbnRNYXJrZXJz
RnJvbUFsbEZyYW1lc0luUGFnZSk6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6flBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6Zm9yRWFjaERvY3VtZW50RnJvbUZyYW1lKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpmb3JFYWNoRnJhbWVGcm9tTWFpbkZyYW1lKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6dXNlckFnZW50Q2hhbmdlZCk6CisgICAgICAgICogcGFnZS9pb3MvRnJhbWVJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpkaXNwYXRjaFByaW50RXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWU6OmRpc3BhdGNoUGFnZUhpZGVFdmVudEJlZm9yZVBhdXNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lOjpkaXNwYXRjaFBhZ2VTaG93RXZlbnRCZWZvcmVSZXN1bWUpOgorCiAyMDIx
LTEyLTE0ICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogdGVzdCB3ZWJwYWdlIGtlZXBzIHJlbG9hZGluZyB3aGVuIEluc3BlY3RvciBp
cyBvcGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ2Fj
aGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcAppbmRl
eCA0ODQwMGEzMTBlY2UyNGY0OWY4YzAyODBlMDE4MTQwNDZhYzg3NDRkLi4xMGFmN2FhMWRmMTQ2
NTZhOWExNDAxMDU5NGYyOTRlZmUyN2EyYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3Rvcnkv
QmFja0ZvcndhcmRDYWNoZS5jcHAKQEAgLTM4OCwxMCArMzg4LDkgQEAgc3RhdGljIFN0cmluZyBw
cnVuaW5nUmVhc29uVG9EaWFnbm9zdGljTG9nZ2luZ0tleShQcnVuaW5nUmVhc29uIHBydW5pbmdS
ZWFzb24pCiAKIHN0YXRpYyB2b2lkIHNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShQYWdlJiBwYWdl
LCBEb2N1bWVudDo6QmFja0ZvcndhcmRDYWNoZVN0YXRlIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSkK
IHsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZwYWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBk
b2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQtPnNldEJh
Y2tGb3J3YXJkQ2FjaGVTdGF0ZShCYWNrRm9yd2FyZENhY2hlU3RhdGUpOwotICAgIH0KKyAgICBw
YWdlLmZvckVhY2hEb2N1bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBk
b2N1bWVudC5zZXRCYWNrRm9yd2FyZENhY2hlU3RhdGUoQmFja0ZvcndhcmRDYWNoZVN0YXRlKTsK
KyAgICB9KTsKIH0KIAogLy8gV2hlbiBlbnRlcmluZyBiYWNrL2ZvcndhcmQgY2FjaGUsIHRlYXIg
ZG93biB0aGUgcmVuZGVyIHRyZWUgYmVmb3JlIHNldHRpbmcgdGhlIGluLWNhY2hlIGZsYWcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjU5ZTNkMjYwYjlkMzQ1MjU4ODFl
NjRmZTIyZTgzYjg1ODRhYjhjZi4uYWEyOTFjZmYyYTlkMDk2ODUwNDY5ZWVlNDk5Nzc0NzY4NWI0
ODE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzkyNSwxMCArMzky
NSw5IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjppbnZhbGlkYXRlRGF0YVRyYW5zZmVyKCkKIAogc3Rh
dGljIHZvaWQgcmVtb3ZlRHJhZ2dlZENvbnRlbnREb2N1bWVudE1hcmtlcnNGcm9tQWxsRnJhbWVz
SW5QYWdlKFBhZ2UmIHBhZ2UpCiB7Ci0gICAgZm9yIChSZWZQdHIgZnJhbWUgPSAmcGFnZS5tYWlu
RnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewot
ICAgICAgICBpZiAoUmVmUHRyIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAg
ICAgICBkb2N1bWVudC0+bWFya2VycygpLnJlbW92ZU1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6OkRy
YWdnZWRDb250ZW50KTsKLSAgICB9CisgICAgcGFnZS5mb3JFYWNoRG9jdW1lbnQoW10gKERvY3Vt
ZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVudC5tYXJrZXJzKCkucmVtb3ZlTWFya2Vy
cyhEb2N1bWVudE1hcmtlcjo6RHJhZ2dlZENvbnRlbnQpOworICAgIH0pOwogCiAgICAgaWYgKGF1
dG8qIG1haW5GcmFtZVJlbmRlcmVyID0gcGFnZS5tYWluRnJhbWUoKS5jb250ZW50UmVuZGVyZXIo
KSkKICAgICAgICAgbWFpbkZyYW1lUmVuZGVyZXItPnJlcGFpbnRSb290Q29udGVudHMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKaW5kZXggYTU3Yjg3MDYwZjdiOTcyMWNjZDgyMjA1YzU1YTk0MGY2ZGJi
MTcyNS4uOWYzYWM0NzA4MTg4OTdhZTUyZWU3YTI4NWIzOWM0ODcxYzVlZWE1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAKQEAgLTM2MiwxNSArMzYyLDkgQEAgdm9pZCBGcmFtZTo6aW52YWxpZGF0ZUNv
bnRlbnRFdmVudFJlZ2lvbnNJZk5lZWRlZChJbnZhbGlkYXRlQ29udGVudEV2ZW50UmVnaW9uc1IK
ICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQogdm9pZCBGcmFtZTo6b3JpZW50YXRpb25D
aGFuZ2VkKCkKIHsKLSAgICBWZWN0b3I8UmVmPEZyYW1lPj4gZnJhbWVzOwotICAgIGZvciAoRnJh
bWUqIGZyYW1lID0gdGhpczsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5l
eHQoKSkKLSAgICAgICAgZnJhbWVzLmFwcGVuZCgqZnJhbWUpOwotCi0gICAgYXV0byBuZXdPcmll
bnRhdGlvbiA9IG9yaWVudGF0aW9uKCk7Ci0gICAgZm9yIChhdXRvJiBmcmFtZSA6IGZyYW1lcykg
ewotICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCi0g
ICAgICAgICAgICBkb2N1bWVudC0+b3JpZW50YXRpb25DaGFuZ2VkKG5ld09yaWVudGF0aW9uKTsK
LSAgICB9CisgICAgUGFnZTo6Zm9yRWFjaERvY3VtZW50RnJvbUZyYW1lKCp0aGlzLCBbbmV3T3Jp
ZW50YXRpb24gPSBvcmllbnRhdGlvbigpXSB7CisgICAgICAgIGRvY3VtZW50Lm9yaWVudGF0aW9u
Q2hhbmdlZChuZXdPcmllbnRhdGlvbik7CisgICAgfSk7CiB9CiAKIGludCBGcmFtZTo6b3JpZW50
YXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggOTdlMDFiNWM2OTc2ZDY3ZjBmM2Jk
ZmNlZGVjNmFiY2YwNDg1MmM0NC4uNDhiMTMwYmQxODMwNDk2NmY0ZTNlNTQxNmVjMTljYjI1YjY4
ZjVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC00MDcsMTAgKzQwNywxMCBAQCBQYWdlOjp+UGFn
ZSgpCiAKICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmluc3BlY3RlZFBhZ2VEZXN0cm95ZWQo
KTsKIAotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGZyYW1lLT53aWxsRGV0
YWNoUGFnZSgpOwotICAgICAgICBmcmFtZS0+ZGV0YWNoRnJvbVBhZ2UoKTsKLSAgICB9CisgICAg
Zm9yRWFjaEZyYW1lRnJvbU1haW5GcmFtZShbXSAoRnJhbWUmIGZyYW1lKSB7CisgICAgICAgIGZy
YW1lLndpbGxEZXRhY2hQYWdlKCk7CisgICAgICAgIGZyYW1lLmRldGFjaEZyb21QYWdlKCk7Cisg
ICAgfSk7CiAKICAgICBpZiAobV9zY3JvbGxpbmdDb29yZGluYXRvcikKICAgICAgICAgbV9zY3Jv
bGxpbmdDb29yZGluYXRvci0+cGFnZURlc3Ryb3llZCgpOwpAQCAtMTI0MywxMCArMTI0Myw5IEBA
IHZvaWQgUGFnZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlEIGRpc3Bs
YXlJRCwgc3RkOjpvcHRpb25hbDxGcmFtCiAgICAgICAgIG1fZGlzcGxheU5vbWluYWxGcmFtZXNQ
ZXJTZWNvbmQgPSBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCku
bm9taW5hbEZyYW1lc1BlclNlY29uZEZvckRpc3BsYXkobV9kaXNwbGF5SUQsIGNocm9tZSgpLmNs
aWVudCgpLmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSk7CiAgICAgfQogCi0gICAgZm9y
IChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVl
KCkudHJhdmVyc2VOZXh0KCkpIHsKLSAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpKQotICAg
ICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5
SUQpOwotICAgIH0KKyAgICBmb3JFYWNoRG9jdW1lbnQoWyZdIChEb2N1bWVudCYgZG9jdW1lbnQp
IHsKKyAgICAgICAgZG9jdW1lbnQud2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCk7Cisg
ICAgfSk7CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgYXV0byBtb2RlID0gcHJlZmVycmVkRHlu
YW1pY1JhbmdlTW9kZShtYWluRnJhbWUoKS52aWV3KCkpOwpAQCAtMTk4NCwxMyArMTk4MywxMiBA
QCBjb25zdCBTdHJpbmcmIFBhZ2U6OnVzZXJTdHlsZVNoZWV0KCkgY29uc3QKIAogdm9pZCBQYWdl
Ojp1c2VyQWdlbnRDaGFuZ2VkKCkKIHsKLSAgICBmb3IgKGF1dG8qIGZyYW1lID0gJm1fbWFpbkZy
YW1lLmdldCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7
Ci0gICAgICAgIGF1dG8qIHdpbmRvdyA9IGZyYW1lLT53aW5kb3coKTsKLSAgICAgICAgaWYgKCF3
aW5kb3cpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKGF1dG8qIG5hdmlnYXRv
ciA9IHdpbmRvdy0+b3B0aW9uYWxOYXZpZ2F0b3IoKSkKLSAgICAgICAgICAgIG5hdmlnYXRvci0+
dXNlckFnZW50Q2hhbmdlZCgpOwotICAgIH0KKyAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3Vt
ZW50JiBkb2N1bWVudCkgeworICAgICAgICBpZiAoYXV0byogd2luZG93ID0gZG9jdW1lbnQuZG9t
V2luZG93KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBuYXZpZ2F0b3IgPSB3aW5kb3ctPm9w
dGlvbmFsTmF2aWdhdG9yKCkpCisgICAgICAgICAgICAgICAgbmF2aWdhdG9yLT51c2VyQWdlbnRD
aGFuZ2VkKCk7CisgICAgICAgIH0KKyAgICB9KTsKIH0KIAogdm9pZCBQYWdlOjppbnZhbGlkYXRl
U3R5bGVzRm9yQWxsTGlua3MoKQpAQCAtMjk5Myw4ICsyOTkxLDkgQEAgdm9pZCBQYWdlOjpub3Rp
ZnlUb0luamVjdFVzZXJTY3JpcHRzKCkKIHsKICAgICBtX2hhc0JlZW5Ob3RpZmllZFRvSW5qZWN0
VXNlclNjcmlwdHMgPSB0cnVlOwogCi0gICAgZm9yIChhdXRvKiBmcmFtZSA9ICZtYWluRnJhbWUo
KTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkKLSAgICAgICAg
ZnJhbWUtPmluamVjdFVzZXJTY3JpcHRzQXdhaXRpbmdOb3RpZmljYXRpb24oKTsKKyAgICBmb3JF
YWNoRnJhbWVGcm9tTWFpbkZyYW1lKFtdIChGcmFtZSYgZnJhbWUpIHsKKyAgICAgICAgZnJhbWUu
aW5qZWN0VXNlclNjcmlwdHNBd2FpdGluZ05vdGlmaWNhdGlvbigpOworICAgIH0pOwogfQogCiB2
b2lkIFBhZ2U6OnNldFVzZXJDb250ZW50UHJvdmlkZXIoUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+
JiYgdXNlckNvbnRlbnRQcm92aWRlcikKQEAgLTM0MDQsMTAgKzM0MDMsMTAgQEAgUmVuZGVyaW5n
VXBkYXRlU2NoZWR1bGVyJiBQYWdlOjpyZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIoKQogICAgIHJl
dHVybiAqbV9yZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI7CiB9CiAKLXZvaWQgUGFnZTo6Zm9yRWFj
aERvY3VtZW50KGNvbnN0IEZ1bmN0aW9uPHZvaWQoRG9jdW1lbnQmKT4mIGZ1bmN0b3IpIGNvbnN0
Cit2b2lkIFBhZ2U6OmZvckVhY2hEb2N1bWVudEZyb21GcmFtZShjb25zdCBGcmFtZSYgc3RhcnRG
cmFtZSwgY29uc3QgRnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYgZnVuY3RvcikKIHsKICAgICBW
ZWN0b3I8UmVmPERvY3VtZW50Pj4gZG9jdW1lbnRzOwotICAgIGZvciAoYXV0byogZnJhbWUgPSAm
bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkp
IHsKKyAgICBmb3IgKGF1dG8qIGZyYW1lID0gJnN0YXJ0RnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZy
YW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgYXV0byogZG9jdW1lbnQgPSBm
cmFtZS0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgICAgIGNv
bnRpbnVlOwpAQCAtMzQxNyw2ICszNDE2LDExIEBAIHZvaWQgUGFnZTo6Zm9yRWFjaERvY3VtZW50
KGNvbnN0IEZ1bmN0aW9uPHZvaWQoRG9jdW1lbnQmKT4mIGZ1bmN0b3IpIGNvbnN0CiAgICAgICAg
IGZ1bmN0b3IoZG9jdW1lbnQpOwogfQogCit2b2lkIFBhZ2U6OmZvckVhY2hEb2N1bWVudChjb25z
dCBGdW5jdGlvbjx2b2lkKERvY3VtZW50Jik+JiBmdW5jdG9yKSBjb25zdAoreworICAgIGZvckVh
Y2hEb2N1bWVudEZyb21GcmFtZShtYWluRnJhbWUoKSwgZnVuY3Rvcik7Cit9CisKIHZvaWQgUGFn
ZTo6Zm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1l
bnQmKT4mIGZ1bmN0b3IpCiB7CiAjaWYgRU5BQkxFKFZJREVPKQpAQCAtMzQyOCw2ICszNDMyLDE2
IEBAIHZvaWQgUGFnZTo6Zm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhU
TUxNZWRpYUVsZW1lbnQmKT4mIGZ1bmN0b3IpCiAjZW5kaWYKIH0KIAordm9pZCBQYWdlOjpmb3JF
YWNoRnJhbWVGcm9tTWFpbkZyYW1lKGNvbnN0IEZ1bmN0aW9uPHZvaWQoRnJhbWUmKT4mIGZ1bmN0
b3IpCit7CisgICAgVmVjdG9yPFJlZjxGcmFtZT4+IGZyYW1lczsKKyAgICBmb3IgKGF1dG8qIGZy
YW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNl
TmV4dCgpKQorICAgICAgICBmcmFtZXMuYXBwZW5kKCpmcmFtZSk7CisKKyAgICBmb3IgKGF1dG8m
IGZyYW1lIDogZnJhbWVzKQorICAgICAgICBmdW5jdG9yKGZyYW1lKTsKK30KKwogYm9vbCBQYWdl
OjphbGxvd3NMb2FkRnJvbVVSTChjb25zdCBVUkwmIHVybCwgTWFpbkZyYW1lTWFpblJlc291cmNl
IG1haW5GcmFtZU1haW5SZXNvdXJjZSkgY29uc3QKIHsKICAgICBpZiAobWFpbkZyYW1lTWFpblJl
c291cmNlID09IE1haW5GcmFtZU1haW5SZXNvdXJjZTo6Tm8gJiYgIW1fbG9hZHNTdWJyZXNvdXJj
ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IGViODUwYWZhMzM2NDhmZjg3ZTg3NmExMWQzNmE0MTk0Nzkz
MzE1YWYuLjg1YTE1YzIxNDk0N2U4NzcxZTdkNDc0ZDUyNWMyODk5Y2M0YjNiMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC04OTIsNiArODkyLDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBmb3JFYWNoRG9jdW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYpIGNv
bnN0OwogICAgIHZvaWQgZm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhU
TUxNZWRpYUVsZW1lbnQmKT4mKTsKKyAgICBzdGF0aWMgdm9pZCBmb3JFYWNoRG9jdW1lbnRGcm9t
RnJhbWUoY29uc3QgRnJhbWUmLCBjb25zdCBGdW5jdGlvbjx2b2lkKERvY3VtZW50Jik+Jik7Cisg
ICAgdm9pZCBmb3JFYWNoRnJhbWVGcm9tTWFpbkZyYW1lKGNvbnN0IEZ1bmN0aW9uPHZvaWQoRnJh
bWUmKT4mKTsKIAogICAgIGJvb2wgc2hvdWxkRGlzYWJsZUNvcnNGb3JSZXF1ZXN0VG8oY29uc3Qg
VVJMJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1l
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KaW5kZXggZmY3Njlj
NzM5YWFlYTY0ZGI3ZjcwN2I0OTBiZDVjMGExYzYzNGRjOC4uZmQ5Mjg1OWFjYTc1NmYyYmEyMzNk
MDU2NjUwNmQxMzJkZjRmOGRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3Mv
RnJhbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KQEAg
LTY0NCw4ICs2NDQsOSBAQCB2b2lkIEZyYW1lOjpkaXNwYXRjaFBhZ2VIaWRlRXZlbnRCZWZvcmVQ
YXVzZSgpCiAgICAgaWYgKCFpc01haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBm
b3IgKEZyYW1lKiBmcmFtZSA9IHRoaXM7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJh
dmVyc2VOZXh0KHRoaXMpKQotICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkt
PmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5w
YWdlaGlkZUV2ZW50LCB0cnVlKSwgZG9jdW1lbnQoKSk7CisgICAgUGFnZTo6Zm9yRWFjaERvY3Vt
ZW50RnJvbUZyYW1lKCp0aGlzLCBbcGFnZWhpZGVFdmVudCA9IGV2ZW50TmFtZXMoKS5wYWdlaGlk
ZUV2ZW50LCBtYWluRG9jdW1lbnQgPSBkb2N1bWVudCgpXShEb2N1bWVudCYgZG9jdW1lbnQpIHsK
KyAgICAgICAgZG9jdW1lbnQuZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRp
b25FdmVudDo6Y3JlYXRlKHBhZ2VoaWRlRXZlbnQsIHRydWUpLCBtYWluRG9jdW1lbnQpOworICAg
IH0pOwogfQogCiB2b2lkIEZyYW1lOjpkaXNwYXRjaFBhZ2VTaG93RXZlbnRCZWZvcmVSZXN1bWUo
KQpAQCAtNjU0LDggKzY1NSw5IEBAIHZvaWQgRnJhbWU6OmRpc3BhdGNoUGFnZVNob3dFdmVudEJl
Zm9yZVJlc3VtZSgpCiAgICAgaWYgKCFpc01haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHRoaXM7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVl
KCkudHJhdmVyc2VOZXh0KHRoaXMpKQotICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2lu
ZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5wYWdlc2hvd0V2ZW50LCB0cnVlKSwgZG9jdW1lbnQoKSk7CisgICAgUGFnZTo6Zm9yRWFj
aERvY3VtZW50RnJvbUZyYW1lKCp0aGlzLCBbcGFnZXNob3dFdmVudCA9IGV2ZW50TmFtZXMoKS5w
YWdlc2hvd0V2ZW50LCBtYWluRG9jdW1lbnQgPSBkb2N1bWVudCgpXShEb2N1bWVudCYgZG9jdW1l
bnQpIHsKKyAgICAgICAgZG9jdW1lbnQuZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRy
YW5zaXRpb25FdmVudDo6Y3JlYXRlKHBhZ2VzaG93RXZlbnQsIHRydWUpLCBtYWluRG9jdW1lbnQp
OworICAgIH0pOwogfQogCiB2b2lkIEZyYW1lOjpzZXRSYW5nZWRTZWxlY3Rpb25CYXNlVG9DdXJy
ZW50U2VsZWN0aW9uKCkK
</data>
<flag name="commit-queue"
          id="472864"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447278</attachid>
            <date>2021-12-15 12:44:56 -0800</date>
            <delta_ts>2021-12-15 14:36:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234324-20211215124455.patch</filename>
            <type>text/plain</type>
            <size>10638</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcyOTI5NzYwYjVmNjc4
YjM3OTQzZTFiNDIyMzI5YzNjNTI4ZjVkYS4uMzk5ZTA3Yjg5YzNlZTRmMWM3ODUzMGJiZWQwZjk3
Mzg0NDI3M2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTEyLTE0ICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuLXVwOiBBZG9w
dCBQYWdlOjpmb3JFYWNoRG9jdW1lbnQgaW4gc29tZSBtaXNzZWQgc3BvdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDMyNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODU0NDM4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU3dpdGNoIG1hbnVhbCBsb29wcyB0byBvdXIgJ2ZvckVhY2hEb2N1bWVu
dCcgc3R5bGUgaW4gYSBmZXcgcGxhY2VzIHRoYXQgd2VyZSBtaXNzZWQKKyAgICAgICAgaW4gZWFy
bGllciByZWZhY3RvcmluZy4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURyYWdnZWRDb250ZW50RG9jdW1lbnRNYXJrZXJz
RnJvbUFsbEZyYW1lc0luUGFnZSk6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6flBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6Zm9yRWFjaERvY3VtZW50RnJvbUZyYW1lKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpmb3JFYWNoRnJhbWVGcm9tTWFpbkZyYW1lKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6dXNlckFnZW50Q2hhbmdlZCk6CisgICAgICAgICogcGFnZS9pb3MvRnJhbWVJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpkaXNwYXRjaFByaW50RXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWU6OmRpc3BhdGNoUGFnZUhpZGVFdmVudEJlZm9yZVBhdXNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lOjpkaXNwYXRjaFBhZ2VTaG93RXZlbnRCZWZvcmVSZXN1bWUpOgorCiAyMDIx
LTEyLTE0ICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogdGVzdCB3ZWJwYWdlIGtlZXBzIHJlbG9hZGluZyB3aGVuIEluc3BlY3RvciBp
cyBvcGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ2Fj
aGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcAppbmRl
eCA0ODQwMGEzMTBlY2UyNGY0OWY4YzAyODBlMDE4MTQwNDZhYzg3NDRkLi4xMGFmN2FhMWRmMTQ2
NTZhOWExNDAxMDU5NGYyOTRlZmUyN2EyYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3Rvcnkv
QmFja0ZvcndhcmRDYWNoZS5jcHAKQEAgLTM4OCwxMCArMzg4LDkgQEAgc3RhdGljIFN0cmluZyBw
cnVuaW5nUmVhc29uVG9EaWFnbm9zdGljTG9nZ2luZ0tleShQcnVuaW5nUmVhc29uIHBydW5pbmdS
ZWFzb24pCiAKIHN0YXRpYyB2b2lkIHNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShQYWdlJiBwYWdl
LCBEb2N1bWVudDo6QmFja0ZvcndhcmRDYWNoZVN0YXRlIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSkK
IHsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZwYWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBk
b2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQtPnNldEJh
Y2tGb3J3YXJkQ2FjaGVTdGF0ZShCYWNrRm9yd2FyZENhY2hlU3RhdGUpOwotICAgIH0KKyAgICBw
YWdlLmZvckVhY2hEb2N1bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBk
b2N1bWVudC5zZXRCYWNrRm9yd2FyZENhY2hlU3RhdGUoQmFja0ZvcndhcmRDYWNoZVN0YXRlKTsK
KyAgICB9KTsKIH0KIAogLy8gV2hlbiBlbnRlcmluZyBiYWNrL2ZvcndhcmQgY2FjaGUsIHRlYXIg
ZG93biB0aGUgcmVuZGVyIHRyZWUgYmVmb3JlIHNldHRpbmcgdGhlIGluLWNhY2hlIGZsYWcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjU5ZTNkMjYwYjlkMzQ1MjU4ODFl
NjRmZTIyZTgzYjg1ODRhYjhjZi4uYWEyOTFjZmYyYTlkMDk2ODUwNDY5ZWVlNDk5Nzc0NzY4NWI0
ODE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzkyNSwxMCArMzky
NSw5IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjppbnZhbGlkYXRlRGF0YVRyYW5zZmVyKCkKIAogc3Rh
dGljIHZvaWQgcmVtb3ZlRHJhZ2dlZENvbnRlbnREb2N1bWVudE1hcmtlcnNGcm9tQWxsRnJhbWVz
SW5QYWdlKFBhZ2UmIHBhZ2UpCiB7Ci0gICAgZm9yIChSZWZQdHIgZnJhbWUgPSAmcGFnZS5tYWlu
RnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewot
ICAgICAgICBpZiAoUmVmUHRyIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAg
ICAgICBkb2N1bWVudC0+bWFya2VycygpLnJlbW92ZU1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6OkRy
YWdnZWRDb250ZW50KTsKLSAgICB9CisgICAgcGFnZS5mb3JFYWNoRG9jdW1lbnQoW10gKERvY3Vt
ZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVudC5tYXJrZXJzKCkucmVtb3ZlTWFya2Vy
cyhEb2N1bWVudE1hcmtlcjo6RHJhZ2dlZENvbnRlbnQpOworICAgIH0pOwogCiAgICAgaWYgKGF1
dG8qIG1haW5GcmFtZVJlbmRlcmVyID0gcGFnZS5tYWluRnJhbWUoKS5jb250ZW50UmVuZGVyZXIo
KSkKICAgICAgICAgbWFpbkZyYW1lUmVuZGVyZXItPnJlcGFpbnRSb290Q29udGVudHMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKaW5kZXggYTU3Yjg3MDYwZjdiOTcyMWNjZDgyMjA1YzU1YTk0MGY2ZGJi
MTcyNS4uMzM4ODQzN2VhMTU4Mjc1NmIxMDc2ZWVjOWE3NzFmZTU3YTg2YzJlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAKQEAgLTM2MiwxNSArMzYyLDkgQEAgdm9pZCBGcmFtZTo6aW52YWxpZGF0ZUNv
bnRlbnRFdmVudFJlZ2lvbnNJZk5lZWRlZChJbnZhbGlkYXRlQ29udGVudEV2ZW50UmVnaW9uc1IK
ICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQogdm9pZCBGcmFtZTo6b3JpZW50YXRpb25D
aGFuZ2VkKCkKIHsKLSAgICBWZWN0b3I8UmVmPEZyYW1lPj4gZnJhbWVzOwotICAgIGZvciAoRnJh
bWUqIGZyYW1lID0gdGhpczsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5l
eHQoKSkKLSAgICAgICAgZnJhbWVzLmFwcGVuZCgqZnJhbWUpOwotCi0gICAgYXV0byBuZXdPcmll
bnRhdGlvbiA9IG9yaWVudGF0aW9uKCk7Ci0gICAgZm9yIChhdXRvJiBmcmFtZSA6IGZyYW1lcykg
ewotICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCi0g
ICAgICAgICAgICBkb2N1bWVudC0+b3JpZW50YXRpb25DaGFuZ2VkKG5ld09yaWVudGF0aW9uKTsK
LSAgICB9CisgICAgUGFnZTo6Zm9yRWFjaERvY3VtZW50RnJvbUZyYW1lKCp0aGlzLCBbbmV3T3Jp
ZW50YXRpb24gPSBvcmllbnRhdGlvbigpXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAg
IGRvY3VtZW50Lm9yaWVudGF0aW9uQ2hhbmdlZChuZXdPcmllbnRhdGlvbik7CisgICAgfSk7CiB9
CiAKIGludCBGcmFtZTo6b3JpZW50YXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXgg
OTdlMDFiNWM2OTc2ZDY3ZjBmM2JkZmNlZGVjNmFiY2YwNDg1MmM0NC4uNDhiMTMwYmQxODMwNDk2
NmY0ZTNlNTQxNmVjMTljYjI1YjY4ZjVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC00MDcsMTAg
KzQwNywxMCBAQCBQYWdlOjp+UGFnZSgpCiAKICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmlu
c3BlY3RlZFBhZ2VEZXN0cm95ZWQoKTsKIAotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1haW5G
cmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0g
ICAgICAgIGZyYW1lLT53aWxsRGV0YWNoUGFnZSgpOwotICAgICAgICBmcmFtZS0+ZGV0YWNoRnJv
bVBhZ2UoKTsKLSAgICB9CisgICAgZm9yRWFjaEZyYW1lRnJvbU1haW5GcmFtZShbXSAoRnJhbWUm
IGZyYW1lKSB7CisgICAgICAgIGZyYW1lLndpbGxEZXRhY2hQYWdlKCk7CisgICAgICAgIGZyYW1l
LmRldGFjaEZyb21QYWdlKCk7CisgICAgfSk7CiAKICAgICBpZiAobV9zY3JvbGxpbmdDb29yZGlu
YXRvcikKICAgICAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvci0+cGFnZURlc3Ryb3llZCgpOwpA
QCAtMTI0MywxMCArMTI0Myw5IEBAIHZvaWQgUGFnZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBs
YXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgc3RkOjpvcHRpb25hbDxGcmFtCiAgICAgICAgIG1f
ZGlzcGxheU5vbWluYWxGcmFtZXNQZXJTZWNvbmQgPSBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5h
Z2VyOjpzaGFyZWRNYW5hZ2VyKCkubm9taW5hbEZyYW1lc1BlclNlY29uZEZvckRpc3BsYXkobV9k
aXNwbGF5SUQsIGNocm9tZSgpLmNsaWVudCgpLmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3Rvcnko
KSk7CiAgICAgfQogCi0gICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1l
OyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKLSAgICAgICAgaWYgKGZy
YW1lLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndpbmRvd1Nj
cmVlbkRpZENoYW5nZShkaXNwbGF5SUQpOwotICAgIH0KKyAgICBmb3JFYWNoRG9jdW1lbnQoWyZd
IChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQud2luZG93U2NyZWVuRGlk
Q2hhbmdlKGRpc3BsYXlJRCk7CisgICAgfSk7CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgYXV0
byBtb2RlID0gcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShtYWluRnJhbWUoKS52aWV3KCkpOwpA
QCAtMTk4NCwxMyArMTk4MywxMiBAQCBjb25zdCBTdHJpbmcmIFBhZ2U6OnVzZXJTdHlsZVNoZWV0
KCkgY29uc3QKIAogdm9pZCBQYWdlOjp1c2VyQWdlbnRDaGFuZ2VkKCkKIHsKLSAgICBmb3IgKGF1
dG8qIGZyYW1lID0gJm1fbWFpbkZyYW1lLmdldCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGF1dG8qIHdpbmRvdyA9IGZyYW1lLT53aW5k
b3coKTsKLSAgICAgICAgaWYgKCF3aW5kb3cpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgaWYgKGF1dG8qIG5hdmlnYXRvciA9IHdpbmRvdy0+b3B0aW9uYWxOYXZpZ2F0b3IoKSkKLSAg
ICAgICAgICAgIG5hdmlnYXRvci0+dXNlckFnZW50Q2hhbmdlZCgpOwotICAgIH0KKyAgICBmb3JF
YWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBpZiAoYXV0byog
d2luZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBu
YXZpZ2F0b3IgPSB3aW5kb3ctPm9wdGlvbmFsTmF2aWdhdG9yKCkpCisgICAgICAgICAgICAgICAg
bmF2aWdhdG9yLT51c2VyQWdlbnRDaGFuZ2VkKCk7CisgICAgICAgIH0KKyAgICB9KTsKIH0KIAog
dm9pZCBQYWdlOjppbnZhbGlkYXRlU3R5bGVzRm9yQWxsTGlua3MoKQpAQCAtMjk5Myw4ICsyOTkx
LDkgQEAgdm9pZCBQYWdlOjpub3RpZnlUb0luamVjdFVzZXJTY3JpcHRzKCkKIHsKICAgICBtX2hh
c0JlZW5Ob3RpZmllZFRvSW5qZWN0VXNlclNjcmlwdHMgPSB0cnVlOwogCi0gICAgZm9yIChhdXRv
KiBmcmFtZSA9ICZtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2
ZXJzZU5leHQoKSkKLSAgICAgICAgZnJhbWUtPmluamVjdFVzZXJTY3JpcHRzQXdhaXRpbmdOb3Rp
ZmljYXRpb24oKTsKKyAgICBmb3JFYWNoRnJhbWVGcm9tTWFpbkZyYW1lKFtdIChGcmFtZSYgZnJh
bWUpIHsKKyAgICAgICAgZnJhbWUuaW5qZWN0VXNlclNjcmlwdHNBd2FpdGluZ05vdGlmaWNhdGlv
bigpOworICAgIH0pOwogfQogCiB2b2lkIFBhZ2U6OnNldFVzZXJDb250ZW50UHJvdmlkZXIoUmVm
PFVzZXJDb250ZW50UHJvdmlkZXI+JiYgdXNlckNvbnRlbnRQcm92aWRlcikKQEAgLTM0MDQsMTAg
KzM0MDMsMTAgQEAgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyJiBQYWdlOjpyZW5kZXJpbmdVcGRh
dGVTY2hlZHVsZXIoKQogICAgIHJldHVybiAqbV9yZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI7CiB9
CiAKLXZvaWQgUGFnZTo6Zm9yRWFjaERvY3VtZW50KGNvbnN0IEZ1bmN0aW9uPHZvaWQoRG9jdW1l
bnQmKT4mIGZ1bmN0b3IpIGNvbnN0Cit2b2lkIFBhZ2U6OmZvckVhY2hEb2N1bWVudEZyb21GcmFt
ZShjb25zdCBGcmFtZSYgc3RhcnRGcmFtZSwgY29uc3QgRnVuY3Rpb248dm9pZChEb2N1bWVudCYp
PiYgZnVuY3RvcikKIHsKICAgICBWZWN0b3I8UmVmPERvY3VtZW50Pj4gZG9jdW1lbnRzOwotICAg
IGZvciAoYXV0byogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50
cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKKyAgICBmb3IgKGF1dG8qIGZyYW1lID0gJnN0YXJ0RnJh
bWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKICAgICAg
ICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKCFkb2N1
bWVudCkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMzQxNyw2ICszNDE2LDExIEBAIHZvaWQg
UGFnZTo6Zm9yRWFjaERvY3VtZW50KGNvbnN0IEZ1bmN0aW9uPHZvaWQoRG9jdW1lbnQmKT4mIGZ1
bmN0b3IpIGNvbnN0CiAgICAgICAgIGZ1bmN0b3IoZG9jdW1lbnQpOwogfQogCit2b2lkIFBhZ2U6
OmZvckVhY2hEb2N1bWVudChjb25zdCBGdW5jdGlvbjx2b2lkKERvY3VtZW50Jik+JiBmdW5jdG9y
KSBjb25zdAoreworICAgIGZvckVhY2hEb2N1bWVudEZyb21GcmFtZShtYWluRnJhbWUoKSwgZnVu
Y3Rvcik7Cit9CisKIHZvaWQgUGFnZTo6Zm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlv
bjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mIGZ1bmN0b3IpCiB7CiAjaWYgRU5BQkxFKFZJREVP
KQpAQCAtMzQyOCw2ICszNDMyLDE2IEBAIHZvaWQgUGFnZTo6Zm9yRWFjaE1lZGlhRWxlbWVudChj
b25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mIGZ1bmN0b3IpCiAjZW5kaWYK
IH0KIAordm9pZCBQYWdlOjpmb3JFYWNoRnJhbWVGcm9tTWFpbkZyYW1lKGNvbnN0IEZ1bmN0aW9u
PHZvaWQoRnJhbWUmKT4mIGZ1bmN0b3IpCit7CisgICAgVmVjdG9yPFJlZjxGcmFtZT4+IGZyYW1l
czsKKyAgICBmb3IgKGF1dG8qIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQorICAgICAgICBmcmFtZXMuYXBwZW5kKCpmcmFt
ZSk7CisKKyAgICBmb3IgKGF1dG8mIGZyYW1lIDogZnJhbWVzKQorICAgICAgICBmdW5jdG9yKGZy
YW1lKTsKK30KKwogYm9vbCBQYWdlOjphbGxvd3NMb2FkRnJvbVVSTChjb25zdCBVUkwmIHVybCwg
TWFpbkZyYW1lTWFpblJlc291cmNlIG1haW5GcmFtZU1haW5SZXNvdXJjZSkgY29uc3QKIHsKICAg
ICBpZiAobWFpbkZyYW1lTWFpblJlc291cmNlID09IE1haW5GcmFtZU1haW5SZXNvdXJjZTo6Tm8g
JiYgIW1fbG9hZHNTdWJyZXNvdXJjZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGViODUwYWZhMzM2NDhm
Zjg3ZTg3NmExMWQzNmE0MTk0NzkzMzE1YWYuLjg1YTE1YzIxNDk0N2U4NzcxZTdkNDc0ZDUyNWMy
ODk5Y2M0YjNiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04OTIsNiArODkyLDggQEAgcHVibGljOgog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmb3JFYWNoRG9jdW1lbnQoY29uc3QgRnVuY3Rpb248
dm9pZChEb2N1bWVudCYpPiYpIGNvbnN0OwogICAgIHZvaWQgZm9yRWFjaE1lZGlhRWxlbWVudChj
b25zdCBGdW5jdGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mKTsKKyAgICBzdGF0aWMgdm9p
ZCBmb3JFYWNoRG9jdW1lbnRGcm9tRnJhbWUoY29uc3QgRnJhbWUmLCBjb25zdCBGdW5jdGlvbjx2
b2lkKERvY3VtZW50Jik+Jik7CisgICAgdm9pZCBmb3JFYWNoRnJhbWVGcm9tTWFpbkZyYW1lKGNv
bnN0IEZ1bmN0aW9uPHZvaWQoRnJhbWUmKT4mKTsKIAogICAgIGJvb2wgc2hvdWxkRGlzYWJsZUNv
cnNGb3JSZXF1ZXN0VG8oY29uc3QgVVJMJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJh
bWVJT1MubW0KaW5kZXggZmY3NjljNzM5YWFlYTY0ZGI3ZjcwN2I0OTBiZDVjMGExYzYzNGRjOC4u
ZmQ5Mjg1OWFjYTc1NmYyYmEyMzNkMDU2NjUwNmQxMzJkZjRmOGRlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9pb3MvRnJhbWVJT1MubW0KQEAgLTY0NCw4ICs2NDQsOSBAQCB2b2lkIEZyYW1lOjpkaXNwYXRj
aFBhZ2VIaWRlRXZlbnRCZWZvcmVQYXVzZSgpCiAgICAgaWYgKCFpc01haW5GcmFtZSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHRoaXM7IGZyYW1lOyBmcmFt
ZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KHRoaXMpKQotICAgICAgICBmcmFtZS0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCB0cnVlKSwgZG9jdW1lbnQoKSk7Cisg
ICAgUGFnZTo6Zm9yRWFjaERvY3VtZW50RnJvbUZyYW1lKCp0aGlzLCBbcGFnZWhpZGVFdmVudCA9
IGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCBtYWluRG9jdW1lbnQgPSBkb2N1bWVudCgpXShE
b2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQuZG9tV2luZG93KCktPmRpc3Bh
dGNoRXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKHBhZ2VoaWRlRXZlbnQsIHRydWUp
LCBtYWluRG9jdW1lbnQpOworICAgIH0pOwogfQogCiB2b2lkIEZyYW1lOjpkaXNwYXRjaFBhZ2VT
aG93RXZlbnRCZWZvcmVSZXN1bWUoKQpAQCAtNjU0LDggKzY1NSw5IEBAIHZvaWQgRnJhbWU6OmRp
c3BhdGNoUGFnZVNob3dFdmVudEJlZm9yZVJlc3VtZSgpCiAgICAgaWYgKCFpc01haW5GcmFtZSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHRoaXM7IGZyYW1l
OyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KHRoaXMpKQotICAgICAgICBmcmFt
ZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRpb25F
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlc2hvd0V2ZW50LCB0cnVlKSwgZG9jdW1lbnQo
KSk7CisgICAgUGFnZTo6Zm9yRWFjaERvY3VtZW50RnJvbUZyYW1lKCp0aGlzLCBbcGFnZXNob3dF
dmVudCA9IGV2ZW50TmFtZXMoKS5wYWdlc2hvd0V2ZW50LCBtYWluRG9jdW1lbnQgPSBkb2N1bWVu
dCgpXShEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQuZG9tV2luZG93KCkt
PmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKHBhZ2VzaG93RXZlbnQs
IHRydWUpLCBtYWluRG9jdW1lbnQpOworICAgIH0pOwogfQogCiB2b2lkIEZyYW1lOjpzZXRSYW5n
ZWRTZWxlY3Rpb25CYXNlVG9DdXJyZW50U2VsZWN0aW9uKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447285</attachid>
            <date>2021-12-15 14:36:51 -0800</date>
            <delta_ts>2021-12-15 15:21:41 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-234324-20211215143650.patch</filename>
            <type>text/plain</type>
            <size>10641</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVlZGM3ZWYzYjEwN2Uy
M2IwMTM1YWU2YmIwZDExMjg3YjBkYmZiMi4uMzczYTUxZDcwNzM0MjY3MDZlY2E1ZDg3N2NhMjMw
ZGQzMjc2NTM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTEyLTE1ICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuLXVwOiBBZG9w
dCBQYWdlOjpmb3JFYWNoRG9jdW1lbnQgaW4gc29tZSBtaXNzZWQgc3BvdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDMyNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODU0NDM4MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgU3dpdGNoIG1hbnVhbCBsb29wcyB0byBvdXIgJ2ZvckVhY2hEb2N1bWVudCcg
c3R5bGUgaW4gYSBmZXcgcGxhY2VzIHRoYXQgd2VyZSBtaXNzZWQKKyAgICAgICAgaW4gZWFybGll
ciByZWZhY3RvcmluZy4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0
QmFja0ZvcndhcmRDYWNoZVN0YXRlKQorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZURyYWdnZWRDb250ZW50RG9jdW1lbnRNYXJrZXJzRnJv
bUFsbEZyYW1lc0luUGFnZSk6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6flBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6Zm9yRWFjaERvY3VtZW50RnJvbU1haW5GcmFtZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6Zm9yRWFjaERvY3VtZW50KTogVXNlIG5ldyBtZXRob2QuCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjpmb3JFYWNoRnJhbWVGcm9tTWFpbkZyYW1lKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6dXNlckFnZW50Q2hhbmdlZCk6CisgICAgICAgICogcGFnZS9pb3MvRnJhbWVJT1Mu
bW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZGlzcGF0Y2hQYWdlSGlkZUV2ZW50QmVmb3Jl
UGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRpc3BhdGNoUGFnZVNob3dFdmVudEJl
Zm9yZVJlc3VtZSk6CisKIDIwMjEtMTItMTUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgUHJveHlTZXJ2ZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwCmluZGV4IDQ4NDAwYTMxMGVjZTI0ZjQ5
ZjhjMDI4MGUwMTgxNDA0NmFjODc0NGQuLjEwYWY3YWExZGYxNDY1NmE5YTE0MDEwNTk0ZjI5NGVm
ZTI3YTJhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRD
YWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNw
cApAQCAtMzg4LDEwICszODgsOSBAQCBzdGF0aWMgU3RyaW5nIHBydW5pbmdSZWFzb25Ub0RpYWdu
b3N0aWNMb2dnaW5nS2V5KFBydW5pbmdSZWFzb24gcHJ1bmluZ1JlYXNvbikKIAogc3RhdGljIHZv
aWQgc2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKFBhZ2UmIHBhZ2UsIERvY3VtZW50OjpCYWNrRm9y
d2FyZENhY2hlU3RhdGUgQmFja0ZvcndhcmRDYWNoZVN0YXRlKQogewotICAgIGZvciAoRnJhbWUq
IGZyYW1lID0gJnBhZ2UubWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCku
dHJhdmVyc2VOZXh0KCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRv
Y3VtZW50KCkpCi0gICAgICAgICAgICBkb2N1bWVudC0+c2V0QmFja0ZvcndhcmRDYWNoZVN0YXRl
KEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSk7Ci0gICAgfQorICAgIHBhZ2UuZm9yRWFjaERvY3VtZW50
KFsmXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LnNldEJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZShCYWNrRm9yd2FyZENhY2hlU3RhdGUpOworICAgIH0pOwogfQogCiAvLyBX
aGVuIGVudGVyaW5nIGJhY2svZm9yd2FyZCBjYWNoZSwgdGVhciBkb3duIHRoZSByZW5kZXIgdHJl
ZSBiZWZvcmUgc2V0dGluZyB0aGUgaW4tY2FjaGUgZmxhZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAppbmRleCA2NTllM2QyNjBiOWQzNDUyNTg4MWU2NGZlMjJlODNiODU4NGFiOGNm
Li5hYTI5MWNmZjJhOWQwOTY4NTA0NjllZWU0OTk3NzQ3Njg1YjQ4MTdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zOTI1LDEwICszOTI1LDkgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OmludmFsaWRhdGVEYXRhVHJhbnNmZXIoKQogCiBzdGF0aWMgdm9pZCByZW1vdmVEcmFn
Z2VkQ29udGVudERvY3VtZW50TWFya2Vyc0Zyb21BbGxGcmFtZXNJblBhZ2UoUGFnZSYgcGFnZSkK
IHsKLSAgICBmb3IgKFJlZlB0ciBmcmFtZSA9ICZwYWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlmIChSZWZQdHIg
ZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5tYXJr
ZXJzKCkucmVtb3ZlTWFya2VycyhEb2N1bWVudE1hcmtlcjo6RHJhZ2dlZENvbnRlbnQpOwotICAg
IH0KKyAgICBwYWdlLmZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7Cisg
ICAgICAgIGRvY3VtZW50Lm1hcmtlcnMoKS5yZW1vdmVNYXJrZXJzKERvY3VtZW50TWFya2VyOjpE
cmFnZ2VkQ29udGVudCk7CisgICAgfSk7CiAKICAgICBpZiAoYXV0byogbWFpbkZyYW1lUmVuZGVy
ZXIgPSBwYWdlLm1haW5GcmFtZSgpLmNvbnRlbnRSZW5kZXJlcigpKQogICAgICAgICBtYWluRnJh
bWVSZW5kZXJlci0+cmVwYWludFJvb3RDb250ZW50cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRl
eCBhNTdiODcwNjBmN2I5NzIxY2NkODIyMDVjNTVhOTQwZjZkYmIxNzI1Li44NmY5YTdiZTNlYmEw
ZGJmMmIyNzVjNzUxY2M4NDNkZGFhNzRhNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzYy
LDE1ICszNjIsOSBAQCB2b2lkIEZyYW1lOjppbnZhbGlkYXRlQ29udGVudEV2ZW50UmVnaW9uc0lm
TmVlZGVkKEludmFsaWRhdGVDb250ZW50RXZlbnRSZWdpb25zUgogI2lmIEVOQUJMRShPUklFTlRB
VElPTl9FVkVOVFMpCiB2b2lkIEZyYW1lOjpvcmllbnRhdGlvbkNoYW5nZWQoKQogewotICAgIFZl
Y3RvcjxSZWY8RnJhbWU+PiBmcmFtZXM7Ci0gICAgZm9yIChGcmFtZSogZnJhbWUgPSB0aGlzOyBm
cmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQotICAgICAgICBmcmFt
ZXMuYXBwZW5kKCpmcmFtZSk7Ci0KLSAgICBhdXRvIG5ld09yaWVudGF0aW9uID0gb3JpZW50YXRp
b24oKTsKLSAgICBmb3IgKGF1dG8mIGZyYW1lIDogZnJhbWVzKSB7Ci0gICAgICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50
LT5vcmllbnRhdGlvbkNoYW5nZWQobmV3T3JpZW50YXRpb24pOwotICAgIH0KKyAgICBQYWdlOjpm
b3JFYWNoRG9jdW1lbnRGcm9tTWFpbkZyYW1lKCp0aGlzLCBbbmV3T3JpZW50YXRpb24gPSBvcmll
bnRhdGlvbigpXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50Lm9yaWVu
dGF0aW9uQ2hhbmdlZChuZXdPcmllbnRhdGlvbik7CisgICAgfSk7CiB9CiAKIGludCBGcmFtZTo6
b3JpZW50YXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggOTdlMDFiNWM2OTc2ZDY3
ZjBmM2JkZmNlZGVjNmFiY2YwNDg1MmM0NC4uNGYyZjBkNzY5YWVkMDlhY2JmMzJiMGE2MzcyYzEz
ZjAzM2YxMjAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC00MDcsMTAgKzQwNywxMCBAQCBQYWdl
Ojp+UGFnZSgpCiAKICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmluc3BlY3RlZFBhZ2VEZXN0
cm95ZWQoKTsKIAotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGZyYW1lLT53
aWxsRGV0YWNoUGFnZSgpOwotICAgICAgICBmcmFtZS0+ZGV0YWNoRnJvbVBhZ2UoKTsKLSAgICB9
CisgICAgZm9yRWFjaEZyYW1lRnJvbU1haW5GcmFtZShbXSAoRnJhbWUmIGZyYW1lKSB7CisgICAg
ICAgIGZyYW1lLndpbGxEZXRhY2hQYWdlKCk7CisgICAgICAgIGZyYW1lLmRldGFjaEZyb21QYWdl
KCk7CisgICAgfSk7CiAKICAgICBpZiAobV9zY3JvbGxpbmdDb29yZGluYXRvcikKICAgICAgICAg
bV9zY3JvbGxpbmdDb29yZGluYXRvci0+cGFnZURlc3Ryb3llZCgpOwpAQCAtMTI0MywxMCArMTI0
Myw5IEBAIHZvaWQgUGFnZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlE
IGRpc3BsYXlJRCwgc3RkOjpvcHRpb25hbDxGcmFtCiAgICAgICAgIG1fZGlzcGxheU5vbWluYWxG
cmFtZXNQZXJTZWNvbmQgPSBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkubm9taW5hbEZyYW1lc1BlclNlY29uZEZvckRpc3BsYXkobV9kaXNwbGF5SUQsIGNocm9t
ZSgpLmNsaWVudCgpLmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSk7CiAgICAgfQogCi0g
ICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1l
LT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKLSAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgp
KQotICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndpbmRvd1NjcmVlbkRpZENoYW5nZShk
aXNwbGF5SUQpOwotICAgIH0KKyAgICBmb3JFYWNoRG9jdW1lbnQoWyZdIChEb2N1bWVudCYgZG9j
dW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQud2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJ
RCk7CisgICAgfSk7CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgYXV0byBtb2RlID0gcHJlZmVy
cmVkRHluYW1pY1JhbmdlTW9kZShtYWluRnJhbWUoKS52aWV3KCkpOwpAQCAtMTk4NCwxMyArMTk4
MywxMiBAQCBjb25zdCBTdHJpbmcmIFBhZ2U6OnVzZXJTdHlsZVNoZWV0KCkgY29uc3QKIAogdm9p
ZCBQYWdlOjp1c2VyQWdlbnRDaGFuZ2VkKCkKIHsKLSAgICBmb3IgKGF1dG8qIGZyYW1lID0gJm1f
bWFpbkZyYW1lLmdldCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4
dCgpKSB7Ci0gICAgICAgIGF1dG8qIHdpbmRvdyA9IGZyYW1lLT53aW5kb3coKTsKLSAgICAgICAg
aWYgKCF3aW5kb3cpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKGF1dG8qIG5h
dmlnYXRvciA9IHdpbmRvdy0+b3B0aW9uYWxOYXZpZ2F0b3IoKSkKLSAgICAgICAgICAgIG5hdmln
YXRvci0+dXNlckFnZW50Q2hhbmdlZCgpOwotICAgIH0KKyAgICBmb3JFYWNoRG9jdW1lbnQoW10g
KERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBpZiAoYXV0byogd2luZG93ID0gZG9jdW1l
bnQuZG9tV2luZG93KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBuYXZpZ2F0b3IgPSB3aW5k
b3ctPm9wdGlvbmFsTmF2aWdhdG9yKCkpCisgICAgICAgICAgICAgICAgbmF2aWdhdG9yLT51c2Vy
QWdlbnRDaGFuZ2VkKCk7CisgICAgICAgIH0KKyAgICB9KTsKIH0KIAogdm9pZCBQYWdlOjppbnZh
bGlkYXRlU3R5bGVzRm9yQWxsTGlua3MoKQpAQCAtMjk5Myw4ICsyOTkxLDkgQEAgdm9pZCBQYWdl
Ojpub3RpZnlUb0luamVjdFVzZXJTY3JpcHRzKCkKIHsKICAgICBtX2hhc0JlZW5Ob3RpZmllZFRv
SW5qZWN0VXNlclNjcmlwdHMgPSB0cnVlOwogCi0gICAgZm9yIChhdXRvKiBmcmFtZSA9ICZtYWlu
RnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkKLSAg
ICAgICAgZnJhbWUtPmluamVjdFVzZXJTY3JpcHRzQXdhaXRpbmdOb3RpZmljYXRpb24oKTsKKyAg
ICBmb3JFYWNoRnJhbWVGcm9tTWFpbkZyYW1lKFtdIChGcmFtZSYgZnJhbWUpIHsKKyAgICAgICAg
ZnJhbWUuaW5qZWN0VXNlclNjcmlwdHNBd2FpdGluZ05vdGlmaWNhdGlvbigpOworICAgIH0pOwog
fQogCiB2b2lkIFBhZ2U6OnNldFVzZXJDb250ZW50UHJvdmlkZXIoUmVmPFVzZXJDb250ZW50UHJv
dmlkZXI+JiYgdXNlckNvbnRlbnRQcm92aWRlcikKQEAgLTM0MDQsMTAgKzM0MDMsMTAgQEAgUmVu
ZGVyaW5nVXBkYXRlU2NoZWR1bGVyJiBQYWdlOjpyZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIoKQog
ICAgIHJldHVybiAqbV9yZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI7CiB9CiAKLXZvaWQgUGFnZTo6
Zm9yRWFjaERvY3VtZW50KGNvbnN0IEZ1bmN0aW9uPHZvaWQoRG9jdW1lbnQmKT4mIGZ1bmN0b3Ip
IGNvbnN0Cit2b2lkIFBhZ2U6OmZvckVhY2hEb2N1bWVudEZyb21NYWluRnJhbWUoY29uc3QgRnJh
bWUmIG1haW5GcmFtZSwgY29uc3QgRnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYgZnVuY3RvcikK
IHsKICAgICBWZWN0b3I8UmVmPERvY3VtZW50Pj4gZG9jdW1lbnRzOwotICAgIGZvciAoYXV0byog
ZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVy
c2VOZXh0KCkpIHsKKyAgICBmb3IgKGF1dG8qIGZyYW1lID0gJm1haW5GcmFtZTsgZnJhbWU7IGZy
YW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBhdXRvKiBkb2N1
bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOwogICAgICAgICBpZiAoIWRvY3VtZW50KQogICAgICAg
ICAgICAgY29udGludWU7CkBAIC0zNDE3LDYgKzM0MTYsMTEgQEAgdm9pZCBQYWdlOjpmb3JFYWNo
RG9jdW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYgZnVuY3RvcikgY29uc3QK
ICAgICAgICAgZnVuY3Rvcihkb2N1bWVudCk7CiB9CiAKK3ZvaWQgUGFnZTo6Zm9yRWFjaERvY3Vt
ZW50KGNvbnN0IEZ1bmN0aW9uPHZvaWQoRG9jdW1lbnQmKT4mIGZ1bmN0b3IpIGNvbnN0Cit7Cisg
ICAgZm9yRWFjaERvY3VtZW50RnJvbU1haW5GcmFtZShtYWluRnJhbWUoKSwgZnVuY3Rvcik7Cit9
CisKIHZvaWQgUGFnZTo6Zm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5jdGlvbjx2b2lkKEhU
TUxNZWRpYUVsZW1lbnQmKT4mIGZ1bmN0b3IpCiB7CiAjaWYgRU5BQkxFKFZJREVPKQpAQCAtMzQy
OCw2ICszNDMyLDE2IEBAIHZvaWQgUGFnZTo6Zm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5j
dGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mIGZ1bmN0b3IpCiAjZW5kaWYKIH0KIAordm9p
ZCBQYWdlOjpmb3JFYWNoRnJhbWVGcm9tTWFpbkZyYW1lKGNvbnN0IEZ1bmN0aW9uPHZvaWQoRnJh
bWUmKT4mIGZ1bmN0b3IpCit7CisgICAgVmVjdG9yPFJlZjxGcmFtZT4+IGZyYW1lczsKKyAgICBm
b3IgKGF1dG8qIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnRyYXZlcnNlTmV4dCgpKQorICAgICAgICBmcmFtZXMuYXBwZW5kKCpmcmFtZSk7CisKKyAg
ICBmb3IgKGF1dG8mIGZyYW1lIDogZnJhbWVzKQorICAgICAgICBmdW5jdG9yKGZyYW1lKTsKK30K
KwogYm9vbCBQYWdlOjphbGxvd3NMb2FkRnJvbVVSTChjb25zdCBVUkwmIHVybCwgTWFpbkZyYW1l
TWFpblJlc291cmNlIG1haW5GcmFtZU1haW5SZXNvdXJjZSkgY29uc3QKIHsKICAgICBpZiAobWFp
bkZyYW1lTWFpblJlc291cmNlID09IE1haW5GcmFtZU1haW5SZXNvdXJjZTo6Tm8gJiYgIW1fbG9h
ZHNTdWJyZXNvdXJjZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGViODUwYWZhMzM2NDhmZjg3ZTg3NmEx
MWQzNmE0MTk0NzkzMzE1YWYuLjJlZWUyNGM0ZDg5ODhmZGY1NjFmMDA0MjllNjI2NGYwYTExYmQ3
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04OTIsNiArODkyLDggQEAgcHVibGljOgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBmb3JFYWNoRG9jdW1lbnQoY29uc3QgRnVuY3Rpb248dm9pZChEb2N1
bWVudCYpPiYpIGNvbnN0OwogICAgIHZvaWQgZm9yRWFjaE1lZGlhRWxlbWVudChjb25zdCBGdW5j
dGlvbjx2b2lkKEhUTUxNZWRpYUVsZW1lbnQmKT4mKTsKKyAgICBzdGF0aWMgdm9pZCBmb3JFYWNo
RG9jdW1lbnRGcm9tTWFpbkZyYW1lKGNvbnN0IEZyYW1lJiwgY29uc3QgRnVuY3Rpb248dm9pZChE
b2N1bWVudCYpPiYpOworICAgIHZvaWQgZm9yRWFjaEZyYW1lRnJvbU1haW5GcmFtZShjb25zdCBG
dW5jdGlvbjx2b2lkKEZyYW1lJik+Jik7CiAKICAgICBib29sIHNob3VsZERpc2FibGVDb3JzRm9y
UmVxdWVzdFRvKGNvbnN0IFVSTCYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9GcmFtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9T
Lm1tCmluZGV4IGZmNzY5YzczOWFhZWE2NGRiN2Y3MDdiNDkwYmQ1YzBhMWM2MzRkYzguLmFjMGRm
ZGE3NDExNGUwMjg3NzJjMDYyYTMwZmY3NTE2NDQ4ZWJhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L0ZyYW1lSU9TLm1tCkBAIC02NDQsOCArNjQ0LDkgQEAgdm9pZCBGcmFtZTo6ZGlzcGF0Y2hQYWdl
SGlkZUV2ZW50QmVmb3JlUGF1c2UoKQogICAgIGlmICghaXNNYWluRnJhbWUoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgZm9yIChGcmFtZSogZnJhbWUgPSB0aGlzOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCh0aGlzKSkKLSAgICAgICAgZnJhbWUtPmRvY3VtZW50
KCktPmRvbVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50KFBhZ2VUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkucGFnZWhpZGVFdmVudCwgdHJ1ZSksIGRvY3VtZW50KCkpOworICAgIFBh
Z2U6OmZvckVhY2hEb2N1bWVudEZyb21NYWluRnJhbWUoKnRoaXMsIFtwYWdlaGlkZUV2ZW50ID0g
ZXZlbnROYW1lcygpLnBhZ2VoaWRlRXZlbnQsIG1haW5Eb2N1bWVudCA9IGRvY3VtZW50KCldKERv
Y3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVudC5kb21XaW5kb3coKS0+ZGlzcGF0
Y2hFdmVudChQYWdlVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUocGFnZWhpZGVFdmVudCwgdHJ1ZSks
IG1haW5Eb2N1bWVudCk7CisgICAgfSk7CiB9CiAKIHZvaWQgRnJhbWU6OmRpc3BhdGNoUGFnZVNo
b3dFdmVudEJlZm9yZVJlc3VtZSgpCkBAIC02NTQsOCArNjU1LDkgQEAgdm9pZCBGcmFtZTo6ZGlz
cGF0Y2hQYWdlU2hvd0V2ZW50QmVmb3JlUmVzdW1lKCkKICAgICBpZiAoIWlzTWFpbkZyYW1lKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gdGhpczsgZnJhbWU7
IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQodGhpcykpCi0gICAgICAgIGZyYW1l
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChQYWdlVHJhbnNpdGlvbkV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnBhZ2VzaG93RXZlbnQsIHRydWUpLCBkb2N1bWVudCgp
KTsKKyAgICBQYWdlOjpmb3JFYWNoRG9jdW1lbnRGcm9tTWFpbkZyYW1lKCp0aGlzLCBbcGFnZXNo
b3dFdmVudCA9IGV2ZW50TmFtZXMoKS5wYWdlc2hvd0V2ZW50LCBtYWluRG9jdW1lbnQgPSBkb2N1
bWVudCgpXShEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQuZG9tV2luZG93
KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKHBhZ2VzaG93RXZl
bnQsIHRydWUpLCBtYWluRG9jdW1lbnQpOworICAgIH0pOwogfQogCiB2b2lkIEZyYW1lOjpzZXRS
YW5nZWRTZWxlY3Rpb25CYXNlVG9DdXJyZW50U2VsZWN0aW9uKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>