<?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>189624</bug_id>
          
          <creation_ts>2018-09-14 10:50:56 -0700</creation_ts>
          <short_desc>[IntersectionObserver] Handle zero-area intersections</short_desc>
          <delta_ts>2018-10-19 06:48:28 -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>Layout and Rendering</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>189833</dependson>
          <blocked>159475</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ali Juma">ajuma</reporter>
          <assigned_to name="Ali Juma">ajuma</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1459790</commentid>
    <comment_count>0</comment_count>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-09-14 10:50:56 -0700</bug_when>
    <thetext>Use edge-inclusive intersection so that two rects that touch each other are considered intersecting even if the area of their intersection is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459799</commentid>
    <comment_count>1</comment_count>
      <attachid>349778</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-09-14 11:01:40 -0700</bug_when>
    <thetext>Created attachment 349778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459862</commentid>
    <comment_count>2</comment_count>
      <attachid>349778</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-14 13:32:22 -0700</bug_when>
    <thetext>Comment on attachment 349778
Patch

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

&gt; Source/WebCore/dom/Document.cpp:7500
&gt; +static bool computeIntersectionRects(FrameView&amp; frameView, IntersectionObserver&amp; observer, Element&amp; target, FloatRect&amp; absTargetRect, FloatRect&amp; absIntersectionRect, FloatRect&amp; absRootBounds, bool&amp; isIntersecting)

Please add a comment saying what the return value means. Or maybe you can use an optional&lt;&gt; return value?

&gt; Source/WebCore/dom/Document.cpp:7541
&gt; +    FloatRect rootLocalIntersectionRect = targetRenderer-&gt;computeRectForRepaint(localTargetBounds, rootRenderer, {false /* hasPositionFixedDescendant */, false /* dirtyRectIsFlipped */, true /* useEdgeInclusiveIntersection */}, &amp;isIntersecting);

I know we were using computeRectForRepaint before, but it&apos;s wrong to complexify all the repaint logic with edge intersection for this purpose. The name &quot;computeRectForRepaint&quot; makes it clear that the function is about repaint; we should not be piggy-backing on it for intersection observer (we may want to change how repaint works in future, so we should not make intersection observer dependent on the repaint code).

You need to factor the &quot;compute repaint rect&quot; code into functions that you can call for intersection observer, and can be used by our current repaint logic.

&gt; Source/WebCore/dom/Document.cpp:7589
&gt; +                intersectionRatio = 1;

This is really confusing. Is this the &quot;touching&quot; rects case? Why would intersectionRatio be 1 if they just touch?

&gt; Source/WebCore/dom/Document.cpp:7606
&gt; +                    clientIntersectionRect = isIntersecting ? frameView-&gt;absoluteToClientRect(absIntersectionRect) : FloatRect();

&quot;: FloatRect()&quot; can be &quot;:  { }&quot;

&gt; Source/WebCore/platform/graphics/LayoutRect.cpp:77
&gt; +    LayoutPoint newLocation(std::max(x(), other.x()), std::max(y(), other.y()));
&gt; +    LayoutPoint newMaxPoint(std::min(maxX(), other.maxX()), std::min(maxY(), other.maxY()));

Shame that this code looks different than the FloatRect code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466068</commentid>
    <comment_count>3</comment_count>
      <attachid>351522</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-10-03 08:28:00 -0700</bug_when>
    <thetext>Created attachment 351522
Patch (depends on bug 189833)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466073</commentid>
    <comment_count>4</comment_count>
      <attachid>349778</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-10-03 08:39:13 -0700</bug_when>
    <thetext>Comment on attachment 349778
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:7500
&gt;&gt; +static bool computeIntersectionRects(FrameView&amp; frameView, IntersectionObserver&amp; observer, Element&amp; target, FloatRect&amp; absTargetRect, FloatRect&amp; absIntersectionRect, FloatRect&amp; absRootBounds, bool&amp; isIntersecting)
&gt; 
&gt; Please add a comment saying what the return value means. Or maybe you can use an optional&lt;&gt; return value?

Changed to using an optional&lt;&gt; return value.

&gt;&gt; Source/WebCore/dom/Document.cpp:7589
&gt;&gt; +                intersectionRatio = 1;
&gt; 
&gt; This is really confusing. Is this the &quot;touching&quot; rects case? Why would intersectionRatio be 1 if they just touch?

This is the case of a target whose width or height is zero (so its area is zero). In this case, we can&apos;t compute the intersection ratio in the usual way because of division-by-zero, so the spec defines it to be 1 if the target intersects the root and 0 otherwise. I&apos;ve reorganized this code a bit to try to make it clearer.

&gt;&gt; Source/WebCore/dom/Document.cpp:7606
&gt;&gt; +                    clientIntersectionRect = isIntersecting ? frameView-&gt;absoluteToClientRect(absIntersectionRect) : FloatRect();
&gt; 
&gt; &quot;: FloatRect()&quot; can be &quot;:  { }&quot;

The compiler doesn&apos;t like this (&quot;Initializer list cannot be used on the right hand side of operator &apos;?&apos;&quot;). So changed to using an if statement (clientIntersectionRect is already the empty rect to begin with).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468233</commentid>
    <comment_count>5</comment_count>
      <attachid>351522</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-10-11 16:22:09 -0700</bug_when>
    <thetext>Comment on attachment 351522
Patch (depends on bug 189833)

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

&gt; Source/WebCore/dom/Document.cpp:7521
&gt; +    bool isIntersecting;

Initialize isIntersecting with { false }?

&gt; Source/WebCore/dom/Document.cpp:7524
&gt; +static std::optional&lt;IntersectionObservationState&gt; computeIntersectionState(FrameView&amp; frameView, IntersectionObserver&amp; observer, Element&amp; target)

Can observer be a const&amp;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470697</commentid>
    <comment_count>6</comment_count>
      <attachid>352736</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-10-18 14:51:45 -0700</bug_when>
    <thetext>Created attachment 352736
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470851</commentid>
    <comment_count>7</comment_count>
      <attachid>352736</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-19 06:47:34 -0700</bug_when>
    <thetext>Comment on attachment 352736
Patch for landing

Clearing flags on attachment: 352736

Committed r237284: &lt;https://trac.webkit.org/changeset/237284&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470852</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-19 06:47:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470853</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-19 06:48:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/45404221&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349778</attachid>
            <date>2018-09-14 11:01:40 -0700</date>
            <delta_ts>2018-10-03 08:27:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189624-20180914140138.patch</filename>
            <type>text/plain</type>
            <size>56029</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1OTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjIzNzM0NjY4MmEyMTc2
MTlmNDlhMDZmNzViYWQ4ZGI1ZGY4ZWYzZS4uZTJjYTI1ZmU5YmMwOGQ2MTM1YTlmNmMzNTdhYmYz
ZTA1NTEyOGMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE4LTA5LTE0ICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICBbSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJdIEhhbmRsZSB6ZXJvLWFyZWEgaW50ZXJzZWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGVkZ2UtaW5jbHVzaXZlIGludGVyc2VjdGlv
biB3aGVuIGFwcGx5aW5nIGNsaXBzIGFuZCBpbnRlcnNlY3Rpbmcgd2l0aCB0aGUKKyAgICAgICAg
cm9vdCwgc28gdGhhdCB0d28gcmVjdHMgdGhhdCB0b3VjaCBlYWNoIG90aGVyIGFyZSBjb25zaWRl
cmVkIGludGVyc2VjdGluZyBldmVuCisgICAgICAgIGlmIHRoZSBhcmVhIG9mIHRoZWlyIGludGVy
c2VjdGlvbiBpcyAwLgorCisgICAgICAgIENvdmVyZWQgYnkgcmViYXNlZCB0ZXN0cyBpbiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci4KKworICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlSW50ZXJz
ZWN0aW9uUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUludGVyc2Vj
dGlvbk9ic2VydmF0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0UmVjdDo6ZWRnZUluY2x1c2l2ZUludGVyc2Vj
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXRSZWN0OjplZGdlSW5jbHVzaXZlSW50ZXJzZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9MYXlvdXRSZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmFwcGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbFBvc2l0
aW9uRm9yUmVwYWludCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1
dGVSZWN0Rm9yUmVwYWludCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBh
aW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29tcHV0ZUZsb2F0
UmVjdEZvclJlcGFpbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UmVwYWludENvbnRleHQ6OlJlcGFp
bnRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29tcHV0ZVJlY3RG
b3JSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50IGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Vmlldy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpjb21wdXRlRmxv
YXRSZWN0Rm9yUmVwYWludCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdGb3Jl
aWduT2JqZWN0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGlu
ZTo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVj
dDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6Y29tcHV0
ZUZsb2F0UmVjdEZvclJlcGFpbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6Y29tcHV0ZUZsb2F0UmVj
dEZvclJlcGFpbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4
dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWlu
dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0Lmg6CisKIDIwMTgt
MDktMTIgIEFsaSBKdW1hICA8YWp1bWFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtJbnRlcnNl
Y3Rpb25PYnNlcnZlcl0gSW1wbGVtZW50IHJvb3RNYXJnaW4gZXhwYW5zaW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCA1MWY2NjBlMjE2NjZjYjcyY2I5OTE0YWFkOTM4NWRhMmQ5YWZiYzYx
Li40NjIyOTVkZWE2MTljMjRiN2U2NDBiNTExMDUyMDc3Y2U0M2ZiNzYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTc0OTcsMjUgKzc0OTcsMjUgQEAgc3RhdGljIHZvaWQgZXhwYW5kUm9v
dEJvdW5kc1dpdGhSb290TWFyZ2luKEZsb2F0UmVjdCYgbG9jYWxSb290Qm91bmRzLCBjb25zdCBM
ZW4KICAgICBsb2NhbFJvb3RCb3VuZHMuZXhwYW5kKHJvb3RNYXJnaW5GbG9hdEJveCk7CiB9CiAK
LXN0YXRpYyB2b2lkIGNvbXB1dGVJbnRlcnNlY3Rpb25SZWN0cyhGcmFtZVZpZXcmIGZyYW1lVmll
dywgSW50ZXJzZWN0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBFbGVtZW50JiB0YXJnZXQsIEZsb2F0
UmVjdCYgYWJzVGFyZ2V0UmVjdCwgRmxvYXRSZWN0JiBhYnNJbnRlcnNlY3Rpb25SZWN0LCBGbG9h
dFJlY3QmIGFic1Jvb3RCb3VuZHMpCitzdGF0aWMgYm9vbCBjb21wdXRlSW50ZXJzZWN0aW9uUmVj
dHMoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIEludGVyc2VjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwg
RWxlbWVudCYgdGFyZ2V0LCBGbG9hdFJlY3QmIGFic1RhcmdldFJlY3QsIEZsb2F0UmVjdCYgYWJz
SW50ZXJzZWN0aW9uUmVjdCwgRmxvYXRSZWN0JiBhYnNSb290Qm91bmRzLCBib29sJiBpc0ludGVy
c2VjdGluZykKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGludGVyc2VjdGlvbiBjb21wdXRh
dGlvbiBmb3IgdGhlIGNyb3NzLWRvY3VtZW50IGNhc2UuCiAgICAgaWYgKG9ic2VydmVyLnRyYWNr
aW5nRG9jdW1lbnQoKSAhPSAmdGFyZ2V0LmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byogdGFyZ2V0UmVuZGVyZXIgPSB0YXJnZXQu
cmVuZGVyZXIoKTsKICAgICBpZiAoIXRhcmdldFJlbmRlcmVyKQotICAgICAgICByZXR1cm47Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEZsb2F0UmVjdCBsb2NhbFJvb3RCb3VuZHM7CiAg
ICAgUmVuZGVyQmxvY2sqIHJvb3RSZW5kZXJlcjsKICAgICBpZiAob2JzZXJ2ZXIucm9vdCgpKSB7
CiAgICAgICAgIGlmICghb2JzZXJ2ZXIucm9vdCgpLT5yZW5kZXJlcigpIHx8ICFpczxSZW5kZXJC
bG9jaz4ob2JzZXJ2ZXIucm9vdCgpLT5yZW5kZXJlcigpKSkKLSAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICByb290UmVuZGVyZXIgPSBkb3du
Y2FzdDxSZW5kZXJCbG9jaz4ob2JzZXJ2ZXIucm9vdCgpLT5yZW5kZXJlcigpKTsKICAgICAgICAg
aWYgKCFyb290UmVuZGVyZXItPmlzQ29udGFpbmluZ0Jsb2NrQW5jZXN0b3JGb3IoKnRhcmdldFJl
bmRlcmVyKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICAgICBpZiAocm9vdFJlbmRlcmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkKICAgICAgICAg
ICAgIGxvY2FsUm9vdEJvdW5kcyA9IHJvb3RSZW5kZXJlci0+Y29udGVudEJveFJlY3QoKTsKQEAg
LTc1MzcsMTQgKzc1MzcsMTYgQEAgc3RhdGljIHZvaWQgY29tcHV0ZUludGVyc2VjdGlvblJlY3Rz
KEZyYW1lVmlldyYgZnJhbWVWaWV3LCBJbnRlcnNlY3Rpb25PYnNlcnZlciYKICAgICBlbHNlIGlm
IChpczxSZW5kZXJMaW5lQnJlYWs+KHRhcmdldFJlbmRlcmVyKSkKICAgICAgICAgbG9jYWxUYXJn
ZXRCb3VuZHMgPSBkb3duY2FzdDxSZW5kZXJMaW5lQnJlYWs+KHRhcmdldFJlbmRlcmVyKS0+bGlu
ZXNCb3VuZGluZ0JveCgpOwogCi0gICAgRmxvYXRSZWN0IHJvb3RMb2NhbEludGVyc2VjdGlvblJl
Y3QgPSB0YXJnZXRSZW5kZXJlci0+Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGxvY2FsVGFyZ2V0Qm91
bmRzLCByb290UmVuZGVyZXIpOwotICAgIHJvb3RMb2NhbEludGVyc2VjdGlvblJlY3QuaW50ZXJz
ZWN0KGxvY2FsUm9vdEJvdW5kcyk7CisgICAgaXNJbnRlcnNlY3RpbmcgPSB0cnVlOworICAgIEZs
b2F0UmVjdCByb290TG9jYWxJbnRlcnNlY3Rpb25SZWN0ID0gdGFyZ2V0UmVuZGVyZXItPmNvbXB1
dGVSZWN0Rm9yUmVwYWludChsb2NhbFRhcmdldEJvdW5kcywgcm9vdFJlbmRlcmVyLCB7ZmFsc2Ug
LyogaGFzUG9zaXRpb25GaXhlZERlc2NlbmRhbnQgKi8sIGZhbHNlIC8qIGRpcnR5UmVjdElzRmxp
cHBlZCAqLywgdHJ1ZSAvKiB1c2VFZGdlSW5jbHVzaXZlSW50ZXJzZWN0aW9uICovfSwgJmlzSW50
ZXJzZWN0aW5nKTsKKyAgICBpc0ludGVyc2VjdGluZyA9IGlzSW50ZXJzZWN0aW5nICYmIHJvb3RM
b2NhbEludGVyc2VjdGlvblJlY3QuZWRnZUluY2x1c2l2ZUludGVyc2VjdChsb2NhbFJvb3RCb3Vu
ZHMpOwogCi0gICAgaWYgKCFyb290TG9jYWxJbnRlcnNlY3Rpb25SZWN0LmlzRW1wdHkoKSkKKyAg
ICBpZiAoaXNJbnRlcnNlY3RpbmcpCiAgICAgICAgIGFic0ludGVyc2VjdGlvblJlY3QgPSByb290
UmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQocm9vdExvY2FsSW50ZXJzZWN0aW9uUmVjdCku
Ym91bmRpbmdCb3goKTsKIAogICAgIGFic1RhcmdldFJlY3QgPSB0YXJnZXRSZW5kZXJlci0+bG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxUYXJnZXRCb3VuZHMpKS5ib3VuZGluZ0Jv
eCgpOwogICAgIGFic1Jvb3RCb3VuZHMgPSByb290UmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1
YWQobG9jYWxSb290Qm91bmRzKS5ib3VuZGluZ0JveCgpOworICAgIHJldHVybiB0cnVlOwogfQog
CiB2b2lkIERvY3VtZW50Ojp1cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMoKQpAQCAtNzU3
NiwxMSArNzU3OCwxOCBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZh
dGlvbnMoKQogICAgICAgICAgICAgRmxvYXRSZWN0IGFic1RhcmdldFJlY3Q7CiAgICAgICAgICAg
ICBGbG9hdFJlY3QgYWJzSW50ZXJzZWN0aW9uUmVjdDsKICAgICAgICAgICAgIEZsb2F0UmVjdCBh
YnNSb290Qm91bmRzOwotICAgICAgICAgICAgY29tcHV0ZUludGVyc2VjdGlvblJlY3RzKCpmcmFt
ZVZpZXcsICpvYnNlcnZlciwgKnRhcmdldCwgYWJzVGFyZ2V0UmVjdCwgYWJzSW50ZXJzZWN0aW9u
UmVjdCwgYWJzUm9vdEJvdW5kcyk7CisgICAgICAgICAgICBib29sIGlzSW50ZXJzZWN0aW5nID0g
ZmFsc2U7CisgICAgICAgICAgICBib29sIGNvbXB1dGVkSW50ZXJzZWN0aW9uID0gY29tcHV0ZUlu
dGVyc2VjdGlvblJlY3RzKCpmcmFtZVZpZXcsICpvYnNlcnZlciwgKnRhcmdldCwgYWJzVGFyZ2V0
UmVjdCwgYWJzSW50ZXJzZWN0aW9uUmVjdCwgYWJzUm9vdEJvdW5kcywgaXNJbnRlcnNlY3Rpbmcp
OworCisgICAgICAgICAgICBmbG9hdCBpbnRlcnNlY3Rpb25SYXRpbzsKKyAgICAgICAgICAgIGZs
b2F0IGFic1RhcmdldEFyZWEgPSBhYnNUYXJnZXRSZWN0LmFyZWEoKTsKKyAgICAgICAgICAgIGlm
IChhYnNUYXJnZXRBcmVhKQorICAgICAgICAgICAgICAgIGludGVyc2VjdGlvblJhdGlvID0gYWJz
SW50ZXJzZWN0aW9uUmVjdC5hcmVhKCkgLyBhYnNUYXJnZXRBcmVhOworICAgICAgICAgICAgZWxz
ZSBpZiAoaXNJbnRlcnNlY3RpbmcpCisgICAgICAgICAgICAgICAgaW50ZXJzZWN0aW9uUmF0aW8g
PSAxOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGludGVyc2VjdGlvblJhdGlv
ID0gMDsKIAotICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSB6ZXJvLWFyZWEgaW50ZXJzZWN0
aW9ucyAoZS5nLiwgaW50ZXJzZWN0aW9ucyBpbnZvbHZpbmcgemVyby1hcmVhIHRhcmdldHMpLgot
ICAgICAgICAgICAgYm9vbCBpc0ludGVyc2VjdGluZyA9IGFic0ludGVyc2VjdGlvblJlY3QuYXJl
YSgpOwotICAgICAgICAgICAgZmxvYXQgaW50ZXJzZWN0aW9uUmF0aW8gPSBpc0ludGVyc2VjdGlu
ZyA/IGFic0ludGVyc2VjdGlvblJlY3QuYXJlYSgpIC8gYWJzVGFyZ2V0UmVjdC5hcmVhKCkgOiAw
OwogICAgICAgICAgICAgc2l6ZV90IHRocmVzaG9sZEluZGV4ID0gMDsKICAgICAgICAgICAgIGlm
IChpc0ludGVyc2VjdGluZykgewogICAgICAgICAgICAgICAgIGF1dG8mIHRocmVzaG9sZHMgPSBv
YnNlcnZlci0+dGhyZXNob2xkcygpOwpAQCAtNzU4OSwxMiArNzU5OCwxNyBAQCB2b2lkIERvY3Vt
ZW50Ojp1cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMoKQogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBpZiAoIXJlZ2lzdHJhdGlvbi5wcmV2aW91c1RocmVzaG9sZEluZGV4IHx8IHRo
cmVzaG9sZEluZGV4ICE9IHJlZ2lzdHJhdGlvbi5wcmV2aW91c1RocmVzaG9sZEluZGV4KSB7Ci0g
ICAgICAgICAgICAgICAgRmxvYXRSZWN0IHRhcmdldEJvdW5kaW5nQ2xpZW50UmVjdCA9IGZyYW1l
Vmlldy0+YWJzb2x1dGVUb0NsaWVudFJlY3QoYWJzVGFyZ2V0UmVjdCk7Ci0gICAgICAgICAgICAg
ICAgRmxvYXRSZWN0IGNsaWVudEludGVyc2VjdGlvblJlY3QgPSBpc0ludGVyc2VjdGluZyA/IGZy
YW1lVmlldy0+YWJzb2x1dGVUb0NsaWVudFJlY3QoYWJzSW50ZXJzZWN0aW9uUmVjdCkgOiBGbG9h
dFJlY3QoKTsKKyAgICAgICAgICAgICAgICBGbG9hdFJlY3QgdGFyZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0OworICAgICAgICAgICAgICAgIEZsb2F0UmVjdCBjbGllbnRJbnRlcnNlY3Rpb25SZWN0Owor
ICAgICAgICAgICAgICAgIEZsb2F0UmVjdCBjbGllbnRSb290Qm91bmRzOworICAgICAgICAgICAg
ICAgIGlmIChjb21wdXRlZEludGVyc2VjdGlvbikgeworICAgICAgICAgICAgICAgICAgICB0YXJn
ZXRCb3VuZGluZ0NsaWVudFJlY3QgPSBmcmFtZVZpZXctPmFic29sdXRlVG9DbGllbnRSZWN0KGFi
c1RhcmdldFJlY3QpOworICAgICAgICAgICAgICAgICAgICBjbGllbnRJbnRlcnNlY3Rpb25SZWN0
ID0gaXNJbnRlcnNlY3RpbmcgPyBmcmFtZVZpZXctPmFic29sdXRlVG9DbGllbnRSZWN0KGFic0lu
dGVyc2VjdGlvblJlY3QpIDogRmxvYXRSZWN0KCk7CisgICAgICAgICAgICAgICAgICAgIGNsaWVu
dFJvb3RCb3VuZHMgPSBmcmFtZVZpZXctPmFic29sdXRlVG9DbGllbnRSZWN0KGFic1Jvb3RCb3Vu
ZHMpOworICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBPbmNl
IGNyb3NzLWRvY3VtZW50IG9ic2VydmF0aW9uIGlzIGltcGxlbWVudGVkLCBvbmx5IHJlcG9ydCBy
b290IGJvdW5kcyBpZiB0aGUgdGFyZ2V0IGRvY3VtZW50IGFuZAogICAgICAgICAgICAgICAgIC8v
IHRoZSByb290IGRvY3VtZW50IGFyZSBzaW1pbGFyLW9yaWdpbi4KLSAgICAgICAgICAgICAgICBG
bG9hdFJlY3QgY2xpZW50Um9vdEJvdW5kcyA9IGZyYW1lVmlldy0+YWJzb2x1dGVUb0NsaWVudFJl
Y3QoYWJzUm9vdEJvdW5kcyk7CiAgICAgICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxET01SZWN0
SW5pdD4gcmVwb3J0ZWRSb290Qm91bmRzID0gRE9NUmVjdEluaXQoewogICAgICAgICAgICAgICAg
ICAgICBjbGllbnRSb290Qm91bmRzLngoKSwKICAgICAgICAgICAgICAgICAgICAgY2xpZW50Um9v
dEJvdW5kcy55KCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFJlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRS
ZWN0LmNwcAppbmRleCBlYjE2NTE4MmI3YmVjNDFjOTBkOWE4MmUzZGQ1NjIzZjgxNDM5MTIzLi40
YTU5MGQyMWFjZjQ2MjJlOTc3OWI0ZDJlOGZiZTFjYjU3MDBkZTIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKQEAgLTkzLDYgKzkzLDI3IEBA
IHZvaWQgRmxvYXRSZWN0OjppbnRlcnNlY3QoY29uc3QgRmxvYXRSZWN0JiBvdGhlcikKICAgICBz
ZXRMb2NhdGlvbkFuZFNpemVGcm9tRWRnZXMobCwgdCwgciwgYik7CiB9CiAKK2Jvb2wgRmxvYXRS
ZWN0OjplZGdlSW5jbHVzaXZlSW50ZXJzZWN0KGNvbnN0IEZsb2F0UmVjdCYgb3RoZXIpCit7Cisg
ICAgZmxvYXQgbGVmdCA9IHN0ZDo6bWF4KHgoKSwgb3RoZXIueCgpKTsKKyAgICBmbG9hdCB0b3Ag
PSBzdGQ6Om1heCh5KCksIG90aGVyLnkoKSk7CisgICAgZmxvYXQgcmlnaHQgPSBzdGQ6Om1pbiht
YXhYKCksIG90aGVyLm1heFgoKSk7CisgICAgZmxvYXQgYm90dG9tID0gc3RkOjptaW4obWF4WSgp
LCBvdGhlci5tYXhZKCkpOworICAgIGJvb2wgaW50ZXJzZWN0cyA9IHRydWU7CisKKyAgICAvLyBS
ZXR1cm4gYSBjbGVhbiBlbXB0eSByZWN0YW5nbGUgZm9yIG5vbi1pbnRlcnNlY3RpbmcgY2FzZXMu
CisgICAgaWYgKGxlZnQgPiByaWdodCB8fCB0b3AgPiBib3R0b20pIHsKKyAgICAgICAgbGVmdCA9
IDA7CisgICAgICAgIHRvcCA9IDA7CisgICAgICAgIHJpZ2h0ID0gMDsKKyAgICAgICAgYm90dG9t
ID0gMDsKKyAgICAgICAgaW50ZXJzZWN0cyA9IGZhbHNlOworICAgIH0KKworICAgIHNldExvY2F0
aW9uQW5kU2l6ZUZyb21FZGdlcyhsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pOworICAgIHJldHVy
biBpbnRlcnNlY3RzOworfQorCiB2b2lkIEZsb2F0UmVjdDo6dW5pdGUoY29uc3QgRmxvYXRSZWN0
JiBvdGhlcikKIHsKICAgICAvLyBIYW5kbGUgZW1wdHkgc3BlY2lhbCBjYXNlcyBmaXJzdC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmgKaW5kZXggOTNhY2Fk
NTM2MTg1YTZjODllMGEzZTg4ODU4YWU2OWU1ODJjZDNlMy4uMzMxNzBlYmM0NTZiZTg0NmIzMTdh
YzEzNGMzMTUwNDVkNzY1ZTNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRSZWN0LmgKQEAgLTE1MSw2ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBjb250YWlucyhjb25zdCBGbG9hdFBvaW50JiwgQ29udGFpbnNNb2RlID0gSW5z
aWRlT3JPblN0cm9rZSkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGludGVyc2Vj
dChjb25zdCBGbG9hdFJlY3QmKTsKKyAgICBib29sIGVkZ2VJbmNsdXNpdmVJbnRlcnNlY3QoY29u
c3QgRmxvYXRSZWN0Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bml0ZShjb25zdCBGbG9h
dFJlY3QmKTsKICAgICB2b2lkIHVuaXRlRXZlbklmRW1wdHkoY29uc3QgRmxvYXRSZWN0Jik7CiAg
ICAgdm9pZCB1bml0ZUlmTm9uWmVybyhjb25zdCBGbG9hdFJlY3QmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5jcHAKaW5kZXggZmQwYjY5OTRjMzM0
ZDI1Njk2ODJlMjM0MGExYjUxOTY5MTE5YjM0MS4uZmVkZGFiNjBkNTYyYzNjM2VkNDA4ZjczNGI4
MTZlZWMwMmY0Nzc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTGF5b3V0UmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TGF5b3V0UmVjdC5jcHAKQEAgLTcxLDYgKzcxLDI0IEBAIHZvaWQgTGF5b3V0UmVjdDo6aW50ZXJz
ZWN0KGNvbnN0IExheW91dFJlY3QmIG90aGVyKQogICAgIG1fc2l6ZSA9IG5ld01heFBvaW50IC0g
bmV3TG9jYXRpb247CiB9CiAKK2Jvb2wgTGF5b3V0UmVjdDo6ZWRnZUluY2x1c2l2ZUludGVyc2Vj
dChjb25zdCBMYXlvdXRSZWN0JiBvdGhlcikKK3sKKyAgICBMYXlvdXRQb2ludCBuZXdMb2NhdGlv
bihzdGQ6Om1heCh4KCksIG90aGVyLngoKSksIHN0ZDo6bWF4KHkoKSwgb3RoZXIueSgpKSk7Cisg
ICAgTGF5b3V0UG9pbnQgbmV3TWF4UG9pbnQoc3RkOjptaW4obWF4WCgpLCBvdGhlci5tYXhYKCkp
LCBzdGQ6Om1pbihtYXhZKCksIG90aGVyLm1heFkoKSkpOworICAgIGJvb2wgaW50ZXJzZWN0cyA9
IHRydWU7CisKKyAgICAvLyBSZXR1cm4gYSBjbGVhbiBlbXB0eSByZWN0YW5nbGUgZm9yIG5vbi1p
bnRlcnNlY3RpbmcgY2FzZXMuCisgICAgaWYgKG5ld0xvY2F0aW9uLngoKSA+IG5ld01heFBvaW50
LngoKSB8fCBuZXdMb2NhdGlvbi55KCkgPiBuZXdNYXhQb2ludC55KCkpIHsKKyAgICAgICAgbmV3
TG9jYXRpb24gPSBMYXlvdXRQb2ludCgwLCAwKTsKKyAgICAgICAgbmV3TWF4UG9pbnQgPSBMYXlv
dXRQb2ludCgwLCAwKTsKKyAgICAgICAgaW50ZXJzZWN0cyA9IGZhbHNlOworICAgIH0KKworICAg
IG1fbG9jYXRpb24gPSBuZXdMb2NhdGlvbjsKKyAgICBtX3NpemUgPSBuZXdNYXhQb2ludCAtIG5l
d0xvY2F0aW9uOworICAgIHJldHVybiBpbnRlcnNlY3RzOworfQorCiB2b2lkIExheW91dFJlY3Q6
OnVuaXRlKGNvbnN0IExheW91dFJlY3QmIG90aGVyKQogewogICAgIC8vIEhhbmRsZSBlbXB0eSBz
cGVjaWFsIGNhc2VzIGZpcnN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTGF5b3V0UmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TGF5b3V0UmVjdC5oCmluZGV4IGQ3MjBiNTY0OWZiZWM1NTM0MGNiZmI0NWU4YmEyZjJmOTlhM2Nl
NzMuLmEyYTIyY2IzZTBkZmE3ZTIyZGNjNTAzNDJiNDY0ZDVjYjllOGE5OWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRSZWN0LmgKQEAgLTE0NSw2ICsxNDUs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQp
IGNvbnN0IHsgcmV0dXJuIGNvbnRhaW5zKHBvaW50LngoKSwgcG9pbnQueSgpKTsgfQogCiAgICAg
dm9pZCBpbnRlcnNlY3QoY29uc3QgTGF5b3V0UmVjdCYpOworICAgIGJvb2wgZWRnZUluY2x1c2l2
ZUludGVyc2VjdChjb25zdCBMYXlvdXRSZWN0Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
bml0ZShjb25zdCBMYXlvdXRSZWN0Jik7CiAgICAgdm9pZCB1bml0ZUlmTm9uWmVybyhjb25zdCBM
YXlvdXRSZWN0Jik7CiAgICAgYm9vbCBjaGVja2VkVW5pdGUoY29uc3QgTGF5b3V0UmVjdCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA1YTJlZjJmMzc1ODg4ZTNj
MTAzYjQ1MjcwZWVmNGRmMGMxZmIzYzNhLi45YjkxMDRjMjMyNDE5MjViZWI1NmYzY2M1OWI1YzBj
ZWU0MzBiNjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtOTY3
LDcgKzk2Nyw3IEBAIExheW91dFNpemUgUmVuZGVyQm94OjpjYWNoZWRTaXplRm9yT3ZlcmZsb3dD
bGlwKCkgY29uc3QKICAgICByZXR1cm4gbGF5ZXIoKS0+c2l6ZSgpOwogfQogCi12b2lkIFJlbmRl
ckJveDo6YXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsUG9zaXRpb25Gb3JSZXBhaW50KExheW91dFJl
Y3QmIHBhaW50UmVjdCkgY29uc3QKK3ZvaWQgUmVuZGVyQm94OjphcHBseUNhY2hlZENsaXBBbmRT
Y3JvbGxQb3NpdGlvbkZvclJlcGFpbnQoTGF5b3V0UmVjdCYgcGFpbnRSZWN0LCBib29sIHVzZUVk
Z2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24sIGJvb2wqIGludGVyc2VjdHMpIGNvbnN0CiB7CiAgICAg
ZmxpcEZvcldyaXRpbmdNb2RlKHBhaW50UmVjdCk7CiAgICAgcGFpbnRSZWN0Lm1vdmVCeSgtc2Ny
b2xsUG9zaXRpb24oKSk7IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4uCkBAIC05
ODIsNyArOTgyLDE0IEBAIHZvaWQgUmVuZGVyQm94OjphcHBseUNhY2hlZENsaXBBbmRTY3JvbGxQ
b3NpdGlvbkZvclJlcGFpbnQoTGF5b3V0UmVjdCYgcGFpbnRSZWN0CiAgICAgLy8gbGF5ZXIncyBz
aXplIGluc3RlYWQuIEV2ZW4gaWYgdGhlIGxheWVyJ3Mgc2l6ZSBpcyB3cm9uZywgdGhlIGxheWVy
IGl0c2VsZiB3aWxsIHJlcGFpbnQKICAgICAvLyBhbnl3YXkgaWYgaXRzIHNpemUgZG9lcyBjaGFu
Z2UuCiAgICAgTGF5b3V0UmVjdCBjbGlwUmVjdChMYXlvdXRQb2ludCgpLCBjYWNoZWRTaXplRm9y
T3ZlcmZsb3dDbGlwKCkpOwotICAgIHBhaW50UmVjdCA9IGludGVyc2VjdGlvbihwYWludFJlY3Qs
IGNsaXBSZWN0KTsKKyAgICBpZiAodXNlRWRnZUluY2x1c2l2ZUludGVyc2VjdGlvbikKKyAgICAg
ICAgKmludGVyc2VjdHMgPSBwYWludFJlY3QuZWRnZUluY2x1c2l2ZUludGVyc2VjdChjbGlwUmVj
dCk7CisgICAgZWxzZSB7CisgICAgICAgIHBhaW50UmVjdCA9IGludGVyc2VjdGlvbihwYWludFJl
Y3QsIGNsaXBSZWN0KTsKKyAgICAgICAgaWYgKGludGVyc2VjdHMpCisgICAgICAgICAgICAqaW50
ZXJzZWN0cyA9ICFwYWludFJlY3QuaXNFbXB0eSgpOworICAgIH0KKwogICAgIGZsaXBGb3JXcml0
aW5nTW9kZShwYWludFJlY3QpOwogfQogCkBAIC0yMTM2LDcgKzIxNDMsNyBAQCBib29sIFJlbmRl
ckJveDo6c2hvdWxkQXBwbHlDbGlwQW5kU2Nyb2xsUG9zaXRpb25Gb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZQogI2VuZGlmCiB9CiAKLUxheW91dFJlY3QgUmVuZGVyQm94Ojpjb21wdXRl
UmVjdEZvclJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgUmVwYWludENvbnRleHQgY29udGV4dCkgY29u
c3QKK0xheW91dFJlY3QgUmVuZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgTGF5
b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgUmVwYWludENvbnRleHQgY29udGV4dCwgYm9vbCogaW50ZXJzZWN0cykgY29uc3QKIHsK
ICAgICAvLyBUaGUgcmVjdCB3ZSBjb21wdXRlIGF0IGVhY2ggc3RlcCBpcyBzaGlmdGVkIGJ5IG91
ciB4L3kgb2Zmc2V0IGluIHRoZSBwYXJlbnQgY29udGFpbmVyJ3MgY29vcmRpbmF0ZSBzcGFjZS4K
ICAgICAvLyBPbmx5IHdoZW4gd2UgY3Jvc3MgYSB3cml0aW5nIG1vZGUgYm91bmRhcnkgd2lsbCB3
ZSBoYXZlIHRvIHBvc3NpYmx5IGZsaXBGb3JXcml0aW5nTW9kZSAodG8gY29udmVydCBpbnRvIGEg
bW9yZSBhcHByb3ByaWF0ZQpAQCAtMjE2MSwxMyArMjE2OCwyMyBAQCBMYXlvdXRSZWN0IFJlbmRl
ckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0
IFJlbmRlcgogCiAgICAgICAgIGFkanVzdGVkUmVjdC5tb3ZlQnkobG9jYXRpb24oKSk7CiAgICAg
ICAgIGFkanVzdGVkUmVjdC5tb3ZlKGxheW91dFN0YXRlLT5wYWludE9mZnNldCgpKTsKLSAgICAg
ICAgaWYgKGxheW91dFN0YXRlLT5pc0NsaXBwZWQoKSkKLSAgICAgICAgICAgIGFkanVzdGVkUmVj
dC5pbnRlcnNlY3QobGF5b3V0U3RhdGUtPmNsaXBSZWN0KCkpOworICAgICAgICBpZiAobGF5b3V0
U3RhdGUtPmlzQ2xpcHBlZCgpKSB7CisgICAgICAgICAgICBpZiAoY29udGV4dC5tX3VzZUVkZ2VJ
bmNsdXNpdmVJbnRlcnNlY3Rpb24pCisgICAgICAgICAgICAgICAgKmludGVyc2VjdHMgPSBhZGp1
c3RlZFJlY3QuZWRnZUluY2x1c2l2ZUludGVyc2VjdChsYXlvdXRTdGF0ZS0+Y2xpcFJlY3QoKSk7
CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhZGp1c3RlZFJlY3QuaW50ZXJz
ZWN0KGxheW91dFN0YXRlLT5jbGlwUmVjdCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoaW50ZXJz
ZWN0cykKKyAgICAgICAgICAgICAgICAgICAgKmludGVyc2VjdHMgPSAhYWRqdXN0ZWRSZWN0Lmlz
RW1wdHkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICByZXR1cm4gYWRqdXN0
ZWRSZWN0OwogICAgIH0KIAotICAgIGlmIChoYXNSZWZsZWN0aW9uKCkpCisgICAgaWYgKGhhc1Jl
ZmxlY3Rpb24oKSkgewogICAgICAgICBhZGp1c3RlZFJlY3QudW5pdGUocmVmbGVjdGVkUmVjdChh
ZGp1c3RlZFJlY3QpKTsKKyAgICAgICAgaWYgKGludGVyc2VjdHMpCisgICAgICAgICAgICAqaW50
ZXJzZWN0cyB8PSAhYWRqdXN0ZWRSZWN0LmlzRW1wdHkoKTsKKyAgICB9CiAKICAgICBpZiAocmVw
YWludENvbnRhaW5lciA9PSB0aGlzKSB7CiAgICAgICAgIGlmIChyZXBhaW50Q29udGFpbmVyLT5z
dHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCkBAIC0yMjA3LDYgKzIyMjQsOCBA
QCBMYXlvdXRSZWN0IFJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91
dFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlcgogICAgIGlmIChpc1JlbmRlclJlcGxhY2VkKCkgJiYg
aXNXaWRnZXQoKSkgewogICAgICAgICBMYXlvdXRTaXplIGZsb29yZWRMb2NhdGlvbk9mZnNldCA9
IHRvSW50U2l6ZShmbG9vcmVkSW50UG9pbnQobG9jYXRpb25PZmZzZXQpKTsKICAgICAgICAgYWRq
dXN0ZWRSZWN0LmV4cGFuZChsb2NhdGlvbk9mZnNldCAtIGZsb29yZWRMb2NhdGlvbk9mZnNldCk7
CisgICAgICAgIGlmIChpbnRlcnNlY3RzKQorICAgICAgICAgICAgKmludGVyc2VjdHMgfD0gIWFk
anVzdGVkUmVjdC5pc0VtcHR5KCk7CiAgICAgICAgIGxvY2F0aW9uT2Zmc2V0ID0gZmxvb3JlZExv
Y2F0aW9uT2Zmc2V0OwogICAgIH0KIApAQCAtMjIyMCw3ICsyMjM5LDcgQEAgTGF5b3V0UmVjdCBS
ZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBj
b25zdCBSZW5kZXIKICAgICAgICAgTGF5b3V0UG9pbnQgcGh5c2ljYWxQb2ludChmbGlwRm9yV3Jp
dGluZ01vZGUoYWRqdXN0ZWRSZWN0LmxvY2F0aW9uKCkpKTsKICAgICAgICAgaWYgKGF1dG8qIGZy
YWdtZW50ID0gZG93bmNhc3Q8UmVuZGVyTXVsdGlDb2x1bW5GbG93PigqdGhpcykucGh5c2ljYWxU
cmFuc2xhdGlvbkZyb21GbG93VG9GcmFnbWVudCgocGh5c2ljYWxQb2ludCkpKSB7CiAgICAgICAg
ICAgICBhZGp1c3RlZFJlY3Quc2V0TG9jYXRpb24oZnJhZ21lbnQtPmZsaXBGb3JXcml0aW5nTW9k
ZShwaHlzaWNhbFBvaW50KSk7Ci0gICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQtPmNvbXB1dGVS
ZWN0Rm9yUmVwYWludChhZGp1c3RlZFJlY3QsIHJlcGFpbnRDb250YWluZXIsIGNvbnRleHQpOwor
ICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50LT5jb21wdXRlUmVjdEZvclJlcGFpbnQoYWRqdXN0
ZWRSZWN0LCByZXBhaW50Q29udGFpbmVyLCBjb250ZXh0LCBpbnRlcnNlY3RzKTsKICAgICAgICAg
fQogICAgIH0KIApAQCAtMjI1Myw4ICsyMjcyLDExIEBAIExheW91dFJlY3QgUmVuZGVyQm94Ojpj
b21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVy
CiAgICAgaWYgKGNvbnRhaW5lci0+aGFzT3ZlcmZsb3dDbGlwKCkpIHsKICAgICAgICAgUmVuZGVy
Qm94JiBjb250YWluZXJCb3ggPSBkb3duY2FzdDxSZW5kZXJCb3g+KCpjb250YWluZXIpOwogICAg
ICAgICBpZiAoY29udGFpbmVyQm94LnNob3VsZEFwcGx5Q2xpcEFuZFNjcm9sbFBvc2l0aW9uRm9y
UmVwYWludChyZXBhaW50Q29udGFpbmVyKSkgewotICAgICAgICAgICAgY29udGFpbmVyQm94LmFw
cGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbFBvc2l0aW9uRm9yUmVwYWludChhZGp1c3RlZFJlY3QpOwot
ICAgICAgICAgICAgaWYgKGFkanVzdGVkUmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICBjb250
YWluZXJCb3guYXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsUG9zaXRpb25Gb3JSZXBhaW50KGFkanVz
dGVkUmVjdCwgY29udGV4dC5tX3VzZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24sIGludGVyc2Vj
dHMpOworICAgICAgICAgICAgaWYgKGNvbnRleHQubV91c2VFZGdlSW5jbHVzaXZlSW50ZXJzZWN0
aW9uKSB7CisgICAgICAgICAgICAgICAgaWYgKCEoKmludGVyc2VjdHMpKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYWRqdXN0ZWRSZWN0OworICAgICAgICAgICAgfSBlbHNlIGlmIChhZGp1
c3RlZFJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBhZGp1c3RlZFJlY3Q7
CiAgICAgICAgIH0KICAgICB9CkBAIC0yMjY1LDcgKzIyODcsNyBAQCBMYXlvdXRSZWN0IFJlbmRl
ckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0
IFJlbmRlcgogICAgICAgICBhZGp1c3RlZFJlY3QubW92ZSgtY29udGFpbmVyT2Zmc2V0KTsKICAg
ICAgICAgcmV0dXJuIGFkanVzdGVkUmVjdDsKICAgICB9Ci0gICAgcmV0dXJuIGNvbnRhaW5lci0+
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGFkanVzdGVkUmVjdCwgcmVwYWludENvbnRhaW5lciwgY29u
dGV4dCk7CisgICAgcmV0dXJuIGNvbnRhaW5lci0+Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGFkanVz
dGVkUmVjdCwgcmVwYWludENvbnRhaW5lciwgY29udGV4dCwgaW50ZXJzZWN0cyk7CiB9CiAKIHZv
aWQgUmVuZGVyQm94OjpyZXBhaW50RHVyaW5nTGF5b3V0SWZNb3ZlZChjb25zdCBMYXlvdXRSZWN0
JiBvbGRSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDgxNjYzZjc0
ZDJiOWFkZDEzYmU2ZDY0N2I0MzI1ZWNkYWM0NmNlZjUuLjAxOTU4MDBiYjcwNzY3ZDk5NDJiMjc2
MzU0NDUwNzA3ZmFjYzRhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAg
LTM3MSw3ICszNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVMaW5lQm94V3JhcHBlcigp
OwogCiAgICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBvdmVycmlkZTsK
LSAgICBMYXlvdXRSZWN0IGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBMYXlvdXRSZWN0Jiwg
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgUmVwYWludENv
bnRleHQgY29udGV4dCA9IHsgZmFsc2UsIGZhbHNlIH0pIGNvbnN0IG92ZXJyaWRlOworICAgIExh
eW91dFJlY3QgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBSZXBhaW50Q29udGV4dCBj
b250ZXh0ID0geyBmYWxzZSwgZmFsc2UsIGZhbHNlIH0sIGJvb2wqIGludGVyc2VjdHMgPSBudWxs
cHRyKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlcGFpbnREdXJpbmdMYXlvdXRJZk1vdmVk
KGNvbnN0IExheW91dFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludE92ZXJoYW5naW5n
RmxvYXRzKGJvb2wgcGFpbnRBbGxEZXNjZW5kYW50cyk7CiAKQEAgLTU2OSw3ICs1NjksNyBAQCBw
dWJsaWM6CiAgICAgTGF5b3V0U2l6ZSBjYWNoZWRTaXplRm9yT3ZlcmZsb3dDbGlwKCkgY29uc3Q7
CiAKICAgICBib29sIHNob3VsZEFwcGx5Q2xpcEFuZFNjcm9sbFBvc2l0aW9uRm9yUmVwYWludChj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdDsKLSAg
ICB2b2lkIGFwcGx5Q2FjaGVkQ2xpcEFuZFNjcm9sbFBvc2l0aW9uRm9yUmVwYWludChMYXlvdXRS
ZWN0JiBwYWludFJlY3QpIGNvbnN0OworICAgIHZvaWQgYXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xs
UG9zaXRpb25Gb3JSZXBhaW50KExheW91dFJlY3QmIHBhaW50UmVjdCwgYm9vbCB1c2VFZGdlSW5j
bHVzaXZlSW50ZXJzZWN0aW9uID0gZmFsc2UsIGJvb2wqIGludGVyc2VjdHMgPSBudWxscHRyKSBj
b25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZURpbWVuc2lvbnMoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IGY2N2FiODZmNmE5Yzc3
MjIyZGFkNTQ4MTM4MTg5NDM4OTc3ZjIxYjguLjY0OGU4N2M4ZjQ0MjgwYjQ5Y2IwYWJmN2EyZWY3
MmZkM2M3OWY2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CkBAIC04NzEsNyArODcxLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OnJlY3RXaXRoT3V0
bGluZUZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCoKICAgICByZXR1cm4g
cjsKIH0KIAotTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChj
b25zdCBMYXlvdXRSZWN0JiByZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBSZXBhaW50Q29udGV4dCBjb250ZXh0KSBjb25zdAorTGF5b3V0UmVjdCBS
ZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBMYXlvdXRSZWN0JiByZWN0
LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBSZXBhaW50
Q29udGV4dCBjb250ZXh0LCBib29sKiBpbnRlcnNlY3RzKSBjb25zdAogewogICAgIC8vIFJlcGFp
bnQgb2Zmc2V0IGNhY2hlIGlzIG9ubHkgdmFsaWQgZm9yIHJvb3QtcmVsYXRpdmUgcmVwYWludGlu
ZwogICAgIExheW91dFJlY3QgYWRqdXN0ZWRSZWN0ID0gcmVjdDsKQEAgLTg4MCw4ICs4ODAsMTUg
QEAgTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBM
YXlvdXRSZWN0JiByZWN0LCBjb25zdCBSZW4KICAgICAgICAgaWYgKHN0eWxlKCkuaGFzSW5GbG93
UG9zaXRpb24oKSAmJiBsYXllcigpKQogICAgICAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmUobGF5
ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSk7CiAgICAgICAgIGFkanVzdGVkUmVjdC5t
b3ZlKGxheW91dFN0YXRlLT5wYWludE9mZnNldCgpKTsKLSAgICAgICAgaWYgKGxheW91dFN0YXRl
LT5pc0NsaXBwZWQoKSkKLSAgICAgICAgICAgIGFkanVzdGVkUmVjdC5pbnRlcnNlY3QobGF5b3V0
U3RhdGUtPmNsaXBSZWN0KCkpOworICAgICAgICBpZiAobGF5b3V0U3RhdGUtPmlzQ2xpcHBlZCgp
KSB7CisgICAgICAgICAgICBpZiAoY29udGV4dC5tX3VzZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rp
b24pCisgICAgICAgICAgICAgICAgKmludGVyc2VjdHMgPSBhZGp1c3RlZFJlY3QuZWRnZUluY2x1
c2l2ZUludGVyc2VjdChsYXlvdXRTdGF0ZS0+Y2xpcFJlY3QoKSk7CisgICAgICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgICAgICBhZGp1c3RlZFJlY3QuaW50ZXJzZWN0KGxheW91dFN0YXRlLT5j
bGlwUmVjdCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoaW50ZXJzZWN0cykKKyAgICAgICAgICAg
ICAgICAgICAgKmludGVyc2VjdHMgPSAhYWRqdXN0ZWRSZWN0LmlzRW1wdHkoKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQogICAgICAgICByZXR1cm4gYWRqdXN0ZWRSZWN0OwogICAgIH0KIApA
QCAtOTA3LDggKzkxNCwxMSBAQCBMYXlvdXRSZWN0IFJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RG
b3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IFJlbgogICAgIC8vIGl0cyBj
b250cm9sQ2xpcFJlY3Qgd2lsbCBiZSB3cm9uZy4gRm9yIG92ZXJmbG93IGNsaXAgd2UgdXNlIHRo
ZSB2YWx1ZXMgY2FjaGVkIGJ5IHRoZSBsYXllci4KICAgICBhZGp1c3RlZFJlY3Quc2V0TG9jYXRp
b24odG9wTGVmdCk7CiAgICAgaWYgKGNvbnRhaW5lci0+aGFzT3ZlcmZsb3dDbGlwKCkpIHsKLSAg
ICAgICAgZG93bmNhc3Q8UmVuZGVyQm94PigqY29udGFpbmVyKS5hcHBseUNhY2hlZENsaXBBbmRT
Y3JvbGxQb3NpdGlvbkZvclJlcGFpbnQoYWRqdXN0ZWRSZWN0KTsKLSAgICAgICAgaWYgKGFkanVz
dGVkUmVjdC5pc0VtcHR5KCkpCisgICAgICAgIGRvd25jYXN0PFJlbmRlckJveD4oKmNvbnRhaW5l
cikuYXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsUG9zaXRpb25Gb3JSZXBhaW50KGFkanVzdGVkUmVj
dCwgY29udGV4dC5tX3VzZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24sIGludGVyc2VjdHMpOwor
ICAgICAgICBpZiAoY29udGV4dC5tX3VzZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24pIHsKKyAg
ICAgICAgICAgIGlmICghKCppbnRlcnNlY3RzKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYWRq
dXN0ZWRSZWN0OworICAgICAgICB9IGVsc2UgaWYgKGFkanVzdGVkUmVjdC5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICByZXR1cm4gYWRqdXN0ZWRSZWN0OwogICAgIH0KIApAQCAtOTE4LDcgKzkyOCw3
IEBAIExheW91dFJlY3QgUmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3Qg
TGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuCiAgICAgICAgIGFkanVzdGVkUmVjdC5tb3ZlKC1j
b250YWluZXJPZmZzZXQpOwogICAgICAgICByZXR1cm4gYWRqdXN0ZWRSZWN0OwogICAgIH0KLSAg
ICByZXR1cm4gY29udGFpbmVyLT5jb21wdXRlUmVjdEZvclJlcGFpbnQoYWRqdXN0ZWRSZWN0LCBy
ZXBhaW50Q29udGFpbmVyLCBjb250ZXh0KTsKKyAgICByZXR1cm4gY29udGFpbmVyLT5jb21wdXRl
UmVjdEZvclJlcGFpbnQoYWRqdXN0ZWRSZWN0LCByZXBhaW50Q29udGFpbmVyLCBjb250ZXh0LCBp
bnRlcnNlY3RzKTsKIH0KIAogTGF5b3V0U2l6ZSBSZW5kZXJJbmxpbmU6Om9mZnNldEZyb21Db250
YWluZXIoUmVuZGVyRWxlbWVudCYgY29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYsIGJvb2wq
IG9mZnNldERlcGVuZHNPblBvaW50KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5oCmluZGV4IDZlNmJmODdiNTM1NzRhMTllOWFjNDJiYzQxNGJiNTQ2ZjQ5Zjc4YWIu
LmU2YmMzOWI0YmRjMWMzNzljZTA2MmRiNDJhOTNmYTI2NGQ1NThhMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKQEAgLTEyOSw3ICsxMjksNyBAQCBwcml2YXRlOgog
CiAgICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBvdmVycmlkZTsKICAg
ICBMYXlvdXRSZWN0IHJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNv
bnN0IGZpbmFsOwotICAgIExheW91dFJlY3QgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExh
eW91dFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBSZXBhaW50Q29udGV4dCA9IHsgfSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0UmVjdCBjb21w
dXRlUmVjdEZvclJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFJlcGFpbnRDb250ZXh0ID0geyB9LCBib29sKiBp
bnRlcnNlY3RzID0gbnVsbHB0cikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIG1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzLCBib29sKiB3YXNGaXhlZCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFp
bmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRl
ckdlb21ldHJ5TWFwJikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCmluZGV4IGZhN2FiNDRjZDMyZjk3OGNlOGIxYTZkYjM0OGQ1ZTM5Mzc0
NWE5YjYuLjU1MDkzZTkxZTZlYTY0YTMwMTg2NDc3MzEyNjU5YWM3M2RlNTc3ZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC05NjEsNyArOTYxLDcgQEAg
TGF5b3V0UmVjdCBSZW5kZXJPYmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmoKICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwogfQogCi1M
YXlvdXRSZWN0IFJlbmRlck9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91
dFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFJlcGFpbnRDb250ZXh0IGNvbnRleHQpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlck9iamVj
dDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFJlcGFpbnRDb250ZXh0IGNv
bnRleHQsIGJvb2wqIGludGVyc2VjdHMpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWlu
ZXIgPT0gdGhpcykKICAgICAgICAgcmV0dXJuIHJlY3Q7CkBAIC05NzIsMTQgKzk3MiwxNyBAQCBM
YXlvdXRSZWN0IFJlbmRlck9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91
dFJlY3QmIHJlY3QsIGNvbnN0IFJlbgogCiAgICAgTGF5b3V0UmVjdCBhZGp1c3RlZFJlY3QgPSBy
ZWN0OwogICAgIGlmIChwYXJlbnQtPmhhc092ZXJmbG93Q2xpcCgpKSB7Ci0gICAgICAgIGRvd25j
YXN0PFJlbmRlckJveD4oKnBhcmVudCkuYXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsUG9zaXRpb25G
b3JSZXBhaW50KGFkanVzdGVkUmVjdCk7Ci0gICAgICAgIGlmIChhZGp1c3RlZFJlY3QuaXNFbXB0
eSgpKQorICAgICAgICBkb3duY2FzdDxSZW5kZXJCb3g+KCpwYXJlbnQpLmFwcGx5Q2FjaGVkQ2xp
cEFuZFNjcm9sbFBvc2l0aW9uRm9yUmVwYWludChhZGp1c3RlZFJlY3QsIGNvbnRleHQubV91c2VF
ZGdlSW5jbHVzaXZlSW50ZXJzZWN0aW9uLCBpbnRlcnNlY3RzKTsKKyAgICAgICAgaWYgKGNvbnRl
eHQubV91c2VFZGdlSW5jbHVzaXZlSW50ZXJzZWN0aW9uKSB7CisgICAgICAgICAgICBpZiAoISgq
aW50ZXJzZWN0cykpCisgICAgICAgICAgICAgICAgcmV0dXJuIGFkanVzdGVkUmVjdDsKKyAgICAg
ICAgfSBlbHNlIGlmIChhZGp1c3RlZFJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJu
IGFkanVzdGVkUmVjdDsKICAgICB9Ci0gICAgcmV0dXJuIHBhcmVudC0+Y29tcHV0ZVJlY3RGb3JS
ZXBhaW50KGFkanVzdGVkUmVjdCwgcmVwYWludENvbnRhaW5lciwgY29udGV4dCk7CisgICAgcmV0
dXJuIHBhcmVudC0+Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGFkanVzdGVkUmVjdCwgcmVwYWludENv
bnRhaW5lciwgY29udGV4dCwgaW50ZXJzZWN0cyk7CiB9CiAKLUZsb2F0UmVjdCBSZW5kZXJPYmpl
Y3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqLCBib29sKSBjb25zdAorRmxvYXRSZWN0IFJlbmRlck9iamVj
dDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCosIGJvb2wsIGJvb2wsIGJvb2wqKSBjb25zdAogewogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBGbG9hdFJlY3QoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA3NjQyZjU4NDZkN2I5YmVkZThiMzc5NGE3
MTE3NjVmODQ0NWU2ZjRmLi42ZDQyOWEzODBhODhmZmE2MTIzMGM2NmRhYTc3NjY4NTQ5MDZmOTI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC02NzgsMTYgKzY3
OCwxOCBAQCBwdWJsaWM6CiAgICAgLy8gR2l2ZW4gYSByZWN0IGluIHRoZSBvYmplY3QncyBjb29y
ZGluYXRlIHNwYWNlLCBjb21wdXRlIGEgcmVjdCBzdWl0YWJsZSBmb3IgcmVwYWludGluZwogICAg
IC8vIHRoYXQgcmVjdCBpbiB0aGUgY29vcmRpbmF0ZSBzcGFjZSBvZiByZXBhaW50Q29udGFpbmVy
LgogICAgIHN0cnVjdCBSZXBhaW50Q29udGV4dCB7Ci0gICAgICAgIFJlcGFpbnRDb250ZXh0KGJv
b2wgaGFzUG9zaXRpb25GaXhlZERlc2NlbmRhbnQgPSBmYWxzZSwgYm9vbCBkaXJ0eVJlY3RJc0Zs
aXBwZWQgPSBmYWxzZSkKKyAgICAgICAgUmVwYWludENvbnRleHQoYm9vbCBoYXNQb3NpdGlvbkZp
eGVkRGVzY2VuZGFudCA9IGZhbHNlLCBib29sIGRpcnR5UmVjdElzRmxpcHBlZCA9IGZhbHNlLCBi
b29sIHVzZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24gPSBmYWxzZSkKICAgICAgICAgICAgIDog
bV9oYXNQb3NpdGlvbkZpeGVkRGVzY2VuZGFudChoYXNQb3NpdGlvbkZpeGVkRGVzY2VuZGFudCkK
ICAgICAgICAgICAgICwgbV9kaXJ0eVJlY3RJc0ZsaXBwZWQoZGlydHlSZWN0SXNGbGlwcGVkKQor
ICAgICAgICAgICAgLCBtX3VzZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24odXNlRWRnZUluY2x1
c2l2ZUludGVyc2VjdGlvbikKICAgICAgICAgICAgIHsKICAgICAgICAgICAgIH0KICAgICAgICAg
Ym9vbCBtX2hhc1Bvc2l0aW9uRml4ZWREZXNjZW5kYW50OwogICAgICAgICBib29sIG1fZGlydHlS
ZWN0SXNGbGlwcGVkOworICAgICAgICBib29sIG1fdXNlRWRnZUluY2x1c2l2ZUludGVyc2VjdGlv
bjsKICAgICB9OwotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjb21wdXRlUmVjdEZvclJlcGFpbnQo
Y29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFJlcGFpbnRDb250ZXh0ID0geyB9KSBjb25zdDsKLSAgICB2aXJ0dWFsIEZsb2F0
UmVjdCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkID0gZmFs
c2UpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjb21wdXRlUmVjdEZvclJlcGFpbnQo
Y29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFJlcGFpbnRDb250ZXh0ID0geyB9LCBib29sKiBpbnRlcnNlY3RzID0gbnVsbHB0
cikgY29uc3Q7CisgICAgdmlydHVhbCBGbG9hdFJlY3QgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFp
bnQoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgYm9vbCBmaXhlZCA9IGZhbHNlLCBib29sIHVzZUVkZ2VJbmNsdXNpdmVJbnRl
cnNlY3Rpb24gPSBmYWxzZSwgYm9vbCogaW50ZXJzZWN0cyA9IG51bGxwdHIpIGNvbnN0OwogCiAg
ICAgdmlydHVhbCB1bnNpZ25lZCBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCmluZGV4IGQzMzlj
OGQ2ZTEzNTgzYmVmMjRiODI3YmY5MTg2MTY4MmFiZDU1NjcuLjExNzYxYzZhZGI0Mzg4ZjVjYWE1
NjEwODRhMzllZjhkOGJiNGI5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuY3BwCkBAIC0zOTUsMTQgKzM5NSwxNCBAQCBMYXlvdXRSZWN0IFJlbmRlclRh
YmxlQ2VsbDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbAogICAgIHJldHVybiBjb21wdXRlUmVjdEZvclJlcGFpbnQociwgcmVwYWludENvbnRhaW5l
cik7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyVGFibGVDZWxsOjpjb21wdXRlUmVjdEZvclJlcGFp
bnQoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgUmVwYWludENvbnRleHQgY29udGV4dCkgY29uc3QKK0xheW91dFJl
Y3QgUmVuZGVyVGFibGVDZWxsOjpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgTGF5b3V0UmVj
dCYgcmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
UmVwYWludENvbnRleHQgY29udGV4dCwgYm9vbCogaW50ZXJzZWN0cykgY29uc3QKIHsKICAgICBp
ZiAocmVwYWludENvbnRhaW5lciA9PSB0aGlzKQogICAgICAgICByZXR1cm4gcmVjdDsKICAgICBM
YXlvdXRSZWN0IGFkanVzdGVkUmVjdCA9IHJlY3Q7CiAgICAgaWYgKCghdmlldygpLmZyYW1lVmll
dygpLmxheW91dENvbnRleHQoKS5pc1BhaW50T2Zmc2V0Q2FjaGVFbmFibGVkKCkgfHwgcmVwYWlu
dENvbnRhaW5lcikgJiYgcGFyZW50KCkpCiAgICAgICAgIGFkanVzdGVkUmVjdC5tb3ZlQnkoLXBh
cmVudEJveCgpLT5sb2NhdGlvbigpKTsgLy8gUm93cyBhcmUgaW4gdGhlIHNhbWUgY29vcmRpbmF0
ZSBzcGFjZSwgc28gZG9uJ3QgYWRkIHRoZWlyIG9mZnNldCBpbi4KLSAgICByZXR1cm4gUmVuZGVy
QmxvY2tGbG93Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoYWRqdXN0ZWRSZWN0LCByZXBhaW50Q29u
dGFpbmVyLCBjb250ZXh0KTsKKyAgICByZXR1cm4gUmVuZGVyQmxvY2tGbG93Ojpjb21wdXRlUmVj
dEZvclJlcGFpbnQoYWRqdXN0ZWRSZWN0LCByZXBhaW50Q29udGFpbmVyLCBjb250ZXh0LCBpbnRl
cnNlY3RzKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OmNlbGxCYXNlbGluZVBv
c2l0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
aAppbmRleCBhMjQ5NDE4NzI4ZmMyZjkwNmJlMTJlZGJhMGZkMmUxMDIwZmRlN2UxLi41YWNiZjQz
ZmQxZTdhMjlhNmZhNWQxNzAwYTQ5OTcwNDhlZTFlZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCkBAIC0xNTUsNyArMTU1LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIGJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChjb25zdCBMYXlvdXRQ
b2ludCYgcGFpbnRPZmZzZXQsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0Jv
eCopIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVy
KFJlbmRlckVsZW1lbnQmLCBjb25zdCBMYXlvdXRQb2ludCYsIGJvb2wqIG9mZnNldERlcGVuZHNP
blBvaW50ID0gMCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0UmVjdCBjb21wdXRlUmVjdEZv
clJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIFJlcGFpbnRDb250ZXh0ID0geyB9KSBjb25zdCBvdmVycmlkZTsK
KyAgICBMYXlvdXRSZWN0IGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBMYXlvdXRSZWN0Jiwg
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgUmVwYWludENv
bnRleHQgPSB7IH0sIGJvb2wqIGludGVyc2VjdHMgPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIExheW91dFVuaXQgYm9yZGVySGFsZkxlZnQoYm9vbCBvdXRlcikgY29uc3Q7CiAgICAg
TGF5b3V0VW5pdCBib3JkZXJIYWxmUmlnaHQoYm9vbCBvdXRlcikgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggYjZlY2RjZjFlMjc3MGJjNjI4MzdlMDhj
ODMyNmFjNDAzZDUxOTA3Yy4uODM2ZWIwYjllMjYxMDM5NzNmN2RjMDFlZmJjNTE2YzMyMzFlOTJl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNTc3LDcgKzU3
Nyw3IEBAIExheW91dFJlY3QgUmVuZGVyVmlldzo6dmlzdWFsT3ZlcmZsb3dSZWN0KCkgY29uc3QK
ICAgICByZXR1cm4gUmVuZGVyQmxvY2tGbG93Ojp2aXN1YWxPdmVyZmxvd1JlY3QoKTsKIH0KIAot
TGF5b3V0UmVjdCBSZW5kZXJWaWV3Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgTGF5b3V0
UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgUmVwYWludENvbnRleHQgY29udGV4dCkgY29uc3QKK0xheW91dFJlY3QgUmVuZGVyVmlldzo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFJlcGFpbnRDb250ZXh0IGNvbnRl
eHQsIGJvb2wqKSBjb25zdAogewogICAgIC8vIElmIGEgY29udGFpbmVyIHdhcyBzcGVjaWZpZWQs
IGFuZCB3YXMgbm90IG51bGxwdHIgb3IgdGhlIFJlbmRlclZpZXcsCiAgICAgLy8gdGhlbiB3ZSBz
aG91bGQgaGF2ZSBmb3VuZCBpdCBieSBub3cuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaAppbmRleCAyOTQ3MzdkYWFkN2M5YzI5YzAwMjQ1OTA3MGJmZjc4MTJhM2FhZGY5Li41ZDNl
ODc0ZWUyNGE1ZDlmOTExMTc2YjJiMjRlOGE2ZDZmYmIzODVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIEZyYW1lVmll
dyYgZnJhbWVWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZVZpZXc7IH0KIAogICAgIExheW91
dFJlY3QgdmlzdWFsT3ZlcmZsb3dSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0UmVj
dCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFJlcGFpbnRDb250ZXh0ID0geyB9KSBj
b25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRSZWN0IGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25z
dCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgUmVwYWludENvbnRleHQgPSB7IH0sIGJvb2wqIGludGVyc2VjdHMgPSBudWxscHRyKSBj
b25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlcGFpbnRSb290Q29udGVudHMoKTsKICAgICB2b2lk
IHJlcGFpbnRWaWV3UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKICAgICB2b2lk
IHJlcGFpbnRWaWV3QW5kQ29tcG9zaXRlZExheWVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKaW5kZXggOGM3
MzA5MWIyYWQ2NzljNzQyNDE4OWY1NjRlZjg5OGUyZjc0YzM3ZS4uYmQ4MjU0MGZiNmQ5M2ZlMjYx
YTU1OWFlODU1MWY5NTYzNjhjZDRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCkBAIC05OCwxNCArOTgsMTQg
QEAgTGF5b3V0UmVjdCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0
Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXkKICAgICByZXR1cm4gU1ZHUmVuZGVyU3VwcG9ydDo6
Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoKnRoaXMsIHJlcGFpbnRDb250YWluZXIpOwog
fQogCi1GbG9hdFJlY3QgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6Y29tcHV0ZUZsb2F0UmVjdEZv
clJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCkgY29uc3QKK0Zsb2F0UmVj
dCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25z
dCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZUVkZ2VJbmNsdXNpdmVJbnRlcnNl
Y3Rpb24sIGJvb2wqIGludGVyc2VjdHMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNWR1JlbmRlclN1
cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KCp0aGlzLCByZXBhaW50UmVjdCwgcmVw
YWludENvbnRhaW5lciwgZml4ZWQpOworICAgIHJldHVybiBTVkdSZW5kZXJTdXBwb3J0Ojpjb21w
dXRlRmxvYXRSZWN0Rm9yUmVwYWludCgqdGhpcywgcmVwYWludFJlY3QsIHJlcGFpbnRDb250YWlu
ZXIsIGZpeGVkLCB1c2VFZGdlSW5jbHVzaXZlSW50ZXJzZWN0aW9uLCBpbnRlcnNlY3RzKTsKIH0K
IAotTGF5b3V0UmVjdCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpjb21wdXRlUmVjdEZvclJlcGFp
bnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFJlcGFpbnRDb250ZXh0IGNvbnRleHQpIGNvbnN0CitM
YXlvdXRSZWN0IFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChj
b25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgUmVwYWludENvbnRleHQgY29udGV4dCwgYm9vbCogaW50ZXJz
ZWN0cykgY29uc3QKIHsKLSAgICByZXR1cm4gZW5jbG9zaW5nTGF5b3V0UmVjdChjb21wdXRlRmxv
YXRSZWN0Rm9yUmVwYWludChyZXBhaW50UmVjdCwgcmVwYWludENvbnRhaW5lciwgY29udGV4dC5t
X2hhc1Bvc2l0aW9uRml4ZWREZXNjZW5kYW50KSk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0xheW91
dFJlY3QoY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQocmVwYWludFJlY3QsIHJlcGFpbnRDb250
YWluZXIsIGNvbnRleHQubV9oYXNQb3NpdGlvbkZpeGVkRGVzY2VuZGFudCwgY29udGV4dC5tX3Vz
ZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24sIGludGVyc2VjdHMpKTsKIH0KIAogY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpsb2NhbFRvUGFyZW50VHJhbnNm
b3JtKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdGb3JlaWduT2JqZWN0LmgKaW5kZXggMWQ1M2NlMDJmMGZmOTgyMzM5MzJmZjRmN2Y0MzQz
NDE2MzRhMzk4NS4uMWEzNjg3MmI1MjBlMzllMWZjYTRlZGFlNDM0ODI0NzBmZTI3NjI5MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWdu
T2JqZWN0LmgKQEAgLTQwLDggKzQwLDggQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnQoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKIAogICAgIExheW91dFJlY3QgY2xp
cHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRmxvYXRSZWN0IGNvbXB1dGVG
bG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgTGF5b3V0UmVjdCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgTGF5b3V0
UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFJl
cGFpbnRDb250ZXh0ID0geyB9KSBjb25zdCBvdmVycmlkZTsKKyAgICBGbG9hdFJlY3QgY29tcHV0
ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCA9IGZhbHNlLCBib29sIHVz
ZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24gPSBmYWxzZSwgYm9vbCogaW50ZXJzZWN0cyA9IG51
bGxwdHIpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFJlY3QgY29tcHV0ZVJlY3RGb3JSZXBh
aW50KGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBSZXBhaW50Q29udGV4dCA9IHsgfSwgYm9vbCogaW50ZXJzZWN0cyA9IG51
bGxwdHIpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCmlu
ZGV4IGMzYTU0MDBkMmNkYWNkZWFkZWY0Y2NiOTMwZjc4YzQzY2Y1YjRlOGIuLjBkYmVmZjg3YmUw
MzcyY2Y0NzRkNWRjOTI3NzU3YWQwZDk3N2E1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKQEAgLTc1LDkgKzc1LDkgQEAgTGF5b3V0
UmVjdCBSZW5kZXJTVkdJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0
IFJlbmRlckxheWVyTW9kZWwKICAgICByZXR1cm4gU1ZHUmVuZGVyU3VwcG9ydDo6Y2xpcHBlZE92
ZXJmbG93UmVjdEZvclJlcGFpbnQoKnRoaXMsIHJlcGFpbnRDb250YWluZXIpOwogfQogCi1GbG9h
dFJlY3QgUmVuZGVyU1ZHSW5saW5lOjpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBG
bG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBib29sIGZpeGVkKSBjb25zdAorRmxvYXRSZWN0IFJlbmRlclNWR0lubGlu
ZTo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiByZXBhaW50UmVj
dCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBm
aXhlZCwgYm9vbCB1c2VFZGdlSW5jbHVzaXZlSW50ZXJzZWN0aW9uLCBib29sKiBpbnRlcnNlY3Rz
KSBjb25zdAogewotICAgIHJldHVybiBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0
Rm9yUmVwYWludCgqdGhpcywgcmVwYWludFJlY3QsIHJlcGFpbnRDb250YWluZXIsIGZpeGVkKTsK
KyAgICByZXR1cm4gU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQo
KnRoaXMsIHJlcGFpbnRSZWN0LCByZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdXNlRWRnZUluY2x1
c2l2ZUludGVyc2VjdGlvbiwgaW50ZXJzZWN0cyk7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHSW5saW5l
OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0
ZXNGbGFncywgYm9vbCogd2FzRml4ZWQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAppbmRleCA1NDliYWM0OWJhMTdiYjYwYTMwNDE5MDJj
NGRhN2I1NWZiZDI2MWI1Li40ZTU3ZTk3YmM5NDc5OGFkMjNhNzI5ZTFmMjg1ZTFjZTlhMTY1YTQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGlu
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgK
QEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKICAgICBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxv
Y2FsQ29vcmRpbmF0ZXMoKSBjb25zdCBmaW5hbDsKIAogICAgIExheW91dFJlY3QgY2xpcHBlZE92
ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lcikgY29uc3QgZmluYWw7Ci0gICAgRmxvYXRSZWN0IGNvbXB1dGVGbG9hdFJlY3RG
b3JSZXBhaW50KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgZmluYWw7CisgICAg
RmxvYXRSZWN0IGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQg
PSBmYWxzZSwgYm9vbCB1c2VFZGdlSW5jbHVzaXZlSW50ZXJzZWN0aW9uID0gZmFsc2UsIGJvb2wq
IGludGVyc2VjdHMgPSBudWxscHRyKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzLCBib29sKiB3YXNGaXhlZCkgY29u
c3QgZmluYWw7CiAgICAgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdl
b21ldHJ5TWFwJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxG
bG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAppbmRleCA2
YTBiNjY5MWU3MjAzZmY2NzViNWIxYTQwZmRlODMwOGI5OGVjMTgzLi5iZGQyNzMwNDliNjk2Y2E1
ODMyZTRkNTE0OTMxZTk3ZTdlN2Y2YWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcApAQCAtNTMsOSArNTMsOSBAQCBM
YXlvdXRSZWN0IFJlbmRlclNWR01vZGVsT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJMYXllcgogICAgIHJldHVybiBTVkdSZW5kZXJTdXBwb3J0OjpjbGlw
cGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCgqdGhpcywgcmVwYWludENvbnRhaW5lcik7CiB9CiAK
LUZsb2F0UmVjdCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFp
bnQoY29uc3QgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCkgY29uc3QKK0Zsb2F0UmVjdCBSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgRmxvYXRS
ZWN0JiByZXBhaW50UmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VFZGdlSW5jbHVzaXZlSW50ZXJzZWN0aW9uLCBi
b29sKiBpbnRlcnNlY3RzKSBjb25zdAogewotICAgIHJldHVybiBTVkdSZW5kZXJTdXBwb3J0Ojpj
b21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCgqdGhpcywgcmVwYWludFJlY3QsIHJlcGFpbnRDb250
YWluZXIsIGZpeGVkKTsKKyAgICByZXR1cm4gU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0
UmVjdEZvclJlcGFpbnQoKnRoaXMsIHJlcGFpbnRSZWN0LCByZXBhaW50Q29udGFpbmVyLCBmaXhl
ZCwgdXNlRWRnZUluY2x1c2l2ZUludGVyc2VjdGlvbiwgaW50ZXJzZWN0cyk7CiB9CiAKIHZvaWQg
UmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9y
bVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzLCBib29sKiB3YXNGaXhlZCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApp
bmRleCA4ZTNhMGUxMmY1NGRhYWNiNDc2ZmIzNGE5ZTk5YjE3ODI2Y2MwN2M4Li43ZDhlMTlmZjc2
NGJhODFhNDdhYjBkNjNkOWZkNGQ4YTBkZGYyYzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCkBAIC00Nyw3ICs0Nyw3IEBA
IGNsYXNzIFJlbmRlclNWR01vZGVsT2JqZWN0IDogcHVibGljIFJlbmRlckVsZW1lbnQgewogICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoUmVuZGVyU1ZHTW9kZWxPYmplY3QpOwogcHVibGljOgog
ICAgIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
RmxvYXRSZWN0IGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQg
PSBmYWxzZSkgY29uc3QgZmluYWw7CisgICAgRmxvYXRSZWN0IGNvbXB1dGVGbG9hdFJlY3RGb3JS
ZXBhaW50KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQgPSBmYWxzZSwgYm9vbCB1c2VFZGdlSW5jbHVzaXZl
SW50ZXJzZWN0aW9uID0gZmFsc2UsIGJvb2wqIGludGVyc2VjdHMgPSBudWxscHRyKSBjb25zdCBm
aW5hbDsKICAgICBMYXlvdXRSZWN0IG91dGxpbmVCb3VuZHNGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IFJlbmRlckdlb21ldHJ5
TWFwKikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJl
Y3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdCBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4
IDcxNzBhMGU1ZjBmYWI0MTU5MDdkNjFjNGMyNGZhZDE4OTU1OTdkM2YuLmViMjBiNjljM2UwNDk4
ZTM5NWFjODI2MGQ1YWJiOWIyMGIyZTM2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtMzQyLDcgKzM0Miw3IEBAIExheW91dFJlY3Qg
UmVuZGVyU1ZHUm9vdDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iCiAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVjdEZvclJl
cGFpbnQoZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UmVjdCksIHJlcGFpbnRDb250YWluZXIpOwog
fQogCi1GbG9hdFJlY3QgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQo
Y29uc3QgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCkgY29uc3QKK0Zsb2F0UmVjdCBSZW5kZXJT
VkdSb290Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBGbG9hdFJlY3QmIHJlcGFp
bnRSZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBi
b29sIGZpeGVkLCBib29sIHVzZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24sIGJvb2wqIGludGVy
c2VjdHMpIGNvbnN0CiB7CiAgICAgLy8gQXBwbHkgb3VyIGxvY2FsIHRyYW5zZm9ybXMgKGV4Y2Vw
dCBmb3IgeC95IHRyYW5zbGF0aW9uKSwgdGhlbiBvdXIgc2hhZG93LCAKICAgICAvLyBhbmQgdGhl
biBjYWxsIFJlbmRlckJveCdzIG1ldGhvZCB0byBoYW5kbGUgYWxsIHRoZSBub3JtYWwgQ1NTIEJv
eCBtb2RlbCBiaXRzCkBAIC0zNTMsMTYgKzM1MywyNSBAQCBGbG9hdFJlY3QgUmVuZGVyU1ZHUm9v
dDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiByZXBhaW50UmVj
dAogICAgICAgICBzaGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3coYWRqdXN0ZWRSZWN0KTsKIAog
ICAgIC8vIEFwcGx5IGluaXRpYWwgdmlld3BvcnQgY2xpcAotICAgIGlmIChzaG91bGRBcHBseVZp
ZXdwb3J0Q2xpcCgpKQotICAgICAgICBhZGp1c3RlZFJlY3QuaW50ZXJzZWN0KHNuYXBwZWRJbnRS
ZWN0KGJvcmRlckJveFJlY3QoKSkpOworICAgIGlmIChzaG91bGRBcHBseVZpZXdwb3J0Q2xpcCgp
KSB7CisgICAgICAgIGlmICh1c2VFZGdlSW5jbHVzaXZlSW50ZXJzZWN0aW9uKQorICAgICAgICAg
ICAgKmludGVyc2VjdHMgPSBhZGp1c3RlZFJlY3QuZWRnZUluY2x1c2l2ZUludGVyc2VjdChzbmFw
cGVkSW50UmVjdChib3JkZXJCb3hSZWN0KCkpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICBhZGp1c3RlZFJlY3QuaW50ZXJzZWN0KHNuYXBwZWRJbnRSZWN0KGJvcmRlckJveFJlY3QoKSkp
OworICAgICAgICAgICAgaWYgKGludGVyc2VjdHMpCisgICAgICAgICAgICAgICAgKmludGVyc2Vj
dHMgPSAhYWRqdXN0ZWRSZWN0LmlzRW1wdHkoKTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIGlm
IChtX2hhc0JveERlY29yYXRpb25zIHx8IGhhc1JlbmRlck92ZXJmbG93KCkpIHsKICAgICAgICAg
Ly8gVGhlIHNlbGVjdGlvblJlY3QgY2FuIHByb2plY3Qgb3V0c2lkZSBvZiB0aGUgb3ZlcmZsb3dS
ZWN0LCBzbyB0YWtlIHRoZWlyIHVuaW9uCiAgICAgICAgIC8vIGZvciByZXBhaW50aW5nIHRvIGF2
b2lkIHNlbGVjdGlvbiBwYWludGluZyBnbGl0Y2hlcy4KICAgICAgICAgTGF5b3V0UmVjdCBkZWNv
cmF0ZWRSZXBhaW50UmVjdCA9IHVuaW9uUmVjdChsb2NhbFNlbGVjdGlvblJlY3QoZmFsc2UpLCB2
aXN1YWxPdmVyZmxvd1JlY3QoKSk7CiAgICAgICAgIGFkanVzdGVkUmVjdC51bml0ZShkZWNvcmF0
ZWRSZXBhaW50UmVjdCk7CisgICAgICAgIGlmIChpbnRlcnNlY3RzKQorICAgICAgICAgICAgKmlu
dGVyc2VjdHMgfD0gIWFkanVzdGVkUmVjdC5pc0VtcHR5KCk7CiAgICAgfQotICAgIHJldHVybiBS
ZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGVuY2xvc2luZ0ludFJlY3QoYWRq
dXN0ZWRSZWN0KSwgcmVwYWludENvbnRhaW5lciwge2ZpeGVkLCBmYWxzZX0pOworICAgIHJldHVy
biBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGVuY2xvc2luZ0ludFJlY3Qo
YWRqdXN0ZWRSZWN0KSwgcmVwYWludENvbnRhaW5lciwge2ZpeGVkLCBmYWxzZSwgdXNlRWRnZUlu
Y2x1c2l2ZUludGVyc2VjdGlvbn0sIGludGVyc2VjdHMpOwogfQogCiAvLyBUaGlzIG1ldGhvZCBl
eHBlY3RzIGxvY2FsIENTUyBib3ggY29vcmRpbmF0ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IGZkNTdjZDAxYmE1ODUxMzE3YmRjMzE0MGRk
YTU4YzM5MGZiMGE1ZDMuLmRlM2NlMWI0ZWU3ZTBiZGEwNjZmMDdjZmQwNWZlMmMzYmUxODc3ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC05
Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0
UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9u
SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVz
dEFjdGlvbikgb3ZlcnJpZGU7CiAKICAgICBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RG
b3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIp
IGNvbnN0IG92ZXJyaWRlOwotICAgIEZsb2F0UmVjdCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWlu
dChjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBib29sIGZpeGVkKSBjb25zdCBvdmVycmlkZTsKKyAgICBGbG9hdFJlY3QgY29t
cHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VFZGdl
SW5jbHVzaXZlSW50ZXJzZWN0aW9uLCBib29sKiBpbnRlcnNlY3RzKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxh
Z3MsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBvdmVycmlkZTsKICAgICBjb25zdCBSZW5kZXJPYmpl
Y3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
YW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCmluZGV4IDNh
NzUxYjljYjQyYWJkNWVlNDNmNTMyZDlhNmYyOTFjOGEyODdhZDYuLmUwZjZjNzcxMDQ2OWIzNTBm
YmYxZGVlZGNhOTQ0Y2JlNzBkZDc4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdUZXh0LmNwcApAQCAtOTIsMTQgKzkyLDE0IEBAIExheW91dFJlY3QgUmVu
ZGVyU1ZHVGV4dDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iCiAgICAgcmV0dXJuIFNWR1JlbmRlclN1cHBvcnQ6OmNsaXBwZWRPdmVyZmxvd1Jl
Y3RGb3JSZXBhaW50KCp0aGlzLCByZXBhaW50Q29udGFpbmVyKTsKIH0KIAotTGF5b3V0UmVjdCBS
ZW5kZXJTVkdUZXh0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVj
dCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgUmVwYWlu
dENvbnRleHQgY29udGV4dCkgY29uc3QKK0xheW91dFJlY3QgUmVuZGVyU1ZHVGV4dDo6Y29tcHV0
ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFJlcGFpbnRDb250ZXh0IGNvbnRleHQsIGJv
b2wqIGludGVyc2VjdHMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVuY2xvc2luZ0xheW91dFJlY3Qo
Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQocmVjdCwgcmVwYWludENvbnRhaW5lciwgY29udGV4
dC5tX2hhc1Bvc2l0aW9uRml4ZWREZXNjZW5kYW50KSk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0xh
eW91dFJlY3QoY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQocmVjdCwgcmVwYWludENvbnRhaW5l
ciwgY29udGV4dC5tX2hhc1Bvc2l0aW9uRml4ZWREZXNjZW5kYW50LCBjb250ZXh0Lm1fdXNlRWRn
ZUluY2x1c2l2ZUludGVyc2VjdGlvbiwgaW50ZXJzZWN0cykpOwogfQogCi1GbG9hdFJlY3QgUmVu
ZGVyU1ZHVGV4dDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgRmxvYXRSZWN0JiBy
ZXBhaW50UmVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgYm9vbCBmaXhlZCkgY29uc3QKK0Zsb2F0UmVjdCBSZW5kZXJTVkdUZXh0Ojpjb21wdXRlRmxv
YXRSZWN0Rm9yUmVwYWludChjb25zdCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVz
ZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24sIGJvb2wqIGludGVyc2VjdHMpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KCp0
aGlzLCByZXBhaW50UmVjdCwgcmVwYWludENvbnRhaW5lciwgZml4ZWQpOworICAgIHJldHVybiBT
VkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCgqdGhpcywgcmVwYWlu
dFJlY3QsIHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VFZGdlSW5jbHVzaXZlSW50ZXJzZWN0
aW9uLCBpbnRlcnNlY3RzKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncywgYm9vbCog
d2FzRml4ZWQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1RleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
VGV4dC5oCmluZGV4IGE1ZDFhNzhiOThiMzA2NTc1NTAzZmE4NzJkYmFhYzdmNjllMDc3MmYuLjA4
YTZhZGY3ZWIwNGQ2ZTJmN2RlY2E4MzM0MmE3MTQ3ZDhiNWY5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCkBAIC03OCw4ICs3OCw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2Fz
Rml4ZWQpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dS
ZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBMYXlvdXRSZWN0IGNvbXB1dGVSZWN0Rm9yUmVwYWlu
dChjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgUmVwYWludENvbnRleHQgPSB7IH0pIGNvbnN0IG92ZXJyaWRlOwotICAgIEZs
b2F0UmVjdCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBGbG9hdFJlY3QmLCBjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkID0g
ZmFsc2UpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFJlY3QgY29tcHV0ZVJlY3RGb3JSZXBh
aW50KGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBSZXBhaW50Q29udGV4dCA9IHsgfSwgYm9vbCogaW50ZXJzZWN0cyA9IG51
bGxwdHIpIGNvbnN0IG92ZXJyaWRlOworICAgIEZsb2F0UmVjdCBjb21wdXRlRmxvYXRSZWN0Rm9y
UmVwYWludChjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wgdXNlRWRnZUluY2x1c2l2
ZUludGVyc2VjdGlvbiA9IGZhbHNlLCBib29sKiBpbnRlcnNlY3RzID0gbnVsbHB0cikgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29y
ZGluYXRlc0ZsYWdzLCBib29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3Qg
UmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBw
b3J0LmNwcAppbmRleCA5NzFjYjFhNzE0NGNjZmIwZGQ4OTBkZDVkZDhjNzQ2MmEzNWQxZjc2Li4w
ZjdjNWZlMjg5NzllM2NjMzRjMjNmZTI3OTgwOGRiMWU5OTllMTc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAgLTcyLDE3ICs3
MiwxOSBAQCBMYXlvdXRSZWN0IFNWR1JlbmRlclN1cHBvcnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RG
b3JSZXBhaW50KGNvbnN0IFJlbmRlckVsZW1lbnQmCiAgICAgcmV0dXJuIGVuY2xvc2luZ0xheW91
dFJlY3QocmVuZGVyZXIuY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQocmVwYWludFJlY3QsIHJl
cGFpbnRDb250YWluZXIpKTsKIH0KIAotRmxvYXRSZWN0IFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1
dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25z
dCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkKQorRmxvYXRSZWN0IFNWR1JlbmRlclN1cHBvcnQ6
OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRlcmVy
LCBjb25zdCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZUVkZ2VJbmNsdXNpdmVJ
bnRlcnNlY3Rpb24sIGJvb2wqIGludGVyc2VjdHMpCiB7CiAgICAgRmxvYXRSZWN0IGFkanVzdGVk
UmVjdCA9IHJlcGFpbnRSZWN0OwogICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlJiBzdmdTdHlsZSA9
IHJlbmRlcmVyLnN0eWxlKCkuc3ZnU3R5bGUoKTsKICAgICBpZiAoY29uc3QgU2hhZG93RGF0YSog
c2hhZG93ID0gc3ZnU3R5bGUuc2hhZG93KCkpCiAgICAgICAgIHNoYWRvdy0+YWRqdXN0UmVjdEZv
clNoYWRvdyhhZGp1c3RlZFJlY3QpOwogICAgIGFkanVzdGVkUmVjdC5pbmZsYXRlKHJlbmRlcmVy
LnN0eWxlKCkub3V0bGluZVdpZHRoKCkpOworICAgIGlmIChpbnRlcnNlY3RzKQorICAgICAgICAq
aW50ZXJzZWN0cyB8PSAhYWRqdXN0ZWRSZWN0LmlzRW1wdHkoKTsKIAogICAgIC8vIFRyYW5zbGF0
ZSB0byBjb29yZHMgaW4gb3VyIHBhcmVudCByZW5kZXJlciwgYW5kIHRoZW4gY2FsbCBjb21wdXRl
RmxvYXRSZWN0Rm9yUmVwYWludCgpIG9uIG91ciBwYXJlbnQuCiAgICAgYWRqdXN0ZWRSZWN0ID0g
cmVuZGVyZXIubG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpLm1hcFJlY3QoYWRqdXN0ZWRSZWN0KTsK
LSAgICByZXR1cm4gcmVuZGVyZXIucGFyZW50KCktPmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50
KGFkanVzdGVkUmVjdCwgcmVwYWludENvbnRhaW5lciwgZml4ZWQpOworICAgIHJldHVybiByZW5k
ZXJlci5wYXJlbnQoKS0+Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoYWRqdXN0ZWRSZWN0LCBy
ZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdXNlRWRnZUluY2x1c2l2ZUludGVyc2VjdGlvbiwgaW50
ZXJzZWN0cyk7CiB9CiAKIGNvbnN0IFJlbmRlckVsZW1lbnQmIFNWR1JlbmRlclN1cHBvcnQ6Omxv
Y2FsVG9QYXJlbnRUcmFuc2Zvcm0oY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIEFmZmlu
ZVRyYW5zZm9ybSAmdHJhbnNmb3JtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclN1cHBvcnQuaAppbmRleCBiMzUzMzM5NWYyMjA0NjZhNGRiNGQxYjNlZGQzMzQz
ZjM1ODYwYTQ5Li5kZDRlOGE4NDMxMmNjZTRiMDhhZWI4N2I4NzFmY2Y4NGVjZGJkYjU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaApAQCAt
NjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgLy8gSW1wb3J0YW50IGZ1bmN0aW9ucyB1c2VkIGJ5
IG5lYXJseSBhbGwgU1ZHIHJlbmRlcmVycyBjZW50cmFsaXppbmcgY29vcmRpbmF0ZSB0cmFuc2Zv
cm1hdGlvbnMgLyByZXBhaW50IHJlY3QgY2FsY3VsYXRpb25zCiAgICAgc3RhdGljIEZsb2F0UmVj
dCByZXBhaW50UmVjdEZvclJlbmRlcmVySW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hh
ZG93KGNvbnN0IFJlbmRlckVsZW1lbnQmKTsKICAgICBzdGF0aWMgTGF5b3V0UmVjdCBjbGlwcGVk
T3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJFbGVtZW50JiwgY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7Ci0gICAgc3RhdGljIEZsb2F0UmVj
dCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJFbGVtZW50JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgYm9vbCBmaXhlZCk7CisgICAgc3RhdGljIEZsb2F0UmVjdCBjb21wdXRlRmxvYXRSZWN0Rm9y
UmVwYWludChjb25zdCBSZW5kZXJFbGVtZW50JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1
c2VFZGdlSW5jbHVzaXZlSW50ZXJzZWN0aW9uLCBib29sKiBpbnRlcnNlY3RzKTsKICAgICBzdGF0
aWMgY29uc3QgUmVuZGVyRWxlbWVudCYgbG9jYWxUb1BhcmVudFRyYW5zZm9ybShjb25zdCBSZW5k
ZXJFbGVtZW50JiwgQWZmaW5lVHJhbnNmb3JtICYpOwogICAgIHN0YXRpYyB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoY29uc3QgUmVuZGVyRWxlbWVudCYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCogd2FzRml4ZWQp
OwogICAgIHN0YXRpYyBjb25zdCBSZW5kZXJFbGVtZW50KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckVsZW1lbnQmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNl
c3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKaW5kZXggZTUxZjc4MTQ5ZDg5OThjNWM4NWQ3MWJmNDZlYzYwYmJjNzFlOGEzMS4uOWQ4
YjljMDg5MzM4NTQ0MDA2ZGM1NjZiZjhjNTA5MTE0ODhmY2YxOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMDktMTQgIEFsaSBKdW1hICA8YWp1
bWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnRlcnNlY3Rpb25PYnNlcnZlcl0gSGFuZGxl
IHplcm8tYXJlYSBpbnRlcnNlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODk2MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIGV4cGVjdGF0aW9ucyBmb3IgdGVzdHMgdGhhdCBu
b3cgcGFzcy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2Jz
ZXJ2ZXIvZWRnZS1pbmNsdXNpdmUtaW50ZXJzZWN0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2lzSW50ZXJzZWN0aW5n
LWNoYW5nZS1ldmVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvc2FtZS1kb2N1bWVudC16ZXJvLXNpemUtdGFyZ2V0LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9i
c2VydmVyL3RleHQtdGFyZ2V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3plcm8tYXJlYS1lbGVtZW50LXZpc2libGUtZXhw
ZWN0ZWQudHh0OgorCiAyMDE4LTA5LTEyICBBbGkgSnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbSW50ZXJzZWN0aW9uT2JzZXJ2ZXJdIEltcGxlbWVudCByb290TWFyZ2luIGV4
cGFuc2lvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvZWRnZS1pbmNsdXNpdmUtaW50ZXJzZWN0aW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2VkZ2UtaW5jbHVzaXZlLWludGVyc2VjdGlvbi1leHBl
Y3RlZC50eHQKaW5kZXggMDc2NDMzODE2NjAxNWI0YThmNTU2ZWYxMzg3MmVmNmEzYTI1NDY5OS4u
YmRjNTljNDYzYmQ2Y2RiZGE5ZTMzZTNmZmQzNmMzZWQ0M2VmNGEyNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2Jz
ZXJ2ZXIvZWRnZS1pbmNsdXNpdmUtaW50ZXJzZWN0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNl
cnZlci9lZGdlLWluY2x1c2l2ZS1pbnRlcnNlY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEs
NyBAQAogCiBQQVNTIEludGVyc2VjdGlvbk9ic2VydmVyIHNob3VsZCBkZXRlY3QgYW5kIHJlcG9y
dCBlZGdlLWFkamFjZW50IGFuZCB6ZXJvLWFyZWEgaW50ZXJzZWN0aW9ucy4gCiBQQVNTIEZpcnN0
IHJBRi4gCi1GQUlMIFNldCB0cmFuc2Zvcm09dHJhbnNsYXRlWSgyMDBweCkgb24gdGFyZ2V0LiBh
c3NlcnRfZXF1YWxzOiBlbnRyaWVzLmxlbmd0aCBleHBlY3RlZCAyIGJ1dCBnb3QgMQotRkFJTCBT
ZXQgdHJhbnNmb3JtPXRyYW5zbGF0ZVkoMjAxcHgpIG9uIHRhcmdldC4gYXNzZXJ0X2VxdWFsczog
ZW50cmllcy5sZW5ndGggZXhwZWN0ZWQgMyBidXQgZ290IDEKLUZBSUwgU2V0IHRyYW5zZm9ybT10
cmFuc2xhdGVZKDE4NXB4KSBvbiB0YXJnZXQuIGFzc2VydF9lcXVhbHM6IGVudHJpZXMubGVuZ3Ro
IGV4cGVjdGVkIDQgYnV0IGdvdCAxCitQQVNTIFNldCB0cmFuc2Zvcm09dHJhbnNsYXRlWSgyMDBw
eCkgb24gdGFyZ2V0LiAKK1BBU1MgU2V0IHRyYW5zZm9ybT10cmFuc2xhdGVZKDIwMXB4KSBvbiB0
YXJnZXQuIAorUEFTUyBTZXQgdHJhbnNmb3JtPXRyYW5zbGF0ZVkoMTg1cHgpIG9uIHRhcmdldC4g
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2lzSW50ZXJzZWN0aW5nLWNoYW5nZS1ldmVudHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaXNJbnRlcnNlY3RpbmctY2hhbmdlLWV2ZW50cy1leHBlY3Rl
ZC50eHQKaW5kZXggOTk4ZTBmYTYwZDBiNmE2NWU5ODg2YmQ1MGNkODliM2M0NzI5MjJmNS4uZjc5
N2FmMzE3ODk2YTIzMDMzYzg5MGQwODFkZGFhYzE4NGJiNjYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2
ZXIvaXNJbnRlcnNlY3RpbmctY2hhbmdlLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2
ZXIvaXNJbnRlcnNlY3RpbmctY2hhbmdlLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw3
IEBACiAKIFBBU1MgaXNJbnRlcnNlY3RpbmcgY2hhbmdlcyBzaG91bGQgdHJpZ2dlciBub3RpZmlj
YXRpb25zLiAKLUZBSUwgUmVjdHMgaW4gaW5pdGlhbCBub3RpZmljYXRpb25zIHNob3VsZCByZXBv
cnQgaW5pdGlhbCBwb3NpdGlvbnMuIGFzc2VydF9lcXVhbHM6IGVudHJpZXNbMl0udGFyZ2V0Lmlz
SW50ZXJzZWN0aW5nIGVxdWFscyB0cnVlIGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQorUEFT
UyBSZWN0cyBpbiBpbml0aWFsIG5vdGlmaWNhdGlvbnMgc2hvdWxkIHJlcG9ydCBpbml0aWFsIHBv
c2l0aW9ucy4gCitQQVNTIFNldCBzY3JvbGxUb3A9MTAwIGFuZCBjaGVjayBmb3Igbm8gbmV3IG5v
dGlmaWNhdGlvbnMuIAorUEFTUyBBZGQgNHRoIHRhcmdldC4gCitQQVNTIFNldCBzY3JvbGxUb3A9
MTAwIGFuZCBjaGVjayBmb3Igb25lIG5ldyBub3RpZmljYXRpb24uIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1v
YnNlcnZlci9zYW1lLWRvY3VtZW50LXplcm8tc2l6ZS10YXJnZXQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2Jz
ZXJ2ZXIvc2FtZS1kb2N1bWVudC16ZXJvLXNpemUtdGFyZ2V0LWV4cGVjdGVkLnR4dAppbmRleCBi
ZTAzMWEwYzI5OWNmMzY4MTk1NzVlNGM2YjEwMGUwNmYyYzg3NTNjLi44MDJlOGU0N2ZjOTY4MGZh
YmZiMTRhZWIzOGU1NTI1NzlkMTY0MDFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9zYW1lLWRvY3Vt
ZW50LXplcm8tc2l6ZS10YXJnZXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3NhbWUtZG9j
dW1lbnQtemVyby1zaXplLXRhcmdldC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKIFBB
U1MgT2JzZXJ2aW5nIGEgemVyby1hcmVhIHRhcmdldC4gCiBQQVNTIEZpcnN0IHJBRiAKLUZBSUwg
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAzMDAgYXNzZXJ0X2VxdWFsczog
ZW50cmllcy5sZW5ndGggZXhwZWN0ZWQgMiBidXQgZ290IDEKLUZBSUwgZG9jdW1lbnQuc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AgPSAxMDAgYXNzZXJ0X2VxdWFsczogZW50cmllcy5sZW5ndGgg
ZXhwZWN0ZWQgMyBidXQgZ290IDEKK1BBU1MgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3AgPSAzMDAgCitQQVNTIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0g
MTAwIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci90ZXh0LXRhcmdldC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1v
YnNlcnZlci90ZXh0LXRhcmdldC1leHBlY3RlZC50eHQKaW5kZXggZTYzYTQ4NzM5OTQyMzU5NDli
ODM0ZmZkM2Q3MDNmZGRiZjEwN2YzYS4uMmMwODgyODI0NDBjNzQ0ZjM0NGJjM2EzYmNiOTdmYjlk
MmU5ODU4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvdGV4dC10YXJnZXQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0
aW9uLW9ic2VydmVyL3RleHQtdGFyZ2V0LWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDYgQEAKIAog
UEFTUyBJbnRlcnNlY3Rpb25PYnNlcnZlciBvYnNlcnZpbmcgYSBiciBlbGVtZW50LiAKIFBBU1Mg
Rmlyc3QgckFGLiAKLUZBSUwgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAz
MDAgYXNzZXJ0X2VxdWFsczogZW50cmllcy5sZW5ndGggZXhwZWN0ZWQgMiBidXQgZ290IDEKLUZB
SUwgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAxMDAgYXNzZXJ0X2VxdWFs
czogZW50cmllcy5sZW5ndGggZXhwZWN0ZWQgMyBidXQgZ290IDEKK1BBU1MgZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAzMDAgCitQQVNTIGRvY3VtZW50LnNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wID0gMTAwIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci96ZXJvLWFyZWEt
ZWxlbWVudC12aXNpYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3plcm8tYXJlYS1lbGVtZW50
LXZpc2libGUtZXhwZWN0ZWQudHh0CmluZGV4IGMxMThmZGY2NmQwNThmZTU3NjJhYTA1ZWMwYmY3
MjUwYzkxODBkZTQuLjA0MmI4ODFlMTFjY2E3NjljNjM2MDU4NWRmNTdlMjhjODM4Mjc5ZWYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50
ZXJzZWN0aW9uLW9ic2VydmVyL3plcm8tYXJlYS1lbGVtZW50LXZpc2libGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJz
ZWN0aW9uLW9ic2VydmVyL3plcm8tYXJlYS1lbGVtZW50LXZpc2libGUtZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsNCBAQAogCiBQQVNTIEVuc3VyZSB0aGF0IGEgemVyby1hcmVhIHRhcmdldCBpbnRl
cnNlY3Rpbmcgcm9vdCBnZW5lcmF0ZXMgYSBub3RpZmljYXRpb24gd2l0aCBpbnRlcnNlY3Rpb25S
YXRpbyA9PSAxIAotRkFJTCBGaXJzdCByQUYgc2hvdWxkIGdlbmVyYXRlIGEgbm90aWZpY2F0aW9u
LiBhc3NlcnRfZXF1YWxzOiBpbnRlcnNlY3Rpb25SYXRpbyA9PSAxIGV4cGVjdGVkIDEgYnV0IGdv
dCAwCitQQVNTIEZpcnN0IHJBRiBzaG91bGQgZ2VuZXJhdGUgYSBub3RpZmljYXRpb24uIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351522</attachid>
            <date>2018-10-03 08:28:00 -0700</date>
            <delta_ts>2018-10-18 14:51:43 -0700</delta_ts>
            <desc>Patch (depends on bug 189833)</desc>
            <filename>bug-189624-20181003112759.patch</filename>
            <type>text/plain</type>
            <size>14434</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzYzYWE1NTM4ZjBiMzA2
NDY4NjBjMjUxZTE1MTM1NTM2MzU5OWM3OS4uMWY3MWVjNjAxZGViZTIyZGQ5ZWVlMjAxNzhjZTQ1
ZjU0ZDU1YzkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE4LTEwLTAzICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICBbSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJdIEhhbmRsZSB6ZXJvLWFyZWEgaW50ZXJzZWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGVkZ2UtaW5jbHVzaXZlIGludGVyc2VjdGlv
biB3aGVuIGFwcGx5aW5nIGNsaXBzIGFuZCBpbnRlcnNlY3Rpbmcgd2l0aCB0aGUKKyAgICAgICAg
cm9vdCwgc28gdGhhdCB0d28gcmVjdHMgdGhhdCB0b3VjaCBlYWNoIG90aGVyIGFyZSBjb25zaWRl
cmVkIGludGVyc2VjdGluZyBldmVuCisgICAgICAgIGlmIHRoZSBhcmVhIG9mIHRoZWlyIGludGVy
c2VjdGlvbiBpcyAwLgorCisgICAgICAgIENvdmVyZWQgYnkgcmViYXNlZCB0ZXN0cyBpbiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci4KKworICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlSW50ZXJz
ZWN0aW9uU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUludGVyc2Vj
dGlvbk9ic2VydmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlSW50ZXJzZWN0aW9u
UmVjdHMpOiBEZWxldGVkLgorCiAyMDE4LTA5LTI1ICBBbGkgSnVtYSAgPGFqdW1hQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbSW50ZXJzZWN0aW9uT2JzZXJ2ZXJdIEZhY3RvciBvdXQgcmVjdCBt
YXBwaW5nIGFuZCBjbGlwcGluZyBsb2dpYyBmcm9tIGNvbXB1dGVSZWN0Rm9yUmVwYWludApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMGRjYjhlN2I0MjJiYjZlZGZjMTE3NzE1ZjgzMTYxYjc1
MzYyMjdhMS4uYWNmZWExZjM4NDEwNjRhNWJkNDlmMTNiNTI4Mzk2ZmE1ODAxZGE3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03NTE0LDI1ICs3NTE0LDMyIEBAIHN0YXRpYyB2b2lkIGV4
cGFuZFJvb3RCb3VuZHNXaXRoUm9vdE1hcmdpbihGbG9hdFJlY3QmIGxvY2FsUm9vdEJvdW5kcywg
Y29uc3QgTGVuCiAgICAgbG9jYWxSb290Qm91bmRzLmV4cGFuZChyb290TWFyZ2luRmxvYXRCb3gp
OwogfQogCi1zdGF0aWMgdm9pZCBjb21wdXRlSW50ZXJzZWN0aW9uUmVjdHMoRnJhbWVWaWV3JiBm
cmFtZVZpZXcsIEludGVyc2VjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgRWxlbWVudCYgdGFyZ2V0
LCBGbG9hdFJlY3QmIGFic1RhcmdldFJlY3QsIEZsb2F0UmVjdCYgYWJzSW50ZXJzZWN0aW9uUmVj
dCwgRmxvYXRSZWN0JiBhYnNSb290Qm91bmRzKQorc3RydWN0IEludGVyc2VjdGlvbk9ic2VydmF0
aW9uU3RhdGUgeworICAgIEZsb2F0UmVjdCBhYnNvbHV0ZVRhcmdldFJlY3Q7CisgICAgRmxvYXRS
ZWN0IGFic29sdXRlUm9vdEJvdW5kczsKKyAgICBGbG9hdFJlY3QgYWJzb2x1dGVJbnRlcnNlY3Rp
b25SZWN0OworICAgIGJvb2wgaXNJbnRlcnNlY3Rpbmc7Cit9OworCitzdGF0aWMgc3RkOjpvcHRp
b25hbDxJbnRlcnNlY3Rpb25PYnNlcnZhdGlvblN0YXRlPiBjb21wdXRlSW50ZXJzZWN0aW9uU3Rh
dGUoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIEludGVyc2VjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwg
RWxlbWVudCYgdGFyZ2V0KQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgaW50ZXJzZWN0aW9u
IGNvbXB1dGF0aW9uIGZvciB0aGUgY3Jvc3MtZG9jdW1lbnQgY2FzZS4KICAgICBpZiAob2JzZXJ2
ZXIudHJhY2tpbmdEb2N1bWVudCgpICE9ICZ0YXJnZXQuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgYXV0byogdGFyZ2V0UmVu
ZGVyZXIgPSB0YXJnZXQucmVuZGVyZXIoKTsKICAgICBpZiAoIXRhcmdldFJlbmRlcmVyKQotICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBGbG9hdFJl
Y3QgbG9jYWxSb290Qm91bmRzOwogICAgIFJlbmRlckJsb2NrKiByb290UmVuZGVyZXI7CiAgICAg
aWYgKG9ic2VydmVyLnJvb3QoKSkgewogICAgICAgICBpZiAoIW9ic2VydmVyLnJvb3QoKS0+cmVu
ZGVyZXIoKSB8fCAhaXM8UmVuZGVyQmxvY2s+KG9ic2VydmVyLnJvb3QoKS0+cmVuZGVyZXIoKSkp
Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
CiAgICAgICAgIHJvb3RSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckJsb2NrPihvYnNlcnZlci5y
b290KCktPnJlbmRlcmVyKCkpOwogICAgICAgICBpZiAoIXJvb3RSZW5kZXJlci0+aXNDb250YWlu
aW5nQmxvY2tBbmNlc3RvckZvcigqdGFyZ2V0UmVuZGVyZXIpKQotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgICAgICBpZiAocm9vdFJl
bmRlcmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkKICAgICAgICAgICAgIGxvY2FsUm9vdEJvdW5kcyA9
IHJvb3RSZW5kZXJlci0+Y29udGVudEJveFJlY3QoKTsKQEAgLTc1NTQsMTQgKzc1NjEsMTggQEAg
c3RhdGljIHZvaWQgY29tcHV0ZUludGVyc2VjdGlvblJlY3RzKEZyYW1lVmlldyYgZnJhbWVWaWV3
LCBJbnRlcnNlY3Rpb25PYnNlcnZlciYKICAgICBlbHNlIGlmIChpczxSZW5kZXJMaW5lQnJlYWs+
KHRhcmdldFJlbmRlcmVyKSkKICAgICAgICAgbG9jYWxUYXJnZXRCb3VuZHMgPSBkb3duY2FzdDxS
ZW5kZXJMaW5lQnJlYWs+KHRhcmdldFJlbmRlcmVyKS0+bGluZXNCb3VuZGluZ0JveCgpOwogCi0g
ICAgRmxvYXRSZWN0IHJvb3RMb2NhbEludGVyc2VjdGlvblJlY3QgPSB0YXJnZXRSZW5kZXJlci0+
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGxvY2FsVGFyZ2V0Qm91bmRzLCByb290UmVuZGVyZXIpOwot
ICAgIHJvb3RMb2NhbEludGVyc2VjdGlvblJlY3QuaW50ZXJzZWN0KGxvY2FsUm9vdEJvdW5kcyk7
CisgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRSZWN0PiByb290TG9jYWxUYXJnZXRSZWN0ID0gdGFy
Z2V0UmVuZGVyZXItPmNvbXB1dGVWaXNpYmxlUmVjdEluQ29udGFpbmVyKGxvY2FsVGFyZ2V0Qm91
bmRzLCByb290UmVuZGVyZXIsIHtmYWxzZSAvKiBoYXNQb3NpdGlvbkZpeGVkRGVzY2VuZGFudCAq
LywgZmFsc2UgLyogZGlydHlSZWN0SXNGbGlwcGVkICovLCB0cnVlIC8qIHVzZUVkZ2VJbmNsdXNp
dmVJbnRlcnNlY3Rpb24gKi8sIHRydWUgLyogYXBwbHlDb21wb3NpdGVkQ2xpcHMgKi8sIHRydWUg
LyogYXBwbHlDb21wb3NpdGVkQ29udGFpbmVyU2Nyb2xscyAqL30pOworICAgIEZsb2F0UmVjdCBy
b290TG9jYWxJbnRlcnNlY3Rpb25SZWN0ID0gbG9jYWxSb290Qm91bmRzOworCisgICAgSW50ZXJz
ZWN0aW9uT2JzZXJ2YXRpb25TdGF0ZSBpbnRlcnNlY3Rpb25TdGF0ZTsKKyAgICBpbnRlcnNlY3Rp
b25TdGF0ZS5pc0ludGVyc2VjdGluZyA9IHJvb3RMb2NhbFRhcmdldFJlY3QgJiYgcm9vdExvY2Fs
SW50ZXJzZWN0aW9uUmVjdC5lZGdlSW5jbHVzaXZlSW50ZXJzZWN0KCpyb290TG9jYWxUYXJnZXRS
ZWN0KTsKIAotICAgIGlmICghcm9vdExvY2FsSW50ZXJzZWN0aW9uUmVjdC5pc0VtcHR5KCkpCi0g
ICAgICAgIGFic0ludGVyc2VjdGlvblJlY3QgPSByb290UmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0
ZVF1YWQocm9vdExvY2FsSW50ZXJzZWN0aW9uUmVjdCkuYm91bmRpbmdCb3goKTsKKyAgICBpZiAo
aW50ZXJzZWN0aW9uU3RhdGUuaXNJbnRlcnNlY3RpbmcpCisgICAgICAgIGludGVyc2VjdGlvblN0
YXRlLmFic29sdXRlSW50ZXJzZWN0aW9uUmVjdCA9IHJvb3RSZW5kZXJlci0+bG9jYWxUb0Fic29s
dXRlUXVhZChyb290TG9jYWxJbnRlcnNlY3Rpb25SZWN0KS5ib3VuZGluZ0JveCgpOwogCi0gICAg
YWJzVGFyZ2V0UmVjdCA9IHRhcmdldFJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0
UmVjdChsb2NhbFRhcmdldEJvdW5kcykpLmJvdW5kaW5nQm94KCk7Ci0gICAgYWJzUm9vdEJvdW5k
cyA9IHJvb3RSZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChsb2NhbFJvb3RCb3VuZHMpLmJv
dW5kaW5nQm94KCk7CisgICAgaW50ZXJzZWN0aW9uU3RhdGUuYWJzb2x1dGVUYXJnZXRSZWN0ID0g
dGFyZ2V0UmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsVGFyZ2V0
Qm91bmRzKSkuYm91bmRpbmdCb3goKTsKKyAgICBpbnRlcnNlY3Rpb25TdGF0ZS5hYnNvbHV0ZVJv
b3RCb3VuZHMgPSByb290UmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSb290Qm91
bmRzKS5ib3VuZGluZ0JveCgpOworICAgIHJldHVybiBpbnRlcnNlY3Rpb25TdGF0ZTsKIH0KIAog
dm9pZCBEb2N1bWVudDo6dXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25zKCkKQEAgLTc1OTAs
MjggKzc2MDEsMzggQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YXRp
b25zKCkKICAgICAgICAgICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CiAgICAgICAgICAg
ICBhdXRvJiByZWdpc3RyYXRpb24gPSB0YXJnZXRSZWdpc3RyYXRpb25zW2luZGV4XTsKIAotICAg
ICAgICAgICAgRmxvYXRSZWN0IGFic1RhcmdldFJlY3Q7Ci0gICAgICAgICAgICBGbG9hdFJlY3Qg
YWJzSW50ZXJzZWN0aW9uUmVjdDsKLSAgICAgICAgICAgIEZsb2F0UmVjdCBhYnNSb290Qm91bmRz
OwotICAgICAgICAgICAgY29tcHV0ZUludGVyc2VjdGlvblJlY3RzKCpmcmFtZVZpZXcsICpvYnNl
cnZlciwgKnRhcmdldCwgYWJzVGFyZ2V0UmVjdCwgYWJzSW50ZXJzZWN0aW9uUmVjdCwgYWJzUm9v
dEJvdW5kcyk7CisgICAgICAgICAgICBhdXRvIGludGVyc2VjdGlvblN0YXRlID0gY29tcHV0ZUlu
dGVyc2VjdGlvblN0YXRlKCpmcmFtZVZpZXcsICpvYnNlcnZlciwgKnRhcmdldCk7CiAKLSAgICAg
ICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgemVyby1hcmVhIGludGVyc2VjdGlvbnMgKGUuZy4sIGlu
dGVyc2VjdGlvbnMgaW52b2x2aW5nIHplcm8tYXJlYSB0YXJnZXRzKS4KLSAgICAgICAgICAgIGJv
b2wgaXNJbnRlcnNlY3RpbmcgPSBhYnNJbnRlcnNlY3Rpb25SZWN0LmFyZWEoKTsKLSAgICAgICAg
ICAgIGZsb2F0IGludGVyc2VjdGlvblJhdGlvID0gaXNJbnRlcnNlY3RpbmcgPyBhYnNJbnRlcnNl
Y3Rpb25SZWN0LmFyZWEoKSAvIGFic1RhcmdldFJlY3QuYXJlYSgpIDogMDsKKyAgICAgICAgICAg
IGZsb2F0IGludGVyc2VjdGlvblJhdGlvID0gMDsKICAgICAgICAgICAgIHNpemVfdCB0aHJlc2hv
bGRJbmRleCA9IDA7Ci0gICAgICAgICAgICBpZiAoaXNJbnRlcnNlY3RpbmcpIHsKLSAgICAgICAg
ICAgICAgICBhdXRvJiB0aHJlc2hvbGRzID0gb2JzZXJ2ZXItPnRocmVzaG9sZHMoKTsKLSAgICAg
ICAgICAgICAgICB3aGlsZSAodGhyZXNob2xkSW5kZXggPCB0aHJlc2hvbGRzLnNpemUoKSAmJiB0
aHJlc2hvbGRzW3RocmVzaG9sZEluZGV4XSA8PSBpbnRlcnNlY3Rpb25SYXRpbykKLSAgICAgICAg
ICAgICAgICAgICAgKyt0aHJlc2hvbGRJbmRleDsKKyAgICAgICAgICAgIGlmIChpbnRlcnNlY3Rp
b25TdGF0ZSkgeworICAgICAgICAgICAgICAgIGlmIChpbnRlcnNlY3Rpb25TdGF0ZS0+aXNJbnRl
cnNlY3RpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgZmxvYXQgYWJzVGFyZ2V0QXJlYSA9IGlu
dGVyc2VjdGlvblN0YXRlLT5hYnNvbHV0ZVRhcmdldFJlY3QuYXJlYSgpOworICAgICAgICAgICAg
ICAgICAgICBpZiAoYWJzVGFyZ2V0QXJlYSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGludGVy
c2VjdGlvblJhdGlvID0gaW50ZXJzZWN0aW9uU3RhdGUtPmFic29sdXRlSW50ZXJzZWN0aW9uUmVj
dC5hcmVhKCkgLyBhYnNUYXJnZXRBcmVhOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICBpbnRlcnNlY3Rpb25SYXRpbyA9IDE7CisKKyAgICAgICAgICAg
ICAgICAgICAgYXV0byYgdGhyZXNob2xkcyA9IG9ic2VydmVyLT50aHJlc2hvbGRzKCk7CisgICAg
ICAgICAgICAgICAgICAgIHdoaWxlICh0aHJlc2hvbGRJbmRleCA8IHRocmVzaG9sZHMuc2l6ZSgp
ICYmIHRocmVzaG9sZHNbdGhyZXNob2xkSW5kZXhdIDw9IGludGVyc2VjdGlvblJhdGlvKQorICAg
ICAgICAgICAgICAgICAgICAgICAgKyt0aHJlc2hvbGRJbmRleDsKKyAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAKKwogICAgICAgICAgICAgaWYgKCFyZWdpc3RyYXRpb24ucHJldmlv
dXNUaHJlc2hvbGRJbmRleCB8fCB0aHJlc2hvbGRJbmRleCAhPSByZWdpc3RyYXRpb24ucHJldmlv
dXNUaHJlc2hvbGRJbmRleCkgewotICAgICAgICAgICAgICAgIEZsb2F0UmVjdCB0YXJnZXRCb3Vu
ZGluZ0NsaWVudFJlY3QgPSBmcmFtZVZpZXctPmFic29sdXRlVG9DbGllbnRSZWN0KGFic1Rhcmdl
dFJlY3QpOwotICAgICAgICAgICAgICAgIEZsb2F0UmVjdCBjbGllbnRJbnRlcnNlY3Rpb25SZWN0
ID0gaXNJbnRlcnNlY3RpbmcgPyBmcmFtZVZpZXctPmFic29sdXRlVG9DbGllbnRSZWN0KGFic0lu
dGVyc2VjdGlvblJlY3QpIDogRmxvYXRSZWN0KCk7CisgICAgICAgICAgICAgICAgRmxvYXRSZWN0
IHRhcmdldEJvdW5kaW5nQ2xpZW50UmVjdDsKKyAgICAgICAgICAgICAgICBGbG9hdFJlY3QgY2xp
ZW50SW50ZXJzZWN0aW9uUmVjdDsKKyAgICAgICAgICAgICAgICBGbG9hdFJlY3QgY2xpZW50Um9v
dEJvdW5kczsKKyAgICAgICAgICAgICAgICBpZiAoaW50ZXJzZWN0aW9uU3RhdGUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgdGFyZ2V0Qm91bmRpbmdDbGllbnRSZWN0ID0gZnJhbWVWaWV3LT5hYnNv
bHV0ZVRvQ2xpZW50UmVjdChpbnRlcnNlY3Rpb25TdGF0ZS0+YWJzb2x1dGVUYXJnZXRSZWN0KTsK
KyAgICAgICAgICAgICAgICAgICAgY2xpZW50Um9vdEJvdW5kcyA9IGZyYW1lVmlldy0+YWJzb2x1
dGVUb0NsaWVudFJlY3QoaW50ZXJzZWN0aW9uU3RhdGUtPmFic29sdXRlUm9vdEJvdW5kcyk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChpbnRlcnNlY3Rpb25TdGF0ZS0+aXNJbnRlcnNlY3Rpbmcp
CisgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbnRlcnNlY3Rpb25SZWN0ID0gZnJhbWVW
aWV3LT5hYnNvbHV0ZVRvQ2xpZW50UmVjdChpbnRlcnNlY3Rpb25TdGF0ZS0+YWJzb2x1dGVJbnRl
cnNlY3Rpb25SZWN0KTsKKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogT25jZSBjcm9zcy1kb2N1bWVudCBvYnNlcnZhdGlvbiBpcyBpbXBsZW1lbnRlZCwgb25s
eSByZXBvcnQgcm9vdCBib3VuZHMgaWYgdGhlIHRhcmdldCBkb2N1bWVudCBhbmQKICAgICAgICAg
ICAgICAgICAvLyB0aGUgcm9vdCBkb2N1bWVudCBhcmUgc2ltaWxhci1vcmlnaW4uCi0gICAgICAg
ICAgICAgICAgRmxvYXRSZWN0IGNsaWVudFJvb3RCb3VuZHMgPSBmcmFtZVZpZXctPmFic29sdXRl
VG9DbGllbnRSZWN0KGFic1Jvb3RCb3VuZHMpOwogICAgICAgICAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8RE9NUmVjdEluaXQ+IHJlcG9ydGVkUm9vdEJvdW5kcyA9IERPTVJlY3RJbml0KHsKICAgICAg
ICAgICAgICAgICAgICAgY2xpZW50Um9vdEJvdW5kcy54KCksCiAgICAgICAgICAgICAgICAgICAg
IGNsaWVudFJvb3RCb3VuZHMueSgpLApAQCAtNzYyNiw3ICs3NjQ3LDcgQEAgdm9pZCBEb2N1bWVu
dDo6dXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25zKCkKICAgICAgICAgICAgICAgICAgICAg
eyBjbGllbnRJbnRlcnNlY3Rpb25SZWN0LngoKSwgY2xpZW50SW50ZXJzZWN0aW9uUmVjdC55KCks
IGNsaWVudEludGVyc2VjdGlvblJlY3Qud2lkdGgoKSwgY2xpZW50SW50ZXJzZWN0aW9uUmVjdC5o
ZWlnaHQoKSB9LAogICAgICAgICAgICAgICAgICAgICBpbnRlcnNlY3Rpb25SYXRpbywKICAgICAg
ICAgICAgICAgICAgICAgdGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICBpc0ludGVyc2VjdGlu
ZywKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJzZWN0aW9uU3RhdGU/IGludGVyc2VjdGlvblN0
YXRlLT5pc0ludGVyc2VjdGluZyA6IGZhbHNlLAogICAgICAgICAgICAgICAgIH0pKTsKICAgICAg
ICAgICAgICAgICBuZWVkTm90aWZ5ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICByZWdpc3RyYXRp
b24ucHJldmlvdXNUaHJlc2hvbGRJbmRleCA9IHRocmVzaG9sZEluZGV4OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggODJhOTViMTllOTFmM2Y0ZGMwMmVjNDdlY2U4ODc1OTQ5NDgw
NjUxYS4uYmU3MDc5ZTNjZjAzNTdiNGI0MTBlOWVhNDEyYzYxN2E2YWQwOTE2NCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMTAtMDMgIEFsaSBK
dW1hICA8YWp1bWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnRlcnNlY3Rpb25PYnNlcnZl
cl0gSGFuZGxlIHplcm8tYXJlYSBpbnRlcnNlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk2MjQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIGV4cGVjdGF0aW9ucyBmb3IgdGVz
dHMgdGhhdCBub3cgcGFzcy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNl
Y3Rpb24tb2JzZXJ2ZXIvZWRnZS1pbmNsdXNpdmUtaW50ZXJzZWN0aW9uLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2lzSW50
ZXJzZWN0aW5nLWNoYW5nZS1ldmVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvc2FtZS1kb2N1bWVudC16ZXJvLXNpemUt
dGFyZ2V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJz
ZWN0aW9uLW9ic2VydmVyL3RleHQtdGFyZ2V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3plcm8tYXJlYS1lbGVtZW50LXZp
c2libGUtZXhwZWN0ZWQudHh0OgorCiAyMDE4LTEwLTAxICBTaW1vbiBQaWV0ZXJzICA8emNvcnBh
bkBnbWFpbC5jb20+CiAKICAgICAgICAgPGZvcm0+IGluIHF1aXJrcyBtb2RlIHNob3VsZCBoYXZl
IG1hcmdpbi1ibG9jay1lbmQ6IDFlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvZWRnZS1pbmNsdXNp
dmUtaW50ZXJzZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2VkZ2UtaW5jbHVzaXZlLWlu
dGVyc2VjdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMDc2NDMzODE2NjAxNWI0YThmNTU2ZWYxMzg3
MmVmNmEzYTI1NDY5OS4uYmRjNTljNDYzYmQ2Y2RiZGE5ZTMzZTNmZmQzNmMzZWQ0M2VmNGEyNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bnRlcnNlY3Rpb24tb2JzZXJ2ZXIvZWRnZS1pbmNsdXNpdmUtaW50ZXJzZWN0aW9uLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
dGVyc2VjdGlvbi1vYnNlcnZlci9lZGdlLWluY2x1c2l2ZS1pbnRlcnNlY3Rpb24tZXhwZWN0ZWQu
dHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIEludGVyc2VjdGlvbk9ic2VydmVyIHNob3VsZCBk
ZXRlY3QgYW5kIHJlcG9ydCBlZGdlLWFkamFjZW50IGFuZCB6ZXJvLWFyZWEgaW50ZXJzZWN0aW9u
cy4gCiBQQVNTIEZpcnN0IHJBRi4gCi1GQUlMIFNldCB0cmFuc2Zvcm09dHJhbnNsYXRlWSgyMDBw
eCkgb24gdGFyZ2V0LiBhc3NlcnRfZXF1YWxzOiBlbnRyaWVzLmxlbmd0aCBleHBlY3RlZCAyIGJ1
dCBnb3QgMQotRkFJTCBTZXQgdHJhbnNmb3JtPXRyYW5zbGF0ZVkoMjAxcHgpIG9uIHRhcmdldC4g
YXNzZXJ0X2VxdWFsczogZW50cmllcy5sZW5ndGggZXhwZWN0ZWQgMyBidXQgZ290IDEKLUZBSUwg
U2V0IHRyYW5zZm9ybT10cmFuc2xhdGVZKDE4NXB4KSBvbiB0YXJnZXQuIGFzc2VydF9lcXVhbHM6
IGVudHJpZXMubGVuZ3RoIGV4cGVjdGVkIDQgYnV0IGdvdCAxCitQQVNTIFNldCB0cmFuc2Zvcm09
dHJhbnNsYXRlWSgyMDBweCkgb24gdGFyZ2V0LiAKK1BBU1MgU2V0IHRyYW5zZm9ybT10cmFuc2xh
dGVZKDIwMXB4KSBvbiB0YXJnZXQuIAorUEFTUyBTZXQgdHJhbnNmb3JtPXRyYW5zbGF0ZVkoMTg1
cHgpIG9uIHRhcmdldC4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2lzSW50ZXJzZWN0aW5nLWNo
YW5nZS1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaXNJbnRlcnNlY3RpbmctY2hhbmdl
LWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggOTk4ZTBmYTYwZDBiNmE2NWU5ODg2YmQ1MGNkODli
M2M0NzI5MjJmNS4uZjc5N2FmMzE3ODk2YTIzMDMzYzg5MGQwODFkZGFhYzE4NGJiNjYyNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRl
cnNlY3Rpb24tb2JzZXJ2ZXIvaXNJbnRlcnNlY3RpbmctY2hhbmdlLWV2ZW50cy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRl
cnNlY3Rpb24tb2JzZXJ2ZXIvaXNJbnRlcnNlY3RpbmctY2hhbmdlLWV2ZW50cy1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSw3IEBACiAKIFBBU1MgaXNJbnRlcnNlY3RpbmcgY2hhbmdlcyBzaG91bGQg
dHJpZ2dlciBub3RpZmljYXRpb25zLiAKLUZBSUwgUmVjdHMgaW4gaW5pdGlhbCBub3RpZmljYXRp
b25zIHNob3VsZCByZXBvcnQgaW5pdGlhbCBwb3NpdGlvbnMuIGFzc2VydF9lcXVhbHM6IGVudHJp
ZXNbMl0udGFyZ2V0LmlzSW50ZXJzZWN0aW5nIGVxdWFscyB0cnVlIGV4cGVjdGVkIHRydWUgYnV0
IGdvdCBmYWxzZQorUEFTUyBSZWN0cyBpbiBpbml0aWFsIG5vdGlmaWNhdGlvbnMgc2hvdWxkIHJl
cG9ydCBpbml0aWFsIHBvc2l0aW9ucy4gCitQQVNTIFNldCBzY3JvbGxUb3A9MTAwIGFuZCBjaGVj
ayBmb3Igbm8gbmV3IG5vdGlmaWNhdGlvbnMuIAorUEFTUyBBZGQgNHRoIHRhcmdldC4gCitQQVNT
IFNldCBzY3JvbGxUb3A9MTAwIGFuZCBjaGVjayBmb3Igb25lIG5ldyBub3RpZmljYXRpb24uIAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ludGVyc2VjdGlvbi1vYnNlcnZlci9zYW1lLWRvY3VtZW50LXplcm8tc2l6ZS10YXJnZXQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bnRlcnNlY3Rpb24tb2JzZXJ2ZXIvc2FtZS1kb2N1bWVudC16ZXJvLXNpemUtdGFyZ2V0LWV4cGVj
dGVkLnR4dAppbmRleCBiZTAzMWEwYzI5OWNmMzY4MTk1NzVlNGM2YjEwMGUwNmYyYzg3NTNjLi44
MDJlOGU0N2ZjOTY4MGZhYmZiMTRhZWIzOGU1NTI1NzlkMTY0MDFhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNl
cnZlci9zYW1lLWRvY3VtZW50LXplcm8tc2l6ZS10YXJnZXQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9i
c2VydmVyL3NhbWUtZG9jdW1lbnQtemVyby1zaXplLXRhcmdldC1leHBlY3RlZC50eHQKQEAgLTEs
NiArMSw2IEBACiAKIFBBU1MgT2JzZXJ2aW5nIGEgemVyby1hcmVhIHRhcmdldC4gCiBQQVNTIEZp
cnN0IHJBRiAKLUZBSUwgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAzMDAg
YXNzZXJ0X2VxdWFsczogZW50cmllcy5sZW5ndGggZXhwZWN0ZWQgMiBidXQgZ290IDEKLUZBSUwg
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAxMDAgYXNzZXJ0X2VxdWFsczog
ZW50cmllcy5sZW5ndGggZXhwZWN0ZWQgMyBidXQgZ290IDEKK1BBU1MgZG9jdW1lbnQuc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3AgPSAzMDAgCitQQVNTIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wID0gMTAwIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci90ZXh0LXRhcmdldC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ludGVyc2VjdGlvbi1vYnNlcnZlci90ZXh0LXRhcmdldC1leHBlY3RlZC50eHQKaW5kZXggZTYz
YTQ4NzM5OTQyMzU5NDliODM0ZmZkM2Q3MDNmZGRiZjEwN2YzYS4uMmMwODgyODI0NDBjNzQ0ZjM0
NGJjM2EzYmNiOTdmYjlkMmU5ODU4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvdGV4dC10YXJnZXQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3RleHQtdGFyZ2V0LWV4cGVjdGVkLnR4dApAQCAt
Miw2ICsyLDYgQEAKIAogUEFTUyBJbnRlcnNlY3Rpb25PYnNlcnZlciBvYnNlcnZpbmcgYSBiciBl
bGVtZW50LiAKIFBBU1MgRmlyc3QgckFGLiAKLUZBSUwgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3AgPSAzMDAgYXNzZXJ0X2VxdWFsczogZW50cmllcy5sZW5ndGggZXhwZWN0ZWQg
MiBidXQgZ290IDEKLUZBSUwgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAx
MDAgYXNzZXJ0X2VxdWFsczogZW50cmllcy5sZW5ndGggZXhwZWN0ZWQgMyBidXQgZ290IDEKK1BB
U1MgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSAzMDAgCitQQVNTIGRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMTAwIAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNl
cnZlci96ZXJvLWFyZWEtZWxlbWVudC12aXNpYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3pl
cm8tYXJlYS1lbGVtZW50LXZpc2libGUtZXhwZWN0ZWQudHh0CmluZGV4IGMxMThmZGY2NmQwNThm
ZTU3NjJhYTA1ZWMwYmY3MjUwYzkxODBkZTQuLjA0MmI4ODFlMTFjY2E3NjljNjM2MDU4NWRmNTdl
MjhjODM4Mjc5ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3plcm8tYXJlYS1lbGVtZW50LXZpc2li
bGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3plcm8tYXJlYS1lbGVtZW50LXZpc2libGUt
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNTIEVuc3VyZSB0aGF0IGEgemVyby1h
cmVhIHRhcmdldCBpbnRlcnNlY3Rpbmcgcm9vdCBnZW5lcmF0ZXMgYSBub3RpZmljYXRpb24gd2l0
aCBpbnRlcnNlY3Rpb25SYXRpbyA9PSAxIAotRkFJTCBGaXJzdCByQUYgc2hvdWxkIGdlbmVyYXRl
IGEgbm90aWZpY2F0aW9uLiBhc3NlcnRfZXF1YWxzOiBpbnRlcnNlY3Rpb25SYXRpbyA9PSAxIGV4
cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIEZpcnN0IHJBRiBzaG91bGQgZ2VuZXJhdGUgYSBub3Rp
ZmljYXRpb24uIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352736</attachid>
            <date>2018-10-18 14:51:45 -0700</date>
            <delta_ts>2018-10-19 06:47:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-189624-20181018175147.patch</filename>
            <type>text/plain</type>
            <size>14633</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FlOWY4YjM0OGQwZWFh
YmIxNzY1ZTk4M2ViMWM2MmNiYjY3NjBlMC4uYzVkNGQxZWZiMTA1NWExMjg1ODNjM2VkOWIyNWJh
MjJlZDY2Y2ZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE4LTEwLTE4ICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICBbSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJdIEhhbmRsZSB6ZXJvLWFyZWEgaW50ZXJzZWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgorCisgICAgICAgIFVzZSBlZGdlLWluY2x1c2l2ZSBpbnRlcnNlY3Rpb24g
d2hlbiBhcHBseWluZyBjbGlwcyBhbmQgaW50ZXJzZWN0aW5nIHdpdGggdGhlCisgICAgICAgIHJv
b3QsIHNvIHRoYXQgdHdvIHJlY3RzIHRoYXQgdG91Y2ggZWFjaCBvdGhlciBhcmUgY29uc2lkZXJl
ZCBpbnRlcnNlY3RpbmcgZXZlbgorICAgICAgICBpZiB0aGUgYXJlYSBvZiB0aGVpciBpbnRlcnNl
Y3Rpb24gaXMgMC4KKworICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgdGVzdHMgaW4gaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIuCisKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUludGVyc2Vj
dGlvblN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVJbnRlcnNlY3Rp
b25PYnNlcnZhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUludGVyc2VjdGlvblJl
Y3RzKTogRGVsZXRlZC4KKwogMjAxOC0xMC0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgSGFuZGxlIE1ETlMgcmVzb2x1dGlvbiBvZiBjYW5kaWRhdGVzIHRo
cm91Z2ggbGlid2VicnRjIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmODUz
ZDNlZGEyMjE5NzhjNjA2MWMzZmM5MDlhYzE1ZjkyZDMyY2U2Li4zYmJiNGVmNWE5YzExYTdkZWJk
NGY1YjU4YzE2NWE3YmE2ZGU5NTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTc1OTIs
MjUgKzc1OTIsMzIgQEAgc3RhdGljIHZvaWQgZXhwYW5kUm9vdEJvdW5kc1dpdGhSb290TWFyZ2lu
KEZsb2F0UmVjdCYgbG9jYWxSb290Qm91bmRzLCBjb25zdCBMZW4KICAgICBsb2NhbFJvb3RCb3Vu
ZHMuZXhwYW5kKHJvb3RNYXJnaW5GbG9hdEJveCk7CiB9CiAKLXN0YXRpYyB2b2lkIGNvbXB1dGVJ
bnRlcnNlY3Rpb25SZWN0cyhGcmFtZVZpZXcmIGZyYW1lVmlldywgSW50ZXJzZWN0aW9uT2JzZXJ2
ZXImIG9ic2VydmVyLCBFbGVtZW50JiB0YXJnZXQsIEZsb2F0UmVjdCYgYWJzVGFyZ2V0UmVjdCwg
RmxvYXRSZWN0JiBhYnNJbnRlcnNlY3Rpb25SZWN0LCBGbG9hdFJlY3QmIGFic1Jvb3RCb3VuZHMp
CitzdHJ1Y3QgSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25TdGF0ZSB7CisgICAgRmxvYXRSZWN0IGFi
c29sdXRlVGFyZ2V0UmVjdDsKKyAgICBGbG9hdFJlY3QgYWJzb2x1dGVSb290Qm91bmRzOworICAg
IEZsb2F0UmVjdCBhYnNvbHV0ZUludGVyc2VjdGlvblJlY3Q7CisgICAgYm9vbCBpc0ludGVyc2Vj
dGluZyB7IGZhbHNlIH07Cit9OworCitzdGF0aWMgc3RkOjpvcHRpb25hbDxJbnRlcnNlY3Rpb25P
YnNlcnZhdGlvblN0YXRlPiBjb21wdXRlSW50ZXJzZWN0aW9uU3RhdGUoRnJhbWVWaWV3JiBmcmFt
ZVZpZXcsIGNvbnN0IEludGVyc2VjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgRWxlbWVudCYgdGFy
Z2V0KQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgaW50ZXJzZWN0aW9uIGNvbXB1dGF0aW9u
IGZvciB0aGUgY3Jvc3MtZG9jdW1lbnQgY2FzZS4KICAgICBpZiAob2JzZXJ2ZXIudHJhY2tpbmdE
b2N1bWVudCgpICE9ICZ0YXJnZXQuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgYXV0byogdGFyZ2V0UmVuZGVyZXIgPSB0YXJn
ZXQucmVuZGVyZXIoKTsKICAgICBpZiAoIXRhcmdldFJlbmRlcmVyKQotICAgICAgICByZXR1cm47
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBGbG9hdFJlY3QgbG9jYWxSb290
Qm91bmRzOwogICAgIFJlbmRlckJsb2NrKiByb290UmVuZGVyZXI7CiAgICAgaWYgKG9ic2VydmVy
LnJvb3QoKSkgewogICAgICAgICBpZiAoIW9ic2VydmVyLnJvb3QoKS0+cmVuZGVyZXIoKSB8fCAh
aXM8UmVuZGVyQmxvY2s+KG9ic2VydmVyLnJvb3QoKS0+cmVuZGVyZXIoKSkpCi0gICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgICAgIHJv
b3RSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckJsb2NrPihvYnNlcnZlci5yb290KCktPnJlbmRl
cmVyKCkpOwogICAgICAgICBpZiAoIXJvb3RSZW5kZXJlci0+aXNDb250YWluaW5nQmxvY2tBbmNl
c3RvckZvcigqdGFyZ2V0UmVuZGVyZXIpKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgICAgICBpZiAocm9vdFJlbmRlcmVyLT5oYXNP
dmVyZmxvd0NsaXAoKSkKICAgICAgICAgICAgIGxvY2FsUm9vdEJvdW5kcyA9IHJvb3RSZW5kZXJl
ci0+Y29udGVudEJveFJlY3QoKTsKQEAgLTc2MzIsMTQgKzc2MzksMTkgQEAgc3RhdGljIHZvaWQg
Y29tcHV0ZUludGVyc2VjdGlvblJlY3RzKEZyYW1lVmlldyYgZnJhbWVWaWV3LCBJbnRlcnNlY3Rp
b25PYnNlcnZlciYKICAgICBlbHNlIGlmIChpczxSZW5kZXJMaW5lQnJlYWs+KHRhcmdldFJlbmRl
cmVyKSkKICAgICAgICAgbG9jYWxUYXJnZXRCb3VuZHMgPSBkb3duY2FzdDxSZW5kZXJMaW5lQnJl
YWs+KHRhcmdldFJlbmRlcmVyKS0+bGluZXNCb3VuZGluZ0JveCgpOwogCi0gICAgRmxvYXRSZWN0
IHJvb3RMb2NhbEludGVyc2VjdGlvblJlY3QgPSB0YXJnZXRSZW5kZXJlci0+Y29tcHV0ZVJlY3RG
b3JSZXBhaW50KGxvY2FsVGFyZ2V0Qm91bmRzLCByb290UmVuZGVyZXIpOwotICAgIHJvb3RMb2Nh
bEludGVyc2VjdGlvblJlY3QuaW50ZXJzZWN0KGxvY2FsUm9vdEJvdW5kcyk7CisgICAgT3B0aW9u
U2V0PFJlbmRlck9iamVjdDo6VmlzaWJsZVJlY3RDb250ZXh0T3B0aW9uPiB2aXNpYmxlUmVjdE9w
dGlvbnMgPSB7IFJlbmRlck9iamVjdDo6VmlzaWJsZVJlY3RDb250ZXh0T3B0aW9uOjpVc2VFZGdl
SW5jbHVzaXZlSW50ZXJzZWN0aW9uLCBSZW5kZXJPYmplY3Q6OlZpc2libGVSZWN0Q29udGV4dE9w
dGlvbjo6QXBwbHlDb21wb3NpdGVkQ2xpcHMsIFJlbmRlck9iamVjdDo6VmlzaWJsZVJlY3RDb250
ZXh0T3B0aW9uOjpBcHBseUNvbXBvc2l0ZWRDb250YWluZXJTY3JvbGxzIH07CisgICAgc3RkOjpv
cHRpb25hbDxMYXlvdXRSZWN0PiByb290TG9jYWxUYXJnZXRSZWN0ID0gdGFyZ2V0UmVuZGVyZXIt
PmNvbXB1dGVWaXNpYmxlUmVjdEluQ29udGFpbmVyKGxvY2FsVGFyZ2V0Qm91bmRzLCByb290UmVu
ZGVyZXIsIHsgZmFsc2UgLyogaGFzUG9zaXRpb25GaXhlZERlc2NlbmRhbnQgKi8sIGZhbHNlIC8q
IGRpcnR5UmVjdElzRmxpcHBlZCAqLywgdmlzaWJsZVJlY3RPcHRpb25zIH0pOworICAgIEZsb2F0
UmVjdCByb290TG9jYWxJbnRlcnNlY3Rpb25SZWN0ID0gbG9jYWxSb290Qm91bmRzOworCisgICAg
SW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25TdGF0ZSBpbnRlcnNlY3Rpb25TdGF0ZTsKKyAgICBpbnRl
cnNlY3Rpb25TdGF0ZS5pc0ludGVyc2VjdGluZyA9IHJvb3RMb2NhbFRhcmdldFJlY3QgJiYgcm9v
dExvY2FsSW50ZXJzZWN0aW9uUmVjdC5lZGdlSW5jbHVzaXZlSW50ZXJzZWN0KCpyb290TG9jYWxU
YXJnZXRSZWN0KTsKIAotICAgIGlmICghcm9vdExvY2FsSW50ZXJzZWN0aW9uUmVjdC5pc0VtcHR5
KCkpCi0gICAgICAgIGFic0ludGVyc2VjdGlvblJlY3QgPSByb290UmVuZGVyZXItPmxvY2FsVG9B
YnNvbHV0ZVF1YWQocm9vdExvY2FsSW50ZXJzZWN0aW9uUmVjdCkuYm91bmRpbmdCb3goKTsKKyAg
ICBpZiAoaW50ZXJzZWN0aW9uU3RhdGUuaXNJbnRlcnNlY3RpbmcpCisgICAgICAgIGludGVyc2Vj
dGlvblN0YXRlLmFic29sdXRlSW50ZXJzZWN0aW9uUmVjdCA9IHJvb3RSZW5kZXJlci0+bG9jYWxU
b0Fic29sdXRlUXVhZChyb290TG9jYWxJbnRlcnNlY3Rpb25SZWN0KS5ib3VuZGluZ0JveCgpOwog
Ci0gICAgYWJzVGFyZ2V0UmVjdCA9IHRhcmdldFJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFk
KEZsb2F0UmVjdChsb2NhbFRhcmdldEJvdW5kcykpLmJvdW5kaW5nQm94KCk7Ci0gICAgYWJzUm9v
dEJvdW5kcyA9IHJvb3RSZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChsb2NhbFJvb3RCb3Vu
ZHMpLmJvdW5kaW5nQm94KCk7CisgICAgaW50ZXJzZWN0aW9uU3RhdGUuYWJzb2x1dGVUYXJnZXRS
ZWN0ID0gdGFyZ2V0UmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2Fs
VGFyZ2V0Qm91bmRzKSkuYm91bmRpbmdCb3goKTsKKyAgICBpbnRlcnNlY3Rpb25TdGF0ZS5hYnNv
bHV0ZVJvb3RCb3VuZHMgPSByb290UmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxS
b290Qm91bmRzKS5ib3VuZGluZ0JveCgpOworICAgIHJldHVybiBpbnRlcnNlY3Rpb25TdGF0ZTsK
IH0KIAogdm9pZCBEb2N1bWVudDo6dXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25zKCkKQEAg
LTc2NjcsMjggKzc2NzksMzggQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSW50ZXJzZWN0aW9uT2Jz
ZXJ2YXRpb25zKCkKICAgICAgICAgICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CiAgICAg
ICAgICAgICBhdXRvJiByZWdpc3RyYXRpb24gPSB0YXJnZXRSZWdpc3RyYXRpb25zW2luZGV4XTsK
IAotICAgICAgICAgICAgRmxvYXRSZWN0IGFic1RhcmdldFJlY3Q7Ci0gICAgICAgICAgICBGbG9h
dFJlY3QgYWJzSW50ZXJzZWN0aW9uUmVjdDsKLSAgICAgICAgICAgIEZsb2F0UmVjdCBhYnNSb290
Qm91bmRzOwotICAgICAgICAgICAgY29tcHV0ZUludGVyc2VjdGlvblJlY3RzKCpmcmFtZVZpZXcs
ICpvYnNlcnZlciwgKnRhcmdldCwgYWJzVGFyZ2V0UmVjdCwgYWJzSW50ZXJzZWN0aW9uUmVjdCwg
YWJzUm9vdEJvdW5kcyk7CisgICAgICAgICAgICBhdXRvIGludGVyc2VjdGlvblN0YXRlID0gY29t
cHV0ZUludGVyc2VjdGlvblN0YXRlKCpmcmFtZVZpZXcsICpvYnNlcnZlciwgKnRhcmdldCk7CiAK
LSAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgemVyby1hcmVhIGludGVyc2VjdGlvbnMgKGUu
Zy4sIGludGVyc2VjdGlvbnMgaW52b2x2aW5nIHplcm8tYXJlYSB0YXJnZXRzKS4KLSAgICAgICAg
ICAgIGJvb2wgaXNJbnRlcnNlY3RpbmcgPSBhYnNJbnRlcnNlY3Rpb25SZWN0LmFyZWEoKTsKLSAg
ICAgICAgICAgIGZsb2F0IGludGVyc2VjdGlvblJhdGlvID0gaXNJbnRlcnNlY3RpbmcgPyBhYnNJ
bnRlcnNlY3Rpb25SZWN0LmFyZWEoKSAvIGFic1RhcmdldFJlY3QuYXJlYSgpIDogMDsKKyAgICAg
ICAgICAgIGZsb2F0IGludGVyc2VjdGlvblJhdGlvID0gMDsKICAgICAgICAgICAgIHNpemVfdCB0
aHJlc2hvbGRJbmRleCA9IDA7Ci0gICAgICAgICAgICBpZiAoaXNJbnRlcnNlY3RpbmcpIHsKLSAg
ICAgICAgICAgICAgICBhdXRvJiB0aHJlc2hvbGRzID0gb2JzZXJ2ZXItPnRocmVzaG9sZHMoKTsK
LSAgICAgICAgICAgICAgICB3aGlsZSAodGhyZXNob2xkSW5kZXggPCB0aHJlc2hvbGRzLnNpemUo
KSAmJiB0aHJlc2hvbGRzW3RocmVzaG9sZEluZGV4XSA8PSBpbnRlcnNlY3Rpb25SYXRpbykKLSAg
ICAgICAgICAgICAgICAgICAgKyt0aHJlc2hvbGRJbmRleDsKKyAgICAgICAgICAgIGlmIChpbnRl
cnNlY3Rpb25TdGF0ZSkgeworICAgICAgICAgICAgICAgIGlmIChpbnRlcnNlY3Rpb25TdGF0ZS0+
aXNJbnRlcnNlY3RpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgZmxvYXQgYWJzVGFyZ2V0QXJl
YSA9IGludGVyc2VjdGlvblN0YXRlLT5hYnNvbHV0ZVRhcmdldFJlY3QuYXJlYSgpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoYWJzVGFyZ2V0QXJlYSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGludGVyc2VjdGlvblJhdGlvID0gaW50ZXJzZWN0aW9uU3RhdGUtPmFic29sdXRlSW50ZXJzZWN0
aW9uUmVjdC5hcmVhKCkgLyBhYnNUYXJnZXRBcmVhOworICAgICAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnNlY3Rpb25SYXRpbyA9IDE7CisKKyAgICAg
ICAgICAgICAgICAgICAgYXV0byYgdGhyZXNob2xkcyA9IG9ic2VydmVyLT50aHJlc2hvbGRzKCk7
CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0aHJlc2hvbGRJbmRleCA8IHRocmVzaG9sZHMu
c2l6ZSgpICYmIHRocmVzaG9sZHNbdGhyZXNob2xkSW5kZXhdIDw9IGludGVyc2VjdGlvblJhdGlv
KQorICAgICAgICAgICAgICAgICAgICAgICAgKyt0aHJlc2hvbGRJbmRleDsKKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAKKwogICAgICAgICAgICAgaWYgKCFyZWdpc3RyYXRpb24u
cHJldmlvdXNUaHJlc2hvbGRJbmRleCB8fCB0aHJlc2hvbGRJbmRleCAhPSByZWdpc3RyYXRpb24u
cHJldmlvdXNUaHJlc2hvbGRJbmRleCkgewotICAgICAgICAgICAgICAgIEZsb2F0UmVjdCB0YXJn
ZXRCb3VuZGluZ0NsaWVudFJlY3QgPSBmcmFtZVZpZXctPmFic29sdXRlVG9DbGllbnRSZWN0KGFi
c1RhcmdldFJlY3QpOwotICAgICAgICAgICAgICAgIEZsb2F0UmVjdCBjbGllbnRJbnRlcnNlY3Rp
b25SZWN0ID0gaXNJbnRlcnNlY3RpbmcgPyBmcmFtZVZpZXctPmFic29sdXRlVG9DbGllbnRSZWN0
KGFic0ludGVyc2VjdGlvblJlY3QpIDogRmxvYXRSZWN0KCk7CisgICAgICAgICAgICAgICAgRmxv
YXRSZWN0IHRhcmdldEJvdW5kaW5nQ2xpZW50UmVjdDsKKyAgICAgICAgICAgICAgICBGbG9hdFJl
Y3QgY2xpZW50SW50ZXJzZWN0aW9uUmVjdDsKKyAgICAgICAgICAgICAgICBGbG9hdFJlY3QgY2xp
ZW50Um9vdEJvdW5kczsKKyAgICAgICAgICAgICAgICBpZiAoaW50ZXJzZWN0aW9uU3RhdGUpIHsK
KyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Qm91bmRpbmdDbGllbnRSZWN0ID0gZnJhbWVWaWV3
LT5hYnNvbHV0ZVRvQ2xpZW50UmVjdChpbnRlcnNlY3Rpb25TdGF0ZS0+YWJzb2x1dGVUYXJnZXRS
ZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgY2xpZW50Um9vdEJvdW5kcyA9IGZyYW1lVmlldy0+
YWJzb2x1dGVUb0NsaWVudFJlY3QoaW50ZXJzZWN0aW9uU3RhdGUtPmFic29sdXRlUm9vdEJvdW5k
cyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbnRlcnNlY3Rpb25TdGF0ZS0+aXNJbnRlcnNl
Y3RpbmcpCisgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbnRlcnNlY3Rpb25SZWN0ID0g
ZnJhbWVWaWV3LT5hYnNvbHV0ZVRvQ2xpZW50UmVjdChpbnRlcnNlY3Rpb25TdGF0ZS0+YWJzb2x1
dGVJbnRlcnNlY3Rpb25SZWN0KTsKKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogT25jZSBjcm9zcy1kb2N1bWVudCBvYnNlcnZhdGlvbiBpcyBpbXBsZW1lbnRl
ZCwgb25seSByZXBvcnQgcm9vdCBib3VuZHMgaWYgdGhlIHRhcmdldCBkb2N1bWVudCBhbmQKICAg
ICAgICAgICAgICAgICAvLyB0aGUgcm9vdCBkb2N1bWVudCBhcmUgc2ltaWxhci1vcmlnaW4uCi0g
ICAgICAgICAgICAgICAgRmxvYXRSZWN0IGNsaWVudFJvb3RCb3VuZHMgPSBmcmFtZVZpZXctPmFi
c29sdXRlVG9DbGllbnRSZWN0KGFic1Jvb3RCb3VuZHMpOwogICAgICAgICAgICAgICAgIHN0ZDo6
b3B0aW9uYWw8RE9NUmVjdEluaXQ+IHJlcG9ydGVkUm9vdEJvdW5kcyA9IERPTVJlY3RJbml0KHsK
ICAgICAgICAgICAgICAgICAgICAgY2xpZW50Um9vdEJvdW5kcy54KCksCiAgICAgICAgICAgICAg
ICAgICAgIGNsaWVudFJvb3RCb3VuZHMueSgpLApAQCAtNzcwMyw3ICs3NzI1LDcgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25zKCkKICAgICAgICAgICAgICAg
ICAgICAgeyBjbGllbnRJbnRlcnNlY3Rpb25SZWN0LngoKSwgY2xpZW50SW50ZXJzZWN0aW9uUmVj
dC55KCksIGNsaWVudEludGVyc2VjdGlvblJlY3Qud2lkdGgoKSwgY2xpZW50SW50ZXJzZWN0aW9u
UmVjdC5oZWlnaHQoKSB9LAogICAgICAgICAgICAgICAgICAgICBpbnRlcnNlY3Rpb25SYXRpbywK
ICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICBpc0ludGVy
c2VjdGluZywKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJzZWN0aW9uU3RhdGU/IGludGVyc2Vj
dGlvblN0YXRlLT5pc0ludGVyc2VjdGluZyA6IGZhbHNlLAogICAgICAgICAgICAgICAgIH0pKTsK
ICAgICAgICAgICAgICAgICBuZWVkTm90aWZ5ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICByZWdp
c3RyYXRpb24ucHJldmlvdXNUaHJlc2hvbGRJbmRleCA9IHRocmVzaG9sZEluZGV4OwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMDZhYWJhN2Y5OWEzMjUwY2Q0YTI3NjliNmRmYmMw
MGM1NmI5MWM4ZC4uZTNkNDY1YWExNWE0YzcyY2Y3MDMyNWI4ZjA0MzJmZTJmMjM1ZTU5YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMTAtMTgg
IEFsaSBKdW1hICA8YWp1bWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnRlcnNlY3Rpb25P
YnNlcnZlcl0gSGFuZGxlIHplcm8tYXJlYSBpbnRlcnNlY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk2MjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgUmViYXNlbGluZSBleHBlY3RhdGlvbnMgZm9y
IHRlc3RzIHRoYXQgbm93IHBhc3MuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaW50
ZXJzZWN0aW9uLW9ic2VydmVyL2VkZ2UtaW5jbHVzaXZlLWludGVyc2VjdGlvbi1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9p
c0ludGVyc2VjdGluZy1jaGFuZ2UtZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3NhbWUtZG9jdW1lbnQtemVyby1z
aXplLXRhcmdldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2lu
dGVyc2VjdGlvbi1vYnNlcnZlci90ZXh0LXRhcmdldC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci96ZXJvLWFyZWEtZWxlbWVu
dC12aXNpYmxlLWV4cGVjdGVkLnR4dDoKKwogMjAxOC0xMC0xOCAgWXVzdWtlIFN1enVraSAgPHl1
c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgogCiAgICAgICAgIFtKU0NdIEpTQyBzaG91bGQgaGF2
ZSAicGFyc2VGdW5jdGlvbiIgdG8gb3B0aW1pemUgRnVuY3Rpb24gY29uc3RydWN0b3IKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJz
ZWN0aW9uLW9ic2VydmVyL2VkZ2UtaW5jbHVzaXZlLWludGVyc2VjdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlv
bi1vYnNlcnZlci9lZGdlLWluY2x1c2l2ZS1pbnRlcnNlY3Rpb24tZXhwZWN0ZWQudHh0CmluZGV4
IDA3NjQzMzgxNjYwMTViNGE4ZjU1NmVmMTM4NzJlZjZhM2EyNTQ2OTkuLmJkYzU5YzQ2M2JkNmNk
YmRhOWUzM2UzZmZkMzZjM2VkNDNlZjRhMjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2VkZ2UtaW5j
bHVzaXZlLWludGVyc2VjdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvZWRnZS1pbmNs
dXNpdmUtaW50ZXJzZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBJ
bnRlcnNlY3Rpb25PYnNlcnZlciBzaG91bGQgZGV0ZWN0IGFuZCByZXBvcnQgZWRnZS1hZGphY2Vu
dCBhbmQgemVyby1hcmVhIGludGVyc2VjdGlvbnMuIAogUEFTUyBGaXJzdCByQUYuIAotRkFJTCBT
ZXQgdHJhbnNmb3JtPXRyYW5zbGF0ZVkoMjAwcHgpIG9uIHRhcmdldC4gYXNzZXJ0X2VxdWFsczog
ZW50cmllcy5sZW5ndGggZXhwZWN0ZWQgMiBidXQgZ290IDEKLUZBSUwgU2V0IHRyYW5zZm9ybT10
cmFuc2xhdGVZKDIwMXB4KSBvbiB0YXJnZXQuIGFzc2VydF9lcXVhbHM6IGVudHJpZXMubGVuZ3Ro
IGV4cGVjdGVkIDMgYnV0IGdvdCAxCi1GQUlMIFNldCB0cmFuc2Zvcm09dHJhbnNsYXRlWSgxODVw
eCkgb24gdGFyZ2V0LiBhc3NlcnRfZXF1YWxzOiBlbnRyaWVzLmxlbmd0aCBleHBlY3RlZCA0IGJ1
dCBnb3QgMQorUEFTUyBTZXQgdHJhbnNmb3JtPXRyYW5zbGF0ZVkoMjAwcHgpIG9uIHRhcmdldC4g
CitQQVNTIFNldCB0cmFuc2Zvcm09dHJhbnNsYXRlWSgyMDFweCkgb24gdGFyZ2V0LiAKK1BBU1Mg
U2V0IHRyYW5zZm9ybT10cmFuc2xhdGVZKDE4NXB4KSBvbiB0YXJnZXQuIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlv
bi1vYnNlcnZlci9pc0ludGVyc2VjdGluZy1jaGFuZ2UtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9i
c2VydmVyL2lzSW50ZXJzZWN0aW5nLWNoYW5nZS1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDk5
OGUwZmE2MGQwYjZhNjVlOTg4NmJkNTBjZDg5YjNjNDcyOTIyZjUuLmY3OTdhZjMxNzg5NmEyMzAz
M2M4OTBkMDgxZGRhYWMxODRiYjY2MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2lzSW50ZXJzZWN0
aW5nLWNoYW5nZS1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2lzSW50ZXJzZWN0
aW5nLWNoYW5nZS1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNyBAQAogCiBQQVNTIGlz
SW50ZXJzZWN0aW5nIGNoYW5nZXMgc2hvdWxkIHRyaWdnZXIgbm90aWZpY2F0aW9ucy4gCi1GQUlM
IFJlY3RzIGluIGluaXRpYWwgbm90aWZpY2F0aW9ucyBzaG91bGQgcmVwb3J0IGluaXRpYWwgcG9z
aXRpb25zLiBhc3NlcnRfZXF1YWxzOiBlbnRyaWVzWzJdLnRhcmdldC5pc0ludGVyc2VjdGluZyBl
cXVhbHMgdHJ1ZSBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKK1BBU1MgUmVjdHMgaW4gaW5p
dGlhbCBub3RpZmljYXRpb25zIHNob3VsZCByZXBvcnQgaW5pdGlhbCBwb3NpdGlvbnMuIAorUEFT
UyBTZXQgc2Nyb2xsVG9wPTEwMCBhbmQgY2hlY2sgZm9yIG5vIG5ldyBub3RpZmljYXRpb25zLiAK
K1BBU1MgQWRkIDR0aCB0YXJnZXQuIAorUEFTUyBTZXQgc2Nyb2xsVG9wPTEwMCBhbmQgY2hlY2sg
Zm9yIG9uZSBuZXcgbm90aWZpY2F0aW9uLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvc2FtZS1k
b2N1bWVudC16ZXJvLXNpemUtdGFyZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3NhbWUtZG9j
dW1lbnQtemVyby1zaXplLXRhcmdldC1leHBlY3RlZC50eHQKaW5kZXggYmUwMzFhMGMyOTljZjM2
ODE5NTc1ZTRjNmIxMDBlMDZmMmM4NzUzYy4uODAyZThlNDdmYzk2ODBmYWJmYjE0YWViMzhlNTUy
NTc5ZDE2NDAxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvc2FtZS1kb2N1bWVudC16ZXJvLXNpemUt
dGFyZ2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9zYW1lLWRvY3VtZW50LXplcm8tc2l6
ZS10YXJnZXQtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCiBQQVNTIE9ic2VydmluZyBh
IHplcm8tYXJlYSB0YXJnZXQuIAogUEFTUyBGaXJzdCByQUYgCi1GQUlMIGRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMzAwIGFzc2VydF9lcXVhbHM6IGVudHJpZXMubGVuZ3Ro
IGV4cGVjdGVkIDIgYnV0IGdvdCAxCi1GQUlMIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wID0gMTAwIGFzc2VydF9lcXVhbHM6IGVudHJpZXMubGVuZ3RoIGV4cGVjdGVkIDMgYnV0
IGdvdCAxCitQQVNTIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMzAwIAor
UEFTUyBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IDEwMCAKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNl
Y3Rpb24tb2JzZXJ2ZXIvdGV4dC10YXJnZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvdGV4dC10
YXJnZXQtZXhwZWN0ZWQudHh0CmluZGV4IGU2M2E0ODczOTk0MjM1OTQ5YjgzNGZmZDNkNzAzZmRk
YmYxMDdmM2EuLjJjMDg4MjgyNDQwYzc0NGYzNDRiYzNhM2JjYjk3ZmI5ZDJlOTg1OGMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJz
ZWN0aW9uLW9ic2VydmVyL3RleHQtdGFyZ2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci90
ZXh0LXRhcmdldC1leHBlY3RlZC50eHQKQEAgLTIsNiArMiw2IEBACiAKIFBBU1MgSW50ZXJzZWN0
aW9uT2JzZXJ2ZXIgb2JzZXJ2aW5nIGEgYnIgZWxlbWVudC4gCiBQQVNTIEZpcnN0IHJBRi4gCi1G
QUlMIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMzAwIGFzc2VydF9lcXVh
bHM6IGVudHJpZXMubGVuZ3RoIGV4cGVjdGVkIDIgYnV0IGdvdCAxCi1GQUlMIGRvY3VtZW50LnNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gMTAwIGFzc2VydF9lcXVhbHM6IGVudHJpZXMubGVu
Z3RoIGV4cGVjdGVkIDMgYnV0IGdvdCAxCitQQVNTIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wID0gMzAwIAorUEFTUyBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cCA9IDEwMCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvemVyby1hcmVhLWVsZW1lbnQtdmlzaWJs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci96ZXJvLWFyZWEtZWxlbWVudC12aXNpYmxlLWV4cGVj
dGVkLnR4dAppbmRleCBjMTE4ZmRmNjZkMDU4ZmU1NzYyYWEwNWVjMGJmNzI1MGM5MTgwZGU0Li4w
NDJiODgxZTExY2NhNzY5YzYzNjA1ODVkZjU3ZTI4YzgzODI3OWVmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNl
cnZlci96ZXJvLWFyZWEtZWxlbWVudC12aXNpYmxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZl
ci96ZXJvLWFyZWEtZWxlbWVudC12aXNpYmxlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAK
IAogUEFTUyBFbnN1cmUgdGhhdCBhIHplcm8tYXJlYSB0YXJnZXQgaW50ZXJzZWN0aW5nIHJvb3Qg
Z2VuZXJhdGVzIGEgbm90aWZpY2F0aW9uIHdpdGggaW50ZXJzZWN0aW9uUmF0aW8gPT0gMSAKLUZB
SUwgRmlyc3QgckFGIHNob3VsZCBnZW5lcmF0ZSBhIG5vdGlmaWNhdGlvbi4gYXNzZXJ0X2VxdWFs
czogaW50ZXJzZWN0aW9uUmF0aW8gPT0gMSBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBGaXJz
dCByQUYgc2hvdWxkIGdlbmVyYXRlIGEgbm90aWZpY2F0aW9uLiAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>