<?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>233138</bug_id>
          
          <creation_ts>2021-11-15 11:03:54 -0800</creation_ts>
          <short_desc>AX: Stop returning AccessibilityUIElements backed by a null pointer</short_desc>
          <delta_ts>2021-11-16 06:38:27 -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>Accessibility</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="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>andresg_22</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815129</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-15 11:03:54 -0800</bug_when>
    <thetext>In a few places, we call AccessibilityUIElement::create() with a nullptr. This returns a Ref&lt;&gt; backed by a null pointer / object, which is confusing. We should probably return a null RefPtr instead.

One example:

Ref&lt;AccessibilityUIElement&gt; AccessibilityController::focusedElement()
{
     auto page = InjectedBundle::singleton().page()-&gt;page();
     auto root = static_cast&lt;PlatformUIElement&gt;(WKAccessibilityRootObject(page));
     auto rootElement = AccessibilityUIElement::create(root);
     if (auto focusedElement = rootElement-&gt;focusedElement())
         return *focusedElement;
     return AccessibilityUIElement::create(nullptr);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815130</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-15 11:04:52 -0800</bug_when>
    <thetext>&lt;rdar://problem/85420387&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815139</commentid>
    <comment_count>2</comment_count>
      <attachid>444279</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-15 11:18:17 -0800</bug_when>
    <thetext>Created attachment 444279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815159</commentid>
    <comment_count>3</comment_count>
      <attachid>444287</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-15 11:51:50 -0800</bug_when>
    <thetext>Created attachment 444287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815161</commentid>
    <comment_count>4</comment_count>
      <attachid>444288</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-15 11:56:24 -0800</bug_when>
    <thetext>Created attachment 444288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815162</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-11-15 11:57:56 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #2)
&gt; Created attachment 444279 [details]
&gt; Patch

--- a/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp
+++ a/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp

-Ref&lt;AccessibilityUIElement&gt; AccessibilityUIElement::create(PlatformUIElement uiElement)
+RefPtr&lt;AccessibilityUIElement&gt; AccessibilityUIElement::create(PlatformUIElement uiElement)

I think it is odd that a class create method can return null. Haven&apos;t seen examples of that in WebKit, but I can be convinced otherwise. Instead I think we shouldn&apos;t try to create an AccessibilityUIElement if the platform element is null.

+    if (!uiElement)
+        return { };

If this is the way to go, return nullptr here.

--- a/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
+++ a/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h

-    static Ref&lt;AccessibilityUIElement&gt; create(PlatformUIElement);
+    static RefPtr&lt;AccessibilityUIElement&gt; create(PlatformUIElement);

Again, create shouldn&apos;t return null IMHO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815166</commentid>
    <comment_count>6</comment_count>
      <attachid>444290</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-15 12:06:55 -0800</bug_when>
    <thetext>Created attachment 444290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815187</commentid>
    <comment_count>7</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-15 12:54:00 -0800</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #5)
&gt; (In reply to Tyler Wilcock from comment #2)
&gt; &gt; Created attachment 444279 [details]
&gt; &gt; Patch
&gt; 
&gt; --- a/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp
&gt; +++ a/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp
&gt; 
&gt; -Ref&lt;AccessibilityUIElement&gt;
&gt; AccessibilityUIElement::create(PlatformUIElement uiElement)
&gt; +RefPtr&lt;AccessibilityUIElement&gt;
&gt; AccessibilityUIElement::create(PlatformUIElement uiElement)
&gt; 
&gt; I think it is odd that a class create method can return null. Haven&apos;t seen
&gt; examples of that in WebKit, but I can be convinced otherwise. Instead I
&gt; think we shouldn&apos;t try to create an AccessibilityUIElement if the platform
&gt; element is null.
&gt; 
&gt; +    if (!uiElement)
&gt; +        return { };
&gt; 
&gt; If this is the way to go, return nullptr here.
&gt; 
&gt; --- a/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
&gt; +++ a/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
&gt; 
&gt; -    static Ref&lt;AccessibilityUIElement&gt; create(PlatformUIElement);
&gt; +    static RefPtr&lt;AccessibilityUIElement&gt; create(PlatformUIElement);
&gt; 
&gt; Again, create shouldn&apos;t return null IMHO.
Yeah, I think that&apos;s reasonable. I checked, and you&apos;re right that every create method everywhere returns a Ref. I&apos;ll change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815213</commentid>
    <comment_count>8</comment_count>
      <attachid>444304</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-15 14:20:15 -0800</bug_when>
    <thetext>Created attachment 444304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815245</commentid>
    <comment_count>9</comment_count>
      <attachid>444310</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-15 15:08:54 -0800</bug_when>
    <thetext>Created attachment 444310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815286</commentid>
    <comment_count>10</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-11-15 17:06:26 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #9)
&gt; Created attachment 444310 [details]
&gt; Patch

--- a/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityControllerWin.cpp
+++ a/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityControllerWin.cpp

-Ref&lt;AccessibilityUIElement&gt; AccessibilityController::focusedElement()
+RefPtr&lt;AccessibilityUIElement&gt; AccessibilityController::focusedElement()
 {
     notImplemented();
     return AccessibilityUIElement::create(nullptr);

we should return nullptr here for consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815289</commentid>
    <comment_count>11</comment_count>
      <attachid>444321</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-15 17:13:46 -0800</bug_when>
    <thetext>Created attachment 444321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815452</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-16 06:38:26 -0800</bug_when>
    <thetext>Committed r285859 (244285@main): &lt;https://commits.webkit.org/244285@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444321.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444279</attachid>
            <date>2021-11-15 11:18:17 -0800</date>
            <delta_ts>2021-11-15 11:57:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233138-20211115131816.patch</filename>
            <type>text/plain</type>
            <size>8007</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Nzk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmI5ZmNmMTQ4NDIzMjNiNDM3NzkzOTdkZTI5OTAxMjE3
NmQ4NmJlNy4uYTliMDQ3ODE0ZjNkYjRlZTIwZDM5MGJmMjZkODBkMmRhMTliYjRhMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDIxLTExLTE1ICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IFN0b3AgcmV0dXJuaW5nIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRzIGJhY2tlZCBi
eSBhIG51bGwgcG9pbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMzMTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgd2Ugc29tZXRpbWVzIHJldHVybmVkIFJlZjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PnMKKyAgICAgICAgYmFja2VkIGJ5IG51bGwgcG9pbnRlcnMu
IFRoaXMgbWFrZXMgd3JpdGluZyB0ZXN0cyBoYXJkZXIsIHNpbmNlIHlvdQorICAgICAgICBkb24n
dCBrbm93IGlmIHRoZSBVSSBlbGVtZW50IHlvdSByZWNlaXZlZCBpcyBhY3R1YWxseSB2YWxpZC4K
KworICAgICAgICBBcyBhbiBleGFtcGxlLCBiZWZvcmUgdGhpcyBwYXRjaCwgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dmVydGljYWxTY3JvbGxiYXIoKQorICAgICAgICBhbHdheXMgcmV0dXJuZWQg
YSBub24tbnVsbCBvYmplY3QsIGV2ZW4gd2hlbiB0aGVyZSBpcyBubyByZW5kZXJlZAorICAgICAg
ICBzY3JvbGxiYXIuCisKKyAgICAgICAgV2l0aCB0aGlzIHBhdGNoLCB3ZSByZXR1cm4gYSBudWxs
IFJlZlB0ciB3aGVuIHdlIGRvbid0IGhhdmUgYSB2YWxpZAorICAgICAgICBiYWNraW5nIG9iamVj
dCBmb3IgYW4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudC4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQpOgorICAgICAgICBB
ZGQgY2FsbCB0byBgcmVsZWFzZU5vbk51bGxgLCBhcyB3ZSBzaG91bGQgYWx3YXlzIGdldCBiYWNr
IGEgdmFsaWQKKyAgICAgICAgcm9vdCBlbGVtZW50IChub3QgYSBudWxsIFJlZlB0cikuCisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCk6CisgICAg
ICAgIFJldHVybiBhIG51bGwgUmVmUHRyIGlmIHRoZXJlIGlzIG5vIGZvY3VzZWQgZWxlbWVudC4K
KworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICBDaGFuZ2UgbWV0aG9kIHNpZ25hdHVyZSB0byBy
ZXR1cm4gUmVmUHRyIHJhdGhlciB0aGFuIFJlZi4gUmV0dXJuIGEKKyAgICAgICAgbnVsbCBSZWZQ
dHIgaWYgdGhlIGdpdmVuIHBvaW50ZXIgaXMgbnVsbC4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25N
YWMubW06CisgICAgICAgIChXVFI6Om1ha2VWYWx1ZVJlZkZvclZhbHVlKToKKyAgICAgICAgQ2Fs
bCAuZ2V0KCkgaW5zdGVhZCBvZiAucHRyKCksIHNpbmNlIHRoZSBjYWxsZWUgaXMgYSBSZWZQdHIg
aW5zdGVhZCBvZgorICAgICAgICBhIFJlZiB3aXRoIHRoaXMgcGF0Y2guCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIgX25vdGlmaWNhdGlvblJlY2VpdmVkOl0pOgorICAgICAgICBDYWxsIC5nZXQoKSBpbnN0ZWFk
IG9mIC5wdHIoKSwgc2luY2UgdGhlIGNhbGxlZSBpcyBhIFJlZlB0ciBpbnN0ZWFkIG9mCisgICAg
ICAgIGEgUmVmIHdpdGggdGhpcyBwYXRjaC4KKwogMjAyMS0xMS0xMyAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgVUlTY3JpcHRDb250
cm9sbGVyLnNlbmRFdmVudFN0cmVhbSgpIGZvciBEdW1wUmVuZGVyVHJlZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmNwcAppbmRleCA2NDVhNDRiNzE1YTBhZjdlMjNjZTA5ZDNhM2Y0OTM1
YTQ2NzRiNTRjLi5kNjJiMzhlMTgyNGZjYjk4NmNjZTFiNmY1ZjdjZmVkODM2ZTRmN2I2IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcApAQCAtODcsMTcgKzg3LDE1IEBAIFJlZjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVsZW1l
bnQoKQogewogICAgIGF1dG8gcGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdl
KCktPnBhZ2UoKTsKICAgICBQbGF0Zm9ybVVJRWxlbWVudCByb290ID0gc3RhdGljX2Nhc3Q8UGxh
dGZvcm1VSUVsZW1lbnQ+KFdLQWNjZXNzaWJpbGl0eVJvb3RPYmplY3QocGFnZSkpOwotICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUocm9vdCk7CisgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShyb290KS5yZWxlYXNlTm9uTnVsbCgpOwogfQog
Ci1SZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZv
Y3VzZWRFbGVtZW50KCkKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQogewogICAgIGF1dG8gcGFnZSA9IEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKTsKICAgICBhdXRvIHJvb3QgPSBz
dGF0aWNfY2FzdDxQbGF0Zm9ybVVJRWxlbWVudD4oV0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdChw
YWdlKSk7CiAgICAgYXV0byByb290RWxlbWVudCA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNy
ZWF0ZShyb290KTsKLSAgICBpZiAoYXV0byBmb2N1c2VkRWxlbWVudCA9IHJvb3RFbGVtZW50LT5m
b2N1c2VkRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gKmZvY3VzZWRFbGVtZW50OwotICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUobnVsbHB0cik7CisgICAgcmV0dXJu
IHJvb3RFbGVtZW50LT5mb2N1c2VkRWxlbWVudCgpOwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpleGVjdXRlT25BWFRocmVhZEFuZFdhaXQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1
bmN0aW9uKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCmluZGV4IGFlYTFhNjBlNGJjMDI4
MzczNDQ2YTg3Nzc4OWVkODM0NGM1ZmIyNTkuLjA3MjNkM2UwMTk1NDY0YjMxNzFkMjI3YWYzZWUx
Y2FmOTAwZjBkMDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTYzLDcgKzYz
LDcgQEAgcHVibGljOgogICAgIC8vIENvbnRyb2xsZXIgTWV0aG9kcyAtIHBsYXRmb3JtLWluZGVw
ZW5kZW50IGltcGxlbWVudGF0aW9ucy4KICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgUmVm
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IHJvb3RFbGVtZW50KCk7Ci0gICAgUmVmPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+IGZvY3VzZWRFbGVtZW50KCk7CisgICAgUmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IGZvY3VzZWRFbGVtZW50KCk7CiAjZW5kaWYKICAgICBSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4gZWxlbWVudEF0UG9pbnQoaW50IHgsIGludCB5KTsKICAgICBSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gYWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5n
UmVmIGlkQXR0cmlidXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IGFl
NWJlNTI1NzI0NzhmYjBhNDBmMjYxNzRkODcwYjdhYjE2ZmIyZWIuLjI1YTBlNWJmMDkzNWVmYzdi
YTk5N2I5NDA3ZWJiNzkyMjNlZjI5ZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cApAQCAtMzMsOCArMzMsMTAgQEAKIAogbmFtZXNwYWNlIFdUUiB7CiAKLVJlZjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoUGxhdGZvcm1VSUVs
ZW1lbnQgdWlFbGVtZW50KQorUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShQbGF0Zm9ybVVJRWxlbWVudCB1aUVsZW1lbnQpCiB7Cisg
ICAgaWYgKCF1aUVsZW1lbnQpCisgICAgICAgIHJldHVybiB7IH07CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCh1aUVsZW1lbnQpKTsKIH0KICAgICAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKaW5kZXggNTJhNTEyY2E5NmU5NTdkNWIzYjA5ZTZjYTBm
Y2VhYzk4YzU3NWQxZC4uNjQ5M2NjM2JjZWE3ZjYyMWUzYzkwZjcwYmJmZGNiYjZlZGNkNDQzZCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTY5LDcgKzY5LDcgQEAgY2xhc3MgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudCA6IHB1YmxpYyBKU1dyYXBwYWJsZSB7CiAjZW5kaWYKIAogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY3JlYXRlKFBsYXRm
b3JtVUlFbGVtZW50KTsKKyAgICBzdGF0aWMgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
IGNyZWF0ZShQbGF0Zm9ybVVJRWxlbWVudCk7CiAgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBjcmVhdGUoY29uc3QgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCYpOwogCiAgICAg
fkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29tbW9u
TWFjLm1tCmluZGV4IDEyMGFjMGJiNDY1OTFiYzgwOTNkZjJmNmQ0OWU0MGI5ODVlNmI4NDkuLjhj
MjJiMjM5Y2JkZmQ5ZjhjZmIwZjdmYTAzNTAwNDVlNzU1NjI0ZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25N
YWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQpAQCAtOTgsNyArOTgsNyBAQCBKU1ZhbHVlUmVmIG1ha2VW
YWx1ZVJlZkZvclZhbHVlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBpZCB2YWx1ZSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIFt2YWx1ZSBkb3VibGVWYWx1ZV0pOwog
ICAgIH0KICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6d2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJDbGFzcygpXSkKLSAgICAgICAgcmV0dXJuIHRvSlMoY29udGV4dCwgV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8UGxhdGZvcm1VSUVsZW1lbnQ+
KHZhbHVlKSkucHRyKCkpOworICAgICAgICByZXR1cm4gdG9KUyhjb250ZXh0LCBXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxQbGF0Zm9ybVVJRWxlbWVudD4o
dmFsdWUpKS5nZXQoKSk7CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25h
cnkgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIG1ha2VKU09iamVjdChjb250ZXh0LCB2YWx1ZSk7
CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IDg1
MDI2ZTZlODkyM2I0MjFlNjgxM2ZjYjA1YWRiY2Y0ODQyN2FiM2YuLjkzNjQyNTVjYjY2OTAwNDBi
Y2RlMTIxZTM4OWY3ZDdkMmJkN2JiNDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1t
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMjcsNyArMTI3LDcgQEAKICAgICB9IGVs
c2UgewogICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3Rp
ZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRz
WzNdOwotICAgICAgICBhcmd1bWVudHNbMF0gPSB0b0pTKGNvbnRleHQsIFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkucHRyKCkpOworICAg
ICAgICBhcmd1bWVudHNbMF0gPSB0b0pTKGNvbnRleHQsIFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkuZ2V0KCkpOwogICAgICAgICBhcmd1
bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CiAgICAgICAgIGFyZ3VtZW50c1sy
XSA9IHVzZXJJbmZvQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29u
dGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxi
YWNrKSwgMCwgMywgYXJndW1lbnRzLCAwKTsK
</data>
<flag name="commit-queue"
          id="469262"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444287</attachid>
            <date>2021-11-15 11:51:50 -0800</date>
            <delta_ts>2021-11-15 11:56:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233138-20211115135149.patch</filename>
            <type>text/plain</type>
            <size>9299</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Nzk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmI5ZmNmMTQ4NDIzMjNiNDM3NzkzOTdkZTI5OTAxMjE3
NmQ4NmJlNy4uZmZhYjI1NWI3MmRjZGU2NWIzZmJkNmZiMmRlMmRmZjA4NjdjMzFjNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUw
IEBACisyMDIxLTExLTE1ICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IFN0b3AgcmV0dXJuaW5nIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRzIGJhY2tlZCBi
eSBhIG51bGwgcG9pbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMzMTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3Jl
YXRlIGFsbG93ZWQgY2FsbGVycyB0byByZXR1cm4KKyAgICAgICAgUmVmPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+cyBiYWNrZWQgYnkgbnVsbCBwb2ludGVycy4gVGhpcyBtYWtlcyB3cml0aW5nIHRl
c3RzCisgICAgICAgIGhhcmRlciwgc2luY2UgeW91IGRvbid0IGtub3cgaWYgdGhlIFVJIGVsZW1l
bnQgeW91IHJlY2VpdmVkIGlzIGFjdHVhbGx5IHZhbGlkLgorCisgICAgICAgIEFzIGFuIGV4YW1w
bGUsIGJlZm9yZSB0aGlzIHBhdGNoLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNj
cm9sbGJhcigpCisgICAgICAgIGFsd2F5cyByZXR1cm5lZCBhIG5vbi1udWxsIG9iamVjdCwgZXZl
biB3aGVuIHRoZXJlIGlzIG5vIHJlbmRlcmVkCisgICAgICAgIHNjcm9sbGJhci4KKworICAgICAg
ICBXaXRoIHRoaXMgcGF0Y2gsIHdlIHJldHVybiBhIG51bGwgUmVmUHRyIHdoZW4gd2UgZG9uJ3Qg
aGF2ZSBhIHZhbGlkCisgICAgICAgIGJhY2tpbmcgb2JqZWN0IGZvciBhbiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpyb290RWxlbWVudCk6CisgICAgICAgIEFkZCBjYWxsIHRvIGByZWxlYXNlTm9u
TnVsbGAsIGFzIHdlIHNob3VsZCBhbHdheXMgZ2V0IGJhY2sgYSB2YWxpZAorICAgICAgICByb290
IGVsZW1lbnQgKG5vdCBhIG51bGwgUmVmUHRyKS4KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgUmV0dXJuIGEgbnVsbCBSZWZQ
dHIgaWYgdGhlcmUgaXMgbm8gZm9jdXNlZCBlbGVtZW50LgorCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIENoYW5nZSBtZXRob2Qgc2lnbmF0dXJlIHRvIHJldHVybiBSZWZQdHIgcmF0aGVyIHRo
YW4gUmVmLiBSZXR1cm4gYQorICAgICAgICBudWxsIFJlZlB0ciBpZiB0aGUgZ2l2ZW4gcG9pbnRl
ciBpcyBudWxsLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbToKKyAgICAgICAgKFdUUjo6
bWFrZVZhbHVlUmVmRm9yVmFsdWUpOgorICAgICAgICBDYWxsIC5nZXQoKSBpbnN0ZWFkIG9mIC5w
dHIoKSwgc2luY2UgdGhlIGNhbGxlZSBpcyBhIFJlZlB0ciBpbnN0ZWFkIG9mCisgICAgICAgIGEg
UmVmIHdpdGggdGhpcyBwYXRjaC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAg
ICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2
ZWQ6XSk6CisgICAgICAgIENhbGwgLmdldCgpIGluc3RlYWQgb2YgLnB0cigpLCBzaW5jZSB0aGUg
Y2FsbGVlIGlzIGEgUmVmUHRyIGluc3RlYWQgb2YKKyAgICAgICAgYSBSZWYgd2l0aCB0aGlzIHBh
dGNoLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5BbmRSb3cpOgorICAgICAgICBSZW1vdmUgdW5uZWNlc3Nh
cnkgY2FsbCB0byAucHRyKCkgbm93IHRoYXQKKyAgICAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Y3JlYXRlIHJldHVybnMgYSBSZWZQdHIgaW5zdHJlYWQgb2YgYSBSZWYuCisKIDIwMjEtMTEt
MTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1w
bGVtZW50IFVJU2NyaXB0Q29udHJvbGxlci5zZW5kRXZlbnRTdHJlYW0oKSBmb3IgRHVtcFJlbmRl
clRyZWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKaW5kZXggNjQ1YTQ0YjcxNWEw
YWY3ZTIzY2UwOWQzYTNmNDkzNWE0Njc0YjU0Yy4uZDYyYjM4ZTE4MjRmY2I5ODZjY2UxYjZmNWY3
Y2ZlZDgzNmU0ZjdiNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKQEAgLTg3
LDE3ICs4NywxNSBAQCBSZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKIHsKICAgICBhdXRvIHBhZ2UgPSBJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCk7CiAgICAgUGxhdGZvcm1VSUVsZW1lbnQgcm9v
dCA9IHN0YXRpY19jYXN0PFBsYXRmb3JtVUlFbGVtZW50PihXS0FjY2Vzc2liaWxpdHlSb290T2Jq
ZWN0KHBhZ2UpKTsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKHJv
b3QpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUocm9vdCkucmVs
ZWFzZU5vbk51bGwoKTsKIH0KIAotUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KCkKIHsKICAg
ICBhdXRvIHBhZ2UgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCk7
CiAgICAgYXV0byByb290ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1VSUVsZW1lbnQ+KFdLQWNjZXNz
aWJpbGl0eVJvb3RPYmplY3QocGFnZSkpOwogICAgIGF1dG8gcm9vdEVsZW1lbnQgPSBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpjcmVhdGUocm9vdCk7Ci0gICAgaWYgKGF1dG8gZm9jdXNlZEVsZW1l
bnQgPSByb290RWxlbWVudC0+Zm9jdXNlZEVsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuICpmb2N1
c2VkRWxlbWVudDsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKG51
bGxwdHIpOworICAgIHJldHVybiByb290RWxlbWVudC0+Zm9jdXNlZEVsZW1lbnQoKTsKIH0KIAog
dm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZXhlY3V0ZU9uQVhUaHJlYWRBbmRXYWl0KEZ1
bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaApp
bmRleCBhZWExYTYwZTRiYzAyODM3MzQ0NmE4Nzc3ODllZDgzNDRjNWZiMjU5Li4wNzIzZDNlMDE5
NTQ2NGIzMTcxZDIyN2FmM2VlMWNhZjkwMGYwZDA2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICAvLyBDb250cm9sbGVyIE1ldGhv
ZHMgLSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBpbXBsZW1lbnRhdGlvbnMuCiAjaWYgSEFWRShBQ0NF
U1NJQklMSVRZKQogICAgIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiByb290RWxlbWVudCgp
OwotICAgIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBmb2N1c2VkRWxlbWVudCgpOworICAg
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBmb2N1c2VkRWxlbWVudCgpOwogI2VuZGlm
CiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGVsZW1lbnRBdFBvaW50KGludCB4
LCBpbnQgeSk7CiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGFjY2Vzc2libGVF
bGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZEF0dHJpYnV0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmNwcAppbmRleCBhZTViZTUyNTcyNDc4ZmIwYTQwZjI2MTc0ZDg3MGI3YWIxNmZiMmVi
Li4yNWEwZTViZjA5MzVlZmM3YmE5OTdiOTQwN2ViYjc5MjIzZWYyOWQ0IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTMzLDggKzMzLDEwIEBACiAKIG5hbWVzcGFjZSBXVFIg
ewogCi1SZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y3JlYXRlKFBsYXRmb3JtVUlFbGVtZW50IHVpRWxlbWVudCkKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoUGxhdGZvcm1VSUVsZW1l
bnQgdWlFbGVtZW50KQogeworICAgIGlmICghdWlFbGVtZW50KQorICAgICAgICByZXR1cm4geyB9
OwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQodWlFbGVt
ZW50KSk7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IDUyYTUxMmNh
OTZlOTU3ZDViM2IwOWU2Y2EwZmNlYWM5OGM1NzVkMWQuLjY0OTNjYzNiY2VhN2Y2MjFlM2M5MGY3
MGJiZmRjYmI2ZWRjZDQ0M2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCkBAIC02OSw3
ICs2OSw3IEBAIGNsYXNzIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgOiBwdWJsaWMgSlNXcmFwcGFi
bGUgewogI2VuZGlmCiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IGNyZWF0ZShQbGF0Zm9ybVVJRWxlbWVudCk7CisgICAgc3RhdGljIFJlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiBjcmVhdGUoUGxhdGZvcm1VSUVsZW1lbnQpOwogICAgIHN0YXRp
YyBSZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY3JlYXRlKGNvbnN0IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQmKTsKIAogICAgIH5BY2Nlc3NpYmlsaXR5VUlFbGVtZW50KCk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
YXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCmluZGV4IDY2M2VkZTUyYTQ4MTZhY2My
MmQ2MDEzMjNlYzY2MTVlZDhlNmI4MjguLmZhM2ExYTI5ODIxNmU5Zjk5YmMyZGI1ZGFiY2MzNTcw
OTVlOGE0NGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3Bw
CkBAIC0xODAwLDcgKzE4MDAsNyBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1bnNpZwogICAgIC8vIEFk
b3B0IHRoZSBBdGtPYmplY3QgcmVwcmVzZW50aW5nIHRoZSBjZWxsIGJlY2F1c2UKICAgICAvLyBh
dF90YWJsZV9yZWZfYXQoKSB0cmFuc2ZlcnMgZnVsbCBvd25lcnNoaXAuCiAgICAgR1JlZlB0cjxB
dGtPYmplY3Q+IGZvdW5kQ2VsbCA9IGFkb3B0R1JlZihhdGtfdGFibGVfcmVmX2F0KEFUS19UQUJM
RShtX2VsZW1lbnQuZ2V0KCkpLCByb3csIGNvbCkpOwotICAgIHJldHVybiBmb3VuZENlbGwgPyBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoZm91bmRDZWxsLmdldCgpKS5wdHIoKSA6IG51
bGxwdHI7CisgICAgcmV0dXJuIGZvdW5kQ2VsbCA/IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNy
ZWF0ZShmb3VuZENlbGwuZ2V0KCkpIDogbnVsbHB0cjsKIH0KIAogUmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhvcml6b250YWxTY3JvbGxiYXIo
KSBjb25zdApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMubW0KaW5kZXggMTIwYWMw
YmI0NjU5MWJjODA5M2RmMmY2ZDQ5ZTQwYjk4NWU2Yjg0OS4uOGMyMmIyMzljYmRmZDlmOGNmYjBm
N2ZhMDM1MDA0NWU3NTU2MjRmNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29tbW9uTWFj
Lm1tCkBAIC05OCw3ICs5OCw3IEBAIEpTVmFsdWVSZWYgbWFrZVZhbHVlUmVmRm9yVmFsdWUoSlND
b250ZXh0UmVmIGNvbnRleHQsIGlkIHZhbHVlKQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VO
dW1iZXIoY29udGV4dCwgW3ZhbHVlIGRvdWJsZVZhbHVlXSk7CiAgICAgfQogICAgIGlmIChbdmFs
dWUgaXNLaW5kT2ZDbGFzczp3ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckNsYXNzKCldKQot
ICAgICAgICByZXR1cm4gdG9KUyhjb250ZXh0LCBXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmNyZWF0ZShzdGF0aWNfY2FzdDxQbGF0Zm9ybVVJRWxlbWVudD4odmFsdWUpKS5wdHIoKSk7Cisg
ICAgICAgIHJldHVybiB0b0pTKGNvbnRleHQsIFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y3JlYXRlKHN0YXRpY19jYXN0PFBsYXRmb3JtVUlFbGVtZW50Pih2YWx1ZSkpLmdldCgpKTsKICAg
ICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKQogICAgICAg
ICByZXR1cm4gbWFrZUpTT2JqZWN0KGNvbnRleHQsIHZhbHVlKTsKICAgICBpZiAoW3ZhbHVlIGlz
S2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5k
bGVyLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggODUwMjZlNmU4OTIzYjQyMWU2ODEz
ZmNiMDVhZGJjZjQ4NDI3YWIzZi4uOTM2NDI1NWNiNjY5MDA0MGJjZGUxMjFlMzg5ZjdkN2QyYmQ3
YmI0MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIubW0KQEAgLTEyNyw3ICsxMjcsNyBAQAogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEEg
Z2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1
c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107Ci0gICAgICAgIGFyZ3Vt
ZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVh
dGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKS5wdHIoKSk7CisgICAgICAgIGFyZ3VtZW50c1swXSA9
IHRvSlMoY29udGV4dCwgV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlm
aWNhdGlvbiBvYmplY3RdKS5nZXQoKSk7CiAgICAgICAgIGFyZ3VtZW50c1sxXSA9IG5vdGlmaWNh
dGlvbk5hbWVBcmd1bWVudDsKICAgICAgICAgYXJndW1lbnRzWzJdID0gdXNlckluZm9Bcmd1bWVu
dDsKICAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpT
T2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAzLCBhcmd1bWVu
dHMsIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444288</attachid>
            <date>2021-11-15 11:56:24 -0800</date>
            <delta_ts>2021-11-15 12:32:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233138-20211115135622.patch</filename>
            <type>text/plain</type>
            <size>10415</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Nzk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmI5ZmNmMTQ4NDIzMjNiNDM3NzkzOTdkZTI5OTAxMjE3
NmQ4NmJlNy4uMzFjMDRhYzEyNzQ5MDNkN2Q0MTY0OGJkODQ3ZmMyZDEwNDE0NmQwYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDIxLTExLTE1ICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IFN0b3AgcmV0dXJuaW5nIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRzIGJhY2tlZCBi
eSBhIG51bGwgcG9pbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMzMTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3Jl
YXRlIGFsbG93ZWQgY2FsbGVycyB0byByZXR1cm4KKyAgICAgICAgUmVmPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+cyBiYWNrZWQgYnkgbnVsbCBwb2ludGVycy4gVGhpcyBtYWtlcyB3cml0aW5nIHRl
c3RzCisgICAgICAgIGhhcmRlciwgc2luY2UgeW91IGRvbid0IGtub3cgaWYgdGhlIFVJIGVsZW1l
bnQgeW91IHJlY2VpdmVkIGlzIGFjdHVhbGx5IHZhbGlkLgorCisgICAgICAgIEFzIGFuIGV4YW1w
bGUsIGJlZm9yZSB0aGlzIHBhdGNoLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNj
cm9sbGJhcigpCisgICAgICAgIGFsd2F5cyByZXR1cm5lZCBhIG5vbi1udWxsIG9iamVjdCwgZXZl
biB3aGVuIHRoZXJlIGlzIG5vIHJlbmRlcmVkCisgICAgICAgIHNjcm9sbGJhci4KKworICAgICAg
ICBXaXRoIHRoaXMgcGF0Y2gsIHdlIHJldHVybiBhIG51bGwgUmVmUHRyIHdoZW4gd2UgZG9uJ3Qg
aGF2ZSBhIHZhbGlkCisgICAgICAgIGJhY2tpbmcgb2JqZWN0IGZvciBhbiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93
aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQpOgorICAgICAgICBB
ZGQgY2FsbCB0byBgcmVsZWFzZU5vbk51bGxgLCBhcyB3ZSBzaG91bGQgYWx3YXlzIGdldCBiYWNr
IGEgdmFsaWQKKyAgICAgICAgcm9vdCBlbGVtZW50IChub3QgYSBudWxsIFJlZlB0cikuCisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCk6CisgICAg
ICAgIFJldHVybiBhIG51bGwgUmVmUHRyIGlmIHRoZXJlIGlzIG5vIGZvY3VzZWQgZWxlbWVudC4K
KworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICBDaGFuZ2UgbWV0aG9kIHNpZ25hdHVyZSB0byBy
ZXR1cm4gUmVmUHRyIHJhdGhlciB0aGFuIFJlZi4gUmV0dXJuIGEKKyAgICAgICAgbnVsbCBSZWZQ
dHIgaWYgdGhlIGdpdmVuIHBvaW50ZXIgaXMgbnVsbC4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25N
YWMubW06CisgICAgICAgIChXVFI6Om1ha2VWYWx1ZVJlZkZvclZhbHVlKToKKyAgICAgICAgQ2Fs
bCAuZ2V0KCkgaW5zdGVhZCBvZiAucHRyKCksIHNpbmNlIHRoZSBjYWxsZWUgaXMgYSBSZWZQdHIg
aW5zdGVhZCBvZgorICAgICAgICBhIFJlZiB3aXRoIHRoaXMgcGF0Y2guCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIgX25vdGlmaWNhdGlvblJlY2VpdmVkOl0pOgorICAgICAgICBDYWxsIC5nZXQoKSBpbnN0ZWFk
IG9mIC5wdHIoKSwgc2luY2UgdGhlIGNhbGxlZSBpcyBhIFJlZlB0ciBpbnN0ZWFkIG9mCisgICAg
ICAgIGEgUmVmIHdpdGggdGhpcyBwYXRjaC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KToKKyAg
ICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNhbGwgdG8gLnB0cigpIG5vdyB0aGF0CisgICAgICAg
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSByZXR1cm5zIGEgUmVmUHRyIGluc3RyZWFk
IG9mIGEgUmVmLgorCiAyMDIxLTExLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBVSVNjcmlwdENvbnRyb2xsZXIuc2VuZEV2ZW50
U3RyZWFtKCkgZm9yIER1bXBSZW5kZXJUcmVlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
Y3BwCmluZGV4IDY0NWE0NGI3MTVhMGFmN2UyM2NlMDlkM2EzZjQ5MzVhNDY3NGI1NGMuLmQ2MmIz
OGUxODI0ZmNiOTg2Y2NlMWI2ZjVmN2NmZWQ4MzZlNGY3YjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuY3BwCkBAIC04NywxNyArODcsMTUgQEAgUmVmPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiB7CiAgICAgYXV0
byBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpOwogICAg
IFBsYXRmb3JtVUlFbGVtZW50IHJvb3QgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVVJRWxlbWVudD4o
V0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdChwYWdlKSk7Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNyZWF0ZShyb290KTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y3JlYXRlKHJvb3QpLnJlbGVhc2VOb25OdWxsKCk7CiB9CiAKLVJlZjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQor
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpm
b2N1c2VkRWxlbWVudCgpCiB7CiAgICAgYXV0byBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpLnBhZ2UoKS0+cGFnZSgpOwogICAgIGF1dG8gcm9vdCA9IHN0YXRpY19jYXN0PFBsYXRm
b3JtVUlFbGVtZW50PihXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0KHBhZ2UpKTsKICAgICBhdXRv
IHJvb3RFbGVtZW50ID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKHJvb3QpOwotICAg
IGlmIChhdXRvIGZvY3VzZWRFbGVtZW50ID0gcm9vdEVsZW1lbnQtPmZvY3VzZWRFbGVtZW50KCkp
Ci0gICAgICAgIHJldHVybiAqZm9jdXNlZEVsZW1lbnQ7Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsKKyAgICByZXR1cm4gcm9vdEVsZW1lbnQtPmZv
Y3VzZWRFbGVtZW50KCk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmV4ZWN1
dGVPbkFYVGhyZWFkQW5kV2FpdChGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmgKaW5kZXggYWVhMWE2MGU0YmMwMjgzNzM0NDZhODc3Nzg5ZWQ4
MzQ0YzVmYjI1OS4uMDcyM2QzZTAxOTU0NjRiMzE3MWQyMjdhZjNlZTFjYWY5MDBmMGQwNiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gQ29udHJvbGxlciBNZXRob2RzIC0gcGxhdGZvcm0taW5kZXBlbmRlbnQgaW1wbGVtZW50
YXRpb25zLgogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKICAgICBSZWY8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gcm9vdEVsZW1lbnQoKTsKLSAgICBSZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
Zm9jdXNlZEVsZW1lbnQoKTsKKyAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gZm9j
dXNlZEVsZW1lbnQoKTsKICNlbmRpZgogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBlbGVtZW50QXRQb2ludChpbnQgeCwgaW50IHkpOwogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBhY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWRBdHRyaWJ1dGUp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKaW5kZXggYWU1YmU1MjU3MjQ3OGZiMGE0
MGYyNjE3NGQ4NzBiN2FiMTZmYjJlYi4uMjVhMGU1YmYwOTM1ZWZjN2JhOTk3Yjk0MDdlYmI3OTIy
M2VmMjlkNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC0zMyw4ICszMywx
MCBAQAogCiBuYW1lc3BhY2UgV1RSIHsKIAotUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShQbGF0Zm9ybVVJRWxlbWVudCB1aUVsZW1lbnQp
CitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y3JlYXRlKFBsYXRmb3JtVUlFbGVtZW50IHVpRWxlbWVudCkKIHsKKyAgICBpZiAoIXVpRWxlbWVu
dCkKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50KHVpRWxlbWVudCkpOwogfQogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaAppbmRleCA1MmE1MTJjYTk2ZTk1N2Q1YjNiMDllNmNhMGZjZWFjOThjNTc1ZDFkLi42
NDkzY2MzYmNlYTdmNjIxZTNjOTBmNzBiYmZkY2JiNmVkY2Q0NDNkIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaApAQCAtNjksNyArNjksNyBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50IDogcHVibGljIEpTV3JhcHBhYmxlIHsKICNlbmRpZgogCiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBjcmVhdGUoUGxhdGZvcm1VSUVsZW1lbnQpOwor
ICAgIHN0YXRpYyBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY3JlYXRlKFBsYXRmb3Jt
VUlFbGVtZW50KTsKICAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Jik7CiAKICAgICB+QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcApp
bmRleCA2NjNlZGU1MmE0ODE2YWNjMjJkNjAxMzIzZWM2NjE1ZWQ4ZTZiODI4Li5mYTNhMWEyOTgy
MTZlOWY5OWJjMmRiNWRhYmNjMzU3MDk1ZThhNDRkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50QXRrLmNwcApAQCAtMTgwMCw3ICsxODAwLDcgQEAgUmVmUHRyPEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5B
bmRSb3codW5zaWcKICAgICAvLyBBZG9wdCB0aGUgQXRrT2JqZWN0IHJlcHJlc2VudGluZyB0aGUg
Y2VsbCBiZWNhdXNlCiAgICAgLy8gYXRfdGFibGVfcmVmX2F0KCkgdHJhbnNmZXJzIGZ1bGwgb3du
ZXJzaGlwLgogICAgIEdSZWZQdHI8QXRrT2JqZWN0PiBmb3VuZENlbGwgPSBhZG9wdEdSZWYoYXRr
X3RhYmxlX3JlZl9hdChBVEtfVEFCTEUobV9lbGVtZW50LmdldCgpKSwgcm93LCBjb2wpKTsKLSAg
ICByZXR1cm4gZm91bmRDZWxsID8gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKGZvdW5k
Q2VsbC5nZXQoKSkucHRyKCkgOiBudWxscHRyOworICAgIHJldHVybiBmb3VuZENlbGwgPyBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoZm91bmRDZWxsLmdldCgpKSA6IG51bGxwdHI7CiB9
CiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpob3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29t
bW9uTWFjLm1tCmluZGV4IDEyMGFjMGJiNDY1OTFiYzgwOTNkZjJmNmQ0OWU0MGI5ODVlNmI4NDku
LjhjMjJiMjM5Y2JkZmQ5ZjhjZmIwZjdmYTAzNTAwNDVlNzU1NjI0ZjUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21t
b25NYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQpAQCAtOTgsNyArOTgsNyBAQCBKU1ZhbHVlUmVmIG1h
a2VWYWx1ZVJlZkZvclZhbHVlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBpZCB2YWx1ZSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIFt2YWx1ZSBkb3VibGVWYWx1ZV0p
OwogICAgIH0KICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6d2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJDbGFzcygpXSkKLSAgICAgICAgcmV0dXJuIHRvSlMoY29udGV4dCwgV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8UGxhdGZvcm1VSUVsZW1l
bnQ+KHZhbHVlKSkucHRyKCkpOworICAgICAgICByZXR1cm4gdG9KUyhjb250ZXh0LCBXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxQbGF0Zm9ybVVJRWxlbWVu
dD4odmFsdWUpKS5nZXQoKSk7CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rp
b25hcnkgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIG1ha2VKU09iamVjdChjb250ZXh0LCB2YWx1
ZSk7CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4
IDg1MDI2ZTZlODkyM2I0MjFlNjgxM2ZjYjA1YWRiY2Y0ODQyN2FiM2YuLjkzNjQyNTVjYjY2OTAw
NDBiY2RlMTIxZTM4OWY3ZDdkMmJkN2JiNDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMjcsNyArMTI3LDcgQEAKICAgICB9
IGVsc2UgewogICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBu
b3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1l
bnRzWzNdOwotICAgICAgICBhcmd1bWVudHNbMF0gPSB0b0pTKGNvbnRleHQsIFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkucHRyKCkpOwor
ICAgICAgICBhcmd1bWVudHNbMF0gPSB0b0pTKGNvbnRleHQsIFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkuZ2V0KCkpOwogICAgICAgICBh
cmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CiAgICAgICAgIGFyZ3VtZW50
c1syXSA9IHVzZXJJbmZvQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24o
Y29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNh
bGxiYWNrKSwgMCwgMywgYXJndW1lbnRzLCAwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyV2luLmNwcAppbmRleCA5MDA1YmYwMTY5MTFkN2M3NWRlNWQyZGFkYzY1ZjQ0
YzM5Zjg0NzZkLi5lMTZlYTIxODQ4ZTM1NjZjNjhkN2UzNDU4ZjQ0OGM5MTkwYzVjMmQ2IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcldpbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCkBAIC01OCwxMCAr
NTgsMTEgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6aW5qZWN0QWNjZXNzaWJpbGl0
eVByZWZlcmVuY2UoSlNTdHJpbmdSZWYgZG9tYWluLAogUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKG51
bGxwdHIpOworICAgIC8vIFRoaXMgd2lsbCBhbHdheXMgUkVMRUFTRV9BU1NFUlQgdW50aWwgdGhp
cyBmdW5jdGlvbiBpcyBpbXBsZW1lbnRlZC4KKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y3JlYXRlKG51bGxwdHIpLnJlbGVhc2VOb25OdWxsKCk7CiB9CiAKLVJlZjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQo
KQorUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
Ojpmb2N1c2VkRWxlbWVudCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKG51bGxwdHIpOwo=
</data>
<flag name="commit-queue"
          id="469269"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444290</attachid>
            <date>2021-11-15 12:06:55 -0800</date>
            <delta_ts>2021-11-15 14:20:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233138-20211115140654.patch</filename>
            <type>text/plain</type>
            <size>12933</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Nzk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmI5ZmNmMTQ4NDIzMjNiNDM3NzkzOTdkZTI5OTAxMjE3
NmQ4NmJlNy4uMzk2MThlZThjZmE2ZmM1ZDVlODBiZTE1MTI1OGRiNjQyMmMyNzZhYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDIxLTExLTE1ICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IFN0b3AgcmV0dXJuaW5nIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRzIGJhY2tlZCBi
eSBhIG51bGwgcG9pbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMzMTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3Jl
YXRlIGFsbG93ZWQgY2FsbGVycyB0byByZXR1cm4KKyAgICAgICAgUmVmPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+cyBiYWNrZWQgYnkgbnVsbCBwb2ludGVycy4gVGhpcyBtYWtlcyB3cml0aW5nIHRl
c3RzCisgICAgICAgIGhhcmRlciwgc2luY2UgeW91IGRvbid0IGtub3cgaWYgdGhlIFVJIGVsZW1l
bnQgeW91IHJlY2VpdmVkIGlzIGFjdHVhbGx5IHZhbGlkLgorCisgICAgICAgIEFzIGFuIGV4YW1w
bGUsIGJlZm9yZSB0aGlzIHBhdGNoLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNj
cm9sbGJhcigpCisgICAgICAgIGFsd2F5cyByZXR1cm5lZCBhIG5vbi1udWxsIG9iamVjdCwgZXZl
biB3aGVuIHRoZXJlIGlzIG5vIHJlbmRlcmVkCisgICAgICAgIHNjcm9sbGJhci4KKworICAgICAg
ICBXaXRoIHRoaXMgcGF0Y2gsIHdlIHJldHVybiBhIG51bGwgUmVmUHRyIHdoZW4gd2UgZG9uJ3Qg
aGF2ZSBhIHZhbGlkCisgICAgICAgIGJhY2tpbmcgb2JqZWN0IGZvciBhbiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93
aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQpOgorICAgICAgICBB
ZGQgY2FsbCB0byBgcmVsZWFzZU5vbk51bGxgLCBhcyB3ZSBzaG91bGQgYWx3YXlzIGdldCBiYWNr
IGEgdmFsaWQKKyAgICAgICAgcm9vdCBlbGVtZW50IChub3QgYSBudWxsIFJlZlB0cikuCisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCk6CisgICAg
ICAgIFJldHVybiBhIG51bGwgUmVmUHRyIGlmIHRoZXJlIGlzIG5vIGZvY3VzZWQgZWxlbWVudC4K
KworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICBDaGFuZ2UgbWV0aG9kIHNpZ25hdHVyZSB0byBy
ZXR1cm4gUmVmUHRyIHJhdGhlciB0aGFuIFJlZi4gUmV0dXJuIGEKKyAgICAgICAgbnVsbCBSZWZQ
dHIgaWYgdGhlIGdpdmVuIHBvaW50ZXIgaXMgbnVsbC4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25N
YWMubW06CisgICAgICAgIChXVFI6Om1ha2VWYWx1ZVJlZkZvclZhbHVlKToKKyAgICAgICAgQ2Fs
bCAuZ2V0KCkgaW5zdGVhZCBvZiAucHRyKCksIHNpbmNlIHRoZSBjYWxsZWUgaXMgYSBSZWZQdHIg
aW5zdGVhZCBvZgorICAgICAgICBhIFJlZiB3aXRoIHRoaXMgcGF0Y2guCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIgX25vdGlmaWNhdGlvblJlY2VpdmVkOl0pOgorICAgICAgICBDYWxsIC5nZXQoKSBpbnN0ZWFk
IG9mIC5wdHIoKSwgc2luY2UgdGhlIGNhbGxlZSBpcyBhIFJlZlB0ciBpbnN0ZWFkIG9mCisgICAg
ICAgIGEgUmVmIHdpdGggdGhpcyBwYXRjaC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwOgorICAgICAg
ICAoV1RSOjphY2Nlc3NpYmlsaXR5RWxlbWVudEF0SW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXggY29uc3QpOgorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZVVJRWxlbWVudCk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmVudEVsZW1lbnQpOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KToKKyAgICAgICAgUmVt
b3ZlIHVubmVjZXNzYXJ5IGNhbGwgdG8gLnB0cigpIG5vdyB0aGF0CisgICAgICAgIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSByZXR1cm5zIGEgUmVmUHRyIGluc3RyZWFkIG9mIGEgUmVm
LgorCiAyMDIxLTExLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIEltcGxlbWVudCBVSVNjcmlwdENvbnRyb2xsZXIuc2VuZEV2ZW50U3RyZWFtKCkg
Zm9yIER1bXBSZW5kZXJUcmVlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4
IDY0NWE0NGI3MTVhMGFmN2UyM2NlMDlkM2EzZjQ5MzVhNDY3NGI1NGMuLmQ2MmIzOGUxODI0ZmNi
OTg2Y2NlMWI2ZjVmN2NmZWQ4MzZlNGY3YjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuY3BwCkBAIC04NywxNyArODcsMTUgQEAgUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiB7CiAgICAgYXV0byBwYWdlID0g
SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpOwogICAgIFBsYXRmb3Jt
VUlFbGVtZW50IHJvb3QgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVVJRWxlbWVudD4oV0tBY2Nlc3Np
YmlsaXR5Um9vdE9iamVjdChwYWdlKSk7Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNyZWF0ZShyb290KTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3Jl
YXRlKHJvb3QpLnJlbGVhc2VOb25OdWxsKCk7CiB9CiAKLVJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQorUmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxl
bWVudCgpCiB7CiAgICAgYXV0byBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBh
Z2UoKS0+cGFnZSgpOwogICAgIGF1dG8gcm9vdCA9IHN0YXRpY19jYXN0PFBsYXRmb3JtVUlFbGVt
ZW50PihXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0KHBhZ2UpKTsKICAgICBhdXRvIHJvb3RFbGVt
ZW50ID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKHJvb3QpOwotICAgIGlmIChhdXRv
IGZvY3VzZWRFbGVtZW50ID0gcm9vdEVsZW1lbnQtPmZvY3VzZWRFbGVtZW50KCkpCi0gICAgICAg
IHJldHVybiAqZm9jdXNlZEVsZW1lbnQ7Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNyZWF0ZShudWxscHRyKTsKKyAgICByZXR1cm4gcm9vdEVsZW1lbnQtPmZvY3VzZWRFbGVt
ZW50KCk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmV4ZWN1dGVPbkFYVGhy
ZWFkQW5kV2FpdChGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmgKaW5kZXggYWVhMWE2MGU0YmMwMjgzNzM0NDZhODc3Nzg5ZWQ4MzQ0YzVmYjI1
OS4uMDcyM2QzZTAxOTU0NjRiMzE3MWQyMjdhZjNlZTFjYWY5MDBmMGQwNiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgLy8gQ29u
dHJvbGxlciBNZXRob2RzIC0gcGxhdGZvcm0taW5kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zLgog
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKICAgICBSZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
cm9vdEVsZW1lbnQoKTsKLSAgICBSZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gZm9jdXNlZEVs
ZW1lbnQoKTsKKyAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gZm9jdXNlZEVsZW1l
bnQoKTsKICNlbmRpZgogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBlbGVtZW50
QXRQb2ludChpbnQgeCwgaW50IHkpOwogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBhY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWRBdHRyaWJ1dGUpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKaW5kZXggYWU1YmU1MjU3MjQ3OGZiMGE0MGYyNjE3NGQ4
NzBiN2FiMTZmYjJlYi4uMjVhMGU1YmYwOTM1ZWZjN2JhOTk3Yjk0MDdlYmI3OTIyM2VmMjlkNCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC0zMyw4ICszMywxMCBAQAogCiBu
YW1lc3BhY2UgV1RSIHsKIAotUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNyZWF0ZShQbGF0Zm9ybVVJRWxlbWVudCB1aUVsZW1lbnQpCitSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFBs
YXRmb3JtVUlFbGVtZW50IHVpRWxlbWVudCkKIHsKKyAgICBpZiAoIXVpRWxlbWVudCkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50KHVpRWxlbWVudCkpOwogfQogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApp
bmRleCA1MmE1MTJjYTk2ZTk1N2Q1YjNiMDllNmNhMGZjZWFjOThjNTc1ZDFkLi42NDkzY2MzYmNl
YTdmNjIxZTNjOTBmNzBiYmZkY2JiNmVkY2Q0NDNkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaApAQCAtNjksNyArNjksNyBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IDogcHVi
bGljIEpTV3JhcHBhYmxlIHsKICNlbmRpZgogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiBjcmVhdGUoUGxhdGZvcm1VSUVsZW1lbnQpOworICAgIHN0YXRp
YyBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gY3JlYXRlKFBsYXRmb3JtVUlFbGVtZW50
KTsKICAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Jik7CiAKICAgICB+QWNjZXNzaWJpbGl0eVVJRWxlbWVudCgp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAppbmRleCA2NjNl
ZGU1MmE0ODE2YWNjMjJkNjAxMzIzZWM2NjE1ZWQ4ZTZiODI4Li44YTJiOGUyMTE2ZWQzMjI3NTc4
NWQ3MTg5NTUxZDcyOTBhODBhNTlhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50QXRrLmNwcApAQCAtODI3LDcgKzgyNyw3IEBAIHN0YXRpYyBSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gYWNjZXNzaWJpbGl0eUVsZW1lbnRBdEluZGV4KEF0a09iamVjdCogZWxl
CiAgICAgQXRrT2JqZWN0KiB0YXJnZXQgPSBzdGF0aWNfY2FzdDxBdGtPYmplY3QqPihnX3B0cl9h
cnJheV9pbmRleCh0YXJnZXRMaXN0LCBpbmRleCkpOwogICAgIGdfb2JqZWN0X3VucmVmKHJlbGF0
aW9uU2V0KTsKIAotICAgIHJldHVybiB0YXJnZXQgPyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpj
cmVhdGUodGFyZ2V0KS5wdHIoKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHRhcmdldCA/IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSh0YXJnZXQpIDogbnVsbHB0cjsKIH0KIAogUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmtlZFVJ
RWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCkBAIC05MzQsNyArOTM0LDcgQEAgUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0F0SW5k
ZXgodW5zaWduZWQgaW5kZXgKICAgICAgICAgLy8gRmluZCB0aGUgZmlyc3QgY2VsbCBpbiB0aGlz
IHJvdyB0aGF0IG9ubHkgc3BhbnMgb25lIHJvdy4KICAgICAgICAgaWYgKGF0a190YWJsZV9nZXRf
cm93X2V4dGVudF9hdChheFRhYmxlLCBpbmRleCwgY29sKSA9PSAxKSB7CiAgICAgICAgICAgICBB
dGtPYmplY3QqIGNlbGwgPSBhdGtfdGFibGVfcmVmX2F0KGF4VGFibGUsIGluZGV4LCBjb2wpOwot
ICAgICAgICAgICAgcmV0dXJuIGNlbGwgPyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUo
YXRrX29iamVjdF9nZXRfcGFyZW50KGNlbGwpKS5wdHIoKSA6IG51bGxwdHI7CisgICAgICAgICAg
ICByZXR1cm4gY2VsbCA/IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShhdGtfb2JqZWN0
X2dldF9wYXJlbnQoY2VsbCkpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIApAQCAtOTQ3
LDcgKzk0Nyw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgR1JlZlB0cjxBdGtPYmplY3Q+IGNoaWxkID0gYWRvcHRHUmVmKGF0a19zZWxl
Y3Rpb25fcmVmX3NlbGVjdGlvbihBVEtfU0VMRUNUSU9OKG1fZWxlbWVudC5nZXQoKSksIGluZGV4
KSk7Ci0gICAgcmV0dXJuIGNoaWxkID8gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKGNo
aWxkLmdldCgpKS5wdHIoKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGNoaWxkID8gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y3JlYXRlKGNoaWxkLmdldCgpKSA6IG51bGxwdHI7CiB9CiAKIHVuc2ln
bmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCgpIGNvbnN0
CkBAIC05ODQsNyArOTg0LDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxlVUlFbGVtZW50KCkKICAgICB9CiAKICAgICBnX29iamVj
dF91bnJlZihzZXQpOwotICAgIHJldHVybiB0YXJnZXQgPyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpjcmVhdGUodGFyZ2V0KS5wdHIoKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHRhcmdldCA/IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSh0YXJnZXQpIDogbnVsbHB0cjsKIH0KIAogUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmVu
dEVsZW1lbnQoKQpAQCAtOTkzLDcgKzk5Myw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJlbnRFbGVtZW50KCkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBBdGtPYmplY3QqIHBhcmVudCA9IGF0a19vYmplY3RfZ2V0X3Bh
cmVudChBVEtfT0JKRUNUKG1fZWxlbWVudC5nZXQoKSkpOwotICAgIHJldHVybiBwYXJlbnQgPyBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUocGFyZW50KS5wdHIoKSA6IG51bGxwdHI7Cisg
ICAgcmV0dXJuIHBhcmVudCA/IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShwYXJlbnQp
IDogbnVsbHB0cjsKIH0KIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KCkKQEAgLTE4MDAsNyArMTgwMCw3IEBAIFJl
ZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxs
Rm9yQ29sdW1uQW5kUm93KHVuc2lnCiAgICAgLy8gQWRvcHQgdGhlIEF0a09iamVjdCByZXByZXNl
bnRpbmcgdGhlIGNlbGwgYmVjYXVzZQogICAgIC8vIGF0X3RhYmxlX3JlZl9hdCgpIHRyYW5zZmVy
cyBmdWxsIG93bmVyc2hpcC4KICAgICBHUmVmUHRyPEF0a09iamVjdD4gZm91bmRDZWxsID0gYWRv
cHRHUmVmKGF0a190YWJsZV9yZWZfYXQoQVRLX1RBQkxFKG1fZWxlbWVudC5nZXQoKSksIHJvdywg
Y29sKSk7Ci0gICAgcmV0dXJuIGZvdW5kQ2VsbCA/IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNy
ZWF0ZShmb3VuZENlbGwuZ2V0KCkpLnB0cigpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gZm91bmRD
ZWxsID8gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKGZvdW5kQ2VsbC5nZXQoKSkgOiBu
dWxscHRyOwogfQogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29tbW9u
TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNz
aWJpbGl0eUNvbW1vbk1hYy5tbQppbmRleCAxMjBhYzBiYjQ2NTkxYmM4MDkzZGYyZjZkNDllNDBi
OTg1ZTZiODQ5Li44YzIyYjIzOWNiZGZkOWY4Y2ZiMGY3ZmEwMzUwMDQ1ZTc1NTYyNGY1IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5Q29tbW9uTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMubW0KQEAgLTk4LDcgKzk4LDcgQEAgSlNW
YWx1ZVJlZiBtYWtlVmFsdWVSZWZGb3JWYWx1ZShKU0NvbnRleHRSZWYgY29udGV4dCwgaWQgdmFs
dWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBbdmFsdWUgZG91
YmxlVmFsdWVdKTsKICAgICB9CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOndlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQ2xhc3MoKV0pCi0gICAgICAgIHJldHVybiB0b0pTKGNvbnRl
eHQsIFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKHN0YXRpY19jYXN0PFBsYXRm
b3JtVUlFbGVtZW50Pih2YWx1ZSkpLnB0cigpKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoY29udGV4
dCwgV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8UGxhdGZv
cm1VSUVsZW1lbnQ+KHZhbHVlKSkuZ2V0KCkpOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBtYWtlSlNPYmplY3QoY29u
dGV4dCwgdmFsdWUpOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFz
c11dKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxl
ci5tbQppbmRleCA4NTAyNmU2ZTg5MjNiNDIxZTY4MTNmY2IwNWFkYmNmNDg0MjdhYjNmLi45MzY0
MjU1Y2I2NjkwMDQwYmNkZTEyMWUzODlmN2Q3ZDJiZDdiYjQzIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAtMTI3LDcgKzEyNyw3
IEBACiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUg
ZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1szXTsKLSAgICAgICAgYXJndW1lbnRzWzBdID0gdG9KUyhjb250ZXh0LCBX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShbbm90aWZpY2F0aW9uIG9iamVjdF0p
LnB0cigpKTsKKyAgICAgICAgYXJndW1lbnRzWzBdID0gdG9KUyhjb250ZXh0LCBXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShbbm90aWZpY2F0aW9uIG9iamVjdF0pLmdldCgpKTsK
ICAgICAgICAgYXJndW1lbnRzWzFdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OwogICAgICAg
ICBhcmd1bWVudHNbMl0gPSB1c2VySW5mb0FyZ3VtZW50OwogICAgICAgICBKU09iamVjdENhbGxB
c0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9u
RnVuY3Rpb25DYWxsYmFjayksIDAsIDMsIGFyZ3VtZW50cywgMCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcldpbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAKaW5kZXggOTAwNWJmMDE2OTExZDdjNzVkZTVk
MmRhZGM2NWY0NGMzOWY4NDc2ZC4uZTE2ZWEyMTg0OGUzNTY2YzY4ZDdlMzQ1OGY0NDhjOTE5MGM1
YzJkNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93
aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcApA
QCAtNTgsMTAgKzU4LDExIEBAIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmluamVjdEFj
Y2Vzc2liaWxpdHlQcmVmZXJlbmNlKEpTU3RyaW5nUmVmIGRvbWFpbiwKIFJlZjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQoKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmNyZWF0ZShudWxscHRyKTsKKyAgICAvLyBUaGlzIHdpbGwgYWx3YXlzIFJFTEVBU0VfQVNTRVJU
IHVudGlsIHRoaXMgZnVuY3Rpb24gaXMgaW1wbGVtZW50ZWQuCisgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKS5yZWxlYXNlTm9uTnVsbCgpOwogfQogCi1S
ZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3Vz
ZWRFbGVtZW50KCkKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444304</attachid>
            <date>2021-11-15 14:20:15 -0800</date>
            <delta_ts>2021-11-15 15:24:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233138-20211115162014.patch</filename>
            <type>text/plain</type>
            <size>12838</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Nzk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmI5ZmNmMTQ4NDIzMjNiNDM3NzkzOTdkZTI5OTAxMjE3
NmQ4NmJlNy4uZTcxMDBiM2QzNjUyYjVlNmIxMzdkOTVlYTdjNzM4ODNmM2U5M2UyMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0
IEBACisyMDIxLTExLTE1ICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IFN0b3AgcmV0dXJuaW5nIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRzIGJhY2tlZCBi
eSBhIG51bGwgcG9pbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMzMTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgc29tZSBjYWxsZXJzIG9mIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNyZWF0ZQorICAgICAgICBwYXNzZWQgbnVsbCBgaWRgcywgcmVzdWx0aW5n
IGluIGEgc2VlbWluZ2x5IHZhbGlkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQKKyAgICAgICAgdGhh
dCBpcyBhY3R1YWxseSBiYWNrZWQgYnkgYSBudWxsIHBvaW50ZXIuIFRoaXMgbWFrZXMgd3JpdGlu
ZyB0ZXN0cyBoYXJkZXIsCisgICAgICAgIHNpbmNlIHlvdSBjYW4ndCByZWx5IG9uIGNvbW1vbiBv
cGVyYXRpb25zIGxpa2UgYCFteUVsZW1lbnRgIHRvIGRvIHRoZSByaWdodCB0aGluZy4KKworICAg
ICAgICBXaXRoIHRoaXMgcGF0Y2gsIHdlIGFkZCBhIFJFTEVBU0VfQVNTRVJUIHRvCisgICAgICAg
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSByZXF1aXJpbmcgdGhlIHBhc3NlZCBwb2lu
dGVyIHRvIGJlCisgICAgICAgIHZhbGlkLiBUaGlzIHBhdGNoIGFsc28gZml4ZXMgdXAgc29tZSBj
YWxsc2l0ZXMgd2hlcmUgd2UgY291bGQgKGFuZCBkaWQpIHBhc3MgbnVsbCBwb2ludGVycy4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgUmV0dXJuIFJlZlB0
ciBpbnN0ZWFkIG9mIFJlZiwgc2luY2UgaXQncyBwb3NzaWJsZSB0aGF0IG5vIGVsZW1lbnQgaXMK
KyAgICAgICAgZm9jdXNlZC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICBBZGQgUkVMRUFT
RV9BU1NFUlQoKSB0byB2ZXJpZnkgcGFzc2VkIHBvaW50ZXIgaXMgdmFsaWQuCisKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50SU9TLm1tOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpmb2N1c2Vk
RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVp
RWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06Cisg
ICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25S
ZWNlaXZlZDpdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21h
Yy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZSk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5BbmRS
b3cpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpob3Jpem9udGFsU2Ny
b2xsYmFyIGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dmVy
dGljYWxTY3JvbGxiYXIgY29uc3QpOgorICAgICAgICBEb24ndCBjYWxsIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNyZWF0ZSB3aXRoIG51bGwgcG9pbnRlcnMuCisKIDIwMjEtMTEtMTMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFVJ
U2NyaXB0Q29udHJvbGxlci5zZW5kRXZlbnRTdHJlYW0oKSBmb3IgRHVtcFJlbmRlclRyZWUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKaW5kZXggNjQ1YTQ0YjcxNWEwYWY3ZTIzY2Uw
OWQzYTNmNDkzNWE0Njc0YjU0Yy4uYTVhNDE3NWUxNzhmMTIyNDE2MWUzMjg4MDRhMWQ3M2JjNGUw
OWE0OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKQEAgLTkwLDE0ICs5MCwx
MiBAQCBSZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6
OnJvb3RFbGVtZW50KCkKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRl
KHJvb3QpOwogfQogCi1SZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KCkKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQogewogICAgIGF1dG8g
cGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKTsKICAgICBh
dXRvIHJvb3QgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVVJRWxlbWVudD4oV0tBY2Nlc3NpYmlsaXR5
Um9vdE9iamVjdChwYWdlKSk7CiAgICAgYXV0byByb290RWxlbWVudCA9IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNyZWF0ZShyb290KTsKLSAgICBpZiAoYXV0byBmb2N1c2VkRWxlbWVudCA9IHJv
b3RFbGVtZW50LT5mb2N1c2VkRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gKmZvY3VzZWRFbGVt
ZW50OwotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUobnVsbHB0cik7
CisgICAgcmV0dXJuIHJvb3RFbGVtZW50LT5mb2N1c2VkRWxlbWVudCgpOwogfQogCiB2b2lkIEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpleGVjdXRlT25BWFRocmVhZEFuZFdhaXQoRnVuY3Rpb248
dm9pZCgpPiYmIGZ1bmN0aW9uKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCmluZGV4IGFl
YTFhNjBlNGJjMDI4MzczNDQ2YTg3Nzc4OWVkODM0NGM1ZmIyNTkuLjA3MjNkM2UwMTk1NDY0YjMx
NzFkMjI3YWYzZWUxY2FmOTAwZjBkMDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgK
QEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIC8vIENvbnRyb2xsZXIgTWV0aG9kcyAtIHBs
YXRmb3JtLWluZGVwZW5kZW50IGltcGxlbWVudGF0aW9ucy4KICNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCiAgICAgUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IHJvb3RFbGVtZW50KCk7Ci0gICAg
UmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGZvY3VzZWRFbGVtZW50KCk7CisgICAgUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGZvY3VzZWRFbGVtZW50KCk7CiAjZW5kaWYKICAgICBS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gZWxlbWVudEF0UG9pbnQoaW50IHgsIGludCB5
KTsKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKEpTU3RyaW5nUmVmIGlkQXR0cmlidXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
Y3BwCmluZGV4IGFlNWJlNTI1NzI0NzhmYjBhNDBmMjYxNzRkODcwYjdhYjE2ZmIyZWIuLjZjMTg0
MjAyZmQ4NTRmM2EzZTMxMTc5YThlYTMzNDQ2OThjY2U4YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmNwcApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV1RSIHsKIAogUmVmPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShQbGF0
Zm9ybVVJRWxlbWVudCB1aUVsZW1lbnQpCiB7CisgICAgUkVMRUFTRV9BU1NFUlQodWlFbGVtZW50
KTsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KHVpRWxl
bWVudCkpOwogfQogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1Mu
bW0KaW5kZXggMzljODMwMjk5ZWQ3MTM2YzY3NzFhMGNkZDlkYmUwMWU4YWMwNmYxYi4uZGQ0ZWIw
OTZmZWU5NzQ1ZDk3MzkyNTk4NGUwYWZjZjY1ODA0MDgxYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElP
Uy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCkBAIC02MzUsNyArNjM1LDkgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVkKCkgY29uc3QKIAogUmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmZvY3VzZWRFbGVtZW50KCkgY29u
c3QKIHsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFttX2VsZW1l
bnQgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdKTsKKyAgICBpZiAoaWQgZm9jdXNlZFVJ
RWxlbWVudCA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdKQorICAg
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKGZvY3VzZWRVSUVsZW1l
bnQpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzRm9jdXNlZCgpIGNvbnN0CkBAIC03NjUsMTQgKzc2NywxOCBAQCB1bnNpZ25lZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZShKU0Nv
bnRleHRSZWYgYwogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYgY29udGV4
dCwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCAqc3RhcnRFbGVtZW50LCBib29sIGlzRGlyZWN0aW9u
TmV4dCwgSlNWYWx1ZVJlZiBzZWFyY2hLZXksIEpTU3RyaW5nUmVmIHNlYXJjaFRleHQsIGJvb2wg
dmlzaWJsZU9ubHksIGJvb2wgaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KQogewogICAgIE5TRGlj
dGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IHNlYXJjaFByZWRpY2F0ZVBhcmFtZXRl
cml6ZWRBdHRyaWJ1dGVGb3JTZWFyY2hDcml0ZXJpYShjb250ZXh0LCBzdGFydEVsZW1lbnQsIGlz
RGlyZWN0aW9uTmV4dCwgNSwgc2VhcmNoS2V5LCBzZWFyY2hUZXh0LCB2aXNpYmxlT25seSwgaW1t
ZWRpYXRlRGVzY2VuZGFudHNPbmx5KTsKLSAgICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUZpbmRNYXRjaGluZ09iamVjdHM6cGFyYW1ldGVyaXplZEF0dHJpYnV0ZV07Ci0gICAg
aWYgKCFbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgIGlkIHJlc3Vs
dHMgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlGaW5kTWF0Y2hpbmdPYmplY3RzOnBhcmFtZXRl
cml6ZWRBdHRyaWJ1dGVdOworICAgIGlmICghW3Jlc3VsdHMgaXNLaW5kT2ZDbGFzczpbTlNBcnJh
eSBjbGFzc11dKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBmb3IgKGlkIGVsZW1lbnQg
aW4gdmFsdWUpIHsKKworICAgIGZvciAoaWQgZWxlbWVudCBpbiByZXN1bHRzKSB7CiAgICAgICAg
IGlmIChbZWxlbWVudCBpc0FjY2Vzc2liaWxpdHlFbGVtZW50XSkKICAgICAgICAgICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoZWxlbWVudCk7CiAgICAgfQotICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW3ZhbHVlIGZpcnN0T2JqZWN0XSk7
CisKKyAgICBpZiAoaWQgZmlyc3RSZXN1bHQgPSBbcmVzdWx0cyBmaXJzdE9iamVjdF0pCisgICAg
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoZmlyc3RSZXN1bHQpOwor
ICAgIHJldHVybiBudWxscHRyOwogfQogCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpT
U3RyaW5nUmVmIGFtYmlndWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywg
SlNTdHJpbmdSZWYgcmVwbGFjZW1lbnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQppbmRl
eCA4NTAyNmU2ZTg5MjNiNDIxZTY4MTNmY2IwNWFkYmNmNDg0MjdhYjNmLi4xNGE3MDI2NGIyYjg2
NTQyNWFlODIzMWRjMWE5ODYzNzMwMDIyYjE0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxl
ci5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAtMTI3LDcgKzEyNyw4IEBACiAgICAg
fSBlbHNlIHsKICAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwg
bm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1szXTsKLSAgICAgICAgYXJndW1lbnRzWzBdID0gdG9KUyhjb250ZXh0LCBXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShbbm90aWZpY2F0aW9uIG9iamVjdF0pLnB0cigpKTsK
KyAgICAgICAgaWQgbm90aWZpY2F0aW9uT2JqZWN0ID0gW25vdGlmaWNhdGlvbiBvYmplY3RdOwor
ICAgICAgICBhcmd1bWVudHNbMF0gPSB0b0pTKGNvbnRleHQsIG5vdGlmaWNhdGlvbk9iamVjdCA/
IFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKG5vdGlmaWNhdGlvbk9iamVjdCku
cHRyKCkgOiBudWxscHRyKTsKICAgICAgICAgYXJndW1lbnRzWzFdID0gbm90aWZpY2F0aW9uTmFt
ZUFyZ3VtZW50OwogICAgICAgICBhcmd1bWVudHNbMl0gPSB1c2VySW5mb0FyZ3VtZW50OwogICAg
ICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RS
ZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDMsIGFyZ3VtZW50cywgMCk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCAyYTQyYmQ2
YmEzMTY5YTM1ZjgxYTI2Y2U3YjMzMzJlMmI2NThkMzMwLi4zNzM0ZDEyYWY1MWZkNTc4YzQ4MTFl
YjVlZjJhYmQ5MzUwNzg4MDA0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0KQEAgLTYxNyw4ICs2MTcsOSBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cgogCiBS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlF
bGVtZW50QXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKSBjb25zdAogewotICAg
IGF1dG8gdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5n
UmVmOmF0dHJpYnV0ZV0pOwotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVh
dGUodmFsdWUuZ2V0KCkpOworICAgIGlmIChhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoW05T
U3RyaW5nIHN0cmluZ1dpdGhKU1N0cmluZ1JlZjphdHRyaWJ1dGVdKSkKKyAgICAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSh2YWx1ZS5nZXQoKSk7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Ym9vbEF0dHJpYnV0
ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKQEAgLTEyNDEsOSArMTI0MiwxMSBAQCBSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVt
ZW50Rm9yU2VhcmNoUHJlZGljYQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwogICAg
IE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IHNlYXJjaFByZWRpY2F0ZVBh
cmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JTZWFyY2hDcml0ZXJpYShjb250ZXh0LCBzdGFydEVsZW1l
bnQsIGlzRGlyZWN0aW9uTmV4dCwgMSwgc2VhcmNoS2V5LCBzZWFyY2hUZXh0LCB2aXNpYmxlT25s
eSwgaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KTsKLSAgICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQg
YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhVSUVsZW1lbnRzRm9yU2VhcmNoUHJlZGlj
YXRlIiBmb3JQYXJhbWV0ZXI6cGFyYW1ldGVyaXplZEF0dHJpYnV0ZV07Ci0gICAgaWYgKFt2YWx1
ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCi0gICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW3ZhbHVlIGxhc3RPYmplY3RdKTsKKyAgICBpZCBzZWFy
Y2hSZXN1bHRzID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFVJ
RWxlbWVudHNGb3JTZWFyY2hQcmVkaWNhdGUiIGZvclBhcmFtZXRlcjpwYXJhbWV0ZXJpemVkQXR0
cmlidXRlXTsKKyAgICBpZiAoW3NlYXJjaFJlc3VsdHMgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBj
bGFzc11dKSB7CisgICAgICAgIGlmIChpZCBsYXN0UmVzdWx0ID0gW3NlYXJjaFJlc3VsdHMgbGFz
dE9iamVjdF0pCisgICAgICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3Jl
YXRlKGxhc3RSZXN1bHQpOworICAgIH0KICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAgICAg
CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNDEwLDcgKzE0MTMsOCBAQCBSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVtbkFu
ZFJvdyh1bnNpZwogewogICAgIE5TQXJyYXkgKmNvbFJvd0FycmF5ID0gQFtAKGNvbCksIEAocm93
KV07CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNyZWF0ZShbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1
ZTpAIkFYQ2VsbEZvckNvbHVtbkFuZFJvdyIgZm9yUGFyYW1ldGVyOmNvbFJvd0FycmF5XSk7Cisg
ICAgaWYgKGlkIGNlbGwgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpA
IkFYQ2VsbEZvckNvbHVtbkFuZFJvdyIgZm9yUGFyYW1ldGVyOmNvbFJvd0FycmF5XSkKKyAgICAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShjZWxsKTsKICAgICBFTkRf
QVhfT0JKQ19FWENFUFRJT05TICAgIAogCiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNDIyLDcg
KzE0MjYsOCBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbgogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpjcmVhdGUoYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5SG9yaXpv
bnRhbFNjcm9sbEJhckF0dHJpYnV0ZSkuZ2V0KCkpOworICAgIGlmIChpZCBzY3JvbGxiYXIgPSBh
dHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlIb3Jpem9udGFsU2Nyb2xsQmFyQXR0cmlidXRl
KS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShz
Y3JvbGxiYXIpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMgICAgCiAKICAgICByZXR1cm4g
bnVsbHB0cjsKQEAgLTE0MzQsNyArMTQzOSw4IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0g
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShhdHRyaWJ1dGVWYWx1ZShO
U0FjY2Vzc2liaWxpdHlWZXJ0aWNhbFNjcm9sbEJhckF0dHJpYnV0ZSkuZ2V0KCkpOworICAgIGlm
IChpZCBzY3JvbGxiYXIgPSBhdHRyaWJ1dGVWYWx1ZShOU0FjY2Vzc2liaWxpdHlWZXJ0aWNhbFNj
cm9sbEJhckF0dHJpYnV0ZSkuZ2V0KCkpCisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpjcmVhdGUoc2Nyb2xsYmFyKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TICAg
ICAgICAKIAogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93aW4vQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJXaW4uY3BwCmluZGV4IDkwMDViZjAxNjkxMWQ3Yzc1ZGU1ZDJkYWRjNjVmNDRj
MzlmODQ3NmQuLmJiYjU0NjNiYzE2ZWZjZGFlYzg2NGYzMmMxZDBlOTgzNGZiYjMyZmEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyV2luLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAKQEAgLTYxLDcgKzYx
LDcgQEAgUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
Ojpyb290RWxlbWVudCgpCiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0
ZShudWxscHRyKTsKIH0KIAotUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KCkKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVh
dGUobnVsbHB0cik7Cg==
</data>
<flag name="commit-queue"
          id="469289"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444310</attachid>
            <date>2021-11-15 15:08:54 -0800</date>
            <delta_ts>2021-11-15 17:13:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233138-20211115170853.patch</filename>
            <type>text/plain</type>
            <size>13830</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Nzk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmI5ZmNmMTQ4NDIzMjNiNDM3NzkzOTdkZTI5OTAxMjE3
NmQ4NmJlNy4uZTYzYTM1N2Q4NzI1ZTFhNGRiNTZjN2ZjY2VjYWJmN2NiODQ3OGNkNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDIxLTExLTE1ICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IFN0b3AgcmV0dXJuaW5nIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRzIGJhY2tlZCBi
eSBhIG51bGwgcG9pbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMzMTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgc29tZSBjYWxsZXJzIG9mIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNyZWF0ZQorICAgICAgICBwYXNzZWQgbnVsbCBgaWRgcywgcmVzdWx0aW5n
IGluIGEgc2VlbWluZ2x5IHZhbGlkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQKKyAgICAgICAgdGhh
dCBpcyBhY3R1YWxseSBiYWNrZWQgYnkgYSBudWxsIHBvaW50ZXIuIFRoaXMgbWFrZXMgd3JpdGlu
ZyB0ZXN0cyBoYXJkZXIsCisgICAgICAgIHNpbmNlIHlvdSBjYW4ndCByZWx5IG9uIGNvbW1vbiBv
cGVyYXRpb25zIGxpa2UgYCFteUVsZW1lbnRgIHRvIGRvIHRoZSByaWdodCB0aGluZy4KKworICAg
ICAgICBXaXRoIHRoaXMgcGF0Y2gsIHdlIGFkZCBhIFJFTEVBU0VfQVNTRVJUIHRvCisgICAgICAg
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSByZXF1aXJpbmcgdGhlIHBhc3NlZCBwb2lu
dGVyIHRvIGJlCisgICAgICAgIHZhbGlkLiBUaGlzIHBhdGNoIGFsc28gZml4ZXMgdXAgc29tZSBj
YWxsc2l0ZXMgd2hlcmUgd2UgY291bGQgKGFuZCBkaWQpIHBhc3MgbnVsbCBwb2ludGVycy4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyQXRrLmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCk6
CisgICAgICAgIFJldHVybiBSZWZQdHIgaW5zdGVhZCBvZiBSZWYsIHNpbmNlIGl0J3MgcG9zc2li
bGUgdGhhdCBubyBlbGVtZW50IGlzCisgICAgICAgIGZvY3VzZWQuCisKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRl
KToKKyAgICAgICAgQWRkIFJFTEVBU0VfQVNTRVJUKCkgdG8gdmVyaWZ5IHBhc3NlZCBwb2ludGVy
IGlzIHZhbGlkLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Zm9jdXNlZEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXR0cmlidXRlVmFs
dWUgY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1l
bnRGb3JTZWFyY2hQcmVkaWNhdGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aG9yaXpvbnRhbFNjcm9sbGJhciBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyIGNvbnN0KToKKyAgICAgICAgRG9u
J3QgY2FsbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUgd2l0aCBudWxsIHBvaW50ZXJz
LgorCiAyMDIxLTExLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIEltcGxlbWVudCBVSVNjcmlwdENvbnRyb2xsZXIuc2VuZEV2ZW50U3RyZWFtKCkg
Zm9yIER1bXBSZW5kZXJUcmVlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4
IDY0NWE0NGI3MTVhMGFmN2UyM2NlMDlkM2EzZjQ5MzVhNDY3NGI1NGMuLmE1YTQxNzVlMTc4ZjEy
MjQxNjFlMzI4ODA0YTFkNzNiYzRlMDlhNDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuY3BwCkBAIC05MCwxNCArOTAsMTIgQEAgUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiAgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShyb290KTsKIH0KIAotUmVmPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCitSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRF
bGVtZW50KCkKIHsKICAgICBhdXRvIHBhZ2UgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCku
cGFnZSgpLT5wYWdlKCk7CiAgICAgYXV0byByb290ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1VSUVs
ZW1lbnQ+KFdLQWNjZXNzaWJpbGl0eVJvb3RPYmplY3QocGFnZSkpOwogICAgIGF1dG8gcm9vdEVs
ZW1lbnQgPSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUocm9vdCk7Ci0gICAgaWYgKGF1
dG8gZm9jdXNlZEVsZW1lbnQgPSByb290RWxlbWVudC0+Zm9jdXNlZEVsZW1lbnQoKSkKLSAgICAg
ICAgcmV0dXJuICpmb2N1c2VkRWxlbWVudDsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y3JlYXRlKG51bGxwdHIpOworICAgIHJldHVybiByb290RWxlbWVudC0+Zm9jdXNlZEVs
ZW1lbnQoKTsKIH0KIAogdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZXhlY3V0ZU9uQVhU
aHJlYWRBbmRXYWl0KEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuaAppbmRleCBhZWExYTYwZTRiYzAyODM3MzQ0NmE4Nzc3ODllZDgzNDRjNWZi
MjU5Li4wNzIzZDNlMDE5NTQ2NGIzMTcxZDIyN2FmM2VlMWNhZjkwMGYwZDA2IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICAvLyBD
b250cm9sbGVyIE1ldGhvZHMgLSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBpbXBsZW1lbnRhdGlvbnMu
CiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQogICAgIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiByb290RWxlbWVudCgpOwotICAgIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBmb2N1c2Vk
RWxlbWVudCgpOworICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBmb2N1c2VkRWxl
bWVudCgpOwogI2VuZGlmCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGVsZW1l
bnRBdFBvaW50KGludCB4LCBpbnQgeSk7CiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IGFjY2Vzc2libGVFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZEF0dHJpYnV0ZSk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCBhZTViZTUyNTcyNDc4ZmIwYTQwZjI2MTc0
ZDg3MGI3YWIxNmZiMmViLi42YzE4NDIwMmZkODU0ZjNhM2UzMTE3OWE4ZWEzMzQ0Njk4Y2NlOGI4
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAgbmFt
ZXNwYWNlIFdUUiB7CiAKIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjcmVhdGUoUGxhdGZvcm1VSUVsZW1lbnQgdWlFbGVtZW50KQogeworICAgIFJF
TEVBU0VfQVNTRVJUKHVpRWxlbWVudCk7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCh1aUVsZW1lbnQpKTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyQXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcAppbmRleCBjMTI0ODgwNTliMWZiZjMwZWVkZDJh
ZTMxZDQ3NzZiZjJjODk2OTcwLi4wOWE4YjY2OTUwNWM2YjM0NDVlNDU4ZWIxMDE5NDA4NjUzOTZh
YTVmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0
ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwCkBA
IC0xMTIsNyArMTEyLDcgQEAgUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxBdGtPYmplY3QqPihyb290KSk7CiB9CiAKLVJlZjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVs
ZW1lbnQoKQorUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCiB7CiAgICAgV0tCdW5kbGVQYWdlUmVmIHBhZ2UgPSBJ
bmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCk7CiAgICAgdm9pZCogcm9v
dCA9IFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRPYmplY3QocGFnZSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQppbmRleCAzOWM4MzAyOTllZDcxMzZjNjc3MWEwY2Rk
OWRiZTAxZThhYzA2ZjFiLi5kZDRlYjA5NmZlZTk3NDVkOTczOTI1OTg0ZTBhZmNmNjU4MDQwODFh
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KQEAgLTYzNSw3
ICs2MzUsOSBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25z
dAogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Zm9jdXNlZEVsZW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpjcmVhdGUoW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF0p
OworICAgIGlmIChpZCBmb2N1c2VkVUlFbGVtZW50ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5
Rm9jdXNlZFVJRWxlbWVudF0pCisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpjcmVhdGUoZm9jdXNlZFVJRWxlbWVudCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIGJv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkKCkgY29uc3QKQEAgLTc2NSwxNCAr
NzY3LDE4IEBAIHVuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudENvdW50
Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiBjCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9yU2VhcmNoUHJlZGlj
YXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50ICpzdGFydEVs
ZW1lbnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVlUmVmIHNlYXJjaEtleSwgSlNTdHJp
bmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSwgYm9vbCBpbW1lZGlhdGVEZXNjZW5k
YW50c09ubHkpCiB7CiAgICAgTlNEaWN0aW9uYXJ5ICpwYXJhbWV0ZXJpemVkQXR0cmlidXRlID0g
c2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvclNlYXJjaENyaXRlcmlhKGNv
bnRleHQsIHN0YXJ0RWxlbWVudCwgaXNEaXJlY3Rpb25OZXh0LCA1LCBzZWFyY2hLZXksIHNlYXJj
aFRleHQsIHZpc2libGVPbmx5LCBpbW1lZGlhdGVEZXNjZW5kYW50c09ubHkpOwotICAgIGlkIHZh
bHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RmluZE1hdGNoaW5nT2JqZWN0czpwYXJhbWV0
ZXJpemVkQXR0cmlidXRlXTsKLSAgICBpZiAoIVt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5
IGNsYXNzXV0pCisgICAgaWQgcmVzdWx0cyA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUZpbmRN
YXRjaGluZ09iamVjdHM6cGFyYW1ldGVyaXplZEF0dHJpYnV0ZV07CisgICAgaWYgKCFbcmVzdWx0
cyBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIGZvciAoaWQgZWxlbWVudCBpbiB2YWx1ZSkgeworCisgICAgZm9yIChpZCBlbGVtZW50
IGluIHJlc3VsdHMpIHsKICAgICAgICAgaWYgKFtlbGVtZW50IGlzQWNjZXNzaWJpbGl0eUVsZW1l
bnRdKQogICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KTsKICAgICB9Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0
ZShbdmFsdWUgZmlyc3RPYmplY3RdKTsKKworICAgIGlmIChpZCBmaXJzdFJlc3VsdCA9IFtyZXN1
bHRzIGZpcnN0T2JqZWN0XSkKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmNyZWF0ZShmaXJzdFJlc3VsdCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENy
aXRlcmlhKEpTQ29udGV4dFJlZiwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlvbiwgSlNW
YWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmluZywgSlNT
dHJpbmdSZWYgYWN0aXZpdHkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IDg1MDI2ZTZlODkyM2I0MjFlNjgxM2ZjYjA1YWRiY2Y0
ODQyN2FiM2YuLjE0YTcwMjY0YjJiODY1NDI1YWU4MjMxZGMxYTk4NjM3MzAwMjJiMTQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBA
IC0xMjcsNyArMTI3LDggQEAKICAgICB9IGVsc2UgewogICAgICAgICAvLyBBIGdsb2JhbCBsaXN0
ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCiAg
ICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzNdOwotICAgICAgICBhcmd1bWVudHNbMF0gPSB0
b0pTKGNvbnRleHQsIFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFtub3RpZmlj
YXRpb24gb2JqZWN0XSkucHRyKCkpOworICAgICAgICBpZCBub3RpZmljYXRpb25PYmplY3QgPSBb
bm90aWZpY2F0aW9uIG9iamVjdF07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4
dCwgbm90aWZpY2F0aW9uT2JqZWN0ID8gV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVh
dGUobm90aWZpY2F0aW9uT2JqZWN0KS5wdHIoKSA6IG51bGxwdHIpOwogICAgICAgICBhcmd1bWVu
dHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CiAgICAgICAgIGFyZ3VtZW50c1syXSA9
IHVzZXJJbmZvQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4
dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNr
KSwgMCwgMywgYXJndW1lbnRzLCAwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tCmluZGV4IDJhNDJiZDZiYTMxNjlhMzVmODFhMjZjZTdiMzMzMmUyYjY1OGQzMzAu
LjM3MzRkMTJhZjUxZmQ1NzhjNDgxMWViNWVmMmFiZDkzNTA3ODgwMDQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtNjE3LDggKzYxNyw5IEBAIEpTVmFs
dWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXJyYXlBdHRyaWJ1dGVWYWx1
ZShKU1N0cmluZ1JlZiBhdHRyCiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBh
dHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKFtOU1N0
cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6YXR0cmlidXRlXSk7Ci0gICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSh2YWx1ZS5nZXQoKSk7CisgICAgaWYgKGF1dG8gdmFs
dWUgPSBhdHRyaWJ1dGVWYWx1ZShbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmF0dHJp
YnV0ZV0pKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKHZh
bHVlLmdldCgpKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpib29sQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQpAQCAt
MTI0MSw5ICsxMjQyLDExIEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhCiB7CiAgICAgQkVHSU5f
QVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNEaWN0aW9uYXJ5ICpwYXJhbWV0ZXJpemVkQXR0cmli
dXRlID0gc2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvclNlYXJjaENyaXRl
cmlhKGNvbnRleHQsIHN0YXJ0RWxlbWVudCwgaXNEaXJlY3Rpb25OZXh0LCAxLCBzZWFyY2hLZXks
IHNlYXJjaFRleHQsIHZpc2libGVPbmx5LCBpbW1lZGlhdGVEZXNjZW5kYW50c09ubHkpOwotICAg
IGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFVJ
RWxlbWVudHNGb3JTZWFyY2hQcmVkaWNhdGUiIGZvclBhcmFtZXRlcjpwYXJhbWV0ZXJpemVkQXR0
cmlidXRlXTsKLSAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkK
LSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShbdmFsdWUgbGFz
dE9iamVjdF0pOworICAgIGlkIHNlYXJjaFJlc3VsdHMgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpAIkFYVUlFbGVtZW50c0ZvclNlYXJjaFByZWRpY2F0ZSIgZm9yUGFy
YW1ldGVyOnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVdOworICAgIGlmIChbc2VhcmNoUmVzdWx0cyBp
c0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pIHsKKyAgICAgICAgaWYgKGlkIGxhc3RSZXN1
bHQgPSBbc2VhcmNoUmVzdWx0cyBsYXN0T2JqZWN0XSkKKyAgICAgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUobGFzdFJlc3VsdCk7CisgICAgfQogICAgIEVORF9B
WF9PQkpDX0VYQ0VQVElPTlMKICAgICAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE0MTAsNyAr
MTQxMyw4IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnCiB7CiAgICAgTlNBcnJheSAqY29sUm93
QXJyYXkgPSBAW0AoY29sKSwgQChyb3cpXTsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMK
LSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhDZWxsRm9yQ29sdW1uQW5kUm93IiBmb3JQYXJh
bWV0ZXI6Y29sUm93QXJyYXldKTsKKyAgICBpZiAoaWQgY2VsbCA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhDZWxsRm9yQ29sdW1uQW5kUm93IiBmb3JQYXJhbWV0
ZXI6Y29sUm93QXJyYXldKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y3JlYXRlKGNlbGwpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMgICAgCiAKICAgICByZXR1
cm4gbnVsbHB0cjsKQEAgLTE0MjIsNyArMTQyNiw4IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpob3Jpem9udGFsU2Nyb2xsYmFyKCkgY29u
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05T
Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShhdHRyaWJ1dGVWYWx1
ZShOU0FjY2Vzc2liaWxpdHlIb3Jpem9udGFsU2Nyb2xsQmFyQXR0cmlidXRlKS5nZXQoKSk7Cisg
ICAgaWYgKGlkIHNjcm9sbGJhciA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eUhvcml6
b250YWxTY3JvbGxCYXJBdHRyaWJ1dGUpLmdldCgpKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y3JlYXRlKHNjcm9sbGJhcik7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBU
SU9OUyAgICAKIAogICAgIHJldHVybiBudWxscHRyOwpAQCAtMTQzNCw3ICsxNDM5LDggQEAgUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRp
Y2FsU2Nyb2xsYmFyKCkgY29uc3QKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBCRUdJ
Tl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y3JlYXRlKGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVZlcnRpY2FsU2Nyb2xsQmFyQXR0
cmlidXRlKS5nZXQoKSk7CisgICAgaWYgKGlkIHNjcm9sbGJhciA9IGF0dHJpYnV0ZVZhbHVlKE5T
QWNjZXNzaWJpbGl0eVZlcnRpY2FsU2Nyb2xsQmFyQXR0cmlidXRlKS5nZXQoKSkKKyAgICAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShzY3JvbGxiYXIpOwogICAgIEVO
RF9BWF9PQkpDX0VYQ0VQVElPTlMgICAgICAgIAogCiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcldpbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAKaW5kZXggOTAwNWJmMDE2
OTExZDdjNzVkZTVkMmRhZGM2NWY0NGMzOWY4NDc2ZC4uYmJiNTQ2M2JjMTZlZmNkYWVjODY0ZjMy
YzFkMGU5ODM0ZmJiMzJmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyV2luLmNwcApAQCAtNjEsNyArNjEsNyBAQCBSZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKICAgICByZXR1cm4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKG51bGxwdHIpOwogfQogCi1SZWY8QWNjZXNzaWJpbGl0
eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KCkKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9j
dXNlZEVsZW1lbnQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444321</attachid>
            <date>2021-11-15 17:13:46 -0800</date>
            <delta_ts>2021-11-16 06:38:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233138-20211115191345.patch</filename>
            <type>text/plain</type>
            <size>13925</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Nzk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmI5ZmNmMTQ4NDIzMjNiNDM3NzkzOTdkZTI5OTAxMjE3
NmQ4NmJlNy4uZTYzYTM1N2Q4NzI1ZTFhNGRiNTZjN2ZjY2VjYWJmN2NiODQ3OGNkNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDIxLTExLTE1ICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IFN0b3AgcmV0dXJuaW5nIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRzIGJhY2tlZCBi
eSBhIG51bGwgcG9pbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMzMTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgc29tZSBjYWxsZXJzIG9mIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNyZWF0ZQorICAgICAgICBwYXNzZWQgbnVsbCBgaWRgcywgcmVzdWx0aW5n
IGluIGEgc2VlbWluZ2x5IHZhbGlkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQKKyAgICAgICAgdGhh
dCBpcyBhY3R1YWxseSBiYWNrZWQgYnkgYSBudWxsIHBvaW50ZXIuIFRoaXMgbWFrZXMgd3JpdGlu
ZyB0ZXN0cyBoYXJkZXIsCisgICAgICAgIHNpbmNlIHlvdSBjYW4ndCByZWx5IG9uIGNvbW1vbiBv
cGVyYXRpb25zIGxpa2UgYCFteUVsZW1lbnRgIHRvIGRvIHRoZSByaWdodCB0aGluZy4KKworICAg
ICAgICBXaXRoIHRoaXMgcGF0Y2gsIHdlIGFkZCBhIFJFTEVBU0VfQVNTRVJUIHRvCisgICAgICAg
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSByZXF1aXJpbmcgdGhlIHBhc3NlZCBwb2lu
dGVyIHRvIGJlCisgICAgICAgIHZhbGlkLiBUaGlzIHBhdGNoIGFsc28gZml4ZXMgdXAgc29tZSBj
YWxsc2l0ZXMgd2hlcmUgd2UgY291bGQgKGFuZCBkaWQpIHBhc3MgbnVsbCBwb2ludGVycy4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyQXRrLmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCk6
CisgICAgICAgIFJldHVybiBSZWZQdHIgaW5zdGVhZCBvZiBSZWYsIHNpbmNlIGl0J3MgcG9zc2li
bGUgdGhhdCBubyBlbGVtZW50IGlzCisgICAgICAgIGZvY3VzZWQuCisKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRl
KToKKyAgICAgICAgQWRkIFJFTEVBU0VfQVNTRVJUKCkgdG8gdmVyaWZ5IHBhc3NlZCBwb2ludGVy
IGlzIHZhbGlkLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Zm9jdXNlZEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXR0cmlidXRlVmFs
dWUgY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1l
bnRGb3JTZWFyY2hQcmVkaWNhdGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aG9yaXpvbnRhbFNjcm9sbGJhciBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyIGNvbnN0KToKKyAgICAgICAgRG9u
J3QgY2FsbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUgd2l0aCBudWxsIHBvaW50ZXJz
LgorCiAyMDIxLTExLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIEltcGxlbWVudCBVSVNjcmlwdENvbnRyb2xsZXIuc2VuZEV2ZW50U3RyZWFtKCkg
Zm9yIER1bXBSZW5kZXJUcmVlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4
IDY0NWE0NGI3MTVhMGFmN2UyM2NlMDlkM2EzZjQ5MzVhNDY3NGI1NGMuLmE1YTQxNzVlMTc4ZjEy
MjQxNjFlMzI4ODA0YTFkNzNiYzRlMDlhNDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuY3BwCkBAIC05MCwxNCArOTAsMTIgQEAgUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiAgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShyb290KTsKIH0KIAotUmVmPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCitSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRF
bGVtZW50KCkKIHsKICAgICBhdXRvIHBhZ2UgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCku
cGFnZSgpLT5wYWdlKCk7CiAgICAgYXV0byByb290ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1VSUVs
ZW1lbnQ+KFdLQWNjZXNzaWJpbGl0eVJvb3RPYmplY3QocGFnZSkpOwogICAgIGF1dG8gcm9vdEVs
ZW1lbnQgPSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUocm9vdCk7Ci0gICAgaWYgKGF1
dG8gZm9jdXNlZEVsZW1lbnQgPSByb290RWxlbWVudC0+Zm9jdXNlZEVsZW1lbnQoKSkKLSAgICAg
ICAgcmV0dXJuICpmb2N1c2VkRWxlbWVudDsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y3JlYXRlKG51bGxwdHIpOworICAgIHJldHVybiByb290RWxlbWVudC0+Zm9jdXNlZEVs
ZW1lbnQoKTsKIH0KIAogdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZXhlY3V0ZU9uQVhU
aHJlYWRBbmRXYWl0KEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuaAppbmRleCBhZWExYTYwZTRiYzAyODM3MzQ0NmE4Nzc3ODllZDgzNDRjNWZi
MjU5Li4wNzIzZDNlMDE5NTQ2NGIzMTcxZDIyN2FmM2VlMWNhZjkwMGYwZDA2IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICAvLyBD
b250cm9sbGVyIE1ldGhvZHMgLSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBpbXBsZW1lbnRhdGlvbnMu
CiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQogICAgIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiByb290RWxlbWVudCgpOwotICAgIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBmb2N1c2Vk
RWxlbWVudCgpOworICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBmb2N1c2VkRWxl
bWVudCgpOwogI2VuZGlmCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGVsZW1l
bnRBdFBvaW50KGludCB4LCBpbnQgeSk7CiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IGFjY2Vzc2libGVFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZEF0dHJpYnV0ZSk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCBhZTViZTUyNTcyNDc4ZmIwYTQwZjI2MTc0
ZDg3MGI3YWIxNmZiMmViLi42YzE4NDIwMmZkODU0ZjNhM2UzMTE3OWE4ZWEzMzQ0Njk4Y2NlOGI4
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAgbmFt
ZXNwYWNlIFdUUiB7CiAKIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjcmVhdGUoUGxhdGZvcm1VSUVsZW1lbnQgdWlFbGVtZW50KQogeworICAgIFJF
TEVBU0VfQVNTRVJUKHVpRWxlbWVudCk7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCh1aUVsZW1lbnQpKTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyQXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcAppbmRleCBjMTI0ODgwNTliMWZiZjMwZWVkZDJh
ZTMxZDQ3NzZiZjJjODk2OTcwLi4wOWE4YjY2OTUwNWM2YjM0NDVlNDU4ZWIxMDE5NDA4NjUzOTZh
YTVmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0
ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwCkBA
IC0xMTIsNyArMTEyLDcgQEAgUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxBdGtPYmplY3QqPihyb290KSk7CiB9CiAKLVJlZjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVs
ZW1lbnQoKQorUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCiB7CiAgICAgV0tCdW5kbGVQYWdlUmVmIHBhZ2UgPSBJ
bmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCk7CiAgICAgdm9pZCogcm9v
dCA9IFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRPYmplY3QocGFnZSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQppbmRleCAzOWM4MzAyOTllZDcxMzZjNjc3MWEwY2Rk
OWRiZTAxZThhYzA2ZjFiLi5kZDRlYjA5NmZlZTk3NDVkOTczOTI1OTg0ZTBhZmNmNjU4MDQwODFh
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KQEAgLTYzNSw3
ICs2MzUsOSBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25z
dAogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Zm9jdXNlZEVsZW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpjcmVhdGUoW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF0p
OworICAgIGlmIChpZCBmb2N1c2VkVUlFbGVtZW50ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5
Rm9jdXNlZFVJRWxlbWVudF0pCisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpjcmVhdGUoZm9jdXNlZFVJRWxlbWVudCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIGJv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkKCkgY29uc3QKQEAgLTc2NSwxNCAr
NzY3LDE4IEBAIHVuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudENvdW50
Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiBjCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9yU2VhcmNoUHJlZGlj
YXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50ICpzdGFydEVs
ZW1lbnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVlUmVmIHNlYXJjaEtleSwgSlNTdHJp
bmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSwgYm9vbCBpbW1lZGlhdGVEZXNjZW5k
YW50c09ubHkpCiB7CiAgICAgTlNEaWN0aW9uYXJ5ICpwYXJhbWV0ZXJpemVkQXR0cmlidXRlID0g
c2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvclNlYXJjaENyaXRlcmlhKGNv
bnRleHQsIHN0YXJ0RWxlbWVudCwgaXNEaXJlY3Rpb25OZXh0LCA1LCBzZWFyY2hLZXksIHNlYXJj
aFRleHQsIHZpc2libGVPbmx5LCBpbW1lZGlhdGVEZXNjZW5kYW50c09ubHkpOwotICAgIGlkIHZh
bHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RmluZE1hdGNoaW5nT2JqZWN0czpwYXJhbWV0
ZXJpemVkQXR0cmlidXRlXTsKLSAgICBpZiAoIVt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5
IGNsYXNzXV0pCisgICAgaWQgcmVzdWx0cyA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUZpbmRN
YXRjaGluZ09iamVjdHM6cGFyYW1ldGVyaXplZEF0dHJpYnV0ZV07CisgICAgaWYgKCFbcmVzdWx0
cyBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIGZvciAoaWQgZWxlbWVudCBpbiB2YWx1ZSkgeworCisgICAgZm9yIChpZCBlbGVtZW50
IGluIHJlc3VsdHMpIHsKICAgICAgICAgaWYgKFtlbGVtZW50IGlzQWNjZXNzaWJpbGl0eUVsZW1l
bnRdKQogICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KTsKICAgICB9Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0
ZShbdmFsdWUgZmlyc3RPYmplY3RdKTsKKworICAgIGlmIChpZCBmaXJzdFJlc3VsdCA9IFtyZXN1
bHRzIGZpcnN0T2JqZWN0XSkKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmNyZWF0ZShmaXJzdFJlc3VsdCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENy
aXRlcmlhKEpTQ29udGV4dFJlZiwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlvbiwgSlNW
YWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmluZywgSlNT
dHJpbmdSZWYgYWN0aXZpdHkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IDg1MDI2ZTZlODkyM2I0MjFlNjgxM2ZjYjA1YWRiY2Y0
ODQyN2FiM2YuLjE0YTcwMjY0YjJiODY1NDI1YWU4MjMxZGMxYTk4NjM3MzAwMjJiMTQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBA
IC0xMjcsNyArMTI3LDggQEAKICAgICB9IGVsc2UgewogICAgICAgICAvLyBBIGdsb2JhbCBsaXN0
ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCiAg
ICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzNdOwotICAgICAgICBhcmd1bWVudHNbMF0gPSB0
b0pTKGNvbnRleHQsIFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFtub3RpZmlj
YXRpb24gb2JqZWN0XSkucHRyKCkpOworICAgICAgICBpZCBub3RpZmljYXRpb25PYmplY3QgPSBb
bm90aWZpY2F0aW9uIG9iamVjdF07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4
dCwgbm90aWZpY2F0aW9uT2JqZWN0ID8gV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVh
dGUobm90aWZpY2F0aW9uT2JqZWN0KS5wdHIoKSA6IG51bGxwdHIpOwogICAgICAgICBhcmd1bWVu
dHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CiAgICAgICAgIGFyZ3VtZW50c1syXSA9
IHVzZXJJbmZvQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4
dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNr
KSwgMCwgMywgYXJndW1lbnRzLCAwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tCmluZGV4IDJhNDJiZDZiYTMxNjlhMzVmODFhMjZjZTdiMzMzMmUyYjY1OGQzMzAu
LjM3MzRkMTJhZjUxZmQ1NzhjNDgxMWViNWVmMmFiZDkzNTA3ODgwMDQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtNjE3LDggKzYxNyw5IEBAIEpTVmFs
dWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXJyYXlBdHRyaWJ1dGVWYWx1
ZShKU1N0cmluZ1JlZiBhdHRyCiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBh
dHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKFtOU1N0
cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6YXR0cmlidXRlXSk7Ci0gICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSh2YWx1ZS5nZXQoKSk7CisgICAgaWYgKGF1dG8gdmFs
dWUgPSBhdHRyaWJ1dGVWYWx1ZShbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmF0dHJp
YnV0ZV0pKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKHZh
bHVlLmdldCgpKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpib29sQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQpAQCAt
MTI0MSw5ICsxMjQyLDExIEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhCiB7CiAgICAgQkVHSU5f
QVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNEaWN0aW9uYXJ5ICpwYXJhbWV0ZXJpemVkQXR0cmli
dXRlID0gc2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvclNlYXJjaENyaXRl
cmlhKGNvbnRleHQsIHN0YXJ0RWxlbWVudCwgaXNEaXJlY3Rpb25OZXh0LCAxLCBzZWFyY2hLZXks
IHNlYXJjaFRleHQsIHZpc2libGVPbmx5LCBpbW1lZGlhdGVEZXNjZW5kYW50c09ubHkpOwotICAg
IGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFVJ
RWxlbWVudHNGb3JTZWFyY2hQcmVkaWNhdGUiIGZvclBhcmFtZXRlcjpwYXJhbWV0ZXJpemVkQXR0
cmlidXRlXTsKLSAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkK
LSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShbdmFsdWUgbGFz
dE9iamVjdF0pOworICAgIGlkIHNlYXJjaFJlc3VsdHMgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpAIkFYVUlFbGVtZW50c0ZvclNlYXJjaFByZWRpY2F0ZSIgZm9yUGFy
YW1ldGVyOnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVdOworICAgIGlmIChbc2VhcmNoUmVzdWx0cyBp
c0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pIHsKKyAgICAgICAgaWYgKGlkIGxhc3RSZXN1
bHQgPSBbc2VhcmNoUmVzdWx0cyBsYXN0T2JqZWN0XSkKKyAgICAgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUobGFzdFJlc3VsdCk7CisgICAgfQogICAgIEVORF9B
WF9PQkpDX0VYQ0VQVElPTlMKICAgICAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE0MTAsNyAr
MTQxMyw4IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnCiB7CiAgICAgTlNBcnJheSAqY29sUm93
QXJyYXkgPSBAW0AoY29sKSwgQChyb3cpXTsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMK
LSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhDZWxsRm9yQ29sdW1uQW5kUm93IiBmb3JQYXJh
bWV0ZXI6Y29sUm93QXJyYXldKTsKKyAgICBpZiAoaWQgY2VsbCA9IFttX2VsZW1lbnQgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhDZWxsRm9yQ29sdW1uQW5kUm93IiBmb3JQYXJhbWV0
ZXI6Y29sUm93QXJyYXldKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y3JlYXRlKGNlbGwpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMgICAgCiAKICAgICByZXR1
cm4gbnVsbHB0cjsKQEAgLTE0MjIsNyArMTQyNiw4IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpob3Jpem9udGFsU2Nyb2xsYmFyKCkgY29u
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05T
Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShhdHRyaWJ1dGVWYWx1
ZShOU0FjY2Vzc2liaWxpdHlIb3Jpem9udGFsU2Nyb2xsQmFyQXR0cmlidXRlKS5nZXQoKSk7Cisg
ICAgaWYgKGlkIHNjcm9sbGJhciA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eUhvcml6
b250YWxTY3JvbGxCYXJBdHRyaWJ1dGUpLmdldCgpKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y3JlYXRlKHNjcm9sbGJhcik7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBU
SU9OUyAgICAKIAogICAgIHJldHVybiBudWxscHRyOwpAQCAtMTQzNCw3ICsxNDM5LDggQEAgUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRp
Y2FsU2Nyb2xsYmFyKCkgY29uc3QKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBCRUdJ
Tl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y3JlYXRlKGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVZlcnRpY2FsU2Nyb2xsQmFyQXR0
cmlidXRlKS5nZXQoKSk7CisgICAgaWYgKGlkIHNjcm9sbGJhciA9IGF0dHJpYnV0ZVZhbHVlKE5T
QWNjZXNzaWJpbGl0eVZlcnRpY2FsU2Nyb2xsQmFyQXR0cmlidXRlKS5nZXQoKSkKKyAgICAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShzY3JvbGxiYXIpOwogICAgIEVO
RF9BWF9PQkpDX0VYQ0VQVElPTlMgICAgICAgIAogCiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcldpbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAKaW5kZXggOTAwNWJmMDE2
OTExZDdjNzVkZTVkMmRhZGM2NWY0NGMzOWY4NDc2ZC4uMTM3ODJhNTQ0YjRhOTNmNDZlZWUwOWFk
MWYyYmQ5YTEwOThhMzk0NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyV2luLmNwcApAQCAtNjEsMTAgKzYxLDEwIEBAIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQoKQogICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUobnVsbHB0cik7CiB9CiAKLVJlZjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQor
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpm
b2N1c2VkRWxlbWVudCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKG51bGxwdHIpOworICAgIHJldHVybiBudWxscHRy
OwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0
ZW5lcihKU1ZhbHVlUmVmKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>