<?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>233344</bug_id>
          
          <creation_ts>2021-11-18 16:35:55 -0800</creation_ts>
          <short_desc>Support ray() shape in offset-path</short_desc>
          <delta_ts>2022-05-09 23:50:04 -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>CSS</component>
          <version>Safari Technology Preview</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>
          <dependson>233153</dependson>
          <blocked>203847</blocked>
    
    <blocked>240259</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kiet Ho">kiet.ho</reporter>
          <assigned_to name="Nikos Mouchtaris">nmouchtaris</assigned_to>
          <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>nmouchtaris</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1816690</commentid>
    <comment_count>0</comment_count>
    <who name="Kiet Ho">kiet.ho</who>
    <bug_when>2021-11-18 16:35:55 -0800</bug_when>
    <thetext>Support ray() shape in offset-path. This includes:

* Support for parsing ray() (https://bugs.webkit.org/show_bug.cgi?id=233153)
* Use offset-position as the starting position of a ray() (this patch)
* Figure out the location on a ray() path to move an element to (this patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816937</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-19 11:08:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/85611980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858669</commentid>
    <comment_count>2</comment_count>
      <attachid>456773</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2022-04-05 18:22:12 -0700</bug_when>
    <thetext>Created attachment 456773
wip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866702</commentid>
    <comment_count>3</comment_count>
      <attachid>458841</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2022-05-04 19:06:56 -0700</bug_when>
    <thetext>Created attachment 458841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866959</commentid>
    <comment_count>4</comment_count>
      <attachid>458841</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-05 13:20:41 -0700</bug_when>
    <thetext>Comment on attachment 458841
Patch

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

&gt; Source/WebCore/rendering/PathOperation.cpp:58
&gt; +static double toPositiveAngle(double angle)
&gt; +{
&gt; +    angle = fmod(angle, 360);
&gt; +    while (angle &lt; 0)
&gt; +        angle += 360.0;
&gt; +    return angle;
&gt; +}

This is the same as this code in CSSGradientAngle:
    angleDeg = fmodf(angleDeg, 360);
    if (angleDeg &lt; 0)
        angleDeg += 360;

&gt; Source/WebCore/rendering/PathOperation.cpp:60
&gt; +double RayPathOperation::getLengthForPath() const

We don&apos;t use &apos;get&apos; in function names, so just &apos;lengthForPath()&quot;

&gt; Source/WebCore/rendering/PathOperation.cpp:86
&gt; +        // Get possible intersection sides
&gt; +        double s1 = cos(radians) &gt;= 0 ? top : bottom;
&gt; +        double s2 = sin(radians) &gt;= 0 ? right : left;
&gt; +        // Get intersection side - based on length of tan() * s1
&gt; +        double intersectionSide = sin(radians) * s1 &gt; cos(radians) * s2 ? s1 : s2;

If you can factor bits of this into reusable functions in GeometryUtilities.cpp it would be easier to read.

&gt; Source/WebCore/rendering/PathOperation.cpp:88
&gt; +        double angle = deg2rad(sin(radians) * s1 &gt; cos(radians) * s2 ? 90 - std::fmod(toPositiveAngle(m_angle), 90) : std::fmod(toPositiveAngle(m_angle), 90));

Would prefer not to wrap that very complex expression in deg2rad(), for readability. Use an intermediate variable.

&gt; Source/WebCore/rendering/PathOperation.h:230
&gt;      float m_angle;

This should be initialized: float m_angle { 0 }

&gt; Source/WebCore/rendering/PathOperation.h:232
&gt;      bool m_isContaining;

bool m_isContaining { false }

&gt; Source/WebCore/rendering/RenderLayer.cpp:1326
&gt; +    } else if (pathOperation &amp;&amp; is&lt;RayPathOperation&gt;(pathOperation)) {

I&apos;m surprised that pathOperation is in scope here.

This function would be better with earlier returns:

  auto pathOperation = renderer().style().offsetPath()
  if (!pathOperation)
    return;

  if (is&lt;BoxPathOperation&gt;(*pathOperation)) {
    ...
    return;
  }

  if (is&lt;RayPathOperation&gt;(*operation) {
   ...
  return;
  }

&gt; Source/WebCore/rendering/RenderLayer.h:511
&gt; +    

whitespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867013</commentid>
    <comment_count>5</comment_count>
      <attachid>458919</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2022-05-05 15:32:43 -0700</bug_when>
    <thetext>Created attachment 458919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867014</commentid>
    <comment_count>6</comment_count>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2022-05-05 15:35:47 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Comment on attachment 458841 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=458841&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/PathOperation.cpp:58
&gt; &gt; +static double toPositiveAngle(double angle)
&gt; &gt; +{
&gt; &gt; +    angle = fmod(angle, 360);
&gt; &gt; +    while (angle &lt; 0)
&gt; &gt; +        angle += 360.0;
&gt; &gt; +    return angle;
&gt; &gt; +}
&gt; 
&gt; This is the same as this code in CSSGradientAngle:
&gt;     angleDeg = fmodf(angleDeg, 360);
&gt;     if (angleDeg &lt; 0)
&gt;         angleDeg += 360;

Added shared function in GeometryUtilities.

&gt; 
&gt; &gt; Source/WebCore/rendering/PathOperation.cpp:60
&gt; &gt; +double RayPathOperation::getLengthForPath() const
&gt; 
&gt; We don&apos;t use &apos;get&apos; in function names, so just &apos;lengthForPath()&quot;
&gt; 
Fixed.
&gt; &gt; Source/WebCore/rendering/PathOperation.cpp:86
&gt; &gt; +        // Get possible intersection sides
&gt; &gt; +        double s1 = cos(radians) &gt;= 0 ? top : bottom;
&gt; &gt; +        double s2 = sin(radians) &gt;= 0 ? right : left;
&gt; &gt; +        // Get intersection side - based on length of tan() * s1
&gt; &gt; +        double intersectionSide = sin(radians) * s1 &gt; cos(radians) * s2 ? s1 : s2;
&gt; 
&gt; If you can factor bits of this into reusable functions in
&gt; GeometryUtilities.cpp it would be easier to read.
&gt; 
Added 3 functions in GeometryUtilities that calculate the intermediate values and the final value. Added another function that is used earlier here.
&gt; &gt; Source/WebCore/rendering/PathOperation.cpp:88
&gt; &gt; +        double angle = deg2rad(sin(radians) * s1 &gt; cos(radians) * s2 ? 90 - std::fmod(toPositiveAngle(m_angle), 90) : std::fmod(toPositiveAngle(m_angle), 90));
&gt; 
&gt; Would prefer not to wrap that very complex expression in deg2rad(), for
&gt; readability. Use an intermediate variable.
&gt; 
Fixed.
&gt; &gt; Source/WebCore/rendering/PathOperation.h:230
&gt; &gt;      float m_angle;
&gt; 
&gt; This should be initialized: float m_angle { 0 }
&gt; 
Fixed.
&gt; &gt; Source/WebCore/rendering/PathOperation.h:232
&gt; &gt;      bool m_isContaining;
&gt; 
&gt; bool m_isContaining { false }
&gt; 
Fixed.
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:1326
&gt; &gt; +    } else if (pathOperation &amp;&amp; is&lt;RayPathOperation&gt;(pathOperation)) {
&gt; 
&gt; I&apos;m surprised that pathOperation is in scope here.
&gt; 
&gt; This function would be better with earlier returns:
&gt; 
&gt;   auto pathOperation = renderer().style().offsetPath()
&gt;   if (!pathOperation)
&gt;     return;
&gt; 
&gt;   if (is&lt;BoxPathOperation&gt;(*pathOperation)) {
&gt;     ...
&gt;     return;
&gt;   }
&gt; 
&gt;   if (is&lt;RayPathOperation&gt;(*operation) {
&gt;    ...
&gt;   return;
&gt;   }

Fixed
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.h:511
&gt; &gt; +    
&gt; 
&gt; whitespace
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867020</commentid>
    <comment_count>7</comment_count>
      <attachid>458919</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-05 15:47:28 -0700</bug_when>
    <thetext>Comment on attachment 458919
Patch

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

&gt; Source/WebCore/platform/graphics/GeometryUtilities.h:69
&gt; +double lengthOfRayIntersectionWithBoundingBox(const FloatRect&amp;, const FloatSize&amp;, double);

Name the arguments.

&gt; Source/WebCore/platform/graphics/GeometryUtilities.h:73
&gt; +double lengthOfPointToSideOfIntersection(const FloatRect&amp;, const FloatSize&amp;, double);

I can&apos;t tell what the arguments are from the signature. I&apos;d expect a FloatRect, and a FloatPoint + FloatSize for the ray?

&gt; Source/WebCore/platform/graphics/GeometryUtilities.h:77
&gt; +double angleOfPointToSideOfIntersection(const FloatRect&amp;, const FloatSize&amp;, double, double);

Name the arguments (clarifying if angles are degrees or radians)

&gt; Source/WebCore/platform/graphics/GeometryUtilities.h:80
&gt; +std::tuple&lt;double, double, double, double&gt; distanceOfPointToSidesOfRect(const FloatRect&amp;, const FloatSize&amp;);

Consider RectEdges&lt;double&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867034</commentid>
    <comment_count>8</comment_count>
      <attachid>458923</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2022-05-05 16:21:27 -0700</bug_when>
    <thetext>Created attachment 458923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867035</commentid>
    <comment_count>9</comment_count>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2022-05-05 16:22:12 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; Comment on attachment 458919 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=458919&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GeometryUtilities.h:69
&gt; &gt; +double lengthOfRayIntersectionWithBoundingBox(const FloatRect&amp;, const FloatSize&amp;, double);
&gt; 
&gt; Name the arguments.
&gt; 
Fixed.
&gt; &gt; Source/WebCore/platform/graphics/GeometryUtilities.h:73
&gt; &gt; +double lengthOfPointToSideOfIntersection(const FloatRect&amp;, const FloatSize&amp;, double);
&gt; 
&gt; I can&apos;t tell what the arguments are from the signature. I&apos;d expect a
&gt; FloatRect, and a FloatPoint + FloatSize for the ray?
&gt; 
Fixed.
&gt; &gt; Source/WebCore/platform/graphics/GeometryUtilities.h:77
&gt; &gt; +double angleOfPointToSideOfIntersection(const FloatRect&amp;, const FloatSize&amp;, double, double);
&gt; 
&gt; Name the arguments (clarifying if angles are degrees or radians)
&gt; 
Fixed.
&gt; &gt; Source/WebCore/platform/graphics/GeometryUtilities.h:80
&gt; &gt; +std::tuple&lt;double, double, double, double&gt; distanceOfPointToSidesOfRect(const FloatRect&amp;, const FloatSize&amp;);
&gt; 
&gt; Consider RectEdges&lt;double&gt;

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867048</commentid>
    <comment_count>10</comment_count>
      <attachid>458923</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-05 17:03:20 -0700</bug_when>
    <thetext>Comment on attachment 458923
Patch

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

&gt; Source/WebCore/platform/graphics/GeometryUtilities.h:69
&gt; +double lengthOfRayIntersectionWithBoundingBox(const FloatRect&amp; boundingRect, const FloatSize&amp; position, double angle);

Normally a position would be a FloatPoint, but I guess the position is relative to the rect location? I think it would be better as a FloatPoint in the same coordinate space as the FloatRect.

You have &apos;angle&apos; here and &apos;radians&apos; below. I&apos;d suggest &apos;angleInRadians&apos;. You could also do a `using std::pair&lt;FloatPosition, double&gt; = Ray` which might make these clearer.

&gt; Source/WebCore/platform/graphics/GeometryUtilities.h:73
&gt; +double lengthOfPointToSideOfIntersection(const FloatRect&amp; boundingRect, const FloatSize&amp; position, double radians);

Same comments as above.

&gt; Source/WebCore/platform/graphics/GeometryUtilities.h:76
&gt; +// Given a box and a ray (described by a starting position and angle in degrees), compute the acute angle between the ray
&gt; +// and the line segment from the starting  point to the closest point on the side that the ray intersects with.

Is the &apos;length&apos; argument to this function the value returned from lengthOfPointToSideOfIntersection()? Can we just compute it inside this function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867071</commentid>
    <comment_count>11</comment_count>
      <attachid>458930</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2022-05-05 18:03:20 -0700</bug_when>
    <thetext>Created attachment 458930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867072</commentid>
    <comment_count>12</comment_count>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2022-05-05 18:04:26 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #10)
&gt; Comment on attachment 458923 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=458923&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GeometryUtilities.h:69
&gt; &gt; +double lengthOfRayIntersectionWithBoundingBox(const FloatRect&amp; boundingRect, const FloatSize&amp; position, double angle);
&gt; 
&gt; Normally a position would be a FloatPoint, but I guess the position is
&gt; relative to the rect location? I think it would be better as a FloatPoint in
&gt; the same coordinate space as the FloatRect.
&gt; 
&gt; You have &apos;angle&apos; here and &apos;radians&apos; below. I&apos;d suggest &apos;angleInRadians&apos;. You
&gt; could also do a `using std::pair&lt;FloatPosition, double&gt; = Ray` which might
&gt; make these clearer.
&gt; 
I think std::pair works well here.
&gt; &gt; Source/WebCore/platform/graphics/GeometryUtilities.h:73
&gt; &gt; +double lengthOfPointToSideOfIntersection(const FloatRect&amp; boundingRect, const FloatSize&amp; position, double radians);
&gt; 
&gt; Same comments as above.
&gt; 
Fixed.
&gt; &gt; Source/WebCore/platform/graphics/GeometryUtilities.h:76
&gt; &gt; +// Given a box and a ray (described by a starting position and angle in degrees), compute the acute angle between the ray
&gt; &gt; +// and the line segment from the starting  point to the closest point on the side that the ray intersects with.
&gt; 
&gt; Is the &apos;length&apos; argument to this function the value returned from
&gt; lengthOfPointToSideOfIntersection()? Can we just compute it inside this
&gt; function?
Now computed inside instead of passed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867431</commentid>
    <comment_count>13</comment_count>
      <attachid>458987</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2022-05-06 19:36:52 -0700</bug_when>
    <thetext>Created attachment 458987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867801</commentid>
    <comment_count>14</comment_count>
      <attachid>459087</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2022-05-09 15:36:14 -0700</bug_when>
    <thetext>Created attachment 459087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867838</commentid>
    <comment_count>15</comment_count>
      <attachid>459092</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2022-05-09 21:30:47 -0700</bug_when>
    <thetext>Created attachment 459092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867857</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-09 23:50:00 -0700</bug_when>
    <thetext>Committed r294001 (250437@main): &lt;https://commits.webkit.org/250437@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459092.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456773</attachid>
            <date>2022-04-05 18:22:12 -0700</date>
            <delta_ts>2022-05-04 19:06:54 -0700</delta_ts>
            <desc>wip</desc>
            <filename>bug-233344-20220405182211.patch</filename>
            <type>text/plain</type>
            <size>6480</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE3NjkyYjMyN2YwNWE2
ODk1OTczNmM2MmE3OTQ1YmQ5ZjJiNjUwYS4uZGQyYjVkMGEzMTk3MTIxMjJmMDYyZDhhOWQ2MjMy
MzBkMTgyZWFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIyLTA0LTA1ICBOaWtv
bGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgcmF5KCkgc2hhcGUgaW4gb2Zmc2V0LXBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBzdXBwb3J0IGZvciByYXkuIEludm9sdmVz
IGNhbGN1bGF0aW5nIHRoZSBsZW5ndGggb2YgdGhlIHJheSBiYXNlZCBvbiB0aGUgcGFzc2VkIGlu
CisgICAgICAgIGFyZ3VtZW50LCB0aGVuIGNyZWF0aW5nIGEgbGluZSBwYXRoIHdpdGggdGhlIGFu
Z2xlIGFuZCBsZW5ndGgsIGFuZCB0cmFuc2xhdGluZyB0aGUgbGluZSB0byAKKyAgICAgICAgdGhl
IGNlbnRlciBvZiB0aGUgYm94LiBTdGlsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgY29udGFpbiBhbmQg
Z2V0IHRlc3RzIHBhc3NpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmF5UGF0aE9wZXJhdGlvbjo6Z2V0TGVuZ3RoRm9yUmVjdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSYXlQYXRoT3BlcmF0aW9uOjpwYXRoRm9yUmVmZXJlbmNlUmVjdCBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UGF0
aEZyb21QYXRoT3BlcmF0aW9uKToKKwogMjAyMi0wNC0wNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgdW5uZWNlc3NhcnkgdHJhdmVyc2FsIHdoZW4g
dXBkYXRpbmcgbGlzdCBtYXJrZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjk3OGY1MmZkZTZkZjgwZGUzOWEzNGFkYjY1MzVh
NDIwMjc0MzI0MC4uNTZmYzkxMzE1OWI2NmIzOTFmMWU0ZTIzNTllYjM5OWRlNWEyMDU2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNjk4Miw2ICs2OTgyLDcgQEAKIAkJMUFCN0ZDNjYwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRo
VmFyaWFibGVSZWZlcmVuY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQUI3RkM2NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBhdGhWYXJpYWJsZVJlZmVyZW5j
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUJBN0ZGRjE4OTczNDEyMDBEQ0U5
RDYgLyogVmlzaXRlZExpbmtTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWaXNpdGVkTGlua1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBQkMy
NjAzMjdGRDAyMTQwMDY0RjY4RiAvKiBQYXRoT3BlcmF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdGhPcGVyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQUMyMjYwQTBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBsaWNhdGlv
bkNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NQXBw
bGljYXRpb25DYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzIyNjBC
MERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BcHBsaWNhdGlvbkNhY2hlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFBQzJEODlDMUIxRTI5MUYwMEQ1MkU4NyAvKiBGb250QW50aWFs
aWFzaW5nU3RhdGVTYXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250
QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzIyMDQsNiArMzIyMDUsNyBAQAogCQkJCTU1RUM5NTk3MjA2OUM5MkQwMDdERDBBOSAvKiBQYWlu
dEZyZXF1ZW5jeVRyYWNrZXIuaCAqLywKIAkJCQkwODg1MDY3RDExREEwNDVCMDAxODJCOTggLyog
UGFpbnRJbmZvLmggKi8sCiAJCQkJMDg4NTA2N0UxMURBMDQ1QjAwMTgyQjk4IC8qIFBhaW50UGhh
c2UuaCAqLywKKwkJCQkxQUJDMjYwMzI3RkQwMjE0MDA2NEY2OEYgLyogUGF0aE9wZXJhdGlvbi5j
cHAgKi8sCiAJCQkJRkI5MkRGNDkxNUZFRDA4NzAwOTk0NDMzIC8qIFBhdGhPcGVyYXRpb24uaCAq
LywKIAkJCQlCMkIxRjcxNDBEMDBDQUE4MDA0QUVBNjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVz
LmNwcCAqLywKIAkJCQlCMkIxRjcxNTBEMDBDQUE4MDA0QUVBNjQgLyogUG9pbnRlckV2ZW50c0hp
dFJ1bGVzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9w
ZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5jcHAK
aW5kZXggNTkxYWYxOGUwYmQ1OTY2NmE3NTBjYjk0ZDJmNWJlYjhlNTA5NjY1MS4uMjJhNGE5YWEz
YzlhMmVhMDA0ZjUyODkwOTgzZDk3MjI4NjBhZjQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9QYXRoT3BlcmF0aW9uLmNwcApAQCAtNDgsNCArNDgsMzUgQEAgY29uc3QgU1ZHRWxlbWVu
dCogUmVmZXJlbmNlUGF0aE9wZXJhdGlvbjo6ZWxlbWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fZWxlbWVudC5nZXQoKTsKIH0KKworZG91YmxlIFJheVBhdGhPcGVyYXRpb246OmdldExlbmd0
aEZvclJlY3QoY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QpIGNvbnN0Cit7CisgICAgc3dp
dGNoIChtX3NpemUpIHsKKyAgICBjYXNlIFNpemU6OkNsb3Nlc3RTaWRlOgorICAgICAgICByZXR1
cm4gc3RkOjptaW4oYm91bmRpbmdSZWN0LndpZHRoKCkgLyAyLCBib3VuZGluZ1JlY3QuaGVpZ2h0
KCkgLyAyKTsKKyAgICBjYXNlIFNpemU6OkNsb3Nlc3RDb3JuZXI6CisgICAgICAgIHJldHVybiBz
dGQ6Om1pbihib3VuZGluZ1JlY3Qud2lkdGgoKSAvIDIgKiBzdGQ6OmNvcyg0NSksIGJvdW5kaW5n
UmVjdC5oZWlnaHQoKSAvIDIgKiBzdGQ6OmNvcyg0NSkpOworICAgIGNhc2UgU2l6ZTo6RmFydGhl
c3RTaWRlOgorICAgICAgICByZXR1cm4gc3RkOjptYXgoYm91bmRpbmdSZWN0LndpZHRoKCkgLyAy
LCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkgLyAyKTsKKyAgICBjYXNlIFNpemU6OkZhcnRoZXN0Q29y
bmVyOgorICAgICAgICByZXR1cm4gc3RkOjptYXgoYm91bmRpbmdSZWN0LndpZHRoKCkgLyAyICog
c3RkOjpjb3MoNDUpLCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkgLyAyICogc3RkOjpjb3MoNDUpKTsK
KyAgICBjYXNlIFNpemU6OlNpZGVzOgorICAgICAgICBpZiAobV9hbmdsZSA+IDAgJiYgKG1fYW5n
bGUgPCA5MCB8fCBtX2FuZ2xlID4gMjcwKSkKKyAgICAgICAgICAgIHJldHVybiBib3VuZGluZ1Jl
Y3QuaGVpZ2h0KCkgLyAyICogc3RkOjp0YW4obV9hbmdsZSk7CisgICAgICAgIHJldHVybiBib3Vu
ZGluZ1JlY3Qud2lkdGgoKSAvIDIgKiBzdGQ6OnRhbihtX2FuZ2xlKTsKKyAgICB9Cit9CisKK2Nv
bnN0IFBhdGggUmF5UGF0aE9wZXJhdGlvbjo6cGF0aEZvclJlZmVyZW5jZVJlY3QoY29uc3QgRmxv
YXRSZWN0JiBib3VuZGluZ1JlY3QpIGNvbnN0Cit7CisgICAgUGF0aCBwYXRoOworICAgIGlmIChi
b3VuZGluZ1JlY3QuaXNaZXJvKCkpCisgICAgICAgIHJldHVybiBwYXRoOworICAgIGF1dG8gbGVu
Z3RoID0gZ2V0TGVuZ3RoRm9yUmVjdChib3VuZGluZ1JlY3QpOworICAgIGF1dG8gcG9pbnQgPSBG
bG9hdFBvaW50KHN0ZDo6Y29zKG1fYW5nbGUpICogbGVuZ3RoLCBzdGQ6OnNpbihtX2FuZ2xlKSAq
IGxlbmd0aCk7CisgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnQpOworICAgIHBhdGgudHJhbnNsYXRl
KEZsb2F0U2l6ZShib3VuZGluZ1JlY3Qud2lkdGgoKSAvIDIgLCBib3VuZGluZ1JlY3QuaGVpZ2h0
KCkgLyAyKSk7CisgICAgcmV0dXJuIHBhdGg7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5oCmluZGV4IDc2MjljZGM1ZjQ0
ZTk3MDkwYjgxNGY1OWY1OThmYmNhNWE0YTFlNTIuLjk4NDBhMGM1MzhlMjUyNTQzZTBkMTg2MDM5
ZTlkYmQ4ZjRiNWM1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRo
T3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24u
aApAQCAtMTk1LDYgKzE5NSw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBSYXlQ
YXRoT3BlcmF0aW9uOjpjcmVhdGUoV2ViQ29yZTo6YmxlbmQobV9hbmdsZSwgdG8ubV9hbmdsZSwg
Y29udGV4dCksIG1fc2l6ZSwgbV9pc0NvbnRhaW5pbmcpOwogICAgIH0KKyAgICAKKyAgICBjb25z
dCBQYXRoIHBhdGhGb3JSZWZlcmVuY2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0
KSBjb25zdDsKKyAgICBkb3VibGUgZ2V0TGVuZ3RoRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIGJv
dW5kaW5nUmVjdCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFBhdGhPcGVyYXRpb24mIG90aGVyKSBjb25zdCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggYjViOTIzZTJjMThlMGRhODgx
OGJiMmU4NGI1OWY2MGViNjNhMDljMy4uOThhNjJjNGY3NTQ5ZDdiYTIzYzVmMjYzN2YwZjExM2I5
NTczNjBkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCkBAIC0xNTM0LDggKzE1MzQsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQYXRoPiBn
ZXRQYXRoRnJvbVBhdGhPcGVyYXRpb24oY29uc3QgRmxvYXRSZWN0JiBib3gsIGNvbnN0CiAgICAg
Y2FzZSBQYXRoT3BlcmF0aW9uOjpCb3g6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxCb3hQYXRo
T3BlcmF0aW9uPihvcGVyYXRpb24pLmdldFBhdGgoKTsKICAgICBjYXNlIFBhdGhPcGVyYXRpb246
OlJheToKLSAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCByYXktIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMzNDQKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJheVBhdGhPcGVyYXRpb24+KG9wZXJhdGlvbiku
cGF0aEZvclJlZmVyZW5jZVJlY3QoYm94KTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458841</attachid>
            <date>2022-05-04 19:06:56 -0700</date>
            <delta_ts>2022-05-05 13:20:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233344-20220504190655.patch</filename>
            <type>text/plain</type>
            <size>15230</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFjMmVmYmM0MDg3YzA1
N2RiZWIzY2Y5ZjZjMDkwYzk2MGU4NDBiZS4uMDhiMWY3M2U0NjNiODJmYmQ1MmUyZWFiMTY4YmM4
OTZjZjlmZTkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIyLTA1LTA0ICBOaWtv
bGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgcmF5KCkgc2hhcGUgaW4gb2Zmc2V0LXBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZW5kZXJpbmcgcmF5IHBhdGgu
IEludm9sdmVzIGdldHRpbmcgY29udGFpbmluZyBibG9jayBhbmQgb2Zmc2V0CisgICAgICAgIG9m
IHRoZSBlbGVtZW50IGZyb20gdGhlIGNvbnRhaW5pbmcgYmxvY2suIFVzaW5nIHRoZSBzaXplIG9m
IHRoZSBjb250YWluaW5nIGJsb2NrCisgICAgICAgIGFuZCBvZmZzZXQsIGNhbGN1bGF0ZSB0aGUg
bGVuZ3RoIG9mIHRoZSByYXkgYW5kIGNyZWF0ZSBhIExpbmUgcGF0aCB1c2luZyB0aGUgbGVuZ3Ro
CisgICAgICAgIGFuZCBhbmdsZS4gQ2FsY3VsYXRpbmcgY2xvc2VzdC9mYXJ0aGVzdC1zaWRlIGFu
ZCBjbG9zZXN0L2ZhcnRoZXN0LWNvcm5lciBhcmUgc2ltcGxlIAorICAgICAgICBidXQgY2FsY3Vs
YXRpbmcgc2lkZSByZXF1aXJlcyBzb21lIGV4cGxhbmF0aW9uLiBGaXJzdCwgd2UgZ2V0IHRoZSB0
d28gcG9zc2libGUgc2lkZXMgb2YgCisgICAgICAgIHRoZSBjb250YWluaW5nIGJsb2NrIHRoZSBy
YXkgY291bGQgYmUgaW50ZXJzZWN0aW5nIHdpdGgsIGJhc2VkIG9uIHRoZSBhbmdsZS4gVG8gY2Fs
Y3VsYXRlIAorICAgICAgICB3aGljaCBzaWRlIGlzIGJlaW5nIGludGVyc2VjdGVkLCBpZiB0YW4o
dGhldGEpICogdG9wL2JvdHRvbSBpcyBvdXRzaWRlIG9mIHRoZSBjb250YWluaW5nIAorICAgICAg
ICBibG9jaywgdGhpcyBtZWFucyB0aGF0IHRoZSByYXkgaXMgaW50ZXJzZWN0aW5nIHdpdGggdGhl
IG90aGVyIHNpZGUuIEZpbmFsbHksIHdlIGNhbGN1bGF0ZSAKKyAgICAgICAgdGhlIGFjdXRlIGFu
Z2xlIGJhc2VkIG9uIHdoaWNoIHNpZGUgd2UgaW50ZXJzZWN0ZWQgd2l0aC4gVXNpbmcgdGhlIGxl
bmd0aCBhbmQgYW5nbGUsIHdlIAorICAgICAgICBjYWxjdWxhdGUgdGhlIGxlbmd0aCBvZiB0aGUg
aHlwb3RlbnVzZSwgd2hpY2ggY29ycmVzcG9uZHMgd2l0aCB0aGUgbGVuZ3RoIG9mIHRoZSBzdGFy
dCBwb2ludAorICAgICAgICBvZiB0aGUgcmF5IHRvIGl0cyBpbnRlcnNlY3Rpb24gd2l0aCBhIHNp
ZGUgb2YgdGhlIGNvbnRhaW5pbmcgYmxvY2suIFRlc3QgNyBpcyBzdGlsbCBmYWlsaW5nIAorICAg
ICAgICBkdWUgdG8gZ2V0dGluZyBpbmNvcnJlY3Qgd2lkdGggb2YgY29udGFpbmluZyBibG9jayAo
ZG9lc24ndCBoYXBwZW4gd2hlbiBhbmltYXRpbmcgdGhlIHBhdGgKKyAgICAgICAgZm9yIHNvbWUg
cmVhc29uKS4gV2lsbCBpbXBsZW1lbnQgY29udGFpbiBpbiBhbm90aGVyIHBhdGNoLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJlbmRl
cmluZy9QYXRoT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUG9zaXRpdmVBbmds
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSYXlQYXRoT3BlcmF0aW9uOjpnZXRMZW5ndGhGb3JQYXRo
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJheVBhdGhPcGVyYXRpb246OnBhdGhGb3JSZWZl
cmVuY2VSZWN0IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6c2V0UmVmZXJlbmNlQm94Rm9yUGF0aE9wZXJhdGlvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFBhdGhGcm9tUGF0aE9wZXJhdGlvbik6CisKIDIw
MjItMDQtMjggIFBoaWxpcHBlIE5vcm1hbmQgIDxwaGlsbkBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHU3RyZWFtZXJdIFBpcGV3aXJlIGRpc3BsYXkgY2FwdHVyZSBicm9rZW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YmExYjgy
MDM1MmMxNGQ5NjA2NjMzZjMwMWY5ZDQ1MzcyOGUyZTI1Li5kNzNiYWYyYmRjY2ZiMjkwN2QxNzI1
ZTQyMGVjNGQ3MjAyMzM1NDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02OTg3LDYgKzY5ODcsNyBAQAogCQkxQUI3RkM2NjBB
OEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQjdGQzY3MEE4QjkyRUMwMEQ5RDM3QiAvKiBY
UGF0aFZhcmlhYmxlUmVmZXJlbmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFBQkE3RkZGMTg5NzM0MTIwMERDRTlENiAvKiBWaXNpdGVkTGlua1N0b3JlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpc2l0ZWRMaW5rU3RvcmUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUFCQzI2MDMyN0ZEMDIxNDAwNjRGNjhGIC8qIFBhdGhPcGVyYXRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGF0aE9wZXJhdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzIyNjBBMERCNjlGMTkwMDg5
QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUFDMjI2MEIwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRp
b25DYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTUFwcGxpY2F0
aW9uQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFDMkQ4OUMxQjFFMjkx
RjAwRDUyRTg3IC8qIEZvbnRBbnRpYWxpYXNpbmdTdGF0ZVNhdmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRBbnRpYWxpYXNpbmdTdGF0ZVNhdmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjI0Nyw2ICszMjI0OCw3IEBACiAJCQkJNTVFQzk1OTcy
MDY5QzkyRDAwN0REMEE5IC8qIFBhaW50RnJlcXVlbmN5VHJhY2tlci5oICovLAogCQkJCTA4ODUw
NjdEMTFEQTA0NUIwMDE4MkI5OCAvKiBQYWludEluZm8uaCAqLywKIAkJCQkwODg1MDY3RTExREEw
NDVCMDAxODJCOTggLyogUGFpbnRQaGFzZS5oICovLAorCQkJCTFBQkMyNjAzMjdGRDAyMTQwMDY0
RjY4RiAvKiBQYXRoT3BlcmF0aW9uLmNwcCAqLywKIAkJCQlGQjkyREY0OTE1RkVEMDg3MDA5OTQ0
MzMgLyogUGF0aE9wZXJhdGlvbi5oICovLAogCQkJCUIyQjFGNzE0MEQwMENBQTgwMDRBRUE2NCAv
KiBQb2ludGVyRXZlbnRzSGl0UnVsZXMuY3BwICovLAogCQkJCUIyQjFGNzE1MEQwMENBQTgwMDRB
RUE2NCAvKiBQb2ludGVyRXZlbnRzSGl0UnVsZXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9QYXRoT3BlcmF0aW9uLmNwcAppbmRleCBmYTNiOWI2ZjVjNzljYzE3ZWYwZTA2MTk5Njg1
NmM3MDM3ZjYxZjhmLi5mZDE3ZDE5YzA0ODdiYzRjZmY4MjA1M2FkOTcwN2QyMWI1ZWQyMTI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uY3BwCkBAIC00OCw0ICs0
OCw1OCBAQCBjb25zdCBTVkdFbGVtZW50KiBSZWZlcmVuY2VQYXRoT3BlcmF0aW9uOjplbGVtZW50
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9lbGVtZW50LmdldCgpOwogfQorCitzdGF0aWMgZG91
YmxlIHRvUG9zaXRpdmVBbmdsZShkb3VibGUgYW5nbGUpCit7CisgICAgYW5nbGUgPSBmbW9kKGFu
Z2xlLCAzNjApOworICAgIHdoaWxlIChhbmdsZSA8IDApCisgICAgICAgIGFuZ2xlICs9IDM2MC4w
OworICAgIHJldHVybiBhbmdsZTsKK30KKworZG91YmxlIFJheVBhdGhPcGVyYXRpb246OmdldExl
bmd0aEZvclBhdGgoKSBjb25zdAoreworICAgIGF1dG8gYm91bmRpbmdCb3ggPSBtX2NvbnRhaW5p
bmdCbG9ja0JvdW5kaW5nUmVjdDsKKyAgICAvLyBEaXN0YW5jZSB0byBlYWNoIHNpZGUgb2YgdGhl
IGNvbnRhaW5pbmcgYm94CisgICAgZG91YmxlIHRvcCA9IHN0ZDo6YWJzKG1fcG9zaXRpb24uaGVp
Z2h0KCkpOworICAgIGRvdWJsZSBib3R0b20gPSBzdGQ6OmFicyhtX3Bvc2l0aW9uLmhlaWdodCgp
IC0gYm91bmRpbmdCb3guaGVpZ2h0KCkpOworICAgIGRvdWJsZSBsZWZ0ID0gc3RkOjphYnMobV9w
b3NpdGlvbi53aWR0aCgpKTsKKyAgICBkb3VibGUgcmlnaHQgPSBzdGQ6OmFicyhtX3Bvc2l0aW9u
LndpZHRoKCkgLSBib3VuZGluZ0JveC53aWR0aCgpKTsKKyAgICAKKyAgICBzd2l0Y2ggKG1fc2l6
ZSkgeworICAgIGNhc2UgU2l6ZTo6Q2xvc2VzdFNpZGU6CisgICAgICAgIHJldHVybiBzdGQ6Om1p
biggeyB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHQgfSApOworICAgIGNhc2UgU2l6ZTo6RmFydGhl
c3RTaWRlOgorICAgICAgICByZXR1cm4gc3RkOjptYXgoIHsgdG9wLCBib3R0b20sIGxlZnQsIHJp
Z2h0IH0gKTsKKyAgICBjYXNlIFNpemU6OkZhcnRoZXN0Q29ybmVyOgorICAgICAgICByZXR1cm4g
c3RkOjpzcXJ0KHN0ZDo6cG93KHN0ZDo6bWF4KGxlZnQsIHJpZ2h0KSwgMikgKyBzdGQ6OnBvdyhz
dGQ6Om1heCh0b3AsIGJvdHRvbSksIDIpKTsKKyAgICBjYXNlIFNpemU6OkNsb3Nlc3RDb3JuZXI6
CisgICAgICAgIHJldHVybiBzdGQ6OnNxcnQoc3RkOjpwb3coc3RkOjptaW4obGVmdCwgcmlnaHQp
LCAyKSArIHN0ZDo6cG93KHN0ZDo6bWluKHRvcCwgYm90dG9tKSwgMikpOworICAgIGNhc2UgU2l6
ZTo6U2lkZXM6CisgICAgICAgIGlmIChtX3Bvc2l0aW9uLndpZHRoKCkgPCAwIHx8IG1fcG9zaXRp
b24ud2lkdGgoKSA+IGJvdW5kaW5nQm94LndpZHRoKCkgfHwgbV9wb3NpdGlvbi5oZWlnaHQoKSA8
IDAgfHwgbV9wb3NpdGlvbi5oZWlnaHQoKSA+IGJvdW5kaW5nQm94LmhlaWdodCgpKQorICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIGF1dG8gcmFkaWFucyA9IGRlZzJyYWQobV9hbmdsZSk7
CisgICAgICAgIC8vIEdldCBwb3NzaWJsZSBpbnRlcnNlY3Rpb24gc2lkZXMKKyAgICAgICAgZG91
YmxlIHMxID0gY29zKHJhZGlhbnMpID49IDAgPyB0b3AgOiBib3R0b207CisgICAgICAgIGRvdWJs
ZSBzMiA9IHNpbihyYWRpYW5zKSA+PSAwID8gcmlnaHQgOiBsZWZ0OworICAgICAgICAvLyBHZXQg
aW50ZXJzZWN0aW9uIHNpZGUgLSBiYXNlZCBvbiBsZW5ndGggb2YgdGFuKCkgKiBzMQorICAgICAg
ICBkb3VibGUgaW50ZXJzZWN0aW9uU2lkZSA9IHNpbihyYWRpYW5zKSAqIHMxID4gY29zKHJhZGlh
bnMpICogczIgPyBzMSA6IHMyOworICAgICAgICAvLyBDYWxjdWxhdGUgYW5nbGUgYmFzZWQgb24g
d2hhdCBzaWRlIHdlIGludGVyc2VjdGVkIHdpdGgKKyAgICAgICAgZG91YmxlIGFuZ2xlID0gZGVn
MnJhZChzaW4ocmFkaWFucykgKiBzMSA+IGNvcyhyYWRpYW5zKSAqIHMyID8gOTAgLSBzdGQ6OmZt
b2QodG9Qb3NpdGl2ZUFuZ2xlKG1fYW5nbGUpLCA5MCkgOiBzdGQ6OmZtb2QodG9Qb3NpdGl2ZUFu
Z2xlKG1fYW5nbGUpLCA5MCkpOworICAgICAgICByZXR1cm4gaW50ZXJzZWN0aW9uU2lkZSAvIGNv
cyhhbmdsZSk7CisgICAgfQorfQorCitjb25zdCBQYXRoIFJheVBhdGhPcGVyYXRpb246OnBhdGhG
b3JSZWZlcmVuY2VSZWN0KCkgY29uc3QKK3sKKyAgICBQYXRoIHBhdGg7CisgICAgaWYgKG1fY29u
dGFpbmluZ0Jsb2NrQm91bmRpbmdSZWN0LmlzWmVybygpKQorICAgICAgICByZXR1cm4gcGF0aDsK
KyAgICBhdXRvIGxlbmd0aCA9IGdldExlbmd0aEZvclBhdGgoKTsKKyAgICBhdXRvIHJhZGlhbnMg
PSBkZWcycmFkKHRvUG9zaXRpdmVBbmdsZShtX2FuZ2xlKSAtIDkwKTsKKyAgICBhdXRvIHBvaW50
ID0gRmxvYXRQb2ludChzdGQ6OmNvcyhyYWRpYW5zKSAqIGxlbmd0aCwgc3RkOjpzaW4ocmFkaWFu
cykgKiBsZW5ndGgpOworICAgIHBhdGguYWRkTGluZVRvKHBvaW50KTsKKyAgICByZXR1cm4gcGF0
aDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Q
YXRoT3BlcmF0aW9uLmgKaW5kZXggZDZlMDA5OTZmZjg3NTlkMTZiOWZkMjdkN2U0YWE4NzAxNDNl
NWRlZi4uYjcxYzlkMDI0NDgzZTNmMzRkYzcyODUwYjM0NzY4N2Y4NWVmNWE3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5oCkBAIC0xOTUsNyArMTk1LDE4IEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBSYXlQYXRoT3BlcmF0aW9uOjpjcmVhdGUoV2Vi
Q29yZTo6YmxlbmQobV9hbmdsZSwgdG8ubV9hbmdsZSwgY29udGV4dCksIG1fc2l6ZSwgbV9pc0Nv
bnRhaW5pbmcpOwogICAgIH0KLQorICAgIAorICAgIGNvbnN0IFBhdGggcGF0aEZvclJlZmVyZW5j
ZVJlY3QoKSBjb25zdDsKKyAgICBkb3VibGUgZ2V0TGVuZ3RoRm9yUGF0aCgpIGNvbnN0OworICAg
IAorICAgIHZvaWQgc2V0Q29udGFpbmluZ0Jsb2Fja1JlZmVyZW5jZVJlY3QoY29uc3QgRmxvYXRS
ZWN0JiBib3VuZGluZ1JlY3QpCisgICAgeworICAgICAgICBtX2NvbnRhaW5pbmdCbG9ja0JvdW5k
aW5nUmVjdCA9IGJvdW5kaW5nUmVjdDsKKyAgICB9CisgICAgdm9pZCBzZXRTdGFydGluZ1Bvc2l0
aW9uKGNvbnN0IEZsb2F0U2l6ZSYgcG9zaXRpb24pCisgICAgeworICAgICAgICBtX3Bvc2l0aW9u
ID0gcG9zaXRpb247CisgICAgfQogcHJpdmF0ZToKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
UGF0aE9wZXJhdGlvbiYgb3RoZXIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpAQCAtMjE5LDYgKzIz
MCw4IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9hbmdsZTsKICAgICBTaXplIG1fc2l6ZTsKICAg
ICBib29sIG1faXNDb250YWluaW5nOworICAgIEZsb2F0UmVjdCBtX2NvbnRhaW5pbmdCbG9ja0Jv
dW5kaW5nUmVjdDsKKyAgICBGbG9hdFNpemUgbV9wb3NpdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4
IGJiNGQzYTRlNDYyYmNjOTc1NjZlZmJhNDliOGQxODM5NzhjYTRhM2MuLmJmZWY0OWM5NmE4MTNi
YmJkMjQ1ZGI2Y2EwNGQwMmZhYzRmNDllNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcApAQCAtMTMxNyw2ICsxMzE3LDI4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVw
ZGF0ZVRyYW5zZm9ybUZyb21TdHlsZShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBj
b25zCiAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUodHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5z
Zm9ybXMoKSk7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNldFJlZmVyZW5jZUJveEZvclBhdGhP
cGVyYXRpb25zKCkKK3sKKyAgICBpZiAoYXV0byBwYXRoT3BlcmF0aW9uID0gcmVuZGVyZXIoKS5z
dHlsZSgpLm9mZnNldFBhdGgoKTsgcGF0aE9wZXJhdGlvbiAmJiBpczxCb3hQYXRoT3BlcmF0aW9u
PihwYXRoT3BlcmF0aW9uKSkgeworICAgICAgICBhdXRvJiBib3hQYXRoT3BlcmF0aW9uID0gZG93
bmNhc3Q8Qm94UGF0aE9wZXJhdGlvbj4oKnBhdGhPcGVyYXRpb24pOworICAgICAgICBhdXRvIHBh
dGhSZWZlcmVuY2VCb3hSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVsc0lmTmVlZGVkKHJlbmRl
cmVyKCkucmVmZXJlbmNlQm94UmVjdChib3hQYXRoT3BlcmF0aW9uLnJlZmVyZW5jZUJveCgpKSwg
cmVuZGVyZXIoKSk7CisgICAgICAgIGJveFBhdGhPcGVyYXRpb24uc2V0UGF0aEZvclJlZmVyZW5j
ZVJlY3QoRmxvYXRSb3VuZGVkUmVjdCB7IHBhdGhSZWZlcmVuY2VCb3hSZWN0IH0pOworICAgIH0g
ZWxzZSBpZiAocGF0aE9wZXJhdGlvbiAmJiBpczxSYXlQYXRoT3BlcmF0aW9uPihwYXRoT3BlcmF0
aW9uKSkgeworICAgICAgICBpZiAoY29uc3QgYXV0byogY29udGFpbmluZ0Jsb2NrID0gcmVuZGVy
ZXIoKS5jb250YWluaW5nQmxvY2soKSkgeworICAgICAgICAgICAgYXV0byYgcmF5UGF0aE9wZXJh
dGlvbiA9IGRvd25jYXN0PFJheVBhdGhPcGVyYXRpb24+KCpwYXRoT3BlcmF0aW9uKTsKKyAgICAg
ICAgICAgIGF1dG8gcGF0aFJlZmVyZW5jZUJveFJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxz
SWZOZWVkZWQoY29udGFpbmluZ0Jsb2NrLT50cmFuc2Zvcm1SZWZlcmVuY2VCb3hSZWN0KGNvbnRh
aW5pbmdCbG9jay0+c3R5bGUoKSksIHJlbmRlcmVyKCkpOworICAgICAgICAgICAgaWYgKCFwYXRo
UmVmZXJlbmNlQm94UmVjdC53aWR0aCgpKQorICAgICAgICAgICAgICAgIHBhdGhSZWZlcmVuY2VC
b3hSZWN0LnNldFdpZHRoKHBhdGhSZWZlcmVuY2VCb3hSZWN0LmhlaWdodCgpKTsKKyAgICAgICAg
ICAgIGlmICghcGF0aFJlZmVyZW5jZUJveFJlY3QuaGVpZ2h0KCkpCisgICAgICAgICAgICAgICAg
cGF0aFJlZmVyZW5jZUJveFJlY3Quc2V0SGVpZ2h0KHBhdGhSZWZlcmVuY2VCb3hSZWN0LndpZHRo
KCkpOworICAgICAgICAgICAgcmF5UGF0aE9wZXJhdGlvbi5zZXRDb250YWluaW5nQmxvYWNrUmVm
ZXJlbmNlUmVjdChwYXRoUmVmZXJlbmNlQm94UmVjdCk7CisgICAgICAgICAgICBhdXRvIGxlZnQg
PSByZW5kZXJlcigpLnN0eWxlKCkubGVmdCgpOworICAgICAgICAgICAgYXV0byB0b3AgPSByZW5k
ZXJlcigpLnN0eWxlKCkudG9wKCk7CisgICAgICAgICAgICByYXlQYXRoT3BlcmF0aW9uLnNldFN0
YXJ0aW5nUG9zaXRpb24oRmxvYXRTaXplKGxlZnQuaXNQZXJjZW50KCkgPyBsZWZ0LnZhbHVlKCkg
LyAxMDAgKiBwYXRoUmVmZXJlbmNlQm94UmVjdC53aWR0aCgpIDogbGVmdC52YWx1ZSgpLCB0b3Au
aXNQZXJjZW50KCkgPyB0b3AudmFsdWUoKSAvIDEwMCAqIHBhdGhSZWZlcmVuY2VCb3hSZWN0Lmhl
aWdodCgpIDogdG9wLnZhbHVlKCkpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkKIHsKICAgICBib29sIGhhc1RyYW5zZm9ybSA9IHJl
bmRlcmVyKCkuaGFzVHJhbnNmb3JtKCk7CkBAIC0xMzM1LDEzICsxMzU3LDcgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkKICAgICAKICAgICBpZiAoaGFzVHJhbnNmb3JtKSB7
CiAgICAgICAgIG1fdHJhbnNmb3JtLT5tYWtlSWRlbnRpdHkoKTsKLQotICAgICAgICBpZiAoYXV0
byBwYXRoT3BlcmF0aW9uID0gcmVuZGVyZXIoKS5zdHlsZSgpLm9mZnNldFBhdGgoKTsgcGF0aE9w
ZXJhdGlvbiAmJiBpczxCb3hQYXRoT3BlcmF0aW9uPihwYXRoT3BlcmF0aW9uKSkgewotICAgICAg
ICAgICAgYXV0byYgYm94UGF0aE9wZXJhdGlvbiA9IGRvd25jYXN0PEJveFBhdGhPcGVyYXRpb24+
KCpwYXRoT3BlcmF0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gcGF0aFJlZmVyZW5jZUJveFJlY3Qg
PSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzSWZOZWVkZWQocmVuZGVyZXIoKS5yZWZlcmVuY2VCb3hS
ZWN0KGJveFBhdGhPcGVyYXRpb24ucmVmZXJlbmNlQm94KCkpLCByZW5kZXJlcigpKTsKLSAgICAg
ICAgICAgIGJveFBhdGhPcGVyYXRpb24uc2V0UGF0aEZvclJlZmVyZW5jZVJlY3QoRmxvYXRSb3Vu
ZGVkUmVjdCB7IHBhdGhSZWZlcmVuY2VCb3hSZWN0IH0pOwotICAgICAgICB9Ci0KKyAgICAgICAg
c2V0UmVmZXJlbmNlQm94Rm9yUGF0aE9wZXJhdGlvbnMoKTsKICAgICAgICAgdXBkYXRlVHJhbnNm
b3JtRnJvbVN0eWxlKCptX3RyYW5zZm9ybSwgcmVuZGVyZXIoKS5zdHlsZSgpLCBSZW5kZXJTdHls
ZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCmluZGV4IDgwNDc2MWE4ZjkyMDAwNGU4ZmRkNDI3ZTE4ZDRhNzk4NDUx
MzFiOWQuLjFlZDY4NjUzMzQwZmM0M2MzNTI3ODA3MGE3ZTIwZWMyYzczYWMzNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC01MDgsNyArNTA4LDggQEAgcHVibGlj
OgogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBtX2VuY2xvc2lu
Z1BhZ2luYXRpb25MYXllci5nZXQoKTsKICAgICB9Ci0KKyAgICAKKyAgICB2b2lkIHNldFJlZmVy
ZW5jZUJveEZvclBhdGhPcGVyYXRpb25zKCk7CiAgICAgdm9pZCB1cGRhdGVUcmFuc2Zvcm0oKTsK
ICAgICAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggOWI2OGU3YmZmNzAxODBmZGQ3MmJj
Yjc2OTNlNmFhMmIxMzIzNTAzOC4uOWEwMDA2MzRhODBlYWFkOTk1NWQ4OWM4OGYzMGQ1M2IxNTRh
NDNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCkBAIC0xNTM4LDggKzE1MzgsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQYXRoPiBnZXRQ
YXRoRnJvbVBhdGhPcGVyYXRpb24oY29uc3QgRmxvYXRSZWN0JiBib3gsIGNvbnN0CiAgICAgY2Fz
ZSBQYXRoT3BlcmF0aW9uOjpCb3g6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxCb3hQYXRoT3Bl
cmF0aW9uPihvcGVyYXRpb24pLmdldFBhdGgoKTsKICAgICBjYXNlIFBhdGhPcGVyYXRpb246OlJh
eToKLSAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCByYXktIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMzNDQKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJheVBhdGhPcGVyYXRpb24+KG9wZXJhdGlvbikucGF0
aEZvclJlZmVyZW5jZVJlY3QoKTsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBlNjBlODQ3NmM4ODVmYzU0YmU1MDhiM2U0NWQ2OGMxNDIxZjY2NWQ2
Li42YWYwNjBkNDEzNDQ5YzkxZWMyN2FhYzA5NjY0ZTNkNWY1MGEyZGFkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMjItMDUtMDQgIE5pa29sYW9zIE1vdWNodGFyaXMgIDxubW91Y2h0YXJpc0Bh
cHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCByYXkoKSBzaGFwZSBpbiBvZmZzZXQtcGF0aAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhw
ZWN0YXRpb25zOgorCiAyMDIyLTA0LTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFsgbWFjT1MgRGVidWcgd2syIF0gVGhpcnRlZW4gaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzLyBhcmUgYSBmbGFreSBjcmFzaCAoQVNTRVJUSU9OIEZBSUxFRDogd2lsbEJl
Q29tcG9zaXRlZCA9PSBuZWVkc1RvQmVDb21wb3NpdGVkKGxheWVyLCBxdWVyeURhdGEpKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNGQyMjU4NWE0M2Q4ZGYxNjAzZDU4YWVkODBmZDY1OTBiM2ViMTAw
My4uMDA0OTI1YzM3YjZjMjhjYzk1MDk0NGRmMzA2OWFlMTZhZjliZTI2OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC01MDcyLDE2ICs1MDcyLDggQEAgd2Via2l0Lm9yZy9iLzIzMzM0MCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LWFuY2hvci10cmEKIHdl
YmtpdC5vcmcvYi8yMzMzNDAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90
aW9uL29mZnNldC1hbmNob3ItdHJhbnNmb3JtLWJveC1maWxsLWJveC0wMDIuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIzMzM0MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LWFuY2hvci10cmFuc2Zvcm0tYm94LWZpbGwtYm94
LTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLSMgQ1NTIG1vdGlvbiBwYXRoIHRoYXQg
ZGVwZW5kcyBvbiByYXkoKSwgY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZC4KLXdlYmtpdC5vcmcv
Yi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNl
dC1wYXRoLXJheS0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIz
MzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBh
dGgtcmF5LTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMzMzQ0
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1y
YXktMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzMzNDQgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0w
MDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwNS5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktMDA2Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KKyMgQ1NTIG1vdGlvbiBwYXRoIG5lZWRzIHRvIGltcGxlbWVu
dCBjb250YWluLgogd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwNy5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktMDA4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0wMDkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQog
d2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9t
b3Rpb24vb2Zmc2V0LXBhdGgtcmF5LWNvbnRhaW4tMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvbW90aW9uL29mZnNldC1wYXRoLXJheS1jb250YWluLTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktY29udGFpbi0wMDMuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQo=
</data>
<flag name="review"
          id="487796"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458919</attachid>
            <date>2022-05-05 15:32:43 -0700</date>
            <delta_ts>2022-05-06 14:24:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233344-20220505153242.patch</filename>
            <type>text/plain</type>
            <size>19753</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFjMmVmYmM0MDg3YzA1
N2RiZWIzY2Y5ZjZjMDkwYzk2MGU4NDBiZS4uODY2Y2MzMWU0NTZmZjY1ZGVmNDA2MzRkYmU5YWM3
N2FmOTZhZGU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIyLTA1LTA0ICBOaWtv
bGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgcmF5KCkgc2hhcGUgaW4gb2Zmc2V0LXBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIHJheSBwYXRoLiBJ
bnZvbHZlcyBnZXR0aW5nIGNvbnRhaW5pbmcgYmxvY2sgYW5kIG9mZnNldAorICAgICAgICBvZiB0
aGUgZWxlbWVudCBmcm9tIHRoZSBjb250YWluaW5nIGJsb2NrLiBVc2luZyB0aGUgc2l6ZSBvZiB0
aGUgY29udGFpbmluZyBibG9jaworICAgICAgICBhbmQgb2Zmc2V0LCBjYWxjdWxhdGUgdGhlIGxl
bmd0aCBvZiB0aGUgcmF5IGFuZCBjcmVhdGUgYSBMaW5lIHBhdGggdXNpbmcgdGhlIGxlbmd0aAor
ICAgICAgICBhbmQgYW5nbGUuIENhbGN1bGF0aW5nIGNsb3Nlc3QvZmFydGhlc3Qtc2lkZSBhbmQg
Y2xvc2VzdC9mYXJ0aGVzdC1jb3JuZXIgYXJlIHNpbXBsZSAKKyAgICAgICAgYnV0IGNhbGN1bGF0
aW5nIHNpZGUgcmVxdWlyZXMgc29tZSBleHBsYW5hdGlvbi4gRmlyc3QsIHdlIGdldCB0aGUgdHdv
IHBvc3NpYmxlIHNpZGVzIG9mIAorICAgICAgICB0aGUgY29udGFpbmluZyBibG9jayB0aGUgcmF5
IGNvdWxkIGJlIGludGVyc2VjdGluZyB3aXRoLCBiYXNlZCBvbiB0aGUgYW5nbGUuIFRvIGNhbGN1
bGF0ZSAKKyAgICAgICAgd2hpY2ggc2lkZSBpcyBiZWluZyBpbnRlcnNlY3RlZCwgaWYgdGFuKHRo
ZXRhKSAqIHRvcC9ib3R0b20gaXMgb3V0c2lkZSBvZiB0aGUgY29udGFpbmluZyAKKyAgICAgICAg
YmxvY2ssIHRoaXMgbWVhbnMgdGhhdCB0aGUgcmF5IGlzIGludGVyc2VjdGluZyB3aXRoIHRoZSBv
dGhlciBzaWRlLiBGaW5hbGx5LCB3ZSBjYWxjdWxhdGUgCisgICAgICAgIHRoZSBhY3V0ZSBhbmds
ZSBiYXNlZCBvbiB3aGljaCBzaWRlIHdlIGludGVyc2VjdGVkIHdpdGguIFVzaW5nIHRoZSBsZW5n
dGggYW5kIGFuZ2xlLCB3ZSAKKyAgICAgICAgY2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgdGhlIGh5
cG90ZW51c2UsIHdoaWNoIGNvcnJlc3BvbmRzIHdpdGggdGhlIGxlbmd0aCBvZiB0aGUgc3RhcnQg
cG9pbnQKKyAgICAgICAgb2YgdGhlIHJheSB0byBpdHMgaW50ZXJzZWN0aW9uIHdpdGggYSBzaWRl
IG9mIHRoZSBjb250YWluaW5nIGJsb2NrLiBUZXN0IDcgaXMgc3RpbGwgZmFpbGluZyAKKyAgICAg
ICAgZHVlIHRvIGdldHRpbmcgaW5jb3JyZWN0IHdpZHRoIG9mIGNvbnRhaW5pbmcgYmxvY2sgKGRv
ZXNuJ3QgaGFwcGVuIHdoZW4gYW5pbWF0aW5nIHRoZSBwYXRoCisgICAgICAgIGZvciBzb21lIHJl
YXNvbikuIFdpbGwgaW1wbGVtZW50IGNvbnRhaW4gaW4gYW5vdGhlciBwYXRjaC4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJp
bmcvUGF0aE9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Bvc2l0aXZlQW5nbGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmF5UGF0aE9wZXJhdGlvbjo6Z2V0TGVuZ3RoRm9yUGF0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSYXlQYXRoT3BlcmF0aW9uOjpwYXRoRm9yUmVmZXJl
bmNlUmVjdCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNldFJlZmVyZW5jZUJveEZvclBhdGhPcGVyYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQYXRoRnJvbVBhdGhPcGVyYXRpb24pOgorCiAyMDIy
LTA0LTI4ICBQaGlsaXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1N0cmVhbWVyXSBQaXBld2lyZSBkaXNwbGF5IGNhcHR1cmUgYnJva2VuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWJhMWI4MjAz
NTJjMTRkOTYwNjYzM2YzMDFmOWQ0NTM3MjhlMmUyNS4uZDczYmFmMmJkY2NmYjI5MDdkMTcyNWU0
MjBlYzRkNzIwMjMzNTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjk4Nyw2ICs2OTg3LDcgQEAKIAkJMUFCN0ZDNjYwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3RkM2NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBh
dGhWYXJpYWJsZVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QUJBN0ZGRjE4OTczNDEyMDBEQ0U5RDYgLyogVmlzaXRlZExpbmtTdG9yZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpdGVkTGlua1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFBQkMyNjAzMjdGRDAyMTQwMDY0RjY4RiAvKiBQYXRoT3BlcmF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdGhPcGVyYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUMyMjYwQTBEQjY5RjE5MDA4OUI2
NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBQzIyNjBCMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9u
Q2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BcHBsaWNhdGlv
bkNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzJEODlDMUIxRTI5MUYw
MEQ1MkU4NyAvKiBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzIyNDcsNiArMzIyNDgsNyBAQAogCQkJCTU1RUM5NTk3MjA2
OUM5MkQwMDdERDBBOSAvKiBQYWludEZyZXF1ZW5jeVRyYWNrZXIuaCAqLywKIAkJCQkwODg1MDY3
RDExREEwNDVCMDAxODJCOTggLyogUGFpbnRJbmZvLmggKi8sCiAJCQkJMDg4NTA2N0UxMURBMDQ1
QjAwMTgyQjk4IC8qIFBhaW50UGhhc2UuaCAqLywKKwkJCQkxQUJDMjYwMzI3RkQwMjE0MDA2NEY2
OEYgLyogUGF0aE9wZXJhdGlvbi5jcHAgKi8sCiAJCQkJRkI5MkRGNDkxNUZFRDA4NzAwOTk0NDMz
IC8qIFBhdGhPcGVyYXRpb24uaCAqLywKIAkJCQlCMkIxRjcxNDBEMDBDQUE4MDA0QUVBNjQgLyog
UG9pbnRlckV2ZW50c0hpdFJ1bGVzLmNwcCAqLywKIAkJCQlCMkIxRjcxNTBEMDBDQUE4MDA0QUVB
NjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5jcHAKaW5kZXggMzQ0MGMyYjhjYTBiYzczZjE3NzlhZjAwZDcxMTljYzhjODIz
MTM0Yi4uY2JmMTRmY2U3YmFiOTNhNTlhZGM3ZDE5MTIzNjdkOGNkOWU1NzczNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSAiQ29sb3JJbnRlcnBvbGF0aW9uLmgiCisjaW5jbHVkZSAiR2VvbWV0
cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHcmFkaWVudEltYWdlLmgiCiAjaW5jbHVkZSAiTm9k
ZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtODE1LDkgKzgxNiw3IEBAIHN0
YXRpYyB2b2lkIGVuZFBvaW50c0Zyb21BbmdsZShmbG9hdCBhbmdsZURlZywgY29uc3QgRmxvYXRT
aXplJiBzaXplLCBGbG9hdFBvaW50CiAgICAgaWYgKHR5cGUgPT0gQ1NTUHJlZml4ZWRMaW5lYXJH
cmFkaWVudCkKICAgICAgICAgYW5nbGVEZWcgPSA5MCAtIGFuZ2xlRGVnOwogCi0gICAgYW5nbGVE
ZWcgPSBmbW9kZihhbmdsZURlZywgMzYwKTsKLSAgICBpZiAoYW5nbGVEZWcgPCAwKQotICAgICAg
ICBhbmdsZURlZyArPSAzNjA7CisgICAgYW5nbGVEZWcgPSB0b1Bvc2l0aXZlQW5nbGUoYW5nbGVE
ZWcpOwogCiAgICAgaWYgKCFhbmdsZURlZykgewogICAgICAgICBmaXJzdFBvaW50LnNldCgwLCBz
aXplLmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAppbmRleCA3NGI0YzM1YTU0YzU2NGE5ZDBiNjc3OWJi
NmY4NGQ3ZWZiMGRkYzZkLi4yNjRkOGVmNTFjZDk1YWY3MDMyNTc2NTMwMGIwYjc5NmUzOTE5Yjc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0
cnlVdGlsaXRpZXMuY3BwCkBAIC0yNjgsNCArMjY4LDUyIEBAIFJvdGF0ZWRSZWN0IHJvdGF0ZWRC
b3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZSb3RhdGlvbihjb25zdCBGbG9hdFF1YWQmIHF1
YWQsCiAgICAgcmV0dXJuIHsgY2VudGVyLCB7IHdpZHRoLCBoZWlnaHQgfSwgYW5nbGUgfTsKIH0K
IAorZG91YmxlIHRvUG9zaXRpdmVBbmdsZShkb3VibGUgYW5nbGUpCit7CisgICAgYW5nbGUgPSBm
bW9kKGFuZ2xlLCAzNjApOworICAgIHdoaWxlIChhbmdsZSA8IDApCisgICAgICAgIGFuZ2xlICs9
IDM2MC4wOworICAgIHJldHVybiBhbmdsZTsKK30KKworc3RkOjp0dXBsZTxkb3VibGUsIGRvdWJs
ZSwgZG91YmxlLCBkb3VibGU+IGRpc3RhbmNlT2ZQb2ludFRvU2lkZXNPZlJlY3QoY29uc3QgRmxv
YXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgcG9zaXRpb24pCit7CisgICAg
Ly8gQ29tcHV0ZSBkaXN0YW5jZSB0byBlYWNoIHNpZGUgb2YgdGhlIGNvbnRhaW5pbmcgYm94Cisg
ICAgZG91YmxlIHRvcCA9IHN0ZDo6YWJzKHBvc2l0aW9uLmhlaWdodCgpKTsKKyAgICBkb3VibGUg
Ym90dG9tID0gc3RkOjphYnMocG9zaXRpb24uaGVpZ2h0KCkgLSBib3VuZGluZ1JlY3QuaGVpZ2h0
KCkpOworICAgIGRvdWJsZSBsZWZ0ID0gc3RkOjphYnMocG9zaXRpb24ud2lkdGgoKSk7CisgICAg
ZG91YmxlIHJpZ2h0ID0gc3RkOjphYnMocG9zaXRpb24ud2lkdGgoKSAtIGJvdW5kaW5nUmVjdC53
aWR0aCgpKTsKKyAgICByZXR1cm4geyB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHQgfTsKK30KKwor
ZG91YmxlIGxlbmd0aE9mUmF5SW50ZXJzZWN0aW9uV2l0aEJvdW5kaW5nQm94KGNvbnN0IEZsb2F0
UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBGbG9hdFNpemUmIHBvc2l0aW9uLCBkb3VibGUgYW5n
bGUpCit7CisgICAgZG91YmxlIGxlbmd0aCA9IGxlbmd0aE9mUG9pbnRUb1NpZGVPZkludGVyc2Vj
dGlvbihib3VuZGluZ1JlY3QsIHBvc2l0aW9uLCBkZWcycmFkKGFuZ2xlKSk7CisgICAgZG91Ymxl
IGFuZ2xlT2ZUcmlhbmdsZSA9IGFuZ2xlT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9uKGJvdW5k
aW5nUmVjdCwgcG9zaXRpb24sIGFuZ2xlLCBsZW5ndGgpOworICAgIC8vIEdpdmVuIGEgbGVuZ3Ro
IG9mIGFuZ2xlIG9mIGEgdHJpYW5nbGUsIGNhbGN1bGF0ZSB0aGUgaHlwb3RlbnVzZSwgd2hpY2gg
Y29ycmVzcG9uZHMgdG8KKyAgICAvLyB0aGUgbGVuZ3RoIGZyb20gdGhlIGdpdmVuIHBvaW50IHRv
IHRoZSBpbnRlcnNlY3RpbmcgcG9pbnQgb24gdGhlIGJveAorICAgIHJldHVybiBsZW5ndGggLyBj
b3MoZGVnMnJhZChhbmdsZU9mVHJpYW5nbGUpKTsKK30KKworZG91YmxlIGxlbmd0aE9mUG9pbnRU
b1NpZGVPZkludGVyc2VjdGlvbihjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nUmVjdCwgY29uc3Qg
RmxvYXRTaXplJiBwb3NpdGlvbiwgZG91YmxlIHJhZGlhbnMpCit7CisgICAgZG91YmxlIHRvcCwg
Ym90dG9tLCBsZWZ0LCByaWdodCA9IDA7CisgICAgc3RkOjp0aWUodG9wLCBib3R0b20sIGxlZnQs
IHJpZ2h0KSA9IGRpc3RhbmNlT2ZQb2ludFRvU2lkZXNPZlJlY3QoYm91bmRpbmdSZWN0LCBwb3Np
dGlvbik7CisgICAgCisgICAgLy8gR2V0IHBvc3NpYmxlIGludGVyc2VjdGlvbiBzaWRlcworICAg
IGRvdWJsZSBzMSA9IGNvcyhyYWRpYW5zKSA+PSAwID8gdG9wIDogYm90dG9tOworICAgIGRvdWJs
ZSBzMiA9IHNpbihyYWRpYW5zKSA+PSAwID8gcmlnaHQgOiBsZWZ0OworICAgIC8vIEdldCBpbnRl
cnNlY3Rpb24gc2lkZSAtIGJhc2VkIG9uIGxlbmd0aCBvZiB0YW4oKSAqIHMxCisgICAgcmV0dXJu
IHNpbihyYWRpYW5zKSAqIHMxID4gY29zKHJhZGlhbnMpICogczIgPyBzMSA6IHMyOworfQorCitk
b3VibGUgYW5nbGVPZlBvaW50VG9TaWRlT2ZJbnRlcnNlY3Rpb24oY29uc3QgRmxvYXRSZWN0JiBi
b3VuZGluZ1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgcG9zaXRpb24sIGRvdWJsZSBhbmdsZSwgZG91
YmxlIGludGVyc2VjdGlvblNpZGUpCit7CisgICAgZG91YmxlIHRvcCwgYm90dG9tLCBsZWZ0LCBy
aWdodCA9IDA7CisgICAgc3RkOjp0aWUodG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0KSA9IGRpc3Rh
bmNlT2ZQb2ludFRvU2lkZXNPZlJlY3QoYm91bmRpbmdSZWN0LCBwb3NpdGlvbik7CisgICAgCisg
ICAgLy8gQ2FsY3VsYXRlIGFuZ2xlIGJhc2VkIG9uIHdoYXQgc2lkZSB3ZSBpbnRlcnNlY3RlZCB3
aXRoCisgICAgcmV0dXJuIGludGVyc2VjdGlvblNpZGUgPT0gdG9wIHx8IGludGVyc2VjdGlvblNp
ZGUgPT0gYm90dG9tID8gc3RkOjpmbW9kKHRvUG9zaXRpdmVBbmdsZShhbmdsZSksIDkwKSA6IDkw
IC0gc3RkOjpmbW9kKHRvUG9zaXRpdmVBbmdsZShhbmdsZSksIDkwKTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmgK
aW5kZXggYzhkNjYzOTg4MTA1YTc2ZWQ5ZjUzZWRiZTZiMzNlNzE5YzViYjM2Ny4uMGVkY2U5N2Y2
ZDJlOGFkNmFjNWZlNTk3YjgyMjAwMzM1MjNhMjFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5oCkBAIC02NCw2ICs2NCwy
MiBAQCBib29sIGVsbGlwc2VDb250YWluc1BvaW50KGNvbnN0IEZsb2F0UG9pbnQmIGNlbnRlciwg
Y29uc3QgRmxvYXRTaXplJiByYWRpaSwgY29ucwogCiBGbG9hdFBvaW50IG1pZFBvaW50KGNvbnN0
IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7CiAKKy8vIEdpdmVuIGEgYm94IGFuZCBh
IHJheSAoZGVzY3JpYmVkIGJ5IGEgc3RhcnRpbmcgcG9zaXRpb24gYW5kIGFuZ2xlKSwgY29tcHV0
ZSB0aGUgbGVuZ3RoIGZyb20gdGhlIHN0YXJ0aW5nCisvLyBwb3NpdGlvbiB0byB0aGUgaW50ZXJz
ZWN0aW9uIG9mIHRoZSByYXkgd2l0aCB0aGUgYm94Citkb3VibGUgbGVuZ3RoT2ZSYXlJbnRlcnNl
Y3Rpb25XaXRoQm91bmRpbmdCb3goY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRTaXplJiwg
ZG91YmxlKTsKKworLy8gR2l2ZW4gYSBib3ggYW5kIGEgcmF5LCBjb21wdXRlIHRoZSBjbG9zZXN0
IGxlbmd0aCBmcm9tIHRoZSBzdGFydGluZyBwb3NpdGlvbiB0byB0aGUgc2lkZSB0aGF0IHRoZSBy
YXkKKy8vIGludGVyc2VjdHMgd2l0aAorZG91YmxlIGxlbmd0aE9mUG9pbnRUb1NpZGVPZkludGVy
c2VjdGlvbihjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFNpemUmLCBkb3VibGUpOworCisv
LyBHaXZlbiBhIGJveCBhbmQgYSByYXksIGNvbXB1dGUgdGhlIGFjdXRlIGFuZ2xlIGJldHdlZW4g
dGhlIHJheSBhbmQgdGhlIGxpbmUgc2VnbWVudCBmcm9tIHRoZSBzdGFydGluZworLy8gcG9pbnQg
dG8gdGhlIGNsb3Nlc3QgcG9pbnQgb24gdGhlIHNpZGUgdGhhdCB0aGUgcmF5IGludGVyc2VjdHMg
d2l0aAorZG91YmxlIGFuZ2xlT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9uKGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGRvdWJsZSwgZG91YmxlKTsKKworLy8gR2l2ZW4gYSBi
b3ggYW5kIGEgcG9zaXRvbiB3aXRoaW4gdGhlIGJveCwgY2FsY3VsYXRlIHRoZSBkaXN0YW5jZSBv
ZiB0aGUgcG9pbnQgZnJvbSBlYWNoIHNpZGUKK3N0ZDo6dHVwbGU8ZG91YmxlLCBkb3VibGUsIGRv
dWJsZSwgZG91YmxlPiBkaXN0YW5jZU9mUG9pbnRUb1NpZGVzT2ZSZWN0KGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IEZsb2F0U2l6ZSYpOworZG91YmxlIHRvUG9zaXRpdmVBbmdsZShkb3VibGUgYW5n
bGUpOworCiBzdHJ1Y3QgUm90YXRlZFJlY3QgewogICAgIEZsb2F0UG9pbnQgY2VudGVyOwogICAg
IEZsb2F0U2l6ZSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Bh
dGhPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24u
Y3BwCmluZGV4IGZhM2I5YjZmNWM3OWNjMTdlZjBlMDYxOTk2ODU2YzcwMzdmNjFmOGYuLmM1ZDI3
NGFjMWM1ZmFmZDhiNDVmMWZkZjE4NGMxOThhMmY3OWQ4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJQYXRoT3BlcmF0aW9uLmgiCiAKKyNpbmNsdWRlICJHZW9tZXRy
eVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDgsNCArNDksMzkgQEAgY29uc3QgU1ZHRWxlbWVudCogUmVmZXJlbmNlUGF0aE9w
ZXJhdGlvbjo6ZWxlbWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsK
IH0KKworZG91YmxlIFJheVBhdGhPcGVyYXRpb246Omxlbmd0aEZvclBhdGgoKSBjb25zdAorewor
ICAgIGF1dG8gYm91bmRpbmdCb3ggPSBtX2NvbnRhaW5pbmdCbG9ja0JvdW5kaW5nUmVjdDsKKyAg
ICBkb3VibGUgdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0ID0gMDsKKyAgICBzdGQ6OnRpZSh0b3As
IGJvdHRvbSwgbGVmdCwgcmlnaHQpID0gZGlzdGFuY2VPZlBvaW50VG9TaWRlc09mUmVjdChib3Vu
ZGluZ0JveCwgbV9wb3NpdGlvbik7CisgICAgCisgICAgc3dpdGNoIChtX3NpemUpIHsKKyAgICBj
YXNlIFNpemU6OkNsb3Nlc3RTaWRlOgorICAgICAgICByZXR1cm4gc3RkOjptaW4oIHsgdG9wLCBi
b3R0b20sIGxlZnQsIHJpZ2h0IH0gKTsKKyAgICBjYXNlIFNpemU6OkZhcnRoZXN0U2lkZToKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bWF4KCB7IHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodCB9ICk7Cisg
ICAgY2FzZSBTaXplOjpGYXJ0aGVzdENvcm5lcjoKKyAgICAgICAgcmV0dXJuIHN0ZDo6c3FydChz
dGQ6OnBvdyhzdGQ6Om1heChsZWZ0LCByaWdodCksIDIpICsgc3RkOjpwb3coc3RkOjptYXgodG9w
LCBib3R0b20pLCAyKSk7CisgICAgY2FzZSBTaXplOjpDbG9zZXN0Q29ybmVyOgorICAgICAgICBy
ZXR1cm4gc3RkOjpzcXJ0KHN0ZDo6cG93KHN0ZDo6bWluKGxlZnQsIHJpZ2h0KSwgMikgKyBzdGQ6
OnBvdyhzdGQ6Om1pbih0b3AsIGJvdHRvbSksIDIpKTsKKyAgICBjYXNlIFNpemU6OlNpZGVzOgor
ICAgICAgICBpZiAobV9wb3NpdGlvbi53aWR0aCgpIDwgMCB8fCBtX3Bvc2l0aW9uLndpZHRoKCkg
PiBib3VuZGluZ0JveC53aWR0aCgpIHx8IG1fcG9zaXRpb24uaGVpZ2h0KCkgPCAwIHx8IG1fcG9z
aXRpb24uaGVpZ2h0KCkgPiBib3VuZGluZ0JveC5oZWlnaHQoKSkKKyAgICAgICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbGVuZ3RoT2ZSYXlJbnRlcnNlY3Rpb25XaXRoQm91bmRpbmdC
b3goYm91bmRpbmdCb3gsIG1fcG9zaXRpb24sIG1fYW5nbGUpOworICAgIH0KK30KKworY29uc3Qg
UGF0aCBSYXlQYXRoT3BlcmF0aW9uOjpwYXRoRm9yUmVmZXJlbmNlUmVjdCgpIGNvbnN0Cit7Cisg
ICAgUGF0aCBwYXRoOworICAgIGlmIChtX2NvbnRhaW5pbmdCbG9ja0JvdW5kaW5nUmVjdC5pc1pl
cm8oKSkKKyAgICAgICAgcmV0dXJuIHBhdGg7CisgICAgYXV0byBsZW5ndGggPSBsZW5ndGhGb3JQ
YXRoKCk7CisgICAgYXV0byByYWRpYW5zID0gZGVnMnJhZCh0b1Bvc2l0aXZlQW5nbGUobV9hbmds
ZSkgLSA5MCk7CisgICAgYXV0byBwb2ludCA9IEZsb2F0UG9pbnQoc3RkOjpjb3MocmFkaWFucykg
KiBsZW5ndGgsIHN0ZDo6c2luKHJhZGlhbnMpICogbGVuZ3RoKTsKKyAgICBwYXRoLmFkZExpbmVU
byhwb2ludCk7CisgICAgcmV0dXJuIHBhdGg7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5oCmluZGV4IGQ2ZTAwOTk2ZmY4
NzU5ZDE2YjlmZDI3ZDdlNGFhODcwMTQzZTVkZWYuLjA1NzhlYThjZDdhNTAwOWMxNWYwOTQwZjA1
MjRjNDkyYzA0YWZhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRo
T3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24u
aApAQCAtMTk1LDcgKzE5NSwxOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gUmF5
UGF0aE9wZXJhdGlvbjo6Y3JlYXRlKFdlYkNvcmU6OmJsZW5kKG1fYW5nbGUsIHRvLm1fYW5nbGUs
IGNvbnRleHQpLCBtX3NpemUsIG1faXNDb250YWluaW5nKTsKICAgICB9Ci0KKyAgICAKKyAgICBj
b25zdCBQYXRoIHBhdGhGb3JSZWZlcmVuY2VSZWN0KCkgY29uc3Q7CisgICAgZG91YmxlIGxlbmd0
aEZvclBhdGgoKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIHNldENvbnRhaW5pbmdCbG9hY2tSZWZl
cmVuY2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0KQorICAgIHsKKyAgICAgICAg
bV9jb250YWluaW5nQmxvY2tCb3VuZGluZ1JlY3QgPSBib3VuZGluZ1JlY3Q7CisgICAgfQorICAg
IHZvaWQgc2V0U3RhcnRpbmdQb3NpdGlvbihjb25zdCBGbG9hdFNpemUmIHBvc2l0aW9uKQorICAg
IHsKKyAgICAgICAgbV9wb3NpdGlvbiA9IHBvc2l0aW9uOworICAgIH0KIHByaXZhdGU6CiAgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFBhdGhPcGVyYXRpb24mIG90aGVyKSBjb25zdCBvdmVycmlk
ZQogICAgIHsKQEAgLTIxNiw5ICsyMjcsMTEgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0g
ICAgZmxvYXQgbV9hbmdsZTsKKyAgICBmbG9hdCBtX2FuZ2xlIHsgMCB9OwogICAgIFNpemUgbV9z
aXplOwotICAgIGJvb2wgbV9pc0NvbnRhaW5pbmc7CisgICAgYm9vbCBtX2lzQ29udGFpbmluZyB7
IGZhbHNlIH07CisgICAgRmxvYXRSZWN0IG1fY29udGFpbmluZ0Jsb2NrQm91bmRpbmdSZWN0Owor
ICAgIEZsb2F0U2l6ZSBtX3Bvc2l0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggYmI0ZDNhNGU0NjJi
Y2M5NzU2NmVmYmE0OWI4ZDE4Mzk3OGNhNGEzYy4uMTJjODk2OGViZjJhODRkM2M4MTQwYmNjZWM2
ODg3ODNhZDQwNWZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CkBAIC0xMzE3LDYgKzEzMTcsMzEgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3Jt
RnJvbVN0eWxlKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnMKICAgICBtYWtl
TWF0cml4UmVuZGVyYWJsZSh0cmFuc2Zvcm0sIGNhblJlbmRlcjNEVHJhbnNmb3JtcygpKTsKIH0K
IAordm9pZCBSZW5kZXJMYXllcjo6c2V0UmVmZXJlbmNlQm94Rm9yUGF0aE9wZXJhdGlvbnMoKQor
eworICAgIGF1dG8gcGF0aE9wZXJhdGlvbiA9IHJlbmRlcmVyKCkuc3R5bGUoKS5vZmZzZXRQYXRo
KCk7CisgICAgaWYgKCFwYXRoT3BlcmF0aW9uKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGlz
PEJveFBhdGhPcGVyYXRpb24+KHBhdGhPcGVyYXRpb24pKSB7CisgICAgICAgIGF1dG8mIGJveFBh
dGhPcGVyYXRpb24gPSBkb3duY2FzdDxCb3hQYXRoT3BlcmF0aW9uPigqcGF0aE9wZXJhdGlvbik7
CisgICAgICAgIGF1dG8gcGF0aFJlZmVyZW5jZUJveFJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4
ZWxzSWZOZWVkZWQocmVuZGVyZXIoKS5yZWZlcmVuY2VCb3hSZWN0KGJveFBhdGhPcGVyYXRpb24u
cmVmZXJlbmNlQm94KCkpLCByZW5kZXJlcigpKTsKKyAgICAgICAgYm94UGF0aE9wZXJhdGlvbi5z
ZXRQYXRoRm9yUmVmZXJlbmNlUmVjdChGbG9hdFJvdW5kZWRSZWN0IHsgcGF0aFJlZmVyZW5jZUJv
eFJlY3QgfSk7CisgICAgfSBlbHNlIGlmIChpczxSYXlQYXRoT3BlcmF0aW9uPihwYXRoT3BlcmF0
aW9uKSkgeworICAgICAgICBpZiAoY29uc3QgYXV0byogY29udGFpbmluZ0Jsb2NrID0gcmVuZGVy
ZXIoKS5jb250YWluaW5nQmxvY2soKSkgeworICAgICAgICAgICAgYXV0byYgcmF5UGF0aE9wZXJh
dGlvbiA9IGRvd25jYXN0PFJheVBhdGhPcGVyYXRpb24+KCpwYXRoT3BlcmF0aW9uKTsKKyAgICAg
ICAgICAgIGF1dG8gcGF0aFJlZmVyZW5jZUJveFJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxz
SWZOZWVkZWQoY29udGFpbmluZ0Jsb2NrLT50cmFuc2Zvcm1SZWZlcmVuY2VCb3hSZWN0KGNvbnRh
aW5pbmdCbG9jay0+c3R5bGUoKSksIHJlbmRlcmVyKCkpOworICAgICAgICAgICAgaWYgKCFwYXRo
UmVmZXJlbmNlQm94UmVjdC53aWR0aCgpKQorICAgICAgICAgICAgICAgIHBhdGhSZWZlcmVuY2VC
b3hSZWN0LnNldFdpZHRoKHBhdGhSZWZlcmVuY2VCb3hSZWN0LmhlaWdodCgpKTsKKyAgICAgICAg
ICAgIGlmICghcGF0aFJlZmVyZW5jZUJveFJlY3QuaGVpZ2h0KCkpCisgICAgICAgICAgICAgICAg
cGF0aFJlZmVyZW5jZUJveFJlY3Quc2V0SGVpZ2h0KHBhdGhSZWZlcmVuY2VCb3hSZWN0LndpZHRo
KCkpOworICAgICAgICAgICAgcmF5UGF0aE9wZXJhdGlvbi5zZXRDb250YWluaW5nQmxvYWNrUmVm
ZXJlbmNlUmVjdChwYXRoUmVmZXJlbmNlQm94UmVjdCk7CisgICAgICAgICAgICBhdXRvIGxlZnQg
PSByZW5kZXJlcigpLnN0eWxlKCkubGVmdCgpOworICAgICAgICAgICAgYXV0byB0b3AgPSByZW5k
ZXJlcigpLnN0eWxlKCkudG9wKCk7CisgICAgICAgICAgICByYXlQYXRoT3BlcmF0aW9uLnNldFN0
YXJ0aW5nUG9zaXRpb24oRmxvYXRTaXplKGxlZnQuaXNQZXJjZW50KCkgPyBsZWZ0LnZhbHVlKCkg
LyAxMDAgKiBwYXRoUmVmZXJlbmNlQm94UmVjdC53aWR0aCgpIDogbGVmdC52YWx1ZSgpLCB0b3Au
aXNQZXJjZW50KCkgPyB0b3AudmFsdWUoKSAvIDEwMCAqIHBhdGhSZWZlcmVuY2VCb3hSZWN0Lmhl
aWdodCgpIDogdG9wLnZhbHVlKCkpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkKIHsKICAgICBib29sIGhhc1RyYW5zZm9ybSA9IHJl
bmRlcmVyKCkuaGFzVHJhbnNmb3JtKCk7CkBAIC0xMzM1LDEzICsxMzYwLDcgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkKICAgICAKICAgICBpZiAoaGFzVHJhbnNmb3JtKSB7
CiAgICAgICAgIG1fdHJhbnNmb3JtLT5tYWtlSWRlbnRpdHkoKTsKLQotICAgICAgICBpZiAoYXV0
byBwYXRoT3BlcmF0aW9uID0gcmVuZGVyZXIoKS5zdHlsZSgpLm9mZnNldFBhdGgoKTsgcGF0aE9w
ZXJhdGlvbiAmJiBpczxCb3hQYXRoT3BlcmF0aW9uPihwYXRoT3BlcmF0aW9uKSkgewotICAgICAg
ICAgICAgYXV0byYgYm94UGF0aE9wZXJhdGlvbiA9IGRvd25jYXN0PEJveFBhdGhPcGVyYXRpb24+
KCpwYXRoT3BlcmF0aW9uKTsKLSAgICAgICAgICAgIGF1dG8gcGF0aFJlZmVyZW5jZUJveFJlY3Qg
PSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzSWZOZWVkZWQocmVuZGVyZXIoKS5yZWZlcmVuY2VCb3hS
ZWN0KGJveFBhdGhPcGVyYXRpb24ucmVmZXJlbmNlQm94KCkpLCByZW5kZXJlcigpKTsKLSAgICAg
ICAgICAgIGJveFBhdGhPcGVyYXRpb24uc2V0UGF0aEZvclJlZmVyZW5jZVJlY3QoRmxvYXRSb3Vu
ZGVkUmVjdCB7IHBhdGhSZWZlcmVuY2VCb3hSZWN0IH0pOwotICAgICAgICB9Ci0KKyAgICAgICAg
c2V0UmVmZXJlbmNlQm94Rm9yUGF0aE9wZXJhdGlvbnMoKTsKICAgICAgICAgdXBkYXRlVHJhbnNm
b3JtRnJvbVN0eWxlKCptX3RyYW5zZm9ybSwgcmVuZGVyZXIoKS5zdHlsZSgpLCBSZW5kZXJTdHls
ZTo6YWxsVHJhbnNmb3JtT3BlcmF0aW9ucyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCmluZGV4IDgwNDc2MWE4ZjkyMDAwNGU4ZmRkNDI3ZTE4ZDRhNzk4NDUx
MzFiOWQuLmU1MWUzMWE5MDIxNjU1ODYwNDFiOWJjODYwMTVhNmY2NWY5MDFiYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC01MDksNiArNTA5LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gbV9lbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIuZ2V0KCk7CiAgICAg
fQogCisgICAgdm9pZCBzZXRSZWZlcmVuY2VCb3hGb3JQYXRoT3BlcmF0aW9ucygpOwogICAgIHZv
aWQgdXBkYXRlVHJhbnNmb3JtKCk7CiAgICAgCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4
IDliNjhlN2JmZjcwMTgwZmRkNzJiY2I3NjkzZTZhYTJiMTMyMzUwMzguLjlhMDAwNjM0YTgwZWFh
ZDk5NTVkODljODhmMzBkNTNiMTU0YTQzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTUzOCw4ICsxNTM4LDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UGF0aD4gZ2V0UGF0aEZyb21QYXRoT3BlcmF0aW9uKGNvbnN0IEZsb2F0UmVj
dCYgYm94LCBjb25zdAogICAgIGNhc2UgUGF0aE9wZXJhdGlvbjo6Qm94OgogICAgICAgICByZXR1
cm4gZG93bmNhc3Q8Qm94UGF0aE9wZXJhdGlvbj4ob3BlcmF0aW9uKS5nZXRQYXRoKCk7CiAgICAg
Y2FzZSBQYXRoT3BlcmF0aW9uOjpSYXk6Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcmF5
LSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzQ0Ci0gICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiBkb3duY2FzdDxSYXlQYXRoT3Bl
cmF0aW9uPihvcGVyYXRpb24pLnBhdGhGb3JSZWZlcmVuY2VSZWN0KCk7CiAgICAgfQogICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTYwZTg0NzZjODg1ZmM1NGJl
NTA4YjNlNDVkNjhjMTQyMWY2NjVkNi4uOTdkZGRjYjcwMzVjZTE2MmM0ZDgxYWI1OTlhZDBjZDhi
YmQ5Y2RkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIyLTA1LTA0ICBOaWtvbGFvcyBNb3Vj
aHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgcmF5KCkg
c2hhcGUgaW4gb2Zmc2V0LXBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMzM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjItMDQtMjggIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBEZWJ1ZyB3azIg
XSBUaGlydGVlbiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvIGFyZSBhIGZsYWt5IGNyYXNoIChBU1NF
UlRJT04gRkFJTEVEOiB3aWxsQmVDb21wb3NpdGVkID09IG5lZWRzVG9CZUNvbXBvc2l0ZWQobGF5
ZXIsIHF1ZXJ5RGF0YSkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0ZDIyNTg1YTQzZDhkZjE2MDNk
NThhZWQ4MGZkNjU5MGIzZWIxMDAzLi4wMDQ5MjVjMzdiNmMyOGNjOTUwOTQ0ZGYzMDY5YWUxNmFm
OWJlMjY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUwNzIsMTYgKzUwNzIsOCBAQCB3ZWJraXQu
b3JnL2IvMjMzMzQwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9v
ZmZzZXQtYW5jaG9yLXRyYQogd2Via2l0Lm9yZy9iLzIzMzM0MCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LWFuY2hvci10cmFuc2Zvcm0tYm94LWZpbGwt
Ym94LTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjMzMzQwIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtYW5jaG9yLXRy
YW5zZm9ybS1ib3gtZmlsbC1ib3gtMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAotIyBD
U1MgbW90aW9uIHBhdGggdGhhdCBkZXBlbmRzIG9uIHJheSgpLCBjdXJyZW50bHkgbm90IGltcGxl
bWVudGVkLgotd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
bW90aW9uL29mZnNldC1wYXRoLXJheS0wMDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rp
b24vb2Zmc2V0LXBhdGgtcmF5LTAwNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9v
ZmZzZXQtcGF0aC1yYXktMDA1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNl
dC1wYXRoLXJheS0wMDYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQorIyBDU1MgbW90aW9uIHBh
dGggbmVlZHMgdG8gaW1wbGVtZW50IGNvbnRhaW4uCiB3ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktMDA3
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0wMDguaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwOS5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktY29udGFpbi0wMDEuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LWNvbnRhaW4tMDAy
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS1jb250YWlu
LTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>
<flag name="commit-queue"
          id="487970"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458923</attachid>
            <date>2022-05-05 16:21:27 -0700</date>
            <delta_ts>2022-05-09 10:20:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233344-20220505162126.patch</filename>
            <type>text/plain</type>
            <size>20010</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFjMmVmYmM0MDg3YzA1
N2RiZWIzY2Y5ZjZjMDkwYzk2MGU4NDBiZS4uODY2Y2MzMWU0NTZmZjY1ZGVmNDA2MzRkYmU5YWM3
N2FmOTZhZGU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIyLTA1LTA0ICBOaWtv
bGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgcmF5KCkgc2hhcGUgaW4gb2Zmc2V0LXBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIHJheSBwYXRoLiBJ
bnZvbHZlcyBnZXR0aW5nIGNvbnRhaW5pbmcgYmxvY2sgYW5kIG9mZnNldAorICAgICAgICBvZiB0
aGUgZWxlbWVudCBmcm9tIHRoZSBjb250YWluaW5nIGJsb2NrLiBVc2luZyB0aGUgc2l6ZSBvZiB0
aGUgY29udGFpbmluZyBibG9jaworICAgICAgICBhbmQgb2Zmc2V0LCBjYWxjdWxhdGUgdGhlIGxl
bmd0aCBvZiB0aGUgcmF5IGFuZCBjcmVhdGUgYSBMaW5lIHBhdGggdXNpbmcgdGhlIGxlbmd0aAor
ICAgICAgICBhbmQgYW5nbGUuIENhbGN1bGF0aW5nIGNsb3Nlc3QvZmFydGhlc3Qtc2lkZSBhbmQg
Y2xvc2VzdC9mYXJ0aGVzdC1jb3JuZXIgYXJlIHNpbXBsZSAKKyAgICAgICAgYnV0IGNhbGN1bGF0
aW5nIHNpZGUgcmVxdWlyZXMgc29tZSBleHBsYW5hdGlvbi4gRmlyc3QsIHdlIGdldCB0aGUgdHdv
IHBvc3NpYmxlIHNpZGVzIG9mIAorICAgICAgICB0aGUgY29udGFpbmluZyBibG9jayB0aGUgcmF5
IGNvdWxkIGJlIGludGVyc2VjdGluZyB3aXRoLCBiYXNlZCBvbiB0aGUgYW5nbGUuIFRvIGNhbGN1
bGF0ZSAKKyAgICAgICAgd2hpY2ggc2lkZSBpcyBiZWluZyBpbnRlcnNlY3RlZCwgaWYgdGFuKHRo
ZXRhKSAqIHRvcC9ib3R0b20gaXMgb3V0c2lkZSBvZiB0aGUgY29udGFpbmluZyAKKyAgICAgICAg
YmxvY2ssIHRoaXMgbWVhbnMgdGhhdCB0aGUgcmF5IGlzIGludGVyc2VjdGluZyB3aXRoIHRoZSBv
dGhlciBzaWRlLiBGaW5hbGx5LCB3ZSBjYWxjdWxhdGUgCisgICAgICAgIHRoZSBhY3V0ZSBhbmds
ZSBiYXNlZCBvbiB3aGljaCBzaWRlIHdlIGludGVyc2VjdGVkIHdpdGguIFVzaW5nIHRoZSBsZW5n
dGggYW5kIGFuZ2xlLCB3ZSAKKyAgICAgICAgY2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgdGhlIGh5
cG90ZW51c2UsIHdoaWNoIGNvcnJlc3BvbmRzIHdpdGggdGhlIGxlbmd0aCBvZiB0aGUgc3RhcnQg
cG9pbnQKKyAgICAgICAgb2YgdGhlIHJheSB0byBpdHMgaW50ZXJzZWN0aW9uIHdpdGggYSBzaWRl
IG9mIHRoZSBjb250YWluaW5nIGJsb2NrLiBUZXN0IDcgaXMgc3RpbGwgZmFpbGluZyAKKyAgICAg
ICAgZHVlIHRvIGdldHRpbmcgaW5jb3JyZWN0IHdpZHRoIG9mIGNvbnRhaW5pbmcgYmxvY2sgKGRv
ZXNuJ3QgaGFwcGVuIHdoZW4gYW5pbWF0aW5nIHRoZSBwYXRoCisgICAgICAgIGZvciBzb21lIHJl
YXNvbikuIFdpbGwgaW1wbGVtZW50IGNvbnRhaW4gaW4gYW5vdGhlciBwYXRjaC4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJp
bmcvUGF0aE9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Bvc2l0aXZlQW5nbGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmF5UGF0aE9wZXJhdGlvbjo6Z2V0TGVuZ3RoRm9yUGF0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSYXlQYXRoT3BlcmF0aW9uOjpwYXRoRm9yUmVmZXJl
bmNlUmVjdCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNldFJlZmVyZW5jZUJveEZvclBhdGhPcGVyYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQYXRoRnJvbVBhdGhPcGVyYXRpb24pOgorCiAyMDIy
LTA0LTI4ICBQaGlsaXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1N0cmVhbWVyXSBQaXBld2lyZSBkaXNwbGF5IGNhcHR1cmUgYnJva2VuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWJhMWI4MjAz
NTJjMTRkOTYwNjYzM2YzMDFmOWQ0NTM3MjhlMmUyNS4uZDczYmFmMmJkY2NmYjI5MDdkMTcyNWU0
MjBlYzRkNzIwMjMzNTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjk4Nyw2ICs2OTg3LDcgQEAKIAkJMUFCN0ZDNjYwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3RkM2NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBh
dGhWYXJpYWJsZVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QUJBN0ZGRjE4OTczNDEyMDBEQ0U5RDYgLyogVmlzaXRlZExpbmtTdG9yZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpdGVkTGlua1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFBQkMyNjAzMjdGRDAyMTQwMDY0RjY4RiAvKiBQYXRoT3BlcmF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdGhPcGVyYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUMyMjYwQTBEQjY5RjE5MDA4OUI2
NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBQzIyNjBCMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9u
Q2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BcHBsaWNhdGlv
bkNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzJEODlDMUIxRTI5MUYw
MEQ1MkU4NyAvKiBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzIyNDcsNiArMzIyNDgsNyBAQAogCQkJCTU1RUM5NTk3MjA2
OUM5MkQwMDdERDBBOSAvKiBQYWludEZyZXF1ZW5jeVRyYWNrZXIuaCAqLywKIAkJCQkwODg1MDY3
RDExREEwNDVCMDAxODJCOTggLyogUGFpbnRJbmZvLmggKi8sCiAJCQkJMDg4NTA2N0UxMURBMDQ1
QjAwMTgyQjk4IC8qIFBhaW50UGhhc2UuaCAqLywKKwkJCQkxQUJDMjYwMzI3RkQwMjE0MDA2NEY2
OEYgLyogUGF0aE9wZXJhdGlvbi5jcHAgKi8sCiAJCQkJRkI5MkRGNDkxNUZFRDA4NzAwOTk0NDMz
IC8qIFBhdGhPcGVyYXRpb24uaCAqLywKIAkJCQlCMkIxRjcxNDBEMDBDQUE4MDA0QUVBNjQgLyog
UG9pbnRlckV2ZW50c0hpdFJ1bGVzLmNwcCAqLywKIAkJCQlCMkIxRjcxNTBEMDBDQUE4MDA0QUVB
NjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5jcHAKaW5kZXggMzQ0MGMyYjhjYTBiYzczZjE3NzlhZjAwZDcxMTljYzhjODIz
MTM0Yi4uY2JmMTRmY2U3YmFiOTNhNTlhZGM3ZDE5MTIzNjdkOGNkOWU1NzczNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSAiQ29sb3JJbnRlcnBvbGF0aW9uLmgiCisjaW5jbHVkZSAiR2VvbWV0
cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHcmFkaWVudEltYWdlLmgiCiAjaW5jbHVkZSAiTm9k
ZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtODE1LDkgKzgxNiw3IEBAIHN0
YXRpYyB2b2lkIGVuZFBvaW50c0Zyb21BbmdsZShmbG9hdCBhbmdsZURlZywgY29uc3QgRmxvYXRT
aXplJiBzaXplLCBGbG9hdFBvaW50CiAgICAgaWYgKHR5cGUgPT0gQ1NTUHJlZml4ZWRMaW5lYXJH
cmFkaWVudCkKICAgICAgICAgYW5nbGVEZWcgPSA5MCAtIGFuZ2xlRGVnOwogCi0gICAgYW5nbGVE
ZWcgPSBmbW9kZihhbmdsZURlZywgMzYwKTsKLSAgICBpZiAoYW5nbGVEZWcgPCAwKQotICAgICAg
ICBhbmdsZURlZyArPSAzNjA7CisgICAgYW5nbGVEZWcgPSB0b1Bvc2l0aXZlQW5nbGUoYW5nbGVE
ZWcpOwogCiAgICAgaWYgKCFhbmdsZURlZykgewogICAgICAgICBmaXJzdFBvaW50LnNldCgwLCBz
aXplLmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAppbmRleCA3NGI0YzM1YTU0YzU2NGE5ZDBiNjc3OWJi
NmY4NGQ3ZWZiMGRkYzZkLi5lMDgzMmY0ZmZkZTY4YzE0YWUyMzNmODNmYWUzMTk4ZGM3NmIxMzg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0
cnlVdGlsaXRpZXMuY3BwCkBAIC0yNjgsNCArMjY4LDQ5IEBAIFJvdGF0ZWRSZWN0IHJvdGF0ZWRC
b3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZSb3RhdGlvbihjb25zdCBGbG9hdFF1YWQmIHF1
YWQsCiAgICAgcmV0dXJuIHsgY2VudGVyLCB7IHdpZHRoLCBoZWlnaHQgfSwgYW5nbGUgfTsKIH0K
IAorZG91YmxlIHRvUG9zaXRpdmVBbmdsZShkb3VibGUgYW5nbGUpCit7CisgICAgYW5nbGUgPSBm
bW9kKGFuZ2xlLCAzNjApOworICAgIHdoaWxlIChhbmdsZSA8IDApCisgICAgICAgIGFuZ2xlICs9
IDM2MC4wOworICAgIHJldHVybiBhbmdsZTsKK30KKworUmVjdEVkZ2VzPGRvdWJsZT4gZGlzdGFu
Y2VPZlBvaW50VG9TaWRlc09mUmVjdChjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nUmVjdCwgY29u
c3QgRmxvYXRTaXplJiBwb3NpdGlvbikKK3sKKyAgICAvLyBDb21wdXRlIGRpc3RhbmNlIHRvIGVh
Y2ggc2lkZSBvZiB0aGUgY29udGFpbmluZyBib3gKKyAgICBkb3VibGUgdG9wID0gc3RkOjphYnMo
cG9zaXRpb24uaGVpZ2h0KCkpOworICAgIGRvdWJsZSBib3R0b20gPSBzdGQ6OmFicyhwb3NpdGlv
bi5oZWlnaHQoKSAtIGJvdW5kaW5nUmVjdC5oZWlnaHQoKSk7CisgICAgZG91YmxlIGxlZnQgPSBz
dGQ6OmFicyhwb3NpdGlvbi53aWR0aCgpKTsKKyAgICBkb3VibGUgcmlnaHQgPSBzdGQ6OmFicyhw
b3NpdGlvbi53aWR0aCgpIC0gYm91bmRpbmdSZWN0LndpZHRoKCkpOworICAgIHJldHVybiBSZWN0
RWRnZXM8ZG91YmxlPih0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpOworfQorCitkb3VibGUgbGVu
Z3RoT2ZSYXlJbnRlcnNlY3Rpb25XaXRoQm91bmRpbmdCb3goY29uc3QgRmxvYXRSZWN0JiBib3Vu
ZGluZ1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgcG9zaXRpb24sIGRvdWJsZSBhbmdsZSkKK3sKKyAg
ICBkb3VibGUgbGVuZ3RoID0gbGVuZ3RoT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9uKGJvdW5k
aW5nUmVjdCwgcG9zaXRpb24sIGRlZzJyYWQoYW5nbGUpKTsKKyAgICBkb3VibGUgYW5nbGVPZlRy
aWFuZ2xlID0gYW5nbGVPZlBvaW50VG9TaWRlT2ZJbnRlcnNlY3Rpb24oYm91bmRpbmdSZWN0LCBw
b3NpdGlvbiwgYW5nbGUsIGxlbmd0aCk7CisgICAgLy8gR2l2ZW4gYSBsZW5ndGggb2YgYW5nbGUg
b2YgYSB0cmlhbmdsZSwgY2FsY3VsYXRlIHRoZSBoeXBvdGVudXNlLCB3aGljaCBjb3JyZXNwb25k
cyB0bworICAgIC8vIHRoZSBsZW5ndGggZnJvbSB0aGUgZ2l2ZW4gcG9pbnQgdG8gdGhlIGludGVy
c2VjdGluZyBwb2ludCBvbiB0aGUgYm94CisgICAgcmV0dXJuIGxlbmd0aCAvIGNvcyhkZWcycmFk
KGFuZ2xlT2ZUcmlhbmdsZSkpOworfQorCitkb3VibGUgbGVuZ3RoT2ZQb2ludFRvU2lkZU9mSW50
ZXJzZWN0aW9uKGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBGbG9hdFNpemUm
IHBvc2l0aW9uLCBkb3VibGUgcmFkaWFucykKK3sKKyAgICBhdXRvIGRpc3RhbmNlcyA9IGRpc3Rh
bmNlT2ZQb2ludFRvU2lkZXNPZlJlY3QoYm91bmRpbmdSZWN0LCBwb3NpdGlvbik7CisgICAgLy8g
R2V0IHBvc3NpYmxlIGludGVyc2VjdGlvbiBzaWRlcworICAgIGRvdWJsZSBzMSA9IGNvcyhyYWRp
YW5zKSA+PSAwID8gZGlzdGFuY2VzLnRvcCgpIDogZGlzdGFuY2VzLmJvdHRvbSgpOworICAgIGRv
dWJsZSBzMiA9IHNpbihyYWRpYW5zKSA+PSAwID8gZGlzdGFuY2VzLnJpZ2h0KCkgOiBkaXN0YW5j
ZXMubGVmdCgpOworICAgIC8vIEdldCBpbnRlcnNlY3Rpb24gc2lkZSAtIGJhc2VkIG9uIGxlbmd0
aCBvZiB0YW4oKSAqIHMxCisgICAgcmV0dXJuIHNpbihyYWRpYW5zKSAqIHMxID4gY29zKHJhZGlh
bnMpICogczIgPyBzMSA6IHMyOworfQorCitkb3VibGUgYW5nbGVPZlBvaW50VG9TaWRlT2ZJbnRl
cnNlY3Rpb24oY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYg
cG9zaXRpb24sIGRvdWJsZSBhbmdsZSwgZG91YmxlIGludGVyc2VjdGlvblNpZGUpCit7CisgICAg
YXV0byBkaXN0YW5jZXMgPSBkaXN0YW5jZU9mUG9pbnRUb1NpZGVzT2ZSZWN0KGJvdW5kaW5nUmVj
dCwgcG9zaXRpb24pOworICAgIAorICAgIC8vIENhbGN1bGF0ZSBhbmdsZSBiYXNlZCBvbiB3aGF0
IHNpZGUgd2UgaW50ZXJzZWN0ZWQgd2l0aAorICAgIHJldHVybiBpbnRlcnNlY3Rpb25TaWRlID09
IGRpc3RhbmNlcy50b3AoKSB8fCBpbnRlcnNlY3Rpb25TaWRlID09IGRpc3RhbmNlcy5ib3R0b20o
KSA/IHN0ZDo6Zm1vZCh0b1Bvc2l0aXZlQW5nbGUoYW5nbGUpLCA5MCkgOiA5MCAtIHN0ZDo6Zm1v
ZCh0b1Bvc2l0aXZlQW5nbGUoYW5nbGUpLCA5MCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5oCmluZGV4IGM4ZDY2
Mzk4ODEwNWE3NmVkOWY1M2VkYmU2YjMzZTcxOWM1YmIzNjcuLjgxNWExNjIxMGQzZWVlNzA3MTBl
OTI3MjU3YmEwNTM3NjU3MTk1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuaApAQCAtNjQsNiArNjQsMjIgQEAgYm9vbCBl
bGxpcHNlQ29udGFpbnNQb2ludChjb25zdCBGbG9hdFBvaW50JiBjZW50ZXIsIGNvbnN0IEZsb2F0
U2l6ZSYgcmFkaWksIGNvbnMKIAogRmxvYXRQb2ludCBtaWRQb2ludChjb25zdCBGbG9hdFBvaW50
JiwgY29uc3QgRmxvYXRQb2ludCYpOwogCisvLyBHaXZlbiBhIGJveCBhbmQgYSByYXkgKGRlc2Ny
aWJlZCBieSBhIHN0YXJ0aW5nIHBvc2l0aW9uIGFuZCBhbmdsZSBpbiBkZWdyZWVzKSwgY29tcHV0
ZSB0aGUgbGVuZ3RoIGZyb20gdGhlIHN0YXJ0aW5nCisvLyBwb3NpdGlvbiB0byB0aGUgaW50ZXJz
ZWN0aW9uIG9mIHRoZSByYXkgd2l0aCB0aGUgYm94LgorZG91YmxlIGxlbmd0aE9mUmF5SW50ZXJz
ZWN0aW9uV2l0aEJvdW5kaW5nQm94KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBjb25z
dCBGbG9hdFNpemUmIHBvc2l0aW9uLCBkb3VibGUgYW5nbGUpOworCisvLyBHaXZlbiBhIGJveCBh
bmQgYSByYXkgKGRlc2NyaWJlZCBieSBhIHN0YXJ0aW5nIHBvc2l0aW9uIGFuZCBhbmdsZSBpbiBy
YWRpYW5zKSwgY29tcHV0ZSB0aGUgY2xvc2VzdCBsZW5ndGggZnJvbSB0aGUKKy8vIHN0YXJ0aW5n
IHBvc2l0aW9uIHRvIHRoZSBzaWRlIHRoYXQgdGhlIHJheSBpbnRlcnNlY3RzIHdpdGguCitkb3Vi
bGUgbGVuZ3RoT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9uKGNvbnN0IEZsb2F0UmVjdCYgYm91
bmRpbmdSZWN0LCBjb25zdCBGbG9hdFNpemUmIHBvc2l0aW9uLCBkb3VibGUgcmFkaWFucyk7CisK
Ky8vIEdpdmVuIGEgYm94IGFuZCBhIHJheSAoZGVzY3JpYmVkIGJ5IGEgc3RhcnRpbmcgcG9zaXRp
b24gYW5kIGFuZ2xlIGluIGRlZ3JlZXMpLCBjb21wdXRlIHRoZSBhY3V0ZSBhbmdsZSBiZXR3ZWVu
IHRoZSByYXkKKy8vIGFuZCB0aGUgbGluZSBzZWdtZW50IGZyb20gdGhlIHN0YXJ0aW5nICBwb2lu
dCB0byB0aGUgY2xvc2VzdCBwb2ludCBvbiB0aGUgc2lkZSB0aGF0IHRoZSByYXkgaW50ZXJzZWN0
cyB3aXRoLgorZG91YmxlIGFuZ2xlT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9uKGNvbnN0IEZs
b2F0UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBGbG9hdFNpemUmIHBvc2l0aW9uLCBkb3VibGUg
YW5nbGUsIGRvdWJsZSBsZW5ndGgpOworCisvLyBHaXZlbiBhIGJveCBhbmQgYSBwb3NpdG9uIHdp
dGhpbiB0aGUgYm94LCBjYWxjdWxhdGUgdGhlIGRpc3RhbmNlIG9mIHRoZSBwb2ludCBmcm9tIGVh
Y2ggc2lkZQorUmVjdEVkZ2VzPGRvdWJsZT4gZGlzdGFuY2VPZlBvaW50VG9TaWRlc09mUmVjdChj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFNpemUmKTsKK2RvdWJsZSB0b1Bvc2l0aXZlQW5n
bGUoZG91YmxlIGFuZ2xlKTsKKwogc3RydWN0IFJvdGF0ZWRSZWN0IHsKICAgICBGbG9hdFBvaW50
IGNlbnRlcjsKICAgICBGbG9hdFNpemUgc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Q
YXRoT3BlcmF0aW9uLmNwcAppbmRleCBmYTNiOWI2ZjVjNzljYzE3ZWYwZTA2MTk5Njg1NmM3MDM3
ZjYxZjhmLi4xMGY3ODRlNDVlYTFhMGJjMGYwZjY3MjNiZDU0ZjMyMDg2Y2EzMGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGF0aE9wZXJhdGlvbi5oIgogCisjaW5j
bHVkZSAiR2VvbWV0cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDQgKzQ5LDM4IEBAIGNvbnN0IFNWR0VsZW1lbnQqIFJl
ZmVyZW5jZVBhdGhPcGVyYXRpb246OmVsZW1lbnQoKSBjb25zdAogewogICAgIHJldHVybiBtX2Vs
ZW1lbnQuZ2V0KCk7CiB9CisKK2RvdWJsZSBSYXlQYXRoT3BlcmF0aW9uOjpsZW5ndGhGb3JQYXRo
KCkgY29uc3QKK3sKKyAgICBhdXRvIGJvdW5kaW5nQm94ID0gbV9jb250YWluaW5nQmxvY2tCb3Vu
ZGluZ1JlY3Q7CisgICAgYXV0byBkaXN0YW5jZXMgPSBkaXN0YW5jZU9mUG9pbnRUb1NpZGVzT2ZS
ZWN0KGJvdW5kaW5nQm94LCBtX3Bvc2l0aW9uKTsKKyAgICAKKyAgICBzd2l0Y2ggKG1fc2l6ZSkg
eworICAgIGNhc2UgU2l6ZTo6Q2xvc2VzdFNpZGU6CisgICAgICAgIHJldHVybiBzdGQ6Om1pbigg
eyBkaXN0YW5jZXMudG9wKCksIGRpc3RhbmNlcy5ib3R0b20oKSwgZGlzdGFuY2VzLmxlZnQoKSwg
ZGlzdGFuY2VzLnJpZ2h0KCkgfSApOworICAgIGNhc2UgU2l6ZTo6RmFydGhlc3RTaWRlOgorICAg
ICAgICByZXR1cm4gc3RkOjptYXgoIHsgZGlzdGFuY2VzLnRvcCgpLCBkaXN0YW5jZXMuYm90dG9t
KCksIGRpc3RhbmNlcy5sZWZ0KCksIGRpc3RhbmNlcy5yaWdodCgpIH0gKTsKKyAgICBjYXNlIFNp
emU6OkZhcnRoZXN0Q29ybmVyOgorICAgICAgICByZXR1cm4gc3RkOjpzcXJ0KHN0ZDo6cG93KHN0
ZDo6bWF4KGRpc3RhbmNlcy5sZWZ0KCksIGRpc3RhbmNlcy5yaWdodCgpKSwgMikgKyBzdGQ6OnBv
dyhzdGQ6Om1heChkaXN0YW5jZXMudG9wKCksIGRpc3RhbmNlcy5ib3R0b20oKSksIDIpKTsKKyAg
ICBjYXNlIFNpemU6OkNsb3Nlc3RDb3JuZXI6CisgICAgICAgIHJldHVybiBzdGQ6OnNxcnQoc3Rk
Ojpwb3coc3RkOjptaW4oZGlzdGFuY2VzLmxlZnQoKSwgZGlzdGFuY2VzLnJpZ2h0KCkpLCAyKSAr
IHN0ZDo6cG93KHN0ZDo6bWluKGRpc3RhbmNlcy50b3AoKSwgZGlzdGFuY2VzLmJvdHRvbSgpKSwg
MikpOworICAgIGNhc2UgU2l6ZTo6U2lkZXM6CisgICAgICAgIGlmIChtX3Bvc2l0aW9uLndpZHRo
KCkgPCAwIHx8IG1fcG9zaXRpb24ud2lkdGgoKSA+IGJvdW5kaW5nQm94LndpZHRoKCkgfHwgbV9w
b3NpdGlvbi5oZWlnaHQoKSA8IDAgfHwgbV9wb3NpdGlvbi5oZWlnaHQoKSA+IGJvdW5kaW5nQm94
LmhlaWdodCgpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBsZW5ndGhP
ZlJheUludGVyc2VjdGlvbldpdGhCb3VuZGluZ0JveChib3VuZGluZ0JveCwgbV9wb3NpdGlvbiwg
bV9hbmdsZSk7CisgICAgfQorfQorCitjb25zdCBQYXRoIFJheVBhdGhPcGVyYXRpb246OnBhdGhG
b3JSZWZlcmVuY2VSZWN0KCkgY29uc3QKK3sKKyAgICBQYXRoIHBhdGg7CisgICAgaWYgKG1fY29u
dGFpbmluZ0Jsb2NrQm91bmRpbmdSZWN0LmlzWmVybygpKQorICAgICAgICByZXR1cm4gcGF0aDsK
KyAgICBhdXRvIGxlbmd0aCA9IGxlbmd0aEZvclBhdGgoKTsKKyAgICBhdXRvIHJhZGlhbnMgPSBk
ZWcycmFkKHRvUG9zaXRpdmVBbmdsZShtX2FuZ2xlKSAtIDkwKTsKKyAgICBhdXRvIHBvaW50ID0g
RmxvYXRQb2ludChzdGQ6OmNvcyhyYWRpYW5zKSAqIGxlbmd0aCwgc3RkOjpzaW4ocmFkaWFucykg
KiBsZW5ndGgpOworICAgIHBhdGguYWRkTGluZVRvKHBvaW50KTsKKyAgICByZXR1cm4gcGF0aDsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRo
T3BlcmF0aW9uLmgKaW5kZXggZDZlMDA5OTZmZjg3NTlkMTZiOWZkMjdkN2U0YWE4NzAxNDNlNWRl
Zi4uMDU3OGVhOGNkN2E1MDA5YzE1ZjA5NDBmMDUyNGM0OTJjMDRhZmFhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5oCkBAIC0xOTUsNyArMTk1LDE4IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIHJldHVybiBSYXlQYXRoT3BlcmF0aW9uOjpjcmVhdGUoV2ViQ29y
ZTo6YmxlbmQobV9hbmdsZSwgdG8ubV9hbmdsZSwgY29udGV4dCksIG1fc2l6ZSwgbV9pc0NvbnRh
aW5pbmcpOwogICAgIH0KLQorICAgIAorICAgIGNvbnN0IFBhdGggcGF0aEZvclJlZmVyZW5jZVJl
Y3QoKSBjb25zdDsKKyAgICBkb3VibGUgbGVuZ3RoRm9yUGF0aCgpIGNvbnN0OworICAgIAorICAg
IHZvaWQgc2V0Q29udGFpbmluZ0Jsb2Fja1JlZmVyZW5jZVJlY3QoY29uc3QgRmxvYXRSZWN0JiBi
b3VuZGluZ1JlY3QpCisgICAgeworICAgICAgICBtX2NvbnRhaW5pbmdCbG9ja0JvdW5kaW5nUmVj
dCA9IGJvdW5kaW5nUmVjdDsKKyAgICB9CisgICAgdm9pZCBzZXRTdGFydGluZ1Bvc2l0aW9uKGNv
bnN0IEZsb2F0U2l6ZSYgcG9zaXRpb24pCisgICAgeworICAgICAgICBtX3Bvc2l0aW9uID0gcG9z
aXRpb247CisgICAgfQogcHJpdmF0ZToKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUGF0aE9w
ZXJhdGlvbiYgb3RoZXIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpAQCAtMjE2LDkgKzIyNywxMSBA
QCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICBmbG9hdCBtX2FuZ2xlOworICAgIGZsb2F0
IG1fYW5nbGUgeyAwIH07CiAgICAgU2l6ZSBtX3NpemU7Ci0gICAgYm9vbCBtX2lzQ29udGFpbmlu
ZzsKKyAgICBib29sIG1faXNDb250YWluaW5nIHsgZmFsc2UgfTsKKyAgICBGbG9hdFJlY3QgbV9j
b250YWluaW5nQmxvY2tCb3VuZGluZ1JlY3Q7CisgICAgRmxvYXRTaXplIG1fcG9zaXRpb247CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAppbmRleCBiYjRkM2E0ZTQ2MmJjYzk3NTY2ZWZiYTQ5YjhkMTgzOTc4Y2E0YTNj
Li4xMmM4OTY4ZWJmMmE4NGQzYzgxNDBiY2NlYzY4ODc4M2FkNDA1ZmI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTEzMTcsNiArMTMxNywzMSBAQCB2b2lk
IFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUoVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHRyYW5zZm9ybSwgY29ucwogICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKHRyYW5zZm9ybSwg
Y2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOwogfQogCit2b2lkIFJlbmRlckxheWVyOjpzZXRSZWZl
cmVuY2VCb3hGb3JQYXRoT3BlcmF0aW9ucygpCit7CisgICAgYXV0byBwYXRoT3BlcmF0aW9uID0g
cmVuZGVyZXIoKS5zdHlsZSgpLm9mZnNldFBhdGgoKTsKKyAgICBpZiAoIXBhdGhPcGVyYXRpb24p
CisgICAgICAgIHJldHVybjsKKyAgICBpZiAoaXM8Qm94UGF0aE9wZXJhdGlvbj4ocGF0aE9wZXJh
dGlvbikpIHsKKyAgICAgICAgYXV0byYgYm94UGF0aE9wZXJhdGlvbiA9IGRvd25jYXN0PEJveFBh
dGhPcGVyYXRpb24+KCpwYXRoT3BlcmF0aW9uKTsKKyAgICAgICAgYXV0byBwYXRoUmVmZXJlbmNl
Qm94UmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHNJZk5lZWRlZChyZW5kZXJlcigpLnJlZmVy
ZW5jZUJveFJlY3QoYm94UGF0aE9wZXJhdGlvbi5yZWZlcmVuY2VCb3goKSksIHJlbmRlcmVyKCkp
OworICAgICAgICBib3hQYXRoT3BlcmF0aW9uLnNldFBhdGhGb3JSZWZlcmVuY2VSZWN0KEZsb2F0
Um91bmRlZFJlY3QgeyBwYXRoUmVmZXJlbmNlQm94UmVjdCB9KTsKKyAgICB9IGVsc2UgaWYgKGlz
PFJheVBhdGhPcGVyYXRpb24+KHBhdGhPcGVyYXRpb24pKSB7CisgICAgICAgIGlmIChjb25zdCBh
dXRvKiBjb250YWluaW5nQmxvY2sgPSByZW5kZXJlcigpLmNvbnRhaW5pbmdCbG9jaygpKSB7Cisg
ICAgICAgICAgICBhdXRvJiByYXlQYXRoT3BlcmF0aW9uID0gZG93bmNhc3Q8UmF5UGF0aE9wZXJh
dGlvbj4oKnBhdGhPcGVyYXRpb24pOworICAgICAgICAgICAgYXV0byBwYXRoUmVmZXJlbmNlQm94
UmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHNJZk5lZWRlZChjb250YWluaW5nQmxvY2stPnRy
YW5zZm9ybVJlZmVyZW5jZUJveFJlY3QoY29udGFpbmluZ0Jsb2NrLT5zdHlsZSgpKSwgcmVuZGVy
ZXIoKSk7CisgICAgICAgICAgICBpZiAoIXBhdGhSZWZlcmVuY2VCb3hSZWN0LndpZHRoKCkpCisg
ICAgICAgICAgICAgICAgcGF0aFJlZmVyZW5jZUJveFJlY3Quc2V0V2lkdGgocGF0aFJlZmVyZW5j
ZUJveFJlY3QuaGVpZ2h0KCkpOworICAgICAgICAgICAgaWYgKCFwYXRoUmVmZXJlbmNlQm94UmVj
dC5oZWlnaHQoKSkKKyAgICAgICAgICAgICAgICBwYXRoUmVmZXJlbmNlQm94UmVjdC5zZXRIZWln
aHQocGF0aFJlZmVyZW5jZUJveFJlY3Qud2lkdGgoKSk7CisgICAgICAgICAgICByYXlQYXRoT3Bl
cmF0aW9uLnNldENvbnRhaW5pbmdCbG9hY2tSZWZlcmVuY2VSZWN0KHBhdGhSZWZlcmVuY2VCb3hS
ZWN0KTsKKyAgICAgICAgICAgIGF1dG8gbGVmdCA9IHJlbmRlcmVyKCkuc3R5bGUoKS5sZWZ0KCk7
CisgICAgICAgICAgICBhdXRvIHRvcCA9IHJlbmRlcmVyKCkuc3R5bGUoKS50b3AoKTsKKyAgICAg
ICAgICAgIHJheVBhdGhPcGVyYXRpb24uc2V0U3RhcnRpbmdQb3NpdGlvbihGbG9hdFNpemUobGVm
dC5pc1BlcmNlbnQoKSA/IGxlZnQudmFsdWUoKSAvIDEwMCAqIHBhdGhSZWZlcmVuY2VCb3hSZWN0
LndpZHRoKCkgOiBsZWZ0LnZhbHVlKCksIHRvcC5pc1BlcmNlbnQoKSA/IHRvcC52YWx1ZSgpIC8g
MTAwICogcGF0aFJlZmVyZW5jZUJveFJlY3QuaGVpZ2h0KCkgOiB0b3AudmFsdWUoKSkpOworICAg
ICAgICB9CisgICAgfQorfQorCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQog
ewogICAgIGJvb2wgaGFzVHJhbnNmb3JtID0gcmVuZGVyZXIoKS5oYXNUcmFuc2Zvcm0oKTsKQEAg
LTEzMzUsMTMgKzEzNjAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQog
ICAgIAogICAgIGlmIChoYXNUcmFuc2Zvcm0pIHsKICAgICAgICAgbV90cmFuc2Zvcm0tPm1ha2VJ
ZGVudGl0eSgpOwotCi0gICAgICAgIGlmIChhdXRvIHBhdGhPcGVyYXRpb24gPSByZW5kZXJlcigp
LnN0eWxlKCkub2Zmc2V0UGF0aCgpOyBwYXRoT3BlcmF0aW9uICYmIGlzPEJveFBhdGhPcGVyYXRp
b24+KHBhdGhPcGVyYXRpb24pKSB7Ci0gICAgICAgICAgICBhdXRvJiBib3hQYXRoT3BlcmF0aW9u
ID0gZG93bmNhc3Q8Qm94UGF0aE9wZXJhdGlvbj4oKnBhdGhPcGVyYXRpb24pOwotICAgICAgICAg
ICAgYXV0byBwYXRoUmVmZXJlbmNlQm94UmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHNJZk5l
ZWRlZChyZW5kZXJlcigpLnJlZmVyZW5jZUJveFJlY3QoYm94UGF0aE9wZXJhdGlvbi5yZWZlcmVu
Y2VCb3goKSksIHJlbmRlcmVyKCkpOwotICAgICAgICAgICAgYm94UGF0aE9wZXJhdGlvbi5zZXRQ
YXRoRm9yUmVmZXJlbmNlUmVjdChGbG9hdFJvdW5kZWRSZWN0IHsgcGF0aFJlZmVyZW5jZUJveFJl
Y3QgfSk7Ci0gICAgICAgIH0KLQorICAgICAgICBzZXRSZWZlcmVuY2VCb3hGb3JQYXRoT3BlcmF0
aW9ucygpOwogICAgICAgICB1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUoKm1fdHJhbnNmb3JtLCBy
ZW5kZXJlcigpLnN0eWxlKCksIFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25zKTsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggODA0NzYx
YThmOTIwMDA0ZThmZGQ0MjdlMThkNGE3OTg0NTEzMWI5ZC4uZTUxZTMxYTkwMjE2NTU4NjA0MWI5
YmM4NjAxNWE2ZjY1ZjkwMWJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKQEAgLTUwOSw2ICs1MDksNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2VuY2xvc2lu
Z1BhZ2luYXRpb25MYXllci5nZXQoKTsKICAgICB9CiAKKyAgICB2b2lkIHNldFJlZmVyZW5jZUJv
eEZvclBhdGhPcGVyYXRpb25zKCk7CiAgICAgdm9pZCB1cGRhdGVUcmFuc2Zvcm0oKTsKICAgICAK
ICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggOWI2OGU3YmZmNzAxODBmZGQ3MmJjYjc2OTNl
NmFhMmIxMzIzNTAzOC4uOWEwMDA2MzRhODBlYWFkOTk1NWQ4OWM4OGYzMGQ1M2IxNTRhNDNjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBA
IC0xNTM4LDggKzE1MzgsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQYXRoPiBnZXRQYXRoRnJv
bVBhdGhPcGVyYXRpb24oY29uc3QgRmxvYXRSZWN0JiBib3gsIGNvbnN0CiAgICAgY2FzZSBQYXRo
T3BlcmF0aW9uOjpCb3g6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxCb3hQYXRoT3BlcmF0aW9u
PihvcGVyYXRpb24pLmdldFBhdGgoKTsKICAgICBjYXNlIFBhdGhPcGVyYXRpb246OlJheToKLSAg
ICAgICAgLy8gRklYTUU6IGltcGxlbWVudCByYXktIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzMzNDQKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAg
ICAgcmV0dXJuIGRvd25jYXN0PFJheVBhdGhPcGVyYXRpb24+KG9wZXJhdGlvbikucGF0aEZvclJl
ZmVyZW5jZVJlY3QoKTsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBlNjBlODQ3NmM4ODVmYzU0YmU1MDhiM2U0NWQ2OGMxNDIxZjY2NWQ2Li45N2Rk
ZGNiNzAzNWNlMTYyYzRkODFhYjU5OWFkMGNkOGJiZDljZGQ3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMjItMDUtMDQgIE5pa29sYW9zIE1vdWNodGFyaXMgIDxubW91Y2h0YXJpc0BhcHBsZS5j
b20+CisKKyAgICAgICAgU3VwcG9ydCByYXkoKSBzaGFwZSBpbiBvZmZzZXQtcGF0aAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzQ0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAyMi0wNC0yOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBbIG1hY09TIERlYnVnIHdrMiBdIFRoaXJ0ZWVuIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy8gYXJlIGEgZmxha3kgY3Jhc2ggKEFTU0VSVElPTiBGQUlMRUQ6IHdpbGxCZUNvbXBvc2l0
ZWQgPT0gbmVlZHNUb0JlQ29tcG9zaXRlZChsYXllciwgcXVlcnlEYXRhKSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDRkMjI1ODVhNDNkOGRmMTYwM2Q1OGFlZDgwZmQ2NTkwYjNlYjEwMDMuLjAwNDky
NWMzN2I2YzI4Y2M5NTA5NDRkZjMwNjlhZTE2YWY5YmUyNjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNTA3MiwxNiArNTA3Miw4IEBAIHdlYmtpdC5vcmcvYi8yMzMzNDAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1hbmNob3ItdHJhCiB3ZWJraXQub3Jn
L2IvMjMzMzQwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZz
ZXQtYW5jaG9yLXRyYW5zZm9ybS1ib3gtZmlsbC1ib3gtMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi8yMzMzNDAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvbW90aW9uL29mZnNldC1hbmNob3ItdHJhbnNmb3JtLWJveC1maWxsLWJveC0wMDMuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogCi0jIENTUyBtb3Rpb24gcGF0aCB0aGF0IGRlcGVuZHMg
b24gcmF5KCksIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQuCi13ZWJraXQub3JnL2IvMjMzMzQ0
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1y
YXktMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzMzNDQgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0w
MDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwMy5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktMDA0Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0wMDUuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwNi5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCisjIENTUyBtb3Rpb24gcGF0aCBuZWVkcyB0byBpbXBsZW1lbnQgY29udGFp
bi4KIHdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0wMDcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQot
d2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9t
b3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwOC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJr
aXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlv
bi9vZmZzZXQtcGF0aC1yYXktMDA5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29m
ZnNldC1wYXRoLXJheS1jb250YWluLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlv
bi9vZmZzZXQtcGF0aC1yYXktY29udGFpbi0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQog
d2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9t
b3Rpb24vb2Zmc2V0LXBhdGgtcmF5LWNvbnRhaW4tMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0K
</data>
<flag name="commit-queue"
          id="488059"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458930</attachid>
            <date>2022-05-05 18:03:20 -0700</date>
            <delta_ts>2022-05-09 23:02:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233344-20220505180320.patch</filename>
            <type>text/plain</type>
            <size>20184</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFjMmVmYmM0MDg3YzA1
N2RiZWIzY2Y5ZjZjMDkwYzk2MGU4NDBiZS4uODY2Y2MzMWU0NTZmZjY1ZGVmNDA2MzRkYmU5YWM3
N2FmOTZhZGU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIyLTA1LTA0ICBOaWtv
bGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgcmF5KCkgc2hhcGUgaW4gb2Zmc2V0LXBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIHJheSBwYXRoLiBJ
bnZvbHZlcyBnZXR0aW5nIGNvbnRhaW5pbmcgYmxvY2sgYW5kIG9mZnNldAorICAgICAgICBvZiB0
aGUgZWxlbWVudCBmcm9tIHRoZSBjb250YWluaW5nIGJsb2NrLiBVc2luZyB0aGUgc2l6ZSBvZiB0
aGUgY29udGFpbmluZyBibG9jaworICAgICAgICBhbmQgb2Zmc2V0LCBjYWxjdWxhdGUgdGhlIGxl
bmd0aCBvZiB0aGUgcmF5IGFuZCBjcmVhdGUgYSBMaW5lIHBhdGggdXNpbmcgdGhlIGxlbmd0aAor
ICAgICAgICBhbmQgYW5nbGUuIENhbGN1bGF0aW5nIGNsb3Nlc3QvZmFydGhlc3Qtc2lkZSBhbmQg
Y2xvc2VzdC9mYXJ0aGVzdC1jb3JuZXIgYXJlIHNpbXBsZSAKKyAgICAgICAgYnV0IGNhbGN1bGF0
aW5nIHNpZGUgcmVxdWlyZXMgc29tZSBleHBsYW5hdGlvbi4gRmlyc3QsIHdlIGdldCB0aGUgdHdv
IHBvc3NpYmxlIHNpZGVzIG9mIAorICAgICAgICB0aGUgY29udGFpbmluZyBibG9jayB0aGUgcmF5
IGNvdWxkIGJlIGludGVyc2VjdGluZyB3aXRoLCBiYXNlZCBvbiB0aGUgYW5nbGUuIFRvIGNhbGN1
bGF0ZSAKKyAgICAgICAgd2hpY2ggc2lkZSBpcyBiZWluZyBpbnRlcnNlY3RlZCwgaWYgdGFuKHRo
ZXRhKSAqIHRvcC9ib3R0b20gaXMgb3V0c2lkZSBvZiB0aGUgY29udGFpbmluZyAKKyAgICAgICAg
YmxvY2ssIHRoaXMgbWVhbnMgdGhhdCB0aGUgcmF5IGlzIGludGVyc2VjdGluZyB3aXRoIHRoZSBv
dGhlciBzaWRlLiBGaW5hbGx5LCB3ZSBjYWxjdWxhdGUgCisgICAgICAgIHRoZSBhY3V0ZSBhbmds
ZSBiYXNlZCBvbiB3aGljaCBzaWRlIHdlIGludGVyc2VjdGVkIHdpdGguIFVzaW5nIHRoZSBsZW5n
dGggYW5kIGFuZ2xlLCB3ZSAKKyAgICAgICAgY2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgdGhlIGh5
cG90ZW51c2UsIHdoaWNoIGNvcnJlc3BvbmRzIHdpdGggdGhlIGxlbmd0aCBvZiB0aGUgc3RhcnQg
cG9pbnQKKyAgICAgICAgb2YgdGhlIHJheSB0byBpdHMgaW50ZXJzZWN0aW9uIHdpdGggYSBzaWRl
IG9mIHRoZSBjb250YWluaW5nIGJsb2NrLiBUZXN0IDcgaXMgc3RpbGwgZmFpbGluZyAKKyAgICAg
ICAgZHVlIHRvIGdldHRpbmcgaW5jb3JyZWN0IHdpZHRoIG9mIGNvbnRhaW5pbmcgYmxvY2sgKGRv
ZXNuJ3QgaGFwcGVuIHdoZW4gYW5pbWF0aW5nIHRoZSBwYXRoCisgICAgICAgIGZvciBzb21lIHJl
YXNvbikuIFdpbGwgaW1wbGVtZW50IGNvbnRhaW4gaW4gYW5vdGhlciBwYXRjaC4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJp
bmcvUGF0aE9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Bvc2l0aXZlQW5nbGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmF5UGF0aE9wZXJhdGlvbjo6Z2V0TGVuZ3RoRm9yUGF0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSYXlQYXRoT3BlcmF0aW9uOjpwYXRoRm9yUmVmZXJl
bmNlUmVjdCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNldFJlZmVyZW5jZUJveEZvclBhdGhPcGVyYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQYXRoRnJvbVBhdGhPcGVyYXRpb24pOgorCiAyMDIy
LTA0LTI4ICBQaGlsaXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1N0cmVhbWVyXSBQaXBld2lyZSBkaXNwbGF5IGNhcHR1cmUgYnJva2VuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWJhMWI4MjAz
NTJjMTRkOTYwNjYzM2YzMDFmOWQ0NTM3MjhlMmUyNS4uZDczYmFmMmJkY2NmYjI5MDdkMTcyNWU0
MjBlYzRkNzIwMjMzNTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjk4Nyw2ICs2OTg3LDcgQEAKIAkJMUFCN0ZDNjYwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3RkM2NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBh
dGhWYXJpYWJsZVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QUJBN0ZGRjE4OTczNDEyMDBEQ0U5RDYgLyogVmlzaXRlZExpbmtTdG9yZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpdGVkTGlua1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFBQkMyNjAzMjdGRDAyMTQwMDY0RjY4RiAvKiBQYXRoT3BlcmF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdGhPcGVyYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUMyMjYwQTBEQjY5RjE5MDA4OUI2
NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBQzIyNjBCMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9u
Q2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BcHBsaWNhdGlv
bkNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzJEODlDMUIxRTI5MUYw
MEQ1MkU4NyAvKiBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzIyNDcsNiArMzIyNDgsNyBAQAogCQkJCTU1RUM5NTk3MjA2
OUM5MkQwMDdERDBBOSAvKiBQYWludEZyZXF1ZW5jeVRyYWNrZXIuaCAqLywKIAkJCQkwODg1MDY3
RDExREEwNDVCMDAxODJCOTggLyogUGFpbnRJbmZvLmggKi8sCiAJCQkJMDg4NTA2N0UxMURBMDQ1
QjAwMTgyQjk4IC8qIFBhaW50UGhhc2UuaCAqLywKKwkJCQkxQUJDMjYwMzI3RkQwMjE0MDA2NEY2
OEYgLyogUGF0aE9wZXJhdGlvbi5jcHAgKi8sCiAJCQkJRkI5MkRGNDkxNUZFRDA4NzAwOTk0NDMz
IC8qIFBhdGhPcGVyYXRpb24uaCAqLywKIAkJCQlCMkIxRjcxNDBEMDBDQUE4MDA0QUVBNjQgLyog
UG9pbnRlckV2ZW50c0hpdFJ1bGVzLmNwcCAqLywKIAkJCQlCMkIxRjcxNTBEMDBDQUE4MDA0QUVB
NjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5jcHAKaW5kZXggMzQ0MGMyYjhjYTBiYzczZjE3NzlhZjAwZDcxMTljYzhjODIz
MTM0Yi4uY2JmMTRmY2U3YmFiOTNhNTlhZGM3ZDE5MTIzNjdkOGNkOWU1NzczNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSAiQ29sb3JJbnRlcnBvbGF0aW9uLmgiCisjaW5jbHVkZSAiR2VvbWV0
cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHcmFkaWVudEltYWdlLmgiCiAjaW5jbHVkZSAiTm9k
ZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtODE1LDkgKzgxNiw3IEBAIHN0
YXRpYyB2b2lkIGVuZFBvaW50c0Zyb21BbmdsZShmbG9hdCBhbmdsZURlZywgY29uc3QgRmxvYXRT
aXplJiBzaXplLCBGbG9hdFBvaW50CiAgICAgaWYgKHR5cGUgPT0gQ1NTUHJlZml4ZWRMaW5lYXJH
cmFkaWVudCkKICAgICAgICAgYW5nbGVEZWcgPSA5MCAtIGFuZ2xlRGVnOwogCi0gICAgYW5nbGVE
ZWcgPSBmbW9kZihhbmdsZURlZywgMzYwKTsKLSAgICBpZiAoYW5nbGVEZWcgPCAwKQotICAgICAg
ICBhbmdsZURlZyArPSAzNjA7CisgICAgYW5nbGVEZWcgPSB0b1Bvc2l0aXZlQW5nbGUoYW5nbGVE
ZWcpOwogCiAgICAgaWYgKCFhbmdsZURlZykgewogICAgICAgICBmaXJzdFBvaW50LnNldCgwLCBz
aXplLmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAppbmRleCA3NGI0YzM1YTU0YzU2NGE5ZDBiNjc3OWJi
NmY4NGQ3ZWZiMGRkYzZkLi4xODg0YTE3ZDQwZDE5MWYzODc0NWRiN2M5NzBhZGJkMTFlYTNmYmNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0
cnlVdGlsaXRpZXMuY3BwCkBAIC0yNjgsNCArMjY4LDUzIEBAIFJvdGF0ZWRSZWN0IHJvdGF0ZWRC
b3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZSb3RhdGlvbihjb25zdCBGbG9hdFF1YWQmIHF1
YWQsCiAgICAgcmV0dXJuIHsgY2VudGVyLCB7IHdpZHRoLCBoZWlnaHQgfSwgYW5nbGUgfTsKIH0K
IAorZmxvYXQgdG9Qb3NpdGl2ZUFuZ2xlKGZsb2F0IGFuZ2xlKQoreworICAgIGFuZ2xlID0gZm1v
ZChhbmdsZSwgMzYwKTsKKyAgICB3aGlsZSAoYW5nbGUgPCAwKQorICAgICAgICBhbmdsZSArPSAz
NjAuMDsKKyAgICByZXR1cm4gYW5nbGU7Cit9CisKK1JlY3RFZGdlczxkb3VibGU+IGRpc3RhbmNl
T2ZQb2ludFRvU2lkZXNPZlJlY3QoY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0
IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQoreworICAgIC8vIENvbXB1dGUgZGlzdGFuY2UgdG8gZWFj
aCBzaWRlIG9mIHRoZSBjb250YWluaW5nIGJveAorICAgIGRvdWJsZSB0b3AgPSBzdGQ6OmFicyhw
b3NpdGlvbi55KCkpOworICAgIGRvdWJsZSBib3R0b20gPSBzdGQ6OmFicyhwb3NpdGlvbi55KCkg
LSBib3VuZGluZ1JlY3QuaGVpZ2h0KCkpOworICAgIGRvdWJsZSBsZWZ0ID0gc3RkOjphYnMocG9z
aXRpb24ueCgpKTsKKyAgICBkb3VibGUgcmlnaHQgPSBzdGQ6OmFicyhwb3NpdGlvbi54KCkgLSBi
b3VuZGluZ1JlY3Qud2lkdGgoKSk7CisgICAgcmV0dXJuIFJlY3RFZGdlczxkb3VibGU+KHRvcCwg
cmlnaHQsIGJvdHRvbSwgbGVmdCk7Cit9CisKK2RvdWJsZSBsZW5ndGhPZlJheUludGVyc2VjdGlv
bldpdGhCb3VuZGluZ0JveChjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nUmVjdCwgY29uc3Qgc3Rk
OjpwYWlyPGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9hdD4gcmF5KQoreworICAgIGRvdWJsZSBsZW5n
dGggPSBsZW5ndGhPZlBvaW50VG9TaWRlT2ZJbnRlcnNlY3Rpb24oYm91bmRpbmdSZWN0LCByYXkp
OworICAgIGRvdWJsZSBhbmdsZU9mVHJpYW5nbGUgPSBhbmdsZU9mUG9pbnRUb1NpZGVPZkludGVy
c2VjdGlvbihib3VuZGluZ1JlY3QsIHJheSk7CisgICAgLy8gR2l2ZW4gYSBsZW5ndGggb2YgYW5n
bGUgb2YgYSB0cmlhbmdsZSwgY2FsY3VsYXRlIHRoZSBoeXBvdGVudXNlLCB3aGljaCBjb3JyZXNw
b25kcyB0bworICAgIC8vIHRoZSBsZW5ndGggZnJvbSB0aGUgZ2l2ZW4gcG9pbnQgdG8gdGhlIGlu
dGVyc2VjdGluZyBwb2ludCBvbiB0aGUgYm94CisgICAgcmV0dXJuIGxlbmd0aCAvIGNvcyhkZWcy
cmFkKGFuZ2xlT2ZUcmlhbmdsZSkpOworfQorCitkb3VibGUgbGVuZ3RoT2ZQb2ludFRvU2lkZU9m
SW50ZXJzZWN0aW9uKGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBzdGQ6OnBh
aXI8Y29uc3QgRmxvYXRQb2ludCYsIGZsb2F0PiByYXkpCit7CisgICAgYXV0byBwb3NpdGlvbiA9
IHJheS5maXJzdDsKKyAgICBmbG9hdCBhbmdsZUluUmFkaWFucyA9IGRlZzJyYWQocmF5LnNlY29u
ZCk7CisgICAgYXV0byBkaXN0YW5jZXMgPSBkaXN0YW5jZU9mUG9pbnRUb1NpZGVzT2ZSZWN0KGJv
dW5kaW5nUmVjdCwgcG9zaXRpb24pOworICAgIC8vIEdldCBwb3NzaWJsZSBpbnRlcnNlY3Rpb24g
c2lkZXMKKyAgICBkb3VibGUgczEgPSBjb3MoYW5nbGVJblJhZGlhbnMpID49IDAgPyBkaXN0YW5j
ZXMudG9wKCkgOiBkaXN0YW5jZXMuYm90dG9tKCk7CisgICAgZG91YmxlIHMyID0gc2luKGFuZ2xl
SW5SYWRpYW5zKSA+PSAwID8gZGlzdGFuY2VzLnJpZ2h0KCkgOiBkaXN0YW5jZXMubGVmdCgpOwor
ICAgIC8vIEdldCBpbnRlcnNlY3Rpb24gc2lkZSAtIGJhc2VkIG9uIGxlbmd0aCBvZiB0YW4oKSAq
IHMxCisgICAgcmV0dXJuIHNpbihhbmdsZUluUmFkaWFucykgKiBzMSA+IGNvcyhhbmdsZUluUmFk
aWFucykgKiBzMiA/IHMxIDogczI7Cit9CisKK2Zsb2F0IGFuZ2xlT2ZQb2ludFRvU2lkZU9mSW50
ZXJzZWN0aW9uKGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBzdGQ6OnBhaXI8
Y29uc3QgRmxvYXRQb2ludCYsIGZsb2F0PiByYXkpCit7CisgICAgYXV0byBwb3NpdGlvbiA9IHJh
eS5maXJzdDsKKyAgICBmbG9hdCBhbmdsZSA9IHJheS5zZWNvbmQ7CisgICAgYXV0byBkaXN0YW5j
ZXMgPSBkaXN0YW5jZU9mUG9pbnRUb1NpZGVzT2ZSZWN0KGJvdW5kaW5nUmVjdCwgcG9zaXRpb24p
OworICAgIGF1dG8gaW50ZXJzZWN0aW9uU2lkZSA9IGxlbmd0aE9mUG9pbnRUb1NpZGVPZkludGVy
c2VjdGlvbihib3VuZGluZ1JlY3QsIHJheSk7CisgICAgLy8gQ2FsY3VsYXRlIGFuZ2xlIGJhc2Vk
IG9uIHdoYXQgc2lkZSB3ZSBpbnRlcnNlY3RlZCB3aXRoCisgICAgcmV0dXJuIGludGVyc2VjdGlv
blNpZGUgPT0gZGlzdGFuY2VzLnRvcCgpIHx8IGludGVyc2VjdGlvblNpZGUgPT0gZGlzdGFuY2Vz
LmJvdHRvbSgpID8gc3RkOjpmbW9kKHRvUG9zaXRpdmVBbmdsZShhbmdsZSksIDkwKSA6IDkwIC0g
c3RkOjpmbW9kKHRvUG9zaXRpdmVBbmdsZShhbmdsZSksIDkwKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmgKaW5k
ZXggYzhkNjYzOTg4MTA1YTc2ZWQ5ZjUzZWRiZTZiMzNlNzE5YzViYjM2Ny4uMzMwMjNjZDVkNWQ2
MDFiNzgzNGRjMGRlN2RiOTg5NGRkOTA2NmMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5oCkBAIC02NCw2ICs2NCwyMiBA
QCBib29sIGVsbGlwc2VDb250YWluc1BvaW50KGNvbnN0IEZsb2F0UG9pbnQmIGNlbnRlciwgY29u
c3QgRmxvYXRTaXplJiByYWRpaSwgY29ucwogCiBGbG9hdFBvaW50IG1pZFBvaW50KGNvbnN0IEZs
b2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7CiAKKy8vIEdpdmVuIGEgYm94IGFuZCBhIHJh
eSAoZGVzY3JpYmVkIGJ5IGEgc3RhcnRpbmcgcG9zaXRpb24gYW5kIGFuZ2xlIGluIGRlZ3JlZXMp
LCBjb21wdXRlIHRoZSBsZW5ndGggZnJvbSB0aGUgc3RhcnRpbmcKKy8vIHBvc2l0aW9uIHRvIHRo
ZSBpbnRlcnNlY3Rpb24gb2YgdGhlIHJheSB3aXRoIHRoZSBib3guCitkb3VibGUgbGVuZ3RoT2ZS
YXlJbnRlcnNlY3Rpb25XaXRoQm91bmRpbmdCb3goY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ1Jl
Y3QsIGNvbnN0IHN0ZDo6cGFpcjxjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQ+IHJheSk7CisKKy8v
IEdpdmVuIGEgYm94IGFuZCBhIHJheSAoZGVzY3JpYmVkIGJ5IGEgc3RhcnRpbmcgcG9zaXRpb24g
YW5kIGFuZ2xlIGluIGRlZ3JlZXMpLCBjb21wdXRlIHRoZSBjbG9zZXN0IGxlbmd0aCBmcm9tIHRo
ZQorLy8gc3RhcnRpbmcgcG9zaXRpb24gdG8gdGhlIHNpZGUgdGhhdCB0aGUgcmF5IGludGVyc2Vj
dHMgd2l0aC4KK2RvdWJsZSBsZW5ndGhPZlBvaW50VG9TaWRlT2ZJbnRlcnNlY3Rpb24oY29uc3Qg
RmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0IHN0ZDo6cGFpcjxjb25zdCBGbG9hdFBvaW50
JiwgZmxvYXQ+IHJheSk7CisKKy8vIEdpdmVuIGEgYm94LCBhIHJheSAoZGVzY3JpYmVkIGJ5IGEg
c3RhcnRpbmcgcG9zaXRpb24gYW5kIGFuZ2xlIGluIGRlZ3JlZXMpIGNvbXB1dGUgdGhlIGFjdXRl
IGFuZ2xlIGJldHdlZW4gdGhlIHJheQorLy8gYW5kIHRoZSBsaW5lIHNlZ21lbnQgZnJvbSB0aGUg
c3RhcnRpbmcgcG9pbnQgdG8gdGhlIGNsb3Nlc3QgcG9pbnQgb24gdGhlIHNpZGUgdGhhdCB0aGUg
cmF5IGludGVyc2VjdHMgd2l0aC4KK2Zsb2F0IGFuZ2xlT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0
aW9uKGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBzdGQ6OnBhaXI8Y29uc3Qg
RmxvYXRQb2ludCYsIGZsb2F0PiByYXkpOworCisvLyBHaXZlbiBhIGJveCBhbmQgYSBwb3NpdG9u
IHdpdGhpbiB0aGUgYm94LCBjYWxjdWxhdGUgdGhlIGRpc3RhbmNlIG9mIHRoZSBwb2ludCBmcm9t
IGVhY2ggc2lkZQorUmVjdEVkZ2VzPGRvdWJsZT4gZGlzdGFuY2VPZlBvaW50VG9TaWRlc09mUmVj
dChjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFBvaW50Jik7CitmbG9hdCB0b1Bvc2l0aXZl
QW5nbGUoZmxvYXQgYW5nbGUpOworCiBzdHJ1Y3QgUm90YXRlZFJlY3QgewogICAgIEZsb2F0UG9p
bnQgY2VudGVyOwogICAgIEZsb2F0U2l6ZSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1BhdGhPcGVyYXRpb24uY3BwCmluZGV4IGZhM2I5YjZmNWM3OWNjMTdlZjBlMDYxOTk2ODU2Yzcw
MzdmNjFmOGYuLjUzYzM0OTBkNWFkYTI3OTBjOGMyNTgzMjFhMjhhYzcyYmQ5MTlkNmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQYXRoT3BlcmF0aW9uLmgiCiAKKyNp
bmNsdWRlICJHZW9tZXRyeVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNCArNDksMzggQEAgY29uc3QgU1ZHRWxlbWVudCog
UmVmZXJlbmNlUGF0aE9wZXJhdGlvbjo6ZWxlbWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
ZWxlbWVudC5nZXQoKTsKIH0KKworZG91YmxlIFJheVBhdGhPcGVyYXRpb246Omxlbmd0aEZvclBh
dGgoKSBjb25zdAoreworICAgIGF1dG8gYm91bmRpbmdCb3ggPSBtX2NvbnRhaW5pbmdCbG9ja0Jv
dW5kaW5nUmVjdDsKKyAgICBhdXRvIGRpc3RhbmNlcyA9IGRpc3RhbmNlT2ZQb2ludFRvU2lkZXNP
ZlJlY3QoYm91bmRpbmdCb3gsIG1fcG9zaXRpb24pOworICAgIAorICAgIHN3aXRjaCAobV9zaXpl
KSB7CisgICAgY2FzZSBTaXplOjpDbG9zZXN0U2lkZToKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWlu
KCB7IGRpc3RhbmNlcy50b3AoKSwgZGlzdGFuY2VzLmJvdHRvbSgpLCBkaXN0YW5jZXMubGVmdCgp
LCBkaXN0YW5jZXMucmlnaHQoKSB9ICk7CisgICAgY2FzZSBTaXplOjpGYXJ0aGVzdFNpZGU6Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1heCggeyBkaXN0YW5jZXMudG9wKCksIGRpc3RhbmNlcy5ib3R0
b20oKSwgZGlzdGFuY2VzLmxlZnQoKSwgZGlzdGFuY2VzLnJpZ2h0KCkgfSApOworICAgIGNhc2Ug
U2l6ZTo6RmFydGhlc3RDb3JuZXI6CisgICAgICAgIHJldHVybiBzdGQ6OnNxcnQoc3RkOjpwb3co
c3RkOjptYXgoZGlzdGFuY2VzLmxlZnQoKSwgZGlzdGFuY2VzLnJpZ2h0KCkpLCAyKSArIHN0ZDo6
cG93KHN0ZDo6bWF4KGRpc3RhbmNlcy50b3AoKSwgZGlzdGFuY2VzLmJvdHRvbSgpKSwgMikpOwor
ICAgIGNhc2UgU2l6ZTo6Q2xvc2VzdENvcm5lcjoKKyAgICAgICAgcmV0dXJuIHN0ZDo6c3FydChz
dGQ6OnBvdyhzdGQ6Om1pbihkaXN0YW5jZXMubGVmdCgpLCBkaXN0YW5jZXMucmlnaHQoKSksIDIp
ICsgc3RkOjpwb3coc3RkOjptaW4oZGlzdGFuY2VzLnRvcCgpLCBkaXN0YW5jZXMuYm90dG9tKCkp
LCAyKSk7CisgICAgY2FzZSBTaXplOjpTaWRlczoKKyAgICAgICAgaWYgKG1fcG9zaXRpb24ueCgp
IDwgMCB8fCBtX3Bvc2l0aW9uLngoKSA+IGJvdW5kaW5nQm94LndpZHRoKCkgfHwgbV9wb3NpdGlv
bi55KCkgPCAwIHx8IG1fcG9zaXRpb24ueSgpID4gYm91bmRpbmdCb3guaGVpZ2h0KCkpCisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGxlbmd0aE9mUmF5SW50ZXJzZWN0aW9u
V2l0aEJvdW5kaW5nQm94KGJvdW5kaW5nQm94LCBzdGQ6Om1ha2VfcGFpcihtX3Bvc2l0aW9uLCBt
X2FuZ2xlKSk7CisgICAgfQorfQorCitjb25zdCBQYXRoIFJheVBhdGhPcGVyYXRpb246OnBhdGhG
b3JSZWZlcmVuY2VSZWN0KCkgY29uc3QKK3sKKyAgICBQYXRoIHBhdGg7CisgICAgaWYgKG1fY29u
dGFpbmluZ0Jsb2NrQm91bmRpbmdSZWN0LmlzWmVybygpKQorICAgICAgICByZXR1cm4gcGF0aDsK
KyAgICBhdXRvIGxlbmd0aCA9IGxlbmd0aEZvclBhdGgoKTsKKyAgICBhdXRvIHJhZGlhbnMgPSBk
ZWcycmFkKHRvUG9zaXRpdmVBbmdsZShtX2FuZ2xlKSAtIDkwKTsKKyAgICBhdXRvIHBvaW50ID0g
RmxvYXRQb2ludChzdGQ6OmNvcyhyYWRpYW5zKSAqIGxlbmd0aCwgc3RkOjpzaW4ocmFkaWFucykg
KiBsZW5ndGgpOworICAgIHBhdGguYWRkTGluZVRvKHBvaW50KTsKKyAgICByZXR1cm4gcGF0aDsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRo
T3BlcmF0aW9uLmgKaW5kZXggZDZlMDA5OTZmZjg3NTlkMTZiOWZkMjdkN2U0YWE4NzAxNDNlNWRl
Zi4uMGRmMGYxMWJjYWZmZGNhZTFiZjk3NTJjZTE5Y2UzZWM4NzIyOTdlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5oCkBAIC0xOTUsNyArMTk1LDE4IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIHJldHVybiBSYXlQYXRoT3BlcmF0aW9uOjpjcmVhdGUoV2ViQ29y
ZTo6YmxlbmQobV9hbmdsZSwgdG8ubV9hbmdsZSwgY29udGV4dCksIG1fc2l6ZSwgbV9pc0NvbnRh
aW5pbmcpOwogICAgIH0KLQorICAgIAorICAgIGNvbnN0IFBhdGggcGF0aEZvclJlZmVyZW5jZVJl
Y3QoKSBjb25zdDsKKyAgICBkb3VibGUgbGVuZ3RoRm9yUGF0aCgpIGNvbnN0OworICAgIAorICAg
IHZvaWQgc2V0Q29udGFpbmluZ0Jsb2Fja1JlZmVyZW5jZVJlY3QoY29uc3QgRmxvYXRSZWN0JiBi
b3VuZGluZ1JlY3QpCisgICAgeworICAgICAgICBtX2NvbnRhaW5pbmdCbG9ja0JvdW5kaW5nUmVj
dCA9IGJvdW5kaW5nUmVjdDsKKyAgICB9CisgICAgdm9pZCBzZXRTdGFydGluZ1Bvc2l0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgbV9wb3NpdGlvbiA9IHBv
c2l0aW9uOworICAgIH0KIHByaXZhdGU6CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBhdGhP
cGVyYXRpb24mIG90aGVyKSBjb25zdCBvdmVycmlkZQogICAgIHsKQEAgLTIxNiw5ICsyMjcsMTEg
QEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgZmxvYXQgbV9hbmdsZTsKKyAgICBmbG9h
dCBtX2FuZ2xlIHsgMCB9OwogICAgIFNpemUgbV9zaXplOwotICAgIGJvb2wgbV9pc0NvbnRhaW5p
bmc7CisgICAgYm9vbCBtX2lzQ29udGFpbmluZyB7IGZhbHNlIH07CisgICAgRmxvYXRSZWN0IG1f
Y29udGFpbmluZ0Jsb2NrQm91bmRpbmdSZWN0OworICAgIEZsb2F0UG9pbnQgbV9wb3NpdGlvbjsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCmluZGV4IGJiNGQzYTRlNDYyYmNjOTc1NjZlZmJhNDliOGQxODM5NzhjYTRh
M2MuLjg0OTBlNzJlMjY4NWJkNTMzYTZlMmU3Y2I5MDA0ZTIyZTJhYmZlN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTMxNyw2ICsxMzE3LDMxIEBAIHZv
aWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybUZyb21TdHlsZShUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdHJhbnNmb3JtLCBjb25zCiAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUodHJhbnNmb3Jt
LCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNldFJl
ZmVyZW5jZUJveEZvclBhdGhPcGVyYXRpb25zKCkKK3sKKyAgICBhdXRvIHBhdGhPcGVyYXRpb24g
PSByZW5kZXJlcigpLnN0eWxlKCkub2Zmc2V0UGF0aCgpOworICAgIGlmICghcGF0aE9wZXJhdGlv
bikKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChpczxCb3hQYXRoT3BlcmF0aW9uPihwYXRoT3Bl
cmF0aW9uKSkgeworICAgICAgICBhdXRvJiBib3hQYXRoT3BlcmF0aW9uID0gZG93bmNhc3Q8Qm94
UGF0aE9wZXJhdGlvbj4oKnBhdGhPcGVyYXRpb24pOworICAgICAgICBhdXRvIHBhdGhSZWZlcmVu
Y2VCb3hSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVsc0lmTmVlZGVkKHJlbmRlcmVyKCkucmVm
ZXJlbmNlQm94UmVjdChib3hQYXRoT3BlcmF0aW9uLnJlZmVyZW5jZUJveCgpKSwgcmVuZGVyZXIo
KSk7CisgICAgICAgIGJveFBhdGhPcGVyYXRpb24uc2V0UGF0aEZvclJlZmVyZW5jZVJlY3QoRmxv
YXRSb3VuZGVkUmVjdCB7IHBhdGhSZWZlcmVuY2VCb3hSZWN0IH0pOworICAgIH0gZWxzZSBpZiAo
aXM8UmF5UGF0aE9wZXJhdGlvbj4ocGF0aE9wZXJhdGlvbikpIHsKKyAgICAgICAgaWYgKGNvbnN0
IGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9IHJlbmRlcmVyKCkuY29udGFpbmluZ0Jsb2NrKCkpIHsK
KyAgICAgICAgICAgIGF1dG8mIHJheVBhdGhPcGVyYXRpb24gPSBkb3duY2FzdDxSYXlQYXRoT3Bl
cmF0aW9uPigqcGF0aE9wZXJhdGlvbik7CisgICAgICAgICAgICBhdXRvIHBhdGhSZWZlcmVuY2VC
b3hSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVsc0lmTmVlZGVkKGNvbnRhaW5pbmdCbG9jay0+
dHJhbnNmb3JtUmVmZXJlbmNlQm94UmVjdChjb250YWluaW5nQmxvY2stPnN0eWxlKCkpLCByZW5k
ZXJlcigpKTsKKyAgICAgICAgICAgIGlmICghcGF0aFJlZmVyZW5jZUJveFJlY3Qud2lkdGgoKSkK
KyAgICAgICAgICAgICAgICBwYXRoUmVmZXJlbmNlQm94UmVjdC5zZXRXaWR0aChwYXRoUmVmZXJl
bmNlQm94UmVjdC5oZWlnaHQoKSk7CisgICAgICAgICAgICBpZiAoIXBhdGhSZWZlcmVuY2VCb3hS
ZWN0LmhlaWdodCgpKQorICAgICAgICAgICAgICAgIHBhdGhSZWZlcmVuY2VCb3hSZWN0LnNldEhl
aWdodChwYXRoUmVmZXJlbmNlQm94UmVjdC53aWR0aCgpKTsKKyAgICAgICAgICAgIHJheVBhdGhP
cGVyYXRpb24uc2V0Q29udGFpbmluZ0Jsb2Fja1JlZmVyZW5jZVJlY3QocGF0aFJlZmVyZW5jZUJv
eFJlY3QpOworICAgICAgICAgICAgYXV0byBsZWZ0ID0gcmVuZGVyZXIoKS5zdHlsZSgpLmxlZnQo
KTsKKyAgICAgICAgICAgIGF1dG8gdG9wID0gcmVuZGVyZXIoKS5zdHlsZSgpLnRvcCgpOworICAg
ICAgICAgICAgcmF5UGF0aE9wZXJhdGlvbi5zZXRTdGFydGluZ1Bvc2l0aW9uKEZsb2F0UG9pbnQo
bGVmdC5pc1BlcmNlbnQoKSA/IGxlZnQudmFsdWUoKSAvIDEwMCAqIHBhdGhSZWZlcmVuY2VCb3hS
ZWN0LndpZHRoKCkgOiBsZWZ0LnZhbHVlKCksIHRvcC5pc1BlcmNlbnQoKSA/IHRvcC52YWx1ZSgp
IC8gMTAwICogcGF0aFJlZmVyZW5jZUJveFJlY3QuaGVpZ2h0KCkgOiB0b3AudmFsdWUoKSkpOwor
ICAgICAgICB9CisgICAgfQorfQorCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0o
KQogewogICAgIGJvb2wgaGFzVHJhbnNmb3JtID0gcmVuZGVyZXIoKS5oYXNUcmFuc2Zvcm0oKTsK
QEAgLTEzMzUsMTMgKzEzNjAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0o
KQogICAgIAogICAgIGlmIChoYXNUcmFuc2Zvcm0pIHsKICAgICAgICAgbV90cmFuc2Zvcm0tPm1h
a2VJZGVudGl0eSgpOwotCi0gICAgICAgIGlmIChhdXRvIHBhdGhPcGVyYXRpb24gPSByZW5kZXJl
cigpLnN0eWxlKCkub2Zmc2V0UGF0aCgpOyBwYXRoT3BlcmF0aW9uICYmIGlzPEJveFBhdGhPcGVy
YXRpb24+KHBhdGhPcGVyYXRpb24pKSB7Ci0gICAgICAgICAgICBhdXRvJiBib3hQYXRoT3BlcmF0
aW9uID0gZG93bmNhc3Q8Qm94UGF0aE9wZXJhdGlvbj4oKnBhdGhPcGVyYXRpb24pOwotICAgICAg
ICAgICAgYXV0byBwYXRoUmVmZXJlbmNlQm94UmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHNJ
Zk5lZWRlZChyZW5kZXJlcigpLnJlZmVyZW5jZUJveFJlY3QoYm94UGF0aE9wZXJhdGlvbi5yZWZl
cmVuY2VCb3goKSksIHJlbmRlcmVyKCkpOwotICAgICAgICAgICAgYm94UGF0aE9wZXJhdGlvbi5z
ZXRQYXRoRm9yUmVmZXJlbmNlUmVjdChGbG9hdFJvdW5kZWRSZWN0IHsgcGF0aFJlZmVyZW5jZUJv
eFJlY3QgfSk7Ci0gICAgICAgIH0KLQorICAgICAgICBzZXRSZWZlcmVuY2VCb3hGb3JQYXRoT3Bl
cmF0aW9ucygpOwogICAgICAgICB1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUoKm1fdHJhbnNmb3Jt
LCByZW5kZXJlcigpLnN0eWxlKCksIFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25z
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggODA0
NzYxYThmOTIwMDA0ZThmZGQ0MjdlMThkNGE3OTg0NTEzMWI5ZC4uZTUxZTMxYTkwMjE2NTU4NjA0
MWI5YmM4NjAxNWE2ZjY1ZjkwMWJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKQEAgLTUwOSw2ICs1MDksNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2VuY2xv
c2luZ1BhZ2luYXRpb25MYXllci5nZXQoKTsKICAgICB9CiAKKyAgICB2b2lkIHNldFJlZmVyZW5j
ZUJveEZvclBhdGhPcGVyYXRpb25zKCk7CiAgICAgdm9pZCB1cGRhdGVUcmFuc2Zvcm0oKTsKICAg
ICAKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggOWI2OGU3YmZmNzAxODBmZGQ3MmJjYjc2
OTNlNmFhMmIxMzIzNTAzOC4uOWEwMDA2MzRhODBlYWFkOTk1NWQ4OWM4OGYzMGQ1M2IxNTRhNDNj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CkBAIC0xNTM4LDggKzE1MzgsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQYXRoPiBnZXRQYXRo
RnJvbVBhdGhPcGVyYXRpb24oY29uc3QgRmxvYXRSZWN0JiBib3gsIGNvbnN0CiAgICAgY2FzZSBQ
YXRoT3BlcmF0aW9uOjpCb3g6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxCb3hQYXRoT3BlcmF0
aW9uPihvcGVyYXRpb24pLmdldFBhdGgoKTsKICAgICBjYXNlIFBhdGhPcGVyYXRpb246OlJheToK
LSAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCByYXktIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzMzNDQKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICAgICAgcmV0dXJuIGRvd25jYXN0PFJheVBhdGhPcGVyYXRpb24+KG9wZXJhdGlvbikucGF0aEZv
clJlZmVyZW5jZVJlY3QoKTsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBlNjBlODQ3NmM4ODVmYzU0YmU1MDhiM2U0NWQ2OGMxNDIxZjY2NWQ2Li45
N2RkZGNiNzAzNWNlMTYyYzRkODFhYjU5OWFkMGNkOGJiZDljZGQ3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjItMDUtMDQgIE5pa29sYW9zIE1vdWNodGFyaXMgIDxubW91Y2h0YXJpc0BhcHBs
ZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCByYXkoKSBzaGFwZSBpbiBvZmZzZXQtcGF0aAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzQ0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAyMi0wNC0yOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBbIG1hY09TIERlYnVnIHdrMiBdIFRoaXJ0ZWVuIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy8gYXJlIGEgZmxha3kgY3Jhc2ggKEFTU0VSVElPTiBGQUlMRUQ6IHdpbGxCZUNvbXBv
c2l0ZWQgPT0gbmVlZHNUb0JlQ29tcG9zaXRlZChsYXllciwgcXVlcnlEYXRhKSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDRkMjI1ODVhNDNkOGRmMTYwM2Q1OGFlZDgwZmQ2NTkwYjNlYjEwMDMuLjAw
NDkyNWMzN2I2YzI4Y2M5NTA5NDRkZjMwNjlhZTE2YWY5YmUyNjkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNTA3MiwxNiArNTA3Miw4IEBAIHdlYmtpdC5vcmcvYi8yMzMzNDAgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1hbmNob3ItdHJhCiB3ZWJraXQu
b3JnL2IvMjMzMzQwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9v
ZmZzZXQtYW5jaG9yLXRyYW5zZm9ybS1ib3gtZmlsbC1ib3gtMDAyLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMzMzNDAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvbW90aW9uL29mZnNldC1hbmNob3ItdHJhbnNmb3JtLWJveC1maWxsLWJveC0wMDMu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi0jIENTUyBtb3Rpb24gcGF0aCB0aGF0IGRlcGVu
ZHMgb24gcmF5KCksIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQuCi13ZWJraXQub3JnL2IvMjMz
MzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0
aC1yYXktMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzMzNDQg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJh
eS0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAw
My5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktMDA0Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0wMDUuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwNi5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCisjIENTUyBtb3Rpb24gcGF0aCBuZWVkcyB0byBpbXBsZW1lbnQgY29u
dGFpbi4KIHdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0wMDcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQotd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwOC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13
ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21v
dGlvbi9vZmZzZXQtcGF0aC1yYXktMDA5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9u
L29mZnNldC1wYXRoLXJheS1jb250YWluLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21v
dGlvbi9vZmZzZXQtcGF0aC1yYXktY29udGFpbi0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LWNvbnRhaW4tMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0K
</data>
<flag name="commit-queue"
          id="488108"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458987</attachid>
            <date>2022-05-06 19:36:52 -0700</date>
            <delta_ts>2022-05-07 14:44:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233344-20220506193652.patch</filename>
            <type>text/plain</type>
            <size>21160</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFjMmVmYmM0MDg3YzA1
N2RiZWIzY2Y5ZjZjMDkwYzk2MGU4NDBiZS4uODY2Y2MzMWU0NTZmZjY1ZGVmNDA2MzRkYmU5YWM3
N2FmOTZhZGU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIyLTA1LTA0ICBOaWtv
bGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgcmF5KCkgc2hhcGUgaW4gb2Zmc2V0LXBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIHJheSBwYXRoLiBJ
bnZvbHZlcyBnZXR0aW5nIGNvbnRhaW5pbmcgYmxvY2sgYW5kIG9mZnNldAorICAgICAgICBvZiB0
aGUgZWxlbWVudCBmcm9tIHRoZSBjb250YWluaW5nIGJsb2NrLiBVc2luZyB0aGUgc2l6ZSBvZiB0
aGUgY29udGFpbmluZyBibG9jaworICAgICAgICBhbmQgb2Zmc2V0LCBjYWxjdWxhdGUgdGhlIGxl
bmd0aCBvZiB0aGUgcmF5IGFuZCBjcmVhdGUgYSBMaW5lIHBhdGggdXNpbmcgdGhlIGxlbmd0aAor
ICAgICAgICBhbmQgYW5nbGUuIENhbGN1bGF0aW5nIGNsb3Nlc3QvZmFydGhlc3Qtc2lkZSBhbmQg
Y2xvc2VzdC9mYXJ0aGVzdC1jb3JuZXIgYXJlIHNpbXBsZSAKKyAgICAgICAgYnV0IGNhbGN1bGF0
aW5nIHNpZGUgcmVxdWlyZXMgc29tZSBleHBsYW5hdGlvbi4gRmlyc3QsIHdlIGdldCB0aGUgdHdv
IHBvc3NpYmxlIHNpZGVzIG9mIAorICAgICAgICB0aGUgY29udGFpbmluZyBibG9jayB0aGUgcmF5
IGNvdWxkIGJlIGludGVyc2VjdGluZyB3aXRoLCBiYXNlZCBvbiB0aGUgYW5nbGUuIFRvIGNhbGN1
bGF0ZSAKKyAgICAgICAgd2hpY2ggc2lkZSBpcyBiZWluZyBpbnRlcnNlY3RlZCwgaWYgdGFuKHRo
ZXRhKSAqIHRvcC9ib3R0b20gaXMgb3V0c2lkZSBvZiB0aGUgY29udGFpbmluZyAKKyAgICAgICAg
YmxvY2ssIHRoaXMgbWVhbnMgdGhhdCB0aGUgcmF5IGlzIGludGVyc2VjdGluZyB3aXRoIHRoZSBv
dGhlciBzaWRlLiBGaW5hbGx5LCB3ZSBjYWxjdWxhdGUgCisgICAgICAgIHRoZSBhY3V0ZSBhbmds
ZSBiYXNlZCBvbiB3aGljaCBzaWRlIHdlIGludGVyc2VjdGVkIHdpdGguIFVzaW5nIHRoZSBsZW5n
dGggYW5kIGFuZ2xlLCB3ZSAKKyAgICAgICAgY2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgdGhlIGh5
cG90ZW51c2UsIHdoaWNoIGNvcnJlc3BvbmRzIHdpdGggdGhlIGxlbmd0aCBvZiB0aGUgc3RhcnQg
cG9pbnQKKyAgICAgICAgb2YgdGhlIHJheSB0byBpdHMgaW50ZXJzZWN0aW9uIHdpdGggYSBzaWRl
IG9mIHRoZSBjb250YWluaW5nIGJsb2NrLiBUZXN0IDcgaXMgc3RpbGwgZmFpbGluZyAKKyAgICAg
ICAgZHVlIHRvIGdldHRpbmcgaW5jb3JyZWN0IHdpZHRoIG9mIGNvbnRhaW5pbmcgYmxvY2sgKGRv
ZXNuJ3QgaGFwcGVuIHdoZW4gYW5pbWF0aW5nIHRoZSBwYXRoCisgICAgICAgIGZvciBzb21lIHJl
YXNvbikuIFdpbGwgaW1wbGVtZW50IGNvbnRhaW4gaW4gYW5vdGhlciBwYXRjaC4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJp
bmcvUGF0aE9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Bvc2l0aXZlQW5nbGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmF5UGF0aE9wZXJhdGlvbjo6Z2V0TGVuZ3RoRm9yUGF0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSYXlQYXRoT3BlcmF0aW9uOjpwYXRoRm9yUmVmZXJl
bmNlUmVjdCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNldFJlZmVyZW5jZUJveEZvclBhdGhPcGVyYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQYXRoRnJvbVBhdGhPcGVyYXRpb24pOgorCiAyMDIy
LTA0LTI4ICBQaGlsaXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1N0cmVhbWVyXSBQaXBld2lyZSBkaXNwbGF5IGNhcHR1cmUgYnJva2VuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWJhMWI4MjAz
NTJjMTRkOTYwNjYzM2YzMDFmOWQ0NTM3MjhlMmUyNS4uZDczYmFmMmJkY2NmYjI5MDdkMTcyNWU0
MjBlYzRkNzIwMjMzNTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjk4Nyw2ICs2OTg3LDcgQEAKIAkJMUFCN0ZDNjYwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3RkM2NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBh
dGhWYXJpYWJsZVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QUJBN0ZGRjE4OTczNDEyMDBEQ0U5RDYgLyogVmlzaXRlZExpbmtTdG9yZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpdGVkTGlua1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFBQkMyNjAzMjdGRDAyMTQwMDY0RjY4RiAvKiBQYXRoT3BlcmF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdGhPcGVyYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUMyMjYwQTBEQjY5RjE5MDA4OUI2
NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBQzIyNjBCMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9u
Q2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BcHBsaWNhdGlv
bkNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzJEODlDMUIxRTI5MUYw
MEQ1MkU4NyAvKiBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzIyNDcsNiArMzIyNDgsNyBAQAogCQkJCTU1RUM5NTk3MjA2
OUM5MkQwMDdERDBBOSAvKiBQYWludEZyZXF1ZW5jeVRyYWNrZXIuaCAqLywKIAkJCQkwODg1MDY3
RDExREEwNDVCMDAxODJCOTggLyogUGFpbnRJbmZvLmggKi8sCiAJCQkJMDg4NTA2N0UxMURBMDQ1
QjAwMTgyQjk4IC8qIFBhaW50UGhhc2UuaCAqLywKKwkJCQkxQUJDMjYwMzI3RkQwMjE0MDA2NEY2
OEYgLyogUGF0aE9wZXJhdGlvbi5jcHAgKi8sCiAJCQkJRkI5MkRGNDkxNUZFRDA4NzAwOTk0NDMz
IC8qIFBhdGhPcGVyYXRpb24uaCAqLywKIAkJCQlCMkIxRjcxNDBEMDBDQUE4MDA0QUVBNjQgLyog
UG9pbnRlckV2ZW50c0hpdFJ1bGVzLmNwcCAqLywKIAkJCQlCMkIxRjcxNTBEMDBDQUE4MDA0QUVB
NjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5jcHAKaW5kZXggMzQ0MGMyYjhjYTBiYzczZjE3NzlhZjAwZDcxMTljYzhjODIz
MTM0Yi4uY2JmMTRmY2U3YmFiOTNhNTlhZGM3ZDE5MTIzNjdkOGNkOWU1NzczNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSAiQ29sb3JJbnRlcnBvbGF0aW9uLmgiCisjaW5jbHVkZSAiR2VvbWV0
cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHcmFkaWVudEltYWdlLmgiCiAjaW5jbHVkZSAiTm9k
ZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtODE1LDkgKzgxNiw3IEBAIHN0
YXRpYyB2b2lkIGVuZFBvaW50c0Zyb21BbmdsZShmbG9hdCBhbmdsZURlZywgY29uc3QgRmxvYXRT
aXplJiBzaXplLCBGbG9hdFBvaW50CiAgICAgaWYgKHR5cGUgPT0gQ1NTUHJlZml4ZWRMaW5lYXJH
cmFkaWVudCkKICAgICAgICAgYW5nbGVEZWcgPSA5MCAtIGFuZ2xlRGVnOwogCi0gICAgYW5nbGVE
ZWcgPSBmbW9kZihhbmdsZURlZywgMzYwKTsKLSAgICBpZiAoYW5nbGVEZWcgPCAwKQotICAgICAg
ICBhbmdsZURlZyArPSAzNjA7CisgICAgYW5nbGVEZWcgPSB0b1Bvc2l0aXZlQW5nbGUoYW5nbGVE
ZWcpOwogCiAgICAgaWYgKCFhbmdsZURlZykgewogICAgICAgICBmaXJzdFBvaW50LnNldCgwLCBz
aXplLmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAppbmRleCA3NGI0YzM1YTU0YzU2NGE5ZDBiNjc3OWJi
NmY4NGQ3ZWZiMGRkYzZkLi5kYmI5Zjg5NDI0MmU2MDVhYjFlY2E2OThiODc5OWIyOTZkOWI3NWY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0
cnlVdGlsaXRpZXMuY3BwCkBAIC0yNjgsNCArMjY4LDc0IEBAIFJvdGF0ZWRSZWN0IHJvdGF0ZWRC
b3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZSb3RhdGlvbihjb25zdCBGbG9hdFF1YWQmIHF1
YWQsCiAgICAgcmV0dXJuIHsgY2VudGVyLCB7IHdpZHRoLCBoZWlnaHQgfSwgYW5nbGUgfTsKIH0K
IAorZmxvYXQgdG9Qb3NpdGl2ZUFuZ2xlKGZsb2F0IGFuZ2xlKQoreworICAgIGFuZ2xlID0gZm1v
ZChhbmdsZSwgMzYwKTsKKyAgICB3aGlsZSAoYW5nbGUgPCAwKQorICAgICAgICBhbmdsZSArPSAz
NjAuMDsKKyAgICByZXR1cm4gYW5nbGU7Cit9CisKKy8vIENvbXB1dGUgYWN1dGUgYW5nbGUgZnJv
bSB2ZXJ0aWNhbCBheGlzCitzdGF0aWMgZmxvYXQgdG9SZWxhdGVkQWN1dGVBbmdsZShmbG9hdCBh
bmdsZSkKK3sKKyAgICBhbmdsZSA9IHRvUG9zaXRpdmVBbmdsZShhbmdsZSk7CisgICAgaWYgKGFu
Z2xlIDwgOTApCisgICAgICAgIHJldHVybiBhbmdsZTsKKyAgICBpZiAoYW5nbGUgPiA5MCB8fCBh
bmdsZSA8IDE4MCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6YWJzKDE4MCAtIGFuZ2xlKTsKKyAgICBy
ZXR1cm4gc3RkOjphYnMoMzYwIC0gYW5nbGUpOworfQorCitSZWN0RWRnZXM8ZG91YmxlPiBkaXN0
YW5jZU9mUG9pbnRUb1NpZGVzT2ZSZWN0KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3sKKyAgICAvLyBDb21wdXRlIGRpc3RhbmNlIHRv
IGVhY2ggc2lkZSBvZiB0aGUgY29udGFpbmluZyBib3gKKyAgICBkb3VibGUgdG9wID0gc3RkOjph
YnMocG9zaXRpb24ueSgpKTsKKyAgICBkb3VibGUgYm90dG9tID0gc3RkOjphYnMocG9zaXRpb24u
eSgpIC0gYm91bmRpbmdSZWN0LmhlaWdodCgpKTsKKyAgICBkb3VibGUgbGVmdCA9IHN0ZDo6YWJz
KHBvc2l0aW9uLngoKSk7CisgICAgZG91YmxlIHJpZ2h0ID0gc3RkOjphYnMocG9zaXRpb24ueCgp
IC0gYm91bmRpbmdSZWN0LndpZHRoKCkpOworICAgIHJldHVybiBSZWN0RWRnZXM8ZG91YmxlPih0
b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpOworfQorCitkb3VibGUgbGVuZ3RoT2ZSYXlJbnRlcnNl
Y3Rpb25XaXRoQm91bmRpbmdCb3goY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0
IHN0ZDo6cGFpcjxjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQ+IHJheSkKK3sKKyAgICBkb3VibGUg
bGVuZ3RoID0gbGVuZ3RoT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9uKGJvdW5kaW5nUmVjdCwg
cmF5KTsKKyAgICBkb3VibGUgYW5nbGVPZlRyaWFuZ2xlID0gYW5nbGVPZlBvaW50VG9TaWRlT2ZJ
bnRlcnNlY3Rpb24oYm91bmRpbmdSZWN0LCByYXkpOworICAgIC8vIEdpdmVuIGEgbGVuZ3RoIG9m
IGFuZ2xlIG9mIGEgdHJpYW5nbGUsIGNhbGN1bGF0ZSB0aGUgaHlwb3RlbnVzZSwgd2hpY2ggY29y
cmVzcG9uZHMgdG8KKyAgICAvLyB0aGUgbGVuZ3RoIGZyb20gdGhlIGdpdmVuIHBvaW50IHRvIHRo
ZSBpbnRlcnNlY3RpbmcgcG9pbnQgb24gdGhlIGJveAorICAgIHJldHVybiBsZW5ndGggLyBjb3Mo
ZGVnMnJhZChhbmdsZU9mVHJpYW5nbGUpKTsKK30KKworLy8gR2V0IHRoZSBzaWRlIG9mIGJveCB0
aGUgcmF5IGludGVyc2VjdHMgd2l0aAorc3RhdGljIEJveFNpZGUgaW50ZXJzZWN0aW9uU2lkZShj
b25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nUmVjdCwgY29uc3Qgc3RkOjpwYWlyPGNvbnN0IEZsb2F0
UG9pbnQmLCBmbG9hdD4gcmF5KQoreworICAgIGF1dG8gcG9zaXRpb24gPSByYXkuZmlyc3Q7Cisg
ICAgZmxvYXQgYW5nbGVJblJhZGlhbnMgPSBkZWcycmFkKHJheS5zZWNvbmQpOworICAgIGF1dG8g
ZGlzdGFuY2VzID0gZGlzdGFuY2VPZlBvaW50VG9TaWRlc09mUmVjdChib3VuZGluZ1JlY3QsIHBv
c2l0aW9uKTsKKyAgICAvLyBHZXQgcG9zc2libGUgaW50ZXJzZWN0aW9uIHNpZGVzCisgICAgZG91
YmxlIHMxID0gY29zKGFuZ2xlSW5SYWRpYW5zKSA+PSAwID8gZGlzdGFuY2VzLnRvcCgpIDogZGlz
dGFuY2VzLmJvdHRvbSgpOworICAgIGRvdWJsZSBzMiA9IHNpbihhbmdsZUluUmFkaWFucykgPj0g
MCA/IGRpc3RhbmNlcy5yaWdodCgpIDogZGlzdGFuY2VzLmxlZnQoKTsKKyAgICBhdXRvIHZlcnRp
Y2FsID0gY29zKGFuZ2xlSW5SYWRpYW5zKSA+PSAwID8gQm94U2lkZTo6VG9wIDogQm94U2lkZTo6
Qm90dG9tOworICAgIGF1dG8gaG9yaXpvbnRhbCA9IHNpbihhbmdsZUluUmFkaWFucykgPj0gMCA/
IEJveFNpZGU6OlJpZ2h0IDogQm94U2lkZTo6TGVmdDsKKyAgICBhdXRvIGFjdXRlQW5nbGUgPSBk
ZWcycmFkKHRvUmVsYXRlZEFjdXRlQW5nbGUocmF5LnNlY29uZCkpOworICAgIHJldHVybiBzaW4o
YWN1dGVBbmdsZSkgKiBzMSAgPiBjb3MoYWN1dGVBbmdsZSkgKiBzMiA/IGhvcml6b250YWwgOiB2
ZXJ0aWNhbDsKK30KKworZG91YmxlIGxlbmd0aE9mUG9pbnRUb1NpZGVPZkludGVyc2VjdGlvbihj
b25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nUmVjdCwgY29uc3Qgc3RkOjpwYWlyPGNvbnN0IEZsb2F0
UG9pbnQmLCBmbG9hdD4gcmF5KQoreworICAgIGF1dG8gcG9zaXRpb24gPSByYXkuZmlyc3Q7Cisg
ICAgaWYgKHBvc2l0aW9uLngoKSA8IDAgfHwgcG9zaXRpb24ueCgpID4gYm91bmRpbmdSZWN0Lndp
ZHRoKCkgfHwgcG9zaXRpb24ueSgpIDwgMCB8fCBwb3NpdGlvbi55KCkgPiBib3VuZGluZ1JlY3Qu
aGVpZ2h0KCkpCisgICAgICAgIHJldHVybiAwOworICAgIGF1dG8gZGlzdGFuY2VzID0gZGlzdGFu
Y2VPZlBvaW50VG9TaWRlc09mUmVjdChib3VuZGluZ1JlY3QsIHBvc2l0aW9uKTsKKyAgICByZXR1
cm4gZGlzdGFuY2VzLmF0KGludGVyc2VjdGlvblNpZGUoYm91bmRpbmdSZWN0LCByYXkpKTsKK30K
KworZmxvYXQgYW5nbGVPZlBvaW50VG9TaWRlT2ZJbnRlcnNlY3Rpb24oY29uc3QgRmxvYXRSZWN0
JiBib3VuZGluZ1JlY3QsIGNvbnN0IHN0ZDo6cGFpcjxjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQ+
IHJheSkKK3sKKyAgICBmbG9hdCBhbmdsZSA9IHJheS5zZWNvbmQ7CisgICAgYXV0byBzaWRlID0g
aW50ZXJzZWN0aW9uU2lkZShib3VuZGluZ1JlY3QsIHJheSk7CisgICAgYW5nbGUgPSB0b1JlbGF0
ZWRBY3V0ZUFuZ2xlKHRvUG9zaXRpdmVBbmdsZShhbmdsZSkpOworICAgIHJldHVybiBzaWRlID09
IEJveFNpZGU6OlRvcCB8fCBzaWRlID09IEJveFNpZGU6OkJvdHRvbSA/IGFuZ2xlIDogOTAgLSBh
bmdsZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR2VvbWV0cnlVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dlb21ldHJ5VXRpbGl0aWVzLmgKaW5kZXggYzhkNjYzOTg4MTA1YTc2ZWQ5ZjUzZWRiZTZiMzNl
NzE5YzViYjM2Ny4uMGJlZDE4ZDYyMzg3MDI2NjllNTRjZTliZDkwNjkxMDI4NjUzM2YzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRp
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxp
dGllcy5oCkBAIC02NCw2ICs2NCwzMiBAQCBib29sIGVsbGlwc2VDb250YWluc1BvaW50KGNvbnN0
IEZsb2F0UG9pbnQmIGNlbnRlciwgY29uc3QgRmxvYXRTaXplJiByYWRpaSwgY29ucwogCiBGbG9h
dFBvaW50IG1pZFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7CiAK
Ky8vIC0tLS0tLS0tLS0tLS0KKy8vIHwgICBoXCAgfHMgIHwKKy8vIHwgICAgIFxhfCAgIHwKKy8v
IHwgICAgICBcfCAgIHwKKy8vIHwgICAgICAgKiAgIHwKKy8vIHwgICAgICh4LHkpIHwKKy8vIC0t
LS0tLS0tLS0tLS0KKy8vIEdpdmVuIGEgYm94IGFuZCBhIHJheSAoZGVzY3JpYmVkIGJ5IGFuIG9m
ZnNldCBmcm9tIHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIGJveCBhbmQgYW5nbGUgZnJvbSB2
ZXJ0aWNhbCBpbiBkZWdyZWVzKSwgY29tcHV0ZQorLy8gdGhlIGxlbmd0aCBmcm9tIHRoZSBzdGFy
dGluZ21tcG9zaXRpb24gdG8gdGhlIGludGVyc2VjdGlvbiBvZiB0aGUgcmF5IHdpdGggdGhlIGJv
eC4gR2l2ZW4gdGhlIGFib3ZlIGRpYWdyYW0sIHdlIGFyZQorLy8gdHJ5aW5nIHRvIGNhbGN1bGF0
ZSBoLCB3aXRoIGxlbmd0aE9mUG9pbnRUb1NpZGVPZkludGVyc2VjdGlvbiBjb21wdXRpbmcgdGhl
IGxlbmd0aCBvZiBzLCBhbmQgYW5nbGVPZlBvaW50VG9TaWRlT2ZJbnRlcnNlY3Rpb24KKy8vIGNv
bXB1dGluZyBhLgorZG91YmxlIGxlbmd0aE9mUmF5SW50ZXJzZWN0aW9uV2l0aEJvdW5kaW5nQm94
KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBzdGQ6OnBhaXI8Y29uc3QgRmxv
YXRQb2ludCYsIGZsb2F0PiByYXkpOworCisvLyBHaXZlbiBhIGJveCBhbmQgYSByYXkgKGRlc2Ny
aWJlZCBieSBhbiBvZmZzZXQgZnJvbSB0aGUgdG9wIGxlZnQgY29ybmVyIG9mIHRoZSBib3ggYW5k
IGFuZ2xlIGZyb20gdmVydGljYWwgaW4gZGVncmVlcyksCisvLyBjb21wdXRlIHRoZSBjbG9zZXN0
IGxlbmd0aCBmcm9tIHRoZSBzdGFydGluZyBwb3NpdGlvbiB0byB0aGUgc2lkZSB0aGF0IHRoZSBy
YXkgaW50ZXJzZWN0cyB3aXRoLgorZG91YmxlIGxlbmd0aE9mUG9pbnRUb1NpZGVPZkludGVyc2Vj
dGlvbihjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nUmVjdCwgY29uc3Qgc3RkOjpwYWlyPGNvbnN0
IEZsb2F0UG9pbnQmLCBmbG9hdD4gcmF5KTsKKworLy8gR2l2ZW4gYSBib3gsIGEgcmF5IChkZXNj
cmliZWQgYnkgYW4gb2Zmc2V0IGZyb20gdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUgYm94IGFu
ZCBhbmdsZSBmcm9tIHZlcnRpY2FsIGluIGRlZ3JlZXMpCisvLyBjb21wdXRlIHRoZSBhY3V0ZSBh
bmdsZSBiZXR3ZWVuIHRoZSByYXkgYW5kIHRoZSBsaW5lIHNlZ21lbnQgZnJvbSB0aGUgc3RhcnRp
bmcgcG9pbnQgdG8gdGhlIGNsb3Nlc3QgcG9pbnQgb24gdGhlCisvLyBzaWRlIHRoYXQgdGhlIHJh
eSBpbnRlcnNlY3RzIHdpdGguCitmbG9hdCBhbmdsZU9mUG9pbnRUb1NpZGVPZkludGVyc2VjdGlv
bihjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nUmVjdCwgY29uc3Qgc3RkOjpwYWlyPGNvbnN0IEZs
b2F0UG9pbnQmLCBmbG9hdD4gcmF5KTsKKworLy8gR2l2ZW4gYSBib3ggYW5kIGFuIG9mZnNldCBm
cm9tIHRoZSB0b3AgbGVmdCBjb3JuZXIsIGNhbGN1bGF0ZSB0aGUgZGlzdGFuY2Ugb2YgdGhlIHBv
aW50IGZyb20gZWFjaCBzaWRlCitSZWN0RWRnZXM8ZG91YmxlPiBkaXN0YW5jZU9mUG9pbnRUb1Np
ZGVzT2ZSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmKTsKK2Zsb2F0IHRv
UG9zaXRpdmVBbmdsZShmbG9hdCBhbmdsZSk7CisKIHN0cnVjdCBSb3RhdGVkUmVjdCB7CiAgICAg
RmxvYXRQb2ludCBjZW50ZXI7CiAgICAgRmxvYXRTaXplIHNpemU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5jcHAKaW5kZXggZmEzYjliNmY1Yzc5Y2MxN2VmMGUwNjE5
OTY4NTZjNzAzN2Y2MWY4Zi4uN2Q2ODlhMmU0MjY4ODNjYTQwMmZlNDFiN2FkZjdjNjdkMmZhZmE2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmNwcApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhdGhPcGVyYXRpb24u
aCIKIAorI2luY2x1ZGUgIkdlb21ldHJ5VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVu
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OCw0ICs0OSwzNiBAQCBjb25zdCBTVkdF
bGVtZW50KiBSZWZlcmVuY2VQYXRoT3BlcmF0aW9uOjplbGVtZW50KCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9lbGVtZW50LmdldCgpOwogfQorCitkb3VibGUgUmF5UGF0aE9wZXJhdGlvbjo6bGVu
Z3RoRm9yUGF0aCgpIGNvbnN0Cit7CisgICAgYXV0byBib3VuZGluZ0JveCA9IG1fY29udGFpbmlu
Z0Jsb2NrQm91bmRpbmdSZWN0OworICAgIGF1dG8gZGlzdGFuY2VzID0gZGlzdGFuY2VPZlBvaW50
VG9TaWRlc09mUmVjdChib3VuZGluZ0JveCwgbV9wb3NpdGlvbik7CisgICAgCisgICAgc3dpdGNo
IChtX3NpemUpIHsKKyAgICBjYXNlIFNpemU6OkNsb3Nlc3RTaWRlOgorICAgICAgICByZXR1cm4g
c3RkOjptaW4oIHsgZGlzdGFuY2VzLnRvcCgpLCBkaXN0YW5jZXMuYm90dG9tKCksIGRpc3RhbmNl
cy5sZWZ0KCksIGRpc3RhbmNlcy5yaWdodCgpIH0gKTsKKyAgICBjYXNlIFNpemU6OkZhcnRoZXN0
U2lkZToKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KCB7IGRpc3RhbmNlcy50b3AoKSwgZGlzdGFu
Y2VzLmJvdHRvbSgpLCBkaXN0YW5jZXMubGVmdCgpLCBkaXN0YW5jZXMucmlnaHQoKSB9ICk7Cisg
ICAgY2FzZSBTaXplOjpGYXJ0aGVzdENvcm5lcjoKKyAgICAgICAgcmV0dXJuIHN0ZDo6c3FydChz
dGQ6OnBvdyhzdGQ6Om1heChkaXN0YW5jZXMubGVmdCgpLCBkaXN0YW5jZXMucmlnaHQoKSksIDIp
ICsgc3RkOjpwb3coc3RkOjptYXgoZGlzdGFuY2VzLnRvcCgpLCBkaXN0YW5jZXMuYm90dG9tKCkp
LCAyKSk7CisgICAgY2FzZSBTaXplOjpDbG9zZXN0Q29ybmVyOgorICAgICAgICByZXR1cm4gc3Rk
OjpzcXJ0KHN0ZDo6cG93KHN0ZDo6bWluKGRpc3RhbmNlcy5sZWZ0KCksIGRpc3RhbmNlcy5yaWdo
dCgpKSwgMikgKyBzdGQ6OnBvdyhzdGQ6Om1pbihkaXN0YW5jZXMudG9wKCksIGRpc3RhbmNlcy5i
b3R0b20oKSksIDIpKTsKKyAgICBjYXNlIFNpemU6OlNpZGVzOgorICAgICAgICByZXR1cm4gbGVu
Z3RoT2ZSYXlJbnRlcnNlY3Rpb25XaXRoQm91bmRpbmdCb3goYm91bmRpbmdCb3gsIHN0ZDo6bWFr
ZV9wYWlyKG1fcG9zaXRpb24sIG1fYW5nbGUpKTsKKyAgICB9Cit9CisKK2NvbnN0IFBhdGggUmF5
UGF0aE9wZXJhdGlvbjo6cGF0aEZvclJlZmVyZW5jZVJlY3QoKSBjb25zdAoreworICAgIFBhdGgg
cGF0aDsKKyAgICBpZiAobV9jb250YWluaW5nQmxvY2tCb3VuZGluZ1JlY3QuaXNaZXJvKCkpCisg
ICAgICAgIHJldHVybiBwYXRoOworICAgIGF1dG8gbGVuZ3RoID0gbGVuZ3RoRm9yUGF0aCgpOwor
ICAgIGF1dG8gcmFkaWFucyA9IGRlZzJyYWQodG9Qb3NpdGl2ZUFuZ2xlKG1fYW5nbGUpIC0gOTAp
OworICAgIGF1dG8gcG9pbnQgPSBGbG9hdFBvaW50KHN0ZDo6Y29zKHJhZGlhbnMpICogbGVuZ3Ro
LCBzdGQ6OnNpbihyYWRpYW5zKSAqIGxlbmd0aCk7CisgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnQp
OworICAgIHJldHVybiBwYXRoOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaAppbmRleCBkNmUwMDk5NmZmODc1OWQxNmI5
ZmQyN2Q3ZTRhYTg3MDE0M2U1ZGVmLi43NWY1OGMyMGM3Y2E2YWMzNjcyNWZlMzBiZGU3OTU5MTlh
MzQ5ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmgKQEAgLTE5
Niw2ICsxOTYsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gUmF5UGF0aE9wZXJhdGlvbjo6
Y3JlYXRlKFdlYkNvcmU6OmJsZW5kKG1fYW5nbGUsIHRvLm1fYW5nbGUsIGNvbnRleHQpLCBtX3Np
emUsIG1faXNDb250YWluaW5nKTsKICAgICB9CiAKKyAgICBjb25zdCBQYXRoIHBhdGhGb3JSZWZl
cmVuY2VSZWN0KCkgY29uc3Q7CisgICAgZG91YmxlIGxlbmd0aEZvclBhdGgoKSBjb25zdDsKKyAg
ICAKKyAgICB2b2lkIHNldENvbnRhaW5pbmdCbG9hY2tSZWZlcmVuY2VSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgYm91bmRpbmdSZWN0KQorICAgIHsKKyAgICAgICAgbV9jb250YWluaW5nQmxvY2tCb3Vu
ZGluZ1JlY3QgPSBib3VuZGluZ1JlY3Q7CisgICAgfQorICAgIHZvaWQgc2V0U3RhcnRpbmdQb3Np
dGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKKyAgICB7CisgICAgICAgIG1fcG9zaXRp
b24gPSBwb3NpdGlvbjsKKyAgICB9CiBwcml2YXRlOgogICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBQYXRoT3BlcmF0aW9uJiBvdGhlcikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CkBAIC0yMTYsOSAr
MjI3LDExIEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIGZsb2F0IG1fYW5nbGU7Cisg
ICAgZmxvYXQgbV9hbmdsZSB7IDAgfTsKICAgICBTaXplIG1fc2l6ZTsKLSAgICBib29sIG1faXND
b250YWluaW5nOworICAgIGJvb2wgbV9pc0NvbnRhaW5pbmcgeyBmYWxzZSB9OworICAgIEZsb2F0
UmVjdCBtX2NvbnRhaW5pbmdCbG9ja0JvdW5kaW5nUmVjdDsKKyAgICBGbG9hdFBvaW50IG1fcG9z
aXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBiYjRkM2E0ZTQ2MmJjYzk3NTY2ZWZiYTQ5YjhkMTgz
OTc4Y2E0YTNjLi44NDkwZTcyZTI2ODViZDUzM2E2ZTJlN2NiOTAwNGUyMmUyYWJmZTdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTEzMTcsNiArMTMxNywz
MSBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm1Gcm9tU3R5bGUoVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29ucwogICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKHRy
YW5zZm9ybSwgY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOwogfQogCit2b2lkIFJlbmRlckxheWVy
OjpzZXRSZWZlcmVuY2VCb3hGb3JQYXRoT3BlcmF0aW9ucygpCit7CisgICAgYXV0byBwYXRoT3Bl
cmF0aW9uID0gcmVuZGVyZXIoKS5zdHlsZSgpLm9mZnNldFBhdGgoKTsKKyAgICBpZiAoIXBhdGhP
cGVyYXRpb24pCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoaXM8Qm94UGF0aE9wZXJhdGlvbj4o
cGF0aE9wZXJhdGlvbikpIHsKKyAgICAgICAgYXV0byYgYm94UGF0aE9wZXJhdGlvbiA9IGRvd25j
YXN0PEJveFBhdGhPcGVyYXRpb24+KCpwYXRoT3BlcmF0aW9uKTsKKyAgICAgICAgYXV0byBwYXRo
UmVmZXJlbmNlQm94UmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHNJZk5lZWRlZChyZW5kZXJl
cigpLnJlZmVyZW5jZUJveFJlY3QoYm94UGF0aE9wZXJhdGlvbi5yZWZlcmVuY2VCb3goKSksIHJl
bmRlcmVyKCkpOworICAgICAgICBib3hQYXRoT3BlcmF0aW9uLnNldFBhdGhGb3JSZWZlcmVuY2VS
ZWN0KEZsb2F0Um91bmRlZFJlY3QgeyBwYXRoUmVmZXJlbmNlQm94UmVjdCB9KTsKKyAgICB9IGVs
c2UgaWYgKGlzPFJheVBhdGhPcGVyYXRpb24+KHBhdGhPcGVyYXRpb24pKSB7CisgICAgICAgIGlm
IChjb25zdCBhdXRvKiBjb250YWluaW5nQmxvY2sgPSByZW5kZXJlcigpLmNvbnRhaW5pbmdCbG9j
aygpKSB7CisgICAgICAgICAgICBhdXRvJiByYXlQYXRoT3BlcmF0aW9uID0gZG93bmNhc3Q8UmF5
UGF0aE9wZXJhdGlvbj4oKnBhdGhPcGVyYXRpb24pOworICAgICAgICAgICAgYXV0byBwYXRoUmVm
ZXJlbmNlQm94UmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHNJZk5lZWRlZChjb250YWluaW5n
QmxvY2stPnRyYW5zZm9ybVJlZmVyZW5jZUJveFJlY3QoY29udGFpbmluZ0Jsb2NrLT5zdHlsZSgp
KSwgcmVuZGVyZXIoKSk7CisgICAgICAgICAgICBpZiAoIXBhdGhSZWZlcmVuY2VCb3hSZWN0Lndp
ZHRoKCkpCisgICAgICAgICAgICAgICAgcGF0aFJlZmVyZW5jZUJveFJlY3Quc2V0V2lkdGgocGF0
aFJlZmVyZW5jZUJveFJlY3QuaGVpZ2h0KCkpOworICAgICAgICAgICAgaWYgKCFwYXRoUmVmZXJl
bmNlQm94UmVjdC5oZWlnaHQoKSkKKyAgICAgICAgICAgICAgICBwYXRoUmVmZXJlbmNlQm94UmVj
dC5zZXRIZWlnaHQocGF0aFJlZmVyZW5jZUJveFJlY3Qud2lkdGgoKSk7CisgICAgICAgICAgICBy
YXlQYXRoT3BlcmF0aW9uLnNldENvbnRhaW5pbmdCbG9hY2tSZWZlcmVuY2VSZWN0KHBhdGhSZWZl
cmVuY2VCb3hSZWN0KTsKKyAgICAgICAgICAgIGF1dG8gbGVmdCA9IHJlbmRlcmVyKCkuc3R5bGUo
KS5sZWZ0KCk7CisgICAgICAgICAgICBhdXRvIHRvcCA9IHJlbmRlcmVyKCkuc3R5bGUoKS50b3Ao
KTsKKyAgICAgICAgICAgIHJheVBhdGhPcGVyYXRpb24uc2V0U3RhcnRpbmdQb3NpdGlvbihGbG9h
dFBvaW50KGxlZnQuaXNQZXJjZW50KCkgPyBsZWZ0LnZhbHVlKCkgLyAxMDAgKiBwYXRoUmVmZXJl
bmNlQm94UmVjdC53aWR0aCgpIDogbGVmdC52YWx1ZSgpLCB0b3AuaXNQZXJjZW50KCkgPyB0b3Au
dmFsdWUoKSAvIDEwMCAqIHBhdGhSZWZlcmVuY2VCb3hSZWN0LmhlaWdodCgpIDogdG9wLnZhbHVl
KCkpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJh
bnNmb3JtKCkKIHsKICAgICBib29sIGhhc1RyYW5zZm9ybSA9IHJlbmRlcmVyKCkuaGFzVHJhbnNm
b3JtKCk7CkBAIC0xMzM1LDEzICsxMzYwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJh
bnNmb3JtKCkKICAgICAKICAgICBpZiAoaGFzVHJhbnNmb3JtKSB7CiAgICAgICAgIG1fdHJhbnNm
b3JtLT5tYWtlSWRlbnRpdHkoKTsKLQotICAgICAgICBpZiAoYXV0byBwYXRoT3BlcmF0aW9uID0g
cmVuZGVyZXIoKS5zdHlsZSgpLm9mZnNldFBhdGgoKTsgcGF0aE9wZXJhdGlvbiAmJiBpczxCb3hQ
YXRoT3BlcmF0aW9uPihwYXRoT3BlcmF0aW9uKSkgewotICAgICAgICAgICAgYXV0byYgYm94UGF0
aE9wZXJhdGlvbiA9IGRvd25jYXN0PEJveFBhdGhPcGVyYXRpb24+KCpwYXRoT3BlcmF0aW9uKTsK
LSAgICAgICAgICAgIGF1dG8gcGF0aFJlZmVyZW5jZUJveFJlY3QgPSBzbmFwUmVjdFRvRGV2aWNl
UGl4ZWxzSWZOZWVkZWQocmVuZGVyZXIoKS5yZWZlcmVuY2VCb3hSZWN0KGJveFBhdGhPcGVyYXRp
b24ucmVmZXJlbmNlQm94KCkpLCByZW5kZXJlcigpKTsKLSAgICAgICAgICAgIGJveFBhdGhPcGVy
YXRpb24uc2V0UGF0aEZvclJlZmVyZW5jZVJlY3QoRmxvYXRSb3VuZGVkUmVjdCB7IHBhdGhSZWZl
cmVuY2VCb3hSZWN0IH0pOwotICAgICAgICB9Ci0KKyAgICAgICAgc2V0UmVmZXJlbmNlQm94Rm9y
UGF0aE9wZXJhdGlvbnMoKTsKICAgICAgICAgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCptX3Ry
YW5zZm9ybSwgcmVuZGVyZXIoKS5zdHlsZSgpLCBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3Bl
cmF0aW9ucyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmlu
ZGV4IDgwNDc2MWE4ZjkyMDAwNGU4ZmRkNDI3ZTE4ZDRhNzk4NDUxMzFiOWQuLmU1MWUzMWE5MDIx
NjU1ODYwNDFiOWJjODYwMTVhNmY2NWY5MDFiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCkBAIC01MDksNiArNTA5LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
bV9lbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIuZ2V0KCk7CiAgICAgfQogCisgICAgdm9pZCBzZXRS
ZWZlcmVuY2VCb3hGb3JQYXRoT3BlcmF0aW9ucygpOwogICAgIHZvaWQgdXBkYXRlVHJhbnNmb3Jt
KCk7CiAgICAgCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDliNjhlN2JmZjcwMTgwZmRk
NzJiY2I3NjkzZTZhYTJiMTMyMzUwMzguLjlhMDAwNjM0YTgwZWFhZDk5NTVkODljODhmMzBkNTNi
MTU0YTQzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcApAQCAtMTUzOCw4ICsxNTM4LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UGF0aD4g
Z2V0UGF0aEZyb21QYXRoT3BlcmF0aW9uKGNvbnN0IEZsb2F0UmVjdCYgYm94LCBjb25zdAogICAg
IGNhc2UgUGF0aE9wZXJhdGlvbjo6Qm94OgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8Qm94UGF0
aE9wZXJhdGlvbj4ob3BlcmF0aW9uKS5nZXRQYXRoKCk7CiAgICAgY2FzZSBQYXRoT3BlcmF0aW9u
OjpSYXk6Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcmF5LSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzQ0Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgICAgIHJldHVybiBkb3duY2FzdDxSYXlQYXRoT3BlcmF0aW9uPihvcGVyYXRpb24p
LnBhdGhGb3JSZWZlcmVuY2VSZWN0KCk7CiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTYwZTg0NzZjODg1ZmM1NGJlNTA4YjNlNDVkNjhjMTQyMWY2
NjVkNi4uOTdkZGRjYjcwMzVjZTE2MmM0ZDgxYWI1OTlhZDBjZDhiYmQ5Y2RkNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDIyLTA1LTA0ICBOaWtvbGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFy
aXNAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgcmF5KCkgc2hhcGUgaW4gb2Zmc2V0LXBh
dGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIFRlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMjItMDQtMjggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBEZWJ1ZyB3azIgXSBUaGlydGVlbiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvIGFyZSBhIGZsYWt5IGNyYXNoIChBU1NFUlRJT04gRkFJTEVEOiB3aWxs
QmVDb21wb3NpdGVkID09IG5lZWRzVG9CZUNvbXBvc2l0ZWQobGF5ZXIsIHF1ZXJ5RGF0YSkpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA0ZDIyNTg1YTQzZDhkZjE2MDNkNThhZWQ4MGZkNjU5MGIzZWIx
MDAzLi4wMDQ5MjVjMzdiNmMyOGNjOTUwOTQ0ZGYzMDY5YWUxNmFmOWJlMjY5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTUwNzIsMTYgKzUwNzIsOCBAQCB3ZWJraXQub3JnL2IvMjMzMzQwIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtYW5jaG9yLXRyYQog
d2Via2l0Lm9yZy9iLzIzMzM0MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9t
b3Rpb24vb2Zmc2V0LWFuY2hvci10cmFuc2Zvcm0tYm94LWZpbGwtYm94LTAwMi5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjMzMzQwIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtYW5jaG9yLXRyYW5zZm9ybS1ib3gtZmlsbC1i
b3gtMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAotIyBDU1MgbW90aW9uIHBhdGggdGhh
dCBkZXBlbmRzIG9uIHJheSgpLCBjdXJyZW50bHkgbm90IGltcGxlbWVudGVkLgotd2Via2l0Lm9y
Zy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zm
c2V0LXBhdGgtcmF5LTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
MjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQt
cGF0aC1yYXktMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzMz
NDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRo
LXJheS0wMDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMzM0NCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5
LTAwNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktMDA1
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0wMDYuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQorIyBDU1MgbW90aW9uIHBhdGggbmVlZHMgdG8gaW1wbGVt
ZW50IGNvbnRhaW4uCiB3ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktMDA3Lmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0wMDguaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwOS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L21vdGlvbi9vZmZzZXQtcGF0aC1yYXktY29udGFpbi0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LWNvbnRhaW4tMDAyLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS1jb250YWluLTAwMy5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCg==
</data>
<flag name="commit-queue"
          id="488009"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459087</attachid>
            <date>2022-05-09 15:36:14 -0700</date>
            <delta_ts>2022-05-09 16:59:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233344-20220509153613.patch</filename>
            <type>text/plain</type>
            <size>21854</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFjMmVmYmM0MDg3YzA1
N2RiZWIzY2Y5ZjZjMDkwYzk2MGU4NDBiZS4uODY2Y2MzMWU0NTZmZjY1ZGVmNDA2MzRkYmU5YWM3
N2FmOTZhZGU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIyLTA1LTA0ICBOaWtv
bGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgcmF5KCkgc2hhcGUgaW4gb2Zmc2V0LXBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIHJheSBwYXRoLiBJ
bnZvbHZlcyBnZXR0aW5nIGNvbnRhaW5pbmcgYmxvY2sgYW5kIG9mZnNldAorICAgICAgICBvZiB0
aGUgZWxlbWVudCBmcm9tIHRoZSBjb250YWluaW5nIGJsb2NrLiBVc2luZyB0aGUgc2l6ZSBvZiB0
aGUgY29udGFpbmluZyBibG9jaworICAgICAgICBhbmQgb2Zmc2V0LCBjYWxjdWxhdGUgdGhlIGxl
bmd0aCBvZiB0aGUgcmF5IGFuZCBjcmVhdGUgYSBMaW5lIHBhdGggdXNpbmcgdGhlIGxlbmd0aAor
ICAgICAgICBhbmQgYW5nbGUuIENhbGN1bGF0aW5nIGNsb3Nlc3QvZmFydGhlc3Qtc2lkZSBhbmQg
Y2xvc2VzdC9mYXJ0aGVzdC1jb3JuZXIgYXJlIHNpbXBsZSAKKyAgICAgICAgYnV0IGNhbGN1bGF0
aW5nIHNpZGUgcmVxdWlyZXMgc29tZSBleHBsYW5hdGlvbi4gRmlyc3QsIHdlIGdldCB0aGUgdHdv
IHBvc3NpYmxlIHNpZGVzIG9mIAorICAgICAgICB0aGUgY29udGFpbmluZyBibG9jayB0aGUgcmF5
IGNvdWxkIGJlIGludGVyc2VjdGluZyB3aXRoLCBiYXNlZCBvbiB0aGUgYW5nbGUuIFRvIGNhbGN1
bGF0ZSAKKyAgICAgICAgd2hpY2ggc2lkZSBpcyBiZWluZyBpbnRlcnNlY3RlZCwgaWYgdGFuKHRo
ZXRhKSAqIHRvcC9ib3R0b20gaXMgb3V0c2lkZSBvZiB0aGUgY29udGFpbmluZyAKKyAgICAgICAg
YmxvY2ssIHRoaXMgbWVhbnMgdGhhdCB0aGUgcmF5IGlzIGludGVyc2VjdGluZyB3aXRoIHRoZSBv
dGhlciBzaWRlLiBGaW5hbGx5LCB3ZSBjYWxjdWxhdGUgCisgICAgICAgIHRoZSBhY3V0ZSBhbmds
ZSBiYXNlZCBvbiB3aGljaCBzaWRlIHdlIGludGVyc2VjdGVkIHdpdGguIFVzaW5nIHRoZSBsZW5n
dGggYW5kIGFuZ2xlLCB3ZSAKKyAgICAgICAgY2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgdGhlIGh5
cG90ZW51c2UsIHdoaWNoIGNvcnJlc3BvbmRzIHdpdGggdGhlIGxlbmd0aCBvZiB0aGUgc3RhcnQg
cG9pbnQKKyAgICAgICAgb2YgdGhlIHJheSB0byBpdHMgaW50ZXJzZWN0aW9uIHdpdGggYSBzaWRl
IG9mIHRoZSBjb250YWluaW5nIGJsb2NrLiBUZXN0IDcgaXMgc3RpbGwgZmFpbGluZyAKKyAgICAg
ICAgZHVlIHRvIGdldHRpbmcgaW5jb3JyZWN0IHdpZHRoIG9mIGNvbnRhaW5pbmcgYmxvY2sgKGRv
ZXNuJ3QgaGFwcGVuIHdoZW4gYW5pbWF0aW5nIHRoZSBwYXRoCisgICAgICAgIGZvciBzb21lIHJl
YXNvbikuIFdpbGwgaW1wbGVtZW50IGNvbnRhaW4gaW4gYW5vdGhlciBwYXRjaC4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJp
bmcvUGF0aE9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Bvc2l0aXZlQW5nbGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmF5UGF0aE9wZXJhdGlvbjo6Z2V0TGVuZ3RoRm9yUGF0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSYXlQYXRoT3BlcmF0aW9uOjpwYXRoRm9yUmVmZXJl
bmNlUmVjdCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNldFJlZmVyZW5jZUJveEZvclBhdGhPcGVyYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQYXRoRnJvbVBhdGhPcGVyYXRpb24pOgorCiAyMDIy
LTA0LTI4ICBQaGlsaXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1N0cmVhbWVyXSBQaXBld2lyZSBkaXNwbGF5IGNhcHR1cmUgYnJva2VuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWJhMWI4MjAz
NTJjMTRkOTYwNjYzM2YzMDFmOWQ0NTM3MjhlMmUyNS4uZDczYmFmMmJkY2NmYjI5MDdkMTcyNWU0
MjBlYzRkNzIwMjMzNTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjk4Nyw2ICs2OTg3LDcgQEAKIAkJMUFCN0ZDNjYwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3RkM2NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBh
dGhWYXJpYWJsZVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QUJBN0ZGRjE4OTczNDEyMDBEQ0U5RDYgLyogVmlzaXRlZExpbmtTdG9yZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpdGVkTGlua1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFBQkMyNjAzMjdGRDAyMTQwMDY0RjY4RiAvKiBQYXRoT3BlcmF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdGhPcGVyYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUMyMjYwQTBEQjY5RjE5MDA4OUI2
NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBQzIyNjBCMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9u
Q2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BcHBsaWNhdGlv
bkNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzJEODlDMUIxRTI5MUYw
MEQ1MkU4NyAvKiBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzIyNDcsNiArMzIyNDgsNyBAQAogCQkJCTU1RUM5NTk3MjA2
OUM5MkQwMDdERDBBOSAvKiBQYWludEZyZXF1ZW5jeVRyYWNrZXIuaCAqLywKIAkJCQkwODg1MDY3
RDExREEwNDVCMDAxODJCOTggLyogUGFpbnRJbmZvLmggKi8sCiAJCQkJMDg4NTA2N0UxMURBMDQ1
QjAwMTgyQjk4IC8qIFBhaW50UGhhc2UuaCAqLywKKwkJCQkxQUJDMjYwMzI3RkQwMjE0MDA2NEY2
OEYgLyogUGF0aE9wZXJhdGlvbi5jcHAgKi8sCiAJCQkJRkI5MkRGNDkxNUZFRDA4NzAwOTk0NDMz
IC8qIFBhdGhPcGVyYXRpb24uaCAqLywKIAkJCQlCMkIxRjcxNDBEMDBDQUE4MDA0QUVBNjQgLyog
UG9pbnRlckV2ZW50c0hpdFJ1bGVzLmNwcCAqLywKIAkJCQlCMkIxRjcxNTBEMDBDQUE4MDA0QUVB
NjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5jcHAKaW5kZXggMzQ0MGMyYjhjYTBiYzczZjE3NzlhZjAwZDcxMTljYzhjODIz
MTM0Yi4uY2JmMTRmY2U3YmFiOTNhNTlhZGM3ZDE5MTIzNjdkOGNkOWU1NzczNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSAiQ29sb3JJbnRlcnBvbGF0aW9uLmgiCisjaW5jbHVkZSAiR2VvbWV0
cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHcmFkaWVudEltYWdlLmgiCiAjaW5jbHVkZSAiTm9k
ZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtODE1LDkgKzgxNiw3IEBAIHN0
YXRpYyB2b2lkIGVuZFBvaW50c0Zyb21BbmdsZShmbG9hdCBhbmdsZURlZywgY29uc3QgRmxvYXRT
aXplJiBzaXplLCBGbG9hdFBvaW50CiAgICAgaWYgKHR5cGUgPT0gQ1NTUHJlZml4ZWRMaW5lYXJH
cmFkaWVudCkKICAgICAgICAgYW5nbGVEZWcgPSA5MCAtIGFuZ2xlRGVnOwogCi0gICAgYW5nbGVE
ZWcgPSBmbW9kZihhbmdsZURlZywgMzYwKTsKLSAgICBpZiAoYW5nbGVEZWcgPCAwKQotICAgICAg
ICBhbmdsZURlZyArPSAzNjA7CisgICAgYW5nbGVEZWcgPSB0b1Bvc2l0aXZlQW5nbGUoYW5nbGVE
ZWcpOwogCiAgICAgaWYgKCFhbmdsZURlZykgewogICAgICAgICBmaXJzdFBvaW50LnNldCgwLCBz
aXplLmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAppbmRleCA3NGI0YzM1YTU0YzU2NGE5ZDBiNjc3OWJi
NmY4NGQ3ZWZiMGRkYzZkLi43MWM3NDhmODA5YTY2MGU0ZTU4ZjZiMjFmZmRiNDNiYTVlMzdlZjY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0
cnlVdGlsaXRpZXMuY3BwCkBAIC0yNjgsNCArMjY4LDc0IEBAIFJvdGF0ZWRSZWN0IHJvdGF0ZWRC
b3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZSb3RhdGlvbihjb25zdCBGbG9hdFF1YWQmIHF1
YWQsCiAgICAgcmV0dXJuIHsgY2VudGVyLCB7IHdpZHRoLCBoZWlnaHQgfSwgYW5nbGUgfTsKIH0K
IAorZmxvYXQgdG9Qb3NpdGl2ZUFuZ2xlKGZsb2F0IGFuZ2xlKQoreworICAgIGFuZ2xlID0gZm1v
ZChhbmdsZSwgMzYwKTsKKyAgICB3aGlsZSAoYW5nbGUgPCAwKQorICAgICAgICBhbmdsZSArPSAz
NjAuMDsKKyAgICByZXR1cm4gYW5nbGU7Cit9CisKKy8vIENvbXB1dGUgYWN1dGUgYW5nbGUgZnJv
bSB2ZXJ0aWNhbCBheGlzCitzdGF0aWMgZmxvYXQgdG9SZWxhdGVkQWN1dGVBbmdsZShmbG9hdCBh
bmdsZSkKK3sKKyAgICBhbmdsZSA9IHRvUG9zaXRpdmVBbmdsZShhbmdsZSk7CisgICAgaWYgKGFu
Z2xlIDwgOTApCisgICAgICAgIHJldHVybiBhbmdsZTsKKyAgICBpZiAoYW5nbGUgPiA5MCB8fCBh
bmdsZSA8IDE4MCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6YWJzKDE4MCAtIGFuZ2xlKTsKKyAgICBy
ZXR1cm4gc3RkOjphYnMoMzYwIC0gYW5nbGUpOworfQorCitSZWN0RWRnZXM8ZG91YmxlPiBkaXN0
YW5jZU9mUG9pbnRUb1NpZGVzT2ZSZWN0KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3sKKyAgICAvLyBDb21wdXRlIGRpc3RhbmNlIHRv
IGVhY2ggc2lkZSBvZiB0aGUgY29udGFpbmluZyBib3gKKyAgICBkb3VibGUgdG9wID0gc3RkOjph
YnMocG9zaXRpb24ueSgpKTsKKyAgICBkb3VibGUgYm90dG9tID0gc3RkOjphYnMocG9zaXRpb24u
eSgpIC0gYm91bmRpbmdSZWN0LmhlaWdodCgpKTsKKyAgICBkb3VibGUgbGVmdCA9IHN0ZDo6YWJz
KHBvc2l0aW9uLngoKSk7CisgICAgZG91YmxlIHJpZ2h0ID0gc3RkOjphYnMocG9zaXRpb24ueCgp
IC0gYm91bmRpbmdSZWN0LndpZHRoKCkpOworICAgIHJldHVybiBSZWN0RWRnZXM8ZG91YmxlPih0
b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpOworfQorCitkb3VibGUgbGVuZ3RoT2ZSYXlJbnRlcnNl
Y3Rpb25XaXRoQm91bmRpbmdCb3goY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0
IHN0ZDo6cGFpcjxjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQ+IHJheSkKK3sKKyAgICBhdXRvIGxl
bmd0aCA9IGxlbmd0aE9mUG9pbnRUb1NpZGVPZkludGVyc2VjdGlvbihib3VuZGluZ1JlY3QsIHJh
eSk7CisgICAgYXV0byBhbmdsZU9mVHJpYW5nbGUgPSBhbmdsZU9mUG9pbnRUb1NpZGVPZkludGVy
c2VjdGlvbihib3VuZGluZ1JlY3QsIHJheSk7CisgICAgLy8gR2l2ZW4gYSBsZW5ndGggYW5kIGFu
Z2xlIG9mIGEgcmlnaHQgdHJpYW5nbGUsIGNhbGN1bGF0ZSB0aGUgaHlwb3RlbnVzZSwgd2hpY2gg
Y29ycmVzcG9uZHMgdG8KKyAgICAvLyB0aGUgbGVuZ3RoIGZyb20gdGhlIGdpdmVuIHBvaW50IHRv
IHRoZSBpbnRlcnNlY3RpbmcgcG9pbnQgb24gdGhlIGJveAorICAgIHJldHVybiBsZW5ndGggLyBj
b3MoZGVnMnJhZChhbmdsZU9mVHJpYW5nbGUpKTsKK30KKworLy8gR2V0IHRoZSBzaWRlIG9mIGJv
eCB0aGUgcmF5IGludGVyc2VjdHMgd2l0aAorc3RhdGljIEJveFNpZGUgaW50ZXJzZWN0aW9uU2lk
ZShjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nUmVjdCwgY29uc3Qgc3RkOjpwYWlyPGNvbnN0IEZs
b2F0UG9pbnQmLCBmbG9hdD4gcmF5KQoreworICAgIGF1dG8gcG9zaXRpb24gPSByYXkuZmlyc3Q7
CisgICAgYXV0byBhbmdsZUluUmFkaWFucyA9IGRlZzJyYWQocmF5LnNlY29uZCk7CisgICAgYXV0
byBkaXN0YW5jZXMgPSBkaXN0YW5jZU9mUG9pbnRUb1NpZGVzT2ZSZWN0KGJvdW5kaW5nUmVjdCwg
cG9zaXRpb24pOworICAgIC8vIEdldCBwb3NzaWJsZSBpbnRlcnNlY3Rpb24gc2lkZXMKKyAgICBh
dXRvIHMxID0gY29zKGFuZ2xlSW5SYWRpYW5zKSA+PSAwID8gZGlzdGFuY2VzLnRvcCgpIDogZGlz
dGFuY2VzLmJvdHRvbSgpOworICAgIGF1dG8gczIgPSBzaW4oYW5nbGVJblJhZGlhbnMpID49IDAg
PyBkaXN0YW5jZXMucmlnaHQoKSA6IGRpc3RhbmNlcy5sZWZ0KCk7CisgICAgYXV0byB2ZXJ0aWNh
bCA9IGNvcyhhbmdsZUluUmFkaWFucykgPj0gMCA/IEJveFNpZGU6OlRvcCA6IEJveFNpZGU6OkJv
dHRvbTsKKyAgICBhdXRvIGhvcml6b250YWwgPSBzaW4oYW5nbGVJblJhZGlhbnMpID49IDAgPyBC
b3hTaWRlOjpSaWdodCA6IEJveFNpZGU6OkxlZnQ7CisgICAgYXV0byBhY3V0ZUFuZ2xlID0gZGVn
MnJhZCh0b1JlbGF0ZWRBY3V0ZUFuZ2xlKHJheS5zZWNvbmQpKTsKKyAgICByZXR1cm4gc2luKGFj
dXRlQW5nbGUpICogczEgID4gY29zKGFjdXRlQW5nbGUpICogczIgPyBob3Jpem9udGFsIDogdmVy
dGljYWw7Cit9CisKK2RvdWJsZSBsZW5ndGhPZlBvaW50VG9TaWRlT2ZJbnRlcnNlY3Rpb24oY29u
c3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0IHN0ZDo6cGFpcjxjb25zdCBGbG9hdFBv
aW50JiwgZmxvYXQ+IHJheSkKK3sKKyAgICBhdXRvIHBvc2l0aW9uID0gcmF5LmZpcnN0OworICAg
IGlmIChwb3NpdGlvbi54KCkgPCAwIHx8IHBvc2l0aW9uLngoKSA+IGJvdW5kaW5nUmVjdC53aWR0
aCgpIHx8IHBvc2l0aW9uLnkoKSA8IDAgfHwgcG9zaXRpb24ueSgpID4gYm91bmRpbmdSZWN0Lmhl
aWdodCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBhdXRvIGRpc3RhbmNlcyA9IGRpc3RhbmNl
T2ZQb2ludFRvU2lkZXNPZlJlY3QoYm91bmRpbmdSZWN0LCBwb3NpdGlvbik7CisgICAgcmV0dXJu
IGRpc3RhbmNlcy5hdChpbnRlcnNlY3Rpb25TaWRlKGJvdW5kaW5nUmVjdCwgcmF5KSk7Cit9CisK
K2Zsb2F0IGFuZ2xlT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9uKGNvbnN0IEZsb2F0UmVjdCYg
Ym91bmRpbmdSZWN0LCBjb25zdCBzdGQ6OnBhaXI8Y29uc3QgRmxvYXRQb2ludCYsIGZsb2F0PiBy
YXkpCit7CisgICAgYXV0byBhbmdsZSA9IHJheS5zZWNvbmQ7CisgICAgYXV0byBzaWRlID0gaW50
ZXJzZWN0aW9uU2lkZShib3VuZGluZ1JlY3QsIHJheSk7CisgICAgYW5nbGUgPSB0b1JlbGF0ZWRB
Y3V0ZUFuZ2xlKHRvUG9zaXRpdmVBbmdsZShhbmdsZSkpOworICAgIHJldHVybiBzaWRlID09IEJv
eFNpZGU6OlRvcCB8fCBzaWRlID09IEJveFNpZGU6OkJvdHRvbSA/IGFuZ2xlIDogOTAgLSBhbmds
ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2VvbWV0cnlVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dl
b21ldHJ5VXRpbGl0aWVzLmgKaW5kZXggYzhkNjYzOTg4MTA1YTc2ZWQ5ZjUzZWRiZTZiMzNlNzE5
YzViYjM2Ny4uMDBlNjg5YTgxZDIyOTc4ZDQxOGJiODYzM2FmZDQzODQ4Yjc0ODczZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGll
cy5oCkBAIC02NCw2ICs2NCwzMiBAQCBib29sIGVsbGlwc2VDb250YWluc1BvaW50KGNvbnN0IEZs
b2F0UG9pbnQmIGNlbnRlciwgY29uc3QgRmxvYXRTaXplJiByYWRpaSwgY29ucwogCiBGbG9hdFBv
aW50IG1pZFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7CiAKKy8v
IC0tLS0tLS0tLS0tLS0KKy8vIHwgICBoXCAgfHMgIHwKKy8vIHwgICAgIFxhfCAgIHwKKy8vIHwg
ICAgICBcfCAgIHwKKy8vIHwgICAgICAgKiAgIHwKKy8vIHwgICAgICh4LHkpIHwKKy8vIC0tLS0t
LS0tLS0tLS0KKy8vIEdpdmVuIGEgYm94IGFuZCBhIHJheSAoZGVzY3JpYmVkIGJ5IGFuIG9mZnNl
dCBmcm9tIHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIGJveCBhbmQgYW5nbGUgZnJvbSB2ZXJ0
aWNhbCBpbiBkZWdyZWVzKSwgY29tcHV0ZQorLy8gdGhlIGxlbmd0aCBmcm9tIHRoZSBzdGFydGlu
ZyBwb3NpdGlvbiB0byB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSByYXkgd2l0aCB0aGUgYm94LiBH
aXZlbiB0aGUgYWJvdmUgZGlhZ3JhbSwgd2UgYXJlCisvLyB0cnlpbmcgdG8gY2FsY3VsYXRlIGgs
IHdpdGggbGVuZ3RoT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9uIGNvbXB1dGluZyB0aGUgbGVu
Z3RoIG9mIHMsIGFuZCBhbmdsZU9mUG9pbnRUb1NpZGVPZkludGVyc2VjdGlvbgorLy8gY29tcHV0
aW5nIGEuCitkb3VibGUgbGVuZ3RoT2ZSYXlJbnRlcnNlY3Rpb25XaXRoQm91bmRpbmdCb3goY29u
c3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0IHN0ZDo6cGFpcjxjb25zdCBGbG9hdFBv
aW50JiwgZmxvYXQ+IHJheSk7CisKKy8vIEdpdmVuIGEgYm94IGFuZCBhIHJheSAoZGVzY3JpYmVk
IGJ5IGFuIG9mZnNldCBmcm9tIHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIGJveCBhbmQgYW5n
bGUgZnJvbSB2ZXJ0aWNhbCBpbiBkZWdyZWVzKSwKKy8vIGNvbXB1dGUgdGhlIGNsb3Nlc3QgbGVu
Z3RoIGZyb20gdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIHRvIHRoZSBzaWRlIHRoYXQgdGhlIHJheSBp
bnRlcnNlY3RzIHdpdGguCitkb3VibGUgbGVuZ3RoT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9u
KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBzdGQ6OnBhaXI8Y29uc3QgRmxv
YXRQb2ludCYsIGZsb2F0PiByYXkpOworCisvLyBHaXZlbiBhIGJveCBhbmQgYSByYXkgKGRlc2Ny
aWJlZCBieSBhbiBvZmZzZXQgZnJvbSB0aGUgdG9wIGxlZnQgY29ybmVyIG9mIHRoZSBib3ggYW5k
IGFuZ2xlIGZyb20gdmVydGljYWwgaW4gZGVncmVlcykKKy8vIGNvbXB1dGUgdGhlIGFjdXRlIGFu
Z2xlIGJldHdlZW4gdGhlIHJheSBhbmQgdGhlIGxpbmUgc2VnbWVudCBmcm9tIHRoZSBzdGFydGlu
ZyBwb2ludCB0byB0aGUgY2xvc2VzdCBwb2ludCBvbiB0aGUKKy8vIHNpZGUgdGhhdCB0aGUgcmF5
IGludGVyc2VjdHMgd2l0aC4KK2Zsb2F0IGFuZ2xlT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9u
KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBzdGQ6OnBhaXI8Y29uc3QgRmxv
YXRQb2ludCYsIGZsb2F0PiByYXkpOworCisvLyBHaXZlbiBhIGJveCBhbmQgYW4gb2Zmc2V0IGZy
b20gdGhlIHRvcCBsZWZ0IGNvcm5lciwgY2FsY3VsYXRlIHRoZSBkaXN0YW5jZSBvZiB0aGUgcG9p
bnQgZnJvbSBlYWNoIHNpZGUKK1JlY3RFZGdlczxkb3VibGU+IGRpc3RhbmNlT2ZQb2ludFRvU2lk
ZXNPZlJlY3QoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRQb2ludCYpOworZmxvYXQgdG9Q
b3NpdGl2ZUFuZ2xlKGZsb2F0IGFuZ2xlKTsKKwogc3RydWN0IFJvdGF0ZWRSZWN0IHsKICAgICBG
bG9hdFBvaW50IGNlbnRlcjsKICAgICBGbG9hdFNpemUgc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9QYXRoT3BlcmF0aW9uLmNwcAppbmRleCBmYTNiOWI2ZjVjNzljYzE3ZWYwZTA2MTk5
Njg1NmM3MDM3ZjYxZjhmLi43ZDY4OWEyZTQyNjg4M2NhNDAyZmU0MWI3YWRmN2M2N2QyZmFmYTY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uY3BwCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGF0aE9wZXJhdGlvbi5o
IgogCisjaW5jbHVkZSAiR2VvbWV0cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDQgKzQ5LDM2IEBAIGNvbnN0IFNWR0Vs
ZW1lbnQqIFJlZmVyZW5jZVBhdGhPcGVyYXRpb246OmVsZW1lbnQoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2VsZW1lbnQuZ2V0KCk7CiB9CisKK2RvdWJsZSBSYXlQYXRoT3BlcmF0aW9uOjpsZW5n
dGhGb3JQYXRoKCkgY29uc3QKK3sKKyAgICBhdXRvIGJvdW5kaW5nQm94ID0gbV9jb250YWluaW5n
QmxvY2tCb3VuZGluZ1JlY3Q7CisgICAgYXV0byBkaXN0YW5jZXMgPSBkaXN0YW5jZU9mUG9pbnRU
b1NpZGVzT2ZSZWN0KGJvdW5kaW5nQm94LCBtX3Bvc2l0aW9uKTsKKyAgICAKKyAgICBzd2l0Y2gg
KG1fc2l6ZSkgeworICAgIGNhc2UgU2l6ZTo6Q2xvc2VzdFNpZGU6CisgICAgICAgIHJldHVybiBz
dGQ6Om1pbiggeyBkaXN0YW5jZXMudG9wKCksIGRpc3RhbmNlcy5ib3R0b20oKSwgZGlzdGFuY2Vz
LmxlZnQoKSwgZGlzdGFuY2VzLnJpZ2h0KCkgfSApOworICAgIGNhc2UgU2l6ZTo6RmFydGhlc3RT
aWRlOgorICAgICAgICByZXR1cm4gc3RkOjptYXgoIHsgZGlzdGFuY2VzLnRvcCgpLCBkaXN0YW5j
ZXMuYm90dG9tKCksIGRpc3RhbmNlcy5sZWZ0KCksIGRpc3RhbmNlcy5yaWdodCgpIH0gKTsKKyAg
ICBjYXNlIFNpemU6OkZhcnRoZXN0Q29ybmVyOgorICAgICAgICByZXR1cm4gc3RkOjpzcXJ0KHN0
ZDo6cG93KHN0ZDo6bWF4KGRpc3RhbmNlcy5sZWZ0KCksIGRpc3RhbmNlcy5yaWdodCgpKSwgMikg
KyBzdGQ6OnBvdyhzdGQ6Om1heChkaXN0YW5jZXMudG9wKCksIGRpc3RhbmNlcy5ib3R0b20oKSks
IDIpKTsKKyAgICBjYXNlIFNpemU6OkNsb3Nlc3RDb3JuZXI6CisgICAgICAgIHJldHVybiBzdGQ6
OnNxcnQoc3RkOjpwb3coc3RkOjptaW4oZGlzdGFuY2VzLmxlZnQoKSwgZGlzdGFuY2VzLnJpZ2h0
KCkpLCAyKSArIHN0ZDo6cG93KHN0ZDo6bWluKGRpc3RhbmNlcy50b3AoKSwgZGlzdGFuY2VzLmJv
dHRvbSgpKSwgMikpOworICAgIGNhc2UgU2l6ZTo6U2lkZXM6CisgICAgICAgIHJldHVybiBsZW5n
dGhPZlJheUludGVyc2VjdGlvbldpdGhCb3VuZGluZ0JveChib3VuZGluZ0JveCwgc3RkOjptYWtl
X3BhaXIobV9wb3NpdGlvbiwgbV9hbmdsZSkpOworICAgIH0KK30KKworY29uc3QgUGF0aCBSYXlQ
YXRoT3BlcmF0aW9uOjpwYXRoRm9yUmVmZXJlbmNlUmVjdCgpIGNvbnN0Cit7CisgICAgUGF0aCBw
YXRoOworICAgIGlmIChtX2NvbnRhaW5pbmdCbG9ja0JvdW5kaW5nUmVjdC5pc1plcm8oKSkKKyAg
ICAgICAgcmV0dXJuIHBhdGg7CisgICAgYXV0byBsZW5ndGggPSBsZW5ndGhGb3JQYXRoKCk7Cisg
ICAgYXV0byByYWRpYW5zID0gZGVnMnJhZCh0b1Bvc2l0aXZlQW5nbGUobV9hbmdsZSkgLSA5MCk7
CisgICAgYXV0byBwb2ludCA9IEZsb2F0UG9pbnQoc3RkOjpjb3MocmFkaWFucykgKiBsZW5ndGgs
IHN0ZDo6c2luKHJhZGlhbnMpICogbGVuZ3RoKTsKKyAgICBwYXRoLmFkZExpbmVUbyhwb2ludCk7
CisgICAgcmV0dXJuIHBhdGg7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5oCmluZGV4IGQ2ZTAwOTk2ZmY4NzU5ZDE2Yjlm
ZDI3ZDdlNGFhODcwMTQzZTVkZWYuLjgyOTk4YjVlMTVkY2ViOTg3ZjhiNzA3M2IyNmRlZWQ3Mzli
NzBjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaApAQCAtMTk2
LDYgKzE5NiwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBSYXlQYXRoT3BlcmF0aW9uOjpj
cmVhdGUoV2ViQ29yZTo6YmxlbmQobV9hbmdsZSwgdG8ubV9hbmdsZSwgY29udGV4dCksIG1fc2l6
ZSwgbV9pc0NvbnRhaW5pbmcpOwogICAgIH0KIAorICAgIGNvbnN0IFBhdGggcGF0aEZvclJlZmVy
ZW5jZVJlY3QoKSBjb25zdDsKKyAgICBkb3VibGUgbGVuZ3RoRm9yUGF0aCgpIGNvbnN0OworICAg
IAorICAgIHZvaWQgc2V0Q29udGFpbmluZ0Jsb2NrUmVmZXJlbmNlUmVjdChjb25zdCBGbG9hdFJl
Y3QmIGJvdW5kaW5nUmVjdCkKKyAgICB7CisgICAgICAgIG1fY29udGFpbmluZ0Jsb2NrQm91bmRp
bmdSZWN0ID0gYm91bmRpbmdSZWN0OworICAgIH0KKyAgICB2b2lkIHNldFN0YXJ0aW5nUG9zaXRp
b24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCisgICAgeworICAgICAgICBtX3Bvc2l0aW9u
ID0gcG9zaXRpb247CisgICAgfQogcHJpdmF0ZToKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
UGF0aE9wZXJhdGlvbiYgb3RoZXIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpAQCAtMjE2LDkgKzIy
NywxMSBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICBmbG9hdCBtX2FuZ2xlOworICAg
IGZsb2F0IG1fYW5nbGUgeyAwIH07CiAgICAgU2l6ZSBtX3NpemU7Ci0gICAgYm9vbCBtX2lzQ29u
dGFpbmluZzsKKyAgICBib29sIG1faXNDb250YWluaW5nIHsgZmFsc2UgfTsKKyAgICBGbG9hdFJl
Y3QgbV9jb250YWluaW5nQmxvY2tCb3VuZGluZ1JlY3Q7CisgICAgRmxvYXRQb2ludCBtX3Bvc2l0
aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggYmI0ZDNhNGU0NjJiY2M5NzU2NmVmYmE0OWI4ZDE4Mzk3
OGNhNGEzYy4uMjU2YTM4MjdmOWRmY2YxNTA4YTVkYTAyOWM5ZGU5MTVhOGMxMDdjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xMzE3LDYgKzEzMTcsMzEg
QEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKFRyYW5zZm9ybWF0
aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnMKICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSh0cmFu
c2Zvcm0sIGNhblJlbmRlcjNEVHJhbnNmb3JtcygpKTsKIH0KIAordm9pZCBSZW5kZXJMYXllcjo6
c2V0UmVmZXJlbmNlQm94Rm9yUGF0aE9wZXJhdGlvbnMoKQoreworICAgIGF1dG8gcGF0aE9wZXJh
dGlvbiA9IHJlbmRlcmVyKCkuc3R5bGUoKS5vZmZzZXRQYXRoKCk7CisgICAgaWYgKCFwYXRoT3Bl
cmF0aW9uKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGlzPEJveFBhdGhPcGVyYXRpb24+KHBh
dGhPcGVyYXRpb24pKSB7CisgICAgICAgIGF1dG8mIGJveFBhdGhPcGVyYXRpb24gPSBkb3duY2Fz
dDxCb3hQYXRoT3BlcmF0aW9uPigqcGF0aE9wZXJhdGlvbik7CisgICAgICAgIGF1dG8gcGF0aFJl
ZmVyZW5jZUJveFJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzSWZOZWVkZWQocmVuZGVyZXIo
KS5yZWZlcmVuY2VCb3hSZWN0KGJveFBhdGhPcGVyYXRpb24ucmVmZXJlbmNlQm94KCkpLCByZW5k
ZXJlcigpKTsKKyAgICAgICAgYm94UGF0aE9wZXJhdGlvbi5zZXRQYXRoRm9yUmVmZXJlbmNlUmVj
dChGbG9hdFJvdW5kZWRSZWN0IHsgcGF0aFJlZmVyZW5jZUJveFJlY3QgfSk7CisgICAgfSBlbHNl
IGlmIChpczxSYXlQYXRoT3BlcmF0aW9uPihwYXRoT3BlcmF0aW9uKSkgeworICAgICAgICBpZiAo
Y29uc3QgYXV0byogY29udGFpbmluZ0Jsb2NrID0gcmVuZGVyZXIoKS5jb250YWluaW5nQmxvY2so
KSkgeworICAgICAgICAgICAgYXV0byYgcmF5UGF0aE9wZXJhdGlvbiA9IGRvd25jYXN0PFJheVBh
dGhPcGVyYXRpb24+KCpwYXRoT3BlcmF0aW9uKTsKKyAgICAgICAgICAgIGF1dG8gcGF0aFJlZmVy
ZW5jZUJveFJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzSWZOZWVkZWQoY29udGFpbmluZ0Js
b2NrLT50cmFuc2Zvcm1SZWZlcmVuY2VCb3hSZWN0KGNvbnRhaW5pbmdCbG9jay0+c3R5bGUoKSks
IHJlbmRlcmVyKCkpOworICAgICAgICAgICAgaWYgKCFwYXRoUmVmZXJlbmNlQm94UmVjdC53aWR0
aCgpKQorICAgICAgICAgICAgICAgIHBhdGhSZWZlcmVuY2VCb3hSZWN0LnNldFdpZHRoKHBhdGhS
ZWZlcmVuY2VCb3hSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgICAgIGlmICghcGF0aFJlZmVyZW5j
ZUJveFJlY3QuaGVpZ2h0KCkpCisgICAgICAgICAgICAgICAgcGF0aFJlZmVyZW5jZUJveFJlY3Qu
c2V0SGVpZ2h0KHBhdGhSZWZlcmVuY2VCb3hSZWN0LndpZHRoKCkpOworICAgICAgICAgICAgcmF5
UGF0aE9wZXJhdGlvbi5zZXRDb250YWluaW5nQmxvY2tSZWZlcmVuY2VSZWN0KHBhdGhSZWZlcmVu
Y2VCb3hSZWN0KTsKKyAgICAgICAgICAgIGF1dG8gbGVmdCA9IHJlbmRlcmVyKCkuc3R5bGUoKS5s
ZWZ0KCk7CisgICAgICAgICAgICBhdXRvIHRvcCA9IHJlbmRlcmVyKCkuc3R5bGUoKS50b3AoKTsK
KyAgICAgICAgICAgIHJheVBhdGhPcGVyYXRpb24uc2V0U3RhcnRpbmdQb3NpdGlvbihGbG9hdFBv
aW50KGxlZnQuaXNQZXJjZW50KCkgPyBsZWZ0LnZhbHVlKCkgLyAxMDAgKiBwYXRoUmVmZXJlbmNl
Qm94UmVjdC53aWR0aCgpIDogbGVmdC52YWx1ZSgpLCB0b3AuaXNQZXJjZW50KCkgPyB0b3AudmFs
dWUoKSAvIDEwMCAqIHBhdGhSZWZlcmVuY2VCb3hSZWN0LmhlaWdodCgpIDogdG9wLnZhbHVlKCkp
KTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNm
b3JtKCkKIHsKICAgICBib29sIGhhc1RyYW5zZm9ybSA9IHJlbmRlcmVyKCkuaGFzVHJhbnNmb3Jt
KCk7CkBAIC0xMzM1LDEzICsxMzYwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNm
b3JtKCkKICAgICAKICAgICBpZiAoaGFzVHJhbnNmb3JtKSB7CiAgICAgICAgIG1fdHJhbnNmb3Jt
LT5tYWtlSWRlbnRpdHkoKTsKLQotICAgICAgICBpZiAoYXV0byBwYXRoT3BlcmF0aW9uID0gcmVu
ZGVyZXIoKS5zdHlsZSgpLm9mZnNldFBhdGgoKTsgcGF0aE9wZXJhdGlvbiAmJiBpczxCb3hQYXRo
T3BlcmF0aW9uPihwYXRoT3BlcmF0aW9uKSkgewotICAgICAgICAgICAgYXV0byYgYm94UGF0aE9w
ZXJhdGlvbiA9IGRvd25jYXN0PEJveFBhdGhPcGVyYXRpb24+KCpwYXRoT3BlcmF0aW9uKTsKLSAg
ICAgICAgICAgIGF1dG8gcGF0aFJlZmVyZW5jZUJveFJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4
ZWxzSWZOZWVkZWQocmVuZGVyZXIoKS5yZWZlcmVuY2VCb3hSZWN0KGJveFBhdGhPcGVyYXRpb24u
cmVmZXJlbmNlQm94KCkpLCByZW5kZXJlcigpKTsKLSAgICAgICAgICAgIGJveFBhdGhPcGVyYXRp
b24uc2V0UGF0aEZvclJlZmVyZW5jZVJlY3QoRmxvYXRSb3VuZGVkUmVjdCB7IHBhdGhSZWZlcmVu
Y2VCb3hSZWN0IH0pOwotICAgICAgICB9Ci0KKyAgICAgICAgc2V0UmVmZXJlbmNlQm94Rm9yUGF0
aE9wZXJhdGlvbnMoKTsKICAgICAgICAgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCptX3RyYW5z
Zm9ybSwgcmVuZGVyZXIoKS5zdHlsZSgpLCBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0
aW9ucyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4
IDgwNDc2MWE4ZjkyMDAwNGU4ZmRkNDI3ZTE4ZDRhNzk4NDUxMzFiOWQuLmU1MWUzMWE5MDIxNjU1
ODYwNDFiOWJjODYwMTVhNmY2NWY5MDFiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCkBAIC01MDksNiArNTA5LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9l
bmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIuZ2V0KCk7CiAgICAgfQogCisgICAgdm9pZCBzZXRSZWZl
cmVuY2VCb3hGb3JQYXRoT3BlcmF0aW9ucygpOwogICAgIHZvaWQgdXBkYXRlVHJhbnNmb3JtKCk7
CiAgICAgCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDliNjhlN2JmZjcwMTgwZmRkNzJi
Y2I3NjkzZTZhYTJiMTMyMzUwMzguLjlhMDAwNjM0YTgwZWFhZDk5NTVkODljODhmMzBkNTNiMTU0
YTQzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcApAQCAtMTUzOCw4ICsxNTM4LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UGF0aD4gZ2V0
UGF0aEZyb21QYXRoT3BlcmF0aW9uKGNvbnN0IEZsb2F0UmVjdCYgYm94LCBjb25zdAogICAgIGNh
c2UgUGF0aE9wZXJhdGlvbjo6Qm94OgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8Qm94UGF0aE9w
ZXJhdGlvbj4ob3BlcmF0aW9uKS5nZXRQYXRoKCk7CiAgICAgY2FzZSBQYXRoT3BlcmF0aW9uOjpS
YXk6Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcmF5LSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzQ0Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgICAgIHJldHVybiBkb3duY2FzdDxSYXlQYXRoT3BlcmF0aW9uPihvcGVyYXRpb24pLnBh
dGhGb3JSZWZlcmVuY2VSZWN0KCk7CiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZTYwZTg0NzZjODg1ZmM1NGJlNTA4YjNlNDVkNjhjMTQyMWY2NjVk
Ni4uOTdkZGRjYjcwMzVjZTE2MmM0ZDgxYWI1OTlhZDBjZDhiYmQ5Y2RkNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDIyLTA1LTA0ICBOaWtvbGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNA
YXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgcmF5KCkgc2hhcGUgaW4gb2Zmc2V0LXBhdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM0NAor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIFRlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMjItMDQtMjggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBEZWJ1ZyB3azIgXSBUaGlydGVlbiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVk
aWEtZWxlbWVudHMvIGFyZSBhIGZsYWt5IGNyYXNoIChBU1NFUlRJT04gRkFJTEVEOiB3aWxsQmVD
b21wb3NpdGVkID09IG5lZWRzVG9CZUNvbXBvc2l0ZWQobGF5ZXIsIHF1ZXJ5RGF0YSkpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCA0ZDIyNTg1YTQzZDhkZjE2MDNkNThhZWQ4MGZkNjU5MGIzZWIxMDAz
Li5hNTRiNjUwNTg5MzNjMmM0ZDZkYjAxYWIzMDg2ODNhOWQ1ZjgyMzBkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTUwNzIsMjMgKzUwNzIsMTUgQEAgd2Via2l0Lm9yZy9iLzIzMzM0MCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LWFuY2hvci10cmEKIHdl
YmtpdC5vcmcvYi8yMzMzNDAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90
aW9uL29mZnNldC1hbmNob3ItdHJhbnNmb3JtLWJveC1maWxsLWJveC0wMDIuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIzMzM0MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LWFuY2hvci10cmFuc2Zvcm0tYm94LWZpbGwtYm94
LTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLSMgQ1NTIG1vdGlvbiBwYXRoIHRoYXQg
ZGVwZW5kcyBvbiByYXkoKSwgY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZC4KLXdlYmtpdC5vcmcv
Yi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNl
dC1wYXRoLXJheS0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIz
MzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBh
dGgtcmF5LTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMzMzQ0
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1y
YXktMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzMzNDQgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0w
MDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwNS5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktMDA2Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KKyMgQ1NTIG1vdGlvbiBwYXRoIHJheSB0ZXN0IGZhaWxpbmcg
ZHVlIHRvIGdldHRpbmcgd3Jvbmcgc2l6ZSBmcm9tIGNvbnRhaW5pbmcgYmxvY2suCiB3ZWJraXQu
b3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9v
ZmZzZXQtcGF0aC1yYXktMDA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNl
dC1wYXRoLXJheS0wMDguaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIz
MzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBh
dGgtcmF5LTAwOS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCisKKyMgQ1NTIG1vdGlvbiBwYXRo
IG5lZWRzIHRvIGltcGxlbWVudCBjb250YWluIGZvciByYXk6IGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyNTkuCiB3ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktY29udGFp
bi0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LWNv
bnRhaW4tMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMzMzNDQg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJh
eS1jb250YWluLTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjMz
MzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0
aC1yYXktY29udGFpbi0wMDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9i
LzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0
LXBhdGgtcmF5LWNvbnRhaW4tMDA1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29m
ZnNldC1yb3RhdGUtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8y
MzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1y
b3RhdGUtMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyBJUEMgdGVzdCBmYWlsaW5n
IGluIERlYnVnIG1vZGUgZHVlIHRvIGFzc2VydC4KIFsgRGVidWcgXSBpcGMvc2VuZC1pbnZhbGlk
LW1lc3NhZ2UuaHRtbCBbIFNraXAgXQo=
</data>
<flag name="commit-queue"
          id="488097"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459092</attachid>
            <date>2022-05-09 21:30:47 -0700</date>
            <delta_ts>2022-05-09 23:50:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233344-20220509213046.patch</filename>
            <type>text/plain</type>
            <size>22721</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFjMmVmYmM0MDg3YzA1
N2RiZWIzY2Y5ZjZjMDkwYzk2MGU4NDBiZS4uODY2Y2MzMWU0NTZmZjY1ZGVmNDA2MzRkYmU5YWM3
N2FmOTZhZGU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIyLTA1LTA0ICBOaWtv
bGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgcmF5KCkgc2hhcGUgaW4gb2Zmc2V0LXBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIHJheSBwYXRoLiBJ
bnZvbHZlcyBnZXR0aW5nIGNvbnRhaW5pbmcgYmxvY2sgYW5kIG9mZnNldAorICAgICAgICBvZiB0
aGUgZWxlbWVudCBmcm9tIHRoZSBjb250YWluaW5nIGJsb2NrLiBVc2luZyB0aGUgc2l6ZSBvZiB0
aGUgY29udGFpbmluZyBibG9jaworICAgICAgICBhbmQgb2Zmc2V0LCBjYWxjdWxhdGUgdGhlIGxl
bmd0aCBvZiB0aGUgcmF5IGFuZCBjcmVhdGUgYSBMaW5lIHBhdGggdXNpbmcgdGhlIGxlbmd0aAor
ICAgICAgICBhbmQgYW5nbGUuIENhbGN1bGF0aW5nIGNsb3Nlc3QvZmFydGhlc3Qtc2lkZSBhbmQg
Y2xvc2VzdC9mYXJ0aGVzdC1jb3JuZXIgYXJlIHNpbXBsZSAKKyAgICAgICAgYnV0IGNhbGN1bGF0
aW5nIHNpZGUgcmVxdWlyZXMgc29tZSBleHBsYW5hdGlvbi4gRmlyc3QsIHdlIGdldCB0aGUgdHdv
IHBvc3NpYmxlIHNpZGVzIG9mIAorICAgICAgICB0aGUgY29udGFpbmluZyBibG9jayB0aGUgcmF5
IGNvdWxkIGJlIGludGVyc2VjdGluZyB3aXRoLCBiYXNlZCBvbiB0aGUgYW5nbGUuIFRvIGNhbGN1
bGF0ZSAKKyAgICAgICAgd2hpY2ggc2lkZSBpcyBiZWluZyBpbnRlcnNlY3RlZCwgaWYgdGFuKHRo
ZXRhKSAqIHRvcC9ib3R0b20gaXMgb3V0c2lkZSBvZiB0aGUgY29udGFpbmluZyAKKyAgICAgICAg
YmxvY2ssIHRoaXMgbWVhbnMgdGhhdCB0aGUgcmF5IGlzIGludGVyc2VjdGluZyB3aXRoIHRoZSBv
dGhlciBzaWRlLiBGaW5hbGx5LCB3ZSBjYWxjdWxhdGUgCisgICAgICAgIHRoZSBhY3V0ZSBhbmds
ZSBiYXNlZCBvbiB3aGljaCBzaWRlIHdlIGludGVyc2VjdGVkIHdpdGguIFVzaW5nIHRoZSBsZW5n
dGggYW5kIGFuZ2xlLCB3ZSAKKyAgICAgICAgY2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgdGhlIGh5
cG90ZW51c2UsIHdoaWNoIGNvcnJlc3BvbmRzIHdpdGggdGhlIGxlbmd0aCBvZiB0aGUgc3RhcnQg
cG9pbnQKKyAgICAgICAgb2YgdGhlIHJheSB0byBpdHMgaW50ZXJzZWN0aW9uIHdpdGggYSBzaWRl
IG9mIHRoZSBjb250YWluaW5nIGJsb2NrLiBUZXN0IDcgaXMgc3RpbGwgZmFpbGluZyAKKyAgICAg
ICAgZHVlIHRvIGdldHRpbmcgaW5jb3JyZWN0IHdpZHRoIG9mIGNvbnRhaW5pbmcgYmxvY2sgKGRv
ZXNuJ3QgaGFwcGVuIHdoZW4gYW5pbWF0aW5nIHRoZSBwYXRoCisgICAgICAgIGZvciBzb21lIHJl
YXNvbikuIFdpbGwgaW1wbGVtZW50IGNvbnRhaW4gaW4gYW5vdGhlciBwYXRjaC4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJp
bmcvUGF0aE9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Bvc2l0aXZlQW5nbGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmF5UGF0aE9wZXJhdGlvbjo6Z2V0TGVuZ3RoRm9yUGF0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSYXlQYXRoT3BlcmF0aW9uOjpwYXRoRm9yUmVmZXJl
bmNlUmVjdCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNldFJlZmVyZW5jZUJveEZvclBhdGhPcGVyYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQYXRoRnJvbVBhdGhPcGVyYXRpb24pOgorCiAyMDIy
LTA0LTI4ICBQaGlsaXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1N0cmVhbWVyXSBQaXBld2lyZSBkaXNwbGF5IGNhcHR1cmUgYnJva2VuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWJhMWI4MjAz
NTJjMTRkOTYwNjYzM2YzMDFmOWQ0NTM3MjhlMmUyNS4uZDczYmFmMmJkY2NmYjI5MDdkMTcyNWU0
MjBlYzRkNzIwMjMzNTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjk4Nyw2ICs2OTg3LDcgQEAKIAkJMUFCN0ZDNjYwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3RkM2NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBh
dGhWYXJpYWJsZVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QUJBN0ZGRjE4OTczNDEyMDBEQ0U5RDYgLyogVmlzaXRlZExpbmtTdG9yZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpdGVkTGlua1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFBQkMyNjAzMjdGRDAyMTQwMDY0RjY4RiAvKiBQYXRoT3BlcmF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhdGhPcGVyYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUMyMjYwQTBEQjY5RjE5MDA4OUI2
NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBQzIyNjBCMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9u
Q2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01BcHBsaWNhdGlv
bkNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzJEODlDMUIxRTI5MUYw
MEQ1MkU4NyAvKiBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzIyNDcsNiArMzIyNDgsNyBAQAogCQkJCTU1RUM5NTk3MjA2
OUM5MkQwMDdERDBBOSAvKiBQYWludEZyZXF1ZW5jeVRyYWNrZXIuaCAqLywKIAkJCQkwODg1MDY3
RDExREEwNDVCMDAxODJCOTggLyogUGFpbnRJbmZvLmggKi8sCiAJCQkJMDg4NTA2N0UxMURBMDQ1
QjAwMTgyQjk4IC8qIFBhaW50UGhhc2UuaCAqLywKKwkJCQkxQUJDMjYwMzI3RkQwMjE0MDA2NEY2
OEYgLyogUGF0aE9wZXJhdGlvbi5jcHAgKi8sCiAJCQkJRkI5MkRGNDkxNUZFRDA4NzAwOTk0NDMz
IC8qIFBhdGhPcGVyYXRpb24uaCAqLywKIAkJCQlCMkIxRjcxNDBEMDBDQUE4MDA0QUVBNjQgLyog
UG9pbnRlckV2ZW50c0hpdFJ1bGVzLmNwcCAqLywKIAkJCQlCMkIxRjcxNTBEMDBDQUE4MDA0QUVB
NjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5jcHAKaW5kZXggMzQ0MGMyYjhjYTBiYzczZjE3NzlhZjAwZDcxMTljYzhjODIz
MTM0Yi4uY2JmMTRmY2U3YmFiOTNhNTlhZGM3ZDE5MTIzNjdkOGNkOWU1NzczNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSAiQ29sb3JJbnRlcnBvbGF0aW9uLmgiCisjaW5jbHVkZSAiR2VvbWV0
cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHcmFkaWVudEltYWdlLmgiCiAjaW5jbHVkZSAiTm9k
ZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtODE1LDkgKzgxNiw3IEBAIHN0
YXRpYyB2b2lkIGVuZFBvaW50c0Zyb21BbmdsZShmbG9hdCBhbmdsZURlZywgY29uc3QgRmxvYXRT
aXplJiBzaXplLCBGbG9hdFBvaW50CiAgICAgaWYgKHR5cGUgPT0gQ1NTUHJlZml4ZWRMaW5lYXJH
cmFkaWVudCkKICAgICAgICAgYW5nbGVEZWcgPSA5MCAtIGFuZ2xlRGVnOwogCi0gICAgYW5nbGVE
ZWcgPSBmbW9kZihhbmdsZURlZywgMzYwKTsKLSAgICBpZiAoYW5nbGVEZWcgPCAwKQotICAgICAg
ICBhbmdsZURlZyArPSAzNjA7CisgICAgYW5nbGVEZWcgPSB0b1Bvc2l0aXZlQW5nbGUoYW5nbGVE
ZWcpOwogCiAgICAgaWYgKCFhbmdsZURlZykgewogICAgICAgICBmaXJzdFBvaW50LnNldCgwLCBz
aXplLmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAppbmRleCA3NGI0YzM1YTU0YzU2NGE5ZDBiNjc3OWJi
NmY4NGQ3ZWZiMGRkYzZkLi43MWM3NDhmODA5YTY2MGU0ZTU4ZjZiMjFmZmRiNDNiYTVlMzdlZjY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0
cnlVdGlsaXRpZXMuY3BwCkBAIC0yNjgsNCArMjY4LDc0IEBAIFJvdGF0ZWRSZWN0IHJvdGF0ZWRC
b3VuZGluZ1JlY3RXaXRoTWluaW11bUFuZ2xlT2ZSb3RhdGlvbihjb25zdCBGbG9hdFF1YWQmIHF1
YWQsCiAgICAgcmV0dXJuIHsgY2VudGVyLCB7IHdpZHRoLCBoZWlnaHQgfSwgYW5nbGUgfTsKIH0K
IAorZmxvYXQgdG9Qb3NpdGl2ZUFuZ2xlKGZsb2F0IGFuZ2xlKQoreworICAgIGFuZ2xlID0gZm1v
ZChhbmdsZSwgMzYwKTsKKyAgICB3aGlsZSAoYW5nbGUgPCAwKQorICAgICAgICBhbmdsZSArPSAz
NjAuMDsKKyAgICByZXR1cm4gYW5nbGU7Cit9CisKKy8vIENvbXB1dGUgYWN1dGUgYW5nbGUgZnJv
bSB2ZXJ0aWNhbCBheGlzCitzdGF0aWMgZmxvYXQgdG9SZWxhdGVkQWN1dGVBbmdsZShmbG9hdCBh
bmdsZSkKK3sKKyAgICBhbmdsZSA9IHRvUG9zaXRpdmVBbmdsZShhbmdsZSk7CisgICAgaWYgKGFu
Z2xlIDwgOTApCisgICAgICAgIHJldHVybiBhbmdsZTsKKyAgICBpZiAoYW5nbGUgPiA5MCB8fCBh
bmdsZSA8IDE4MCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6YWJzKDE4MCAtIGFuZ2xlKTsKKyAgICBy
ZXR1cm4gc3RkOjphYnMoMzYwIC0gYW5nbGUpOworfQorCitSZWN0RWRnZXM8ZG91YmxlPiBkaXN0
YW5jZU9mUG9pbnRUb1NpZGVzT2ZSZWN0KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3sKKyAgICAvLyBDb21wdXRlIGRpc3RhbmNlIHRv
IGVhY2ggc2lkZSBvZiB0aGUgY29udGFpbmluZyBib3gKKyAgICBkb3VibGUgdG9wID0gc3RkOjph
YnMocG9zaXRpb24ueSgpKTsKKyAgICBkb3VibGUgYm90dG9tID0gc3RkOjphYnMocG9zaXRpb24u
eSgpIC0gYm91bmRpbmdSZWN0LmhlaWdodCgpKTsKKyAgICBkb3VibGUgbGVmdCA9IHN0ZDo6YWJz
KHBvc2l0aW9uLngoKSk7CisgICAgZG91YmxlIHJpZ2h0ID0gc3RkOjphYnMocG9zaXRpb24ueCgp
IC0gYm91bmRpbmdSZWN0LndpZHRoKCkpOworICAgIHJldHVybiBSZWN0RWRnZXM8ZG91YmxlPih0
b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpOworfQorCitkb3VibGUgbGVuZ3RoT2ZSYXlJbnRlcnNl
Y3Rpb25XaXRoQm91bmRpbmdCb3goY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0
IHN0ZDo6cGFpcjxjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQ+IHJheSkKK3sKKyAgICBhdXRvIGxl
bmd0aCA9IGxlbmd0aE9mUG9pbnRUb1NpZGVPZkludGVyc2VjdGlvbihib3VuZGluZ1JlY3QsIHJh
eSk7CisgICAgYXV0byBhbmdsZU9mVHJpYW5nbGUgPSBhbmdsZU9mUG9pbnRUb1NpZGVPZkludGVy
c2VjdGlvbihib3VuZGluZ1JlY3QsIHJheSk7CisgICAgLy8gR2l2ZW4gYSBsZW5ndGggYW5kIGFu
Z2xlIG9mIGEgcmlnaHQgdHJpYW5nbGUsIGNhbGN1bGF0ZSB0aGUgaHlwb3RlbnVzZSwgd2hpY2gg
Y29ycmVzcG9uZHMgdG8KKyAgICAvLyB0aGUgbGVuZ3RoIGZyb20gdGhlIGdpdmVuIHBvaW50IHRv
IHRoZSBpbnRlcnNlY3RpbmcgcG9pbnQgb24gdGhlIGJveAorICAgIHJldHVybiBsZW5ndGggLyBj
b3MoZGVnMnJhZChhbmdsZU9mVHJpYW5nbGUpKTsKK30KKworLy8gR2V0IHRoZSBzaWRlIG9mIGJv
eCB0aGUgcmF5IGludGVyc2VjdHMgd2l0aAorc3RhdGljIEJveFNpZGUgaW50ZXJzZWN0aW9uU2lk
ZShjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nUmVjdCwgY29uc3Qgc3RkOjpwYWlyPGNvbnN0IEZs
b2F0UG9pbnQmLCBmbG9hdD4gcmF5KQoreworICAgIGF1dG8gcG9zaXRpb24gPSByYXkuZmlyc3Q7
CisgICAgYXV0byBhbmdsZUluUmFkaWFucyA9IGRlZzJyYWQocmF5LnNlY29uZCk7CisgICAgYXV0
byBkaXN0YW5jZXMgPSBkaXN0YW5jZU9mUG9pbnRUb1NpZGVzT2ZSZWN0KGJvdW5kaW5nUmVjdCwg
cG9zaXRpb24pOworICAgIC8vIEdldCBwb3NzaWJsZSBpbnRlcnNlY3Rpb24gc2lkZXMKKyAgICBh
dXRvIHMxID0gY29zKGFuZ2xlSW5SYWRpYW5zKSA+PSAwID8gZGlzdGFuY2VzLnRvcCgpIDogZGlz
dGFuY2VzLmJvdHRvbSgpOworICAgIGF1dG8gczIgPSBzaW4oYW5nbGVJblJhZGlhbnMpID49IDAg
PyBkaXN0YW5jZXMucmlnaHQoKSA6IGRpc3RhbmNlcy5sZWZ0KCk7CisgICAgYXV0byB2ZXJ0aWNh
bCA9IGNvcyhhbmdsZUluUmFkaWFucykgPj0gMCA/IEJveFNpZGU6OlRvcCA6IEJveFNpZGU6OkJv
dHRvbTsKKyAgICBhdXRvIGhvcml6b250YWwgPSBzaW4oYW5nbGVJblJhZGlhbnMpID49IDAgPyBC
b3hTaWRlOjpSaWdodCA6IEJveFNpZGU6OkxlZnQ7CisgICAgYXV0byBhY3V0ZUFuZ2xlID0gZGVn
MnJhZCh0b1JlbGF0ZWRBY3V0ZUFuZ2xlKHJheS5zZWNvbmQpKTsKKyAgICByZXR1cm4gc2luKGFj
dXRlQW5nbGUpICogczEgID4gY29zKGFjdXRlQW5nbGUpICogczIgPyBob3Jpem9udGFsIDogdmVy
dGljYWw7Cit9CisKK2RvdWJsZSBsZW5ndGhPZlBvaW50VG9TaWRlT2ZJbnRlcnNlY3Rpb24oY29u
c3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0IHN0ZDo6cGFpcjxjb25zdCBGbG9hdFBv
aW50JiwgZmxvYXQ+IHJheSkKK3sKKyAgICBhdXRvIHBvc2l0aW9uID0gcmF5LmZpcnN0OworICAg
IGlmIChwb3NpdGlvbi54KCkgPCAwIHx8IHBvc2l0aW9uLngoKSA+IGJvdW5kaW5nUmVjdC53aWR0
aCgpIHx8IHBvc2l0aW9uLnkoKSA8IDAgfHwgcG9zaXRpb24ueSgpID4gYm91bmRpbmdSZWN0Lmhl
aWdodCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBhdXRvIGRpc3RhbmNlcyA9IGRpc3RhbmNl
T2ZQb2ludFRvU2lkZXNPZlJlY3QoYm91bmRpbmdSZWN0LCBwb3NpdGlvbik7CisgICAgcmV0dXJu
IGRpc3RhbmNlcy5hdChpbnRlcnNlY3Rpb25TaWRlKGJvdW5kaW5nUmVjdCwgcmF5KSk7Cit9CisK
K2Zsb2F0IGFuZ2xlT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9uKGNvbnN0IEZsb2F0UmVjdCYg
Ym91bmRpbmdSZWN0LCBjb25zdCBzdGQ6OnBhaXI8Y29uc3QgRmxvYXRQb2ludCYsIGZsb2F0PiBy
YXkpCit7CisgICAgYXV0byBhbmdsZSA9IHJheS5zZWNvbmQ7CisgICAgYXV0byBzaWRlID0gaW50
ZXJzZWN0aW9uU2lkZShib3VuZGluZ1JlY3QsIHJheSk7CisgICAgYW5nbGUgPSB0b1JlbGF0ZWRB
Y3V0ZUFuZ2xlKHRvUG9zaXRpdmVBbmdsZShhbmdsZSkpOworICAgIHJldHVybiBzaWRlID09IEJv
eFNpZGU6OlRvcCB8fCBzaWRlID09IEJveFNpZGU6OkJvdHRvbSA/IGFuZ2xlIDogOTAgLSBhbmds
ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2VvbWV0cnlVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dl
b21ldHJ5VXRpbGl0aWVzLmgKaW5kZXggYzhkNjYzOTg4MTA1YTc2ZWQ5ZjUzZWRiZTZiMzNlNzE5
YzViYjM2Ny4uMDBlNjg5YTgxZDIyOTc4ZDQxOGJiODYzM2FmZDQzODQ4Yjc0ODczZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGll
cy5oCkBAIC02NCw2ICs2NCwzMiBAQCBib29sIGVsbGlwc2VDb250YWluc1BvaW50KGNvbnN0IEZs
b2F0UG9pbnQmIGNlbnRlciwgY29uc3QgRmxvYXRTaXplJiByYWRpaSwgY29ucwogCiBGbG9hdFBv
aW50IG1pZFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7CiAKKy8v
IC0tLS0tLS0tLS0tLS0KKy8vIHwgICBoXCAgfHMgIHwKKy8vIHwgICAgIFxhfCAgIHwKKy8vIHwg
ICAgICBcfCAgIHwKKy8vIHwgICAgICAgKiAgIHwKKy8vIHwgICAgICh4LHkpIHwKKy8vIC0tLS0t
LS0tLS0tLS0KKy8vIEdpdmVuIGEgYm94IGFuZCBhIHJheSAoZGVzY3JpYmVkIGJ5IGFuIG9mZnNl
dCBmcm9tIHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIGJveCBhbmQgYW5nbGUgZnJvbSB2ZXJ0
aWNhbCBpbiBkZWdyZWVzKSwgY29tcHV0ZQorLy8gdGhlIGxlbmd0aCBmcm9tIHRoZSBzdGFydGlu
ZyBwb3NpdGlvbiB0byB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSByYXkgd2l0aCB0aGUgYm94LiBH
aXZlbiB0aGUgYWJvdmUgZGlhZ3JhbSwgd2UgYXJlCisvLyB0cnlpbmcgdG8gY2FsY3VsYXRlIGgs
IHdpdGggbGVuZ3RoT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9uIGNvbXB1dGluZyB0aGUgbGVu
Z3RoIG9mIHMsIGFuZCBhbmdsZU9mUG9pbnRUb1NpZGVPZkludGVyc2VjdGlvbgorLy8gY29tcHV0
aW5nIGEuCitkb3VibGUgbGVuZ3RoT2ZSYXlJbnRlcnNlY3Rpb25XaXRoQm91bmRpbmdCb3goY29u
c3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0IHN0ZDo6cGFpcjxjb25zdCBGbG9hdFBv
aW50JiwgZmxvYXQ+IHJheSk7CisKKy8vIEdpdmVuIGEgYm94IGFuZCBhIHJheSAoZGVzY3JpYmVk
IGJ5IGFuIG9mZnNldCBmcm9tIHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIGJveCBhbmQgYW5n
bGUgZnJvbSB2ZXJ0aWNhbCBpbiBkZWdyZWVzKSwKKy8vIGNvbXB1dGUgdGhlIGNsb3Nlc3QgbGVu
Z3RoIGZyb20gdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIHRvIHRoZSBzaWRlIHRoYXQgdGhlIHJheSBp
bnRlcnNlY3RzIHdpdGguCitkb3VibGUgbGVuZ3RoT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9u
KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBzdGQ6OnBhaXI8Y29uc3QgRmxv
YXRQb2ludCYsIGZsb2F0PiByYXkpOworCisvLyBHaXZlbiBhIGJveCBhbmQgYSByYXkgKGRlc2Ny
aWJlZCBieSBhbiBvZmZzZXQgZnJvbSB0aGUgdG9wIGxlZnQgY29ybmVyIG9mIHRoZSBib3ggYW5k
IGFuZ2xlIGZyb20gdmVydGljYWwgaW4gZGVncmVlcykKKy8vIGNvbXB1dGUgdGhlIGFjdXRlIGFu
Z2xlIGJldHdlZW4gdGhlIHJheSBhbmQgdGhlIGxpbmUgc2VnbWVudCBmcm9tIHRoZSBzdGFydGlu
ZyBwb2ludCB0byB0aGUgY2xvc2VzdCBwb2ludCBvbiB0aGUKKy8vIHNpZGUgdGhhdCB0aGUgcmF5
IGludGVyc2VjdHMgd2l0aC4KK2Zsb2F0IGFuZ2xlT2ZQb2ludFRvU2lkZU9mSW50ZXJzZWN0aW9u
KGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBzdGQ6OnBhaXI8Y29uc3QgRmxv
YXRQb2ludCYsIGZsb2F0PiByYXkpOworCisvLyBHaXZlbiBhIGJveCBhbmQgYW4gb2Zmc2V0IGZy
b20gdGhlIHRvcCBsZWZ0IGNvcm5lciwgY2FsY3VsYXRlIHRoZSBkaXN0YW5jZSBvZiB0aGUgcG9p
bnQgZnJvbSBlYWNoIHNpZGUKK1JlY3RFZGdlczxkb3VibGU+IGRpc3RhbmNlT2ZQb2ludFRvU2lk
ZXNPZlJlY3QoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRQb2ludCYpOworZmxvYXQgdG9Q
b3NpdGl2ZUFuZ2xlKGZsb2F0IGFuZ2xlKTsKKwogc3RydWN0IFJvdGF0ZWRSZWN0IHsKICAgICBG
bG9hdFBvaW50IGNlbnRlcjsKICAgICBGbG9hdFNpemUgc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9QYXRoT3BlcmF0aW9uLmNwcAppbmRleCBmYTNiOWI2ZjVjNzljYzE3ZWYwZTA2MTk5
Njg1NmM3MDM3ZjYxZjhmLi43ZDY4OWEyZTQyNjg4M2NhNDAyZmU0MWI3YWRmN2M2N2QyZmFmYTY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uY3BwCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGF0aE9wZXJhdGlvbi5o
IgogCisjaW5jbHVkZSAiR2VvbWV0cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDQgKzQ5LDM2IEBAIGNvbnN0IFNWR0Vs
ZW1lbnQqIFJlZmVyZW5jZVBhdGhPcGVyYXRpb246OmVsZW1lbnQoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2VsZW1lbnQuZ2V0KCk7CiB9CisKK2RvdWJsZSBSYXlQYXRoT3BlcmF0aW9uOjpsZW5n
dGhGb3JQYXRoKCkgY29uc3QKK3sKKyAgICBhdXRvIGJvdW5kaW5nQm94ID0gbV9jb250YWluaW5n
QmxvY2tCb3VuZGluZ1JlY3Q7CisgICAgYXV0byBkaXN0YW5jZXMgPSBkaXN0YW5jZU9mUG9pbnRU
b1NpZGVzT2ZSZWN0KGJvdW5kaW5nQm94LCBtX3Bvc2l0aW9uKTsKKyAgICAKKyAgICBzd2l0Y2gg
KG1fc2l6ZSkgeworICAgIGNhc2UgU2l6ZTo6Q2xvc2VzdFNpZGU6CisgICAgICAgIHJldHVybiBz
dGQ6Om1pbiggeyBkaXN0YW5jZXMudG9wKCksIGRpc3RhbmNlcy5ib3R0b20oKSwgZGlzdGFuY2Vz
LmxlZnQoKSwgZGlzdGFuY2VzLnJpZ2h0KCkgfSApOworICAgIGNhc2UgU2l6ZTo6RmFydGhlc3RT
aWRlOgorICAgICAgICByZXR1cm4gc3RkOjptYXgoIHsgZGlzdGFuY2VzLnRvcCgpLCBkaXN0YW5j
ZXMuYm90dG9tKCksIGRpc3RhbmNlcy5sZWZ0KCksIGRpc3RhbmNlcy5yaWdodCgpIH0gKTsKKyAg
ICBjYXNlIFNpemU6OkZhcnRoZXN0Q29ybmVyOgorICAgICAgICByZXR1cm4gc3RkOjpzcXJ0KHN0
ZDo6cG93KHN0ZDo6bWF4KGRpc3RhbmNlcy5sZWZ0KCksIGRpc3RhbmNlcy5yaWdodCgpKSwgMikg
KyBzdGQ6OnBvdyhzdGQ6Om1heChkaXN0YW5jZXMudG9wKCksIGRpc3RhbmNlcy5ib3R0b20oKSks
IDIpKTsKKyAgICBjYXNlIFNpemU6OkNsb3Nlc3RDb3JuZXI6CisgICAgICAgIHJldHVybiBzdGQ6
OnNxcnQoc3RkOjpwb3coc3RkOjptaW4oZGlzdGFuY2VzLmxlZnQoKSwgZGlzdGFuY2VzLnJpZ2h0
KCkpLCAyKSArIHN0ZDo6cG93KHN0ZDo6bWluKGRpc3RhbmNlcy50b3AoKSwgZGlzdGFuY2VzLmJv
dHRvbSgpKSwgMikpOworICAgIGNhc2UgU2l6ZTo6U2lkZXM6CisgICAgICAgIHJldHVybiBsZW5n
dGhPZlJheUludGVyc2VjdGlvbldpdGhCb3VuZGluZ0JveChib3VuZGluZ0JveCwgc3RkOjptYWtl
X3BhaXIobV9wb3NpdGlvbiwgbV9hbmdsZSkpOworICAgIH0KK30KKworY29uc3QgUGF0aCBSYXlQ
YXRoT3BlcmF0aW9uOjpwYXRoRm9yUmVmZXJlbmNlUmVjdCgpIGNvbnN0Cit7CisgICAgUGF0aCBw
YXRoOworICAgIGlmIChtX2NvbnRhaW5pbmdCbG9ja0JvdW5kaW5nUmVjdC5pc1plcm8oKSkKKyAg
ICAgICAgcmV0dXJuIHBhdGg7CisgICAgYXV0byBsZW5ndGggPSBsZW5ndGhGb3JQYXRoKCk7Cisg
ICAgYXV0byByYWRpYW5zID0gZGVnMnJhZCh0b1Bvc2l0aXZlQW5nbGUobV9hbmdsZSkgLSA5MCk7
CisgICAgYXV0byBwb2ludCA9IEZsb2F0UG9pbnQoc3RkOjpjb3MocmFkaWFucykgKiBsZW5ndGgs
IHN0ZDo6c2luKHJhZGlhbnMpICogbGVuZ3RoKTsKKyAgICBwYXRoLmFkZExpbmVUbyhwb2ludCk7
CisgICAgcmV0dXJuIHBhdGg7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUGF0aE9wZXJhdGlvbi5oCmluZGV4IGQ2ZTAwOTk2ZmY4NzU5ZDE2Yjlm
ZDI3ZDdlNGFhODcwMTQzZTVkZWYuLjgyOTk4YjVlMTVkY2ViOTg3ZjhiNzA3M2IyNmRlZWQ3Mzli
NzBjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYXRoT3BlcmF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhdGhPcGVyYXRpb24uaApAQCAtMTk2
LDYgKzE5NiwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBSYXlQYXRoT3BlcmF0aW9uOjpj
cmVhdGUoV2ViQ29yZTo6YmxlbmQobV9hbmdsZSwgdG8ubV9hbmdsZSwgY29udGV4dCksIG1fc2l6
ZSwgbV9pc0NvbnRhaW5pbmcpOwogICAgIH0KIAorICAgIGNvbnN0IFBhdGggcGF0aEZvclJlZmVy
ZW5jZVJlY3QoKSBjb25zdDsKKyAgICBkb3VibGUgbGVuZ3RoRm9yUGF0aCgpIGNvbnN0OworICAg
IAorICAgIHZvaWQgc2V0Q29udGFpbmluZ0Jsb2NrUmVmZXJlbmNlUmVjdChjb25zdCBGbG9hdFJl
Y3QmIGJvdW5kaW5nUmVjdCkKKyAgICB7CisgICAgICAgIG1fY29udGFpbmluZ0Jsb2NrQm91bmRp
bmdSZWN0ID0gYm91bmRpbmdSZWN0OworICAgIH0KKyAgICB2b2lkIHNldFN0YXJ0aW5nUG9zaXRp
b24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCisgICAgeworICAgICAgICBtX3Bvc2l0aW9u
ID0gcG9zaXRpb247CisgICAgfQogcHJpdmF0ZToKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
UGF0aE9wZXJhdGlvbiYgb3RoZXIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpAQCAtMjE2LDkgKzIy
NywxMSBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICBmbG9hdCBtX2FuZ2xlOworICAg
IGZsb2F0IG1fYW5nbGUgeyAwIH07CiAgICAgU2l6ZSBtX3NpemU7Ci0gICAgYm9vbCBtX2lzQ29u
dGFpbmluZzsKKyAgICBib29sIG1faXNDb250YWluaW5nIHsgZmFsc2UgfTsKKyAgICBGbG9hdFJl
Y3QgbV9jb250YWluaW5nQmxvY2tCb3VuZGluZ1JlY3Q7CisgICAgRmxvYXRQb2ludCBtX3Bvc2l0
aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggYmI0ZDNhNGU0NjJiY2M5NzU2NmVmYmE0OWI4ZDE4Mzk3
OGNhNGEzYy4uMjU2YTM4MjdmOWRmY2YxNTA4YTVkYTAyOWM5ZGU5MTVhOGMxMDdjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xMzE3LDYgKzEzMTcsMzEg
QEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKFRyYW5zZm9ybWF0
aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnMKICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZSh0cmFu
c2Zvcm0sIGNhblJlbmRlcjNEVHJhbnNmb3JtcygpKTsKIH0KIAordm9pZCBSZW5kZXJMYXllcjo6
c2V0UmVmZXJlbmNlQm94Rm9yUGF0aE9wZXJhdGlvbnMoKQoreworICAgIGF1dG8gcGF0aE9wZXJh
dGlvbiA9IHJlbmRlcmVyKCkuc3R5bGUoKS5vZmZzZXRQYXRoKCk7CisgICAgaWYgKCFwYXRoT3Bl
cmF0aW9uKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGlzPEJveFBhdGhPcGVyYXRpb24+KHBh
dGhPcGVyYXRpb24pKSB7CisgICAgICAgIGF1dG8mIGJveFBhdGhPcGVyYXRpb24gPSBkb3duY2Fz
dDxCb3hQYXRoT3BlcmF0aW9uPigqcGF0aE9wZXJhdGlvbik7CisgICAgICAgIGF1dG8gcGF0aFJl
ZmVyZW5jZUJveFJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzSWZOZWVkZWQocmVuZGVyZXIo
KS5yZWZlcmVuY2VCb3hSZWN0KGJveFBhdGhPcGVyYXRpb24ucmVmZXJlbmNlQm94KCkpLCByZW5k
ZXJlcigpKTsKKyAgICAgICAgYm94UGF0aE9wZXJhdGlvbi5zZXRQYXRoRm9yUmVmZXJlbmNlUmVj
dChGbG9hdFJvdW5kZWRSZWN0IHsgcGF0aFJlZmVyZW5jZUJveFJlY3QgfSk7CisgICAgfSBlbHNl
IGlmIChpczxSYXlQYXRoT3BlcmF0aW9uPihwYXRoT3BlcmF0aW9uKSkgeworICAgICAgICBpZiAo
Y29uc3QgYXV0byogY29udGFpbmluZ0Jsb2NrID0gcmVuZGVyZXIoKS5jb250YWluaW5nQmxvY2so
KSkgeworICAgICAgICAgICAgYXV0byYgcmF5UGF0aE9wZXJhdGlvbiA9IGRvd25jYXN0PFJheVBh
dGhPcGVyYXRpb24+KCpwYXRoT3BlcmF0aW9uKTsKKyAgICAgICAgICAgIGF1dG8gcGF0aFJlZmVy
ZW5jZUJveFJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzSWZOZWVkZWQoY29udGFpbmluZ0Js
b2NrLT50cmFuc2Zvcm1SZWZlcmVuY2VCb3hSZWN0KGNvbnRhaW5pbmdCbG9jay0+c3R5bGUoKSks
IHJlbmRlcmVyKCkpOworICAgICAgICAgICAgaWYgKCFwYXRoUmVmZXJlbmNlQm94UmVjdC53aWR0
aCgpKQorICAgICAgICAgICAgICAgIHBhdGhSZWZlcmVuY2VCb3hSZWN0LnNldFdpZHRoKHBhdGhS
ZWZlcmVuY2VCb3hSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgICAgIGlmICghcGF0aFJlZmVyZW5j
ZUJveFJlY3QuaGVpZ2h0KCkpCisgICAgICAgICAgICAgICAgcGF0aFJlZmVyZW5jZUJveFJlY3Qu
c2V0SGVpZ2h0KHBhdGhSZWZlcmVuY2VCb3hSZWN0LndpZHRoKCkpOworICAgICAgICAgICAgcmF5
UGF0aE9wZXJhdGlvbi5zZXRDb250YWluaW5nQmxvY2tSZWZlcmVuY2VSZWN0KHBhdGhSZWZlcmVu
Y2VCb3hSZWN0KTsKKyAgICAgICAgICAgIGF1dG8gbGVmdCA9IHJlbmRlcmVyKCkuc3R5bGUoKS5s
ZWZ0KCk7CisgICAgICAgICAgICBhdXRvIHRvcCA9IHJlbmRlcmVyKCkuc3R5bGUoKS50b3AoKTsK
KyAgICAgICAgICAgIHJheVBhdGhPcGVyYXRpb24uc2V0U3RhcnRpbmdQb3NpdGlvbihGbG9hdFBv
aW50KGxlZnQuaXNQZXJjZW50KCkgPyBsZWZ0LnZhbHVlKCkgLyAxMDAgKiBwYXRoUmVmZXJlbmNl
Qm94UmVjdC53aWR0aCgpIDogbGVmdC52YWx1ZSgpLCB0b3AuaXNQZXJjZW50KCkgPyB0b3AudmFs
dWUoKSAvIDEwMCAqIHBhdGhSZWZlcmVuY2VCb3hSZWN0LmhlaWdodCgpIDogdG9wLnZhbHVlKCkp
KTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNm
b3JtKCkKIHsKICAgICBib29sIGhhc1RyYW5zZm9ybSA9IHJlbmRlcmVyKCkuaGFzVHJhbnNmb3Jt
KCk7CkBAIC0xMzM1LDEzICsxMzYwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNm
b3JtKCkKICAgICAKICAgICBpZiAoaGFzVHJhbnNmb3JtKSB7CiAgICAgICAgIG1fdHJhbnNmb3Jt
LT5tYWtlSWRlbnRpdHkoKTsKLQotICAgICAgICBpZiAoYXV0byBwYXRoT3BlcmF0aW9uID0gcmVu
ZGVyZXIoKS5zdHlsZSgpLm9mZnNldFBhdGgoKTsgcGF0aE9wZXJhdGlvbiAmJiBpczxCb3hQYXRo
T3BlcmF0aW9uPihwYXRoT3BlcmF0aW9uKSkgewotICAgICAgICAgICAgYXV0byYgYm94UGF0aE9w
ZXJhdGlvbiA9IGRvd25jYXN0PEJveFBhdGhPcGVyYXRpb24+KCpwYXRoT3BlcmF0aW9uKTsKLSAg
ICAgICAgICAgIGF1dG8gcGF0aFJlZmVyZW5jZUJveFJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4
ZWxzSWZOZWVkZWQocmVuZGVyZXIoKS5yZWZlcmVuY2VCb3hSZWN0KGJveFBhdGhPcGVyYXRpb24u
cmVmZXJlbmNlQm94KCkpLCByZW5kZXJlcigpKTsKLSAgICAgICAgICAgIGJveFBhdGhPcGVyYXRp
b24uc2V0UGF0aEZvclJlZmVyZW5jZVJlY3QoRmxvYXRSb3VuZGVkUmVjdCB7IHBhdGhSZWZlcmVu
Y2VCb3hSZWN0IH0pOwotICAgICAgICB9Ci0KKyAgICAgICAgc2V0UmVmZXJlbmNlQm94Rm9yUGF0
aE9wZXJhdGlvbnMoKTsKICAgICAgICAgdXBkYXRlVHJhbnNmb3JtRnJvbVN0eWxlKCptX3RyYW5z
Zm9ybSwgcmVuZGVyZXIoKS5zdHlsZSgpLCBSZW5kZXJTdHlsZTo6YWxsVHJhbnNmb3JtT3BlcmF0
aW9ucyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4
IDgwNDc2MWE4ZjkyMDAwNGU4ZmRkNDI3ZTE4ZDRhNzk4NDUxMzFiOWQuLmU1MWUzMWE5MDIxNjU1
ODYwNDFiOWJjODYwMTVhNmY2NWY5MDFiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCkBAIC01MDksNiArNTA5LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9l
bmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIuZ2V0KCk7CiAgICAgfQogCisgICAgdm9pZCBzZXRSZWZl
cmVuY2VCb3hGb3JQYXRoT3BlcmF0aW9ucygpOwogICAgIHZvaWQgdXBkYXRlVHJhbnNmb3JtKCk7
CiAgICAgCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDliNjhlN2JmZjcwMTgwZmRkNzJi
Y2I3NjkzZTZhYTJiMTMyMzUwMzguLjlhMDAwNjM0YTgwZWFhZDk5NTVkODljODhmMzBkNTNiMTU0
YTQzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcApAQCAtMTUzOCw4ICsxNTM4LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UGF0aD4gZ2V0
UGF0aEZyb21QYXRoT3BlcmF0aW9uKGNvbnN0IEZsb2F0UmVjdCYgYm94LCBjb25zdAogICAgIGNh
c2UgUGF0aE9wZXJhdGlvbjo6Qm94OgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8Qm94UGF0aE9w
ZXJhdGlvbj4ob3BlcmF0aW9uKS5nZXRQYXRoKCk7CiAgICAgY2FzZSBQYXRoT3BlcmF0aW9uOjpS
YXk6Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcmF5LSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzQ0Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgICAgIHJldHVybiBkb3duY2FzdDxSYXlQYXRoT3BlcmF0aW9uPihvcGVyYXRpb24pLnBh
dGhGb3JSZWZlcmVuY2VSZWN0KCk7CiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZTYwZTg0NzZjODg1ZmM1NGJlNTA4YjNlNDVkNjhjMTQyMWY2NjVk
Ni4uOTdkZGRjYjcwMzVjZTE2MmM0ZDgxYWI1OTlhZDBjZDhiYmQ5Y2RkNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDIyLTA1LTA0ICBOaWtvbGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNA
YXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgcmF5KCkgc2hhcGUgaW4gb2Zmc2V0LXBhdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzM0NAor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIFRlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMjItMDQtMjggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBEZWJ1ZyB3azIgXSBUaGlydGVlbiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVk
aWEtZWxlbWVudHMvIGFyZSBhIGZsYWt5IGNyYXNoIChBU1NFUlRJT04gRkFJTEVEOiB3aWxsQmVD
b21wb3NpdGVkID09IG5lZWRzVG9CZUNvbXBvc2l0ZWQobGF5ZXIsIHF1ZXJ5RGF0YSkpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCA0ZDIyNTg1YTQzZDhkZjE2MDNkNThhZWQ4MGZkNjU5MGIzZWIxMDAz
Li5hNTRiNjUwNTg5MzNjMmM0ZDZkYjAxYWIzMDg2ODNhOWQ1ZjgyMzBkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTUwNzIsMjMgKzUwNzIsMTUgQEAgd2Via2l0Lm9yZy9iLzIzMzM0MCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LWFuY2hvci10cmEKIHdl
YmtpdC5vcmcvYi8yMzMzNDAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90
aW9uL29mZnNldC1hbmNob3ItdHJhbnNmb3JtLWJveC1maWxsLWJveC0wMDIuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIzMzM0MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LWFuY2hvci10cmFuc2Zvcm0tYm94LWZpbGwtYm94
LTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLSMgQ1NTIG1vdGlvbiBwYXRoIHRoYXQg
ZGVwZW5kcyBvbiByYXkoKSwgY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZC4KLXdlYmtpdC5vcmcv
Yi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNl
dC1wYXRoLXJheS0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIz
MzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBh
dGgtcmF5LTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMzMzQ0
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1y
YXktMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzMzNDQgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJheS0w
MDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LTAwNS5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktMDA2Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KKyMgQ1NTIG1vdGlvbiBwYXRoIHJheSB0ZXN0IGZhaWxpbmcg
ZHVlIHRvIGdldHRpbmcgd3Jvbmcgc2l6ZSBmcm9tIGNvbnRhaW5pbmcgYmxvY2suCiB3ZWJraXQu
b3JnL2IvMjMzMzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9v
ZmZzZXQtcGF0aC1yYXktMDA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNl
dC1wYXRoLXJheS0wMDguaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIz
MzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBh
dGgtcmF5LTAwOS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCisKKyMgQ1NTIG1vdGlvbiBwYXRo
IG5lZWRzIHRvIGltcGxlbWVudCBjb250YWluIGZvciByYXk6IGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyNTkuCiB3ZWJraXQub3JnL2IvMjMzMzQ0IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0aC1yYXktY29udGFp
bi0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIzMzM0NCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0LXBhdGgtcmF5LWNv
bnRhaW4tMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMzMzNDQg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1wYXRoLXJh
eS1jb250YWluLTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjMz
MzQ0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL21vdGlvbi9vZmZzZXQtcGF0
aC1yYXktY29udGFpbi0wMDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9i
LzIzMzM0NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tb3Rpb24vb2Zmc2V0
LXBhdGgtcmF5LWNvbnRhaW4tMDA1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29m
ZnNldC1yb3RhdGUtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8y
MzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1y
b3RhdGUtMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyBJUEMgdGVzdCBmYWlsaW5n
IGluIERlYnVnIG1vZGUgZHVlIHRvIGFzc2VydC4KIFsgRGVidWcgXSBpcGMvc2VuZC1pbnZhbGlk
LW1lc3NhZ2UuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBlMWYyNTdjYjM5ZjhmZTczNDIzYTk3MGYyOGFlMmEzODM4ZWFmNjdhLi5m
ZjcxZTE2OWJjMzJkMjhjMzA4ODMwODYyM2FjMmRhYmI4MTAwNDg5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTg1Miw2ICsxODUyLDkgQEAgd2Via2l0
Lm9yZy9iLzE2MDExOSBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWZpeGVkLWNo
aWxkLmh0bWwgWyBGYWlsdXIKICMgVU5TT1JURUQgRXhwZWN0YXRpb25zLiBXaGVuIGluIGRvdWJ0
LCBwdXQgaXQgaGVyZS4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKK3dlYmtp
dC5vcmcvYi8yNDAyNzAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9u
L29mZnNldC1yb3RhdGUtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcv
Yi8yNDAyNzAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNl
dC1yb3RhdGUtMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKwogYWNjZXNzaWJpbGl0eS9k
aWFsb2ctcHJvcGVydGllcy5odG1sIFsgU2tpcCBdCiBhY2Nlc3NpYmlsaXR5L2lnbm9yZWQtYXJp
YS1yb2xlLWRlc2NyaXB0aW9uLmh0bWwgWyBTa2lwIF0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>