<?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>232130</bug_id>
          
          <creation_ts>2021-10-21 20:47:20 -0700</creation_ts>
          <short_desc>AX: AccessibilityObject::m_haveChildren and AXCoreObject::hasChildren() are misleadingly named</short_desc>
          <delta_ts>2021-10-25 10:41:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1807514</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-10-21 20:47:20 -0700</bug_when>
    <thetext>The names of both AccessibilityObject::m_haveChildren and AXCoreObect::hasChildren() imply that the given object has children, i.e. has one or more children. However, what these really mean is whether the object has tried to initialize its children. Both m_haveChildren and hasChildren() can be true for objects that have no children, which is confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807515</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-21 20:47:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/84534428&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807517</commentid>
    <comment_count>2</comment_count>
      <attachid>442112</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-10-21 20:57:06 -0700</bug_when>
    <thetext>Created attachment 442112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807524</commentid>
    <comment_count>3</comment_count>
      <attachid>442112</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-21 21:14:51 -0700</bug_when>
    <thetext>Comment on attachment 442112
Patch

Do we need to actually store this value for isolated tree mode? Seems like we can just return true for this since it would always be initialized</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807538</commentid>
    <comment_count>4</comment_count>
      <attachid>442120</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-10-21 22:08:50 -0700</bug_when>
    <thetext>Created attachment 442120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807540</commentid>
    <comment_count>5</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-10-21 22:11:14 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #3)
&gt; Comment on attachment 442112 [details]
&gt; Patch
&gt; 
&gt; Do we need to actually store this value for isolated tree mode? Seems like
&gt; we can just return true for this since it would always be initialized
Good call, I just looked into it and I don&apos;t think we do. Uploaded a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807544</commentid>
    <comment_count>6</comment_count>
      <attachid>442120</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-21 22:40:06 -0700</bug_when>
    <thetext>Comment on attachment 442120
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3493
&gt; +    if (role == AccessibilityRole::SVGRoot &amp;&amp; !childrenInitialized())

this looks like an incorrect usage due to poor naming. I think we want to return role is Image if it doesn&apos;t have children, not that it wasn&apos;t initialized</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807673</commentid>
    <comment_count>7</comment_count>
      <attachid>442164</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-10-22 07:41:36 -0700</bug_when>
    <thetext>Created attachment 442164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807674</commentid>
    <comment_count>8</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-10-22 07:42:03 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #6)
&gt; Comment on attachment 442120 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=442120&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3493
&gt; &gt; +    if (role == AccessibilityRole::SVGRoot &amp;&amp; !childrenInitialized())
&gt; 
&gt; this looks like an incorrect usage due to poor naming. I think we want to
&gt; return role is Image if it doesn&apos;t have children, not that it wasn&apos;t
&gt; initialized
Agreed — fixed with newest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807918</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-22 15:56:53 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 442164 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808243</commentid>
    <comment_count>10</comment_count>
      <attachid>442314</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-10-24 11:50:49 -0700</bug_when>
    <thetext>Created attachment 442314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808267</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-24 15:28:44 -0700</bug_when>
    <thetext>Committed r284769 (243478@main): &lt;https://commits.webkit.org/243478@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442314.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808378</commentid>
    <comment_count>12</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-25 06:47:25 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #10)
&gt; Created attachment 442314 [details]
&gt; Patch

--- a/Source/WebCore/accessibility/AccessibilitySpinButton.cpp
+++ a/Source/WebCore/accessibility/AccessibilitySpinButton.cpp
@@ -45,9 +45,9 @@ AccessibilitySpinButton::~AccessibilitySpinButton() = default;

 AXCoreObject* AccessibilitySpinButton::incrementButton()
 {
-    if (!m_haveChildren)
+    if (!m_childrenInitialized)
         addChildren();
-    if (!m_haveChildren)
+    if (!m_childrenInitialized)
         return nullptr;

Does this second check for m_childrenInitialized even make sense? Since addChildren should set it to true by definition.

Same for AccessibilitySpinButton::decrementButton.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808387</commentid>
    <comment_count>13</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-10-25 07:21:18 -0700</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #12)
&gt; (In reply to Tyler Wilcock from comment #10)
&gt; &gt; Created attachment 442314 [details]
&gt; &gt; Patch
&gt; 
&gt; --- a/Source/WebCore/accessibility/AccessibilitySpinButton.cpp
&gt; +++ a/Source/WebCore/accessibility/AccessibilitySpinButton.cpp
&gt; @@ -45,9 +45,9 @@ AccessibilitySpinButton::~AccessibilitySpinButton() =
&gt; default;
&gt; 
&gt;  AXCoreObject* AccessibilitySpinButton::incrementButton()
&gt;  {
&gt; -    if (!m_haveChildren)
&gt; +    if (!m_childrenInitialized)
&gt;          addChildren();
&gt; -    if (!m_haveChildren)
&gt; +    if (!m_childrenInitialized)
&gt;          return nullptr;
&gt; 
&gt; Does this second check for m_childrenInitialized even make sense? Since
&gt; addChildren should set it to true by definition.
&gt; 
&gt; Same for AccessibilitySpinButton::decrementButton.
Seems like this guards against the case where a caller used `incrementButton` without a cache active.

void AccessibilitySpinButton::addChildren()
{
    AXObjectCache* cache = axObjectCache();
    if (!cache)
        return;
       
    m_childrenInitialized = true;
    ...
}

This extra check was introduced by this bug: https://bugs.webkit.org/show_bug.cgi?id=157830</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808462</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-25 10:37:01 -0700</bug_when>
    <thetext>Renaming is a good idea.

I notice that the name childrenInitialized() is ambiguous. Could be the name for function that is called when children are initialized, not necessarily a predicate that answers the question of whether the children are initialized. This ambiguity is why Cocoa naming encourages names like areChildrenInitialized().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808469</commentid>
    <comment_count>15</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-10-25 10:41:33 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #14)
&gt; Renaming is a good idea.
&gt; 
&gt; I notice that the name childrenInitialized() is ambiguous. Could be the name
&gt; for function that is called when children are initialized, not necessarily a
&gt; predicate that answers the question of whether the children are initialized.
&gt; This ambiguity is why Cocoa naming encourages names like
&gt; areChildrenInitialized().
Yeah, fair point. areChildrenInitialized() makes sense to me. I can create a follow-up patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442112</attachid>
            <date>2021-10-21 20:57:06 -0700</date>
            <delta_ts>2021-10-21 22:08:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232130-20211021225705.patch</filename>
            <type>text/plain</type>
            <size>21126</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFiM2VhZDI1YjQwMmNj
OTc2ZjdmOTIzMDg2NmFiNzA0MDg2Y2M3OS4uZGQyNzRmN2VlODYwODgzN2E2YjZmOWM2YmU0NDUw
NWFkZjFlNmVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIxLTEwLTIxICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFjY2Vzc2liaWxp
dHlPYmplY3Q6Om1faGF2ZUNoaWxkcmVuIGFuZCBBWENvcmVPYmplY3Q6Omhhc0NoaWxkcmVuKCkg
YXJlIG1pc2xlYWRpbmdseSBuYW1lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyMTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIG5hbWVzIG9mIGBBY2Nlc3NpYmlsaXR5T2JqZWN0OjptX2hhdmVD
aGlsZHJlbmAgYW5kIGBBWENvcmVPYmplY3Q6Omhhc0NoaWxkcmVuKClgCisgICAgICAgIGltcGx5
IHRoYXQgdGhlIGdpdmVuIG9iamVjdCBoYXMgb25lIG9yIG1vcmUgY2hpbGRyZW4uIEhvd2V2ZXIs
IHdoYXQgdGhlc2UKKyAgICAgICAgcmVhbGx5IGluZGljYXRlIGlzIHdoZXRoZXIgdGhlIG9iamVj
dCBoYXMgdHJpZWQgdG8gaW5pdGlhbGl6ZSBpdHMgY2hpbGRyZW4uCisgICAgICAgIEJvdGggYG1f
aGF2ZUNoaWxkcmVuYCBhbmQgYGhhc0NoaWxkcmVuKClgIGNhbiBiZSB0cnVlIGZvciBvYmplY3Rz
IHRoYXQgaGF2ZSBubyBjaGlsZHJlbiwKKyAgICAgICAgd2hpY2ggaXMgY29uZnVzaW5nLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggcmVuYW1lcyBgbV9oYXZlQ2hpbGRyZW5gIHRvIGBtX2NoaWxkcmVu
SW5pdGlhbGl6ZWRgIGFuZAorICAgICAgICBgaGFzQ2hpbGRyZW4oKWAgdG8gYGNoaWxkcmVuSW5p
dGlhbGl6ZWQoKWAuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklB
R3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENo
aWxkcmVuKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0Qm94OjphZGRDaGlsZHJlbik6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJveDo6c2VsZWN0ZWRDaGlsZHJl
bik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJveDo6dmlzaWJsZUNoaWxk
cmVuKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmFkZENoaWxkcmVuKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjphZGRDaGlsZHJl
bik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y2hpbGRy
ZW5DaGFuZ2VkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphZGRD
aGlsZHJlbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnVwZGF0ZUNoaWxkcmVu
SWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y2xl
YXJDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpBWENvcmVPYmplY3Q6OmlzRGVzY2VuZGFudE9mT2JqZWN0
IGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRk
Q2FudmFzQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGRDaGlsZHJlbik6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhTGlzdGJveFZpc2libGVDaGlsZHJl
bik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6YWRkQ2hpbGRyZW4p
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2xpZGVyOjphZGRDaGlsZHJlbik6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbjo6aW5jcmVtZW50QnV0dG9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTcGluQnV0dG9uOjpkZWNyZW1lbnRCdXR0b24pOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmFkZENoaWxkcmVuKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGU6OmFkZENoaWxkcmVuKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46OmFkZENoaWxkcmVuKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmFkZENoaWxk
cmVuKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVB
dHRyaWJ1dGVEYXRhKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWUuaDoKKwogMjAyMS0xMC0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEZvcm0gc3VibWlzc2lvbiBzaG91bGQgYmUgY2FuY2VsbGVkIGlmIHRo
ZSBmb3JtIGdldHMgZGV0YWNoZWQgZnJvbSBpbnNpZGUgdGhlIGZvcm1kYXRhIGV2ZW50IGhhbmRs
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUFSSUFHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUFSSUFHcmlkLmNwcAppbmRleCA4N2IzYjEyY2Q3MDViYWY3ZmE5ZTY5MTk2YWIxYmYyYWY3M2U0
ZDUwLi5mOGVjODQ1NDdmMmI5OTFjOTNiZGQwYzEzYmRjODIyMDI3NDE1MzYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQu
Y3BwCkBAIC05NCwxNCArOTQsMTQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZFJv
d0Rlc2NlbmRhbnQoQVhDb3JlT2JqZWN0KiByb3dDaGlsZCwgSGFzaFNldDxBY2MKIAogdm9pZCBB
Y2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKCkKIHsKLSAgICBBU1NFUlQoIW1faGF2
ZUNoaWxkcmVuKTsgCisgICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpOyAKICAgICAK
ICAgICBpZiAoIWlzRXhwb3NhYmxlKCkpIHsKICAgICAgICAgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6YWRkQ2hpbGRyZW4oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBt
X2hhdmVDaGlsZHJlbiA9IHRydWU7CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVkID0gdHJ1ZTsK
ICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKaW5k
ZXggNzlmMzYwOTVlNzQzMzlhMmI4NTdmNTQ0NDVjNDFhYTNjNjAzMDI1OS4uMTNkYTI1MmQ1YWY3
ZGY2ZjQ0OTFlZmY2MjU5YjAyNmZmMWE3ZTFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKQEAgLTcxLDcgKzcxLDcg
QEAgdm9pZCBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6YWRkQ2hpbGRyZW4oKQogICAgIGlmICghc2Vs
ZWN0Tm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOwor
ICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAKICAgICBmb3IgKGNvbnN0IGF1dG8m
IGxpc3RJdGVtIDogZG93bmNhc3Q8SFRNTFNlbGVjdEVsZW1lbnQ+KCpzZWxlY3ROb2RlKS5saXN0
SXRlbXMoKSkKICAgICAgICAgYWRkQ2hpbGQobGlzdEJveE9wdGlvbkFjY2Vzc2liaWxpdHlPYmpl
Y3QobGlzdEl0ZW0pKTsKQEAgLTEwNSw5ICsxMDUsOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlMaXN0
Qm94OjpzZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0
KQogewogICAgIEFTU0VSVChyZXN1bHQuaXNFbXB0eSgpKTsKIAotICAgIGlmICghaGFzQ2hpbGRy
ZW4oKSkKKyAgICBpZiAoIWNoaWxkcmVuSW5pdGlhbGl6ZWQoKSkKICAgICAgICAgYWRkQ2hpbGRy
ZW4oKTsKLSAgICAgICAgCisKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxkIDogbV9jaGlsZHJl
bikgewogICAgICAgICBpZiAoZG93bmNhc3Q8QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24+KCpj
aGlsZCkuaXNTZWxlY3RlZCgpKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjaGlsZC5nZXQo
KSk7CkBAIC0xMTgsNyArMTE4LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6dmlzaWJs
ZUNoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0KQogewogICAgIEFT
U0VSVChyZXN1bHQuaXNFbXB0eSgpKTsKICAgICAKLSAgICBpZiAoIWhhc0NoaWxkcmVuKCkpCisg
ICAgaWYgKCFjaGlsZHJlbkluaXRpYWxpemVkKCkpCiAgICAgICAgIGFkZENoaWxkcmVuKCk7CiAg
ICAgCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gbV9jaGlsZHJlbi5zaXplKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAK
aW5kZXggOGU2NWY4ZTVlN2E4MjVlMzUxY2RlMzk4YzNmYjVjMmQzYWQ1ZDYzZC4uODcyZWI4NjY4
NzE5NThmN2UxZWRiYjA1N2FjOTNhMjJkZGM1MTZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcApAQCAtODEsNyAr
ODEsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlNZW51TGlzdDo6YWRkQ2hpbGRyZW4oKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOworICAgIG1fY2hp
bGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAgICAgYWRkQ2hpbGQobGlzdCk7CiAgICAgbGlzdC0+
YWRkQ2hpbGRyZW4oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKaW5kZXggN2M0NTFhZjc5NDc2
MWFlYWYzMjFiMDczNDA3NmJlY2FiZjAyNWYyYi4uYTQ1M2M1YjQ5OTI2Mjc0ZjBiMDc1NmEzN2Qw
YjJlOGY4ZDgxY2ZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6YWRkQ2hpbGRyZW4oKQogICAgIGlmICgh
c2VsZWN0Tm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVl
OworICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAKICAgICBmb3IgKGNvbnN0IGF1
dG8mIGxpc3RJdGVtIDogZG93bmNhc3Q8SFRNTFNlbGVjdEVsZW1lbnQ+KCpzZWxlY3ROb2RlKS5s
aXN0SXRlbXMoKSkKICAgICAgICAgYWRkQ2hpbGQobWVudUxpc3RPcHRpb25BY2Nlc3NpYmlsaXR5
T2JqZWN0KGxpc3RJdGVtKSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
TWVudUxpc3RQb3B1cDo6Y2hpbGRyZW5DaGFuZ2VkKCkKICAgICB9CiAgICAgCiAgICAgbV9jaGls
ZHJlbi5jbGVhcigpOwotICAgIG1faGF2ZUNoaWxkcmVuID0gZmFsc2U7CisgICAgbV9jaGlsZHJl
bkluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgYWRkQ2hpbGRyZW4oKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcAppbmRleCBlMmQzOWIwNTgyZTMwYWZiYzVmZDQ2YWJmYmEzNWMwYWFhZjE3MWE5Li5hMTIz
ZjljNmJhZDY2YTE1MTgzYjE2M2JmMTI5MDNhYmI0ZDZhYzI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApA
QCAtMzQyLDEyICszNDIsMTIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWRkQ2hp
bGRyZW4oKQogewogICAgIC8vIElmIHRoZSBuZWVkIHRvIGFkZCBtb3JlIGNoaWxkcmVuIGluIGFk
ZGl0aW9uIHRvIGV4aXN0aW5nIGNoaWxkcmVuIGFyaXNlcywgCiAgICAgLy8gY2hpbGRyZW5DaGFu
Z2VkIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkLCBsZWF2aW5nIHRoZSBvYmplY3Qgd2l0aCBubyBj
aGlsZHJlbi4KLSAgICBBU1NFUlQoIW1faGF2ZUNoaWxkcmVuKTsgCisgICAgQVNTRVJUKCFtX2No
aWxkcmVuSW5pdGlhbGl6ZWQpOyAKICAgICAKICAgICBpZiAoIW1fbm9kZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOworICAgIG1fY2hpbGRyZW5Jbml0aWFs
aXplZCA9IHRydWU7CiAKICAgICAvLyBUaGUgb25seSB0aW1lIHdlIGFkZCBjaGlsZHJlbiBmcm9t
IHRoZSBET00gdHJlZSB0byBhIG5vZGUgd2l0aCBhIHJlbmRlcmVyIGlzIHdoZW4gaXQncyBhIGNh
bnZhcy4KICAgICBpZiAocmVuZGVyZXIoKSAmJiAhbV9ub2RlLT5oYXNUYWdOYW1lKGNhbnZhc1Rh
ZykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcAppbmRleCBlYWVjNDMxNzE2ODNjYWNmMWYwMTU4ZmJiNGUyNDkyYTk5YzVlZWE4
Li5iMjIxN2YwZGZhMjg0MGYzNmRlNjlkYjJlMGUyMjU4MWEzNTBmNTBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAg
LTE2ODQsNyArMTY4NCw3IEBAIGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2hpCiAKIHZvaWQgQWNjZXNz
aWJpbGl0eU9iamVjdDo6dXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSgpCiB7Ci0gICAgaWYgKCFo
YXNDaGlsZHJlbigpKSB7CisgICAgaWYgKCFjaGlsZHJlbkluaXRpYWxpemVkKCkpIHsKICAgICAg
ICAgLy8gRW5hYmxlIHRoZSBjYWNoZSBpbiBjYXNlIHdlIGVuZCB1cCBhZGRpbmcgYSBsb3Qgb2Yg
Y2hpbGRyZW4sIHdlIGRvbid0IHdhbnQgdG8gcmVjb21wdXRlIGF4SXNJZ25vcmVkIGVhY2ggdGlt
ZS4KICAgICAgICAgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIgZW5hYmxlQ2FjaGUoYXhPYmplY3RD
YWNoZSgpKTsKICAgICAgICAgYWRkQ2hpbGRyZW4oKTsKQEAgLTE2OTgsNyArMTY5OCw3IEBAIHZv
aWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2xlYXJDaGlsZHJlbigpCiAgICAgICAgIGNoaWxkLT5k
ZXRhY2hGcm9tUGFyZW50KCk7CiAgICAgCiAgICAgbV9jaGlsZHJlbi5jbGVhcigpOwotICAgIG1f
aGF2ZUNoaWxkcmVuID0gZmFsc2U7CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVkID0gZmFsc2U7
CiB9CiAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFuY2hvckVs
ZW1lbnRGb3JOb2RlKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDcxMzI0MDlhZWVjM2NlNmVkZDM4Mjll
MTJiNmMzY2I2ODkwYjRkMWMuLjA5YWY5NTU0ZmYwOWM0NWM2YmYzMGUyZGM0MTU1ZGQwNGM1YWI1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCkBAIC00OTUsNyArNDk1LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW5zZXJ0Q2hp
bGQoQVhDb3JlT2JqZWN0KiwgdW5zaWduZWQpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBjYW5IYXZl
Q2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgYm9vbCBoYXND
aGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faGF2ZUNoaWxkcmVuOyB9CisgICAg
Ym9vbCBjaGlsZHJlbkluaXRpYWxpemVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jaGls
ZHJlbkluaXRpYWxpemVkOyB9CiAgICAgdm9pZCB1cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZXROZWVkc1RvVXBkYXRlQ2hpbGRyZW4oKSBvdmVycmlkZSB7
IH0KICAgICB2b2lkIHNldE5lZWRzVG9VcGRhdGVTdWJ0cmVlKCkgb3ZlcnJpZGUgeyB9CkBAIC04
MTEsNyArODExLDcgQEAgcHJpdmF0ZToKICAgICBBWElEIG1faWQgeyAwIH07CiBwcm90ZWN0ZWQ6
IC8vIEZJWE1FOiBNYWtlIHRoZSBkYXRhIG1lbWJlcnMgcHJpdmF0ZS4KICAgICBBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3IgbV9jaGlsZHJlbjsKLSAgICBtdXRhYmxlIGJvb2wgbV9oYXZlQ2hp
bGRyZW4geyBmYWxzZSB9OworICAgIG11dGFibGUgYm9vbCBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQg
eyBmYWxzZSB9OwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIG1fcm9sZSB7IEFjY2Vzc2liaWxpdHlS
b2xlOjpVbmtub3duIH07CiBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNp
b24gbV9sYXN0S25vd25Jc0lnbm9yZWRWYWx1ZSB7IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNp
b246OkRlZmF1bHRCZWhhdmlvciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCA5ZmMxZmY1
ZjNmOTEwYTJiZmQ1Y2IzMDQ5YTExMTY1YzI2NDRmMTU4Li40YjExNThhYWJmZGFjNTkwZTNiYTEx
MmU5YWE1NGE2YjcwOTBhY2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtMTI0NCw3ICsx
MjQ0LDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxBWElEPiBjaGlsZHJlbklEcygpOwogCiAgICAg
dmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJv
b2wgaGFzQ2hpbGRyZW4oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGNoaWxkcmVuSW5p
dGlhbGl6ZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNoaWxkcmVuSWZO
ZWNlc3NhcnkoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzVG9VcGRhdGVDaGlsZHJl
bigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNUb1VwZGF0ZVN1YnRyZWUoKSA9IDA7
CkBAIC0xNjIwLDcgKzE2MjAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBp
bmxpbmUgVCByZXRyaWV2ZUF1dG9yZWxlYXNlZFZhbHVlRnJvbU1haW5UaHJlYQogCiBpbmxpbmUg
Ym9vbCBBWENvcmVPYmplY3Q6OmlzRGVzY2VuZGFudE9mT2JqZWN0KGNvbnN0IEFYQ29yZU9iamVj
dCogYXhPYmplY3QpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGF4T2JqZWN0ICYmIGF4T2JqZWN0LT5o
YXNDaGlsZHJlbigpCisgICAgcmV0dXJuIGF4T2JqZWN0ICYmIGF4T2JqZWN0LT5jaGlsZHJlbklu
aXRpYWxpemVkKCkKICAgICAgICAgJiYgQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2VzdG9yPEFYQ29y
ZU9iamVjdD4oKnRoaXMsIGZhbHNlLCBbYXhPYmplY3RdIChjb25zdCBBWENvcmVPYmplY3QmIG9i
amVjdCkgewogICAgICAgICAgICAgcmV0dXJuICZvYmplY3QgPT0gYXhPYmplY3Q7CiAgICAgICAg
IH0pICE9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAwYmRhZjkzNWY0YjExODVh
MzZkM2M4NDVmNzJiZWY0OTFiYmMxNmRhLi5mYWUyZTlmNzRjZjQ5MjYyZmY1MjljYzQ2ZTM0MmY0
NWYzNmU3MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTMzODUsOSArMzM4NSw5IEBAIHZv
aWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2FudmFzQ2hpbGRyZW4oKQogICAgICAg
ICByZXR1cm47CiAKICAgICAvLyBJZiBpdCdzIGEgY2FudmFzLCBpdCB3b24ndCBoYXZlIHJlbmRl
cmVkIGNoaWxkcmVuLCBidXQgaXQgbWlnaHQgaGF2ZSBhY2Nlc3NpYmxlIGZhbGxiYWNrIGNvbnRl
bnQuCi0gICAgLy8gQ2xlYXIgbV9oYXZlQ2hpbGRyZW4gYmVjYXVzZSBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6YWRkQ2hpbGRyZW4gd2lsbCBleHBlY3QgaXQgdG8gYmUgZmFsc2UuCisgICAgLy8g
Q2xlYXIgbV9jaGlsZHJlbkluaXRpYWxpemVkIGJlY2F1c2UgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmFkZENoaWxkcmVuIHdpbGwgZXhwZWN0IGl0IHRvIGJlIGZhbHNlLgogICAgIEFTU0VSVCgh
bV9jaGlsZHJlbi5zaXplKCkpOwotICAgIG1faGF2ZUNoaWxkcmVuID0gZmFsc2U7CisgICAgbV9j
aGlsZHJlbkluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmFkZENoaWxkcmVuKCk7CiB9CiAKQEAgLTM0OTAsNyArMzQ5MCw3IEBAIHZvaWQgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbigpCiAgICAg
ICAgIGlmICghbWVudUl0ZW1Db3VudCkKICAgICAgICAgICAgIG1fcm9sZSA9IEFjY2Vzc2liaWxp
dHlSb2xlOjpHcm91cDsKICAgICB9Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6
OlNWR1Jvb3QgJiYgIWhhc0NoaWxkcmVuKCkpCisgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6OlNWR1Jvb3QgJiYgIWNoaWxkcmVuSW5pdGlhbGl6ZWQoKSkKICAgICAgICAgbV9yb2xl
ID0gQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlOwogfQogICAgIApAQCAtMzQ5OCw5ICszNDk4LDkg
QEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGRDaGlsZHJlbigpCiB7CiAgICAg
Ly8gSWYgdGhlIG5lZWQgdG8gYWRkIG1vcmUgY2hpbGRyZW4gaW4gYWRkaXRpb24gdG8gZXhpc3Rp
bmcgY2hpbGRyZW4gYXJpc2VzLCAKICAgICAvLyBjaGlsZHJlbkNoYW5nZWQgc2hvdWxkIGhhdmUg
YmVlbiBjYWxsZWQsIGxlYXZpbmcgdGhlIG9iamVjdCB3aXRoIG5vIGNoaWxkcmVuLgotICAgIEFT
U0VSVCghbV9oYXZlQ2hpbGRyZW4pOyAKKyAgICBBU1NFUlQoIW1fY2hpbGRyZW5Jbml0aWFsaXpl
ZCk7IAogCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOworICAgIG1fY2hpbGRyZW5Jbml0aWFs
aXplZCA9IHRydWU7CiAgICAgCiAgICAgaWYgKCFjYW5IYXZlQ2hpbGRyZW4oKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMzY4OSw3ICszNjg5LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgcmUKIAog
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhTGlzdGJveFZpc2libGVDaGlsZHJl
bihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdCkgICAgICAKIHsKLSAgICBpZiAo
IWhhc0NoaWxkcmVuKCkpCisgICAgaWYgKCFjaGlsZHJlbkluaXRpYWxpemVkKCkpCiAgICAgICAg
IGFkZENoaWxkcmVuKCk7CiAgICAgCiAgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IGNoaWxk
cmVuKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKaW5kZXggNmJiNDI2YjcxNDE4OWU5OTVlZjYyMTZlY2Mx
ZTEzNDcwZDE2NWQwMy4uNzQ0NTY0OGU0YzZlYzI5YjI4OTE5YWEzZjhlOWYyYjlhN2JkZGM1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U2Nyb2xsVmlldy5jcHAKQEAgLTE4NSw4ICsxODUsOCBAQCBib29sIEFjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAKIHZvaWQg
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmFkZENoaWxkcmVuKCkKIHsKLSAgICBBU1NFUlQoIW1f
aGF2ZUNoaWxkcmVuKTsKLSAgICBtX2hhdmVDaGlsZHJlbiA9IHRydWU7CisgICAgQVNTRVJUKCFt
X2NoaWxkcmVuSW5pdGlhbGl6ZWQpOworICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7
CiAgICAgCiAgICAgYWRkQ2hpbGQod2ViQXJlYU9iamVjdCgpKTsKICAgICB1cGRhdGVTY3JvbGxi
YXJzKCk7ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNsaWRlci5jcHAKaW5kZXggZWUxMThkNTUyNjJmNjIwNGUxY2E1NDI3MzUxMDgyYTdm
ZTk1Mzc4OS4uYzcxMTNkOTIyMmY2NGZkY2RlZWFhNDlmMjQzODMzNDI4MDVmZjUzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIu
Y3BwCkBAIC04Niw5ICs4Niw5IEBAIEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvbiBBY2Nlc3NpYmls
aXR5U2xpZGVyOjpvcmllbnRhdGlvbigpIGNvbnN0CiAgICAgCiB2b2lkIEFjY2Vzc2liaWxpdHlT
bGlkZXI6OmFkZENoaWxkcmVuKCkKIHsKLSAgICBBU1NFUlQoIW1faGF2ZUNoaWxkcmVuKTsgCisg
ICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpOyAKICAgICAKLSAgICBtX2hhdmVDaGls
ZHJlbiA9IHRydWU7CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVkID0gdHJ1ZTsKIAogICAgIEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9yZW5kZXJlci0+ZG9jdW1lbnQoKS5heE9iamVjdENhY2hl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNwaW5CdXR0b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U3BpbkJ1dHRvbi5jcHAKaW5kZXggZjg5MmIyZTlkM2E3MjViMWExZTQyNzIwN2QzN2M1
MzJkYjE1ZGMxMS4uOWM5Y2RjN2VkNjBhZWQzMTllZjc1YWI5OGU1YzE1OTA0YTI0MGZlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1
dHRvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U3BpbkJ1dHRvbi5jcHAKQEAgLTQ1LDkgKzQ1LDkgQEAgQWNjZXNzaWJpbGl0eVNwaW5CdXR0b246
On5BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbigpID0gZGVmYXVsdDsKICAgICAKIEFYQ29yZU9iamVj
dCogQWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmluY3JlbWVudEJ1dHRvbigpCiB7Ci0gICAgaWYg
KCFtX2hhdmVDaGlsZHJlbikKKyAgICBpZiAoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCkKICAgICAg
ICAgYWRkQ2hpbGRyZW4oKTsKLSAgICBpZiAoIW1faGF2ZUNoaWxkcmVuKQorICAgIGlmICghbV9j
aGlsZHJlbkluaXRpYWxpemVkKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEFTU0VS
VChtX2NoaWxkcmVuLnNpemUoKSA9PSAyKTsKQEAgLTU3LDkgKzU3LDkgQEAgQVhDb3JlT2JqZWN0
KiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbjo6aW5jcmVtZW50QnV0dG9uKCkKICAgIAogQVhDb3Jl
T2JqZWN0KiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbjo6ZGVjcmVtZW50QnV0dG9uKCkKIHsKLSAg
ICBpZiAoIW1faGF2ZUNoaWxkcmVuKQorICAgIGlmICghbV9jaGlsZHJlbkluaXRpYWxpemVkKQog
ICAgICAgICBhZGRDaGlsZHJlbigpOwotICAgIGlmICghbV9oYXZlQ2hpbGRyZW4pCisgICAgaWYg
KCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAog
ICAgIEFTU0VSVChtX2NoaWxkcmVuLnNpemUoKSA9PSAyKTsKQEAgLTg2LDcgKzg2LDcgQEAgdm9p
ZCBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbjo6YWRkQ2hpbGRyZW4oKQogICAgIGlmICghY2FjaGUp
CiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBtX2hhdmVDaGlsZHJlbiA9IHRydWU7CisgICAg
bV9jaGlsZHJlbkluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAKICAgICBhdXRvJiBpbmNyZW1lbnRv
ciA9IGRvd25jYXN0PEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydD4oKmNhY2hlLT5jcmVhdGUo
QWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b25QYXJ0KSk7CiAgICAgaW5jcmVtZW50b3Iuc2V0
SXNJbmNyZW1lbnRvcih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAppbmRleCA4MzIwZDc1ZTZlMzk0NjMwNDU2ZWIzMzAz
ZTRlYWE1YmU2MGJmNDllLi4wYmIxZDcwZDMzZTQ1MzViMDkxZWJjMjYwMmMzMjc2YzFhNTdlZDM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGUuY3BwCkBAIC0zODEsOSArMzgxLDkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6OmFk
ZENoaWxkcmVuKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBBU1NFUlQoIW1f
aGF2ZUNoaWxkcmVuKTsgCisgICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpOyAKICAg
ICAKLSAgICBtX2hhdmVDaGlsZHJlbiA9IHRydWU7CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVk
ID0gdHJ1ZTsKICAgICBpZiAoIWlzPFJlbmRlclRhYmxlPihyZW5kZXJlcigpKSkKICAgICAgICAg
cmV0dXJuOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwCmluZGV4IDUwYWRjMjYzZDEyMTEzMmM3ZjQz
NWNhYjNjMmIxZjcyMzgzYjE0NWMuLjkwNDYzZjY4MjQ0NzliM2U1YmYwMTc5ZTI5Y2IzZGU1OTJi
YzBjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlQ29sdW1uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAKQEAgLTE4MSw5ICsxODEsOSBAQCBib29sIEFjY2Vz
c2liaWxpdHlUYWJsZUNvbHVtbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dAogICAgIAogdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46OmFkZENoaWxkcmVuKCkKIHsK
LSAgICBBU1NFUlQoIW1faGF2ZUNoaWxkcmVuKTsgCisgICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5p
dGlhbGl6ZWQpOyAKICAgICAKLSAgICBtX2hhdmVDaGlsZHJlbiA9IHRydWU7CisgICAgbV9jaGls
ZHJlbkluaXRpYWxpemVkID0gdHJ1ZTsKICAgICBpZiAoIWlzPEFjY2Vzc2liaWxpdHlUYWJsZT4o
bV9wYXJlbnQpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFp
bmVyLmNwcAppbmRleCBkNGExMGVkZjdiNDc4M2I3ZTg3OTcyOWRlN2UwNjg4ODBiZjI4ZmE5Li4z
YWRiZmNhYjQxOWJhYzhmNmU1MGVjNTQ5MmMzNTJhM2E2YWI2NGJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGVIZWFkZXJDb250YWluZXIuY3BwCkBAIC02Myw5ICs2Myw5IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eVRhYmxlSGVhZGVyQ29udGFpbmVyOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNv
bnN0CiAKIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjphZGRDaGlsZHJl
bigpCiB7Ci0gICAgQVNTRVJUKCFtX2hhdmVDaGlsZHJlbik7IAorICAgIEFTU0VSVCghbV9jaGls
ZHJlbkluaXRpYWxpemVkKTsgCiAgICAgCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOworICAg
IG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAgICAgaWYgKCFpczxBY2Nlc3NpYmlsaXR5
VGFibGU+KG1fcGFyZW50KSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuY3BwCmluZGV4IDg4MDlmM2U4MzFiNjI5OTY1N2JlNjI1NjNjZTkwMDZjOThmZTNjMzQuLjU2
NmUxMzMyMjMxZjZjZmY0ZmQ4NjBkYjkyNzBiN2QwNGMzODBlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojpp
bml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVPYmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3QK
ICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6TGF5b3V0Q291bnQsIG9iamVjdC5sYXlv
dXRDb3VudCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RXN0aW1hdGVkTG9h
ZGluZ1Byb2dyZXNzLCBvYmplY3QuZXN0aW1hdGVkTG9hZGluZ1Byb2dyZXNzKCkpOwogICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c0FSSUFPd25zLCBvYmplY3Quc3VwcG9y
dHNBUklBT3ducygpKTsKLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGFzQ2hpbGRy
ZW4sIG9iamVjdC5oYXNDaGlsZHJlbigpKTsKKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6Q2hpbGRyZW5Jbml0aWFsaXplZCwgb2JqZWN0LmNoaWxkcmVuSW5pdGlhbGl6ZWQoKSk7CiAg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okhhc1BvcHVwLCBvYmplY3QuaGFzUG9wdXAo
KSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlBvcHVwVmFsdWUsIG9iamVjdC5w
b3B1cFZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlO
YW1lOjpQcmVzc2VkSXNQcmVzZW50LCBvYmplY3QucHJlc3NlZElzUHJlc2VudCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaAppbmRleCAxZjFlM2NiNGYyMTdjM2QxZGFmZTkxNzU0OTdmYzEwZTI4
NDFjODZhLi5kZWU4ZDhkYmNkYTIyMjMyMjU5ZmI2NzJlYTY4YTMyZGNjOWM5ODgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5oCkBAIC02MTAsNyArNjEwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGFkZENoaWxkKEFYQ29yZU9iamVjdCopIG92ZXJyaWRlOwogICAgIHZvaWQgaW5zZXJ0Q2hpbGQo
QVhDb3JlT2JqZWN0KiwgdW5zaWduZWQpIG92ZXJyaWRlOwogICAgIGJvb2wgY2FuSGF2ZUNoaWxk
cmVuKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBoYXNDaGlsZHJlbigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SGFzQ2hpbGRy
ZW4pOyB9CisgICAgYm9vbCBjaGlsZHJlbkluaXRpYWxpemVkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpDaGlsZHJlbkluaXRpYWxp
emVkKTsgfQogICAgIHZvaWQgc2V0TmVlZHNUb1VwZGF0ZUNoaWxkcmVuKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzZXROZWVkc1RvVXBkYXRlU3VidHJlZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xl
YXJDaGlsZHJlbigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggN2FlZTRmODJl
OWExYzY4MmJhM2EzNzFjMzg1ZDVhYzlhMTE0ZDY5ZC4uZmVmZTIzOWRhNmE1YmJlMjAwMTZmN2Mx
YzQyMTgzMGNjMTIwYTY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC04Niw2ICs4Niw3IEBA
IGVudW0gY2xhc3MgQVhQcm9wZXJ0eU5hbWUgOiB1aW50MTZfdCB7CiAgICAgQ2FyZXRCcm93c2lu
Z0VuYWJsZWQsCiAjZW5kaWYKICAgICBDZWxscywKKyAgICBDaGlsZHJlbkluaXRpYWxpemVkLAog
ICAgIENsYXNzTGlzdCwKICAgICBDbGlja1BvaW50LAogICAgIENvbG9yVmFsdWUsCkBAIC0xMTgs
NyArMTE5LDYgQEAgZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsKICAgICBI
YXNBUklBVmFsdWVOb3csCiAgICAgSGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmlidXRlLAogICAg
IEhhc0JvbGRGb250LAotICAgIEhhc0NoaWxkcmVuLAogICAgIEhhc0hpZ2hsaWdodGluZywKICAg
ICBIYXNJdGFsaWNGb250LAogICAgIEhhc1BsYWluVGV4dCwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442120</attachid>
            <date>2021-10-21 22:08:50 -0700</date>
            <delta_ts>2021-10-22 07:41:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232130-20211022000849.patch</filename>
            <type>text/plain</type>
            <size>21093</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFiM2VhZDI1YjQwMmNj
OTc2ZjdmOTIzMDg2NmFiNzA0MDg2Y2M3OS4uMDMwYzRhODZlYjQyMWYzZDBiOTFiYTNiZTNlZGU1
ZTc2YTYyNjM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDIxLTEwLTIxICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFjY2Vzc2liaWxp
dHlPYmplY3Q6Om1faGF2ZUNoaWxkcmVuIGFuZCBBWENvcmVPYmplY3Q6Omhhc0NoaWxkcmVuKCkg
YXJlIG1pc2xlYWRpbmdseSBuYW1lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyMTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIG5hbWVzIG9mIGBBY2Nlc3NpYmlsaXR5T2JqZWN0OjptX2hhdmVD
aGlsZHJlbmAgYW5kIGBBWENvcmVPYmplY3Q6Omhhc0NoaWxkcmVuKClgCisgICAgICAgIGltcGx5
IHRoYXQgdGhlIGdpdmVuIG9iamVjdCBoYXMgb25lIG9yIG1vcmUgY2hpbGRyZW4uIEhvd2V2ZXIs
IHdoYXQgdGhlc2UKKyAgICAgICAgcmVhbGx5IGluZGljYXRlIGlzIHdoZXRoZXIgdGhlIG9iamVj
dCBoYXMgdHJpZWQgdG8gaW5pdGlhbGl6ZSBpdHMgY2hpbGRyZW4uCisgICAgICAgIEJvdGggYG1f
aGF2ZUNoaWxkcmVuYCBhbmQgYGhhc0NoaWxkcmVuKClgIGNhbiBiZSB0cnVlIGZvciBvYmplY3Rz
IHRoYXQgaGF2ZSBubyBjaGlsZHJlbiwKKyAgICAgICAgd2hpY2ggaXMgY29uZnVzaW5nLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggcmVuYW1lcyBgbV9oYXZlQ2hpbGRyZW5gIHRvIGBtX2NoaWxkcmVu
SW5pdGlhbGl6ZWRgIGFuZAorICAgICAgICBgaGFzQ2hpbGRyZW4oKWAgdG8gYGNoaWxkcmVuSW5p
dGlhbGl6ZWQoKWAuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgYEFYUHJvcGVy
dHlOYW1lOjpIYXNDaGlsZHJlbmAgcmF0aGVyIHRoYW4KKyAgICAgICAgcmVuYW1pbmcgaXQgYmVj
YXVzZSBpc29sYXRlZCBvYmplY3QgY2hpbGRyZW4gYXJlIGFsd2F5cyBpbml0aWFsaXplZC4KKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklBR3JpZDo6YWRkQ2hpbGRyZW4pOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3g6OmFkZENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlMaXN0Qm94OjpzZWxlY3RlZENoaWxkcmVuKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0Qm94Ojp2aXNpYmxlQ2hpbGRyZW4pOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmFkZENoaWxkcmVuKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpjaGlsZHJlbkNoYW5nZWQpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFkZENoaWxkcmVuKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6dXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjbGVhckNoaWxkcmVuKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFYQ29yZU9iamVjdDo6aXNEZXNjZW5kYW50T2ZPYmplY3QgY29uc3QpOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGRDYW52YXNDaGlsZHJlbik6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xl
QWZ0ZXJDaGlsZHJlbkNyZWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmFyaWFMaXN0Ym94VmlzaWJsZUNoaWxkcmVuKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjphZGRDaGlsZHJlbik6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlTbGlkZXI6OmFkZENoaWxkcmVuKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlTcGluQnV0dG9uOjppbmNyZW1lbnRCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVNwaW5CdXR0b246OmRlY3JlbWVudEJ1dHRvbik6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbjo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlUYWJsZTo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlUYWJsZUNvbHVtbjo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcjo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAg
ICBTdG9wIHNldHRpbmcgYEFYUHJvcGVydHlOYW1lOjpIYXNDaGlsZHJlbmAgYmVjYXVzZSBpdCBu
byBsb25nZXIgZXhpc3RzLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5oOgorICAgICAgICBEZWxldGUgYEFYUHJvcGVydHlOYW1lOjpI
YXNDaGlsZHJlbmAuCisKIDIwMjEtMTAtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBGb3JtIHN1Ym1pc3Npb24gc2hvdWxkIGJlIGNhbmNlbGxlZCBpZiB0aGUg
Zm9ybSBnZXRzIGRldGFjaGVkIGZyb20gaW5zaWRlIHRoZSBmb3JtZGF0YSBldmVudCBoYW5kbGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlB
UklBR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlB
UklBR3JpZC5jcHAKaW5kZXggODdiM2IxMmNkNzA1YmFmN2ZhOWU2OTE5NmFiMWJmMmFmNzNlNGQ1
MC4uZjhlYzg0NTQ3ZjJiOTkxYzkzYmRkMGMxM2JkYzgyMjAyNzQxNTM2MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNw
cApAQCAtOTQsMTQgKzk0LDE0IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRSb3dE
ZXNjZW5kYW50KEFYQ29yZU9iamVjdCogcm93Q2hpbGQsIEhhc2hTZXQ8QWNjCiAKIHZvaWQgQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZHJlbigpCiB7Ci0gICAgQVNTRVJUKCFtX2hhdmVD
aGlsZHJlbik7IAorICAgIEFTU0VSVCghbV9jaGlsZHJlbkluaXRpYWxpemVkKTsgCiAgICAgCiAg
ICAgaWYgKCFpc0V4cG9zYWJsZSgpKSB7CiAgICAgICAgIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmFkZENoaWxkcmVuKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgbV9o
YXZlQ2hpbGRyZW4gPSB0cnVlOworICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAg
ICAgaWYgKCFtX3JlbmRlcmVyKQogICAgICAgICByZXR1cm47CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwCmluZGV4
IDc5ZjM2MDk1ZTc0MzM5YTJiODU3ZjU0NDQ1YzQxYWEzYzYwMzAyNTkuLjEzZGEyNTJkNWFmN2Rm
NmY0NDkxZWZmNjI1OWIwMjZmZjFhN2UxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwCkBAIC03MSw3ICs3MSw3IEBA
IHZvaWQgQWNjZXNzaWJpbGl0eUxpc3RCb3g6OmFkZENoaWxkcmVuKCkKICAgICBpZiAoIXNlbGVj
dE5vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsKKyAg
ICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwogCiAgICAgZm9yIChjb25zdCBhdXRvJiBs
aXN0SXRlbSA6IGRvd25jYXN0PEhUTUxTZWxlY3RFbGVtZW50Pigqc2VsZWN0Tm9kZSkubGlzdEl0
ZW1zKCkpCiAgICAgICAgIGFkZENoaWxkKGxpc3RCb3hPcHRpb25BY2Nlc3NpYmlsaXR5T2JqZWN0
KGxpc3RJdGVtKSk7CkBAIC0xMDUsOSArMTA1LDkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5TGlzdEJv
eDo6c2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdCkK
IHsKICAgICBBU1NFUlQocmVzdWx0LmlzRW1wdHkoKSk7CiAKLSAgICBpZiAoIWhhc0NoaWxkcmVu
KCkpCisgICAgaWYgKCFjaGlsZHJlbkluaXRpYWxpemVkKCkpCiAgICAgICAgIGFkZENoaWxkcmVu
KCk7Ci0gICAgICAgIAorCiAgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IG1fY2hpbGRyZW4p
IHsKICAgICAgICAgaWYgKGRvd25jYXN0PEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uPigqY2hp
bGQpLmlzU2VsZWN0ZWQoKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hpbGQuZ2V0KCkp
OwpAQCAtMTE4LDcgKzExOCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUxpc3RCb3g6OnZpc2libGVD
aGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdCkKIHsKICAgICBBU1NF
UlQocmVzdWx0LmlzRW1wdHkoKSk7CiAgICAgCi0gICAgaWYgKCFoYXNDaGlsZHJlbigpKQorICAg
IGlmICghY2hpbGRyZW5Jbml0aWFsaXplZCgpKQogICAgICAgICBhZGRDaGlsZHJlbigpOwogICAg
IAogICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1fY2hpbGRyZW4uc2l6ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwCmlu
ZGV4IDhlNjVmOGU1ZTdhODI1ZTM1MWNkZTM5OGMzZmI1YzJkM2FkNWQ2M2QuLjg3MmViODY2ODcx
OTU4ZjdlMWVkYmIwNTdhYzkzYTIyZGRjNTE2ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAKQEAgLTgxLDcgKzgx
LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmFkZENoaWxkcmVuKCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsKKyAgICBtX2NoaWxk
cmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwogICAgIGFkZENoaWxkKGxpc3QpOwogICAgIGxpc3QtPmFk
ZENoaWxkcmVuKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCmluZGV4IDdjNDUxYWY3OTQ3NjFh
ZWFmMzIxYjA3MzQwNzZiZWNhYmYwMjVmMmIuLmE0NTNjNWI0OTkyNjI3NGYwYjA3NTZhMzdkMGIy
ZThmOGQ4MWNmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCkBAIC05NCw3ICs5NCw3IEBAIHZv
aWQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmFkZENoaWxkcmVuKCkKICAgICBpZiAoIXNl
bGVjdE5vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsK
KyAgICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwogCiAgICAgZm9yIChjb25zdCBhdXRv
JiBsaXN0SXRlbSA6IGRvd25jYXN0PEhUTUxTZWxlY3RFbGVtZW50Pigqc2VsZWN0Tm9kZSkubGlz
dEl0ZW1zKCkpCiAgICAgICAgIGFkZENoaWxkKG1lbnVMaXN0T3B0aW9uQWNjZXNzaWJpbGl0eU9i
amVjdChsaXN0SXRlbSkpOwpAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU1l
bnVMaXN0UG9wdXA6OmNoaWxkcmVuQ2hhbmdlZCgpCiAgICAgfQogICAgIAogICAgIG1fY2hpbGRy
ZW4uY2xlYXIoKTsKLSAgICBtX2hhdmVDaGlsZHJlbiA9IGZhbHNlOworICAgIG1fY2hpbGRyZW5J
bml0aWFsaXplZCA9IGZhbHNlOwogICAgIGFkZENoaWxkcmVuKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAKaW5kZXggZTJkMzliMDU4MmUzMGFmYmM1ZmQ0NmFiZmJhMzVjMGFhYWYxNzFhOS4uYTEyM2Y5
YzZiYWQ2NmExNTE4M2IxNjNiZjEyOTAzYWJiNGQ2YWMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAg
LTM0MiwxMiArMzQyLDEyIEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFkZENoaWxk
cmVuKCkKIHsKICAgICAvLyBJZiB0aGUgbmVlZCB0byBhZGQgbW9yZSBjaGlsZHJlbiBpbiBhZGRp
dGlvbiB0byBleGlzdGluZyBjaGlsZHJlbiBhcmlzZXMsIAogICAgIC8vIGNoaWxkcmVuQ2hhbmdl
ZCBzaG91bGQgaGF2ZSBiZWVuIGNhbGxlZCwgbGVhdmluZyB0aGUgb2JqZWN0IHdpdGggbm8gY2hp
bGRyZW4uCi0gICAgQVNTRVJUKCFtX2hhdmVDaGlsZHJlbik7IAorICAgIEFTU0VSVCghbV9jaGls
ZHJlbkluaXRpYWxpemVkKTsgCiAgICAgCiAgICAgaWYgKCFtX25vZGUpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsKKyAgICBtX2NoaWxkcmVuSW5pdGlhbGl6
ZWQgPSB0cnVlOwogCiAgICAgLy8gVGhlIG9ubHkgdGltZSB3ZSBhZGQgY2hpbGRyZW4gZnJvbSB0
aGUgRE9NIHRyZWUgdG8gYSBub2RlIHdpdGggYSByZW5kZXJlciBpcyB3aGVuIGl0J3MgYSBjYW52
YXMuCiAgICAgaWYgKHJlbmRlcmVyKCkgJiYgIW1fbm9kZS0+aGFzVGFnTmFtZShjYW52YXNUYWcp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKaW5kZXggZWFlYzQzMTcxNjgzY2FjZjFmMDE1OGZiYjRlMjQ5MmE5OWM1ZWVhOC4u
YjIyMTdmMGRmYTI4NDBmMzZkZTY5ZGIyZTBlMjI1ODFhMzUwZjUwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0x
Njg0LDcgKzE2ODQsNyBAQCBjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3ImIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNoaQogCiB2b2lkIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OnVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKQogewotICAgIGlmICghaGFz
Q2hpbGRyZW4oKSkgeworICAgIGlmICghY2hpbGRyZW5Jbml0aWFsaXplZCgpKSB7CiAgICAgICAg
IC8vIEVuYWJsZSB0aGUgY2FjaGUgaW4gY2FzZSB3ZSBlbmQgdXAgYWRkaW5nIGEgbG90IG9mIGNo
aWxkcmVuLCB3ZSBkb24ndCB3YW50IHRvIHJlY29tcHV0ZSBheElzSWdub3JlZCBlYWNoIHRpbWUu
CiAgICAgICAgIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyIGVuYWJsZUNhY2hlKGF4T2JqZWN0Q2Fj
aGUoKSk7CiAgICAgICAgIGFkZENoaWxkcmVuKCk7CkBAIC0xNjk4LDcgKzE2OTgsNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNsZWFyQ2hpbGRyZW4oKQogICAgICAgICBjaGlsZC0+ZGV0
YWNoRnJvbVBhcmVudCgpOwogICAgIAogICAgIG1fY2hpbGRyZW4uY2xlYXIoKTsKLSAgICBtX2hh
dmVDaGlsZHJlbiA9IGZhbHNlOworICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IGZhbHNlOwog
fQogCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphbmNob3JFbGVt
ZW50Rm9yTm9kZShOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA3MTMyNDA5YWVlYzNjZTZlZGQzODI5ZTEy
YjZjM2NiNjg5MGI0ZDFjLi4wOWFmOTU1NGZmMDljNDVjNmJmMzBlMmRjNDE1NWRkMDRjNWFiNTFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaApAQCAtNDk1LDcgKzQ5NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGluc2VydENoaWxk
KEFYQ29yZU9iamVjdCosIHVuc2lnbmVkKSBvdmVycmlkZTsKIAogICAgIGJvb2wgY2FuSGF2ZUNo
aWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGJvb2wgaGFzQ2hp
bGRyZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2hhdmVDaGlsZHJlbjsgfQorICAgIGJv
b2wgY2hpbGRyZW5Jbml0aWFsaXplZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2hpbGRy
ZW5Jbml0aWFsaXplZDsgfQogICAgIHZvaWQgdXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSgpIG92
ZXJyaWRlOwogICAgIHZvaWQgc2V0TmVlZHNUb1VwZGF0ZUNoaWxkcmVuKCkgb3ZlcnJpZGUgeyB9
CiAgICAgdm9pZCBzZXROZWVkc1RvVXBkYXRlU3VidHJlZSgpIG92ZXJyaWRlIHsgfQpAQCAtODEx
LDcgKzgxMSw3IEBAIHByaXZhdGU6CiAgICAgQVhJRCBtX2lkIHsgMCB9OwogcHJvdGVjdGVkOiAv
LyBGSVhNRTogTWFrZSB0aGUgZGF0YSBtZW1iZXJzIHByaXZhdGUuCiAgICAgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIG1fY2hpbGRyZW47Ci0gICAgbXV0YWJsZSBib29sIG1faGF2ZUNoaWxk
cmVuIHsgZmFsc2UgfTsKKyAgICBtdXRhYmxlIGJvb2wgbV9jaGlsZHJlbkluaXRpYWxpemVkIHsg
ZmFsc2UgfTsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSBtX3JvbGUgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6VW5rbm93biB9OwogcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9u
IG1fbGFzdEtub3duSXNJZ25vcmVkVmFsdWUgeyBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9u
OjpEZWZhdWx0QmVoYXZpb3IgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggOWZjMWZmNWYz
ZjkxMGEyYmZkNWNiMzA0OWExMTE2NWMyNjQ0ZjE1OC4uNGIxMTU4YWFiZmRhYzU5MGUzYmExMTJl
OWFhNTRhNmI3MDkwYWNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTEyNDQsNyArMTI0
NCw3IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8QVhJRD4gY2hpbGRyZW5JRHMoKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29s
IGhhc0NoaWxkcmVuKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjaGlsZHJlbkluaXRp
YWxpemVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDaGlsZHJlbklmTmVj
ZXNzYXJ5KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RvVXBkYXRlQ2hpbGRyZW4o
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzVG9VcGRhdGVTdWJ0cmVlKCkgPSAwOwpA
QCAtMTYyMCw3ICsxNjIwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5s
aW5lIFQgcmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWEKIAogaW5saW5lIGJv
b2wgQVhDb3JlT2JqZWN0Ojppc0Rlc2NlbmRhbnRPZk9iamVjdChjb25zdCBBWENvcmVPYmplY3Qq
IGF4T2JqZWN0KSBjb25zdAogewotICAgIHJldHVybiBheE9iamVjdCAmJiBheE9iamVjdC0+aGFz
Q2hpbGRyZW4oKQorICAgIHJldHVybiBheE9iamVjdCAmJiBheE9iamVjdC0+Y2hpbGRyZW5Jbml0
aWFsaXplZCgpCiAgICAgICAgICYmIEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNlc3RvcjxBWENvcmVP
YmplY3Q+KCp0aGlzLCBmYWxzZSwgW2F4T2JqZWN0XSAoY29uc3QgQVhDb3JlT2JqZWN0JiBvYmpl
Y3QpIHsKICAgICAgICAgICAgIHJldHVybiAmb2JqZWN0ID09IGF4T2JqZWN0OwogICAgICAgICB9
KSAhPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMGJkYWY5MzVmNGIxMTg1YTM2
ZDNjODQ1ZjcyYmVmNDkxYmJjMTZkYS4uZmFlMmU5Zjc0Y2Y0OTI2MmZmNTI5Y2M0NmUzNDJmNDVm
MzZlNzE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0zMzg1LDkgKzMzODUsOSBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENhbnZhc0NoaWxkcmVuKCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gSWYgaXQncyBhIGNhbnZhcywgaXQgd29uJ3QgaGF2ZSByZW5kZXJl
ZCBjaGlsZHJlbiwgYnV0IGl0IG1pZ2h0IGhhdmUgYWNjZXNzaWJsZSBmYWxsYmFjayBjb250ZW50
LgotICAgIC8vIENsZWFyIG1faGF2ZUNoaWxkcmVuIGJlY2F1c2UgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmFkZENoaWxkcmVuIHdpbGwgZXhwZWN0IGl0IHRvIGJlIGZhbHNlLgorICAgIC8vIENs
ZWFyIG1fY2hpbGRyZW5Jbml0aWFsaXplZCBiZWNhdXNlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjphZGRDaGlsZHJlbiB3aWxsIGV4cGVjdCBpdCB0byBiZSBmYWxzZS4KICAgICBBU1NFUlQoIW1f
Y2hpbGRyZW4uc2l6ZSgpKTsKLSAgICBtX2hhdmVDaGlsZHJlbiA9IGZhbHNlOworICAgIG1fY2hp
bGRyZW5Jbml0aWFsaXplZCA9IGZhbHNlOwogICAgIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojph
ZGRDaGlsZHJlbigpOwogfQogCkBAIC0zNDkwLDcgKzM0OTAsNyBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OnVwZGF0ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24oKQogICAgICAg
ICBpZiAoIW1lbnVJdGVtQ291bnQpCiAgICAgICAgICAgICBtX3JvbGUgPSBBY2Nlc3NpYmlsaXR5
Um9sZTo6R3JvdXA7CiAgICAgfQotICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpT
VkdSb290ICYmICFoYXNDaGlsZHJlbigpKQorICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlS
b2xlOjpTVkdSb290ICYmICFjaGlsZHJlbkluaXRpYWxpemVkKCkpCiAgICAgICAgIG1fcm9sZSA9
IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZTsKIH0KICAgICAKQEAgLTM0OTgsOSArMzQ5OCw5IEBA
IHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4oKQogewogICAgIC8v
IElmIHRoZSBuZWVkIHRvIGFkZCBtb3JlIGNoaWxkcmVuIGluIGFkZGl0aW9uIHRvIGV4aXN0aW5n
IGNoaWxkcmVuIGFyaXNlcywgCiAgICAgLy8gY2hpbGRyZW5DaGFuZ2VkIHNob3VsZCBoYXZlIGJl
ZW4gY2FsbGVkLCBsZWF2aW5nIHRoZSBvYmplY3Qgd2l0aCBubyBjaGlsZHJlbi4KLSAgICBBU1NF
UlQoIW1faGF2ZUNoaWxkcmVuKTsgCisgICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQp
OyAKIAotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsKKyAgICBtX2NoaWxkcmVuSW5pdGlhbGl6
ZWQgPSB0cnVlOwogICAgIAogICAgIGlmICghY2FuSGF2ZUNoaWxkcmVuKCkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTM2ODksNyArMzY4OSw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlCiAKIHZv
aWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUxpc3Rib3hWaXNpYmxlQ2hpbGRyZW4o
QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1bHQpICAgICAgCiB7Ci0gICAgaWYgKCFo
YXNDaGlsZHJlbigpKQorICAgIGlmICghY2hpbGRyZW5Jbml0aWFsaXplZCgpKQogICAgICAgICBh
ZGRDaGlsZHJlbigpOwogICAgIAogICAgIGZvciAoY29uc3QgYXV0byYgY2hpbGQgOiBjaGlsZHJl
bigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXcuY3BwCmluZGV4IDZiYjQyNmI3MTQxODllOTk1ZWY2MjE2ZWNjMWUx
MzQ3MGQxNjVkMDMuLjc0NDU2NDhlNGM2ZWMyOWIyODkxOWFhM2Y4ZTlmMmI5YTdiZGRjNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXcuY3BwCkBAIC0xODUsOCArMTg1LDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldzo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogCiB2b2lkIEFj
Y2Vzc2liaWxpdHlTY3JvbGxWaWV3OjphZGRDaGlsZHJlbigpCiB7Ci0gICAgQVNTRVJUKCFtX2hh
dmVDaGlsZHJlbik7Ci0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOworICAgIEFTU0VSVCghbV9j
aGlsZHJlbkluaXRpYWxpemVkKTsKKyAgICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwog
ICAgIAogICAgIGFkZENoaWxkKHdlYkFyZWFPYmplY3QoKSk7CiAgICAgdXBkYXRlU2Nyb2xsYmFy
cygpOyAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTbGlkZXIuY3BwCmluZGV4IGVlMTE4ZDU1MjYyZjYyMDRlMWNhNTQyNzM1MTA4MmE3ZmU5
NTM3ODkuLmM3MTEzZDkyMjJmNjRmZGNkZWVhYTQ5ZjI0MzgzMzQyODA1ZmY1MzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNw
cApAQCAtODYsOSArODYsOSBAQCBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb24gQWNjZXNzaWJpbGl0
eVNsaWRlcjo6b3JpZW50YXRpb24oKSBjb25zdAogICAgIAogdm9pZCBBY2Nlc3NpYmlsaXR5U2xp
ZGVyOjphZGRDaGlsZHJlbigpCiB7Ci0gICAgQVNTRVJUKCFtX2hhdmVDaGlsZHJlbik7IAorICAg
IEFTU0VSVCghbV9jaGlsZHJlbkluaXRpYWxpemVkKTsgCiAgICAgCi0gICAgbV9oYXZlQ2hpbGRy
ZW4gPSB0cnVlOworICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAKICAgICBBWE9i
amVjdENhY2hlKiBjYWNoZSA9IG1fcmVuZGVyZXItPmRvY3VtZW50KCkuYXhPYmplY3RDYWNoZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTcGluQnV0dG9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNwaW5CdXR0b24uY3BwCmluZGV4IGY4OTJiMmU5ZDNhNzI1YjFhMWU0MjcyMDdkMzdjNTMy
ZGIxNWRjMTEuLjljOWNkYzdlZDYwYWVkMzE5ZWY3NWFiOThlNWMxNTkwNGEyNDBmZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNwaW5CdXR0
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNw
aW5CdXR0b24uY3BwCkBAIC00NSw5ICs0NSw5IEBAIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uOjp+
QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24oKSA9IGRlZmF1bHQ7CiAgICAgCiBBWENvcmVPYmplY3Qq
IEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uOjppbmNyZW1lbnRCdXR0b24oKQogewotICAgIGlmICgh
bV9oYXZlQ2hpbGRyZW4pCisgICAgaWYgKCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpCiAgICAgICAg
IGFkZENoaWxkcmVuKCk7Ci0gICAgaWYgKCFtX2hhdmVDaGlsZHJlbikKKyAgICBpZiAoIW1fY2hp
bGRyZW5Jbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBBU1NFUlQo
bV9jaGlsZHJlbi5zaXplKCkgPT0gMik7CkBAIC01Nyw5ICs1Nyw5IEBAIEFYQ29yZU9iamVjdCog
QWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmluY3JlbWVudEJ1dHRvbigpCiAgICAKIEFYQ29yZU9i
amVjdCogQWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmRlY3JlbWVudEJ1dHRvbigpCiB7Ci0gICAg
aWYgKCFtX2hhdmVDaGlsZHJlbikKKyAgICBpZiAoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCkKICAg
ICAgICAgYWRkQ2hpbGRyZW4oKTsKLSAgICBpZiAoIW1faGF2ZUNoaWxkcmVuKQorICAgIGlmICgh
bV9jaGlsZHJlbkluaXRpYWxpemVkKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAg
ICBBU1NFUlQobV9jaGlsZHJlbi5zaXplKCkgPT0gMik7CkBAIC04Niw3ICs4Niw3IEBAIHZvaWQg
QWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmFkZENoaWxkcmVuKCkKICAgICBpZiAoIWNhY2hlKQog
ICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOworICAgIG1f
Y2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAgICAgCiAgICAgYXV0byYgaW5jcmVtZW50b3Ig
PSBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQ+KCpjYWNoZS0+Y3JlYXRlKEFj
Y2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uUGFydCkpOwogICAgIGluY3JlbWVudG9yLnNldElz
SW5jcmVtZW50b3IodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAKaW5kZXggODMyMGQ3NWU2ZTM5NDYzMDQ1NmViMzMwM2U0
ZWFhNWJlNjBiZjQ5ZS4uMGJiMWQ3MGQzM2U0NTM1YjA5MWViYzI2MDJjMzI3NmMxYTU3ZWQzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlLmNwcApAQCAtMzgxLDkgKzM4MSw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjphZGRD
aGlsZHJlbigpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgQVNTRVJUKCFtX2hh
dmVDaGlsZHJlbik7IAorICAgIEFTU0VSVCghbV9jaGlsZHJlbkluaXRpYWxpemVkKTsgCiAgICAg
Ci0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOworICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9
IHRydWU7CiAgICAgaWYgKCFpczxSZW5kZXJUYWJsZT4ocmVuZGVyZXIoKSkpCiAgICAgICAgIHJl
dHVybjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcAppbmRleCA1MGFkYzI2M2QxMjExMzJjN2Y0MzVj
YWIzYzJiMWY3MjM4M2IxNDVjLi45MDQ2M2Y2ODI0NDc5YjNlNWJmMDE3OWUyOWNiM2RlNTkyYmMw
Y2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZUNvbHVtbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwCkBAIC0xODEsOSArMTgxLDkgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5VGFibGVDb2x1bW46OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QK
ICAgICAKIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uOjphZGRDaGlsZHJlbigpCiB7Ci0g
ICAgQVNTRVJUKCFtX2hhdmVDaGlsZHJlbik7IAorICAgIEFTU0VSVCghbV9jaGlsZHJlbkluaXRp
YWxpemVkKTsgCiAgICAgCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOworICAgIG1fY2hpbGRy
ZW5Jbml0aWFsaXplZCA9IHRydWU7CiAgICAgaWYgKCFpczxBY2Nlc3NpYmlsaXR5VGFibGU+KG1f
cGFyZW50KSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5l
ci5jcHAKaW5kZXggZDRhMTBlZGY3YjQ3ODNiN2U4Nzk3MjlkZTdlMDY4ODgwYmYyOGZhOS4uM2Fk
YmZjYWI0MTliYWM4ZjZlNTBlYzU0OTJjMzUyYTNhNmFiNjRiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
SGVhZGVyQ29udGFpbmVyLmNwcApAQCAtNjMsOSArNjMsOSBAQCBib29sIEFjY2Vzc2liaWxpdHlU
YWJsZUhlYWRlckNvbnRhaW5lcjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dAogCiB2b2lkIEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcjo6YWRkQ2hpbGRyZW4o
KQogewotICAgIEFTU0VSVCghbV9oYXZlQ2hpbGRyZW4pOyAKKyAgICBBU1NFUlQoIW1fY2hpbGRy
ZW5Jbml0aWFsaXplZCk7IAogICAgIAotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsKKyAgICBt
X2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwogICAgIGlmICghaXM8QWNjZXNzaWJpbGl0eVRh
YmxlPihtX3BhcmVudCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmNwcAppbmRleCA4ODA5ZjNlODMxYjYyOTk2NTdiZTYyNTYzY2U5MDA2Yzk4ZmUzYzM0Li4zMjA3
ZmZjNTZjNWU5ZGM2Mjk3OTdmYWJhODI4Y2IwMzI0ODI0MjRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0LmNwcApAQCAtMTYzLDcgKzE2Myw2IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290CiAg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkxheW91dENvdW50LCBvYmplY3QubGF5b3V0
Q291bnQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkVzdGltYXRlZExvYWRp
bmdQcm9ncmVzcywgb2JqZWN0LmVzdGltYXRlZExvYWRpbmdQcm9ncmVzcygpKTsKICAgICBzZXRQ
cm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNBUklBT3ducywgb2JqZWN0LnN1cHBvcnRz
QVJJQU93bnMoKSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okhhc0NoaWxkcmVu
LCBvYmplY3QuaGFzQ2hpbGRyZW4oKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
Okhhc1BvcHVwLCBvYmplY3QuaGFzUG9wdXAoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OlBvcHVwVmFsdWUsIG9iamVjdC5wb3B1cFZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwog
ICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpQcmVzc2VkSXNQcmVzZW50LCBvYmplY3Qu
cHJlc3NlZElzUHJlc2VudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAppbmRleCAxZjFlM2Ni
NGYyMTdjM2QxZGFmZTkxNzU0OTdmYzEwZTI4NDFjODZhLi4yYjQzYjlkZDc3YzVlOGM5ZDM1YzE1
MGQwNGIzZWIyMzA3MDY3YWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCkBAIC02MTAsNyAr
NjEwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZENoaWxkKEFYQ29yZU9iamVjdCopIG92ZXJy
aWRlOwogICAgIHZvaWQgaW5zZXJ0Q2hpbGQoQVhDb3JlT2JqZWN0KiwgdW5zaWduZWQpIG92ZXJy
aWRlOwogICAgIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9v
bCBoYXNDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1
ZShBWFByb3BlcnR5TmFtZTo6SGFzQ2hpbGRyZW4pOyB9CisgICAgYm9vbCBjaGlsZHJlbkluaXRp
YWxpemVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgc2V0TmVl
ZHNUb1VwZGF0ZUNoaWxkcmVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXROZWVkc1RvVXBkYXRl
U3VidHJlZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJDaGlsZHJlbigpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggN2FlZTRmODJlOWExYzY4MmJhM2EzNzFjMzg1ZDVhYzlh
MTE0ZDY5ZC4uNzkxZmFmNTMyMzAzMGQ2MDRiMDRiMjc3ZWVlYjBlNTMxNTg4ZjU3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5oCkBAIC0xMTgsNyArMTE4LDYgQEAgZW51bSBjbGFzcyBBWFByb3BlcnR5
TmFtZSA6IHVpbnQxNl90IHsKICAgICBIYXNBUklBVmFsdWVOb3csCiAgICAgSGFzQXBwbGVQREZB
bm5vdGF0aW9uQXR0cmlidXRlLAogICAgIEhhc0JvbGRGb250LAotICAgIEhhc0NoaWxkcmVuLAog
ICAgIEhhc0hpZ2hsaWdodGluZywKICAgICBIYXNJdGFsaWNGb250LAogICAgIEhhc1BsYWluVGV4
dCwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442164</attachid>
            <date>2021-10-22 07:41:36 -0700</date>
            <delta_ts>2021-10-24 11:50:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232130-20211022094135.patch</filename>
            <type>text/plain</type>
            <size>21328</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFiM2VhZDI1YjQwMmNj
OTc2ZjdmOTIzMDg2NmFiNzA0MDg2Y2M3OS4uNzk1ZDA0YzAwYzNiMDAwN2ZhOGI4Mzk2ZTMwYTQ3
ODMyOTkwNzU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIxLTEwLTIxICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFjY2Vzc2liaWxp
dHlPYmplY3Q6Om1faGF2ZUNoaWxkcmVuIGFuZCBBWENvcmVPYmplY3Q6Omhhc0NoaWxkcmVuKCkg
YXJlIG1pc2xlYWRpbmdseSBuYW1lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyMTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIG5hbWVzIG9mIGBBY2Nlc3NpYmlsaXR5T2JqZWN0OjptX2hhdmVD
aGlsZHJlbmAgYW5kIGBBWENvcmVPYmplY3Q6Omhhc0NoaWxkcmVuKClgCisgICAgICAgIGltcGx5
IHRoYXQgdGhlIGdpdmVuIG9iamVjdCBoYXMgb25lIG9yIG1vcmUgY2hpbGRyZW4uIEhvd2V2ZXIs
IHdoYXQgdGhlc2UKKyAgICAgICAgcmVhbGx5IGluZGljYXRlIGlzIHdoZXRoZXIgdGhlIG9iamVj
dCBoYXMgdHJpZWQgdG8gaW5pdGlhbGl6ZSBpdHMgY2hpbGRyZW4uCisgICAgICAgIEJvdGggYG1f
aGF2ZUNoaWxkcmVuYCBhbmQgYGhhc0NoaWxkcmVuKClgIGNhbiBiZSB0cnVlIGZvciBvYmplY3Rz
IHRoYXQgaGF2ZSBubyBjaGlsZHJlbiwKKyAgICAgICAgd2hpY2ggaXMgY29uZnVzaW5nLgorCisg
ICAgICAgIFRoaXMgcGF0Y2g6CisKKyAgICAgICAgICAtIFJlbmFtZXMgYG1faGF2ZUNoaWxkcmVu
YCB0byBgbV9jaGlsZHJlbkluaXRpYWxpemVkYCBhbmQKKyAgICAgICAgICAgIGBoYXNDaGlsZHJl
bigpYCB0byBgY2hpbGRyZW5Jbml0aWFsaXplZCgpYC4KKworICAgICAgICAgIC0gUmVtb3ZlcyBg
QVhQcm9wZXJ0eU5hbWU6Okhhc0NoaWxkcmVuYCByYXRoZXIgdGhhbgorICAgICAgICAgICAgcmVu
YW1pbmcgaXQgYmVjYXVzZSBpc29sYXRlZCBvYmplY3QgY2hpbGRyZW4gYXJlIGFsd2F5cyBpbml0
aWFsaXplZC4KKworICAgICAgICAgIC0gRml4ZXMgYSBidWcgaW4gYEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnVwZGF0ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb25gCisgICAgICAgICAgICBj
YXVzZWQgYnkgdGhlIHBvb3IgbmFtZXMgKHdlIGludGVuZGVkIHRvIGNoYW5nZSB0aGUgcm9sZSBp
ZiB0aGVyZQorICAgICAgICAgICAgd2VyZSBubyBjaGlsZHJlbiwgbm90IGlmIGAhaGFzQ2hpbGRy
ZW4oKWApLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZHJl
bik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJveDo6YWRkQ2hpbGRyZW4pOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3g6OnNlbGVjdGVkQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3g6OnZpc2libGVDaGlsZHJlbik6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjphZGRDaGlsZHJlbik6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6YWRkQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmNoaWxkcmVuQ2hh
bmdlZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWRkQ2hpbGRy
ZW4pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp1cGRhdGVDaGlsZHJlbklmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNsZWFyQ2hp
bGRyZW4pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QVhDb3JlT2JqZWN0Ojppc0Rlc2NlbmRhbnRPZk9iamVjdCBjb25z
dCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENhbnZh
c0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnVwZGF0ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUxpc3Rib3hWaXNpYmxlQ2hpbGRyZW4pOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmFkZENoaWxkcmVuKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNsaWRlcjo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmluY3JlbWVudEJ1dHRvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbjo6ZGVjcmVtZW50QnV0dG9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTcGluQnV0dG9uOjphZGRDaGlsZHJlbik6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uOjphZGRDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjphZGRDaGlsZHJlbik6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5j
cHA6CisgICAgICAgIFN0b3Agc2V0dGluZyBgQVhQcm9wZXJ0eU5hbWU6Okhhc0NoaWxkcmVuYCBi
ZWNhdXNlIGl0IG5vIGxvbmdlciBleGlzdHMuCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVk
T2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6CisgICAgICAgIERlbGV0ZSBgQVhQcm9w
ZXJ0eU5hbWU6Okhhc0NoaWxkcmVuYC4KKwogMjAyMS0xMC0yMSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEZvcm0gc3VibWlzc2lvbiBzaG91bGQgYmUgY2FuY2Vs
bGVkIGlmIHRoZSBmb3JtIGdldHMgZGV0YWNoZWQgZnJvbSBpbnNpZGUgdGhlIGZvcm1kYXRhIGV2
ZW50IGhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkLmNwcAppbmRleCA4N2IzYjEyY2Q3MDViYWY3ZmE5ZTY5MTk2YWIx
YmYyYWY3M2U0ZDUwLi5mOGVjODQ1NDdmMmI5OTFjOTNiZGQwYzEzYmRjODIyMDI3NDE1MzYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklB
R3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
QVJJQUdyaWQuY3BwCkBAIC05NCwxNCArOTQsMTQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5QVJJQUdy
aWQ6OmFkZFJvd0Rlc2NlbmRhbnQoQVhDb3JlT2JqZWN0KiByb3dDaGlsZCwgSGFzaFNldDxBY2MK
IAogdm9pZCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKCkKIHsKLSAgICBBU1NF
UlQoIW1faGF2ZUNoaWxkcmVuKTsgCisgICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQp
OyAKICAgICAKICAgICBpZiAoIWlzRXhwb3NhYmxlKCkpIHsKICAgICAgICAgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAKLSAgICBtX2hhdmVDaGlsZHJlbiA9IHRydWU7CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVk
ID0gdHJ1ZTsKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJv
eC5jcHAKaW5kZXggNzlmMzYwOTVlNzQzMzlhMmI4NTdmNTQ0NDVjNDFhYTNjNjAzMDI1OS4uMTNk
YTI1MmQ1YWY3ZGY2ZjQ0OTFlZmY2MjU5YjAyNmZmMWE3ZTFlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKQEAgLTcx
LDcgKzcxLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6YWRkQ2hpbGRyZW4oKQogICAg
IGlmICghc2VsZWN0Tm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9oYXZlQ2hpbGRyZW4g
PSB0cnVlOworICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAKICAgICBmb3IgKGNv
bnN0IGF1dG8mIGxpc3RJdGVtIDogZG93bmNhc3Q8SFRNTFNlbGVjdEVsZW1lbnQ+KCpzZWxlY3RO
b2RlKS5saXN0SXRlbXMoKSkKICAgICAgICAgYWRkQ2hpbGQobGlzdEJveE9wdGlvbkFjY2Vzc2li
aWxpdHlPYmplY3QobGlzdEl0ZW0pKTsKQEAgLTEwNSw5ICsxMDUsOSBAQCB2b2lkIEFjY2Vzc2li
aWxpdHlMaXN0Qm94OjpzZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciYgcmVzdWx0KQogewogICAgIEFTU0VSVChyZXN1bHQuaXNFbXB0eSgpKTsKIAotICAgIGlmICgh
aGFzQ2hpbGRyZW4oKSkKKyAgICBpZiAoIWNoaWxkcmVuSW5pdGlhbGl6ZWQoKSkKICAgICAgICAg
YWRkQ2hpbGRyZW4oKTsKLSAgICAgICAgCisKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxkIDog
bV9jaGlsZHJlbikgewogICAgICAgICBpZiAoZG93bmNhc3Q8QWNjZXNzaWJpbGl0eUxpc3RCb3hP
cHRpb24+KCpjaGlsZCkuaXNTZWxlY3RlZCgpKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChj
aGlsZC5nZXQoKSk7CkBAIC0xMTgsNyArMTE4LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5TGlzdEJv
eDo6dmlzaWJsZUNoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0KQog
ewogICAgIEFTU0VSVChyZXN1bHQuaXNFbXB0eSgpKTsKICAgICAKLSAgICBpZiAoIWhhc0NoaWxk
cmVuKCkpCisgICAgaWYgKCFjaGlsZHJlbkluaXRpYWxpemVkKCkpCiAgICAgICAgIGFkZENoaWxk
cmVuKCk7CiAgICAgCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gbV9jaGlsZHJlbi5zaXplKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51
TGlzdC5jcHAKaW5kZXggOGU2NWY4ZTVlN2E4MjVlMzUxY2RlMzk4YzNmYjVjMmQzYWQ1ZDYzZC4u
ODcyZWI4NjY4NzE5NThmN2UxZWRiYjA1N2FjOTNhMjJkZGM1MTZlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcApA
QCAtODEsNyArODEsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlNZW51TGlzdDo6YWRkQ2hpbGRyZW4o
KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOwor
ICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAgICAgYWRkQ2hpbGQobGlzdCk7CiAg
ICAgbGlzdC0+YWRkQ2hpbGRyZW4oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKaW5kZXggN2M0
NTFhZjc5NDc2MWFlYWYzMjFiMDczNDA3NmJlY2FiZjAyNWYyYi4uYTQ1M2M1YjQ5OTI2Mjc0ZjBi
MDc1NmEzN2QwYjJlOGY4ZDgxY2ZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKQEAgLTk0LDcg
Kzk0LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6YWRkQ2hpbGRyZW4oKQog
ICAgIGlmICghc2VsZWN0Tm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9oYXZlQ2hpbGRy
ZW4gPSB0cnVlOworICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAKICAgICBmb3Ig
KGNvbnN0IGF1dG8mIGxpc3RJdGVtIDogZG93bmNhc3Q8SFRNTFNlbGVjdEVsZW1lbnQ+KCpzZWxl
Y3ROb2RlKS5saXN0SXRlbXMoKSkKICAgICAgICAgYWRkQ2hpbGQobWVudUxpc3RPcHRpb25BY2Nl
c3NpYmlsaXR5T2JqZWN0KGxpc3RJdGVtKSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBBY2Nl
c3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y2hpbGRyZW5DaGFuZ2VkKCkKICAgICB9CiAgICAgCiAg
ICAgbV9jaGlsZHJlbi5jbGVhcigpOwotICAgIG1faGF2ZUNoaWxkcmVuID0gZmFsc2U7CisgICAg
bV9jaGlsZHJlbkluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgYWRkQ2hpbGRyZW4oKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcAppbmRleCBlMmQzOWIwNTgyZTMwYWZiYzVmZDQ2YWJmYmEzNWMwYWFhZjE3
MWE5Li5hMTIzZjljNmJhZDY2YTE1MTgzYjE2M2JmMTI5MDNhYmI0ZDZhYzI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcApAQCAtMzQyLDEyICszNDIsMTIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6YWRkQ2hpbGRyZW4oKQogewogICAgIC8vIElmIHRoZSBuZWVkIHRvIGFkZCBtb3JlIGNoaWxk
cmVuIGluIGFkZGl0aW9uIHRvIGV4aXN0aW5nIGNoaWxkcmVuIGFyaXNlcywgCiAgICAgLy8gY2hp
bGRyZW5DaGFuZ2VkIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkLCBsZWF2aW5nIHRoZSBvYmplY3Qg
d2l0aCBubyBjaGlsZHJlbi4KLSAgICBBU1NFUlQoIW1faGF2ZUNoaWxkcmVuKTsgCisgICAgQVNT
RVJUKCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpOyAKICAgICAKICAgICBpZiAoIW1fbm9kZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOworICAgIG1fY2hpbGRy
ZW5Jbml0aWFsaXplZCA9IHRydWU7CiAKICAgICAvLyBUaGUgb25seSB0aW1lIHdlIGFkZCBjaGls
ZHJlbiBmcm9tIHRoZSBET00gdHJlZSB0byBhIG5vZGUgd2l0aCBhIHJlbmRlcmVyIGlzIHdoZW4g
aXQncyBhIGNhbnZhcy4KICAgICBpZiAocmVuZGVyZXIoKSAmJiAhbV9ub2RlLT5oYXNUYWdOYW1l
KGNhbnZhc1RhZykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBlYWVjNDMxNzE2ODNjYWNmMWYwMTU4ZmJiNGUyNDky
YTk5YzVlZWE4Li5iMjIxN2YwZGZhMjg0MGYzNmRlNjlkYjJlMGUyMjU4MWEzNTBmNTBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAKQEAgLTE2ODQsNyArMTY4NCw3IEBAIGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2hpCiAKIHZv
aWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6dXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSgpCiB7Ci0g
ICAgaWYgKCFoYXNDaGlsZHJlbigpKSB7CisgICAgaWYgKCFjaGlsZHJlbkluaXRpYWxpemVkKCkp
IHsKICAgICAgICAgLy8gRW5hYmxlIHRoZSBjYWNoZSBpbiBjYXNlIHdlIGVuZCB1cCBhZGRpbmcg
YSBsb3Qgb2YgY2hpbGRyZW4sIHdlIGRvbid0IHdhbnQgdG8gcmVjb21wdXRlIGF4SXNJZ25vcmVk
IGVhY2ggdGltZS4KICAgICAgICAgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIgZW5hYmxlQ2FjaGUo
YXhPYmplY3RDYWNoZSgpKTsKICAgICAgICAgYWRkQ2hpbGRyZW4oKTsKQEAgLTE2OTgsNyArMTY5
OCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2xlYXJDaGlsZHJlbigpCiAgICAgICAg
IGNoaWxkLT5kZXRhY2hGcm9tUGFyZW50KCk7CiAgICAgCiAgICAgbV9jaGlsZHJlbi5jbGVhcigp
OwotICAgIG1faGF2ZUNoaWxkcmVuID0gZmFsc2U7CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVk
ID0gZmFsc2U7CiB9CiAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OmFuY2hvckVsZW1lbnRGb3JOb2RlKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDcxMzI0MDlhZWVjM2Nl
NmVkZDM4MjllMTJiNmMzY2I2ODkwYjRkMWMuLjA5YWY5NTU0ZmYwOWM0NWM2YmYzMGUyZGM0MTU1
ZGQwNGM1YWI1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00OTUsNyArNDk1LDcgQEAgcHVibGljOgogICAgIHZvaWQg
aW5zZXJ0Q2hpbGQoQVhDb3JlT2JqZWN0KiwgdW5zaWduZWQpIG92ZXJyaWRlOwogCiAgICAgYm9v
bCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAg
Ym9vbCBoYXNDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faGF2ZUNoaWxkcmVu
OyB9CisgICAgYm9vbCBjaGlsZHJlbkluaXRpYWxpemVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9jaGlsZHJlbkluaXRpYWxpemVkOyB9CiAgICAgdm9pZCB1cGRhdGVDaGlsZHJlbklmTmVj
ZXNzYXJ5KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXROZWVkc1RvVXBkYXRlQ2hpbGRyZW4oKSBv
dmVycmlkZSB7IH0KICAgICB2b2lkIHNldE5lZWRzVG9VcGRhdGVTdWJ0cmVlKCkgb3ZlcnJpZGUg
eyB9CkBAIC04MTEsNyArODExLDcgQEAgcHJpdmF0ZToKICAgICBBWElEIG1faWQgeyAwIH07CiBw
cm90ZWN0ZWQ6IC8vIEZJWE1FOiBNYWtlIHRoZSBkYXRhIG1lbWJlcnMgcHJpdmF0ZS4KICAgICBB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgbV9jaGlsZHJlbjsKLSAgICBtdXRhYmxlIGJvb2wg
bV9oYXZlQ2hpbGRyZW4geyBmYWxzZSB9OworICAgIG11dGFibGUgYm9vbCBtX2NoaWxkcmVuSW5p
dGlhbGl6ZWQgeyBmYWxzZSB9OwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIG1fcm9sZSB7IEFjY2Vz
c2liaWxpdHlSb2xlOjpVbmtub3duIH07CiBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3RJbmNsdXNpb24gbV9sYXN0S25vd25Jc0lnbm9yZWRWYWx1ZSB7IEFjY2Vzc2liaWxpdHlPYmpl
Y3RJbmNsdXNpb246OkRlZmF1bHRCZWhhdmlvciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRl
eCA5ZmMxZmY1ZjNmOTEwYTJiZmQ1Y2IzMDQ5YTExMTY1YzI2NDRmMTU4Li40YjExNThhYWJmZGFj
NTkwZTNiYTExMmU5YWE1NGE2YjcwOTBhY2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAt
MTI0NCw3ICsxMjQ0LDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxBWElEPiBjaGlsZHJlbklEcygp
OwogCiAgICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0ID0gMDsKLSAgICB2
aXJ0dWFsIGJvb2wgaGFzQ2hpbGRyZW4oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGNo
aWxkcmVuSW5pdGlhbGl6ZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNo
aWxkcmVuSWZOZWNlc3NhcnkoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzVG9VcGRh
dGVDaGlsZHJlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNUb1VwZGF0ZVN1YnRy
ZWUoKSA9IDA7CkBAIC0xNjIwLDcgKzE2MjAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVPiBpbmxpbmUgVCByZXRyaWV2ZUF1dG9yZWxlYXNlZFZhbHVlRnJvbU1haW5UaHJlYQog
CiBpbmxpbmUgYm9vbCBBWENvcmVPYmplY3Q6OmlzRGVzY2VuZGFudE9mT2JqZWN0KGNvbnN0IEFY
Q29yZU9iamVjdCogYXhPYmplY3QpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGF4T2JqZWN0ICYmIGF4
T2JqZWN0LT5oYXNDaGlsZHJlbigpCisgICAgcmV0dXJuIGF4T2JqZWN0ICYmIGF4T2JqZWN0LT5j
aGlsZHJlbkluaXRpYWxpemVkKCkKICAgICAgICAgJiYgQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2Vz
dG9yPEFYQ29yZU9iamVjdD4oKnRoaXMsIGZhbHNlLCBbYXhPYmplY3RdIChjb25zdCBBWENvcmVP
YmplY3QmIG9iamVjdCkgewogICAgICAgICAgICAgcmV0dXJuICZvYmplY3QgPT0gYXhPYmplY3Q7
CiAgICAgICAgIH0pICE9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAwYmRhZjkz
NWY0YjExODVhMzZkM2M4NDVmNzJiZWY0OTFiYmMxNmRhLi4yMzc3MjZhMjU4ZGNlNzI2MWJhYWIz
MzFmMDgyY2Y0MDI1YzgyYWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTMzODUsOSArMzM4
NSw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2FudmFzQ2hpbGRyZW4o
KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiBpdCdzIGEgY2FudmFzLCBpdCB3b24ndCBo
YXZlIHJlbmRlcmVkIGNoaWxkcmVuLCBidXQgaXQgbWlnaHQgaGF2ZSBhY2Nlc3NpYmxlIGZhbGxi
YWNrIGNvbnRlbnQuCi0gICAgLy8gQ2xlYXIgbV9oYXZlQ2hpbGRyZW4gYmVjYXVzZSBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6YWRkQ2hpbGRyZW4gd2lsbCBleHBlY3QgaXQgdG8gYmUgZmFsc2Uu
CisgICAgLy8gQ2xlYXIgbV9jaGlsZHJlbkluaXRpYWxpemVkIGJlY2F1c2UgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmFkZENoaWxkcmVuIHdpbGwgZXhwZWN0IGl0IHRvIGJlIGZhbHNlLgogICAg
IEFTU0VSVCghbV9jaGlsZHJlbi5zaXplKCkpOwotICAgIG1faGF2ZUNoaWxkcmVuID0gZmFsc2U7
CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmFkZENoaWxkcmVuKCk7CiB9CiAKQEAgLTM0OTAsNyArMzQ5MCw3IEBAIHZvaWQg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlv
bigpCiAgICAgICAgIGlmICghbWVudUl0ZW1Db3VudCkKICAgICAgICAgICAgIG1fcm9sZSA9IEFj
Y2Vzc2liaWxpdHlSb2xlOjpHcm91cDsKICAgICB9Ci0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJp
bGl0eVJvbGU6OlNWR1Jvb3QgJiYgIWhhc0NoaWxkcmVuKCkpCisgICAgaWYgKHJvbGUgPT0gQWNj
ZXNzaWJpbGl0eVJvbGU6OlNWR1Jvb3QgJiYgIWNoaWxkcmVuKCkuc2l6ZSgpKQogICAgICAgICBt
X3JvbGUgPSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U7CiB9CiAgICAgCkBAIC0zNDk4LDkgKzM0
OTgsOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKCkKIHsK
ICAgICAvLyBJZiB0aGUgbmVlZCB0byBhZGQgbW9yZSBjaGlsZHJlbiBpbiBhZGRpdGlvbiB0byBl
eGlzdGluZyBjaGlsZHJlbiBhcmlzZXMsIAogICAgIC8vIGNoaWxkcmVuQ2hhbmdlZCBzaG91bGQg
aGF2ZSBiZWVuIGNhbGxlZCwgbGVhdmluZyB0aGUgb2JqZWN0IHdpdGggbm8gY2hpbGRyZW4uCi0g
ICAgQVNTRVJUKCFtX2hhdmVDaGlsZHJlbik7IAorICAgIEFTU0VSVCghbV9jaGlsZHJlbkluaXRp
YWxpemVkKTsgCiAKLSAgICBtX2hhdmVDaGlsZHJlbiA9IHRydWU7CisgICAgbV9jaGlsZHJlbklu
aXRpYWxpemVkID0gdHJ1ZTsKICAgICAKICAgICBpZiAoIWNhbkhhdmVDaGlsZHJlbigpKQogICAg
ICAgICByZXR1cm47CkBAIC0zNjg5LDcgKzM2ODksNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnNlbGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBy
ZQogCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFMaXN0Ym94VmlzaWJsZUNo
aWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0KSAgICAgIAogewotICAg
IGlmICghaGFzQ2hpbGRyZW4oKSkKKyAgICBpZiAoIWNoaWxkcmVuSW5pdGlhbGl6ZWQoKSkKICAg
ICAgICAgYWRkQ2hpbGRyZW4oKTsKICAgICAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxkIDog
Y2hpbGRyZW4oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAppbmRleCA2YmI0MjZiNzE0MTg5ZTk5NWVmNjIx
NmVjYzFlMTM0NzBkMTY1ZDAzLi43NDQ1NjQ4ZTRjNmVjMjliMjg5MTlhYTNmOGU5ZjJiOWE3YmRk
YzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3LmNwcApAQCAtMTg1LDggKzE4NSw4IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXc6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIAog
dm9pZCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6YWRkQ2hpbGRyZW4oKQogewotICAgIEFTU0VS
VCghbV9oYXZlQ2hpbGRyZW4pOwotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsKKyAgICBBU1NF
UlQoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCk7CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVkID0g
dHJ1ZTsKICAgICAKICAgICBhZGRDaGlsZCh3ZWJBcmVhT2JqZWN0KCkpOwogICAgIHVwZGF0ZVNj
cm9sbGJhcnMoKTsgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2xpZGVyLmNwcAppbmRleCBlZTExOGQ1NTI2MmY2MjA0ZTFjYTU0MjczNTEw
ODJhN2ZlOTUzNzg5Li5jNzExM2Q5MjIyZjY0ZmRjZGVlYWE0OWYyNDM4MzM0MjgwNWZmNTMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNs
aWRlci5jcHAKQEAgLTg2LDkgKzg2LDkgQEAgQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIEFjY2Vz
c2liaWxpdHlTbGlkZXI6Om9yaWVudGF0aW9uKCkgY29uc3QKICAgICAKIHZvaWQgQWNjZXNzaWJp
bGl0eVNsaWRlcjo6YWRkQ2hpbGRyZW4oKQogewotICAgIEFTU0VSVCghbV9oYXZlQ2hpbGRyZW4p
OyAKKyAgICBBU1NFUlQoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCk7IAogICAgIAotICAgIG1faGF2
ZUNoaWxkcmVuID0gdHJ1ZTsKKyAgICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwogCiAg
ICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBtX3JlbmRlcmVyLT5kb2N1bWVudCgpLmF4T2JqZWN0
Q2FjaGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U3BpbkJ1dHRvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcAppbmRleCBmODkyYjJlOWQzYTcyNWIxYTFlNDI3MjA3
ZDM3YzUzMmRiMTVkYzExLi45YzljZGM3ZWQ2MGFlZDMxOWVmNzVhYjk4ZTVjMTU5MDRhMjQwZmU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
cGluQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTcGluQnV0dG9uLmNwcApAQCAtNDUsOSArNDUsOSBAQCBBY2Nlc3NpYmlsaXR5U3BpbkJ1
dHRvbjo6fkFjY2Vzc2liaWxpdHlTcGluQnV0dG9uKCkgPSBkZWZhdWx0OwogICAgIAogQVhDb3Jl
T2JqZWN0KiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbjo6aW5jcmVtZW50QnV0dG9uKCkKIHsKLSAg
ICBpZiAoIW1faGF2ZUNoaWxkcmVuKQorICAgIGlmICghbV9jaGlsZHJlbkluaXRpYWxpemVkKQog
ICAgICAgICBhZGRDaGlsZHJlbigpOwotICAgIGlmICghbV9oYXZlQ2hpbGRyZW4pCisgICAgaWYg
KCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
QVNTRVJUKG1fY2hpbGRyZW4uc2l6ZSgpID09IDIpOwpAQCAtNTcsOSArNTcsOSBAQCBBWENvcmVP
YmplY3QqIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uOjppbmNyZW1lbnRCdXR0b24oKQogICAgCiBB
WENvcmVPYmplY3QqIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uOjpkZWNyZW1lbnRCdXR0b24oKQog
ewotICAgIGlmICghbV9oYXZlQ2hpbGRyZW4pCisgICAgaWYgKCFtX2NoaWxkcmVuSW5pdGlhbGl6
ZWQpCiAgICAgICAgIGFkZENoaWxkcmVuKCk7Ci0gICAgaWYgKCFtX2hhdmVDaGlsZHJlbikKKyAg
ICBpZiAoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgCiAgICAgQVNTRVJUKG1fY2hpbGRyZW4uc2l6ZSgpID09IDIpOwpAQCAtODYsNyArODYsNyBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uOjphZGRDaGlsZHJlbigpCiAgICAgaWYgKCFj
YWNoZSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsK
KyAgICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwogICAgIAogICAgIGF1dG8mIGluY3Jl
bWVudG9yID0gZG93bmNhc3Q8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0PigqY2FjaGUtPmNy
ZWF0ZShBY2Nlc3NpYmlsaXR5Um9sZTo6U3BpbkJ1dHRvblBhcnQpKTsKICAgICBpbmNyZW1lbnRv
ci5zZXRJc0luY3JlbWVudG9yKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCmluZGV4IDgzMjBkNzVlNmUzOTQ2MzA0NTZl
YjMzMDNlNGVhYTViZTYwYmY0OWUuLjBiYjFkNzBkMzNlNDUzNWIwOTFlYmMyNjAyYzMyNzZjMWE1
N2VkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZS5jcHAKQEAgLTM4MSw5ICszODEsOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlUYWJs
ZTo6YWRkQ2hpbGRyZW4oKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIEFTU0VS
VCghbV9oYXZlQ2hpbGRyZW4pOyAKKyAgICBBU1NFUlQoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCk7
IAogICAgIAotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsKKyAgICBtX2NoaWxkcmVuSW5pdGlh
bGl6ZWQgPSB0cnVlOwogICAgIGlmICghaXM8UmVuZGVyVGFibGU+KHJlbmRlcmVyKCkpKQogICAg
ICAgICByZXR1cm47CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAKaW5kZXggNTBhZGMyNjNkMTIxMTMy
YzdmNDM1Y2FiM2MyYjFmNzIzODNiMTQ1Yy4uOTA0NjNmNjgyNDQ3OWIzZTViZjAxNzllMjljYjNk
ZTU5MmJjMGNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcApAQCAtMTgxLDkgKzE4MSw5IEBAIGJvb2wg
QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0CiAgICAgCiB2b2lkIEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbjo6YWRkQ2hpbGRyZW4o
KQogewotICAgIEFTU0VSVCghbV9oYXZlQ2hpbGRyZW4pOyAKKyAgICBBU1NFUlQoIW1fY2hpbGRy
ZW5Jbml0aWFsaXplZCk7IAogICAgIAotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsKKyAgICBt
X2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwogICAgIGlmICghaXM8QWNjZXNzaWJpbGl0eVRh
YmxlPihtX3BhcmVudCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJD
b250YWluZXIuY3BwCmluZGV4IGQ0YTEwZWRmN2I0NzgzYjdlODc5NzI5ZGU3ZTA2ODg4MGJmMjhm
YTkuLjNhZGJmY2FiNDE5YmFjOGY2ZTUwZWM1NDkyYzM1MmEzYTZhYjY0YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29u
dGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHAKQEAgLTYzLDkgKzYzLDkgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkgY29uc3QKIAogdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmFkZENo
aWxkcmVuKCkKIHsKLSAgICBBU1NFUlQoIW1faGF2ZUNoaWxkcmVuKTsgCisgICAgQVNTRVJUKCFt
X2NoaWxkcmVuSW5pdGlhbGl6ZWQpOyAKICAgICAKLSAgICBtX2hhdmVDaGlsZHJlbiA9IHRydWU7
CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVkID0gdHJ1ZTsKICAgICBpZiAoIWlzPEFjY2Vzc2li
aWxpdHlUYWJsZT4obV9wYXJlbnQpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5jcHAKaW5kZXggODgwOWYzZTgzMWI2Mjk5NjU3YmU2MjU2M2NlOTAwNmM5OGZlM2Mz
NC4uMzIwN2ZmYzU2YzVlOWRjNjI5Nzk3ZmFiYTgyOGNiMDMyNDgyNDI0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5jcHAKQEAgLTE2Myw3ICsxNjMsNiBAQCB2b2lkIEFYSXNvbGF0ZWRPYmpl
Y3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYgb2JqZWN0LCBib29sIGlz
Um9vdAogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpMYXlvdXRDb3VudCwgb2JqZWN0
LmxheW91dENvdW50KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpFc3RpbWF0
ZWRMb2FkaW5nUHJvZ3Jlc3MsIG9iamVjdC5lc3RpbWF0ZWRMb2FkaW5nUHJvZ3Jlc3MoKSk7CiAg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzQVJJQU93bnMsIG9iamVjdC5z
dXBwb3J0c0FSSUFPd25zKCkpOwotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpIYXND
aGlsZHJlbiwgb2JqZWN0Lmhhc0NoaWxkcmVuKCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVy
dHlOYW1lOjpIYXNQb3B1cCwgb2JqZWN0Lmhhc1BvcHVwKCkpOwogICAgIHNldFByb3BlcnR5KEFY
UHJvcGVydHlOYW1lOjpQb3B1cFZhbHVlLCBvYmplY3QucG9wdXBWYWx1ZSgpLmlzb2xhdGVkQ29w
eSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6UHJlc3NlZElzUHJlc2VudCwg
b2JqZWN0LnByZXNzZWRJc1ByZXNlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXgg
MWYxZTNjYjRmMjE3YzNkMWRhZmU5MTc1NDk3ZmMxMGUyODQxYzg2YS4uMmI0M2I5ZGQ3N2M1ZThj
OWQzNWMxNTBkMDRiM2ViMjMwNzA2N2FmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApAQCAt
NjEwLDcgKzYxMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRDaGlsZChBWENvcmVPYmplY3Qq
KSBvdmVycmlkZTsKICAgICB2b2lkIGluc2VydENoaWxkKEFYQ29yZU9iamVjdCosIHVuc2lnbmVk
KSBvdmVycmlkZTsKICAgICBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIGJvb2wgaGFzQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmli
dXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6Okhhc0NoaWxkcmVuKTsgfQorICAgIGJvb2wgY2hpbGRy
ZW5Jbml0aWFsaXplZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lk
IHNldE5lZWRzVG9VcGRhdGVDaGlsZHJlbigpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0TmVlZHNU
b1VwZGF0ZVN1YnRyZWUoKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyQ2hpbGRyZW4oKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IDdhZWU0ZjgyZTlhMWM2ODJiYTNhMzcxYzM4
NWQ1YWM5YTExNGQ2OWQuLjc5MWZhZjUzMjMwMzBkNjA0YjA0YjI3N2VlZWIwZTUzMTU4OGY1Nzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMTE4LDcgKzExOCw2IEBAIGVudW0gY2xhc3MgQVhQ
cm9wZXJ0eU5hbWUgOiB1aW50MTZfdCB7CiAgICAgSGFzQVJJQVZhbHVlTm93LAogICAgIEhhc0Fw
cGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSwKICAgICBIYXNCb2xkRm9udCwKLSAgICBIYXNDaGls
ZHJlbiwKICAgICBIYXNIaWdobGlnaHRpbmcsCiAgICAgSGFzSXRhbGljRm9udCwKICAgICBIYXNQ
bGFpblRleHQsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442314</attachid>
            <date>2021-10-24 11:50:49 -0700</date>
            <delta_ts>2021-10-24 15:28:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232130-20211024135048.patch</filename>
            <type>text/plain</type>
            <size>21486</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQxYTZhOWQ2OGUyNDk2
MmU0NzcwZDI3ODY5NDU5ZDk1MDdhZThkMS4uYmVkMWI1NTRjNjgzZDgwNDIxZTY0ZTBhY2ZhMzli
YzI1OTQ1MGU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIxLTEwLTIxICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEFjY2Vzc2liaWxp
dHlPYmplY3Q6Om1faGF2ZUNoaWxkcmVuIGFuZCBBWENvcmVPYmplY3Q6Omhhc0NoaWxkcmVuKCkg
YXJlIG1pc2xlYWRpbmdseSBuYW1lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMyMTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXph
Y2guCisKKyAgICAgICAgVGhlIG5hbWVzIG9mIGBBY2Nlc3NpYmlsaXR5T2JqZWN0OjptX2hhdmVD
aGlsZHJlbmAgYW5kIGBBWENvcmVPYmplY3Q6Omhhc0NoaWxkcmVuKClgCisgICAgICAgIGltcGx5
IHRoYXQgdGhlIGdpdmVuIG9iamVjdCBoYXMgb25lIG9yIG1vcmUgY2hpbGRyZW4uIEhvd2V2ZXIs
IHdoYXQgdGhlc2UKKyAgICAgICAgcmVhbGx5IGluZGljYXRlIGlzIHdoZXRoZXIgdGhlIG9iamVj
dCBoYXMgdHJpZWQgdG8gaW5pdGlhbGl6ZSBpdHMgY2hpbGRyZW4uCisgICAgICAgIEJvdGggYG1f
aGF2ZUNoaWxkcmVuYCBhbmQgYGhhc0NoaWxkcmVuKClgIGNhbiBiZSB0cnVlIGZvciBvYmplY3Rz
IHRoYXQgaGF2ZSBubyBjaGlsZHJlbiwKKyAgICAgICAgd2hpY2ggaXMgY29uZnVzaW5nLgorCisg
ICAgICAgIFRoaXMgcGF0Y2g6CisKKyAgICAgICAgICAtIFJlbmFtZXMgYG1faGF2ZUNoaWxkcmVu
YCB0byBgbV9jaGlsZHJlbkluaXRpYWxpemVkYCBhbmQKKyAgICAgICAgICAgIGBoYXNDaGlsZHJl
bigpYCB0byBgY2hpbGRyZW5Jbml0aWFsaXplZCgpYC4KKworICAgICAgICAgIC0gUmVtb3ZlcyBg
QVhQcm9wZXJ0eU5hbWU6Okhhc0NoaWxkcmVuYCByYXRoZXIgdGhhbgorICAgICAgICAgICAgcmVu
YW1pbmcgaXQgYmVjYXVzZSBpc29sYXRlZCBvYmplY3QgY2hpbGRyZW4gYXJlIGFsd2F5cyBpbml0
aWFsaXplZC4KKworICAgICAgICAgIC0gRml4ZXMgYSBidWcgaW4gYEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnVwZGF0ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb25gCisgICAgICAgICAgICBj
YXVzZWQgYnkgdGhlIHBvb3IgbmFtZXMgKHdlIGludGVuZGVkIHRvIGNoYW5nZSB0aGUgcm9sZSBp
ZiB0aGVyZQorICAgICAgICAgICAgd2VyZSBubyBjaGlsZHJlbiwgbm90IGlmIGAhaGFzQ2hpbGRy
ZW4oKWApLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZHJl
bik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJveDo6YWRkQ2hpbGRyZW4pOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3g6OnNlbGVjdGVkQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3g6OnZpc2libGVDaGlsZHJlbik6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjphZGRDaGlsZHJlbik6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6YWRkQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmNoaWxkcmVuQ2hh
bmdlZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWRkQ2hpbGRy
ZW4pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp1cGRhdGVDaGlsZHJlbklmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNsZWFyQ2hp
bGRyZW4pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QVhDb3JlT2JqZWN0Ojppc0Rlc2NlbmRhbnRPZk9iamVjdCBjb25z
dCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENhbnZh
c0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnVwZGF0ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUxpc3Rib3hWaXNpYmxlQ2hpbGRyZW4pOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmFkZENoaWxkcmVuKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNsaWRlcjo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmluY3JlbWVudEJ1dHRvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbjo6ZGVjcmVtZW50QnV0dG9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTcGluQnV0dG9uOjphZGRDaGlsZHJlbik6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uOjphZGRDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjphZGRDaGlsZHJlbik6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5j
cHA6CisgICAgICAgIFN0b3Agc2V0dGluZyBgQVhQcm9wZXJ0eU5hbWU6Okhhc0NoaWxkcmVuYCBi
ZWNhdXNlIGl0IG5vIGxvbmdlciBleGlzdHMuCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVk
T2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6CisgICAgICAgIERlbGV0ZSBgQVhQcm9w
ZXJ0eU5hbWU6Okhhc0NoaWxkcmVuYC4KKwogMjAyMS0xMC0yNCAgVHlsZXIgV2lsY29jayAgPHR5
bGVyX3dAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBBbnkgYWRkaXRpb24gb2YgY2hpbGRyZW4g
c2hvdWxkIGZ1bm5lbCB0aHJvdWdoIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFkZENoaWxkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZC5jcHAKaW5kZXggM2I0MDg0OWQxNTBiNDEwZjdiNDBlZDlhODAzNDc5Y2ViNjBkNGVlNi4uY2M0
MTE4ZTJlNjJmMzM4YmVmNDlkNDc2YjM2MjIwMjFjYzA4NTQ1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcApAQCAt
OTQsMTQgKzk0LDE0IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRSb3dEZXNjZW5k
YW50KEFYQ29yZU9iamVjdCogcm93Q2hpbGQsIEhhc2hTZXQ8QWNjCiAKIHZvaWQgQWNjZXNzaWJp
bGl0eUFSSUFHcmlkOjphZGRDaGlsZHJlbigpCiB7Ci0gICAgQVNTRVJUKCFtX2hhdmVDaGlsZHJl
bik7IAorICAgIEFTU0VSVCghbV9jaGlsZHJlbkluaXRpYWxpemVkKTsgCiAgICAgCiAgICAgaWYg
KCFpc0V4cG9zYWJsZSgpKSB7CiAgICAgICAgIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFk
ZENoaWxkcmVuKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgbV9oYXZlQ2hp
bGRyZW4gPSB0cnVlOworICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAgICAgaWYg
KCFtX3JlbmRlcmVyKQogICAgICAgICByZXR1cm47CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwCmluZGV4IDVmYTRi
OGRmZDc0NGE2MmI2MGUxNDUyMzRjY2VjZGVkYTg1Y2I2ZmQuLjFmMmZkYTMxMWMxNGUzOGNjYWYw
OTA4ZTdkMmFkOTNhODJjNGJmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQg
QWNjZXNzaWJpbGl0eUxpc3RCb3g6OmFkZENoaWxkcmVuKCkKICAgICBpZiAoIXNlbGVjdE5vZGUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsKKyAgICBtX2No
aWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwogCiAgICAgZm9yIChjb25zdCBhdXRvJiBsaXN0SXRl
bSA6IGRvd25jYXN0PEhUTUxTZWxlY3RFbGVtZW50Pigqc2VsZWN0Tm9kZSkubGlzdEl0ZW1zKCkp
CiAgICAgICAgIGFkZENoaWxkKGxpc3RCb3hPcHRpb25BY2Nlc3NpYmlsaXR5T2JqZWN0KGxpc3RJ
dGVtKSwgRGVzY2VuZElmSWdub3JlZDo6Tm8pOwpAQCAtMTA1LDkgKzEwNSw5IEBAIHZvaWQgQWNj
ZXNzaWJpbGl0eUxpc3RCb3g6OnNlbGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yJiByZXN1bHQpCiB7CiAgICAgQVNTRVJUKHJlc3VsdC5pc0VtcHR5KCkpOwogCi0gICAg
aWYgKCFoYXNDaGlsZHJlbigpKQorICAgIGlmICghY2hpbGRyZW5Jbml0aWFsaXplZCgpKQogICAg
ICAgICBhZGRDaGlsZHJlbigpOwotICAgICAgICAKKwogICAgIGZvciAoY29uc3QgYXV0byYgY2hp
bGQgOiBtX2NoaWxkcmVuKSB7CiAgICAgICAgIGlmIChkb3duY2FzdDxBY2Nlc3NpYmlsaXR5TGlz
dEJveE9wdGlvbj4oKmNoaWxkKS5pc1NlbGVjdGVkKCkpCiAgICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKGNoaWxkLmdldCgpKTsKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlM
aXN0Qm94Ojp2aXNpYmxlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1
bHQpCiB7CiAgICAgQVNTRVJUKHJlc3VsdC5pc0VtcHR5KCkpOwogICAgIAotICAgIGlmICghaGFz
Q2hpbGRyZW4oKSkKKyAgICBpZiAoIWNoaWxkcmVuSW5pdGlhbGl6ZWQoKSkKICAgICAgICAgYWRk
Q2hpbGRyZW4oKTsKICAgICAKICAgICB1bnNpZ25lZCBsZW5ndGggPSBtX2NoaWxkcmVuLnNpemUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0LmNwcAppbmRleCA4ZTY1ZjhlNWU3YTgyNWUzNTFjZGUzOThjM2ZiNWMyZDNhZDVk
NjNkLi44NzJlYjg2Njg3MTk1OGY3ZTFlZGJiMDU3YWM5M2EyMmRkYzUxNmVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3Qu
Y3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0OjphZGRDaGls
ZHJlbigpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2hhdmVDaGlsZHJlbiA9IHRy
dWU7CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVkID0gdHJ1ZTsKICAgICBhZGRDaGlsZChsaXN0
KTsKICAgICBsaXN0LT5hZGRDaGlsZHJlbigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcAppbmRl
eCA2ODU4MzI5MzA5NDIzNmEyYmJhNDgwOTFkNzY3OTU2NmVlYTYxY2YwLi41Y2QwYmE2N2JiYTFj
MmM4ZjZjZGFjMmRjZjBiZGNjMDQwNWU3NTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcApAQCAt
OTQsNyArOTQsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjphZGRDaGlsZHJl
bigpCiAgICAgaWYgKCFzZWxlY3ROb2RlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2hhdmVD
aGlsZHJlbiA9IHRydWU7CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVkID0gdHJ1ZTsKIAogICAg
IGZvciAoY29uc3QgYXV0byYgbGlzdEl0ZW0gOiBkb3duY2FzdDxIVE1MU2VsZWN0RWxlbWVudD4o
KnNlbGVjdE5vZGUpLmxpc3RJdGVtcygpKSB7CiAgICAgICAgIGlmIChhdXRvKiBtZW51TGlzdE9w
dGlvbk9iamVjdCA9IG1lbnVMaXN0T3B0aW9uQWNjZXNzaWJpbGl0eU9iamVjdChsaXN0SXRlbSkp
IHsKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpj
aGlsZHJlbkNoYW5nZWQoKQogICAgIH0KICAgICAKICAgICBtX2NoaWxkcmVuLmNsZWFyKCk7Ci0g
ICAgbV9oYXZlQ2hpbGRyZW4gPSBmYWxzZTsKKyAgICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSBm
YWxzZTsKICAgICBhZGRDaGlsZHJlbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGUyZDM5
YjA1ODJlMzBhZmJjNWZkNDZhYmZiYTM1YzBhYWFmMTcxYTkuLmExMjNmOWM2YmFkNjZhMTUxODNi
MTYzYmYxMjkwM2FiYjRkNmFjMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0zNDIsMTIgKzM0Miwx
MiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphZGRDaGlsZHJlbigpCiB7CiAgICAg
Ly8gSWYgdGhlIG5lZWQgdG8gYWRkIG1vcmUgY2hpbGRyZW4gaW4gYWRkaXRpb24gdG8gZXhpc3Rp
bmcgY2hpbGRyZW4gYXJpc2VzLCAKICAgICAvLyBjaGlsZHJlbkNoYW5nZWQgc2hvdWxkIGhhdmUg
YmVlbiBjYWxsZWQsIGxlYXZpbmcgdGhlIG9iamVjdCB3aXRoIG5vIGNoaWxkcmVuLgotICAgIEFT
U0VSVCghbV9oYXZlQ2hpbGRyZW4pOyAKKyAgICBBU1NFUlQoIW1fY2hpbGRyZW5Jbml0aWFsaXpl
ZCk7IAogICAgIAogICAgIGlmICghbV9ub2RlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2hh
dmVDaGlsZHJlbiA9IHRydWU7CisgICAgbV9jaGlsZHJlbkluaXRpYWxpemVkID0gdHJ1ZTsKIAog
ICAgIC8vIFRoZSBvbmx5IHRpbWUgd2UgYWRkIGNoaWxkcmVuIGZyb20gdGhlIERPTSB0cmVlIHRv
IGEgbm9kZSB3aXRoIGEgcmVuZGVyZXIgaXMgd2hlbiBpdCdzIGEgY2FudmFzLgogICAgIGlmIChy
ZW5kZXJlcigpICYmICFtX25vZGUtPmhhc1RhZ05hbWUoY2FudmFzVGFnKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4
IGNmODY0ZTM3OGJlZDlhMDJmODdlYTU4MWEyNjJjNmEwYjBlYWMwNTcuLjA4ZTBlNGY1Yjk3NDA2
ZmY4OTMyMDQ5Y2Q2MWQzNjYwYTgzOWRmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTY4Niw3ICsxNjg2LDcg
QEAgY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9y
JiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjaGkKIAogdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp1
cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCkKIHsKLSAgICBpZiAoIWhhc0NoaWxkcmVuKCkpIHsK
KyAgICBpZiAoIWNoaWxkcmVuSW5pdGlhbGl6ZWQoKSkgewogICAgICAgICAvLyBFbmFibGUgdGhl
IGNhY2hlIGluIGNhc2Ugd2UgZW5kIHVwIGFkZGluZyBhIGxvdCBvZiBjaGlsZHJlbiwgd2UgZG9u
J3Qgd2FudCB0byByZWNvbXB1dGUgYXhJc0lnbm9yZWQgZWFjaCB0aW1lLgogICAgICAgICBBWEF0
dHJpYnV0ZUNhY2hlRW5hYmxlciBlbmFibGVDYWNoZShheE9iamVjdENhY2hlKCkpOwogICAgICAg
ICBhZGRDaGlsZHJlbigpOwpAQCAtMTcwMCw3ICsxNzAwLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpjbGVhckNoaWxkcmVuKCkKICAgICAgICAgY2hpbGQtPmRldGFjaEZyb21QYXJlbnQo
KTsKICAgICAKICAgICBtX2NoaWxkcmVuLmNsZWFyKCk7Ci0gICAgbV9oYXZlQ2hpbGRyZW4gPSBm
YWxzZTsKKyAgICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSBmYWxzZTsKIH0KIAogQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU9iamVjdDo6YW5jaG9yRWxlbWVudEZvck5vZGUoTm9k
ZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKaW5kZXggNzBmYWM5YWYzYTFmZjIwZDg3Y2IyNTM2ODZjYTRjZDBmMjNhNTNk
OS4uYzljMjg2ZjRlNmM2NDU2ZjJjN2E2OTUwZWQzM2JiNTdiNWE5YjA5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ5
NSw3ICs0OTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnNlcnRDaGlsZChBWENvcmVPYmplY3Qq
LCB1bnNpZ25lZCwgRGVzY2VuZElmSWdub3JlZCA9IERlc2NlbmRJZklnbm9yZWQ6Olllcykgb3Zl
cnJpZGU7CiAKICAgICBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KLSAgICBib29sIGhhc0NoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9oYXZlQ2hpbGRyZW47IH0KKyAgICBib29sIGNoaWxkcmVuSW5pdGlhbGl6ZWQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQ7IH0KICAgICB2b2lkIHVw
ZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldE5lZWRzVG9V
cGRhdGVDaGlsZHJlbigpIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgc2V0TmVlZHNUb1VwZGF0ZVN1
YnRyZWUoKSBvdmVycmlkZSB7IH0KQEAgLTgxMSw3ICs4MTEsNyBAQCBwcml2YXRlOgogICAgIEFY
SUQgbV9pZCB7IDAgfTsKIHByb3RlY3RlZDogLy8gRklYTUU6IE1ha2UgdGhlIGRhdGEgbWVtYmVy
cyBwcml2YXRlLgogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBtX2NoaWxkcmVuOwot
ICAgIG11dGFibGUgYm9vbCBtX2hhdmVDaGlsZHJlbiB7IGZhbHNlIH07CisgICAgbXV0YWJsZSBi
b29sIG1fY2hpbGRyZW5Jbml0aWFsaXplZCB7IGZhbHNlIH07CiAgICAgQWNjZXNzaWJpbGl0eVJv
bGUgbV9yb2xlIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24gfTsKIHByaXZhdGU6CiAgICAg
QWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBtX2xhc3RLbm93bklzSWdub3JlZFZhbHVlIHsg
QWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6RGVmYXVsdEJlaGF2aW9yIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oCmluZGV4IDBmMTg3MGEwNDY4MmQ3MjAxOTBjMDUzNjE1Y2RiZTVlY2FkZjRm
MTkuLjdmOTU2OTZmYTBiYjIxMmZkNTI3Y2JiYjRhMzQzNDEyOThjM2M0ZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oCkBAIC0xMjQ5LDcgKzEyNDksNyBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPEFY
SUQ+IGNoaWxkcmVuSURzKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkg
Y29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBoYXNDaGlsZHJlbigpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIGJvb2wgY2hpbGRyZW5Jbml0aWFsaXplZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSgpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0TmVlZHNUb1VwZGF0ZUNoaWxkcmVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRO
ZWVkc1RvVXBkYXRlU3VidHJlZSgpID0gMDsKQEAgLTE2MjUsNyArMTYyNSw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBUIHJldHJpZXZlQXV0b3JlbGVhc2VkVmFs
dWVGcm9tTWFpblRocmVhCiAKIGlubGluZSBib29sIEFYQ29yZU9iamVjdDo6aXNEZXNjZW5kYW50
T2ZPYmplY3QoY29uc3QgQVhDb3JlT2JqZWN0KiBheE9iamVjdCkgY29uc3QKIHsKLSAgICByZXR1
cm4gYXhPYmplY3QgJiYgYXhPYmplY3QtPmhhc0NoaWxkcmVuKCkKKyAgICByZXR1cm4gYXhPYmpl
Y3QgJiYgYXhPYmplY3QtPmNoaWxkcmVuSW5pdGlhbGl6ZWQoKQogICAgICAgICAmJiBBY2Nlc3Np
YmlsaXR5OjpmaW5kQW5jZXN0b3I8QVhDb3JlT2JqZWN0PigqdGhpcywgZmFsc2UsIFtheE9iamVj
dF0gKGNvbnN0IEFYQ29yZU9iamVjdCYgb2JqZWN0KSB7CiAgICAgICAgICAgICByZXR1cm4gJm9i
amVjdCA9PSBheE9iamVjdDsKICAgICAgICAgfSkgIT0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCmluZGV4IDJjOTAzYzcwNmY4OGJkMmVjNThlYzE4NGUwOTc2OGM3ZTgxMDk3OTAuLjIzNDVj
ZjA1YjYzMDY5NjgwMWY2ZGYzMjRhODQ0ZjJlYjY2ZDU5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cApAQCAtMzM4NSw5ICszMzg1LDkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojph
ZGRDYW52YXNDaGlsZHJlbigpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIElmIGl0J3MgYSBj
YW52YXMsIGl0IHdvbid0IGhhdmUgcmVuZGVyZWQgY2hpbGRyZW4sIGJ1dCBpdCBtaWdodCBoYXZl
IGFjY2Vzc2libGUgZmFsbGJhY2sgY29udGVudC4KLSAgICAvLyBDbGVhciBtX2hhdmVDaGlsZHJl
biBiZWNhdXNlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphZGRDaGlsZHJlbiB3aWxsIGV4cGVj
dCBpdCB0byBiZSBmYWxzZS4KKyAgICAvLyBDbGVhciBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgYmVj
YXVzZSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWRkQ2hpbGRyZW4gd2lsbCBleHBlY3QgaXQg
dG8gYmUgZmFsc2UuCiAgICAgQVNTRVJUKCFtX2NoaWxkcmVuLnNpemUoKSk7Ci0gICAgbV9oYXZl
Q2hpbGRyZW4gPSBmYWxzZTsKKyAgICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAg
ICBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWRkQ2hpbGRyZW4oKTsKIH0KIApAQCAtMzQ5MCw3
ICszNDkwLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0
ZXJDaGlsZHJlbkNyZWF0aW9uKCkKICAgICAgICAgaWYgKCFtZW51SXRlbUNvdW50KQogICAgICAg
ICAgICAgbV9yb2xlID0gQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3VwOwogICAgIH0KLSAgICBpZiAo
cm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U1ZHUm9vdCAmJiAhaGFzQ2hpbGRyZW4oKSkKKyAg
ICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U1ZHUm9vdCAmJiAhY2hpbGRyZW4oKS5z
aXplKCkpCiAgICAgICAgIG1fcm9sZSA9IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZTsKIH0KICAg
ICAKQEAgLTM0OTgsOSArMzQ5OCw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
YWRkQ2hpbGRyZW4oKQogewogICAgIC8vIElmIHRoZSBuZWVkIHRvIGFkZCBtb3JlIGNoaWxkcmVu
IGluIGFkZGl0aW9uIHRvIGV4aXN0aW5nIGNoaWxkcmVuIGFyaXNlcywgCiAgICAgLy8gY2hpbGRy
ZW5DaGFuZ2VkIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkLCBsZWF2aW5nIHRoZSBvYmplY3Qgd2l0
aCBubyBjaGlsZHJlbi4KLSAgICBBU1NFUlQoIW1faGF2ZUNoaWxkcmVuKTsgCisgICAgQVNTRVJU
KCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpOyAKIAotICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsK
KyAgICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwogICAgIAogICAgIGlmICghY2FuSGF2
ZUNoaWxkcmVuKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM2ODksNyArMzY4OSw3IEBAIHZvaWQg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3ImIHJlCiAKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJp
YUxpc3Rib3hWaXNpYmxlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1
bHQpICAgICAgCiB7Ci0gICAgaWYgKCFoYXNDaGlsZHJlbigpKQorICAgIGlmICghY2hpbGRyZW5J
bml0aWFsaXplZCgpKQogICAgICAgICBhZGRDaGlsZHJlbigpOwogICAgIAogICAgIGZvciAoY29u
c3QgYXV0byYgY2hpbGQgOiBjaGlsZHJlbigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCmluZGV4IDZiYjQy
NmI3MTQxODllOTk1ZWY2MjE2ZWNjMWUxMzQ3MGQxNjVkMDMuLjc0NDU2NDhlNGM2ZWMyOWIyODkx
OWFhM2Y4ZTlmMmI5YTdiZGRjNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCkBAIC0xODUsOCArMTg1LDgg
QEAgYm9vbCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdAogCiB2b2lkIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjphZGRDaGlsZHJl
bigpCiB7Ci0gICAgQVNTRVJUKCFtX2hhdmVDaGlsZHJlbik7Ci0gICAgbV9oYXZlQ2hpbGRyZW4g
PSB0cnVlOworICAgIEFTU0VSVCghbV9jaGlsZHJlbkluaXRpYWxpemVkKTsKKyAgICBtX2NoaWxk
cmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwogICAgIAogICAgIGFkZENoaWxkKHdlYkFyZWFPYmplY3Qo
KSk7CiAgICAgdXBkYXRlU2Nyb2xsYmFycygpOyAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCmluZGV4IGVlMTE4ZDU1MjYy
ZjYyMDRlMWNhNTQyNzM1MTA4MmE3ZmU5NTM3ODkuLmM3MTEzZDkyMjJmNjRmZGNkZWVhYTQ5ZjI0
MzgzMzQyODA1ZmY1MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcApAQCAtODYsOSArODYsOSBAQCBBY2Nlc3NpYmlsaXR5
T3JpZW50YXRpb24gQWNjZXNzaWJpbGl0eVNsaWRlcjo6b3JpZW50YXRpb24oKSBjb25zdAogICAg
IAogdm9pZCBBY2Nlc3NpYmlsaXR5U2xpZGVyOjphZGRDaGlsZHJlbigpCiB7Ci0gICAgQVNTRVJU
KCFtX2hhdmVDaGlsZHJlbik7IAorICAgIEFTU0VSVCghbV9jaGlsZHJlbkluaXRpYWxpemVkKTsg
CiAgICAgCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOworICAgIG1fY2hpbGRyZW5Jbml0aWFs
aXplZCA9IHRydWU7CiAKICAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fcmVuZGVyZXItPmRv
Y3VtZW50KCkuYXhPYmplY3RDYWNoZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uY3BwCmluZGV4IGY4OTJiMmU5
ZDNhNzI1YjFhMWU0MjcyMDdkMzdjNTMyZGIxNWRjMTEuLjljOWNkYzdlZDYwYWVkMzE5ZWY3NWFi
OThlNWMxNTkwNGEyNDBmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uY3BwCkBAIC00NSw5ICs0NSw5IEBAIEFj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uOjp+QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24oKSA9IGRlZmF1
bHQ7CiAgICAgCiBBWENvcmVPYmplY3QqIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uOjppbmNyZW1l
bnRCdXR0b24oKQogewotICAgIGlmICghbV9oYXZlQ2hpbGRyZW4pCisgICAgaWYgKCFtX2NoaWxk
cmVuSW5pdGlhbGl6ZWQpCiAgICAgICAgIGFkZENoaWxkcmVuKCk7Ci0gICAgaWYgKCFtX2hhdmVD
aGlsZHJlbikKKyAgICBpZiAoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBBU1NFUlQobV9jaGlsZHJlbi5zaXplKCkgPT0gMik7CkBAIC01Nyw5
ICs1Nyw5IEBAIEFYQ29yZU9iamVjdCogQWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmluY3JlbWVu
dEJ1dHRvbigpCiAgICAKIEFYQ29yZU9iamVjdCogQWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmRl
Y3JlbWVudEJ1dHRvbigpCiB7Ci0gICAgaWYgKCFtX2hhdmVDaGlsZHJlbikKKyAgICBpZiAoIW1f
Y2hpbGRyZW5Jbml0aWFsaXplZCkKICAgICAgICAgYWRkQ2hpbGRyZW4oKTsKLSAgICBpZiAoIW1f
aGF2ZUNoaWxkcmVuKQorICAgIGlmICghbV9jaGlsZHJlbkluaXRpYWxpemVkKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBBU1NFUlQobV9jaGlsZHJlbi5zaXplKCkgPT0gMik7
CkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmFkZENoaWxk
cmVuKCkKICAgICBpZiAoIWNhY2hlKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9oYXZl
Q2hpbGRyZW4gPSB0cnVlOworICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAgICAg
CiAgICAgYXV0byYgaW5jcmVtZW50b3IgPSBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRv
blBhcnQ+KCpjYWNoZS0+Y3JlYXRlKEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uUGFydCkp
OwogICAgIGluY3JlbWVudG9yLnNldElzSW5jcmVtZW50b3IodHJ1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAKaW5kZXggYzUx
ZDE3MTdlOGVhNTkxY2E1YzRhOGIyYWU1Y2ZlNGZkYTZlMzM5OS4uOGM3YWE4NzJiNTQwYWUyZTNi
NTdhZGUyZGNjMzFkMTk1ODUwYjNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcApAQCAtMzgxLDkgKzM4MSw5IEBAIHZvaWQg
QWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbigpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgCi0gICAgQVNTRVJUKCFtX2hhdmVDaGlsZHJlbik7IAorICAgIEFTU0VSVCghbV9jaGls
ZHJlbkluaXRpYWxpemVkKTsgCiAgICAgCi0gICAgbV9oYXZlQ2hpbGRyZW4gPSB0cnVlOworICAg
IG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAgICAgaWYgKCFpczxSZW5kZXJUYWJsZT4o
cmVuZGVyZXIoKSkpCiAgICAgICAgIHJldHVybjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcAppbmRl
eCA1MGFkYzI2M2QxMjExMzJjN2Y0MzVjYWIzYzJiMWY3MjM4M2IxNDVjLi45MDQ2M2Y2ODI0NDc5
YjNlNWJmMDE3OWUyOWNiM2RlNTkyYmMwY2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwCkBAIC0xODEs
OSArMTgxLDkgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46OmNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICAgICAKIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlQ29s
dW1uOjphZGRDaGlsZHJlbigpCiB7Ci0gICAgQVNTRVJUKCFtX2hhdmVDaGlsZHJlbik7IAorICAg
IEFTU0VSVCghbV9jaGlsZHJlbkluaXRpYWxpemVkKTsgCiAgICAgCi0gICAgbV9oYXZlQ2hpbGRy
ZW4gPSB0cnVlOworICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAgICAgaWYgKCFp
czxBY2Nlc3NpYmlsaXR5VGFibGU+KG1fcGFyZW50KSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHAKaW5kZXggZDRhMTBlZGY3YjQ3ODNiN2U4Nzk3
MjlkZTdlMDY4ODgwYmYyOGZhOS4uM2FkYmZjYWI0MTliYWM4ZjZlNTBlYzU0OTJjMzUyYTNhNmFi
NjRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVIZWFkZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcApAQCAtNjMsOSArNjMs
OSBAQCBib29sIEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcjo6Y29tcHV0ZUFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogCiB2b2lkIEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRl
ckNvbnRhaW5lcjo6YWRkQ2hpbGRyZW4oKQogewotICAgIEFTU0VSVCghbV9oYXZlQ2hpbGRyZW4p
OyAKKyAgICBBU1NFUlQoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCk7IAogICAgIAotICAgIG1faGF2
ZUNoaWxkcmVuID0gdHJ1ZTsKKyAgICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVlOwogICAg
IGlmICghaXM8QWNjZXNzaWJpbGl0eVRhYmxlPihtX3BhcmVudCkpCiAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCBkYzlkMzJkNjdkNzA2ZmRmMGY1YWE2
OGZjZjIzNThhMzdlYWRjNjFiLi43M2FlZmFlYzczNGI1YzViNjA3YmNhY2FkZTYyMjFkYTZmYzI5
YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMTYzLDcgKzE2Myw2IEBAIHZv
aWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0
JiBvYmplY3QsIGJvb2wgaXNSb290CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okxh
eW91dENvdW50LCBvYmplY3QubGF5b3V0Q291bnQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9w
ZXJ0eU5hbWU6OkVzdGltYXRlZExvYWRpbmdQcm9ncmVzcywgb2JqZWN0LmVzdGltYXRlZExvYWRp
bmdQcm9ncmVzcygpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNB
UklBT3ducywgb2JqZWN0LnN1cHBvcnRzQVJJQU93bnMoKSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQ
cm9wZXJ0eU5hbWU6Okhhc0NoaWxkcmVuLCBvYmplY3QuaGFzQ2hpbGRyZW4oKSk7CiAgICAgc2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okhhc1BvcHVwLCBvYmplY3QuaGFzUG9wdXAoKSk7CiAg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlBvcHVwVmFsdWUsIG9iamVjdC5wb3B1cFZh
bHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpQ
cmVzc2VkSXNQcmVzZW50LCBvYmplY3QucHJlc3NlZElzUHJlc2VudCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaAppbmRleCBiYmRkOWRkMGNjNDFjOTcyYjYzZjFmMDA0YzQ2OTQzYjc0ZDFlNWE5
Li5mNjk5NzNkY2M4YzllYzczOTA5NTZkMTI5ZmM3NmE4Y2I3YmNiMDcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5oCkBAIC02MTAsNyArNjEwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZENo
aWxkKEFYQ29yZU9iamVjdCosIERlc2NlbmRJZklnbm9yZWQgPSBEZXNjZW5kSWZJZ25vcmVkOjpZ
ZXMpIG92ZXJyaWRlOwogICAgIHZvaWQgaW5zZXJ0Q2hpbGQoQVhDb3JlT2JqZWN0KiwgdW5zaWdu
ZWQsIERlc2NlbmRJZklnbm9yZWQgPSBEZXNjZW5kSWZJZ25vcmVkOjpZZXMpIG92ZXJyaWRlOwog
ICAgIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBoYXND
aGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFBy
b3BlcnR5TmFtZTo6SGFzQ2hpbGRyZW4pOyB9CisgICAgYm9vbCBjaGlsZHJlbkluaXRpYWxpemVk
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgc2V0TmVlZHNUb1Vw
ZGF0ZUNoaWxkcmVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXROZWVkc1RvVXBkYXRlU3VidHJl
ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJDaGlsZHJlbigpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRUcmVlLmgKaW5kZXggN2FlZTRmODJlOWExYzY4MmJhM2EzNzFjMzg1ZDVhYzlhMTE0ZDY5
ZC4uNzkxZmFmNTMyMzAzMGQ2MDRiMDRiMjc3ZWVlYjBlNTMxNTg4ZjU3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5oCkBAIC0xMTgsNyArMTE4LDYgQEAgZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6
IHVpbnQxNl90IHsKICAgICBIYXNBUklBVmFsdWVOb3csCiAgICAgSGFzQXBwbGVQREZBbm5vdGF0
aW9uQXR0cmlidXRlLAogICAgIEhhc0JvbGRGb250LAotICAgIEhhc0NoaWxkcmVuLAogICAgIEhh
c0hpZ2hsaWdodGluZywKICAgICBIYXNJdGFsaWNGb250LAogICAgIEhhc1BsYWluVGV4dCwK
</data>

          </attachment>
      

    </bug>

</bugzilla>