<?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>98571</bug_id>
          
          <creation_ts>2012-10-05 15:56:37 -0700</creation_ts>
          <short_desc>[Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel</short_desc>
          <delta_ts>2012-11-11 11:44:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>98831</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eae</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fmalita</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>peter+ews</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>736064</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-05 15:56:37 -0700</bug_when>
    <thetext>In order to fix this, we have to extend the different modes of changing coordinates beyond MapLocalToContainer to all the coordinate-changing functions.

Downstream crbug: http://code.google.com/p/chromium/issues/detail?id=143354</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736102</commentid>
    <comment_count>1</comment_count>
      <attachid>167417</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-05 17:03:09 -0700</bug_when>
    <thetext>Created attachment 167417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736120</commentid>
    <comment_count>2</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-05 17:32:13 -0700</bug_when>
    <thetext>FWIW, I&apos;m happy to refactor the logical change from the refactor if preferred.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736126</commentid>
    <comment_count>3</comment_count>
      <attachid>167424</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-05 17:39:20 -0700</bug_when>
    <thetext>Created attachment 167424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736135</commentid>
    <comment_count>4</comment_count>
      <attachid>167424</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 17:59:57 -0700</bug_when>
    <thetext>Comment on attachment 167424
Patch

Attachment 167424 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14177685</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736151</commentid>
    <comment_count>5</comment_count>
      <attachid>167424</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-05 18:33:09 -0700</bug_when>
    <thetext>Comment on attachment 167424
Patch

Attachment 167424 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14196160</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736867</commentid>
    <comment_count>6</comment_count>
      <attachid>167574</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-08 11:47:33 -0700</bug_when>
    <thetext>Created attachment 167574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737026</commentid>
    <comment_count>7</comment_count>
      <attachid>167574</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-10-08 14:13:42 -0700</bug_when>
    <thetext>Comment on attachment 167574
Patch

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

&gt; Source/WebCore/dom/ContainerNode.cpp:749
&gt; +        point = o-&gt;localToAbsolute(FloatPoint(), UseTransforms | SnapOffsetForTransforms);

This is much more descriptive, I like it!

&gt; Source/WebCore/dom/Element.cpp:542
&gt; +            renderBoxModelObject()-&gt;absoluteQuads(quads, 0);

Why are you explicitly passing zero (NULL) as wasFixed here?

&gt; Source/WebCore/dom/MouseRelatedEvent.cpp:169
&gt; +            FloatPoint localPos = r-&gt;absoluteToLocal(absoluteLocation(), UseTransforms | SnapOffsetForTransforms);

SnapOffsetForTransforms seems to be used in most places, how about making it the default?

&gt; LayoutTests/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html:13
&gt; +// src=&quot;resources/subframe.html&quot;

This comment doesn&apos;t make a lot of sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737097</commentid>
    <comment_count>8</comment_count>
      <attachid>167574</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-08 15:05:16 -0700</bug_when>
    <thetext>Comment on attachment 167574
Patch

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

&gt;&gt; Source/WebCore/dom/Element.cpp:542
&gt;&gt; +            renderBoxModelObject()-&gt;absoluteQuads(quads, 0);
&gt; 
&gt; Why are you explicitly passing zero (NULL) as wasFixed here?

This is because we don&apos;t want any of the feature flags. We could have a named zero constant to specify no flags?

&gt;&gt; Source/WebCore/dom/MouseRelatedEvent.cpp:169
&gt;&gt; +            FloatPoint localPos = r-&gt;absoluteToLocal(absoluteLocation(), UseTransforms | SnapOffsetForTransforms);
&gt; 
&gt; SnapOffsetForTransforms seems to be used in most places, how about making it the default?

SnapOffsetForTransforms is, UseTransforms isn&apos;t as this was the previous default. It does honestly seem like using transforms should be the default and callers should be specifying explicitly that they *don&apos;t* want transforms. Perhaps that&apos;s worthwhile here or in a future patch (since it would reverse logic).

&gt;&gt; LayoutTests/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html:13
&gt;&gt; +// src=&quot;resources/subframe.html&quot;
&gt; 
&gt; This comment doesn&apos;t make a lot of sense.

Whoops, that&apos;s vestigial from when I was writing the test. Good catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737110</commentid>
    <comment_count>9</comment_count>
      <attachid>167574</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-10-08 15:13:46 -0700</bug_when>
    <thetext>Comment on attachment 167574
Patch

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

&gt;&gt;&gt; Source/WebCore/dom/Element.cpp:542
&gt;&gt;&gt; +            renderBoxModelObject()-&gt;absoluteQuads(quads, 0);
&gt;&gt; 
&gt;&gt; Why are you explicitly passing zero (NULL) as wasFixed here?
&gt; 
&gt; This is because we don&apos;t want any of the feature flags. We could have a named zero constant to specify no flags?

Either that or adding the name of the field as a comment (just like we did in some places for the boolean parameters before).

renderBoxModelObject()-&gt;absoluteQuads(quads, 0 /* mode */);

&gt;&gt;&gt; Source/WebCore/dom/MouseRelatedEvent.cpp:169
&gt;&gt;&gt; +            FloatPoint localPos = r-&gt;absoluteToLocal(absoluteLocation(), UseTransforms | SnapOffsetForTransforms);
&gt;&gt; 
&gt;&gt; SnapOffsetForTransforms seems to be used in most places, how about making it the default?
&gt; 
&gt; SnapOffsetForTransforms is, UseTransforms isn&apos;t as this was the previous default. It does honestly seem like using transforms should be the default and callers should be specifying explicitly that they *don&apos;t* want transforms. Perhaps that&apos;s worthwhile here or in a future patch (since it would reverse logic).

Lets keep this change as small as we can and have that in a future patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737954</commentid>
    <comment_count>10</comment_count>
      <attachid>167789</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-09 11:07:47 -0700</bug_when>
    <thetext>Created attachment 167789
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737984</commentid>
    <comment_count>11</comment_count>
      <attachid>167789</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-09 11:33:45 -0700</bug_when>
    <thetext>Comment on attachment 167789
Patch for landing

Rejecting attachment 167789 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
WebCore::RenderObject::absoluteToLocal(const WebCore::FloatPoint&amp;, WebCore::MapCoordinatesFlags) const
  CXX(target) out/Release/obj.target/webkit/Source/WebKit/chromium/src/WebPagePopupImpl.o
make: *** [out/Release/obj.target/webkit/Source/WebKit/chromium/src/WebInputEventConversion.o] Error 1
make: *** Waiting for unfinished jobs....

Failed to run &quot;[&apos;Tools/Scripts/build-webkit&apos;, &apos;--release&apos;, &apos;--chromium&apos;, &apos;--update-chromium&apos;]&quot; exit_code: 2
o] Error 1
make: *** Waiting for unfinished jobs....

Full output: http://queues.webkit.org/results/14214819</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738160</commentid>
    <comment_count>12</comment_count>
      <attachid>167841</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-09 13:51:00 -0700</bug_when>
    <thetext>Created attachment 167841
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738188</commentid>
    <comment_count>13</comment_count>
      <attachid>167841</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-09 14:31:54 -0700</bug_when>
    <thetext>Comment on attachment 167841
Patch for landing

Clearing flags on attachment: 167841

Committed r130811: &lt;http://trac.webkit.org/changeset/130811&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738189</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-09 14:31:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738300</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-09 16:12:06 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 98831</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740352</commentid>
    <comment_count>16</comment_count>
      <attachid>168299</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-11 15:54:42 -0700</bug_when>
    <thetext>Created attachment 168299
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740421</commentid>
    <comment_count>17</comment_count>
      <attachid>168299</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 16:47:28 -0700</bug_when>
    <thetext>Comment on attachment 168299
Patch for landing

Clearing flags on attachment: 168299

Committed r131111: &lt;http://trac.webkit.org/changeset/131111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740422</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 16:47:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740466</commentid>
    <comment_count>19</comment_count>
      <attachid>168299</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-10-11 17:34:59 -0700</bug_when>
    <thetext>Comment on attachment 168299
Patch for landing

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

&gt; Source/WebCore/rendering/RenderBox.h:577
&gt; +    virtual void mapLocalToContainer(RenderLayerModelObject* repaintContainer, TransformState&amp;, MapCoordinatesFlags mode = ApplyContainerFlip | SnapOffsetForTransforms, bool* wasFixed = 0) const OVERRIDE;

I would have omitted the argument name “mode” here. It doesn’t add anything.

&gt; Source/WebCore/rendering/RenderBox.h:579
&gt; +    virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformState&amp;) const;

I would have omitted the argument name “mode” here. It doesn’t add anything.

&gt; Source/WebCore/rendering/RenderBoxModelObject.h:161
&gt; +    virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformState&amp;) const OVERRIDE;

I would have omitted the argument name “mode” here. It doesn’t add anything.

&gt; Source/WebCore/rendering/RenderInline.h:138
&gt; +    virtual void mapLocalToContainer(RenderLayerModelObject* repaintContainer, TransformState&amp;, MapCoordinatesFlags mode = ApplyContainerFlip | SnapOffsetForTransforms, bool* wasFixed = 0) const OVERRIDE;

I would have omitted the argument name “mode” here. It doesn’t add anything.

&gt; Source/WebCore/rendering/RenderObject.h:712
&gt; +    FloatPoint localToAbsolute(const FloatPoint&amp; localPoint = FloatPoint(), MapCoordinatesFlags mode = 0) const;
&gt; +    FloatPoint absoluteToLocal(const FloatPoint&amp;, MapCoordinatesFlags mode = 0) const;

I would have omitted the argument name “mode” here. It doesn’t add anything.

&gt; Source/WebCore/rendering/RenderObject.h:722
&gt; +    FloatQuad localToContainerQuad(const FloatQuad&amp;, RenderLayerModelObject* repaintContainer, MapCoordinatesFlags mode = 0, bool* wasFixed = 0) const;
&gt; +    FloatPoint localToContainerPoint(const FloatPoint&amp;, RenderLayerModelObject* repaintContainer, MapCoordinatesFlags mode = 0, bool* wasFixed = 0) const;

I would have omitted the argument name “mode” here. It doesn’t add anything.

&gt; Source/WebCore/rendering/RenderObject.h:921
&gt; +    virtual void mapLocalToContainer(RenderLayerModelObject* repaintContainer, TransformState&amp;, MapCoordinatesFlags mode = ApplyContainerFlip, bool* wasFixed = 0) const;
&gt; +    virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformState&amp;) const;

I would have omitted the argument name “mode” here. It doesn’t add anything.

&gt; Source/WebCore/rendering/svg/RenderSVGForeignObject.h:57
&gt; +    virtual void mapLocalToContainer(RenderLayerModelObject* repaintContainer, TransformState&amp;, MapCoordinatesFlags mode = ApplyContainerFlip | SnapOffsetForTransforms, bool* wasFixed = 0) const OVERRIDE;

I would have omitted the argument name “mode” here. It doesn’t add anything.

&gt; Source/WebCore/rendering/svg/RenderSVGModelObject.h:61
&gt; +    virtual void mapLocalToContainer(RenderLayerModelObject* repaintContainer, TransformState&amp;, MapCoordinatesFlags mode = ApplyContainerFlip | SnapOffsetForTransforms, bool* wasFixed = 0) const OVERRIDE;

I would have omitted the argument name “mode” here. It doesn’t add anything.

&gt; Source/WebCore/rendering/svg/RenderSVGRoot.h:98
&gt; +    virtual void mapLocalToContainer(RenderLayerModelObject* repaintContainer, TransformState&amp;, MapCoordinatesFlags mode = ApplyContainerFlip | SnapOffsetForTransforms, bool* wasFixed = 0) const OVERRIDE;

I would have omitted the argument name “mode” here. It doesn’t add anything.

&gt; Source/WebCore/rendering/svg/RenderSVGText.h:78
&gt; +    virtual void mapLocalToContainer(RenderLayerModelObject* repaintContainer, TransformState&amp;, MapCoordinatesFlags mode = ApplyContainerFlip | SnapOffsetForTransforms, bool* wasFixed = 0) const OVERRIDE;

I would have omitted the argument name “mode” here. It doesn’t add anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741020</commentid>
    <comment_count>20</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-12 10:44:42 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 168299 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168299&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBox.h:577
&gt; &gt; +    virtual void mapLocalToContainer(RenderLayerModelObject* repaintContainer, TransformState&amp;, MapCoordinatesFlags mode = ApplyContainerFlip | SnapOffsetForTransforms, bool* wasFixed = 0) const OVERRIDE;
&gt; 
&gt; I would have omitted the argument name “mode” here. It doesn’t add anything.

Thanks for the watchful eye. I&apos;ll fix that :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763868</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-11 11:40:20 -0800</bug_when>
    <thetext>I don&apos;t understand why some places use SnapOffsetForTransforms and some don&apos;t in this change, and it&apos;s causing assertions in RenderGeometryMap with a change I have.

First, RenderBox::mapLocalToContainer() does snapping even when there are no transforms involved:
    if (mode &amp; SnapOffsetForTransforms)
        containerOffset = roundedIntSize(containerOffset);
so the mode name is confusing, or the mode is mis-applied here.

Why does LayoutState::LayoutState use SnapOffsetForTransforms?

I think RenderGeometryMap needs to be told what mode flags to use on creation, rather than always applying SnapOffsetForTransforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763872</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-11 11:44:00 -0800</bug_when>
    <thetext>Why do calls to localToContainerQuad() in various repaint functions (like RenderBox::outlineBoundsForRepaint()) not use SnapOffsetForTransforms?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167417</attachid>
            <date>2012-10-05 17:03:09 -0700</date>
            <delta_ts>2012-10-05 17:39:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98571-20121005170216.patch</filename>
            <type>text/plain</type>
            <size>78021</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDU2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExOSBAQAorMjAxMi0xMC0wNSAgTGV2aSBX
ZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1N1YiBwaXhlbCBsYXlv
dXRdIEZhc3QtcGF0aCBpZnJhbWUgc2Nyb2xsaW5nIGNhbiBwaWNrcyB1cCBhbiBleHRyYSBwaXhl
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rv
cmluZyBhbGwgY29vcmRpbmF0ZS1zd2l0Y2hpbmcgZnVuY3Rpb25hbGl0eSB0byB1c2UgYSBzaW5n
bGUgIm1vZGUiIGZsYWcKKyAgICAgICAgYXMgb3Bwb3NlZCB0byBoYXZpbmcgYSBidW5jaCBvZiBi
b29sZWFuIHZhbHVlcy4gVGhpcyBlbmFibGVzIHRoZSBzYW1lIHNldCBvZgorICAgICAgICBvcHRp
b25zIGFjcm9zcyB0aGUgYm9hcmQsIGFuZCBhIGNvbnNpc3RlbnQgaW50ZXJmYWNlLiBUaGlzIHdh
cyBwcmV2aW91c2x5CisgICAgICAgIGRvbmUgZm9yIG1hcExvY2FsVG9Db250YWluZXIuCisKKyAg
ICAgICAgVGhlIGltcHRldHVzIGZvciB0aGlzIGZvciB0aGlzIHN0ZW1zIGZyb20gdGhlIG9uZSBs
b2dpY2FsIGNoYW5nZSBpbiB0aGlzIHBhdGNoCisgICAgICAgIHdoaWNoIG9ubHkgZWZmZWN0cyBz
dWItcGl4ZWwgbGF5b3V0LiBGcmFtZVZpZXc6OmNvbnZlcnRUb1JlbmRlcmVyIGFuZAorICAgICAg
ICBjb252ZXJ0RnJvbVJlbmRlcmVyIHJldHVybiBJbnRQb2ludCBjb29yZGluYXRlcywgYW5kIG5l
ZWQgdG8gYWxzbyBzbmFwIHRyYW5zZm9ybQorICAgICAgICBvZmZzZXRzIHRvIGRldGVybWluZSBw
cm9wZXIgcmVjdHMgZm9yIHNjcm9sbGluZy4KKworICAgICAgICBVbmxhYmVsZWQgZnVuY3Rpb25z
IGJlbG93IGFyZSBzaW1wbHkgYmVpbmcgdXBkYXRlZCB0byB0aGVzZSBuZXcgaW50ZXJmYWNlcy4K
KworICAgICAgICBUZXN0OiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24t
c2Nyb2xsLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmdldFVw
cGVyTGVmdENvcm5lcik6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpnZXRMb3dl
clJpZ2h0Q29ybmVyKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50Ojpib3VuZHNJblJvb3RWaWV3U3BhY2UpOgorICAgICAgICAqIGRvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6
Y29tcHV0ZVJlbGF0aXZlUG9zaXRpb24pOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OmNvbnZlcnRUb1BhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6Y29udmVydEZyb21QYWdlKToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2
ZW50SGFuZGxlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9t
UG9pbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OmNvbnZlcnRUb1JlbmRlcmVyKTogTm93IHBpeGVsLXNuYXBzIG9mZnNldHMgYmVmb3JlIHBh
c3NpbmcKKyAgICAgICAgdGhlbSB0byBUcmFuc2Zvcm1TdGF0ZSwgd2hpY2ggdHJhbnNmb3JtcyB0
aGUgY29vcmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNvbnZlcnRGcm9t
UmVuZGVyZXIpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmFic29sdXRlUXVhZHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjphYnNvbHV0ZVF1YWRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoUmVuZGVyQm94TW9kZWxPYmplY3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6aXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNh
dG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRnJhbWVTZXQ6OnVzZXJSZXNpemUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJHZW9tZXRyeU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHZW9tZXRy
eU1hcDo6YWJzb2x1dGVQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAgKFJlbmRlcklu
bGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjphYnNvbHV0ZVRvQ29udGVudHMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck1lZGlhQ29udHJvbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFD
b250cm9sczo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24pOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51
TGlzdDo6c2hvd1BvcHVwKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bG9jYWxUb0Fic29sdXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YWJzb2x1dGVUb0xvY2FsKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclF1YWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUG9pbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlck9iamVjdCk6IE1hcExvY2Fs
VG9Db250YWluZXJGbGFncyBpcyBub3cgTWFwQ29vcmRpbmF0ZXNGbGFncyBzaW5jZSBpdCdzCisg
ICAgICAgIG5vdyB1c2VkIGZvciBvdGhlciBjb252ZXJzaW9uIG1ldGhvZHMuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmxvY2FsVG9BYnNvbHV0ZVF1YWQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6Om1hcExvY2FsVG9D
b250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6bWFwQWJzb2x1dGVUb0xv
Y2FsUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgIChS
ZW5kZXJWaWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9j
YWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWdu
T2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJTVkdGb3JlaWduT2JqZWN0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW5saW5lLmg6CisgICAgICAgIChSZW5kZXJTVkdJbmxpbmUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFJlbmRl
clNWR01vZGVsT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5l
cik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290Lmg6CisgICAgICAgIChS
ZW5kZXJTVkdSb290KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgIChSZW5k
ZXJTVkdUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5l
cik6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHU1ZHRWxlbWVudDo6bG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0pOgorCiAyMDEyLTEw
LTA1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFtj
Z10gR3JhcGhpY3NDb250ZXh0Q0cgc2hvdWxkIGFzayBDRyB3aGV0aGVyIHRoZSBzaGFkb3cgb2Zm
c2V0IHdvcmthcm91bmQgaXMgcmVxdWlyZWQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZp
c2lvbiAxMzAzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBj
b3B5KQpAQCAtMTExNyw4ICsxMTE3LDggQEAgX19aTks3V2ViQ29yZTExUmVuZGVyU3R5bGUyMXZp
c2l0ZWREZXBlbgogX19aTks3V2ViQ29yZTExUmVuZGVyU3R5bGU0Zm9udEV2CiBfX1pOSzdXZWJD
b3JlMTFTY3JpcHRWYWx1ZTlnZXRTdHJpbmdFUE4zSlNDOUV4ZWNTdGF0ZUVSTjNXVEY2U3RyaW5n
RQogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTRlbmNsb3NpbmdMYXllckV2Ci1fX1pOSzdX
ZWJDb3JlMTJSZW5kZXJPYmplY3QxNWxvY2FsVG9BYnNvbHV0ZUVSS05TXzEwRmxvYXRQb2ludEVi
YgotX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MjBsb2NhbFRvQ29udGFpbmVyUXVhZEVSS05T
XzlGbG9hdFF1YWRFUE5TXzIyUmVuZGVyTGF5ZXJNb2RlbE9iamVjdEViYlBiCitfX1pOSzdXZWJD
b3JlMTJSZW5kZXJPYmplY3QxNWxvY2FsVG9BYnNvbHV0ZUVSS05TXzEwRmxvYXRQb2ludEVqCitf
X1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QyMGxvY2FsVG9Db250YWluZXJRdWFkRVJLTlNfOUZs
b2F0UXVhZEVQTlNfMjJSZW5kZXJMYXllck1vZGVsT2JqZWN0RWpQYgogX19aTks3V2ViQ29yZTEy
UmVuZGVyT2JqZWN0MjNhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEViCiBfX1pOSzdXZWJDb3JlMTJS
ZW5kZXJPYmplY3QzOXBpeGVsU25hcHBlZEFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdEV2CiBf
X1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3Q3Y2hpbGRBdEVqCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCShyZXZpc2lvbiAxMzAzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0Miw3ICs3NDIsNyBAQCBi
b29sIENvbnRhaW5lck5vZGU6OmdldFVwcGVyTGVmdENvcm5lcihGCiAgICAgUmVuZGVyT2JqZWN0
KiBwID0gbzsKIAogICAgIGlmICghby0+aXNJbmxpbmUoKSB8fCBvLT5pc1JlcGxhY2VkKCkpIHsK
LSAgICAgICAgcG9pbnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwg
dHJ1ZSk7CisgICAgICAgIHBvaW50ID0gby0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwg
VXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCkBAIC03NjcsNyArNzY3LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjpn
ZXRVcHBlckxlZnRDb3JuZXIoRgogICAgICAgICBBU1NFUlQobyk7CiAKICAgICAgICAgaWYgKCFv
LT5pc0lubGluZSgpIHx8IG8tPmlzUmVwbGFjZWQoKSkgewotICAgICAgICAgICAgcG9pbnQgPSBv
LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgICAg
ICBwb2ludCA9IG8tPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5zZm9ybXMg
fCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogCkBAIC03ODEsNyArNzgxLDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjpnZXRVcHBl
ckxlZnRDb3JuZXIoRgogICAgICAgICAgICAgICAgIFJlbmRlckJveCogYm94ID0gdG9SZW5kZXJC
b3gobyk7CiAgICAgICAgICAgICAgICAgcG9pbnQubW92ZUJ5KGJveC0+bG9jYXRpb24oKSk7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb2ludCA9IG8tPmNvbnRhaW5lcigpLT5sb2NhbFRv
QWJzb2x1dGUocG9pbnQsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgIHBvaW50ID0gby0+Y29u
dGFpbmVyKCktPmxvY2FsVG9BYnNvbHV0ZShwb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZz
ZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgfQpAQCAtODAzLDcgKzgwMyw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6Z2V0TG93ZXJSaWdo
dENvcm5lcigKICAgICBSZW5kZXJPYmplY3QqIG8gPSByZW5kZXJlcigpOwogICAgIGlmICghby0+
aXNJbmxpbmUoKSB8fCBvLT5pc1JlcGxhY2VkKCkpIHsKICAgICAgICAgUmVuZGVyQm94KiBib3gg
PSB0b1JlbmRlckJveChvKTsKLSAgICAgICAgcG9pbnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUoTGF5
b3V0UG9pbnQoYm94LT5zaXplKCkpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIHBvaW50ID0gby0+
bG9jYWxUb0Fic29sdXRlKExheW91dFBvaW50KGJveC0+c2l6ZSgpKSwgVXNlVHJhbnNmb3JtcyB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
CkBAIC04MzYsNyArODM2LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjpnZXRMb3dlclJpZ2h0Q29y
bmVyKAogICAgICAgICAgICAgICAgIFJlbmRlckJveCogYm94ID0gdG9SZW5kZXJCb3gobyk7CiAg
ICAgICAgICAgICAgICAgcG9pbnQubW92ZUJ5KGJveC0+ZnJhbWVSZWN0KCkubWF4WE1heFlDb3Ju
ZXIoKSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb2ludCA9IG8tPmNvbnRhaW5lcigp
LT5sb2NhbFRvQWJzb2x1dGUocG9pbnQsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgIHBvaW50
ID0gby0+Y29udGFpbmVyKCktPmxvY2FsVG9BYnNvbHV0ZShwb2ludCwgVXNlVHJhbnNmb3JtcyB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkocmV2aXNpb24gMTMwMzIz
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MzksNyArNTM5LDcgQEAgSW50UmVjdCBFbGVtZW50Ojpib3VuZHNJblJvb3RWaWV3U3BhY2UoKQog
ICAgIHsKICAgICAgICAgLy8gR2V0IHRoZSBib3VuZGluZyByZWN0YW5nbGUgZnJvbSB0aGUgYm94
IG1vZGVsLgogICAgICAgICBpZiAocmVuZGVyQm94TW9kZWxPYmplY3QoKSkKLSAgICAgICAgICAg
IHJlbmRlckJveE1vZGVsT2JqZWN0KCktPmFic29sdXRlUXVhZHMocXVhZHMpOworICAgICAgICAg
ICAgcmVuZGVyQm94TW9kZWxPYmplY3QoKS0+YWJzb2x1dGVRdWFkcyhxdWFkcywgMCk7CiAgICAg
fQogCiAgICAgaWYgKHF1YWRzLmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9N
b3VzZVJlbGF0ZWRFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlUmVsYXRlZEV2ZW50LmNwcAkocmV2aXNpb24gMTMwMzIzKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDcgKzE2Niw3
IEBAIHZvaWQgTW91c2VSZWxhdGVkRXZlbnQ6OmNvbXB1dGVSZWxhdGl2ZVAKICAgICAvLyBBZGp1
c3Qgb2Zmc2V0TG9jYXRpb24gdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHRhcmdldCdzIHBvc2l0aW9u
LgogICAgIGlmICghaXNTaW11bGF0ZWQoKSkgewogICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBy
ID0gdGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKSkgewotICAgICAgICAgICAgRmxvYXRQb2ludCBsb2Nh
bFBvcyA9IHItPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVl
KTsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9jYWxQb3MgPSByLT5hYnNvbHV0ZVRvTG9jYWwo
YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9y
bXMpOwogICAgICAgICAgICAgbV9vZmZzZXRMb2NhdGlvbiA9IHJvdW5kZWRMYXlvdXRQb2ludChs
b2NhbFBvcyk7CiAgICAgICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IDEgLyAocGFnZVpvb21G
YWN0b3IodGhpcykgKiBmcmFtZVNjYWxlRmFjdG9yKHRoaXMpKTsKICAgICAgICAgICAgIGlmIChz
Y2FsZUZhY3RvciAhPSAxLjBmKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTMwMzIz
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcw
LDcgKzIwNzAsNyBAQCBGbG9hdFBvaW50IE5vZGU6OmNvbnZlcnRUb1BhZ2UoY29uc3QgRmxvCiB7
CiAgICAgLy8gSWYgdGhlcmUgaXMgYSByZW5kZXJlciwganVzdCBhc2sgaXQgdG8gZG8gdGhlIGNv
bnZlcnNpb24KICAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIHJlbmRlcmVyKCkt
PmxvY2FsVG9BYnNvbHV0ZShwLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIHJldHVybiByZW5kZXJl
cigpLT5sb2NhbFRvQWJzb2x1dGUocCwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgCiAgICAgLy8gT3Ro
ZXJ3aXNlIGdvIHVwIHRoZSB0cmVlIGxvb2tpbmcgZm9yIGEgcmVuZGVyZXIKICAgICBFbGVtZW50
ICpwYXJlbnQgPSBhbmNlc3RvckVsZW1lbnQoKTsKQEAgLTIwODUsNyArMjA4NSw3IEBAIEZsb2F0
UG9pbnQgTm9kZTo6Y29udmVydEZyb21QYWdlKGNvbnN0IEYKIHsKICAgICAvLyBJZiB0aGVyZSBp
cyBhIHJlbmRlcmVyLCBqdXN0IGFzayBpdCB0byBkbyB0aGUgY29udmVyc2lvbgogICAgIGlmIChy
ZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gcmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKHAs
IGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2Nh
bChwLCBVc2VUcmFuc2Zvcm1zKTsKIAogICAgIC8vIE90aGVyd2lzZSBnbyB1cCB0aGUgdHJlZSBs
b29raW5nIGZvciBhIHJlbmRlcmVyCiAgICAgRWxlbWVudCAqcGFyZW50ID0gYW5jZXN0b3JFbGVt
ZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAko
cmV2aXNpb24gMTMwMzIzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyODksNyArMTI4OSw3IEBAIHZvaWQgSFRNTFNlbGVj
dEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXYKIAogICAgICAgICAvLyBDb252ZXJ0IHRvIGNvb3Jk
cyByZWxhdGl2ZSB0byB0aGUgbGlzdCBib3ggaWYgbmVlZGVkLgogICAgICAgICBNb3VzZUV2ZW50
KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKLSAgICAgICAg
SW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIoKS0+YWJzb2x1
dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpKTsK
KyAgICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIo
KS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJh
bnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiAgICAgICAgIGludCBsaXN0SW5k
ZXggPSB0b1JlbmRlckxpc3RCb3gocmVuZGVyZXIoKSktPmxpc3RJbmRleEF0T2Zmc2V0KHRvU2l6
ZShsb2NhbE9mZnNldCkpOwogICAgICAgICBpZiAobGlzdEluZGV4ID49IDApIHsKICAgICAgICAg
ICAgIGlmICghZGlzYWJsZWQoKSkgewpAQCAtMTMwOSw3ICsxMzA5LDcgQEAgdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6bGlzdEJveERlZmF1bHRFdgogICAgICAgICBpZiAobW91c2VFdmVudC0+YnV0
dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCAhbW91c2VFdmVudC0+YnV0dG9uRG93bigpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIEludFBvaW50IGxvY2FsT2Zmc2V0ID0gcm91bmRlZElu
dFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxv
Y2F0aW9uKCksIGZhbHNlLCB0cnVlKSk7CisgICAgICAgIEludFBvaW50IGxvY2FsT2Zmc2V0ID0g
cm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5h
YnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cykpOwogICAgICAgICBpbnQgbGlzdEluZGV4ID0gdG9SZW5kZXJMaXN0Qm94KHJlbmRlcmVyKCkp
LT5saXN0SW5kZXhBdE9mZnNldCh0b1NpemUobG9jYWxPZmZzZXQpKTsKICAgICAgICAgaWYgKGxp
c3RJbmRleCA+PSAwKSB7CiAgICAgICAgICAgICBpZiAoIWRpc2FibGVkKCkpIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAko
cmV2aXNpb24gMTMwMzIzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgU2xp
ZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb20KICAgICAgICAgcmV0dXJuOwogCiAgICAg
aW5wdXQtPnNldFRleHRBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoaW5wdXQtPnZhbHVl
KCkpOwotICAgIExheW91dFBvaW50IG9mZnNldCA9IHJvdW5kZWRMYXlvdXRQb2ludChpbnB1dC0+
cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBmYWxzZSwgdHJ1ZSkpOworICAgIExh
eW91dFBvaW50IG9mZnNldCA9IHJvdW5kZWRMYXlvdXRQb2ludChpbnB1dC0+cmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpKTsKICAgICBib29sIGlzVmVydGljYWwgPSBoYXNWZXJ0aWNhbEFwcGVhcmFuY2UoaW5w
dXQpOwogICAgIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlvbiA9IHJlbmRlckJveCgpLT5zdHls
ZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CiAgICAgTGF5b3V0VW5pdCB0cmFja1NpemU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxMzAzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9T
cGluQnV0dG9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcgQEAgdm9p
ZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZAogICAgIH0KIAogICAgIE1vdXNl
RXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpOwotICAg
IEludFBvaW50IGxvY2FsID0gcm91bmRlZEludFBvaW50KGJveC0+YWJzb2x1dGVUb0xvY2FsKG1v
dXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpKTsKKyAgICBJbnRQb2lu
dCBsb2NhbCA9IHJvdW5kZWRJbnRQb2ludChib3gtPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50
LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcykpOwogICAgIGlmIChtb3VzZUV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNl
ZG93bkV2ZW50ICYmIG1vdXNlRXZlbnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKICAgICAg
ICAgaWYgKGJveC0+cGl4ZWxTbmFwcGVkQm9yZGVyQm94UmVjdCgpLmNvbnRhaW5zKGxvY2FsKSkg
ewogICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgb2YgSFRNTElucHV0RWxl
bWVudCBtYXkgcnVuIEphdmFTY3JpcHQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJ
KHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQ4MSwxMyArMzQ4MSwxMyBAQCBJbnRSZWN0IEZyYW1lVmlldzo6
Y29udmVydFRvUmVuZGVyZXIoY29uCiAKICAgICAvLyBGSVhNRTogd2UgZG9uJ3QgaGF2ZSBhIHdh
eSB0byBtYXAgYW4gYWJzb2x1dGUgcmVjdCBkb3duIHRvIGEgbG9jYWwgcXVhZCwgc28ganVzdAog
ICAgIC8vIG1vdmUgdGhlIHJlY3QgZm9yIG5vdy4KLSAgICByZWN0LnNldExvY2F0aW9uKHJvdW5k
ZWRJbnRQb2ludChyZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHJlY3QubG9jYXRpb24oKSwgZmFs
c2UsIHRydWUgLyogdXNlIHRyYW5zZm9ybXMgKi8pKSk7CisgICAgcmVjdC5zZXRMb2NhdGlvbihy
b3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChyZWN0LmxvY2F0aW9uKCks
IFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykpKTsKICAgICByZXR1cm4g
cmVjdDsKIH0KIAogSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKGNvbnN0
IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEludFBvaW50JiByZW5kZXJlclBvaW50KSBj
b25zdAogewotICAgIEludFBvaW50IHBvaW50ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5s
b2NhbFRvQWJzb2x1dGUocmVuZGVyZXJQb2ludCwgZmFsc2UsIHRydWUgLyogdXNlIHRyYW5zZm9y
bXMgKi8pKTsKKyAgICBJbnRQb2ludCBwb2ludCA9IHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+
bG9jYWxUb0Fic29sdXRlKHJlbmRlcmVyUG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcykpOwogCiAgICAgLy8gQ29udmVydCBmcm9tIHBhZ2UgKCJhYnNvbHV0ZSIp
IHRvIEZyYW1lVmlldyBjb29yZGluYXRlcy4KICAgICBpZiAoIWRlbGVnYXRlc1Njcm9sbGluZygp
KQpAQCAtMzUwMyw3ICszNTAzLDcgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0VG9SZW5k
ZXJlcihjbwogICAgIGlmICghZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHBvaW50ICs9
IEludFNpemUoc2Nyb2xsWCgpLCBzY3JvbGxZKCkpOwogCi0gICAgcmV0dXJuIHJvdW5kZWRJbnRQ
b2ludChyZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBmYWxzZSwgdHJ1ZSAvKiB1c2Ug
dHJhbnNmb3JtcyAqLykpOworICAgIHJldHVybiByb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFi
c29sdXRlVG9Mb2NhbChwb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKSk7CiB9CiAKIEludFJlY3QgRnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWluaW5nVmlldyhj
b25zdCBJbnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGF5b3V0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MYXlvdXRTdGF0ZS5jcHAJKHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw3ICsxNDgs
NyBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoUmVuZGVyT2JqZWN0KiByCiAjZW5kaWYKIHsK
ICAgICBSZW5kZXJPYmplY3QqIGNvbnRhaW5lciA9IHJvb3QtPmNvbnRhaW5lcigpOwotICAgIEZs
b2F0UG9pbnQgYWJzQ29udGVudFBvaW50ID0gY29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGUoRmxv
YXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgRmxvYXRQb2ludCBhYnNDb250ZW50UG9pbnQg
PSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5zZm9ybXMg
fCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgbV9wYWludE9mZnNldCA9IExheW91dFNp
emUoYWJzQ29udGVudFBvaW50LngoKSwgYWJzQ29udGVudFBvaW50LnkoKSk7CiAKICAgICBpZiAo
Y29udGFpbmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAxMzAzMjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nzc4LDEwICs2
Nzc4LDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFic29sdXRlUXVhZHMoVmVjdG9yPEYKICAgICAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NzgxCiAgICAg
ICAgIEZsb2F0UmVjdCBsb2NhbFJlY3QoMCwgLWNvbGxhcHNlZE1hcmdpbkJlZm9yZSgpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCksIGhlaWdodCgpICsgY29sbGFwc2VkTWFy
Z2luQmVmb3JlKCkgKyBjb2xsYXBzZWRNYXJnaW5BZnRlcigpKTsKLSAgICAgICAgcXVhZHMuYXBw
ZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0LCBmYWxzZSwgd2FzRml4ZWQpKTsKKyAg
ICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0LCAwLCB3YXNG
aXhlZCkpOwogICAgICAgICBjb250aW51YXRpb24oKS0+YWJzb2x1dGVRdWFkcyhxdWFkcywgd2Fz
Rml4ZWQpOwogICAgIH0gZWxzZQotICAgICAgICBxdWFkcy5hcHBlbmQoUmVuZGVyQm94Ojpsb2Nh
bFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSksIGZhbHNl
LCB3YXNGaXhlZCkpOworICAgICAgICBxdWFkcy5hcHBlbmQoUmVuZGVyQm94Ojpsb2NhbFRvQWJz
b2x1dGVRdWFkKEZsb2F0UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSksIDAsIHdhc0ZpeGVk
KSk7CiB9CiAKIExheW91dFJlY3QgUmVuZGVyQmxvY2s6OnJlY3RXaXRoT3V0bGluZUZvclJlcGFp
bnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0VW5pdCBv
dXRsaW5lV2lkdGgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAkocmV2aXNpb24gMTMwMzIzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lkIFJlbmRlckJv
eDo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50CiAKIHZvaWQgUmVuZGVyQm94OjphYnNvbHV0ZVF1
YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7Ci0g
ICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KDAsIDAsIHdpZHRo
KCksIGhlaWdodCgpKSwgZmFsc2UsIHdhc0ZpeGVkKSk7CisgICAgcXVhZHMuYXBwZW5kKGxvY2Fs
VG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KDAsIDAsIHdpZHRoKCksIGhlaWdodCgpKSwgMCwgd2Fz
Rml4ZWQpKTsKIH0KIAogdm9pZCBSZW5kZXJCb3g6OnVwZGF0ZUxheWVyVHJhbnNmb3JtKCkKQEAg
LTEyNTgsNyArMTI1OCw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjpwZXJwZW5kaWN1bGFyQ29u
dGEKICAgICByZXR1cm4gY2ItPmFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6
aW5nKGxvZ2ljYWxIZWlnaHRMZW5ndGgudmFsdWUoKSk7CiB9CiAKLXZvaWQgUmVuZGVyQm94Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwTG9jYWxUb0NvbnRhaW5lckZs
YWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJCb3g6Om1hcExvY2Fs
VG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJv
b2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIGlmIChyZXBhaW50Q29udGFpbmVyID09IHRoaXMp
CiAgICAgICAgIHJldHVybjsKQEAgLTEzNjMsMTggKzEzNjMsMTggQEAgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJCb3g6OnB1c2hNYXBwaQogICAgIHJldHVybiBhbmNlc3RvclNraXBwZWQgPyBh
bmNlc3RvclRvU3RvcEF0IDogY29udGFpbmVyOwogfQogCi12b2lkIFJlbmRlckJveDo6bWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zv
cm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0Cit2b2lkIFJlbmRlckJveDo6bWFwQWJzb2x1
dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1TdGF0ZSYg
dHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7CiAgICAgYm9vbCBpc0ZpeGVkUG9zID0gc3R5bGUoKS0+
cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uOwogICAgIGJvb2wgaGFzVHJhbnNmb3JtID0gaGFz
TGF5ZXIoKSAmJiBsYXllcigpLT50cmFuc2Zvcm0oKTsKLSAgICBpZiAoaGFzVHJhbnNmb3JtKSB7
CisgICAgaWYgKGhhc1RyYW5zZm9ybSAmJiAhaXNGaXhlZFBvcykgewogICAgICAgICAvLyBJZiB0
aGlzIGJveCBoYXMgYSB0cmFuc2Zvcm0sIGl0IGFjdHMgYXMgYSBmaXhlZCBwb3NpdGlvbiBjb250
YWluZXIgZm9yIGZpeGVkIGRlc2NlbmRhbnRzLAogICAgICAgICAvLyBhbmQgbWF5IGl0c2VsZiBh
bHNvIGJlIGZpeGVkIHBvc2l0aW9uLiBTbyBwcm9wYWdhdGUgJ2ZpeGVkJyB1cCBvbmx5IGlmIHRo
aXMgYm94IGlzIGZpeGVkIHBvc2l0aW9uLgotICAgICAgICBmaXhlZCAmPSBpc0ZpeGVkUG9zOwot
ICAgIH0gZWxzZQotICAgICAgICBmaXhlZCB8PSBpc0ZpeGVkUG9zOworICAgICAgICBtb2RlICY9
IH5Jc0ZpeGVkOworICAgIH0gZWxzZSBpZiAoaXNGaXhlZFBvcykKKyAgICAgICAgbW9kZSB8PSBJ
c0ZpeGVkOwogCi0gICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBv
aW50KGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgUmVuZGVyQm94
TW9kZWxPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KG1vZGUsIHRyYW5zZm9ybVN0YXRl
KTsKIH0KIAogTGF5b3V0U2l6ZSBSZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIoUmVuZGVy
T2JqZWN0KiBvLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIGJvb2wqIG9mZnNldERlcGVuZHNP
blBvaW50KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkocmV2
aXNpb24gMTMwMzIzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01NzAsOSArNTcwLDkgQEAgcHJvdGVjdGVkOgogICAgIAogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRDb21wdXRlU2l6ZUFzUmVwbGFjZWQoKSBjb25zdCB7IHJldHVybiBp
c1JlcGxhY2VkKCkgJiYgIWlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCk7IH0KIAotICAgIHZp
cnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdz
IG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9v
bCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVy
RmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1Rv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqLCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQ
b2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29u
c3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5h
dGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKIAogICAgIHZvaWQgcGFpbnRS
b290Qm94RmlsbExheWVycyhjb25zdCBQYWludEluZm8mKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCShyZXZpc2lvbiAx
MzAzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjk2LDEzICsyNjk2LDEzIEBAIGJvb2wgUmVuZGVyQm94
TW9kZWxPYmplY3Q6OnNob3VsZEFudGlhbGkKICAgICByZXR1cm4gIWNvbnRleHQtPmdldENUTSgp
LmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uT3JGbGlwcGVkKCk7CiB9CiAKLXZvaWQgUmVuZGVyQm94
TW9kZWxPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNl
VHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAordm9pZCBS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0
ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7CiAg
ICAgUmVuZGVyT2JqZWN0KiBvID0gY29udGFpbmVyKCk7CiAgICAgaWYgKCFvKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBvLT5tYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChmaXhlZCwgdXNlVHJhbnNm
b3JtcywgdHJhbnNmb3JtU3RhdGUpOworICAgIG8tPm1hcEFic29sdXRlVG9Mb2NhbFBvaW50KG1v
ZGUsIHRyYW5zZm9ybVN0YXRlKTsKIAogICAgIExheW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0g
b2Zmc2V0RnJvbUNvbnRhaW5lcihvLCBMYXlvdXRQb2ludCgpKTsKIApAQCAtMjcxMyw4ICsyNzEz
LDggQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJzb2x1dGVUbwogICAgICAgICBi
bG9jay0+YWRqdXN0Rm9yQ29sdW1uUmVjdChjb250YWluZXJPZmZzZXQsIHBvaW50KTsKICAgICB9
CiAKLSAgICBib29sIHByZXNlcnZlM0QgPSB1c2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgpLT5w
cmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOwotICAgIGlmICh1c2VUcmFu
c2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIobykpIHsKKyAgICBib29s
IHByZXNlcnZlM0QgPSBtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5bGUoKS0+cHJlc2Vy
dmVzM0QoKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKKyAgICBpZiAobW9kZSAmIFVzZVRy
YW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkgewogICAgICAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29udGFp
bmVyKG8sIGNvbnRhaW5lck9mZnNldCwgdCk7CiAgICAgICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5
VHJhbnNmb3JtKHQsIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5z
Zm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCShyZXZpc2lvbiAx
MzAzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUs
IExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJv
b2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0
aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcEFi
c29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNm
b3JtU3RhdGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVU
b0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1TdGF0ZSYpIGNv
bnN0IE9WRVJSSURFOwogCiAgICAgdm9pZCBoaWdoUXVhbGl0eVJlcGFpbnRUaW1lckZpcmVkKFRp
bWVyPFJlbmRlckJveE1vZGVsT2JqZWN0PiopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAJKHJldmlzaW9uIDEzMDMyMykK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMyMiw3ICszMjIsNyBAQCBib29sIFJlbmRlckVtYmVkZGVkT2JqZWN0
Ojppc0luVW5hdmFpbGFiCiAKIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmlzSW5VbmF2YWls
YWJsZVBsdWdpbkluZGljYXRvcihNb3VzZUV2ZW50KiBldmVudCkgY29uc3QKIHsKLSAgICByZXR1
cm4gaXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKHJvdW5kZWRMYXlvdXRQb2ludChhYnNv
bHV0ZVRvTG9jYWwoZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpKSk7Cisg
ICAgcmV0dXJuIGlzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihyb3VuZGVkTGF5b3V0UG9p
bnQoYWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9y
bXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykpKTsKIH0KIAogc3RhdGljIGJvb2wgc2hvdWxk
VW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oRG9jdW1lbnQqIGRvY3VtZW50LCBSZW5k
ZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJh
bWVTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
cmFtZVNldC5jcHAJKHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGcmFtZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5OSw3ICs2OTksNyBAQCBi
b29sIFJlbmRlckZyYW1lU2V0Ojp1c2VyUmVzaXplKE1vdXNlRXZlCiAgICAgICAgIGlmIChuZWVk
c0xheW91dCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoZXZ0LT50
eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2dC0+YnV0dG9uKCkgPT0g
TGVmdEJ1dHRvbikgewotICAgICAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBvcyA9IGFic29sdXRl
VG9Mb2NhbChldnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOworICAgICAgICAg
ICAgRmxvYXRQb2ludCBsb2NhbFBvcyA9IGFic29sdXRlVG9Mb2NhbChldnQtPmFic29sdXRlTG9j
YXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAg
ICAgICAgIHN0YXJ0UmVzaXppbmcobV9jb2xzLCBsb2NhbFBvcy54KCkpOwogICAgICAgICAgICAg
c3RhcnRSZXNpemluZyhtX3Jvd3MsIGxvY2FsUG9zLnkoKSk7CiAgICAgICAgICAgICBpZiAobV9j
b2xzLm1fc3BsaXRCZWluZ1Jlc2l6ZWQgIT0gbm9TcGxpdCB8fCBtX3Jvd3MubV9zcGxpdEJlaW5n
UmVzaXplZCAhPSBub1NwbGl0KSB7CkBAIC03MDksNyArNzA5LDcgQEAgYm9vbCBSZW5kZXJGcmFt
ZVNldDo6dXNlclJlc2l6ZShNb3VzZUV2ZQogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVFdmVudCB8fCAoZXZ0
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCAmJiBldnQtPmJ1dHRvbigpID09
IExlZnRCdXR0b24pKSB7Ci0gICAgICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0gYWJzb2x1
dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAg
ICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVM
b2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAg
ICAgICAgICAgY29udGludWVSZXNpemluZyhtX2NvbHMsIGxvY2FsUG9zLngoKSk7CiAgICAgICAg
ICAgICBjb250aW51ZVJlc2l6aW5nKG1fcm93cywgbG9jYWxQb3MueSgpKTsKICAgICAgICAgICAg
IGlmIChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYmIGV2dC0+YnV0
dG9uKCkgPT0gTGVmdEJ1dHRvbikgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdlb21ldHJ5TWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCShyZXZpc2lvbiAxMzAzMjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
OCw3ICs1OCw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyR2VvbWV0cnlNYXA6OmFic29sdXRlUG8KICAg
ICB9CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgRmxvYXRQb2ludCByZW5kZXJlck1hcHBl
ZFJlc3VsdCA9IG1fbWFwcGluZy5sYXN0KCkubV9yZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKHAs
IGZhbHNlLCB0cnVlKTsKKyAgICBGbG9hdFBvaW50IHJlbmRlcmVyTWFwcGVkUmVzdWx0ID0gbV9t
YXBwaW5nLmxhc3QoKS5tX3JlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUocCwgVXNlVHJhbnNmb3Jt
cyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICBBU1NFUlQocmVuZGVyZXJNYXBwZWRS
ZXN1bHQgPT0gcmVzdWx0KTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24gMTMwMzIzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMDMsNyArMTEw
Myw3IEBAIExheW91dFNpemUgUmVuZGVySW5saW5lOjpvZmZzZXRGcm9tQ29udGEKICAgICByZXR1
cm4gb2Zmc2V0OwogfQogCi12b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYg
dHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFu
c2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29u
c3QKIHsKICAgICBpZiAocmVwYWludENvbnRhaW5lciA9PSB0aGlzKQogICAgICAgICByZXR1cm47
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCShyZXZpc2lvbiAx
MzAzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5b3V0
UmVjdCByZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkKSBjb25zdCBP
VkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9j
YWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9k
ZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3
YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAK
ICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91
dFBvaW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJ
KHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNzIsNyArMTE3Miw3IEBAIFJlbmRlckxheWVyKiBS
ZW5kZXJMYXllcjo6Y2xpcHBpbmdSb290Rm8KIExheW91dFBvaW50IFJlbmRlckxheWVyOjphYnNv
bHV0ZVRvQ29udGVudHMoY29uc3QgTGF5b3V0UG9pbnQmIGFic29sdXRlUG9pbnQpIGNvbnN0CiB7
CiAgICAgLy8gV2UgZG9uJ3QgdXNlIGNvbnZlcnRUb0xheWVyQ29vcmRzIGJlY2F1c2UgaXQgZG9l
c24ndCBrbm93IGFib3V0IHRyYW5zZm9ybXMKLSAgICByZXR1cm4gcm91bmRlZExheW91dFBvaW50
KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZVBvaW50LCBmYWxzZSwgdHJ1ZSkp
OworICAgIHJldHVybiByb3VuZGVkTGF5b3V0UG9pbnQocmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xv
Y2FsKGFic29sdXRlUG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cykpOwogfQogCiBib29sIFJlbmRlckxheWVyOjpjYW5ub3RCbGl0VG9XaW5kb3coKSBjb25zdApA
QCAtNDAyMCw3ICs0MDIwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3Rz
KGNvbgogICAgICAgICAvLyBzb21lIHRyYW5zZm9ybWVkIGxheWVyIGJvdW5kYXJ5LCBmb3IgZXhh
bXBsZSwgaW4gdGhlIFJlbmRlckxheWVyQ29tcG9zaXRvciBvdmVybGFwTWFwLCB3aGVyZQogICAg
ICAgICAvLyBjbGlwUmVjdHMgYXJlIG5lZWRlZCBpbiB2aWV3IHNwYWNlLgogICAgICAgICBMYXlv
dXRQb2ludCBvZmZzZXQ7Ci0gICAgICAgIG9mZnNldCA9IHJvdW5kZWRMYXlvdXRQb2ludChyZW5k
ZXJlcigpLT5sb2NhbFRvQ29udGFpbmVyUG9pbnQoRmxvYXRQb2ludCgpLCByb290TGF5ZXItPnJl
bmRlcmVyKCksIGZhbHNlLCBmYWxzZSwgMCkpOworICAgICAgICBvZmZzZXQgPSByb3VuZGVkTGF5
b3V0UG9pbnQocmVuZGVyZXIoKS0+bG9jYWxUb0NvbnRhaW5lclBvaW50KEZsb2F0UG9pbnQoKSwg
cm9vdExheWVyLT5yZW5kZXJlcigpLCAwKSk7CiAgICAgICAgIFJlbmRlclZpZXcqIHZpZXcgPSBy
ZW5kZXJlcigpLT52aWV3KCk7CiAgICAgICAgIEFTU0VSVCh2aWV3KTsKICAgICAgICAgaWYgKHZp
ZXcgJiYgY2xpcFJlY3RzLmZpeGVkKCkgJiYgcm9vdExheWVyLT5yZW5kZXJlcigpID09IHZpZXcp
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250
cm9scy5jcHAJKHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEzLDcgKzIxMyw3IEBA
IEludFBvaW50IFJlbmRlck1lZGlhQ29udHJvbHM6OnZvbHVtZVNsaWQKIAogICAgIGZsb2F0IHpv
b21MZXZlbCA9IG11dGVCdXR0b25Cb3gtPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKTsKICAgICBp
bnQgeSA9IHlPZmZzZXQgKiB6b29tTGV2ZWwgKyBtdXRlQnV0dG9uQm94LT5waXhlbFNuYXBwZWRP
ZmZzZXRIZWlnaHQoKSAtIHNpemUuaGVpZ2h0KCk7Ci0gICAgRmxvYXRQb2ludCBhYnNQb2ludCA9
IG11dGVCdXR0b25Cb3gtPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gt
PnBpeGVsU25hcHBlZE9mZnNldExlZnQoKSwgeSksIHRydWUsIHRydWUpOworICAgIEZsb2F0UG9p
bnQgYWJzUG9pbnQgPSBtdXRlQnV0dG9uQm94LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCht
dXRlQnV0dG9uQm94LT5waXhlbFNuYXBwZWRPZmZzZXRMZWZ0KCksIHkpLCBJc0ZpeGVkIHwgVXNl
VHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICBpZiAoYWJzUG9pbnQu
eSgpIDwgMCkKICAgICAgICAgeSA9IG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZEhlaWdodCgp
OwogICAgIHJldHVybiBJbnRQb2ludCh4T2Zmc2V0ICogem9vbUxldmVsLCB5KTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkocmV2aXNpb24gMTMw
MzIzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQ
b3B1cCgpCiAKICAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcgdHJhbnNmb3JtcyBp
bnRvIGFjY291bnQsIGJ1dCB1c2UKICAgICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRoZSBlbGVt
ZW50IHRvIHNpemUgdGhlIHBvcHVwLgotICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9IGxvY2Fs
VG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKKyAgICBGbG9hdFBvaW50IGFi
c1RvcExlZnQgPSBsb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBVc2VUcmFuc2Zvcm1zIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAgIEludFJlY3QgYWJzQm91bmRzID0gYWJzb2x1
dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKTsKICAgICBhYnNCb3VuZHMuc2V0
TG9jYXRpb24ocm91bmRlZEludFBvaW50KGFic1RvcExlZnQpKTsKICAgICBIVE1MU2VsZWN0RWxl
bWVudCogc2VsZWN0ID0gc2VsZWN0RWxlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAzLDMw
ICsyMDAzLDI1IEBAIExheW91dFJlY3QgUmVuZGVyT2JqZWN0Ojp2aWV3UmVjdCgpIGNvbnMKICAg
ICByZXR1cm4gdmlldygpLT52aWV3UmVjdCgpOwogfQogCi1GbG9hdFBvaW50IFJlbmRlck9iamVj
dDo6bG9jYWxUb0Fic29sdXRlKGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsUG9pbnQsIGJvb2wgZml4
ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcykgY29uc3QKK0Zsb2F0UG9pbnQgUmVuZGVyT2JqZWN0Ojps
b2NhbFRvQWJzb2x1dGUoY29uc3QgRmxvYXRQb2ludCYgbG9jYWxQb2ludCwgTWFwQ29vcmRpbmF0
ZXNGbGFncyBtb2RlKSBjb25zdAogewogICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5zZm9ybVN0YXRl
KFRyYW5zZm9ybVN0YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgbG9jYWxQb2ludCk7Ci0g
ICAgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXA7Ci0g
ICAgaWYgKGZpeGVkKQotICAgICAgICBtb2RlIHw9IElzRml4ZWQ7Ci0gICAgaWYgKHVzZVRyYW5z
Zm9ybXMpCi0gICAgICAgIG1vZGUgfD0gVXNlVHJhbnNmb3JtczsKLSAgICBtYXBMb2NhbFRvQ29u
dGFpbmVyKDAsIHRyYW5zZm9ybVN0YXRlLCBtb2RlKTsKKyAgICBtYXBMb2NhbFRvQ29udGFpbmVy
KDAsIHRyYW5zZm9ybVN0YXRlLCBtb2RlIHwgQXBwbHlDb250YWluZXJGbGlwKTsKICAgICB0cmFu
c2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CiAgICAgCiAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLmxh
c3RQbGFuYXJQb2ludCgpOwogfQogCi1GbG9hdFBvaW50IFJlbmRlck9iamVjdDo6YWJzb2x1dGVU
b0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmIGNvbnRhaW5lclBvaW50LCBib29sIGZpeGVkLCBib29s
IHVzZVRyYW5zZm9ybXMpIGNvbnN0CitGbG9hdFBvaW50IFJlbmRlck9iamVjdDo6YWJzb2x1dGVU
b0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmIGNvbnRhaW5lclBvaW50LCBNYXBDb29yZGluYXRlc0Zs
YWdzIG1vZGUpIGNvbnN0CiB7CiAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJh
bnNmb3JtU3RhdGU6OlVuYXBwbHlJbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uLCBjb250YWluZXJQ
b2ludCk7Ci0gICAgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoZml4ZWQsIHVzZVRyYW5zZm9ybXMs
IHRyYW5zZm9ybVN0YXRlKTsKKyAgICBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChtb2RlLCB0cmFu
c2Zvcm1TdGF0ZSk7CiAgICAgdHJhbnNmb3JtU3RhdGUuZmxhdHRlbigpOwogICAgIAogICAgIHJl
dHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUG9pbnQoKTsKIH0KIAotdm9pZCBSZW5kZXJP
YmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBMb2NhbFRvQ29u
dGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlck9iamVj
dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWlu
ZXIgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwpAQCAtMjA3MiwxMSArMjA2NywxMSBAQCBjb25z
dCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdDo6cHVzaE1hCiAgICAgcmV0dXJuIGNvbnRhaW5l
cjsKIH0KIAotdm9pZCBSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wg
Zml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRl
KSBjb25zdAordm9pZCBSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENv
b3JkaW5hdGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25z
dAogewogICAgIFJlbmRlck9iamVjdCogbyA9IHBhcmVudCgpOwogICAgIGlmIChvKSB7Ci0gICAg
ICAgIG8tPm1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFu
c2Zvcm1TdGF0ZSk7CisgICAgICAgIG8tPm1hcEFic29sdXRlVG9Mb2NhbFBvaW50KG1vZGUsIHRy
YW5zZm9ybVN0YXRlKTsKICAgICAgICAgaWYgKG8tPmhhc092ZXJmbG93Q2xpcCgpKQogICAgICAg
ICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSh0b1JlbmRlckJveChvKS0+c2Nyb2xsZWRDb250ZW50
T2Zmc2V0KCkpOwogICAgIH0KQEAgLTIxMjAsMzEgKzIxMTUsMjEgQEAgdm9pZCBSZW5kZXJPYmpl
Y3Q6OmdldFRyYW5zZm9ybUZyb21Db250YQogI2VuZGlmCiB9CiAKLUZsb2F0UXVhZCBSZW5kZXJP
YmplY3Q6OmxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVhZCYgbG9jYWxRdWFkLCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHNuYXBPZmZzZXRG
b3JUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK0Zsb2F0UXVh
ZCBSZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVhZCYgbG9j
YWxRdWFkLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIC8vIFRyYWNr
IHRoZSBwb2ludCBhdCB0aGUgY2VudGVyIG9mIHRoZSBxdWFkJ3MgYm91bmRpbmcgYm94LiBBcyBt
YXBMb2NhbFRvQ29udGFpbmVyKCkgY2FsbHMgb2Zmc2V0RnJvbUNvbnRhaW5lcigpLAogICAgIC8v
IGl0IHdpbGwgdXNlIHRoYXQgcG9pbnQgYXMgdGhlIHJlZmVyZW5jZSBwb2ludCB0byBkZWNpZGUg
d2hpY2ggY29sdW1uJ3MgdHJhbnNmb3JtIHRvIGFwcGx5IGluIG11bHRpcGxlLWNvbHVtbiBibG9j
a3MuCiAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3JtU3RhdGU6OkFw
cGx5VHJhbnNmb3JtRGlyZWN0aW9uLCBsb2NhbFF1YWQuYm91bmRpbmdCb3goKS5jZW50ZXIoKSwg
bG9jYWxRdWFkKTsKLSAgICBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29u
dGFpbmVyRmxpcCB8IFVzZVRyYW5zZm9ybXM7Ci0gICAgaWYgKGZpeGVkKQotICAgICAgICBtb2Rl
IHw9IElzRml4ZWQ7Ci0gICAgaWYgKHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQotICAgICAgICBt
b2RlIHw9IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zOwotICAgIG1hcExvY2FsVG9Db250YWluZXIo
cmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICBt
YXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2Rl
IHwgQXBwbHlDb250YWluZXJGbGlwIHwgVXNlVHJhbnNmb3Jtcywgd2FzRml4ZWQpOwogICAgIHRy
YW5zZm9ybVN0YXRlLmZsYXR0ZW4oKTsKICAgICAKICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUu
bGFzdFBsYW5hclF1YWQoKTsKIH0KIAotRmxvYXRQb2ludCBSZW5kZXJPYmplY3Q6OmxvY2FsVG9D
b250YWluZXJQb2ludChjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBvaW50LCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
LCBib29sIGZpeGVkLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK0Zsb2F0UG9pbnQgUmVuZGVyT2Jq
ZWN0Ojpsb2NhbFRvQ29udGFpbmVyUG9pbnQoY29uc3QgRmxvYXRQb2ludCYgbG9jYWxQb2ludCwg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTWFwQ29vcmRpbmF0ZXNG
bGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBUcmFuc2Zvcm1TdGF0ZSB0
cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24sIGxv
Y2FsUG9pbnQpOwotICAgIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBwbHlDb250
YWluZXJGbGlwIHwgVXNlVHJhbnNmb3JtczsKLSAgICBpZiAoZml4ZWQpCi0gICAgICAgIG1vZGUg
fD0gSXNGaXhlZDsKLSAgICBpZiAoc25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAgICAgIG1v
ZGUgfD0gU25hcE9mZnNldEZvclRyYW5zZm9ybXM7Ci0gICAgbWFwTG9jYWxUb0NvbnRhaW5lcihy
ZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOworICAgIG1h
cExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUg
fCBBcHBseUNvbnRhaW5lckZsaXAgfCBVc2VUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CiAgICAgdHJh
bnNmb3JtU3RhdGUuZmxhdHRlbigpOwogCiAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLmxhc3RQ
bGFuYXJQb2ludCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAkocmV2aXNpb24gMTMwMzIzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsMTMgKzExMCwxMyBAQCBlbnVtIFBsYWNlR2Vu
ZXJhdGVkUnVuSW5GbGFnIHsKICAgICBEb05vdFBsYWNlR2VuZXJhdGVkUnVuSW4KIH07CiAKLWVu
dW0gTWFwTG9jYWxUb0NvbnRhaW5lck1vZGUgeworZW51bSBNYXBDb29yZGluYXRlc01vZGUgewog
ICAgIElzRml4ZWQgPSAxIDw8IDAsCiAgICAgVXNlVHJhbnNmb3JtcyA9IDEgPDwgMSwKICAgICBB
cHBseUNvbnRhaW5lckZsaXAgPSAxIDw8IDIsCiAgICAgU25hcE9mZnNldEZvclRyYW5zZm9ybXMg
PSAxIDw8IDMKIH07Ci10eXBlZGVmIHVuc2lnbmVkIE1hcExvY2FsVG9Db250YWluZXJGbGFnczsK
K3R5cGVkZWYgdW5zaWduZWQgTWFwQ29vcmRpbmF0ZXNGbGFnczsKIAogY29uc3QgaW50IGNhcmV0
V2lkdGggPSAxOwogCkBAIC02OTgsMTkgKzY5OCwxOSBAQCBwdWJsaWM6CiAgICAgUmVuZGVyQmxv
Y2sqIGNvbnRhaW5pbmdCbG9jaygpIGNvbnN0OwogCiAgICAgLy8gQ29udmVydCB0aGUgZ2l2ZW4g
bG9jYWwgcG9pbnQgdG8gYWJzb2x1dGUgY29vcmRpbmF0ZXMKLSAgICAvLyBGSVhNRTogVGVtcG9y
YXJ5LiBJZiB1c2VUcmFuc2Zvcm1zIGlzIHRydWUsIHRha2UgdHJhbnNmb3JtcyBpbnRvIGFjY291
bnQuIEV2ZW50dWFsbHkgbG9jYWxUb0Fic29sdXRlKCkgd2lsbCBhbHdheXMgYmUgdHJhbnNmb3Jt
LWF3YXJlLgotICAgIEZsb2F0UG9pbnQgbG9jYWxUb0Fic29sdXRlKGNvbnN0IEZsb2F0UG9pbnQm
IGxvY2FsUG9pbnQgPSBGbG9hdFBvaW50KCksIGJvb2wgZml4ZWQgPSBmYWxzZSwgYm9vbCB1c2VU
cmFuc2Zvcm1zID0gZmFsc2UpIGNvbnN0OwotICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVUb0xvY2Fs
KGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wgdXNlVHJhbnNmb3Jt
cyA9IGZhbHNlKSBjb25zdDsKKyAgICAvLyBGSVhNRTogVGVtcG9yYXJ5LiBJZiBVc2VUcmFuc2Zv
cm1zIGlzIHRydWUsIHRha2UgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQuIEV2ZW50dWFsbHkgbG9j
YWxUb0Fic29sdXRlKCkgd2lsbCBhbHdheXMgYmUgdHJhbnNmb3JtLWF3YXJlLgorICAgIEZsb2F0
UG9pbnQgbG9jYWxUb0Fic29sdXRlKGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsUG9pbnQgPSBGbG9h
dFBvaW50KCksIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKSBjb25zdDsKKyAgICBGbG9hdFBvaW50IGFic29sdXRlVG9Mb2NhbChjb25zdCBGbG9hdFBv
aW50JiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gU25hcE9mZnNldEZvclRyYW5zZm9ybXMp
IGNvbnN0OwogCiAgICAgLy8gQ29udmVydCBhIGxvY2FsIHF1YWQgdG8gYWJzb2x1dGUgY29vcmRp
bmF0ZXMsIHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudC4KLSAgICBGbG9hdFF1YWQgbG9j
YWxUb0Fic29sdXRlUXVhZChjb25zdCBGbG9hdFF1YWQmIHF1YWQsIGJvb2wgZml4ZWQgPSBmYWxz
ZSwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdAorICAgIEZsb2F0UXVhZCBsb2NhbFRvQWJzb2x1
dGVRdWFkKGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0g
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QKICAgICB7
Ci0gICAgICAgIHJldHVybiBsb2NhbFRvQ29udGFpbmVyUXVhZChxdWFkLCAwLCBmYWxzZSwgZml4
ZWQsIHdhc0ZpeGVkKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsVG9Db250YWluZXJRdWFkKHF1YWQs
IDAsIG1vZGUsIHdhc0ZpeGVkKTsKICAgICB9CiAKICAgICAvLyBDb252ZXJ0IGEgbG9jYWwgcXVh
ZCBpbnRvIHRoZSBjb29yZGluYXRlIHN5c3RlbSBvZiBjb250YWluZXIsIHRha2luZyB0cmFuc2Zv
cm1zIGludG8gYWNjb3VudC4KLSAgICBGbG9hdFF1YWQgbG9jYWxUb0NvbnRhaW5lclF1YWQoY29u
c3QgRmxvYXRRdWFkJiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
Ym9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wgZml4ZWQgPSBmYWxzZSwg
Ym9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKLSAgICBGbG9hdFBvaW50IGxvY2FsVG9Db250YWlu
ZXJQb2ludChjb25zdCBGbG9hdFBvaW50JiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wgZml4
ZWQgPSBmYWxzZSwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICBGbG9hdFF1YWQgbG9j
YWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CisgICAgRmxvYXRQb2lu
dCBsb2NhbFRvQ29udGFpbmVyUG9pbnQoY29uc3QgRmxvYXRQb2ludCYsIFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OwogCiAgICAg
Ly8gUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSB0aGUgY29udGFpbmVyKCkgcmVuZGVyZXIgKGV4Y2x1
ZGluZyB0cmFuc2Zvcm1zKS4gSW4gbXVsdGktY29sdW1uIGxheW91dCwKICAgICAvLyBkaWZmZXJl
bnQgb2Zmc2V0cyBhcHBseSBhdCBkaWZmZXJlbnQgcG9pbnRzLCBzbyByZXR1cm4gdGhlIG9mZnNl
dCB0aGF0IGFwcGxpZXMgdG8gdGhlIGdpdmVuIHBvaW50LgpAQCAtOTA4LDggKzkwOCw4IEBAIHB1
YmxpYzoKIAogICAgIC8vIE1hcCBwb2ludHMgYW5kIHF1YWRzIHRocm91Z2ggZWxlbWVudHMsIHBv
dGVudGlhbGx5IHZpYSAzZCB0cmFuc2Zvcm1zLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gY2Fs
bCB0aGVzZSBkaXJlY3RseTsgdXNlCiAgICAgLy8gbG9jYWxUb0Fic29sdXRlL2Fic29sdXRlVG9M
b2NhbCBtZXRob2RzIGluc3RlYWQuCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWlu
ZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3Rh
dGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCwg
Ym9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVU
b0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0
ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9
IDApIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBD
b29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKICAgICAvLyBQ
dXNoZXMgc3RhdGUgb250byBSZW5kZXJHZW9tZXRyeU1hcCBhYm91dCBob3cgdG8gbWFwIGNvb3Jk
aW5hdGVzIGZyb20gdGhpcyByZW5kZXJlciB0byBpdHMgY29udGFpbmVyLCBvciBhbmNlc3RvclRv
U3RvcEF0ICh3aGljaGV2ZXIgaXMgZW5jb3VudGVyZWQgZmlyc3QpLgogICAgIC8vIFJldHVybnMg
dGhlIHJlbmRlcmVyIHdoaWNoIHdhcyBtYXBwZWQgdG8gKGNvbnRhaW5lciBvciBhbmNlc3RvclRv
U3RvcEF0KS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAko
cmV2aXNpb24gMTMwMzIzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIzLDcgKzUyMyw3IEBAIFN0cmluZyBSZW5kZXJUaGVt
ZTo6Zm9ybWF0TWVkaWFDb250cm9sc1IKIEludFBvaW50IFJlbmRlclRoZW1lOjp2b2x1bWVTbGlk
ZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihSZW5kZXJCb3gqIG11dGVCdXR0b25Cb3gsIGNvbnN0IElu
dFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgaW50IHkgPSAtc2l6ZS5oZWlnaHQoKTsKLSAgICBG
bG9hdFBvaW50IGFic1BvaW50ID0gbXV0ZUJ1dHRvbkJveC0+bG9jYWxUb0Fic29sdXRlKEZsb2F0
UG9pbnQobXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkT2Zmc2V0TGVmdCgpLCB5KSwgdHJ1ZSwg
dHJ1ZSk7CisgICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVCdXR0b25Cb3gtPmxvY2FsVG9B
YnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldExlZnQo
KSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMp
OwogICAgIGlmIChhYnNQb2ludC55KCkgPCAwKQogICAgICAgICB5ID0gbXV0ZUJ1dHRvbkJveC0+
aGVpZ2h0KCk7CiAgICAgcmV0dXJuIEludFBvaW50KDAsIHkpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkocmV2aXNpb24gMTMwMzIzKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsNyAr
MTc2LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5b3V0KGZh
bHNlKTsKIH0KIAotdm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zv
cm1TdGF0ZSwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBj
b25zdAordm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0
ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAg
ICAvLyBJZiBhIGNvbnRhaW5lciB3YXMgc3BlY2lmaWVkLCBhbmQgd2FzIG5vdCAwIG9yIHRoZSBS
ZW5kZXJWaWV3LAogICAgIC8vIHRoZW4gd2Ugc2hvdWxkIGhhdmUgZm91bmQgaXQgYnkgbm93LgpA
QCAtMjE0LDEyICsyMTQsMTIgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJWaWV3OjpwdXNo
TWFwcAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlbmRlclZpZXc6Om1hcEFic29sdXRlVG9M
b2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUm
IHRyYW5zZm9ybVN0YXRlKSBjb25zdAordm9pZCBSZW5kZXJWaWV3OjptYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zv
cm1TdGF0ZSkgY29uc3QKIHsKLSAgICBpZiAoZml4ZWQgJiYgbV9mcmFtZVZpZXcpCisgICAgaWYg
KG1vZGUgJiBJc0ZpeGVkICYmIG1fZnJhbWVWaWV3KQogICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5t
b3ZlKG1fZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkpOwogCi0gICAg
aWYgKHVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcigwKSkg
eworICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9t
Q29udGFpbmVyKDApKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAgICAgICAg
IGdldFRyYW5zZm9ybUZyb21Db250YWluZXIoMCwgTGF5b3V0U2l6ZSgpLCB0KTsKICAgICAgICAg
dHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0odCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgJKHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw5ICsyMDYsOSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBoYXNSZW5kZXJDb3VudGVycygpIHsgcmV0dXJuIG1fcmVuZGVyQ291
bnRlckNvdW50OyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJG
bGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChi
b29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7Cisg
ICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxh
Z3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWly
ZXNDb2x1bW5zKGludCBkZXNpcmVkQ29sdW1uQ291bnQpIGNvbnN0IE9WRVJSSURFOwogCiBwcml2
YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWdu
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCShyZXZpc2lvbiAxMzAzMjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xOTAsNyArMTkwLDcgQEAgYm9vbCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpub2Rl
QXRQb2ludAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZW5kZXJTVkdGb3JlaWduT2Jq
ZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwTG9jYWxUb0NvbnRh
aW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdGb3Jl
aWduT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRp
bmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBTVkdSZW5kZXJT
dXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5z
Zm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Rm9yZWlnbk9iamVjdC5oCShyZXZpc2lvbiAxMzAzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTQs
NyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhp
dFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9j
YXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBI
aXRUZXN0QWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdGb3JlaWduT2Jq
ZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFp
bmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFw
Q29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAm
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNUcmFuc2Zvcm1VcGRh
dGUoKSB7IG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgPSB0cnVlOyB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAJKHJldmlzaW9u
IDEzMDMyMykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCB2b2lkIFJlbmRlclNWR0lubGlu
ZTo6Y29tcHV0ZUZsb2F0UmVjdEZvCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0
UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVk
KTsKIH0KIAotdm9pZCBSZW5kZXJTVkdJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5z
Zm9ybVN0YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQp
IGNvbnN0Cit2b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNm
b3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0
CiB7CiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBh
aW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCB3YXNGaXhlZCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0lubGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW5saW5lLmgJKHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcg
KzQ3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3Qm
LCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBt
YXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBs
eUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQg
PSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5l
cihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21l
dHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMo
VmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
Y3BwCShyZXZpc2lvbiAxMzAzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR01vZGVsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCB2
b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpjb21wdXRlRmxvYXRSCiAgICAgU1ZHUmVuZGVyU3Vw
cG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwg
cmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWluZXJGbGFn
cyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6
Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdz
IG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1h
cExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUs
IG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
aAkocmV2aXNpb24gMTMwMzIzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25z
dCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0
OwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29u
dGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBw
bHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVk
ID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1
c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0
b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5
bGUqIG5ld1N0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCShyZXZpc2lvbiAxMzAzMjMp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBSZW5kZXJTVkdSb290Ojpjb21wdXRl
RmxvYXRSZWN0Rm9yUgogLy8gVGhpcyBtZXRob2QgZXhwZWN0cyBsb2NhbCBDU1MgYm94IGNvb3Jk
aW5hdGVzLgogLy8gQ2FsbGVycyB3aXRoIGxvY2FsIFNWRyB2aWV3cG9ydCBjb29yZGluYXRlcyBz
aG91bGQgZmlyc3QgYXBwbHkgdGhlIGxvY2FsVG9Cb3JkZXJCb3hUcmFuc2Zvcm0KIC8vIHRvIGNv
bnZlcnQgZnJvbSBTVkcgdmlld3BvcnQgY29vcmRpbmF0ZXMgdG8gbG9jYWwgQ1NTIGJveCBjb29y
ZGluYXRlcy4KLXZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNm
b3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkg
Y29uc3QKK3ZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3Jt
U3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKG1vZGUgJiB+SXNGaXhlZCk7IC8vIFdlIHNob3VsZCBoYXZlIG5vIGZpeGVk
IGNvbnRlbnQgaW4gdGhlIFNWRyByZW5kZXJpbmcgdHJlZS4KICAgICBBU1NFUlQobW9kZSAmIFVz
ZVRyYW5zZm9ybXMpOyAvLyBtYXBwaW5nIGEgcG9pbnQgdGhyb3VnaCBTVkcgdy9vIHJlc3BlY3Rp
bmcgdHJhc25mb3JtcyBpcyB1c2VsZXNzLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmgJKHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw3
ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3Qm
IHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUg
PSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2Fz
Rml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFp
bmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRl
ckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVT
ZWxlY3Rpb25MZWFmKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkocmV2aXNpb24gMTMwMzIz
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6Y29tcHV0
ZUZsb2F0UmVjdEZvclIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9y
UmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQog
Ci12b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRl
LCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2
b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBN
YXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIFNW
R1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5l
ciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4
ZWQpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
ZXh0LmgJKHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNl
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJl
cGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0
JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBB
cHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4
ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdl
b21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJl
bmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KikgT1ZFUlJJREU7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAJ
KHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBTVkdS
ZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbgogICAgIGlmIChwYXJlbnQtPmlzU1ZHUm9v
dCgpKQogICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0b1JlbmRlclNWR1Jv
b3QocGFyZW50KS0+bG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybSgpKTsKIAotICAgIE1hcExvY2Fs
VG9Db250YWluZXJGbGFncyBtb2RlID0gVXNlVHJhbnNmb3JtczsKKyAgICBNYXBDb29yZGluYXRl
c0ZsYWdzIG1vZGUgPSBVc2VUcmFuc2Zvcm1zOwogICAgIGlmIChzbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcykKICAgICAgICAgbW9kZSB8PSBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtczsKICAgICBwYXJl
bnQtPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUs
IG1vZGUsIHdhc0ZpeGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDEzMDMyMykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDUxLDcgKzQ1MSw3IEBAIEFmZmluZVRyYW5zZm9ybSBTVkdT
VkdFbGVtZW50Ojpsb2NhbENvb3IKIAogICAgICAgICAgICAgLy8gVHJhbnNsYXRlIGluIG91ciBD
U1MgcGFyZW50IGNvb3JkaW5hdGUgc3BhY2UKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRv
ZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCBDU1MgdHJhbnNmb3Jtcy4KLSAgICAgICAgICAgIGxv
Y2F0aW9uID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZShsb2NhdGlvbiwgZmFsc2UsIHRydWUp
OworICAgICAgICAgICAgbG9jYXRpb24gPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKGxvY2F0
aW9uLCBVc2VUcmFuc2Zvcm1zKTsKICAgICAgICAgICAgIGxvY2F0aW9uLnNjYWxlKHpvb21GYWN0
b3IsIHpvb21GYWN0b3IpOwogCiAgICAgICAgICAgICAvLyBCZSBjYXJlZnVsIGhlcmUhIGxvY2Fs
VG9Cb3JkZXJCb3hUcmFuc2Zvcm0oKSBpbmNsdWRlZCB0aGUgeC95IG9mZnNldCBjb21pbmcgZnJv
bSB0aGUgdmlld0JveFRvVmlld1RyYW5zZm9ybSgpLApJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cJKHJldmlzaW9uIDEzMDU2NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAtMDUgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTdWIgcGl4ZWwgbGF5b3V0
XSBGYXN0LXBhdGggaWZyYW1lIHNjcm9sbGluZyBjYW4gcGlja3MgdXAgYW4gZXh0cmEgcGl4ZWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NTcxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRpbmcg
Y2FsbCB0byBhYnNvbHV0ZVRvTG9jYWwgdG8gdGhlIG5ldyBjb250cmFjdC4KKworICAgICAgICAq
IHNyYy9MaW5rSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGlua0hpZ2hsaWdodDo6
Y29tcHV0ZUhpZ2hsaWdodExheWVyUGF0aEFuZFBvc2l0aW9uKToKKwogMjAxMi0xMC0wNSAgVGVy
cnkgQW5kZXJzb24gIDx0ZGFuZGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21p
dW1dIE9ubHkgZGVmaW5lIFNLX1NVUFBPUlRfSElOVElOR19TQ0FMRV9GQUNUT1Igd2hlbiBidWls
ZGluZyBmb3IgY2hyb21lT1MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtI
aWdobGlnaHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xp
bmtIaWdobGlnaHQuY3BwCShyZXZpc2lvbiAxMzAzMjMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTczLDcgKzE3Myw3
IEBAIGJvb2wgTGlua0hpZ2hsaWdodDo6Y29tcHV0ZUhpZ2hsaWdodExheWUKICAgICBBU1NFUlQo
Y29tcG9zaXRpbmdMYXllcik7CiAgICAgSW50UG9pbnQgdGFyZ2V0V2luZG93ID0gbV9ub2RlLT5y
ZW5kZXJlcigpLT5mcmFtZSgpLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3coZW5jbG9zaW5nSW50
UmVjdChub2RlQm91bmRzKS5sb2NhdGlvbigpKTsKICAgICBJbnRQb2ludCB0YXJnZXRDb21wb3Np
dG9yQWJzb2x1dGUgPSBjb21wb3NpdGluZ0xheWVyLT5yZW5kZXJlcigpLT5mcmFtZSgpLT52aWV3
KCktPndpbmRvd1RvQ29udGVudHModGFyZ2V0V2luZG93KTsKLSAgICBGbG9hdFBvaW50IHRhcmdl
dENvbXBvc2l0b3JMb2NhbCA9IGNvbXBvc2l0aW5nTGF5ZXItPnJlbmRlcmVyKCktPmFic29sdXRl
VG9Mb2NhbCh0YXJnZXRDb21wb3NpdG9yQWJzb2x1dGUsIGZhbHNlLCB0cnVlKTsKKyAgICBGbG9h
dFBvaW50IHRhcmdldENvbXBvc2l0b3JMb2NhbCA9IGNvbXBvc2l0aW5nTGF5ZXItPnJlbmRlcmVy
KCktPmFic29sdXRlVG9Mb2NhbCh0YXJnZXRDb21wb3NpdG9yQWJzb2x1dGUsIFVzZVRyYW5zZm9y
bXMpOwogCiAgICAgbV9jb250ZW50TGF5ZXItPmxheWVyKCktPnNldEJvdW5kcyhXZWJTaXplKGVu
Y2xvc2luZ0ludFJlY3Qobm9kZUJvdW5kcykuc2l6ZSgpKSk7CiAgICAgbV9jb250ZW50TGF5ZXIt
PmxheWVyKCktPnNldFBvc2l0aW9uKFdlYkZsb2F0UG9pbnQodGFyZ2V0Q29tcG9zaXRvckxvY2Fs
KSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzA1NjUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0xMC0wNSAgTGV2aSBXZWludHJh
dWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1N1YiBwaXhlbCBsYXlvdXRdIEZh
c3QtcGF0aCBpZnJhbWUgc2Nyb2xsaW5nIGNhbiBwaWNrcyB1cCBhbiBleHRyYSBwaXhlbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1NzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBzY3JvbGxp
bmcgb2Ygc3ViLXBpeGVsIGxheWVycyBvbiBzdWItcGl4ZWwgcGxhdGZvcm1zIChDaHJvbWl1bSku
CisKKyAgICAgICAgKiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Ny
b2xsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qv
c3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9z
dWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtbGlvbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy1z
bm93bGVvcGFyZC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi13
azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4teHAvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEwLTA1ICBKdWxpZW4gQ2hhZmZyYWl4
ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0g
Z2FyZGVuaW5nLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlm
cmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
c3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1v
bi1zY3JvbGwuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVu
Ij4KKy5jb250YWluZXIgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBwYWRkaW5nOiAx
MC4zcHg7CisgICAgei1pbmRleDogMTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVw
YWludC9yZXNvdXJjZXMvcmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3Njcmlw
dD4KKzxzY3JpcHQ+CisvLyBzcmM9InJlc291cmNlcy9zdWJmcmFtZS5odG1sIgoraWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24g
c2V0dXBJZnJhbWUoKSB7CisgIHZhciBzdWJEb2N1bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpZnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50OworICBzdWJEb2N1bWVudC5vcGVu
KCd0ZXh0L2h0bWwnLCAncmVwbGFjZScpOworICBzdWJEb2N1bWVudC53cml0ZSgiPCFET0NUWVBF
IGh0bWw+XG48aHRtbD48Ym9keSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHNpbHZlcjtoZWln
aHQ6IDEwMDBweDtcIj48L2JvZHk+IikKKyAgc3ViRG9jdW1lbnQuY2xvc2UoKTsKK30KKworZnVu
Y3Rpb24gcmVwYWludFRlc3QoKSB7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUn
KS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lKCk7cnVuUmVwYWludFRlc3QoKSI+CisgIDxwPlRoZSBp
ZnJhbWUgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLjwvcD4KKyAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICA8aWZyYW1lIGlkPSJpZnJhbWUiICBzdHlsZT0id2lk
dGg6IDMwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+CisgIDwvZGl2PgorICA8L2Rpdj4K
KworPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg1MgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NTIK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjAKKyAgICAgIFJlbmRl
ckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyMAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAzMTV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCAzMTU6ICJUaGUgaWZyYW1lIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aGVuIHNjcm9sbGlu
Zy4iCitsYXllciBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCisgIFJlbmRlckJsb2NrIChwb3NpdGlv
bmVkKSB6STogMSB7RElWfSBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCisgICAgUmVuZGVyUGFydE9i
amVjdCB7SUZSQU1FfSBhdCAoMTAsMTApIHNpemUgMzA0eDIwNSBbYm9yZGVyOiAoMnB4IGluc2V0
ICMwMDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyODV4MTAxNgorICAgICAgICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMjg1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSAyODV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAyODV4
MTAxNgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjY5eDEwMDAg
W2JnY29sb3I9I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3Rh
dGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4
cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwMzIzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMzIzNCw2ICszMjM0LDkg
QEAgd2Via2l0Lm9yZy9iLzkwMjA3IFsgTGludXggRGVidWcgXSBmYXN0Lwogd2Via2l0Lm9yZy9i
LzkwMjA3IFsgQW5kcm9pZCBdIGZhc3QvZm9ybXMvc2VsZWN0L3NlbGVjdC1zdGF0ZS1yZXN0b3Jl
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvOTAyMDcgWyBXaW4g
UmVsZWFzZSBdIGZhc3QvZm9ybXMvc2VsZWN0L3NlbGVjdC1zdGF0ZS1yZXN0b3JlLmh0bWwgWyBQ
YXNzIFRpbWVvdXQgXQogCisjIE5lZWQgcmViYXNlbGluZSBhZnRlciBib3RzIGN5Y2xlLgord2Vi
a2l0Lm9yZy9iLzk4NTcxIFsgV2luIE1hYyBdIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJh
bWUtY29weS1vbi1zY3JvbGwuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCisKICMgRmxha3kKIHdlYmtp
dC5vcmcvYi85MDQzMCBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjZWl2ZS1yZXNwb25z
ZS1ldmVudC5odG1sIFsgRmFpbHVyZSBQYXNzIFRpbWVvdXQgXQogCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtbGlvbi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDMy
MykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1Rlc3RFeHBlY3RhdGlvbnMJKHdv
cmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsNyBAQCBmYXN0L3N1Yi1waXhlbC90YWJsZS1yb3dz
LW5vLWdhcHMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWFjY3VtdWxhdGVzLXRvLWxh
eWVycy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zZWxlY3Rpb24vc2VsZWN0aW9uLXJlY3QtaW4tc3Vi
LXBpeGVsLXRhYmxlLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NuYXAtbmVnYXRpdmUtbG9jYXRpb24u
aHRtbAorZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1s
CiAKICMgVGhpcyBtZWRpYSB0ZXN0IGFsd2F5cyBmYWlsZWQgb24gTGlvbgogIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY1MjcgYW5kIDxyZGFyOi8vcHJvYmxlbS8x
MTQ1ODQ5Mz4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9UZXN0
RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93
bGVvcGFyZC9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzAzMjMpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5
KQpAQCAtMjE3LDYgKzIxNyw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5o
dG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwK
IGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFi
bGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0
L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIAogIyBGcmFt
ZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlv
bgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlz
aW9uIDEzMDMyMykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTkyLDYgKzE5Miw3IEBAIGZhc3Qvc3ViLXBpeGVsL3Rh
YmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0
ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVj
dC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1s
b2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Ny
b2xsLmh0bWwKIAogIyBmYXN0L2V2ZW50cy9wYWdlaGlkZS10aW1lb3V0Lmh0bWwsIHBhZ2VzaG93
LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdpdGgtZnJhbWVzLmh0bWwsIGFuZAogIyBwYWdlc2hv
dy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sIGZsYWtleSBvbiBMaW9uIEludGVsIERlYnVn
IFdlYktpdCB0ZXN0ZXJzLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMJKHJldmlzaW9uIDEzMDMyMykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC03MDAsNiArNzAwLDcgQEAgZmFzdC9z
dWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhl
bC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0aW9uL3Nl
bGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhlbC9zbmFw
LW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUt
Y29weS1vbi1zY3JvbGwuaHRtbAogCiAjIE5vIENPUlMgc3VwcG9ydCBmb3IgbWVkaWEgZWxlbWVu
dHMgaXMgaW1wbGVtZW50ZWQgeWV0LgogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1v
cmlnaW4tcmVhZGJhY2suaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNC44L1Rl
c3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNC44
L1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDMyMykKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL3F0LTQuOC9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1
LDcgQEAgZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBp
eGVsL3N1Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwv
c2VsZWN0aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1
Yi1waXhlbC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1w
aXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogCiAjIFNWRyBGb250cyBhcmUgb25seSBz
dXBwb3J0ZWQgd2hlbiB1c2luZyBRUmF3Rm9udCwgd2hpY2ggaXMgbm90CiAjIHN1cHBvcnRlZCB3
aXRoIFF0IDQuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25z
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMJ
KHJldmlzaW9uIDEzMDMyMykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3Rh
dGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTMyMyw2ICszMjMsNyBAQCBmYXN0L3N1Yi1waXhlbC90
YWJsZS1yb3dzLW5vLWdhcHMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWFjY3VtdWxh
dGVzLXRvLWxheWVycy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zZWxlY3Rpb24vc2VsZWN0aW9uLXJl
Y3QtaW4tc3ViLXBpeGVsLXRhYmxlLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NuYXAtbmVnYXRpdmUt
bG9jYXRpb24uaHRtbAorZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNj
cm9sbC5odG1sCiAKICMgVVNFKFY4KQogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4t
d2syL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luLXdrMi9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzAzMjMpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4td2syL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTk1
NCw2ICs5NTQsNyBAQCBmYXN0L3N1Yi1waXhlbC90YWJsZS1yb3dzLW5vLWdhcHMuaHRtbAogZmFz
dC9zdWItcGl4ZWwvc3ViLXBpeGVsLWFjY3VtdWxhdGVzLXRvLWxheWVycy5odG1sCiBmYXN0L3N1
Yi1waXhlbC9zZWxlY3Rpb24vc2VsZWN0aW9uLXJlY3QtaW4tc3ViLXBpeGVsLXRhYmxlLmh0bWwK
IGZhc3Qvc3ViLXBpeGVsL3NuYXAtbmVnYXRpdmUtbG9jYXRpb24uaHRtbAorZmFzdC9zdWItcGl4
ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCiAKICMgSGlEUEkgdGVzdHMg
cmVxdWlyZSB0ZXN0IGluZnJhc3RydWN0dXJlIGVuaGFuY2VtZW50cwogZmFzdC9oaWRwaQpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luLXhwL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luLXhwL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlz
aW9uIDEzMDMyMykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi14cC9UZXN0RXhwZWN0YXRp
b25zCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxl
LXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMt
dG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1p
bi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2Nh
dGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xs
Lmh0bWwKIAogIyBSRUdSRVNTSU9OIChyODM5Mjggb3IgYmVmb3JlKTogU29tZSB0ZXN0cyBmYWls
aW5nIGFzc2VydGlvbnMgaW4gTWFya1N0YWNrOjppbnRlcm5hbEFwcGVuZCAvIE1hcmtTdGFjazo6
ZHJhaW4KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NjU3Cklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24g
MTMwMzIzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHdv
cmtpbmcgY29weSkKQEAgLTE3NTQsNiArMTc1NCw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJv
d3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8t
bGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1z
dWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlv
bi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0
bWwKIAogIyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRzIGlzIGltcGxlbWVudGVk
IHlldC4KIGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0
bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0
aW9ucwkocmV2aXNpb24gMTMwMzIzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8v
VGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjI4NCw2ICsyMjg0LDcgQEAgZmFz
dC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1Yi1w
aXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0aW9u
L3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhlbC9z
bmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJh
bWUtY29weS1vbi1zY3JvbGwuaHRtbAogCiAjIE5vIENPUlMgc3VwcG9ydCBmb3IgbWVkaWEgZWxl
bWVudHMgaXMgaW1wbGVtZW50ZWQgeWV0LgogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9z
cy1vcmlnaW4tcmVhZGJhY2suaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDMyMykKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L3drMi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDcgQEAg
ZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1
Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0
aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhl
bC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1p
ZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogCiAjIFtXSzJdW1dUUl0gc3ZnL2FuaW1hdGlvbnMv
YW5pbWF0ZS10ZXh0LW5lc3RlZC10cmFuc2Zvcm1zLmh0bWwgZmFpbHMKICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTkxCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHkt
b24tc2Nyb2xsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1h
cmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1
Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29B
QUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTVN
akptTjJZMApNVEF3TjJReE4yTXpZVEkwTldGaE9HRm1NVFpsTW1VNU5ZYW1QRFVBQUJkM1NVUkJW
SGljN2QxYmIxVG5vY2ZoQmNZT1lLQk5pV3h6Cmlnb0dIQTRoSUFxQlJNRnRJMUZCUTFxMXFiamhJ
L1ZqY0VPcnBxMlNWQ3BOVzFHSm95MGdBUWRDWWt3NEdReVlRNHdkd3NIN1lyUm4KZXpPMkdjd2ZH
S3JudVVDRHZRN3ZlbDlML21uV3NqMXArL2J0QlFBQU9aT2Y5d0FBQVA3YkNDd0FnRENCQlFBUUpy
QUFBTUlFRmdCQQptTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JC
WUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKCkxBQ0FNSUVGQUJBMlpheFA3TnExYTZ4UGJk
cTA2Y2lSSTF1M2JuM2NrLzN6bi85ODk5MTNpNko0OE9EQnNXUEhUcDgrWFJURmloVXIKbGk1ZCty
aUhlaXk5dmIzVkQvaXhObjdhZzNtc0l6enRrVmNxTDJqTmV2WnpVcVh5d0VhT3NQYm5FNEFxalJs
WVJWR3NXTEZpK2ZMbApreWRQM3JWcjEvYnQyMHRWZFBMa3lVT0hEbjMzM1hjVE9GbjVtOGZ4NDhl
Ym1wcVdMMS9lMjl0NzdOaXhweDFZanpYZ2pvNk9vYUdoCkdobk1xTVlhNFpNZitYSFZmZzA4K3pt
cFVua1JSNjVtN2M4bkFGVWE4eGJockZtejJ0cmFKay8rdncwbVQ1NjhmUG55V2JObWJkdTIKN1Fu
UCtzMDMzelEzTjlmWDE3LzY2cXUvL09Vdm4vQm9qL1JZQTM3dnZmZWUza2lLeHh6TXFNWWE0Wk1m
K2I5UHpjNUplUkdmOXRjYgpBTS9GbUlHMVpjdVcrdnI2aHo1WVgxKy9aY3VXa2RVMU1ZT0RnMDkr
a09vOTFybWUwc0R1M2J1WE92NVlSM2lXVS9xaWVCcHpVbDdLCkoxRWVtRlVEK0s4MDNpM0M4UTBN
RE96ZnYvL1dyVnVyVjY5dWJXMHRpdUwrL2ZzZEhSM256NStmTVdQRzIyKy9QWFBtekpIYmw1ODEK
S1QzZFZmcTM5RGpYMHFWTGp4OC9QbjM2OU0yYk41OCtmZnFMTDc0WUhCeWNPblhxc21YTGxpeFpV
dHF4dmIxOS8vNzlOMi9lWExObQp6ZXpac3c4Y09EQXdNUERHRzI4c1hyejRrYWN1dVhMbFNtZG41
OURRME91dnY3NWt5WkxTQngrNTQ3bHo1dzRmUHZ6Z3dZTlZxMWExCnRyWU9EQXg4OHNrblJWRzB0
YlV0WHJ6NGswOCttVFJwVWwxZDNkcTFhNjlldmRyZDNWMFV4UWNmZkZCWFYxYyt3dGRmZjMza3lK
RjUKOCthZE8zZHUrL2J0WTgxZTVibktzMVRhYStUcmtjNmZQLy81NTU4UERRMnRXN2V1OHFwTHN6
ZHloaXN2dVpvWkhtdGR5azhSYmRxMAo2Y0NCQXpkdjNpenZNdEt0VzdjT0hqeDQ0OGFOZWZQbWJk
eTRjZEtrU1k4YzJQWHIxL2Z2MzE4VXhhSkZpOWF0VzlmWjJWbWEzdC8rCjlyZFRwa3dweldFMWEx
SGwxMm8xVjFHNWxNUER3NTkvL25sM2QzZGRYZDNLbFN0Ylcxc3JyMnZVbFIxcnBjYVp6OG81SFBV
NEFOU0MKaVFkV2IyL3ZUMy82MDZ0WHJ4NDZkS2owUGVQWXNXTXRMUzNyMTYrL2ZQbnk0Y09IMjl2
YlIyNWZmaHBtKy9idHBZZTZpcUw0eTEvKwpjdWZPblduVHB2MzYxNzh1YmRiVjFmWHV1KzlPbXpi
dDZ0V3JlL2JzV2JKa1NXbkh2cjYrOXZiMlM1Y3VkWFIwdlA3NjZ6LzcyYy82CisvdjM3OTlmK3Q0
ei9xbExob2FHTm0vZVBEZzRlUERnd2FsVHB5NVlzT0NSTy9iMzkzZDNkMi9ac3FXL3YzL2Z2bjB6
Wjg1c2FtcDYKLy8zM2QrL2V2V3pac3BkZWVtbjc5dTEvL2V0ZmYvR0xYMHlkT3JXNXVmbkNoUXRi
dG13WldWZEZVWHoyMldkYnQyNjljZVBHdVhQbgp4cG05VWMvMTNudnZmZnp4eDZWZHRtN2QrcmUv
L2UyaGk3cDgrZktwVTZmYTI5c2JHaHBPblRwVmVkVUhEeDU4YUlZckw3bWFHUjVyClhjb3IyOXZi
dTJuVHBtdlhyaDA0Y0tBeVRmYnQyN2Q4K2ZKNTgrYWRQSG55RDMvNFExMWQzWlFwVThZZjJLWk5t
NlpQbjk3UjBiRnEKMWFxaUtIN3lrNTljdkhqeG5YZmVLZFZWVVJRelpzeW9jaTJxK1ZxdDVpb3Fs
L0xFaVJNTkRRMi8rdFd2enA0OTI5WFYxZHJhV2puaApvNjVzNVVvOWNqNHI1N0NVandEVW9JbmZu
bGl5WkVsOWZYMUxTMHY1SWVLelo4OGVQSGp3ajMvODQzLys4NThyVjY0OHRQMm96NXE4Ci8vNzdS
VkhNbXpldi9KRnQyN1pOblRxMXA2Zm44T0hEOSsvZkwrKzRjT0hDK3ZyNitmUG4zNzE3ZDhtU0pR
ME5EYzNOemQ5Ly8zMDEKcHk1NTlkVlg2K3JxWnM2Y3VYNzkraE1uVGxTejQ1RWpSOWF0VzlmUTBO
RFMwckptelpyRGh3OFhSVEZ0MnJRNWMrWmN1SENoS0lyKwovdjd2dnZ1dTlQcnMyYk0vL3ZHUEd4
b2FIanJJOU9uVEwxMjZOSGZ1M0pGdlBsWE8zcWpuYW14c0xPOHk2dHR5eDQ4Zlg3ZHVYV05qClkz
MTkvYWcvSzFBNXc1V1hYTTBNajdVdXhmOCs1MVRhcGFXbHBiekxTQU1EQS9QbXphdXJxM3Z0dGRk
bXpacjF3UWNmUEhKZ2t5Wk4KZXVXVlYrYk9uZHZUMDFNVVJWOWZYMk5qNDhzdnZ6enlzRld1UlRW
ZnE5VmNSZVZTZG5kM0wxNjh1SzZ1YnVIQ2hhVUpxYnl1VVZlMgowaVBuczNJT1J6ME9BTFZnNHU5
Z2xZeThUM0huenAzS0cxaGxENzJ2VTFMNUFNcjE2OWM3T3p2bnpwMzcxbHR2bGQ2d0dibmp5Tk5W
CmYrcUh6Smd4NCtiTm05WHMyTi9mUDNYcTFOTHJCUXNXZEhaMmxsN1Buei8vNjYrL1hyUm8wVmRm
ZmJWMDZkSno1ODYxdHJiMjlQUzgKOWRaYmxRZHBiMi8vN0xQUFRwdzRzV0hEaGxkZWVXWGtwMFpl
d2xqbkd0LzE2OWZMRVZiNXpGd3gyZ3hYWG5JMU16ek91b3c4eFZqMwpyUll1WFBqbGwxKzJ0YlZk
dkhqeHpwMDdWUTZzS0lyRml4ZnYyYlBudGRkZSsrcXJyOG8zZGtlcWZpM0cvNEtwNWlvcWwzSm9h
T2loCmFhKzhyaXBYOXBIeldUbUhBTlNzNUFPMnMyYk5Lci8rNXB0dkpuYVF2WHYzYnRpd1ljV0tG
Uys5OU5KVE92V3RXN2QrOElNZlZMUGoKckZtemVudDdTNi92Mzc5ZnpxUG01dVpyMTY0TkRBeGN1
M2J0alRmZXVIbno1dVhMbCt2cTZrWWVyV3o2OU9rYk4yNWN2MzU5NlltaQpjUzVoMUhNOTVNR0RC
eVAvTzMvKy9PdlhyNWRlMzcxN3QzS0RVVTlVZmwzOU1rMXNYY3BhVzFzdlhyejQ0WWNmSGp0MmJN
T0dEZFVQCnJMR3hzYkd4OGN5Wk0xZXZYcDAvZjM3bFhvKzFGdU9mNjVFcWw3Syt2bjU0ZUhqOHZh
cGMyVWVxWmc0QnFCR1BEcXpTOSsvKy92N3kKTjVMQndjR2lLRXEvdktkMHo2WDBlczZjT1dmT25M
bDM3OTdaczJjcnYybVY5aG9jSEN4dGZPUEdqZktPSTV2ZysrKy92M1hyMXREUQowSmt6WjRxaXVI
Ly8vbGluSy8xYit1ejRweTZLb3E2dXJxZW41OTY5ZTk5KysyM3BHYVBTeHl0M0hIbTZ0V3ZYSGox
NjlOcTFhM2Z1CjNEbDgrUERxMWF2TFIydHVidDY3ZCsvQ2hRc25UNTQ4Wjg2Y1E0Y09MVnk0Y05R
SjNMVnIxN2x6NTZaTm0xYjY2Yk94TG1lc2N6VTAKTlBUMjl0NjllN2YwaU5YSEgzODg4Z2lyVjY4
dTdYWHYzcjJ1cnE2aUtENzY2S09SWjYrYzRmRXZlYXdaSG10ZEJnY0hiOSsrUGVydQpJKzNidCsv
dHQ5LyszZTkrdDNYcjFwYVdsaW9IVnJKNDhlS09qbzdTVkkrNnN1T3NSZlZmcTlWY3hVTkxXUlJG
UzB0TFgxL2Y4UER3CnJWdTNTay9jVjE3WHFDdGJIdGhETDhhWno4bzVCS0JtMWExY3VYS2NUKy9h
dGF2MDAxaW5UNS91NnVvcWJmemhoeDhXUmZIbGwxK3UKWExueVQzLzZVL24xN05tenYvamlpNDZP
am9HQmdYWHIxajMwVmtkcHIxT25UbjM1NVpkRlVYUjNkM2QxZFpWZTkvVDB0TFcxbFRhYgpNbVZL
WjJkblgxL2ZtalZyTGx5NE1EUTB0Ry9mdmxGUFZ6N2dJMDlkRk1XY09YTzZ1cnFPSERuUzE5ZTNj
dVhLdVhQbmxqNWV1ZVBJCnE1cytmZnJreVpNUEhUcDArdlRwdHJhMjV1Ym04Z0dIaDRkUG56Njlj
ZVBHMHAyZG5wNmVOOTk4YzlUYm9GMWRYUzB0TFh2MzdsMjEKYXRXUGZ2U2pzV1p2ckhQVjFkVjFk
bmIyOXZZdVg3NzgwcVZMYTlldS9jYy8vbEhlYThxVUtiTm56OTYzYjkrcFU2ZmEydHF1WGJ1Mgpk
dTNha1U5cmxVNDNjb2JIditTeFpuaXNkVGwxNmxTcC9DcDNIemtKWjgrZVBYTGtTRmRYVjJuUnAw
NmQrdTkvLy91UkF5dDlmT2JNCm1TZE9uSGp6elRkSHZRYzYvbHBVLzdYNjV6Ly8rWkZYOGRCU0Zr
WFIxTlIwNU1pUnpzN09xMWV2TGx1MjdJYy8vR0hsaEkrNnN1V0IKbFdldjlHS2MrYXljdzVkZmZ2
blRUejlkdEdqUnFOTUN3SE0wcWZwSGwyQmlidDY4ZWVmT25kS1B6ZzBQRDkrOGVmUFRUeit0L2hu
dApLMWV1bkR4NThwMTMzbm1hWTZ4MVR6aUhBRHhqZnNraFQ5MmVQWHUrL2ZiYjBrL0QzYjE3dDYr
dmI4NmNPVlh1KytEQmc5S1QzVTl6CmdDK0FKNWxEQUo0OTcyRHgxSjAvZi83a3laTTNidHg0OE9C
QlkyUGozTGx6VjZ4WVVmbjdMQ3I5L2U5L3YzUG56dnIxNnoxeU5PRTUKQk9DNUVGZ0FBR0Z1RVFJ
QWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNB
TUlFRgpBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFR
SnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBCllRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVEWmxZcnQx
ZDNkbnh3Rk1XR3RyNi9NZUFnRC9qM2V3NE1XMllNR0M1ejBFQUI0MndYZXcKU243Lys5K254Z0dV
dExlM0YwV3hlL2Z1dnI2K3NiWnBhbXJhdkhselVSUy8rYzF2bnQzSUFLamFFd1VXOERUczNMbHp4
NDRkVDc0TgpBTStMVzRSUVczYnYzbDFOT2UzWXNXUDM3dDNQWUR3QVRJREFndG95enAzQkNXOEp3
RE1tc0FBQXdnUVdBRUNZd0lJWHdLUkprNTczCkVBQjREQUlMYWwycHJqUVd3QXRFWUVGTkc5bFZH
Z3ZnUlNHd29IWlZGcFhHQW5naCtFV2pVTHVHaDRlZjl4QUFtQWp2WUFFQWhBa3MKQUlBd2dRVUFF
T1laTEtnNU8zZnVmTjVEQU9DSmVBY0xBQ0RNTzFoUWM3WnQyMWI1d2R1M2J6LzBrWC85NjEvUFpE
Z0FQRGJ2WUFFQQpoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RH
QUJBSVFKTEFDQU1JRUZBQkFtc0FBQXd2eXhaNmhwCkgzMzAwY2ovL3Z6blAzOWVJd0dnZWdJTGF0
cTJiZHRLTDI3ZnZ2MThSd0pBOWR3aUJBQUk4dzRXMURTM0NBRmVSQUlMYXBwYmhBQXYKSXJjSUFR
REN2SU1GTmMwdFFvQVhrY0NDbXVZV0ljQ0x5QzFDQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdB
SUUxZ0FBR0VDQ3dBZwpUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3dnd0UXFnNUQvMkJad0JlT0FJ
TGFzN3ExYXVyMmV6bzBhTlBleVFBVEl4YmhBQUFZUUlMCkFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNh
d0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUEKd2dR
V0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFD
QUFnVFdBQUFZUUlMQUNCTQpZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdB
QUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXCkFFQ1l3QUlBQ0JOWUFBQmhBZ3NB
SUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUEK
aEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FN
SUVGQUJBbXNBQUF3Z1FXQUVDWQp3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFK
ckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzCkFJQXdnUVVBRUNhd0FBRENC
QllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdB
SUEKQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdB
QUFZUUlMQUNCTVlBRUFoQWtzQUlBdwpnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3
QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUFDQk5ZCkFBQmhBZ3NBSUV4Z0FR
Q0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlB
d2dRVUEKRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJB
bXNBQUF3Z1FXQUVEWWxPYzlBT0JoUjQ4ZQpmZDVEQU9DSkNDeW9PVHQyN0tobXM1MDdkejd0a1FB
d01XNFJBZ0NFQ1N3QWdEQ0JCUUFRSnJBQUFNSTg1QTYxYTlLa1NaVWZIQjRlCmZ2WWpBZUN4ZUFj
TGFsZGxTNmtyZ0JlQ3dJS2FOcktvMUJYQWkwSmdRYTByZFpXNkFuaUJDQ3g0QWFncmdCZUx3QUlB
Q0JOWVVGdWEKbXByaVd3THdqQWtzcUMyYk4yK3U1bzhNN3R5NWMvUG16YzlnUEFCTWdOK0RCVFZu
eDQ0ZHUzZnY3dXZyRzJ1RHBxYW1LdjhnTkFEUAp4YVR0MjdkUFlMZnU3dTZpS0JZc1dKQWVEL0RZ
R2hvYW52Y1FBUGgvSm42TFVGMEJBSXhxZ3JjSVcxdGJzK01BQVBpdjRTRjNBSUF3CmdRVUFFQ2F3
QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdB
RUNZd0FJQUNCTlkKQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNB
QWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQQpFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FB
R0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoCkFnc0FJ
RXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhB
a3NBSUF3Z1FVQUVDYXcKQUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1J
RUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQQpJRXhnQVFDRUNTd0FnRENCQlFBUUpy
QUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDCkJC
WUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJ
QUNCTllBQUJoQWdzQUlFeGcKQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FB
QVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQQpRSmpBQWdBSUUxZ0FBR0VDQ3dB
Z1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNF
CkNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3
Z1FVQUVDYXdBQURDQkJZQVFKakEKQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFt
c0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QQpnRENCQlFBUUpyQUFBTUlF
RmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFB
Z0FJCkUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllB
QUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0IKQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxB
Q0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQQpBR0VDQ3dBZ1RHQUJB
SVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdE
Q0JCUUFRCkpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVD
YXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUMKQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdn
UVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQQpBTUlFRmdCQW1N
QUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFn
QUFHRUNDd0FnClRHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdz
QUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUUKRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFF
QWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQgpBSVFKTEFD
QU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFR
SnJBQUFNSUVGZ0JBCm1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURD
QkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUoKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZ
d0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQwpBQWdU
V0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUND
d0FnVEdBQkFJUUpMQUNBCk1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdB
UUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1QKV0FBQVlRSUxBQ0JNWUFFQWhBa3NB
SUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRgpB
QkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFN
SUVGZ0JBbU1BQ0FBajdIMkU4CktSRDMvK0tOQUFBQUFFbEZUa1N1UW1DQwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167424</attachid>
            <date>2012-10-05 17:39:20 -0700</date>
            <delta_ts>2012-10-08 11:47:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98571-20121005173828.patch</filename>
            <type>text/plain</type>
            <size>76128</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExOSBAQAorMjAxMi0xMC0wNSAgTGV2aSBX
ZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1N1YiBwaXhlbCBsYXlv
dXRdIEZhc3QtcGF0aCBpZnJhbWUgc2Nyb2xsaW5nIGNhbiBwaWNrcyB1cCBhbiBleHRyYSBwaXhl
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rv
cmluZyBhbGwgY29vcmRpbmF0ZS1zd2l0Y2hpbmcgZnVuY3Rpb25hbGl0eSB0byB1c2UgYSBzaW5n
bGUgIm1vZGUiIGZsYWcKKyAgICAgICAgYXMgb3Bwb3NlZCB0byBoYXZpbmcgYSBidW5jaCBvZiBi
b29sZWFuIHZhbHVlcy4gVGhpcyBlbmFibGVzIHRoZSBzYW1lIHNldCBvZgorICAgICAgICBvcHRp
b25zIGFjcm9zcyB0aGUgYm9hcmQsIGFuZCBhIGNvbnNpc3RlbnQgaW50ZXJmYWNlLiBUaGlzIHdh
cyBwcmV2aW91c2x5CisgICAgICAgIGRvbmUgZm9yIG1hcExvY2FsVG9Db250YWluZXIuCisKKyAg
ICAgICAgVGhlIGltcHRldHVzIGZvciB0aGlzIGZvciB0aGlzIHN0ZW1zIGZyb20gdGhlIG9uZSBs
b2dpY2FsIGNoYW5nZSBpbiB0aGlzIHBhdGNoCisgICAgICAgIHdoaWNoIG9ubHkgZWZmZWN0cyBz
dWItcGl4ZWwgbGF5b3V0LiBGcmFtZVZpZXc6OmNvbnZlcnRUb1JlbmRlcmVyIGFuZAorICAgICAg
ICBjb252ZXJ0RnJvbVJlbmRlcmVyIHJldHVybiBJbnRQb2ludCBjb29yZGluYXRlcywgYW5kIG5l
ZWQgdG8gYWxzbyBzbmFwIHRyYW5zZm9ybQorICAgICAgICBvZmZzZXRzIHRvIGRldGVybWluZSBw
cm9wZXIgcmVjdHMgZm9yIHNjcm9sbGluZy4KKworICAgICAgICBVbmxhYmVsZWQgZnVuY3Rpb25z
IGJlbG93IGFyZSBzaW1wbHkgYmVpbmcgdXBkYXRlZCB0byB0aGVzZSBuZXcgaW50ZXJmYWNlcy4K
KworICAgICAgICBUZXN0OiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24t
c2Nyb2xsLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmdldFVw
cGVyTGVmdENvcm5lcik6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpnZXRMb3dl
clJpZ2h0Q29ybmVyKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50Ojpib3VuZHNJblJvb3RWaWV3U3BhY2UpOgorICAgICAgICAqIGRvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6
Y29tcHV0ZVJlbGF0aXZlUG9zaXRpb24pOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OmNvbnZlcnRUb1BhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6Y29udmVydEZyb21QYWdlKToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2
ZW50SGFuZGxlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9t
UG9pbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OmNvbnZlcnRUb1JlbmRlcmVyKTogTm93IHBpeGVsLXNuYXBzIG9mZnNldHMgYmVmb3JlIHBh
c3NpbmcKKyAgICAgICAgdGhlbSB0byBUcmFuc2Zvcm1TdGF0ZSwgd2hpY2ggdHJhbnNmb3JtcyB0
aGUgY29vcmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNvbnZlcnRGcm9t
UmVuZGVyZXIpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmFic29sdXRlUXVhZHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjphYnNvbHV0ZVF1YWRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoUmVuZGVyQm94TW9kZWxPYmplY3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6aXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNh
dG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRnJhbWVTZXQ6OnVzZXJSZXNpemUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJHZW9tZXRyeU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHZW9tZXRy
eU1hcDo6YWJzb2x1dGVQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAgKFJlbmRlcklu
bGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjphYnNvbHV0ZVRvQ29udGVudHMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck1lZGlhQ29udHJvbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFD
b250cm9sczo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24pOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51
TGlzdDo6c2hvd1BvcHVwKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bG9jYWxUb0Fic29sdXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YWJzb2x1dGVUb0xvY2FsKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclF1YWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUG9pbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlck9iamVjdCk6IE1hcExvY2Fs
VG9Db250YWluZXJGbGFncyBpcyBub3cgTWFwQ29vcmRpbmF0ZXNGbGFncyBzaW5jZSBpdCdzCisg
ICAgICAgIG5vdyB1c2VkIGZvciBvdGhlciBjb252ZXJzaW9uIG1ldGhvZHMuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmxvY2FsVG9BYnNvbHV0ZVF1YWQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6Om1hcExvY2FsVG9D
b250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6bWFwQWJzb2x1dGVUb0xv
Y2FsUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgIChS
ZW5kZXJWaWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9j
YWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWdu
T2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJTVkdGb3JlaWduT2JqZWN0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW5saW5lLmg6CisgICAgICAgIChSZW5kZXJTVkdJbmxpbmUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFJlbmRl
clNWR01vZGVsT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5l
cik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290Lmg6CisgICAgICAgIChS
ZW5kZXJTVkdSb290KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgIChSZW5k
ZXJTVkdUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5l
cik6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHU1ZHRWxlbWVudDo6bG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0pOgorCiAyMDEyLTEw
LTA1ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRm9ybSBjb250
cm9scyBzaG91bGQgYWx3YXlzIGJlIGhvcml6b250YWwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CShyZXZpc2lvbiAxMzA1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29y
a2luZyBjb3B5KQpAQCAtMTExOCw4ICsxMTE4LDggQEAgX19aTks3V2ViQ29yZTExUmVuZGVyU3R5
bGUyMXZpc2l0ZWREZXBlbgogX19aTks3V2ViQ29yZTExUmVuZGVyU3R5bGU0Zm9udEV2CiBfX1pO
SzdXZWJDb3JlMTFTY3JpcHRWYWx1ZTlnZXRTdHJpbmdFUE4zSlNDOUV4ZWNTdGF0ZUVSTjNXVEY2
U3RyaW5nRQogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTRlbmNsb3NpbmdMYXllckV2Ci1f
X1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNWxvY2FsVG9BYnNvbHV0ZUVSS05TXzEwRmxvYXRQ
b2ludEViYgotX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MjBsb2NhbFRvQ29udGFpbmVyUXVh
ZEVSS05TXzlGbG9hdFF1YWRFUE5TXzIyUmVuZGVyTGF5ZXJNb2RlbE9iamVjdEViYlBiCitfX1pO
SzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNWxvY2FsVG9BYnNvbHV0ZUVSS05TXzEwRmxvYXRQb2lu
dEVqCitfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QyMGxvY2FsVG9Db250YWluZXJRdWFkRVJL
TlNfOUZsb2F0UXVhZEVQTlNfMjJSZW5kZXJMYXllck1vZGVsT2JqZWN0RWpQYgogX19aTks3V2Vi
Q29yZTEyUmVuZGVyT2JqZWN0MjNhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEViCiBfX1pOSzdXZWJD
b3JlMTJSZW5kZXJPYmplY3QzOXBpeGVsU25hcHBlZEFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVj
dEV2CiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3Q3Y2hpbGRBdEVqCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCShyZXZpc2lvbiAxMzA1NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0Miw3ICs3NDIs
NyBAQCBib29sIENvbnRhaW5lck5vZGU6OmdldFVwcGVyTGVmdENvcm5lcihGCiAgICAgUmVuZGVy
T2JqZWN0KiBwID0gbzsKIAogICAgIGlmICghby0+aXNJbmxpbmUoKSB8fCBvLT5pc1JlcGxhY2Vk
KCkpIHsKLSAgICAgICAgcG9pbnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBm
YWxzZSwgdHJ1ZSk7CisgICAgICAgIHBvaW50ID0gby0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9p
bnQoKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC03NjcsNyArNzY3LDcgQEAgYm9vbCBDb250YWluZXJO
b2RlOjpnZXRVcHBlckxlZnRDb3JuZXIoRgogICAgICAgICBBU1NFUlQobyk7CiAKICAgICAgICAg
aWYgKCFvLT5pc0lubGluZSgpIHx8IG8tPmlzUmVwbGFjZWQoKSkgewotICAgICAgICAgICAgcG9p
bnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAg
ICAgICAgICBwb2ludCA9IG8tPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5z
Zm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogCkBAIC03ODEsNyArNzgxLDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjpn
ZXRVcHBlckxlZnRDb3JuZXIoRgogICAgICAgICAgICAgICAgIFJlbmRlckJveCogYm94ID0gdG9S
ZW5kZXJCb3gobyk7CiAgICAgICAgICAgICAgICAgcG9pbnQubW92ZUJ5KGJveC0+bG9jYXRpb24o
KSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb2ludCA9IG8tPmNvbnRhaW5lcigpLT5s
b2NhbFRvQWJzb2x1dGUocG9pbnQsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgIHBvaW50ID0g
by0+Y29udGFpbmVyKCktPmxvY2FsVG9BYnNvbHV0ZShwb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgfQpAQCAtODAzLDcgKzgwMyw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6Z2V0TG93
ZXJSaWdodENvcm5lcigKICAgICBSZW5kZXJPYmplY3QqIG8gPSByZW5kZXJlcigpOwogICAgIGlm
ICghby0+aXNJbmxpbmUoKSB8fCBvLT5pc1JlcGxhY2VkKCkpIHsKICAgICAgICAgUmVuZGVyQm94
KiBib3ggPSB0b1JlbmRlckJveChvKTsKLSAgICAgICAgcG9pbnQgPSBvLT5sb2NhbFRvQWJzb2x1
dGUoTGF5b3V0UG9pbnQoYm94LT5zaXplKCkpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIHBvaW50
ID0gby0+bG9jYWxUb0Fic29sdXRlKExheW91dFBvaW50KGJveC0+c2l6ZSgpKSwgVXNlVHJhbnNm
b3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCkBAIC04MzYsNyArODM2LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjpnZXRMb3dlclJp
Z2h0Q29ybmVyKAogICAgICAgICAgICAgICAgIFJlbmRlckJveCogYm94ID0gdG9SZW5kZXJCb3go
byk7CiAgICAgICAgICAgICAgICAgcG9pbnQubW92ZUJ5KGJveC0+ZnJhbWVSZWN0KCkubWF4WE1h
eFlDb3JuZXIoKSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb2ludCA9IG8tPmNvbnRh
aW5lcigpLT5sb2NhbFRvQWJzb2x1dGUocG9pbnQsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAg
IHBvaW50ID0gby0+Y29udGFpbmVyKCktPmxvY2FsVG9BYnNvbHV0ZShwb2ludCwgVXNlVHJhbnNm
b3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkocmV2aXNpb24g
MTMwNTY5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MzksNyArNTM5LDcgQEAgSW50UmVjdCBFbGVtZW50Ojpib3VuZHNJblJvb3RWaWV3U3Bh
Y2UoKQogICAgIHsKICAgICAgICAgLy8gR2V0IHRoZSBib3VuZGluZyByZWN0YW5nbGUgZnJvbSB0
aGUgYm94IG1vZGVsLgogICAgICAgICBpZiAocmVuZGVyQm94TW9kZWxPYmplY3QoKSkKLSAgICAg
ICAgICAgIHJlbmRlckJveE1vZGVsT2JqZWN0KCktPmFic29sdXRlUXVhZHMocXVhZHMpOworICAg
ICAgICAgICAgcmVuZGVyQm94TW9kZWxPYmplY3QoKS0+YWJzb2x1dGVRdWFkcyhxdWFkcywgMCk7
CiAgICAgfQogCiAgICAgaWYgKHF1YWRzLmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAkocmV2aXNpb24gMTMwNTY5KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDcg
KzE2Niw3IEBAIHZvaWQgTW91c2VSZWxhdGVkRXZlbnQ6OmNvbXB1dGVSZWxhdGl2ZVAKICAgICAv
LyBBZGp1c3Qgb2Zmc2V0TG9jYXRpb24gdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHRhcmdldCdzIHBv
c2l0aW9uLgogICAgIGlmICghaXNTaW11bGF0ZWQoKSkgewogICAgICAgICBpZiAoUmVuZGVyT2Jq
ZWN0KiByID0gdGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKSkgewotICAgICAgICAgICAgRmxvYXRQb2lu
dCBsb2NhbFBvcyA9IHItPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNl
LCB0cnVlKTsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9jYWxQb3MgPSByLT5hYnNvbHV0ZVRv
TG9jYWwoYWJzb2x1dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMpOwogICAgICAgICAgICAgbV9vZmZzZXRMb2NhdGlvbiA9IHJvdW5kZWRMYXlvdXRQ
b2ludChsb2NhbFBvcyk7CiAgICAgICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IDEgLyAocGFn
ZVpvb21GYWN0b3IodGhpcykgKiBmcmFtZVNjYWxlRmFjdG9yKHRoaXMpKTsKICAgICAgICAgICAg
IGlmIChzY2FsZUZhY3RvciAhPSAxLjBmKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24g
MTMwNTY5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDcwLDcgKzIwNzAsNyBAQCBGbG9hdFBvaW50IE5vZGU6OmNvbnZlcnRUb1BhZ2UoY29uc3Qg
RmxvCiB7CiAgICAgLy8gSWYgdGhlcmUgaXMgYSByZW5kZXJlciwganVzdCBhc2sgaXQgdG8gZG8g
dGhlIGNvbnZlcnNpb24KICAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIHJlbmRl
cmVyKCktPmxvY2FsVG9BYnNvbHV0ZShwLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBy
ZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGUocCwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgCiAgICAg
Ly8gT3RoZXJ3aXNlIGdvIHVwIHRoZSB0cmVlIGxvb2tpbmcgZm9yIGEgcmVuZGVyZXIKICAgICBF
bGVtZW50ICpwYXJlbnQgPSBhbmNlc3RvckVsZW1lbnQoKTsKQEAgLTIwODUsNyArMjA4NSw3IEBA
IEZsb2F0UG9pbnQgTm9kZTo6Y29udmVydEZyb21QYWdlKGNvbnN0IEYKIHsKICAgICAvLyBJZiB0
aGVyZSBpcyBhIHJlbmRlcmVyLCBqdXN0IGFzayBpdCB0byBkbyB0aGUgY29udmVyc2lvbgogICAg
IGlmIChyZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gcmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xv
Y2FsKHAsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIHJlbmRlcmVyKCktPmFic29sdXRl
VG9Mb2NhbChwLCBVc2VUcmFuc2Zvcm1zKTsKIAogICAgIC8vIE90aGVyd2lzZSBnbyB1cCB0aGUg
dHJlZSBsb29raW5nIGZvciBhIHJlbmRlcmVyCiAgICAgRWxlbWVudCAqcGFyZW50ID0gYW5jZXN0
b3JFbGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcAkocmV2aXNpb24gMTMwNTY5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyODksNyArMTI4OSw3IEBAIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXYKIAogICAgICAgICAvLyBDb252ZXJ0IHRv
IGNvb3JkcyByZWxhdGl2ZSB0byB0aGUgbGlzdCBib3ggaWYgbmVlZGVkLgogICAgICAgICBNb3Vz
ZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKLSAg
ICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRy
dWUpKTsKKyAgICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVu
ZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwg
VXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiAgICAgICAgIGludCBs
aXN0SW5kZXggPSB0b1JlbmRlckxpc3RCb3gocmVuZGVyZXIoKSktPmxpc3RJbmRleEF0T2Zmc2V0
KHRvU2l6ZShsb2NhbE9mZnNldCkpOwogICAgICAgICBpZiAobGlzdEluZGV4ID49IDApIHsKICAg
ICAgICAgICAgIGlmICghZGlzYWJsZWQoKSkgewpAQCAtMTMwOSw3ICsxMzA5LDcgQEAgdm9pZCBI
VE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveERlZmF1bHRFdgogICAgICAgICBpZiAobW91c2VFdmVu
dC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCAhbW91c2VFdmVudC0+YnV0dG9uRG93bigpKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIEludFBvaW50IGxvY2FsT2Zmc2V0ID0gcm91
bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5hYnNv
bHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKSk7CisgICAgICAgIEludFBvaW50IGxvY2FsT2Zm
c2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2
ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcykpOwogICAgICAgICBpbnQgbGlzdEluZGV4ID0gdG9SZW5kZXJMaXN0Qm94KHJlbmRl
cmVyKCkpLT5saXN0SW5kZXhBdE9mZnNldCh0b1NpemUobG9jYWxPZmZzZXQpKTsKICAgICAgICAg
aWYgKGxpc3RJbmRleCA+PSAwKSB7CiAgICAgICAgICAgICBpZiAoIWRpc2FibGVkKCkpIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50
LmNwcAkocmV2aXNpb24gMTMwNTY5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU2LDcgKzI1Niw3IEBAIHZv
aWQgU2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb20KICAgICAgICAgcmV0dXJuOwog
CiAgICAgaW5wdXQtPnNldFRleHRBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoaW5wdXQt
PnZhbHVlKCkpOwotICAgIExheW91dFBvaW50IG9mZnNldCA9IHJvdW5kZWRMYXlvdXRQb2ludChp
bnB1dC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBmYWxzZSwgdHJ1ZSkpOwor
ICAgIExheW91dFBvaW50IG9mZnNldCA9IHJvdW5kZWRMYXlvdXRQb2ludChpbnB1dC0+cmVuZGVy
ZXIoKS0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMpKTsKICAgICBib29sIGlzVmVydGljYWwgPSBoYXNWZXJ0aWNhbEFwcGVhcmFu
Y2UoaW5wdXQpOwogICAgIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlvbiA9IHJlbmRlckJveCgp
LT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CiAgICAgTGF5b3V0VW5pdCB0cmFj
a1NpemU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRv
bkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzA1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcg
QEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZAogICAgIH0KIAogICAg
IE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQp
OwotICAgIEludFBvaW50IGxvY2FsID0gcm91bmRlZEludFBvaW50KGJveC0+YWJzb2x1dGVUb0xv
Y2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpKTsKKyAgICBJ
bnRQb2ludCBsb2NhbCA9IHJvdW5kZWRJbnRQb2ludChib3gtPmFic29sdXRlVG9Mb2NhbChtb3Vz
ZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtcykpOwogICAgIGlmIChtb3VzZUV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
Lm1vdXNlZG93bkV2ZW50ICYmIG1vdXNlRXZlbnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsK
ICAgICAgICAgaWYgKGJveC0+cGl4ZWxTbmFwcGVkQm9yZGVyQm94UmVjdCgpLmNvbnRhaW5zKGxv
Y2FsKSkgewogICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgb2YgSFRNTElu
cHV0RWxlbWVudCBtYXkgcnVuIEphdmFTY3JpcHQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ4MSwxMyArMzQ4MSwxMyBAQCBJbnRSZWN0IEZyYW1l
Vmlldzo6Y29udmVydFRvUmVuZGVyZXIoY29uCiAKICAgICAvLyBGSVhNRTogd2UgZG9uJ3QgaGF2
ZSBhIHdheSB0byBtYXAgYW4gYWJzb2x1dGUgcmVjdCBkb3duIHRvIGEgbG9jYWwgcXVhZCwgc28g
anVzdAogICAgIC8vIG1vdmUgdGhlIHJlY3QgZm9yIG5vdy4KLSAgICByZWN0LnNldExvY2F0aW9u
KHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHJlY3QubG9jYXRpb24o
KSwgZmFsc2UsIHRydWUgLyogdXNlIHRyYW5zZm9ybXMgKi8pKSk7CisgICAgcmVjdC5zZXRMb2Nh
dGlvbihyb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChyZWN0LmxvY2F0
aW9uKCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykpKTsKICAgICBy
ZXR1cm4gcmVjdDsKIH0KIAogSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVy
KGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEludFBvaW50JiByZW5kZXJlclBv
aW50KSBjb25zdAogewotICAgIEludFBvaW50IHBvaW50ID0gcm91bmRlZEludFBvaW50KHJlbmRl
cmVyLT5sb2NhbFRvQWJzb2x1dGUocmVuZGVyZXJQb2ludCwgZmFsc2UsIHRydWUgLyogdXNlIHRy
YW5zZm9ybXMgKi8pKTsKKyAgICBJbnRQb2ludCBwb2ludCA9IHJvdW5kZWRJbnRQb2ludChyZW5k
ZXJlci0+bG9jYWxUb0Fic29sdXRlKHJlbmRlcmVyUG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3JtcykpOwogCiAgICAgLy8gQ29udmVydCBmcm9tIHBhZ2UgKCJhYnNv
bHV0ZSIpIHRvIEZyYW1lVmlldyBjb29yZGluYXRlcy4KICAgICBpZiAoIWRlbGVnYXRlc1Njcm9s
bGluZygpKQpAQCAtMzUwMyw3ICszNTAzLDcgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0
VG9SZW5kZXJlcihjbwogICAgIGlmICghZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHBv
aW50ICs9IEludFNpemUoc2Nyb2xsWCgpLCBzY3JvbGxZKCkpOwogCi0gICAgcmV0dXJuIHJvdW5k
ZWRJbnRQb2ludChyZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBmYWxzZSwgdHJ1ZSAv
KiB1c2UgdHJhbnNmb3JtcyAqLykpOworICAgIHJldHVybiByb3VuZGVkSW50UG9pbnQocmVuZGVy
ZXItPmFic29sdXRlVG9Mb2NhbChwb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKSk7CiB9CiAKIEludFJlY3QgRnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWluaW5n
Vmlldyhjb25zdCBJbnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw3
ICsxNDgsNyBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoUmVuZGVyT2JqZWN0KiByCiAjZW5k
aWYKIHsKICAgICBSZW5kZXJPYmplY3QqIGNvbnRhaW5lciA9IHJvb3QtPmNvbnRhaW5lcigpOwot
ICAgIEZsb2F0UG9pbnQgYWJzQ29udGVudFBvaW50ID0gY29udGFpbmVyLT5sb2NhbFRvQWJzb2x1
dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgRmxvYXRQb2ludCBhYnNDb250ZW50
UG9pbnQgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5z
Zm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgbV9wYWludE9mZnNldCA9IExh
eW91dFNpemUoYWJzQ29udGVudFBvaW50LngoKSwgYWJzQ29udGVudFBvaW50LnkoKSk7CiAKICAg
ICBpZiAoY29udGFpbmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkgewpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAxMzA1NjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nzcw
LDEwICs2NzcwLDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFic29sdXRlUXVhZHMoVmVjdG9yPEYK
ICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2Nzgx
CiAgICAgICAgIEZsb2F0UmVjdCBsb2NhbFJlY3QoMCwgLWNvbGxhcHNlZE1hcmdpbkJlZm9yZSgp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCksIGhlaWdodCgpICsgY29sbGFw
c2VkTWFyZ2luQmVmb3JlKCkgKyBjb2xsYXBzZWRNYXJnaW5BZnRlcigpKTsKLSAgICAgICAgcXVh
ZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0LCBmYWxzZSwgd2FzRml4ZWQp
KTsKKyAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0LCAw
LCB3YXNGaXhlZCkpOwogICAgICAgICBjb250aW51YXRpb24oKS0+YWJzb2x1dGVRdWFkcyhxdWFk
cywgd2FzRml4ZWQpOwogICAgIH0gZWxzZQotICAgICAgICBxdWFkcy5hcHBlbmQoUmVuZGVyQm94
Ojpsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSks
IGZhbHNlLCB3YXNGaXhlZCkpOworICAgICAgICBxdWFkcy5hcHBlbmQoUmVuZGVyQm94Ojpsb2Nh
bFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSksIDAsIHdh
c0ZpeGVkKSk7CiB9CiAKIExheW91dFJlY3QgUmVuZGVyQmxvY2s6OnJlY3RXaXRoT3V0bGluZUZv
clJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0
VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcAkocmV2aXNpb24gMTMwNTY5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lkIFJl
bmRlckJveDo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50CiAKIHZvaWQgUmVuZGVyQm94OjphYnNv
bHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCogd2FzRml4ZWQpIGNvbnN0
CiB7Ci0gICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KDAsIDAs
IHdpZHRoKCksIGhlaWdodCgpKSwgZmFsc2UsIHdhc0ZpeGVkKSk7CisgICAgcXVhZHMuYXBwZW5k
KGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KDAsIDAsIHdpZHRoKCksIGhlaWdodCgpKSwg
MCwgd2FzRml4ZWQpKTsKIH0KIAogdm9pZCBSZW5kZXJCb3g6OnVwZGF0ZUxheWVyVHJhbnNmb3Jt
KCkKQEAgLTEyNTgsNyArMTI1OCw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjpwZXJwZW5kaWN1
bGFyQ29udGEKICAgICByZXR1cm4gY2ItPmFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9y
Qm94U2l6aW5nKGxvZ2ljYWxIZWlnaHRMZW5ndGgudmFsdWUoKSk7CiB9CiAKLXZvaWQgUmVuZGVy
Qm94OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwTG9jYWxUb0NvbnRh
aW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJCb3g6Om1h
cExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1v
ZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIGlmIChyZXBhaW50Q29udGFpbmVyID09
IHRoaXMpCiAgICAgICAgIHJldHVybjsKQEAgLTEzNjMsMTggKzEzNjMsMTggQEAgY29uc3QgUmVu
ZGVyT2JqZWN0KiBSZW5kZXJCb3g6OnB1c2hNYXBwaQogICAgIHJldHVybiBhbmNlc3RvclNraXBw
ZWQgPyBhbmNlc3RvclRvU3RvcEF0IDogY29udGFpbmVyOwogfQogCi12b2lkIFJlbmRlckJveDo6
bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBU
cmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0Cit2b2lkIFJlbmRlckJveDo6bWFw
QWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1T
dGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7CiAgICAgYm9vbCBpc0ZpeGVkUG9zID0gc3R5
bGUoKS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uOwogICAgIGJvb2wgaGFzVHJhbnNmb3Jt
ID0gaGFzTGF5ZXIoKSAmJiBsYXllcigpLT50cmFuc2Zvcm0oKTsKLSAgICBpZiAoaGFzVHJhbnNm
b3JtKSB7CisgICAgaWYgKGhhc1RyYW5zZm9ybSAmJiAhaXNGaXhlZFBvcykgewogICAgICAgICAv
LyBJZiB0aGlzIGJveCBoYXMgYSB0cmFuc2Zvcm0sIGl0IGFjdHMgYXMgYSBmaXhlZCBwb3NpdGlv
biBjb250YWluZXIgZm9yIGZpeGVkIGRlc2NlbmRhbnRzLAogICAgICAgICAvLyBhbmQgbWF5IGl0
c2VsZiBhbHNvIGJlIGZpeGVkIHBvc2l0aW9uLiBTbyBwcm9wYWdhdGUgJ2ZpeGVkJyB1cCBvbmx5
IGlmIHRoaXMgYm94IGlzIGZpeGVkIHBvc2l0aW9uLgotICAgICAgICBmaXhlZCAmPSBpc0ZpeGVk
UG9zOwotICAgIH0gZWxzZQotICAgICAgICBmaXhlZCB8PSBpc0ZpeGVkUG9zOworICAgICAgICBt
b2RlICY9IH5Jc0ZpeGVkOworICAgIH0gZWxzZSBpZiAoaXNGaXhlZFBvcykKKyAgICAgICAgbW9k
ZSB8PSBJc0ZpeGVkOwogCi0gICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om1hcEFic29sdXRlVG9M
b2NhbFBvaW50KGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgUmVu
ZGVyQm94TW9kZWxPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KG1vZGUsIHRyYW5zZm9y
bVN0YXRlKTsKIH0KIAogTGF5b3V0U2l6ZSBSZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIo
UmVuZGVyT2JqZWN0KiBvLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIGJvb2wqIG9mZnNldERl
cGVuZHNPblBvaW50KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aAkocmV2aXNpb24gMTMwNTY5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NzQsOSArNTc0LDkgQEAgcHJvdGVjdGVkOgogICAgIAog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDb21wdXRlU2l6ZUFzUmVwbGFjZWQoKSBjb25zdCB7IHJl
dHVybiBpc1JlcGxhY2VkKCkgJiYgIWlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCk7IH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5l
ckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29u
dGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDAp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFw
cGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqLCBSZW5kZXJHZW9t
ZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRv
TG9jYWxQb2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRl
JikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENv
b3JkaW5hdGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKIAogICAgIHZvaWQg
cGFpbnRSb290Qm94RmlsbExheWVycyhjb25zdCBQYWludEluZm8mKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCShyZXZp
c2lvbiAxMzA1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjk2LDEzICsyNjk2LDEzIEBAIGJvb2wgUmVu
ZGVyQm94TW9kZWxPYmplY3Q6OnNob3VsZEFudGlhbGkKICAgICByZXR1cm4gIWNvbnRleHQtPmdl
dENUTSgpLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uT3JGbGlwcGVkKCk7CiB9CiAKLXZvaWQgUmVu
ZGVyQm94TW9kZWxPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJv
b2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAor
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29v
cmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0
CiB7CiAgICAgUmVuZGVyT2JqZWN0KiBvID0gY29udGFpbmVyKCk7CiAgICAgaWYgKCFvKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBvLT5tYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChmaXhlZCwgdXNl
VHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOworICAgIG8tPm1hcEFic29sdXRlVG9Mb2NhbFBv
aW50KG1vZGUsIHRyYW5zZm9ybVN0YXRlKTsKIAogICAgIExheW91dFNpemUgY29udGFpbmVyT2Zm
c2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCBMYXlvdXRQb2ludCgpKTsKIApAQCAtMjcxMyw4
ICsyNzEzLDggQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJzb2x1dGVUbwogICAg
ICAgICBibG9jay0+YWRqdXN0Rm9yQ29sdW1uUmVjdChjb250YWluZXJPZmZzZXQsIHBvaW50KTsK
ICAgICB9CiAKLSAgICBib29sIHByZXNlcnZlM0QgPSB1c2VUcmFuc2Zvcm1zICYmIChvLT5zdHls
ZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOwotICAgIGlmICh1
c2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIobykpIHsKKyAg
ICBib29sIHByZXNlcnZlM0QgPSBtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5bGUoKS0+
cHJlc2VydmVzM0QoKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKKyAgICBpZiAobW9kZSAm
IFVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkgewog
ICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9t
Q29udGFpbmVyKG8sIGNvbnRhaW5lck9mZnNldCwgdCk7CiAgICAgICAgIHRyYW5zZm9ybVN0YXRl
LmFwcGx5VHJhbnNmb3JtKHQsIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0
ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCShyZXZp
c2lvbiAxMzA1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlv
bk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxp
bmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9
IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lk
IG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3Jtcywg
VHJhbnNmb3JtU3RhdGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1TdGF0
ZSYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdm9pZCBoaWdoUXVhbGl0eVJlcGFpbnRUaW1lckZp
cmVkKFRpbWVyPFJlbmRlckJveE1vZGVsT2JqZWN0PiopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAJKHJldmlzaW9uIDEz
MDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMyMiw3ICszMjIsNyBAQCBib29sIFJlbmRlckVtYmVkZGVk
T2JqZWN0Ojppc0luVW5hdmFpbGFiCiAKIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmlzSW5V
bmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihNb3VzZUV2ZW50KiBldmVudCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gaXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKHJvdW5kZWRMYXlvdXRQb2lu
dChhYnNvbHV0ZVRvTG9jYWwoZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUp
KSk7CisgICAgcmV0dXJuIGlzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihyb3VuZGVkTGF5
b3V0UG9pbnQoYWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRy
YW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykpKTsKIH0KIAogc3RhdGljIGJvb2wg
c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oRG9jdW1lbnQqIGRvY3VtZW50
LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2lu
VW5hdmFpbGFiaWxpdHlSZWFzb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRnJhbWVTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGcmFtZVNldC5jcHAJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5OSw3ICs2OTks
NyBAQCBib29sIFJlbmRlckZyYW1lU2V0Ojp1c2VyUmVzaXplKE1vdXNlRXZlCiAgICAgICAgIGlm
IChuZWVkc0xheW91dCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAo
ZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2dC0+YnV0dG9u
KCkgPT0gTGVmdEJ1dHRvbikgewotICAgICAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBvcyA9IGFi
c29sdXRlVG9Mb2NhbChldnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOworICAg
ICAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBvcyA9IGFic29sdXRlVG9Mb2NhbChldnQtPmFic29s
dXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsK
ICAgICAgICAgICAgIHN0YXJ0UmVzaXppbmcobV9jb2xzLCBsb2NhbFBvcy54KCkpOwogICAgICAg
ICAgICAgc3RhcnRSZXNpemluZyhtX3Jvd3MsIGxvY2FsUG9zLnkoKSk7CiAgICAgICAgICAgICBp
ZiAobV9jb2xzLm1fc3BsaXRCZWluZ1Jlc2l6ZWQgIT0gbm9TcGxpdCB8fCBtX3Jvd3MubV9zcGxp
dEJlaW5nUmVzaXplZCAhPSBub1NwbGl0KSB7CkBAIC03MDksNyArNzA5LDcgQEAgYm9vbCBSZW5k
ZXJGcmFtZVNldDo6dXNlclJlc2l6ZShNb3VzZUV2ZQogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVFdmVudCB8
fCAoZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCAmJiBldnQtPmJ1dHRv
bigpID09IExlZnRCdXR0b24pKSB7Ci0gICAgICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0g
YWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7Cisg
ICAgICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJz
b2x1dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMp
OwogICAgICAgICAgICAgY29udGludWVSZXNpemluZyhtX2NvbHMsIGxvY2FsUG9zLngoKSk7CiAg
ICAgICAgICAgICBjb250aW51ZVJlc2l6aW5nKG1fcm93cywgbG9jYWxQb3MueSgpKTsKICAgICAg
ICAgICAgIGlmIChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYmIGV2
dC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCShyZXZpc2lvbiAxMzA1NjkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01OCw3ICs1OCw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyR2VvbWV0cnlNYXA6OmFic29sdXRl
UG8KICAgICB9CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgRmxvYXRQb2ludCByZW5kZXJl
ck1hcHBlZFJlc3VsdCA9IG1fbWFwcGluZy5sYXN0KCkubV9yZW5kZXJlci0+bG9jYWxUb0Fic29s
dXRlKHAsIGZhbHNlLCB0cnVlKTsKKyAgICBGbG9hdFBvaW50IHJlbmRlcmVyTWFwcGVkUmVzdWx0
ID0gbV9tYXBwaW5nLmxhc3QoKS5tX3JlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUocCwgVXNlVHJh
bnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICBBU1NFUlQocmVuZGVyZXJN
YXBwZWRSZXN1bHQgPT0gcmVzdWx0KTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24gMTMwNTY5KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTIs
NyArMTExMiw3IEBAIExheW91dFNpemUgUmVuZGVySW5saW5lOjpvZmZzZXRGcm9tQ29udGEKICAg
ICByZXR1cm4gb2Zmc2V0OwogfQogCi12b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlLCBib29s
KiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVy
KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRl
JiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhl
ZCkgY29uc3QKIHsKICAgICBpZiAocmVwYWludENvbnRhaW5lciA9PSB0aGlzKQogICAgICAgICBy
ZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCShyZXZp
c2lvbiAxMzA1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
TGF5b3V0UmVjdCByZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkKSBj
b25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwg
TWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBi
b29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVu
ZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJ
REU7CiAKICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0
IExheW91dFBvaW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNzAsNyArMTE3MCw3IEBAIFJlbmRlckxh
eWVyKiBSZW5kZXJMYXllcjo6Y2xpcHBpbmdSb290Rm8KIExheW91dFBvaW50IFJlbmRlckxheWVy
OjphYnNvbHV0ZVRvQ29udGVudHMoY29uc3QgTGF5b3V0UG9pbnQmIGFic29sdXRlUG9pbnQpIGNv
bnN0CiB7CiAgICAgLy8gV2UgZG9uJ3QgdXNlIGNvbnZlcnRUb0xheWVyQ29vcmRzIGJlY2F1c2Ug
aXQgZG9lc24ndCBrbm93IGFib3V0IHRyYW5zZm9ybXMKLSAgICByZXR1cm4gcm91bmRlZExheW91
dFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZVBvaW50LCBmYWxzZSwg
dHJ1ZSkpOworICAgIHJldHVybiByb3VuZGVkTGF5b3V0UG9pbnQocmVuZGVyZXIoKS0+YWJzb2x1
dGVUb0xvY2FsKGFic29sdXRlUG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcykpOwogfQogCiBib29sIFJlbmRlckxheWVyOjpjYW5ub3RCbGl0VG9XaW5kb3coKSBj
b25zdApAQCAtNDAxOCw3ICs0MDE4LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xp
cFJlY3RzKGNvbgogICAgICAgICAvLyBzb21lIHRyYW5zZm9ybWVkIGxheWVyIGJvdW5kYXJ5LCBm
b3IgZXhhbXBsZSwgaW4gdGhlIFJlbmRlckxheWVyQ29tcG9zaXRvciBvdmVybGFwTWFwLCB3aGVy
ZQogICAgICAgICAvLyBjbGlwUmVjdHMgYXJlIG5lZWRlZCBpbiB2aWV3IHNwYWNlLgogICAgICAg
ICBMYXlvdXRQb2ludCBvZmZzZXQ7Ci0gICAgICAgIG9mZnNldCA9IHJvdW5kZWRMYXlvdXRQb2lu
dChyZW5kZXJlcigpLT5sb2NhbFRvQ29udGFpbmVyUG9pbnQoRmxvYXRQb2ludCgpLCByb290TGF5
ZXItPnJlbmRlcmVyKCksIGZhbHNlLCBmYWxzZSwgMCkpOworICAgICAgICBvZmZzZXQgPSByb3Vu
ZGVkTGF5b3V0UG9pbnQocmVuZGVyZXIoKS0+bG9jYWxUb0NvbnRhaW5lclBvaW50KEZsb2F0UG9p
bnQoKSwgcm9vdExheWVyLT5yZW5kZXJlcigpLCAwKSk7CiAgICAgICAgIFJlbmRlclZpZXcqIHZp
ZXcgPSByZW5kZXJlcigpLT52aWV3KCk7CiAgICAgICAgIEFTU0VSVCh2aWV3KTsKICAgICAgICAg
aWYgKHZpZXcgJiYgY2xpcFJlY3RzLmZpeGVkKCkgJiYgcm9vdExheWVyLT5yZW5kZXJlcigpID09
IHZpZXcpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRy
b2xzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVk
aWFDb250cm9scy5jcHAJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEzLDcgKzIx
Myw3IEBAIEludFBvaW50IFJlbmRlck1lZGlhQ29udHJvbHM6OnZvbHVtZVNsaWQKIAogICAgIGZs
b2F0IHpvb21MZXZlbCA9IG11dGVCdXR0b25Cb3gtPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKTsK
ICAgICBpbnQgeSA9IHlPZmZzZXQgKiB6b29tTGV2ZWwgKyBtdXRlQnV0dG9uQm94LT5waXhlbFNu
YXBwZWRPZmZzZXRIZWlnaHQoKSAtIHNpemUuaGVpZ2h0KCk7Ci0gICAgRmxvYXRQb2ludCBhYnNQ
b2ludCA9IG11dGVCdXR0b25Cb3gtPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0
b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldExlZnQoKSwgeSksIHRydWUsIHRydWUpOworICAgIEZs
b2F0UG9pbnQgYWJzUG9pbnQgPSBtdXRlQnV0dG9uQm94LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQ
b2ludChtdXRlQnV0dG9uQm94LT5waXhlbFNuYXBwZWRPZmZzZXRMZWZ0KCksIHkpLCBJc0ZpeGVk
IHwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICBpZiAoYWJz
UG9pbnQueSgpIDwgMCkKICAgICAgICAgeSA9IG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZEhl
aWdodCgpOwogICAgIHJldHVybiBJbnRQb2ludCh4T2Zmc2V0ICogem9vbUxldmVsLCB5KTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkocmV2aXNp
b24gMTMwNTY5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6
OnNob3dQb3B1cCgpCiAKICAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcgdHJhbnNm
b3JtcyBpbnRvIGFjY291bnQsIGJ1dCB1c2UKICAgICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRo
ZSBlbGVtZW50IHRvIHNpemUgdGhlIHBvcHVwLgotICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9
IGxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKKyAgICBGbG9hdFBv
aW50IGFic1RvcExlZnQgPSBsb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBVc2VUcmFuc2Zv
cm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAgIEludFJlY3QgYWJzQm91bmRzID0g
YWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKTsKICAgICBhYnNCb3Vu
ZHMuc2V0TG9jYXRpb24ocm91bmRlZEludFBvaW50KGFic1RvcExlZnQpKTsKICAgICBIVE1MU2Vs
ZWN0RWxlbWVudCogc2VsZWN0ID0gc2VsZWN0RWxlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDA2LDMwICsyMDA2LDI1IEBAIExheW91dFJlY3QgUmVuZGVyT2JqZWN0Ojp2aWV3UmVjdCgpIGNv
bnMKICAgICByZXR1cm4gdmlldygpLT52aWV3UmVjdCgpOwogfQogCi1GbG9hdFBvaW50IFJlbmRl
ck9iamVjdDo6bG9jYWxUb0Fic29sdXRlKGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsUG9pbnQsIGJv
b2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcykgY29uc3QKK0Zsb2F0UG9pbnQgUmVuZGVyT2Jq
ZWN0Ojpsb2NhbFRvQWJzb2x1dGUoY29uc3QgRmxvYXRQb2ludCYgbG9jYWxQb2ludCwgTWFwQ29v
cmRpbmF0ZXNGbGFncyBtb2RlKSBjb25zdAogewogICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5zZm9y
bVN0YXRlKFRyYW5zZm9ybVN0YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgbG9jYWxQb2lu
dCk7Ci0gICAgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZs
aXA7Ci0gICAgaWYgKGZpeGVkKQotICAgICAgICBtb2RlIHw9IElzRml4ZWQ7Ci0gICAgaWYgKHVz
ZVRyYW5zZm9ybXMpCi0gICAgICAgIG1vZGUgfD0gVXNlVHJhbnNmb3JtczsKLSAgICBtYXBMb2Nh
bFRvQ29udGFpbmVyKDAsIHRyYW5zZm9ybVN0YXRlLCBtb2RlKTsKKyAgICBtYXBMb2NhbFRvQ29u
dGFpbmVyKDAsIHRyYW5zZm9ybVN0YXRlLCBtb2RlIHwgQXBwbHlDb250YWluZXJGbGlwKTsKICAg
ICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CiAgICAgCiAgICAgcmV0dXJuIHRyYW5zZm9ybVN0
YXRlLmxhc3RQbGFuYXJQb2ludCgpOwogfQogCi1GbG9hdFBvaW50IFJlbmRlck9iamVjdDo6YWJz
b2x1dGVUb0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmIGNvbnRhaW5lclBvaW50LCBib29sIGZpeGVk
LCBib29sIHVzZVRyYW5zZm9ybXMpIGNvbnN0CitGbG9hdFBvaW50IFJlbmRlck9iamVjdDo6YWJz
b2x1dGVUb0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmIGNvbnRhaW5lclBvaW50LCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUpIGNvbnN0CiB7CiAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3Rh
dGUoVHJhbnNmb3JtU3RhdGU6OlVuYXBwbHlJbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uLCBjb250
YWluZXJQb2ludCk7Ci0gICAgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoZml4ZWQsIHVzZVRyYW5z
Zm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChtb2Rl
LCB0cmFuc2Zvcm1TdGF0ZSk7CiAgICAgdHJhbnNmb3JtU3RhdGUuZmxhdHRlbigpOwogICAgIAog
ICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUG9pbnQoKTsKIH0KIAotdm9pZCBS
ZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBMb2Nh
bFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRl
ck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRD
b250YWluZXIgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwpAQCAtMjA3NSwxMSArMjA3MCwxMSBA
QCBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdDo6cHVzaE1hCiAgICAgcmV0dXJuIGNv
bnRhaW5lcjsKIH0KIAotdm9pZCBSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50
KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9y
bVN0YXRlKSBjb25zdAordm9pZCBSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50
KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRl
KSBjb25zdAogewogICAgIFJlbmRlck9iamVjdCogbyA9IHBhcmVudCgpOwogICAgIGlmIChvKSB7
Ci0gICAgICAgIG8tPm1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGZpeGVkLCB1c2VUcmFuc2Zvcm1z
LCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgICAgIG8tPm1hcEFic29sdXRlVG9Mb2NhbFBvaW50KG1v
ZGUsIHRyYW5zZm9ybVN0YXRlKTsKICAgICAgICAgaWYgKG8tPmhhc092ZXJmbG93Q2xpcCgpKQog
ICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSh0b1JlbmRlckJveChvKS0+c2Nyb2xsZWRD
b250ZW50T2Zmc2V0KCkpOwogICAgIH0KQEAgLTIxMjMsMzEgKzIxMTgsMjEgQEAgdm9pZCBSZW5k
ZXJPYmplY3Q6OmdldFRyYW5zZm9ybUZyb21Db250YQogI2VuZGlmCiB9CiAKLUZsb2F0UXVhZCBS
ZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVhZCYgbG9jYWxR
dWFkLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK0Zs
b2F0UXVhZCBSZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVh
ZCYgbG9jYWxRdWFkLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBN
YXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIC8v
IFRyYWNrIHRoZSBwb2ludCBhdCB0aGUgY2VudGVyIG9mIHRoZSBxdWFkJ3MgYm91bmRpbmcgYm94
LiBBcyBtYXBMb2NhbFRvQ29udGFpbmVyKCkgY2FsbHMgb2Zmc2V0RnJvbUNvbnRhaW5lcigpLAog
ICAgIC8vIGl0IHdpbGwgdXNlIHRoYXQgcG9pbnQgYXMgdGhlIHJlZmVyZW5jZSBwb2ludCB0byBk
ZWNpZGUgd2hpY2ggY29sdW1uJ3MgdHJhbnNmb3JtIHRvIGFwcGx5IGluIG11bHRpcGxlLWNvbHVt
biBibG9ja3MuCiAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3JtU3Rh
dGU6OkFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uLCBsb2NhbFF1YWQuYm91bmRpbmdCb3goKS5jZW50
ZXIoKSwgbG9jYWxRdWFkKTsKLSAgICBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFw
cGx5Q29udGFpbmVyRmxpcCB8IFVzZVRyYW5zZm9ybXM7Ci0gICAgaWYgKGZpeGVkKQotICAgICAg
ICBtb2RlIHw9IElzRml4ZWQ7Ci0gICAgaWYgKHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQotICAg
ICAgICBtb2RlIHw9IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zOwotICAgIG1hcExvY2FsVG9Db250
YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsK
KyAgICBtYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRl
LCBtb2RlIHwgQXBwbHlDb250YWluZXJGbGlwIHwgVXNlVHJhbnNmb3Jtcywgd2FzRml4ZWQpOwog
ICAgIHRyYW5zZm9ybVN0YXRlLmZsYXR0ZW4oKTsKICAgICAKICAgICByZXR1cm4gdHJhbnNmb3Jt
U3RhdGUubGFzdFBsYW5hclF1YWQoKTsKIH0KIAotRmxvYXRQb2ludCBSZW5kZXJPYmplY3Q6Omxv
Y2FsVG9Db250YWluZXJQb2ludChjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBvaW50LCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zLCBib29sIGZpeGVkLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK0Zsb2F0UG9pbnQgUmVu
ZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUG9pbnQoY29uc3QgRmxvYXRQb2ludCYgbG9jYWxQ
b2ludCwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTWFwQ29vcmRp
bmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBUcmFuc2Zvcm1T
dGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rp
b24sIGxvY2FsUG9pbnQpOwotICAgIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBw
bHlDb250YWluZXJGbGlwIHwgVXNlVHJhbnNmb3JtczsKLSAgICBpZiAoZml4ZWQpCi0gICAgICAg
IG1vZGUgfD0gSXNGaXhlZDsKLSAgICBpZiAoc25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAg
ICAgIG1vZGUgfD0gU25hcE9mZnNldEZvclRyYW5zZm9ybXM7Ci0gICAgbWFwTG9jYWxUb0NvbnRh
aW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOwor
ICAgIG1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUs
IG1vZGUgfCBBcHBseUNvbnRhaW5lckZsaXAgfCBVc2VUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CiAg
ICAgdHJhbnNmb3JtU3RhdGUuZmxhdHRlbigpOwogCiAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRl
Lmxhc3RQbGFuYXJQb2ludCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaAkocmV2aXNpb24gMTMwNTY5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsMTMgKzExMCwxMyBAQCBlbnVtIFBs
YWNlR2VuZXJhdGVkUnVuSW5GbGFnIHsKICAgICBEb05vdFBsYWNlR2VuZXJhdGVkUnVuSW4KIH07
CiAKLWVudW0gTWFwTG9jYWxUb0NvbnRhaW5lck1vZGUgeworZW51bSBNYXBDb29yZGluYXRlc01v
ZGUgewogICAgIElzRml4ZWQgPSAxIDw8IDAsCiAgICAgVXNlVHJhbnNmb3JtcyA9IDEgPDwgMSwK
ICAgICBBcHBseUNvbnRhaW5lckZsaXAgPSAxIDw8IDIsCiAgICAgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMgPSAxIDw8IDMKIH07Ci10eXBlZGVmIHVuc2lnbmVkIE1hcExvY2FsVG9Db250YWluZXJG
bGFnczsKK3R5cGVkZWYgdW5zaWduZWQgTWFwQ29vcmRpbmF0ZXNGbGFnczsKIAogY29uc3QgaW50
IGNhcmV0V2lkdGggPSAxOwogCkBAIC02OTgsMTkgKzY5OCwxOSBAQCBwdWJsaWM6CiAgICAgUmVu
ZGVyQmxvY2sqIGNvbnRhaW5pbmdCbG9jaygpIGNvbnN0OwogCiAgICAgLy8gQ29udmVydCB0aGUg
Z2l2ZW4gbG9jYWwgcG9pbnQgdG8gYWJzb2x1dGUgY29vcmRpbmF0ZXMKLSAgICAvLyBGSVhNRTog
VGVtcG9yYXJ5LiBJZiB1c2VUcmFuc2Zvcm1zIGlzIHRydWUsIHRha2UgdHJhbnNmb3JtcyBpbnRv
IGFjY291bnQuIEV2ZW50dWFsbHkgbG9jYWxUb0Fic29sdXRlKCkgd2lsbCBhbHdheXMgYmUgdHJh
bnNmb3JtLWF3YXJlLgotICAgIEZsb2F0UG9pbnQgbG9jYWxUb0Fic29sdXRlKGNvbnN0IEZsb2F0
UG9pbnQmIGxvY2FsUG9pbnQgPSBGbG9hdFBvaW50KCksIGJvb2wgZml4ZWQgPSBmYWxzZSwgYm9v
bCB1c2VUcmFuc2Zvcm1zID0gZmFsc2UpIGNvbnN0OwotICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVU
b0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wgdXNlVHJh
bnNmb3JtcyA9IGZhbHNlKSBjb25zdDsKKyAgICAvLyBGSVhNRTogVGVtcG9yYXJ5LiBJZiBVc2VU
cmFuc2Zvcm1zIGlzIHRydWUsIHRha2UgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQuIEV2ZW50dWFs
bHkgbG9jYWxUb0Fic29sdXRlKCkgd2lsbCBhbHdheXMgYmUgdHJhbnNmb3JtLWF3YXJlLgorICAg
IEZsb2F0UG9pbnQgbG9jYWxUb0Fic29sdXRlKGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsUG9pbnQg
PSBGbG9hdFBvaW50KCksIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKSBjb25zdDsKKyAgICBGbG9hdFBvaW50IGFic29sdXRlVG9Mb2NhbChjb25zdCBG
bG9hdFBvaW50JiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpIGNvbnN0OwogCiAgICAgLy8gQ29udmVydCBhIGxvY2FsIHF1YWQgdG8gYWJzb2x1dGUg
Y29vcmRpbmF0ZXMsIHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudC4KLSAgICBGbG9hdFF1
YWQgbG9jYWxUb0Fic29sdXRlUXVhZChjb25zdCBGbG9hdFF1YWQmIHF1YWQsIGJvb2wgZml4ZWQg
PSBmYWxzZSwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdAorICAgIEZsb2F0UXVhZCBsb2NhbFRv
QWJzb2x1dGVRdWFkKGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlID0gU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiBsb2NhbFRvQ29udGFpbmVyUXVhZChxdWFkLCAwLCBmYWxz
ZSwgZml4ZWQsIHdhc0ZpeGVkKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsVG9Db250YWluZXJRdWFk
KHF1YWQsIDAsIG1vZGUsIHdhc0ZpeGVkKTsKICAgICB9CiAKICAgICAvLyBDb252ZXJ0IGEgbG9j
YWwgcXVhZCBpbnRvIHRoZSBjb29yZGluYXRlIHN5c3RlbSBvZiBjb250YWluZXIsIHRha2luZyB0
cmFuc2Zvcm1zIGludG8gYWNjb3VudC4KLSAgICBGbG9hdFF1YWQgbG9jYWxUb0NvbnRhaW5lclF1
YWQoY29uc3QgRmxvYXRRdWFkJiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wgZml4ZWQgPSBm
YWxzZSwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKLSAgICBGbG9hdFBvaW50IGxvY2FsVG9D
b250YWluZXJQb2ludChjb25zdCBGbG9hdFBvaW50JiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJv
b2wgZml4ZWQgPSBmYWxzZSwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICBGbG9hdFF1
YWQgbG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiwgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gU25h
cE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CisgICAgRmxv
YXRQb2ludCBsb2NhbFRvQ29udGFpbmVyUG9pbnQoY29uc3QgRmxvYXRQb2ludCYsIFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9k
ZSA9IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0Owog
CiAgICAgLy8gUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSB0aGUgY29udGFpbmVyKCkgcmVuZGVyZXIg
KGV4Y2x1ZGluZyB0cmFuc2Zvcm1zKS4gSW4gbXVsdGktY29sdW1uIGxheW91dCwKICAgICAvLyBk
aWZmZXJlbnQgb2Zmc2V0cyBhcHBseSBhdCBkaWZmZXJlbnQgcG9pbnRzLCBzbyByZXR1cm4gdGhl
IG9mZnNldCB0aGF0IGFwcGxpZXMgdG8gdGhlIGdpdmVuIHBvaW50LgpAQCAtOTA4LDggKzkwOCw4
IEBAIHB1YmxpYzoKIAogICAgIC8vIE1hcCBwb2ludHMgYW5kIHF1YWRzIHRocm91Z2ggZWxlbWVu
dHMsIHBvdGVudGlhbGx5IHZpYSAzZCB0cmFuc2Zvcm1zLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQg
dG8gY2FsbCB0aGVzZSBkaXJlY3RseTsgdXNlCiAgICAgLy8gbG9jYWxUb0Fic29sdXRlL2Fic29s
dXRlVG9Mb2NhbCBtZXRob2RzIGluc3RlYWQuCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9D
b250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVy
RmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgbWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zv
cm1TdGF0ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwg
TWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2lu
dChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKICAg
ICAvLyBQdXNoZXMgc3RhdGUgb250byBSZW5kZXJHZW9tZXRyeU1hcCBhYm91dCBob3cgdG8gbWFw
IGNvb3JkaW5hdGVzIGZyb20gdGhpcyByZW5kZXJlciB0byBpdHMgY29udGFpbmVyLCBvciBhbmNl
c3RvclRvU3RvcEF0ICh3aGljaGV2ZXIgaXMgZW5jb3VudGVyZWQgZmlyc3QpLgogICAgIC8vIFJl
dHVybnMgdGhlIHJlbmRlcmVyIHdoaWNoIHdhcyBtYXBwZWQgdG8gKGNvbnRhaW5lciBvciBhbmNl
c3RvclRvU3RvcEF0KS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcAkocmV2aXNpb24gMTMwNTY5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIzLDcgKzUyMyw3IEBAIFN0cmluZyBSZW5k
ZXJUaGVtZTo6Zm9ybWF0TWVkaWFDb250cm9sc1IKIEludFBvaW50IFJlbmRlclRoZW1lOjp2b2x1
bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihSZW5kZXJCb3gqIG11dGVCdXR0b25Cb3gsIGNv
bnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgaW50IHkgPSAtc2l6ZS5oZWlnaHQoKTsK
LSAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbXV0ZUJ1dHRvbkJveC0+bG9jYWxUb0Fic29sdXRl
KEZsb2F0UG9pbnQobXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkT2Zmc2V0TGVmdCgpLCB5KSwg
dHJ1ZSwgdHJ1ZSk7CisgICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVCdXR0b25Cb3gtPmxv
Y2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNl
dExlZnQoKSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpOwogICAgIGlmIChhYnNQb2ludC55KCkgPCAwKQogICAgICAgICB5ID0gbXV0ZUJ1dHRv
bkJveC0+aGVpZ2h0KCk7CiAgICAgcmV0dXJuIEludFBvaW50KDAsIHkpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkocmV2aXNpb24gMTMwNTY5KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzYsNyArMTc2LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5
b3V0KGZhbHNlKTsKIH0KIAotdm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0
cmFuc2Zvcm1TdGF0ZSwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0Zp
eGVkKSBjb25zdAordm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zv
cm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QK
IHsKICAgICAvLyBJZiBhIGNvbnRhaW5lciB3YXMgc3BlY2lmaWVkLCBhbmQgd2FzIG5vdCAwIG9y
IHRoZSBSZW5kZXJWaWV3LAogICAgIC8vIHRoZW4gd2Ugc2hvdWxkIGhhdmUgZm91bmQgaXQgYnkg
bm93LgpAQCAtMjE0LDEyICsyMTQsMTIgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJWaWV3
OjpwdXNoTWFwcAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlbmRlclZpZXc6Om1hcEFic29s
dXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3Jt
U3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAordm9pZCBSZW5kZXJWaWV3OjptYXBBYnNvbHV0
ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJiB0
cmFuc2Zvcm1TdGF0ZSkgY29uc3QKIHsKLSAgICBpZiAoZml4ZWQgJiYgbV9mcmFtZVZpZXcpCisg
ICAgaWYgKG1vZGUgJiBJc0ZpeGVkICYmIG1fZnJhbWVWaWV3KQogICAgICAgICB0cmFuc2Zvcm1T
dGF0ZS5tb3ZlKG1fZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkpOwog
Ci0gICAgaWYgKHVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5l
cigwKSkgeworICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zv
cm1Gcm9tQ29udGFpbmVyKDApKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAg
ICAgICAgIGdldFRyYW5zZm9ybUZyb21Db250YWluZXIoMCwgTGF5b3V0U2l6ZSgpLCB0KTsKICAg
ICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0odCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmgJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw5ICsyMDYs
OSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNSZW5kZXJDb3VudGVycygpIHsgcmV0dXJuIG1fcmVu
ZGVyQ291bnRlckNvdW50OyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBwbHlDb250
YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBN
YXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQ
b2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29u
c3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5h
dGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
cmVxdWlyZXNDb2x1bW5zKGludCBkZXNpcmVkQ29sdW1uQ291bnQpIGNvbnN0IE9WRVJSSURFOwog
CiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdG
b3JlaWduT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCShyZXZpc2lvbiAxMzA1NjkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOTAsNyArMTkwLDcgQEAgYm9vbCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0
Ojpub2RlQXRQb2ludAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZW5kZXJTVkdGb3Jl
aWduT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwTG9jYWxU
b0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJT
VkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFw
Q29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBTVkdS
ZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIs
IHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVk
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWln
bk9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5oCShyZXZpc2lvbiAxMzA1NjkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlv
biYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zm
c2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdGb3Jl
aWduT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIG1h
cExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5
Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9
IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVy
KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRl
JiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9m
ZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0
cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNUcmFuc2Zv
cm1VcGRhdGUoKSB7IG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgPSB0cnVlOyB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAJKHJl
dmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCB2b2lkIFJlbmRlclNW
R0lubGluZTo6Y29tcHV0ZUZsb2F0UmVjdEZvCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0
ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3Qs
IGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIo
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUm
IHRyYW5zZm9ybVN0YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2Fz
Rml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYg
dHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQp
IGNvbnN0CiB7CiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlz
LCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zLCB3YXNGaXhlZCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0lubGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0
Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9h
dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUg
PSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2Fz
Rml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFp
bmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRl
ckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRl
UXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuY3BwCShyZXZpc2lvbiAxMzA1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYs
NyBAQCB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpjb21wdXRlRmxvYXRSCiAgICAgU1ZHUmVu
ZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRh
aW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVj
dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWlu
ZXJGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRl
c0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIFNWR1JlbmRlclN1cHBv
cnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3Jt
U3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpOwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuaAkocmV2aXNpb24gMTMwNTY5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4m
LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQp
IGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBMb2Nh
bFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRG
b3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2Rl
ID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdh
c0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmpl
Y3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
YW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVu
ZGVyU3R5bGUqIG5ld1N0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCShyZXZpc2lvbiAx
MzA1NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBSZW5kZXJTVkdSb290Ojpj
b21wdXRlRmxvYXRSZWN0Rm9yUgogLy8gVGhpcyBtZXRob2QgZXhwZWN0cyBsb2NhbCBDU1MgYm94
IGNvb3JkaW5hdGVzLgogLy8gQ2FsbGVycyB3aXRoIGxvY2FsIFNWRyB2aWV3cG9ydCBjb29yZGlu
YXRlcyBzaG91bGQgZmlyc3QgYXBwbHkgdGhlIGxvY2FsVG9Cb3JkZXJCb3hUcmFuc2Zvcm0KIC8v
IHRvIGNvbnZlcnQgZnJvbSBTVkcgdmlld3BvcnQgY29vcmRpbmF0ZXMgdG8gbG9jYWwgQ1NTIGJv
eCBjb29yZGluYXRlcy4KLXZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYg
dHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJh
bnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKG1vZGUgJiB+SXNGaXhlZCk7IC8vIFdlIHNob3VsZCBoYXZlIG5v
IGZpeGVkIGNvbnRlbnQgaW4gdGhlIFNWRyByZW5kZXJpbmcgdHJlZS4KICAgICBBU1NFUlQobW9k
ZSAmIFVzZVRyYW5zZm9ybXMpOyAvLyBtYXBwaW5nIGEgcG9pbnQgdGhyb3VnaCBTVkcgdy9vIHJl
c3BlY3RpbmcgdHJhc25mb3JtcyBpcyB1c2VsZXNzLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC05NSw3ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0
Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9h
dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZp
cnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdz
IG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9v
bCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVy
RmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1Rv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQs
IFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wg
Y2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkocmV2aXNpb24g
MTMwNTY5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6
Y29tcHV0ZUZsb2F0UmVjdEZvclIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRS
ZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQp
OwogfQogCi12b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9y
bVN0YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0Cit2b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0
YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewog
ICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENv
bnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywg
d2FzRml4ZWQpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdUZXh0LmgJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9
IGZhbHNlKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVj
dEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxv
YXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1
YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1v
ZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCog
d2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxp
cCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJl
bmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFkZENo
aWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KikgT1ZFUlJJREU7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9y
dC5jcHAJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgzLDcgQEAgdm9p
ZCBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbgogICAgIGlmIChwYXJlbnQtPmlz
U1ZHUm9vdCgpKQogICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0b1JlbmRl
clNWR1Jvb3QocGFyZW50KS0+bG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybSgpKTsKIAotICAgIE1h
cExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gVXNlVHJhbnNmb3JtczsKKyAgICBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUgPSBVc2VUcmFuc2Zvcm1zOwogICAgIGlmIChzbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtcykKICAgICAgICAgbW9kZSB8PSBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtczsKICAg
ICBwYXJlbnQtPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3Jt
U3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDEzMDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUxLDcgKzQ1MSw3IEBAIEFmZmluZVRyYW5zZm9y
bSBTVkdTVkdFbGVtZW50Ojpsb2NhbENvb3IKIAogICAgICAgICAgICAgLy8gVHJhbnNsYXRlIGlu
IG91ciBDU1MgcGFyZW50IGNvb3JkaW5hdGUgc3BhY2UKICAgICAgICAgICAgIC8vIEZJWE1FOiBU
aGlzIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCBDU1MgdHJhbnNmb3Jtcy4KLSAgICAgICAg
ICAgIGxvY2F0aW9uID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZShsb2NhdGlvbiwgZmFsc2Us
IHRydWUpOworICAgICAgICAgICAgbG9jYXRpb24gPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRl
KGxvY2F0aW9uLCBVc2VUcmFuc2Zvcm1zKTsKICAgICAgICAgICAgIGxvY2F0aW9uLnNjYWxlKHpv
b21GYWN0b3IsIHpvb21GYWN0b3IpOwogCiAgICAgICAgICAgICAvLyBCZSBjYXJlZnVsIGhlcmUh
IGxvY2FsVG9Cb3JkZXJCb3hUcmFuc2Zvcm0oKSBpbmNsdWRlZCB0aGUgeC95IG9mZnNldCBjb21p
bmcgZnJvbSB0aGUgdmlld0JveFRvVmlld1RyYW5zZm9ybSgpLApJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTMwNTY5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjggQEAKKzIwMTItMTAtMDUgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtTdWIgcGl4ZWwgbGF5b3V0XSBGYXN0LXBhdGggaWZyYW1lIHNjcm9sbGlu
ZyBjYW4gcGlja3MgdXAgYW4gZXh0cmEgcGl4ZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgc2Nyb2xsaW5nIG9mIHN1Yi1waXhlbCBsYXllcnMg
b24gc3ViLXBpeGVsIHBsYXRmb3JtcyAoQ2hyb21pdW0pLgorCisgICAgICAgICogZmFzdC9zdWIt
cGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZy
YW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxpb24vVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0v
cXQtNC44L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4td2syL1Rlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luLXhwL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8v
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAxMi0xMC0wNSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEZvcm0gY29udHJvbHMgc2hvdWxkIGFsd2F5cyBiZSBob3Jpem9udGFsCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlm
cmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorLmNvbnRhaW5lciB7CisgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIHBhZGRpbmc6IDEwLjNweDsKKyAgICB6LWluZGV4OiAx
OworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9yZXBhaW50L3Jlc291cmNlcy9yZXBhaW50
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNjcmlwdD4KKy8vIHNyYz0i
cmVzb3VyY2VzL3N1YmZyYW1lLmh0bWwiCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBzZXR1cElmcmFtZSgpIHsKKyAgdmFy
IHN1YkRvY3VtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNvbnRlbnRX
aW5kb3cuZG9jdW1lbnQ7CisgIHN1YkRvY3VtZW50Lm9wZW4oJ3RleHQvaHRtbCcsICdyZXBsYWNl
Jyk7CisgIHN1YkRvY3VtZW50LndyaXRlKCI8IURPQ1RZUEUgaHRtbD5cbjxodG1sPjxib2R5IHN0
eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyO2hlaWdodDogMTAwMHB4O1wiPjwvYm9keT4i
KQorICBzdWJEb2N1bWVudC5jbG9zZSgpOworfQorCitmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsK
KyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xs
VG8oMCwgMTApOworICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0dXBJZnJh
bWUoKTtydW5SZXBhaW50VGVzdCgpIj4KKyAgPHA+VGhlIGlmcmFtZSBiZWxvdyBzaG91bGQgcmVt
YWluIGdyZXkgd2hlbiBzY3JvbGxpbmcuPC9wPgorICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgIDxpZnJhbWUgaWQ9ImlmcmFtZSIgIHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogMjAw
cHg7Ij48L2lmcmFtZT4KKyAgPC9kaXY+CisgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9z
dWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWIt
cGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3N1Yi1w
aXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDUyCisgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg1MgorICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDE2KSBzaXplIDc4NHgyMAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNp
emUgNzg0eDIwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMxNXgx
OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMxNTogIlRoZSBpZnJhbWUgYmVs
b3cgc2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLiIKK2xheWVyIGF0ICg4LDUyKSBz
aXplIDMyNXgyMzAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICg4
LDUyKSBzaXplIDMyNXgyMzAKKyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgxMCwx
MCkgc2l6ZSAzMDR4MjA1IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCisgICAgICBsYXll
ciBhdCAoMCwwKSBzaXplIDI4NXgxMDE2CisgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSAyODV4MjAwCisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDI4NXgxMDE2CisgICAgICAgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDI4NXgxMDE2CisgICAgICAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyNjl4MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQorICAg
IFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAx
MzA1NjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25z
CSh3b3JraW5nIGNvcHkpCkBAIC0zMjM2LDYgKzMyMzYsOSBAQCB3ZWJraXQub3JnL2IvOTAyMDcg
WyBMaW51eCBEZWJ1ZyBdIGZhc3QvCiB3ZWJraXQub3JnL2IvOTAyMDcgWyBBbmRyb2lkIF0gZmFz
dC9mb3Jtcy9zZWxlY3Qvc2VsZWN0LXN0YXRlLXJlc3RvcmUuaHRtbCBbIEZhaWx1cmUgUGFzcyBU
aW1lb3V0IF0KIHdlYmtpdC5vcmcvYi85MDIwNyBbIFdpbiBSZWxlYXNlIF0gZmFzdC9mb3Jtcy9z
ZWxlY3Qvc2VsZWN0LXN0YXRlLXJlc3RvcmUuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKKyMgTmVl
ZCByZWJhc2VsaW5lIGFmdGVyIGJvdHMgY3ljbGUuCit3ZWJraXQub3JnL2IvOTg1NzEgWyBXaW4g
TWFjIF0gZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1s
IFsgRmFpbHVyZSBQYXNzIF0KKwogIyBGbGFreQogd2Via2l0Lm9yZy9iLzkwNDMwIGluc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1yZWNlaXZlLXJlc3BvbnNlLWV2ZW50Lmh0bWwgWyBGYWlsdXJl
IFBhc3MgVGltZW91dCBdCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1Rl
c3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxp
b24vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNTY5KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLWxpb24vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTIwLDYg
KzEyMCw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1
Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBp
eGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFz
dC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9z
dWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21l
ZC1pbWFnZS10aWxlcy5odG1sCiAKICMgVGhpcyBtZWRpYSB0ZXN0IGFsd2F5cyBmYWlsZWQgb24g
TGlvbgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1Rlc3RFeHBl
Y3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9w
YXJkL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDU2OSkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1zbm93bGVvcGFyZC9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTcsNiArMjE3LDcgQEAgZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwK
IGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFz
dC9zdWItcGl4ZWwvc2VsZWN0aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5o
dG1sCiBmYXN0L3N1Yi1waXhlbC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3Vi
LXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogCiAjIEZyYW1lOjpm
aW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0aW9uCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24g
MTMwNTY5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25z
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTIsNiArMTkyLDcgQEAgZmFzdC9zdWItcGl4ZWwvdGFibGUt
cm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1hY2N1bXVsYXRlcy10
by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0aW9uL3NlbGVjdGlvbi1yZWN0LWlu
LXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhlbC9zbmFwLW5lZ2F0aXZlLWxvY2F0
aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwu
aHRtbAogZmFzdC9zdWItcGl4ZWwvem9vbWVkLWltYWdlLXRpbGVzLmh0bWwKIAogIyBmYXN0L2V2
ZW50cy9wYWdlaGlkZS10aW1lb3V0Lmh0bWwsIHBhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2Fj
aGVkLXdpdGgtZnJhbWVzLmh0bWwsIGFuZApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDU2OSkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC02OTMsNiArNjkzLDcg
QEAgZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVs
L3N1Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1w
aXhlbC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhl
bC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogZmFzdC9zdWItcGl4ZWwvem9vbWVkLWltYWdl
LXRpbGVzLmh0bWwKIAogIyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRzIGlzIGlt
cGxlbWVudGVkIHlldC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9UZXN0RXhw
ZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9UZXN0
RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzA1NjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC00LjgvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSw3IEBA
IGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9z
dWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVj
dGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4
ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwt
aWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10
aWxlcy5odG1sCiAKICMgU1ZHIEZvbnRzIGFyZSBvbmx5IHN1cHBvcnRlZCB3aGVuIHVzaW5nIFFS
YXdGb250LCB3aGljaCBpcyBub3QKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RF
eHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4
cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNTY5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
VGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMzIzLDYgKzMyMyw3IEBAIGZhc3Qv
c3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9z
ZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25h
cC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1l
LWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5o
dG1sCiAKICMgVVNFKFY4KQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luLXdrMi9UZXN0
RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi13azIv
VGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNTY5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luLXdrMi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC05NTQsNiArOTU0
LDcgQEAgZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBp
eGVsL3N1Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwv
c2VsZWN0aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1
Yi1waXhlbC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1w
aXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogZmFzdC9zdWItcGl4ZWwvem9vbWVkLWlt
YWdlLXRpbGVzLmh0bWwKIAogIyBIaURQSSB0ZXN0cyByZXF1aXJlIHRlc3QgaW5mcmFzdHJ1Y3R1
cmUgZW5oYW5jZW1lbnRzCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4teHAvVGVzdEV4
cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4teHAvVGVz
dEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNTY5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luLXhwL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAg
ZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1
Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0
aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhl
bC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1p
ZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogZmFzdC9zdWItcGl4ZWwvem9vbWVkLWltYWdlLXRp
bGVzLmh0bWwKIAogIyBSRUdSRVNTSU9OIChyODM5Mjggb3IgYmVmb3JlKTogU29tZSB0ZXN0cyBm
YWlsaW5nIGFzc2VydGlvbnMgaW4gTWFya1N0YWNrOjppbnRlcm5hbEFwcGVuZCAvIE1hcmtTdGFj
azo6ZHJhaW4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CShyZXZpc2lvbiAxMzA1NjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTc1Nyw2ICsxNzU3LDcgQEAgZmFzdC9zdWItcGl4
ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1hY2N1
bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0aW9uL3NlbGVjdGlv
bi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhlbC9zbmFwLW5lZ2F0
aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1v
bi1zY3JvbGwuaHRtbAogZmFzdC9zdWItcGl4ZWwvem9vbWVkLWltYWdlLXRpbGVzLmh0bWwKIAog
IyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRzIGlzIGltcGxlbWVudGVkIHlldC4K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9u
cwkocmV2aXNpb24gMTMwNTY5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVz
dEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjI4NCw2ICsyMjg0LDcgQEAgZmFzdC9z
dWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhl
bC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0aW9uL3Nl
bGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhlbC9zbmFw
LW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUt
Y29weS1vbi1zY3JvbGwuaHRtbAogCiAjIE5vIENPUlMgc3VwcG9ydCBmb3IgbWVkaWEgZWxlbWVu
dHMgaXMgaW1wbGVtZW50ZWQgeWV0LgogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1v
cmlnaW4tcmVhZGJhY2suaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RF
eHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RF
eHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDU2OSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDcgQEAgZmFz
dC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1Yi1w
aXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0aW9u
L3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhlbC9z
bmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJh
bWUtY29weS1vbi1zY3JvbGwuaHRtbAogZmFzdC9zdWItcGl4ZWwvem9vbWVkLWltYWdlLXRpbGVz
Lmh0bWwKIAogIyBbV0syXVtXVFJdIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtdGV4dC1uZXN0ZWQt
dHJhbnNmb3Jtcy5odG1sIGZhaWxzCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4
cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJp
bmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWIt
cGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FB
QXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTVNakptTjJZMApNVEF3
TjJReE4yTXpZVEkwTldGaE9HRm1NVFpsTW1VNU5ZYW1QRFVBQUJkM1NVUkJWSGljN2QxYmIxVG5v
Y2ZoQmNZT1lLQk5pV3h6Cmlnb0dIQTRoSUFxQlJNRnRJMUZCUTFxMXFiamhJL1ZqY0VPcnBxMlNW
Q3BOVzFHSm95MGdBUWRDWWt3NEdReVlRNHdkd3NIN1lyUm4KZXpPMkdjd2ZHS3JudVVDRHZRN3Zl
bDlML21uV3NqMXArL2J0QlFBQU9aT2Y5d0FBQVA3YkNDd0FnRENCQlFBUUpyQUFBTUlFRmdCQQpt
TUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUx
Z0FBR0VDQ3dBZ1RHQUJBSVFKCkxBQ0FNSUVGQUJBMlpheFA3TnExYTZ4UGJkcTA2Y2lSSTF1M2Ju
M2NrLzN6bi85ODk5MTNpNko0OE9EQnNXUEhUcDgrWFJURmloVXIKbGk1ZCtyaUhlaXk5dmIzVkQv
aXhObjdhZzNtc0l6enRrVmNxTDJqTmV2WnpVcVh5d0VhT3NQYm5FNEFxalJsWVJWR3NXTEZpK2ZM
bApreWRQM3JWcjEvYnQyMHRWZFBMa3lVT0hEbjMzM1hjVE9GbjVtOGZ4NDhlYm1wcVdMMS9lMjl0
NzdOaXhweDFZanpYZ2pvNk9vYUdoCkdobk1xTVlhNFpNZitYSFZmZzA4K3ptcFVua1JSNjVtN2M4
bkFGVWE4eGJockZtejJ0cmFKay8rdncwbVQ1NjhmUG55V2JObWJkdTIKN1FuUCtzMDMzelEzTjlm
WDE3LzY2cXUvL09Vdm4vQm9qL1JZQTM3dnZmZWUza2lLeHh6TXFNWWE0Wk1mK2I5UHpjNUplUkdm
OXRjYgpBTS9GbUlHMVpjdVcrdnI2aHo1WVgxKy9aY3VXa2RVMU1ZT0RnMDkra09vOTFybWUwc0R1
M2J1WE92NVlSM2lXVS9xaWVCcHpVbDdLCkoxRWVtRlVEK0s4MDNpM0M4UTBNRE96ZnYvL1dyVnVy
VjY5dWJXMHRpdUwrL2ZzZEhSM256NStmTVdQRzIyKy9QWFBtekpIYmw1ODEKS1QzZFZmcTM5RGpY
MHFWTGp4OC9QbjM2OU0yYk41OCtmZnFMTDc0WUhCeWNPblhxc21YTGxpeFpVdHF4dmIxOS8vNzlO
Mi9lWExObQp6ZXpac3c4Y09EQXdNUERHRzI4c1hyejRrYWN1dVhMbFNtZG41OURRME91dnY3NWt5
WkxTQngrNTQ3bHo1dzRmUHZ6Z3dZTlZxMWExCnRyWU9EQXg4OHNrblJWRzB0YlV0WHJ6NGswOCtt
VFJwVWwxZDNkcTFhNjlldmRyZDNWMFV4UWNmZkZCWFYxYyt3dGRmZjMza3lKRjUKOCthZE8zZHUr
L2J0WTgxZTVibktzMVRhYStUcmtjNmZQLy81NTU4UERRMnRXN2V1OHFwTHN6ZHloaXN2dVpvWkht
dGR5azhSYmRxMAo2Y0NCQXpkdjNpenZNdEt0VzdjT0hqeDQ0OGFOZWZQbWJkeTRjZEtrU1k4YzJQ
WHIxL2Z2MzE4VXhhSkZpOWF0VzlmWjJWbWEzdC8rCjlyZFRwa3dweldFMWExSGwxMm8xVjFHNWxN
UER3NTkvL25sM2QzZGRYZDNLbFN0Ylcxc3JyMnZVbFIxcnBjYVp6OG81SFBVNEFOU0MKaVFkV2Iy
L3ZUMy82MDZ0WHJ4NDZkS2owUGVQWXNXTXRMUzNyMTYrL2ZQbnk0Y09IMjl2YlIyNWZmaHBtKy9i
dHBZZTZpcUw0eTEvKwpjdWZPblduVHB2MzYxNzh1YmRiVjFmWHV1KzlPbXpidDZ0V3JlL2JzV2JK
a1NXbkh2cjYrOXZiMlM1Y3VkWFIwdlA3NjZ6LzcyYy82CisvdjM3OTlmK3Q0ei9xbExob2FHTm0v
ZVBEZzRlUERnd2FsVHB5NVlzT0NSTy9iMzkzZDNkMi9ac3FXL3YzL2Z2bjB6Wjg1c2FtcDYKLy8z
M2QrL2V2V3pac3BkZWVtbjc5dTEvL2V0ZmYvR0xYMHlkT3JXNXVmbkNoUXRidG13WldWZEZVWHoy
MldkYnQyNjljZVBHdVhQbgp4cG05VWMvMTNudnZmZnp4eDZWZHRtN2QrcmUvL2UyaGk3cDgrZktw
VTZmYTI5c2JHaHBPblRwVmVkVUhEeDU4YUlZckw3bWFHUjVyClhjb3IyOXZidTJuVHBtdlhyaDA0
Y0tBeVRmYnQyN2Q4K2ZKNTgrYWRQSG55RDMvNFExMWQzWlFwVThZZjJLWk5tNlpQbjk3UjBiRnEK
MWFxaUtIN3lrNTljdkhqeG5YZmVLZFZWVVJRelpzeW9jaTJxK1ZxdDVpb3FsL0xFaVJNTkRRMi8r
dFd2enA0OTI5WFYxZHJhV2puaApvNjVzNVVvOWNqNHI1N0NVandEVW9JbmZubGl5WkVsOWZYMUxT
MHY1SWVLelo4OGVQSGp3ajMvODQzLys4NThyVjY0OHRQMm96NXE4Ci8vNzdSVkhNbXpldi9KRnQy
N1pOblRxMXA2Zm44T0hEOSsvZkwrKzRjT0hDK3ZyNitmUG4zNzE3ZDhtU0pRME5EYzNOemQ5Ly8z
MDEKcHk1NTlkVlg2K3JxWnM2Y3VYNzkraE1uVGxTejQ1RWpSOWF0VzlmUTBORFMwckptelpyRGh3
OFhSVEZ0MnJRNWMrWmN1SENoS0lyKwovdjd2dnZ1dTlQcnMyYk0vL3ZHUEd4b2FIanJJOU9uVEwx
MjZOSGZ1M0pGdlBsWE8zcWpuYW14c0xPOHk2dHR5eDQ4Zlg3ZHVYV05qClkzMTkvYWcvSzFBNXc1
V1hYTTBNajdVdXhmOCs1MVRhcGFXbHBiekxTQU1EQS9QbXphdXJxM3Z0dGRkbXpacjF3UWNmUEhK
Z2t5Wk4KZXVXVlYrYk9uZHZUMDFNVVJWOWZYMk5qNDhzdnZ6enlzRld1UlRWZnE5VmNSZVZTZG5k
M0wxNjh1SzZ1YnVIQ2hhVUpxYnl1VVZlMgowaVBuczNJT1J6ME9BTFZnNHU5Z2xZeThUM0huenAz
S0cxaGxENzJ2VTFMNUFNcjE2OWM3T3p2bnpwMzcxbHR2bGQ2d0dibmp5Tk5WCmYrcUh6Smd4NCti
Tm05WHMyTi9mUDNYcTFOTHJCUXNXZEhaMmxsN1Buei8vNjYrL1hyUm8wVmRmZmJWMDZkSno1ODYx
dHJiMjlQUzgKOWRaYmxRZHBiMi8vN0xQUFRwdzRzV0hEaGxkZWVXWGtwMFpld2xqbkd0LzE2OWZM
RVZiNXpGd3gyZ3hYWG5JMU16ek91b3c4eFZqMwpyUll1WFBqbGwxKzJ0YlZkdkhqeHpwMDdWUTZz
S0lyRml4ZnYyYlBudGRkZSsrcXJyOG8zZGtlcWZpM0cvNEtwNWlvcWwzSm9hT2loCmFhKzhyaXBY
OXBIeldUbUhBTlNzNUFPMnMyYk5Lci8rNXB0dkpuYVF2WHYzYnRpd1ljV0tGUys5OU5KVE92V3RX
N2QrOElNZlZMUGoKckZtemVudDdTNi92Mzc5ZnpxUG01dVpyMTY0TkRBeGN1M2J0alRmZXVIbno1
dVhMbCt2cTZrWWVyV3o2OU9rYk4yNWN2MzU5NlltaQpjUzVoMUhNOTVNR0RCeVAvTzMvKy9Pdlhy
NWRlMzcxN3QzS0RVVTlVZmwzOU1rMXNYY3BhVzFzdlhyejQ0WWNmSGp0MmJNT0dEZFVQCnJMR3hz
Ykd4OGN5Wk0xZXZYcDAvZjM3bFhvKzFGdU9mNjVFcWw3Syt2bjU0ZUhqOHZhcGMyVWVxWmc0QnFC
R1BEcXpTOSsvKy92N3kKTjVMQndjR2lLRXEvdktkMHo2WDBlczZjT1dmT25MbDM3OTdaczJjcnYy
bVY5aG9jSEN4dGZPUEdqZktPSTV2ZysrKy92M1hyMXREUQowSmt6WjRxaXVILy8vbGluSy8xYit1
ejRweTZLb3E2dXJxZW41OTY5ZTk5KysyM3BHYVBTeHl0M0hIbTZ0V3ZYSGoxNjlOcTFhM2Z1CjNE
bDgrUERxMWF2TFIydHVidDY3ZCsvQ2hRc25UNTQ4Wjg2Y1E0Y09MVnk0Y05RSjNMVnIxN2x6NTZa
Tm0xYjY2Yk94TG1lc2N6VTAKTlBUMjl0NjllN2YwaU5YSEgzODg4Z2lyVjY4dTdYWHYzcjJ1cnE2
aUtENzY2S09SWjYrYzRmRXZlYXdaSG10ZEJnY0hiOSsrUGVydQpJKzNidCsvdHQ5LyszZTkrdDNY
cjFwYVdsaW9IVnJKNDhlS09qbzdTVkkrNnN1T3NSZlZmcTlWY3hVTkxXUlJGUzB0TFgxL2Y4UER3
CnJWdTNTay9jVjE3WHFDdGJIdGhETDhhWno4bzVCS0JtMWExY3VYS2NUKy9hdGF2MDAxaW5UNS91
NnVvcWJmemhoeDhXUmZIbGwxK3UKWExueVQzLzZVL24xN05tenYvamlpNDZPam9HQmdYWHIxajMw
VmtkcHIxT25UbjM1NVpkRlVYUjNkM2QxZFpWZTkvVDB0TFcxbFRhYgpNbVZLWjJkblgxL2ZtalZy
TGx5NE1EUTB0Ry9mdmxGUFZ6N2dJMDlkRk1XY09YTzZ1cnFPSERuUzE5ZTNjdVhLdVhQbmxqNWV1
ZVBJCnE1cytmZnJreVpNUEhUcDArdlRwdHJhMjV1Ym04Z0dIaDRkUG56NjljZVBHMHAyZG5wNmVO
OTk4YzlUYm9GMWRYUzB0TFh2MzdsMjEKYXRXUGZ2U2pzV1p2ckhQVjFkVjFkbmIyOXZZdVg3Nzgw
cVZMYTlldS9jYy8vbEhlYThxVUtiTm56OTYzYjkrcFU2ZmEydHF1WGJ1MgpkdTNha1U5cmxVNDNj
b2JIditTeFpuaXNkVGwxNmxTcC9DcDNIemtKWjgrZVBYTGtTRmRYVjJuUnAwNmQrdTkvLy91UkF5
dDlmT2JNCm1TZE9uSGp6elRkSHZRYzYvbHBVLzdYNjV6Ly8rWkZYOGRCU0ZrWFIxTlIwNU1pUnpz
N09xMWV2TGx1MjdJYy8vR0hsaEkrNnN1V0IKbFdldjlHS2MrYXljdzVkZmZ2blRUejlkdEdqUnFO
TUN3SE0wcWZwSGwyQmlidDY4ZWVmT25kS1B6ZzBQRDkrOGVmUFRUeit0L2hudApLMWV1bkR4NThw
MTMzbm1hWTZ4MVR6aUhBRHhqZnNraFQ5MmVQWHUrL2ZiYjBrL0QzYjE3dDYrdmI4NmNPVlh1KytE
Qmc5S1QzVTl6CmdDK0FKNWxEQUo0OTcyRHgxSjAvZi83a3laTTNidHg0OE9CQlkyUGozTGx6VjZ4
WVVmbjdMQ3I5L2U5L3YzUG56dnIxNnoxeU5PRTUKQk9DNUVGZ0FBR0Z1RVFJQWhBa3NBSUF3Z1FV
QUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRgpBQkFtc0FB
QXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JB
bU1BQ0FBZ1RXQUFBCllRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVEWmxZcnQxZDNkbnh3Rk1XR3Ry
Ni9NZUFnRC9qM2V3NE1XMllNR0M1ejBFQUI0MndYZXcKU243Lys5K254Z0dVdExlM0YwV3hlL2Z1
dnI2K3NiWnBhbXJhdkhselVSUy8rYzF2bnQzSUFLamFFd1VXOERUczNMbHp4NDRkVDc0TgpBTStM
VzRSUVczYnYzbDFOT2UzWXNXUDM3dDNQWUR3QVRJREFndG95enAzQkNXOEp3RE1tc0FBQXdnUVdB
RUNZd0lJWHdLUkprNTczCkVBQjREQUlMYWwycHJqUVd3QXRFWUVGTkc5bFZHZ3ZnUlNHd29IWlZG
cFhHQW5naCtFV2pVTHVHaDRlZjl4QUFtQWp2WUFFQWhBa3MKQUlBd2dRVUFFT1laTEtnNU8zZnVm
TjVEQU9DSmVBY0xBQ0RNTzFoUWM3WnQyMWI1d2R1M2J6LzBrWC85NjEvUFpEZ0FQRGJ2WUFFQQpo
QWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1J
RUZBQkFtc0FBQXd2eXhaNmhwCkgzMzAwY2ovL3Z6blAzOWVJd0dnZWdJTGF0cTJiZHRLTDI3ZnZ2
MThSd0pBOWR3aUJBQUk4dzRXMURTM0NBRmVSQUlMYXBwYmhBQXYKSXJjSUFRREN2SU1GTmMwdFFv
QVhrY0NDbXVZV0ljQ0x5QzFDQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dB
ZwpUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3dnd0UXFnNUQvMkJad0JlT0FJTGFzN3ExYXVyMmV6
bzBhTlBleVFBVEl4YmhBQUFZUUlMCkFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpq
QUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUEKd2dRV0FFQ1l3QUlBQ0JO
WUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlM
QUNCTQpZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FC
QUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXCkFFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dB
Z0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUEKaEFrc0FJQXdnUVVB
RUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3
Z1FXQUVDWQp3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFt
TUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzCkFJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlF
MWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUEKQ0JOWUFBQmhB
Z3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlB
RUFoQWtzQUlBdwpnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxB
Q0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUFDQk5ZCkFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJR
QVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUEKRUNhd0FB
RENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVE
WWxPYzlBT0JoUjQ4ZQpmZDVEQU9DSkNDeW9PVHQyN0tobXM1MDdkejd0a1FBd01XNFJBZ0NFQ1N3
QWdEQ0JCUUFRSnJBQUFNSTg1QTYxYTlLa1NaVWZIQjRlCmZ2WWpBZUN4ZUFjTGFsZGxTNmtyZ0Jl
Q3dJS2FOcktvMUJYQWkwSmdRYTByZFpXNkFuaUJDQ3g0QWFncmdCZUx3QUlBQ0JOWVVGdWEKbXBy
aVd3THdqQWtzcUMyYk4yK3U1bzhNN3R5NWMvUG16YzlnUEFCTWdOK0RCVFZueDQ0ZHUzZnY3dXZy
RzJ1RHBxYW1LdjhnTkFEUAp4YVR0MjdkUFlMZnU3dTZpS0JZc1dKQWVEL0RZR2hvYW52Y1FBUGgv
Sm42TFVGMEJBSXhxZ3JjSVcxdGJzK01BQVBpdjRTRjNBSUF3CmdRVUFFQ2F3QUFEQ0JCWUFRSmpB
QWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTlkK
QUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxB
Q0JNWUFFQWhBa3NBSUF3Z1FVQQpFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJB
SVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoCkFnc0FJRXhnQVFDRUNTd0Fn
RENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVD
YXcKQUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdn
UVdBRUNZd0FJQUNCTllBQUJoQWdzQQpJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1N
QUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDCkJCWUFRSmpBQWdBSUUx
Z0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdz
QUlFeGcKQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFF
QWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQQpRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFD
QU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFCkNTd0FnRENCQlFB
UUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURD
QkJZQVFKakEKQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZ
d0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QQpnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdU
V0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJCkUxZ0FBR0VD
Q3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdB
UUNFQ1N3QWdEQ0IKQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NB
SUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQQpBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZB
QkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRCkpyQUFB
TUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFK
akFBZ0FJRTFnQUFHRUMKQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNC
TllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQQpBTUlFRmdCQW1NQUNBQWdUV0FBQVlR
SUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnClRH
QUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3
QWdEQ0JCUUFRSnJBQUFNSUUKRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FV
QUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQgpBSVFKTEFDQU1JRUZBQkFtc0FB
QXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JB
Cm1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJ
RTFnQUFHRUNDd0FnVEdBQkFJUUoKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJo
QWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQwpBQWdUV0FBQVlRSUxBQ0JN
WUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpM
QUNBCk1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JC
UUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1QKV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdB
QURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRgpBQkFtc0FBQXdnUVdB
RUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FB
ajdIMkU4CktSRDMvK0tOQUFBQUFFbEZUa1N1UW1DQwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167574</attachid>
            <date>2012-10-08 11:47:33 -0700</date>
            <delta_ts>2012-10-09 11:07:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98571-20121008114635.patch</filename>
            <type>text/plain</type>
            <size>100535</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDY1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExOSBAQAorMjAxMi0xMC0wOCAgTGV2aSBX
ZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1N1YiBwaXhlbCBsYXlv
dXRdIEZhc3QtcGF0aCBpZnJhbWUgc2Nyb2xsaW5nIGNhbiBwaWNrcyB1cCBhbiBleHRyYSBwaXhl
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rv
cmluZyBhbGwgY29vcmRpbmF0ZS1zd2l0Y2hpbmcgZnVuY3Rpb25hbGl0eSB0byB1c2UgYSBzaW5n
bGUgIm1vZGUiIGZsYWcKKyAgICAgICAgYXMgb3Bwb3NlZCB0byBoYXZpbmcgYSBidW5jaCBvZiBi
b29sZWFuIHZhbHVlcy4gVGhpcyBlbmFibGVzIHRoZSBzYW1lIHNldCBvZgorICAgICAgICBvcHRp
b25zIGFjcm9zcyB0aGUgYm9hcmQsIGFuZCBhIGNvbnNpc3RlbnQgaW50ZXJmYWNlLiBUaGlzIHdh
cyBwcmV2aW91c2x5CisgICAgICAgIGRvbmUgZm9yIG1hcExvY2FsVG9Db250YWluZXIuCisKKyAg
ICAgICAgVGhlIGltcHRldHVzIGZvciB0aGlzIGZvciB0aGlzIHN0ZW1zIGZyb20gdGhlIG9uZSBs
b2dpY2FsIGNoYW5nZSBpbiB0aGlzIHBhdGNoCisgICAgICAgIHdoaWNoIG9ubHkgZWZmZWN0cyBz
dWItcGl4ZWwgbGF5b3V0LiBGcmFtZVZpZXc6OmNvbnZlcnRUb1JlbmRlcmVyIGFuZAorICAgICAg
ICBjb252ZXJ0RnJvbVJlbmRlcmVyIHJldHVybiBJbnRQb2ludCBjb29yZGluYXRlcywgYW5kIG5l
ZWQgdG8gYWxzbyBzbmFwIHRyYW5zZm9ybQorICAgICAgICBvZmZzZXRzIHRvIGRldGVybWluZSBw
cm9wZXIgcmVjdHMgZm9yIHNjcm9sbGluZy4KKworICAgICAgICBVbmxhYmVsZWQgZnVuY3Rpb25z
IGJlbG93IGFyZSBzaW1wbHkgYmVpbmcgdXBkYXRlZCB0byB0aGVzZSBuZXcgaW50ZXJmYWNlcy4K
KworICAgICAgICBUZXN0OiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24t
c2Nyb2xsLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmdldFVw
cGVyTGVmdENvcm5lcik6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpnZXRMb3dl
clJpZ2h0Q29ybmVyKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50Ojpib3VuZHNJblJvb3RWaWV3U3BhY2UpOgorICAgICAgICAqIGRvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6
Y29tcHV0ZVJlbGF0aXZlUG9zaXRpb24pOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OmNvbnZlcnRUb1BhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6Y29udmVydEZyb21QYWdlKToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2
ZW50SGFuZGxlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9t
UG9pbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OmNvbnZlcnRUb1JlbmRlcmVyKTogTm93IHBpeGVsLXNuYXBzIG9mZnNldHMgYmVmb3JlIHBh
c3NpbmcKKyAgICAgICAgdGhlbSB0byBUcmFuc2Zvcm1TdGF0ZSwgd2hpY2ggdHJhbnNmb3JtcyB0
aGUgY29vcmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNvbnZlcnRGcm9t
UmVuZGVyZXIpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmFic29sdXRlUXVhZHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjphYnNvbHV0ZVF1YWRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoUmVuZGVyQm94TW9kZWxPYmplY3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6aXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNh
dG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRnJhbWVTZXQ6OnVzZXJSZXNpemUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJHZW9tZXRyeU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHZW9tZXRy
eU1hcDo6YWJzb2x1dGVQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAgKFJlbmRlcklu
bGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjphYnNvbHV0ZVRvQ29udGVudHMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck1lZGlhQ29udHJvbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFD
b250cm9sczo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24pOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51
TGlzdDo6c2hvd1BvcHVwKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bG9jYWxUb0Fic29sdXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YWJzb2x1dGVUb0xvY2FsKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclF1YWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUG9pbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlck9iamVjdCk6IE1hcExvY2Fs
VG9Db250YWluZXJGbGFncyBpcyBub3cgTWFwQ29vcmRpbmF0ZXNGbGFncyBzaW5jZSBpdCdzCisg
ICAgICAgIG5vdyB1c2VkIGZvciBvdGhlciBjb252ZXJzaW9uIG1ldGhvZHMuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmxvY2FsVG9BYnNvbHV0ZVF1YWQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6Om1hcExvY2FsVG9D
b250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6bWFwQWJzb2x1dGVUb0xv
Y2FsUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgIChS
ZW5kZXJWaWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9j
YWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWdu
T2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJTVkdGb3JlaWduT2JqZWN0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW5saW5lLmg6CisgICAgICAgIChSZW5kZXJTVkdJbmxpbmUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFJlbmRl
clNWR01vZGVsT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5l
cik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290Lmg6CisgICAgICAgIChS
ZW5kZXJTVkdSb290KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgIChSZW5k
ZXJTVkdUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5l
cik6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHU1ZHRWxlbWVudDo6bG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0pOgorCiAyMDEyLTEw
LTA4ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTG9hZGVy
IGNsZWFudXAgOiBTaW1wbGlmeSBGcmFtZUxvYWRlci9Eb2N1bWVudExvYWRlciBzZXR1cEZvclJl
cGxhY2UoKQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDEzMDY1NikKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMTE5LDggKzEx
MTksOCBAQCBfX1pOSzdXZWJDb3JlMTFSZW5kZXJTdHlsZTIxdmlzaXRlZERlcGVuCiBfX1pOSzdX
ZWJDb3JlMTFSZW5kZXJTdHlsZTRmb250RXYKIF9fWk5LN1dlYkNvcmUxMVNjcmlwdFZhbHVlOWdl
dFN0cmluZ0VQTjNKU0M5RXhlY1N0YXRlRVJOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTJS
ZW5kZXJPYmplY3QxNGVuY2xvc2luZ0xheWVyRXYKLV9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVj
dDE1bG9jYWxUb0Fic29sdXRlRVJLTlNfMTBGbG9hdFBvaW50RWJiCi1fX1pOSzdXZWJDb3JlMTJS
ZW5kZXJPYmplY3QyMGxvY2FsVG9Db250YWluZXJRdWFkRVJLTlNfOUZsb2F0UXVhZEVQTlNfMjJS
ZW5kZXJMYXllck1vZGVsT2JqZWN0RWJiUGIKK19fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1
bG9jYWxUb0Fic29sdXRlRVJLTlNfMTBGbG9hdFBvaW50RWoKK19fWk5LN1dlYkNvcmUxMlJlbmRl
ck9iamVjdDIwbG9jYWxUb0NvbnRhaW5lclF1YWRFUktOU185RmxvYXRRdWFkRVBOU18yMlJlbmRl
ckxheWVyTW9kZWxPYmplY3RFalBiCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QyM2Fic29s
dXRlQm91bmRpbmdCb3hSZWN0RWIKIF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDM5cGl4ZWxT
bmFwcGVkQWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0RXYKIF9fWk5LN1dlYkNvcmUxMlJlbmRl
ck9iamVjdDdjaGlsZEF0RWoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJ
KHJldmlzaW9uIDEzMDY1NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzQ2LDcgKzc0Niw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6
Z2V0VXBwZXJMZWZ0Q29ybmVyKEYKICAgICBSZW5kZXJPYmplY3QqIHAgPSBvOwogCiAgICAgaWYg
KCFvLT5pc0lubGluZSgpIHx8IG8tPmlzUmVwbGFjZWQoKSkgewotICAgICAgICBwb2ludCA9IG8t
PmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcG9p
bnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBVc2VUcmFuc2Zvcm1zIHwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAg
LTc3MSw3ICs3NzEsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmdldFVwcGVyTGVmdENvcm5lcihG
CiAgICAgICAgIEFTU0VSVChvKTsKIAogICAgICAgICBpZiAoIW8tPmlzSW5saW5lKCkgfHwgby0+
aXNSZXBsYWNlZCgpKSB7Ci0gICAgICAgICAgICBwb2ludCA9IG8tPmxvY2FsVG9BYnNvbHV0ZShG
bG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgIHBvaW50ID0gby0+bG9jYWxU
b0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKQEAgLTc4NSw3
ICs3ODUsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmdldFVwcGVyTGVmdENvcm5lcihGCiAgICAg
ICAgICAgICAgICAgUmVuZGVyQm94KiBib3ggPSB0b1JlbmRlckJveChvKTsKICAgICAgICAgICAg
ICAgICBwb2ludC5tb3ZlQnkoYm94LT5sb2NhdGlvbigpKTsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHBvaW50ID0gby0+Y29udGFpbmVyKCktPmxvY2FsVG9BYnNvbHV0ZShwb2ludCwgZmFs
c2UsIHRydWUpOworICAgICAgICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fi
c29sdXRlKHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC04MDcsNyArODA3
LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjpnZXRMb3dlclJpZ2h0Q29ybmVyKAogICAgIFJlbmRl
ck9iamVjdCogbyA9IHJlbmRlcmVyKCk7CiAgICAgaWYgKCFvLT5pc0lubGluZSgpIHx8IG8tPmlz
UmVwbGFjZWQoKSkgewogICAgICAgICBSZW5kZXJCb3gqIGJveCA9IHRvUmVuZGVyQm94KG8pOwot
ICAgICAgICBwb2ludCA9IG8tPmxvY2FsVG9BYnNvbHV0ZShMYXlvdXRQb2ludChib3gtPnNpemUo
KSksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcG9pbnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUoTGF5
b3V0UG9pbnQoYm94LT5zaXplKCkpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTg0MCw3ICs4NDAsNyBA
QCBib29sIENvbnRhaW5lck5vZGU6OmdldExvd2VyUmlnaHRDb3JuZXIoCiAgICAgICAgICAgICAg
ICAgUmVuZGVyQm94KiBib3ggPSB0b1JlbmRlckJveChvKTsKICAgICAgICAgICAgICAgICBwb2lu
dC5tb3ZlQnkoYm94LT5mcmFtZVJlY3QoKS5tYXhYTWF4WUNvcm5lcigpKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHBvaW50ID0gby0+Y29udGFpbmVyKCktPmxvY2FsVG9BYnNvbHV0ZShw
b2ludCwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+
bG9jYWxUb0Fic29sdXRlKHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzA2NTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzOSw3ICs1MzksNyBAQCBJbnRS
ZWN0IEVsZW1lbnQ6OmJvdW5kc0luUm9vdFZpZXdTcGFjZSgpCiAgICAgewogICAgICAgICAvLyBH
ZXQgdGhlIGJvdW5kaW5nIHJlY3RhbmdsZSBmcm9tIHRoZSBib3ggbW9kZWwuCiAgICAgICAgIGlm
IChyZW5kZXJCb3hNb2RlbE9iamVjdCgpKQotICAgICAgICAgICAgcmVuZGVyQm94TW9kZWxPYmpl
Y3QoKS0+YWJzb2x1dGVRdWFkcyhxdWFkcyk7CisgICAgICAgICAgICByZW5kZXJCb3hNb2RlbE9i
amVjdCgpLT5hYnNvbHV0ZVF1YWRzKHF1YWRzLCAwKTsKICAgICB9CiAKICAgICBpZiAocXVhZHMu
aXNFbXB0eSgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3Bw
CShyZXZpc2lvbiAxMzA2NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZl
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBNb3VzZVJlbGF0
ZWRFdmVudDo6Y29tcHV0ZVJlbGF0aXZlUAogICAgIC8vIEFkanVzdCBvZmZzZXRMb2NhdGlvbiB0
byBiZSByZWxhdGl2ZSB0byB0aGUgdGFyZ2V0J3MgcG9zaXRpb24uCiAgICAgaWYgKCFpc1NpbXVs
YXRlZCgpKSB7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHIgPSB0YXJnZXROb2RlLT5yZW5k
ZXJlcigpKSB7Ci0gICAgICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0gci0+YWJzb2x1dGVU
b0xvY2FsKGFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgRmxv
YXRQb2ludCBsb2NhbFBvcyA9IHItPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZUxvY2F0aW9uKCks
IFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICBt
X29mZnNldExvY2F0aW9uID0gcm91bmRlZExheW91dFBvaW50KGxvY2FsUG9zKTsKICAgICAgICAg
ICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMSAvIChwYWdlWm9vbUZhY3Rvcih0aGlzKSAqIGZyYW1l
U2NhbGVGYWN0b3IodGhpcykpOwogICAgICAgICAgICAgaWYgKHNjYWxlRmFjdG9yICE9IDEuMGYp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiAxMzA2NTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNzAsNyArMjA3MCw3IEBAIEZsb2F0
UG9pbnQgTm9kZTo6Y29udmVydFRvUGFnZShjb25zdCBGbG8KIHsKICAgICAvLyBJZiB0aGVyZSBp
cyBhIHJlbmRlcmVyLCBqdXN0IGFzayBpdCB0byBkbyB0aGUgY29udmVyc2lvbgogICAgIGlmIChy
ZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlKHAs
IGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0
ZShwLCBVc2VUcmFuc2Zvcm1zKTsKICAgICAKICAgICAvLyBPdGhlcndpc2UgZ28gdXAgdGhlIHRy
ZWUgbG9va2luZyBmb3IgYSByZW5kZXJlcgogICAgIEVsZW1lbnQgKnBhcmVudCA9IGFuY2VzdG9y
RWxlbWVudCgpOwpAQCAtMjA4NSw3ICsyMDg1LDcgQEAgRmxvYXRQb2ludCBOb2RlOjpjb252ZXJ0
RnJvbVBhZ2UoY29uc3QgRgogewogICAgIC8vIElmIHRoZXJlIGlzIGEgcmVuZGVyZXIsIGp1c3Qg
YXNrIGl0IHRvIGRvIHRoZSBjb252ZXJzaW9uCiAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAg
IHJldHVybiByZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwocCwgZmFsc2UsIHRydWUpOworICAg
ICAgICByZXR1cm4gcmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKHAsIFVzZVRyYW5zZm9ybXMp
OwogCiAgICAgLy8gT3RoZXJ3aXNlIGdvIHVwIHRoZSB0cmVlIGxvb2tpbmcgZm9yIGEgcmVuZGVy
ZXIKICAgICBFbGVtZW50ICpwYXJlbnQgPSBhbmNlc3RvckVsZW1lbnQoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzA2NTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTI4OSw3ICsxMjg5LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveERl
ZmF1bHRFdgogCiAgICAgICAgIC8vIENvbnZlcnQgdG8gY29vcmRzIHJlbGF0aXZlIHRvIHRoZSBs
aXN0IGJveCBpZiBuZWVkZWQuCiAgICAgICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0
aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpOwotICAgICAgICBJbnRQb2ludCBsb2NhbE9mZnNl
dCA9IHJvdW5kZWRJbnRQb2ludChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVu
dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSkpOworICAgICAgICBJbnRQb2ludCBs
b2NhbE9mZnNldCA9IHJvdW5kZWRJbnRQb2ludChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwo
bW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMpKTsKICAgICAgICAgaW50IGxpc3RJbmRleCA9IHRvUmVuZGVyTGlzdEJv
eChyZW5kZXJlcigpKS0+bGlzdEluZGV4QXRPZmZzZXQodG9TaXplKGxvY2FsT2Zmc2V0KSk7CiAg
ICAgICAgIGlmIChsaXN0SW5kZXggPj0gMCkgewogICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCgp
KSB7CkBAIC0xMzA5LDcgKzEzMDksNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94
RGVmYXVsdEV2CiAgICAgICAgIGlmIChtb3VzZUV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9u
IHx8ICFtb3VzZUV2ZW50LT5idXR0b25Eb3duKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRy
dWUpKTsKKyAgICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVu
ZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwg
VXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiAgICAgICAgIGludCBs
aXN0SW5kZXggPSB0b1JlbmRlckxpc3RCb3gocmVuZGVyZXIoKSktPmxpc3RJbmRleEF0T2Zmc2V0
KHRvU2l6ZShsb2NhbE9mZnNldCkpOwogICAgICAgICBpZiAobGlzdEluZGV4ID49IDApIHsKICAg
ICAgICAgICAgIGlmICghZGlzYWJsZWQoKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzA2NTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTYsNyArMjU2LDcgQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNl
dFBvc2l0aW9uRnJvbQogICAgICAgICByZXR1cm47CiAKICAgICBpbnB1dC0+c2V0VGV4dEFzT2ZM
YXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChpbnB1dC0+dmFsdWUoKSk7Ci0gICAgTGF5b3V0UG9p
bnQgb2Zmc2V0ID0gcm91bmRlZExheW91dFBvaW50KGlucHV0LT5yZW5kZXJlcigpLT5hYnNvbHV0
ZVRvTG9jYWwocG9pbnQsIGZhbHNlLCB0cnVlKSk7CisgICAgTGF5b3V0UG9pbnQgb2Zmc2V0ID0g
cm91bmRlZExheW91dFBvaW50KGlucHV0LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwocG9p
bnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykpOwogICAgIGJvb2wg
aXNWZXJ0aWNhbCA9IGhhc1ZlcnRpY2FsQXBwZWFyYW5jZShpbnB1dCk7CiAgICAgYm9vbCBpc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uID0gcmVuZGVyQm94KCktPnN0eWxlKCktPmlzTGVmdFRvUmlnaHRE
aXJlY3Rpb24oKTsKICAgICBMYXlvdXRVbml0IHRyYWNrU2l6ZTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDEz
MDY1NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCB2b2lkIFNwaW5CdXR0b25FbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kCiAgICAgfQogCiAgICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9
IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCk7Ci0gICAgSW50UG9pbnQgbG9jYWwgPSBy
b3VuZGVkSW50UG9pbnQoYm94LT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVM
b2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSkpOworICAgIEludFBvaW50IGxvY2FsID0gcm91bmRlZElu
dFBvaW50KGJveC0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24o
KSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiAgICAgaWYgKG1v
dXNlRXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgbW91c2VF
dmVudC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewogICAgICAgICBpZiAoYm94LT5waXhlbFNu
YXBwZWRCb3JkZXJCb3hSZWN0KCkuY29udGFpbnMobG9jYWwpKSB7CiAgICAgICAgICAgICAvLyBU
aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBvZiBIVE1MSW5wdXRFbGVtZW50IG1heSBydW4gSmF2YVNj
cmlwdApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTMwNjU2KQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NDgxLDEzICszNDgxLDEzIEBAIEludFJlY3QgRnJhbWVWaWV3Ojpjb252ZXJ0VG9SZW5kZXJlcihj
b24KIAogICAgIC8vIEZJWE1FOiB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIG1hcCBhbiBhYnNvbHV0
ZSByZWN0IGRvd24gdG8gYSBsb2NhbCBxdWFkLCBzbyBqdXN0CiAgICAgLy8gbW92ZSB0aGUgcmVj
dCBmb3Igbm93LgotICAgIHJlY3Quc2V0TG9jYXRpb24ocm91bmRlZEludFBvaW50KHJlbmRlcmVy
LT5hYnNvbHV0ZVRvTG9jYWwocmVjdC5sb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSAvKiB1c2UgdHJh
bnNmb3JtcyAqLykpKTsKKyAgICByZWN0LnNldExvY2F0aW9uKHJvdW5kZWRJbnRQb2ludChyZW5k
ZXJlci0+YWJzb2x1dGVUb0xvY2FsKHJlY3QubG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSkpOwogICAgIHJldHVybiByZWN0OwogfQogCiBJbnRQb2lu
dCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciwgY29uc3QgSW50UG9pbnQmIHJlbmRlcmVyUG9pbnQpIGNvbnN0CiB7Ci0gICAgSW50UG9p
bnQgcG9pbnQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZShyZW5k
ZXJlclBvaW50LCBmYWxzZSwgdHJ1ZSAvKiB1c2UgdHJhbnNmb3JtcyAqLykpOworICAgIEludFBv
aW50IHBvaW50ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUocmVu
ZGVyZXJQb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiAK
ICAgICAvLyBDb252ZXJ0IGZyb20gcGFnZSAoImFic29sdXRlIikgdG8gRnJhbWVWaWV3IGNvb3Jk
aW5hdGVzLgogICAgIGlmICghZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCkBAIC0zNTAzLDcgKzM1MDMs
NyBAQCBJbnRQb2ludCBGcmFtZVZpZXc6OmNvbnZlcnRUb1JlbmRlcmVyKGNvCiAgICAgaWYgKCFk
ZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKICAgICAgICAgcG9pbnQgKz0gSW50U2l6ZShzY3JvbGxYKCks
IHNjcm9sbFkoKSk7CiAKLSAgICByZXR1cm4gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5hYnNv
bHV0ZVRvTG9jYWwocG9pbnQsIGZhbHNlLCB0cnVlIC8qIHVzZSB0cmFuc2Zvcm1zICovKSk7Cisg
ICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBvaW50
LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKIH0KIAogSW50UmVj
dCBGcmFtZVZpZXc6OmNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IEludFJlY3QmIGxvY2Fs
UmVjdCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNw
cAkocmV2aXNpb24gMTMwNjU2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDcgKzE0OCw3IEBAIExheW91dFN0YXRlOjpM
YXlvdXRTdGF0ZShSZW5kZXJPYmplY3QqIHIKICNlbmRpZgogewogICAgIFJlbmRlck9iamVjdCog
Y29udGFpbmVyID0gcm9vdC0+Y29udGFpbmVyKCk7Ci0gICAgRmxvYXRQb2ludCBhYnNDb250ZW50
UG9pbnQgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0
cnVlKTsKKyAgICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5lci0+bG9jYWxU
b0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zKTsKICAgICBtX3BhaW50T2Zmc2V0ID0gTGF5b3V0U2l6ZShhYnNDb250ZW50UG9pbnQu
eCgpLCBhYnNDb250ZW50UG9pbnQueSgpKTsKIAogICAgIGlmIChjb250YWluZXItPmhhc092ZXJm
bG93Q2xpcCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAJKHJldmlzaW9uIDEzMDY1NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3NzAsMTAgKzY3NzAsMTAgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RgogICAgICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3ODEKICAgICAgICAgRmxvYXRSZWN0IGxvY2Fs
UmVjdCgwLCAtY29sbGFwc2VkTWFyZ2luQmVmb3JlKCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgoKSwgaGVpZ2h0KCkgKyBjb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSArIGNvbGxh
cHNlZE1hcmdpbkFmdGVyKCkpOwotICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRl
UXVhZChsb2NhbFJlY3QsIGZhbHNlLCB3YXNGaXhlZCkpOworICAgICAgICBxdWFkcy5hcHBlbmQo
bG9jYWxUb0Fic29sdXRlUXVhZChsb2NhbFJlY3QsIDAsIHdhc0ZpeGVkKSk7CiAgICAgICAgIGNv
bnRpbnVhdGlvbigpLT5hYnNvbHV0ZVF1YWRzKHF1YWRzLCB3YXNGaXhlZCk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIHF1YWRzLmFwcGVuZChSZW5kZXJCb3g6OmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxv
YXRSZWN0KDAsIDAsIHdpZHRoKCksIGhlaWdodCgpKSwgZmFsc2UsIHdhc0ZpeGVkKSk7CisgICAg
ICAgIHF1YWRzLmFwcGVuZChSZW5kZXJCb3g6OmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0
KDAsIDAsIHdpZHRoKCksIGhlaWdodCgpKSwgMCwgd2FzRml4ZWQpKTsKIH0KIAogTGF5b3V0UmVj
dCBSZW5kZXJCbG9jazo6cmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludChSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiAxMzA2
NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDAzLDcgKzQwMyw3IEBAIHZvaWQgUmVuZGVyQm94OjphYnNvbHV0ZVJlY3RzKFZl
Y3RvcjxJbnQKIAogdm9pZCBSZW5kZXJCb3g6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVh
ZD4mIHF1YWRzLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBxdWFkcy5hcHBlbmQobG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QoMCwgMCwgd2lkdGgoKSwgaGVpZ2h0KCkpLCBmYWxz
ZSwgd2FzRml4ZWQpKTsKKyAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChGbG9h
dFJlY3QoMCwgMCwgd2lkdGgoKSwgaGVpZ2h0KCkpLCAwLCB3YXNGaXhlZCkpOwogfQogCiB2b2lk
IFJlbmRlckJveDo6dXBkYXRlTGF5ZXJUcmFuc2Zvcm0oKQpAQCAtMTI1OCw3ICsxMjU4LDcgQEAg
TGF5b3V0VW5pdCBSZW5kZXJCb3g6OnBlcnBlbmRpY3VsYXJDb250YQogICAgIHJldHVybiBjYi0+
YWRqdXN0Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcobG9naWNhbEhlaWdodExl
bmd0aC52YWx1ZSgpKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIo
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUm
IHRyYW5zZm9ybVN0YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2Fz
Rml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNm
b3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0
CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwpA
QCAtMTM2MywxOCArMTM2MywxOCBAQCBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlckJveDo6cHVz
aE1hcHBpCiAgICAgcmV0dXJuIGFuY2VzdG9yU2tpcHBlZCA/IGFuY2VzdG9yVG9TdG9wQXQgOiBj
b250YWluZXI7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChi
b29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1T
dGF0ZSkgY29uc3QKK3ZvaWQgUmVuZGVyQm94OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBD
b29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29u
c3QKIHsKICAgICBib29sIGlzRml4ZWRQb3MgPSBzdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVk
UG9zaXRpb247CiAgICAgYm9vbCBoYXNUcmFuc2Zvcm0gPSBoYXNMYXllcigpICYmIGxheWVyKCkt
PnRyYW5zZm9ybSgpOwotICAgIGlmIChoYXNUcmFuc2Zvcm0pIHsKKyAgICBpZiAoaGFzVHJhbnNm
b3JtICYmICFpc0ZpeGVkUG9zKSB7CiAgICAgICAgIC8vIElmIHRoaXMgYm94IGhhcyBhIHRyYW5z
Zm9ybSwgaXQgYWN0cyBhcyBhIGZpeGVkIHBvc2l0aW9uIGNvbnRhaW5lciBmb3IgZml4ZWQgZGVz
Y2VuZGFudHMsCiAgICAgICAgIC8vIGFuZCBtYXkgaXRzZWxmIGFsc28gYmUgZml4ZWQgcG9zaXRp
b24uIFNvIHByb3BhZ2F0ZSAnZml4ZWQnIHVwIG9ubHkgaWYgdGhpcyBib3ggaXMgZml4ZWQgcG9z
aXRpb24uCi0gICAgICAgIGZpeGVkICY9IGlzRml4ZWRQb3M7Ci0gICAgfSBlbHNlCi0gICAgICAg
IGZpeGVkIHw9IGlzRml4ZWRQb3M7CisgICAgICAgIG1vZGUgJj0gfklzRml4ZWQ7CisgICAgfSBl
bHNlIGlmIChpc0ZpeGVkUG9zKQorICAgICAgICBtb2RlIHw9IElzRml4ZWQ7CiAKLSAgICBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoZml4ZWQsIHVzZVRyYW5z
Zm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQobW9kZSwgdHJhbnNmb3JtU3RhdGUpOwogfQogCiBMYXlvdXRTaXpl
IFJlbmRlckJveDo6b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IExh
eW91dFBvaW50JiBwb2ludCwgYm9vbCogb2Zmc2V0RGVwZW5kc09uUG9pbnQpIGNvbnN0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiAxMzA2NTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTU3
NCw5ICs1NzQsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNob3VsZENv
bXB1dGVTaXplQXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzUmVwbGFjZWQoKSAmJiAhaXNJ
bmxpbmVCbG9ja09ySW5saW5lVGFibGUoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFp
bmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFw
Q29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCosIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJv
b2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFu
c2Zvcm1TdGF0ZSYpIGNvbnN0OwogCiAgICAgdm9pZCBwYWludFJvb3RCb3hGaWxsTGF5ZXJzKGNv
bnN0IFBhaW50SW5mbyYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzMDY1NikKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2OTYsMTMgKzI2OTYsMTMgQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c2hvdWxk
QW50aWFsaQogICAgIHJldHVybiAhY29udGV4dC0+Z2V0Q1RNKCkuaXNJZGVudGl0eU9yVHJhbnNs
YXRpb25PckZsaXBwZWQoKTsKIH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zv
cm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0Cit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5z
Zm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKIHsKICAgICBSZW5kZXJPYmplY3QqIG8g
PSBjb250YWluZXIoKTsKICAgICBpZiAoIW8pCiAgICAgICAgIHJldHVybjsKIAotICAgIG8tPm1h
cEFic29sdXRlVG9Mb2NhbFBvaW50KGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0
ZSk7CisgICAgby0+bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQobW9kZSwgdHJhbnNmb3JtU3RhdGUp
OwogCiAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVy
KG8sIExheW91dFBvaW50KCkpOwogCkBAIC0yNzEzLDggKzI3MTMsOCBAQCB2b2lkIFJlbmRlckJv
eE1vZGVsT2JqZWN0OjptYXBBYnNvbHV0ZVRvCiAgICAgICAgIGJsb2NrLT5hZGp1c3RGb3JDb2x1
bW5SZWN0KGNvbnRhaW5lck9mZnNldCwgcG9pbnQpOwogICAgIH0KIAotICAgIGJvb2wgcHJlc2Vy
dmUzRCA9IHVzZVRyYW5zZm9ybXMgJiYgKG8tPnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5
bGUoKS0+cHJlc2VydmVzM0QoKSk7Ci0gICAgaWYgKHVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNl
VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkgeworICAgIGJvb2wgcHJlc2VydmUzRCA9IG1vZGUg
JiBVc2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCkt
PnByZXNlcnZlczNEKCkpOworICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRV
c2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8pKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IHQ7CiAgICAgICAgIGdldFRyYW5zZm9ybUZyb21Db250YWluZXIobywgY29udGFpbmVyT2Zm
c2V0LCB0KTsKICAgICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0odCwgcHJlc2Vy
dmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3Rh
dGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHJldmlzaW9uIDEzMDY1NikKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTgsNyArMTU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVp
Z2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9
IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5l
KSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQo
Ym9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJikgY29uc3QgT1ZFUlJJREU7CiAKICAg
ICB2b2lkIGhpZ2hRdWFsaXR5UmVwYWludFRpbWVyRmlyZWQoVGltZXI8UmVuZGVyQm94TW9kZWxP
YmplY3Q+Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRl
ZE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcAkocmV2aXNpb24gMTMwNjU2KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIy
LDcgKzMyMiw3IEBAIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmlzSW5VbmF2YWlsYWIKIAog
Ym9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6aXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9y
KE1vdXNlRXZlbnQqIGV2ZW50KSBjb25zdAogewotICAgIHJldHVybiBpc0luVW5hdmFpbGFibGVQ
bHVnaW5JbmRpY2F0b3Iocm91bmRlZExheW91dFBvaW50KGFic29sdXRlVG9Mb2NhbChldmVudC0+
YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSkpKTsKKyAgICByZXR1cm4gaXNJblVuYXZh
aWxhYmxlUGx1Z2luSW5kaWNhdG9yKHJvdW5kZWRMYXlvdXRQb2ludChhYnNvbHV0ZVRvTG9jYWwo
ZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKSkpOwogfQogCiBzdGF0aWMgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1l
c3NhZ2VCZUJ1dHRvbihEb2N1bWVudCogZG9jdW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQ
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcAkocmV2aXNp
b24gMTMwNjU2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjk5LDcgKzY5OSw3IEBAIGJvb2wgUmVuZGVyRnJhbWVTZXQ6
OnVzZXJSZXNpemUoTW91c2VFdmUKICAgICAgICAgaWYgKG5lZWRzTGF5b3V0KCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkubW91c2Vkb3duRXZlbnQgJiYgZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7Ci0gICAg
ICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1
dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgICAgICBGbG9hdFBvaW50IGxvY2Fs
UG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zv
cm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAgICAgICAgICAgc3RhcnRSZXNpemlu
ZyhtX2NvbHMsIGxvY2FsUG9zLngoKSk7CiAgICAgICAgICAgICBzdGFydFJlc2l6aW5nKG1fcm93
cywgbG9jYWxQb3MueSgpKTsKICAgICAgICAgICAgIGlmIChtX2NvbHMubV9zcGxpdEJlaW5nUmVz
aXplZCAhPSBub1NwbGl0IHx8IG1fcm93cy5tX3NwbGl0QmVpbmdSZXNpemVkICE9IG5vU3BsaXQp
IHsKQEAgLTcwOSw3ICs3MDksNyBAQCBib29sIFJlbmRlckZyYW1lU2V0Ojp1c2VyUmVzaXplKE1v
dXNlRXZlCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBpZiAoZXZ0LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50IHx8IChldnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkubW91c2V1cEV2ZW50ICYmIGV2dC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikpIHsKLSAg
ICAgICAgICAgIEZsb2F0UG9pbnQgbG9jYWxQb3MgPSBhYnNvbHV0ZVRvTG9jYWwoZXZ0LT5hYnNv
bHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9j
YWxQb3MgPSBhYnNvbHV0ZVRvTG9jYWwoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5z
Zm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICBjb250aW51ZVJl
c2l6aW5nKG1fY29scywgbG9jYWxQb3MueCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlUmVzaXpp
bmcobV9yb3dzLCBsb2NhbFBvcy55KCkpOwogICAgICAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9u
KSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1h
cC5jcHAJKHJldmlzaW9uIDEzMDY1NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHZW9tZXRyeU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgRmxvYXRQ
b2ludCBSZW5kZXJHZW9tZXRyeU1hcDo6YWJzb2x1dGVQbwogICAgIH0KIAogI2lmICFBU1NFUlRf
RElTQUJMRUQKLSAgICBGbG9hdFBvaW50IHJlbmRlcmVyTWFwcGVkUmVzdWx0ID0gbV9tYXBwaW5n
Lmxhc3QoKS5tX3JlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUocCwgZmFsc2UsIHRydWUpOworICAg
IEZsb2F0UG9pbnQgcmVuZGVyZXJNYXBwZWRSZXN1bHQgPSBtX21hcHBpbmcubGFzdCgpLm1fcmVu
ZGVyZXItPmxvY2FsVG9BYnNvbHV0ZShwLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMpOwogICAgIEFTU0VSVChyZW5kZXJlck1hcHBlZFJlc3VsdCA9PSByZXN1bHQpOwog
I2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CShyZXZpc2lvbiAxMzA2NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExMiw3ICsxMTEyLDcgQEAgTGF5b3V0U2l6ZSBS
ZW5kZXJJbmxpbmU6Om9mZnNldEZyb21Db250YQogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKLXZv
aWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFw
TG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBS
ZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIGlmIChyZXBh
aW50Q29udGFpbmVyID09IHRoaXMpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHJldmlzaW9uIDEzMDY1NikKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcg
KzEzNSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IHJlY3RXaXRoT3V0bGlu
ZUZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5
b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3Mg
bW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29s
KiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2Nh
bFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJG
bGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwg
UmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgVmlzaWJs
ZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMTMwNjU2KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTE3MSw3ICsxMTcxLDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpjbGlwcGlu
Z1Jvb3RGbwogTGF5b3V0UG9pbnQgUmVuZGVyTGF5ZXI6OmFic29sdXRlVG9Db250ZW50cyhjb25z
dCBMYXlvdXRQb2ludCYgYWJzb2x1dGVQb2ludCkgY29uc3QKIHsKICAgICAvLyBXZSBkb24ndCB1
c2UgY29udmVydFRvTGF5ZXJDb29yZHMgYmVjYXVzZSBpdCBkb2Vzbid0IGtub3cgYWJvdXQgdHJh
bnNmb3JtcwotICAgIHJldHVybiByb3VuZGVkTGF5b3V0UG9pbnQocmVuZGVyZXIoKS0+YWJzb2x1
dGVUb0xvY2FsKGFic29sdXRlUG9pbnQsIGZhbHNlLCB0cnVlKSk7CisgICAgcmV0dXJuIHJvdW5k
ZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoYWJzb2x1dGVQb2ludCwg
VXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiB9CiAKIGJvb2wgUmVu
ZGVyTGF5ZXI6OmNhbm5vdEJsaXRUb1dpbmRvdygpIGNvbnN0CkBAIC00MDI5LDcgKzQwMjksNyBA
QCB2b2lkIFJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMoY29uCiAgICAgICAgIC8vIHNv
bWUgdHJhbnNmb3JtZWQgbGF5ZXIgYm91bmRhcnksIGZvciBleGFtcGxlLCBpbiB0aGUgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yIG92ZXJsYXBNYXAsIHdoZXJlCiAgICAgICAgIC8vIGNsaXBSZWN0cyBh
cmUgbmVlZGVkIGluIHZpZXcgc3BhY2UuCiAgICAgICAgIExheW91dFBvaW50IG9mZnNldDsKLSAg
ICAgICAgb2Zmc2V0ID0gcm91bmRlZExheW91dFBvaW50KHJlbmRlcmVyKCktPmxvY2FsVG9Db250
YWluZXJQb2ludChGbG9hdFBvaW50KCksIHJvb3RMYXllci0+cmVuZGVyZXIoKSwgZmFsc2UsIGZh
bHNlLCAwKSk7CisgICAgICAgIG9mZnNldCA9IHJvdW5kZWRMYXlvdXRQb2ludChyZW5kZXJlcigp
LT5sb2NhbFRvQ29udGFpbmVyUG9pbnQoRmxvYXRQb2ludCgpLCByb290TGF5ZXItPnJlbmRlcmVy
KCksIDApKTsKICAgICAgICAgUmVuZGVyVmlldyogdmlldyA9IHJlbmRlcmVyKCktPnZpZXcoKTsK
ICAgICAgICAgQVNTRVJUKHZpZXcpOwogICAgICAgICBpZiAodmlldyAmJiBjbGlwUmVjdHMuZml4
ZWQoKSAmJiByb290TGF5ZXItPnJlbmRlcmVyKCkgPT0gdmlldykgewpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAkocmV2aXNpb24g
MTMwNjU2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNyArMjEzLDcgQEAgSW50UG9pbnQgUmVuZGVyTWVk
aWFDb250cm9sczo6dm9sdW1lU2xpZAogCiAgICAgZmxvYXQgem9vbUxldmVsID0gbXV0ZUJ1dHRv
bkJveC0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpOwogICAgIGludCB5ID0geU9mZnNldCAqIHpv
b21MZXZlbCArIG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldEhlaWdodCgpIC0gc2l6
ZS5oZWlnaHQoKTsKLSAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbXV0ZUJ1dHRvbkJveC0+bG9j
YWxUb0Fic29sdXRlKEZsb2F0UG9pbnQobXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkT2Zmc2V0
TGVmdCgpLCB5KSwgdHJ1ZSwgdHJ1ZSk7CisgICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVC
dXR0b25Cb3gtPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVs
U25hcHBlZE9mZnNldExlZnQoKSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9m
ZnNldEZvclRyYW5zZm9ybXMpOwogICAgIGlmIChhYnNQb2ludC55KCkgPCAwKQogICAgICAgICB5
ID0gbXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkSGVpZ2h0KCk7CiAgICAgcmV0dXJuIEludFBv
aW50KHhPZmZzZXQgKiB6b29tTGV2ZWwsIHkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCShyZXZpc2lvbiAxMzA2NTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAs
NyArMzIwLDcgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkKIAogICAgIC8vIENv
bXB1dGUgdGhlIHRvcCBsZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudCwgYnV0IHVz
ZQogICAgIC8vIHRoZSBhY3R1YWwgd2lkdGggb2YgdGhlIGVsZW1lbnQgdG8gc2l6ZSB0aGUgcG9w
dXAuCi0gICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0UG9p
bnQoKSwgZmFsc2UsIHRydWUpOworICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9IGxvY2FsVG9B
YnNvbHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3Jtcyk7CiAgICAgSW50UmVjdCBhYnNCb3VuZHMgPSBhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEln
bm9yaW5nVHJhbnNmb3JtcygpOwogICAgIGFic0JvdW5kcy5zZXRMb2NhdGlvbihyb3VuZGVkSW50
UG9pbnQoYWJzVG9wTGVmdCkpOwogICAgIEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBzZWxl
Y3RFbGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcAkocmV2aXNpb24gMTMwNjU2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMDYsMzAgKzIwMDYsMjUgQEAgTGF5b3V0
UmVjdCBSZW5kZXJPYmplY3Q6OnZpZXdSZWN0KCkgY29ucwogICAgIHJldHVybiB2aWV3KCktPnZp
ZXdSZWN0KCk7CiB9CiAKLUZsb2F0UG9pbnQgUmVuZGVyT2JqZWN0Ojpsb2NhbFRvQWJzb2x1dGUo
Y29uc3QgRmxvYXRQb2ludCYgbG9jYWxQb2ludCwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zv
cm1zKSBjb25zdAorRmxvYXRQb2ludCBSZW5kZXJPYmplY3Q6OmxvY2FsVG9BYnNvbHV0ZShjb25z
dCBGbG9hdFBvaW50JiBsb2NhbFBvaW50LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUpIGNvbnN0
CiB7CiAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3JtU3RhdGU6OkFw
cGx5VHJhbnNmb3JtRGlyZWN0aW9uLCBsb2NhbFBvaW50KTsKLSAgICBNYXBMb2NhbFRvQ29udGFp
bmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcDsKLSAgICBpZiAoZml4ZWQpCi0gICAg
ICAgIG1vZGUgfD0gSXNGaXhlZDsKLSAgICBpZiAodXNlVHJhbnNmb3JtcykKLSAgICAgICAgbW9k
ZSB8PSBVc2VUcmFuc2Zvcm1zOwotICAgIG1hcExvY2FsVG9Db250YWluZXIoMCwgdHJhbnNmb3Jt
U3RhdGUsIG1vZGUpOworICAgIG1hcExvY2FsVG9Db250YWluZXIoMCwgdHJhbnNmb3JtU3RhdGUs
IG1vZGUgfCBBcHBseUNvbnRhaW5lckZsaXApOwogICAgIHRyYW5zZm9ybVN0YXRlLmZsYXR0ZW4o
KTsKICAgICAKICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubGFzdFBsYW5hclBvaW50KCk7CiB9
CiAKLUZsb2F0UG9pbnQgUmVuZGVyT2JqZWN0OjphYnNvbHV0ZVRvTG9jYWwoY29uc3QgRmxvYXRQ
b2ludCYgY29udGFpbmVyUG9pbnQsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcykgY29u
c3QKK0Zsb2F0UG9pbnQgUmVuZGVyT2JqZWN0OjphYnNvbHV0ZVRvTG9jYWwoY29uc3QgRmxvYXRQ
b2ludCYgY29udGFpbmVyUG9pbnQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSkgY29uc3QKIHsK
ICAgICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6VW5hcHBs
eUludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24sIGNvbnRhaW5lclBvaW50KTsKLSAgICBtYXBBYnNv
bHV0ZVRvTG9jYWxQb2ludChmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOwor
ICAgIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KG1vZGUsIHRyYW5zZm9ybVN0YXRlKTsKICAgICB0
cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CiAgICAgCiAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRl
Lmxhc3RQbGFuYXJQb2ludCgpOwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlLCBi
b29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFp
bmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKIHsKICAgICBpZiAocmVwYWludENvbnRhaW5lciA9PSB0aGlzKQogICAgICAg
ICByZXR1cm47CkBAIC0yMDc1LDExICsyMDcwLDExIEBAIGNvbnN0IFJlbmRlck9iamVjdCogUmVu
ZGVyT2JqZWN0OjpwdXNoTWEKICAgICByZXR1cm4gY29udGFpbmVyOwogfQogCi12b2lkIFJlbmRl
ck9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFu
c2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0Cit2b2lkIFJlbmRl
ck9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2Rl
LCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7CiAgICAgUmVuZGVyT2Jq
ZWN0KiBvID0gcGFyZW50KCk7CiAgICAgaWYgKG8pIHsKLSAgICAgICAgby0+bWFwQWJzb2x1dGVU
b0xvY2FsUG9pbnQoZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICAg
ICAgby0+bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQobW9kZSwgdHJhbnNmb3JtU3RhdGUpOwogICAg
ICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCiAgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5tb3ZlKHRvUmVuZGVyQm94KG8pLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CiAgICAgfQpA
QCAtMjEyMywzMSArMjExOCwyMSBAQCB2b2lkIFJlbmRlck9iamVjdDo6Z2V0VHJhbnNmb3JtRnJv
bUNvbnRhCiAjZW5kaWYKIH0KIAotRmxvYXRRdWFkIFJlbmRlck9iamVjdDo6bG9jYWxUb0NvbnRh
aW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiBsb2NhbFF1YWQsIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgc25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wg
Zml4ZWQsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAorRmxvYXRRdWFkIFJlbmRlck9iamVjdDo6bG9j
YWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiBsb2NhbFF1YWQsIFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwg
Ym9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgLy8gVHJhY2sgdGhlIHBvaW50IGF0IHRoZSBj
ZW50ZXIgb2YgdGhlIHF1YWQncyBib3VuZGluZyBib3guIEFzIG1hcExvY2FsVG9Db250YWluZXIo
KSBjYWxscyBvZmZzZXRGcm9tQ29udGFpbmVyKCksCiAgICAgLy8gaXQgd2lsbCB1c2UgdGhhdCBw
b2ludCBhcyB0aGUgcmVmZXJlbmNlIHBvaW50IHRvIGRlY2lkZSB3aGljaCBjb2x1bW4ncyB0cmFu
c2Zvcm0gdG8gYXBwbHkgaW4gbXVsdGlwbGUtY29sdW1uIGJsb2Nrcy4KICAgICBUcmFuc2Zvcm1T
dGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rp
b24sIGxvY2FsUXVhZC5ib3VuZGluZ0JveCgpLmNlbnRlcigpLCBsb2NhbFF1YWQpOwotICAgIE1h
cExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgVXNlVHJh
bnNmb3JtczsKLSAgICBpZiAoZml4ZWQpCi0gICAgICAgIG1vZGUgfD0gSXNGaXhlZDsKLSAgICBp
ZiAoc25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAgICAgIG1vZGUgfD0gU25hcE9mZnNldEZv
clRyYW5zZm9ybXM7Ci0gICAgbWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0
cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOworICAgIG1hcExvY2FsVG9Db250YWluZXIo
cmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgfCBBcHBseUNvbnRhaW5lckZs
aXAgfCBVc2VUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CiAgICAgdHJhbnNmb3JtU3RhdGUuZmxhdHRl
bigpOwogICAgIAogICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUXVhZCgpOwog
fQogCi1GbG9hdFBvaW50IFJlbmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclBvaW50KGNvbnN0
IEZsb2F0UG9pbnQmIGxvY2FsUG9pbnQsIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIGJvb2wgc25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdAorRmxvYXRQb2ludCBSZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250YWlu
ZXJQb2ludChjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBvaW50LCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdAogewogICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5zZm9ybVN0YXRlKFRyYW5z
Zm9ybVN0YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgbG9jYWxQb2ludCk7Ci0gICAgTWFw
TG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBVc2VUcmFu
c2Zvcm1zOwotICAgIGlmIChmaXhlZCkKLSAgICAgICAgbW9kZSB8PSBJc0ZpeGVkOwotICAgIGlm
IChzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKLSAgICAgICAgbW9kZSB8PSBTbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtczsKLSAgICBtYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRy
YW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CisgICAgbWFwTG9jYWxUb0NvbnRhaW5lcihy
ZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSB8IEFwcGx5Q29udGFpbmVyRmxp
cCB8IFVzZVRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKICAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVu
KCk7CiAKICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubGFzdFBsYW5hclBvaW50KCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiAxMzA2NTYp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTExMCwxMyArMTEwLDEzIEBAIGVudW0gUGxhY2VHZW5lcmF0ZWRSdW5JbkZsYWcgewog
ICAgIERvTm90UGxhY2VHZW5lcmF0ZWRSdW5JbgogfTsKIAotZW51bSBNYXBMb2NhbFRvQ29udGFp
bmVyTW9kZSB7CitlbnVtIE1hcENvb3JkaW5hdGVzTW9kZSB7CiAgICAgSXNGaXhlZCA9IDEgPDwg
MCwKICAgICBVc2VUcmFuc2Zvcm1zID0gMSA8PCAxLAogICAgIEFwcGx5Q29udGFpbmVyRmxpcCA9
IDEgPDwgMiwKICAgICBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IDEgPDwgMwogfTsKLXR5cGVk
ZWYgdW5zaWduZWQgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzOwordHlwZWRlZiB1bnNpZ25lZCBN
YXBDb29yZGluYXRlc0ZsYWdzOwogCiBjb25zdCBpbnQgY2FyZXRXaWR0aCA9IDE7CiAKQEAgLTY5
OCwxOSArNjk4LDE5IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCbG9jayogY29udGFpbmluZ0Jsb2Nr
KCkgY29uc3Q7CiAKICAgICAvLyBDb252ZXJ0IHRoZSBnaXZlbiBsb2NhbCBwb2ludCB0byBhYnNv
bHV0ZSBjb29yZGluYXRlcwotICAgIC8vIEZJWE1FOiBUZW1wb3JhcnkuIElmIHVzZVRyYW5zZm9y
bXMgaXMgdHJ1ZSwgdGFrZSB0cmFuc2Zvcm1zIGludG8gYWNjb3VudC4gRXZlbnR1YWxseSBsb2Nh
bFRvQWJzb2x1dGUoKSB3aWxsIGFsd2F5cyBiZSB0cmFuc2Zvcm0tYXdhcmUuCi0gICAgRmxvYXRQ
b2ludCBsb2NhbFRvQWJzb2x1dGUoY29uc3QgRmxvYXRQb2ludCYgbG9jYWxQb2ludCA9IEZsb2F0
UG9pbnQoKSwgYm9vbCBmaXhlZCA9IGZhbHNlLCBib29sIHVzZVRyYW5zZm9ybXMgPSBmYWxzZSkg
Y29uc3Q7Ci0gICAgRmxvYXRQb2ludCBhYnNvbHV0ZVRvTG9jYWwoY29uc3QgRmxvYXRQb2ludCYs
IGJvb2wgZml4ZWQgPSBmYWxzZSwgYm9vbCB1c2VUcmFuc2Zvcm1zID0gZmFsc2UpIGNvbnN0Owor
ICAgIC8vIEZJWE1FOiBUZW1wb3JhcnkuIElmIFVzZVRyYW5zZm9ybXMgaXMgdHJ1ZSwgdGFrZSB0
cmFuc2Zvcm1zIGludG8gYWNjb3VudC4gRXZlbnR1YWxseSBsb2NhbFRvQWJzb2x1dGUoKSB3aWxs
IGFsd2F5cyBiZSB0cmFuc2Zvcm0tYXdhcmUuCisgICAgRmxvYXRQb2ludCBsb2NhbFRvQWJzb2x1
dGUoY29uc3QgRmxvYXRQb2ludCYgbG9jYWxQb2ludCA9IEZsb2F0UG9pbnQoKSwgTWFwQ29vcmRp
bmF0ZXNGbGFncyBtb2RlID0gU25hcE9mZnNldEZvclRyYW5zZm9ybXMpIGNvbnN0OworICAgIEZs
b2F0UG9pbnQgYWJzb2x1dGVUb0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmLCBNYXBDb29yZGluYXRl
c0ZsYWdzIG1vZGUgPSBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykgY29uc3Q7CiAKICAgICAvLyBD
b252ZXJ0IGEgbG9jYWwgcXVhZCB0byBhYnNvbHV0ZSBjb29yZGluYXRlcywgdGFraW5nIHRyYW5z
Zm9ybXMgaW50byBhY2NvdW50LgotICAgIEZsb2F0UXVhZCBsb2NhbFRvQWJzb2x1dGVRdWFkKGNv
bnN0IEZsb2F0UXVhZCYgcXVhZCwgYm9vbCBmaXhlZCA9IGZhbHNlLCBib29sKiB3YXNGaXhlZCA9
IDApIGNvbnN0CisgICAgRmxvYXRRdWFkIGxvY2FsVG9BYnNvbHV0ZVF1YWQoY29uc3QgRmxvYXRR
dWFkJiBxdWFkLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGxv
Y2FsVG9Db250YWluZXJRdWFkKHF1YWQsIDAsIGZhbHNlLCBmaXhlZCwgd2FzRml4ZWQpOworICAg
ICAgICByZXR1cm4gbG9jYWxUb0NvbnRhaW5lclF1YWQocXVhZCwgMCwgbW9kZSwgd2FzRml4ZWQp
OwogICAgIH0KIAogICAgIC8vIENvbnZlcnQgYSBsb2NhbCBxdWFkIGludG8gdGhlIGNvb3JkaW5h
dGUgc3lzdGVtIG9mIGNvbnRhaW5lciwgdGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50Lgot
ICAgIEZsb2F0UXVhZCBsb2NhbFRvQ29udGFpbmVyUXVhZChjb25zdCBGbG9hdFF1YWQmLCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zID0gdHJ1ZSwgYm9vbCBmaXhlZCA9IGZhbHNlLCBib29sKiB3YXNGaXhlZCA9IDAp
IGNvbnN0OwotICAgIEZsb2F0UG9pbnQgbG9jYWxUb0NvbnRhaW5lclBvaW50KGNvbnN0IEZsb2F0
UG9pbnQmLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gdHJ1ZSwgYm9vbCBmaXhlZCA9IGZhbHNlLCBib29sKiB3
YXNGaXhlZCA9IDApIGNvbnN0OworICAgIEZsb2F0UXVhZCBsb2NhbFRvQ29udGFpbmVyUXVhZChj
b25zdCBGbG9hdFF1YWQmLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9v
bCogd2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICBGbG9hdFBvaW50IGxvY2FsVG9Db250YWluZXJQ
b2ludChjb25zdCBGbG9hdFBvaW50JiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gU25hcE9mZnNldEZvclRyYW5zZm9y
bXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CiAKICAgICAvLyBSZXR1cm4gdGhlIG9mZnNl
dCBmcm9tIHRoZSBjb250YWluZXIoKSByZW5kZXJlciAoZXhjbHVkaW5nIHRyYW5zZm9ybXMpLiBJ
biBtdWx0aS1jb2x1bW4gbGF5b3V0LAogICAgIC8vIGRpZmZlcmVudCBvZmZzZXRzIGFwcGx5IGF0
IGRpZmZlcmVudCBwb2ludHMsIHNvIHJldHVybiB0aGUgb2Zmc2V0IHRoYXQgYXBwbGllcyB0byB0
aGUgZ2l2ZW4gcG9pbnQuCkBAIC05MDgsOCArOTA4LDggQEAgcHVibGljOgogCiAgICAgLy8gTWFw
IHBvaW50cyBhbmQgcXVhZHMgdGhyb3VnaCBlbGVtZW50cywgcG90ZW50aWFsbHkgdmlhIDNkIHRy
YW5zZm9ybXMuIFlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0byBjYWxsIHRoZXNlIGRpcmVjdGx5OyB1
c2UKICAgICAvLyBsb2NhbFRvQWJzb2x1dGUvYWJzb2x1dGVUb0xvY2FsIG1ldGhvZHMgaW5zdGVh
ZC4KLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcExvY2FsVG9Db250
YWluZXJGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDAp
IGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZp
eGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUg
PSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9k
ZSwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKIAogICAgIC8vIFB1c2hlcyBzdGF0ZSBvbnRvIFJl
bmRlckdlb21ldHJ5TWFwIGFib3V0IGhvdyB0byBtYXAgY29vcmRpbmF0ZXMgZnJvbSB0aGlzIHJl
bmRlcmVyIHRvIGl0cyBjb250YWluZXIsIG9yIGFuY2VzdG9yVG9TdG9wQXQgKHdoaWNoZXZlciBp
cyBlbmNvdW50ZXJlZCBmaXJzdCkuCiAgICAgLy8gUmV0dXJucyB0aGUgcmVuZGVyZXIgd2hpY2gg
d2FzIG1hcHBlZCB0byAoY29udGFpbmVyIG9yIGFuY2VzdG9yVG9TdG9wQXQpLgpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCShyZXZpc2lvbiAxMzA2NTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MjMsNyArNTIzLDcgQEAgU3RyaW5nIFJlbmRlclRoZW1lOjpmb3JtYXRNZWRpYUNvbnRy
b2xzUgogSW50UG9pbnQgUmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0
dG9uKFJlbmRlckJveCogbXV0ZUJ1dHRvbkJveCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QK
IHsKICAgICBpbnQgeSA9IC1zaXplLmhlaWdodCgpOwotICAgIEZsb2F0UG9pbnQgYWJzUG9pbnQg
PSBtdXRlQnV0dG9uQm94LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludChtdXRlQnV0dG9uQm94
LT5waXhlbFNuYXBwZWRPZmZzZXRMZWZ0KCksIHkpLCB0cnVlLCB0cnVlKTsKKyAgICBGbG9hdFBv
aW50IGFic1BvaW50ID0gbXV0ZUJ1dHRvbkJveC0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQo
bXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkT2Zmc2V0TGVmdCgpLCB5KSwgSXNGaXhlZCB8IFVz
ZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgaWYgKGFic1BvaW50
LnkoKSA8IDApCiAgICAgICAgIHkgPSBtdXRlQnV0dG9uQm94LT5oZWlnaHQoKTsKICAgICByZXR1
cm4gSW50UG9pbnQoMCwgeSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCShyZXZpc2lvbiAxMzA2NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Niw3ICsxNzYsNyBAQCB2b2lkIFJlbmRl
clZpZXc6OmxheW91dCgpCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCi12b2lkIFJl
bmRlclZpZXc6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBMb2NhbFRv
Q29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclZp
ZXc6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0Zs
YWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIC8vIElmIGEgY29udGFpbmVy
IHdhcyBzcGVjaWZpZWQsIGFuZCB3YXMgbm90IDAgb3IgdGhlIFJlbmRlclZpZXcsCiAgICAgLy8g
dGhlbiB3ZSBzaG91bGQgaGF2ZSBmb3VuZCBpdCBieSBub3cuCkBAIC0yMTQsMTIgKzIxNCwxMiBA
QCBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclZpZXc6OnB1c2hNYXBwCiAgICAgcmV0dXJuIDA7
CiB9CiAKLXZvaWQgUmVuZGVyVmlldzo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhl
ZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNv
bnN0Cit2b2lkIFJlbmRlclZpZXc6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5h
dGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAogewot
ICAgIGlmIChmaXhlZCAmJiBtX2ZyYW1lVmlldykKKyAgICBpZiAobW9kZSAmIElzRml4ZWQgJiYg
bV9mcmFtZVZpZXcpCiAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUobV9mcmFtZVZpZXctPnNj
cm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSk7CiAKLSAgICBpZiAodXNlVHJhbnNmb3JtcyAm
JiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKDApKSB7CisgICAgaWYgKG1vZGUgJiBV
c2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIoMCkpIHsKICAg
ICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICAgICAgZ2V0VHJhbnNmb3JtRnJvbUNv
bnRhaW5lcigwLCBMYXlvdXRTaXplKCksIHQpOwogICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBs
eVRyYW5zZm9ybSh0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAko
cmV2aXNpb24gMTMwNjU2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
aAkod29ya2luZyBjb3B5KQpAQCAtMjA2LDkgKzIwNiw5IEBAIHB1YmxpYzoKICAgICBib29sIGhh
c1JlbmRlckNvdW50ZXJzKCkgeyByZXR1cm4gbV9yZW5kZXJDb3VudGVyQ291bnQ7IH0KIAogcHJv
dGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxU
b0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9
IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0
KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
Y2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNl
VHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFw
QWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1T
dGF0ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0NvbHVtbnMoaW50IGRlc2ly
ZWRDb2x1bW5Db3VudCkgY29uc3QgT1ZFUlJJREU7CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5jcHAJKHJldmlzaW9uIDEzMDY1NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw3ICsxOTAs
NyBAQCBib29sIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi12b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250
YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9v
bCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2Fs
VG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJv
b2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9D
b250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBT
bmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgJKHJl
dmlzaW9uIDEzMDY1NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Rm9yZWlnbk9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRU
ZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0ZvcmVpZ25PYmplY3QoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcExv
Y2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1v
ZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCog
d2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9i
amVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIHsgbV9uZWVkc1RyYW5z
Zm9ybVVwZGF0ZSA9IHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkocmV2aXNpb24gMTMwNjU2KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjpjb21wdXRlRmxvYXRSZWN0
Rm8KICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCh0aGlz
LCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFJlbmRl
clNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2Fs
VG9Db250YWluZXJGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVy
U1ZHSW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRp
bmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBTVkdSZW5kZXJT
dXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5z
Zm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUu
aAkocmV2aXNpb24gMTMwNjU2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbmxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxz
ZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUm
LCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNG
bGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMs
IGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBS
ZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYs
IGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzMDY1
NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6OmNvbXB1dGVGbG9hdFIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRS
ZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQp
OwogfQogCi12b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0
cmFuc2Zvcm1TdGF0ZSwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0Zp
eGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5l
cihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4
ZWQpIGNvbnN0CiB7CiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0
aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRG
b3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCShyZXZpc2lvbiAxMzA2NTYp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1
bXVsYXRlZE9mZnNldCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVj
dG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0g
QXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0Zp
eGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBT
bmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5l
cihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJH
ZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpOwogICAg
IHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUm9vdC5jcHAJKHJldmlzaW9uIDEzMDY1NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5NSw3
ICszOTUsNyBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSCiAvLyBU
aGlzIG1ldGhvZCBleHBlY3RzIGxvY2FsIENTUyBib3ggY29vcmRpbmF0ZXMuCiAvLyBDYWxsZXJz
IHdpdGggbG9jYWwgU1ZHIHZpZXdwb3J0IGNvb3JkaW5hdGVzIHNob3VsZCBmaXJzdCBhcHBseSB0
aGUgbG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybQogLy8gdG8gY29udmVydCBmcm9tIFNWRyB2aWV3
cG9ydCBjb29yZGluYXRlcyB0byBsb2NhbCBDU1MgYm94IGNvb3JkaW5hdGVzLgotdm9pZCBSZW5k
ZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwTG9jYWxU
b0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJT
VkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0
ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBBU1NFUlQobW9kZSAm
IH5Jc0ZpeGVkKTsgLy8gV2Ugc2hvdWxkIGhhdmUgbm8gZml4ZWQgY29udGVudCBpbiB0aGUgU1ZH
IHJlbmRlcmluZyB0cmVlLgogICAgIEFTU0VSVChtb2RlICYgVXNlVHJhbnNmb3Jtcyk7IC8vIG1h
cHBpbmcgYSBwb2ludCB0aHJvdWdoIFNWRyB3L28gcmVzcGVjdGluZyB0cmFzbmZvcm1zIGlzIHVz
ZWxlc3MuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuaAkocmV2aXNpb24gMTMwNjU2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSb290LmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wg
Zml4ZWQpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxp
cCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRp
bmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBj
b25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25z
dCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1RleHQuY3BwCShyZXZpc2lvbiAxMzA2NTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEs
NyArMTExLDcgQEAgdm9pZCBSZW5kZXJTVkdUZXh0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUgogICAg
IFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFp
bnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHVGV4
dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWlu
ZXJGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6
bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3Mg
bW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFw
TG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwg
bW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAkocmV2aXNpb24gMTMw
NjU2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFs
c2UpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWlu
ZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3Rh
dGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0
ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9y
bXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwg
UmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVD
aGlsZChSZW5kZXJPYmplY3QqKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAkocmV2aXNpb24gMTMwNjU2KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODMsNyArODMsNyBAQCB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExv
Y2FsVG9Db250YWluCiAgICAgaWYgKHBhcmVudC0+aXNTVkdSb290KCkpCiAgICAgICAgIHRyYW5z
Zm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKHRvUmVuZGVyU1ZHUm9vdChwYXJlbnQpLT5sb2NhbFRv
Qm9yZGVyQm94VHJhbnNmb3JtKCkpOwogCi0gICAgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1v
ZGUgPSBVc2VUcmFuc2Zvcm1zOworICAgIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IFVzZVRy
YW5zZm9ybXM7CiAgICAgaWYgKHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQogICAgICAgICBtb2Rl
IHw9IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zOwogICAgIHBhcmVudC0+bWFwTG9jYWxUb0NvbnRh
aW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkocmV2aXNpb24gMTMwNjU2KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NTEsNyArNDUxLDcgQEAgQWZmaW5lVHJhbnNmb3JtIFNWR1NWR0VsZW1lbnQ6OmxvY2FsQ29v
cgogCiAgICAgICAgICAgICAvLyBUcmFuc2xhdGUgaW4gb3VyIENTUyBwYXJlbnQgY29vcmRpbmF0
ZSBzcGFjZQogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCB3b3JrIGNvcnJlY3Rs
eSB3aXRoIENTUyB0cmFuc2Zvcm1zLgotICAgICAgICAgICAgbG9jYXRpb24gPSByZW5kZXJlci0+
bG9jYWxUb0Fic29sdXRlKGxvY2F0aW9uLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgICAgICBsb2Nh
dGlvbiA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUobG9jYXRpb24sIFVzZVRyYW5zZm9ybXMp
OwogICAgICAgICAgICAgbG9jYXRpb24uc2NhbGUoem9vbUZhY3Rvciwgem9vbUZhY3Rvcik7CiAK
ICAgICAgICAgICAgIC8vIEJlIGNhcmVmdWwgaGVyZSEgbG9jYWxUb0JvcmRlckJveFRyYW5zZm9y
bSgpIGluY2x1ZGVkIHRoZSB4L3kgb2Zmc2V0IGNvbWluZyBmcm9tIHRoZSB2aWV3Qm94VG9WaWV3
VHJhbnNmb3JtKCksCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTMw
NjYyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNCBAQAorMjAxMi0xMC0wOCAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW1N1YiBwaXhlbCBsYXlvdXRdIEZhc3QtcGF0aCBpZnJhbWUg
c2Nyb2xsaW5nIGNhbiBwaWNrcyB1cCBhbiBleHRyYSBwaXhlbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1NzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZyBhbGwgY29vcmRpbmF0ZS1z
d2l0Y2hpbmcgZnVuY3Rpb25hbGl0eSB0byB1c2UgYSBzaW5nbGUgIm1vZGUiIGZsYWcKKyAgICAg
ICAgYXMgb3Bwb3NlZCB0byBoYXZpbmcgYSBidW5jaCBvZiBib29sZWFuIHZhbHVlcy4gVGhpcyBl
bmFibGVzIHRoZSBzYW1lIHNldCBvZgorICAgICAgICBvcHRpb25zIGFjcm9zcyB0aGUgYm9hcmQs
IGFuZCBhIGNvbnNpc3RlbnQgaW50ZXJmYWNlLiBUaGlzIHdhcyBwcmV2aW91c2x5CisgICAgICAg
IGRvbmUgZm9yIG1hcExvY2FsVG9Db250YWluZXIuCisKKyAgICAgICAgVGhlIGltcHRldHVzIGZv
ciB0aGlzIGZvciB0aGlzIHN0ZW1zIGZyb20gdGhlIG9uZSBsb2dpY2FsIGNoYW5nZSBpbiB0aGlz
IHBhdGNoCisgICAgICAgIHdoaWNoIG9ubHkgZWZmZWN0cyBzdWItcGl4ZWwgbGF5b3V0LiBGcmFt
ZVZpZXc6OmNvbnZlcnRUb1JlbmRlcmVyIGFuZAorICAgICAgICBjb252ZXJ0RnJvbVJlbmRlcmVy
IHJldHVybiBJbnRQb2ludCBjb29yZGluYXRlcywgYW5kIG5lZWQgdG8gYWxzbyBzbmFwIHRyYW5z
Zm9ybQorICAgICAgICBvZmZzZXRzIHRvIGRldGVybWluZSBwcm9wZXIgcmVjdHMgZm9yIHNjcm9s
bGluZy4KKworICAgICAgICAqIHNyYy9MaW5rSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y29udmVydFRhcmdldFNwYWNlUXVhZFRvQ29tcG9zaXRlZExheWVyKTogVXBkYXRlZCB0byBu
ZXcgYWJzb2x1dGVUb0xvY2FsCisgICAgICAgIGludGVyZmFjZS4KKwogMjAxMi0xMC0wNyAgQ2Fp
byBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3Jn
PgogCiAgICAgICAgIFJlbmFtZSBmaXJzdC9zZWNvbmQgdG8ga2V5L3ZhbHVlIGluIEhhc2hNYXAg
aXRlcmF0b3JzCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxp
Z2h0LmNwcAkocmV2aXNpb24gMTMwNjU2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
TGlua0hpZ2hsaWdodC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0
aWMgdm9pZCBjb252ZXJ0VGFyZ2V0U3BhY2VRdWFkVG9Db21wCiAKICAgICAgICAgcG9pbnQgPSB0
YXJnZXRSZW5kZXJlci0+ZnJhbWUoKS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KHBvaW50KTsK
ICAgICAgICAgcG9pbnQgPSBjb21wb3NpdGVkUmVuZGVyZXItPmZyYW1lKCktPnZpZXcoKS0+d2lu
ZG93VG9Db250ZW50cyhwb2ludCk7Ci0gICAgICAgIEZsb2F0UG9pbnQgZmxvYXRQb2ludCA9IGNv
bXBvc2l0ZWRSZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBmYWxzZSwgdHJ1ZSk7Cisg
ICAgICAgIEZsb2F0UG9pbnQgZmxvYXRQb2ludCA9IGNvbXBvc2l0ZWRSZW5kZXJlci0+YWJzb2x1
dGVUb0xvY2FsKHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMp
OwogCiAgICAgICAgIHN3aXRjaCAoaSkgewogICAgICAgICBjYXNlIDA6IGNvbXBvc2l0ZWRTcGFj
ZVF1YWQuc2V0UDEoZmxvYXRQb2ludCk7IGJyZWFrOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTMwNjU2
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMTAtMDggIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtTdWIgcGl4ZWwgbGF5b3V0XSBGYXN0LXBhdGggaWZyYW1lIHNjcm9sbGluZyBjYW4g
cGlja3MgdXAgYW4gZXh0cmEgcGl4ZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk4NTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdHMgc2Nyb2xsaW5nIG9mIHN1Yi1waXhlbCBsYXllcnMgb24gc3Vi
LXBpeGVsIHBsYXRmb3JtcyAoQ2hyb21pdW0pLgorCisgICAgICAgICogZmFzdC9zdWItcGl4ZWwv
c3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNv
cHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9s
bC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L2Zhc3QvcmVwYWludC9yZXBhaW50LWFjcm9zcy13cml0aW5nLW1vZGUtYm91bmRhcnktZXhwZWN0
ZWQucG5nOgorICAgICAgICBUaGUgcmVwYWludCByZWN0IHNocmlua3Mgc2FmZWx5IGJ5IG9uZSBw
aXhlbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy1saW9uL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vbWFjLXNub3dsZW9wYXJkL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0LTQuOC9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vd2luLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi14
cC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMTAtMDggIFRvbnkg
Q2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBuZXcgYmFz
ZWxpbmUgZm9yIGZhc3QvdGFibGUvY29sc3Bhbk1pbldpZHRoLXZlcnRpY2FsLmh0bWwuCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Ny
b2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBp
eGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorLmNvbnRhaW5lciB7
CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHBhZGRpbmc6IDEwLjNweDsKKyAgICB6LWlu
ZGV4OiAxOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9yZXBhaW50L3Jlc291cmNlcy9y
ZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNjcmlwdD4KKy8v
IHNyYz0icmVzb3VyY2VzL3N1YmZyYW1lLmh0bWwiCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBzZXR1cElmcmFtZSgpIHsK
KyAgdmFyIHN1YkRvY3VtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNv
bnRlbnRXaW5kb3cuZG9jdW1lbnQ7CisgIHN1YkRvY3VtZW50Lm9wZW4oJ3RleHQvaHRtbCcsICdy
ZXBsYWNlJyk7CisgIHN1YkRvY3VtZW50LndyaXRlKCI8IURPQ1RZUEUgaHRtbD5cbjxodG1sPjxi
b2R5IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyO2hlaWdodDogMTAwMHB4O1wiPjwv
Ym9keT4iKQorICBzdWJEb2N1bWVudC5jbG9zZSgpOworfQorCitmdW5jdGlvbiByZXBhaW50VGVz
dCgpIHsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNvbnRlbnRXaW5kb3cu
c2Nyb2xsVG8oMCwgMTApOworICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0
dXBJZnJhbWUoKTtydW5SZXBhaW50VGVzdCgpIj4KKyAgPHA+VGhlIGlmcmFtZSBiZWxvdyBzaG91
bGQgcmVtYWluIGdyZXkgd2hlbiBzY3JvbGxpbmcuPC9wPgorICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgIDxpZnJhbWUgaWQ9ImlmcmFtZSIgIHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdo
dDogMjAwcHg7Ij48L2lmcmFtZT4KKyAgPC9kaXY+CisgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1w
aXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhl
bC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVs
L3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDUyCisg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg1MgorICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgyMAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgw
LDApIHNpemUgNzg0eDIwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDMxNXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMxNTogIlRoZSBpZnJh
bWUgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLiIKK2xheWVyIGF0ICg4
LDUyKSBzaXplIDMyNXgyMzAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9
IGF0ICg4LDUyKSBzaXplIDMyNXgyMzAKKyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0
ICgxMCwxMCkgc2l6ZSAzMDR4MjA1IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCisgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDI4NXgxMDE2CisgICAgICAgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSAyODV4MjAwCisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDI4NXgxMDE2CisgICAg
ICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDI4NXgxMDE2CisgICAgICAgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyNjl4MTAwMCBbYmdjb2xvcj0jQzBDMEMw
XQorICAgIFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZp
c2lvbiAxMzA2NTYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0zMjQ1LDYgKzMyNDUsMTAgQEAgd2Via2l0Lm9yZy9i
LzkwMjA3IFsgTGludXggRGVidWcgXSBmYXN0Lwogd2Via2l0Lm9yZy9iLzkwMjA3IFsgQW5kcm9p
ZCBdIGZhc3QvZm9ybXMvc2VsZWN0L3NlbGVjdC1zdGF0ZS1yZXN0b3JlLmh0bWwgWyBGYWlsdXJl
IFBhc3MgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvOTAyMDcgWyBXaW4gUmVsZWFzZSBdIGZhc3Qv
Zm9ybXMvc2VsZWN0L3NlbGVjdC1zdGF0ZS1yZXN0b3JlLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQog
CisjIE5lZWQgcmViYXNlbGluZSBhZnRlciBib3RzIGN5Y2xlLgord2Via2l0Lm9yZy9iLzk4NTcx
IFsgV2luIE1hYyBdIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3Jv
bGwuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCit3ZWJraXQub3JnL2IvOTg1NzEgWyBXaW4gTWFjIF0g
ZmFzdC9yZXBhaW50L3JlcGFpbnQtYWNyb3NzLXdyaXRpbmctbW9kZS1ib3VuZGFyeS5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KKwogIyBGbGFreQogd2Via2l0Lm9yZy9iLzkwNDMwIGlu
c3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNlaXZlLXJlc3BvbnNlLWV2ZW50Lmh0bWwgWyBG
YWlsdXJlIFBhc3MgVGltZW91dCBdCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1s
aW9uL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxpb24vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNjU2KQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLWxpb24vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAt
MTIwLDYgKzEyMCw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBm
YXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qv
c3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRt
bAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1w
aXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVs
L3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgVGhpcyBtZWRpYSB0ZXN0IGFsd2F5cyBmYWls
ZWQgb24gTGlvbgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1Rl
c3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNu
b3dsZW9wYXJkL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDY1NikKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTcsNiArMjE3LDcgQEAgZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBz
Lmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRt
bAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10
YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhlbC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zh
c3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogCiAjIEZy
YW1lOjpmaW5kU3RyaW5nIGRvZXMgbm90aGluZyBvbiBwYWdlcyB0aGF0IHByZXZlbnQgc2VsZWN0
aW9uCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2MQpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwkocmV2
aXNpb24gMTMwNjU2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIsNiArMTkyLDcgQEAgZmFzdC9zdWItcGl4ZWwv
dGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1hY2N1bXVs
YXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0aW9uL3NlbGVjdGlvbi1y
ZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhlbC9zbmFwLW5lZ2F0aXZl
LWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1z
Y3JvbGwuaHRtbAogZmFzdC9zdWItcGl4ZWwvem9vbWVkLWltYWdlLXRpbGVzLmh0bWwKIAogIyBm
YXN0L2V2ZW50cy9wYWdlaGlkZS10aW1lb3V0Lmh0bWwsIHBhZ2VzaG93LXBhZ2VoaWRlLW9uLWJh
Y2stY2FjaGVkLXdpdGgtZnJhbWVzLmh0bWwsIGFuZApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDY1NikKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC02OTMsNiAr
NjkzLDcgQEAgZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3Vi
LXBpeGVsL3N1Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4
ZWwvc2VsZWN0aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0
L3N1Yi1waXhlbC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1
Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogZmFzdC9zdWItcGl4ZWwvem9vbWVk
LWltYWdlLXRpbGVzLmh0bWwKIAogIyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRz
IGlzIGltcGxlbWVudGVkIHlldC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9U
ZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQu
OC9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzA2NTYpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzEx
NSw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1w
aXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVs
L3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9z
dWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWIt
cGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1p
bWFnZS10aWxlcy5odG1sCiAKICMgU1ZHIEZvbnRzIGFyZSBvbmx5IHN1cHBvcnRlZCB3aGVuIHVz
aW5nIFFSYXdGb250LCB3aGljaCBpcyBub3QKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
VGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNjU2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMzIzLDYgKzMyMyw3IEBA
IGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9z
dWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVj
dGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4
ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwt
aWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10
aWxlcy5odG1sCiAKICMgVVNFKFY4KQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi13azIvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNjU2KQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luLXdrMi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC05NTQs
NiArOTU0LDcgQEAgZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qv
c3ViLXBpeGVsL3N1Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWIt
cGl4ZWwvc2VsZWN0aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBm
YXN0L3N1Yi1waXhlbC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVs
L3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogZmFzdC9zdWItcGl4ZWwvem9v
bWVkLWltYWdlLXRpbGVzLmh0bWwKIAogIyBIaURQSSB0ZXN0cyByZXF1aXJlIHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgZW5oYW5jZW1lbnRzCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4teHAv
VGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4t
eHAvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNjU2KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luLXhwL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUz
LDcgQEAgZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBp
eGVsL3N1Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwv
c2VsZWN0aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1
Yi1waXhlbC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1w
aXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogZmFzdC9zdWItcGl4ZWwvem9vbWVkLWlt
YWdlLXRpbGVzLmh0bWwKIAogIyBSRUdSRVNTSU9OIChyODM5Mjggb3IgYmVmb3JlKTogU29tZSB0
ZXN0cyBmYWlsaW5nIGFzc2VydGlvbnMgaW4gTWFya1N0YWNrOjppbnRlcm5hbEFwcGVuZCAvIE1h
cmtTdGFjazo6ZHJhaW4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCShyZXZpc2lvbiAxMzA2NTYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTc1Nyw2ICsxNzU3LDcgQEAgZmFzdC9z
dWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhl
bC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0aW9uL3Nl
bGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhlbC9zbmFw
LW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUt
Y29weS1vbi1zY3JvbGwuaHRtbAogZmFzdC9zdWItcGl4ZWwvem9vbWVkLWltYWdlLXRpbGVzLmh0
bWwKIAogIyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRzIGlzIGltcGxlbWVudGVk
IHlldC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlv
bnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVj
dGF0aW9ucwkocmV2aXNpb24gMTMwNjU2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fp
cm8vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjI4NCw2ICsyMjg0LDcgQEAg
ZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3N1
Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0
aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1waXhl
bC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1p
ZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogCiAjIE5vIENPUlMgc3VwcG9ydCBmb3IgbWVkaWEg
ZWxlbWVudHMgaXMgaW1wbGVtZW50ZWQgeWV0LgogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1j
cm9zcy1vcmlnaW4tcmVhZGJhY2suaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDY1NikKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDcg
QEAgZmFzdC9zdWItcGl4ZWwvdGFibGUtcm93cy1uby1nYXBzLmh0bWwKIGZhc3Qvc3ViLXBpeGVs
L3N1Yi1waXhlbC1hY2N1bXVsYXRlcy10by1sYXllcnMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1yZWN0LWluLXN1Yi1waXhlbC10YWJsZS5odG1sCiBmYXN0L3N1Yi1w
aXhlbC9zbmFwLW5lZ2F0aXZlLWxvY2F0aW9uLmh0bWwKK2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhl
bC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAogZmFzdC9zdWItcGl4ZWwvem9vbWVkLWltYWdl
LXRpbGVzLmh0bWwKIAogIyBbV0syXVtXVFJdIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtdGV4dC1u
ZXN0ZWQtdHJhbnNmb3Jtcy5odG1sIGZhaWxzCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9mYXN0L3JlcGFpbnQvcmVwYWludC1hY3Jvc3Mtd3JpdGluZy1tb2RlLWJv
dW5kYXJ5LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtl
ZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgppVkJPUncwS0dn
b0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFB
NE56ZGlNalk0Ck5EUmhPV0ZoTXpGalpXSXpOV0k0WlRRMk9HVTBZalUyWkJubDl0RUFBQ0FBU1VS
QlZIaWM3ZDFaakdQWmZlZjVRMTd1aklWazdGdkcKSHBteFpHVkdWbFpscVZTbFVwWGtrcW9rTHlO
cnVzWitHRDkwTjlDdzBjQjRNRDBXNEVFUGhPbHVqTkF0b05FekQ0TithQU1HM0xEcwpWc3Zkc29T
U0xNc3FsMVZMWmxibG5wR1pzVEhJMkxnRXQrQmxjTHU4ODNBVkxHWnN1WjFNTXNqdkIvVkEzcmk4
L0orc1lNUXZ6am4zCkhOTTc3N3dqQUFBQUlJKzUyZ1VBQUFEVUd3SVdBQUNBWkFRc0FBQUF5UWhZ
QUFBQWtoR3dBQUFBSkNOZ0FRQUFTRWJBQWdBQWtJeUEKQlFBQUlCa0JDd0FBUURJQ0ZnQUFnR1FF
TEFBQUFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQUFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFzQQpBRUF5
QWhZQUFJQmtCQ3dBQUFESkNGZ0FBQUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRaklBRkFBQWdH
UUVMQUFCQU1nSVdBQUNBClpBUXNBQUFBeVFoWUFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQUFnQUFr
SXlBQlFBQUlCa0JDd0FBUURJQ0ZnQUFnR1FFTEFBQUFNa0kKV0FBQUFKSVJzQUFBQUNRallBRUFB
RWhHd0FJQUFKQ01nQVVBQUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNGZ0FBQUNTRWJBQQpB
QUFrSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkFNa3UxQ3poWVBwK3ZkZ2tBZ0FabHM5
bXFYUUtPdlJvTldFSUl2cnVCCng4Zm5CM2hjL0lFUEtSZ2lCQUFBa0l5QUJRQUFJQmtCQ3dBQVFE
SUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFKSVJzQUFBQUNRallBRUEKQUVoR3dBSUFBSkNNZ0FVQUFD
QVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUFBQUFrSTJBQkFBQklSc0FDQUFD
UQpqSUFGQUFBZ0dRRUxBQUJBTWdJV0FBQ0FaQVFzQUFBQXlRaFlBQUFBa2hHd0FBQUFKQ05nQVFB
QVNFYkFBZ0FBa0l5QUJRQUFJQmtCCkN3QUFRREpMdFFzQWdIb3h0L2o0cjIxcWV0SjNUNmNmLzdX
VG93OTFXdDAzRUpDblhnTFdvclNQL2NMbVpyL1A1N0RaOXB3VjNOcnEKOFhnc2l2TDRiL1FRMUd4
MmJtMXRvSzJ0bzdYVmJES1ZqNWQwdmZMcGdWYTN0dHgydTdlaU9hRkV3bXF4K0o3ODV4cGtlWkxm
RUtQOApoZ0NBWTRNaHd2dHN4T00zQW9IdGJGWUlvZXY2alVBZ1h5d0tJWFp5dVEvdTNsM2QyaXFm
ZVdkdExaeE1Tbm5UcmUzdGUrdnJvVVRpCjRzTENSL1B6RHB2TjdYQnN4dU0vdjNrekVJbXNiVzJ0
YlcxOVBELy80YjE3dXE0ZmNaM2cxdFluUzB1VlI5Ymk4WS91M2ROS0plTnAKTEowdWFKcVVtZ0VB
d0JIcXBRZExCcTFVdXJLODNPM3hyRzV0UlZPcGZMRVlUcVZ5aGNMNTBkR0ZVTWpYMUJSTHAzZnll
ZVBrU0NvVgpTYVU4YnJmTjhxVC9ocGxjN25vZzhNV3BxUmRHUjAyNzNWVEpUQ2ExczlQcWRodFBk
L0o1eFd3dTZicXllOEpPUGgrTVJpdXZrODVtCjdSYkx2ZlgxOHBHRXFqcHN0c1hOVGVQcDdiVTFx
Nko4K2ZScHU5WDZoRFVEQUlBakVMQitSZGYxeTR1TDB3TURneDBka1ZScVlYUHoKd3ZpNE1Tb1hU
NmRqNmZUcjA5T2haSEl0RmpOaTBLVEU5emFaN0ZacmUwdEw1YkdpcGptczFsYVh5M2hxVVJTdjI2
MllQK3R4ZE5wcwpJMTFkbFMrSnBkTXRUbWZsd1hRMmF6S1p5a2VNQjA5N2xMTVd4RlYxS1JSYWlV
UytjZUZDdFdzQm5wUS9FdW56ZXEzNy9wWmJpOFU2ClcxcjJIejkyNnI2QmFFd01FUW9oaEs3cjY3
SFlaRi9mWUVlSEVLS2pwU1dWeWF6SFlrS0lkRGFieUdSZW5aeTBLRXF2MXh0T0pzT3AKbE54M0ww
K3RLbXJhbGVWbFl4UXZrOHMxTzUxSHY5Q2lLTWJKRmtXeEtNcVpvYUhSN202TG9wak41b3NMQzZt
ZG5jbisvbE85dmNZUgo0NXhHU0ZkQ2lQZm41aFkyTng5K1BEU2R6UzVzYnI0L04vZjlqejU2cW9V
Qmp5cVNTbDFaWGw2THg0Mm50NExCUXJFb2hGQ3oyVi9lCnZWdjU0MmcrR28yb2FuV3FmQUoxMzBB
MExQNHlFRUlJazhuVTE5WW1oTWprY3BsY1RnaHhkbmhZTVptaXFaUXVSTFBERWR2ZU5zNGMKNnV4
YzJOaG9iMjZ1N0V4NmNvVmk4WFl3bUMwVUVwbk12ZlgxNllHQmNDclY3L01kZUhJOG5TN1BaTGRi
TEg4L045ZlYyanJaMysvYwpuWmkvc0xtNUhvKzNOVGU3N0hZaGhFaW5id1lDSjN0NzkvUjQxYkcz
Wm1mLzY4Y2ZQL3o1SDl5N1Z5cVZrcG5NMHlzSmVBeUZZdkhpCndrS2Z6eGRQcDlQWmJLRllqS3Vx
RUdKNllNQWZpWFEwTjYvRll2SGR6QkZKcFlMSjVCdkg2bWFJdW04Z0doa0I2ejRXUlNucHVoREMK
SkVSSjF3dWE5ZzkzN254dVlzS3hPMmtwb2FwcU5wc3ZGSnhHZHBIQlpESlpMWmFwZ1lIeWtYQXl1
YjJ6WTNTbkdjd21VN2svWmprYwp0bHV0Um5neW04MHZqbzE5UEQ4LzF0TmpWUlFoUkRxYnZSME12
and4MGJJN3ZHak1mRytvZVZmV1IreW9lL081NTRxYTl2MUh5V1RBCk0zRFY3NS91N3gvcTdJeWtV
djV3K0lXeE1lTjRRbFV6dWR6ck16TnJzVmdrbFRvN05DU0VFRjV2RlV0OVBIWGZRRFF5QXRaOWJC
WkwKWjJ0citXbXVVQkJDdERVMXVSME80MGdnR25YYjdSTFQxWDZCYU5RZmlYeHhlcnB5T0svSjRW
Z0toWEtGUXFGWTNFd21NL244SzZkTwpHVjl5MmUydno4d1lqN1A1L0tYRnhkZW1wa0xKWkdkcnEw
VlJGalkzazVuTXI1MCsvVlJycmdNTk1uaUtZeVNTU2swUERCaC9TblcwCnRGejErOFBKWkdkcmE2
RllWSE01STR2MCtYeFgvZjVlcjdmeUI5ZHhVZmNOUklNallOM244dUxpYUZkWGVmS1RzY0NCVmlv
VmQzdVAKQ3ByMmhMK0pDNXEydmJOejROcFUrV0x4RjdkdW5UNXg0Z3VUZStmUVQvWDFPYXpXblh5
K3llRVk3dXpzOW5wMVhWOE1oYnh1ZDF0egpzM0ZPS3BNSmJtMTlmbUxDWnJXMnVGeWZMaTk3WEs0
NzYrdXZUMDhmbmE0U3Fyb2NEdnNqa2Jkblp5OHZMbTRrRW5hTFplYkVpZUhPClR1T0VYS0Z3SXhC
WWk4VnloWUtpS08zTnpiTkRReTB1VjF4VmwwT2hsV2owTjgrZnY3eTBGSWhHKzN5K3owMU1ISGEr
Y2JXbFVHaHUKYlMyVHk3VTNONzh3TnRia2NBZ2hIdlZTRDZ6Wm9KVktWLzErZnlSaXQxaGVHaC9m
Y3ljQlVNczZXbHFFRUpsY1RqWG1MUXdOQ1NFaQpxWlFRd21heFJIWW5KdzExZFBnamtlT1lQK3Er
Z1dod0JLejdyTVppaXRuY3ROdGZaZVNxNE5aV2VTMkcxTTZPZTE5WWlhUlNpWWVlCmVybVpTR3dt
RXArYm1PaHZheXNmTEJTTE40UEJvcWExT0oxYjI5czkrM3JDYlZicnFiNitlK3ZyUFY1dk9mOE50
TFc5ZS9YcXpJa1QKbzExZEJVMHptODNUdStPTWl0bmM2bkpkRHdSR3U3ckszVytIK2NYdDIwWmYz
ZUxtNXZuUjBaMTgvcjNidHk4dUxEaXQxbTZ2VndqeAozdHhjUEoxK1kyYkcxOVMwRkFwOXVyejh3
YjE3WHoxNzl1OXYzODRXQ2tLSWhWRG85SWtUK1dJeHRiTnp4UGxDaUx2cjYxZjkvck5EClE2TmRY
VmY4L2g5OStxbFJyVlZSSHVsU0Q2elpNTCt4TVRNdzBObmErc0hkdTU4c0wzL2x6Sm1IL044RTFB
aXJvdXhaQU84WHQyOS8KY1dxcS9GVE41ZFJzVnMxbTNjKzhOaW5xdm9Gb1dBU3MreFNLeGRIdTdw
YmRCSk1yRks0SEFrTWRIZVdNMHUzeDdKL2YwOTdjN0hVLwo3R2ZmNkdLcG5DTnZFc0ptc2N6c1px
TkNzWGg3ZFZYb2VqcVhhNm9JYzJvK3Z4UUtSYmUzWHo1NTBqaGl0MXBmbTVveTVtWmw4L2x5CjhD
cHEybFcvMzZvb3YvWENDM2ZXMW41eTllckozdDdCam83REp1YS9kZmJzWDEyNkpJU1k3TzgzbVV4
MnEvWDBpUk9YRmhmdnJLOGIKWVVYWDlXYUh3L2h6YzdTNys5UGxaU1A5Zk8zY09XUGVVbGRycTlO
bUs0OWFIbmErRUdKdWRWVUlNZGJkclpqTnB3Y0dsa0toanBhVwpOMlpteWxPZ0h2SlNENnpaTU43
VG81ak5mVjZ2RUNMRkhIWWNROWI3NXkwSUlVeENWQjZKcGxKTmRydmI0WGlpZlFLcXArNGJpSVpG
CndQcE1ybEFvNmJwcjN5WTVsWnFkVG1Oc2JxU3pzN3dvcU1sa2VzSnh3OHBOY0t3V3kxUi92eERD
SHc0UFZReDRmVFEvUDlUUmNXRjgKdlBLRkhyZGJDTEVSanhzSlQ5ZjFsV2cwb2FvVHZiMUdUSndl
R09qeitUNVpYcjdxOS9kNHZUMWViMXRUMDU0RklNcnozOHN0TXJyUQp0blovbkJrZFAvbGkwUitK
TElkQ3hodUppbmxMNWZXNmpqN2ZlRW11V0N4cW1tSTJHOHZiYk8vc1BNYWxIbGl6d2NpVVpyTlpD
RkU2CmNoMThvRGI5OHU3ZGlaNmVqc05IdCtPcSt2Qi80TldndW04Z0doWUI2elBKVE1haUtQTWJH
OFpUWFloQU5DcUVXQWlGYkJYNUtaUFAKTDJ4dWFwbzIwZHNyNjYxTkZldXpwN1BaWm9mRFliTTFP
Unhyc1ZpZnp5ZUVpS2ZURy9INFcyZlBIdmp5MVZpc282VmxhM3Q3WVhQVAo0M2FmR1J3MFZXeGM2
SEc3dnpRejg5TnIxNUtxdWg2UHYzcnExQU5YMkRMdW1penQ3ckdqbFVvM0FvR0Z6YzFlci9lRnNi
Ry91WDc5CjZKY2ZjZjdzOFBBSGQrL2VDQVRPRGcwdGg4TW1JYzRmZWRQMXc3LzFucHFCK3JBZWkx
bk01bERGeGx5NnJ0OE1Cc3RQMDduY3NjNGYKZGQ5QU5Dd0MxbWRNSnROWVY5ZGtmNy94OVByS2lq
RUhhK3orYVV5aFJDSVFqVXBKVjBWTjI4NW10OUxwYktIdzRiMTdUcHV0cTdXMQoyK014NGxGN1M4
c25TMHR1dTczRjZieTRzSEIrWkdUL0Z0UkNpRWdxWlJMQ1pESzFOVGRIVXFtRmpZMzlJYU5ZS3NW
VmRhS241OHpRCjBBTTNqUlpDR01PTzVkbG1seGNYL1pISXVlSGg4WjZlaDJuWEVlZjNlcjBqWFYz
SlRPWUhGeSsyT0oxZm1KenNQdkxXNjRkLzZ6MDEKQTNYalpHK3ZweUpoeksydXpsU3M2akxTMmZt
bzY1TFVtcnB2SUJvVEFlc3pIUzB0NVc1cWZ6Z2NqRVpmbTVyNjhaVXJlMDdMYTVxcwpUN3VheS8z
aTFxMG1oOE5tc2J3NE5yWi9qdFNad2NIMzUrYk1abk4vVzl0QWUvdUJGN2tWREk1MGRaWEh3bHdP
UnpramZsWnpzWGg3CmRYV3lyKy9vZEpVdkZvM3AvTWI5TzMyNzAvQ0RXMXRpZDZlZEErbTZYdGxu
ZHNUNTExZFd4cnE3OTR3RFB0NmxqcWo1c0YyeDkxd2MKcUhGcU5xdnZ6Z1E0akxITWdUOFNHWHBR
ejNRTnF2c0dvcEVSc0E2d0hBNHZoa0pmT24zNndEMndNcm1jckRXbFdsMnV0MmRudzhuawpqVURn
d0Jub1pwUEpZYk5GVTZrV3AxTXJsZmFmNHcrSFE4bGtlWlROYkRLSncyY2FQYkR2NnZyS3lwbkJ3
V3loY00zdmQ5bHNrMzE5CnhuR0gxYXJtY3Y1d2VLQzlmU2tVTWc1bWNybmJxNnZHNDBLeGFLdFl5
UFN3OC8yUnlFSW9kS2RpTzJyakgrSEZzYkZ5SkhyNFN4MVIKYzJ4M0psWkNWVDF1ZC9rZXo3aXFI
cmhBaHE3cjZXeldlTHk5czlQa2NKRERVQXZVWE01aU5sZU9sMFdTeWRMOUkyaENDRFdiOVVjaQpZ
bUJnNkxndHhWbjNEVVFqVTJaMjE2aXNLWnFtUFZvZjBlNCtWbytqWXR5dFZDcGREd1R5eGVLRjhY
R3J4VklxbGViVzFpWjZlb3crCmtxM3RiVjNYNzY2dmU5enUvU3NwUEI2TG9xUXltVkF5T2JGdkND
eWhxbGY4L3JIdTd1Y0dCLzNoOExXVkZadkY0bkc1OXN5dnVyTzIKZHJLMzEraFVpNnRxTEozZTM5
OVQxTFE3Nit1bit2b09tNHgvS3hnVVFrejA5THgvNTg3OHhrWmJjL1BuVDU0c2owaTJ1RnpoWkhJ
dApGa3RuczVOOWZlbHNWczFtVTVsTVlHdkxPR0V4Rktyc05qdnMvSW5lM2hhSEk1Uk1Wdll3NVFx
RlVDSnhkemQxUGZ5bEZqWTNENnY1Cmg1OThVcjdhek1EQWY3dDgyWGk2RkFwVkRqMlUvY1dISDg1
dmJocVA1emMzYjkwL1FpRlRQdi80cnoxazY2U0RNYUpTRlZFNVA0aksKQ3BwbTNHTGMyZHJhMmRv
YVNhWGltVXl1VUhoOVpzWTRZdnhuczFqOGtjZ3J4bkxuajZmajRiNjc2cjZCUWdnaE5FMG9ERXJp
aWRHRAo5Wmw0T3IyVlRvOTJkVFhkdjNCVU9kQms4L21mM2JoaE5wbk9EQTdLZmVzOVExcVpYQzY0
dFdWVmxKY21Kb3h1cDgrZk9yVWNEbC8xCisyOEZneWQ3ZTRjcUppWG91aDVOcGNvRGlHb3VkL3Yr
UC82RUVJVlNhZis3N0RmVTJUbDAvMEtkaG02UDV6Zk9ueTgvTGEraGNKakQKenRkMVBaNU92ejQ5
WFY0Y3RhaHBtNG5FUi9Qejc3ejg4aU5kNnVpYTkxenRzSXMvL0FsQVZYamM3dkx3bVQ4Y1hvdkYz
cGllTmhZbwoyZU9ZVGdPdit3YWlrUkd3ZnFXazZ4NjMyM3YvK0pIWmJEYld3RFNlOXJXMXZUbzU2
WFc3blVjdTVmQ29yQlpMZWRHQmJENmZ5ZWVGCkVDZjNUYUlmN3V6czlYcHZCWVBHZUdLNW0rcVZV
NmZhZHN2MnV0MG4ydHVuOXZXK2FLVlNRbFVQSFBGOGxqNWRYcDZxMkpSYUNHRlIKbEJhWDY3QnRy
UUVZL09Id3ZZMk4xNmVuRC93VVIxTXBXN1UvM1UrbzdodUlCc1MzN0s4Y09EL0piREw5OW9VTGxV
Tnl2VTloQmtDMwp4OU8xdTZxZXcyWTc4RlpCZzkxcVBUY3ljblo0dUxMYXlzRktYMVBUZ1hPTUZM
UDV0WXFWa2ZkSTdxN0FhY3hZZXRUNkg5NTZMSllyCkZDWjZlMXRkTG92WlhOQzBjRElaaUVhUFhx
bmhRTStzWnFDNkNzWGlyZFZWbDkzKzVrSDdFQ1JVMWFvbzRWVHErSDRLNnI2QmFGZ0UKckFkNE5w
T2RIK2xkSG1hZGhVZnk3dFdyeG9PZlhMdjJWQWZMdnZ6Y2MzZlcxajZlbjFkek9iUEoxT0owRHJh
M1h4Z2ZQMnlKK1NNOApzNXFCS29xa1VwRmtjcUtueDNYSWpUVnFMdmNQZCs1WUZlV0YwVkZSTEQ3
ajhwNWMzVGNRall5QWhXYzNBOGxwczgwT0Q4OE9Eei81CnBRaFZxSHVGWXJGeTdaZ0Q5Zmw4Yjh6
TWVGd3VxOFZ5N0hhU3Fmc0dvc0hWUzhCNjlERW1vQW9PWDlBTDJPT3dTWlAvNCtjK1YvbjAKNklC
U3krcStnV2h3anp3MEF3QUFnS01Sc0FBQUFDUWpZQUhBOFZiZXF3QkE3YWlYT1ZnQVVJK01UVGFQ
b0dhekh5OHN6QXdNVExPTgpERkJMQ0ZnQVVMdXNpcEkvY25rQ2w5MysrdlIwazhNaENvVm5WaFdB
QnlKZ0FVRHRlb1FGTmdsWVFDMWhEaFlBQUlCa0JDd0FBQURKCkNGZ0FnRnBYS0JZVDJXeTFxd0Fl
QVhPd0FBQlZzQmFMUGZ3Q0UzRlZUYVRUczcyOWZTenNqbU9DZ0FVQXFJSStuNi9QNTN1RUY3QVgK
SVk0VmhnZ0JBQUFrSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTEFPckJwZFZWZnp4ZTdTb0Ev
QXAzRVFKQXpVbW82bW9zOWtndgpjVnF0Nlh5K29HbFdSWGxLVlFGNGVBUXNBS2c1SHJmN0VYWWhO
TENLQVZCTEdDSUVBQUNRaklBRkFBQWdHUUVMQUk2QlRDNTNhV0ZoCi85NHloV0t4S3ZWSVYvY05S
S05oRGhZQTFDZzFtMTJMeDkxMisxb3NGbGZWUHAvUFpyR0VrOGxid2VCRWI2L05ZaEZDTElmRFFv
Z1gKeDhhcVhlempxUHNHb3BFUnNBQ2dScW01M00xQTROWEp5Y3A0a2M1bTFWek9xaWk2cmdzaEVx
cnF0dHNMeGFLMWVuVSt0cnB2SUJvWgpBUXNBYXBldnFhbWpwYVh5U0VIVG1oeU96dFpXNDZuTll2
RzYzVmJMY2YxaFh2Y05STU5pRGhZQTFMcENzWGpWN3pkbUl5VlYxVzIzClY3c2l5ZXErZ1doQUJD
d0FxRjNwYlBabU1IZ3pHSXlsMC9jMk5vUVFxL0g0bmk2ZnNrUTIrMnlyazZEdUc0aUdWUytkcm91
TGovL2EKcHFiS1p3dWJtLzArbjhObTIzTldjR3VyeCtPeFBPVWxrdFZzZG01dGJhQ3RyYU8xMVd3
eWxZK1hkTDN5NllGV3Q3YmNkcnUzb2ptaApSTUpxc2ZqdWJ5Q3E2VW1XZ2h3ZGxWY0hqbzBtaDJO
bVlLRDhkQzBXS3hRS1E1MmRsZWZrTmMxNDRJL0Z4dHZiM2Z0K2ZOV3l1bThnCkdsYTlCQ3hKTnVM
eEc0RkFxOHZsc05sMFhiOFpESjdzN2JWWkxEdTUzQWQzNzE0WUd5dC83TytzcmZtYW1zcXpCSjdF
MXZiMjF2WjIKcTh1MUVvMXU3K3gwZVR4dWgyTXpIcit6dmo3VzFhV1l6VUtJd05hV0VPS2w4WEhU
NFRFcnVMV2xack5mZnU2NThwRzFlSHd6SHYvSwoyYlBHUldMcGRMUFR5VFlhd0RHVlVOVzFXT3pO
TTJjcUQzYTJ0TnhaWDQrbjAwTFR3cXFxRmdxZkh4eXNWb1ZQcU80YmlJWkN3UHFNClZpcGRXVjd1
OW5oV3Q3YWlxVlMrV0F5blVybEM0ZnpvNkVJbzVHdHFpcVhUTy9tOGNYSWtsWXFrVWg2MzIvWW9V
eStUbVV5cnk3WG4KWUNhWHV4NElmSEZxNm9YUjBYSitTbVl5cVoyZDF0MjlNbmJ5ZWNWc0x1bTZz
bnZDVGo0ZmpFWXJyNVBPWnUwV3k3MzE5ZktSaEtvNgpiTGJGelUzajZlMjFOYXVpZlBuMGFidVYy
M0dBNDZSUUxQN3k3dDNwZ1lIOXF4V005L1JZTEpaOHNTankrWW4yOXM3ajJXTmQ5dzFFCkF5Smcv
WXF1NjVjWEY2Y0hCZ1k3T2lLcDFNTG01b1h4Y1dOVUxwNU94OUxwMTZlblE4bmtXaXhteEtESmZT
OWZqY1dNbTRvUGt5MFUKcml3dm4rcnRQVE0wZE44WFRDYTcxZHArLzV5RG9xWTVyTlp5R3JNb2l0
ZnROanFpREU2YmJhU3JxL0lsc1hTNnhlbXNQSmpPWmswbQpVL21JOGVCcGozTFdncmlxTG9WQ0s1
SElOeTVjcUhZdHdCTXhwaWdWaXNXU3JpZFVkZi9rSkt2Rk10SFRjMjlqbzlQcDlEZ2NWU255ClNk
UjlBOUd3Q0ZoQ0NLSHIrbm9zTnRuWDErSnlDU0U2V2xvK1hWcGFqOFg2MjlyUzJXd2lrM2wxY3RK
c012VjZ2VmVXbDhPcFZOZSsKa1VHVHlkVGUzS3lWU2tlL1VhL1hxK3diNHlzL0wycmFqVUJnNXNR
SnE2SmtjcmxtcC9Qb3Exa1VaU2VmdHlxS2tabk9EQTJaVFNhTApvcFIwL2FONzkwNzE5VTMyOXd0
ZE40NDhjQXBYUFhsL2JxN2MxL2d3TmhPSnEzNS9hbWZIYmJOTjlQYU85L1E4dmRxQVIxSTVSYWxR
CkxONEtCblVoMUd6V1hSRTExR3pXSDRrTWU3MHZWa3htT2k3cXZvRm9XQVFzSVlRd21VeDliVzFD
aUV3dWw4bmxoQkJuaDRjVmt5bWEKU3VsQ05Ec2NzZTF0NDh5aHpzNkZqWTMyNXViS3ppU0Q4d25t
WFJhS3hkdkJZTFpRU0dReTk5Ylhwd2NHd3FsVXY4OTM0TW54ZExvOAprOTF1c2Z6OTNGeFhhK3Rr
ZjMrNWdJWE56ZlY0dksyNTJXWGM2cHhPM3d3RVR2YjI3dW54cW1OdnpjNysxNDgvZnNpVDQ2cjY5
M056ClJ1OWpPcGY3ZEhtNXFHbVQvZjFQczBEZ2NWZ3RsdW1CQVNIRVdpeldWL0h6NGRMQ3draG41
d3ZkM2RVclRZNjZieUFhQ3NzMDNNZm8KN0NucHVrbUlrcTduaXNXZjM3eVp5ZWVOZzBZUGRqcWJ6
UmNLRXQvVVpESlpMWmFwZ1lGekl5TnZ6TXhNRHd5RWs4bnRuWjNCam83eQpPV2FUcWJCN0g4MXlP
R3lrUUNHRTJXeCtjV3hzTTVFb2Z6V2R6ZDRPQmwrZW1PanorYnh1dDlmdFhncUZoQkFOTmUvcWtT
YnkzMWxiCmUzNTQrSnN2dmZUcnp6L2Y2L1VLSWU1dWJEeTEwb0RIbE1ubElxbVVzVktVMjI2UHBG
TEc4VWdxdFJxTG5kMHo4ZUFZcXZzR290SFEKZzNVZm04VlNlV05ncmxBUVFyUTFOWlU3cXdQUnFO
dHVkejdOUmZBQzBhZy9Fdm5pOUhUbFpLa21oMk1wRk1vVkNvVmljVE9aek9UegpyNXc2Wlh6Slpi
ZS9Qak5qUE03bTg1Y1dGMStibWdvbGs1MnRyUlpGV2RqY1RHWXl2M2I2OUZPdCtWanp1dDJqM2Qx
Q0NKZmRmbUY4Ci9BY1hMejV3cUJkNEJpS3BWQ0tUU1dlekZ4Y1czSGE3eCtVeU90cUZFQjYzKzZy
ZmIxVVV0OTEreGU5L2NXenNPQzUwWHZjTlJJUGoKVy9ZK2x4Y1hSN3U2eXBPZmpGKzBXcWxVM08w
ZkttamEwNXNrbmk4V2YzSHIxdWtUSjc0d3VXY092WmpxNjNOWXJUdjVmSlBETWR6WgoyZTMxNnJx
K0dBcDUzZTYyNW1iam5GUW1FOXphK3Z6RWhNMXFiWEc1UGwxZTlyaGNkOWJYWDUrZVBqcGRKVlIx
T1J6MlJ5SnZ6ODVlClhsemNTQ1RzRnN2TWlSUER1MnRTNUFxRkc0SEFXaXlXS3hRVVJXbHZicDRk
R21weHVlS3F1aHdLclVTanYzbisvT1dscFVBMDJ1ZnoKZlc1aTRyRHpqYXN0aFVKemEydVpYSzY5
dWZtRnNiRW1oME1JOGFpWGVtRE5CcTFVdXVyMyt5TVJ1OFh5MHZoNCswR3JGNTdxNnlzLwpOdTdp
Yk4vOUp3V3FKYUdxNzgvTmVkMXVtOFV5T3pTMFAxNmNIUnI2eGExYkZrVVo2dWpvTzJRNlFTMnIr
d1lDeXN4dTUwZE4wVFR0CjBWSk1QUDc0YjFZeGQrcmk0cUlRSXBQTEpWUTFvYXJ4ZERxVVREcXMx
dTJkSGVQSVpqTFo0blIyZVR5UC8zYjdiTy9zQktKUlRkZEQKeWFSaU5tdWwwdjdsdFJSRmFXOXAy
ZDdaTWRZZ1ZjeG1rOG5rdHR0L2Z2T21zWlJvUWROS3V0N2YxcVlvaWhEQ2JES3B1ZHlOUUdDbwpv
Mk9ndmYySTFiT0VFTzlldXhaT0pyVlN5YW9vTXlkT25HaHY5MGNpSzlGb2UxTlRrOU1waFBqNXJW
dnI4ZmdYcHFhZUh4bXhXU3p6Cm01dVJWR3FzdS91bjE2NkZVeW10VkxKYnJlTTlQZHM3Tytsc2Rx
eTcrN0R6aFJCMzE5Yy9YVjZlNnU5LytlVEptS3BlWEZpNEZRemUKV1Z0YjNkcDZwRXM5c09aYndh
QVF3cW9vSjN0N1BXNzNVaWdVVjlXeEI4M2hpS1JTSzVISTdQRHdBKzh3ZUV5UE12VityMGY2SFZQ
Lwp0NHJXcEtpY0gwUkNDSWZOTnRiZDNleDB4dExwMFlPK2J3dkY0bVlpa1ZCVnA4M1cxdFNrbU0x
UDlOM1Y4WERmWFhYZlFDR0VFSm9tCmxBYTQyeHBQR3oxWTl5a1VpNlBkM1MyN3YxeHpoY0wxUUdD
b282TThSTmp0OFVoZnFOTWtoTTFpcWJ5UDV2YnFxdEQxZEM3WFZOSHoKcE9ielM2RlFkSHY3NVpN
bmpTTjJxL1cxcVNsajlsVTJueTluZ3FLbUdiM3J2L1hDQzNmVzFuNXk5ZXJKM3Q3QmpvNzlFL01O
YjUwOQorMWVYTGdraEp2djdUU2FUM1dvOWZlTEVwY1hGTyt2cjNWNnZFRUxYOVdhSHc3aDllclM3
KzlQbDVkVE9qaERpYStmT2ZmL2pqNFVRClhhMnRUcHV0UEdwNTJQbENpTG5WVlNIRVdIZTNZamFm
SGhoWUNvVTZXbHJlbUprcGF0b2pYZXFCTlJ2R2Uzb1VzN25QNnhWQ3BES1oKQi82L1dBNkhlenll
M29vckFOVnl4S0JZSkpYeWg4T3p3OE5XUmJuaTkvL3drMC9PRFE4UDdWdGpyOGJWZlFQUjRBaFlu
OGtWQ2lWZApkeDE1TTJDejAybU16WTEwZGg3ZExmUklLaTlrdFZpbSt2dUZFUDV3dUhLL2lJL201
NGM2T2k2TWoxZSswT04yQ3lFMjRuR3YyeTJFCjBIVjlKUnBOcU9wRWI2OFJFNmNIQnZwOHZrK1ds
Ni82L1QxZWI0L1gyOWJVdEtkN3Bqei92ZHlpSHE5WENMRzF1Ni9MVjg2Y0VVTGsKaTBWL0pMSWND
aGx2SkNxVzFOcXpldXBoNXhzdnlSV0xSVTFUekdiangrdjJ6czVqWE9xQk5SdU1UR2sybTRVUXBT
TlhLUk5DSkRPWgpTQ3IxWnNWUytFQ3RTYWpxL01aR3I4LzN3dTZDbkMrT2pmWDVmQmNYRm02YXpj
TmU3MFI3KzdIZXJhSHVHNGpHUWNENlRES1RzU2pLCi9PNGRaTG9RZ1doVUNMRVFDdGtxUHMrWmZI
NWhjMVBUdEluZVhsbHZiYXBZbnoyZHpUWTdIQTZicmNuaEtOK3JIRStuTitMeHQ4NmUKUGZEbHE3
RllSMHZMMXZiMnd1YW14KzArTXpoWUdmNDhidmVYWm1aK2V1MWFVbFhYNC9GWFQ1MTY0UGlYdzJv
VlFwUjI1M3BycGRLTgpRR0JoYzdQWDYzMWhiT3h2cmw4Lyt1VkhuRDg3UFB6QjNiczNBb0d6UTBQ
TDRiQkppUE5IYnJIMzhHKzlwK1pIcGV2NmxlWGxWMDZkCjJyOE5KVkF0bFJ0RlJGS3B1S3JhRk9Y
c3ZobExmVDdmMTgrZHU3ZXljamNhZGR0c1E4ZW5DN2J1RzRoR1JzRDZqTWxrR3V2cUtpK0EKZEgx
bHhaamJQdGJWVmJua1hTaVJDRVNqVXRKVlVkTzJzOW10ZERwYktIeDQ3NTdUWnV0cWJlMzJlSDQx
MWJxbDVaT2xKYmZkM3VKMApYbHhZT0Q4eWN1RHYva2dxWlJMQ1pESzFOVGRIVXFtRmpZMzlJYU5Z
S3NWVmRhS254MWlNOUlHRkdjT083dDBCeXN1TGkvNUk1Tnp3CjhFT3V3SG5FK2IxZTcwaFhWektU
K2NIRml5MU81eGNtSjd1UC9GbjU4Rys5cCtaSGRYdDFkYUtucDd3eGRyNVFzRFhTd2hhb1RSNjMK
KzR2VDA4YmpqcGFXL2F1Y2wxa3RsdW11cnVuanR0WmQzVGNRall5QTlabktqN2MvSEE1R282OU5U
ZjM0eXBVOXArVTFUVllIdFpyTAovZUxXclNhSHcyYXh2RGcydG4rTzFKbkJ3ZmZuNXN4bWMzOWIy
MEI3KzRFWHVSVU1qdXp1Q1cwMm0xME94LzVGTXZQRjR1M1YxY20rCnZxUFRWYjVZTlA2Z05GYWdL
ZDh5SGR6YUVyczdzYmx2cGdBQUhrWkpSRUZVN1J4STEvWEtQck1qenIrK3NqTFczYjEvUThiSHVO
UVIKTlIrMlo5R2VpNWV0eDJKT202M1g1eE5DYUtYUy9NYkdVamo4OXV6c1lXOEtQSHYrY05qamRu
dDI5eWNWUWtSU0thdWlWQjQ1MXVxKwpnV2cwQkt3RExJZkRpNkhRbDA2ZlBuQU9aaWFYZThJMXBT
NHVMSFMydGc1MWRMUzZYRy9Qem9hVHlSdUJ3SUV6ME0wbWs4Tm1pNlpTCkxVNm5WaXJ0UDhjZkRv
ZVN5ZklvbTlsa0VvZlBOSHBnMzlYMWxaVXpnNFBaUXVHYTMrK3kyU1ozMXk5d1dLMXFMdWNQaHdm
YTI0MWwKUzRVUW1WenU5dXFxOGJoUUxGYjI5eHgydmo4U1dRaUY3bFJzUnkyRWFIVzVYaHdiSzBl
aWg3L1VFVFhIZG1kaUpWVFY0M1luVk5WNApHbGRWMzc2ZFlwT1p6SWZ6ODBWTnU3UzRXRDdJYmpt
b05mNUlKTGV4WWN4S05FU1N5V0FzVmo0U1VWV1B3M0Y4NXlmVmZRUFJhQWhZCjl5bVZTamVDUVpN
UWI4ek1tRTJtOHZKWGhxM3RiWWZWV3A1UmJzamtjdjV3K0pIZXhhb284WFM2eitlektvb3hXZnZB
VEpSUTFkdXIKcTJQZDNTK01qbjQ4UC8ralR6ODlmZUxFVUVkSFpSL01VR2ZuNWFXbGN2QXltVXdI
THBKcHhKY0h6UEVXb3IyNStVZFhyaFExcmR2agpPVGM4WEo0ZWNYNTA5T0xDd2hXL1A1eEt6UTRO
UmJlM04rSnhZL1VwNDRTLy92VFR5bTJWRHp2LzdQQ3czV0s1NHZkWEZwbk1aRDY0CmUxZmRYWnYr
NFM5MUl4QTRyT2FmM2JoaHZQd24xNjY5OC9MTFA3bDJ6WGo2TjlldnYvUHl5M3RhL2Q3dDIzditS
d3NodXFXdXhBRTgKcW9TcXJzVmlsVWZTMmF6YjRURFdIekdFVXltYnhWSStjbTk5M1cyenZUNHlj
aXdpU04wM0VDQmdmU2FlVG0rbDA2TmRYVTMzYjloZQpEalRaZlA1bk4yNllUYVl6ZzRQbHI3cnM5
cWtuM245MHo1QldKcGNMYm0xWkZlV2xpUW1qMituenAwNHRoOE5YL2Y1YndlREozdDZoCnpzN3lq
eGhkMTZPcFZIa0FVYzNsYmxmOGhESVVTcVg5NzdMZlVHZm4wUDBMZFJxNlBaN2ZPSCsrL0xTOGhz
SmhEanRmMS9WNE92MzYKOUhSNWNkU2lwbTBtRWgvTnorL1BQUS81MWdmV3ZPZHFoMTNjVUhsOW9F
YnNHU3dUUWlSVTFldDJWLzYwTVFXRFFvanlrZWxqTmZXNwo3aHNJRUxCK3BhVHJIcmZiZS8vNGtk
bHNWc3ptY3BUcGEydDdkWExTNjNZL3liN08rMWt0bHZLaUE5bDhQcFBQQ3lGTzdwdEVQOXpaCjJl
djEzZ29HamZIRThyU2tWMDZkYXRzdDIrdDJuMmh2M3gvNHRGSXBvYXBWMzJ2Q1dHSzA4bC9Qb2ln
dEx0ZGgyMW9ERFM2VHk3bDIKSnlRWWkwSVpqeTh0TG81M2Q1Zi8wQ29VaTFYL2REK2V1bThnR2hu
ZnNyOXk0UHdrczhuMDJ4Y3VWQTdKUFkwbEtMczlucTdkcGRzZApOdHNSeXdUWXJkWnpJeU5uaDRj
cnErMnBLTW5YMUxSL2pwRVFRakdiWDV1YU91eXl5ZDBWT0kwWlM0OWEvOE5iajhWeWhjSkViMity
CnkyVXhtd3VhRms0bUE5SG8wU3MxSE9pWjFReFVrY3R1LzhXdFc3MCszMFJQVHptSTNOdllDRWFq
SGMzTjVidWJMeTRzVFBmM0g4ZDEKT091K2dXaGtCeS90alRLSnE0bktlcGVIV1dmaGtieDc5YXJ4
b0R4WDZTbjU4blBQT1cyMmorZm5mM0R4NHZjLy92Z1h0MjZwMmV5Rgo4WEhiby85dCtzeHFCcXJy
aGRIUnRhMnRRckZvUEUybzZxMWdjSFo0MkdXMzY3cHVyTjltVVpUajI4RlQ5dzFFdytKYkZnK1lv
aVNSCjAyYWJIUjZlSFI1KzhrczlzNXFCNm5JN0hLL3Y3aGhiS0JadkJZT3ZUMCt2eDJMOVBwL1ZZ
dkdIdzRWaThjMHpaNndXaTdoL0c0UGoKb3U0YmlJWlZMd0hyMGNlWWdDcGdtVVE4dFBtTkRZL2JY
VjZjTDZHcTY3SFlpMk5qVm92RmJiZGY5ZnRiM2U1NzYrdXZuRHAxVEh0Mwo2cjZCYUhBTUVRSkFM
UnJxNlBpSE8zZU1WV0FLeGFMTllwa2FHRENpaHRWaWNkbnROd09CUHAvdnNYY3ZxTHE2YnlBYW5E
S3oyemRiClV6Uk5ZNTBUNFBIeCthbUthUHp4WDd2djdoYkZiTzd4ZURSZGIzRTZzL2w4ZWNaM29W
aDhmMjdPYmJlL05qV1Z6bWIvNGU3ZFVxbmsKZGJ1VjNXbE1qNlBqNGU3a3Jmc0dDaUdFMERTaHNO
UVduaGo5cmdCUW80ekZvaUtwbEdmM0JqcC9KSkpRMVJmSHhveDc3c1o3ZWpwYQpXcTRzTDk5ZFgr
OTB1enVibWpxYm1qejNyK1JYeStxK2dXaGtEQkVDUUUwelZqeGZpOFYrZWVlT21zMmVIUnB5Vll5
YWVkenUxMmRtCm1wek9ncWJkRElVSys3WWxxSDExMzBBMEpucXdBS0IyR2J1WUN5SDZmTDZrcWk2
Rnd3ZnZySlZPVDNkMXZYNE1iL2VwK3dhaVlSR3cKQUtCMjNRb0d4M3Q2eXJmUk5Ua2NNd2Z0elRX
M3VqcDlQTzlScmZzR29tRXhSQWdBTmNvZkRvZVNTVS85cm1CZTl3MUVJeU5nQVVDTgpHdXJzTkp0
TWo3SFZ3WEZSOXcxRUkrUGJHZ0JxV2x4Vk8zZTNLMDFuczdlQ3dmM25IRGh2NmJpbyt3YWlNUkd3
QUtCMnZYenlwSGQzCk8vTmVuMDhYWXZxZ0tVcUozZTNQajUyNmJ5QWFGZ0VMQUdwWG4rK3pGVEtO
VmFNT1BPM3pKMDhlMDYzNjZyNkJhRmpNd1FJQUFKQ00KZ0FVQUFDQVpBUXNBYXNMM1B2Z2dlZmhN
bzN5eCtGZVhMaVZVOVZtV0pGZmROeENveEJ3c0FLZ1Y3MTY5ZXZRSnkrSHc3UER3c3lubQphYWo3
QmdKbDlHQUJ3TEhoajBTcVhjTFRWZmNOUk9PZ0J3c0Fhc1diWjg1NFhDNlR5ZVFQaHlQYjIyZE9u
TEJacmNhWGRGMi92Ym82CjF0MWQzUXFmVU4wM0VDaWpCd3NBYXNJN0w3L3NkYnROSnBNUTR1ckt5
cG5Cd1hMNEVFS1lUS2F4N3U3TGk0dlZLL0JKMVgwRGdVb0UKTEFDb09VVk55eFVLZXc3dTVQTWJp
VVJWNnBHdTdoc0lFTEFBb09aMGV6enZ6ODJ0eDJLRllsSFg5V3crdnh3T3YzZjdkdDFzMjFmMwpE
UVQ0VmdhQW1qTTdOUFR6bXpmZnYzTm56L0VYeDhhcVVvOTBkZDlBUUptWm1hbDJEUWZRTkUycGRn
M0FNY2JucHlxaThjZC9yYzEyCjN6T0xaYml6VXdpUkxSU0ttcVlvU250THkvbVJrWUgyOWtPdmtN
OC8vcnQzK0I1OGptaUFCZ29oaE5BMG9TaDhoUENrNk1FQ2dGcGsKczFqT0RBNmVHUnlzZGlGUFM5
MDNFQTJPT1ZnQUFBQ1MwWU1GQURVbmxFaGNXbHpNRmdvRGJXM25SMGNWcy9rbjE2NlpUYWJYSmlj
cgpselk0dnVxK2dRQTlXQUJRY3o1ZVdGQnpPYTFVOGtjaU53TUJJWVNtYWJGMCtub2dVTzNTNUtq
N0JnSUVMQUNvT2ZsaThmekl5RGRmCmV1bmM4UEQ4NW1haFdIejczTGszWm1iV1lyRnFseVpIM1Rj
UUlHQUJRTTNwOC9rRzJ0c1ZzM204cDZmWDYxMk9SSVFRdnFhbS9ZdHoKSGxOMTMwQ2dkdWRnUGNI
OXVFQ2pzejM0Rk5TMDJhR2hwVkRvVkYrZkVPSlVYOStsaFlXeDd1NmxVS2h1bGcrbyt3WUN0UnV3
QUtCaApmYkswdEJxTFhWdFpLUi81eXc4L0ZFSjBlenpWSzBxbXVtOGdRTUFDZ0pxekh0KzdwS2ZK
WkdweE9tZUhocXBSam54MTMwQ0FnQVVBCk5hZXJ0Zlg1a1JHM3cxSHRRcDZXdW04Z3dDUjNBS2c1
RzRuRTNOcGE1Ukd0VlBwdmx5N0ZWYlZhSmNsVjl3MEU2TUVDZ0ZxMEdBb3QKaGtKN0RpNkhRdDZS
a2FyVUkxM2ROeEFOamg0c0FEZzJWcUxSYXBmd2ROVjlBOUU0Nk1FQ2dKcGpWWlN2bnp0bnRWaE1K
cE54SktHcQo0VlJxckt1cnVvWEpVdmNOQk9qQkFvQ2E4NDBMRjJ4V2F6bDhDQ0U4YnZkQVc5dmxw
YVVxVmlWUjNUY1FJR0FCd1BId3lkSlNvSzVICjBPcStnV2dvQkN3QU9CN1VYSzdYNjYxMkZVOVIz
VGNRRFlVNVdBQndQSHpsekpscWwvQ1kvdngzZi9kNTlaOCs4TFNSTHdraHhQeEIKWC9yazlOLytU
Ly9xWDBrdUMzaWFDRmdBVUhOQ2ljU2x4Y1Zzb1REUTFuWitkRlF4bTM5eTdaclpaSHB0Y3RKbXRW
YTdPZ2xTUys4RgpmdlNIUlRYaW1mejFFMjkvMTJ4MXp2M0hMNW9VeTlqdi9JWEY1YXQyZFlBRURC
RUNRTTM1ZUdGQnplVzBVc2tmaWR3TUJJUVFtcWJGCjB1bnJnVUMxUzVOajVZZi9QSjlZS1JVeXNl
dmYyM2p2TzBLSVVuRW5zMzVsL2UvK2RiVkxBK1FnWUFGQXpja1hpK2RIUnI3NTBrdm4KaG9mbk56
Y0x4ZUxiNTg2OU1UT3pGb3RWdXpRNXRKM0V3TnZmUGZ1dDRNQlh2eE81L0orSzJlVDA3Mzg4OFh0
L25aeC90OXFsQVhJUQpzQUNnNXZUNWZBUHQ3WXJaUE43VDArdjFMa2NpUWdoZlUxT3VVS2gyYVhL
MG5uekxPL1ZiWnF1cjQ0Vi8wanIrWnV6YW53c2hYRDFuCkMrbEl0VXNENUNCZ0FVRE5tUjBhV3Ry
ZFJ1WlVYOTl5S0ZUUzlhVlFTRkdVNmhZbVMvK1h2eDI5OHFmRzQ4N1AvY0hXdGYrc2E0V3QKcTM5
bXRybXFXeGdnQzVQY0FhRG1mTEswdEJxTFhWdFpLUi81eXc4L0ZFSjBlenpWSzBxbTRMdC9sTGo3
NC9XLy9YYjV5SlYvMHkyRQphQjU1dlhwRkFUSVJzQUNnNXF6SDQzdU9tRXltRnFkemRtaW9HdVhJ
bDF6NG1kQkw5eDB5V3h6dEUvMXZNc2tkZFlLQUJRQTFwNnUxCjlmbVJFYmZEVWUxQ25wYm1vVmNH
M3ZxM3R0YUJ5dDF5Z0hyQ0hDd0FxQW5aZlA2SGx5OS9zclNrNi9yWjRlR1Z1dHMwcHJDOWVmTS8K
bkFuOCtGL29lcW4vMS82djJJMy9RcnBDSGFNSEN3QnF3dHphV2x0ejgxUi8vMG8wcW1uYTNOcGFv
Vmg4Ym5Cd1BSNi9zcnhjTEpXbQordm9tZW51clhlYmpDMzM0LzdoNm4rOSs1WCtOM2ZqTFVtRW45
T0YvS09WU3ZWLzZsOGw3NzY3KzlQOG9GVExkbi85Zk9pLzhzMnFYCkNjaEJ3QUtBbXJBZWoxOFlI
M2ZhYk0wT3g5L2R1cVdWU29NZEhaOHVMeStGUWlWZEYwSmM4ZnV0RnN0d1oyZTFLMzFNeWZtL0dm
eU4KLzlmVzB1Tm9HN3YzcDcrcEYzZThwNys1K3U2M29sZi9UQzltaFJDclAvMWp4ZDdTZHZaM3Ex
MHBJQUVCQ3dCcWdwckx0YnBjUW9pMgo1bWF0VkJKQ2VOenVaQ1l6M05rNU16Qmd0VmdXTmpadXI2
NGUzNENWVHdTY25aTkNDSGZmODNweFJ3amg2cHBaRGMrMVBmZE96MnZmClV1eE5rY3Qvc3ZuTGYw
L0FRbjFnRGhZQTFBU3p5V1F4Ny8yWnZMVzlmWFpveUdHektXYnphSGQzSnBlclNtMVNtQlNyMmVi
ZWMxQmQKKzZUdnk5KzJObldhcmE3MmMvOXpQaG1zU20yQWRBUXNBS2dKTFU1blFkUDJIMXdPaDdW
U0tadlBYL1g3MjV1YnExS2JGUGEyY1MyYgozSFBRMFQ2K2RmMTdwV0sya0E2dC9lei9kUGUvV0pY
YUFPa1lJZ1NBbWpEWTNoNU9KdnZiMm9vVk1ldTV3Y0gzNStZK1hWNDJucjQ5Ck8xdWw2aVR3emZ6
MnR2K1gzc212YS9sMCtXRHZHLzl5OGM5L1ovWGRQektlVHYzK3hTcFZCMGhHRHhZQTFJU3hucDVB
TkxxOXM3T1oKU0FnaGpQbFlQVjd2NTArZXRGdXQ3UzB0UW9obXA3UEtWVDZCamhmK2NmejJEN0xS
K2UybDk0UVF6czVwSVVUcjJKZEd2dmtuRm5kbgowNG5QQ1NFY2JhTlZyaEtRaEI0c0FLZ0ppdGw4
Zm5UMDA2V2wxVmpNYmJlL09EWm1ITzlyYSt0cmF4TkMvSmVQUHFwcWdVL0tiSEdjCmVQdTd3WGUv
bGJ6N0k1dDM2TVRYLzcxeDNIUHFhNTVUWHhOQ1hQMi9CNnBhSUNBVFBWZ0FVQ3RzRnN0TEV4UGZm
T2tsTlpmVGRiM3kKUzFxcFpGV1V1S3BXcXpZcExFN1A4UC93LzUzOVZqQWY5d3U5Vk5uR1VpR2oy
RnN5bTllcldCNGdFVDFZQUZDTGZuYmp4djZEeTZHUQpkMlRrMlJmek5OejlrNi9zUDdoMTljOWNY
MzN1MlJjRFNFY1BGZ0FjRy9XM2Y4NGVzWnZmcjNZSmdCejBZQUZBemJFcXl0ZlBuYk5hCkxPWGQr
aEtxR2s2bHhycTZxbHVZTElyRE0vMEhseFNueDJUNjFkLzVPNkZiMnl1L2JELzNlOVV0REpDRkhp
d0FxRG5mdUhEQlpyVlcKN29Yc2Nic0gydG91THkxVnNTcUp6dnlMUll2TFYwNVhRZ2huMTdUbjFL
OEhmL3kvVmJFcVFDSUNGZ0FjRDU4c0xRWHFlb2d3K083LwpIcnYxZzJwWEFjaEJ3QUtBNDBITjVY
cTkzbXBYOFJUbGs2dXRFd2ZNZkFlT0krWmdBY0R4OEpVelo2cGR3dE0xK1UvL3J0b2xBTklRCnNB
Q2c1b1FTaVV1TGk5bENZYUN0N2Z6b3FHSTIvK1RhTmJQSjlOcmtwTTFxclhaMUVxU1czZ3Y4NkEr
TGFzUXorZXNuM3Y2dTJlcWMKKzQ5Zk5DbVdzZC81QzR2TFYrM3FBQWtZSWdTQW12UHh3b0theTJt
bGtqOFN1UmtJQ0NFMFRZdWwwOWNEZ1dxWEpzZktELzk1UHJGUwpLbVJpMTcrMzhkNTNoQkNsNGs1
bS9jcjYzLzNyYXBjR3lFSEFBb0Nha3k4V3o0K01mUE9sbDg0TkQ4OXZiaGFLeGJmUG5YdGpabVl0
CkZxdDJhWEpvTzRtQnQ3OTc5bHZCZ2E5K0ozTDVQeFd6eWVuZi8zamk5LzQ2T2Y5dXRVc0Q1Q0Jn
QVVETjZmUDVCdHJiRmJONXZLZW4KMSt0ZGprU0VFTDZtcGx5aFVPM1M1R2c5K1paMzZyZk1WbGZI
Qy8ra2Rmek4yTFUvRjBLNGVzNFcwcEZxbHdiSVFjQUNnSm96T3pTMApGQW9aajAvMTlTMkhRaVZk
WHdxRkZFV3BibUd5OUgvNTI5RXJmMm84N3Z6Y0gyeGQrOCs2VnRpNittZG1tNnU2aFFHeU1Na2RB
R3JPCkowdExxN0hZdFpXVjhwRy8vUEJESVVTM3gxTzlvbVFLdnZ0SGlicy9Ydi9iYjVlUFhQazMz
VUtJNXBIWHExY1VJQk1CQ3dCcXpubzgKdnVlSXlXUnFjVHBuaDRhcVVZNTh5WVdmQ2IxMDN5R3p4
ZEUrMGY4bWs5eFJKd2hZQUZCenVscGJueDhaY1RzYzFTN2thV2tlZW1YZwpyWDlyYXgybzNBNElx
Q2NFTEFDb0NkLzc0SU92bmozYjZuSUpJYzRPRDY5RW8xUDkvZVd2NW92RkgxKzU4c1dwS1kvYlhi
MGFIOThuCnAvL1c5SS8rMGZWLzkrOW1CZ1pNSnRNZDM5ZSsvL0YzL3ZqVmI1UlBpS2ZUazMvNGgr
Lys4UitmclpkZU9qUTQwenZ2dkZQdEdnNlEKeitlclhRSndqTmxzMWE2Z01jMHRQdjVybTVxKzk4
RUhEenhyb3FkbmRuajQ0SytsMDQvLzdwT2pEM1ZhM1RkUUNDRkVQaTlzZklUdwp4TGlMRUFDT0RY
K2t6bGN4cVBzR29uRXdSQWdBdGVMTk0yYzhMcGZKWlBLSHc1SHQ3VE1uVHBRM3h0RjEvZmJxNmxo
M2QzVXJmRUoxCjMwQ2dqQjRzQUtnSjc3ejhzdGZ0TmlaOVgxMVpPVE00V0xudG9NbGtHdXZ1dnJ6
NEJJTjAxVmIzRFFRcUViQUFvT1lVTlczL291MDcKK2Z4R0lsR1ZlcVNyK3dZQ0JDd0FxRG5kSHMv
N2MzUHJzVmloV05SMVBadlBMNGZENzkyK2JiUFV5YnlPdW04Z3dMY3lBTlNjMmFHaApuOSs4K2Y2
ZE8zdU92emcyVnBWNnBLdjdCZ0xLek14TXRXczRnS1pwMVM0Qk9NYnFaY082NHlhNmQvbjFSM0Qv
dWdBMmkyVzRzMU1JCmtTMFVpcHFtS0VwN1M4djVrWkdCOXZaRHIvQWtxOXQwK0I3cXRMcHZvQkJD
Q0UwVGRiUG5JNnFJSGl3QXFFVTJpK1hNNE9DWndjRnEKRi9LMDFIMEQwZUNZZ3dVQU5lZDdIM3l3
dGIydDYvcGhKeFExN1llWEw4ZFY5VmxXSlZIZE54Q2dCd3NBYXRIUGJ0eDQ0RGxMb2REegpJeVBQ
b0ppbm9lNGJpQVpIRHhZQUhGY3I5Yjd1ZWQwM0VIV01IaXdBcUVWdlB2ZWNaM2RaVGlHRVZpck5i
MnlNOS9RbzVqcjV3N2p1Ckc0Z0d4L2N4QU5TY2QxNSsyZHZVVkE0ZlFnakZiQjd1N0x6cTkxZXZL
Sm5xdm9FQUFRc0FhczczUHZnZ21jbFVIaW1WU3BGVXFtNzIKUXE3N0JnSU1FUUpBTFhyMzZ0WDlC
OTEyKzdPdjVDbXArd2Fpd1JHd0FPQVlNSnRNTFU1bkhkOVNWL2NOUktNaFlBRkFMZnExNTU3egpW
c3dCcno5MTMwQTBPQUlXQU5TY2QxNSt1ZG9sUEYxMTMwQ0FTZTRBQUFDU0ViQUFBQUFrSTJBQkFB
QklSc0FDQUFDUWpJQUZBQUFnCkdRRUxBR3JPZjc5OGVjOUM1MlYzMXRZK3ZIY3ZvYXJQdUNRQWo0
U0FCUUExWnllZi85bU5HK3Z4K1A0dm5lcnI2MmhwK2VuMTY1dUoKeExNdlRKYnZmZkNCcnV0SG5Q
RFQ2OWZUMmV3enF3ZVFqb0FGQUxXb3FHblpmUDVXTUxnL2lBeDNkdXE2ZnR6M1JUNGlQeFUxclZR
cQpIZXNFQ2JEUUtBRFVxSkd1cnZWWTdMM2J0MmVIaDF0ZHJ2THhYS0VnaEVqdDdGU3ZOQWwrZk9Y
SzBTZHN4T05qM2QzUHBoaEFPZ0lXCkFOU3VYcC9QWWJPOWQvdDJSMHZMY0dkblczT3pydXVmTEMw
SklkdzJXN1dyZTdyQ3lXUzFTd0FlSHdFTEFHcVVWaW9wWnJPdnFlbk4KNTU2N3VMRHczdTNibFYr
ZDZPMnRWbUZTdkQwNzIreDBWcnNLNEdsaERoWUExS2lGelUzamdjTm0rOExVMUt1blRuVjdQQlpG
c1Zzcwp6NTA0TWQ3VFU5M3lubENUdzFIdEVvQ25pQjRzQUtnNXIwNU9iaVlTaTV1Ynd4MGROcXZW
T05qcjgvWDZmTlV0VEJZMmUwYmRJMkFCClFNM3A5WHA3dlY0eFBGenRRZ0E4Sm9ZSUFRQUFKQ05n
QVFBQVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUEKQU1rSVdBQUFBSklS
c0FBQUFDUWpZQUVBQUVoR3dBSUFBSkNNZ0FVQUFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpD
RmdBQUFDUwpFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZ0dRRUxBQUJBTWdJV0FBQ0Fa
QVFzQUFBQXlRaFlBQUFBa2hHd0FBQUFKQ05nCkFRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFR
RElDRmdBQWdHUUVMQUFBQU1rSVdBQUFBSklSc0FBQUFDUWpZQUVBQUVoR3dBSUEKQUpDTWdBVUFB
Q0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKTE5VdUFBRHF4ZVJvVmQrKzY2bS9ROTAzRUpDSEhp
d0FBQURKQ0ZnQQpBQUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRaklBRkFBQWdHUUVMQUFCQU1n
SVdBQUNBWkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBCkpDTmdBUUFBU0ViQUFnQUFrSXlBQlFBQUlC
a0JDd0FBUURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQUFFaEcKd0FJQUFK
Q01nQVVBQUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNGZ0FBQUNTRWJBQUFBQWtzMVM3QUFE
eTVmUFZyZ0FBR2x1TgpCaXlielZidEVnQUFBQjRUUTRRQUFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNB
Q0FBQ1FqSUFGQUFBZ0dRRUxBQUJBTWdJV0FBQ0FaQVFzCkFBQUF5UWhZQUFBQWtoR3dBQUFBSkNO
Z0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdBQWdHUUVMQUFBQU1rSVdBQUEKQUpJ
UnNBQUFBQ1FqWUFFQUFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURK
Q0ZnQUFBQ1NFYkFBQUFBawpJMkFCQUFCSVJzQUNBQUNRaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNB
WkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBSkNOZ0FRQUFTRWJBCkFnQUFrSXlBQlFBQUlCa0JDd0FB
UURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQUFFaEd3QUlBQUpDTWdBVUEK
QUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNGZ0FBQUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNB
QUNRaklBRkFBQWdHUUVMQUFCQQpNZ0lXQUFDQVpBUXNBQUFBeVFoWUFBQUFraEd3QUFBQUpDTmdB
UUFBU0ViQUFnQUFrSXlBQlFBQUlCa0JDd0FBUURJQ0ZnQUFnR1FFCkxBQUFBTWtJV0FBQUFKSVJz
QUFBQUNRallBRUFBRWhHd0FJQUFKQ01nQVVBQUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNG
Z0EKQUFDU0ViQUFBQUFrSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQVpB
UXNBQUFBeVFoWUFBQUFraEd3QUFBQQpKQ05nQVFBQVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFE
SUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFKSVJzQUFBQUNRallBRUFBRWhHCndBSUFBSkNNZ0FVQUFD
QVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUFBQUFrSTJBQkFBQklSc0FDQUFD
UWpJQUYKQUFBZ0dRRUxBQUJBTWdJV0FBQ0FaQVFzQUFBQXlRaFlBQUFBa2hHd0FBQUFKQ05nQVFB
QVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQQpRRElDRmdBQWdHUUVMQUFBQU1rSVdBQUFBSklSc0FB
QUFDUWpZQUVBQUVoR3dBSUFBSkNNZ0FVQUFDQVpBUXNBQUVBeUFoWUFBSUJrCkJDd0FBQURKQ0Zn
QUFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZ0dRRUxBQUJBTWdJV0FBQ0FaQVFz
QUFBQXlRaFkKQUFBQWtoR3dBQUFBSkNOZ0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFRRElD
RmdBQWdHUUVMQUFBQU1rSVdBQUFBSklSc0FBQQpBQ1FqWUFFQUFFaEd3QUlBQUpDTWdBVUFBQ0Fa
QVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKQ0ZnQUFBQ1NFYkFBQUFBa0kyQUJBQUJJClJzQUNBQUNR
aklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBSkNOZ0FRQUFT
RWJBQWdBQWtJeUEKQlFBQUlCa0JDd0FBUURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFB
Q1FqWUFFQUFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFzQQpBRUF5QWhZQUFJQmtCQ3dBQUFESkNGZ0FB
QUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBClpBUXNB
QUFBeVFoWUFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQUFnQUFrSXlBQlFBQUlCa0JDd0FBUURJQ0Zn
QUFnR1FFTEFBQUFNa0kKV0FBQUFKSVJzQUFBQUNRallBRUFBRWhHd0FJQUFKQ01nQVVBQUNBWkFR
c0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNGZ0FBQUNTRWJBQQpBQUFrSTJBQkFBQklSc0FDQUFDUWpJ
QUZBQUFnR1FFTEFBQkFNZ0lXQUFDQVpBUXNBQUFBeVFoWUFBQUFraEd3QUFBQUpDTmdBUUFBClNF
YkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFKSVJzQUFBQUNR
allBRUFBRWhHd0FJQUFKQ00KZ0FVQUFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFD
U0ViQUFBQUFrSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTApBQUJBTWdJV0FBQ0FaQVFzQUFB
QXlRaFlBQUFBa2hHd0FBQUFKQ05nQVFBQVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FB
CmdHUUVMQUFBQU1rSVdBQUFBSklSc0FBQUFDUWpZQUVBQUVoR3dBSUFBSkNNZ0FVQUFDQVpBUXNB
QUVBeUFoWUFBSUJrQkN3QUFBREoKQ0ZnQUFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFG
QUFBZ0dRRUxBQUJBTWdJV0FBQ0FaQVFzQUFBQXlRaFlBQUFBa2hHdwpBQUFBSkNOZ0FRQUFTRWJB
QWdBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdBQWdHUUVMQUFBQU1rSVdBQUFBSklSc0FBQUFDUWpZ
QUVBCkFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKQ0ZnQUFBQ1NF
YkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1EKaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5
ZjUvdTJuc244NUtlcTBBQUFBQVNVVk9SSzVDWUlJPQoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1v
bi1zY3JvbGwtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFy
a2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3Vi
LXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcKCgppVkJPUncwS0dnb0FB
QUFOU1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFBNU1q
Sm1OMlkwCk1UQXdOMlF4TjJNellUSTBOV0ZoT0dGbU1UWmxNbVU1TllhbVBEVUFBQmQzU1VSQlZI
aWM3ZDFiYjFUbm9jZmhCY1lPWUtCTmlXeHoKaWdvR0hBNGhJQXFCUk1GdEkxRkJRMXExcWJqaEkv
VmpjRU9ycHEyU1ZDcE5XMUdKb3kwZ0FRZENZa3c0R1F5WVE0d2R3c0g3WXJSbgplek8yR2N3ZkdL
cm51VUNEdlE3dmVsOUwvbW5Xc2oxcCsvYnRCUUFBT1pPZjl3QUFBUDdiQ0N3QWdEQ0JCUUFRSnJB
QUFNSUVGZ0JBCm1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZ
QVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUoKTEFDQU1JRUZBQkEyWmF4UDdOcTFhNnhQYmRx
MDZjaVJJMXUzYm4zY2svM3puLzk4OTkxM2k2SjQ4T0RCc1dQSFRwOCtYUlRGaWhVcgpsaTVkK3Jp
SGVpeTl2YjNWRC9peE5uN2FnM21zSXp6dGtWY3FMMmpOZXZaelVxWHl3RWFPc1BibkU0QXFqUmxZ
UlZHc1dMRmkrZkxsCmt5ZFAzclZyMS9idDIwdFZkUExreVVPSERuMzMzWGNUT0ZuNW04Zng0OGVi
bXBxV0wxL2UyOXQ3N05peHB4MVlqelhnam82T29hR2gKR2huTXFNWWE0Wk1mK1hIVmZnMDgrem1w
VW5rUlI2NW03YzhuQUZVYTh4YmhyRm16MnRyYUprLyt2dzBtVDU2OGZQbnlXYk5tYmR1Mgo3UW5Q
K3MwMzN6UTNOOWZYMTcvNjZxdS8vT1V2bi9Cb2ovUllBMzd2dmZlZTNraUt4eHpNcU1ZYTRaTWYr
YjlQemM1SmVSR2Y5dGNiCkFNL0ZtSUcxWmN1Vyt2cjZoejVZWDErL1pjdVdrZFUxTVlPRGcwOStr
T285MXJtZTBzRHUzYnVYT3Y1WVIzaVdVL3FpZUJwelVsN0sKSjFFZW1GVUQrSzgwM2kzQzhRME1E
T3pmdi8vV3JWdXJWNjl1YlcwdGl1TCsvZnNkSFIzbno1K2ZNV1BHMjIrL1BYUG16SkhibDU4MQpL
VDNkVmZxMzlEalgwcVZMang4L1BuMzY5TTJiTjU4K2ZmcUxMNzRZSEJ5Y09uWHFzbVhMbGl4WlV0
cXh2YjE5Ly83OU4yL2VYTE5tCnplelpzdzhjT0RBd01QREdHMjhzWHJ6NGthY3V1WExsU21kbjU5
RFEwT3V2djc1a3laTFNCeCs1NDdsejV3NGZQdnpnd1lOVnExYTEKdHJZT0RBeDg4c2tuUlZHMHRi
VXRYcno0azA4K21UUnBVbDFkM2RxMWE2OWV2ZHJkM1YwVXhRY2ZmRkJYVjFjK3d0ZGZmMzNreUpG
NQo4K2FkTzNkdSsvYnRZODFlNWJuS3MxVGFhK1Rya2M2ZlAvLzU1NThQRFEydFc3ZXU4cXBMc3pk
eWhpc3Z1Wm9aSG10ZHlrOFJiZHEwCjZjQ0JBemR2M2l6dk10S3RXN2NPSGp4NDQ4YU5lZlBtYmR5
NGNkS2tTWThjMlBYcjEvZnYzMThVeGFKRmk5YXRXOWZaMlZtYTN0LysKOXJkVHBrd3B6V0UxYTFI
bDEybzFWMUc1bE1QRHc1OS8vbmwzZDNkZFhkM0tsU3RiVzFzcnIydlVsUjFycGNhWno4bzVIUFU0
QU5TQwppUWRXYjIvdlQzLzYwNnRYcng0NmRLajBQZVBZc1dNdExTM3IxNisvZlBueTRjT0gyOXZi
UjI1ZmZocG0rL2J0cFllNmlxTDR5MS8rCmN1Zk9uV25UcHYzNjE3OHViZGJWMWZYdXUrOU9temJ0
NnRXcmUvYnNXYkprU1duSHZyNis5dmIyUzVjdWRYUjB2UDc2NnovNzJjLzYKKy92Mzc5OWYrdDR6
L3FsTGhvYUdObS9lUERnNGVQRGd3YWxUcHk1WXNPQ1JPL2IzOTNkM2QyL1pzcVcvdjMvZnZuMHpa
ODVzYW1wNgovLzMzZCsvZXZXelpzcGRlZW1uNzl1MS8vZXRmZi9HTFgweWRPclc1dWZuQ2hRdGJ0
bXdaV1ZkRlVYejIyV2RidDI2OWNlUEd1WFBuCnhwbTlVYy8xM252dmZmenh4NlZkdG03ZCtyZS8v
ZTJoaTdwOCtmS3BVNmZhMjlzYkdocE9uVHBWZWRVSER4NThhSVlyTDdtYUdSNXIKWGNvcjI5dmJ1
Mm5UcG12WHJoMDRjS0F5VGZidDI3ZDgrZko1OCthZFBIbnlEMy80UTExZDNaUXBVOFlmMktaTm02
WlBuOTdSMGJGcQoxYXFpS0g3eWs1OWN2SGp4blhmZUtkVlZVUlF6WnN5b2NpMnErVnF0NWlvcWwv
TEVpUk1ORFEyLyt0V3Z6cDQ5MjlYVjFkcmFXam5oCm82NXM1VW85Y2o0cjU3Q1Vqd0RVb0luZm5s
aXlaRWw5ZlgxTFMwdjVJZUt6Wjg4ZVBIandqMy84NDMvKzg1OHJWNjQ4dFAyb3o1cTgKLy83N1JW
SE1temV2L0pGdDI3Wk5uVHExcDZmbjhPSEQ5Ky9mTCsrNGNPSEMrdnI2K2ZQbjM3MTdkOG1TSlEw
TkRjM056ZDkvLzMwMQpweTU1OWRWWDYrcnFaczZjdVg3OStoTW5UbFN6NDVFalI5YXRXOWZRME5E
UzBySm16WnJEaHc4WFJURnQyclE1YytaY3VIQ2hLSXIrCi92N3Z2dnV1OVByczJiTS8vdkdQR3hv
YUhqckk5T25UTDEyNk5IZnUzSkZ2UGxYTzNxam5hbXhzTE84eTZ0dHl4NDhmWDdkdVhXTmoKWTMx
OS9hZy9LMUE1dzVXWFhNME1qN1V1eGY4KzUxVGFwYVdscGJ6TFNBTURBL1BtemF1cnEzdnR0ZGRt
elpyMXdRY2ZQSEpna3laTgpldVdWVitiT25kdlQwMU1VUlY5ZlgyTmo0OHN2dnp6eXNGV3VSVFZm
cTlWY1JlVlNkbmQzTDE2OHVLNnVidUhDaGFVSnFieXVVVmUyCjBpUG5zM0lPUnowT0FMVmc0dTln
bFl5OFQzSG56cDNLRzFobEQ3MnZVMUw1QU1yMTY5YzdPenZuenAzNzFsdHZsZDZ3R2JuanlOTlYK
ZitxSHpKZ3g0K2JObTlYczJOL2ZQM1hxMU5MckJRc1dkSFoybGw3UG56Ly82NisvWHJSbzBWZGZm
YlYwNmRKejU4NjF0cmIyOVBTOAo5ZFpibFFkcGIyLy83TFBQVHB3NHNXSERobGRlZVdYa3AwWmV3
bGpuR3QvMTY5ZkxFVmI1ekZ3eDJneFhYbkkxTXp6T3Vvdzh4VmozCnJSWXVYUGpsbDErMnRiVmR2
SGp4enAwN1ZRNnNLSXJGaXhmdjJiUG50ZGRlKytxcnI4bzNka2VxZmkzRy80S3A1aW9xbDNKb2FP
aWgKYWErOHJpcFg5cEh6V1RtSEFOU3M1QU8yczJiTktyLys1cHR2Sm5hUXZYdjNidGl3WWNXS0ZT
Kzk5TkpUT3ZXdFc3ZCs4SU1mVkxQagpyRm16ZW50N1M2L3YzNzlmenFQbTV1WnIxNjROREF4Y3Uz
YnRqVGZldUhuejV1WExsK3ZxNmtZZXJXejY5T2tiTjI1Y3YzNTk2WW1pCmNTNWgxSE05NU1HREJ5
UC9PMy8rL092WHI1ZGUzNzE3dDNLRFVVOVVmbDM5TWsxc1hjcGFXMXN2WHJ6NDRZY2ZIanQyYk1P
R0RkVVAKckxHeHNiR3g4Y3laTTFldlhwMC9mMzdsWG8rMUZ1T2Y2NUVxbDdLK3ZuNTRlSGo4dmFw
YzJVZXFaZzRCcUJHUERxelM5Ky8rL3Y3eQpONUxCd2NHaUtFcS92S2QwejZYMGVzNmNPV2ZPbkxs
Mzc5N1pzMmNydjJtVjlob2NIQ3h0Zk9QR2pmS09JNXZnKysrL3YzWHIxdERRCjBKa3paNHFpdUgv
Ly9saW5LLzFiK3V6NHB5NktvcTZ1cnFlbjU5NjllOTkrKzIzcEdhUFN4eXQzSEhtNnRXdlhIajE2
OU5xMWEzZnUKM0RsOCtQRHExYXZMUjJ0dWJ0NjdkKy9DaFFzblQ1NDhaODZjUTRjT0xWeTRjTlFK
M0xWcjE3bHo1NlpObTFiNjZiT3hMbWVzY3pVMApOUFQyOXQ2OWU3ZjBpTlhISDM4ODhnaXJWNjh1
N1hYdjNyMnVycTZpS0Q3NjZLT1JaNitjNGZFdmVhd1pIbXRkQmdjSGI5KytQZXJ1CkkrM2J0Ky90
dDkvKzNlOSt0M1hyMXBhV2xpb0hWcko0OGVLT2pvN1NWSSs2c3VPc1JmVmZxOVZjeFVOTFdSUkZT
MHRMWDEvZjhQRHcKclZ1M1NrL2NWMTdYcUN0Ykh0aERMOGFaejhvNUJLQm0xYTFjdVhLY1QrL2F0
YXYwMDFpblQ1L3U2dW9xYmZ6aGh4OFdSZkhsbDErdQpYTG55VDMvNlUvbjE3Tm16di9qaWk0Nk9q
b0dCZ1hYcjFqMzBWa2RwcjFPblRuMzU1WmRGVVhSM2QzZDFkWlZlOS9UMHRMVzFsVGFiCk1tVkta
MmRuWDEvZm1qVnJMbHk0TURRMHRHL2Z2bEZQVno3Z0kwOWRGTVdjT1hPNnVycU9IRG5TMTllM2N1
WEt1WFBubGo1ZXVlUEkKcTVzK2Zmcmt5Wk1QSFRwMCt2VHB0cmEyNXVibThnR0hoNGRQbno2OWNl
UEcwcDJkbnA2ZU45OThjOVRib0YxZFhTMHRMWHYzN2wyMQphdFdQZnZTanNXWnZySFBWMWRWMWRu
YjI5dll1WDc3ODBxVkxhOWV1L2NjLy9sSGVhOHFVS2JObno5NjNiOStwVTZmYTJ0cXVYYnUyCmR1
M2FrVTlybFU0M2NvYkh2K1N4Wm5pc2RUbDE2bFNwL0NwM0h6a0paOCtlUFhMa1NGZFhWMm5ScDA2
ZCt1OS8vL3VSQXl0OWZPYk0KbVNkT25Ianp6VGRIdlFjNi9scFUvN1g2NXovLytaRlg4ZEJTRmtY
UjFOUjA1TWlSenM3T3ExZXZMbHUyN0ljLy9HSGxoSSs2c3VXQgpsV2V2OUdLYytheWN3NWRmZnZu
VFR6OWR0R2pScU5NQ3dITTBxZnBIbDJCaWJ0NjhlZWZPbmRLUHpnMFBEOSs4ZWZQVFR6K3QvaG50
CksxZXVuRHg1OHAxMzNubWFZNngxVHppSEFEeGpmc2toVDkyZVBYdSsvZmJiMGsvRDNiMTd0Nit2
Yjg2Y09WWHUrK0RCZzlLVDNVOXoKZ0MrQUo1bERBSjQ5NzJEeDFKMC9mLzdreVpNM2J0eDQ4T0JC
WTJQajNMbHpWNnhZVWZuN0xDcjkvZTkvdjNQbnp2cjE2ejF5Tk9FNQpCT0M1RUZnQUFHRnVFUUlB
aEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FN
SUVGCkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFK
ckFBQU1JRUZnQkFtTUFDQUFnVFdBQUEKWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRURabFlydDFk
M2RueHdGTVdHdHI2L01lQWdEL2ozZXc0TVcyWU1HQzV6MEVBQjQyd1hldwpTbjcvKzkrbnhnR1V0
TGUzRjBXeGUvZnV2cjYrc2JacGFtcmF2SGx6VVJTLytjMXZudDNJQUtqYUV3VVc4RFRzM0xseng0
NGRUNzROCkFNK0xXNFJRVzNidjNsMU5PZTNZc1dQMzd0M1BZRHdBVElEQWd0b3l6cDNCQ1c4SndE
TW1zQUFBd2dRV0FFQ1l3SUlYd0tSSms1NzMKRUFCNERBSUxhbDJwcmpRV3dBdEVZRUZORzlsVkdn
dmdSU0d3b0haVkZwWEdBbmdoK0VXalVMdUdoNGVmOXhBQW1BanZZQUVBaEFrcwpBSUF3Z1FVQUVP
WVpMS2c1TzNmdWZONURBT0NKZUFjTEFDRE1PMWhRYzdadDIxYjV3ZHUzYnovMGtYLzk2MS9QWkRn
QVBEYnZZQUVBCmhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdB
QkFJUUpMQUNBTUlFRkFCQW1zQUFBd3Z5eFo2aHAKSDMzMDBjai8vdnpuUDM5ZUl3R2dlZ0lMYXRx
MmJkdEtMMjdmdnYxOFJ3SkE5ZHdpQkFBSTh3NFcxRFMzQ0FGZVJBSUxhcHBiaEFBdgpJcmNJQVFE
Q3ZJTUZOYzB0UW9BWGtjQ0NtdVlXSWNDTHlDMUNBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJ
RTFnQUFHRUNDd0FnClRHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXd2d3RRcWc1RC8yQlp3QmVPQUlM
YXM3cTFhdXIyZXpvMGFOUGV5UUFUSXhiaEFBQVlRSUwKQUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3
QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQQp3Z1FX
QUVDWXdBSUFDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNB
QWdUV0FBQVlRSUxBQ0JNCllBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FB
R0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVcKQUVDWXdBSUFDQk5ZQUFCaEFnc0FJ
RXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQQpo
QWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1J
RUZBQkFtc0FBQXdnUVdBRUNZCndBSUFDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpy
QUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3MKQUlBd2dRVUFFQ2F3QUFEQ0JC
WUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJ
QQpDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FB
QVlRSUxBQ0JNWUFFQWhBa3NBSUF3CmdRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dB
Z1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTlkKQUFCaEFnc0FJRXhnQVFD
RUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3
Z1FVQQpFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFt
c0FBQXdnUVdBRURZbE9jOUFPQmhSNDhlCmZkNURBT0NKQ0N5b09UdDI3S2htczUwN2R6N3RrUUF3
TVc0UkFnQ0VDU3dBZ0RDQkJRQVFKckFBQU1JODVBNjFhOUtrU1pVZkhCNGUKZnZZakFlQ3hlQWNM
YWxkbFM2a3JnQmVDd0lLYU5yS28xQlhBaTBKZ1FhMHJkWlc2QW5pQkNDeDRBYWdyZ0JlTHdBSUFD
Qk5ZVUZ1YQptcHJpV3dMd2pBa3NxQzJiTjIrdTVvOE03dHk1Yy9QbXpjOWdQQUJNZ04rREJUVm54
NDRkdTNmdjd1dnJHMnVEcHFhbUt2OGdOQURQCnhhVHQyN2RQWUxmdTd1NmlLQllzV0pBZUQvRFlH
aG9hbnZjUUFQaC9KbjZMVUYwQkFJeHFncmNJVzF0YnMrTUFBUGl2NFNGM0FJQXcKZ1FVQUVDYXdB
QURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FF
Q1l3QUlBQ0JOWQpBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FB
Z1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBCkVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFH
RUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmgKQWdzQUlF
eGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFr
c0FJQXdnUVVBRUNhdwpBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlF
RkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBCklFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJB
QUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBREMKQkJZ
QVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlB
Q0JOWUFBQmhBZ3NBSUV4ZwpBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFB
WVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBClFKakFBZ0FJRTFnQUFHRUNDd0Fn
VEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0UK
Q1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdn
UVVBRUNhd0FBRENCQllBUUpqQQpBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1z
QUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBCmdEQ0JCUUFRSnJBQUFNSUVG
Z0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFn
QUkKRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFB
QmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQgpCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFD
Qk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBCkFHRUNDd0FnVEdBQkFJ
UUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RD
QkJRQVEKSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNh
d0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQwpDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dR
V0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBCkFNSUVGZ0JBbU1B
Q0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdB
QUdFQ0N3QWcKVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NB
SUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRQpGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVB
aEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCCkFJUUpMQUNB
TUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFK
ckFBQU1JRUZnQkEKbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENC
QllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSgpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3
QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDCkFBZ1RX
QUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3
QWdUR0FCQUlRSkxBQ0EKTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FR
Q0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVApXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJ
QXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGCkFC
QW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1J
RUZnQkFtTUFDQUFqN0gyRTgKS1JEMy8rS05BQUFBQUVsRlRrU3VRbUNDCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167789</attachid>
            <date>2012-10-09 11:07:47 -0700</date>
            <delta_ts>2012-10-09 13:50:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-98571-20121009110648.patch</filename>
            <type>text/plain</type>
            <size>118713</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDY5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExOSBAQAorMjAxMi0xMC0wOCAgTGV2aSBX
ZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1N1YiBwaXhlbCBsYXlv
dXRdIEZhc3QtcGF0aCBpZnJhbWUgc2Nyb2xsaW5nIGNhbiBwaWNrcyB1cCBhbiBleHRyYSBwaXhl
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBFbWlsIEEgRWtsdW5kLgorCisgICAgICAgIFJlZmFjdG9y
aW5nIGFsbCBjb29yZGluYXRlLXN3aXRjaGluZyBmdW5jdGlvbmFsaXR5IHRvIHVzZSBhIHNpbmds
ZSAibW9kZSIgZmxhZworICAgICAgICBhcyBvcHBvc2VkIHRvIGhhdmluZyBhIGJ1bmNoIG9mIGJv
b2xlYW4gdmFsdWVzLiBUaGlzIGVuYWJsZXMgdGhlIHNhbWUgc2V0IG9mCisgICAgICAgIG9wdGlv
bnMgYWNyb3NzIHRoZSBib2FyZCwgYW5kIGEgY29uc2lzdGVudCBpbnRlcmZhY2UuIFRoaXMgd2Fz
IHByZXZpb3VzbHkKKyAgICAgICAgZG9uZSBmb3IgbWFwTG9jYWxUb0NvbnRhaW5lci4KKworICAg
ICAgICBUaGUgaW1wdGV0dXMgZm9yIHRoaXMgZm9yIHRoaXMgc3RlbXMgZnJvbSB0aGUgb25lIGxv
Z2ljYWwgY2hhbmdlIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgd2hpY2ggb25seSBlZmZlY3RzIHN1
Yi1waXhlbCBsYXlvdXQuIEZyYW1lVmlldzo6Y29udmVydFRvUmVuZGVyZXIgYW5kCisgICAgICAg
IGNvbnZlcnRGcm9tUmVuZGVyZXIgcmV0dXJuIEludFBvaW50IGNvb3JkaW5hdGVzLCBhbmQgbmVl
ZCB0byBhbHNvIHNuYXAgdHJhbnNmb3JtCisgICAgICAgIG9mZnNldHMgdG8gZGV0ZXJtaW5lIHBy
b3BlciByZWN0cyBmb3Igc2Nyb2xsaW5nLgorCisgICAgICAgIFVubGFiZWxlZCBmdW5jdGlvbnMg
YmVsb3cgYXJlIHNpbXBseSBiZWluZyB1cGRhdGVkIHRvIHRoZXNlIG5ldyBpbnRlcmZhY2VzLgor
CisgICAgICAgIFRlc3Q6IGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1z
Y3JvbGwuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL0Nv
bnRhaW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6Z2V0VXBw
ZXJMZWZ0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmdldExvd2Vy
UmlnaHRDb3JuZXIpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmJvdW5kc0luUm9vdFZpZXdTcGFjZSk6CisgICAgICAgICogZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50Ojpj
b21wdXRlUmVsYXRpdmVQb3NpdGlvbik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6Y29udmVydFRvUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
Ojpjb252ZXJ0RnJvbVBhZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21Q
b2ludCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6Y29udmVydFRvUmVuZGVyZXIpOiBOb3cgcGl4ZWwtc25hcHMgb2Zmc2V0cyBiZWZvcmUgcGFz
c2luZworICAgICAgICB0aGVtIHRvIFRyYW5zZm9ybVN0YXRlLCB3aGljaCB0cmFuc2Zvcm1zIHRo
ZSBjb29yZGluYXRlcy4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y29udmVydEZyb21S
ZW5kZXJlcik6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
YWJzb2x1dGVRdWFkcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmFic29sdXRlUXVhZHMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guaDoKKyAgICAgICAgKFJlbmRlckJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVs
T2JqZWN0OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJCb3hNb2RlbE9iamVjdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0Ojppc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0
b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckdlb21ldHJ5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdlb21ldHJ5
TWFwOjphYnNvbHV0ZVBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVuZGVySW5s
aW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmFic29sdXRlVG9Db250ZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNv
bnRyb2xzOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVM
aXN0OjpzaG93UG9wdXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQWJzb2x1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjphYnNvbHV0ZVRvTG9jYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250YWluZXJQb2ludCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoUmVuZGVyT2JqZWN0KTogTWFwTG9jYWxU
b0NvbnRhaW5lckZsYWdzIGlzIG5vdyBNYXBDb29yZGluYXRlc0ZsYWdzIHNpbmNlIGl0J3MKKyAg
ICAgICAgbm93IHVzZWQgZm9yIG90aGVyIGNvbnZlcnNpb24gbWV0aG9kcy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6bG9jYWxUb0Fic29sdXRlUXVhZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjp2
b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6bWFwTG9jYWxUb0Nv
bnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjptYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFJl
bmRlclZpZXcpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2Nh
bFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25P
YmplY3QuaDoKKyAgICAgICAgKFJlbmRlclNWR0ZvcmVpZ25PYmplY3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAgICAgICAgKFJlbmRlclNWR0lubGluZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAoUmVuZGVy
U1ZHTW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKFJl
bmRlclNWR1Jvb3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaDoKKyAgICAgICAgKFJlbmRl
clNWR1RleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVy
KToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdTVkdFbGVtZW50Ojpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybSk6CisKIDIwMTItMTAt
MDggIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU29t
ZSBub24tc2Nyb2xsYWJsZSBlbGVtZW50cyBhcmUgYWRkZWQgdG8gbm9uLWZhc3Qtc2Nyb2xsYWJs
ZSByZWdpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxMzA2OTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTExOSw4ICsx
MTE5LDggQEAgX19aTks3V2ViQ29yZTExUmVuZGVyU3R5bGUyMXZpc2l0ZWREZXBlbgogX19aTks3
V2ViQ29yZTExUmVuZGVyU3R5bGU0Zm9udEV2CiBfX1pOSzdXZWJDb3JlMTFTY3JpcHRWYWx1ZTln
ZXRTdHJpbmdFUE4zSlNDOUV4ZWNTdGF0ZUVSTjNXVEY2U3RyaW5nRQogX19aTks3V2ViQ29yZTEy
UmVuZGVyT2JqZWN0MTRlbmNsb3NpbmdMYXllckV2Ci1fX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmpl
Y3QxNWxvY2FsVG9BYnNvbHV0ZUVSS05TXzEwRmxvYXRQb2ludEViYgotX19aTks3V2ViQ29yZTEy
UmVuZGVyT2JqZWN0MjBsb2NhbFRvQ29udGFpbmVyUXVhZEVSS05TXzlGbG9hdFF1YWRFUE5TXzIy
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdEViYlBiCitfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3Qx
NWxvY2FsVG9BYnNvbHV0ZUVSS05TXzEwRmxvYXRQb2ludEVqCitfX1pOSzdXZWJDb3JlMTJSZW5k
ZXJPYmplY3QyMGxvY2FsVG9Db250YWluZXJRdWFkRVJLTlNfOUZsb2F0UXVhZEVQTlNfMjJSZW5k
ZXJMYXllck1vZGVsT2JqZWN0RWpQYgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MjNhYnNv
bHV0ZUJvdW5kaW5nQm94UmVjdEViCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QzOXBpeGVs
U25hcHBlZEFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdEV2CiBfX1pOSzdXZWJDb3JlMTJSZW5k
ZXJPYmplY3Q3Y2hpbGRBdEVqCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3Bw
CShyZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTc0Niw3ICs3NDYsNyBAQCBib29sIENvbnRhaW5lck5vZGU6
OmdldFVwcGVyTGVmdENvcm5lcihGCiAgICAgUmVuZGVyT2JqZWN0KiBwID0gbzsKIAogICAgIGlm
ICghby0+aXNJbmxpbmUoKSB8fCBvLT5pc1JlcGxhY2VkKCkpIHsKLSAgICAgICAgcG9pbnQgPSBv
LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIHBv
aW50ID0gby0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3JtcyB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBA
IC03NzEsNyArNzcxLDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjpnZXRVcHBlckxlZnRDb3JuZXIo
RgogICAgICAgICBBU1NFUlQobyk7CiAKICAgICAgICAgaWYgKCFvLT5pc0lubGluZSgpIHx8IG8t
PmlzUmVwbGFjZWQoKSkgewotICAgICAgICAgICAgcG9pbnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUo
RmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgICAgICBwb2ludCA9IG8tPmxvY2Fs
VG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3Jtcyk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCkBAIC03ODUs
NyArNzg1LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjpnZXRVcHBlckxlZnRDb3JuZXIoRgogICAg
ICAgICAgICAgICAgIFJlbmRlckJveCogYm94ID0gdG9SZW5kZXJCb3gobyk7CiAgICAgICAgICAg
ICAgICAgcG9pbnQubW92ZUJ5KGJveC0+bG9jYXRpb24oKSk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBwb2ludCA9IG8tPmNvbnRhaW5lcigpLT5sb2NhbFRvQWJzb2x1dGUocG9pbnQsIGZh
bHNlLCB0cnVlKTsKKyAgICAgICAgICAgIHBvaW50ID0gby0+Y29udGFpbmVyKCktPmxvY2FsVG9B
YnNvbHV0ZShwb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtODA3LDcgKzgw
Nyw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6Z2V0TG93ZXJSaWdodENvcm5lcigKICAgICBSZW5k
ZXJPYmplY3QqIG8gPSByZW5kZXJlcigpOwogICAgIGlmICghby0+aXNJbmxpbmUoKSB8fCBvLT5p
c1JlcGxhY2VkKCkpIHsKICAgICAgICAgUmVuZGVyQm94KiBib3ggPSB0b1JlbmRlckJveChvKTsK
LSAgICAgICAgcG9pbnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUoTGF5b3V0UG9pbnQoYm94LT5zaXpl
KCkpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIHBvaW50ID0gby0+bG9jYWxUb0Fic29sdXRlKExh
eW91dFBvaW50KGJveC0+c2l6ZSgpKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC04NDAsNyArODQwLDcg
QEAgYm9vbCBDb250YWluZXJOb2RlOjpnZXRMb3dlclJpZ2h0Q29ybmVyKAogICAgICAgICAgICAg
ICAgIFJlbmRlckJveCogYm94ID0gdG9SZW5kZXJCb3gobyk7CiAgICAgICAgICAgICAgICAgcG9p
bnQubW92ZUJ5KGJveC0+ZnJhbWVSZWN0KCkubWF4WE1heFlDb3JuZXIoKSk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBwb2ludCA9IG8tPmNvbnRhaW5lcigpLT5sb2NhbFRvQWJzb2x1dGUo
cG9pbnQsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgIHBvaW50ID0gby0+Y29udGFpbmVyKCkt
PmxvY2FsVG9BYnNvbHV0ZShwb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCShyZXZpc2lvbiAxMzA2
OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBNb3VzZVJlbGF0ZWRFdmVudDo6Y29tcHV0
ZVJlbGF0aXZlUAogICAgIC8vIEFkanVzdCBvZmZzZXRMb2NhdGlvbiB0byBiZSByZWxhdGl2ZSB0
byB0aGUgdGFyZ2V0J3MgcG9zaXRpb24uCiAgICAgaWYgKCFpc1NpbXVsYXRlZCgpKSB7CiAgICAg
ICAgIGlmIChSZW5kZXJPYmplY3QqIHIgPSB0YXJnZXROb2RlLT5yZW5kZXJlcigpKSB7Ci0gICAg
ICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0gci0+YWJzb2x1dGVUb0xvY2FsKGFic29sdXRl
TG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBv
cyA9IHItPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMg
fCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICBtX29mZnNldExvY2F0aW9u
ID0gcm91bmRlZExheW91dFBvaW50KGxvY2FsUG9zKTsKICAgICAgICAgICAgIGZsb2F0IHNjYWxl
RmFjdG9yID0gMSAvIChwYWdlWm9vbUZhY3Rvcih0aGlzKSAqIGZyYW1lU2NhbGVGYWN0b3IodGhp
cykpOwogICAgICAgICAgICAgaWYgKHNjYWxlRmFjdG9yICE9IDEuMGYpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCShyZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIwNzAsNyArMjA3MCw3IEBAIEZsb2F0UG9pbnQgTm9kZTo6Y29u
dmVydFRvUGFnZShjb25zdCBGbG8KIHsKICAgICAvLyBJZiB0aGVyZSBpcyBhIHJlbmRlcmVyLCBq
dXN0IGFzayBpdCB0byBkbyB0aGUgY29udmVyc2lvbgogICAgIGlmIChyZW5kZXJlcigpKQotICAg
ICAgICByZXR1cm4gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlKHAsIGZhbHNlLCB0cnVlKTsK
KyAgICAgICAgcmV0dXJuIHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZShwLCBVc2VUcmFuc2Zv
cm1zKTsKICAgICAKICAgICAvLyBPdGhlcndpc2UgZ28gdXAgdGhlIHRyZWUgbG9va2luZyBmb3Ig
YSByZW5kZXJlcgogICAgIEVsZW1lbnQgKnBhcmVudCA9IGFuY2VzdG9yRWxlbWVudCgpOwpAQCAt
MjA4NSw3ICsyMDg1LDcgQEAgRmxvYXRQb2ludCBOb2RlOjpjb252ZXJ0RnJvbVBhZ2UoY29uc3Qg
RgogewogICAgIC8vIElmIHRoZXJlIGlzIGEgcmVuZGVyZXIsIGp1c3QgYXNrIGl0IHRvIGRvIHRo
ZSBjb252ZXJzaW9uCiAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiByZW5kZXJl
cigpLT5hYnNvbHV0ZVRvTG9jYWwocCwgZmFsc2UsIHRydWUpOworICAgICAgICByZXR1cm4gcmVu
ZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKHAsIFVzZVRyYW5zZm9ybXMpOwogCiAgICAgLy8gT3Ro
ZXJ3aXNlIGdvIHVwIHRoZSB0cmVlIGxvb2tpbmcgZm9yIGEgcmVuZGVyZXIKICAgICBFbGVtZW50
ICpwYXJlbnQgPSBhbmNlc3RvckVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCShyZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2NCw3ICsx
MjY0LDcgQEAgSW50UmVjdCBDYXJldEJhc2U6OmFic29sdXRlQm91bmRzRm9yTG9jYQogICAgIExh
eW91dFJlY3QgbG9jYWxSZWN0KHJlY3QpOwogICAgIGlmIChjYXJldFBhaW50ZXItPmlzQm94KCkp
CiAgICAgICAgIHRvUmVuZGVyQm94KGNhcmV0UGFpbnRlciktPmZsaXBGb3JXcml0aW5nTW9kZShs
b2NhbFJlY3QpOwotICAgIHJldHVybiBjYXJldFBhaW50ZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQo
RmxvYXRSZWN0KGxvY2FsUmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0dXJu
IGNhcmV0UGFpbnRlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9CiAKIElu
dFJlY3QgRnJhbWVTZWxlY3Rpb246OmFic29sdXRlQ2FyZXRCb3VuZHMoKQpJbmRleDogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCShyZXZpc2lvbiAxMzA2OTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzAsNyArMjMwLDcgQEAgSW50UmVjdCBSZW5kZXJlZFBvc2l0aW9uOjphYnNv
bHV0ZVJlY3QoTAogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogCiAgICAgSW50UmVjdCBsb2Nh
bFJlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KG1fcmVuZGVyZXItPmxvY2FsQ2FyZXRSZWN0KG1f
aW5saW5lQm94LCBtX29mZnNldCwgZXh0cmFXaWR0aFRvRW5kT2ZMaW5lKSk7Ci0gICAgcmV0dXJu
IGxvY2FsUmVjdCA9PSBJbnRSZWN0KCkgPyBJbnRSZWN0KCkgOiBtX3JlbmRlcmVyLT5sb2NhbFRv
QWJzb2x1dGVRdWFkKEZsb2F0UmVjdChsb2NhbFJlY3QpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
OworICAgIHJldHVybiBsb2NhbFJlY3QgPT0gSW50UmVjdCgpID8gSW50UmVjdCgpIDogbV9yZW5k
ZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSwgU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9CiAKIGJvb2wgcmVuZGVy
T2JqZWN0Q29udGFpbnNQb3NpdGlvbihSZW5kZXJPYmplY3QqIHRhcmdldCwgY29uc3QgUG9zaXRp
b24mIHBvc2l0aW9uKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0
aW9uLmNwcAkocmV2aXNpb24gMTMwNjkyKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNp
YmxlUG9zaXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MjQsNyArNjI0LDcgQEAgSW50UmVj
dCBWaXNpYmxlUG9zaXRpb246OmFic29sdXRlQ2FyZXRCbwogICAgIGlmIChsb2NhbFJlY3QuaXNF
bXB0eSgpIHx8ICFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKIAotICAgIHJl
dHVybiByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSku
ZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICByZXR1cm4gcmVuZGVyZXItPmxvY2FsVG9BYnNv
bHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5l
bmNsb3NpbmdCb3VuZGluZ0JveCgpOwogfQogCiBpbnQgVmlzaWJsZVBvc2l0aW9uOjpsaW5lRGly
ZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRpb24oKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDEzMDY5MikK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjg5LDcgKzEyODksNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94
RGVmYXVsdEV2CiAKICAgICAgICAgLy8gQ29udmVydCB0byBjb29yZHMgcmVsYXRpdmUgdG8gdGhl
IGxpc3QgYm94IGlmIG5lZWRlZC4KICAgICAgICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHN0
YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCk7Ci0gICAgICAgIEludFBvaW50IGxvY2FsT2Zm
c2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2
ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKSk7CisgICAgICAgIEludFBvaW50
IGxvY2FsT2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2Nh
bChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcykpOwogICAgICAgICBpbnQgbGlzdEluZGV4ID0gdG9SZW5kZXJMaXN0
Qm94KHJlbmRlcmVyKCkpLT5saXN0SW5kZXhBdE9mZnNldCh0b1NpemUobG9jYWxPZmZzZXQpKTsK
ICAgICAgICAgaWYgKGxpc3RJbmRleCA+PSAwKSB7CiAgICAgICAgICAgICBpZiAoIWRpc2FibGVk
KCkpIHsKQEAgLTEzMDksNyArMTMwOSw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RC
b3hEZWZhdWx0RXYKICAgICAgICAgaWYgKG1vdXNlRXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0
b24gfHwgIW1vdXNlRXZlbnQtPmJ1dHRvbkRvd24oKSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBJbnRQb2ludCBsb2NhbE9mZnNldCA9IHJvdW5kZWRJbnRQb2ludChyZW5kZXJlcigp
LT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwg
dHJ1ZSkpOworICAgICAgICBJbnRQb2ludCBsb2NhbE9mZnNldCA9IHJvdW5kZWRJbnRQb2ludChy
ZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigp
LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKICAgICAgICAgaW50
IGxpc3RJbmRleCA9IHRvUmVuZGVyTGlzdEJveChyZW5kZXJlcigpKS0+bGlzdEluZGV4QXRPZmZz
ZXQodG9TaXplKGxvY2FsT2Zmc2V0KSk7CiAgICAgICAgIGlmIChsaXN0SW5kZXggPj0gMCkgewog
ICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJKHJldmlzaW9uIDEzMDY5MikK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6
c2V0UG9zaXRpb25Gcm9tCiAgICAgICAgIHJldHVybjsKIAogICAgIGlucHV0LT5zZXRUZXh0QXNP
Zkxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KGlucHV0LT52YWx1ZSgpKTsKLSAgICBMYXlvdXRQ
b2ludCBvZmZzZXQgPSByb3VuZGVkTGF5b3V0UG9pbnQoaW5wdXQtPnJlbmRlcmVyKCktPmFic29s
dXRlVG9Mb2NhbChwb2ludCwgZmFsc2UsIHRydWUpKTsKKyAgICBMYXlvdXRQb2ludCBvZmZzZXQg
PSByb3VuZGVkTGF5b3V0UG9pbnQoaW5wdXQtPnJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChw
b2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiAgICAgYm9v
bCBpc1ZlcnRpY2FsID0gaGFzVmVydGljYWxBcHBlYXJhbmNlKGlucHV0KTsKICAgICBib29sIGlz
TGVmdFRvUmlnaHREaXJlY3Rpb24gPSByZW5kZXJCb3goKS0+c3R5bGUoKS0+aXNMZWZ0VG9SaWdo
dERpcmVjdGlvbigpOwogICAgIExheW91dFVuaXQgdHJhY2tTaXplOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAkocmV2aXNpb24g
MTMwNjkyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmQKICAgICB9CiAKICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50
ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKLSAgICBJbnRQb2ludCBsb2NhbCA9
IHJvdW5kZWRJbnRQb2ludChib3gtPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0
ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKSk7CisgICAgSW50UG9pbnQgbG9jYWwgPSByb3VuZGVk
SW50UG9pbnQoYm94LT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlv
bigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKICAgICBpZiAo
bW91c2VFdmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBtb3Vz
ZUV2ZW50LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlmIChib3gtPnBpeGVs
U25hcHBlZEJvcmRlckJveFJlY3QoKS5jb250YWlucyhsb2NhbCkpIHsKICAgICAgICAgICAgIC8v
IFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIG9mIEhUTUxJbnB1dEVsZW1lbnQgbWF5IHJ1biBKYXZh
U2NyaXB0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiAxMzA2OTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0NjIsNyArMzQ2Miw3IEBAIHZvaWQgRnJhbWVWaWV3OjphZGp1c3RQYWdlSGVpZ2h0RGVwcmVj
YXQKIAogSW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tUmVuZGVyZXIoY29uc3QgUmVuZGVy
T2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50UmVjdCYgcmVuZGVyZXJSZWN0KSBjb25zdAogewot
ICAgIEludFJlY3QgcmVjdCA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVj
dChyZW5kZXJlclJlY3QpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIEludFJlY3QgcmVj
dCA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChyZW5kZXJlclJlY3Qp
LCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKIAogICAg
IC8vIENvbnZlcnQgZnJvbSBwYWdlICgiYWJzb2x1dGUiKSB0byBGcmFtZVZpZXcgY29vcmRpbmF0
ZXMuCiAgICAgaWYgKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKQEAgLTM0ODEsMTMgKzM0ODEsMTMg
QEAgSW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRUb1JlbmRlcmVyKGNvbgogCiAgICAgLy8gRklY
TUU6IHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gbWFwIGFuIGFic29sdXRlIHJlY3QgZG93biB0byBh
IGxvY2FsIHF1YWQsIHNvIGp1c3QKICAgICAvLyBtb3ZlIHRoZSByZWN0IGZvciBub3cuCi0gICAg
cmVjdC5zZXRMb2NhdGlvbihyb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9Mb2Nh
bChyZWN0LmxvY2F0aW9uKCksIGZhbHNlLCB0cnVlIC8qIHVzZSB0cmFuc2Zvcm1zICovKSkpOwor
ICAgIHJlY3Quc2V0TG9jYXRpb24ocm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0ZVRv
TG9jYWwocmVjdC5sb2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpKSk7CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKIEludFBvaW50IEZyYW1lVmlldzo6Y29u
dmVydEZyb21SZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRQ
b2ludCYgcmVuZGVyZXJQb2ludCkgY29uc3QKIHsKLSAgICBJbnRQb2ludCBwb2ludCA9IHJvdW5k
ZWRJbnRQb2ludChyZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKHJlbmRlcmVyUG9pbnQsIGZhbHNl
LCB0cnVlIC8qIHVzZSB0cmFuc2Zvcm1zICovKSk7CisgICAgSW50UG9pbnQgcG9pbnQgPSByb3Vu
ZGVkSW50UG9pbnQocmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZShyZW5kZXJlclBvaW50LCBVc2VU
cmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKIAogICAgIC8vIENvbnZlcnQg
ZnJvbSBwYWdlICgiYWJzb2x1dGUiKSB0byBGcmFtZVZpZXcgY29vcmRpbmF0ZXMuCiAgICAgaWYg
KCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKQEAgLTM1MDMsNyArMzUwMyw3IEBAIEludFBvaW50IEZy
YW1lVmlldzo6Y29udmVydFRvUmVuZGVyZXIoY28KICAgICBpZiAoIWRlbGVnYXRlc1Njcm9sbGlu
ZygpKQogICAgICAgICBwb2ludCArPSBJbnRTaXplKHNjcm9sbFgoKSwgc2Nyb2xsWSgpKTsKIAot
ICAgIHJldHVybiByb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChwb2lu
dCwgZmFsc2UsIHRydWUgLyogdXNlIHRyYW5zZm9ybXMgKi8pKTsKKyAgICByZXR1cm4gcm91bmRl
ZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocG9pbnQsIFVzZVRyYW5zZm9ybXMg
fCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykpOwogfQogCiBJbnRSZWN0IEZyYW1lVmlldzo6Y29u
dmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UmVjdCYgbG9jYWxSZWN0KSBjb25zdApJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24g
MTMwNjkyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDY1LDcgKzEwNjUsNyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBh
aW50RG9jdW1lbnRNYXJrZXIoCiAgICAgICAgIC8vIGRpc3BsYXkgYSB0b29sVGlwLiBXZSBkb24n
dCBkbyB0aGlzIGZvciBtaXNzcGVsbGluZyBtYXJrZXJzLgogICAgICAgICBpZiAoZ3JhbW1hciB8
fCBpc0RpY3RhdGlvbk1hcmtlcikgewogICAgICAgICAgICAgbWFya2VyUmVjdC5tb3ZlKC1ib3hP
cmlnaW4ueCgpLCAtYm94T3JpZ2luLnkoKSk7Ci0gICAgICAgICAgICBtYXJrZXJSZWN0ID0gcmVu
ZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCkpLmVuY2xv
c2luZ0JvdW5kaW5nQm94KCk7CisgICAgICAgICAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+
bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCksIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogICAgICAgICAgICAgdG9SZW5kZXJl
ZERvY3VtZW50TWFya2VyKG1hcmtlciktPnNldFJlbmRlcmVkUmVjdChtYXJrZXJSZWN0KTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTExMDMsNyArMTEwMyw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6
cGFpbnRUZXh0TWF0Y2hNYXJrZXIKIAogICAgIC8vIEFsd2F5cyBjb21wdXRlIGFuZCBzdG9yZSB0
aGUgcmVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBtYXJrZXIuIFRoZSBjb21wdXRlZCByZWN0IGlz
IGluIGFic29sdXRlIGNvb3JkaW5hdGVzLgogICAgIEludFJlY3QgbWFya2VyUmVjdCA9IGVuY2xv
c2luZ0ludFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0Rm9yVGV4dChydW4sIEludFBvaW50KHgoKSwg
c2VsZWN0aW9uVG9wKCkpLCBzZWxIZWlnaHQsIHNQb3MsIGVQb3MpKTsKLSAgICBtYXJrZXJSZWN0
ID0gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCkp
LmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgbWFya2VyUmVjdCA9IHJlbmRlcmVyKCktPmxv
Y2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmtlclJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcykuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKICAgICB0b1JlbmRlcmVkRG9jdW1lbnRN
YXJrZXIobWFya2VyKS0+c2V0UmVuZGVyZWRSZWN0KG1hcmtlclJlY3QpOwogICAgIAogICAgIC8v
IE9wdGlvbmFsbHkgaGlnaGxpZ2h0IHRoZSB0ZXh0CkBAIC0xMTMxLDcgKzExMzEsNyBAQCB2b2lk
IElubGluZVRleHRCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwbGFjCiAgICAgCiAgICAgLy8gQ29tcHV0
ZSBhbmQgc3RvcmUgdGhlIHJlY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFya2VyLgogICAgIElu
dFJlY3QgbWFya2VyUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0Rm9y
VGV4dChydW4sIHN0YXJ0UG9pbnQsIGgsIHNQb3MsIGVQb3MpKTsKLSAgICBtYXJrZXJSZWN0ID0g
cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCkpLmVu
Y2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgbWFya2VyUmVjdCA9IHJlbmRlcmVyKCktPmxvY2Fs
VG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmtlclJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcykuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKICAgICB0b1JlbmRlcmVkRG9jdW1lbnRNYXJr
ZXIobWFya2VyKS0+c2V0UmVuZGVyZWRSZWN0KG1hcmtlclJlY3QpOwogfQogICAgIApJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCShyZXZpc2lvbiAxMzA2OTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MSw3ICs1MSw3IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0
ZSogcHIKICAgICBib29sIGZpeGVkID0gcmVuZGVyZXItPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgp
ICYmIHJlbmRlcmVyLT5zdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb247CiAgICAg
aWYgKGZpeGVkKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3Qgd29yayBjb3JyZWN0
bHkgd2l0aCB0cmFuc2Zvcm1zLgotICAgICAgICBGbG9hdFBvaW50IGZpeGVkT2Zmc2V0ID0gcmVu
ZGVyZXItPnZpZXcoKS0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgdHJ1ZSk7CisgICAg
ICAgIEZsb2F0UG9pbnQgZml4ZWRPZmZzZXQgPSByZW5kZXJlci0+dmlldygpLT5sb2NhbFRvQWJz
b2x1dGUoRmxvYXRQb2ludCgpLCBJc0ZpeGVkKTsKICAgICAgICAgbV9wYWludE9mZnNldCA9IExh
eW91dFNpemUoZml4ZWRPZmZzZXQueCgpLCBmaXhlZE9mZnNldC55KCkpICsgb2Zmc2V0OwogICAg
IH0gZWxzZQogICAgICAgICBtX3BhaW50T2Zmc2V0ID0gcHJldi0+bV9wYWludE9mZnNldCArIG9m
ZnNldDsKQEAgLTE0OCw3ICsxNDgsNyBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoUmVuZGVy
T2JqZWN0KiByCiAjZW5kaWYKIHsKICAgICBSZW5kZXJPYmplY3QqIGNvbnRhaW5lciA9IHJvb3Qt
PmNvbnRhaW5lcigpOwotICAgIEZsb2F0UG9pbnQgYWJzQ29udGVudFBvaW50ID0gY29udGFpbmVy
LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgRmxvYXRQ
b2ludCBhYnNDb250ZW50UG9pbnQgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBv
aW50KCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgbV9w
YWludE9mZnNldCA9IExheW91dFNpemUoYWJzQ29udGVudFBvaW50LngoKSwgYWJzQ29udGVudFBv
aW50LnkoKSk7CiAKICAgICBpZiAoY29udGFpbmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkgewpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAxMzA2
OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NzcwLDEwICs2NzcwLDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFic29sdXRl
UXVhZHMoVmVjdG9yPEYKICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ2NzgxCiAgICAgICAgIEZsb2F0UmVjdCBsb2NhbFJlY3QoMCwgLWNvbGxhcHNl
ZE1hcmdpbkJlZm9yZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCksIGhl
aWdodCgpICsgY29sbGFwc2VkTWFyZ2luQmVmb3JlKCkgKyBjb2xsYXBzZWRNYXJnaW5BZnRlcigp
KTsKLSAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0LCBm
YWxzZSwgd2FzRml4ZWQpKTsKKyAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1
YWQobG9jYWxSZWN0LCAwIC8qIG1vZGUgKi8sIHdhc0ZpeGVkKSk7CiAgICAgICAgIGNvbnRpbnVh
dGlvbigpLT5hYnNvbHV0ZVF1YWRzKHF1YWRzLCB3YXNGaXhlZCk7CiAgICAgfSBlbHNlCi0gICAg
ICAgIHF1YWRzLmFwcGVuZChSZW5kZXJCb3g6OmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0
KDAsIDAsIHdpZHRoKCksIGhlaWdodCgpKSwgZmFsc2UsIHdhc0ZpeGVkKSk7CisgICAgICAgIHF1
YWRzLmFwcGVuZChSZW5kZXJCb3g6OmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KDAsIDAs
IHdpZHRoKCksIGhlaWdodCgpKSwgMCAvKiBtb2RlICovLCB3YXNGaXhlZCkpOwogfQogCiBMYXlv
dXRSZWN0IFJlbmRlckJsb2NrOjpyZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBj
b25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9u
IDEzMDY5MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MDMsNyArNDAzLDcgQEAgdm9pZCBSZW5kZXJCb3g6OmFic29sdXRlUmVj
dHMoVmVjdG9yPEludAogCiB2b2lkIFJlbmRlckJveDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8Rmxv
YXRRdWFkPiYgcXVhZHMsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewotICAgIHF1YWRzLmFwcGVu
ZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSks
IGZhbHNlLCB3YXNGaXhlZCkpOworICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFk
KEZsb2F0UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSksIDAgLyogbW9kZSAqLywgd2FzRml4
ZWQpKTsKIH0KIAogdm9pZCBSZW5kZXJCb3g6OnVwZGF0ZUxheWVyVHJhbnNmb3JtKCkKQEAgLTQz
Niw3ICs0MzYsNyBAQCBJbnRSZWN0IFJlbmRlckJveDo6YWJzb2x1dGVDb250ZW50Qm94KCkKIHsK
ICAgICAvLyBUaGlzIGlzIHdyb25nIHdpdGggdHJhbnNmb3JtcyBhbmQgZmxpcHBlZCB3cml0aW5n
IG1vZGVzLgogICAgIEludFJlY3QgcmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QoY29udGVudEJv
eFJlY3QoKSk7Ci0gICAgRmxvYXRQb2ludCBhYnNQb3MgPSBsb2NhbFRvQWJzb2x1dGUoRmxvYXRQ
b2ludCgpKTsKKyAgICBGbG9hdFBvaW50IGFic1BvcyA9IGxvY2FsVG9BYnNvbHV0ZSgpOwogICAg
IHJlY3QubW92ZShhYnNQb3MueCgpLCBhYnNQb3MueSgpKTsKICAgICByZXR1cm4gcmVjdDsKIH0K
QEAgLTEyNTgsNyArMTI1OCw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjpwZXJwZW5kaWN1bGFy
Q29udGEKICAgICByZXR1cm4gY2ItPmFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94
U2l6aW5nKGxvZ2ljYWxIZWlnaHRMZW5ndGgudmFsdWUoKSk7CiB9CiAKLXZvaWQgUmVuZGVyQm94
OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwTG9jYWxUb0NvbnRhaW5l
ckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJCb3g6Om1hcExv
Y2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUs
IGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIGlmIChyZXBhaW50Q29udGFpbmVyID09IHRo
aXMpCiAgICAgICAgIHJldHVybjsKQEAgLTEzNjMsMTggKzEzNjMsMTggQEAgY29uc3QgUmVuZGVy
T2JqZWN0KiBSZW5kZXJCb3g6OnB1c2hNYXBwaQogICAgIHJldHVybiBhbmNlc3RvclNraXBwZWQg
PyBhbmNlc3RvclRvU3RvcEF0IDogY29udGFpbmVyOwogfQogCi12b2lkIFJlbmRlckJveDo6bWFw
QWJzb2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0Cit2b2lkIFJlbmRlckJveDo6bWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1TdGF0
ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7CiAgICAgYm9vbCBpc0ZpeGVkUG9zID0gc3R5bGUo
KS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uOwogICAgIGJvb2wgaGFzVHJhbnNmb3JtID0g
aGFzTGF5ZXIoKSAmJiBsYXllcigpLT50cmFuc2Zvcm0oKTsKLSAgICBpZiAoaGFzVHJhbnNmb3Jt
KSB7CisgICAgaWYgKGhhc1RyYW5zZm9ybSAmJiAhaXNGaXhlZFBvcykgewogICAgICAgICAvLyBJ
ZiB0aGlzIGJveCBoYXMgYSB0cmFuc2Zvcm0sIGl0IGFjdHMgYXMgYSBmaXhlZCBwb3NpdGlvbiBj
b250YWluZXIgZm9yIGZpeGVkIGRlc2NlbmRhbnRzLAogICAgICAgICAvLyBhbmQgbWF5IGl0c2Vs
ZiBhbHNvIGJlIGZpeGVkIHBvc2l0aW9uLiBTbyBwcm9wYWdhdGUgJ2ZpeGVkJyB1cCBvbmx5IGlm
IHRoaXMgYm94IGlzIGZpeGVkIHBvc2l0aW9uLgotICAgICAgICBmaXhlZCAmPSBpc0ZpeGVkUG9z
OwotICAgIH0gZWxzZQotICAgICAgICBmaXhlZCB8PSBpc0ZpeGVkUG9zOworICAgICAgICBtb2Rl
ICY9IH5Jc0ZpeGVkOworICAgIH0gZWxzZSBpZiAoaXNGaXhlZFBvcykKKyAgICAgICAgbW9kZSB8
PSBJc0ZpeGVkOwogCi0gICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2Nh
bFBvaW50KGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KG1vZGUsIHRyYW5zZm9ybVN0
YXRlKTsKIH0KIAogTGF5b3V0U2l6ZSBSZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIoUmVu
ZGVyT2JqZWN0KiBvLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIGJvb2wqIG9mZnNldERlcGVu
ZHNPblBvaW50KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAko
cmV2aXNpb24gMTMwNjkyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5o
CSh3b3JraW5nIGNvcHkpCkBAIC01NzQsOSArNTc0LDkgQEAgcHJvdGVjdGVkOgogICAgIAogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRDb21wdXRlU2l6ZUFzUmVwbGFjZWQoKSBjb25zdCB7IHJldHVy
biBpc1JlcGxhY2VkKCkgJiYgIWlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCk7IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5lckZs
YWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywg
Ym9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFw
TG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFp
bmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqLCBSZW5kZXJHZW9tZXRy
eU1hcCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikg
Y29uc3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3Jk
aW5hdGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKIAogICAgIHZvaWQgcGFp
bnRSb290Qm94RmlsbExheWVycyhjb25zdCBQYWludEluZm8mKTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCShyZXZpc2lv
biAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6Y29tcHV0ZVN0aWNreQogICAgIC8vIENvbXB1dGUgdGhlIGNvbnRhaW5lci1y
ZWxhdGl2ZSBhcmVhIHdpdGhpbiB3aGljaCB0aGUgc3RpY2t5IGVsZW1lbnQgaXMgYWxsb3dlZCB0
byBtb3ZlLgogICAgIGNvbnRhaW5lckNvbnRlbnRSZWN0Lm1vdmUobWluTGVmdE1hcmdpbiwgbWlu
VG9wTWFyZ2luKTsKICAgICBjb250YWluZXJDb250ZW50UmVjdC5jb250cmFjdChtaW5MZWZ0TWFy
Z2luICsgbWluUmlnaHRNYXJnaW4sIG1pblRvcE1hcmdpbiArIG1pbkJvdHRvbU1hcmdpbik7Ci0g
ICAgY29uc3RyYWludHMuc2V0QWJzb2x1dGVDb250YWluaW5nQmxvY2tSZWN0KGNvbnRhaW5pbmdC
bG9jay0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QoY29udGFpbmVyQ29udGVudFJlY3Qp
KS5ib3VuZGluZ0JveCgpKTsKKyAgICBjb25zdHJhaW50cy5zZXRBYnNvbHV0ZUNvbnRhaW5pbmdC
bG9ja1JlY3QoY29udGFpbmluZ0Jsb2NrLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChj
b250YWluZXJDb250ZW50UmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5ib3VuZGluZ0Jv
eCgpKTsKIAogICAgIExheW91dFJlY3Qgc3RpY2t5Qm94UmVjdCA9IGZyYW1lUmVjdEZvclN0aWNr
eVBvc2l0aW9uaW5nKCk7CiAgICAgTGF5b3V0UmVjdCBmbGlwcGVkU3RpY2t5Qm94UmVjdCA9IHN0
aWNreUJveFJlY3Q7CkBAIC00NzgsNyArNDc4LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6Y29tcHV0ZVN0aWNreQogICAgIExheW91dFBvaW50IHN0aWNreUxvY2F0aW9uID0gZmxpcHBl
ZFN0aWNreUJveFJlY3QubG9jYXRpb24oKTsKIAogICAgIC8vIEZJWE1FOiBzdWNrcyB0byBjYWxs
IGxvY2FsVG9BYnNvbHV0ZSBhZ2FpbiwgYnV0IHdlIGNhbid0IGp1c3Qgb2Zmc2V0IGZyb20gdGhl
IHByZXZpb3VzbHkgY29tcHV0ZWQgcmVjdCBpZiB0aGVyZSBhcmUgdHJhbnNmb3Jtcy4KLSAgICBG
bG9hdFJlY3QgYWJzQ29udGFpbmVyRnJhbWUgPSBjb250YWluaW5nQmxvY2stPmxvY2FsVG9BYnNv
bHV0ZVF1YWQoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgY29udGFpbmluZ0Jsb2NrLT5zaXplKCkp
KS5ib3VuZGluZ0JveCgpOworICAgIEZsb2F0UmVjdCBhYnNDb250YWluZXJGcmFtZSA9IGNvbnRh
aW5pbmdCbG9jay0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBj
b250YWluaW5nQmxvY2stPnNpemUoKSksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5ib3VuZGlu
Z0JveCgpOwogICAgIC8vIFdlIGNhbid0IGNhbGwgbG9jYWxUb0Fic29sdXRlIG9uIHx0aGlzfCBi
ZWNhdXNlIHRoYXQgd2lsbCByZWN1ci4gRklYTUU6IEZvciBub3csIGFzc3VtZSB0aGF0IHx0aGlz
fCBpcyBub3QgdHJhbnNmb3JtZWQuCiAgICAgRmxvYXRSZWN0IGFic29sdXRlU3RpY2t5Qm94UmVj
dChhYnNDb250YWluZXJGcmFtZS5sb2NhdGlvbigpICsgc3RpY2t5TG9jYXRpb24sIGZsaXBwZWRT
dGlja3lCb3hSZWN0LnNpemUoKSk7CiAgICAgY29uc3RyYWludHMuc2V0QWJzb2x1dGVTdGlja3lC
b3hSZWN0KGFic29sdXRlU3RpY2t5Qm94UmVjdCk7CkBAIC0yNjk2LDEzICsyNjk2LDEzIEBAIGJv
b2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnNob3VsZEFudGlhbGkKICAgICByZXR1cm4gIWNvbnRl
eHQtPmdldENUTSgpLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uT3JGbGlwcGVkKCk7CiB9CiAKLXZv
aWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4
ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBj
b25zdAordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQo
TWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUp
IGNvbnN0CiB7CiAgICAgUmVuZGVyT2JqZWN0KiBvID0gY29udGFpbmVyKCk7CiAgICAgaWYgKCFv
KQogICAgICAgICByZXR1cm47CiAKLSAgICBvLT5tYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChmaXhl
ZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOworICAgIG8tPm1hcEFic29sdXRlVG9M
b2NhbFBvaW50KG1vZGUsIHRyYW5zZm9ybVN0YXRlKTsKIAogICAgIExheW91dFNpemUgY29udGFp
bmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCBMYXlvdXRQb2ludCgpKTsKIApAQCAt
MjcxMyw4ICsyNzEzLDggQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJzb2x1dGVU
bwogICAgICAgICBibG9jay0+YWRqdXN0Rm9yQ29sdW1uUmVjdChjb250YWluZXJPZmZzZXQsIHBv
aW50KTsKICAgICB9CiAKLSAgICBib29sIHByZXNlcnZlM0QgPSB1c2VUcmFuc2Zvcm1zICYmIChv
LT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOwotICAg
IGlmICh1c2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIobykp
IHsKKyAgICBib29sIHByZXNlcnZlM0QgPSBtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5
bGUoKS0+cHJlc2VydmVzM0QoKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKKyAgICBpZiAo
bW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihv
KSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zv
cm1Gcm9tQ29udGFpbmVyKG8sIGNvbnRhaW5lck9mZnNldCwgdCk7CiAgICAgICAgIHRyYW5zZm9y
bVN0YXRlLmFwcGx5VHJhbnNmb3JtKHQsIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNj
dW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
CShyZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihGb250
QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9u
TW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNm
b3JtcywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zv
cm1TdGF0ZSYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdm9pZCBoaWdoUXVhbGl0eVJlcGFpbnRU
aW1lckZpcmVkKFRpbWVyPFJlbmRlckJveE1vZGVsT2JqZWN0PiopOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAJKHJldmlz
aW9uIDEzMDY5MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyMiw3ICszMjIsNyBAQCBib29sIFJlbmRlckVt
YmVkZGVkT2JqZWN0Ojppc0luVW5hdmFpbGFiCiAKIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OmlzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihNb3VzZUV2ZW50KiBldmVudCkgY29uc3QK
IHsKLSAgICByZXR1cm4gaXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKHJvdW5kZWRMYXlv
dXRQb2ludChhYnNvbHV0ZVRvTG9jYWwoZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2Us
IHRydWUpKSk7CisgICAgcmV0dXJuIGlzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihyb3Vu
ZGVkTGF5b3V0UG9pbnQoYWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCks
IFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykpKTsKIH0KIAogc3RhdGlj
IGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oRG9jdW1lbnQqIGRv
Y3VtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24g
cGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRnJhbWVTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGcmFtZVNldC5jcHAJKHJldmlzaW9uIDEzMDY5MikKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5OSw3
ICs2OTksNyBAQCBib29sIFJlbmRlckZyYW1lU2V0Ojp1c2VyUmVzaXplKE1vdXNlRXZlCiAgICAg
ICAgIGlmIChuZWVkc0xheW91dCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICBpZiAoZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2dC0+
YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewotICAgICAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBv
cyA9IGFic29sdXRlVG9Mb2NhbChldnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUp
OworICAgICAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBvcyA9IGFic29sdXRlVG9Mb2NhbChldnQt
PmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKTsKICAgICAgICAgICAgIHN0YXJ0UmVzaXppbmcobV9jb2xzLCBsb2NhbFBvcy54KCkpOwog
ICAgICAgICAgICAgc3RhcnRSZXNpemluZyhtX3Jvd3MsIGxvY2FsUG9zLnkoKSk7CiAgICAgICAg
ICAgICBpZiAobV9jb2xzLm1fc3BsaXRCZWluZ1Jlc2l6ZWQgIT0gbm9TcGxpdCB8fCBtX3Jvd3Mu
bV9zcGxpdEJlaW5nUmVzaXplZCAhPSBub1NwbGl0KSB7CkBAIC03MDksNyArNzA5LDcgQEAgYm9v
bCBSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZShNb3VzZUV2ZQogICAgICAgICB9CiAgICAgfSBl
bHNlIHsKICAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVF
dmVudCB8fCAoZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCAmJiBldnQt
PmJ1dHRvbigpID09IExlZnRCdXR0b24pKSB7Ci0gICAgICAgICAgICBGbG9hdFBvaW50IGxvY2Fs
UG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1
ZSk7CisgICAgICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2
dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpOwogICAgICAgICAgICAgY29udGludWVSZXNpemluZyhtX2NvbHMsIGxvY2FsUG9zLngo
KSk7CiAgICAgICAgICAgICBjb250aW51ZVJlc2l6aW5nKG1fcm93cywgbG9jYWxQb3MueSgpKTsK
ICAgICAgICAgICAgIGlmIChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50
ICYmIGV2dC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCShyZXZpc2lvbiAxMzA2OTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyR2VvbWV0cnlNYXA6OmFi
c29sdXRlUG8KICAgICB9CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgRmxvYXRQb2ludCBy
ZW5kZXJlck1hcHBlZFJlc3VsdCA9IG1fbWFwcGluZy5sYXN0KCkubV9yZW5kZXJlci0+bG9jYWxU
b0Fic29sdXRlKHAsIGZhbHNlLCB0cnVlKTsKKyAgICBGbG9hdFBvaW50IHJlbmRlcmVyTWFwcGVk
UmVzdWx0ID0gbV9tYXBwaW5nLmxhc3QoKS5tX3JlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUocCwg
VXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICBBU1NFUlQocmVu
ZGVyZXJNYXBwZWRSZXN1bHQgPT0gcmVzdWx0KTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24gMTMwNjkyKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExMTIsNyArMTExMiw3IEBAIExheW91dFNpemUgUmVuZGVySW5saW5lOjpvZmZzZXRGcm9tQ29u
dGEKICAgICByZXR1cm4gb2Zmc2V0OwogfQogCi12b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxU
b0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2Rl
LCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29u
dGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9y
bVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3
YXNGaXhlZCkgY29uc3QKIHsKICAgICBpZiAocmVwYWludENvbnRhaW5lciA9PSB0aGlzKQogICAg
ICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5l
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5o
CShyZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCByZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZp
eGVkKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFp
bmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAg
fCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29u
c3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qg
T1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50
KGNvbnN0IExheW91dFBvaW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAJKHJldmlzaW9uIDEzMDY5MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNzEsNyArMTE3MSw3IEBAIFJl
bmRlckxheWVyKiBSZW5kZXJMYXllcjo6Y2xpcHBpbmdSb290Rm8KIExheW91dFBvaW50IFJlbmRl
ckxheWVyOjphYnNvbHV0ZVRvQ29udGVudHMoY29uc3QgTGF5b3V0UG9pbnQmIGFic29sdXRlUG9p
bnQpIGNvbnN0CiB7CiAgICAgLy8gV2UgZG9uJ3QgdXNlIGNvbnZlcnRUb0xheWVyQ29vcmRzIGJl
Y2F1c2UgaXQgZG9lc24ndCBrbm93IGFib3V0IHRyYW5zZm9ybXMKLSAgICByZXR1cm4gcm91bmRl
ZExheW91dFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZVBvaW50LCBm
YWxzZSwgdHJ1ZSkpOworICAgIHJldHVybiByb3VuZGVkTGF5b3V0UG9pbnQocmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKGFic29sdXRlUG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcykpOwogfQogCiBib29sIFJlbmRlckxheWVyOjpjYW5ub3RCbGl0VG9XaW5k
b3coKSBjb25zdApAQCAtMTQ4MCw3ICsxNDgwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y29udmVy
dFRvTGF5ZXJDb29yZHMoYwogICAgIGlmIChwb3NpdGlvbiA9PSBGaXhlZFBvc2l0aW9uICYmICFy
ZW5kZXJlcigpLT5pblJlbmRlckZsb3dUaHJlYWQoKSAmJiAoIWFuY2VzdG9yTGF5ZXIgfHwgYW5j
ZXN0b3JMYXllciA9PSByZW5kZXJlcigpLT52aWV3KCktPmxheWVyKCkpKSB7CiAgICAgICAgIC8v
IElmIHRoZSBmaXhlZCBsYXllcidzIGNvbnRhaW5lciBpcyB0aGUgcm9vdCwganVzdCBhZGQgaW4g
dGhlIG9mZnNldCBvZiB0aGUgdmlldy4gV2UgY2FuIG9idGFpbiB0aGlzIGJ5IGNhbGxpbmcKICAg
ICAgICAgLy8gbG9jYWxUb0Fic29sdXRlKCkgb24gdGhlIFJlbmRlclZpZXcuCi0gICAgICAgIEZs
b2F0UG9pbnQgYWJzUG9zID0gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQo
KSwgdHJ1ZSk7CisgICAgICAgIEZsb2F0UG9pbnQgYWJzUG9zID0gcmVuZGVyZXIoKS0+bG9jYWxU
b0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgSXNGaXhlZCk7CiAgICAgICAgIGxvY2F0aW9uICs9IExh
eW91dFNpemUoYWJzUG9zLngoKSwgYWJzUG9zLnkoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC0xNzQyLDcgKzE3NDIsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhpbnQgeCwg
aW50IHkpCiAKICAgICAgICAgRmxvYXRRdWFkIHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQgPSBG
bG9hdFF1YWQobV9yZXBhaW50UmVjdCk7CiAgICAgICAgIGlmIChyZXBhaW50Q29udGFpbmVyKQot
ICAgICAgICAgICAgcXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCA9IHJlcGFpbnRDb250YWluZXIt
PmxvY2FsVG9BYnNvbHV0ZVF1YWQocXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CisgICAgICAg
ICAgICBxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50ID0gcmVwYWludENvbnRhaW5lci0+bG9jYWxU
b0Fic29sdXRlUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50LCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3Jtcyk7CiAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+ZGlzcGF0Y2hGYWtlTW91
c2VNb3ZlRXZlbnRTb29uSW5RdWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOwogICAgIH0K
IApAQCAtNDAyOSw3ICs0MDI5LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJl
Y3RzKGNvbgogICAgICAgICAvLyBzb21lIHRyYW5zZm9ybWVkIGxheWVyIGJvdW5kYXJ5LCBmb3Ig
ZXhhbXBsZSwgaW4gdGhlIFJlbmRlckxheWVyQ29tcG9zaXRvciBvdmVybGFwTWFwLCB3aGVyZQog
ICAgICAgICAvLyBjbGlwUmVjdHMgYXJlIG5lZWRlZCBpbiB2aWV3IHNwYWNlLgogICAgICAgICBM
YXlvdXRQb2ludCBvZmZzZXQ7Ci0gICAgICAgIG9mZnNldCA9IHJvdW5kZWRMYXlvdXRQb2ludChy
ZW5kZXJlcigpLT5sb2NhbFRvQ29udGFpbmVyUG9pbnQoRmxvYXRQb2ludCgpLCByb290TGF5ZXIt
PnJlbmRlcmVyKCksIGZhbHNlLCBmYWxzZSwgMCkpOworICAgICAgICBvZmZzZXQgPSByb3VuZGVk
TGF5b3V0UG9pbnQocmVuZGVyZXIoKS0+bG9jYWxUb0NvbnRhaW5lclBvaW50KEZsb2F0UG9pbnQo
KSwgcm9vdExheWVyLT5yZW5kZXJlcigpKSk7CiAgICAgICAgIFJlbmRlclZpZXcqIHZpZXcgPSBy
ZW5kZXJlcigpLT52aWV3KCk7CiAgICAgICAgIEFTU0VSVCh2aWV3KTsKICAgICAgICAgaWYgKHZp
ZXcgJiYgY2xpcFJlY3RzLmZpeGVkKCkgJiYgcm9vdExheWVyLT5yZW5kZXJlcigpID09IHZpZXcp
IHsKQEAgLTQxNTYsNyArNDE1Niw3IEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmNoaWxkcmVu
Q2xpcFJlY3QKICAgICBDbGlwUmVjdCBiYWNrZ3JvdW5kUmVjdCwgZm9yZWdyb3VuZFJlY3QsIG91
dGxpbmVSZWN0OwogICAgIC8vIE5lZWQgdG8gdXNlIHRlbXBvcmFyeSBjbGlwIHJlY3RzLCBiZWNh
dXNlIHRoZSB2YWx1ZSBvZiAnZG9udENsaXBUb092ZXJmbG93JyBtYXkgYmUgZGlmZmVyZW50IGZy
b20gdGhlIHBhaW50aW5nIHBhdGggKDxyZGFyOi8vcHJvYmxlbS8xMTg0NDkwOT4pLgogICAgIGNh
bGN1bGF0ZVJlY3RzKGNsaXBwaW5nUm9vdExheWVyLCAwLCBUZW1wb3JhcnlDbGlwUmVjdHMsIHJl
bmRlclZpZXctPnVuc2NhbGVkRG9jdW1lbnRSZWN0KCksIGxheWVyQm91bmRzLCBiYWNrZ3JvdW5k
UmVjdCwgZm9yZWdyb3VuZFJlY3QsIG91dGxpbmVSZWN0KTsKLSAgICByZXR1cm4gY2xpcHBpbmdS
b290TGF5ZXItPnJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGZvcmVn
cm91bmRSZWN0LnJlY3QoKSkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0dXJuIGNs
aXBwaW5nUm9vdExheWVyLT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVh
ZChmb3JlZ3JvdW5kUmVjdC5yZWN0KCkpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9z
aW5nQm91bmRpbmdCb3goKTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6c2VsZkNsaXBS
ZWN0KCkgY29uc3QKQEAgLTQxNjgsNyArNDE2OCw3IEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6
OnNlbGZDbGlwUmVjdCgpIGMKICAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRzOwogICAgIENsaXBS
ZWN0IGJhY2tncm91bmRSZWN0LCBmb3JlZ3JvdW5kUmVjdCwgb3V0bGluZVJlY3Q7CiAgICAgY2Fs
Y3VsYXRlUmVjdHMoY2xpcHBpbmdSb290TGF5ZXIsIDAsIFBhaW50aW5nQ2xpcFJlY3RzLCByZW5k
ZXJWaWV3LT5kb2N1bWVudFJlY3QoKSwgbGF5ZXJCb3VuZHMsIGJhY2tncm91bmRSZWN0LCBmb3Jl
Z3JvdW5kUmVjdCwgb3V0bGluZVJlY3QpOwotICAgIHJldHVybiBjbGlwcGluZ1Jvb3RMYXllci0+
cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQoYmFja2dyb3VuZFJlY3Qu
cmVjdCgpKSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICByZXR1cm4gY2xpcHBpbmdSb290
TGF5ZXItPnJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGJhY2tncm91
bmRSZWN0LnJlY3QoKSksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGlu
Z0JveCgpOwogfQogCiBMYXlvdXRSZWN0IFJlbmRlckxheWVyOjpsb2NhbENsaXBSZWN0KCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCShyZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyOCw3ICsxODI4LDcgQEAg
Ym9vbCBSZW5kZXJMYXllckJhY2tpbmc6OmNvbnRlbnRzVmlzaWJsZQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdCh2aWV3LT52aXNpYmxlQ29u
dGVudFJlY3QoKSk7Ci0gICAgRmxvYXRRdWFkIGFic29sdXRlQ29udGVudFF1YWQgPSByZW5kZXJl
cigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChsb2NhbENvbnRlbnRSZWN0KSk7Cisg
ICAgRmxvYXRRdWFkIGFic29sdXRlQ29udGVudFF1YWQgPSByZW5kZXJlcigpLT5sb2NhbFRvQWJz
b2x1dGVRdWFkKEZsb2F0UmVjdChsb2NhbENvbnRlbnRSZWN0KSwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpOwogICAgIHJldHVybiBhYnNvbHV0ZUNvbnRlbnRRdWFkLmVuY2xvc2luZ0JvdW5kaW5n
Qm94KCkuaW50ZXJzZWN0cyh2aXNpYmxlQ29udGVudFJlY3QpOwogfQogI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwCShy
ZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFD
b250cm9scy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw3ICsyMTMsNyBAQCBJbnRQb2ludCBS
ZW5kZXJNZWRpYUNvbnRyb2xzOjp2b2x1bWVTbGlkCiAKICAgICBmbG9hdCB6b29tTGV2ZWwgPSBt
dXRlQnV0dG9uQm94LT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCk7CiAgICAgaW50IHkgPSB5T2Zm
c2V0ICogem9vbUxldmVsICsgbXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkT2Zmc2V0SGVpZ2h0
KCkgLSBzaXplLmhlaWdodCgpOwotICAgIEZsb2F0UG9pbnQgYWJzUG9pbnQgPSBtdXRlQnV0dG9u
Qm94LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludChtdXRlQnV0dG9uQm94LT5waXhlbFNuYXBw
ZWRPZmZzZXRMZWZ0KCksIHkpLCB0cnVlLCB0cnVlKTsKKyAgICBGbG9hdFBvaW50IGFic1BvaW50
ID0gbXV0ZUJ1dHRvbkJveC0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQobXV0ZUJ1dHRvbkJv
eC0+cGl4ZWxTbmFwcGVkT2Zmc2V0TGVmdCgpLCB5KSwgSXNGaXhlZCB8IFVzZVRyYW5zZm9ybXMg
fCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgaWYgKGFic1BvaW50LnkoKSA8IDApCiAg
ICAgICAgIHkgPSBtdXRlQnV0dG9uQm94LT5waXhlbFNuYXBwZWRIZWlnaHQoKTsKICAgICByZXR1
cm4gSW50UG9pbnQoeE9mZnNldCAqIHpvb21MZXZlbCwgeSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAJKHJldmlzaW9uIDEzMDY5MikKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKQogCiAg
ICAgLy8gQ29tcHV0ZSB0aGUgdG9wIGxlZnQgdGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50
LCBidXQgdXNlCiAgICAgLy8gdGhlIGFjdHVhbCB3aWR0aCBvZiB0aGUgZWxlbWVudCB0byBzaXpl
IHRoZSBwb3B1cC4KLSAgICBGbG9hdFBvaW50IGFic1RvcExlZnQgPSBsb2NhbFRvQWJzb2x1dGUo
RmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0g
bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRG
b3JUcmFuc2Zvcm1zKTsKICAgICBJbnRSZWN0IGFic0JvdW5kcyA9IGFic29sdXRlQm91bmRpbmdC
b3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zKCk7CiAgICAgYWJzQm91bmRzLnNldExvY2F0aW9uKHJv
dW5kZWRJbnRQb2ludChhYnNUb3BMZWZ0KSk7CiAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVj
dCA9IHNlbGVjdEVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCShyZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwMiw3ICsxMjAyLDcgQEAg
dm9pZCBSZW5kZXJPYmplY3Q6OmFic29sdXRlRm9jdXNSaW5nUXVhZAogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICBJbnRSZWN0IHJlY3QgPSByZWN0c1tp
XTsKICAgICAgICAgcmVjdC5tb3ZlKC1hYnNvbHV0ZVBvaW50LngoKSwgLWFic29sdXRlUG9pbnQu
eSgpKTsKLSAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFk
KHJlY3QpKSk7CisgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0
UXVhZChyZWN0KSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKICAgICB9CiB9CiAKQEAgLTIw
MDYsMzAgKzIwMDYsMjUgQEAgTGF5b3V0UmVjdCBSZW5kZXJPYmplY3Q6OnZpZXdSZWN0KCkgY29u
cwogICAgIHJldHVybiB2aWV3KCktPnZpZXdSZWN0KCk7CiB9CiAKLUZsb2F0UG9pbnQgUmVuZGVy
T2JqZWN0Ojpsb2NhbFRvQWJzb2x1dGUoY29uc3QgRmxvYXRQb2ludCYgbG9jYWxQb2ludCwgYm9v
bCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zKSBjb25zdAorRmxvYXRQb2ludCBSZW5kZXJPYmpl
Y3Q6OmxvY2FsVG9BYnNvbHV0ZShjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBvaW50LCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUpIGNvbnN0CiB7CiAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3Jt
U3RhdGUoVHJhbnNmb3JtU3RhdGU6OkFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uLCBsb2NhbFBvaW50
KTsKLSAgICBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxp
cDsKLSAgICBpZiAoZml4ZWQpCi0gICAgICAgIG1vZGUgfD0gSXNGaXhlZDsKLSAgICBpZiAodXNl
VHJhbnNmb3JtcykKLSAgICAgICAgbW9kZSB8PSBVc2VUcmFuc2Zvcm1zOwotICAgIG1hcExvY2Fs
VG9Db250YWluZXIoMCwgdHJhbnNmb3JtU3RhdGUsIG1vZGUpOworICAgIG1hcExvY2FsVG9Db250
YWluZXIoMCwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgfCBBcHBseUNvbnRhaW5lckZsaXApOwogICAg
IHRyYW5zZm9ybVN0YXRlLmZsYXR0ZW4oKTsKICAgICAKICAgICByZXR1cm4gdHJhbnNmb3JtU3Rh
dGUubGFzdFBsYW5hclBvaW50KCk7CiB9CiAKLUZsb2F0UG9pbnQgUmVuZGVyT2JqZWN0OjphYnNv
bHV0ZVRvTG9jYWwoY29uc3QgRmxvYXRQb2ludCYgY29udGFpbmVyUG9pbnQsIGJvb2wgZml4ZWQs
IGJvb2wgdXNlVHJhbnNmb3JtcykgY29uc3QKK0Zsb2F0UG9pbnQgUmVuZGVyT2JqZWN0OjphYnNv
bHV0ZVRvTG9jYWwoY29uc3QgRmxvYXRQb2ludCYgY29udGFpbmVyUG9pbnQsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgbW9kZSkgY29uc3QKIHsKICAgICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1TdGF0
ZShUcmFuc2Zvcm1TdGF0ZTo6VW5hcHBseUludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24sIGNvbnRh
aW5lclBvaW50KTsKLSAgICBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChmaXhlZCwgdXNlVHJhbnNm
b3JtcywgdHJhbnNmb3JtU3RhdGUpOworICAgIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KG1vZGUs
IHRyYW5zZm9ybVN0YXRlKTsKICAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CiAgICAgCiAg
ICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLmxhc3RQbGFuYXJQb2ludCgpOwogfQogCi12b2lkIFJl
bmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2Fs
VG9Db250YWluZXJGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVy
T2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0
ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBpZiAocmVwYWludENv
bnRhaW5lciA9PSB0aGlzKQogICAgICAgICByZXR1cm47CkBAIC0yMDc1LDExICsyMDcwLDExIEBA
IGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpwdXNoTWEKICAgICByZXR1cm4gY29u
dGFpbmVyOwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQo
Ym9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3Jt
U3RhdGUpIGNvbnN0Cit2b2lkIFJlbmRlck9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQo
TWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUp
IGNvbnN0CiB7CiAgICAgUmVuZGVyT2JqZWN0KiBvID0gcGFyZW50KCk7CiAgICAgaWYgKG8pIHsK
LSAgICAgICAgby0+bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoZml4ZWQsIHVzZVRyYW5zZm9ybXMs
IHRyYW5zZm9ybVN0YXRlKTsKKyAgICAgICAgby0+bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQobW9k
ZSwgdHJhbnNmb3JtU3RhdGUpOwogICAgICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCiAg
ICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKHRvUmVuZGVyQm94KG8pLT5zY3JvbGxlZENv
bnRlbnRPZmZzZXQoKSk7CiAgICAgfQpAQCAtMjEyMywzMSArMjExOCwyMSBAQCB2b2lkIFJlbmRl
ck9iamVjdDo6Z2V0VHJhbnNmb3JtRnJvbUNvbnRhCiAjZW5kaWYKIH0KIAotRmxvYXRRdWFkIFJl
bmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiBsb2NhbFF1
YWQsIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgc25hcE9m
ZnNldEZvclRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAorRmxv
YXRRdWFkIFJlbmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFk
JiBsb2NhbFF1YWQsIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgLy8g
VHJhY2sgdGhlIHBvaW50IGF0IHRoZSBjZW50ZXIgb2YgdGhlIHF1YWQncyBib3VuZGluZyBib3gu
IEFzIG1hcExvY2FsVG9Db250YWluZXIoKSBjYWxscyBvZmZzZXRGcm9tQ29udGFpbmVyKCksCiAg
ICAgLy8gaXQgd2lsbCB1c2UgdGhhdCBwb2ludCBhcyB0aGUgcmVmZXJlbmNlIHBvaW50IHRvIGRl
Y2lkZSB3aGljaCBjb2x1bW4ncyB0cmFuc2Zvcm0gdG8gYXBwbHkgaW4gbXVsdGlwbGUtY29sdW1u
IGJsb2Nrcy4KICAgICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0
ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24sIGxvY2FsUXVhZC5ib3VuZGluZ0JveCgpLmNlbnRl
cigpLCBsb2NhbFF1YWQpOwotICAgIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBw
bHlDb250YWluZXJGbGlwIHwgVXNlVHJhbnNmb3JtczsKLSAgICBpZiAoZml4ZWQpCi0gICAgICAg
IG1vZGUgfD0gSXNGaXhlZDsKLSAgICBpZiAoc25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAg
ICAgIG1vZGUgfD0gU25hcE9mZnNldEZvclRyYW5zZm9ybXM7Ci0gICAgbWFwTG9jYWxUb0NvbnRh
aW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOwor
ICAgIG1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUs
IG1vZGUgfCBBcHBseUNvbnRhaW5lckZsaXAgfCBVc2VUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CiAg
ICAgdHJhbnNmb3JtU3RhdGUuZmxhdHRlbigpOwogICAgIAogICAgIHJldHVybiB0cmFuc2Zvcm1T
dGF0ZS5sYXN0UGxhbmFyUXVhZCgpOwogfQogCi1GbG9hdFBvaW50IFJlbmRlck9iamVjdDo6bG9j
YWxUb0NvbnRhaW5lclBvaW50KGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsUG9pbnQsIFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgc25hcE9mZnNldEZvclRyYW5z
Zm9ybXMsIGJvb2wgZml4ZWQsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAorRmxvYXRQb2ludCBSZW5k
ZXJPYmplY3Q6OmxvY2FsVG9Db250YWluZXJQb2ludChjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBv
aW50LCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIFRyYW5zZm9ybVN0
YXRlIHRyYW5zZm9ybVN0YXRlKFRyYW5zZm9ybVN0YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlv
biwgbG9jYWxQb2ludCk7Ci0gICAgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBs
eUNvbnRhaW5lckZsaXAgfCBVc2VUcmFuc2Zvcm1zOwotICAgIGlmIChmaXhlZCkKLSAgICAgICAg
bW9kZSB8PSBJc0ZpeGVkOwotICAgIGlmIChzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKLSAgICAg
ICAgbW9kZSB8PSBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtczsKLSAgICBtYXBMb2NhbFRvQ29udGFp
bmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7Cisg
ICAgbWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwg
bW9kZSB8IEFwcGx5Q29udGFpbmVyRmxpcCB8IFVzZVRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKICAg
ICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CiAKICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUu
bGFzdFBsYW5hclBvaW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCShyZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMCwxMyArMTEwLDEzIEBAIGVudW0gUGxh
Y2VHZW5lcmF0ZWRSdW5JbkZsYWcgewogICAgIERvTm90UGxhY2VHZW5lcmF0ZWRSdW5JbgogfTsK
IAotZW51bSBNYXBMb2NhbFRvQ29udGFpbmVyTW9kZSB7CitlbnVtIE1hcENvb3JkaW5hdGVzTW9k
ZSB7CiAgICAgSXNGaXhlZCA9IDEgPDwgMCwKICAgICBVc2VUcmFuc2Zvcm1zID0gMSA8PCAxLAog
ICAgIEFwcGx5Q29udGFpbmVyRmxpcCA9IDEgPDwgMiwKICAgICBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcyA9IDEgPDwgMwogfTsKLXR5cGVkZWYgdW5zaWduZWQgTWFwTG9jYWxUb0NvbnRhaW5lckZs
YWdzOwordHlwZWRlZiB1bnNpZ25lZCBNYXBDb29yZGluYXRlc0ZsYWdzOwogCiBjb25zdCBpbnQg
Y2FyZXRXaWR0aCA9IDE7CiAKQEAgLTY5OSwxOSArNjk5LDE5IEBAIHB1YmxpYzoKICAgICBSZW5k
ZXJCbG9jayogY29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7CiAKICAgICAvLyBDb252ZXJ0IHRoZSBn
aXZlbiBsb2NhbCBwb2ludCB0byBhYnNvbHV0ZSBjb29yZGluYXRlcwotICAgIC8vIEZJWE1FOiBU
ZW1wb3JhcnkuIElmIHVzZVRyYW5zZm9ybXMgaXMgdHJ1ZSwgdGFrZSB0cmFuc2Zvcm1zIGludG8g
YWNjb3VudC4gRXZlbnR1YWxseSBsb2NhbFRvQWJzb2x1dGUoKSB3aWxsIGFsd2F5cyBiZSB0cmFu
c2Zvcm0tYXdhcmUuCi0gICAgRmxvYXRQb2ludCBsb2NhbFRvQWJzb2x1dGUoY29uc3QgRmxvYXRQ
b2ludCYgbG9jYWxQb2ludCA9IEZsb2F0UG9pbnQoKSwgYm9vbCBmaXhlZCA9IGZhbHNlLCBib29s
IHVzZVRyYW5zZm9ybXMgPSBmYWxzZSkgY29uc3Q7Ci0gICAgRmxvYXRQb2ludCBhYnNvbHV0ZVRv
TG9jYWwoY29uc3QgRmxvYXRQb2ludCYsIGJvb2wgZml4ZWQgPSBmYWxzZSwgYm9vbCB1c2VUcmFu
c2Zvcm1zID0gZmFsc2UpIGNvbnN0OworICAgIC8vIEZJWE1FOiBUZW1wb3JhcnkuIElmIFVzZVRy
YW5zZm9ybXMgaXMgdHJ1ZSwgdGFrZSB0cmFuc2Zvcm1zIGludG8gYWNjb3VudC4gRXZlbnR1YWxs
eSBsb2NhbFRvQWJzb2x1dGUoKSB3aWxsIGFsd2F5cyBiZSB0cmFuc2Zvcm0tYXdhcmUuCisgICAg
RmxvYXRQb2ludCBsb2NhbFRvQWJzb2x1dGUoY29uc3QgRmxvYXRQb2ludCYgbG9jYWxQb2ludCA9
IEZsb2F0UG9pbnQoKSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gMCkgY29uc3Q7CisgICAg
RmxvYXRQb2ludCBhYnNvbHV0ZVRvTG9jYWwoY29uc3QgRmxvYXRQb2ludCYsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgbW9kZSA9IDApIGNvbnN0OwogCiAgICAgLy8gQ29udmVydCBhIGxvY2FsIHF1YWQg
dG8gYWJzb2x1dGUgY29vcmRpbmF0ZXMsIHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudC4K
LSAgICBGbG9hdFF1YWQgbG9jYWxUb0Fic29sdXRlUXVhZChjb25zdCBGbG9hdFF1YWQmIHF1YWQs
IGJvb2wgZml4ZWQgPSBmYWxzZSwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdAorICAgIEZsb2F0
UXVhZCBsb2NhbFRvQWJzb2x1dGVRdWFkKGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwgTWFwQ29vcmRp
bmF0ZXNGbGFncyBtb2RlID0gMCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGxvY2FsVG9Db250YWluZXJRdWFkKHF1YWQsIDAsIGZhbHNlLCBmaXhlZCwg
d2FzRml4ZWQpOworICAgICAgICByZXR1cm4gbG9jYWxUb0NvbnRhaW5lclF1YWQocXVhZCwgMCwg
bW9kZSwgd2FzRml4ZWQpOwogICAgIH0KIAogICAgIC8vIENvbnZlcnQgYSBsb2NhbCBxdWFkIGlu
dG8gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9mIGNvbnRhaW5lciwgdGFraW5nIHRyYW5zZm9ybXMg
aW50byBhY2NvdW50LgotICAgIEZsb2F0UXVhZCBsb2NhbFRvQ29udGFpbmVyUXVhZChjb25zdCBG
bG9hdFF1YWQmLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29s
IHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gdHJ1ZSwgYm9vbCBmaXhlZCA9IGZhbHNlLCBib29s
KiB3YXNGaXhlZCA9IDApIGNvbnN0OwotICAgIEZsb2F0UG9pbnQgbG9jYWxUb0NvbnRhaW5lclBv
aW50KGNvbnN0IEZsb2F0UG9pbnQmLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gdHJ1ZSwgYm9vbCBmaXhlZCA9
IGZhbHNlLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OworICAgIEZsb2F0UXVhZCBsb2NhbFRv
Q29udGFpbmVyUXVhZChjb25zdCBGbG9hdFF1YWQmLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSAwLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0OworICAgIEZsb2F0UG9pbnQgbG9jYWxUb0NvbnRhaW5lclBvaW50KGNv
bnN0IEZsb2F0UG9pbnQmLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSAwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0
OwogCiAgICAgLy8gUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSB0aGUgY29udGFpbmVyKCkgcmVuZGVy
ZXIgKGV4Y2x1ZGluZyB0cmFuc2Zvcm1zKS4gSW4gbXVsdGktY29sdW1uIGxheW91dCwKICAgICAv
LyBkaWZmZXJlbnQgb2Zmc2V0cyBhcHBseSBhdCBkaWZmZXJlbnQgcG9pbnRzLCBzbyByZXR1cm4g
dGhlIG9mZnNldCB0aGF0IGFwcGxpZXMgdG8gdGhlIGdpdmVuIHBvaW50LgpAQCAtOTA5LDggKzkw
OSw4IEBAIHB1YmxpYzoKIAogICAgIC8vIE1hcCBwb2ludHMgYW5kIHF1YWRzIHRocm91Z2ggZWxl
bWVudHMsIHBvdGVudGlhbGx5IHZpYSAzZCB0cmFuc2Zvcm1zLiBZb3Ugc2hvdWxkIG5ldmVyIG5l
ZWQgdG8gY2FsbCB0aGVzZSBkaXJlY3RseTsgdXNlCiAgICAgLy8gbG9jYWxUb0Fic29sdXRlL2Fi
c29sdXRlVG9Mb2NhbCBtZXRob2RzIGluc3RlYWQuCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFp
bmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgbWFw
QWJzb2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFu
c2Zvcm1TdGF0ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVy
KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRl
JiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3
YXNGaXhlZCA9IDApIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQ
b2ludChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAK
ICAgICAvLyBQdXNoZXMgc3RhdGUgb250byBSZW5kZXJHZW9tZXRyeU1hcCBhYm91dCBob3cgdG8g
bWFwIGNvb3JkaW5hdGVzIGZyb20gdGhpcyByZW5kZXJlciB0byBpdHMgY29udGFpbmVyLCBvciBh
bmNlc3RvclRvU3RvcEF0ICh3aGljaGV2ZXIgaXMgZW5jb3VudGVyZWQgZmlyc3QpLgogICAgIC8v
IFJldHVybnMgdGhlIHJlbmRlcmVyIHdoaWNoIHdhcyBtYXBwZWQgdG8gKGNvbnRhaW5lciBvciBh
bmNlc3RvclRvU3RvcEF0KS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAJKHJldmlzaW9uIDEzMDY5MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY1LDEyICszNjUsMTIgQEAgdm9pZCBSZW5k
ZXJUZXh0OjphYnNvbHV0ZVJlY3RzRm9yUmFuZ2UoVgogICAgICAgICAgICAgICAgICAgICByLnNl
dFgoc2VsZWN0aW9uUmVjdC54KCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHJlY3RzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHIsIGZhbHNlLCB3
YXNGaXhlZCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CisgICAgICAgICAgICByZWN0cy5hcHBl
bmQobG9jYWxUb0Fic29sdXRlUXVhZChyLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4
ZWQpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgLy8gRklYTUU6IFRoaXMgY29kZSBpcyB3cm9uZy4gSXQncyBjb252ZXJ0aW5nIGxvY2FsIHRv
IGFic29sdXRlIHR3aWNlLiBodHRwOi8vd2Via2l0Lm9yZy9iLzY1NzIyCiAgICAgICAgICAgICBG
bG9hdFJlY3QgcmVjdCA9IGxvY2FsUXVhZEZvclRleHRCb3goYm94LCBzdGFydCwgZW5kLCB1c2VT
ZWxlY3Rpb25IZWlnaHQpOwogICAgICAgICAgICAgaWYgKCFyZWN0LmlzWmVybygpKQotICAgICAg
ICAgICAgICAgIHJlY3RzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJlY3QsIGZhbHNlLCB3
YXNGaXhlZCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CisgICAgICAgICAgICAgICAgcmVjdHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQocmVjdCwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMs
IHdhc0ZpeGVkKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKICAgICAgICAgfQogICAgIH0KIH0K
QEAgLTQxMyw3ICs0MTMsNyBAQCB2b2lkIFJlbmRlclRleHQ6OmFic29sdXRlUXVhZHMoVmVjdG9y
PEZsCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgYm91bmRhcmllcy5zZXRIZWln
aHQoZWxsaXBzaXNSZWN0Lm1heFkoKSAtIGJvdW5kYXJpZXMueSgpKTsKICAgICAgICAgfQotICAg
ICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChib3VuZGFyaWVzLCBmYWxzZSwg
d2FzRml4ZWQpKTsKKyAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoYm91
bmRhcmllcywgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKSk7CiAgICAgfQogfQog
ICAgIApAQCAtNDQ4LDExICs0NDgsMTEgQEAgdm9pZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRz
Rm9yUmFuZ2UoVgogICAgICAgICAgICAgICAgICAgICByLnNldFgoc2VsZWN0aW9uUmVjdC54KCkp
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHF1YWRzLmFw
cGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHIsIGZhbHNlLCB3YXNGaXhlZCkpOworICAgICAgICAg
ICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQociwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMsIHdhc0ZpeGVkKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBGbG9hdFJl
Y3QgcmVjdCA9IGxvY2FsUXVhZEZvclRleHRCb3goYm94LCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rp
b25IZWlnaHQpOwogICAgICAgICAgICAgaWYgKCFyZWN0LmlzWmVybygpKQotICAgICAgICAgICAg
ICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJlY3QsIGZhbHNlLCB3YXNGaXhl
ZCkpOworICAgICAgICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJl
Y3QsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCkpOwogICAgICAgICB9CiAgICAg
fQogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCShyZXZp
c2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MjMsNyArNTIzLDcgQEAgU3RyaW5nIFJlbmRlclRoZW1lOjpm
b3JtYXRNZWRpYUNvbnRyb2xzUgogSW50UG9pbnQgUmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9m
ZnNldEZyb21NdXRlQnV0dG9uKFJlbmRlckJveCogbXV0ZUJ1dHRvbkJveCwgY29uc3QgSW50U2l6
ZSYgc2l6ZSkgY29uc3QKIHsKICAgICBpbnQgeSA9IC1zaXplLmhlaWdodCgpOwotICAgIEZsb2F0
UG9pbnQgYWJzUG9pbnQgPSBtdXRlQnV0dG9uQm94LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2lu
dChtdXRlQnV0dG9uQm94LT5waXhlbFNuYXBwZWRPZmZzZXRMZWZ0KCksIHkpLCB0cnVlLCB0cnVl
KTsKKyAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbXV0ZUJ1dHRvbkJveC0+bG9jYWxUb0Fic29s
dXRlKEZsb2F0UG9pbnQobXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkT2Zmc2V0TGVmdCgpLCB5
KSwgSXNGaXhlZCB8IFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAg
ICAgaWYgKGFic1BvaW50LnkoKSA8IDApCiAgICAgICAgIHkgPSBtdXRlQnV0dG9uQm94LT5oZWln
aHQoKTsKICAgICByZXR1cm4gSW50UG9pbnQoMCwgeSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwCShyZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Niw3ICsxNzYs
NyBAQCB2b2lkIFJlbmRlclZpZXc6OmxheW91dCgpCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2Up
OwogfQogCi12b2lkIFJlbmRlclZpZXc6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0
YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0
Cit2b2lkIFJlbmRlclZpZXc6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBN
YXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIC8v
IElmIGEgY29udGFpbmVyIHdhcyBzcGVjaWZpZWQsIGFuZCB3YXMgbm90IDAgb3IgdGhlIFJlbmRl
clZpZXcsCiAgICAgLy8gdGhlbiB3ZSBzaG91bGQgaGF2ZSBmb3VuZCBpdCBieSBub3cuCkBAIC0y
MTQsMTIgKzIxNCwxMiBAQCBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclZpZXc6OnB1c2hNYXBw
CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgUmVuZGVyVmlldzo6bWFwQWJzb2x1dGVUb0xvY2Fs
UG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJh
bnNmb3JtU3RhdGUpIGNvbnN0Cit2b2lkIFJlbmRlclZpZXc6Om1hcEFic29sdXRlVG9Mb2NhbFBv
aW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0
YXRlKSBjb25zdAogewotICAgIGlmIChmaXhlZCAmJiBtX2ZyYW1lVmlldykKKyAgICBpZiAobW9k
ZSAmIElzRml4ZWQgJiYgbV9mcmFtZVZpZXcpCiAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUo
bV9mcmFtZVZpZXctPnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSk7CiAKLSAgICBpZiAo
dXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKDApKSB7Cisg
ICAgaWYgKG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250
YWluZXIoMCkpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICAgICAgZ2V0
VHJhbnNmb3JtRnJvbUNvbnRhaW5lcigwLCBMYXlvdXRTaXplKCksIHQpOwogICAgICAgICB0cmFu
c2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0KTsKQEAgLTQ3Miw3ICs0NzIsNyBAQCBJbnRSZWN0
IFJlbmRlclZpZXc6OnNlbGVjdGlvbkJvdW5kcyhib29sCiAgICAgICAgIC8vIFJlbmRlclNlbGVj
dGlvbkluZm86OnJlY3QoKSBpcyBpbiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHJlcGFpbnRDb250
YWluZXIsIHNvIG1hcCB0byBwYWdlIGNvb3JkaW5hdGVzLgogICAgICAgICBMYXlvdXRSZWN0IGN1
cnJSZWN0ID0gaW5mby0+cmVjdCgpOwogICAgICAgICBpZiAoUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciA9IGluZm8tPnJlcGFpbnRDb250YWluZXIoKSkgewotICAgICAg
ICAgICAgRmxvYXRRdWFkIGFic1F1YWQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1
dGVRdWFkKEZsb2F0UmVjdChjdXJyUmVjdCkpOworICAgICAgICAgICAgRmxvYXRRdWFkIGFic1F1
YWQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChjdXJy
UmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgICAgIGN1cnJSZWN0ID0g
YWJzUXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOyAKICAgICAgICAgfQogICAgICAgICBzZWxS
ZWN0LnVuaXRlKGN1cnJSZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaAkocmV2aXNpb24gMTMwNjkyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjA2LDkgKzIwNiw5IEBAIHB1YmxpYzoKICAgICBi
b29sIGhhc1JlbmRlckNvdW50ZXJzKCkgeyByZXR1cm4gbV9yZW5kZXJDb3VudGVyQ291bnQ7IH0K
IAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFw
TG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3Mg
bW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29s
KiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVy
T2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJv
b2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFu
c2Zvcm1TdGF0ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0NvbHVtbnMoaW50
IGRlc2lyZWRDb2x1bW5Db3VudCkgY29uc3QgT1ZFUlJJREU7CiAKIHByaXZhdGU6CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAkocmV2aXNpb24gMTMwNjky
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIFJlbmRlcldpZGdldDo6dXBkYXRlV2lkZ2V0
R2VvbWV0cnkoCiAgICAgaWYgKCFtX3dpZGdldC0+dHJhbnNmb3Jtc0FmZmVjdEZyYW1lUmVjdCgp
KQogICAgICAgICByZXR1cm4gc2V0V2lkZ2V0R2VvbWV0cnkoYWJzb2x1dGVDb250ZW50Qm94KCkp
OwogCi0gICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUNvbnRlbnRCb3gobG9jYWxUb0Fic29sdXRlUXVh
ZChGbG9hdFF1YWQoY29udGVudEJveCkpLmJvdW5kaW5nQm94KCkpOworICAgIExheW91dFJlY3Qg
YWJzb2x1dGVDb250ZW50Qm94KGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGNvbnRlbnRC
b3gpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuYm91bmRpbmdCb3goKSk7CiAgICAgaWYgKG1f
d2lkZ2V0LT5pc0ZyYW1lVmlldygpKSB7CiAgICAgICAgIGNvbnRlbnRCb3guc2V0TG9jYXRpb24o
YWJzb2x1dGVDb250ZW50Qm94LmxvY2F0aW9uKCkpOwogICAgICAgICByZXR1cm4gc2V0V2lkZ2V0
R2VvbWV0cnkoY29udGVudEJveCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAJKHJldmlzaW9uIDEzMDY5
MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Miw3ICsxOTIsNyBAQCBib29sIFJlbmRlclNWR0Zv
cmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJl
bmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRl
LCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2
b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9y
bVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAog
ewogICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWlu
dENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgd2FzRml4ZWQpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdGb3JlaWduT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgJKHJldmlzaW9uIDEzMDY5MikKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbm9k
ZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0
VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNj
dW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCBpc1NWR0ZvcmVpZ25PYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBt
b2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wq
IHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZs
aXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBS
ZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRO
ZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIHsgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmNwcAkocmV2aXNpb24gMTMwNjkyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIHZv
aWQgUmVuZGVyU1ZHSW5saW5lOjpjb21wdXRlRmxvYXRSZWN0Rm8KICAgICBTVkdSZW5kZXJTdXBw
b3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCBy
ZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxU
b0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2Rl
LCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRv
Q29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5z
Zm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29s
KiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29u
dGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAkocmV2aXNpb24gMTMwNjkyKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIExheW91dFJl
Y3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1
dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVy
RmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
LCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBt
YXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250
YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBw
aW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0
b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25z
dDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzMDY5MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01Niw3ICs1Niw3IEBAIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNvbXB1dGVGbG9hdFIK
ICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCh0aGlzLCBy
ZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNW
R01vZGVsT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwTG9j
YWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgU1ZH
UmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVy
LCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhl
ZCk7CiB9CkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmFic29s
dXRlUmVjdHMKIAogdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6YWJzb2x1dGVRdWFkcyhWZWN0
b3I8RmxvYXRRdWFkPiYgcXVhZHMsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewotICAgIHF1YWRz
LmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHN0cm9rZUJvdW5kaW5nQm94KCksIGZhbHNlLCB3
YXNGaXhlZCkpOworICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHN0cm9rZUJv
dW5kaW5nQm94KCksIDAgLyogbW9kZSAqLywgd2FzRml4ZWQpKTsKIH0KIAogdm9pZCBSZW5kZXJT
VkdNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgJKHJldmlzaW9uIDEz
MDY5MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmpl
Y3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQm
IGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFk
cyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIAotICAgIHZpcnR1
YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1v
ZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCog
d2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxp
cCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJl
bmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxl
V2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7
CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3Qg
UmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUm9vdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAkocmV2aXNpb24gMTMwNjkyKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Mzk1LDcgKzM5NSw3IEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclIK
IC8vIFRoaXMgbWV0aG9kIGV4cGVjdHMgbG9jYWwgQ1NTIGJveCBjb29yZGluYXRlcy4KIC8vIENh
bGxlcnMgd2l0aCBsb2NhbCBTVkcgdmlld3BvcnQgY29vcmRpbmF0ZXMgc2hvdWxkIGZpcnN0IGFw
cGx5IHRoZSBsb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtCiAvLyB0byBjb252ZXJ0IGZyb20gU1ZH
IHZpZXdwb3J0IGNvb3JkaW5hdGVzIHRvIGxvY2FsIENTUyBib3ggY29vcmRpbmF0ZXMuCi12b2lk
IFJlbmRlclNWR1Jvb3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBM
b2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJl
bmRlclNWR1Jvb3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIEFTU0VSVCht
b2RlICYgfklzRml4ZWQpOyAvLyBXZSBzaG91bGQgaGF2ZSBubyBmaXhlZCBjb250ZW50IGluIHRo
ZSBTVkcgcmVuZGVyaW5nIHRyZWUuCiAgICAgQVNTRVJUKG1vZGUgJiBVc2VUcmFuc2Zvcm1zKTsg
Ly8gbWFwcGluZyBhIHBvaW50IHRocm91Z2ggU1ZHIHcvbyByZXNwZWN0aW5nIHRyYXNuZm9ybXMg
aXMgdXNlbGVzcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Um9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oCShyZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWlu
dChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwg
Ym9vbCBmaXhlZCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBwbHlDb250YWlu
ZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBD
b29yZGluYXRlc0ZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYp
IGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHJldmlzaW9uIDEzMDY5MikKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExMSw3ICsxMTEsNyBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JS
CiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywg
cmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJT
VkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwTG9jYWxUb0Nv
bnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdU
ZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNG
bGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBTVkdSZW5kZXJTdXBwb3J0
OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0
YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKIH0KQEAgLTQ4
NCw3ICs0ODQsNyBAQCBWaXNpYmxlUG9zaXRpb24gUmVuZGVyU1ZHVGV4dDo6cG9zaXRpb25GCiAK
IHZvaWQgUmVuZGVyU1ZHVGV4dDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVh
ZHMsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewotICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJz
b2x1dGVRdWFkKHN0cm9rZUJvdW5kaW5nQm94KCksIGZhbHNlLCB3YXNGaXhlZCkpOworICAgIHF1
YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHN0cm9rZUJvdW5kaW5nQm94KCksIDAgLyog
bW9kZSAqLywgd2FzRml4ZWQpKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdUZXh0OjpwYWludChQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgJKHJldmlzaW9uIDEzMDY5MikKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCSh3b3JraW5nIGNv
cHkpCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVS
ZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBM
YXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25z
dCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFw
TG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3Mg
bW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29s
KiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVy
T2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9i
amVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVu
ZGVyT2JqZWN0KikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclN1cHBvcnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHJldmlzaW9uIDEzMDY5MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29u
dGFpbgogICAgIGlmIChwYXJlbnQtPmlzU1ZHUm9vdCgpKQogICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5hcHBseVRyYW5zZm9ybSh0b1JlbmRlclNWR1Jvb3QocGFyZW50KS0+bG9jYWxUb0JvcmRlckJv
eFRyYW5zZm9ybSgpKTsKIAotICAgIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gVXNl
VHJhbnNmb3JtczsKKyAgICBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBVc2VUcmFuc2Zvcm1z
OwogICAgIGlmIChzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKICAgICAgICAgbW9kZSB8PSBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3JtczsKICAgICBwYXJlbnQtPm1hcExvY2FsVG9Db250YWluZXIocmVw
YWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHJldmlzaW9uIDEzMDY5MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUxLDcg
KzQ1MSw3IEBAIEFmZmluZVRyYW5zZm9ybSBTVkdTVkdFbGVtZW50Ojpsb2NhbENvb3IKIAogICAg
ICAgICAgICAgLy8gVHJhbnNsYXRlIGluIG91ciBDU1MgcGFyZW50IGNvb3JkaW5hdGUgc3BhY2UK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCBD
U1MgdHJhbnNmb3Jtcy4KLSAgICAgICAgICAgIGxvY2F0aW9uID0gcmVuZGVyZXItPmxvY2FsVG9B
YnNvbHV0ZShsb2NhdGlvbiwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgbG9jYXRpb24gPSBy
ZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKGxvY2F0aW9uLCBVc2VUcmFuc2Zvcm1zKTsKICAgICAg
ICAgICAgIGxvY2F0aW9uLnNjYWxlKHpvb21GYWN0b3IsIHpvb21GYWN0b3IpOwogCiAgICAgICAg
ICAgICAvLyBCZSBjYXJlZnVsIGhlcmUhIGxvY2FsVG9Cb3JkZXJCb3hUcmFuc2Zvcm0oKSBpbmNs
dWRlZCB0aGUgeC95IG9mZnNldCBjb21pbmcgZnJvbSB0aGUgdmlld0JveFRvVmlld1RyYW5zZm9y
bSgpLApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAJKHJl
dmlzaW9uIDEzMDY5MikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZW5kZXJPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIFdlYlJlbmRlck9iamVjdDo6V2Vi
UmVuZGVyT2JqZWN0KFJlbmRlck8KICAgICB9CiAKICAgICAvLyBGSVhNRTogYnJva2VuIHdpdGgg
dHJhbnNmb3JtcwotICAgIG1fYWJzb2x1dGVQb3NpdGlvbiA9IGZsb29yZWRJbnRQb2ludChyZW5k
ZXJlci0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSkpOworICAgIG1fYWJzb2x1dGVQb3Np
dGlvbiA9IGZsb29yZWRJbnRQb2ludChyZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKCkpOwogCiAg
ICAgaWYgKHJlbmRlcmVyLT5pc0JveCgpKQogICAgICAgICBtX2ZyYW1lUmVjdCA9IHRvUmVuZGVy
Qm94KHJlbmRlcmVyKS0+cGl4ZWxTbmFwcGVkRnJhbWVSZWN0KCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2Ny
ZWVuTWFuYWdlci5jcHAJKHJldmlzaW9uIDEzMDY5MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDcgKzUyLDcgQEAgc3RhdGljIEludFJlY3Qgc2NyZWVuUmVjdE9mQ29udGVudHMoRWxl
bQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoZWxlbWVudC0+cmVu
ZGVyZXIoKSAmJiBlbGVtZW50LT5yZW5kZXJlcigpLT5oYXNMYXllcigpICYmIGVsZW1lbnQtPnJl
bmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPmlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAgIEZs
b2F0UXVhZCBjb250ZW50c0JveCA9IHN0YXRpY19jYXN0PEZsb2F0UmVjdD4oZWxlbWVudC0+cmVu
ZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKS0+YmFja2luZygpLT5jb250ZW50c0JveCgpKTsKLSAg
ICAgICAgY29udGVudHNCb3ggPSBlbGVtZW50LT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVR
dWFkKGNvbnRlbnRzQm94KTsKKyAgICAgICAgY29udGVudHNCb3ggPSBlbGVtZW50LT5yZW5kZXJl
cigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKGNvbnRlbnRzQm94LCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3Jtcyk7CiAgICAgICAgIHJldHVybiBlbGVtZW50LT5yZW5kZXJlcigpLT52aWV3KCktPmZyYW1l
VmlldygpLT5jb250ZW50c1RvU2NyZWVuKGNvbnRlbnRzQm94LmVuY2xvc2luZ0JvdW5kaW5nQm94
KCkpOwogICAgIH0KICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDEzMDY5MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMTAtMDggIExldmkgV2VpbnRyYXViICA8bGV2
aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTdWIgcGl4ZWwgbGF5b3V0XSBGYXN0LXBhdGgg
aWZyYW1lIHNjcm9sbGluZyBjYW4gcGlja3MgdXAgYW4gZXh0cmEgcGl4ZWwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NTcxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRW1pbCBBIEVrbHVuZC4KKworICAgICAgICBSZWZhY3RvcmluZyBhbGwgY29vcmRp
bmF0ZS1zd2l0Y2hpbmcgZnVuY3Rpb25hbGl0eSB0byB1c2UgYSBzaW5nbGUgIm1vZGUiIGZsYWcK
KyAgICAgICAgYXMgb3Bwb3NlZCB0byBoYXZpbmcgYSBidW5jaCBvZiBib29sZWFuIHZhbHVlcy4g
VGhpcyBlbmFibGVzIHRoZSBzYW1lIHNldCBvZgorICAgICAgICBvcHRpb25zIGFjcm9zcyB0aGUg
Ym9hcmQsIGFuZCBhIGNvbnNpc3RlbnQgaW50ZXJmYWNlLiBUaGlzIHdhcyBwcmV2aW91c2x5Cisg
ICAgICAgIGRvbmUgZm9yIG1hcExvY2FsVG9Db250YWluZXIuCisKKyAgICAgICAgVGhlIGltcHRl
dHVzIGZvciB0aGlzIGZvciB0aGlzIHN0ZW1zIGZyb20gdGhlIG9uZSBsb2dpY2FsIGNoYW5nZSBp
biB0aGlzIHBhdGNoCisgICAgICAgIHdoaWNoIG9ubHkgZWZmZWN0cyBzdWItcGl4ZWwgbGF5b3V0
LiBGcmFtZVZpZXc6OmNvbnZlcnRUb1JlbmRlcmVyIGFuZAorICAgICAgICBjb252ZXJ0RnJvbVJl
bmRlcmVyIHJldHVybiBJbnRQb2ludCBjb29yZGluYXRlcywgYW5kIG5lZWQgdG8gYWxzbyBzbmFw
IHRyYW5zZm9ybQorICAgICAgICBvZmZzZXRzIHRvIGRldGVybWluZSBwcm9wZXIgcmVjdHMgZm9y
IHNjcm9sbGluZy4KKworICAgICAgICAqIHNyYy9MaW5rSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Y29udmVydFRhcmdldFNwYWNlUXVhZFRvQ29tcG9zaXRlZExheWVyKTogVXBkYXRl
ZCB0byBuZXcgYWJzb2x1dGVUb0xvY2FsCisgICAgICAgIGludGVyZmFjZS4KKwogMjAxMi0xMC0w
OCAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBTb21l
IG5vbi1zY3JvbGxhYmxlIGVsZW1lbnRzIGFyZSBhZGRlZCB0byBub24tZmFzdC1zY3JvbGxhYmxl
IHJlZ2lvbgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRmluZEluUGFnZUNvb3Jk
aW5hdGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GaW5k
SW5QYWdlQ29vcmRpbmF0ZXMuY3BwCShyZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9GaW5kSW5QYWdlQ29vcmRpbmF0ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02Nyw3ICs2Nyw3IEBAIHN0YXRpYyBGbG9hdFJlY3QgdG9Ob3JtYWxpemVkUmVjdChjb25zdAog
ICAgICAgICBzY3JvbGxlZE9yaWdpbiA9IC1JbnRQb2ludChjb250YWluZXItPnNjcm9sbGVkQ29u
dGVudE9mZnNldCgpKTsKIAogICAgIEZsb2F0UmVjdCBvdmVyZmxvd1JlY3Qoc2Nyb2xsZWRPcmln
aW4sIGNvbnRhaW5lci0+bWF4TGF5b3V0T3ZlcmZsb3coKSk7Ci0gICAgRmxvYXRSZWN0IGNvbnRh
aW5lclJlY3QgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKG92ZXJm
bG93UmVjdCksIGZhbHNlKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIEZsb2F0UmVjdCBj
b250YWluZXJSZWN0ID0gY29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChv
dmVyZmxvd1JlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9zaW5nQm91bmRpbmdC
b3goKTsKIAogICAgIGlmIChjb250YWluZXJSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IEZsb2F0UmVjdCgpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hs
aWdodC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTGlua0hp
Z2hsaWdodC5jcHAJKHJldmlzaW9uIDEzMDY5MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0xpbmtIaWdobGlnaHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNyArMTU5LDcgQEAg
c3RhdGljIHZvaWQgY29udmVydFRhcmdldFNwYWNlUXVhZFRvQ29tcAogCiAgICAgICAgIHBvaW50
ID0gdGFyZ2V0UmVuZGVyZXItPmZyYW1lKCktPnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhwb2lu
dCk7CiAgICAgICAgIHBvaW50ID0gY29tcG9zaXRlZFJlbmRlcmVyLT5mcmFtZSgpLT52aWV3KCkt
PndpbmRvd1RvQ29udGVudHMocG9pbnQpOwotICAgICAgICBGbG9hdFBvaW50IGZsb2F0UG9pbnQg
PSBjb21wb3NpdGVkUmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChwb2ludCwgZmFsc2UsIHRydWUp
OworICAgICAgICBGbG9hdFBvaW50IGZsb2F0UG9pbnQgPSBjb21wb3NpdGVkUmVuZGVyZXItPmFi
c29sdXRlVG9Mb2NhbChwb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKTsKIAogICAgICAgICBzd2l0Y2ggKGkpIHsKICAgICAgICAgY2FzZSAwOiBjb21wb3NpdGVk
U3BhY2VRdWFkLnNldFAxKGZsb2F0UG9pbnQpOyBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQkocmV2aXNp
b24gMTMwNjkyKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29u
dHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgSW50UmVj
dCBzY3JlZW5SZWN0T2ZDb250ZW50cyhFbGVtCiAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgIGlm
IChlbGVtZW50LT5yZW5kZXJlcigpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCktPmhhc0xheWVyKCkg
JiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKS0+aXNDb21wb3NpdGVkKCkp
IHsKICAgICAgICAgRmxvYXRRdWFkIGNvbnRlbnRzQm94ID0gc3RhdGljX2Nhc3Q8RmxvYXRSZWN0
PihlbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5iYWNraW5nKCktPmNvbnRl
bnRzQm94KCkpOwotICAgICAgICBjb250ZW50c0JveCA9IGVsZW1lbnQtPnJlbmRlcmVyKCktPmxv
Y2FsVG9BYnNvbHV0ZVF1YWQoY29udGVudHNCb3gpOworICAgICAgICBjb250ZW50c0JveCA9IGVs
ZW1lbnQtPnJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoY29udGVudHNCb3gsIFNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCkt
PnZpZXcoKS0+ZnJhbWVWaWV3KCktPmNvbnRlbnRzVG9TY3JlZW4oY29udGVudHNCb3guZW5jbG9z
aW5nQm91bmRpbmdCb3goKSk7CiAgICAgfQogICAgIHJldHVybiBlbGVtZW50LT5zY3JlZW5SZWN0
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlbmRlck5vZGUubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZW5kZXJOb2RlLm1tCShy
ZXZpc2lvbiAxMzA2OTIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlbmRlck5v
ZGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGljIFdlYlJlbmRlck5v
ZGUgKmNvcHlSZW5kZXJOb2RlKFJlbgogICAgIEZyYW1lKiBmcmFtZSA9IGZyYW1lVmlldyA/IGZy
YW1lVmlldy0+ZnJhbWUoKSA6IDA7CiAKICAgICAvLyBGSVhNRTogYnJva2VuIHdpdGggdHJhbnNm
b3JtcwotICAgIEZsb2F0UG9pbnQgYWJzUG9zID0gbm9kZS0+bG9jYWxUb0Fic29sdXRlKEZsb2F0
UG9pbnQoKSk7CisgICAgRmxvYXRQb2ludCBhYnNQb3MgPSBub2RlLT5sb2NhbFRvQWJzb2x1dGUo
KTsKICAgICBpbnQgeCA9IDA7CiAgICAgaW50IHkgPSAwOwogICAgIGludCB3aWR0aCA9IDA7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMzA2OTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwzMCBAQAorMjAxMi0xMC0wOCAgTGV2aSBXZWludHJhdWIgIDxs
ZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1N1YiBwaXhlbCBsYXlvdXRdIEZhc3QtcGF0
aCBpZnJhbWUgc2Nyb2xsaW5nIGNhbiBwaWNrcyB1cCBhbiBleHRyYSBwaXhlbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1NzEKKworICAgICAgICBS
ZXZpZXdlZCBieSBFbWlsIEEgRWtsdW5kLgorCisgICAgICAgIFRlc3RzIHNjcm9sbGluZyBvZiBz
dWItcGl4ZWwgbGF5ZXJzIG9uIHN1Yi1waXhlbCBwbGF0Zm9ybXMgKENocm9taXVtKS4KKworICAg
ICAgICAqIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4
ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmc6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhl
bC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3JlcGFpbnQvcmVwYWludC1hY3Jvc3Mtd3JpdGlu
Zy1tb2RlLWJvdW5kYXJ5LWV4cGVjdGVkLnBuZzoKKyAgICAgICAgVGhlIHJlcGFpbnQgcmVjdCBz
aHJpbmtzIHNhZmVseSBieSBvbmUgcGl4ZWwuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGlvbi9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC00LjgvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4teHAvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25z
OgorCiAyMDEyLTEwLTA4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIE1vdmUgbGF5ZXJUcmVlQXNUZXh0IHRvIHdpbmRvdy5pbnRlcm5hbHMKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3Jv
bGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisuY29udGFpbmVyIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgcGFkZGluZzogMTAuM3B4OworICAgIHotaW5k
ZXg6IDE7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL3JlcGFpbnQvcmVzb3VyY2VzL3Jl
cGFpbnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworZnVu
Y3Rpb24gc2V0dXBJZnJhbWUoKSB7CisgIHZhciBzdWJEb2N1bWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpZnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50OworICBzdWJEb2N1bWVu
dC5vcGVuKCd0ZXh0L2h0bWwnLCAncmVwbGFjZScpOworICBzdWJEb2N1bWVudC53cml0ZSgiPCFE
T0NUWVBFIGh0bWw+XG48aHRtbD48Ym9keSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHNpbHZl
cjtoZWlnaHQ6IDEwMDBweDtcIj48L2JvZHk+IikKKyAgc3ViRG9jdW1lbnQuY2xvc2UoKTsKK30K
KworZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
ZnJhbWUnKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKKyAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lKCk7cnVuUmVwYWludFRlc3QoKSI+CisgIDxw
PlRoZSBpZnJhbWUgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLjwvcD4K
KyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICA8aWZyYW1lIGlkPSJpZnJhbWUiICBzdHls
ZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+CisgIDwvZGl2PgorICA8
L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9s
bC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg1MgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NTIKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjAKKyAgICAg
IFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyMAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAzMTU6ICJUaGUgaWZyYW1lIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aGVuIHNj
cm9sbGluZy4iCitsYXllciBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCisgIFJlbmRlckJsb2NrIChw
b3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCisgICAgUmVuZGVy
UGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMTAsMTApIHNpemUgMzA0eDIwNSBbYm9yZGVyOiAoMnB4
IGluc2V0ICMwMDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyODV4MTAxNgorICAg
ICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMjg1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAyODV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAyODV4MTAxNgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjY5
eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNjkyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMzIyOCw2ICsz
MjI4LDEwIEBAIHdlYmtpdC5vcmcvYi85MDIwNyBbIExpbnV4IERlYnVnIF0gZmFzdC8KIHdlYmtp
dC5vcmcvYi85MDIwNyBbIEFuZHJvaWQgXSBmYXN0L2Zvcm1zL3NlbGVjdC9zZWxlY3Qtc3RhdGUt
cmVzdG9yZS5odG1sIFsgRmFpbHVyZSBQYXNzIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzkwMjA3
IFsgV2luIFJlbGVhc2UgXSBmYXN0L2Zvcm1zL3NlbGVjdC9zZWxlY3Qtc3RhdGUtcmVzdG9yZS5o
dG1sIFsgUGFzcyBUaW1lb3V0IF0KIAorIyBOZWVkIHJlYmFzZWxpbmUgYWZ0ZXIgYm90cyBjeWNs
ZS4KK3dlYmtpdC5vcmcvYi85ODU3MSBbIFdpbiBNYWMgXSBmYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQord2Via2l0Lm9y
Zy9iLzk4NTcxIFsgV2luIE1hYyBdIGZhc3QvcmVwYWludC9yZXBhaW50LWFjcm9zcy13cml0aW5n
LW1vZGUtYm91bmRhcnkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCisKICMgRmxha3kK
IHdlYmtpdC5vcmcvYi85MDQzMCBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjZWl2ZS1y
ZXNwb25zZS1ldmVudC5odG1sIFsgRmFpbHVyZSBQYXNzIFRpbWVvdXQgXQogCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9u
IDEzMDY5MikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1Rlc3RFeHBlY3RhdGlv
bnMJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsNyBAQCBmYXN0L3N1Yi1waXhlbC90YWJs
ZS1yb3dzLW5vLWdhcHMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWFjY3VtdWxhdGVz
LXRvLWxheWVycy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zZWxlY3Rpb24vc2VsZWN0aW9uLXJlY3Qt
aW4tc3ViLXBpeGVsLXRhYmxlLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NuYXAtbmVnYXRpdmUtbG9j
YXRpb24uaHRtbAorZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9s
bC5odG1sCiBmYXN0L3N1Yi1waXhlbC96b29tZWQtaW1hZ2UtdGlsZXMuaHRtbAogCiAjIFRoaXMg
bWVkaWEgdGVzdCBhbHdheXMgZmFpbGVkIG9uIExpb24KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1zbm93bGVvcGFyZC9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lv
biAxMzA2OTIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvVGVzdEV4
cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjE3LDYgKzIxNyw3IEBAIGZhc3Qvc3ViLXBp
eGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNj
dW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rp
b24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdh
dGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHkt
b24tc2Nyb2xsLmh0bWwKIAogIyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFn
ZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAzNjEKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVz
dEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDY5MikKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTkyLDYgKzE5
Miw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1w
aXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVs
L3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9z
dWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWIt
cGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1p
bWFnZS10aWxlcy5odG1sCiAKICMgZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91dC5odG1sLCBw
YWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13aXRoLWZyYW1lcy5odG1sLCBhbmQKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAx
MzA2OTIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwkod29y
a2luZyBjb3B5KQpAQCAtNjkzLDYgKzY5Myw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mt
bm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5
ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWIt
cGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5o
dG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwK
IGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgTm8gQ09SUyBzdXBw
b3J0IGZvciBtZWRpYSBlbGVtZW50cyBpcyBpbXBsZW1lbnRlZCB5ZXQuCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNjky
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtp
bmcgY29weSkKQEAgLTExNSw2ICsxMTUsNyBAQCBmYXN0L3N1Yi1waXhlbC90YWJsZS1yb3dzLW5v
LWdhcHMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWFjY3VtdWxhdGVzLXRvLWxheWVy
cy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zZWxlY3Rpb24vc2VsZWN0aW9uLXJlY3QtaW4tc3ViLXBp
eGVsLXRhYmxlLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NuYXAtbmVnYXRpdmUtbG9jYXRpb24uaHRt
bAorZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCiBm
YXN0L3N1Yi1waXhlbC96b29tZWQtaW1hZ2UtdGlsZXMuaHRtbAogCiAjIFNWRyBGb250cyBhcmUg
b25seSBzdXBwb3J0ZWQgd2hlbiB1c2luZyBRUmF3Rm9udCwgd2hpY2ggaXMgbm90CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDY5MikK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29w
eSkKQEAgLTMyMyw2ICszMjMsNyBAQCBmYXN0L3N1Yi1waXhlbC90YWJsZS1yb3dzLW5vLWdhcHMu
aHRtbAogZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWFjY3VtdWxhdGVzLXRvLWxheWVycy5odG1s
CiBmYXN0L3N1Yi1waXhlbC9zZWxlY3Rpb24vc2VsZWN0aW9uLXJlY3QtaW4tc3ViLXBpeGVsLXRh
YmxlLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NuYXAtbmVnYXRpdmUtbG9jYXRpb24uaHRtbAorZmFz
dC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCiBmYXN0L3N1
Yi1waXhlbC96b29tZWQtaW1hZ2UtdGlsZXMuaHRtbAogCiAjIFVTRShWOCkKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi13azIvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4td2syL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEz
MDY5MikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi13azIvVGVzdEV4cGVjdGF0aW9ucwko
d29ya2luZyBjb3B5KQpAQCAtOTU0LDYgKzk1NCw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJv
d3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8t
bGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1z
dWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlv
bi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0
bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgSGlEUEkgdGVz
dHMgcmVxdWlyZSB0ZXN0IGluZnJhc3RydWN0dXJlIGVuaGFuY2VtZW50cwpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luLXhwL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luLXhwL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDY5
MikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi14cC9UZXN0RXhwZWN0YXRpb25zCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8t
Z2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJz
Lmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4
ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1s
CitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZh
c3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgUkVHUkVTU0lPTiAocjgz
OTI4IG9yIGJlZm9yZSk6IFNvbWUgdGVzdHMgZmFpbGluZyBhc3NlcnRpb25zIGluIE1hcmtTdGFj
azo6aW50ZXJuYWxBcHBlbmQgLyBNYXJrU3RhY2s6OmRyYWluCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNjkyKQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTE3
NTcsNiArMTc1Nyw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBm
YXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qv
c3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRt
bAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1w
aXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVs
L3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgTm8gQ09SUyBzdXBwb3J0IGZvciBtZWRpYSBl
bGVtZW50cyBpcyBpbXBsZW1lbnRlZCB5ZXQuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDY5MikKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkK
QEAgLTIyODQsNiArMjI4NCw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5o
dG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwK
IGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFi
bGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0
L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIAogIyBObyBD
T1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRzIGlzIGltcGxlbWVudGVkIHlldC4KIGh0dHAv
dGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzA2OTIp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBj
b3B5KQpAQCAtMTA2LDYgKzEwNiw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fw
cy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0
bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwt
dGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitm
YXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qv
c3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgW1dLMl1bV1RSXSBzdmcvYW5p
bWF0aW9ucy9hbmltYXRlLXRleHQtbmVzdGVkLXRyYW5zZm9ybXMuaHRtbCBmYWlscwpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9yZXBhaW50L3JlcGFpbnQt
YWNyb3NzLXdyaXRpbmctbW9kZS1ib3VuZGFyeS1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5u
b3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9
IGltYWdlL3BuZwoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZCVW5B
QUFBS1hSRldIUmphR1ZqYTNOMWJRQTROemRpTWpZNApORFJoT1dGaE16RmpaV0l6TldJNFpUUTJP
R1UwWWpVMlpCbmw5dEVBQUNBQVNVUkJWSGljN2QxWmpHUFpmZWY1UTE3dWpJVms3RnZHCkhwbXha
R1ZHVmxabHFWU2xVcFhra3Fva0x5TnJ1c1orR0Q5ME45Q3cwY0I0TUQwVzRFRVBoT2x1ak5BdG9O
RXpENE4rYUFNRzNMRHMKVnN2ZHNvU1NMTXNxbDFWTFpsYmxucEdac1RISTJMZ0V0K0JsY0x1ODgz
QVZMR1pzdVoxTU1zanZCL1ZBM3JpOC9KK3NZTVF2empuMwpITk03Nzd3akFBQUFJSSs1MmdVQUFB
RFVHd0lXQUFDQVpBUXNBQUFBeVFoWUFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQUFnQUFrSXlBCkJR
QUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFKSVJzQUFBQUNRallBRUFBRWhHd0FJ
QUFKQ01nQVVBQUNBWkFRc0EKQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUFBQUFrSTJB
QkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQQpaQVFzQUFBQXlRaFlBQUFBa2hH
d0FBQUFKQ05nQVFBQVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJ
CldBQUFBSklSc0FBQUFDUWpZQUVBQUVoR3dBSUFBSkNNZ0FVQUFDQVpBUXNBQUVBeUFoWUFBSUJr
QkN3QUFBREpDRmdBQUFDU0ViQUEKQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZ0dRRUxBQUJB
TWt1MUN6aFlQcCt2ZGdrQWdBWmxzOW1xWFFLT3ZSb05XRUlJdnJ1Qgp4OGZuQjNoYy9JRVBLUmdp
QkFBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdBQWdHUUVMQUFBQU1rSVdBQUFBSklSc0FBQUFDUWpZ
QUVBCkFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKQ0ZnQUFBQ1NF
YkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1EKaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5
UWhZQUFBQWtoR3dBQUFBSkNOZ0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQgpDd0FBUURKTHRRc0Fn
SG94dC9qNHIyMXFldEozVDZjZi83V1RvdzkxV3QwM0VKQ25YZ0xXb3JTUC9jTG1aci9QNTdEWjlw
d1YzTnJxCjhYZ3Npdkw0Yi9RUTFHeDJibTF0b0sydG83WFZiREtWajVkMHZmTHBnVmEzdHR4MnU3
ZWlPYUZFd21xeCtKNzg1eHBrZVpMZkVLUDgKaGdDQVk0TWh3dnRzeE9NM0FvSHRiRllJb2V2NmpV
QWdYeXdLSVhaeXVRL3UzbDNkMmlxZmVXZHRMWnhNU25uVHJlM3RlK3Zyb1VUaQo0c0xDUi9QekRw
dk43WEJzeHVNL3Yza3pFSW1zYlcydGJXMTlQRC8vNGIxN3VxNGZjWjNnMXRZblMwdVZSOWJpOFkv
dTNkTktKZU5wCkxKMHVhSnFVbWdFQXdCSHFwUWRMQnExVXVySzgzTzN4ckc1dFJWT3BmTEVZVHFW
eWhjTDUwZEdGVU1qWDFCUkxwM2Z5ZWVQa1NDb1YKU2FVOGJyZk44cVQvaHBsYzdub2c4TVdwcVJk
R1IwMjczVlRKVENhMXM5UHFkaHRQZC9KNXhXd3U2YnF5ZThKT1BoK01SaXV2azg1bQo3UmJMdmZY
MThwR0VxanBzdHNYTlRlUHA3YlUxcTZKOCtmUnB1OVg2aERVREFJQWpFTEIrUmRmMXk0dUwwd01E
Z3gwZGtWUnFZWFB6Cnd2aTRNU29YVDZkajZmVHIwOU9oWkhJdEZqTmkwS1RFOXphWjdGWnJlMHRM
NWJHaXBqbXMxbGFYeTNocVVSU3YyNjJZUCt0eGROcHMKSTExZGxTK0pwZE10VG1mbHdYUTJhekta
eWtlTUIwOTdsTE1XeEZWMUtSUmFpVVMrY2VGQ3RXc0JucFEvRXVuemVxMzcvcFpiaThVNgpXMXIy
SHo5MjZyNkJhRXdNRVFvaGhLN3I2N0hZWkYvZllFZUhFS0tqcFNXVnlhekhZa0tJZERhYnlHUmVu
WnkwS0VxdjF4dE9Kc09wCmxOeDNMMCt0S21yYWxlVmxZeFF2azhzMU81MUh2OUNpS01iSkZrV3hL
TXFab2FIUjdtNkxvcGpONW9zTEM2bWRuY24rL2xPOXZjWVIKNDV4R1NGZENpUGZuNWhZMk54OStQ
RFNkelM1c2JyNC9OL2Y5ano1NnFvVUJqeXFTU2wxWlhsNkx4NDJudDRMQlFyRW9oRkN6MlYvZQp2
VnY1NDJnK0dvMm9hbldxZkFKMTMwQTBMUDR5RUVJSWs4blUxOVltaE1qa2NwbGNUZ2h4ZG5oWU1a
bWlxWlF1UkxQREVkdmVOczRjCjZ1eGMyTmhvYjI2dTdFeDZjb1ZpOFhZd21DMFVFcG5NdmZYMTZZ
R0JjQ3JWNy9NZGVISThuUzdQWkxkYkxIOC9OOWZWMmpyWjMrL2MKblppL3NMbTVIbyszTlRlNzdI
WWhoRWluYndZQ0ozdDc5L1I0MWJHM1ptZi82OGNmUC96NUg5eTdWeXFWa3BuTTB5c0plQXlGWXZI
aQp3a0tmenhkUHA5UFpiS0ZZakt1cUVHSjZZTUFmaVhRME42L0ZZdkhkekJGSnBZTEo1QnZINm1h
SXVtOGdHaGtCNno0V1JTbnB1aERDCkpFUkoxd3VhOWc5MzdueHVZc0t4TzJrcG9hcHFOcHN2Rkp4
R2RwSEJaREpaTFphcGdZSHlrWEF5dWIyelkzU25HY3dtVTdrL1pqa2MKdGx1dFJuZ3ltODB2am8x
OVBEOC8xdE5qVlJRaFJEcWJ2UjBNdmp3eDBiSTd2R2pNZkcrb2VWZldSK3lvZS9PNTU0cWE5djFI
eVdUQQpNM0RWNzUvdTd4L3E3SXlrVXY1dytJV3hNZU40UWxVenVkenJNek5yc1Zna2xUbzdOQ1NF
RUY1dkZVdDlQSFhmUURReUF0WjliQlpMCloydHIrV211VUJCQ3REVTF1UjBPNDBnZ0duWGI3UkxU
MVg2QmFOUWZpWHh4ZXJweU9LL0o0VmdLaFhLRlFxRlkzRXdtTS9uOEs2ZE8KR1Y5eTJlMnZ6OHdZ
ajdQNS9LWEZ4ZGVtcGtMSlpHZHJxMFZSRmpZM2s1bk1yNTArL1ZScnJnTU5NbmlLWXlTU1NrMFBE
QmgvU25XMAp0RnoxKzhQSlpHZHJhNkZZVkhNNUk0djArWHhYL2Y1ZXI3ZnlCOWR4VWZjTlJJTWpZ
TjNuOHVMaWFGZFhlZktUc2NDQlZpb1ZkM3VQCkNwcjJoTCtKQzVxMnZiTno0TnBVK1dMeEY3ZHVu
VDV4NGd1VGUrZlFUL1gxT2F6V25YeSt5ZUVZN3V6czlucDFYVjhNaGJ4dWQxdHoKczNGT0twTUpi
bTE5Zm1MQ1pyVzJ1RnlmTGk5N1hLNDc2K3V2VDA4Zm5hNFNxcm9jRHZzamtiZG5aeTh2TG00a0Vu
YUxaZWJFaWVITwpUdU9FWEtGd0l4QllpOFZ5aFlLaUtPM056Yk5EUXkwdVYxeFZsME9obFdqME44
K2Z2N3kwRkloRyszeSt6MDFNSEhhK2NiV2xVR2h1CmJTMlR5N1UzTjc4d050YmtjQWdoSHZWU0Q2
elpvSlZLVi8xK2Z5Uml0MWhlR2gvZmN5Y0JVTXM2V2xxRUVKbGNUalhtTFF3TkNTRWkKcVpRUXdt
YXhSSFluSncxMWRQZ2prZU9ZUCtxK2dXaHdCS3o3ck1aaWl0bmN0TnRmWmVTcTROWldlUzJHMU02
T2UxOVlpYVJTaVllZQplcm1aU0d3bUVwK2JtT2h2YXlzZkxCU0xONFBCb3FhMU9KMWIyOXM5KzNy
Q2JWYnJxYjYrZSt2clBWNXZPZjhOdExXOWUvWHF6SWtUCm8xMWRCVTB6bTgzVHUrT01pdG5jNm5K
ZER3Ukd1N3JLM1crSCtjWHQyMFpmM2VMbTV2blIwWjE4L3IzYnR5OHVMRGl0MW02dlZ3angKM3R4
Y1BKMStZMmJHMTlTMEZBcDl1cno4d2IxN1h6MTc5dTl2Mzg0V0NrS0loVkRvOUlrVCtXSXh0Yk56
eFBsQ2lMdnI2MWY5L3JORApRNk5kWFZmOC9oOTkrcWxSclZWUkh1bFNENnpaTUwreE1UTXcwTm5h
K3NIZHU1OHNMMy9sekptSC9OOEUxQWlyb3V4WkFPOFh0MjkvCmNXcXEvRlRONWRSc1ZzMW0zYys4
TmlucXZvRm9XQVNzK3hTS3hkSHU3cGJkQkpNckZLNEhBa01kSGVXTTB1M3g3Si9mMDk3YzdIVS8K
N0dmZjZHS3BuQ052RXNKbXNjenNacU5Dc1hoN2RWWG9lanFYYTZvSWMybyt2eFFLUmJlM1h6NTUw
amhpdDFwZm01b3k1bVpsOC9seQo4Q3BxMmxXLzM2b292L1hDQzNmVzFuNXk5ZXJKM3Q3QmpvN0RK
dWEvZGZic1gxMjZKSVNZN084M21VeDJxL1gwaVJPWEZoZnZySzhiCllVWFg5V2FIdy9oemM3Uzcr
OVBsWlNQOWZPM2NPV1BlVWxkcnE5Tm1LNDlhSG5hK0VHSnVkVlVJTWRiZHJaak5wd2NHbGtLaGpw
YVcKTjJabXlsT2dIdkpTRDZ6Wk1ON1RvNWpOZlY2dkVDTEZISFljUTliNzV5MElJVXhDVkI2SnBs
Sk5kcnZiNFhpaWZRS3FwKzRiaUlaRgp3UHBNcmxBbzZicHIzeVk1bFpxZFRtTnNicVN6czd3b3FN
bGtlc0p4dzhwTmNLd1d5MVIvdnhEQ0h3NFBWUXg0ZlRRL1A5VFJjV0Y4CnZQS0ZIcmRiQ0xFUmp4
c0pUOWYxbFdnMG9hb1R2YjFHVEp3ZUdPanorVDVaWHI3cTkvZDR2VDFlYjF0VDA1NEZJTXJ6Mzhz
dE1yclEKdG5aL25Ca2RQL2xpMFIrSkxJZEN4aHVKaW5sTDVmVzZqajdmZUVtdVdDeHFtbUkyRzh2
YmJPL3NQTWFsSGxpendjaVVack5aQ0ZFNgpjaDE4b0RiOTh1N2RpWjZlanNOSHQrT3ErdkIvNE5X
Z3VtOGdHaFlCNnpQSlRNYWlLUE1iRzhaVFhZaEFOQ3FFV0FpRmJCWDVLWlBQCkwyeHVhcG8yMGRz
cjY2MU5GZXV6cDdQWlpvZkRZYk0xT1J4cnNWaWZ6eWVFaUtmVEcvSDRXMmZQSHZqeTFWaXNvNlZs
YTN0N1lYUFQKNDNhZkdSdzBWV3hjNkhHN3Z6UXo4OU5yMTVLcXVoNlB2M3JxMUFOWDJETHVtaXp0
N3JHamxVbzNBb0dGemMxZXIvZUZzYkcvdVg3OQo2SmNmY2Y3czhQQUhkKy9lQ0FUT0RnMHRoOE1t
SWM0ZmVkUDF3Ny8xbnBxQityQWVpMW5NNWxERnhseTZydDhNQnN0UDA3bmNzYzRmCmRkOUFOQ3dD
MW1kTUp0TllWOWRrZjcveDlQcktpakVIYSt6K2FVeWhSQ0lRalVwSlYwVk4yODVtdDlMcGJLSHc0
YjE3VHB1dHE3VzEKMitNeDRsRjdTOHNuUzB0dXU3M0Y2Ynk0c0hCK1pHVC9GdFJDaUVncVpSTENa
REsxTlRkSFVxbUZqWTM5SWFOWUtzVlZkYUtuNTh6UQowQU0zalJaQ0dNT081ZGxtbHhjWC9aSEl1
ZUhoOFo2ZWgyblhFZWYzZXIwalhWM0pUT1lIRnkrMk9KMWZtSnpzUHZMVzY0ZC82ejAxCkEzWGpa
Ryt2cHlKaHpLMnV6bFNzNmpMUzJmbW82NUxVbXJwdklCb1RBZXN6SFMwdDVXNXFmemdjakVaZm01
cjY4WlVyZTA3TGE1cXMKVDd1YXkvM2kxcTBtaDhObXNidzROclovanRTWndjSDM1K2JNWm5OL1c5
dEFlL3VCRjdrVkRJNTBkWlhId2x3T1J6a2pmbFp6c1hoNwpkWFd5cisvb2RKVXZGbzNwL01iOU8z
MjcwL0NEVzF0aWQ2ZWRBK202WHRsbmRzVDUxMWRXeHJxNzk0d0RQdDZsanFqNXNGMng5MXdjCnFI
RnFOcXZ2emdRNGpMSE1nVDhTR1hwUXozUU5xdnNHb3BFUnNBNndIQTR2aGtKZk9uMzZ3RDJ3TXJt
Y3JEV2xXbDJ1dDJkbnc4bmsKalVEZ3dCbm9acFBKWWJORlU2a1dwMU1ybGZhZjR3K0hROGxrZVpU
TmJES0p3MmNhUGJEdjZ2ckt5cG5Cd1d5aGNNM3ZkOWxzazMxOQp4bkdIMWFybWN2NXdlS0M5ZlNr
VU1nNW1jcm5icTZ2RzQwS3hhS3RZeVBTdzgvMlJ5RUlvZEtkaU8ycmpIK0hGc2JGeUpIcjRTeDFS
CmMyeDNKbFpDVlQxdWQva2V6N2lxSHJoQWhxN3I2V3pXZUx5OXM5UGtjSkREVUF2VVhNNWlObGVP
bDBXU3lkTDlJMmhDQ0RXYjlVY2kKWW1CZzZMZ3R4Vm4zRFVRalUyWjIxNmlzS1pxbVBWb2YwZTQr
Vm8rall0eXRWQ3BkRHdUeXhlS0Y4WEdyeFZJcWxlYlcxaVo2ZW93KwprcTN0YlYzWDc2NnZlOXp1
L1NzcFBCNkxvcVF5bVZBeU9iRnZDQ3locWxmOC9ySHU3dWNHQi8zaDhMV1ZGWnZGNG5HNTlzeXZ1
ck8yCmRySzMxK2hVaTZ0cUxKM2UzOTlUMUxRNzYrdW4rdm9PbTR4L0t4Z1VRa3owOUx4LzU4Nzh4
a1piYy9QblQ1NHNqMGkydUZ6aFpISXQKRmt0bnM1TjlmZWxzVnMxbVU1bE1ZR3ZMT0dFeEZLcnNO
anZzL0luZTNoYUhJNVJNVnZZdzVRcUZVQ0p4ZHpkMVBmeWxGalkzRDZ2NQpoNTk4VXI3YXpNREFm
N3Q4MlhpNkZBcFZEajJVL2NXSEg4NXZiaHFQNXpjM2I5MC9RaUZUUHYvNHJ6MWs2NlNETWFKU0ZW
RTVQNGpLCkNwcG0zR0xjMmRyYTJkb2FTYVhpbVV5dVVIaDlac1k0WXZ4bnMxajhrY2dyeG5Mbmo2
Zmo0YjY3NnI2QlFnZ2hORTBvREVyaWlkR0QKOVpsNE9yMlZUbzkyZFRYZHYzQlVPZEJrOC9tZjNi
aGhOcG5PREE3S2ZlczlRMXFaWEM2NHRXVlZsSmNtSm94dXA4K2ZPclVjRGwvMQorMjhGZ3lkN2U0
Y3FKaVhvdWg1TnBjb0RpR291ZC92K1AvNkVFSVZTYWYrNzdEZlUyVGwwLzBLZGhtNlA1emZPbnk4
L0xhK2hjSmpECnp0ZDFQWjVPdno0OVhWNGN0YWhwbTRuRVIvUHo3N3o4OGlOZDZ1aWE5MXp0c0lz
Ly9BbEFWWGpjN3ZMd21UOGNYb3ZGM3BpZU5oWW8KMmVPWVRnT3Yrd2Fpa1JHd2ZxV2s2eDYzMjN2
LytKSFpiRGJXd0RTZTlyVzF2VG81NlhXN25VY3U1ZkNvckJaTGVkR0JiRDZmeWVlRgpFQ2YzVGFJ
Zjd1enM5WHB2QllQR2VHSzVtK3FWVTZmYWRzdjJ1dDBuMnR1bjl2VythS1ZTUWxVUEhQRjhsajVk
WHA2cTJKUmFDR0ZSCmxCYVg2N0J0clFFWS9PSHd2WTJOMTZlbkQvd1VSMU1wVzdVLzNVK283aHVJ
QnNTMzdLOGNPRC9KYkRMOTlvVUxsVU55dlU5aEJrQzMKeDlPMXU2cWV3Mlk3OEZaQmc5MXFQVGN5
Y25aNHVMTGF5c0ZLWDFQVGdYT01GTFA1dFlxVmtmZEk3cTdBYWN4WWV0VDZIOTU2TEpZcgpGQ1o2
ZTF0ZExvdlpYTkMwY0RJWmlFYVBYcW5oUU0rc1pxQzZDc1hpcmRWVmw5Mys1a0g3RUNSVTFhb280
VlRxK0g0SzZyNkJhRmdFCnJBZDROcE9kSCtsZEhtYWRoVWZ5N3RXcnhvT2ZYTHYyVkFmTHZ2emNj
M2ZXMWo2ZW4xZHpPYlBKMU9KMERyYTNYeGdmUDJ5SitTTTgKczVxQktvcWtVcEZrY3FLbngzWElq
VFZxTHZjUGQrNVlGZVdGMFZGUkxEN2o4cDVjM1RjUWpZeUFoV2MzQThscHM4ME9EODhPRHovNQpw
UWhWcUh1RllyRnk3WmdEOWZsOGI4ek1lRnd1cThWeTdIYVNxZnNHb3NIVlM4QjY5REVtb0FvT1g5
QUwyT093U1pQLzQrYytWL24wCjZJQlN5K3ErZ1dod2p6dzBBd0FBZ0tNUnNBQUFBQ1FqWUFIQThW
YmVxd0JBN2FpWE9WZ0FVSStNVFRhUG9HYXpIeThzekF3TVRMT04KREZCTENGZ0FVTHVzaXBJL2Nu
a0NsOTMrK3ZSMGs4TWhDb1ZuVmhXQUJ5SmdBVUR0ZW9RRk5nbFlRQzFoRGhZQUFJQmtCQ3dBQUFE
SgpDRmdBZ0ZwWEtCWVQyV3kxcXdBZUFYT3dBQUJWc0JhTFBmd0NFM0ZWVGFUVHM3MjlmU3pzam1P
Q2dBVUFxSUkrbjYvUDUzdUVGN0FYCklZNFZoZ2dCQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFB
Z0dRRUxBT3JCcGRWVmZ6eGU3U29BL0FwM0VRSkF6VW1vNm1vczlrZ3YKY1ZxdDZYeStvR2xXUlhs
S1ZRRjRlQVFzQUtnNUhyZjdFWFloTkxDS0FWQkxHQ0lFQUFDUWpJQUZBQUFnR1FFTEFJNkJUQzUz
YVdGaAovOTR5aFdLeEt2VklWL2NOUktOaERoWUExQ2cxbTEyTHg5MTIrMW9zRmxmVlBwL1BackdF
azhsYndlQkViNi9OWWhGQ0xJZkRRb2dYCng4YXFYZXpqcVBzR29wRVJzQUNnUnFtNTNNMUE0TlhK
eWNwNGtjNW0xVnpPcWlpNnJnc2hFcXJxdHRzTHhhSzFlblUrdHJwdklCb1oKQVFzQWFwZXZxYW1q
cGFYeVNFSFRtaHlPenRaVzQ2bk5Zdkc2M1ZiTGNmMWhYdmNOUk1OaURoWUExTHBDc1hqVjd6ZG1J
eVZWMVcyMwpWN3NpeWVxK2dXaEFCQ3dBcUYzcGJQWm1NSGd6R0l5bDAvYzJOb1FRcS9ING5pNmZz
a1EyKzJ5cms2RHVHNGlHVlMrZHJvdUxqLy9hCnBxYktad3VibS8wK244Tm0yM05XY0d1cngrT3hQ
T1Vsa3RWc2RtNXRiYUN0cmFPMTFXd3lsWStYZEwzeTZZRld0N2JjZHJ1M29qbWgKUk1KcXNmanVi
eUNxNlVtV2dod2RsVmNIam8wbWgyTm1ZS0Q4ZEMwV0t4UUtRNTJkbGVma05jMTQ0SS9GeHR2YjNm
dCtmTld5dW04ZwpHbGE5QkN4Sk51THhHNEZBcTh2bHNObDBYYjhaREo3czdiVlpMRHU1M0FkMzcx
NFlHeXQvN08rc3JmbWFtc3F6Qko3RTF2YjIxdloyCnE4dTFFbzF1Nyt4MGVUeHVoMk16SHIrenZq
N1cxYVdZelVLSXdOYVdFT0tsOFhIVDRURXJ1TFdsWnJOZmZ1NjU4cEcxZUh3ekh2L0sKMmJQR1JX
THBkTFBUeVRZYXdER1ZVTlcxV096Tk0yY3FEM2EydE54Wlg0K24wMExUd3FxcUZncWZIeHlzVm9W
UHFPNGJpSVpDd1BxTQpWaXBkV1Y3dTluaFd0N2FpcVZTK1dBeW5VcmxDNGZ6bzZFSW81R3RxaXFY
VE8vbThjWElrbFlxa1VoNjMyL1lvVXkrVG1VeXJ5N1huCllDYVh1eDRJZkhGcTZvWFIwWEorU21Z
eXFaMmQxdDI5TW5ieWVjVnNMdW02c252Q1RqNGZqRVlycjVQT1p1MFd5NzMxOWZLUmhLbzYKYkxi
RnpVM2o2ZTIxTmF1aWZQbjBhYnVWMjNHQTQ2UlFMUDd5N3QzcGdZSDlxeFdNOS9SWUxKWjhzU2p5
K1luMjlzN2oyV05kOXcxRQpBeUpnL1lxdTY1Y1hGNmNIQmdZN09pS3AxTUxtNW9YeGNXTlVMcDVP
eDlMcDE2ZW5ROG5rV2l4bXhLREpmUzlmamNXTW00b1BreTBVCnJpd3ZuK3J0UFRNMGROOFhUQ2E3
MWRwKy81eURvcVk1ck5aeUdyTW9pdGZ0TmpxaURFNmJiYVNycS9JbHNYUzZ4ZW1zUEpqT1prMG0K
VS9tSThlQnBqM0xXZ3JpcUxvVkNLNUhJTnk1Y3FIWXR3Qk14cGlnVmlzV1NyaWRVZGYva0pLdkZN
dEhUYzI5am85UHA5RGdjVlNueQpTZFI5QTlHd0NGaENDS0hyK25vc050blgxK0p5Q1NFNldsbytY
VnBhajhYNjI5clMyV3dpazNsMWN0SnNNdlY2dlZlV2w4T3BWTmUrCmtVR1R5ZFRlM0t5VlNrZS9V
YS9YcSt3YjR5cy9MMnJhalVCZzVzUUpxNkprY3JsbXAvUG9xMWtVWlNlZnR5cUtrWm5PREEyWlRT
YUwKb3BSMC9hTjc5MDcxOVUzMjl3dGRONDQ4Y0FwWFBYbC9icTdjMS9nd05oT0pxMzUvYW1mSGJi
Tk45UGFPOS9ROHZkcUFSMUk1UmFsUQpMTjRLQm5VaDFHeldYUkUxMUd6V0g0a01lNzB2Vmt4bU9p
N3F2b0ZvV0FRc0lZUXdtVXg5YlcxQ2lFd3VsOG5saEJCbmg0Y1ZreW1hClN1bENORHNjc2UxdDQ4
eWh6czZGalkzMjV1Ykt6aVNEOHdubVhSYUt4ZHZCWUxaUVNHUXk5OWJYcHdjR3dxbFV2ODkzNE1u
eGRMbzgKazkxdXNmejkzRnhYYSt0a2YzKzVnSVhOemZWNHZLMjUyV1hjNnB4TzN3d0VUdmIyN3Vu
eHFtTnZ6YzcrMTQ4L2ZzaVQ0NnI2OTNOegpSdTlqT3BmN2RIbTVxR21UL2YxUHMwRGdjVmd0bHVt
QkFTSEVXaXpXVi9IejRkTEN3a2huNXd2ZDNkVXJUWTY2YnlBYUNzczAzTWZvCjdDbnB1a21Ja3E3
bmlzV2YzN3laeWVlTmcwWVBkanFielJjS0V0L1VaREpaTFphcGdZRnpJeU52ek14TUR3eUVrOG50
blozQmpvN3kKT1dhVHFiQjdIODF5T0d5a1FDR0UyV3grY1d4c001RW9meldkemQ0T0JsK2VtT2p6
K2J4dXQ5ZnRYZ3FGaEJBTk5lL3FrU2J5MzFsYgplMzU0K0pzdnZmVHJ6ei9mNi9VS0llNXViRHkx
MG9ESGxNbmxJcW1Vc1ZLVTIyNlBwRkxHOFVncXRScUxuZDB6OGVBWXF2c0dvdEhRCmczVWZtOFZT
ZVdOZ3JsQVFRclExTlpVN3F3UFJxTnR1ZHo3TlJmQUMwYWcvRXZuaTlIVGxaS2ttaDJNcEZNb1ZD
b1ZpY1RPWnpPVHoKcjV3NlpYekpaYmUvUGpOalBNN204NWNXRjErYm1nb2xrNTJ0clJaRldkamNU
R1l5djNiNjlGT3QrVmp6dXQyajNkMUNDSmZkZm1GOAovQWNYTHo1d3FCZDRCaUtwVkNLVFNXZXpG
eGNXM0hhN3grVXlPdHFGRUI2Mys2cmZiMVVVdDkxK3hlOS9jV3pzT0M1MFh2Y05SSVBqClcvWSts
eGNYUjd1NnlwT2ZqRiswV3FsVTNPMGZLbWphMDVza25pOFdmM0hyMXVrVEo3NHd1V2NPdlpqcTYz
TllyVHY1ZkpQRE1keloKMmUzMTZycStHQXA1M2U2MjVtYmpuRlFtRTl6YSt2ekVoTTFxYlhHNVBs
MWU5cmhjZDliWFg1K2VQanBkSlZSMU9SejJSeUp2ejg1ZQpYbHpjU0NUc0Zzdk1pUlBEdTJ0UzVB
cUZHNEhBV2l5V0t4UVVSV2x2YnA0ZEdtcHh1ZUtxdWh3S3JVU2p2M24rL09XbHBVQTAydWZ6CmZX
NWk0ckR6amFzdGhVSnphMnVaWEs2OXVmbUZzYkVtaDBNSThhaVhlbUROQnExVXV1cjMreU1SdThY
eTB2aDQrMEdyRjU3cTZ5cy8KTnU3aWJOLzlKd1dxSmFHcTc4L05lZDF1bThVeU96UzBQMTZjSFJy
NnhhMWJGa1VaNnVqb08yUTZRUzJyK3dZQ3lzeHU1MGROMFRUdAowVkpNUFA3NGIxWXhkK3JpNHFJ
UUlwUExKVlExb2FyeGREcVVURHFzMXUyZEhlUElaakxaNG5SMmVUeVAvM2I3Yk8vc0JLSlJUZGRE
CnlhUmlObXVsMHY3bHRSUkZhVzlwMmQ3Wk1kWWdWY3htazhua3R0dC9mdk9tc1pSb1FkTkt1dDdm
MXFZb2loRENiREtwdWR5TlFHQ28KbzJPZ3ZmMkkxYk9FRU85ZXV4Wk9KclZTeWFvb015ZE9uR2h2
OTBjaUs5Rm9lMU5UazlNcGhQajVyVnZyOGZnWHBxYWVIeG14V1N6egptNXVSVkdxc3UvdW4xNjZG
VXltdFZMSmJyZU05UGRzN08rbHNkcXk3KzdEemhSQjMxOWMvWFY2ZTZ1OS8rZVRKbUtwZVhGaTRG
UXplCldWdGIzZHA2cEVzOXNPWmJ3YUFRd3Fvb0ozdDdQVzczVWlnVVY5V3hCODNoaUtSU0s1SEk3
UER3QSs4d2VFeVBNdlYrcjBmNkhWUC8KdDRyV3BLaWNIMFJDQ0lmTk50YmQzZXgweHRMcDBZTyti
d3ZGNG1ZaWtWQlZwODNXMXRTa21NMVA5TjNWOFhEZlhYWGZRQ0dFRUpvbQpsQWE0MnhwUEd6MVk5
eWtVaTZQZDNTMjd2MXh6aGNMMVFHQ29vNk04Uk5qdDhVaGZxTk1raE0xaXFieVA1dmJxcXREMWRD
N1hWTkh6CnBPYnpTNkZRZEh2NzVaTW5qU04ycS9XMXFTbGo5bFUybnk5bmdxS21HYjNydi9YQ0Mz
ZlcxbjV5OWVySjN0N0Jqbzc5RS9NTmI1MDkKKzFlWExna2hKdnY3VFNhVDNXbzlmZUxFcGNYRk8r
dnIzVjZ2RUVMWDlXYUh3N2g5ZXJTNys5UGw1ZFRPamhEaWErZk9mZi9qajRVUQpYYTJ0VHB1dFBH
cDUyUGxDaUxuVlZTSEVXSGUzWWphZkhoaFlDb1U2V2xyZW1Ka3BhdG9qWGVxQk5SdkdlM29Vczdu
UDZ4VkNwREtaCkIvNi9XQTZIZXp5ZTNvb3JBTlZ5eEtCWUpKWHloOE96dzhOV1Jibmk5Ly93azAv
T0RROFA3VnRqcjhiVmZRUFI0QWhZbjhrVkNpVmQKZHgxNU0yQ3owMm1NelkxMGRoN2RMZlJJS2k5
a3RWaW0rdnVGRVA1d3VISy9pSS9tNTRjNk9pNk1qMWUrME9OMkN5RTI0bkd2MnkyRQowSFY5SlJw
TnFPcEViNjhSRTZjSEJ2cDh2aytXbDYvNi9UMWViNC9YMjliVXRLZDdwanovdmR5aUhxOVhDTEcx
dTYvTFY4NmNFVUxrCmkwVi9KTEljQ2hsdkpDcVcxTnF6ZXVwaDV4c3Z5UldMUlUxVHpHYmp4K3Yy
enM1alhPcUJOUnVNVEdrMm00VVFwU05YS1JOQ0pET1oKU0NyMVpzVlMrRUN0U2FqcS9NWkdyOC8z
d3U2Q25DK09qZlg1ZkJjWEZtNmF6Y05lNzBSNys3SGVyYUh1RzRqR1FjRDZUREtUc1NqSwovTzRk
WkxvUWdXaFVDTEVRQ3RrcVBzK1pmSDVoYzFQVHRJbmVYbGx2YmFwWW56MmR6VFk3SEE2YnJjbmhL
TitySEUrbk4rTHh0ODZlClBmRGxxN0ZZUjB2TDF2YjJ3dWFteCswK016aFlHZjQ4YnZlWFptWitl
dTFhVWxYWDQvRlhUNTE2NFBpWHcyb1ZRcFIyNTNwcnBkS04KUUdCaGM3UFg2MzFoYk94dnJsOC8r
dVZIbkQ4N1BQekIzYnMzQW9HelEwUEw0YkJKaVBOSGJySDM4Rys5cCtaSHBldjZsZVhsVjA2ZAoy
cjhOSlZBdGxSdEZSRktwdUtyYUZPWHN2aGxMZlQ3ZjE4K2R1N2V5Y2pjYWRkdHNROGVuQzdidUc0
aEdSc0Q2ak1sa0d1dnFLaStBCmRIMWx4WmpiUHRiVlZibmtYU2lSQ0VTalV0SlZVZE8yczltdGRE
cGJLSHg0NzU3VFp1dHFiZTMyZUg0MTFicWw1Wk9sSmJmZDN1SjAKWGx4WU9EOHljdUR2L2tncVpS
TENaREsxTlRkSFVxbUZqWTM5SWFOWUtzVlZkYUtueDFpTTlJR0ZHY09PN3QwQnlzdUxpLzVJNU56
dwo4RU91d0huRStiMWU3MGhYVnpLVCtjSEZpeTFPNXhjbUo3dVAvRm41OEcrOXArWkhkWHQxZGFL
bnA3d3hkcjVRc0RYU3doYW9UUjYzCis0dlQwOGJqanBhVy9hdWNsMWt0bHVtdXJ1bmp0dFpkM1Rj
UWpZeUE5Wm5LajdjL0hBNUdvNjlOVGYzNHlwVTlwK1UxVFZZSHRackwKL2VMV3JTYUh3MmF4dkRn
MnRuK08xSm5Cd2ZmbjVzeG1jMzliMjBCNys0RVh1UlVNanV6dUNXMDJtMTBPeC81Rk12UEY0dTNW
MWNtKwp2cVBUVmI1WU5QNmdORmFnS2Q4eUhkemFFcnM3c2JsdnBnQUFIa1pKUkVGVTdSeEkxL1hL
UHJNanpyKytzakxXM2IxL1E4Ykh1TlFSCk5SKzJaOUdlaTVldHgySk9tNjNYNXhOQ2FLWFMvTWJH
VWpqODl1enNZVzhLUEh2K2NOampkbnQyOXljVlFrUlNLYXVpVkI0NTF1cSsKZ1dnMEJLd0RMSWZE
aTZIUWwwNmZQbkFPWmlhWGU4STFwUzR1TEhTMnRnNTFkTFM2WEcvUHpvYVR5UnVCd0lFejBNMG1r
OE5taTZaUwpMVTZuVmlydFA4Y2ZEb2VTeWZJb205bGtFb2ZQTkhwZzM5WDFsWlV6ZzRQWlF1R2Ez
Kyt5MlNaMzF5OXdXSzFxTHVjUGh3ZmEyNDFsClM0VVFtVnp1OXVxcThiaFFMRmIyOXh4MnZqOFNX
UWlGN2xSc1J5MkVhSFc1WGh3YkswZWloNy9VRVRYSGRtZGlKVlRWNDNZblZOVjQKR2xkVjM3NmRZ
cE9aeklmejgwVk51N1M0V0Q3SWJqbW9OZjVJSkxleFljeEtORVNTeVdBc1ZqNFNVVldQdzNGODV5
ZlZmUVBSYUFoWQo5eW1WU2plQ1FaTVFiOHpNbUUybTh2SlhocTN0YllmVldwNVJic2prY3Y1dytK
SGV4YW9vOFhTNnorZXpLb294V2Z2QVRKUlExZHVyCnEyUGQzUytNam40OFAvK2pUejg5ZmVMRVVF
ZEhaUi9NVUdmbjVhV2xjdkF5bVV3SExwSnB4SmNIelBFV29yMjUrVWRYcmhRMXJkdmoKT1RjOFhK
NGVjWDUwOU9MQ3doVy9QNXhLelE0TlJiZTNOK0p4WS9VcDQ0Uy8vdlRUeW0yVkR6di83UEN3M1dL
NTR2ZFhGcG5NWkQ2NAplMWZkWFp2KzRTOTFJeEE0ck9hZjNiaGh2UHduMTY2OTgvTExQN2wyelhq
Nk45ZXZ2L1B5eTN0YS9kN3QyM3YrUndzaHVxV3V4QUU4CnFvU3Fyc1ZpbFVmUzJhemI0VERXSHpH
RVV5bWJ4VkkrY205OTNXMnp2VDR5Y2l3aVNOMDNFQ0JnZlNhZVRtK2wwNk5kWFUzM2I5aGUKRGpU
WmZQNW5OMjZZVGFZemc0UGxyN3JzOXFrbjNuOTB6NUJXSnBjTGJtMVpGZVdsaVFtajIrbnpwMDR0
aDhOWC9mNWJ3ZURKM3Q2aAp6czd5anhoZDE2T3BWSGtBVWMzbGJsZjhoRElVU3FYOTc3TGZVR2Zu
MFAwTGRScTZQWjdmT0grKy9MUzhoc0poRGp0ZjEvVjRPdjM2CjlIUjVjZFNpcG0wbUVoL056Ky9Q
UFEvNTFnZld2T2RxaDEzY1VIbDlvRWJzR1N3VFFpUlUxZXQyVi82ME1RV0RRb2p5a2Vsak5mVzcK
N2hzSUVMQitwYVRySHJmYmUvLzRrZGxzVnN6bWNwVHBhMnQ3ZFhMUzYzWS95YjdPKzFrdGx2S2lB
OWw4UHBQUEN5Rk83cHRFUDl6WgoyZXYxM2dvR2pmSEU4clNrVjA2ZGF0c3QyK3QybjJodjN4LzR0
Rklwb2FwVjMydkNXR0swOGwvUG9pZ3RMdGRoMjFvRERTNlR5N2wyCkp5UVlpMElaank4dExvNTNk
NWYvMENvVWkxWC9kRCtldW04Z0dobmZzcjl5NFB3a3M4bjAyeGN1VkE3SlBZMGxLTHM5bnE3ZHBk
c2QKTnRzUnl3VFlyZFp6SXlObmg0Y3JxKzJwS01uWDFMUi9qcEVRUWpHYlg1dWFPdXl5eWQwVk9J
MFpTNDlhLzhOYmo4VnloY0pFYjIrcgp5MlV4bXd1YUZrNG1BOUhvMFNzMUhPaVoxUXhVa2N0dS84
V3RXNzArMzBSUFR6bUkzTnZZQ0VhakhjM041YnViTHk0c1RQZjNIOGQxCk9PdStnV2hrQnkvdGpU
S0pxNG5LZXBlSFdXZmhrYng3OWFyeG9EeFg2U241OG5QUE9XMjJqK2ZuZjNEeDR2Yy8vdmdYdDI2
cDJleUYKOFhIYm8vOXQrc3hxQnFycmhkSFJ0YTJ0UXJGb1BFMm82cTFnY0haNDJHVzM2N3B1ck45
bVVaVGoyOEZUOXcxRXcrSmJGZytZb2lTUgowMmFiSFI2ZUhSNSs4a3M5czVxQjZuSTdISy92N2ho
YktCWnZCWU92VDArdngyTDlQcC9WWXZHSHc0Vmk4YzB6WjZ3V2k3aC9HNFBqCm91NGJpSVpWTHdI
cjBjZVlnQ3BnbVVROHRQbU5EWS9iWFY2Y0w2R3E2N0hZaTJOalZvdkZiYmRmOWZ0YjNlNTc2K3V2
bkRwMVRIdDMKNnI2QmFIQU1FUUpBTFJycTZQaUhPM2VNVldBS3hhTE5ZcGthR0RDaWh0VmljZG50
TndPQlBwL3ZzWGN2cUxxNmJ5QWFuREt6MnpkYgpVelJOWTUwVDRQSHgrYW1LYVB6eFg3dnY3aGJG
Yk83eGVEUmRiM0U2cy9sOGVjWjNvVmg4ZjI3T2JiZS9OaldWem1iLzRlN2RVcW5rCmRidVYzV2xN
ajZQajRlN2tyZnNHQ2lHRTBEU2hzTlFXbmhqOXJnQlFvNHpGb2lLcGxHZjNCanAvSkpKUTFSZkh4
b3g3N3NaN2VqcGEKV3E0c0w5OWRYKzkwdXp1Ym1qcWJtanozcitSWHkrcStnV2hrREJFQ1FFMHpW
anhmaThWK2VlZU9tczJlSFJweVZZeWFlZHp1MTJkbQptcHpPZ3FiZERJVUsrN1lscUgxMTMwQTBK
bnF3QUtCMkdidVlDeUg2Zkw2a3FpNkZ3d2Z2ckpWT1QzZDF2WDRNYi9lcCt3YWlZUkd3CkFLQjIz
UW9HeDN0NnlyZlJOVGtjTXdmdHpUVzN1anA5UE85UnJmc0dvbUV4UkFnQU5jb2ZEb2VTU1UvOXJt
QmU5dzFFSXlOZ0FVQ04KR3Vyc05KdE1qN0hWd1hGUjl3MUVJK1BiR2dCcVdseFZPM2UzSzAxbnM3
ZUN3ZjNuSERodjZiaW8rd2FpTVJHd0FLQjJ2WHp5cEhkMwpPL05lbjA4WFl2cWdLVXFKM2UzUGo1
MjZieUFhRmdFTEFHcFhuKyt6RlRLTlZhTU9QTzN6SjA4ZTA2MzY2cjZCYUZqTXdRSUFBSkNNCmdB
VUFBQ0FaQVFzQWFzTDNQdmdnZWZoTW8zeXgrRmVYTGlWVTlWbVdKRmZkTnhDb3hCd3NBS2dWNzE2
OWV2UUp5K0h3N1BEd3N5bm0KYWFqN0JnSmw5R0FCd0xIaGowU3FYY0xUVmZjTlJPT2dCd3NBYXNX
Ylo4NTRYQzZUeWVRUGh5UGIyMmRPbkxCWnJjYVhkRjIvdmJvNgoxdDFkM1FxZlVOMDNFQ2lqQndz
QWFzSTdMNy9zZGJ0TkpwTVE0dXJLeXBuQndYTDRFRUtZVEtheDd1N0xpNHZWSy9CSjFYMERnVW9F
CkxBQ29PVVZOeXhVS2V3N3U1UE1iaVVSVjZwR3U3aHNJRUxBQW9PWjBlenp2ejgydHgyS0ZZbEhY
OVd3K3Z4d092M2Y3ZHQxczIxZjMKRFFUNFZnYUFtak03TlBUem16ZmZ2M05uei9FWHg4YXFVbzkw
ZGQ5QVFKbVptYWwyRFFmUU5FMnBkZzNBTWNibnB5cWk4Y2QvcmMxMgozek9MWmJpelV3aVJMUlNL
bXFZb1NudEx5L21Sa1lIMjlrT3ZrTTgvL3J0MytCNThqbWlBQmdvaGhOQTBvU2g4aFBDazZNRUNn
RnBrCnMxak9EQTZlR1J5c2RpRlBTOTAzRUEyT09WZ0FBQUNTMFlNRkFEVW5sRWhjV2x6TUZnb0Ri
VzNuUjBjVnMva24xNjZaVGFiWEppY3IKbHpZNHZ1cStnUUE5V0FCUWN6NWVXRkJ6T2ExVThrY2lO
d01CSVlTbWFiRjArbm9nVU8zUzVLajdCZ0lFTEFDb09mbGk4ZnpJeURkZgpldW5jOFBEODVtYWhX
SHo3M0xrM1ptYldZckZxbHlaSDNUY1FJR0FCUU0zcDgva0cydHNWczNtOHA2Zlg2MTJPUklRUXZx
YW0vWXR6CkhsTjEzMENnZHVkZ1BjSDl1RUNqc3ozNEZOUzAyYUdocFZEb1ZGK2ZFT0pVWDkrbGhZ
V3g3dTZsVUtodWxnK28rd1lDdFJ1d0FLQmgKZmJLMHRCcUxYVnRaS1IvNXl3OC9GRUowZXp6Vksw
cW11bThnUU1BQ2dKcXpIdCs3cEtmSlpHcHhPbWVIaHFwUmpueDEzMENBZ0FVQQpOYWVydGZYNWtS
RzN3MUh0UXA2V3VtOGd3Q1IzQUtnNUc0bkUzTnBhNVJHdFZQcHZseTdGVmJWYUpjbFY5dzBFNk1F
Q2dGcTBHQW90CmhrSjdEaTZIUXQ2UmthclVJMTNkTnhBTmpoNHNBRGcyVnFMUmFwZndkTlY5QTlF
NDZNRUNnSnBqVlpTdm56dG50VmhNSnBOeEpLR3EKNFZScXJLdXJ1b1hKVXZjTkJPakJBb0NhODQw
TEYyeFdhemw4Q0NFOGJ2ZEFXOXZscGFVcVZpVlIzVGNRSUdBQndQSHd5ZEpTb0s1SAowT3ErZ1dn
b0JDd0FPQjdVWEs3WDY2MTJGVTlSM1RjUURZVTVXQUJ3UEh6bHpKbHFsL0NZL3Z4M2YvZDU5Wjgr
OExTUkx3a2h4UHhCClgvcms5Ti8rVC8vcVgwa3VDM2lhQ0ZnQVVITkNpY1NseGNWc29URFExblor
ZEZReG0zOXk3WnJaWkhwdGN0Sm10VmE3T2dsU1MrOEYKZnZTSFJUWGltZnoxRTI5LzEyeDF6djNI
TDVvVXk5anYvSVhGNWF0MmRZQUVEQkVDUU0zNWVHRkJ6ZVcwVXNrZmlkd01CSVFRbXFiRgowdW5y
Z1VDMVM1Tmo1WWYvUEo5WUtSVXlzZXZmMjNqdk8wS0lVbkVuczM1bC9lLytkYlZMQStRZ1lBRkF6
Y2tYaStkSFJyNzUwa3ZuCmhvZm5OemNMeGVMYjU4NjlNVE96Rm90VnV6UTV0SjNFd052ZlBmdXQ0
TUJYdnhPNS9KK0syZVQwNzM4ODhYdC9uWngvdDlxbEFYSVEKc0FDZzV2VDVmQVB0N1lyWlBON1Qw
K3YxTGtjaVFnaGZVMU91VUtoMmFYSzBubnpMTy9WYlpxdXI0NFYvMGpyK1p1emFud3NoWEQxbgpD
K2xJdFVzRDVDQmdBVURObVIwYVd0cmRSdVpVWDk5eUtGVFM5YVZRU0ZHVTZoWW1TLytYdngyOThx
Zkc0ODdQL2NIV3RmK3NhNFd0CnEzOW10cm1xV3hnZ0M1UGNBYURtZkxLMHRCcUxYVnRaS1IvNXl3
OC9GRUowZXp6VkswcW00THQvbExqNzQvVy8vWGI1eUpWLzB5MkUKYUI1NXZYcEZBVElSc0FDZzVx
ekg0M3VPbUV5bUZxZHpkbWlvR3VYSWwxejRtZEJMOXgweVd4enRFLzF2TXNrZGRZS0FCUUExcDZ1
MQo5Zm1SRWJmRFVlMUNucGJtb1ZjRzN2cTN0dGFCeXQxeWdIckNIQ3dBcUFuWmZQNkhseTkvc3JT
azYvclo0ZUdWdXRzMHByQzllZk0vCm5BbjgrRi9vZXFuLzEvNnYySTMvUXJwQ0hhTUhDd0Jxd3R6
YVdsdHo4MVIvLzBvMHFtbmEzTnBhb1ZoOGJuQndQUjYvc3J4Y0xKV20KK3ZvbWVudXJYZWJqQzMz
NC83aDZuKzkrNVgrTjNmakxVbUVuOU9GL0tPVlN2Vi82bDhsNzc2Nys5UDhvRlRMZG4vOWZPaS84
czJxWApDY2hCd0FLQW1yQWVqMThZSDNmYWJNME94OS9kdXFXVlNvTWRIWjh1THkrRlFpVmRGMEpj
OGZ1dEZzdHdaMmUxSzMxTXlmbS9HZnlOCi85ZlcwdU5vRzd2M3A3K3BGM2U4cDcrNSt1NjNvbGYv
VEM5bWhSQ3JQLzFqeGQ3U2R2WjNxMTBwSUFFQkN3QnFncHJMdGJwY1FvaTIKNW1hdFZCSkNlTnp1
WkNZejNOazVNekJndFZnV05qWnVyNjRlMzRDVlR3U2NuWk5DQ0hmZjgzcHhSd2poNnBwWkRjKzFQ
ZmRPejJ2ZgpVdXhOa2N0L3N2bkxmMC9BUW4xZ0RoWUExQVN6eVdReDcvMlp2TFc5Zlhab3lHR3pL
V2J6YUhkM0pwZXJTbTFTbUJTcjJlYmVjMUJkCis2VHZ5OSsyTm5XYXJhNzJjLzl6UGhtc1NtMkFk
QVFzQUtnSkxVNW5RZFAySDF3T2g3VlNLWnZQWC9YNzI1dWJxMUtiRlBhMmNTMmIKM0hQUTBUNitk
ZjE3cFdLMmtBNnQvZXovZFBlL1dKWGFBT2tZSWdTQW1qRFkzaDVPSnZ2YjJvb1ZNZXU1d2NIMzUr
WStYVjQybnI0OQpPMXVsNmlUd3pmejJ0ditYM3NtdmEvbDArV0R2Ry85eThjOS9aL1hkUHpLZVR2
Myt4U3BWQjBoR0R4WUExSVN4bnA1QU5McTlzN09aClNBZ2hqUGxZUFY3djUwK2V0RnV0N1MwdFFv
aG1wN1BLVlQ2QmpoZitjZnoyRDdMUitlMmw5NFFRenM1cElVVHIySmRHdnZrbkZuZG4KMDRuUENT
RWNiYU5WcmhLUWhCNHNBS2dKaXRsOGZuVDAwNldsMVZqTWJiZS9PRFptSE85cmErdHJheE5DL0pl
UFBxcHFnVS9LYkhHYwplUHU3d1hlL2xiejdJNXQzNk1UWC83MXgzSFBxYTU1VFh4TkNYUDIvQjZw
YUlDQVRQVmdBVUN0c0ZzdExFeFBmZk9rbE5aZlRkYjN5ClMxcXBaRldVdUtwV3F6WXBMRTdQOFAv
dy81MzlWakFmOXd1OVZObkdVaUdqMkZzeW05ZXJXQjRnRVQxWUFGQ0xmbmJqeHY2RHk2R1EKZDJU
azJSZnpOTno5azYvc1A3aDE5YzljWDMzdTJSY0RTRWNQRmdBY0cvVzNmODRlc1p2ZnIzWUpnQnow
WUFGQXpiRXF5dGZQbmJOYQpMT1hkK2hLcUdrNmx4cnE2cWx1WUxJckRNLzBIbHhTbngyVDYxZC81
TzZGYjJ5dS9iRC8zZTlVdERKQ0ZIaXdBcURuZnVIREJaclZXCjdvWHNjYnNIMnRvdUx5MVZzU3FK
enZ5TFJZdkxWMDVYUWdobjE3VG4xSzhIZi95L1ZiRXFRQ0lDRmdBY0Q1OHNMUVhxZW9ndytPNy8K
SHJ2MWcycFhBY2hCd0FLQTQwSE41WHE5M21wWDhSVGxrNnV0RXdmTWZBZU9JK1pnQWNEeDhKVXpa
NnBkd3RNMStVLy9ydG9sQU5JUQpzQUNnNW9RU2lVdUxpOWxDWWFDdDdmem9xR0kyLytUYU5iUEo5
TnJrcE0xcXJYWjFFcVNXM2d2ODZBK0xhc1F6K2VzbjN2NnUyZXFjCis0OWZOQ21Xc2QvNUM0dkxW
KzNxQUFrWUlnU0FtdlB4d29LYXkybWxrajhTdVJrSUNDRTBUWXVsMDljRGdXcVhKc2ZLRC85NVBy
RlMKS21SaTE3KzM4ZDUzaEJDbDRrNW0vY3I2My8zcmFwY0d5RUhBQW9DYWt5OFd6NCtNZlBPbGw4
NE5EODl2YmhhS3hiZlBuWHRqWm1ZdApGcXQyYVhKb080bUJ0Nzk3OWx2QmdhOStKM0w1UHhXenll
bmYvM2ppOS80Nk9mOXV0VXNENUNCZ0FVRE42ZlA1QnRyYkZiTjV2S2VuCjErdGRqa1NFRUw2bXBs
eWhVTzNTNUdnOStaWjM2cmZNVmxmSEMvK2tkZnpOMkxVL0YwSzRlczRXMHBGcWx3YklRY0FDZ0pv
ek96UzAKRkFvWmowLzE5UzJIUWlWZFh3cUZGRVdwYm1HeTlILzUyOUVyZjJvODd2emNIMnhkKzgr
NlZ0aTYrbWRtbTZ1NmhRR3lNTWtkQUdyTwpKMHRMcTdIWXRaV1Y4cEcvL1BCRElVUzN4MU85b21R
S3Z2dEhpYnMvWHYvYmI1ZVBYUGszM1VLSTVwSFhxMWNVSUJNQkN3QnF6bm84CnZ1ZUl5V1JxY1Rw
bmg0YXFVWTU4eVlXZkNiMTAzeUd6eGRFKzBmOG1rOXhSSndoWUFGQnp1bHBibng4WmNUc2MxUzdr
YVdrZWVtWGcKclg5cmF4Mm8zQTRJcUNjRUxBQ29DZC83NElPdm5qM2I2bklKSWM0T0Q2OUVvMVA5
L2VXdjVvdkZIMSs1OHNXcEtZL2JYYjBhSDk4bgpwLy9XOUkvKzBmVi85KzltQmdaTUp0TWQzOWUr
Ly9GMy92alZiNVJQaUtmVGszLzRoKy8rOFIrZnJaZGVPalE0MHp2dnZGUHRHZzZRCnorZXJYUUp3
ak5sczFhNmdNYzB0UHY1cm01cSs5OEVIRHp4cm9xZG5kbmo0NEsrbDA0Ly83cE9qRDNWYTNUZFFD
Q0ZFUGk5c2ZJVHcKeExpTEVBQ09EWCtremxjeHFQc0dvbkV3UkFnQXRlTE5NMmM4THBmSlpQS0h3
NUh0N1RNblRwUTN4dEYxL2ZicTZsaDNkM1VyZkVKMQozMENnakI0c0FLZ0o3N3o4c3RmdE5pWjlY
MTFaT1RNNFdMbnRvTWxrR3V2dXZyejRCSU4wMVZiM0RRUXFFYkFBb09ZVU5XMy9vdTA3CitmeEdJ
bEdWZXFTcit3WUNCQ3dBcURuZEhzLzdjM1Byc1ZpaFdOUjFQWnZQTDRmRDc5MitiYlBVeWJ5T3Vt
OGd3TGN5QU5TYzJhR2gKbjkrOCtmNmRPM3VPdnpnMlZwVjZwS3Y3QmdMS3pNeE10V3M0Z0tacDFT
NEJPTWJxWmNPNjR5YTZkL24xUjNEL3VnQTJpMlc0czFNSQprUzBVaXBxbUtFcDdTOHY1a1pHQjl2
WkRyL0FrcTl0MCtCN3F0THB2b0JCQ0NFMFRkYlBuSTZxSUhpd0FxRVUyaStYTTRPQ1p3Y0ZxCkYv
SzAxSDBEMGVDWWd3VUFOZWQ3SDN5d3RiMnQ2L3BoSnhRMTdZZVhMOGRWOVZsV0pWSGROeENnQndz
QWF0SFBidHg0NERsTG9kRHoKSXlQUG9KaW5vZTRiaUFaSER4WUFIRmNyOWI3dWVkMDNFSFdNSGl3
QXFFVnZQdmVjWjNkWlRpR0VWaXJOYjJ5TTkvUW81anI1dzdqdQpHNGdHeC9jeEFOU2NkMTUrMmR2
VVZBNGZRZ2pGYkI3dTdMenE5MWV2S0pucXZvRUFBUXNBYXM3M1B2Z2dtY2xVSGltVlNwRlVxbTcy
ClFxNzdCZ0lNRVFKQUxYcjM2dFg5QjkxMis3T3Y1Q21wK3dhaXdSR3dBT0FZTUp0TUxVNW5IZDlT
Vi9jTlJLTWhZQUZBTGZxMTU1N3oKVnN3QnJ6OTEzMEEwT0FJV0FOU2NkMTUrdWRvbFBGMTEzMENB
U2U0QUFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZwpHUUVMQUdyT2Y3OThlYzlD
NTJWMzF0WSt2SGN2b2FyUHVDUUFqNFNBQlFBMVp5ZWYvOW1ORyt2eCtQNHZuZXJyNjJocCtlbjE2
NXVKCnhMTXZUSmJ2ZmZDQnJ1dEhuUERUNjlmVDJld3pxd2VRam9BRkFMV29xR25aZlA1V01MZy9p
QXgzZHVxNmZ0ejNSVDRpUHhVMXJWUXEKSGVzRUNiRFFLQURVcUpHdXJ2Vlk3TDNidDJlSGgxdGRy
dkx4WEtFZ2hFanQ3RlN2TkFsK2ZPWEswU2RzeE9OajNkM1BwaGhBT2dJVwpBTlN1WHAvUFliTzlk
L3QyUjB2TGNHZG5XM096cnV1ZkxDMEpJZHcyVzdXcmU3ckN5V1MxU3dBZUh3RUxBR3FVVmlvcFpy
T3ZxZW5OCjU1Njd1TER3M3UzYmxWK2Q2TzJ0Vm1GU3ZEMDcyK3gwVnJzSzRHbGhEaFlBMUtpRnpV
M2pnY05tKzhMVTFLdW5UblY3UEJaRnNWc3MKejUwNE1kN1RVOTN5bmxDVHcxSHRFb0NuaUI0c0FL
ZzVyMDVPYmlZU2k1dWJ3eDBkTnF2Vk9OanI4L1g2Zk5VdFRCWTJlMGJkSTJBQgpRTTNwOVhwN3ZW
NHhQRnp0UWdBOEpvWUlBUUFBSkNOZ0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdB
QWdHUUVMQUFBCkFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQUFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFz
QUFFQXlBaFlBQUlCa0JDd0FBQURKQ0ZnQUFBQ1MKRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRaklB
RkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBSkNOZwpBUUFBU0Vi
QUFnQUFrSXlBQlFBQUlCa0JDd0FBUURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFBQ1Fq
WUFFQUFFaEd3QUlBCkFKQ01nQVVBQUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFESkxOVXVBQURx
eGVSb1ZkKys2Nm0vUTkwM0VKQ0hIaXdBQUFESkNGZ0EKQUFDU0ViQUFBQUFrSTJBQkFBQklSc0FD
QUFDUWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQVpBUXNBQUFBeVFoWUFBQUFraEd3QUFBQQpKQ05n
QVFBQVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFKSVJz
QUFBQUNRallBRUFBRWhHCndBSUFBSkNNZ0FVQUFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpD
RmdBQUFDU0ViQUFBQUFrczFTN0FBRHk1ZlBWcmdBQUdsdU4KQml5YnpWYnRFZ0FBQUI0VFE0UUFB
QUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRcwpB
QUFBeVFoWUFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQUFnQUFrSXlBQlFBQUlCa0JDd0FBUURJQ0Zn
QUFnR1FFTEFBQUFNa0lXQUFBCkFKSVJzQUFBQUNRallBRUFBRWhHd0FJQUFKQ01nQVVBQUNBWkFR
c0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNGZ0FBQUNTRWJBQUFBQWsKSTJBQkFBQklSc0FDQUFDUWpJ
QUZBQUFnR1FFTEFBQkFNZ0lXQUFDQVpBUXNBQUFBeVFoWUFBQUFraEd3QUFBQUpDTmdBUUFBU0Vi
QQpBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFKSVJzQUFBQUNR
allBRUFBRWhHd0FJQUFKQ01nQVVBCkFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFD
U0ViQUFBQUFrSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkEKTWdJV0FBQ0FaQVFzQUFB
QXlRaFlBQUFBa2hHd0FBQUFKQ05nQVFBQVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FB
Z0dRRQpMQUFBQU1rSVdBQUFBSklSc0FBQUFDUWpZQUVBQUVoR3dBSUFBSkNNZ0FVQUFDQVpBUXNB
QUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBCkFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFG
QUFBZ0dRRUxBQUJBTWdJV0FBQ0FaQVFzQUFBQXlRaFlBQUFBa2hHd0FBQUEKSkNOZ0FRQUFTRWJB
QWdBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdBQWdHUUVMQUFBQU1rSVdBQUFBSklSc0FBQUFDUWpZ
QUVBQUVoRwp3QUlBQUpDTWdBVUFBQ0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKQ0ZnQUFBQ1NF
YkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGCkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5
UWhZQUFBQWtoR3dBQUFBSkNOZ0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUEKUURJQ0ZnQUFn
R1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQUFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFzQUFF
QXlBaFlBQUlCawpCQ3dBQUFESkNGZ0FBQUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRaklBRkFB
QWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5UWhZCkFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQUFn
QUFrSXlBQlFBQUlCa0JDd0FBUURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUEKQUNRallB
RUFBRWhHd0FJQUFKQ01nQVVBQUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNGZ0FBQUNTRWJB
QUFBQWtJMkFCQUFCSQpSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQVpBUXNBQUFBeVFo
WUFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQUFnQUFrSXlBCkJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dR
RUxBQUFBTWtJV0FBQUFKSVJzQUFBQUNRallBRUFBRWhHd0FJQUFKQ01nQVVBQUNBWkFRc0EKQUVB
eUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUFBQUFrSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFn
R1FFTEFBQkFNZ0lXQUFDQQpaQVFzQUFBQXlRaFlBQUFBa2hHd0FBQUFKQ05nQVFBQVNFYkFBZ0FB
a0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJCldBQUFBSklSc0FBQUFDUWpZQUVB
QUVoR3dBSUFBSkNNZ0FVQUFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUEK
QUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZ0dRRUxBQUJBTWdJV0FBQ0FaQVFzQUFBQXlRaFlB
QUFBa2hHd0FBQUFKQ05nQVFBQQpTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdBQWdHUUVM
QUFBQU1rSVdBQUFBSklSc0FBQUFDUWpZQUVBQUVoR3dBSUFBSkNNCmdBVUFBQ0FaQVFzQUFFQXlB
aFlBQUlCa0JDd0FBQURKQ0ZnQUFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZ0dR
RUwKQUFCQU1nSVdBQUNBWkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBSkNOZ0FRQUFTRWJBQWdBQWtJ
eUFCUUFBSUJrQkN3QUFRRElDRmdBQQpnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQUFF
aEd3QUlBQUpDTWdBVUFBQ0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKCkNGZ0FBQUNTRWJBQUFB
QWtJMkFCQUFCSVJzQUNBQUNRaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5UWhZQUFB
QWtoR3cKQUFBQUpDTmdBUUFBU0ViQUFnQUFrSXlBQlFBQUlCa0JDd0FBUURJQ0ZnQUFnR1FFTEFB
QUFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQQpBRWhHd0FJQUFKQ01nQVVBQUNBWkFRc0FBRUF5QWhZ
QUFJQmtCQ3dBQUFESkNGZ0FBQUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRCmpJQUZBQUFnR1FF
TEFBQkFNZ0lXQUFDQVpBUXNBQUFBeWY1L3UybnNuODVLZXEwQUFBQUFTVVZPUks1Q1lJST0KCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9z
dWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNh
bm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBl
ID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZy
YW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWlt
ZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNV
aEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTVNakptTjJZ
MApNVEF3TjJReE4yTXpZVEkwTldGaE9HRm1NVFpsTW1VNU5ZYW1QRFVBQUJkM1NVUkJWSGljN2Qx
YmIxVG5vY2ZoQmNZT1lLQk5pV3h6Cmlnb0dIQTRoSUFxQlJNRnRJMUZCUTFxMXFiamhJL1ZqY0VP
cnBxMlNWQ3BOVzFHSm95MGdBUWRDWWt3NEdReVlRNHdkd3NIN1lyUm4KZXpPMkdjd2ZHS3JudVVD
RHZRN3ZlbDlML21uV3NqMXArL2J0QlFBQU9aT2Y5d0FBQVA3YkNDd0FnRENCQlFBUUpyQUFBTUlF
RmdCQQptTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpB
QWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKCkxBQ0FNSUVGQUJBMlpheFA3TnExYTZ4UGJkcTA2Y2lS
STF1M2JuM2NrLzN6bi85ODk5MTNpNko0OE9EQnNXUEhUcDgrWFJURmloVXIKbGk1ZCtyaUhlaXk5
dmIzVkQvaXhObjdhZzNtc0l6enRrVmNxTDJqTmV2WnpVcVh5d0VhT3NQYm5FNEFxalJsWVJWR3NX
TEZpK2ZMbApreWRQM3JWcjEvYnQyMHRWZFBMa3lVT0hEbjMzM1hjVE9GbjVtOGZ4NDhlYm1wcVdM
MS9lMjl0NzdOaXhweDFZanpYZ2pvNk9vYUdoCkdobk1xTVlhNFpNZitYSFZmZzA4K3ptcFVua1JS
NjVtN2M4bkFGVWE4eGJockZtejJ0cmFKay8rdncwbVQ1NjhmUG55V2JObWJkdTIKN1FuUCtzMDMz
elEzTjlmWDE3LzY2cXUvL09Vdm4vQm9qL1JZQTM3dnZmZWUza2lLeHh6TXFNWWE0Wk1mK2I5UHpj
NUplUkdmOXRjYgpBTS9GbUlHMVpjdVcrdnI2aHo1WVgxKy9aY3VXa2RVMU1ZT0RnMDkra09vOTFy
bWUwc0R1M2J1WE92NVlSM2lXVS9xaWVCcHpVbDdLCkoxRWVtRlVEK0s4MDNpM0M4UTBNRE96ZnYv
L1dyVnVyVjY5dWJXMHRpdUwrL2ZzZEhSM256NStmTVdQRzIyKy9QWFBtekpIYmw1ODEKS1QzZFZm
cTM5RGpYMHFWTGp4OC9QbjM2OU0yYk41OCtmZnFMTDc0WUhCeWNPblhxc21YTGxpeFpVdHF4dmIx
OS8vNzlOMi9lWExObQp6ZXpac3c4Y09EQXdNUERHRzI4c1hyejRrYWN1dVhMbFNtZG41OURRME91
dnY3NWt5WkxTQngrNTQ3bHo1dzRmUHZ6Z3dZTlZxMWExCnRyWU9EQXg4OHNrblJWRzB0YlV0WHJ6
NGswOCttVFJwVWwxZDNkcTFhNjlldmRyZDNWMFV4UWNmZkZCWFYxYyt3dGRmZjMza3lKRjUKOCth
ZE8zZHUrL2J0WTgxZTVibktzMVRhYStUcmtjNmZQLy81NTU4UERRMnRXN2V1OHFwTHN6ZHloaXN2
dVpvWkhtdGR5azhSYmRxMAo2Y0NCQXpkdjNpenZNdEt0VzdjT0hqeDQ0OGFOZWZQbWJkeTRjZEtr
U1k4YzJQWHIxL2Z2MzE4VXhhSkZpOWF0VzlmWjJWbWEzdC8rCjlyZFRwa3dweldFMWExSGwxMm8x
VjFHNWxNUER3NTkvL25sM2QzZGRYZDNLbFN0Ylcxc3JyMnZVbFIxcnBjYVp6OG81SFBVNEFOU0MK
aVFkV2IyL3ZUMy82MDZ0WHJ4NDZkS2owUGVQWXNXTXRMUzNyMTYrL2ZQbnk0Y09IMjl2YlIyNWZm
aHBtKy9idHBZZTZpcUw0eTEvKwpjdWZPblduVHB2MzYxNzh1YmRiVjFmWHV1KzlPbXpidDZ0V3Jl
L2JzV2JKa1NXbkh2cjYrOXZiMlM1Y3VkWFIwdlA3NjZ6LzcyYy82CisvdjM3OTlmK3Q0ei9xbExo
b2FHTm0vZVBEZzRlUERnd2FsVHB5NVlzT0NSTy9iMzkzZDNkMi9ac3FXL3YzL2Z2bjB6Wjg1c2Ft
cDYKLy8zM2QrL2V2V3pac3BkZWVtbjc5dTEvL2V0ZmYvR0xYMHlkT3JXNXVmbkNoUXRidG13WldW
ZEZVWHoyMldkYnQyNjljZVBHdVhQbgp4cG05VWMvMTNudnZmZnp4eDZWZHRtN2QrcmUvL2UyaGk3
cDgrZktwVTZmYTI5c2JHaHBPblRwVmVkVUhEeDU4YUlZckw3bWFHUjVyClhjb3IyOXZidTJuVHBt
dlhyaDA0Y0tBeVRmYnQyN2Q4K2ZKNTgrYWRQSG55RDMvNFExMWQzWlFwVThZZjJLWk5tNlpQbjk3
UjBiRnEKMWFxaUtIN3lrNTljdkhqeG5YZmVLZFZWVVJRelpzeW9jaTJxK1ZxdDVpb3FsL0xFaVJN
TkRRMi8rdFd2enA0OTI5WFYxZHJhV2puaApvNjVzNVVvOWNqNHI1N0NVandEVW9JbmZubGl5WkVs
OWZYMUxTMHY1SWVLelo4OGVQSGp3ajMvODQzLys4NThyVjY0OHRQMm96NXE4Ci8vNzdSVkhNbXpl
di9KRnQyN1pOblRxMXA2Zm44T0hEOSsvZkwrKzRjT0hDK3ZyNitmUG4zNzE3ZDhtU0pRME5EYzNO
emQ5Ly8zMDEKcHk1NTlkVlg2K3JxWnM2Y3VYNzkraE1uVGxTejQ1RWpSOWF0VzlmUTBORFMwckpt
elpyRGh3OFhSVEZ0MnJRNWMrWmN1SENoS0lyKwovdjd2dnZ1dTlQcnMyYk0vL3ZHUEd4b2FIanJJ
OU9uVEwxMjZOSGZ1M0pGdlBsWE8zcWpuYW14c0xPOHk2dHR5eDQ4Zlg3ZHVYV05qClkzMTkvYWcv
SzFBNXc1V1hYTTBNajdVdXhmOCs1MVRhcGFXbHBiekxTQU1EQS9QbXphdXJxM3Z0dGRkbXpacjF3
UWNmUEhKZ2t5Wk4KZXVXVlYrYk9uZHZUMDFNVVJWOWZYMk5qNDhzdnZ6enlzRld1UlRWZnE5VmNS
ZVZTZG5kM0wxNjh1SzZ1YnVIQ2hhVUpxYnl1VVZlMgowaVBuczNJT1J6ME9BTFZnNHU5Z2xZeThU
M0huenAzS0cxaGxENzJ2VTFMNUFNcjE2OWM3T3p2bnpwMzcxbHR2bGQ2d0dibmp5Tk5WCmYrcUh6
Smd4NCtiTm05WHMyTi9mUDNYcTFOTHJCUXNXZEhaMmxsN1Buei8vNjYrL1hyUm8wVmRmZmJWMDZk
Sno1ODYxdHJiMjlQUzgKOWRaYmxRZHBiMi8vN0xQUFRwdzRzV0hEaGxkZWVXWGtwMFpld2xqbkd0
LzE2OWZMRVZiNXpGd3gyZ3hYWG5JMU16ek91b3c4eFZqMwpyUll1WFBqbGwxKzJ0YlZkdkhqeHpw
MDdWUTZzS0lyRml4ZnYyYlBudGRkZSsrcXJyOG8zZGtlcWZpM0cvNEtwNWlvcWwzSm9hT2loCmFh
KzhyaXBYOXBIeldUbUhBTlNzNUFPMnMyYk5Lci8rNXB0dkpuYVF2WHYzYnRpd1ljV0tGUys5OU5K
VE92V3RXN2QrOElNZlZMUGoKckZtemVudDdTNi92Mzc5ZnpxUG01dVpyMTY0TkRBeGN1M2J0alRm
ZXVIbno1dVhMbCt2cTZrWWVyV3o2OU9rYk4yNWN2MzU5NlltaQpjUzVoMUhNOTVNR0RCeVAvTzMv
Ky9PdlhyNWRlMzcxN3QzS0RVVTlVZmwzOU1rMXNYY3BhVzFzdlhyejQ0WWNmSGp0MmJNT0dEZFVQ
CnJMR3hzYkd4OGN5Wk0xZXZYcDAvZjM3bFhvKzFGdU9mNjVFcWw3Syt2bjU0ZUhqOHZhcGMyVWVx
Wmc0QnFCR1BEcXpTOSsvKy92N3kKTjVMQndjR2lLRXEvdktkMHo2WDBlczZjT1dmT25MbDM3OTda
czJjcnYybVY5aG9jSEN4dGZPUEdqZktPSTV2ZysrKy92M1hyMXREUQowSmt6WjRxaXVILy8vbGlu
Sy8xYit1ejRweTZLb3E2dXJxZW41OTY5ZTk5KysyM3BHYVBTeHl0M0hIbTZ0V3ZYSGoxNjlOcTFh
M2Z1CjNEbDgrUERxMWF2TFIydHVidDY3ZCsvQ2hRc25UNTQ4Wjg2Y1E0Y09MVnk0Y05RSjNMVnIx
N2x6NTZaTm0xYjY2Yk94TG1lc2N6VTAKTlBUMjl0NjllN2YwaU5YSEgzODg4Z2lyVjY4dTdYWHYz
cjJ1cnE2aUtENzY2S09SWjYrYzRmRXZlYXdaSG10ZEJnY0hiOSsrUGVydQpJKzNidCsvdHQ5Lysz
ZTkrdDNYcjFwYVdsaW9IVnJKNDhlS09qbzdTVkkrNnN1T3NSZlZmcTlWY3hVTkxXUlJGUzB0TFgx
L2Y4UER3CnJWdTNTay9jVjE3WHFDdGJIdGhETDhhWno4bzVCS0JtMWExY3VYS2NUKy9hdGF2MDAx
aW5UNS91NnVvcWJmemhoeDhXUmZIbGwxK3UKWExueVQzLzZVL24xN05tenYvamlpNDZPam9HQmdY
WHIxajMwVmtkcHIxT25UbjM1NVpkRlVYUjNkM2QxZFpWZTkvVDB0TFcxbFRhYgpNbVZLWjJkblgx
L2ZtalZyTGx5NE1EUTB0Ry9mdmxGUFZ6N2dJMDlkRk1XY09YTzZ1cnFPSERuUzE5ZTNjdVhLdVhQ
bmxqNWV1ZVBJCnE1cytmZnJreVpNUEhUcDArdlRwdHJhMjV1Ym04Z0dIaDRkUG56NjljZVBHMHAy
ZG5wNmVOOTk4YzlUYm9GMWRYUzB0TFh2MzdsMjEKYXRXUGZ2U2pzV1p2ckhQVjFkVjFkbmIyOXZZ
dVg3NzgwcVZMYTlldS9jYy8vbEhlYThxVUtiTm56OTYzYjkrcFU2ZmEydHF1WGJ1MgpkdTNha1U5
cmxVNDNjb2JIditTeFpuaXNkVGwxNmxTcC9DcDNIemtKWjgrZVBYTGtTRmRYVjJuUnAwNmQrdTkv
Ly91UkF5dDlmT2JNCm1TZE9uSGp6elRkSHZRYzYvbHBVLzdYNjV6Ly8rWkZYOGRCU0ZrWFIxTlIw
NU1pUnpzN09xMWV2TGx1MjdJYy8vR0hsaEkrNnN1V0IKbFdldjlHS2MrYXljdzVkZmZ2blRUejlk
dEdqUnFOTUN3SE0wcWZwSGwyQmlidDY4ZWVmT25kS1B6ZzBQRDkrOGVmUFRUeit0L2hudApLMWV1
bkR4NThwMTMzbm1hWTZ4MVR6aUhBRHhqZnNraFQ5MmVQWHUrL2ZiYjBrL0QzYjE3dDYrdmI4NmNP
Vlh1KytEQmc5S1QzVTl6CmdDK0FKNWxEQUo0OTcyRHgxSjAvZi83a3laTTNidHg0OE9CQlkyUGoz
TGx6VjZ4WVVmbjdMQ3I5L2U5L3YzUG56dnIxNnoxeU5PRTUKQk9DNUVGZ0FBR0Z1RVFJQWhBa3NB
SUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRgpB
QkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFN
SUVGZ0JBbU1BQ0FBZ1RXQUFBCllRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVEWmxZcnQxZDNkbnh3
Rk1XR3RyNi9NZUFnRC9qM2V3NE1XMllNR0M1ejBFQUI0MndYZXcKU243Lys5K254Z0dVdExlM0Yw
V3hlL2Z1dnI2K3NiWnBhbXJhdkhselVSUy8rYzF2bnQzSUFLamFFd1VXOERUczNMbHp4NDRkVDc0
TgpBTStMVzRSUVczYnYzbDFOT2UzWXNXUDM3dDNQWUR3QVRJREFndG95enAzQkNXOEp3RE1tc0FB
QXdnUVdBRUNZd0lJWHdLUkprNTczCkVBQjREQUlMYWwycHJqUVd3QXRFWUVGTkc5bFZHZ3ZnUlNH
d29IWlZGcFhHQW5naCtFV2pVTHVHaDRlZjl4QUFtQWp2WUFFQWhBa3MKQUlBd2dRVUFFT1laTEtn
NU8zZnVmTjVEQU9DSmVBY0xBQ0RNTzFoUWM3WnQyMWI1d2R1M2J6LzBrWC85NjEvUFpEZ0FQRGJ2
WUFFQQpoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFK
TEFDQU1JRUZBQkFtc0FBQXd2eXhaNmhwCkgzMzAwY2ovL3Z6blAzOWVJd0dnZWdJTGF0cTJiZHRL
TDI3ZnZ2MThSd0pBOWR3aUJBQUk4dzRXMURTM0NBRmVSQUlMYXBwYmhBQXYKSXJjSUFRREN2SU1G
TmMwdFFvQVhrY0NDbXVZV0ljQ0x5QzFDQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FB
R0VDQ3dBZwpUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3dnd0UXFnNUQvMkJad0JlT0FJTGFzN3Ex
YXVyMmV6bzBhTlBleVFBVEl4YmhBQUFZUUlMCkFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENC
QllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUEKd2dRV0FFQ1l3
QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdB
QUFZUUlMQUNCTQpZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3
QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXCkFFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FR
Q0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUEKaEFrc0FJ
QXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJB
bXNBQUF3Z1FXQUVDWQp3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1J
RUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzCkFJQXdnUVVBRUNhd0FBRENCQllBUUpq
QUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUEKQ0JO
WUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlM
QUNCTVlBRUFoQWtzQUlBdwpnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FC
QUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUFDQk5ZCkFBQmhBZ3NBSUV4Z0FRQ0VDU3dB
Z0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUEK
RUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3
Z1FXQUVEWWxPYzlBT0JoUjQ4ZQpmZDVEQU9DSkNDeW9PVHQyN0tobXM1MDdkejd0a1FBd01XNFJB
Z0NFQ1N3QWdEQ0JCUUFRSnJBQUFNSTg1QTYxYTlLa1NaVWZIQjRlCmZ2WWpBZUN4ZUFjTGFsZGxT
NmtyZ0JlQ3dJS2FOcktvMUJYQWkwSmdRYTByZFpXNkFuaUJDQ3g0QWFncmdCZUx3QUlBQ0JOWVVG
dWEKbXByaVd3THdqQWtzcUMyYk4yK3U1bzhNN3R5NWMvUG16YzlnUEFCTWdOK0RCVFZueDQ0ZHUz
ZnY3dXZyRzJ1RHBxYW1LdjhnTkFEUAp4YVR0MjdkUFlMZnU3dTZpS0JZc1dKQWVEL0RZR2hvYW52
Y1FBUGgvSm42TFVGMEJBSXhxZ3JjSVcxdGJzK01BQVBpdjRTRjNBSUF3CmdRVUFFQ2F3QUFEQ0JC
WUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJ
QUNCTlkKQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FB
QVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQQpFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dB
Z1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoCkFnc0FJRXhnQVFD
RUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3
Z1FVQUVDYXcKQUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFt
c0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQQpJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlF
RmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDCkJCWUFRSmpB
QWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllB
QUJoQWdzQUlFeGcKQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxB
Q0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQQpRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJB
SVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFCkNTd0Fn
RENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVD
YXdBQURDQkJZQVFKakEKQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdn
UVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QQpnRENCQlFBUUpyQUFBTUlFRmdCQW1N
QUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJCkUx
Z0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdz
QUlFeGdBUUNFQ1N3QWdEQ0IKQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFF
QWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQQpBR0VDQ3dBZ1RHQUJBSVFKTEFD
QU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFR
CkpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURD
QkJZQVFKakFBZ0FJRTFnQUFHRUMKQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZ
d0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQQpBTUlFRmdCQW1NQUNBQWdU
V0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUND
d0FnClRHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdB
UUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUUKRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NB
SUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQgpBSVFKTEFDQU1JRUZB
QkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFN
SUVGZ0JBCm1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFK
akFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUoKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNC
TllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQwpBQWdUV0FBQVlR
SUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdB
QkFJUUpMQUNBCk1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3
QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1QKV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FV
QUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRgpBQkFtc0FB
QXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JB
bU1BQ0FBajdIMkU4CktSRDMvK0tOQUFBQUFFbEZUa1N1UW1DQwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167841</attachid>
            <date>2012-10-09 13:51:00 -0700</date>
            <delta_ts>2012-10-11 15:54:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-98571-20121009135001.patch</filename>
            <type>text/plain</type>
            <size>118152</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExOSBAQAorMjAxMi0xMC0wOCAgTGV2aSBX
ZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1N1YiBwaXhlbCBsYXlv
dXRdIEZhc3QtcGF0aCBpZnJhbWUgc2Nyb2xsaW5nIGNhbiBwaWNrcyB1cCBhbiBleHRyYSBwaXhl
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBFbWlsIEEgRWtsdW5kLgorCisgICAgICAgIFJlZmFjdG9y
aW5nIGFsbCBjb29yZGluYXRlLXN3aXRjaGluZyBmdW5jdGlvbmFsaXR5IHRvIHVzZSBhIHNpbmds
ZSAibW9kZSIgZmxhZworICAgICAgICBhcyBvcHBvc2VkIHRvIGhhdmluZyBhIGJ1bmNoIG9mIGJv
b2xlYW4gdmFsdWVzLiBUaGlzIGVuYWJsZXMgdGhlIHNhbWUgc2V0IG9mCisgICAgICAgIG9wdGlv
bnMgYWNyb3NzIHRoZSBib2FyZCwgYW5kIGEgY29uc2lzdGVudCBpbnRlcmZhY2UuIFRoaXMgd2Fz
IHByZXZpb3VzbHkKKyAgICAgICAgZG9uZSBmb3IgbWFwTG9jYWxUb0NvbnRhaW5lci4KKworICAg
ICAgICBUaGUgaW1wdGV0dXMgZm9yIHRoaXMgZm9yIHRoaXMgc3RlbXMgZnJvbSB0aGUgb25lIGxv
Z2ljYWwgY2hhbmdlIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgd2hpY2ggb25seSBlZmZlY3RzIHN1
Yi1waXhlbCBsYXlvdXQuIEZyYW1lVmlldzo6Y29udmVydFRvUmVuZGVyZXIgYW5kCisgICAgICAg
IGNvbnZlcnRGcm9tUmVuZGVyZXIgcmV0dXJuIEludFBvaW50IGNvb3JkaW5hdGVzLCBhbmQgbmVl
ZCB0byBhbHNvIHNuYXAgdHJhbnNmb3JtCisgICAgICAgIG9mZnNldHMgdG8gZGV0ZXJtaW5lIHBy
b3BlciByZWN0cyBmb3Igc2Nyb2xsaW5nLgorCisgICAgICAgIFVubGFiZWxlZCBmdW5jdGlvbnMg
YmVsb3cgYXJlIHNpbXBseSBiZWluZyB1cGRhdGVkIHRvIHRoZXNlIG5ldyBpbnRlcmZhY2VzLgor
CisgICAgICAgIFRlc3Q6IGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1z
Y3JvbGwuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL0Nv
bnRhaW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6Z2V0VXBw
ZXJMZWZ0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmdldExvd2Vy
UmlnaHRDb3JuZXIpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmJvdW5kc0luUm9vdFZpZXdTcGFjZSk6CisgICAgICAgICogZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50Ojpj
b21wdXRlUmVsYXRpdmVQb3NpdGlvbik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6Y29udmVydFRvUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
Ojpjb252ZXJ0RnJvbVBhZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21Q
b2ludCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6Y29udmVydFRvUmVuZGVyZXIpOiBOb3cgcGl4ZWwtc25hcHMgb2Zmc2V0cyBiZWZvcmUgcGFz
c2luZworICAgICAgICB0aGVtIHRvIFRyYW5zZm9ybVN0YXRlLCB3aGljaCB0cmFuc2Zvcm1zIHRo
ZSBjb29yZGluYXRlcy4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y29udmVydEZyb21S
ZW5kZXJlcik6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
YWJzb2x1dGVRdWFkcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmFic29sdXRlUXVhZHMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guaDoKKyAgICAgICAgKFJlbmRlckJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVs
T2JqZWN0OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJCb3hNb2RlbE9iamVjdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0Ojppc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0
b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckdlb21ldHJ5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdlb21ldHJ5
TWFwOjphYnNvbHV0ZVBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVuZGVySW5s
aW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmFic29sdXRlVG9Db250ZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNv
bnRyb2xzOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVM
aXN0OjpzaG93UG9wdXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQWJzb2x1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjphYnNvbHV0ZVRvTG9jYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250YWluZXJQb2ludCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoUmVuZGVyT2JqZWN0KTogTWFwTG9jYWxU
b0NvbnRhaW5lckZsYWdzIGlzIG5vdyBNYXBDb29yZGluYXRlc0ZsYWdzIHNpbmNlIGl0J3MKKyAg
ICAgICAgbm93IHVzZWQgZm9yIG90aGVyIGNvbnZlcnNpb24gbWV0aG9kcy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6bG9jYWxUb0Fic29sdXRlUXVhZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjp2
b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6bWFwTG9jYWxUb0Nv
bnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjptYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFJl
bmRlclZpZXcpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2Nh
bFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25P
YmplY3QuaDoKKyAgICAgICAgKFJlbmRlclNWR0ZvcmVpZ25PYmplY3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAgICAgICAgKFJlbmRlclNWR0lubGluZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAoUmVuZGVy
U1ZHTW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKFJl
bmRlclNWR1Jvb3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaDoKKyAgICAgICAgKFJlbmRl
clNWR1RleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVy
KToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdTVkdFbGVtZW50Ojpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybSk6CisKIDIwMTItMTAt
MDkgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODQ1NwpJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4JKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTIyLDggKzExMjIsOCBAQCBfX1pOSzdXZWJDb3JlMTFSZW5kZXJT
dHlsZTIxdmlzaXRlZERlcGVuCiBfX1pOSzdXZWJDb3JlMTFSZW5kZXJTdHlsZTRmb250RXYKIF9f
Wk5LN1dlYkNvcmUxMVNjcmlwdFZhbHVlOWdldFN0cmluZ0VQTjNKU0M5RXhlY1N0YXRlRVJOM1dU
RjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNGVuY2xvc2luZ0xheWVyRXYK
LV9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9jYWxUb0Fic29sdXRlRVJLTlNfMTBGbG9h
dFBvaW50RWJiCi1fX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QyMGxvY2FsVG9Db250YWluZXJR
dWFkRVJLTlNfOUZsb2F0UXVhZEVQTlNfMjJSZW5kZXJMYXllck1vZGVsT2JqZWN0RWJiUGIKK19f
Wk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9jYWxUb0Fic29sdXRlRVJLTlNfMTBGbG9hdFBv
aW50RWoKK19fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDIwbG9jYWxUb0NvbnRhaW5lclF1YWRF
UktOU185RmxvYXRRdWFkRVBOU18yMlJlbmRlckxheWVyTW9kZWxPYmplY3RFalBiCiBfX1pOSzdX
ZWJDb3JlMTJSZW5kZXJPYmplY3QyM2Fic29sdXRlQm91bmRpbmdCb3hSZWN0RWIKIF9fWk5LN1dl
YkNvcmUxMlJlbmRlck9iamVjdDM5cGl4ZWxTbmFwcGVkQWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dS
ZWN0RXYKIF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDdjaGlsZEF0RWoKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQ2LDcgKzc0
Niw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6Z2V0VXBwZXJMZWZ0Q29ybmVyKEYKICAgICBSZW5k
ZXJPYmplY3QqIHAgPSBvOwogCiAgICAgaWYgKCFvLT5pc0lubGluZSgpIHx8IG8tPmlzUmVwbGFj
ZWQoKSkgewotICAgICAgICBwb2ludCA9IG8tPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCks
IGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcG9pbnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQ
b2ludCgpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTc3MSw3ICs3NzEsNyBAQCBib29sIENvbnRhaW5l
ck5vZGU6OmdldFVwcGVyTGVmdENvcm5lcihGCiAgICAgICAgIEFTU0VSVChvKTsKIAogICAgICAg
ICBpZiAoIW8tPmlzSW5saW5lKCkgfHwgby0+aXNSZXBsYWNlZCgpKSB7Ci0gICAgICAgICAgICBw
b2ludCA9IG8tPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKKyAg
ICAgICAgICAgIHBvaW50ID0gby0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJh
bnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAKQEAgLTc4NSw3ICs3ODUsNyBAQCBib29sIENvbnRhaW5lck5vZGU6
OmdldFVwcGVyTGVmdENvcm5lcihGCiAgICAgICAgICAgICAgICAgUmVuZGVyQm94KiBib3ggPSB0
b1JlbmRlckJveChvKTsKICAgICAgICAgICAgICAgICBwb2ludC5tb3ZlQnkoYm94LT5sb2NhdGlv
bigpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvaW50ID0gby0+Y29udGFpbmVyKCkt
PmxvY2FsVG9BYnNvbHV0ZShwb2ludCwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgcG9pbnQg
PSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fic29sdXRlKHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KICAgICB9CkBAIC04MDcsNyArODA3LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjpnZXRM
b3dlclJpZ2h0Q29ybmVyKAogICAgIFJlbmRlck9iamVjdCogbyA9IHJlbmRlcmVyKCk7CiAgICAg
aWYgKCFvLT5pc0lubGluZSgpIHx8IG8tPmlzUmVwbGFjZWQoKSkgewogICAgICAgICBSZW5kZXJC
b3gqIGJveCA9IHRvUmVuZGVyQm94KG8pOwotICAgICAgICBwb2ludCA9IG8tPmxvY2FsVG9BYnNv
bHV0ZShMYXlvdXRQb2ludChib3gtPnNpemUoKSksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcG9p
bnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUoTGF5b3V0UG9pbnQoYm94LT5zaXplKCkpLCBVc2VUcmFu
c2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKQEAgLTg0MCw3ICs4NDAsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmdldExvd2Vy
UmlnaHRDb3JuZXIoCiAgICAgICAgICAgICAgICAgUmVuZGVyQm94KiBib3ggPSB0b1JlbmRlckJv
eChvKTsKICAgICAgICAgICAgICAgICBwb2ludC5tb3ZlQnkoYm94LT5mcmFtZVJlY3QoKS5tYXhY
TWF4WUNvcm5lcigpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvaW50ID0gby0+Y29u
dGFpbmVyKCktPmxvY2FsVG9BYnNvbHV0ZShwb2ludCwgZmFsc2UsIHRydWUpOworICAgICAgICAg
ICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fic29sdXRlKHBvaW50LCBVc2VUcmFu
c2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxh
dGVkRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0
ZWRFdmVudC5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lk
IE1vdXNlUmVsYXRlZEV2ZW50Ojpjb21wdXRlUmVsYXRpdmVQCiAgICAgLy8gQWRqdXN0IG9mZnNl
dExvY2F0aW9uIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSB0YXJnZXQncyBwb3NpdGlvbi4KICAgICBp
ZiAoIWlzU2ltdWxhdGVkKCkpIHsKICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogciA9IHRhcmdl
dE5vZGUtPnJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9jYWxQb3MgPSBy
LT5hYnNvbHV0ZVRvTG9jYWwoYWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7CisgICAg
ICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0gci0+YWJzb2x1dGVUb0xvY2FsKGFic29sdXRl
TG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAg
ICAgICAgICAgIG1fb2Zmc2V0TG9jYXRpb24gPSByb3VuZGVkTGF5b3V0UG9pbnQobG9jYWxQb3Mp
OwogICAgICAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAxIC8gKHBhZ2Vab29tRmFjdG9yKHRo
aXMpICogZnJhbWVTY2FsZUZhY3Rvcih0aGlzKSk7CiAgICAgICAgICAgICBpZiAoc2NhbGVGYWN0
b3IgIT0gMS4wZikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA3MCw3ICsyMDcw
LDcgQEAgRmxvYXRQb2ludCBOb2RlOjpjb252ZXJ0VG9QYWdlKGNvbnN0IEZsbwogewogICAgIC8v
IElmIHRoZXJlIGlzIGEgcmVuZGVyZXIsIGp1c3QgYXNrIGl0IHRvIGRvIHRoZSBjb252ZXJzaW9u
CiAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiByZW5kZXJlcigpLT5sb2NhbFRv
QWJzb2x1dGUocCwgZmFsc2UsIHRydWUpOworICAgICAgICByZXR1cm4gcmVuZGVyZXIoKS0+bG9j
YWxUb0Fic29sdXRlKHAsIFVzZVRyYW5zZm9ybXMpOwogICAgIAogICAgIC8vIE90aGVyd2lzZSBn
byB1cCB0aGUgdHJlZSBsb29raW5nIGZvciBhIHJlbmRlcmVyCiAgICAgRWxlbWVudCAqcGFyZW50
ID0gYW5jZXN0b3JFbGVtZW50KCk7CkBAIC0yMDg1LDcgKzIwODUsNyBAQCBGbG9hdFBvaW50IE5v
ZGU6OmNvbnZlcnRGcm9tUGFnZShjb25zdCBGCiB7CiAgICAgLy8gSWYgdGhlcmUgaXMgYSByZW5k
ZXJlciwganVzdCBhc2sgaXQgdG8gZG8gdGhlIGNvbnZlcnNpb24KICAgICBpZiAocmVuZGVyZXIo
KSkKLSAgICAgICAgcmV0dXJuIHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChwLCBmYWxzZSwg
dHJ1ZSk7CisgICAgICAgIHJldHVybiByZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwocCwgVXNl
VHJhbnNmb3Jtcyk7CiAKICAgICAvLyBPdGhlcndpc2UgZ28gdXAgdGhlIHRyZWUgbG9va2luZyBm
b3IgYSByZW5kZXJlcgogICAgIEVsZW1lbnQgKnBhcmVudCA9IGFuY2VzdG9yRWxlbWVudCgpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHJldmlzaW9u
IDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjY0LDcgKzEyNjQsNyBAQCBJbnRSZWN0IENhcmV0QmFzZTo6YWJz
b2x1dGVCb3VuZHNGb3JMb2NhCiAgICAgTGF5b3V0UmVjdCBsb2NhbFJlY3QocmVjdCk7CiAgICAg
aWYgKGNhcmV0UGFpbnRlci0+aXNCb3goKSkKICAgICAgICAgdG9SZW5kZXJCb3goY2FyZXRQYWlu
dGVyKS0+ZmxpcEZvcldyaXRpbmdNb2RlKGxvY2FsUmVjdCk7Ci0gICAgcmV0dXJuIGNhcmV0UGFp
bnRlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSkuZW5jbG9zaW5n
Qm91bmRpbmdCb3goKTsKKyAgICByZXR1cm4gY2FyZXRQYWludGVyLT5sb2NhbFRvQWJzb2x1dGVR
dWFkKEZsb2F0UmVjdChsb2NhbFJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9z
aW5nQm91bmRpbmdCb3goKTsKIH0KIAogSW50UmVjdCBGcmFtZVNlbGVjdGlvbjo6YWJzb2x1dGVD
YXJldEJvdW5kcygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVyZWRQb3Np
dGlvbi5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVu
ZGVyZWRQb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw3ICsyMzAsNyBAQCBJbnRS
ZWN0IFJlbmRlcmVkUG9zaXRpb246OmFic29sdXRlUmVjdChMCiAgICAgICAgIHJldHVybiBJbnRS
ZWN0KCk7CiAKICAgICBJbnRSZWN0IGxvY2FsUmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QobV9y
ZW5kZXJlci0+bG9jYWxDYXJldFJlY3QobV9pbmxpbmVCb3gsIG1fb2Zmc2V0LCBleHRyYVdpZHRo
VG9FbmRPZkxpbmUpKTsKLSAgICByZXR1cm4gbG9jYWxSZWN0ID09IEludFJlY3QoKSA/IEludFJl
Y3QoKSA6IG1fcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsUmVj
dCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0dXJuIGxvY2FsUmVjdCA9PSBJbnRS
ZWN0KCkgPyBJbnRSZWN0KCkgOiBtX3JlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0
UmVjdChsb2NhbFJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9zaW5nQm91bmRp
bmdCb3goKTsKIH0KIAogYm9vbCByZW5kZXJPYmplY3RDb250YWluc1Bvc2l0aW9uKFJlbmRlck9i
amVjdCogdGFyZ2V0LCBjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCShyZXZpc2lvbiAxMzA3ODQpCisrKyBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYyNCw3ICs2MjQsNyBAQCBJbnRSZWN0IFZpc2libGVQb3NpdGlvbjo6YWJzb2x1dGVDYXJl
dEJvCiAgICAgaWYgKGxvY2FsUmVjdC5pc0VtcHR5KCkgfHwgIXJlbmRlcmVyKQogICAgICAgICBy
ZXR1cm4gSW50UmVjdCgpOwogCi0gICAgcmV0dXJuIHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVR
dWFkKEZsb2F0UmVjdChsb2NhbFJlY3QpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIHJl
dHVybiByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9CiAKIGlu
dCBWaXNpYmxlUG9zaXRpb246OmxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2
aWdhdGlvbigpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcAkocmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyODksNyArMTI4OSw3IEBAIHZvaWQg
SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXYKIAogICAgICAgICAvLyBDb252ZXJ0
IHRvIGNvb3JkcyByZWxhdGl2ZSB0byB0aGUgbGlzdCBib3ggaWYgbmVlZGVkLgogICAgICAgICBN
b3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsK
LSAgICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIo
KS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2Us
IHRydWUpKTsKKyAgICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQo
cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24o
KSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiAgICAgICAgIGlu
dCBsaXN0SW5kZXggPSB0b1JlbmRlckxpc3RCb3gocmVuZGVyZXIoKSktPmxpc3RJbmRleEF0T2Zm
c2V0KHRvU2l6ZShsb2NhbE9mZnNldCkpOwogICAgICAgICBpZiAobGlzdEluZGV4ID49IDApIHsK
ICAgICAgICAgICAgIGlmICghZGlzYWJsZWQoKSkgewpAQCAtMTMwOSw3ICsxMzA5LDcgQEAgdm9p
ZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveERlZmF1bHRFdgogICAgICAgICBpZiAobW91c2VF
dmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCAhbW91c2VFdmVudC0+YnV0dG9uRG93bigp
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIEludFBvaW50IGxvY2FsT2Zmc2V0ID0g
cm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5h
YnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKSk7CisgICAgICAgIEludFBvaW50IGxvY2Fs
T2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3Vz
ZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtcykpOwogICAgICAgICBpbnQgbGlzdEluZGV4ID0gdG9SZW5kZXJMaXN0Qm94KHJl
bmRlcmVyKCkpLT5saXN0SW5kZXhBdE9mZnNldCh0b1NpemUobG9jYWxPZmZzZXQpKTsKICAgICAg
ICAgaWYgKGxpc3RJbmRleCA+PSAwKSB7CiAgICAgICAgICAgICBpZiAoIWRpc2FibGVkKCkpIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVt
ZW50LmNwcAkocmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU2LDcgKzI1Niw3IEBA
IHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb20KICAgICAgICAgcmV0dXJu
OwogCiAgICAgaW5wdXQtPnNldFRleHRBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoaW5w
dXQtPnZhbHVlKCkpOwotICAgIExheW91dFBvaW50IG9mZnNldCA9IHJvdW5kZWRMYXlvdXRQb2lu
dChpbnB1dC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBmYWxzZSwgdHJ1ZSkp
OworICAgIExheW91dFBvaW50IG9mZnNldCA9IHJvdW5kZWRMYXlvdXRQb2ludChpbnB1dC0+cmVu
ZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMpKTsKICAgICBib29sIGlzVmVydGljYWwgPSBoYXNWZXJ0aWNhbEFwcGVh
cmFuY2UoaW5wdXQpOwogICAgIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlvbiA9IHJlbmRlckJv
eCgpLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CiAgICAgTGF5b3V0VW5pdCB0
cmFja1NpemU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1
dHRvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzA3ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5
LDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZAogICAgIH0KIAog
ICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZl
bnQpOwotICAgIEludFBvaW50IGxvY2FsID0gcm91bmRlZEludFBvaW50KGJveC0+YWJzb2x1dGVU
b0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpKTsKKyAg
ICBJbnRQb2ludCBsb2NhbCA9IHJvdW5kZWRJbnRQb2ludChib3gtPmFic29sdXRlVG9Mb2NhbCht
b3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcykpOwogICAgIGlmIChtb3VzZUV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLm1vdXNlZG93bkV2ZW50ICYmIG1vdXNlRXZlbnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24p
IHsKICAgICAgICAgaWYgKGJveC0+cGl4ZWxTbmFwcGVkQm9yZGVyQm94UmVjdCgpLmNvbnRhaW5z
KGxvY2FsKSkgewogICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgb2YgSFRN
TElucHV0RWxlbWVudCBtYXkgcnVuIEphdmFTY3JpcHQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ3NSw3ICszNDc1LDcgQEAgdm9pZCBGcmFtZVZp
ZXc6OmFkanVzdFBhZ2VIZWlnaHREZXByZWNhdAogCiBJbnRSZWN0IEZyYW1lVmlldzo6Y29udmVy
dEZyb21SZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRSZWN0
JiByZW5kZXJlclJlY3QpIGNvbnN0CiB7Ci0gICAgSW50UmVjdCByZWN0ID0gcmVuZGVyZXItPmxv
Y2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHJlbmRlcmVyUmVjdCkpLmVuY2xvc2luZ0JvdW5k
aW5nQm94KCk7CisgICAgSW50UmVjdCByZWN0ID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1
YWQoRmxvYXRSZWN0KHJlbmRlcmVyUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNs
b3NpbmdCb3VuZGluZ0JveCgpOwogCiAgICAgLy8gQ29udmVydCBmcm9tIHBhZ2UgKCJhYnNvbHV0
ZSIpIHRvIEZyYW1lVmlldyBjb29yZGluYXRlcy4KICAgICBpZiAoIWRlbGVnYXRlc1Njcm9sbGlu
ZygpKQpAQCAtMzQ5NCwxMyArMzQ5NCwxMyBAQCBJbnRSZWN0IEZyYW1lVmlldzo6Y29udmVydFRv
UmVuZGVyZXIoY29uCiAKICAgICAvLyBGSVhNRTogd2UgZG9uJ3QgaGF2ZSBhIHdheSB0byBtYXAg
YW4gYWJzb2x1dGUgcmVjdCBkb3duIHRvIGEgbG9jYWwgcXVhZCwgc28ganVzdAogICAgIC8vIG1v
dmUgdGhlIHJlY3QgZm9yIG5vdy4KLSAgICByZWN0LnNldExvY2F0aW9uKHJvdW5kZWRJbnRQb2lu
dChyZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHJlY3QubG9jYXRpb24oKSwgZmFsc2UsIHRydWUg
LyogdXNlIHRyYW5zZm9ybXMgKi8pKSk7CisgICAgcmVjdC5zZXRMb2NhdGlvbihyb3VuZGVkSW50
UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChyZWN0LmxvY2F0aW9uKCksIFVzZVRyYW5z
Zm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykpKTsKICAgICByZXR1cm4gcmVjdDsKIH0K
IAogSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKGNvbnN0IFJlbmRlck9i
amVjdCogcmVuZGVyZXIsIGNvbnN0IEludFBvaW50JiByZW5kZXJlclBvaW50KSBjb25zdAogewot
ICAgIEludFBvaW50IHBvaW50ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5sb2NhbFRvQWJz
b2x1dGUocmVuZGVyZXJQb2ludCwgZmFsc2UsIHRydWUgLyogdXNlIHRyYW5zZm9ybXMgKi8pKTsK
KyAgICBJbnRQb2ludCBwb2ludCA9IHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+bG9jYWxUb0Fi
c29sdXRlKHJlbmRlcmVyUG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcykpOwogCiAgICAgLy8gQ29udmVydCBmcm9tIHBhZ2UgKCJhYnNvbHV0ZSIpIHRvIEZyYW1l
VmlldyBjb29yZGluYXRlcy4KICAgICBpZiAoIWRlbGVnYXRlc1Njcm9sbGluZygpKQpAQCAtMzUx
Niw3ICszNTE2LDcgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0VG9SZW5kZXJlcihjbwog
ICAgIGlmICghZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHBvaW50ICs9IEludFNpemUo
c2Nyb2xsWCgpLCBzY3JvbGxZKCkpOwogCi0gICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludChyZW5k
ZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBmYWxzZSwgdHJ1ZSAvKiB1c2UgdHJhbnNmb3Jt
cyAqLykpOworICAgIHJldHVybiByb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9M
b2NhbChwb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiB9
CiAKIEludFJlY3QgRnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJbnRS
ZWN0JiBsb2NhbFJlY3QpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwCShyZXZpc2lvbiAxMzA3ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNjcsNyArMTA2Nyw3
IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1hcmtlcigKICAgICAgICAgLy8g
ZGlzcGxheSBhIHRvb2xUaXAuIFdlIGRvbid0IGRvIHRoaXMgZm9yIG1pc3NwZWxsaW5nIG1hcmtl
cnMuCiAgICAgICAgIGlmIChncmFtbWFyIHx8IGlzRGljdGF0aW9uTWFya2VyKSB7CiAgICAgICAg
ICAgICBtYXJrZXJSZWN0Lm1vdmUoLWJveE9yaWdpbi54KCksIC1ib3hPcmlnaW4ueSgpKTsKLSAg
ICAgICAgICAgIG1hcmtlclJlY3QgPSByZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZs
b2F0UmVjdChtYXJrZXJSZWN0KSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICAgICAgICAg
IG1hcmtlclJlY3QgPSByZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdCht
YXJrZXJSZWN0KSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94
KCk7CiAgICAgICAgICAgICB0b1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIobWFya2VyKS0+c2V0UmVu
ZGVyZWRSZWN0KG1hcmtlclJlY3QpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTEwNSw3ICsxMTA1
LDcgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludFRleHRNYXRjaE1hcmtlcgogCiAgICAgLy8g
QWx3YXlzIGNvbXB1dGUgYW5kIHN0b3JlIHRoZSByZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1h
cmtlci4gVGhlIGNvbXB1dGVkIHJlY3QgaXMgaW4gYWJzb2x1dGUgY29vcmRpbmF0ZXMuCiAgICAg
SW50UmVjdCBtYXJrZXJSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChmb250LnNlbGVjdGlvblJlY3RG
b3JUZXh0KHJ1biwgSW50UG9pbnQoeCgpLCBzZWxlY3Rpb25Ub3AoKSksIHNlbEhlaWdodCwgc1Bv
cywgZVBvcykpOwotICAgIG1hcmtlclJlY3QgPSByZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVR
dWFkKEZsb2F0UmVjdChtYXJrZXJSZWN0KSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICBt
YXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFy
a2VyUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
OwogICAgIHRvUmVuZGVyZWREb2N1bWVudE1hcmtlcihtYXJrZXIpLT5zZXRSZW5kZXJlZFJlY3Qo
bWFya2VyUmVjdCk7CiAgICAgCiAgICAgLy8gT3B0aW9uYWxseSBoaWdobGlnaHQgdGhlIHRleHQK
QEAgLTExMzMsNyArMTEzMyw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6Y29tcHV0ZVJlY3RGb3JS
ZXBsYWMKICAgICAKICAgICAvLyBDb21wdXRlIGFuZCBzdG9yZSB0aGUgcmVjdCBhc3NvY2lhdGVk
IHdpdGggdGhpcyBtYXJrZXIuCiAgICAgSW50UmVjdCBtYXJrZXJSZWN0ID0gZW5jbG9zaW5nSW50
UmVjdChmb250LnNlbGVjdGlvblJlY3RGb3JUZXh0KHJ1biwgc3RhcnRQb2ludCwgaCwgc1Bvcywg
ZVBvcykpOwotICAgIG1hcmtlclJlY3QgPSByZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFk
KEZsb2F0UmVjdChtYXJrZXJSZWN0KSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICBtYXJr
ZXJSZWN0ID0gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2Vy
UmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwog
ICAgIHRvUmVuZGVyZWREb2N1bWVudE1hcmtlcihtYXJrZXIpLT5zZXRSZW5kZXJlZFJlY3QobWFy
a2VyUmVjdCk7CiB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0
U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRT
dGF0ZS5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
YXlvdXRTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgTGF5b3V0U3Rh
dGU6OkxheW91dFN0YXRlKExheW91dFN0YXRlKiBwcgogICAgIGJvb2wgZml4ZWQgPSByZW5kZXJl
ci0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgcmVuZGVyZXItPnN0eWxlKCktPnBvc2l0aW9u
KCkgPT0gRml4ZWRQb3NpdGlvbjsKICAgICBpZiAoZml4ZWQpIHsKICAgICAgICAgLy8gRklYTUU6
IFRoaXMgZG9lc24ndCB3b3JrIGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMuCi0gICAgICAgIEZs
b2F0UG9pbnQgZml4ZWRPZmZzZXQgPSByZW5kZXJlci0+dmlldygpLT5sb2NhbFRvQWJzb2x1dGUo
RmxvYXRQb2ludCgpLCB0cnVlKTsKKyAgICAgICAgRmxvYXRQb2ludCBmaXhlZE9mZnNldCA9IHJl
bmRlcmVyLT52aWV3KCktPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIElzRml4ZWQpOwog
ICAgICAgICBtX3BhaW50T2Zmc2V0ID0gTGF5b3V0U2l6ZShmaXhlZE9mZnNldC54KCksIGZpeGVk
T2Zmc2V0LnkoKSkgKyBvZmZzZXQ7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fcGFpbnRPZmZzZXQg
PSBwcmV2LT5tX3BhaW50T2Zmc2V0ICsgb2Zmc2V0OwpAQCAtMTQ4LDcgKzE0OCw3IEBAIExheW91
dFN0YXRlOjpMYXlvdXRTdGF0ZShSZW5kZXJPYmplY3QqIHIKICNlbmRpZgogewogICAgIFJlbmRl
ck9iamVjdCogY29udGFpbmVyID0gcm9vdC0+Y29udGFpbmVyKCk7Ci0gICAgRmxvYXRQb2ludCBh
YnNDb250ZW50UG9pbnQgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCks
IGZhbHNlLCB0cnVlKTsKKyAgICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5l
ci0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZz
ZXRGb3JUcmFuc2Zvcm1zKTsKICAgICBtX3BhaW50T2Zmc2V0ID0gTGF5b3V0U2l6ZShhYnNDb250
ZW50UG9pbnQueCgpLCBhYnNDb250ZW50UG9pbnQueSgpKTsKIAogICAgIGlmIChjb250YWluZXIt
Pmhhc092ZXJmbG93Q2xpcCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3NzAsMTAgKzY3NzAsMTAgQEAg
dm9pZCBSZW5kZXJCbG9jazo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RgogICAgICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3ODEKICAgICAgICAgRmxvYXRS
ZWN0IGxvY2FsUmVjdCgwLCAtY29sbGFwc2VkTWFyZ2luQmVmb3JlKCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgoKSwgaGVpZ2h0KCkgKyBjb2xsYXBzZWRNYXJnaW5CZWZvcmUo
KSArIGNvbGxhcHNlZE1hcmdpbkFmdGVyKCkpOwotICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxU
b0Fic29sdXRlUXVhZChsb2NhbFJlY3QsIGZhbHNlLCB3YXNGaXhlZCkpOworICAgICAgICBxdWFk
cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChsb2NhbFJlY3QsIDAgLyogbW9kZSAqLywgd2Fz
Rml4ZWQpKTsKICAgICAgICAgY29udGludWF0aW9uKCktPmFic29sdXRlUXVhZHMocXVhZHMsIHdh
c0ZpeGVkKTsKICAgICB9IGVsc2UKLSAgICAgICAgcXVhZHMuYXBwZW5kKFJlbmRlckJveDo6bG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QoMCwgMCwgd2lkdGgoKSwgaGVpZ2h0KCkpLCBmYWxz
ZSwgd2FzRml4ZWQpKTsKKyAgICAgICAgcXVhZHMuYXBwZW5kKFJlbmRlckJveDo6bG9jYWxUb0Fi
c29sdXRlUXVhZChGbG9hdFJlY3QoMCwgMCwgd2lkdGgoKSwgaGVpZ2h0KCkpLCAwIC8qIG1vZGUg
Ki8sIHdhc0ZpeGVkKSk7CiB9CiAKIExheW91dFJlY3QgUmVuZGVyQmxvY2s6OnJlY3RXaXRoT3V0
bGluZUZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
TGF5b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMyw3ICs0MDMsNyBAQCB2
b2lkIFJlbmRlckJveDo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50CiAKIHZvaWQgUmVuZGVyQm94
OjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCogd2FzRml4ZWQp
IGNvbnN0CiB7Ci0gICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0
KDAsIDAsIHdpZHRoKCksIGhlaWdodCgpKSwgZmFsc2UsIHdhc0ZpeGVkKSk7CisgICAgcXVhZHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KDAsIDAsIHdpZHRoKCksIGhlaWdo
dCgpKSwgMCAvKiBtb2RlICovLCB3YXNGaXhlZCkpOwogfQogCiB2b2lkIFJlbmRlckJveDo6dXBk
YXRlTGF5ZXJUcmFuc2Zvcm0oKQpAQCAtNDM2LDcgKzQzNiw3IEBAIEludFJlY3QgUmVuZGVyQm94
OjphYnNvbHV0ZUNvbnRlbnRCb3goKQogewogICAgIC8vIFRoaXMgaXMgd3Jvbmcgd2l0aCB0cmFu
c2Zvcm1zIGFuZCBmbGlwcGVkIHdyaXRpbmcgbW9kZXMuCiAgICAgSW50UmVjdCByZWN0ID0gcGl4
ZWxTbmFwcGVkSW50UmVjdChjb250ZW50Qm94UmVjdCgpKTsKLSAgICBGbG9hdFBvaW50IGFic1Bv
cyA9IGxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCkpOworICAgIEZsb2F0UG9pbnQgYWJzUG9z
ID0gbG9jYWxUb0Fic29sdXRlKCk7CiAgICAgcmVjdC5tb3ZlKGFic1Bvcy54KCksIGFic1Bvcy55
KCkpOwogICAgIHJldHVybiByZWN0OwogfQpAQCAtMTI1OCw3ICsxMjU4LDcgQEAgTGF5b3V0VW5p
dCBSZW5kZXJCb3g6OnBlcnBlbmRpY3VsYXJDb250YQogICAgIHJldHVybiBjYi0+YWRqdXN0Q29u
dGVudEJveExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcobG9naWNhbEhlaWdodExlbmd0aC52YWx1
ZSgpKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9y
bVN0YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0Cit2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUs
IE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAg
aWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwpAQCAtMTM2Mywx
OCArMTM2MywxOCBAQCBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlckJveDo6cHVzaE1hcHBpCiAg
ICAgcmV0dXJuIGFuY2VzdG9yU2tpcHBlZCA/IGFuY2VzdG9yVG9TdG9wQXQgOiBjb250YWluZXI7
CiB9CiAKLXZvaWQgUmVuZGVyQm94OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVk
LCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29u
c3QKK3ZvaWQgUmVuZGVyQm94OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRl
c0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKIHsKICAg
ICBib29sIGlzRml4ZWRQb3MgPSBzdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb247
CiAgICAgYm9vbCBoYXNUcmFuc2Zvcm0gPSBoYXNMYXllcigpICYmIGxheWVyKCktPnRyYW5zZm9y
bSgpOwotICAgIGlmIChoYXNUcmFuc2Zvcm0pIHsKKyAgICBpZiAoaGFzVHJhbnNmb3JtICYmICFp
c0ZpeGVkUG9zKSB7CiAgICAgICAgIC8vIElmIHRoaXMgYm94IGhhcyBhIHRyYW5zZm9ybSwgaXQg
YWN0cyBhcyBhIGZpeGVkIHBvc2l0aW9uIGNvbnRhaW5lciBmb3IgZml4ZWQgZGVzY2VuZGFudHMs
CiAgICAgICAgIC8vIGFuZCBtYXkgaXRzZWxmIGFsc28gYmUgZml4ZWQgcG9zaXRpb24uIFNvIHBy
b3BhZ2F0ZSAnZml4ZWQnIHVwIG9ubHkgaWYgdGhpcyBib3ggaXMgZml4ZWQgcG9zaXRpb24uCi0g
ICAgICAgIGZpeGVkICY9IGlzRml4ZWRQb3M7Ci0gICAgfSBlbHNlCi0gICAgICAgIGZpeGVkIHw9
IGlzRml4ZWRQb3M7CisgICAgICAgIG1vZGUgJj0gfklzRml4ZWQ7CisgICAgfSBlbHNlIGlmIChp
c0ZpeGVkUG9zKQorICAgICAgICBtb2RlIHw9IElzRml4ZWQ7CiAKLSAgICBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRy
YW5zZm9ybVN0YXRlKTsKKyAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJzb2x1dGVUb0xv
Y2FsUG9pbnQobW9kZSwgdHJhbnNmb3JtU3RhdGUpOwogfQogCiBMYXlvdXRTaXplIFJlbmRlckJv
eDo6b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IExheW91dFBvaW50
JiBwb2ludCwgYm9vbCogb2Zmc2V0RGVwZW5kc09uUG9pbnQpIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiAxMzA3ODQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTU3NCw5ICs1NzQs
OSBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNob3VsZENvbXB1dGVTaXpl
QXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzUmVwbGFjZWQoKSAmJiAhaXNJbmxpbmVCbG9j
a09ySW5saW5lVGFibGUoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWlu
ZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3Rh
dGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0
ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9y
bXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCosIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJh
bnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1TdGF0
ZSYpIGNvbnN0OwogCiAgICAgdm9pZCBwYWludFJvb3RCb3hGaWxsTGF5ZXJzKGNvbnN0IFBhaW50
SW5mbyYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3MCw3
ICs0NzAsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlU3RpY2t5CiAgICAg
Ly8gQ29tcHV0ZSB0aGUgY29udGFpbmVyLXJlbGF0aXZlIGFyZWEgd2l0aGluIHdoaWNoIHRoZSBz
dGlja3kgZWxlbWVudCBpcyBhbGxvd2VkIHRvIG1vdmUuCiAgICAgY29udGFpbmVyQ29udGVudFJl
Y3QubW92ZShtaW5MZWZ0TWFyZ2luLCBtaW5Ub3BNYXJnaW4pOwogICAgIGNvbnRhaW5lckNvbnRl
bnRSZWN0LmNvbnRyYWN0KG1pbkxlZnRNYXJnaW4gKyBtaW5SaWdodE1hcmdpbiwgbWluVG9wTWFy
Z2luICsgbWluQm90dG9tTWFyZ2luKTsKLSAgICBjb25zdHJhaW50cy5zZXRBYnNvbHV0ZUNvbnRh
aW5pbmdCbG9ja1JlY3QoY29udGFpbmluZ0Jsb2NrLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0
UmVjdChjb250YWluZXJDb250ZW50UmVjdCkpLmJvdW5kaW5nQm94KCkpOworICAgIGNvbnN0cmFp
bnRzLnNldEFic29sdXRlQ29udGFpbmluZ0Jsb2NrUmVjdChjb250YWluaW5nQmxvY2stPmxvY2Fs
VG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGNvbnRhaW5lckNvbnRlbnRSZWN0KSwgU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwogCiAgICAgTGF5b3V0UmVjdCBzdGlja3lC
b3hSZWN0ID0gZnJhbWVSZWN0Rm9yU3RpY2t5UG9zaXRpb25pbmcoKTsKICAgICBMYXlvdXRSZWN0
IGZsaXBwZWRTdGlja3lCb3hSZWN0ID0gc3RpY2t5Qm94UmVjdDsKQEAgLTQ3OCw3ICs0NzgsNyBA
QCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlU3RpY2t5CiAgICAgTGF5b3V0UG9p
bnQgc3RpY2t5TG9jYXRpb24gPSBmbGlwcGVkU3RpY2t5Qm94UmVjdC5sb2NhdGlvbigpOwogCiAg
ICAgLy8gRklYTUU6IHN1Y2tzIHRvIGNhbGwgbG9jYWxUb0Fic29sdXRlIGFnYWluLCBidXQgd2Ug
Y2FuJ3QganVzdCBvZmZzZXQgZnJvbSB0aGUgcHJldmlvdXNseSBjb21wdXRlZCByZWN0IGlmIHRo
ZXJlIGFyZSB0cmFuc2Zvcm1zLgotICAgIEZsb2F0UmVjdCBhYnNDb250YWluZXJGcmFtZSA9IGNv
bnRhaW5pbmdCbG9jay0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QoRmxvYXRQb2ludCgp
LCBjb250YWluaW5nQmxvY2stPnNpemUoKSkpLmJvdW5kaW5nQm94KCk7CisgICAgRmxvYXRSZWN0
IGFic0NvbnRhaW5lckZyYW1lID0gY29udGFpbmluZ0Jsb2NrLT5sb2NhbFRvQWJzb2x1dGVRdWFk
KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGNvbnRhaW5pbmdCbG9jay0+c2l6ZSgpKSwgU25hcE9m
ZnNldEZvclRyYW5zZm9ybXMpLmJvdW5kaW5nQm94KCk7CiAgICAgLy8gV2UgY2FuJ3QgY2FsbCBs
b2NhbFRvQWJzb2x1dGUgb24gfHRoaXN8IGJlY2F1c2UgdGhhdCB3aWxsIHJlY3VyLiBGSVhNRTog
Rm9yIG5vdywgYXNzdW1lIHRoYXQgfHRoaXN8IGlzIG5vdCB0cmFuc2Zvcm1lZC4KICAgICBGbG9h
dFJlY3QgYWJzb2x1dGVTdGlja3lCb3hSZWN0KGFic0NvbnRhaW5lckZyYW1lLmxvY2F0aW9uKCkg
KyBzdGlja3lMb2NhdGlvbiwgZmxpcHBlZFN0aWNreUJveFJlY3Quc2l6ZSgpKTsKICAgICBjb25z
dHJhaW50cy5zZXRBYnNvbHV0ZVN0aWNreUJveFJlY3QoYWJzb2x1dGVTdGlja3lCb3hSZWN0KTsK
QEAgLTI2OTYsMTMgKzI2OTYsMTMgQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c2hvdWxk
QW50aWFsaQogICAgIHJldHVybiAhY29udGV4dC0+Z2V0Q1RNKCkuaXNJZGVudGl0eU9yVHJhbnNs
YXRpb25PckZsaXBwZWQoKTsKIH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zv
cm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0Cit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5z
Zm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKIHsKICAgICBSZW5kZXJPYmplY3QqIG8g
PSBjb250YWluZXIoKTsKICAgICBpZiAoIW8pCiAgICAgICAgIHJldHVybjsKIAotICAgIG8tPm1h
cEFic29sdXRlVG9Mb2NhbFBvaW50KGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0
ZSk7CisgICAgby0+bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQobW9kZSwgdHJhbnNmb3JtU3RhdGUp
OwogCiAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVy
KG8sIExheW91dFBvaW50KCkpOwogCkBAIC0yNzEzLDggKzI3MTMsOCBAQCB2b2lkIFJlbmRlckJv
eE1vZGVsT2JqZWN0OjptYXBBYnNvbHV0ZVRvCiAgICAgICAgIGJsb2NrLT5hZGp1c3RGb3JDb2x1
bW5SZWN0KGNvbnRhaW5lck9mZnNldCwgcG9pbnQpOwogICAgIH0KIAotICAgIGJvb2wgcHJlc2Vy
dmUzRCA9IHVzZVRyYW5zZm9ybXMgJiYgKG8tPnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5
bGUoKS0+cHJlc2VydmVzM0QoKSk7Ci0gICAgaWYgKHVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNl
VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkgeworICAgIGJvb2wgcHJlc2VydmUzRCA9IG1vZGUg
JiBVc2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCkt
PnByZXNlcnZlczNEKCkpOworICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRV
c2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8pKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IHQ7CiAgICAgICAgIGdldFRyYW5zZm9ybUZyb21Db250YWluZXIobywgY29udGFpbmVyT2Zm
c2V0LCB0KTsKICAgICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0odCwgcHJlc2Vy
dmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3Rh
dGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTgsNyArMTU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVp
Z2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9
IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5l
KSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQo
Ym9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJikgY29uc3QgT1ZFUlJJREU7CiAKICAg
ICB2b2lkIGhpZ2hRdWFsaXR5UmVwYWludFRpbWVyRmlyZWQoVGltZXI8UmVuZGVyQm94TW9kZWxP
YmplY3Q+Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRl
ZE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcAkocmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIy
LDcgKzMyMiw3IEBAIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmlzSW5VbmF2YWlsYWIKIAog
Ym9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6aXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9y
KE1vdXNlRXZlbnQqIGV2ZW50KSBjb25zdAogewotICAgIHJldHVybiBpc0luVW5hdmFpbGFibGVQ
bHVnaW5JbmRpY2F0b3Iocm91bmRlZExheW91dFBvaW50KGFic29sdXRlVG9Mb2NhbChldmVudC0+
YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSkpKTsKKyAgICByZXR1cm4gaXNJblVuYXZh
aWxhYmxlUGx1Z2luSW5kaWNhdG9yKHJvdW5kZWRMYXlvdXRQb2ludChhYnNvbHV0ZVRvTG9jYWwo
ZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKSkpOwogfQogCiBzdGF0aWMgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1l
c3NhZ2VCZUJ1dHRvbihEb2N1bWVudCogZG9jdW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQ
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcAkocmV2aXNp
b24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjk5LDcgKzY5OSw3IEBAIGJvb2wgUmVuZGVyRnJhbWVTZXQ6
OnVzZXJSZXNpemUoTW91c2VFdmUKICAgICAgICAgaWYgKG5lZWRzTGF5b3V0KCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkubW91c2Vkb3duRXZlbnQgJiYgZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7Ci0gICAg
ICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1
dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgICAgICBGbG9hdFBvaW50IGxvY2Fs
UG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zv
cm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAgICAgICAgICAgc3RhcnRSZXNpemlu
ZyhtX2NvbHMsIGxvY2FsUG9zLngoKSk7CiAgICAgICAgICAgICBzdGFydFJlc2l6aW5nKG1fcm93
cywgbG9jYWxQb3MueSgpKTsKICAgICAgICAgICAgIGlmIChtX2NvbHMubV9zcGxpdEJlaW5nUmVz
aXplZCAhPSBub1NwbGl0IHx8IG1fcm93cy5tX3NwbGl0QmVpbmdSZXNpemVkICE9IG5vU3BsaXQp
IHsKQEAgLTcwOSw3ICs3MDksNyBAQCBib29sIFJlbmRlckZyYW1lU2V0Ojp1c2VyUmVzaXplKE1v
dXNlRXZlCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBpZiAoZXZ0LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50IHx8IChldnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkubW91c2V1cEV2ZW50ICYmIGV2dC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikpIHsKLSAg
ICAgICAgICAgIEZsb2F0UG9pbnQgbG9jYWxQb3MgPSBhYnNvbHV0ZVRvTG9jYWwoZXZ0LT5hYnNv
bHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9j
YWxQb3MgPSBhYnNvbHV0ZVRvTG9jYWwoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5z
Zm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICBjb250aW51ZVJl
c2l6aW5nKG1fY29scywgbG9jYWxQb3MueCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlUmVzaXpp
bmcobV9yb3dzLCBsb2NhbFBvcy55KCkpOwogICAgICAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9u
KSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1h
cC5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHZW9tZXRyeU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgRmxvYXRQ
b2ludCBSZW5kZXJHZW9tZXRyeU1hcDo6YWJzb2x1dGVQbwogICAgIH0KIAogI2lmICFBU1NFUlRf
RElTQUJMRUQKLSAgICBGbG9hdFBvaW50IHJlbmRlcmVyTWFwcGVkUmVzdWx0ID0gbV9tYXBwaW5n
Lmxhc3QoKS5tX3JlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUocCwgZmFsc2UsIHRydWUpOworICAg
IEZsb2F0UG9pbnQgcmVuZGVyZXJNYXBwZWRSZXN1bHQgPSBtX21hcHBpbmcubGFzdCgpLm1fcmVu
ZGVyZXItPmxvY2FsVG9BYnNvbHV0ZShwLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMpOwogICAgIEFTU0VSVChyZW5kZXJlck1hcHBlZFJlc3VsdCA9PSByZXN1bHQpOwog
I2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CShyZXZpc2lvbiAxMzA3ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExMiw3ICsxMTEyLDcgQEAgTGF5b3V0U2l6ZSBS
ZW5kZXJJbmxpbmU6Om9mZnNldEZyb21Db250YQogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKLXZv
aWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFw
TG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBS
ZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIGlmIChyZXBh
aW50Q29udGFpbmVyID09IHRoaXMpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcg
KzEzNSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IHJlY3RXaXRoT3V0bGlu
ZUZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5
b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3Mg
bW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29s
KiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2Nh
bFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJG
bGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwg
UmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgVmlzaWJs
ZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMTMwNzg0KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTE3MSw3ICsxMTcxLDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpjbGlwcGlu
Z1Jvb3RGbwogTGF5b3V0UG9pbnQgUmVuZGVyTGF5ZXI6OmFic29sdXRlVG9Db250ZW50cyhjb25z
dCBMYXlvdXRQb2ludCYgYWJzb2x1dGVQb2ludCkgY29uc3QKIHsKICAgICAvLyBXZSBkb24ndCB1
c2UgY29udmVydFRvTGF5ZXJDb29yZHMgYmVjYXVzZSBpdCBkb2Vzbid0IGtub3cgYWJvdXQgdHJh
bnNmb3JtcwotICAgIHJldHVybiByb3VuZGVkTGF5b3V0UG9pbnQocmVuZGVyZXIoKS0+YWJzb2x1
dGVUb0xvY2FsKGFic29sdXRlUG9pbnQsIGZhbHNlLCB0cnVlKSk7CisgICAgcmV0dXJuIHJvdW5k
ZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoYWJzb2x1dGVQb2ludCwg
VXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiB9CiAKIGJvb2wgUmVu
ZGVyTGF5ZXI6OmNhbm5vdEJsaXRUb1dpbmRvdygpIGNvbnN0CkBAIC0xNDgwLDcgKzE0ODAsNyBA
QCB2b2lkIFJlbmRlckxheWVyOjpjb252ZXJ0VG9MYXllckNvb3JkcyhjCiAgICAgaWYgKHBvc2l0
aW9uID09IEZpeGVkUG9zaXRpb24gJiYgIXJlbmRlcmVyKCktPmluUmVuZGVyRmxvd1RocmVhZCgp
ICYmICghYW5jZXN0b3JMYXllciB8fCBhbmNlc3RvckxheWVyID09IHJlbmRlcmVyKCktPnZpZXco
KS0+bGF5ZXIoKSkpIHsKICAgICAgICAgLy8gSWYgdGhlIGZpeGVkIGxheWVyJ3MgY29udGFpbmVy
IGlzIHRoZSByb290LCBqdXN0IGFkZCBpbiB0aGUgb2Zmc2V0IG9mIHRoZSB2aWV3LiBXZSBjYW4g
b2J0YWluIHRoaXMgYnkgY2FsbGluZwogICAgICAgICAvLyBsb2NhbFRvQWJzb2x1dGUoKSBvbiB0
aGUgUmVuZGVyVmlldy4KLSAgICAgICAgRmxvYXRQb2ludCBhYnNQb3MgPSByZW5kZXJlcigpLT5s
b2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCB0cnVlKTsKKyAgICAgICAgRmxvYXRQb2ludCBh
YnNQb3MgPSByZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBJc0ZpeGVk
KTsKICAgICAgICAgbG9jYXRpb24gKz0gTGF5b3V0U2l6ZShhYnNQb3MueCgpLCBhYnNQb3MueSgp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE3NDIsNyArMTc0Miw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKIAogICAgICAgICBGbG9hdFF1YWQgcXVh
ZEZvckZha2VNb3VzZU1vdmVFdmVudCA9IEZsb2F0UXVhZChtX3JlcGFpbnRSZWN0KTsKICAgICAg
ICAgaWYgKHJlcGFpbnRDb250YWluZXIpCi0gICAgICAgICAgICBxdWFkRm9yRmFrZU1vdXNlTW92
ZUV2ZW50ID0gcmVwYWludENvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVhZChxdWFkRm9yRmFr
ZU1vdXNlTW92ZUV2ZW50KTsKKyAgICAgICAgICAgIHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQg
PSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKHF1YWRGb3JGYWtlTW91c2VN
b3ZlRXZlbnQsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgZnJhbWUtPmV2ZW50
SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQocXVhZEZvckZh
a2VNb3VzZU1vdmVFdmVudCk7CiAgICAgfQogCkBAIC00MDQzLDcgKzQwNDMsNyBAQCB2b2lkIFJl
bmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMoY29uCiAgICAgICAgIC8vIHNvbWUgdHJhbnNm
b3JtZWQgbGF5ZXIgYm91bmRhcnksIGZvciBleGFtcGxlLCBpbiB0aGUgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yIG92ZXJsYXBNYXAsIHdoZXJlCiAgICAgICAgIC8vIGNsaXBSZWN0cyBhcmUgbmVlZGVk
IGluIHZpZXcgc3BhY2UuCiAgICAgICAgIExheW91dFBvaW50IG9mZnNldDsKLSAgICAgICAgb2Zm
c2V0ID0gcm91bmRlZExheW91dFBvaW50KHJlbmRlcmVyKCktPmxvY2FsVG9Db250YWluZXJQb2lu
dChGbG9hdFBvaW50KCksIHJvb3RMYXllci0+cmVuZGVyZXIoKSwgZmFsc2UsIGZhbHNlLCAwKSk7
CisgICAgICAgIG9mZnNldCA9IHJvdW5kZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLT5sb2NhbFRv
Q29udGFpbmVyUG9pbnQoRmxvYXRQb2ludCgpLCByb290TGF5ZXItPnJlbmRlcmVyKCkpKTsKICAg
ICAgICAgUmVuZGVyVmlldyogdmlldyA9IHJlbmRlcmVyKCktPnZpZXcoKTsKICAgICAgICAgQVNT
RVJUKHZpZXcpOwogICAgICAgICBpZiAodmlldyAmJiBjbGlwUmVjdHMuZml4ZWQoKSAmJiByb290
TGF5ZXItPnJlbmRlcmVyKCkgPT0gdmlldykgewpAQCAtNDE3MCw3ICs0MTcwLDcgQEAgTGF5b3V0
UmVjdCBSZW5kZXJMYXllcjo6Y2hpbGRyZW5DbGlwUmVjdAogICAgIENsaXBSZWN0IGJhY2tncm91
bmRSZWN0LCBmb3JlZ3JvdW5kUmVjdCwgb3V0bGluZVJlY3Q7CiAgICAgLy8gTmVlZCB0byB1c2Ug
dGVtcG9yYXJ5IGNsaXAgcmVjdHMsIGJlY2F1c2UgdGhlIHZhbHVlIG9mICdkb250Q2xpcFRvT3Zl
cmZsb3cnIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgcGFpbnRpbmcgcGF0aCAoPHJkYXI6Ly9w
cm9ibGVtLzExODQ0OTA5PikuCiAgICAgY2FsY3VsYXRlUmVjdHMoY2xpcHBpbmdSb290TGF5ZXIs
IDAsIFRlbXBvcmFyeUNsaXBSZWN0cywgcmVuZGVyVmlldy0+dW5zY2FsZWREb2N1bWVudFJlY3Qo
KSwgbGF5ZXJCb3VuZHMsIGJhY2tncm91bmRSZWN0LCBmb3JlZ3JvdW5kUmVjdCwgb3V0bGluZVJl
Y3QpOwotICAgIHJldHVybiBjbGlwcGluZ1Jvb3RMYXllci0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fi
c29sdXRlUXVhZChGbG9hdFF1YWQoZm9yZWdyb3VuZFJlY3QucmVjdCgpKSkuZW5jbG9zaW5nQm91
bmRpbmdCb3goKTsKKyAgICByZXR1cm4gY2xpcHBpbmdSb290TGF5ZXItPnJlbmRlcmVyKCktPmxv
Y2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGZvcmVncm91bmRSZWN0LnJlY3QoKSksIFNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogfQogCiBMYXlvdXRS
ZWN0IFJlbmRlckxheWVyOjpzZWxmQ2xpcFJlY3QoKSBjb25zdApAQCAtNDE4Miw3ICs0MTgyLDcg
QEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6c2VsZkNsaXBSZWN0KCkgYwogICAgIExheW91dFJl
Y3QgbGF5ZXJCb3VuZHM7CiAgICAgQ2xpcFJlY3QgYmFja2dyb3VuZFJlY3QsIGZvcmVncm91bmRS
ZWN0LCBvdXRsaW5lUmVjdDsKICAgICBjYWxjdWxhdGVSZWN0cyhjbGlwcGluZ1Jvb3RMYXllciwg
MCwgUGFpbnRpbmdDbGlwUmVjdHMsIHJlbmRlclZpZXctPmRvY3VtZW50UmVjdCgpLCBsYXllckJv
dW5kcywgYmFja2dyb3VuZFJlY3QsIGZvcmVncm91bmRSZWN0LCBvdXRsaW5lUmVjdCk7Ci0gICAg
cmV0dXJuIGNsaXBwaW5nUm9vdExheWVyLT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFk
KEZsb2F0UXVhZChiYWNrZ3JvdW5kUmVjdC5yZWN0KCkpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
OworICAgIHJldHVybiBjbGlwcGluZ1Jvb3RMYXllci0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29s
dXRlUXVhZChGbG9hdFF1YWQoYmFja2dyb3VuZFJlY3QucmVjdCgpKSwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9CiAKIExheW91dFJlY3QgUmVuZGVy
TGF5ZXI6OmxvY2FsQ2xpcFJlY3QoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xODY1LDcgKzE4NjUsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6Y29udGVu
dHNWaXNpYmxlCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEludFJlY3QgdmlzaWJsZUNv
bnRlbnRSZWN0KHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpKTsKLSAgICBGbG9hdFF1YWQgYWJz
b2x1dGVDb250ZW50UXVhZCA9IHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRS
ZWN0KGxvY2FsQ29udGVudFJlY3QpKTsKKyAgICBGbG9hdFF1YWQgYWJzb2x1dGVDb250ZW50UXVh
ZCA9IHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsQ29udGVu
dFJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgcmV0dXJuIGFic29sdXRlQ29u
dGVudFF1YWQuZW5jbG9zaW5nQm91bmRpbmdCb3goKS5pbnRlcnNlY3RzKHZpc2libGVDb250ZW50
UmVjdCk7CiB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYUNvbnRyb2xzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVkaWFDb250cm9scy5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjEzLDcgKzIxMyw3IEBAIEludFBvaW50IFJlbmRlck1lZGlhQ29udHJvbHM6OnZvbHVtZVNsaWQK
IAogICAgIGZsb2F0IHpvb21MZXZlbCA9IG11dGVCdXR0b25Cb3gtPnN0eWxlKCktPmVmZmVjdGl2
ZVpvb20oKTsKICAgICBpbnQgeSA9IHlPZmZzZXQgKiB6b29tTGV2ZWwgKyBtdXRlQnV0dG9uQm94
LT5waXhlbFNuYXBwZWRPZmZzZXRIZWlnaHQoKSAtIHNpemUuaGVpZ2h0KCk7Ci0gICAgRmxvYXRQ
b2ludCBhYnNQb2ludCA9IG11dGVCdXR0b25Cb3gtPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50
KG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldExlZnQoKSwgeSksIHRydWUsIHRydWUp
OworICAgIEZsb2F0UG9pbnQgYWJzUG9pbnQgPSBtdXRlQnV0dG9uQm94LT5sb2NhbFRvQWJzb2x1
dGUoRmxvYXRQb2ludChtdXRlQnV0dG9uQm94LT5waXhlbFNuYXBwZWRPZmZzZXRMZWZ0KCksIHkp
LCBJc0ZpeGVkIHwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAg
ICBpZiAoYWJzUG9pbnQueSgpIDwgMCkKICAgICAgICAgeSA9IG11dGVCdXR0b25Cb3gtPnBpeGVs
U25hcHBlZEhlaWdodCgpOwogICAgIHJldHVybiBJbnRQb2ludCh4T2Zmc2V0ICogem9vbUxldmVs
LCB5KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cAkocmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQgUmVuZGVy
TWVudUxpc3Q6OnNob3dQb3B1cCgpCiAKICAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtp
bmcgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQsIGJ1dCB1c2UKICAgICAvLyB0aGUgYWN0dWFsIHdp
ZHRoIG9mIHRoZSBlbGVtZW50IHRvIHNpemUgdGhlIHBvcHVwLgotICAgIEZsb2F0UG9pbnQgYWJz
VG9wTGVmdCA9IGxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKKyAg
ICBGbG9hdFBvaW50IGFic1RvcExlZnQgPSBsb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBV
c2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAgIEludFJlY3QgYWJz
Qm91bmRzID0gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKTsKICAg
ICBhYnNCb3VuZHMuc2V0TG9jYXRpb24ocm91bmRlZEludFBvaW50KGFic1RvcExlZnQpKTsKICAg
ICBIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gc2VsZWN0RWxlbWVudCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDEzMDc4NCkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjAyLDcgKzEyMDIsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6YWJzb2x1dGVGb2N1
c1JpbmdRdWFkCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAg
ICAgIEludFJlY3QgcmVjdCA9IHJlY3RzW2ldOwogICAgICAgICByZWN0Lm1vdmUoLWFic29sdXRl
UG9pbnQueCgpLCAtYWJzb2x1dGVQb2ludC55KCkpOwotICAgICAgICBxdWFkcy5hcHBlbmQobG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQocmVjdCkpKTsKKyAgICAgICAgcXVhZHMuYXBwZW5k
KGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKHJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcykpOwogICAgIH0KIH0KIApAQCAtMjAwNiwzMCArMjAwNiwyNSBAQCBMYXlvdXRSZWN0IFJl
bmRlck9iamVjdDo6dmlld1JlY3QoKSBjb25zCiAgICAgcmV0dXJuIHZpZXcoKS0+dmlld1JlY3Qo
KTsKIH0KIAotRmxvYXRQb2ludCBSZW5kZXJPYmplY3Q6OmxvY2FsVG9BYnNvbHV0ZShjb25zdCBG
bG9hdFBvaW50JiBsb2NhbFBvaW50LCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMpIGNv
bnN0CitGbG9hdFBvaW50IFJlbmRlck9iamVjdDo6bG9jYWxUb0Fic29sdXRlKGNvbnN0IEZsb2F0
UG9pbnQmIGxvY2FsUG9pbnQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSkgY29uc3QKIHsKICAg
ICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFu
c2Zvcm1EaXJlY3Rpb24sIGxvY2FsUG9pbnQpOwotICAgIE1hcExvY2FsVG9Db250YWluZXJGbGFn
cyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwOwotICAgIGlmIChmaXhlZCkKLSAgICAgICAgbW9k
ZSB8PSBJc0ZpeGVkOwotICAgIGlmICh1c2VUcmFuc2Zvcm1zKQotICAgICAgICBtb2RlIHw9IFVz
ZVRyYW5zZm9ybXM7Ci0gICAgbWFwTG9jYWxUb0NvbnRhaW5lcigwLCB0cmFuc2Zvcm1TdGF0ZSwg
bW9kZSk7CisgICAgbWFwTG9jYWxUb0NvbnRhaW5lcigwLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSB8
IEFwcGx5Q29udGFpbmVyRmxpcCk7CiAgICAgdHJhbnNmb3JtU3RhdGUuZmxhdHRlbigpOwogICAg
IAogICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUG9pbnQoKTsKIH0KIAotRmxv
YXRQb2ludCBSZW5kZXJPYmplY3Q6OmFic29sdXRlVG9Mb2NhbChjb25zdCBGbG9hdFBvaW50JiBj
b250YWluZXJQb2ludCwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zKSBjb25zdAorRmxv
YXRQb2ludCBSZW5kZXJPYmplY3Q6OmFic29sdXRlVG9Mb2NhbChjb25zdCBGbG9hdFBvaW50JiBj
b250YWluZXJQb2ludCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlKSBjb25zdAogewogICAgIFRy
YW5zZm9ybVN0YXRlIHRyYW5zZm9ybVN0YXRlKFRyYW5zZm9ybVN0YXRlOjpVbmFwcGx5SW52ZXJz
ZVRyYW5zZm9ybURpcmVjdGlvbiwgY29udGFpbmVyUG9pbnQpOwotICAgIG1hcEFic29sdXRlVG9M
b2NhbFBvaW50KGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgbWFw
QWJzb2x1dGVUb0xvY2FsUG9pbnQobW9kZSwgdHJhbnNmb3JtU3RhdGUpOwogICAgIHRyYW5zZm9y
bVN0YXRlLmZsYXR0ZW4oKTsKICAgICAKICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubGFzdFBs
YW5hclBvaW50KCk7CiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVy
KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRl
JiB0cmFuc2Zvcm1TdGF0ZSwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRy
YW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBj
b25zdAogewogICAgIGlmIChyZXBhaW50Q29udGFpbmVyID09IHRoaXMpCiAgICAgICAgIHJldHVy
bjsKQEAgLTIwNzUsMTEgKzIwNzAsMTEgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJPYmpl
Y3Q6OnB1c2hNYQogICAgIHJldHVybiBjb250YWluZXI7CiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0
OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKK3ZvaWQgUmVuZGVyT2JqZWN0
OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5z
Zm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKIHsKICAgICBSZW5kZXJPYmplY3QqIG8g
PSBwYXJlbnQoKTsKICAgICBpZiAobykgewotICAgICAgICBvLT5tYXBBYnNvbHV0ZVRvTG9jYWxQ
b2ludChmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOworICAgICAgICBvLT5t
YXBBYnNvbHV0ZVRvTG9jYWxQb2ludChtb2RlLCB0cmFuc2Zvcm1TdGF0ZSk7CiAgICAgICAgIGlm
IChvLT5oYXNPdmVyZmxvd0NsaXAoKSkKICAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUo
dG9SZW5kZXJCb3gobyktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpKTsKICAgICB9CkBAIC0yMTIz
LDMxICsyMTE4LDIxIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpnZXRUcmFuc2Zvcm1Gcm9tQ29udGEK
ICNlbmRpZgogfQogCi1GbG9hdFF1YWQgUmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVh
ZChjb25zdCBGbG9hdFF1YWQmIGxvY2FsUXVhZCwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCBmaXhlZCwg
Ym9vbCogd2FzRml4ZWQpIGNvbnN0CitGbG9hdFF1YWQgUmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29u
dGFpbmVyUXVhZChjb25zdCBGbG9hdFF1YWQmIGxvY2FsUXVhZCwgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3
YXNGaXhlZCkgY29uc3QKIHsKICAgICAvLyBUcmFjayB0aGUgcG9pbnQgYXQgdGhlIGNlbnRlciBv
ZiB0aGUgcXVhZCdzIGJvdW5kaW5nIGJveC4gQXMgbWFwTG9jYWxUb0NvbnRhaW5lcigpIGNhbGxz
IG9mZnNldEZyb21Db250YWluZXIoKSwKICAgICAvLyBpdCB3aWxsIHVzZSB0aGF0IHBvaW50IGFz
IHRoZSByZWZlcmVuY2UgcG9pbnQgdG8gZGVjaWRlIHdoaWNoIGNvbHVtbidzIHRyYW5zZm9ybSB0
byBhcHBseSBpbiBtdWx0aXBsZS1jb2x1bW4gYmxvY2tzLgogICAgIFRyYW5zZm9ybVN0YXRlIHRy
YW5zZm9ybVN0YXRlKFRyYW5zZm9ybVN0YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgbG9j
YWxRdWFkLmJvdW5kaW5nQm94KCkuY2VudGVyKCksIGxvY2FsUXVhZCk7Ci0gICAgTWFwTG9jYWxU
b0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBVc2VUcmFuc2Zvcm1z
OwotICAgIGlmIChmaXhlZCkKLSAgICAgICAgbW9kZSB8PSBJc0ZpeGVkOwotICAgIGlmIChzbmFw
T2Zmc2V0Rm9yVHJhbnNmb3JtcykKLSAgICAgICAgbW9kZSB8PSBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtczsKLSAgICBtYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9y
bVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CisgICAgbWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50
Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSB8IEFwcGx5Q29udGFpbmVyRmxpcCB8IFVz
ZVRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKICAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CiAg
ICAgCiAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLmxhc3RQbGFuYXJRdWFkKCk7CiB9CiAKLUZs
b2F0UG9pbnQgUmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUG9pbnQoY29uc3QgRmxvYXRQ
b2ludCYgbG9jYWxQb2ludCwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCBmaXhlZCwgYm9vbCogd2FzRml4
ZWQpIGNvbnN0CitGbG9hdFBvaW50IFJlbmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclBvaW50
KGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsUG9pbnQsIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQp
IGNvbnN0CiB7CiAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3JtU3Rh
dGU6OkFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uLCBsb2NhbFBvaW50KTsKLSAgICBNYXBMb2NhbFRv
Q29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFVzZVRyYW5zZm9ybXM7
Ci0gICAgaWYgKGZpeGVkKQotICAgICAgICBtb2RlIHw9IElzRml4ZWQ7Ci0gICAgaWYgKHNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zKQotICAgICAgICBtb2RlIHw9IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zOwotICAgIG1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3Jt
U3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICBtYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRD
b250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlIHwgQXBwbHlDb250YWluZXJGbGlwIHwgVXNl
VHJhbnNmb3Jtcywgd2FzRml4ZWQpOwogICAgIHRyYW5zZm9ybVN0YXRlLmZsYXR0ZW4oKTsKIAog
ICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUG9pbnQoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAt
MTEwLDEzICsxMTAsMTMgQEAgZW51bSBQbGFjZUdlbmVyYXRlZFJ1bkluRmxhZyB7CiAgICAgRG9O
b3RQbGFjZUdlbmVyYXRlZFJ1bkluCiB9OwogCi1lbnVtIE1hcExvY2FsVG9Db250YWluZXJNb2Rl
IHsKK2VudW0gTWFwQ29vcmRpbmF0ZXNNb2RlIHsKICAgICBJc0ZpeGVkID0gMSA8PCAwLAogICAg
IFVzZVRyYW5zZm9ybXMgPSAxIDw8IDEsCiAgICAgQXBwbHlDb250YWluZXJGbGlwID0gMSA8PCAy
LAogICAgIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gMSA8PCAzCiB9OwotdHlwZWRlZiB1bnNp
Z25lZCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3M7Cit0eXBlZGVmIHVuc2lnbmVkIE1hcENvb3Jk
aW5hdGVzRmxhZ3M7CiAKIGNvbnN0IGludCBjYXJldFdpZHRoID0gMTsKIApAQCAtNjk5LDE5ICs2
OTksMTkgQEAgcHVibGljOgogICAgIFJlbmRlckJsb2NrKiBjb250YWluaW5nQmxvY2soKSBjb25z
dDsKIAogICAgIC8vIENvbnZlcnQgdGhlIGdpdmVuIGxvY2FsIHBvaW50IHRvIGFic29sdXRlIGNv
b3JkaW5hdGVzCi0gICAgLy8gRklYTUU6IFRlbXBvcmFyeS4gSWYgdXNlVHJhbnNmb3JtcyBpcyB0
cnVlLCB0YWtlIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LiBFdmVudHVhbGx5IGxvY2FsVG9BYnNv
bHV0ZSgpIHdpbGwgYWx3YXlzIGJlIHRyYW5zZm9ybS1hd2FyZS4KLSAgICBGbG9hdFBvaW50IGxv
Y2FsVG9BYnNvbHV0ZShjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBvaW50ID0gRmxvYXRQb2ludCgp
LCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wgdXNlVHJhbnNmb3JtcyA9IGZhbHNlKSBjb25zdDsK
LSAgICBGbG9hdFBvaW50IGFic29sdXRlVG9Mb2NhbChjb25zdCBGbG9hdFBvaW50JiwgYm9vbCBm
aXhlZCA9IGZhbHNlLCBib29sIHVzZVRyYW5zZm9ybXMgPSBmYWxzZSkgY29uc3Q7CisgICAgLy8g
RklYTUU6IFRlbXBvcmFyeS4gSWYgVXNlVHJhbnNmb3JtcyBpcyB0cnVlLCB0YWtlIHRyYW5zZm9y
bXMgaW50byBhY2NvdW50LiBFdmVudHVhbGx5IGxvY2FsVG9BYnNvbHV0ZSgpIHdpbGwgYWx3YXlz
IGJlIHRyYW5zZm9ybS1hd2FyZS4KKyAgICBGbG9hdFBvaW50IGxvY2FsVG9BYnNvbHV0ZShjb25z
dCBGbG9hdFBvaW50JiBsb2NhbFBvaW50ID0gRmxvYXRQb2ludCgpLCBNYXBDb29yZGluYXRlc0Zs
YWdzIG1vZGUgPSAwKSBjb25zdDsKKyAgICBGbG9hdFBvaW50IGFic29sdXRlVG9Mb2NhbChjb25z
dCBGbG9hdFBvaW50JiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gMCkgY29uc3Q7CiAKICAg
ICAvLyBDb252ZXJ0IGEgbG9jYWwgcXVhZCB0byBhYnNvbHV0ZSBjb29yZGluYXRlcywgdGFraW5n
IHRyYW5zZm9ybXMgaW50byBhY2NvdW50LgotICAgIEZsb2F0UXVhZCBsb2NhbFRvQWJzb2x1dGVR
dWFkKGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwgYm9vbCBmaXhlZCA9IGZhbHNlLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0CisgICAgRmxvYXRRdWFkIGxvY2FsVG9BYnNvbHV0ZVF1YWQoY29uc3Qg
RmxvYXRRdWFkJiBxdWFkLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSAwLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbG9jYWxUb0NvbnRhaW5lclF1
YWQocXVhZCwgMCwgZmFsc2UsIGZpeGVkLCB3YXNGaXhlZCk7CisgICAgICAgIHJldHVybiBsb2Nh
bFRvQ29udGFpbmVyUXVhZChxdWFkLCAwLCBtb2RlLCB3YXNGaXhlZCk7CiAgICAgfQogCiAgICAg
Ly8gQ29udmVydCBhIGxvY2FsIHF1YWQgaW50byB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gb2YgY29u
dGFpbmVyLCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQuCi0gICAgRmxvYXRRdWFkIGxv
Y2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVhZCYsIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgc25hcE9mZnNldEZvclRyYW5zZm9ybXMgPSB0cnVl
LCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7Ci0gICAgRmxv
YXRQb2ludCBsb2NhbFRvQ29udGFpbmVyUG9pbnQoY29uc3QgRmxvYXRQb2ludCYsIFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgc25hcE9mZnNldEZvclRyYW5z
Zm9ybXMgPSB0cnVlLCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29u
c3Q7CisgICAgRmxvYXRRdWFkIGxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVhZCYs
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIE1hcENvb3JkaW5hdGVz
RmxhZ3MgbW9kZSA9IDAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CisgICAgRmxvYXRQb2lu
dCBsb2NhbFRvQ29udGFpbmVyUG9pbnQoY29uc3QgRmxvYXRQb2ludCYsIFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IDAs
IGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CiAKICAgICAvLyBSZXR1cm4gdGhlIG9mZnNldCBm
cm9tIHRoZSBjb250YWluZXIoKSByZW5kZXJlciAoZXhjbHVkaW5nIHRyYW5zZm9ybXMpLiBJbiBt
dWx0aS1jb2x1bW4gbGF5b3V0LAogICAgIC8vIGRpZmZlcmVudCBvZmZzZXRzIGFwcGx5IGF0IGRp
ZmZlcmVudCBwb2ludHMsIHNvIHJldHVybiB0aGUgb2Zmc2V0IHRoYXQgYXBwbGllcyB0byB0aGUg
Z2l2ZW4gcG9pbnQuCkBAIC05MDksOCArOTA5LDggQEAgcHVibGljOgogCiAgICAgLy8gTWFwIHBv
aW50cyBhbmQgcXVhZHMgdGhyb3VnaCBlbGVtZW50cywgcG90ZW50aWFsbHkgdmlhIDNkIHRyYW5z
Zm9ybXMuIFlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0byBjYWxsIHRoZXNlIGRpcmVjdGx5OyB1c2UK
ICAgICAvLyBsb2NhbFRvQWJzb2x1dGUvYWJzb2x1dGVUb0xvY2FsIG1ldGhvZHMgaW5zdGVhZC4K
LSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcExvY2FsVG9Db250YWlu
ZXJGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0OwotICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVk
LCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CisgICAgdmlydHVh
bCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBB
cHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CisgICAgdmlydHVh
bCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwg
VHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKIAogICAgIC8vIFB1c2hlcyBzdGF0ZSBvbnRvIFJlbmRl
ckdlb21ldHJ5TWFwIGFib3V0IGhvdyB0byBtYXAgY29vcmRpbmF0ZXMgZnJvbSB0aGlzIHJlbmRl
cmVyIHRvIGl0cyBjb250YWluZXIsIG9yIGFuY2VzdG9yVG9TdG9wQXQgKHdoaWNoZXZlciBpcyBl
bmNvdW50ZXJlZCBmaXJzdCkuCiAgICAgLy8gUmV0dXJucyB0aGUgcmVuZGVyZXIgd2hpY2ggd2Fz
IG1hcHBlZCB0byAoY29udGFpbmVyIG9yIGFuY2VzdG9yVG9TdG9wQXQpLgpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkocmV2aXNpb24gMTMwNzg0KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NjUsMTIgKzM2NSwxMiBAQCB2b2lkIFJlbmRlclRleHQ6OmFic29sdXRlUmVjdHNGb3JSYW5nZShW
CiAgICAgICAgICAgICAgICAgICAgIHIuc2V0WChzZWxlY3Rpb25SZWN0LngoKSk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVjdHMuYXBwZW5kKGxvY2Fs
VG9BYnNvbHV0ZVF1YWQociwgZmFsc2UsIHdhc0ZpeGVkKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
KTsKKyAgICAgICAgICAgIHJlY3RzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHIsIFNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CiAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBjb2RlIGlzIHdyb25n
LiBJdCdzIGNvbnZlcnRpbmcgbG9jYWwgdG8gYWJzb2x1dGUgdHdpY2UuIGh0dHA6Ly93ZWJraXQu
b3JnL2IvNjU3MjIKICAgICAgICAgICAgIEZsb2F0UmVjdCByZWN0ID0gbG9jYWxRdWFkRm9yVGV4
dEJveChib3gsIHN0YXJ0LCBlbmQsIHVzZVNlbGVjdGlvbkhlaWdodCk7CiAgICAgICAgICAgICBp
ZiAoIXJlY3QuaXNaZXJvKCkpCi0gICAgICAgICAgICAgICAgcmVjdHMuYXBwZW5kKGxvY2FsVG9B
YnNvbHV0ZVF1YWQocmVjdCwgZmFsc2UsIHdhc0ZpeGVkKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
KTsKKyAgICAgICAgICAgICAgICByZWN0cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyZWN0
LCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpLmVuY2xvc2luZ0JvdW5kaW5nQm94
KCkpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtNDEzLDcgKzQxMyw3IEBAIHZvaWQgUmVuZGVy
VGV4dDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmwKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICBib3VuZGFyaWVzLnNldEhlaWdodChlbGxpcHNpc1JlY3QubWF4WSgpIC0gYm91bmRh
cmllcy55KCkpOwogICAgICAgICB9Ci0gICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1
dGVRdWFkKGJvdW5kYXJpZXMsIGZhbHNlLCB3YXNGaXhlZCkpOworICAgICAgICBxdWFkcy5hcHBl
bmQobG9jYWxUb0Fic29sdXRlUXVhZChib3VuZGFyaWVzLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgd2FzRml4ZWQpKTsKICAgICB9CiB9CiAgICAgCkBAIC00NDgsMTEgKzQ0OCwxMSBAQCB2b2lk
IFJlbmRlclRleHQ6OmFic29sdXRlUXVhZHNGb3JSYW5nZShWCiAgICAgICAgICAgICAgICAgICAg
IHIuc2V0WChzZWxlY3Rpb25SZWN0LngoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQociwgZmFs
c2UsIHdhc0ZpeGVkKSk7CisgICAgICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRl
UXVhZChyLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpKTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIEZsb2F0UmVjdCByZWN0ID0gbG9jYWxRdWFkRm9yVGV4dEJveChi
b3gsIHN0YXJ0LCBlbmQsIHVzZVNlbGVjdGlvbkhlaWdodCk7CiAgICAgICAgICAgICBpZiAoIXJl
Y3QuaXNaZXJvKCkpCi0gICAgICAgICAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0
ZVF1YWQocmVjdCwgZmFsc2UsIHdhc0ZpeGVkKSk7CisgICAgICAgICAgICAgICAgcXVhZHMuYXBw
ZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQocmVjdCwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdh
c0ZpeGVkKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5jcHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyMyw3ICs1MjMs
NyBAQCBTdHJpbmcgUmVuZGVyVGhlbWU6OmZvcm1hdE1lZGlhQ29udHJvbHNSCiBJbnRQb2ludCBS
ZW5kZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVyQm94KiBt
dXRlQnV0dG9uQm94LCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewogICAgIGludCB5ID0g
LXNpemUuaGVpZ2h0KCk7Ci0gICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVCdXR0b25Cb3gt
PmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9m
ZnNldExlZnQoKSwgeSksIHRydWUsIHRydWUpOworICAgIEZsb2F0UG9pbnQgYWJzUG9pbnQgPSBt
dXRlQnV0dG9uQm94LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludChtdXRlQnV0dG9uQm94LT5w
aXhlbFNuYXBwZWRPZmZzZXRMZWZ0KCksIHkpLCBJc0ZpeGVkIHwgVXNlVHJhbnNmb3JtcyB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICBpZiAoYWJzUG9pbnQueSgpIDwgMCkKICAgICAg
ICAgeSA9IG11dGVCdXR0b25Cb3gtPmhlaWdodCgpOwogICAgIHJldHVybiBJbnRQb2ludCgwLCB5
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHJldmlzaW9u
IDEzMDc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQgUmVuZGVyVmlldzo6bGF5b3V0KCkK
ICAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKLXZvaWQgUmVuZGVyVmlldzo6bWFwTG9j
YWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBt
b2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyVmlldzo6bWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCog
d2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgLy8gSWYgYSBjb250YWluZXIgd2FzIHNwZWNpZmllZCwg
YW5kIHdhcyBub3QgMCBvciB0aGUgUmVuZGVyVmlldywKICAgICAvLyB0aGVuIHdlIHNob3VsZCBo
YXZlIGZvdW5kIGl0IGJ5IG5vdy4KQEAgLTIxNCwxMiArMjE0LDEyIEBAIGNvbnN0IFJlbmRlck9i
amVjdCogUmVuZGVyVmlldzo6cHVzaE1hcHAKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZW5k
ZXJWaWV3OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5z
Zm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKK3ZvaWQgUmVuZGVy
Vmlldzo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBU
cmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7Ci0gICAgaWYgKGZpeGVkICYm
IG1fZnJhbWVWaWV3KQorICAgIGlmIChtb2RlICYgSXNGaXhlZCAmJiBtX2ZyYW1lVmlldykKICAg
ICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShtX2ZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0Rm9yRml4
ZWRQb3NpdGlvbigpKTsKIAotICAgIGlmICh1c2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5z
Zm9ybUZyb21Db250YWluZXIoMCkpIHsKKyAgICBpZiAobW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYg
c2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcigwKSkgewogICAgICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKDAsIExheW91
dFNpemUoKSwgdCk7CiAgICAgICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKHQpOwpA
QCAtNDcyLDcgKzQ3Miw3IEBAIEludFJlY3QgUmVuZGVyVmlldzo6c2VsZWN0aW9uQm91bmRzKGJv
b2wKICAgICAgICAgLy8gUmVuZGVyU2VsZWN0aW9uSW5mbzo6cmVjdCgpIGlzIGluIHRoZSBjb29y
ZGluYXRlcyBvZiB0aGUgcmVwYWludENvbnRhaW5lciwgc28gbWFwIHRvIHBhZ2UgY29vcmRpbmF0
ZXMuCiAgICAgICAgIExheW91dFJlY3QgY3VyclJlY3QgPSBpbmZvLT5yZWN0KCk7CiAgICAgICAg
IGlmIChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gaW5mby0+cmVw
YWludENvbnRhaW5lcigpKSB7Ci0gICAgICAgICAgICBGbG9hdFF1YWQgYWJzUXVhZCA9IHJlcGFp
bnRDb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGN1cnJSZWN0KSk7Cisg
ICAgICAgICAgICBGbG9hdFF1YWQgYWJzUXVhZCA9IHJlcGFpbnRDb250YWluZXItPmxvY2FsVG9B
YnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGN1cnJSZWN0KSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMp
OwogICAgICAgICAgICAgY3VyclJlY3QgPSBhYnNRdWFkLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7
IAogICAgICAgICB9CiAgICAgICAgIHNlbFJlY3QudW5pdGUoY3VyclJlY3QpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCShyZXZpc2lvbiAxMzA3ODQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYs
OSArMjA2LDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUmVuZGVyQ291bnRlcnMoKSB7IHJldHVy
biBtX3JlbmRlckNvdW50ZXJDb3VudDsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lk
IG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFw
cGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhl
ZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFp
bmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2Vv
bWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVU
b0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0
ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBD
b29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAgICAgdmlydHVh
bCBib29sIHJlcXVpcmVzQ29sdW1ucyhpbnQgZGVzaXJlZENvbHVtbkNvdW50KSBjb25zdCBPVkVS
UklERTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJX
aWRnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJX
aWRnZXQuY3BwCShyZXZpc2lvbiAxMzA3ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5LDcgKzE2OSw3IEBAIGJvb2wg
UmVuZGVyV2lkZ2V0Ojp1cGRhdGVXaWRnZXRHZW9tZXRyeSgKICAgICBpZiAoIW1fd2lkZ2V0LT50
cmFuc2Zvcm1zQWZmZWN0RnJhbWVSZWN0KCkpCiAgICAgICAgIHJldHVybiBzZXRXaWRnZXRHZW9t
ZXRyeShhYnNvbHV0ZUNvbnRlbnRCb3goKSk7CiAKLSAgICBMYXlvdXRSZWN0IGFic29sdXRlQ29u
dGVudEJveChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChjb250ZW50Qm94KSkuYm91bmRp
bmdCb3goKSk7CisgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUNvbnRlbnRCb3gobG9jYWxUb0Fic29s
dXRlUXVhZChGbG9hdFF1YWQoY29udGVudEJveCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5i
b3VuZGluZ0JveCgpKTsKICAgICBpZiAobV93aWRnZXQtPmlzRnJhbWVWaWV3KCkpIHsKICAgICAg
ICAgY29udGVudEJveC5zZXRMb2NhdGlvbihhYnNvbHV0ZUNvbnRlbnRCb3gubG9jYXRpb24oKSk7
CiAgICAgICAgIHJldHVybiBzZXRXaWRnZXRHZW9tZXRyeShjb250ZW50Qm94KTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWdu
T2JqZWN0LmNwcAkocmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkyLDcg
KzE5Miw3IEBAIGJvb2wgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bm9kZUF0UG9pbnQKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9jYWxU
b0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2Rl
LCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9k
ZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9j
YWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9k
ZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3Qu
aAkocmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdGb3JlaWduT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYs
IEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWlu
ZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzU1ZHRm9yZWlnbk9iamVjdCgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwg
TWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBi
b29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVu
ZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCkgeyBtX25lZWRz
VHJhbnNmb3JtVXBkYXRlID0gdHJ1ZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCShyZXZpc2lvbiAxMzA3ODQpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBSZW5kZXJTVkdJbmxpbmU6OmNvbXB1dGVGbG9h
dFJlY3RGbwogICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50
KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQg
UmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFw
TG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBS
ZW5kZXJTVkdJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBD
b29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIFNWR1Jl
bmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwg
dHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQp
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lu
bGluZS5oCShyZXZpc2lvbiAxMzA3ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0lubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWlu
dChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9
IGZhbHNlKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlw
IHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNv
bnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1
YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAkocmV2aXNpb24g
MTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6Y29tcHV0ZUZsb2F0UgogICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVG
bG9hdFJlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBm
aXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWlu
ZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3Rh
dGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCog
d2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRvQ29u
dGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9y
bVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3
YXNGaXhlZCkgY29uc3QKIHsKICAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFp
bmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9m
ZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKIH0KQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBS
ZW5kZXJTVkdNb2RlbE9iamVjdDo6YWJzb2x1dGVSZWN0cwogCiB2b2lkIFJlbmRlclNWR01vZGVs
T2JqZWN0OjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCogd2Fz
Rml4ZWQpIGNvbnN0CiB7Ci0gICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoc3Ry
b2tlQm91bmRpbmdCb3goKSwgZmFsc2UsIHdhc0ZpeGVkKSk7CisgICAgcXVhZHMuYXBwZW5kKGxv
Y2FsVG9BYnNvbHV0ZVF1YWQoc3Ryb2tlQm91bmRpbmdCb3goKSwgMCAvKiBtb2RlICovLCB3YXNG
aXhlZCkpOwogfQogCiB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
TW9kZWxPYmplY3QuaAkocmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1
OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50
UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2Fz
Rml4ZWQpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBN
YXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFn
cyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJv
b2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5k
ZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29u
c3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCShyZXZp
c2lvbiAxMzA3ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBSZW5kZXJTVkdS
b290Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUgogLy8gVGhpcyBtZXRob2QgZXhwZWN0cyBsb2NhbCBD
U1MgYm94IGNvb3JkaW5hdGVzLgogLy8gQ2FsbGVycyB3aXRoIGxvY2FsIFNWRyB2aWV3cG9ydCBj
b29yZGluYXRlcyBzaG91bGQgZmlyc3QgYXBwbHkgdGhlIGxvY2FsVG9Cb3JkZXJCb3hUcmFuc2Zv
cm0KIC8vIHRvIGNvbnZlcnQgZnJvbSBTVkcgdmlld3BvcnQgY29vcmRpbmF0ZXMgdG8gbG9jYWwg
Q1NTIGJveCBjb29yZGluYXRlcy4KLXZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlLCBib29s
KiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5l
cihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4
ZWQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1vZGUgJiB+SXNGaXhlZCk7IC8vIFdlIHNob3VsZCBo
YXZlIG5vIGZpeGVkIGNvbnRlbnQgaW4gdGhlIFNWRyByZW5kZXJpbmcgdHJlZS4KICAgICBBU1NF
UlQobW9kZSAmIFVzZVRyYW5zZm9ybXMpOyAvLyBtYXBwaW5nIGEgcG9pbnQgdGhyb3VnaCBTVkcg
dy9vIHJlc3BlY3RpbmcgdHJhc25mb3JtcyBpcyB1c2VsZXNzLgpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgJKHJldmlzaW9uIDEzMDc4NCkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC05NSw3ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNs
aXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxv
YXRSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklERTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5l
ckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29u
dGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDAp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFw
cGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9T
dG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFs
IGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkocmV2
aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgUmVuZGVyU1ZH
VGV4dDo6Y29tcHV0ZUZsb2F0UmVjdEZvclIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRl
RmxvYXRSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwg
Zml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRy
YW5zZm9ybVN0YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4
ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5z
Zm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25z
dAogewogICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVw
YWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3Jtcywgd2FzRml4ZWQpOwogfQpAQCAtNDg0LDcgKzQ4NCw3IEBAIFZpc2libGVQb3NpdGlvbiBS
ZW5kZXJTVkdUZXh0Ojpwb3NpdGlvbkYKIAogdm9pZCBSZW5kZXJTVkdUZXh0OjphYnNvbHV0ZVF1
YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7Ci0g
ICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoc3Ryb2tlQm91bmRpbmdCb3goKSwg
ZmFsc2UsIHdhc0ZpeGVkKSk7CisgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQo
c3Ryb2tlQm91bmRpbmdCb3goKSwgMCAvKiBtb2RlICovLCB3YXNGaXhlZCkpOwogfQogCiB2b2lk
IFJlbmRlclNWR1RleHQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQ
b2ludCYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Rl
eHQuaAkocmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdUZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2Up
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3Qm
LCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lk
IG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFw
cGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhl
ZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFp
bmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2Vv
bWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVu
ZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApOwogICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QqKSBPVkVSUklERTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAko
cmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJTdXBwb3J0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsNyBAQCB2b2lkIFNWR1Jl
bmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluCiAgICAgaWYgKHBhcmVudC0+aXNTVkdSb290
KCkpCiAgICAgICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKHRvUmVuZGVyU1ZHUm9v
dChwYXJlbnQpLT5sb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtKCkpOwogCi0gICAgTWFwTG9jYWxU
b0NvbnRhaW5lckZsYWdzIG1vZGUgPSBVc2VUcmFuc2Zvcm1zOworICAgIE1hcENvb3JkaW5hdGVz
RmxhZ3MgbW9kZSA9IFVzZVRyYW5zZm9ybXM7CiAgICAgaWYgKHNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKQogICAgICAgICBtb2RlIHw9IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zOwogICAgIHBhcmVu
dC0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwg
bW9kZSwgd2FzRml4ZWQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAko
cmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NTEsNyArNDUxLDcgQEAgQWZmaW5lVHJhbnNmb3JtIFNWR1NW
R0VsZW1lbnQ6OmxvY2FsQ29vcgogCiAgICAgICAgICAgICAvLyBUcmFuc2xhdGUgaW4gb3VyIENT
UyBwYXJlbnQgY29vcmRpbmF0ZSBzcGFjZQogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9l
c24ndCB3b3JrIGNvcnJlY3RseSB3aXRoIENTUyB0cmFuc2Zvcm1zLgotICAgICAgICAgICAgbG9j
YXRpb24gPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKGxvY2F0aW9uLCBmYWxzZSwgdHJ1ZSk7
CisgICAgICAgICAgICBsb2NhdGlvbiA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUobG9jYXRp
b24sIFVzZVRyYW5zZm9ybXMpOwogICAgICAgICAgICAgbG9jYXRpb24uc2NhbGUoem9vbUZhY3Rv
ciwgem9vbUZhY3Rvcik7CiAKICAgICAgICAgICAgIC8vIEJlIGNhcmVmdWwgaGVyZSEgbG9jYWxU
b0JvcmRlckJveFRyYW5zZm9ybSgpIGluY2x1ZGVkIHRoZSB4L3kgb2Zmc2V0IGNvbWluZyBmcm9t
IHRoZSB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKCksCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1
LDcgQEAgV2ViUmVuZGVyT2JqZWN0OjpXZWJSZW5kZXJPYmplY3QoUmVuZGVyTwogICAgIH0KIAog
ICAgIC8vIEZJWE1FOiBicm9rZW4gd2l0aCB0cmFuc2Zvcm1zCi0gICAgbV9hYnNvbHV0ZVBvc2l0
aW9uID0gZmxvb3JlZEludFBvaW50KHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2lu
dCgpKSk7CisgICAgbV9hYnNvbHV0ZVBvc2l0aW9uID0gZmxvb3JlZEludFBvaW50KHJlbmRlcmVy
LT5sb2NhbFRvQWJzb2x1dGUoKSk7CiAKICAgICBpZiAocmVuZGVyZXItPmlzQm94KCkpCiAgICAg
ICAgIG1fZnJhbWVSZWN0ID0gdG9SZW5kZXJCb3gocmVuZGVyZXIpLT5waXhlbFNuYXBwZWRGcmFt
ZVJlY3QoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJG
dWxsU2NyZWVuTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAkocmV2aXNpb24gMTMwNzg0
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBzdGF0aWMgSW50UmVj
dCBzY3JlZW5SZWN0T2ZDb250ZW50cyhFbGVtCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGlmIChlbGVtZW50LT5yZW5kZXJlcigpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCkt
Pmhhc0xheWVyKCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKS0+aXND
b21wb3NpdGVkKCkpIHsKICAgICAgICAgRmxvYXRRdWFkIGNvbnRlbnRzQm94ID0gc3RhdGljX2Nh
c3Q8RmxvYXRSZWN0PihlbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5iYWNr
aW5nKCktPmNvbnRlbnRzQm94KCkpOwotICAgICAgICBjb250ZW50c0JveCA9IGVsZW1lbnQtPnJl
bmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoY29udGVudHNCb3gpOworICAgICAgICBjb250
ZW50c0JveCA9IGVsZW1lbnQtPnJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoY29udGVu
dHNCb3gsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKICAgICAgICAgcmV0dXJuIGVsZW1lbnQt
PnJlbmRlcmVyKCktPnZpZXcoKS0+ZnJhbWVWaWV3KCktPmNvbnRlbnRzVG9TY3JlZW4oY29udGVu
dHNCb3guZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CiAgICAgfQogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GaW5kSW5QYWdlQ29vcmRpbmF0ZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZpbmRJblBhZ2VDb29yZGluYXRlcy5j
cHAJKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZpbmRJ
blBhZ2VDb29yZGluYXRlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDcgQEAgc3Rh
dGljIEZsb2F0UmVjdCB0b05vcm1hbGl6ZWRSZWN0KGNvbnN0CiAgICAgICAgIHNjcm9sbGVkT3Jp
Z2luID0gLUludFBvaW50KGNvbnRhaW5lci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOwogCiAg
ICAgRmxvYXRSZWN0IG92ZXJmbG93UmVjdChzY3JvbGxlZE9yaWdpbiwgY29udGFpbmVyLT5tYXhM
YXlvdXRPdmVyZmxvdygpKTsKLSAgICBGbG9hdFJlY3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5l
ci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQob3ZlcmZsb3dSZWN0KSwgZmFsc2UpLmVu
Y2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgRmxvYXRSZWN0IGNvbnRhaW5lclJlY3QgPSBjb250
YWluZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKG92ZXJmbG93UmVjdCksIFNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogCiAgICAgaWYgKGNv
bnRhaW5lclJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcAkocmV2aXNp
b24gMTMwNzg0KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hsaWdodC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0
VGFyZ2V0U3BhY2VRdWFkVG9Db21wCiAKICAgICAgICAgcG9pbnQgPSB0YXJnZXRSZW5kZXJlci0+
ZnJhbWUoKS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KHBvaW50KTsKICAgICAgICAgcG9pbnQg
PSBjb21wb3NpdGVkUmVuZGVyZXItPmZyYW1lKCktPnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhw
b2ludCk7Ci0gICAgICAgIEZsb2F0UG9pbnQgZmxvYXRQb2ludCA9IGNvbXBvc2l0ZWRSZW5kZXJl
ci0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIEZsb2F0UG9p
bnQgZmxvYXRQb2ludCA9IGNvbXBvc2l0ZWRSZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBvaW50
LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogCiAgICAgICAgIHN3
aXRjaCAoaSkgewogICAgICAgICBjYXNlIDA6IGNvbXBvc2l0ZWRTcGFjZVF1YWQuc2V0UDEoZmxv
YXRQb2ludCk7IGJyZWFrOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5w
dXRFdmVudENvbnZlcnNpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAkocmV2aXNpb24gMTMwNzg0KQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zOTksNyArMzk5LDcgQEAgc3RhdGljIGludCBnZXRXZWJJbnB1dE1v
ZGlmaWVycyhjb25zdCBVSQogCiBzdGF0aWMgSW50UG9pbnQgY29udmVydExvY2F0aW9uRm9yUmVu
ZGVyT2JqZWN0KGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0JiByZW5kZXJPYmplY3QpCiB7Ci0gICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludChy
ZW5kZXJPYmplY3QuYWJzb2x1dGVUb0xvY2FsKGxvY2F0aW9uLCBmYWxzZSwgdHJ1ZSkpOworICAg
IHJldHVybiByb3VuZGVkSW50UG9pbnQocmVuZGVyT2JqZWN0LmFic29sdXRlVG9Mb2NhbChsb2Nh
dGlvbiwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiB9CiAKIHN0
YXRpYyB2b2lkIHVwZGF0ZVdlYk1vdXNlRXZlbnRGcm9tV2ViQ29yZU1vdXNlRXZlbnQoY29uc3Qg
TW91c2VFdmVudCYgZXZlbnQsIGNvbnN0IFdpZGdldCYgd2lkZ2V0LCBjb25zdCBXZWJDb3JlOjpS
ZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgV2ViTW91c2VFdmVudCYgd2ViRXZlbnQpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRy
b2xsZXIubW0JKHJldmlzaW9uIDEzMDc4NCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcg
QEAgc3RhdGljIEludFJlY3Qgc2NyZWVuUmVjdE9mQ29udGVudHMoRWxlbQogICAgIEFTU0VSVChl
bGVtZW50KTsKICAgICBpZiAoZWxlbWVudC0+cmVuZGVyZXIoKSAmJiBlbGVtZW50LT5yZW5kZXJl
cigpLT5oYXNMYXllcigpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCkt
PmlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAgIEZsb2F0UXVhZCBjb250ZW50c0JveCA9IHN0YXRp
Y19jYXN0PEZsb2F0UmVjdD4oZWxlbWVudC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKS0+
YmFja2luZygpLT5jb250ZW50c0JveCgpKTsKLSAgICAgICAgY29udGVudHNCb3ggPSBlbGVtZW50
LT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKGNvbnRlbnRzQm94KTsKKyAgICAgICAg
Y29udGVudHNCb3ggPSBlbGVtZW50LT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKGNv
bnRlbnRzQm94LCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgICAgIHJldHVybiBlbGVt
ZW50LT5yZW5kZXJlcigpLT52aWV3KCktPmZyYW1lVmlldygpLT5jb250ZW50c1RvU2NyZWVuKGNv
bnRlbnRzQm94LmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpOwogICAgIH0KICAgICByZXR1cm4gZWxl
bWVudC0+c2NyZWVuUmVjdCgpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJS
ZW5kZXJOb2RlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UmVuZGVyTm9kZS5tbQkocmV2aXNpb24gMTMwNzg0KQorKysgU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJSZW5kZXJOb2RlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5OSw3IEBAIHN0
YXRpYyBXZWJSZW5kZXJOb2RlICpjb3B5UmVuZGVyTm9kZShSZW4KICAgICBGcmFtZSogZnJhbWUg
PSBmcmFtZVZpZXcgPyBmcmFtZVZpZXctPmZyYW1lKCkgOiAwOwogCiAgICAgLy8gRklYTUU6IGJy
b2tlbiB3aXRoIHRyYW5zZm9ybXMKLSAgICBGbG9hdFBvaW50IGFic1BvcyA9IG5vZGUtPmxvY2Fs
VG9BYnNvbHV0ZShGbG9hdFBvaW50KCkpOworICAgIEZsb2F0UG9pbnQgYWJzUG9zID0gbm9kZS0+
bG9jYWxUb0Fic29sdXRlKCk7CiAgICAgaW50IHggPSAwOwogICAgIGludCB5ID0gMDsKICAgICBp
bnQgd2lkdGggPSAwOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTMwNzg0KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMTAtMDggIExl
dmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTdWIgcGl4ZWwg
bGF5b3V0XSBGYXN0LXBhdGggaWZyYW1lIHNjcm9sbGluZyBjYW4gcGlja3MgdXAgYW4gZXh0cmEg
cGl4ZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4
NTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRW1pbCBBIEVrbHVuZC4KKworICAgICAgICBUZXN0
cyBzY3JvbGxpbmcgb2Ygc3ViLXBpeGVsIGxheWVycyBvbiBzdWItcGl4ZWwgcGxhdGZvcm1zIChD
aHJvbWl1bSkuCisKKyAgICAgICAgKiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNv
cHktb24tc2Nyb2xsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1
Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9yZXBhaW50L3JlcGFp
bnQtYWNyb3NzLXdyaXRpbmctbW9kZS1ib3VuZGFyeS1leHBlY3RlZC5wbmc6CisgICAgICAgIFRo
ZSByZXBhaW50IHJlY3Qgc2hyaW5rcyBzYWZlbHkgYnkgb25lIHBpeGVsLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFj
LWxpb24vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtc25vd2xlb3Bh
cmQvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vcXQvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4td2syL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luLXhwL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIv
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMi0xMC0wOSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFm
ZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIENocm9taXVtIGdhcmRlbmlu
Zy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29w
eS1vbi1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhl
bC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xs
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisuY29u
dGFpbmVyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgcGFkZGluZzogMTAuM3B4Owor
ICAgIHotaW5kZXg6IDE7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL3JlcGFpbnQvcmVz
b3VyY2VzL3JlcGFpbnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKworZnVuY3Rpb24gc2V0dXBJZnJhbWUoKSB7CisgIHZhciBzdWJEb2N1bWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50OworICBz
dWJEb2N1bWVudC5vcGVuKCd0ZXh0L2h0bWwnLCAncmVwbGFjZScpOworICBzdWJEb2N1bWVudC53
cml0ZSgiPCFET0NUWVBFIGh0bWw+XG48aHRtbD48Ym9keSBzdHlsZT1cImJhY2tncm91bmQtY29s
b3I6IHNpbHZlcjtoZWlnaHQ6IDEwMDBweDtcIj48L2JvZHk+IikKKyAgc3ViRG9jdW1lbnQuY2xv
c2UoKTsKK30KKworZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CisgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdpZnJhbWUnKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKKyAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lKCk7cnVuUmVwYWludFRlc3Qo
KSI+CisgIDxwPlRoZSBpZnJhbWUgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xs
aW5nLjwvcD4KKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICA8aWZyYW1lIGlkPSJpZnJh
bWUiICBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+CisgIDwv
ZGl2PgorICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5
LW9uLXNjcm9sbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24t
c2Nyb2xsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1MgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSA4MDB4NTIKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4
MjAKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyMAorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTV4MTkKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCAzMTU6ICJUaGUgaWZyYW1lIGJlbG93IHNob3VsZCByZW1haW4gZ3Jl
eSB3aGVuIHNjcm9sbGluZy4iCitsYXllciBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCisgIFJlbmRl
ckJsb2NrIChwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCisg
ICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMTAsMTApIHNpemUgMzA0eDIwNSBbYm9y
ZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyODV4
MTAxNgorICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMjg1eDIwMAorICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAyODV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSAyODV4MTAxNgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgMjY5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNzg0KQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAt
MzQ1MSw2ICszNDUxLDEwIEBAIHdlYmtpdC5vcmcvYi85MDIwNyBbIExpbnV4IERlYnVnIF0gZmFz
dC8KIHdlYmtpdC5vcmcvYi85MDIwNyBbIEFuZHJvaWQgXSBmYXN0L2Zvcm1zL3NlbGVjdC9zZWxl
Y3Qtc3RhdGUtcmVzdG9yZS5odG1sIFsgRmFpbHVyZSBQYXNzIFRpbWVvdXQgXQogd2Via2l0Lm9y
Zy9iLzkwMjA3IFsgV2luIFJlbGVhc2UgXSBmYXN0L2Zvcm1zL3NlbGVjdC9zZWxlY3Qtc3RhdGUt
cmVzdG9yZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAorIyBOZWVkIHJlYmFzZWxpbmUgYWZ0ZXIg
Ym90cyBjeWNsZS4KK3dlYmtpdC5vcmcvYi85ODU3MSBbIFdpbiBNYWMgXSBmYXN0L3N1Yi1waXhl
bC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQor
d2Via2l0Lm9yZy9iLzk4NTcxIFsgV2luIE1hYyBdIGZhc3QvcmVwYWludC9yZXBhaW50LWFjcm9z
cy13cml0aW5nLW1vZGUtYm91bmRhcnkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCisK
ICMgRmxha3kKIHdlYmtpdC5vcmcvYi85MDQzMCBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
cmVjZWl2ZS1yZXNwb25zZS1ldmVudC5odG1sIFsgRmFpbHVyZSBQYXNzIFRpbWVvdXQgXQogCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9UZXN0RXhwZWN0YXRpb25zCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1Rlc3RFeHBlY3RhdGlvbnMJ
KHJldmlzaW9uIDEzMDc4NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL1Rlc3RF
eHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsNyBAQCBmYXN0L3N1Yi1w
aXhlbC90YWJsZS1yb3dzLW5vLWdhcHMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWFj
Y3VtdWxhdGVzLXRvLWxheWVycy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zZWxlY3Rpb24vc2VsZWN0
aW9uLXJlY3QtaW4tc3ViLXBpeGVsLXRhYmxlLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NuYXAtbmVn
YXRpdmUtbG9jYXRpb24uaHRtbAorZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5
LW9uLXNjcm9sbC5odG1sCiBmYXN0L3N1Yi1waXhlbC96b29tZWQtaW1hZ2UtdGlsZXMuaHRtbAog
CiAjIFRoaXMgbWVkaWEgdGVzdCBhbHdheXMgZmFpbGVkIG9uIExpb24KSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9UZXN0RXhwZWN0YXRpb25z
CShyZXZpc2lvbiAxMzA3ODQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3Bh
cmQvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjE3LDYgKzIxNyw3IEBAIGZh
c3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWIt
cGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlv
bi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwv
c25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZy
YW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIAogIyBGcmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhp
bmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVjdGlvbgogIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDc4NCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAt
MTkyLDYgKzE5Miw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBm
YXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qv
c3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRt
bAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1w
aXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVs
L3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91
dC5odG1sLCBwYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13aXRoLWZyYW1lcy5odG1s
LCBhbmQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCShy
ZXZpc2lvbiAxMzA3ODQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNjkzLDYgKzY5Myw3IEBAIGZhc3Qvc3ViLXBpeGVsL3Rh
YmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0
ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVj
dC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1s
b2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Ny
b2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgTm8g
Q09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50cyBpcyBpbXBsZW1lbnRlZCB5ZXQuCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNp
b24gMTMwNzg0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlv
bnMJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsxMTUsNyBAQCBmYXN0L3N1Yi1waXhlbC90YWJs
ZS1yb3dzLW5vLWdhcHMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWFjY3VtdWxhdGVz
LXRvLWxheWVycy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zZWxlY3Rpb24vc2VsZWN0aW9uLXJlY3Qt
aW4tc3ViLXBpeGVsLXRhYmxlLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NuYXAtbmVnYXRpdmUtbG9j
YXRpb24uaHRtbAorZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9s
bC5odG1sCiBmYXN0L3N1Yi1waXhlbC96b29tZWQtaW1hZ2UtdGlsZXMuaHRtbAogCiAjIFNWRyBG
b250cyBhcmUgb25seSBzdXBwb3J0ZWQgd2hlbiB1c2luZyBRUmF3Rm9udCwgd2hpY2ggaXMgbm90
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9u
IDEzMDc4NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMJKHdv
cmtpbmcgY29weSkKQEAgLTMyMyw2ICszMjMsNyBAQCBmYXN0L3N1Yi1waXhlbC90YWJsZS1yb3dz
LW5vLWdhcHMuaHRtbAogZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWFjY3VtdWxhdGVzLXRvLWxh
eWVycy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zZWxlY3Rpb24vc2VsZWN0aW9uLXJlY3QtaW4tc3Vi
LXBpeGVsLXRhYmxlLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NuYXAtbmVnYXRpdmUtbG9jYXRpb24u
aHRtbAorZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1s
CiBmYXN0L3N1Yi1waXhlbC96b29tZWQtaW1hZ2UtdGlsZXMuaHRtbAogCiAjIFVTRShWOCkKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi13azIvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4td2syL1Rlc3RFeHBlY3RhdGlvbnMJKHJl
dmlzaW9uIDEzMDc4NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi13azIvVGVzdEV4cGVj
dGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtOTU0LDYgKzk1NCw3IEBAIGZhc3Qvc3ViLXBpeGVs
L3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11
bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24t
cmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2
ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24t
c2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMg
SGlEUEkgdGVzdHMgcmVxdWlyZSB0ZXN0IGluZnJhc3RydWN0dXJlIGVuaGFuY2VtZW50cwpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luLXhwL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luLXhwL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlz
aW9uIDEzMDc4NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi14cC9UZXN0RXhwZWN0YXRp
b25zCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxl
LXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMt
dG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1p
bi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2Nh
dGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xs
Lmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgUkVHUkVT
U0lPTiAocjgzOTI4IG9yIGJlZm9yZSk6IFNvbWUgdGVzdHMgZmFpbGluZyBhc3NlcnRpb25zIGlu
IE1hcmtTdGFjazo6aW50ZXJuYWxBcHBlbmQgLyBNYXJrU3RhY2s6OmRyYWluCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMwNzg0KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29w
eSkKQEAgLTE3NTksNiArMTc1OSw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fw
cy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0
bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwt
dGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitm
YXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qv
c3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgTm8gQ09SUyBzdXBwb3J0IGZv
ciBtZWRpYSBlbGVtZW50cyBpcyBpbXBsZW1lbnRlZCB5ZXQuCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMDc4NCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtp
bmcgY29weSkKQEAgLTIyODQsNiArMjI4NCw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mt
bm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5
ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWIt
cGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5o
dG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwK
IAogIyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRzIGlzIGltcGxlbWVudGVkIHll
dC4KIGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lv
biAxMzA3ODQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwko
d29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJv
d3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8t
bGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1z
dWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlv
bi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0
bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgW1dLMl1bV1RS
XSBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXRleHQtbmVzdGVkLXRyYW5zZm9ybXMuaHRtbCBmYWls
cwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9yZXBhaW50
L3JlcGFpbnQtYWNyb3NzLXdyaXRpbmctbW9kZS1ib3VuZGFyeS1leHBlY3RlZC5wbmcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1p
bWUtdHlwZSA9IGltYWdlL3BuZwoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlB
QUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTROemRpTWpZNApORFJoT1dGaE16RmpaV0l6
TldJNFpUUTJPR1UwWWpVMlpCbmw5dEVBQUNBQVNVUkJWSGljN2QxWmpHUFpmZWY1UTE3dWpJVms3
RnZHCkhwbXhaR1ZHVmxabHFWU2xVcFhra3Fva0x5TnJ1c1orR0Q5ME45Q3cwY0I0TUQwVzRFRVBo
T2x1ak5BdG9ORXpENE4rYUFNRzNMRHMKVnN2ZHNvU1NMTXNxbDFWTFpsYmxucEdac1RISTJMZ0V0
K0JsY0x1ODgzQVZMR1pzdVoxTU1zanZCL1ZBM3JpOC9KK3NZTVF2empuMwpITk03Nzd3akFBQUFJ
SSs1MmdVQUFBRFVHd0lXQUFDQVpBUXNBQUFBeVFoWUFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQUFn
QUFrSXlBCkJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFKSVJzQUFBQUNRallB
RUFBRWhHd0FJQUFKQ01nQVVBQUNBWkFRc0EKQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0Vi
QUFBQUFrSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQQpaQVFzQUFBQXlR
aFlBQUFBa2hHd0FBQUFKQ05nQVFBQVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dR
RUxBQUFBTWtJCldBQUFBSklSc0FBQUFDUWpZQUVBQUVoR3dBSUFBSkNNZ0FVQUFDQVpBUXNBQUVB
eUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUEKQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFB
Z0dRRUxBQUJBTWt1MUN6aFlQcCt2ZGdrQWdBWmxzOW1xWFFLT3ZSb05XRUlJdnJ1Qgp4OGZuQjNo
Yy9JRVBLUmdpQkFBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdBQWdHUUVMQUFBQU1rSVdBQUFBSklS
c0FBQUFDUWpZQUVBCkFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURK
Q0ZnQUFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1EKaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNB
WkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBSkNOZ0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQgpDd0FB
UURKTHRRc0FnSG94dC9qNHIyMXFldEozVDZjZi83V1RvdzkxV3QwM0VKQ25YZ0xXb3JTUC9jTG1a
ci9QNTdEWjlwd1YzTnJxCjhYZ3Npdkw0Yi9RUTFHeDJibTF0b0sydG83WFZiREtWajVkMHZmTHBn
VmEzdHR4MnU3ZWlPYUZFd21xeCtKNzg1eHBrZVpMZkVLUDgKaGdDQVk0TWh3dnRzeE9NM0FvSHRi
RllJb2V2NmpVQWdYeXdLSVhaeXVRL3UzbDNkMmlxZmVXZHRMWnhNU25uVHJlM3RlK3Zyb1VUaQo0
c0xDUi9QekRwdk43WEJzeHVNL3Yza3pFSW1zYlcydGJXMTlQRC8vNGIxN3VxNGZjWjNnMXRZblMw
dVZSOWJpOFkvdTNkTktKZU5wCkxKMHVhSnFVbWdFQXdCSHFwUWRMQnExVXVySzgzTzN4ckc1dFJW
T3BmTEVZVHFWeWhjTDUwZEdGVU1qWDFCUkxwM2Z5ZWVQa1NDb1YKU2FVOGJyZk44cVQvaHBsYzdu
b2c4TVdwcVJkR1IwMjczVlRKVENhMXM5UHFkaHRQZC9KNXhXd3U2YnF5ZThKT1BoK01SaXV2azg1
bQo3UmJMdmZYMThwR0VxanBzdHNYTlRlUHA3YlUxcTZKOCtmUnB1OVg2aERVREFJQWpFTEIrUmRm
MXk0dUwwd01EZ3gwZGtWUnFZWFB6Cnd2aTRNU29YVDZkajZmVHIwOU9oWkhJdEZqTmkwS1RFOXph
WjdGWnJlMHRMNWJHaXBqbXMxbGFYeTNocVVSU3YyNjJZUCt0eGROcHMKSTExZGxTK0pwZE10VG1m
bHdYUTJhektaeWtlTUIwOTdsTE1XeEZWMUtSUmFpVVMrY2VGQ3RXc0JucFEvRXVuemVxMzcvcFpi
aThVNgpXMXIySHo5MjZyNkJhRXdNRVFvaGhLN3I2N0hZWkYvZllFZUhFS0tqcFNXVnlhekhZa0tJ
ZERhYnlHUmVuWnkwS0VxdjF4dE9Kc09wCmxOeDNMMCt0S21yYWxlVmxZeFF2azhzMU81MUh2OUNp
S01iSkZrV3hLTXFab2FIUjdtNkxvcGpONW9zTEM2bWRuY24rL2xPOXZjWVIKNDV4R1NGZENpUGZu
NWhZMk54OStQRFNkelM1c2JyNC9OL2Y5ano1NnFvVUJqeXFTU2wxWlhsNkx4NDJudDRMQlFyRW9o
RkN6MlYvZQp2VnY1NDJnK0dvMm9hbldxZkFKMTMwQTBMUDR5RUVJSWs4blUxOVltaE1qa2NwbGNU
Z2h4ZG5oWU1abWlxWlF1UkxQREVkdmVOczRjCjZ1eGMyTmhvYjI2dTdFeDZjb1ZpOFhZd21DMFVF
cG5NdmZYMTZZR0JjQ3JWNy9NZGVISThuUzdQWkxkYkxIOC9OOWZWMmpyWjMrL2MKblppL3NMbTVI
byszTlRlNzdIWWhoRWluYndZQ0ozdDc5L1I0MWJHM1ptZi82OGNmUC96NUg5eTdWeXFWa3BuTTB5
c0plQXlGWXZIaQp3a0tmenhkUHA5UFpiS0ZZakt1cUVHSjZZTUFmaVhRME42L0ZZdkhkekJGSnBZ
TEo1QnZINm1hSXVtOGdHaGtCNno0V1JTbnB1aERDCkpFUkoxd3VhOWc5MzdueHVZc0t4TzJrcG9h
cHFOcHN2Rkp4R2RwSEJaREpaTFphcGdZSHlrWEF5dWIyelkzU25HY3dtVTdrL1pqa2MKdGx1dFJu
Z3ltODB2am8xOVBEOC8xdE5qVlJRaFJEcWJ2UjBNdmp3eDBiSTd2R2pNZkcrb2VWZldSK3lvZS9P
NTU0cWE5djFIeVdUQQpNM0RWNzUvdTd4L3E3SXlrVXY1dytJV3hNZU40UWxVenVkenJNek5yc1Zn
a2xUbzdOQ1NFRUY1dkZVdDlQSFhmUURReUF0WjliQlpMCloydHIrV211VUJCQ3REVTF1UjBPNDBn
Z0duWGI3UkxUMVg2QmFOUWZpWHh4ZXJweU9LL0o0VmdLaFhLRlFxRlkzRXdtTS9uOEs2ZE8KR1Y5
eTJlMnZ6OHdZajdQNS9LWEZ4ZGVtcGtMSlpHZHJxMFZSRmpZM2s1bk1yNTArL1ZScnJnTU5NbmlL
WXlTU1NrMFBEQmgvU25XMAp0RnoxKzhQSlpHZHJhNkZZVkhNNUk0djArWHhYL2Y1ZXI3ZnlCOWR4
VWZjTlJJTWpZTjNuOHVMaWFGZFhlZktUc2NDQlZpb1ZkM3VQCkNwcjJoTCtKQzVxMnZiTno0TnBV
K1dMeEY3ZHVuVDV4NGd1VGUrZlFUL1gxT2F6V25YeSt5ZUVZN3V6czlucDFYVjhNaGJ4dWQxdHoK
czNGT0twTUpibTE5Zm1MQ1pyVzJ1RnlmTGk5N1hLNDc2K3V2VDA4Zm5hNFNxcm9jRHZzamtiZG5a
eTh2TG00a0VuYUxaZWJFaWVITwpUdU9FWEtGd0l4QllpOFZ5aFlLaUtPM056Yk5EUXkwdVYxeFZs
ME9obFdqME44K2Z2N3kwRkloRyszeSt6MDFNSEhhK2NiV2xVR2h1CmJTMlR5N1UzTjc4d050Ymtj
QWdoSHZWU0Q2elpvSlZLVi8xK2Z5Uml0MWhlR2gvZmN5Y0JVTXM2V2xxRUVKbGNUalhtTFF3TkNT
RWkKcVpRUXdtYXhSSFluSncxMWRQZ2prZU9ZUCtxK2dXaHdCS3o3ck1aaWl0bmN0TnRmWmVTcTRO
WldlUzJHMU02T2UxOVlpYVJTaVllZQplcm1aU0d3bUVwK2JtT2h2YXlzZkxCU0xONFBCb3FhMU9K
MWIyOXM5KzNyQ2JWYnJxYjYrZSt2clBWNXZPZjhOdExXOWUvWHF6SWtUCm8xMWRCVTB6bTgzVHUr
T01pdG5jNm5KZER3Ukd1N3JLM1crSCtjWHQyMFpmM2VMbTV2blIwWjE4L3IzYnR5OHVMRGl0MW02
dlZ3angKM3R4Y1BKMStZMmJHMTlTMEZBcDl1cno4d2IxN1h6MTc5dTl2Mzg0V0NrS0loVkRvOUlr
VCtXSXh0Yk56eFBsQ2lMdnI2MWY5L3JORApRNk5kWFZmOC9oOTkrcWxSclZWUkh1bFNENnpaTUwr
eE1UTXcwTm5hK3NIZHU1OHNMMy9sekptSC9OOEUxQWlyb3V4WkFPOFh0MjkvCmNXcXEvRlRONWRS
c1ZzMW0zYys4TmlucXZvRm9XQVNzK3hTS3hkSHU3cGJkQkpNckZLNEhBa01kSGVXTTB1M3g3Si9m
MDk3YzdIVS8KN0dmZjZHS3BuQ052RXNKbXNjenNacU5Dc1hoN2RWWG9lanFYYTZvSWMybyt2eFFL
UmJlM1h6NTUwamhpdDFwZm01b3k1bVpsOC9seQo4Q3BxMmxXLzM2b292L1hDQzNmVzFuNXk5ZXJK
M3Q3QmpvN0RKdWEvZGZic1gxMjZKSVNZN084M21VeDJxL1gwaVJPWEZoZnZySzhiCllVWFg5V2FI
dy9oemM3UzcrOVBsWlNQOWZPM2NPV1BlVWxkcnE5Tm1LNDlhSG5hK0VHSnVkVlVJTWRiZHJaak5w
d2NHbGtLaGpwYVcKTjJabXlsT2dIdkpTRDZ6Wk1ON1RvNWpOZlY2dkVDTEZISFljUTliNzV5MElJ
VXhDVkI2SnBsSk5kcnZiNFhpaWZRS3FwKzRiaUlaRgp3UHBNcmxBbzZicHIzeVk1bFpxZFRtTnNi
cVN6czd3b3FNbGtlc0p4dzhwTmNLd1d5MVIvdnhEQ0h3NFBWUXg0ZlRRL1A5VFJjV0Y4CnZQS0ZI
cmRiQ0xFUmp4c0pUOWYxbFdnMG9hb1R2YjFHVEp3ZUdPanorVDVaWHI3cTkvZDR2VDFlYjF0VDA1
NEZJTXJ6MzhzdE1yclEKdG5aL25Ca2RQL2xpMFIrSkxJZEN4aHVKaW5sTDVmVzZqajdmZUVtdVdD
eHFtbUkyRzh2YmJPL3NQTWFsSGxpendjaVVack5aQ0ZFNgpjaDE4b0RiOTh1N2RpWjZlanNOSHQr
T3ErdkIvNE5XZ3VtOGdHaFlCNnpQSlRNYWlLUE1iRzhaVFhZaEFOQ3FFV0FpRmJCWDVLWlBQCkwy
eHVhcG8yMGRzcjY2MU5GZXV6cDdQWlpvZkRZYk0xT1J4cnNWaWZ6eWVFaUtmVEcvSDRXMmZQSHZq
eTFWaXNvNlZsYTN0N1lYUFQKNDNhZkdSdzBWV3hjNkhHN3Z6UXo4OU5yMTVLcXVoNlB2M3JxMUFO
WDJETHVtaXp0N3JHamxVbzNBb0dGemMxZXIvZUZzYkcvdVg3OQo2SmNmY2Y3czhQQUhkKy9lQ0FU
T0RnMHRoOE1tSWM0ZmVkUDF3Ny8xbnBxQityQWVpMW5NNWxERnhseTZydDhNQnN0UDA3bmNzYzRm
CmRkOUFOQ3dDMW1kTUp0TllWOWRrZjcveDlQcktpakVIYSt6K2FVeWhSQ0lRalVwSlYwVk4yODVt
dDlMcGJLSHc0YjE3VHB1dHE3VzEKMitNeDRsRjdTOHNuUzB0dXU3M0Y2Ynk0c0hCK1pHVC9GdFJD
aUVncVpSTENaREsxTlRkSFVxbUZqWTM5SWFOWUtzVlZkYUtuNTh6UQowQU0zalJaQ0dNT081ZGxt
bHhjWC9aSEl1ZUhoOFo2ZWgyblhFZWYzZXIwalhWM0pUT1lIRnkrMk9KMWZtSnpzUHZMVzY0ZC82
ejAxCkEzWGpaRyt2cHlKaHpLMnV6bFNzNmpMUzJmbW82NUxVbXJwdklCb1RBZXN6SFMwdDVXNXFm
emdjakVaZm01cjY4WlVyZTA3TGE1cXMKVDd1YXkvM2kxcTBtaDhObXNidzROclovanRTWndjSDM1
K2JNWm5OL1c5dEFlL3VCRjdrVkRJNTBkWlhId2x3T1J6a2pmbFp6c1hoNwpkWFd5cisvb2RKVXZG
bzNwL01iOU8zMjcwL0NEVzF0aWQ2ZWRBK202WHRsbmRzVDUxMWRXeHJxNzk0d0RQdDZsanFqNXNG
Mng5MXdjCnFIRnFOcXZ2emdRNGpMSE1nVDhTR1hwUXozUU5xdnNHb3BFUnNBNndIQTR2aGtKZk9u
MzZ3RDJ3TXJtY3JEV2xXbDJ1dDJkbnc4bmsKalVEZ3dCbm9acFBKWWJORlU2a1dwMU1ybGZhZjR3
K0hROGxrZVpUTmJES0p3MmNhUGJEdjZ2ckt5cG5Cd1d5aGNNM3ZkOWxzazMxOQp4bkdIMWFybWN2
NXdlS0M5ZlNrVU1nNW1jcm5icTZ2RzQwS3hhS3RZeVBTdzgvMlJ5RUlvZEtkaU8ycmpIK0hGc2JG
eUpIcjRTeDFSCmMyeDNKbFpDVlQxdWQva2V6N2lxSHJoQWhxN3I2V3pXZUx5OXM5UGtjSkREVUF2
VVhNNWlObGVPbDBXU3lkTDlJMmhDQ0RXYjlVY2kKWW1CZzZMZ3R4Vm4zRFVRalUyWjIxNmlzS1px
bVBWb2YwZTQrVm8rall0eXRWQ3BkRHdUeXhlS0Y4WEdyeFZJcWxlYlcxaVo2ZW93KwprcTN0YlYz
WDc2NnZlOXp1L1NzcFBCNkxvcVF5bVZBeU9iRnZDQ3locWxmOC9ySHU3dWNHQi8zaDhMV1ZGWnZG
NG5HNTlzeXZ1ck8yCmRySzMxK2hVaTZ0cUxKM2UzOTlUMUxRNzYrdW4rdm9PbTR4L0t4Z1VRa3ow
OUx4LzU4Nzh4a1piYy9QblQ1NHNqMGkydUZ6aFpISXQKRmt0bnM1TjlmZWxzVnMxbVU1bE1ZR3ZM
T0dFeEZLcnNOanZzL0luZTNoYUhJNVJNVnZZdzVRcUZVQ0p4ZHpkMVBmeWxGalkzRDZ2NQpoNTk4
VXI3YXpNREFmN3Q4MlhpNkZBcFZEajJVL2NXSEg4NXZiaHFQNXpjM2I5MC9RaUZUUHYvNHJ6MWs2
NlNETWFKU0ZWRTVQNGpLCkNwcG0zR0xjMmRyYTJkb2FTYVhpbVV5dVVIaDlac1k0WXZ4bnMxajhr
Y2dyeG5Mbmo2Zmo0YjY3NnI2QlFnZ2hORTBvREVyaWlkR0QKOVpsNE9yMlZUbzkyZFRYZHYzQlVP
ZEJrOC9tZjNiaGhOcG5PREE3S2ZlczlRMXFaWEM2NHRXVlZsSmNtSm94dXA4K2ZPclVjRGwvMQor
MjhGZ3lkN2U0Y3FKaVhvdWg1TnBjb0RpR291ZC92K1AvNkVFSVZTYWYrNzdEZlUyVGwwLzBLZGht
NlA1emZPbnk4L0xhK2hjSmpECnp0ZDFQWjVPdno0OVhWNGN0YWhwbTRuRVIvUHo3N3o4OGlOZDZ1
aWE5MXp0c0lzLy9BbEFWWGpjN3ZMd21UOGNYb3ZGM3BpZU5oWW8KMmVPWVRnT3Yrd2Fpa1JHd2Zx
V2s2eDYzMjN2LytKSFpiRGJXd0RTZTlyVzF2VG81NlhXN25VY3U1ZkNvckJaTGVkR0JiRDZmeWVl
RgpFQ2YzVGFJZjd1enM5WHB2QllQR2VHSzVtK3FWVTZmYWRzdjJ1dDBuMnR1bjl2VythS1ZTUWxV
UEhQRjhsajVkWHA2cTJKUmFDR0ZSCmxCYVg2N0J0clFFWS9PSHd2WTJOMTZlbkQvd1VSMU1wVzdV
LzNVK283aHVJQnNTMzdLOGNPRC9KYkRMOTlvVUxsVU55dlU5aEJrQzMKeDlPMXU2cWV3Mlk3OEZa
Qmc5MXFQVGN5Y25aNHVMTGF5c0ZLWDFQVGdYT01GTFA1dFlxVmtmZEk3cTdBYWN4WWV0VDZIOTU2
TEpZcgpGQ1o2ZTF0ZExvdlpYTkMwY0RJWmlFYVBYcW5oUU0rc1pxQzZDc1hpcmRWVmw5Mys1a0g3
RUNSVTFhb280VlRxK0g0SzZyNkJhRmdFCnJBZDROcE9kSCtsZEhtYWRoVWZ5N3RXcnhvT2ZYTHYy
VkFmTHZ2emNjM2ZXMWo2ZW4xZHpPYlBKMU9KMERyYTNYeGdmUDJ5SitTTTgKczVxQktvcWtVcEZr
Y3FLbngzWElqVFZxTHZjUGQrNVlGZVdGMFZGUkxEN2o4cDVjM1RjUWpZeUFoV2MzQThscHM4ME9E
ODhPRHovNQpwUWhWcUh1RllyRnk3WmdEOWZsOGI4ek1lRnd1cThWeTdIYVNxZnNHb3NIVlM4QjY5
REVtb0FvT1g5QUwyT093U1pQLzQrYytWL24wCjZJQlN5K3ErZ1dod2p6dzBBd0FBZ0tNUnNBQUFB
Q1FqWUFIQThWYmVxd0JBN2FpWE9WZ0FVSStNVFRhUG9HYXpIeThzekF3TVRMT04KREZCTENGZ0FV
THVzaXBJL2Nua0NsOTMrK3ZSMGs4TWhDb1ZuVmhXQUJ5SmdBVUR0ZW9RRk5nbFlRQzFoRGhZQUFJ
QmtCQ3dBQUFESgpDRmdBZ0ZwWEtCWVQyV3kxcXdBZUFYT3dBQUJWc0JhTFBmd0NFM0ZWVGFUVHM3
MjlmU3pzam1PQ2dBVUFxSUkrbjYvUDUzdUVGN0FYCklZNFZoZ2dCQUFBa0kyQUJBQUJJUnNBQ0FB
Q1FqSUFGQUFBZ0dRRUxBT3JCcGRWVmZ6eGU3U29BL0FwM0VRSkF6VW1vNm1vczlrZ3YKY1ZxdDZY
eStvR2xXUlhsS1ZRRjRlQVFzQUtnNUhyZjdFWFloTkxDS0FWQkxHQ0lFQUFDUWpJQUZBQUFnR1FF
TEFJNkJUQzUzYVdGaAovOTR5aFdLeEt2VklWL2NOUktOaERoWUExQ2cxbTEyTHg5MTIrMW9zRmxm
VlBwL1BackdFazhsYndlQkViNi9OWWhGQ0xJZkRRb2dYCng4YXFYZXpqcVBzR29wRVJzQUNnUnFt
NTNNMUE0TlhKeWNwNGtjNW0xVnpPcWlpNnJnc2hFcXJxdHRzTHhhSzFlblUrdHJwdklCb1oKQVFz
QWFwZXZxYW1qcGFYeVNFSFRtaHlPenRaVzQ2bk5Zdkc2M1ZiTGNmMWhYdmNOUk1OaURoWUExTHBD
c1hqVjd6ZG1JeVZWMVcyMwpWN3NpeWVxK2dXaEFCQ3dBcUYzcGJQWm1NSGd6R0l5bDAvYzJOb1FR
cS9ING5pNmZza1EyKzJ5cms2RHVHNGlHVlMrZHJvdUxqLy9hCnBxYktad3VibS8wK244Tm0yM05X
Y0d1cngrT3hQT1Vsa3RWc2RtNXRiYUN0cmFPMTFXd3lsWStYZEwzeTZZRld0N2JjZHJ1M29qbWgK
Uk1KcXNmanVieUNxNlVtV2dod2RsVmNIam8wbWgyTm1ZS0Q4ZEMwV0t4UUtRNTJkbGVma05jMTQ0
SS9GeHR2YjNmdCtmTld5dW04ZwpHbGE5QkN4Sk51THhHNEZBcTh2bHNObDBYYjhaREo3czdiVlpM
RHU1M0FkMzcxNFlHeXQvN08rc3JmbWFtc3F6Qko3RTF2YjIxdloyCnE4dTFFbzF1Nyt4MGVUeHVo
Mk16SHIrenZqN1cxYVdZelVLSXdOYVdFT0tsOFhIVDRURXJ1TFdsWnJOZmZ1NjU4cEcxZUh3ekh2
L0sKMmJQR1JXTHBkTFBUeVRZYXdER1ZVTlcxV096Tk0yY3FEM2EydE54Wlg0K24wMExUd3FxcUZn
cWZIeHlzVm9WUHFPNGJpSVpDd1BxTQpWaXBkV1Y3dTluaFd0N2FpcVZTK1dBeW5VcmxDNGZ6bzZF
SW81R3RxaXFYVE8vbThjWElrbFlxa1VoNjMyL1lvVXkrVG1VeXJ5N1huCllDYVh1eDRJZkhGcTZv
WFIwWEorU21ZeXFaMmQxdDI5TW5ieWVjVnNMdW02c252Q1RqNGZqRVlycjVQT1p1MFd5NzMxOWZL
UmhLbzYKYkxiRnpVM2o2ZTIxTmF1aWZQbjBhYnVWMjNHQTQ2UlFMUDd5N3QzcGdZSDlxeFdNOS9S
WUxKWjhzU2p5K1luMjlzN2oyV05kOXcxRQpBeUpnL1lxdTY1Y1hGNmNIQmdZN09pS3AxTUxtNW9Y
eGNXTlVMcDVPeDlMcDE2ZW5ROG5rV2l4bXhLREpmUzlmamNXTW00b1BreTBVCnJpd3ZuK3J0UFRN
MGROOFhUQ2E3MWRwKy81eURvcVk1ck5aeUdyTW9pdGZ0TmpxaURFNmJiYVNycS9JbHNYUzZ4ZW1z
UEpqT1prMG0KVS9tSThlQnBqM0xXZ3JpcUxvVkNLNUhJTnk1Y3FIWXR3Qk14cGlnVmlzV1NyaWRV
ZGYva0pLdkZNdEhUYzI5am85UHA5RGdjVlNueQpTZFI5QTlHd0NGaENDS0hyK25vc050blgxK0p5
Q1NFNldsbytYVnBhajhYNjI5clMyV3dpazNsMWN0SnNNdlY2dlZlV2w4T3BWTmUrCmtVR1R5ZFRl
M0t5VlNrZS9VYS9YcSt3YjR5cy9MMnJhalVCZzVzUUpxNkprY3JsbXAvUG9xMWtVWlNlZnR5cUtr
Wm5PREEyWlRTYUwKb3BSMC9hTjc5MDcxOVUzMjl3dGRONDQ4Y0FwWFBYbC9icTdjMS9nd05oT0px
MzUvYW1mSGJiTk45UGFPOS9ROHZkcUFSMUk1UmFsUQpMTjRLQm5VaDFHeldYUkUxMUd6V0g0a01l
NzB2Vmt4bU9pN3F2b0ZvV0FRc0lZUXdtVXg5YlcxQ2lFd3VsOG5saEJCbmg0Y1ZreW1hClN1bENO
RHNjc2UxdDQ4eWh6czZGalkzMjV1Ykt6aVNEOHdubVhSYUt4ZHZCWUxaUVNHUXk5OWJYcHdjR3dx
bFV2ODkzNE1ueGRMbzgKazkxdXNmejkzRnhYYSt0a2YzKzVnSVhOemZWNHZLMjUyV1hjNnB4TzN3
d0VUdmIyN3VueHFtTnZ6YzcrMTQ4L2ZzaVQ0NnI2OTNOegpSdTlqT3BmN2RIbTVxR21UL2YxUHMw
RGdjVmd0bHVtQkFTSEVXaXpXVi9IejRkTEN3a2huNXd2ZDNkVXJUWTY2YnlBYUNzczAzTWZvCjdD
bnB1a21Ja3E3bmlzV2YzN3laeWVlTmcwWVBkanFielJjS0V0L1VaREpaTFphcGdZRnpJeU52ek14
TUR3eUVrOG50blozQmpvN3kKT1dhVHFiQjdIODF5T0d5a1FDR0UyV3grY1d4c001RW9meldkemQ0
T0JsK2VtT2p6K2J4dXQ5ZnRYZ3FGaEJBTk5lL3FrU2J5MzFsYgplMzU0K0pzdnZmVHJ6ei9mNi9V
S0llNXViRHkxMG9ESGxNbmxJcW1Vc1ZLVTIyNlBwRkxHOFVncXRScUxuZDB6OGVBWXF2c0dvdEhR
CmczVWZtOFZTZVdOZ3JsQVFRclExTlpVN3F3UFJxTnR1ZHo3TlJmQUMwYWcvRXZuaTlIVGxaS2tt
aDJNcEZNb1ZDb1ZpY1RPWnpPVHoKcjV3NlpYekpaYmUvUGpOalBNN204NWNXRjErYm1nb2xrNTJ0
clJaRldkamNUR1l5djNiNjlGT3QrVmp6dXQyajNkMUNDSmZkZm1GOAovQWNYTHo1d3FCZDRCaUtw
VkNLVFNXZXpGeGNXM0hhN3grVXlPdHFGRUI2Mys2cmZiMVVVdDkxK3hlOS9jV3pzT0M1MFh2Y05S
SVBqClcvWStseGNYUjd1NnlwT2ZqRiswV3FsVTNPMGZLbWphMDVza25pOFdmM0hyMXVrVEo3NHd1
V2NPdlpqcTYzTllyVHY1ZkpQRE1keloKMmUzMTZycStHQXA1M2U2MjVtYmpuRlFtRTl6YSt2ekVo
TTFxYlhHNVBsMWU5cmhjZDliWFg1K2VQanBkSlZSMU9SejJSeUp2ejg1ZQpYbHpjU0NUc0Zzdk1p
UlBEdTJ0UzVBcUZHNEhBV2l5V0t4UVVSV2x2YnA0ZEdtcHh1ZUtxdWh3S3JVU2p2M24rL09XbHBV
QTAydWZ6CmZXNWk0ckR6amFzdGhVSnphMnVaWEs2OXVmbUZzYkVtaDBNSThhaVhlbUROQnExVXV1
cjMreU1SdThYeTB2aDQrMEdyRjU3cTZ5cy8KTnU3aWJOLzlKd1dxSmFHcTc4L05lZDF1bThVeU96
UzBQMTZjSFJyNnhhMWJGa1VaNnVqb08yUTZRUzJyK3dZQ3lzeHU1MGROMFRUdAowVkpNUFA3NGIx
WXhkK3JpNHFJUUlwUExKVlExb2FyeGREcVVURHFzMXUyZEhlUElaakxaNG5SMmVUeVAvM2I3Yk8v
c0JLSlJUZGRECnlhUmlObXVsMHY3bHRSUkZhVzlwMmQ3Wk1kWWdWY3htazhua3R0dC9mdk9tc1pS
b1FkTkt1dDdmMXFZb2loRENiREtwdWR5TlFHQ28KbzJPZ3ZmMkkxYk9FRU85ZXV4Wk9KclZTeWFv
b015ZE9uR2h2OTBjaUs5Rm9lMU5UazlNcGhQajVyVnZyOGZnWHBxYWVIeG14V1N6egptNXVSVkdx
c3UvdW4xNjZGVXltdFZMSmJyZU05UGRzN08rbHNkcXk3KzdEemhSQjMxOWMvWFY2ZTZ1OS8rZVRK
bUtwZVhGaTRGUXplCldWdGIzZHA2cEVzOXNPWmJ3YUFRd3Fvb0ozdDdQVzczVWlnVVY5V3hCODNo
aUtSU0s1SEk3UER3QSs4d2VFeVBNdlYrcjBmNkhWUC8KdDRyV3BLaWNIMFJDQ0lmTk50YmQzZXgw
eHRMcDBZTytid3ZGNG1ZaWtWQlZwODNXMXRTa21NMVA5TjNWOFhEZlhYWGZRQ0dFRUpvbQpsQWE0
MnhwUEd6MVk5eWtVaTZQZDNTMjd2MXh6aGNMMVFHQ29vNk04Uk5qdDhVaGZxTk1raE0xaXFieVA1
dmJxcXREMWRDN1hWTkh6CnBPYnpTNkZRZEh2NzVaTW5qU04ycS9XMXFTbGo5bFUybnk5bmdxS21H
YjNydi9YQ0MzZlcxbjV5OWVySjN0N0Jqbzc5RS9NTmI1MDkKKzFlWExna2hKdnY3VFNhVDNXbzlm
ZUxFcGNYRk8rdnIzVjZ2RUVMWDlXYUh3N2g5ZXJTNys5UGw1ZFRPamhEaWErZk9mZi9qajRVUQpY
YTJ0VHB1dFBHcDUyUGxDaUxuVlZTSEVXSGUzWWphZkhoaFlDb1U2V2xyZW1Ka3BhdG9qWGVxQk5S
dkdlM29VczduUDZ4VkNwREtaCkIvNi9XQTZIZXp5ZTNvb3JBTlZ5eEtCWUpKWHloOE96dzhOV1Ji
bmk5Ly93azAvT0RROFA3VnRqcjhiVmZRUFI0QWhZbjhrVkNpVmQKZHgxNU0yQ3owMm1NelkxMGRo
N2RMZlJJS2k5a3RWaW0rdnVGRVA1d3VISy9pSS9tNTRjNk9pNk1qMWUrME9OMkN5RTI0bkd2Mnky
RQowSFY5SlJwTnFPcEViNjhSRTZjSEJ2cDh2aytXbDYvNi9UMWViNC9YMjliVXRLZDdwanovdmR5
aUhxOVhDTEcxdTYvTFY4NmNFVUxrCmkwVi9KTEljQ2hsdkpDcVcxTnF6ZXVwaDV4c3Z5UldMUlUx
VHpHYmp4K3YyenM1alhPcUJOUnVNVEdrMm00VVFwU05YS1JOQ0pET1oKU0NyMVpzVlMrRUN0U2Fq
cS9NWkdyOC8zd3U2Q25DK09qZlg1ZkJjWEZtNmF6Y05lNzBSNys3SGVyYUh1RzRqR1FjRDZUREtU
c1NqSwovTzRkWkxvUWdXaFVDTEVRQ3RrcVBzK1pmSDVoYzFQVHRJbmVYbGx2YmFwWW56MmR6VFk3
SEE2YnJjbmhLTitySEUrbk4rTHh0ODZlClBmRGxxN0ZZUjB2TDF2YjJ3dWFteCswK016aFlHZjQ4
YnZlWFptWitldTFhVWxYWDQvRlhUNTE2NFBpWHcyb1ZRcFIyNTNwcnBkS04KUUdCaGM3UFg2MzFo
Yk94dnJsOC8rdVZIbkQ4N1BQekIzYnMzQW9HelEwUEw0YkJKaVBOSGJySDM4Rys5cCtaSHBldjZs
ZVhsVjA2ZAoycjhOSlZBdGxSdEZSRktwdUtyYUZPWHN2aGxMZlQ3ZjE4K2R1N2V5Y2pjYWRkdHNR
OGVuQzdidUc0aEdSc0Q2ak1sa0d1dnFLaStBCmRIMWx4WmpiUHRiVlZibmtYU2lSQ0VTalV0SlZV
ZE8yczltdGREcGJLSHg0NzU3VFp1dHFiZTMyZUg0MTFicWw1Wk9sSmJmZDN1SjAKWGx4WU9EOHlj
dUR2L2tncVpSTENaREsxTlRkSFVxbUZqWTM5SWFOWUtzVlZkYUtueDFpTTlJR0ZHY09PN3QwQnlz
dUxpLzVJNU56dwo4RU91d0huRStiMWU3MGhYVnpLVCtjSEZpeTFPNXhjbUo3dVAvRm41OEcrOXAr
WkhkWHQxZGFLbnA3d3hkcjVRc0RYU3doYW9UUjYzCis0dlQwOGJqanBhVy9hdWNsMWt0bHVtdXJ1
bmp0dFpkM1RjUWpZeUE5Wm5LajdjL0hBNUdvNjlOVGYzNHlwVTlwK1UxVFZZSHRackwKL2VMV3JT
YUh3MmF4dkRnMnRuK08xSm5Cd2ZmbjVzeG1jMzliMjBCNys0RVh1UlVNanV6dUNXMDJtMTBPeC81
Rk12UEY0dTNWMWNtKwp2cVBUVmI1WU5QNmdORmFnS2Q4eUhkemFFcnM3c2JsdnBnQUFIa1pKUkVG
VTdSeEkxL1hLUHJNanpyKytzakxXM2IxL1E4Ykh1TlFSCk5SKzJaOUdlaTVldHgySk9tNjNYNXhO
Q2FLWFMvTWJHVWpqODl1enNZVzhLUEh2K2NOampkbnQyOXljVlFrUlNLYXVpVkI0NTF1cSsKZ1dn
MEJLd0RMSWZEaTZIUWwwNmZQbkFPWmlhWGU4STFwUzR1TEhTMnRnNTFkTFM2WEcvUHpvYVR5UnVC
d0lFejBNMG1rOE5taTZaUwpMVTZuVmlydFA4Y2ZEb2VTeWZJb205bGtFb2ZQTkhwZzM5WDFsWlV6
ZzRQWlF1R2EzKyt5MlNaMzF5OXdXSzFxTHVjUGh3ZmEyNDFsClM0VVFtVnp1OXVxcThiaFFMRmIy
OXh4MnZqOFNXUWlGN2xSc1J5MkVhSFc1WGh3YkswZWloNy9VRVRYSGRtZGlKVlRWNDNZblZOVjQK
R2xkVjM3NmRZcE9aeklmejgwVk51N1M0V0Q3SWJqbW9OZjVJSkxleFljeEtORVNTeVdBc1ZqNFNV
VldQdzNGODV5ZlZmUVBSYUFoWQo5eW1WU2plQ1FaTVFiOHpNbUUybTh2SlhocTN0YllmVldwNVJi
c2prY3Y1dytKSGV4YW9vOFhTNnorZXpLb294V2Z2QVRKUlExZHVyCnEyUGQzUytNam40OFAvK2pU
ejg5ZmVMRVVFZEhaUi9NVUdmbjVhV2xjdkF5bVV3SExwSnB4SmNIelBFV29yMjUrVWRYcmhRMXJk
dmoKT1RjOFhKNGVjWDUwOU9MQ3doVy9QNXhLelE0TlJiZTNOK0p4WS9VcDQ0Uy8vdlRUeW0yVkR6
di83UEN3M1dLNTR2ZFhGcG5NWkQ2NAplMWZkWFp2KzRTOTFJeEE0ck9hZjNiaGh2UHduMTY2OTgv
TExQN2wyelhqNk45ZXZ2L1B5eTN0YS9kN3QyM3YrUndzaHVxV3V4QUU4CnFvU3Fyc1ZpbFVmUzJh
emI0VERXSHpHRVV5bWJ4VkkrY205OTNXMnp2VDR5Y2l3aVNOMDNFQ0JnZlNhZVRtK2wwNk5kWFUz
M2I5aGUKRGpUWmZQNW5OMjZZVGFZemc0UGxyN3JzOXFrbjNuOTB6NUJXSnBjTGJtMVpGZVdsaVFt
ajIrbnpwMDR0aDhOWC9mNWJ3ZURKM3Q2aAp6czd5anhoZDE2T3BWSGtBVWMzbGJsZjhoRElVU3FY
OTc3TGZVR2ZuMFAwTGRScTZQWjdmT0grKy9MUzhoc0poRGp0ZjEvVjRPdjM2CjlIUjVjZFNpcG0w
bUVoL056Ky9QUFEvNTFnZld2T2RxaDEzY1VIbDlvRWJzR1N3VFFpUlUxZXQyVi82ME1RV0RRb2p5
a2Vsak5mVzcKN2hzSUVMQitwYVRySHJmYmUvLzRrZGxzVnN6bWNwVHBhMnQ3ZFhMUzYzWS95YjdP
KzFrdGx2S2lBOWw4UHBQUEN5Rk83cHRFUDl6WgoyZXYxM2dvR2pmSEU4clNrVjA2ZGF0c3QyK3Qy
bjJodjN4LzR0Rklwb2FwVjMydkNXR0swOGwvUG9pZ3RMdGRoMjFvRERTNlR5N2wyCkp5UVlpMEla
ank4dExvNTNkNWYvMENvVWkxWC9kRCtldW04Z0dobmZzcjl5NFB3a3M4bjAyeGN1VkE3SlBZMGxL
THM5bnE3ZHBkc2QKTnRzUnl3VFlyZFp6SXlObmg0Y3JxKzJwS01uWDFMUi9qcEVRUWpHYlg1dWFP
dXl5eWQwVk9JMFpTNDlhLzhOYmo4VnloY0pFYjIrcgp5MlV4bXd1YUZrNG1BOUhvMFNzMUhPaVox
UXhVa2N0dS84V3RXNzArMzBSUFR6bUkzTnZZQ0VhakhjM041YnViTHk0c1RQZjNIOGQxCk9PdStn
V2hrQnkvdGpUS0pxNG5LZXBlSFdXZmhrYng3OWFyeG9EeFg2U241OG5QUE9XMjJqK2ZuZjNEeDR2
Yy8vdmdYdDI2cDJleUYKOFhIYm8vOXQrc3hxQnFycmhkSFJ0YTJ0UXJGb1BFMm82cTFnY0haNDJH
VzM2N3B1ck45bVVaVGoyOEZUOXcxRXcrSmJGZytZb2lTUgowMmFiSFI2ZUhSNSs4a3M5czVxQjZu
STdISy92N2hoYktCWnZCWU92VDArdngyTDlQcC9WWXZHSHc0Vmk4YzB6WjZ3V2k3aC9HNFBqCm91
NGJpSVpWTHdIcjBjZVlnQ3BnbVVROHRQbU5EWS9iWFY2Y0w2R3E2N0hZaTJOalZvdkZiYmRmOWZ0
YjNlNTc2K3V2bkRwMVRIdDMKNnI2QmFIQU1FUUpBTFJycTZQaUhPM2VNVldBS3hhTE5ZcGthR0RD
aWh0VmljZG50TndPQlBwL3ZzWGN2cUxxNmJ5QWFuREt6MnpkYgpVelJOWTUwVDRQSHgrYW1LYVB6
eFg3dnY3aGJGYk83eGVEUmRiM0U2cy9sOGVjWjNvVmg4ZjI3T2JiZS9OaldWem1iLzRlN2RVcW5r
CmRidVYzV2xNajZQajRlN2tyZnNHQ2lHRTBEU2hzTlFXbmhqOXJnQlFvNHpGb2lLcGxHZjNCanAv
SkpKUTFSZkh4b3g3N3NaN2VqcGEKV3E0c0w5OWRYKzkwdXp1Ym1qcWJtanozcitSWHkrcStnV2hr
REJFQ1FFMHpWanhmaThWK2VlZU9tczJlSFJweVZZeWFlZHp1MTJkbQptcHpPZ3FiZERJVUsrN1ls
cUgxMTMwQTBKbnF3QUtCMkdidVlDeUg2Zkw2a3FpNkZ3d2Z2ckpWT1QzZDF2WDRNYi9lcCt3YWlZ
Ukd3CkFLQjIzUW9HeDN0NnlyZlJOVGtjTXdmdHpUVzN1anA5UE85UnJmc0dvbUV4UkFnQU5jb2ZE
b2VTU1UvOXJtQmU5dzFFSXlOZ0FVQ04KR3Vyc05KdE1qN0hWd1hGUjl3MUVJK1BiR2dCcVdseFZP
M2UzSzAxbnM3ZUN3ZjNuSERodjZiaW8rd2FpTVJHd0FLQjJ2WHp5cEhkMwpPL05lbjA4WFl2cWdL
VXFKM2UzUGo1MjZieUFhRmdFTEFHcFhuKyt6RlRLTlZhTU9QTzN6SjA4ZTA2MzY2cjZCYUZqTXdR
SUFBSkNNCmdBVUFBQ0FaQVFzQWFzTDNQdmdnZWZoTW8zeXgrRmVYTGlWVTlWbVdKRmZkTnhDb3hC
d3NBS2dWNzE2OWV2UUp5K0h3N1BEd3N5bm0KYWFqN0JnSmw5R0FCd0xIaGowU3FYY0xUVmZjTlJP
T2dCd3NBYXNXYlo4NTRYQzZUeWVRUGh5UGIyMmRPbkxCWnJjYVhkRjIvdmJvNgoxdDFkM1FxZlVO
MDNFQ2lqQndzQWFzSTdMNy9zZGJ0TkpwTVE0dXJLeXBuQndYTDRFRUtZVEtheDd1N0xpNHZWSy9C
SjFYMERnVW9FCkxBQ29PVVZOeXhVS2V3N3U1UE1iaVVSVjZwR3U3aHNJRUxBQW9PWjBlenp2ejgy
dHgyS0ZZbEhYOVd3K3Z4d092M2Y3ZHQxczIxZjMKRFFUNFZnYUFtak03TlBUem16ZmZ2M05uei9F
WHg4YXFVbzkwZGQ5QVFKbVptYWwyRFFmUU5FMnBkZzNBTWNibnB5cWk4Y2QvcmMxMgozek9MWmJp
elV3aVJMUlNLbXFZb1NudEx5L21Sa1lIMjlrT3ZrTTgvL3J0MytCNThqbWlBQmdvaGhOQTBvU2g4
aFBDazZNRUNnRnBrCnMxak9EQTZlR1J5c2RpRlBTOTAzRUEyT09WZ0FBQUNTMFlNRkFEVW5sRWhj
V2x6TUZnb0RiVzNuUjBjVnMva24xNjZaVGFiWEppY3IKbHpZNHZ1cStnUUE5V0FCUWN6NWVXRkJ6
T2ExVThrY2lOd01CSVlTbWFiRjArbm9nVU8zUzVLajdCZ0lFTEFDb09mbGk4ZnpJeURkZgpldW5j
OFBEODVtYWhXSHo3M0xrM1ptYldZckZxbHlaSDNUY1FJR0FCUU0zcDgva0cydHNWczNtOHA2Zlg2
MTJPUklRUXZxYW0vWXR6CkhsTjEzMENnZHVkZ1BjSDl1RUNqc3ozNEZOUzAyYUdocFZEb1ZGK2ZF
T0pVWDkrbGhZV3g3dTZsVUtodWxnK28rd1lDdFJ1d0FLQmgKZmJLMHRCcUxYVnRaS1IvNXl3OC9G
RUowZXp6VkswcW11bThnUU1BQ2dKcXpIdCs3cEtmSlpHcHhPbWVIaHFwUmpueDEzMENBZ0FVQQpO
YWVydGZYNWtSRzN3MUh0UXA2V3VtOGd3Q1IzQUtnNUc0bkUzTnBhNVJHdFZQcHZseTdGVmJWYUpj
bFY5dzBFNk1FQ2dGcTBHQW90CmhrSjdEaTZIUXQ2UmthclVJMTNkTnhBTmpoNHNBRGcyVnFMUmFw
ZndkTlY5QTlFNDZNRUNnSnBqVlpTdm56dG50VmhNSnBOeEpLR3EKNFZScXJLdXJ1b1hKVXZjTkJP
akJBb0NhODQwTEYyeFdhemw4Q0NFOGJ2ZEFXOXZscGFVcVZpVlIzVGNRSUdBQndQSHd5ZEpTb0s1
SAowT3ErZ1dnb0JDd0FPQjdVWEs3WDY2MTJGVTlSM1RjUURZVTVXQUJ3UEh6bHpKbHFsL0NZL3Z4
M2YvZDU5WjgrOExTUkx3a2h4UHhCClgvcms5Ti8rVC8vcVgwa3VDM2lhQ0ZnQVVITkNpY1NseGNW
c29URFExblorZEZReG0zOXk3WnJaWkhwdGN0Sm10VmE3T2dsU1MrOEYKZnZTSFJUWGltZnoxRTI5
LzEyeDF6djNITDVvVXk5anYvSVhGNWF0MmRZQUVEQkVDUU0zNWVHRkJ6ZVcwVXNrZmlkd01CSVFR
bXFiRgowdW5yZ1VDMVM1Tmo1WWYvUEo5WUtSVXlzZXZmMjNqdk8wS0lVbkVuczM1bC9lLytkYlZM
QStRZ1lBRkF6Y2tYaStkSFJyNzUwa3ZuCmhvZm5OemNMeGVMYjU4NjlNVE96Rm90VnV6UTV0SjNF
d052ZlBmdXQ0TUJYdnhPNS9KK0syZVQwNzM4ODhYdC9uWngvdDlxbEFYSVEKc0FDZzV2VDVmQVB0
N1lyWlBON1QwK3YxTGtjaVFnaGZVMU91VUtoMmFYSzBubnpMTy9WYlpxdXI0NFYvMGpyK1p1emFu
d3NoWEQxbgpDK2xJdFVzRDVDQmdBVURObVIwYVd0cmRSdVpVWDk5eUtGVFM5YVZRU0ZHVTZoWW1T
LytYdngyOThxZkc0ODdQL2NIV3RmK3NhNFd0CnEzOW10cm1xV3hnZ0M1UGNBYURtZkxLMHRCcUxY
VnRaS1IvNXl3OC9GRUowZXp6VkswcW00THQvbExqNzQvVy8vWGI1eUpWLzB5MkUKYUI1NXZYcEZB
VElSc0FDZzVxekg0M3VPbUV5bUZxZHpkbWlvR3VYSWwxejRtZEJMOXgweVd4enRFLzF2TXNrZGRZ
S0FCUUExcDZ1MQo5Zm1SRWJmRFVlMUNucGJtb1ZjRzN2cTN0dGFCeXQxeWdIckNIQ3dBcUFuWmZQ
NkhseTkvc3JTazYvclo0ZUdWdXRzMHByQzllZk0vCm5BbjgrRi9vZXFuLzEvNnYySTMvUXJwQ0hh
TUhDd0Jxd3R6YVdsdHo4MVIvLzBvMHFtbmEzTnBhb1ZoOGJuQndQUjYvc3J4Y0xKV20KK3ZvbWVu
dXJYZWJqQzMzNC83aDZuKzkrNVgrTjNmakxVbUVuOU9GL0tPVlN2Vi82bDhsNzc2Nys5UDhvRlRM
ZG4vOWZPaS84czJxWApDY2hCd0FLQW1yQWVqMThZSDNmYWJNME94OS9kdXFXVlNvTWRIWjh1THkr
RlFpVmRGMEpjOGZ1dEZzdHdaMmUxSzMxTXlmbS9HZnlOCi85ZlcwdU5vRzd2M3A3K3BGM2U4cDcr
NSt1NjNvbGYvVEM5bWhSQ3JQLzFqeGQ3U2R2WjNxMTBwSUFFQkN3QnFncHJMdGJwY1FvaTIKNW1h
dFZCSkNlTnp1WkNZejNOazVNekJndFZnV05qWnVyNjRlMzRDVlR3U2NuWk5DQ0hmZjgzcHhSd2po
NnBwWkRjKzFQZmRPejJ2ZgpVdXhOa2N0L3N2bkxmMC9BUW4xZ0RoWUExQVN6eVdReDcvMlp2TFc5
Zlhab3lHR3pLV2J6YUhkM0pwZXJTbTFTbUJTcjJlYmVjMUJkCis2VHZ5OSsyTm5XYXJhNzJjLzl6
UGhtc1NtMkFkQVFzQUtnSkxVNW5RZFAySDF3T2g3VlNLWnZQWC9YNzI1dWJxMUtiRlBhMmNTMmIK
M0hQUTBUNitkZjE3cFdLMmtBNnQvZXovZFBlL1dKWGFBT2tZSWdTQW1qRFkzaDVPSnZ2YjJvb1ZN
ZXU1d2NIMzUrWStYVjQybnI0OQpPMXVsNmlUd3pmejJ0ditYM3NtdmEvbDArV0R2Ry85eThjOS9a
L1hkUHpLZVR2Myt4U3BWQjBoR0R4WUExSVN4bnA1QU5McTlzN09aClNBZ2hqUGxZUFY3djUwK2V0
RnV0N1MwdFFvaG1wN1BLVlQ2QmpoZitjZnoyRDdMUitlMmw5NFFRenM1cElVVHIySmRHdnZrbkZu
ZG4KMDRuUENTRWNiYU5WcmhLUWhCNHNBS2dKaXRsOGZuVDAwNldsMVZqTWJiZS9PRFptSE85cmEr
dHJheE5DL0plUFBxcHFnVS9LYkhHYwplUHU3d1hlL2xiejdJNXQzNk1UWC83MXgzSFBxYTU1VFh4
TkNYUDIvQjZwYUlDQVRQVmdBVUN0c0ZzdExFeFBmZk9rbE5aZlRkYjN5ClMxcXBaRldVdUtwV3F6
WXBMRTdQOFAvdy81MzlWakFmOXd1OVZObkdVaUdqMkZzeW05ZXJXQjRnRVQxWUFGQ0xmbmJqeHY2
RHk2R1EKZDJUazJSZnpOTno5azYvc1A3aDE5YzljWDMzdTJSY0RTRWNQRmdBY0cvVzNmODRlc1p2
ZnIzWUpnQnowWUFGQXpiRXF5dGZQbmJOYQpMT1hkK2hLcUdrNmx4cnE2cWx1WUxJckRNLzBIbHhT
bngyVDYxZC81TzZGYjJ5dS9iRC8zZTlVdERKQ0ZIaXdBcURuZnVIREJaclZXCjdvWHNjYnNIMnRv
dUx5MVZzU3FKenZ5TFJZdkxWMDVYUWdobjE3VG4xSzhIZi95L1ZiRXFRQ0lDRmdBY0Q1OHNMUVhx
ZW9ndytPNy8KSHJ2MWcycFhBY2hCd0FLQTQwSE41WHE5M21wWDhSVGxrNnV0RXdmTWZBZU9JK1pn
QWNEeDhKVXpaNnBkd3RNMStVLy9ydG9sQU5JUQpzQUNnNW9RU2lVdUxpOWxDWWFDdDdmem9xR0ky
LytUYU5iUEo5TnJrcE0xcXJYWjFFcVNXM2d2ODZBK0xhc1F6K2VzbjN2NnUyZXFjCis0OWZOQ21X
c2QvNUM0dkxWKzNxQUFrWUlnU0FtdlB4d29LYXkybWxrajhTdVJrSUNDRTBUWXVsMDljRGdXcVhK
c2ZLRC85NVByRlMKS21SaTE3KzM4ZDUzaEJDbDRrNW0vY3I2My8zcmFwY0d5RUhBQW9DYWt5OFd6
NCtNZlBPbGw4NE5EODl2YmhhS3hiZlBuWHRqWm1ZdApGcXQyYVhKb080bUJ0Nzk3OWx2QmdhOStK
M0w1UHhXenllbmYvM2ppOS80Nk9mOXV0VXNENUNCZ0FVRE42ZlA1QnRyYkZiTjV2S2VuCjErdGRq
a1NFRUw2bXBseWhVTzNTNUdnOStaWjM2cmZNVmxmSEMvK2tkZnpOMkxVL0YwSzRlczRXMHBGcWx3
YklRY0FDZ0pvek96UzAKRkFvWmowLzE5UzJIUWlWZFh3cUZGRVdwYm1HeTlILzUyOUVyZjJvODd2
emNIMnhkKzgrNlZ0aTYrbWRtbTZ1NmhRR3lNTWtkQUdyTwpKMHRMcTdIWXRaV1Y4cEcvL1BCRElV
UzN4MU85b21RS3Z2dEhpYnMvWHYvYmI1ZVBYUGszM1VLSTVwSFhxMWNVSUJNQkN3QnF6bm84CnZ1
ZUl5V1JxY1Rwbmg0YXFVWTU4eVlXZkNiMTAzeUd6eGRFKzBmOG1rOXhSSndoWUFGQnp1bHBibng4
WmNUc2MxUzdrYVdrZWVtWGcKclg5cmF4Mm8zQTRJcUNjRUxBQ29DZC83NElPdm5qM2I2bklKSWM0
T0Q2OUVvMVA5L2VXdjVvdkZIMSs1OHNXcEtZL2JYYjBhSDk4bgpwLy9XOUkvKzBmVi85KzltQmda
TUp0TWQzOWUrLy9GMy92alZiNVJQaUtmVGszLzRoKy8rOFIrZnJaZGVPalE0MHp2dnZGUHRHZzZR
CnorZXJYUUp3ak5sczFhNmdNYzB0UHY1cm01cSs5OEVIRHp4cm9xZG5kbmo0NEsrbDA0Ly83cE9q
RDNWYTNUZFFDQ0ZFUGk5c2ZJVHcKeExpTEVBQ09EWCtremxjeHFQc0dvbkV3UkFnQXRlTE5NMmM4
THBmSlpQS0h3NUh0N1RNblRwUTN4dEYxL2ZicTZsaDNkM1VyZkVKMQozMENnakI0c0FLZ0o3N3o4
c3RmdE5pWjlYMTFaT1RNNFdMbnRvTWxrR3V2dXZyejRCSU4wMVZiM0RRUXFFYkFBb09ZVU5XMy9v
dTA3CitmeEdJbEdWZXFTcit3WUNCQ3dBcURuZEhzLzdjM1Byc1ZpaFdOUjFQWnZQTDRmRDc5Miti
YlBVeWJ5T3VtOGd3TGN5QU5TYzJhR2gKbjkrOCtmNmRPM3VPdnpnMlZwVjZwS3Y3QmdMS3pNeE10
V3M0Z0tacDFTNEJPTWJxWmNPNjR5YTZkL24xUjNEL3VnQTJpMlc0czFNSQprUzBVaXBxbUtFcDdT
OHY1a1pHQjl2WkRyL0FrcTl0MCtCN3F0THB2b0JCQ0NFMFRkYlBuSTZxSUhpd0FxRVUyaStYTTRP
Q1p3Y0ZxCkYvSzAxSDBEMGVDWWd3VUFOZWQ3SDN5d3RiMnQ2L3BoSnhRMTdZZVhMOGRWOVZsV0pW
SGROeENnQndzQWF0SFBidHg0NERsTG9kRHoKSXlQUG9KaW5vZTRiaUFaSER4WUFIRmNyOWI3dWVk
MDNFSFdNSGl3QXFFVnZQdmVjWjNkWlRpR0VWaXJOYjJ5TTkvUW81anI1dzdqdQpHNGdHeC9jeEFO
U2NkMTUrMmR2VVZBNGZRZ2pGYkI3dTdMenE5MWV2S0pucXZvRUFBUXNBYXM3M1B2Z2dtY2xVSGlt
VlNwRlVxbTcyClFxNzdCZ0lNRVFKQUxYcjM2dFg5QjkxMis3T3Y1Q21wK3dhaXdSR3dBT0FZTUp0
TUxVNW5IZDlTVi9jTlJLTWhZQUZBTGZxMTU1N3oKVnN3QnJ6OTEzMEEwT0FJV0FOU2NkMTUrdWRv
bFBGMTEzMENBU2U0QUFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZwpHUUVMQUdy
T2Y3OThlYzlDNTJWMzF0WSt2SGN2b2FyUHVDUUFqNFNBQlFBMVp5ZWYvOW1ORyt2eCtQNHZuZXJy
NjJocCtlbjE2NXVKCnhMTXZUSmJ2ZmZDQnJ1dEhuUERUNjlmVDJld3pxd2VRam9BRkFMV29xR25a
ZlA1V01MZy9pQXgzZHVxNmZ0ejNSVDRpUHhVMXJWUXEKSGVzRUNiRFFLQURVcUpHdXJ2Vlk3TDNi
dDJlSGgxdGRydkx4WEtFZ2hFanQ3RlN2TkFsK2ZPWEswU2RzeE9OajNkM1BwaGhBT2dJVwpBTlN1
WHAvUFliTzlkL3QyUjB2TGNHZG5XM096cnV1ZkxDMEpJZHcyVzdXcmU3ckN5V1MxU3dBZUh3RUxB
R3FVVmlvcFpyT3ZxZW5OCjU1Njd1TER3M3UzYmxWK2Q2TzJ0Vm1GU3ZEMDcyK3gwVnJzSzRHbGhE
aFlBMUtpRnpVM2pnY05tKzhMVTFLdW5UblY3UEJaRnNWc3MKejUwNE1kN1RVOTN5bmxDVHcxSHRF
b0NuaUI0c0FLZzVyMDVPYmlZU2k1dWJ3eDBkTnF2Vk9OanI4L1g2Zk5VdFRCWTJlMGJkSTJBQgpR
TTNwOVhwN3ZWNHhQRnp0UWdBOEpvWUlBUUFBSkNOZ0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3
QUFRRElDRmdBQWdHUUVMQUFBCkFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQUFFaEd3QUlBQUpDTWdB
VUFBQ0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKQ0ZnQUFBQ1MKRWJBQUFBQWtJMkFCQUFCSVJz
QUNBQUNRaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBSkNO
ZwpBUUFBU0ViQUFnQUFrSXlBQlFBQUlCa0JDd0FBUURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJ
UnNBQUFBQ1FqWUFFQUFFaEd3QUlBCkFKQ01nQVVBQUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFE
SkxOVXVBQURxeGVSb1ZkKys2Nm0vUTkwM0VKQ0hIaXdBQUFESkNGZ0EKQUFDU0ViQUFBQUFrSTJB
QkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQVpBUXNBQUFBeVFoWUFBQUFraEd3
QUFBQQpKQ05nQVFBQVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJ
V0FBQUFKSVJzQUFBQUNRallBRUFBRWhHCndBSUFBSkNNZ0FVQUFDQVpBUXNBQUVBeUFoWUFBSUJr
QkN3QUFBREpDRmdBQUFDU0ViQUFBQUFrczFTN0FBRHk1ZlBWcmdBQUdsdU4KQml5YnpWYnRFZ0FB
QUI0VFE0UUFBQUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRaklBRkFBQWdHUUVMQUFCQU1nSVdB
QUNBWkFRcwpBQUFBeVFoWUFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQUFnQUFrSXlBQlFBQUlCa0JD
d0FBUURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBCkFKSVJzQUFBQUNRallBRUFBRWhHd0FJQUFKQ01n
QVVBQUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNGZ0FBQUNTRWJBQUFBQWsKSTJBQkFBQklS
c0FDQUFDUWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQVpBUXNBQUFBeVFoWUFBQUFraEd3QUFBQUpD
TmdBUUFBU0ViQQpBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFK
SVJzQUFBQUNRallBRUFBRWhHd0FJQUFKQ01nQVVBCkFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFB
REpDRmdBQUFDU0ViQUFBQUFrSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkEKTWdJV0FB
Q0FaQVFzQUFBQXlRaFlBQUFBa2hHd0FBQUFKQ05nQVFBQVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dB
QVFESUNGZ0FBZ0dRRQpMQUFBQU1rSVdBQUFBSklSc0FBQUFDUWpZQUVBQUVoR3dBSUFBSkNNZ0FV
QUFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBCkFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNB
Q0FBQ1FqSUFGQUFBZ0dRRUxBQUJBTWdJV0FBQ0FaQVFzQUFBQXlRaFlBQUFBa2hHd0FBQUEKSkNO
Z0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdBQWdHUUVMQUFBQU1rSVdBQUFBSklS
c0FBQUFDUWpZQUVBQUVoRwp3QUlBQUpDTWdBVUFBQ0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURK
Q0ZnQUFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGCkFBQWdHUUVMQUFCQU1nSVdBQUNB
WkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBSkNOZ0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUEK
UURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQUFFaEd3QUlBQUpDTWdBVUFB
Q0FaQVFzQUFFQXlBaFlBQUlCawpCQ3dBQUFESkNGZ0FBQUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNB
QUNRaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5UWhZCkFBQUFraEd3QUFBQUpDTmdB
UUFBU0ViQUFnQUFrSXlBQlFBQUlCa0JDd0FBUURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNB
QUEKQUNRallBRUFBRWhHd0FJQUFKQ01nQVVBQUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNG
Z0FBQUNTRWJBQUFBQWtJMkFCQUFCSQpSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQVpB
UXNBQUFBeVFoWUFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQUFnQUFrSXlBCkJRQUFJQmtCQ3dBQVFE
SUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFKSVJzQUFBQUNRallBRUFBRWhHd0FJQUFKQ01nQVVBQUNB
WkFRc0EKQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUFBQUFrSTJBQkFBQklSc0FDQUFD
UWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQQpaQVFzQUFBQXlRaFlBQUFBa2hHd0FBQUFKQ05nQVFB
QVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJCldBQUFBSklSc0FB
QUFDUWpZQUVBQUVoR3dBSUFBSkNNZ0FVQUFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdB
QUFDU0ViQUEKQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZ0dRRUxBQUJBTWdJV0FBQ0FaQVFz
QUFBQXlRaFlBQUFBa2hHd0FBQUFKQ05nQVFBQQpTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFRRElD
RmdBQWdHUUVMQUFBQU1rSVdBQUFBSklSc0FBQUFDUWpZQUVBQUVoR3dBSUFBSkNNCmdBVUFBQ0Fa
QVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKQ0ZnQUFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1Fq
SUFGQUFBZ0dRRUwKQUFCQU1nSVdBQUNBWkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBSkNOZ0FRQUFT
RWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdBQQpnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFB
Q1FqWUFFQUFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKCkNGZ0FB
QUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FB
QUF5UWhZQUFBQWtoR3cKQUFBQUpDTmdBUUFBU0ViQUFnQUFrSXlBQlFBQUlCa0JDd0FBUURJQ0Zn
QUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQQpBRWhHd0FJQUFKQ01nQVVBQUNBWkFR
c0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNGZ0FBQUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRCmpJ
QUZBQUFnR1FFTEFBQkFNZ0lXQUFDQVpBUXNBQUFBeWY1L3UybnNuODVLZXEwQUFBQUFTVVZPUks1
Q1lJST0KCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1
Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46
bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWIt
cGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtH
Z29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJR
QTVNakptTjJZMApNVEF3TjJReE4yTXpZVEkwTldGaE9HRm1NVFpsTW1VNU5ZYW1QRFVBQUJkM1NV
UkJWSGljN2QxYmIxVG5vY2ZoQmNZT1lLQk5pV3h6Cmlnb0dIQTRoSUFxQlJNRnRJMUZCUTFxMXFi
amhJL1ZqY0VPcnBxMlNWQ3BOVzFHSm95MGdBUWRDWWt3NEdReVlRNHdkd3NIN1lyUm4KZXpPMkdj
d2ZHS3JudVVDRHZRN3ZlbDlML21uV3NqMXArL2J0QlFBQU9aT2Y5d0FBQVA3YkNDd0FnRENCQlFB
UUpyQUFBTUlFRmdCQQptTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3QUFE
Q0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKCkxBQ0FNSUVGQUJBMlpheFA3TnExYTZ4
UGJkcTA2Y2lSSTF1M2JuM2NrLzN6bi85ODk5MTNpNko0OE9EQnNXUEhUcDgrWFJURmloVXIKbGk1
ZCtyaUhlaXk5dmIzVkQvaXhObjdhZzNtc0l6enRrVmNxTDJqTmV2WnpVcVh5d0VhT3NQYm5FNEFx
alJsWVJWR3NXTEZpK2ZMbApreWRQM3JWcjEvYnQyMHRWZFBMa3lVT0hEbjMzM1hjVE9GbjVtOGZ4
NDhlYm1wcVdMMS9lMjl0NzdOaXhweDFZanpYZ2pvNk9vYUdoCkdobk1xTVlhNFpNZitYSFZmZzA4
K3ptcFVua1JSNjVtN2M4bkFGVWE4eGJockZtejJ0cmFKay8rdncwbVQ1NjhmUG55V2JObWJkdTIK
N1FuUCtzMDMzelEzTjlmWDE3LzY2cXUvL09Vdm4vQm9qL1JZQTM3dnZmZWUza2lLeHh6TXFNWWE0
Wk1mK2I5UHpjNUplUkdmOXRjYgpBTS9GbUlHMVpjdVcrdnI2aHo1WVgxKy9aY3VXa2RVMU1ZT0Rn
MDkra09vOTFybWUwc0R1M2J1WE92NVlSM2lXVS9xaWVCcHpVbDdLCkoxRWVtRlVEK0s4MDNpM0M4
UTBNRE96ZnYvL1dyVnVyVjY5dWJXMHRpdUwrL2ZzZEhSM256NStmTVdQRzIyKy9QWFBtekpIYmw1
ODEKS1QzZFZmcTM5RGpYMHFWTGp4OC9QbjM2OU0yYk41OCtmZnFMTDc0WUhCeWNPblhxc21YTGxp
eFpVdHF4dmIxOS8vNzlOMi9lWExObQp6ZXpac3c4Y09EQXdNUERHRzI4c1hyejRrYWN1dVhMbFNt
ZG41OURRME91dnY3NWt5WkxTQngrNTQ3bHo1dzRmUHZ6Z3dZTlZxMWExCnRyWU9EQXg4OHNrblJW
RzB0YlV0WHJ6NGswOCttVFJwVWwxZDNkcTFhNjlldmRyZDNWMFV4UWNmZkZCWFYxYyt3dGRmZjMz
a3lKRjUKOCthZE8zZHUrL2J0WTgxZTVibktzMVRhYStUcmtjNmZQLy81NTU4UERRMnRXN2V1OHFw
THN6ZHloaXN2dVpvWkhtdGR5azhSYmRxMAo2Y0NCQXpkdjNpenZNdEt0VzdjT0hqeDQ0OGFOZWZQ
bWJkeTRjZEtrU1k4YzJQWHIxL2Z2MzE4VXhhSkZpOWF0VzlmWjJWbWEzdC8rCjlyZFRwa3dweldF
MWExSGwxMm8xVjFHNWxNUER3NTkvL25sM2QzZGRYZDNLbFN0Ylcxc3JyMnZVbFIxcnBjYVp6OG81
SFBVNEFOU0MKaVFkV2IyL3ZUMy82MDZ0WHJ4NDZkS2owUGVQWXNXTXRMUzNyMTYrL2ZQbnk0Y09I
Mjl2YlIyNWZmaHBtKy9idHBZZTZpcUw0eTEvKwpjdWZPblduVHB2MzYxNzh1YmRiVjFmWHV1KzlP
bXpidDZ0V3JlL2JzV2JKa1NXbkh2cjYrOXZiMlM1Y3VkWFIwdlA3NjZ6LzcyYy82CisvdjM3OTlm
K3Q0ei9xbExob2FHTm0vZVBEZzRlUERnd2FsVHB5NVlzT0NSTy9iMzkzZDNkMi9ac3FXL3YzL2Z2
bjB6Wjg1c2FtcDYKLy8zM2QrL2V2V3pac3BkZWVtbjc5dTEvL2V0ZmYvR0xYMHlkT3JXNXVmbkNo
UXRidG13WldWZEZVWHoyMldkYnQyNjljZVBHdVhQbgp4cG05VWMvMTNudnZmZnp4eDZWZHRtN2Qr
cmUvL2UyaGk3cDgrZktwVTZmYTI5c2JHaHBPblRwVmVkVUhEeDU4YUlZckw3bWFHUjVyClhjb3Iy
OXZidTJuVHBtdlhyaDA0Y0tBeVRmYnQyN2Q4K2ZKNTgrYWRQSG55RDMvNFExMWQzWlFwVThZZjJL
Wk5tNlpQbjk3UjBiRnEKMWFxaUtIN3lrNTljdkhqeG5YZmVLZFZWVVJRelpzeW9jaTJxK1ZxdDVp
b3FsL0xFaVJNTkRRMi8rdFd2enA0OTI5WFYxZHJhV2puaApvNjVzNVVvOWNqNHI1N0NVandEVW9J
bmZubGl5WkVsOWZYMUxTMHY1SWVLelo4OGVQSGp3ajMvODQzLys4NThyVjY0OHRQMm96NXE4Ci8v
NzdSVkhNbXpldi9KRnQyN1pOblRxMXA2Zm44T0hEOSsvZkwrKzRjT0hDK3ZyNitmUG4zNzE3ZDht
U0pRME5EYzNOemQ5Ly8zMDEKcHk1NTlkVlg2K3JxWnM2Y3VYNzkraE1uVGxTejQ1RWpSOWF0Vzlm
UTBORFMwckptelpyRGh3OFhSVEZ0MnJRNWMrWmN1SENoS0lyKwovdjd2dnZ1dTlQcnMyYk0vL3ZH
UEd4b2FIanJJOU9uVEwxMjZOSGZ1M0pGdlBsWE8zcWpuYW14c0xPOHk2dHR5eDQ4Zlg3ZHVYV05q
ClkzMTkvYWcvSzFBNXc1V1hYTTBNajdVdXhmOCs1MVRhcGFXbHBiekxTQU1EQS9QbXphdXJxM3Z0
dGRkbXpacjF3UWNmUEhKZ2t5Wk4KZXVXVlYrYk9uZHZUMDFNVVJWOWZYMk5qNDhzdnZ6enlzRld1
UlRWZnE5VmNSZVZTZG5kM0wxNjh1SzZ1YnVIQ2hhVUpxYnl1VVZlMgowaVBuczNJT1J6ME9BTFZn
NHU5Z2xZeThUM0huenAzS0cxaGxENzJ2VTFMNUFNcjE2OWM3T3p2bnpwMzcxbHR2bGQ2d0dibmp5
Tk5WCmYrcUh6Smd4NCtiTm05WHMyTi9mUDNYcTFOTHJCUXNXZEhaMmxsN1Buei8vNjYrL1hyUm8w
VmRmZmJWMDZkSno1ODYxdHJiMjlQUzgKOWRaYmxRZHBiMi8vN0xQUFRwdzRzV0hEaGxkZWVXWGtw
MFpld2xqbkd0LzE2OWZMRVZiNXpGd3gyZ3hYWG5JMU16ek91b3c4eFZqMwpyUll1WFBqbGwxKzJ0
YlZkdkhqeHpwMDdWUTZzS0lyRml4ZnYyYlBudGRkZSsrcXJyOG8zZGtlcWZpM0cvNEtwNWlvcWwz
Sm9hT2loCmFhKzhyaXBYOXBIeldUbUhBTlNzNUFPMnMyYk5Lci8rNXB0dkpuYVF2WHYzYnRpd1lj
V0tGUys5OU5KVE92V3RXN2QrOElNZlZMUGoKckZtemVudDdTNi92Mzc5ZnpxUG01dVpyMTY0TkRB
eGN1M2J0alRmZXVIbno1dVhMbCt2cTZrWWVyV3o2OU9rYk4yNWN2MzU5NlltaQpjUzVoMUhNOTVN
R0RCeVAvTzMvKy9PdlhyNWRlMzcxN3QzS0RVVTlVZmwzOU1rMXNYY3BhVzFzdlhyejQ0WWNmSGp0
MmJNT0dEZFVQCnJMR3hzYkd4OGN5Wk0xZXZYcDAvZjM3bFhvKzFGdU9mNjVFcWw3Syt2bjU0ZUhq
OHZhcGMyVWVxWmc0QnFCR1BEcXpTOSsvKy92N3kKTjVMQndjR2lLRXEvdktkMHo2WDBlczZjT1dm
T25MbDM3OTdaczJjcnYybVY5aG9jSEN4dGZPUEdqZktPSTV2ZysrKy92M1hyMXREUQowSmt6WjRx
aXVILy8vbGluSy8xYit1ejRweTZLb3E2dXJxZW41OTY5ZTk5KysyM3BHYVBTeHl0M0hIbTZ0V3ZY
SGoxNjlOcTFhM2Z1CjNEbDgrUERxMWF2TFIydHVidDY3ZCsvQ2hRc25UNTQ4Wjg2Y1E0Y09MVnk0
Y05RSjNMVnIxN2x6NTZaTm0xYjY2Yk94TG1lc2N6VTAKTlBUMjl0NjllN2YwaU5YSEgzODg4Z2ly
VjY4dTdYWHYzcjJ1cnE2aUtENzY2S09SWjYrYzRmRXZlYXdaSG10ZEJnY0hiOSsrUGVydQpJKzNi
dCsvdHQ5LyszZTkrdDNYcjFwYVdsaW9IVnJKNDhlS09qbzdTVkkrNnN1T3NSZlZmcTlWY3hVTkxX
UlJGUzB0TFgxL2Y4UER3CnJWdTNTay9jVjE3WHFDdGJIdGhETDhhWno4bzVCS0JtMWExY3VYS2NU
Ky9hdGF2MDAxaW5UNS91NnVvcWJmemhoeDhXUmZIbGwxK3UKWExueVQzLzZVL24xN05tenYvamlp
NDZPam9HQmdYWHIxajMwVmtkcHIxT25UbjM1NVpkRlVYUjNkM2QxZFpWZTkvVDB0TFcxbFRhYgpN
bVZLWjJkblgxL2ZtalZyTGx5NE1EUTB0Ry9mdmxGUFZ6N2dJMDlkRk1XY09YTzZ1cnFPSERuUzE5
ZTNjdVhLdVhQbmxqNWV1ZVBJCnE1cytmZnJreVpNUEhUcDArdlRwdHJhMjV1Ym04Z0dIaDRkUG56
NjljZVBHMHAyZG5wNmVOOTk4YzlUYm9GMWRYUzB0TFh2MzdsMjEKYXRXUGZ2U2pzV1p2ckhQVjFk
VjFkbmIyOXZZdVg3NzgwcVZMYTlldS9jYy8vbEhlYThxVUtiTm56OTYzYjkrcFU2ZmEydHF1WGJ1
MgpkdTNha1U5cmxVNDNjb2JIditTeFpuaXNkVGwxNmxTcC9DcDNIemtKWjgrZVBYTGtTRmRYVjJu
UnAwNmQrdTkvLy91UkF5dDlmT2JNCm1TZE9uSGp6elRkSHZRYzYvbHBVLzdYNjV6Ly8rWkZYOGRC
U0ZrWFIxTlIwNU1pUnpzN09xMWV2TGx1MjdJYy8vR0hsaEkrNnN1V0IKbFdldjlHS2MrYXljdzVk
ZmZ2blRUejlkdEdqUnFOTUN3SE0wcWZwSGwyQmlidDY4ZWVmT25kS1B6ZzBQRDkrOGVmUFRUeit0
L2hudApLMWV1bkR4NThwMTMzbm1hWTZ4MVR6aUhBRHhqZnNraFQ5MmVQWHUrL2ZiYjBrL0QzYjE3
dDYrdmI4NmNPVlh1KytEQmc5S1QzVTl6CmdDK0FKNWxEQUo0OTcyRHgxSjAvZi83a3laTTNidHg0
OE9CQlkyUGozTGx6VjZ4WVVmbjdMQ3I5L2U5L3YzUG56dnIxNnoxeU5PRTUKQk9DNUVGZ0FBR0Z1
RVFJQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpM
QUNBTUlFRgpBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JC
UUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBCllRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVEWmxZ
cnQxZDNkbnh3Rk1XR3RyNi9NZUFnRC9qM2V3NE1XMllNR0M1ejBFQUI0MndYZXcKU243Lys5K254
Z0dVdExlM0YwV3hlL2Z1dnI2K3NiWnBhbXJhdkhselVSUy8rYzF2bnQzSUFLamFFd1VXOERUczNM
bHp4NDRkVDc0TgpBTStMVzRSUVczYnYzbDFOT2UzWXNXUDM3dDNQWUR3QVRJREFndG95enAzQkNX
OEp3RE1tc0FBQXdnUVdBRUNZd0lJWHdLUkprNTczCkVBQjREQUlMYWwycHJqUVd3QXRFWUVGTkc5
bFZHZ3ZnUlNHd29IWlZGcFhHQW5naCtFV2pVTHVHaDRlZjl4QUFtQWp2WUFFQWhBa3MKQUlBd2dR
VUFFT1laTEtnNU8zZnVmTjVEQU9DSmVBY0xBQ0RNTzFoUWM3WnQyMWI1d2R1M2J6LzBrWC85NjEv
UFpEZ0FQRGJ2WUFFQQpoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dB
Z1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXd2eXhaNmhwCkgzMzAwY2ovL3Z6blAzOWVJd0dnZWdJ
TGF0cTJiZHRLTDI3ZnZ2MThSd0pBOWR3aUJBQUk4dzRXMURTM0NBRmVSQUlMYXBwYmhBQXYKSXJj
SUFRREN2SU1GTmMwdFFvQVhrY0NDbXVZV0ljQ0x5QzFDQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpB
QWdBSUUxZ0FBR0VDQ3dBZwpUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3dnd0UXFnNUQvMkJad0Jl
T0FJTGFzN3ExYXVyMmV6bzBhTlBleVFBVEl4YmhBQUFZUUlMCkFDQk1ZQUVBaEFrc0FJQXdnUVVB
RUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUEK
d2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFt
TUFDQUFnVFdBQUFZUUlMQUNCTQpZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlF
MWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXCkFFQ1l3QUlBQ0JOWUFBQmhB
Z3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlB
RUEKaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxB
Q0FNSUVGQUJBbXNBQUF3Z1FXQUVDWQp3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJR
QVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzCkFJQXdnUVVBRUNhd0FB
RENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVD
WXdBSUEKQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFn
VFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlBdwpnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdF
Q0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUFDQk5ZCkFBQmhBZ3NBSUV4
Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtz
QUlBd2dRVUEKRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVG
QUJBbXNBQUF3Z1FXQUVEWWxPYzlBT0JoUjQ4ZQpmZDVEQU9DSkNDeW9PVHQyN0tobXM1MDdkejd0
a1FBd01XNFJBZ0NFQ1N3QWdEQ0JCUUFRSnJBQUFNSTg1QTYxYTlLa1NaVWZIQjRlCmZ2WWpBZUN4
ZUFjTGFsZGxTNmtyZ0JlQ3dJS2FOcktvMUJYQWkwSmdRYTByZFpXNkFuaUJDQ3g0QWFncmdCZUx3
QUlBQ0JOWVVGdWEKbXByaVd3THdqQWtzcUMyYk4yK3U1bzhNN3R5NWMvUG16YzlnUEFCTWdOK0RC
VFZueDQ0ZHUzZnY3dXZyRzJ1RHBxYW1LdjhnTkFEUAp4YVR0MjdkUFlMZnU3dTZpS0JZc1dKQWVE
L0RZR2hvYW52Y1FBUGgvSm42TFVGMEJBSXhxZ3JjSVcxdGJzK01BQVBpdjRTRjNBSUF3CmdRVUFF
Q2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdn
UVdBRUNZd0FJQUNCTlkKQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1N
QUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQQpFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUx
Z0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoCkFn
c0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFF
QWhBa3NBSUF3Z1FVQUVDYXcKQUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFD
QU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQQpJRXhnQVFDRUNTd0FnRENCQlFB
UUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURD
CkJCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZ
d0FJQUNCTllBQUJoQWdzQUlFeGcKQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdU
V0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQQpRSmpBQWdBSUUxZ0FBR0VD
Q3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdB
UUNFCkNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NB
SUF3Z1FVQUVDYXdBQURDQkJZQVFKakEKQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZB
QkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QQpnRENCQlFBUUpyQUFB
TUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFK
akFBZ0FJCkUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNC
TllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0IKQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlR
SUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQQpBR0VDQ3dBZ1RH
QUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3
QWdEQ0JCUUFRCkpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FV
QUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUMKQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FB
QXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQQpBTUlFRmdC
QW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJ
RTFnQUFHRUNDd0FnClRHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJo
QWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUUKRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JN
WUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQgpBSVFK
TEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JC
UUFRSnJBQUFNSUVGZ0JBCm1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdB
QURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUoKTEFDQU1JRUZBQkFtc0FBQXdnUVdB
RUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQwpB
QWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFH
RUNDd0FnVEdBQkFJUUpMQUNBCk1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlF
eGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1QKV0FBQVlRSUxBQ0JNWUFFQWhB
a3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlF
RgpBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJB
QUFNSUVGZ0JBbU1BQ0FBajdIMkU4CktSRDMvK0tOQUFBQUFFbEZUa1N1UW1DQwoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168299</attachid>
            <date>2012-10-11 15:54:42 -0700</date>
            <delta_ts>2012-10-11 17:34:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-98571-20121011155342.patch</filename>
            <type>text/plain</type>
            <size>118035</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMTA5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExOSBAQAorMjAxMi0xMC0xMSAgTGV2aSBX
ZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1N1YiBwaXhlbCBsYXlv
dXRdIEZhc3QtcGF0aCBpZnJhbWUgc2Nyb2xsaW5nIGNhbiBwaWNrcyB1cCBhbiBleHRyYSBwaXhl
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBFbWlsIEEgRWtsdW5kLgorCisgICAgICAgIFJlZmFjdG9y
aW5nIGFsbCBjb29yZGluYXRlLXN3aXRjaGluZyBmdW5jdGlvbmFsaXR5IHRvIHVzZSBhIHNpbmds
ZSAibW9kZSIgZmxhZworICAgICAgICBhcyBvcHBvc2VkIHRvIGhhdmluZyBhIGJ1bmNoIG9mIGJv
b2xlYW4gdmFsdWVzLiBUaGlzIGVuYWJsZXMgdGhlIHNhbWUgc2V0IG9mCisgICAgICAgIG9wdGlv
bnMgYWNyb3NzIHRoZSBib2FyZCwgYW5kIGEgY29uc2lzdGVudCBpbnRlcmZhY2UuIFRoaXMgd2Fz
IHByZXZpb3VzbHkKKyAgICAgICAgZG9uZSBmb3IgbWFwTG9jYWxUb0NvbnRhaW5lci4KKworICAg
ICAgICBUaGUgaW1wdGV0dXMgZm9yIHRoaXMgZm9yIHRoaXMgc3RlbXMgZnJvbSB0aGUgb25lIGxv
Z2ljYWwgY2hhbmdlIGluIHRoaXMgcGF0Y2gKKyAgICAgICAgd2hpY2ggb25seSBlZmZlY3RzIHN1
Yi1waXhlbCBsYXlvdXQuIEZyYW1lVmlldzo6Y29udmVydFRvUmVuZGVyZXIgYW5kCisgICAgICAg
IGNvbnZlcnRGcm9tUmVuZGVyZXIgcmV0dXJuIEludFBvaW50IGNvb3JkaW5hdGVzLCBhbmQgbmVl
ZCB0byBhbHNvIHNuYXAgdHJhbnNmb3JtCisgICAgICAgIG9mZnNldHMgdG8gZGV0ZXJtaW5lIHBy
b3BlciByZWN0cyBmb3Igc2Nyb2xsaW5nLgorCisgICAgICAgIFVubGFiZWxlZCBmdW5jdGlvbnMg
YmVsb3cgYXJlIHNpbXBseSBiZWluZyB1cGRhdGVkIHRvIHRoZXNlIG5ldyBpbnRlcmZhY2VzLgor
CisgICAgICAgIFRlc3Q6IGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1z
Y3JvbGwuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL0Nv
bnRhaW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6Z2V0VXBw
ZXJMZWZ0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmdldExvd2Vy
UmlnaHRDb3JuZXIpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmJvdW5kc0luUm9vdFZpZXdTcGFjZSk6CisgICAgICAgICogZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50Ojpj
b21wdXRlUmVsYXRpdmVQb3NpdGlvbik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6Y29udmVydFRvUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
Ojpjb252ZXJ0RnJvbVBhZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21Q
b2ludCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6Y29udmVydFRvUmVuZGVyZXIpOiBOb3cgcGl4ZWwtc25hcHMgb2Zmc2V0cyBiZWZvcmUgcGFz
c2luZworICAgICAgICB0aGVtIHRvIFRyYW5zZm9ybVN0YXRlLCB3aGljaCB0cmFuc2Zvcm1zIHRo
ZSBjb29yZGluYXRlcy4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y29udmVydEZyb21S
ZW5kZXJlcik6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
YWJzb2x1dGVRdWFkcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmFic29sdXRlUXVhZHMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guaDoKKyAgICAgICAgKFJlbmRlckJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVs
T2JqZWN0OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJCb3hNb2RlbE9iamVjdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0Ojppc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0
b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckdlb21ldHJ5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdlb21ldHJ5
TWFwOjphYnNvbHV0ZVBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVuZGVySW5s
aW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmFic29sdXRlVG9Db250ZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNv
bnRyb2xzOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVM
aXN0OjpzaG93UG9wdXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQWJzb2x1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjphYnNvbHV0ZVRvTG9jYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250YWluZXJQb2ludCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoUmVuZGVyT2JqZWN0KTogTWFwTG9jYWxU
b0NvbnRhaW5lckZsYWdzIGlzIG5vdyBNYXBDb29yZGluYXRlc0ZsYWdzIHNpbmNlIGl0J3MKKyAg
ICAgICAgbm93IHVzZWQgZm9yIG90aGVyIGNvbnZlcnNpb24gbWV0aG9kcy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6bG9jYWxUb0Fic29sdXRlUXVhZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjp2
b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6bWFwTG9jYWxUb0Nv
bnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjptYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFJl
bmRlclZpZXcpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2Nh
bFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25P
YmplY3QuaDoKKyAgICAgICAgKFJlbmRlclNWR0ZvcmVpZ25PYmplY3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAgICAgICAgKFJlbmRlclNWR0lubGluZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAoUmVuZGVy
U1ZHTW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKFJl
bmRlclNWR1Jvb3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaDoKKyAgICAgICAgKFJlbmRl
clNWR1RleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVy
KToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdTVkdFbGVtZW50Ojpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybSk6CisKIDIwMTItMTAt
MTEgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVk
REI6IElETCB0eXBlcyBkZWZpbmVkIGluIHNwZWMgc2hvdWxkIGJlIHZpc2libGUgdG8gc2NyaXB0
cwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDEzMTA5NikKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMTI1LDggKzExMjUsOCBA
QCBfX1pOSzdXZWJDb3JlMTFSZW5kZXJTdHlsZTIxdmlzaXRlZERlcGVuCiBfX1pOSzdXZWJDb3Jl
MTFSZW5kZXJTdHlsZTRmb250RXYKIF9fWk5LN1dlYkNvcmUxMVNjcmlwdFZhbHVlOWdldFN0cmlu
Z0VQTjNKU0M5RXhlY1N0YXRlRVJOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJP
YmplY3QxNGVuY2xvc2luZ0xheWVyRXYKLV9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9j
YWxUb0Fic29sdXRlRVJLTlNfMTBGbG9hdFBvaW50RWJiCi1fX1pOSzdXZWJDb3JlMTJSZW5kZXJP
YmplY3QyMGxvY2FsVG9Db250YWluZXJRdWFkRVJLTlNfOUZsb2F0UXVhZEVQTlNfMjJSZW5kZXJM
YXllck1vZGVsT2JqZWN0RWJiUGIKK19fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9jYWxU
b0Fic29sdXRlRVJLTlNfMTBGbG9hdFBvaW50RWoKK19fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVj
dDIwbG9jYWxUb0NvbnRhaW5lclF1YWRFUktOU185RmxvYXRRdWFkRVBOU18yMlJlbmRlckxheWVy
TW9kZWxPYmplY3RFalBiCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QyM2Fic29sdXRlQm91
bmRpbmdCb3hSZWN0RWIKIF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDM5cGl4ZWxTbmFwcGVk
QWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0RXYKIF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVj
dDdjaGlsZEF0RWoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJKHJldmlz
aW9uIDEzMTA5NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzQ2LDcgKzc0Niw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6Z2V0VXBw
ZXJMZWZ0Q29ybmVyKEYKICAgICBSZW5kZXJPYmplY3QqIHAgPSBvOwogCiAgICAgaWYgKCFvLT5p
c0lubGluZSgpIHx8IG8tPmlzUmVwbGFjZWQoKSkgewotICAgICAgICBwb2ludCA9IG8tPmxvY2Fs
VG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcG9pbnQgPSBv
LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBVc2VUcmFuc2Zvcm1zKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC03NzEsNyArNzcxLDcgQEAgYm9vbCBDb250YWluZXJO
b2RlOjpnZXRVcHBlckxlZnRDb3JuZXIoRgogICAgICAgICBBU1NFUlQobyk7CiAKICAgICAgICAg
aWYgKCFvLT5pc0lubGluZSgpIHx8IG8tPmlzUmVwbGFjZWQoKSkgewotICAgICAgICAgICAgcG9p
bnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAg
ICAgICAgICBwb2ludCA9IG8tPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5z
Zm9ybXMpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIApAQCAtNzg1LDcg
Kzc4NSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6Z2V0VXBwZXJMZWZ0Q29ybmVyKEYKICAgICAg
ICAgICAgICAgICBSZW5kZXJCb3gqIGJveCA9IHRvUmVuZGVyQm94KG8pOwogICAgICAgICAgICAg
ICAgIHBvaW50Lm1vdmVCeShib3gtPmxvY2F0aW9uKCkpOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fic29sdXRlKHBvaW50LCBmYWxz
ZSwgdHJ1ZSk7CisgICAgICAgICAgICBwb2ludCA9IG8tPmNvbnRhaW5lcigpLT5sb2NhbFRvQWJz
b2x1dGUocG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTgwNyw3ICs4MDcs
NyBAQCBib29sIENvbnRhaW5lck5vZGU6OmdldExvd2VyUmlnaHRDb3JuZXIoCiAgICAgUmVuZGVy
T2JqZWN0KiBvID0gcmVuZGVyZXIoKTsKICAgICBpZiAoIW8tPmlzSW5saW5lKCkgfHwgby0+aXNS
ZXBsYWNlZCgpKSB7CiAgICAgICAgIFJlbmRlckJveCogYm94ID0gdG9SZW5kZXJCb3gobyk7Ci0g
ICAgICAgIHBvaW50ID0gby0+bG9jYWxUb0Fic29sdXRlKExheW91dFBvaW50KGJveC0+c2l6ZSgp
KSwgZmFsc2UsIHRydWUpOworICAgICAgICBwb2ludCA9IG8tPmxvY2FsVG9BYnNvbHV0ZShMYXlv
dXRQb2ludChib3gtPnNpemUoKSksIFVzZVRyYW5zZm9ybXMpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKQEAgLTg0MCw3ICs4NDAsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmdldExv
d2VyUmlnaHRDb3JuZXIoCiAgICAgICAgICAgICAgICAgUmVuZGVyQm94KiBib3ggPSB0b1JlbmRl
ckJveChvKTsKICAgICAgICAgICAgICAgICBwb2ludC5tb3ZlQnkoYm94LT5mcmFtZVJlY3QoKS5t
YXhYTWF4WUNvcm5lcigpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvaW50ID0gby0+
Y29udGFpbmVyKCktPmxvY2FsVG9BYnNvbHV0ZShwb2ludCwgZmFsc2UsIHRydWUpOworICAgICAg
ICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fic29sdXRlKHBvaW50LCBVc2VU
cmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCShyZXZpc2lvbiAx
MzEwOTYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBNb3VzZVJlbGF0ZWRFdmVudDo6Y29t
cHV0ZVJlbGF0aXZlUAogICAgIC8vIEFkanVzdCBvZmZzZXRMb2NhdGlvbiB0byBiZSByZWxhdGl2
ZSB0byB0aGUgdGFyZ2V0J3MgcG9zaXRpb24uCiAgICAgaWYgKCFpc1NpbXVsYXRlZCgpKSB7CiAg
ICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHIgPSB0YXJnZXROb2RlLT5yZW5kZXJlcigpKSB7Ci0g
ICAgICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0gci0+YWJzb2x1dGVUb0xvY2FsKGFic29s
dXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgRmxvYXRQb2ludCBsb2Nh
bFBvcyA9IHItPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9y
bXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICBtX29mZnNldExvY2F0
aW9uID0gcm91bmRlZExheW91dFBvaW50KGxvY2FsUG9zKTsKICAgICAgICAgICAgIGZsb2F0IHNj
YWxlRmFjdG9yID0gMSAvIChwYWdlWm9vbUZhY3Rvcih0aGlzKSAqIGZyYW1lU2NhbGVGYWN0b3Io
dGhpcykpOwogICAgICAgICAgICAgaWYgKHNjYWxlRmFjdG9yICE9IDEuMGYpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCShyZXZpc2lvbiAxMzEwOTYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNzAsNyArMjA3MCw3IEBAIEZsb2F0UG9pbnQgTm9kZTo6
Y29udmVydFRvUGFnZShjb25zdCBGbG8KIHsKICAgICAvLyBJZiB0aGVyZSBpcyBhIHJlbmRlcmVy
LCBqdXN0IGFzayBpdCB0byBkbyB0aGUgY29udmVyc2lvbgogICAgIGlmIChyZW5kZXJlcigpKQot
ICAgICAgICByZXR1cm4gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlKHAsIGZhbHNlLCB0cnVl
KTsKKyAgICAgICAgcmV0dXJuIHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZShwLCBVc2VUcmFu
c2Zvcm1zKTsKICAgICAKICAgICAvLyBPdGhlcndpc2UgZ28gdXAgdGhlIHRyZWUgbG9va2luZyBm
b3IgYSByZW5kZXJlcgogICAgIEVsZW1lbnQgKnBhcmVudCA9IGFuY2VzdG9yRWxlbWVudCgpOwpA
QCAtMjA4NSw3ICsyMDg1LDcgQEAgRmxvYXRQb2ludCBOb2RlOjpjb252ZXJ0RnJvbVBhZ2UoY29u
c3QgRgogewogICAgIC8vIElmIHRoZXJlIGlzIGEgcmVuZGVyZXIsIGp1c3QgYXNrIGl0IHRvIGRv
IHRoZSBjb252ZXJzaW9uCiAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiByZW5k
ZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwocCwgZmFsc2UsIHRydWUpOworICAgICAgICByZXR1cm4g
cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKHAsIFVzZVRyYW5zZm9ybXMpOwogCiAgICAgLy8g
T3RoZXJ3aXNlIGdvIHVwIHRoZSB0cmVlIGxvb2tpbmcgZm9yIGEgcmVuZGVyZXIKICAgICBFbGVt
ZW50ICpwYXJlbnQgPSBhbmNlc3RvckVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCShyZXZpc2lvbiAxMzEwOTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2NCw3
ICsxMjY0LDcgQEAgSW50UmVjdCBDYXJldEJhc2U6OmFic29sdXRlQm91bmRzRm9yTG9jYQogICAg
IExheW91dFJlY3QgbG9jYWxSZWN0KHJlY3QpOwogICAgIGlmIChjYXJldFBhaW50ZXItPmlzQm94
KCkpCiAgICAgICAgIHRvUmVuZGVyQm94KGNhcmV0UGFpbnRlciktPmZsaXBGb3JXcml0aW5nTW9k
ZShsb2NhbFJlY3QpOwotICAgIHJldHVybiBjYXJldFBhaW50ZXItPmxvY2FsVG9BYnNvbHV0ZVF1
YWQoRmxvYXRSZWN0KGxvY2FsUmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0
dXJuIGNhcmV0UGFpbnRlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0
KSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9CiAK
IEludFJlY3QgRnJhbWVTZWxlY3Rpb246OmFic29sdXRlQ2FyZXRCb3VuZHMoKQpJbmRleDogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCShyZXZpc2lvbiAxMzEw
OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzAsNyArMjMwLDcgQEAgSW50UmVjdCBSZW5kZXJlZFBvc2l0aW9uOjph
YnNvbHV0ZVJlY3QoTAogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogCiAgICAgSW50UmVjdCBs
b2NhbFJlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KG1fcmVuZGVyZXItPmxvY2FsQ2FyZXRSZWN0
KG1faW5saW5lQm94LCBtX29mZnNldCwgZXh0cmFXaWR0aFRvRW5kT2ZMaW5lKSk7Ci0gICAgcmV0
dXJuIGxvY2FsUmVjdCA9PSBJbnRSZWN0KCkgPyBJbnRSZWN0KCkgOiBtX3JlbmRlcmVyLT5sb2Nh
bFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChsb2NhbFJlY3QpKS5lbmNsb3NpbmdCb3VuZGluZ0Jv
eCgpOworICAgIHJldHVybiBsb2NhbFJlY3QgPT0gSW50UmVjdCgpID8gSW50UmVjdCgpIDogbV9y
ZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSwgU25hcE9m
ZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9CiAKIGJvb2wgcmVu
ZGVyT2JqZWN0Q29udGFpbnNQb3NpdGlvbihSZW5kZXJPYmplY3QqIHRhcmdldCwgY29uc3QgUG9z
aXRpb24mIHBvc2l0aW9uKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9z
aXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBv
c2l0aW9uLmNwcAkocmV2aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9W
aXNpYmxlUG9zaXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MjQsNyArNjI0LDcgQEAgSW50
UmVjdCBWaXNpYmxlUG9zaXRpb246OmFic29sdXRlQ2FyZXRCbwogICAgIGlmIChsb2NhbFJlY3Qu
aXNFbXB0eSgpIHx8ICFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKIAotICAg
IHJldHVybiByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0
KSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICByZXR1cm4gcmVuZGVyZXItPmxvY2FsVG9B
YnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
KS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogfQogCiBpbnQgVmlzaWJsZVBvc2l0aW9uOjpsaW5l
RGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRpb24oKSBjb25zdApJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDEzMTA5
NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjg5LDcgKzEyODksNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0
Qm94RGVmYXVsdEV2CiAKICAgICAgICAgLy8gQ29udmVydCB0byBjb29yZHMgcmVsYXRpdmUgdG8g
dGhlIGxpc3QgYm94IGlmIG5lZWRlZC4KICAgICAgICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9
IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCk7Ci0gICAgICAgIEludFBvaW50IGxvY2Fs
T2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3Vz
ZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKSk7CisgICAgICAgIEludFBv
aW50IGxvY2FsT2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9M
b2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMgfCBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3JtcykpOwogICAgICAgICBpbnQgbGlzdEluZGV4ID0gdG9SZW5kZXJM
aXN0Qm94KHJlbmRlcmVyKCkpLT5saXN0SW5kZXhBdE9mZnNldCh0b1NpemUobG9jYWxPZmZzZXQp
KTsKICAgICAgICAgaWYgKGxpc3RJbmRleCA+PSAwKSB7CiAgICAgICAgICAgICBpZiAoIWRpc2Fi
bGVkKCkpIHsKQEAgLTEzMDksNyArMTMwOSw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxp
c3RCb3hEZWZhdWx0RXYKICAgICAgICAgaWYgKG1vdXNlRXZlbnQtPmJ1dHRvbigpICE9IExlZnRC
dXR0b24gfHwgIW1vdXNlRXZlbnQtPmJ1dHRvbkRvd24oKSkKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICBJbnRQb2ludCBsb2NhbE9mZnNldCA9IHJvdW5kZWRJbnRQb2ludChyZW5kZXJl
cigpLT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxz
ZSwgdHJ1ZSkpOworICAgICAgICBJbnRQb2ludCBsb2NhbE9mZnNldCA9IHJvdW5kZWRJbnRQb2lu
dChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlv
bigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKICAgICAgICAg
aW50IGxpc3RJbmRleCA9IHRvUmVuZGVyTGlzdEJveChyZW5kZXJlcigpKS0+bGlzdEluZGV4QXRP
ZmZzZXQodG9TaXplKGxvY2FsT2Zmc2V0KSk7CiAgICAgICAgIGlmIChsaXN0SW5kZXggPj0gMCkg
ewogICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJKHJldmlzaW9uIDEzMTA5
NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVu
dDo6c2V0UG9zaXRpb25Gcm9tCiAgICAgICAgIHJldHVybjsKIAogICAgIGlucHV0LT5zZXRUZXh0
QXNPZkxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KGlucHV0LT52YWx1ZSgpKTsKLSAgICBMYXlv
dXRQb2ludCBvZmZzZXQgPSByb3VuZGVkTGF5b3V0UG9pbnQoaW5wdXQtPnJlbmRlcmVyKCktPmFi
c29sdXRlVG9Mb2NhbChwb2ludCwgZmFsc2UsIHRydWUpKTsKKyAgICBMYXlvdXRQb2ludCBvZmZz
ZXQgPSByb3VuZGVkTGF5b3V0UG9pbnQoaW5wdXQtPnJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2Nh
bChwb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiAgICAg
Ym9vbCBpc1ZlcnRpY2FsID0gaGFzVmVydGljYWxBcHBlYXJhbmNlKGlucHV0KTsKICAgICBib29s
IGlzTGVmdFRvUmlnaHREaXJlY3Rpb24gPSByZW5kZXJCb3goKS0+c3R5bGUoKS0+aXNMZWZ0VG9S
aWdodERpcmVjdGlvbigpOwogICAgIExheW91dFVuaXQgdHJhY2tTaXplOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAkocmV2aXNp
b24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmQKICAgICB9CiAKICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2
ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKLSAgICBJbnRQb2ludCBsb2Nh
bCA9IHJvdW5kZWRJbnRQb2ludChib3gtPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5hYnNv
bHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKSk7CisgICAgSW50UG9pbnQgbG9jYWwgPSByb3Vu
ZGVkSW50UG9pbnQoYm94LT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVMb2Nh
dGlvbigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKICAgICBp
ZiAobW91c2VFdmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBt
b3VzZUV2ZW50LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlmIChib3gtPnBp
eGVsU25hcHBlZEJvcmRlckJveFJlY3QoKS5jb250YWlucyhsb2NhbCkpIHsKICAgICAgICAgICAg
IC8vIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIG9mIEhUTUxJbnB1dEVsZW1lbnQgbWF5IHJ1biBK
YXZhU2NyaXB0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiAxMzEw
OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM0NzUsNyArMzQ3NSw3IEBAIHZvaWQgRnJhbWVWaWV3OjphZGp1c3RQYWdlSGVpZ2h0RGVw
cmVjYXQKIAogSW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tUmVuZGVyZXIoY29uc3QgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50UmVjdCYgcmVuZGVyZXJSZWN0KSBjb25zdAog
ewotICAgIEludFJlY3QgcmVjdCA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0
UmVjdChyZW5kZXJlclJlY3QpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIEludFJlY3Qg
cmVjdCA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChyZW5kZXJlclJl
Y3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKIAog
ICAgIC8vIENvbnZlcnQgZnJvbSBwYWdlICgiYWJzb2x1dGUiKSB0byBGcmFtZVZpZXcgY29vcmRp
bmF0ZXMuCiAgICAgaWYgKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKQEAgLTM0OTQsMTMgKzM0OTQs
MTMgQEAgSW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRUb1JlbmRlcmVyKGNvbgogCiAgICAgLy8g
RklYTUU6IHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gbWFwIGFuIGFic29sdXRlIHJlY3QgZG93biB0
byBhIGxvY2FsIHF1YWQsIHNvIGp1c3QKICAgICAvLyBtb3ZlIHRoZSByZWN0IGZvciBub3cuCi0g
ICAgcmVjdC5zZXRMb2NhdGlvbihyb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9M
b2NhbChyZWN0LmxvY2F0aW9uKCksIGZhbHNlLCB0cnVlIC8qIHVzZSB0cmFuc2Zvcm1zICovKSkp
OworICAgIHJlY3Quc2V0TG9jYXRpb24ocm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0
ZVRvTG9jYWwocmVjdC5sb2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMpKSk7CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKIEludFBvaW50IEZyYW1lVmlldzo6
Y29udmVydEZyb21SZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJ
bnRQb2ludCYgcmVuZGVyZXJQb2ludCkgY29uc3QKIHsKLSAgICBJbnRQb2ludCBwb2ludCA9IHJv
dW5kZWRJbnRQb2ludChyZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKHJlbmRlcmVyUG9pbnQsIGZh
bHNlLCB0cnVlIC8qIHVzZSB0cmFuc2Zvcm1zICovKSk7CisgICAgSW50UG9pbnQgcG9pbnQgPSBy
b3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZShyZW5kZXJlclBvaW50LCBV
c2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKIAogICAgIC8vIENvbnZl
cnQgZnJvbSBwYWdlICgiYWJzb2x1dGUiKSB0byBGcmFtZVZpZXcgY29vcmRpbmF0ZXMuCiAgICAg
aWYgKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKQEAgLTM1MTYsNyArMzUxNiw3IEBAIEludFBvaW50
IEZyYW1lVmlldzo6Y29udmVydFRvUmVuZGVyZXIoY28KICAgICBpZiAoIWRlbGVnYXRlc1Njcm9s
bGluZygpKQogICAgICAgICBwb2ludCArPSBJbnRTaXplKHNjcm9sbFgoKSwgc2Nyb2xsWSgpKTsK
IAotICAgIHJldHVybiByb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChw
b2ludCwgZmFsc2UsIHRydWUgLyogdXNlIHRyYW5zZm9ybXMgKi8pKTsKKyAgICByZXR1cm4gcm91
bmRlZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocG9pbnQsIFVzZVRyYW5zZm9y
bXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykpOwogfQogCiBJbnRSZWN0IEZyYW1lVmlldzo6
Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UmVjdCYgbG9jYWxSZWN0KSBjb25zdApJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNp
b24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDY3LDcgKzEwNjcsNyBAQCB2b2lkIElubGluZVRleHRCb3g6
OnBhaW50RG9jdW1lbnRNYXJrZXIoCiAgICAgICAgIC8vIGRpc3BsYXkgYSB0b29sVGlwLiBXZSBk
b24ndCBkbyB0aGlzIGZvciBtaXNzcGVsbGluZyBtYXJrZXJzLgogICAgICAgICBpZiAoZ3JhbW1h
ciB8fCBpc0RpY3RhdGlvbk1hcmtlcikgewogICAgICAgICAgICAgbWFya2VyUmVjdC5tb3ZlKC1i
b3hPcmlnaW4ueCgpLCAtYm94T3JpZ2luLnkoKSk7Ci0gICAgICAgICAgICBtYXJrZXJSZWN0ID0g
cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCkpLmVu
Y2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgICAgICAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIo
KS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCksIFNuYXBPZmZzZXRG
b3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogICAgICAgICAgICAgdG9SZW5k
ZXJlZERvY3VtZW50TWFya2VyKG1hcmtlciktPnNldFJlbmRlcmVkUmVjdChtYXJrZXJSZWN0KTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTExMDUsNyArMTEwNSw3IEBAIHZvaWQgSW5saW5lVGV4dEJv
eDo6cGFpbnRUZXh0TWF0Y2hNYXJrZXIKIAogICAgIC8vIEFsd2F5cyBjb21wdXRlIGFuZCBzdG9y
ZSB0aGUgcmVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBtYXJrZXIuIFRoZSBjb21wdXRlZCByZWN0
IGlzIGluIGFic29sdXRlIGNvb3JkaW5hdGVzLgogICAgIEludFJlY3QgbWFya2VyUmVjdCA9IGVu
Y2xvc2luZ0ludFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0Rm9yVGV4dChydW4sIEludFBvaW50KHgo
KSwgc2VsZWN0aW9uVG9wKCkpLCBzZWxIZWlnaHQsIHNQb3MsIGVQb3MpKTsKLSAgICBtYXJrZXJS
ZWN0ID0gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVj
dCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgbWFya2VyUmVjdCA9IHJlbmRlcmVyKCkt
PmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmtlclJlY3QpLCBTbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtcykuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKICAgICB0b1JlbmRlcmVkRG9jdW1l
bnRNYXJrZXIobWFya2VyKS0+c2V0UmVuZGVyZWRSZWN0KG1hcmtlclJlY3QpOwogICAgIAogICAg
IC8vIE9wdGlvbmFsbHkgaGlnaGxpZ2h0IHRoZSB0ZXh0CkBAIC0xMTMzLDcgKzExMzMsNyBAQCB2
b2lkIElubGluZVRleHRCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwbGFjCiAgICAgCiAgICAgLy8gQ29t
cHV0ZSBhbmQgc3RvcmUgdGhlIHJlY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFya2VyLgogICAg
IEludFJlY3QgbWFya2VyUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0
Rm9yVGV4dChydW4sIHN0YXJ0UG9pbnQsIGgsIHNQb3MsIGVQb3MpKTsKLSAgICBtYXJrZXJSZWN0
ID0gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCkp
LmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgbWFya2VyUmVjdCA9IHJlbmRlcmVyKCktPmxv
Y2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmtlclJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcykuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKICAgICB0b1JlbmRlcmVkRG9jdW1lbnRN
YXJrZXIobWFya2VyKS0+c2V0UmVuZGVyZWRSZWN0KG1hcmtlclJlY3QpOwogfQogICAgIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCShyZXZpc2lvbiAxMzEw
OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRT
dGF0ZSogcHIKICAgICBib29sIGZpeGVkID0gcmVuZGVyZXItPmlzT3V0T2ZGbG93UG9zaXRpb25l
ZCgpICYmIHJlbmRlcmVyLT5zdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb247CiAg
ICAgaWYgKGZpeGVkKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3Qgd29yayBjb3Jy
ZWN0bHkgd2l0aCB0cmFuc2Zvcm1zLgotICAgICAgICBGbG9hdFBvaW50IGZpeGVkT2Zmc2V0ID0g
cmVuZGVyZXItPnZpZXcoKS0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgdHJ1ZSk7Cisg
ICAgICAgIEZsb2F0UG9pbnQgZml4ZWRPZmZzZXQgPSByZW5kZXJlci0+dmlldygpLT5sb2NhbFRv
QWJzb2x1dGUoRmxvYXRQb2ludCgpLCBJc0ZpeGVkKTsKICAgICAgICAgbV9wYWludE9mZnNldCA9
IExheW91dFNpemUoZml4ZWRPZmZzZXQueCgpLCBmaXhlZE9mZnNldC55KCkpICsgb2Zmc2V0Owog
ICAgIH0gZWxzZQogICAgICAgICBtX3BhaW50T2Zmc2V0ID0gcHJldi0+bV9wYWludE9mZnNldCAr
IG9mZnNldDsKQEAgLTE0OCw3ICsxNDgsNyBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoUmVu
ZGVyT2JqZWN0KiByCiAjZW5kaWYKIHsKICAgICBSZW5kZXJPYmplY3QqIGNvbnRhaW5lciA9IHJv
b3QtPmNvbnRhaW5lcigpOwotICAgIEZsb2F0UG9pbnQgYWJzQ29udGVudFBvaW50ID0gY29udGFp
bmVyLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgRmxv
YXRQb2ludCBhYnNDb250ZW50UG9pbnQgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9h
dFBvaW50KCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAg
bV9wYWludE9mZnNldCA9IExheW91dFNpemUoYWJzQ29udGVudFBvaW50LngoKSwgYWJzQ29udGVu
dFBvaW50LnkoKSk7CiAKICAgICBpZiAoY29udGFpbmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkgewpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAx
MzEwOTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NzcwLDEwICs2NzcwLDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFic29s
dXRlUXVhZHMoVmVjdG9yPEYKICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ2NzgxCiAgICAgICAgIEZsb2F0UmVjdCBsb2NhbFJlY3QoMCwgLWNvbGxh
cHNlZE1hcmdpbkJlZm9yZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCks
IGhlaWdodCgpICsgY29sbGFwc2VkTWFyZ2luQmVmb3JlKCkgKyBjb2xsYXBzZWRNYXJnaW5BZnRl
cigpKTsKLSAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0
LCBmYWxzZSwgd2FzRml4ZWQpKTsKKyAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0
ZVF1YWQobG9jYWxSZWN0LCAwIC8qIG1vZGUgKi8sIHdhc0ZpeGVkKSk7CiAgICAgICAgIGNvbnRp
bnVhdGlvbigpLT5hYnNvbHV0ZVF1YWRzKHF1YWRzLCB3YXNGaXhlZCk7CiAgICAgfSBlbHNlCi0g
ICAgICAgIHF1YWRzLmFwcGVuZChSZW5kZXJCb3g6OmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRS
ZWN0KDAsIDAsIHdpZHRoKCksIGhlaWdodCgpKSwgZmFsc2UsIHdhc0ZpeGVkKSk7CisgICAgICAg
IHF1YWRzLmFwcGVuZChSZW5kZXJCb3g6OmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KDAs
IDAsIHdpZHRoKCksIGhlaWdodCgpKSwgMCAvKiBtb2RlICovLCB3YXNGaXhlZCkpOwogfQogCiBM
YXlvdXRSZWN0IFJlbmRlckJsb2NrOjpyZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRo
KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlz
aW9uIDEzMTA5NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MDMsNyArNDAzLDcgQEAgdm9pZCBSZW5kZXJCb3g6OmFic29sdXRl
UmVjdHMoVmVjdG9yPEludAogCiB2b2lkIFJlbmRlckJveDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8
RmxvYXRRdWFkPiYgcXVhZHMsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewotICAgIHF1YWRzLmFw
cGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQo
KSksIGZhbHNlLCB3YXNGaXhlZCkpOworICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVR
dWFkKEZsb2F0UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSksIDAgLyogbW9kZSAqLywgd2Fz
Rml4ZWQpKTsKIH0KIAogdm9pZCBSZW5kZXJCb3g6OnVwZGF0ZUxheWVyVHJhbnNmb3JtKCkKQEAg
LTQzNiw3ICs0MzYsNyBAQCBJbnRSZWN0IFJlbmRlckJveDo6YWJzb2x1dGVDb250ZW50Qm94KCkg
CiB7CiAgICAgLy8gVGhpcyBpcyB3cm9uZyB3aXRoIHRyYW5zZm9ybXMgYW5kIGZsaXBwZWQgd3Jp
dGluZyBtb2Rlcy4KICAgICBJbnRSZWN0IHJlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KGNvbnRl
bnRCb3hSZWN0KCkpOwotICAgIEZsb2F0UG9pbnQgYWJzUG9zID0gbG9jYWxUb0Fic29sdXRlKEZs
b2F0UG9pbnQoKSk7CisgICAgRmxvYXRQb2ludCBhYnNQb3MgPSBsb2NhbFRvQWJzb2x1dGUoKTsK
ICAgICByZWN0Lm1vdmUoYWJzUG9zLngoKSwgYWJzUG9zLnkoKSk7CiAgICAgcmV0dXJuIHJlY3Q7
CiB9CkBAIC0xMjU4LDcgKzEyNTgsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6cGVycGVuZGlj
dWxhckNvbnRhCiAgICAgcmV0dXJuIGNiLT5hZGp1c3RDb250ZW50Qm94TG9naWNhbEhlaWdodEZv
ckJveFNpemluZyhsb2dpY2FsSGVpZ2h0TGVuZ3RoLnZhbHVlKCkpOwogfQogCi12b2lkIFJlbmRl
ckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2FsVG9Db250
YWluZXJGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyQm94Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBpZiAocmVwYWludENvbnRhaW5lciA9
PSB0aGlzKQogICAgICAgICByZXR1cm47CkBAIC0xMzYzLDE4ICsxMzYzLDE4IEBAIGNvbnN0IFJl
bmRlck9iamVjdCogUmVuZGVyQm94OjpwdXNoTWFwcGkKICAgICByZXR1cm4gYW5jZXN0b3JTa2lw
cGVkID8gYW5jZXN0b3JUb1N0b3BBdCA6IGNvbnRhaW5lcjsKIH0KIAotdm9pZCBSZW5kZXJCb3g6
Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3Jtcywg
VHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAordm9pZCBSZW5kZXJCb3g6Om1h
cEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3Jt
U3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAogewogICAgIGJvb2wgaXNGaXhlZFBvcyA9IHN0
eWxlKCktPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbjsKICAgICBib29sIGhhc1RyYW5zZm9y
bSA9IGhhc0xheWVyKCkgJiYgbGF5ZXIoKS0+dHJhbnNmb3JtKCk7Ci0gICAgaWYgKGhhc1RyYW5z
Zm9ybSkgeworICAgIGlmIChoYXNUcmFuc2Zvcm0gJiYgIWlzRml4ZWRQb3MpIHsKICAgICAgICAg
Ly8gSWYgdGhpcyBib3ggaGFzIGEgdHJhbnNmb3JtLCBpdCBhY3RzIGFzIGEgZml4ZWQgcG9zaXRp
b24gY29udGFpbmVyIGZvciBmaXhlZCBkZXNjZW5kYW50cywKICAgICAgICAgLy8gYW5kIG1heSBp
dHNlbGYgYWxzbyBiZSBmaXhlZCBwb3NpdGlvbi4gU28gcHJvcGFnYXRlICdmaXhlZCcgdXAgb25s
eSBpZiB0aGlzIGJveCBpcyBmaXhlZCBwb3NpdGlvbi4KLSAgICAgICAgZml4ZWQgJj0gaXNGaXhl
ZFBvczsKLSAgICB9IGVsc2UKLSAgICAgICAgZml4ZWQgfD0gaXNGaXhlZFBvczsKKyAgICAgICAg
bW9kZSAmPSB+SXNGaXhlZDsKKyAgICB9IGVsc2UgaWYgKGlzRml4ZWRQb3MpCisgICAgICAgIG1v
ZGUgfD0gSXNGaXhlZDsKIAotICAgIFJlbmRlckJveE1vZGVsT2JqZWN0OjptYXBBYnNvbHV0ZVRv
TG9jYWxQb2ludChmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOworICAgIFJl
bmRlckJveE1vZGVsT2JqZWN0OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChtb2RlLCB0cmFuc2Zv
cm1TdGF0ZSk7CiB9CiAKIExheW91dFNpemUgUmVuZGVyQm94OjpvZmZzZXRGcm9tQ29udGFpbmVy
KFJlbmRlck9iamVjdCogbywgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBib29sKiBvZmZzZXRE
ZXBlbmRzT25Qb2ludCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgJKHJldmlzaW9uIDEzMTA5NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaAkod29ya2luZyBjb3B5KQpAQCAtNTc0LDkgKzU3NCw5IEBAIHByb3RlY3RlZDoKICAgICAK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ29tcHV0ZVNpemVBc1JlcGxhY2VkKCkgY29uc3QgeyBy
ZXR1cm4gaXNSZXBsYWNlZCgpICYmICFpc0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpOyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcExvY2FsVG9Db250YWlu
ZXJGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9y
bXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBBcHBseUNv
bnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAw
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1h
cHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiwgUmVuZGVyR2Vv
bWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVU
b0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0
ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBD
b29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKICAgICB2b2lk
IHBhaW50Um9vdEJveEZpbGxMYXllcnMoY29uc3QgUGFpbnRJbmZvJik7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAkocmV2
aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcwLDcgKzQ3MCw3IEBAIHZvaWQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OmNvbXB1dGVTdGlja3kKICAgICAvLyBDb21wdXRlIHRoZSBjb250YWlu
ZXItcmVsYXRpdmUgYXJlYSB3aXRoaW4gd2hpY2ggdGhlIHN0aWNreSBlbGVtZW50IGlzIGFsbG93
ZWQgdG8gbW92ZS4KICAgICBjb250YWluZXJDb250ZW50UmVjdC5tb3ZlKG1pbkxlZnRNYXJnaW4s
IG1pblRvcE1hcmdpbik7CiAgICAgY29udGFpbmVyQ29udGVudFJlY3QuY29udHJhY3QobWluTGVm
dE1hcmdpbiArIG1pblJpZ2h0TWFyZ2luLCBtaW5Ub3BNYXJnaW4gKyBtaW5Cb3R0b21NYXJnaW4p
OwotICAgIGNvbnN0cmFpbnRzLnNldEFic29sdXRlQ29udGFpbmluZ0Jsb2NrUmVjdChjb250YWlu
aW5nQmxvY2stPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGNvbnRhaW5lckNvbnRlbnRS
ZWN0KSkuYm91bmRpbmdCb3goKSk7CisgICAgY29uc3RyYWludHMuc2V0QWJzb2x1dGVDb250YWlu
aW5nQmxvY2tSZWN0KGNvbnRhaW5pbmdCbG9jay0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJl
Y3QoY29udGFpbmVyQ29udGVudFJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuYm91bmRp
bmdCb3goKSk7CiAKICAgICBMYXlvdXRSZWN0IHN0aWNreUJveFJlY3QgPSBmcmFtZVJlY3RGb3JT
dGlja3lQb3NpdGlvbmluZygpOwogICAgIExheW91dFJlY3QgZmxpcHBlZFN0aWNreUJveFJlY3Qg
PSBzdGlja3lCb3hSZWN0OwpAQCAtNDc4LDcgKzQ3OCw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxP
YmplY3Q6OmNvbXB1dGVTdGlja3kKICAgICBMYXlvdXRQb2ludCBzdGlja3lMb2NhdGlvbiA9IGZs
aXBwZWRTdGlja3lCb3hSZWN0LmxvY2F0aW9uKCk7CiAKICAgICAvLyBGSVhNRTogc3Vja3MgdG8g
Y2FsbCBsb2NhbFRvQWJzb2x1dGUgYWdhaW4sIGJ1dCB3ZSBjYW4ndCBqdXN0IG9mZnNldCBmcm9t
IHRoZSBwcmV2aW91c2x5IGNvbXB1dGVkIHJlY3QgaWYgdGhlcmUgYXJlIHRyYW5zZm9ybXMuCi0g
ICAgRmxvYXRSZWN0IGFic0NvbnRhaW5lckZyYW1lID0gY29udGFpbmluZ0Jsb2NrLT5sb2NhbFRv
QWJzb2x1dGVRdWFkKEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGNvbnRhaW5pbmdCbG9jay0+c2l6
ZSgpKSkuYm91bmRpbmdCb3goKTsKKyAgICBGbG9hdFJlY3QgYWJzQ29udGFpbmVyRnJhbWUgPSBj
b250YWluaW5nQmxvY2stPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KEZsb2F0UG9pbnQo
KSwgY29udGFpbmluZ0Jsb2NrLT5zaXplKCkpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuYm91
bmRpbmdCb3goKTsKICAgICAvLyBXZSBjYW4ndCBjYWxsIGxvY2FsVG9BYnNvbHV0ZSBvbiB8dGhp
c3wgYmVjYXVzZSB0aGF0IHdpbGwgcmVjdXIuIEZJWE1FOiBGb3Igbm93LCBhc3N1bWUgdGhhdCB8
dGhpc3wgaXMgbm90IHRyYW5zZm9ybWVkLgogICAgIEZsb2F0UmVjdCBhYnNvbHV0ZVN0aWNreUJv
eFJlY3QoYWJzQ29udGFpbmVyRnJhbWUubG9jYXRpb24oKSArIHN0aWNreUxvY2F0aW9uLCBmbGlw
cGVkU3RpY2t5Qm94UmVjdC5zaXplKCkpOwogICAgIGNvbnN0cmFpbnRzLnNldEFic29sdXRlU3Rp
Y2t5Qm94UmVjdChhYnNvbHV0ZVN0aWNreUJveFJlY3QpOwpAQCAtMjY5NiwxMyArMjY5NiwxMyBA
QCBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0OjpzaG91bGRBbnRpYWxpCiAgICAgcmV0dXJuICFj
b250ZXh0LT5nZXRDVE0oKS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbk9yRmxpcHBlZCgpOwogfQog
Ci12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29s
IGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0
ZSkgY29uc3QKK3ZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBv
aW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0
YXRlKSBjb25zdAogewogICAgIFJlbmRlck9iamVjdCogbyA9IGNvbnRhaW5lcigpOwogICAgIGlm
ICghbykKICAgICAgICAgcmV0dXJuOwogCi0gICAgby0+bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQo
Zml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICBvLT5tYXBBYnNvbHV0
ZVRvTG9jYWxQb2ludChtb2RlLCB0cmFuc2Zvcm1TdGF0ZSk7CiAKICAgICBMYXlvdXRTaXplIGNv
bnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywgTGF5b3V0UG9pbnQoKSk7CiAK
QEAgLTI3MTMsOCArMjcxMyw4IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om1hcEFic29s
dXRlVG8KICAgICAgICAgYmxvY2stPmFkanVzdEZvckNvbHVtblJlY3QoY29udGFpbmVyT2Zmc2V0
LCBwb2ludCk7CiAgICAgfQogCi0gICAgYm9vbCBwcmVzZXJ2ZTNEID0gdXNlVHJhbnNmb3JtcyAm
JiAoby0+c3R5bGUoKS0+cHJlc2VydmVzM0QoKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsK
LSAgICBpZiAodXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVy
KG8pKSB7CisgICAgYm9vbCBwcmVzZXJ2ZTNEID0gbW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgKG8t
PnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJlc2VydmVzM0QoKSk7CisgICAg
aWYgKG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWlu
ZXIobykpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICAgICAgZ2V0VHJh
bnNmb3JtRnJvbUNvbnRhaW5lcihvLCBjb250YWluZXJPZmZzZXQsIHQpOwogICAgICAgICB0cmFu
c2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6
OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuaAkocmV2aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExp
bmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdM
aW5lKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
Rm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3Np
dGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0ID0gMDsKIAotICAgIHZp
cnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVkLCBib29sIHVzZVRy
YW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgVHJh
bnNmb3JtU3RhdGUmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZvaWQgaGlnaFF1YWxpdHlSZXBh
aW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJCb3hNb2RlbE9iamVjdD4qKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCShy
ZXZpc2lvbiAxMzEwOTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjIsNyArMzIyLDcgQEAgYm9vbCBSZW5k
ZXJFbWJlZGRlZE9iamVjdDo6aXNJblVuYXZhaWxhYgogCiBib29sIFJlbmRlckVtYmVkZGVkT2Jq
ZWN0Ojppc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3IoTW91c2VFdmVudCogZXZlbnQpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIGlzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihyb3VuZGVk
TGF5b3V0UG9pbnQoYWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZh
bHNlLCB0cnVlKSkpOworICAgIHJldHVybiBpc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3Io
cm91bmRlZExheW91dFBvaW50KGFic29sdXRlVG9Mb2NhbChldmVudC0+YWJzb2x1dGVMb2NhdGlv
bigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKSk7CiB9CiAKIHN0
YXRpYyBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKERvY3VtZW50
KiBkb2N1bWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCShyZXZpc2lvbiAxMzEwOTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
OTksNyArNjk5LDcgQEAgYm9vbCBSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZShNb3VzZUV2ZQog
ICAgICAgICBpZiAobmVlZHNMYXlvdXQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBl
dnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9j
YWxQb3MgPSBhYnNvbHV0ZVRvTG9jYWwoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0
cnVlKTsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9jYWxQb3MgPSBhYnNvbHV0ZVRvTG9jYWwo
ZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3Jtcyk7CiAgICAgICAgICAgICBzdGFydFJlc2l6aW5nKG1fY29scywgbG9jYWxQb3MueCgp
KTsKICAgICAgICAgICAgIHN0YXJ0UmVzaXppbmcobV9yb3dzLCBsb2NhbFBvcy55KCkpOwogICAg
ICAgICAgICAgaWYgKG1fY29scy5tX3NwbGl0QmVpbmdSZXNpemVkICE9IG5vU3BsaXQgfHwgbV9y
b3dzLm1fc3BsaXRCZWluZ1Jlc2l6ZWQgIT0gbm9TcGxpdCkgewpAQCAtNzA5LDcgKzcwOSw3IEBA
IGJvb2wgUmVuZGVyRnJhbWVTZXQ6OnVzZXJSZXNpemUoTW91c2VFdmUKICAgICAgICAgfQogICAg
IH0gZWxzZSB7CiAgICAgICAgIGlmIChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vt
b3ZlRXZlbnQgfHwgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYg
ZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSkgewotICAgICAgICAgICAgRmxvYXRQb2ludCBs
b2NhbFBvcyA9IGFic29sdXRlVG9Mb2NhbChldnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2Us
IHRydWUpOworICAgICAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBvcyA9IGFic29sdXRlVG9Mb2Nh
bChldnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKTsKICAgICAgICAgICAgIGNvbnRpbnVlUmVzaXppbmcobV9jb2xzLCBsb2NhbFBv
cy54KCkpOwogICAgICAgICAgICAgY29udGludWVSZXNpemluZyhtX3Jvd3MsIGxvY2FsUG9zLnko
KSk7CiAgICAgICAgICAgICBpZiAoZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNldXBF
dmVudCAmJiBldnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAkocmV2aXNpb24gMTMxMDk2
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBGbG9hdFBvaW50IFJlbmRlckdlb21ldHJ5TWFw
OjphYnNvbHV0ZVBvCiAgICAgfQogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgIEZsb2F0UG9p
bnQgcmVuZGVyZXJNYXBwZWRSZXN1bHQgPSBtX21hcHBpbmcubGFzdCgpLm1fcmVuZGVyZXItPmxv
Y2FsVG9BYnNvbHV0ZShwLCBmYWxzZSwgdHJ1ZSk7CisgICAgRmxvYXRQb2ludCByZW5kZXJlck1h
cHBlZFJlc3VsdCA9IG1fbWFwcGluZy5sYXN0KCkubV9yZW5kZXJlci0+bG9jYWxUb0Fic29sdXRl
KHAsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgQVNTRVJU
KHJlbmRlcmVyTWFwcGVkUmVzdWx0ID09IHJlc3VsdCk7CiAjZW5kaWYKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlzaW9uIDEzMTA5NikKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTEyLDcgKzExMTIsNyBAQCBMYXlvdXRTaXplIFJlbmRlcklubGluZTo6b2Zmc2V0RnJv
bUNvbnRhCiAgICAgcmV0dXJuIG9mZnNldDsKIH0KIAotdm9pZCBSZW5kZXJJbmxpbmU6Om1hcExv
Y2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3Mg
bW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxU
b0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9v
bCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykK
ICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuaAkocmV2aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIExheW91dFJlY3QgcmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludChSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9v
bCBmaXhlZCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYsIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJG
bGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNv
bnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQ
b2ludChjb25zdCBMYXlvdXRQb2ludCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAxMzEwOTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcxLDcgKzExNzEsNyBA
QCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmNsaXBwaW5nUm9vdEZvCiBMYXlvdXRQb2ludCBS
ZW5kZXJMYXllcjo6YWJzb2x1dGVUb0NvbnRlbnRzKGNvbnN0IExheW91dFBvaW50JiBhYnNvbHV0
ZVBvaW50KSBjb25zdAogewogICAgIC8vIFdlIGRvbid0IHVzZSBjb252ZXJ0VG9MYXllckNvb3Jk
cyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdyBhYm91dCB0cmFuc2Zvcm1zCi0gICAgcmV0dXJuIHJv
dW5kZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoYWJzb2x1dGVQb2lu
dCwgZmFsc2UsIHRydWUpKTsKKyAgICByZXR1cm4gcm91bmRlZExheW91dFBvaW50KHJlbmRlcmVy
KCktPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZVBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9m
ZnNldEZvclRyYW5zZm9ybXMpKTsKIH0KIAogYm9vbCBSZW5kZXJMYXllcjo6Y2Fubm90QmxpdFRv
V2luZG93KCkgY29uc3QKQEAgLTE0ODAsNyArMTQ4MCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNv
bnZlcnRUb0xheWVyQ29vcmRzKGMKICAgICBpZiAocG9zaXRpb24gPT0gRml4ZWRQb3NpdGlvbiAm
JiAhcmVuZGVyZXIoKS0+aW5SZW5kZXJGbG93VGhyZWFkKCkgJiYgKCFhbmNlc3RvckxheWVyIHx8
IGFuY2VzdG9yTGF5ZXIgPT0gcmVuZGVyZXIoKS0+dmlldygpLT5sYXllcigpKSkgewogICAgICAg
ICAvLyBJZiB0aGUgZml4ZWQgbGF5ZXIncyBjb250YWluZXIgaXMgdGhlIHJvb3QsIGp1c3QgYWRk
IGluIHRoZSBvZmZzZXQgb2YgdGhlIHZpZXcuIFdlIGNhbiBvYnRhaW4gdGhpcyBieSBjYWxsaW5n
CiAgICAgICAgIC8vIGxvY2FsVG9BYnNvbHV0ZSgpIG9uIHRoZSBSZW5kZXJWaWV3LgotICAgICAg
ICBGbG9hdFBvaW50IGFic1BvcyA9IHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBv
aW50KCksIHRydWUpOworICAgICAgICBGbG9hdFBvaW50IGFic1BvcyA9IHJlbmRlcmVyKCktPmxv
Y2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIElzRml4ZWQpOwogICAgICAgICBsb2NhdGlvbiAr
PSBMYXlvdXRTaXplKGFic1Bvcy54KCksIGFic1Bvcy55KCkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTc0MSw3ICsxNzQxLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8oaW50
IHgsIGludCB5KQogCiAgICAgICAgIEZsb2F0UXVhZCBxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50
ID0gRmxvYXRRdWFkKG1fcmVwYWludFJlY3QpOwogICAgICAgICBpZiAocmVwYWludENvbnRhaW5l
cikKLSAgICAgICAgICAgIHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQgPSByZXBhaW50Q29udGFp
bmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOworICAg
ICAgICAgICAgcXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCA9IHJlcGFpbnRDb250YWluZXItPmxv
Y2FsVG9BYnNvbHV0ZVF1YWQocXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCwgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMpOwogICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRpc3BhdGNoRmFr
ZU1vdXNlTW92ZUV2ZW50U29vbkluUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50KTsKICAg
ICB9CiAKQEAgLTQwNDIsNyArNDA0Miw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNs
aXBSZWN0cyhjb24KICAgICAgICAgLy8gc29tZSB0cmFuc2Zvcm1lZCBsYXllciBib3VuZGFyeSwg
Zm9yIGV4YW1wbGUsIGluIHRoZSBSZW5kZXJMYXllckNvbXBvc2l0b3Igb3ZlcmxhcE1hcCwgd2hl
cmUKICAgICAgICAgLy8gY2xpcFJlY3RzIGFyZSBuZWVkZWQgaW4gdmlldyBzcGFjZS4KICAgICAg
ICAgTGF5b3V0UG9pbnQgb2Zmc2V0OwotICAgICAgICBvZmZzZXQgPSByb3VuZGVkTGF5b3V0UG9p
bnQocmVuZGVyZXIoKS0+bG9jYWxUb0NvbnRhaW5lclBvaW50KEZsb2F0UG9pbnQoKSwgcm9vdExh
eWVyLT5yZW5kZXJlcigpLCBmYWxzZSwgZmFsc2UsIDApKTsKKyAgICAgICAgb2Zmc2V0ID0gcm91
bmRlZExheW91dFBvaW50KHJlbmRlcmVyKCktPmxvY2FsVG9Db250YWluZXJQb2ludChGbG9hdFBv
aW50KCksIHJvb3RMYXllci0+cmVuZGVyZXIoKSkpOwogICAgICAgICBSZW5kZXJWaWV3KiB2aWV3
ID0gcmVuZGVyZXIoKS0+dmlldygpOwogICAgICAgICBBU1NFUlQodmlldyk7CiAgICAgICAgIGlm
ICh2aWV3ICYmIGNsaXBSZWN0cy5maXhlZCgpICYmIHJvb3RMYXllci0+cmVuZGVyZXIoKSA9PSB2
aWV3KSB7CkBAIC00MTY5LDcgKzQxNjksNyBAQCBMYXlvdXRSZWN0IFJlbmRlckxheWVyOjpjaGls
ZHJlbkNsaXBSZWN0CiAgICAgQ2xpcFJlY3QgYmFja2dyb3VuZFJlY3QsIGZvcmVncm91bmRSZWN0
LCBvdXRsaW5lUmVjdDsKICAgICAvLyBOZWVkIHRvIHVzZSB0ZW1wb3JhcnkgY2xpcCByZWN0cywg
YmVjYXVzZSB0aGUgdmFsdWUgb2YgJ2RvbnRDbGlwVG9PdmVyZmxvdycgbWF5IGJlIGRpZmZlcmVu
dCBmcm9tIHRoZSBwYWludGluZyBwYXRoICg8cmRhcjovL3Byb2JsZW0vMTE4NDQ5MDk+KS4KICAg
ICBjYWxjdWxhdGVSZWN0cyhjbGlwcGluZ1Jvb3RMYXllciwgMCwgVGVtcG9yYXJ5Q2xpcFJlY3Rz
LCByZW5kZXJWaWV3LT51bnNjYWxlZERvY3VtZW50UmVjdCgpLCBsYXllckJvdW5kcywgYmFja2dy
b3VuZFJlY3QsIGZvcmVncm91bmRSZWN0LCBvdXRsaW5lUmVjdCk7Ci0gICAgcmV0dXJuIGNsaXBw
aW5nUm9vdExheWVyLT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChm
b3JlZ3JvdW5kUmVjdC5yZWN0KCkpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIHJldHVy
biBjbGlwcGluZ1Jvb3RMYXllci0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9h
dFF1YWQoZm9yZWdyb3VuZFJlY3QucmVjdCgpKSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmVu
Y2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9CiAKIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OnNlbGZD
bGlwUmVjdCgpIGNvbnN0CkBAIC00MTgxLDcgKzQxODEsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckxh
eWVyOjpzZWxmQ2xpcFJlY3QoKSBjCiAgICAgTGF5b3V0UmVjdCBsYXllckJvdW5kczsKICAgICBD
bGlwUmVjdCBiYWNrZ3JvdW5kUmVjdCwgZm9yZWdyb3VuZFJlY3QsIG91dGxpbmVSZWN0OwogICAg
IGNhbGN1bGF0ZVJlY3RzKGNsaXBwaW5nUm9vdExheWVyLCAwLCBQYWludGluZ0NsaXBSZWN0cywg
cmVuZGVyVmlldy0+ZG9jdW1lbnRSZWN0KCksIGxheWVyQm91bmRzLCBiYWNrZ3JvdW5kUmVjdCwg
Zm9yZWdyb3VuZFJlY3QsIG91dGxpbmVSZWN0KTsKLSAgICByZXR1cm4gY2xpcHBpbmdSb290TGF5
ZXItPnJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGJhY2tncm91bmRS
ZWN0LnJlY3QoKSkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0dXJuIGNsaXBwaW5n
Um9vdExheWVyLT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChiYWNr
Z3JvdW5kUmVjdC5yZWN0KCkpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9zaW5nQm91
bmRpbmdCb3goKTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6bG9jYWxDbGlwUmVjdCgp
IGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAkocmV2aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NjUsNyArMTg2NSw3
IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpjb250ZW50c1Zpc2libGUKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgSW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3Qodmlldy0+dmlzaWJs
ZUNvbnRlbnRSZWN0KCkpOwotICAgIEZsb2F0UXVhZCBhYnNvbHV0ZUNvbnRlbnRRdWFkID0gcmVu
ZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxDb250ZW50UmVjdCkp
OworICAgIEZsb2F0UXVhZCBhYnNvbHV0ZUNvbnRlbnRRdWFkID0gcmVuZGVyZXIoKS0+bG9jYWxU
b0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxDb250ZW50UmVjdCksIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKTsKICAgICByZXR1cm4gYWJzb2x1dGVDb250ZW50UXVhZC5lbmNsb3NpbmdCb3Vu
ZGluZ0JveCgpLmludGVyc2VjdHModmlzaWJsZUNvbnRlbnRSZWN0KTsKIH0KICNlbmRpZgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNw
cAkocmV2aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNyArMjEzLDcgQEAgSW50UG9p
bnQgUmVuZGVyTWVkaWFDb250cm9sczo6dm9sdW1lU2xpZAogCiAgICAgZmxvYXQgem9vbUxldmVs
ID0gbXV0ZUJ1dHRvbkJveC0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpOwogICAgIGludCB5ID0g
eU9mZnNldCAqIHpvb21MZXZlbCArIG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldEhl
aWdodCgpIC0gc2l6ZS5oZWlnaHQoKTsKLSAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbXV0ZUJ1
dHRvbkJveC0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQobXV0ZUJ1dHRvbkJveC0+cGl4ZWxT
bmFwcGVkT2Zmc2V0TGVmdCgpLCB5KSwgdHJ1ZSwgdHJ1ZSk7CisgICAgRmxvYXRQb2ludCBhYnNQ
b2ludCA9IG11dGVCdXR0b25Cb3gtPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0
b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldExlZnQoKSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zv
cm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwogICAgIGlmIChhYnNQb2ludC55KCkgPCAw
KQogICAgICAgICB5ID0gbXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkSGVpZ2h0KCk7CiAgICAg
cmV0dXJuIEludFBvaW50KHhPZmZzZXQgKiB6b29tTGV2ZWwsIHkpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCShyZXZpc2lvbiAxMzEwOTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMjAsNyArMzIwLDcgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkK
IAogICAgIC8vIENvbXB1dGUgdGhlIHRvcCBsZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNj
b3VudCwgYnV0IHVzZQogICAgIC8vIHRoZSBhY3R1YWwgd2lkdGggb2YgdGhlIGVsZW1lbnQgdG8g
c2l6ZSB0aGUgcG9wdXAuCi0gICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29s
dXRlKEZsb2F0UG9pbnQoKSwgZmFsc2UsIHRydWUpOworICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVm
dCA9IGxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgSW50UmVjdCBhYnNCb3VuZHMgPSBhYnNvbHV0ZUJvdW5k
aW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3JtcygpOwogICAgIGFic0JvdW5kcy5zZXRMb2NhdGlv
bihyb3VuZGVkSW50UG9pbnQoYWJzVG9wTGVmdCkpOwogICAgIEhUTUxTZWxlY3RFbGVtZW50KiBz
ZWxlY3QgPSBzZWxlY3RFbGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMDIsNyArMTIwMiw3
IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphYnNvbHV0ZUZvY3VzUmluZ1F1YWQKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgSW50UmVjdCByZWN0ID0gcmVj
dHNbaV07CiAgICAgICAgIHJlY3QubW92ZSgtYWJzb2x1dGVQb2ludC54KCksIC1hYnNvbHV0ZVBv
aW50LnkoKSk7Ci0gICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0
UXVhZChyZWN0KSkpOworICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChG
bG9hdFF1YWQocmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiAgICAgfQogfQogCkBA
IC0yMDA2LDMwICsyMDA2LDI1IEBAIExheW91dFJlY3QgUmVuZGVyT2JqZWN0Ojp2aWV3UmVjdCgp
IGNvbnMKICAgICByZXR1cm4gdmlldygpLT52aWV3UmVjdCgpOwogfQogCi1GbG9hdFBvaW50IFJl
bmRlck9iamVjdDo6bG9jYWxUb0Fic29sdXRlKGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsUG9pbnQs
IGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcykgY29uc3QKK0Zsb2F0UG9pbnQgUmVuZGVy
T2JqZWN0Ojpsb2NhbFRvQWJzb2x1dGUoY29uc3QgRmxvYXRQb2ludCYgbG9jYWxQb2ludCwgTWFw
Q29vcmRpbmF0ZXNGbGFncyBtb2RlKSBjb25zdAogewogICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5z
Zm9ybVN0YXRlKFRyYW5zZm9ybVN0YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgbG9jYWxQ
b2ludCk7Ci0gICAgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5l
ckZsaXA7Ci0gICAgaWYgKGZpeGVkKQotICAgICAgICBtb2RlIHw9IElzRml4ZWQ7Ci0gICAgaWYg
KHVzZVRyYW5zZm9ybXMpCi0gICAgICAgIG1vZGUgfD0gVXNlVHJhbnNmb3JtczsKLSAgICBtYXBM
b2NhbFRvQ29udGFpbmVyKDAsIHRyYW5zZm9ybVN0YXRlLCBtb2RlKTsKKyAgICBtYXBMb2NhbFRv
Q29udGFpbmVyKDAsIHRyYW5zZm9ybVN0YXRlLCBtb2RlIHwgQXBwbHlDb250YWluZXJGbGlwKTsK
ICAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CiAgICAgCiAgICAgcmV0dXJuIHRyYW5zZm9y
bVN0YXRlLmxhc3RQbGFuYXJQb2ludCgpOwogfQogCi1GbG9hdFBvaW50IFJlbmRlck9iamVjdDo6
YWJzb2x1dGVUb0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmIGNvbnRhaW5lclBvaW50LCBib29sIGZp
eGVkLCBib29sIHVzZVRyYW5zZm9ybXMpIGNvbnN0CitGbG9hdFBvaW50IFJlbmRlck9iamVjdDo6
YWJzb2x1dGVUb0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmIGNvbnRhaW5lclBvaW50LCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUpIGNvbnN0CiB7CiAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3Jt
U3RhdGUoVHJhbnNmb3JtU3RhdGU6OlVuYXBwbHlJbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uLCBj
b250YWluZXJQb2ludCk7Ci0gICAgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoZml4ZWQsIHVzZVRy
YW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludCht
b2RlLCB0cmFuc2Zvcm1TdGF0ZSk7CiAgICAgdHJhbnNmb3JtU3RhdGUuZmxhdHRlbigpOwogICAg
IAogICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUG9pbnQoKTsKIH0KIAotdm9p
ZCBSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBM
b2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJl
bmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFp
bnRDb250YWluZXIgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwpAQCAtMjA3NSwxMSArMjA3MCwx
MSBAQCBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdDo6cHVzaE1hCiAgICAgcmV0dXJu
IGNvbnRhaW5lcjsKIH0KIAotdm9pZCBSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBv
aW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5z
Zm9ybVN0YXRlKSBjb25zdAordm9pZCBSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBv
aW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0
YXRlKSBjb25zdAogewogICAgIFJlbmRlck9iamVjdCogbyA9IHBhcmVudCgpOwogICAgIGlmIChv
KSB7Ci0gICAgICAgIG8tPm1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGZpeGVkLCB1c2VUcmFuc2Zv
cm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgICAgIG8tPm1hcEFic29sdXRlVG9Mb2NhbFBvaW50
KG1vZGUsIHRyYW5zZm9ybVN0YXRlKTsKICAgICAgICAgaWYgKG8tPmhhc092ZXJmbG93Q2xpcCgp
KQogICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSh0b1JlbmRlckJveChvKS0+c2Nyb2xs
ZWRDb250ZW50T2Zmc2V0KCkpOwogICAgIH0KQEAgLTIxMjMsMzEgKzIxMTgsMjEgQEAgdm9pZCBS
ZW5kZXJPYmplY3Q6OmdldFRyYW5zZm9ybUZyb21Db250YQogI2VuZGlmCiB9CiAKLUZsb2F0UXVh
ZCBSZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVhZCYgbG9j
YWxRdWFkLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBib29sKiB3YXNGaXhlZCkgY29uc3QK
K0Zsb2F0UXVhZCBSZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0
UXVhZCYgbG9jYWxRdWFkLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAg
IC8vIFRyYWNrIHRoZSBwb2ludCBhdCB0aGUgY2VudGVyIG9mIHRoZSBxdWFkJ3MgYm91bmRpbmcg
Ym94LiBBcyBtYXBMb2NhbFRvQ29udGFpbmVyKCkgY2FsbHMgb2Zmc2V0RnJvbUNvbnRhaW5lcigp
LAogICAgIC8vIGl0IHdpbGwgdXNlIHRoYXQgcG9pbnQgYXMgdGhlIHJlZmVyZW5jZSBwb2ludCB0
byBkZWNpZGUgd2hpY2ggY29sdW1uJ3MgdHJhbnNmb3JtIHRvIGFwcGx5IGluIG11bHRpcGxlLWNv
bHVtbiBibG9ja3MuCiAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3Jt
U3RhdGU6OkFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uLCBsb2NhbFF1YWQuYm91bmRpbmdCb3goKS5j
ZW50ZXIoKSwgbG9jYWxRdWFkKTsKLSAgICBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9
IEFwcGx5Q29udGFpbmVyRmxpcCB8IFVzZVRyYW5zZm9ybXM7Ci0gICAgaWYgKGZpeGVkKQotICAg
ICAgICBtb2RlIHw9IElzRml4ZWQ7Ci0gICAgaWYgKHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQot
ICAgICAgICBtb2RlIHw9IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zOwotICAgIG1hcExvY2FsVG9D
b250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVk
KTsKKyAgICBtYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0
YXRlLCBtb2RlIHwgQXBwbHlDb250YWluZXJGbGlwIHwgVXNlVHJhbnNmb3Jtcywgd2FzRml4ZWQp
OwogICAgIHRyYW5zZm9ybVN0YXRlLmZsYXR0ZW4oKTsKICAgICAKICAgICByZXR1cm4gdHJhbnNm
b3JtU3RhdGUubGFzdFBsYW5hclF1YWQoKTsKIH0KIAotRmxvYXRQb2ludCBSZW5kZXJPYmplY3Q6
OmxvY2FsVG9Db250YWluZXJQb2ludChjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBvaW50LCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zLCBib29sIGZpeGVkLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK0Zsb2F0UG9pbnQg
UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUG9pbnQoY29uc3QgRmxvYXRQb2ludCYgbG9j
YWxQb2ludCwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTWFwQ29v
cmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBUcmFuc2Zv
cm1TdGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJl
Y3Rpb24sIGxvY2FsUG9pbnQpOwotICAgIE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0g
QXBwbHlDb250YWluZXJGbGlwIHwgVXNlVHJhbnNmb3JtczsKLSAgICBpZiAoZml4ZWQpCi0gICAg
ICAgIG1vZGUgfD0gSXNGaXhlZDsKLSAgICBpZiAoc25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0g
ICAgICAgIG1vZGUgfD0gU25hcE9mZnNldEZvclRyYW5zZm9ybXM7Ci0gICAgbWFwTG9jYWxUb0Nv
bnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQp
OworICAgIG1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3Rh
dGUsIG1vZGUgfCBBcHBseUNvbnRhaW5lckZsaXAgfCBVc2VUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7
CiAgICAgdHJhbnNmb3JtU3RhdGUuZmxhdHRlbigpOwogCiAgICAgcmV0dXJuIHRyYW5zZm9ybVN0
YXRlLmxhc3RQbGFuYXJQb2ludCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAkocmV2aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsMTMgKzExMCwxMyBAQCBlbnVt
IFBsYWNlR2VuZXJhdGVkUnVuSW5GbGFnIHsKICAgICBEb05vdFBsYWNlR2VuZXJhdGVkUnVuSW4K
IH07CiAKLWVudW0gTWFwTG9jYWxUb0NvbnRhaW5lck1vZGUgeworZW51bSBNYXBDb29yZGluYXRl
c01vZGUgewogICAgIElzRml4ZWQgPSAxIDw8IDAsCiAgICAgVXNlVHJhbnNmb3JtcyA9IDEgPDwg
MSwKICAgICBBcHBseUNvbnRhaW5lckZsaXAgPSAxIDw8IDIsCiAgICAgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMgPSAxIDw8IDMKIH07Ci10eXBlZGVmIHVuc2lnbmVkIE1hcExvY2FsVG9Db250YWlu
ZXJGbGFnczsKK3R5cGVkZWYgdW5zaWduZWQgTWFwQ29vcmRpbmF0ZXNGbGFnczsKIAogY29uc3Qg
aW50IGNhcmV0V2lkdGggPSAxOwogCkBAIC03MDcsMTkgKzcwNywxOSBAQCBwdWJsaWM6CiAgICAg
UmVuZGVyQmxvY2sqIGNvbnRhaW5pbmdCbG9jaygpIGNvbnN0OwogCiAgICAgLy8gQ29udmVydCB0
aGUgZ2l2ZW4gbG9jYWwgcG9pbnQgdG8gYWJzb2x1dGUgY29vcmRpbmF0ZXMKLSAgICAvLyBGSVhN
RTogVGVtcG9yYXJ5LiBJZiB1c2VUcmFuc2Zvcm1zIGlzIHRydWUsIHRha2UgdHJhbnNmb3JtcyBp
bnRvIGFjY291bnQuIEV2ZW50dWFsbHkgbG9jYWxUb0Fic29sdXRlKCkgd2lsbCBhbHdheXMgYmUg
dHJhbnNmb3JtLWF3YXJlLgotICAgIEZsb2F0UG9pbnQgbG9jYWxUb0Fic29sdXRlKGNvbnN0IEZs
b2F0UG9pbnQmIGxvY2FsUG9pbnQgPSBGbG9hdFBvaW50KCksIGJvb2wgZml4ZWQgPSBmYWxzZSwg
Ym9vbCB1c2VUcmFuc2Zvcm1zID0gZmFsc2UpIGNvbnN0OwotICAgIEZsb2F0UG9pbnQgYWJzb2x1
dGVUb0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wgdXNl
VHJhbnNmb3JtcyA9IGZhbHNlKSBjb25zdDsKKyAgICAvLyBGSVhNRTogVGVtcG9yYXJ5LiBJZiBV
c2VUcmFuc2Zvcm1zIGlzIHRydWUsIHRha2UgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQuIEV2ZW50
dWFsbHkgbG9jYWxUb0Fic29sdXRlKCkgd2lsbCBhbHdheXMgYmUgdHJhbnNmb3JtLWF3YXJlLgor
ICAgIEZsb2F0UG9pbnQgbG9jYWxUb0Fic29sdXRlKGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsUG9p
bnQgPSBGbG9hdFBvaW50KCksIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IDApIGNvbnN0Owor
ICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVUb0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmLCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUgPSAwKSBjb25zdDsKIAogICAgIC8vIENvbnZlcnQgYSBsb2NhbCBx
dWFkIHRvIGFic29sdXRlIGNvb3JkaW5hdGVzLCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRvIGFjY291
bnQuCi0gICAgRmxvYXRRdWFkIGxvY2FsVG9BYnNvbHV0ZVF1YWQoY29uc3QgRmxvYXRRdWFkJiBx
dWFkLCBib29sIGZpeGVkID0gZmFsc2UsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QKKyAgICBG
bG9hdFF1YWQgbG9jYWxUb0Fic29sdXRlUXVhZChjb25zdCBGbG9hdFF1YWQmIHF1YWQsIE1hcENv
b3JkaW5hdGVzRmxhZ3MgbW9kZSA9IDAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QKICAgICB7
Ci0gICAgICAgIHJldHVybiBsb2NhbFRvQ29udGFpbmVyUXVhZChxdWFkLCAwLCBmYWxzZSwgZml4
ZWQsIHdhc0ZpeGVkKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsVG9Db250YWluZXJRdWFkKHF1YWQs
IDAsIG1vZGUsIHdhc0ZpeGVkKTsKICAgICB9CiAKICAgICAvLyBDb252ZXJ0IGEgbG9jYWwgcXVh
ZCBpbnRvIHRoZSBjb29yZGluYXRlIHN5c3RlbSBvZiBjb250YWluZXIsIHRha2luZyB0cmFuc2Zv
cm1zIGludG8gYWNjb3VudC4KLSAgICBGbG9hdFF1YWQgbG9jYWxUb0NvbnRhaW5lclF1YWQoY29u
c3QgRmxvYXRRdWFkJiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
Ym9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wgZml4ZWQgPSBmYWxzZSwg
Ym9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKLSAgICBGbG9hdFBvaW50IGxvY2FsVG9Db250YWlu
ZXJQb2ludChjb25zdCBGbG9hdFBvaW50JiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wgZml4
ZWQgPSBmYWxzZSwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICBGbG9hdFF1YWQgbG9j
YWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gMCwgYm9vbCog
d2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICBGbG9hdFBvaW50IGxvY2FsVG9Db250YWluZXJQb2lu
dChjb25zdCBGbG9hdFBvaW50JiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gMCwgYm9vbCogd2FzRml4ZWQgPSAwKSBj
b25zdDsKIAogICAgIC8vIFJldHVybiB0aGUgb2Zmc2V0IGZyb20gdGhlIGNvbnRhaW5lcigpIHJl
bmRlcmVyIChleGNsdWRpbmcgdHJhbnNmb3JtcykuIEluIG11bHRpLWNvbHVtbiBsYXlvdXQsCiAg
ICAgLy8gZGlmZmVyZW50IG9mZnNldHMgYXBwbHkgYXQgZGlmZmVyZW50IHBvaW50cywgc28gcmV0
dXJuIHRoZSBvZmZzZXQgdGhhdCBhcHBsaWVzIHRvIHRoZSBnaXZlbiBwb2ludC4KQEAgLTkxNyw4
ICs5MTcsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBNYXAgcG9pbnRzIGFuZCBxdWFkcyB0aHJvdWdo
IGVsZW1lbnRzLCBwb3RlbnRpYWxseSB2aWEgM2QgdHJhbnNmb3Jtcy4gWW91IHNob3VsZCBuZXZl
ciBuZWVkIHRvIGNhbGwgdGhlc2UgZGlyZWN0bHk7IHVzZQogICAgIC8vIGxvY2FsVG9BYnNvbHV0
ZS9hYnNvbHV0ZVRvTG9jYWwgbWV0aG9kcyBpbnN0ZWFkLgotICAgIHZpcnR1YWwgdm9pZCBtYXBM
b2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUgPSBBcHBseUNv
bnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lk
IG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3Jtcywg
VHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCwgYm9v
bCogd2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVUb0xv
Y2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0
OwogCiAgICAgLy8gUHVzaGVzIHN0YXRlIG9udG8gUmVuZGVyR2VvbWV0cnlNYXAgYWJvdXQgaG93
IHRvIG1hcCBjb29yZGluYXRlcyBmcm9tIHRoaXMgcmVuZGVyZXIgdG8gaXRzIGNvbnRhaW5lciwg
b3IgYW5jZXN0b3JUb1N0b3BBdCAod2hpY2hldmVyIGlzIGVuY291bnRlcmVkIGZpcnN0KS4KICAg
ICAvLyBSZXR1cm5zIHRoZSByZW5kZXJlciB3aGljaCB3YXMgbWFwcGVkIHRvIChjb250YWluZXIg
b3IgYW5jZXN0b3JUb1N0b3BBdCkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHQuY3BwCShyZXZpc2lvbiAxMzEwOTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2NSwxMiArMzY1LDEyIEBAIHZvaWQg
UmVuZGVyVGV4dDo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlKFYKICAgICAgICAgICAgICAgICAgICAg
ci5zZXRYKHNlbGVjdGlvblJlY3QueCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICByZWN0cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyLCBmYWxz
ZSwgd2FzRml4ZWQpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpOworICAgICAgICAgICAgcmVjdHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQociwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdh
c0ZpeGVkKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgaXMgd3JvbmcuIEl0J3MgY29udmVydGluZyBsb2Nh
bCB0byBhYnNvbHV0ZSB0d2ljZS4gaHR0cDovL3dlYmtpdC5vcmcvYi82NTcyMgogICAgICAgICAg
ICAgRmxvYXRSZWN0IHJlY3QgPSBsb2NhbFF1YWRGb3JUZXh0Qm94KGJveCwgc3RhcnQsIGVuZCwg
dXNlU2VsZWN0aW9uSGVpZ2h0KTsKICAgICAgICAgICAgIGlmICghcmVjdC5pc1plcm8oKSkKLSAg
ICAgICAgICAgICAgICByZWN0cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyZWN0LCBmYWxz
ZSwgd2FzRml4ZWQpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpOworICAgICAgICAgICAgICAgIHJl
Y3RzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJlY3QsIFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCB3YXNGaXhlZCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CiAgICAgICAgIH0KICAgICB9
CiB9CkBAIC00MTMsNyArNDEzLDcgQEAgdm9pZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRzKFZl
Y3RvcjxGbAogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGJvdW5kYXJpZXMuc2V0
SGVpZ2h0KGVsbGlwc2lzUmVjdC5tYXhZKCkgLSBib3VuZGFyaWVzLnkoKSk7CiAgICAgICAgIH0K
LSAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoYm91bmRhcmllcywgZmFs
c2UsIHdhc0ZpeGVkKSk7CisgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFk
KGJvdW5kYXJpZXMsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCkpOwogICAgIH0K
IH0KICAgICAKQEAgLTQ0OCwxMSArNDQ4LDExIEBAIHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVR
dWFkc0ZvclJhbmdlKFYKICAgICAgICAgICAgICAgICAgICAgci5zZXRYKHNlbGVjdGlvblJlY3Qu
eCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBxdWFk
cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyLCBmYWxzZSwgd2FzRml4ZWQpKTsKKyAgICAg
ICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHIsIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zLCB3YXNGaXhlZCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgRmxv
YXRSZWN0IHJlY3QgPSBsb2NhbFF1YWRGb3JUZXh0Qm94KGJveCwgc3RhcnQsIGVuZCwgdXNlU2Vs
ZWN0aW9uSGVpZ2h0KTsKICAgICAgICAgICAgIGlmICghcmVjdC5pc1plcm8oKSkKLSAgICAgICAg
ICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyZWN0LCBmYWxzZSwgd2Fz
Rml4ZWQpKTsKKyAgICAgICAgICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVh
ZChyZWN0LCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpKTsKICAgICAgICAgfQog
ICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAko
cmV2aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIzLDcgKzUyMyw3IEBAIFN0cmluZyBSZW5kZXJUaGVt
ZTo6Zm9ybWF0TWVkaWFDb250cm9sc1IKIEludFBvaW50IFJlbmRlclRoZW1lOjp2b2x1bWVTbGlk
ZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihSZW5kZXJCb3gqIG11dGVCdXR0b25Cb3gsIGNvbnN0IElu
dFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgaW50IHkgPSAtc2l6ZS5oZWlnaHQoKTsKLSAgICBG
bG9hdFBvaW50IGFic1BvaW50ID0gbXV0ZUJ1dHRvbkJveC0+bG9jYWxUb0Fic29sdXRlKEZsb2F0
UG9pbnQobXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkT2Zmc2V0TGVmdCgpLCB5KSwgdHJ1ZSwg
dHJ1ZSk7CisgICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVCdXR0b25Cb3gtPmxvY2FsVG9B
YnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldExlZnQo
KSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMp
OwogICAgIGlmIChhYnNQb2ludC55KCkgPCAwKQogICAgICAgICB5ID0gbXV0ZUJ1dHRvbkJveC0+
aGVpZ2h0KCk7CiAgICAgcmV0dXJuIEludFBvaW50KDAsIHkpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkocmV2aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsNyAr
MTc2LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5b3V0KGZh
bHNlKTsKIH0KIAotdm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zv
cm1TdGF0ZSwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBj
b25zdAordm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0
ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAg
ICAvLyBJZiBhIGNvbnRhaW5lciB3YXMgc3BlY2lmaWVkLCBhbmQgd2FzIG5vdCAwIG9yIHRoZSBS
ZW5kZXJWaWV3LAogICAgIC8vIHRoZW4gd2Ugc2hvdWxkIGhhdmUgZm91bmQgaXQgYnkgbm93LgpA
QCAtMjE0LDEyICsyMTQsMTIgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJWaWV3OjpwdXNo
TWFwcAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlbmRlclZpZXc6Om1hcEFic29sdXRlVG9M
b2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUm
IHRyYW5zZm9ybVN0YXRlKSBjb25zdAordm9pZCBSZW5kZXJWaWV3OjptYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zv
cm1TdGF0ZSkgY29uc3QKIHsKLSAgICBpZiAoZml4ZWQgJiYgbV9mcmFtZVZpZXcpCisgICAgaWYg
KG1vZGUgJiBJc0ZpeGVkICYmIG1fZnJhbWVWaWV3KQogICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5t
b3ZlKG1fZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkpOwogCi0gICAg
aWYgKHVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcigwKSkg
eworICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9t
Q29udGFpbmVyKDApKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAgICAgICAg
IGdldFRyYW5zZm9ybUZyb21Db250YWluZXIoMCwgTGF5b3V0U2l6ZSgpLCB0KTsKICAgICAgICAg
dHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0odCk7CkBAIC00NzIsNyArNDcyLDcgQEAgSW50
UmVjdCBSZW5kZXJWaWV3OjpzZWxlY3Rpb25Cb3VuZHMoYm9vbAogICAgICAgICAvLyBSZW5kZXJT
ZWxlY3Rpb25JbmZvOjpyZWN0KCkgaXMgaW4gdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSByZXBhaW50
Q29udGFpbmVyLCBzbyBtYXAgdG8gcGFnZSBjb29yZGluYXRlcy4KICAgICAgICAgTGF5b3V0UmVj
dCBjdXJyUmVjdCA9IGluZm8tPnJlY3QoKTsKICAgICAgICAgaWYgKFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBpbmZvLT5yZXBhaW50Q29udGFpbmVyKCkpIHsKLSAg
ICAgICAgICAgIEZsb2F0UXVhZCBhYnNRdWFkID0gcmVwYWludENvbnRhaW5lci0+bG9jYWxUb0Fi
c29sdXRlUXVhZChGbG9hdFJlY3QoY3VyclJlY3QpKTsKKyAgICAgICAgICAgIEZsb2F0UXVhZCBh
YnNRdWFkID0gcmVwYWludENvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3Qo
Y3VyclJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICBjdXJyUmVj
dCA9IGFic1F1YWQuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsgCiAgICAgICAgIH0KICAgICAgICAg
c2VsUmVjdC51bml0ZShjdXJyUmVjdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmgJKHJldmlzaW9uIDEzMTA5NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw5ICsyMDYsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBoYXNSZW5kZXJDb3VudGVycygpIHsgcmV0dXJuIG1fcmVuZGVyQ291bnRlckNvdW50
OyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYs
IE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0Zs
YWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywg
Ym9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJl
bmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVk
LCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CisgICAgdmlydHVh
bCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwg
VHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNDb2x1bW5z
KGludCBkZXNpcmVkQ29sdW1uQ291bnQpIGNvbnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAJKHJldmlzaW9uIDEz
MTA5NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjksNyArMTY5LDcgQEAgYm9vbCBSZW5kZXJXaWRnZXQ6OnVwZGF0ZVdp
ZGdldEdlb21ldHJ5KAogICAgIGlmICghbV93aWRnZXQtPnRyYW5zZm9ybXNBZmZlY3RGcmFtZVJl
Y3QoKSkKICAgICAgICAgcmV0dXJuIHNldFdpZGdldEdlb21ldHJ5KGFic29sdXRlQ29udGVudEJv
eCgpKTsKIAotICAgIExheW91dFJlY3QgYWJzb2x1dGVDb250ZW50Qm94KGxvY2FsVG9BYnNvbHV0
ZVF1YWQoRmxvYXRRdWFkKGNvbnRlbnRCb3gpKS5ib3VuZGluZ0JveCgpKTsKKyAgICBMYXlvdXRS
ZWN0IGFic29sdXRlQ29udGVudEJveChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChjb250
ZW50Qm94KSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwogICAgIGlm
IChtX3dpZGdldC0+aXNGcmFtZVZpZXcoKSkgewogICAgICAgICBjb250ZW50Qm94LnNldExvY2F0
aW9uKGFic29sdXRlQ29udGVudEJveC5sb2NhdGlvbigpKTsKICAgICAgICAgcmV0dXJuIHNldFdp
ZGdldEdlb21ldHJ5KGNvbnRlbnRCb3gpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCShyZXZpc2lvbiAx
MzEwOTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25P
YmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIsNyArMTkyLDcgQEAgYm9vbCBSZW5kZXJT
VkdGb3JlaWduT2JqZWN0Ojpub2RlQXRQb2ludAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1T
dGF0ZSwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25z
dAordm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFu
c2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29u
c3QKIHsKICAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJl
cGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMsIHdhc0ZpeGVkKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCShyZXZpc2lvbiAxMzEwOTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAko
d29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0
IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQm
IGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNTVkdGb3JlaWduT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
dmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxh
Z3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBi
b29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBM
b2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWlu
ZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5n
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BB
dCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSB7IG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgPSB0cnVl
OyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5l
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0lubGluZS5jcHAJKHJldmlzaW9uIDEzMTA5NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBA
QCB2b2lkIFJlbmRlclNWR0lubGluZTo6Y29tcHV0ZUZsb2F0UmVjdEZvCiAgICAgU1ZHUmVuZGVy
U3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5l
ciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdJbmxpbmU6Om1hcExv
Y2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3Mg
bW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9j
YWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwg
Ym9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxU
b0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAm
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgJKHJldmlzaW9uIDEzMTA5
NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBMYXlv
dXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwTG9jYWxUb0NvbnRh
aW5lckZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5
Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9
IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNo
TWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9y
VG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkg
Y29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCShyZXZpc2lvbiAxMzEwOTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpjb21wdXRlRmxv
YXRSCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhp
cywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1h
cExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQg
UmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRl
LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAg
IFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRh
aW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2Fz
Rml4ZWQpOwogfQpAQCAtODcsNyArODcsNyBAQCB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojph
YnNvbHV0ZVJlY3RzCiAKIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmFic29sdXRlUXVhZHMo
VmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBx
dWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChzdHJva2VCb3VuZGluZ0JveCgpLCBmYWxz
ZSwgd2FzRml4ZWQpKTsKKyAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChzdHJv
a2VCb3VuZGluZ0JveCgpLCAwIC8qIG1vZGUgKi8sIHdhc0ZpeGVkKSk7CiB9CiAKIHZvaWQgUmVu
ZGVyU1ZHTW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCShyZXZpc2lv
biAxMzEwOTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVs
T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBv
aW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRl
UXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcExvY2FsVG9Db250YWluZXJGbGFn
cyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJv
b2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExv
Y2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5l
ckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0
LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBz
dHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5
bGUpOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAJKHJldmlzaW9uIDEzMTA5NikKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM5NSw3ICszOTUsNyBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVGbG9hdFJlY3RG
b3JSCiAvLyBUaGlzIG1ldGhvZCBleHBlY3RzIGxvY2FsIENTUyBib3ggY29vcmRpbmF0ZXMuCiAv
LyBDYWxsZXJzIHdpdGggbG9jYWwgU1ZHIHZpZXdwb3J0IGNvb3JkaW5hdGVzIHNob3VsZCBmaXJz
dCBhcHBseSB0aGUgbG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybQogLy8gdG8gY29udmVydCBmcm9t
IFNWRyB2aWV3cG9ydCBjb29yZGluYXRlcyB0byBsb2NhbCBDU1MgYm94IGNvb3JkaW5hdGVzLgot
dm9pZCBSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwg
TWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9p
ZCBSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFw
Q29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBBU1NF
UlQobW9kZSAmIH5Jc0ZpeGVkKTsgLy8gV2Ugc2hvdWxkIGhhdmUgbm8gZml4ZWQgY29udGVudCBp
biB0aGUgU1ZHIHJlbmRlcmluZyB0cmVlLgogICAgIEFTU0VSVChtb2RlICYgVXNlVHJhbnNmb3Jt
cyk7IC8vIG1hcHBpbmcgYSBwb2ludCB0aHJvdWdoIFNWRyB3L28gcmVzcGVjdGluZyB0cmFzbmZv
cm1zIGlzIHVzZWxlc3MuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuaAkocmV2aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJl
cGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYgcmVwYWludFJl
Y3QsIGJvb2wgZml4ZWQpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExv
Y2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9IEFwcGx5Q29u
dGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDAp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwg
TWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlN
YXAmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVNlbGVjdGlvbkxl
YWYoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCShyZXZpc2lvbiAxMzEwOTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBSZW5kZXJTVkdUZXh0Ojpjb21wdXRlRmxvYXRSZWN0
Rm9yUgogICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHRo
aXMsIHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVu
ZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcExvY2Fs
VG9Db250YWluZXJGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVy
U1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgU1ZHUmVuZGVyU3Vw
cG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zv
cm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CiB9CkBA
IC00ODQsNyArNDg0LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlclNWR1RleHQ6OnBvc2l0aW9u
RgogCiB2b2lkIFJlbmRlclNWR1RleHQ6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4m
IHF1YWRzLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBxdWFkcy5hcHBlbmQobG9jYWxU
b0Fic29sdXRlUXVhZChzdHJva2VCb3VuZGluZ0JveCgpLCBmYWxzZSwgd2FzRml4ZWQpKTsKKyAg
ICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChzdHJva2VCb3VuZGluZ0JveCgpLCAw
IC8qIG1vZGUgKi8sIHdhc0ZpeGVkKSk7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHVGV4dDo6cGFpbnQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCShyZXZpc2lvbiAxMzEwOTYp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkg
Y29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYs
IE1hcExvY2FsVG9Db250YWluZXJGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0Zs
YWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywg
Ym9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJl
bmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5k
ZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxk
KFJlbmRlck9iamVjdCopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCShyZXZpc2lvbiAxMzEwOTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxU
b0NvbnRhaW4KICAgICBpZiAocGFyZW50LT5pc1NWR1Jvb3QoKSkKICAgICAgICAgdHJhbnNmb3Jt
U3RhdGUuYXBwbHlUcmFuc2Zvcm0odG9SZW5kZXJTVkdSb290KHBhcmVudCktPmxvY2FsVG9Cb3Jk
ZXJCb3hUcmFuc2Zvcm0oKSk7CiAKLSAgICBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSA9
IFVzZVRyYW5zZm9ybXM7CisgICAgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gVXNlVHJhbnNm
b3JtczsKICAgICBpZiAoc25hcE9mZnNldEZvclRyYW5zZm9ybXMpCiAgICAgICAgIG1vZGUgfD0g
U25hcE9mZnNldEZvclRyYW5zZm9ybXM7CiAgICAgcGFyZW50LT5tYXBMb2NhbFRvQ29udGFpbmVy
KHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzEwOTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1
MSw3ICs0NTEsNyBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHU1ZHRWxlbWVudDo6bG9jYWxDb29yCiAK
ICAgICAgICAgICAgIC8vIFRyYW5zbGF0ZSBpbiBvdXIgQ1NTIHBhcmVudCBjb29yZGluYXRlIHNw
YWNlCiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBkb2Vzbid0IHdvcmsgY29ycmVjdGx5IHdp
dGggQ1NTIHRyYW5zZm9ybXMuCi0gICAgICAgICAgICBsb2NhdGlvbiA9IHJlbmRlcmVyLT5sb2Nh
bFRvQWJzb2x1dGUobG9jYXRpb24sIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgIGxvY2F0aW9u
ID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZShsb2NhdGlvbiwgVXNlVHJhbnNmb3Jtcyk7CiAg
ICAgICAgICAgICBsb2NhdGlvbi5zY2FsZSh6b29tRmFjdG9yLCB6b29tRmFjdG9yKTsKIAogICAg
ICAgICAgICAgLy8gQmUgY2FyZWZ1bCBoZXJlISBsb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtKCkg
aW5jbHVkZWQgdGhlIHgveSBvZmZzZXQgY29taW5nIGZyb20gdGhlIHZpZXdCb3hUb1ZpZXdUcmFu
c2Zvcm0oKSwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZW5kZXJPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZW5kZXJPYmplY3QuY3Bw
CShyZXZpc2lvbiAxMzEwOTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyT2Jq
ZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBXZWJSZW5kZXJPYmplY3Q6
OldlYlJlbmRlck9iamVjdChSZW5kZXJPCiAgICAgfQogCiAgICAgLy8gRklYTUU6IGJyb2tlbiB3
aXRoIHRyYW5zZm9ybXMKLSAgICBtX2Fic29sdXRlUG9zaXRpb24gPSBmbG9vcmVkSW50UG9pbnQo
cmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCkpKTsKKyAgICBtX2Fic29sdXRl
UG9zaXRpb24gPSBmbG9vcmVkSW50UG9pbnQocmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZSgpKTsK
IAogICAgIGlmIChyZW5kZXJlci0+aXNCb3goKSkKICAgICAgICAgbV9mcmFtZVJlY3QgPSB0b1Jl
bmRlckJveChyZW5kZXJlciktPnBpeGVsU25hcHBlZEZyYW1lUmVjdCgpOwpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVs
bFNjcmVlbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxMzEwOTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01Miw3ICs1Miw3IEBAIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3RPZkNvbnRlbnRz
KEVsZW0KICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGVsZW1lbnQt
PnJlbmRlcmVyKCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+aGFzTGF5ZXIoKSAmJiBlbGVtZW50
LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5pc0NvbXBvc2l0ZWQoKSkgewogICAgICAg
ICBGbG9hdFF1YWQgY29udGVudHNCb3ggPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3Q+KGVsZW1lbnQt
PnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPmJhY2tpbmcoKS0+Y29udGVudHNCb3goKSk7
Ci0gICAgICAgIGNvbnRlbnRzQm94ID0gZWxlbWVudC0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29s
dXRlUXVhZChjb250ZW50c0JveCk7CisgICAgICAgIGNvbnRlbnRzQm94ID0gZWxlbWVudC0+cmVu
ZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChjb250ZW50c0JveCwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMpOwogICAgICAgICByZXR1cm4gZWxlbWVudC0+cmVuZGVyZXIoKS0+dmlldygpLT5m
cmFtZVZpZXcoKS0+Y29udGVudHNUb1NjcmVlbihjb250ZW50c0JveC5lbmNsb3NpbmdCb3VuZGlu
Z0JveCgpKTsKICAgICB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0ZpbmRJblBhZ2VDb29yZGluYXRlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRmluZEluUGFnZUNvb3JkaW5hdGVzLmNwcAkocmV2aXNpb24gMTMxMDk2KQor
KysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRmluZEluUGFnZUNvb3JkaW5hdGVzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgRmxvYXRSZWN0IHRvTm9ybWFs
aXplZFJlY3QoY29uc3QgCiAgICAgICAgIHNjcm9sbGVkT3JpZ2luID0gLUludFBvaW50KGNvbnRh
aW5lci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOwogCiAgICAgRmxvYXRSZWN0IG92ZXJmbG93
UmVjdChzY3JvbGxlZE9yaWdpbiwgY29udGFpbmVyLT5tYXhMYXlvdXRPdmVyZmxvdygpKTsKLSAg
ICBGbG9hdFJlY3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVh
ZChGbG9hdFF1YWQob3ZlcmZsb3dSZWN0KSwgZmFsc2UpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7
CisgICAgRmxvYXRSZWN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0
ZVF1YWQoRmxvYXRRdWFkKG92ZXJmbG93UmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5l
bmNsb3NpbmdCb3VuZGluZ0JveCgpOwogCiAgICAgaWYgKGNvbnRhaW5lclJlY3QuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcAkocmV2aXNpb24gMTMxMDk2KQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hsaWdodC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0VGFyZ2V0U3BhY2VRdWFkVG9Db21w
CiAKICAgICAgICAgcG9pbnQgPSB0YXJnZXRSZW5kZXJlci0+ZnJhbWUoKS0+dmlldygpLT5jb250
ZW50c1RvV2luZG93KHBvaW50KTsKICAgICAgICAgcG9pbnQgPSBjb21wb3NpdGVkUmVuZGVyZXIt
PmZyYW1lKCktPnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhwb2ludCk7Ci0gICAgICAgIEZsb2F0
UG9pbnQgZmxvYXRQb2ludCA9IGNvbXBvc2l0ZWRSZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBv
aW50LCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIEZsb2F0UG9pbnQgZmxvYXRQb2ludCA9IGNvbXBv
c2l0ZWRSZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMpOwogCiAgICAgICAgIHN3aXRjaCAoaSkgewogICAgICAgICBj
YXNlIDA6IGNvbXBvc2l0ZWRTcGFjZVF1YWQuc2V0UDEoZmxvYXRQb2ludCk7IGJyZWFrOwpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRD
b252ZXJzaW9uLmNwcAkocmV2aXNpb24gMTMxMDk2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTks
NyArMzk5LDcgQEAgc3RhdGljIGludCBnZXRXZWJJbnB1dE1vZGlmaWVycyhjb25zdCBVSQogCiBz
dGF0aWMgSW50UG9pbnQgY29udmVydExvY2F0aW9uRm9yUmVuZGVyT2JqZWN0KGNvbnN0IExheW91
dFBvaW50JiBsb2NhdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0JiByZW5kZXJPYmpl
Y3QpCiB7Ci0gICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludChyZW5kZXJPYmplY3QuYWJzb2x1dGVU
b0xvY2FsKGxvY2F0aW9uLCBmYWxzZSwgdHJ1ZSkpOworICAgIHJldHVybiByb3VuZGVkSW50UG9p
bnQocmVuZGVyT2JqZWN0LmFic29sdXRlVG9Mb2NhbChsb2NhdGlvbiwgVXNlVHJhbnNmb3JtcyB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVdlYk1v
dXNlRXZlbnRGcm9tV2ViQ29yZU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudCYgZXZlbnQsIGNv
bnN0IFdpZGdldCYgd2lkZ2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QmIHJlbmRlck9i
amVjdCwgV2ViTW91c2VFdmVudCYgd2ViRXZlbnQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0JKHJldmlzaW9uIDEz
MTA5NikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xs
ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIEludFJlY3Qgc2Ny
ZWVuUmVjdE9mQ29udGVudHMoRWxlbQogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICBpZiAoZWxl
bWVudC0+cmVuZGVyZXIoKSAmJiBlbGVtZW50LT5yZW5kZXJlcigpLT5oYXNMYXllcigpICYmIGVs
ZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPmlzQ29tcG9zaXRlZCgpKSB7CiAg
ICAgICAgIEZsb2F0UXVhZCBjb250ZW50c0JveCA9IHN0YXRpY19jYXN0PEZsb2F0UmVjdD4oZWxl
bWVudC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKS0+YmFja2luZygpLT5jb250ZW50c0Jv
eCgpKTsKLSAgICAgICAgY29udGVudHNCb3ggPSBlbGVtZW50LT5yZW5kZXJlcigpLT5sb2NhbFRv
QWJzb2x1dGVRdWFkKGNvbnRlbnRzQm94KTsKKyAgICAgICAgY29udGVudHNCb3ggPSBlbGVtZW50
LT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKGNvbnRlbnRzQm94LCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3Jtcyk7CiAgICAgICAgIHJldHVybiBlbGVtZW50LT5yZW5kZXJlcigpLT52aWV3
KCktPmZyYW1lVmlldygpLT5jb250ZW50c1RvU2NyZWVuKGNvbnRlbnRzQm94LmVuY2xvc2luZ0Jv
dW5kaW5nQm94KCkpOwogICAgIH0KICAgICByZXR1cm4gZWxlbWVudC0+c2NyZWVuUmVjdCgpOwpJ
bmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZW5kZXJOb2RlLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVuZGVyTm9kZS5tbQkocmV2aXNp
b24gMTMxMDk2KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZW5kZXJOb2RlLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5OSw3IEBAIHN0YXRpYyBXZWJSZW5kZXJOb2RlICpj
b3B5UmVuZGVyTm9kZShSZW4KICAgICBGcmFtZSogZnJhbWUgPSBmcmFtZVZpZXcgPyBmcmFtZVZp
ZXctPmZyYW1lKCkgOiAwOwogCiAgICAgLy8gRklYTUU6IGJyb2tlbiB3aXRoIHRyYW5zZm9ybXMK
LSAgICBGbG9hdFBvaW50IGFic1BvcyA9IG5vZGUtPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50
KCkpOworICAgIEZsb2F0UG9pbnQgYWJzUG9zID0gbm9kZS0+bG9jYWxUb0Fic29sdXRlKCk7CiAg
ICAgaW50IHggPSAwOwogICAgIGludCB5ID0gMDsKICAgICBpbnQgd2lkdGggPSAwOwpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTMxMDk2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMTAtMTEgIExldmkgV2VpbnRyYXViICA8bGV2aXdA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTdWIgcGl4ZWwgbGF5b3V0XSBGYXN0LXBhdGggaWZy
YW1lIHNjcm9sbGluZyBjYW4gcGlja3MgdXAgYW4gZXh0cmEgcGl4ZWwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NTcxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRW1pbCBBIEVrbHVuZC4KKworICAgICAgICBUZXN0cyBzY3JvbGxpbmcgb2Ygc3ViLXBp
eGVsIGxheWVycyBvbiBzdWItcGl4ZWwgcGxhdGZvcm1zIChDaHJvbWl1bSkuCisKKyAgICAgICAg
KiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3N1
Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZy
YW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvZmFzdC9yZXBhaW50L3JlcGFpbnQtYWNyb3NzLXdyaXRpbmctbW9k
ZS1ib3VuZGFyeS1leHBlY3RlZC5wbmc6CisgICAgICAgIFRoZSByZXBhaW50IHJlY3Qgc2hyaW5r
cyBzYWZlbHkgYnkgb25lIHBpeGVsLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxpb24vVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQtNC44
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4td2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vd2luLXhwL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAxMi0xMC0xMSAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IEluZGV4ZWREQjogSURMIHR5cGVzIGRlZmluZWQgaW4gc3BlYyBzaG91bGQgYmUgdmlzaWJsZSB0
byBzY3JpcHRzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZy
YW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9z
dWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4i
PgorLmNvbnRhaW5lciB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHBhZGRpbmc6IDEw
LjNweDsKKyAgICB6LWluZGV4OiAxOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9yZXBh
aW50L3Jlc291cmNlcy9yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1lKCkgeworICB2YXIgc3ViRG9jdW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY29udGVudFdpbmRvdy5kb2N1bWVu
dDsKKyAgc3ViRG9jdW1lbnQub3BlbigndGV4dC9odG1sJywgJ3JlcGxhY2UnKTsKKyAgc3ViRG9j
dW1lbnQud3JpdGUoIjwhRE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkgc3R5bGU9XCJiYWNrZ3Jv
dW5kLWNvbG9yOiBzaWx2ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5PiIpCisgIHN1YkRvY3Vt
ZW50LmNsb3NlKCk7Cit9CisKK2Z1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAxMCk7Cisg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXR1cElmcmFtZSgpO3J1blJlcGFp
bnRUZXN0KCkiPgorICA8cD5UaGUgaWZyYW1lIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aGVu
IHNjcm9sbGluZy48L3A+CisgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgPGlmcmFtZSBp
ZD0iaWZyYW1lIiAgc3R5bGU9IndpZHRoOiAzMDBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1l
PgorICA8L2Rpdj4KKyAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJh
bWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUt
Y29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1j
b3B5LW9uLXNjcm9sbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAK
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTIKKyAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgODAweDUyCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNp
emUgNzg0eDIwCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjAKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzE1eDE5CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzE1OiAiVGhlIGlmcmFtZSBiZWxvdyBzaG91bGQgcmVt
YWluIGdyZXkgd2hlbiBzY3JvbGxpbmcuIgorbGF5ZXIgYXQgKDgsNTIpIHNpemUgMzI1eDIzMAor
ICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDgsNTIpIHNpemUgMzI1
eDIzMAorICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDEwLDEwKSBzaXplIDMwNHgy
MDUgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVyIGF0ICgwLDApIHNp
emUgMjg1eDEwMTYKKyAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDI4NXgyMDAKKyAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMjg1eDEwMTYKKyAgICAgICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgMjg1eDEwMTYKKyAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDI2OXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgUmVuZGVyVGV4dCB6
STogMSB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMTA5NikKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29w
eSkKQEAgLTM1NDEsNiArMzU0MSwxMCBAQCB3ZWJraXQub3JnL2IvODk3MDIgcGxhdGZvcm0vY2hy
b21pdW0vdmlyCiB3ZWJraXQub3JnL2IvODk3ODkgWyBNYWMgXSBwbHVnaW5zL2VtYmVkLWF0dHJp
YnV0ZXMtc3R5bGUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCiB3ZWJraXQub3JnL2Iv
ODk3ODkgWyBNYWMgXSB1c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC12aWRlby1kb2N1bWVudC5odG1s
IFsgQ3Jhc2ggUGFzcyBdCiAKKyMgTmVlZCByZWJhc2VsaW5lIGFmdGVyIGJvdHMgY3ljbGUuCit3
ZWJraXQub3JnL2IvOTg1NzEgWyBXaW4gTWFjIF0gZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlm
cmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KK3dlYmtpdC5vcmcvYi85
ODU3MSBbIFdpbiBNYWMgXSBmYXN0L3JlcGFpbnQvcmVwYWludC1hY3Jvc3Mtd3JpdGluZy1tb2Rl
LWJvdW5kYXJ5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3MgXQorCiAjIEZsYWt5CiB3ZWJr
aXQub3JnL2IvODk3OTQgWyBNYWMgXSBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVu
dDIuaHRtbCBbIENyYXNoIFBhc3MgXQogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
bGlvbi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1saW9uL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMTA5NikKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy1saW9uL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAg
LTEyMCw2ICsxMjAsNyBAQCBmYXN0L3N1Yi1waXhlbC90YWJsZS1yb3dzLW5vLWdhcHMuaHRtbAog
ZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWFjY3VtdWxhdGVzLXRvLWxheWVycy5odG1sCiBmYXN0
L3N1Yi1waXhlbC9zZWxlY3Rpb24vc2VsZWN0aW9uLXJlY3QtaW4tc3ViLXBpeGVsLXRhYmxlLmh0
bWwKIGZhc3Qvc3ViLXBpeGVsL3NuYXAtbmVnYXRpdmUtbG9jYXRpb24uaHRtbAorZmFzdC9zdWIt
cGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCiBmYXN0L3N1Yi1waXhl
bC96b29tZWQtaW1hZ2UtdGlsZXMuaHRtbAogCiAjIFRoaXMgbWVkaWEgdGVzdCBhbHdheXMgZmFp
bGVkIG9uIExpb24KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9U
ZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1z
bm93bGVvcGFyZC9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzEwOTYpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBj
b3B5KQpAQCAtMjE3LDYgKzIxNyw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fw
cy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0
bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwt
dGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitm
YXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIAogIyBG
cmFtZTo6ZmluZFN0cmluZyBkb2VzIG5vdGhpbmcgb24gcGFnZXMgdGhhdCBwcmV2ZW50IHNlbGVj
dGlvbgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNjEKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMJKHJl
dmlzaW9uIDEzMTA5NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVj
dGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTkyLDYgKzE5Miw3IEBAIGZhc3Qvc3ViLXBpeGVs
L3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11
bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24t
cmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2
ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24t
c2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMg
ZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91dC5odG1sLCBwYWdlc2hvdy1wYWdlaGlkZS1vbi1i
YWNrLWNhY2hlZC13aXRoLWZyYW1lcy5odG1sLCBhbmQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzEwOTYpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNjk5LDYg
KzY5OSw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1
Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBp
eGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFz
dC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9z
dWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21l
ZC1pbWFnZS10aWxlcy5odG1sCiAKICMgTm8gQ09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50
cyBpcyBpbXBsZW1lbnRlZCB5ZXQuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00Ljgv
VGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00
LjgvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTMxMDk2KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsx
MTUsNyBAQCBmYXN0L3N1Yi1waXhlbC90YWJsZS1yb3dzLW5vLWdhcHMuaHRtbAogZmFzdC9zdWIt
cGl4ZWwvc3ViLXBpeGVsLWFjY3VtdWxhdGVzLXRvLWxheWVycy5odG1sCiBmYXN0L3N1Yi1waXhl
bC9zZWxlY3Rpb24vc2VsZWN0aW9uLXJlY3QtaW4tc3ViLXBpeGVsLXRhYmxlLmh0bWwKIGZhc3Qv
c3ViLXBpeGVsL3NuYXAtbmVnYXRpdmUtbG9jYXRpb24uaHRtbAorZmFzdC9zdWItcGl4ZWwvc3Vi
LXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCiBmYXN0L3N1Yi1waXhlbC96b29tZWQt
aW1hZ2UtdGlsZXMuaHRtbAogCiAjIFNWRyBGb250cyBhcmUgb25seSBzdXBwb3J0ZWQgd2hlbiB1
c2luZyBRUmF3Rm9udCwgd2hpY2ggaXMgbm90CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMTA5NikKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTMyNyw2ICszMjcsNyBA
QCBmYXN0L3N1Yi1waXhlbC90YWJsZS1yb3dzLW5vLWdhcHMuaHRtbAogZmFzdC9zdWItcGl4ZWwv
c3ViLXBpeGVsLWFjY3VtdWxhdGVzLXRvLWxheWVycy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zZWxl
Y3Rpb24vc2VsZWN0aW9uLXJlY3QtaW4tc3ViLXBpeGVsLXRhYmxlLmh0bWwKIGZhc3Qvc3ViLXBp
eGVsL3NuYXAtbmVnYXRpdmUtbG9jYXRpb24uaHRtbAorZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVs
LWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCiBmYXN0L3N1Yi1waXhlbC96b29tZWQtaW1hZ2Ut
dGlsZXMuaHRtbAogCiAjIFVTRShWOCkKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi13
azIvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4td2syL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMTA5NikKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi13azIvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtOTU0
LDYgKzk1NCw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0
L3N1Yi1waXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3Vi
LXBpeGVsL3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAog
ZmFzdC9zdWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhl
bC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pv
b21lZC1pbWFnZS10aWxlcy5odG1sCiAKICMgSGlEUEkgdGVzdHMgcmVxdWlyZSB0ZXN0IGluZnJh
c3RydWN0dXJlIGVuaGFuY2VtZW50cwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luLXhw
L1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
LXhwL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMTA5NikKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi14cC9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1
Myw3IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1w
aXhlbC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVs
L3NlbGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9z
dWItcGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWIt
cGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1p
bWFnZS10aWxlcy5odG1sCiAKICMgUkVHUkVTU0lPTiAocjgzOTI4IG9yIGJlZm9yZSk6IFNvbWUg
dGVzdHMgZmFpbGluZyBhc3NlcnRpb25zIGluIE1hcmtTdGFjazo6aW50ZXJuYWxBcHBlbmQgLyBN
YXJrU3RhY2s6OmRyYWluCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucwkocmV2aXNpb24gMTMxMDk2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTE3NjIsNiArMTc2Miw3IEBAIGZhc3Qv
c3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVjdGlvbi9z
ZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4ZWwvc25h
cC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1l
LWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFnZS10aWxlcy5o
dG1sCiAKICMgTm8gQ09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50cyBpcyBpbXBsZW1lbnRl
ZCB5ZXQuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRp
b25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBl
Y3RhdGlvbnMJKHJldmlzaW9uIDEzMTA5NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNh
aXJvL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTIyODQsNiArMjI4NCw3IEBA
IGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhlbC9z
dWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3NlbGVj
dGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWItcGl4
ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwt
aWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIAogIyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlh
IGVsZW1lbnRzIGlzIGltcGxlbWVudGVkIHlldC4KIGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8t
Y3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzEwOTYpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw3
IEBAIGZhc3Qvc3ViLXBpeGVsL3RhYmxlLXJvd3Mtbm8tZ2Fwcy5odG1sCiBmYXN0L3N1Yi1waXhl
bC9zdWItcGl4ZWwtYWNjdW11bGF0ZXMtdG8tbGF5ZXJzLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3Nl
bGVjdGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaHRtbAogZmFzdC9zdWIt
cGl4ZWwvc25hcC1uZWdhdGl2ZS1sb2NhdGlvbi5odG1sCitmYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKIGZhc3Qvc3ViLXBpeGVsL3pvb21lZC1pbWFn
ZS10aWxlcy5odG1sCiAKICMgW1dLMl1bV1RSXSBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXRleHQt
bmVzdGVkLXRyYW5zZm9ybXMuaHRtbCBmYWlscwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvZmFzdC9yZXBhaW50L3JlcGFpbnQtYWNyb3NzLXdyaXRpbmctbW9kZS1i
b3VuZGFyeS1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJr
ZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKaVZCT1J3MEtH
Z29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJR
QTROemRpTWpZNApORFJoT1dGaE16RmpaV0l6TldJNFpUUTJPR1UwWWpVMlpCbmw5dEVBQUNBQVNV
UkJWSGljN2QxWmpHUFpmZWY1UTE3dWpJVms3RnZHCkhwbXhaR1ZHVmxabHFWU2xVcFhra3Fva0x5
TnJ1c1orR0Q5ME45Q3cwY0I0TUQwVzRFRVBoT2x1ak5BdG9ORXpENE4rYUFNRzNMRHMKVnN2ZHNv
U1NMTXNxbDFWTFpsYmxucEdac1RISTJMZ0V0K0JsY0x1ODgzQVZMR1pzdVoxTU1zanZCL1ZBM3Jp
OC9KK3NZTVF2empuMwpITk03Nzd3akFBQUFJSSs1MmdVQUFBRFVHd0lXQUFDQVpBUXNBQUFBeVFo
WUFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQUFnQUFrSXlBCkJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dR
RUxBQUFBTWtJV0FBQUFKSVJzQUFBQUNRallBRUFBRWhHd0FJQUFKQ01nQVVBQUNBWkFRc0EKQUVB
eUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUFBQUFrSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFn
R1FFTEFBQkFNZ0lXQUFDQQpaQVFzQUFBQXlRaFlBQUFBa2hHd0FBQUFKQ05nQVFBQVNFYkFBZ0FB
a0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJCldBQUFBSklSc0FBQUFDUWpZQUVB
QUVoR3dBSUFBSkNNZ0FVQUFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUEK
QUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZ0dRRUxBQUJBTWt1MUN6aFlQcCt2ZGdrQWdBWmxz
OW1xWFFLT3ZSb05XRUlJdnJ1Qgp4OGZuQjNoYy9JRVBLUmdpQkFBQWtJeUFCUUFBSUJrQkN3QUFR
RElDRmdBQWdHUUVMQUFBQU1rSVdBQUFBSklSc0FBQUFDUWpZQUVBCkFFaEd3QUlBQUpDTWdBVUFB
Q0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKQ0ZnQUFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FB
Q1EKaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBSkNOZ0FR
QUFTRWJBQWdBQWtJeUFCUUFBSUJrQgpDd0FBUURKTHRRc0FnSG94dC9qNHIyMXFldEozVDZjZi83
V1RvdzkxV3QwM0VKQ25YZ0xXb3JTUC9jTG1aci9QNTdEWjlwd1YzTnJxCjhYZ3Npdkw0Yi9RUTFH
eDJibTF0b0sydG83WFZiREtWajVkMHZmTHBnVmEzdHR4MnU3ZWlPYUZFd21xeCtKNzg1eHBrZVpM
ZkVLUDgKaGdDQVk0TWh3dnRzeE9NM0FvSHRiRllJb2V2NmpVQWdYeXdLSVhaeXVRL3UzbDNkMmlx
ZmVXZHRMWnhNU25uVHJlM3RlK3Zyb1VUaQo0c0xDUi9QekRwdk43WEJzeHVNL3Yza3pFSW1zYlcy
dGJXMTlQRC8vNGIxN3VxNGZjWjNnMXRZblMwdVZSOWJpOFkvdTNkTktKZU5wCkxKMHVhSnFVbWdF
QXdCSHFwUWRMQnExVXVySzgzTzN4ckc1dFJWT3BmTEVZVHFWeWhjTDUwZEdGVU1qWDFCUkxwM2Z5
ZWVQa1NDb1YKU2FVOGJyZk44cVQvaHBsYzdub2c4TVdwcVJkR1IwMjczVlRKVENhMXM5UHFkaHRQ
ZC9KNXhXd3U2YnF5ZThKT1BoK01SaXV2azg1bQo3UmJMdmZYMThwR0VxanBzdHNYTlRlUHA3YlUx
cTZKOCtmUnB1OVg2aERVREFJQWpFTEIrUmRmMXk0dUwwd01EZ3gwZGtWUnFZWFB6Cnd2aTRNU29Y
VDZkajZmVHIwOU9oWkhJdEZqTmkwS1RFOXphWjdGWnJlMHRMNWJHaXBqbXMxbGFYeTNocVVSU3Yy
NjJZUCt0eGROcHMKSTExZGxTK0pwZE10VG1mbHdYUTJhektaeWtlTUIwOTdsTE1XeEZWMUtSUmFp
VVMrY2VGQ3RXc0JucFEvRXVuemVxMzcvcFpiaThVNgpXMXIySHo5MjZyNkJhRXdNRVFvaGhLN3I2
N0hZWkYvZllFZUhFS0tqcFNXVnlhekhZa0tJZERhYnlHUmVuWnkwS0VxdjF4dE9Kc09wCmxOeDNM
MCt0S21yYWxlVmxZeFF2azhzMU81MUh2OUNpS01iSkZrV3hLTXFab2FIUjdtNkxvcGpONW9zTEM2
bWRuY24rL2xPOXZjWVIKNDV4R1NGZENpUGZuNWhZMk54OStQRFNkelM1c2JyNC9OL2Y5ano1NnFv
VUJqeXFTU2wxWlhsNkx4NDJudDRMQlFyRW9oRkN6MlYvZQp2VnY1NDJnK0dvMm9hbldxZkFKMTMw
QTBMUDR5RUVJSWs4blUxOVltaE1qa2NwbGNUZ2h4ZG5oWU1abWlxWlF1UkxQREVkdmVOczRjCjZ1
eGMyTmhvYjI2dTdFeDZjb1ZpOFhZd21DMFVFcG5NdmZYMTZZR0JjQ3JWNy9NZGVISThuUzdQWkxk
YkxIOC9OOWZWMmpyWjMrL2MKblppL3NMbTVIbyszTlRlNzdIWWhoRWluYndZQ0ozdDc5L1I0MWJH
M1ptZi82OGNmUC96NUg5eTdWeXFWa3BuTTB5c0plQXlGWXZIaQp3a0tmenhkUHA5UFpiS0ZZakt1
cUVHSjZZTUFmaVhRME42L0ZZdkhkekJGSnBZTEo1QnZINm1hSXVtOGdHaGtCNno0V1JTbnB1aERD
CkpFUkoxd3VhOWc5MzdueHVZc0t4TzJrcG9hcHFOcHN2Rkp4R2RwSEJaREpaTFphcGdZSHlrWEF5
dWIyelkzU25HY3dtVTdrL1pqa2MKdGx1dFJuZ3ltODB2am8xOVBEOC8xdE5qVlJRaFJEcWJ2UjBN
dmp3eDBiSTd2R2pNZkcrb2VWZldSK3lvZS9PNTU0cWE5djFIeVdUQQpNM0RWNzUvdTd4L3E3SXlr
VXY1dytJV3hNZU40UWxVenVkenJNek5yc1Zna2xUbzdOQ1NFRUY1dkZVdDlQSFhmUURReUF0Wjli
QlpMCloydHIrV211VUJCQ3REVTF1UjBPNDBnZ0duWGI3UkxUMVg2QmFOUWZpWHh4ZXJweU9LL0o0
VmdLaFhLRlFxRlkzRXdtTS9uOEs2ZE8KR1Y5eTJlMnZ6OHdZajdQNS9LWEZ4ZGVtcGtMSlpHZHJx
MFZSRmpZM2s1bk1yNTArL1ZScnJnTU5NbmlLWXlTU1NrMFBEQmgvU25XMAp0RnoxKzhQSlpHZHJh
NkZZVkhNNUk0djArWHhYL2Y1ZXI3ZnlCOWR4VWZjTlJJTWpZTjNuOHVMaWFGZFhlZktUc2NDQlZp
b1ZkM3VQCkNwcjJoTCtKQzVxMnZiTno0TnBVK1dMeEY3ZHVuVDV4NGd1VGUrZlFUL1gxT2F6V25Y
eSt5ZUVZN3V6czlucDFYVjhNaGJ4dWQxdHoKczNGT0twTUpibTE5Zm1MQ1pyVzJ1RnlmTGk5N1hL
NDc2K3V2VDA4Zm5hNFNxcm9jRHZzamtiZG5aeTh2TG00a0VuYUxaZWJFaWVITwpUdU9FWEtGd0l4
QllpOFZ5aFlLaUtPM056Yk5EUXkwdVYxeFZsME9obFdqME44K2Z2N3kwRkloRyszeSt6MDFNSEhh
K2NiV2xVR2h1CmJTMlR5N1UzTjc4d050YmtjQWdoSHZWU0Q2elpvSlZLVi8xK2Z5Uml0MWhlR2gv
ZmN5Y0JVTXM2V2xxRUVKbGNUalhtTFF3TkNTRWkKcVpRUXdtYXhSSFluSncxMWRQZ2prZU9ZUCtx
K2dXaHdCS3o3ck1aaWl0bmN0TnRmWmVTcTROWldlUzJHMU02T2UxOVlpYVJTaVllZQplcm1aU0d3
bUVwK2JtT2h2YXlzZkxCU0xONFBCb3FhMU9KMWIyOXM5KzNyQ2JWYnJxYjYrZSt2clBWNXZPZjhO
dExXOWUvWHF6SWtUCm8xMWRCVTB6bTgzVHUrT01pdG5jNm5KZER3Ukd1N3JLM1crSCtjWHQyMFpm
M2VMbTV2blIwWjE4L3IzYnR5OHVMRGl0MW02dlZ3angKM3R4Y1BKMStZMmJHMTlTMEZBcDl1cno4
d2IxN1h6MTc5dTl2Mzg0V0NrS0loVkRvOUlrVCtXSXh0Yk56eFBsQ2lMdnI2MWY5L3JORApRNk5k
WFZmOC9oOTkrcWxSclZWUkh1bFNENnpaTUwreE1UTXcwTm5hK3NIZHU1OHNMMy9sekptSC9OOEUx
QWlyb3V4WkFPOFh0MjkvCmNXcXEvRlRONWRSc1ZzMW0zYys4TmlucXZvRm9XQVNzK3hTS3hkSHU3
cGJkQkpNckZLNEhBa01kSGVXTTB1M3g3Si9mMDk3YzdIVS8KN0dmZjZHS3BuQ052RXNKbXNjenNa
cU5Dc1hoN2RWWG9lanFYYTZvSWMybyt2eFFLUmJlM1h6NTUwamhpdDFwZm01b3k1bVpsOC9seQo4
Q3BxMmxXLzM2b292L1hDQzNmVzFuNXk5ZXJKM3Q3QmpvN0RKdWEvZGZic1gxMjZKSVNZN084M21V
eDJxL1gwaVJPWEZoZnZySzhiCllVWFg5V2FIdy9oemM3UzcrOVBsWlNQOWZPM2NPV1BlVWxkcnE5
Tm1LNDlhSG5hK0VHSnVkVlVJTWRiZHJaak5wd2NHbGtLaGpwYVcKTjJabXlsT2dIdkpTRDZ6Wk1O
N1RvNWpOZlY2dkVDTEZISFljUTliNzV5MElJVXhDVkI2SnBsSk5kcnZiNFhpaWZRS3FwKzRiaUla
Rgp3UHBNcmxBbzZicHIzeVk1bFpxZFRtTnNicVN6czd3b3FNbGtlc0p4dzhwTmNLd1d5MVIvdnhE
Q0h3NFBWUXg0ZlRRL1A5VFJjV0Y4CnZQS0ZIcmRiQ0xFUmp4c0pUOWYxbFdnMG9hb1R2YjFHVEp3
ZUdPanorVDVaWHI3cTkvZDR2VDFlYjF0VDA1NEZJTXJ6MzhzdE1yclEKdG5aL25Ca2RQL2xpMFIr
SkxJZEN4aHVKaW5sTDVmVzZqajdmZUVtdVdDeHFtbUkyRzh2YmJPL3NQTWFsSGxpendjaVVack5a
Q0ZFNgpjaDE4b0RiOTh1N2RpWjZlanNOSHQrT3ErdkIvNE5XZ3VtOGdHaFlCNnpQSlRNYWlLUE1i
RzhaVFhZaEFOQ3FFV0FpRmJCWDVLWlBQCkwyeHVhcG8yMGRzcjY2MU5GZXV6cDdQWlpvZkRZYk0x
T1J4cnNWaWZ6eWVFaUtmVEcvSDRXMmZQSHZqeTFWaXNvNlZsYTN0N1lYUFQKNDNhZkdSdzBWV3hj
NkhHN3Z6UXo4OU5yMTVLcXVoNlB2M3JxMUFOWDJETHVtaXp0N3JHamxVbzNBb0dGemMxZXIvZUZz
YkcvdVg3OQo2SmNmY2Y3czhQQUhkKy9lQ0FUT0RnMHRoOE1tSWM0ZmVkUDF3Ny8xbnBxQityQWVp
MW5NNWxERnhseTZydDhNQnN0UDA3bmNzYzRmCmRkOUFOQ3dDMW1kTUp0TllWOWRrZjcveDlQcktp
akVIYSt6K2FVeWhSQ0lRalVwSlYwVk4yODVtdDlMcGJLSHc0YjE3VHB1dHE3VzEKMitNeDRsRjdT
OHNuUzB0dXU3M0Y2Ynk0c0hCK1pHVC9GdFJDaUVncVpSTENaREsxTlRkSFVxbUZqWTM5SWFOWUtz
VlZkYUtuNTh6UQowQU0zalJaQ0dNT081ZGxtbHhjWC9aSEl1ZUhoOFo2ZWgyblhFZWYzZXIwalhW
M0pUT1lIRnkrMk9KMWZtSnpzUHZMVzY0ZC82ejAxCkEzWGpaRyt2cHlKaHpLMnV6bFNzNmpMUzJm
bW82NUxVbXJwdklCb1RBZXN6SFMwdDVXNXFmemdjakVaZm01cjY4WlVyZTA3TGE1cXMKVDd1YXkv
M2kxcTBtaDhObXNidzROclovanRTWndjSDM1K2JNWm5OL1c5dEFlL3VCRjdrVkRJNTBkWlhId2x3
T1J6a2pmbFp6c1hoNwpkWFd5cisvb2RKVXZGbzNwL01iOU8zMjcwL0NEVzF0aWQ2ZWRBK202WHRs
bmRzVDUxMWRXeHJxNzk0d0RQdDZsanFqNXNGMng5MXdjCnFIRnFOcXZ2emdRNGpMSE1nVDhTR1hw
UXozUU5xdnNHb3BFUnNBNndIQTR2aGtKZk9uMzZ3RDJ3TXJtY3JEV2xXbDJ1dDJkbnc4bmsKalVE
Z3dCbm9acFBKWWJORlU2a1dwMU1ybGZhZjR3K0hROGxrZVpUTmJES0p3MmNhUGJEdjZ2ckt5cG5C
d1d5aGNNM3ZkOWxzazMxOQp4bkdIMWFybWN2NXdlS0M5ZlNrVU1nNW1jcm5icTZ2RzQwS3hhS3RZ
eVBTdzgvMlJ5RUlvZEtkaU8ycmpIK0hGc2JGeUpIcjRTeDFSCmMyeDNKbFpDVlQxdWQva2V6N2lx
SHJoQWhxN3I2V3pXZUx5OXM5UGtjSkREVUF2VVhNNWlObGVPbDBXU3lkTDlJMmhDQ0RXYjlVY2kK
WW1CZzZMZ3R4Vm4zRFVRalUyWjIxNmlzS1pxbVBWb2YwZTQrVm8rall0eXRWQ3BkRHdUeXhlS0Y4
WEdyeFZJcWxlYlcxaVo2ZW93KwprcTN0YlYzWDc2NnZlOXp1L1NzcFBCNkxvcVF5bVZBeU9iRnZD
Q3locWxmOC9ySHU3dWNHQi8zaDhMV1ZGWnZGNG5HNTlzeXZ1ck8yCmRySzMxK2hVaTZ0cUxKM2Uz
OTlUMUxRNzYrdW4rdm9PbTR4L0t4Z1VRa3owOUx4LzU4Nzh4a1piYy9QblQ1NHNqMGkydUZ6aFpI
SXQKRmt0bnM1TjlmZWxzVnMxbVU1bE1ZR3ZMT0dFeEZLcnNOanZzL0luZTNoYUhJNVJNVnZZdzVR
cUZVQ0p4ZHpkMVBmeWxGalkzRDZ2NQpoNTk4VXI3YXpNREFmN3Q4MlhpNkZBcFZEajJVL2NXSEg4
NXZiaHFQNXpjM2I5MC9RaUZUUHYvNHJ6MWs2NlNETWFKU0ZWRTVQNGpLCkNwcG0zR0xjMmRyYTJk
b2FTYVhpbVV5dVVIaDlac1k0WXZ4bnMxajhrY2dyeG5Mbmo2Zmo0YjY3NnI2QlFnZ2hORTBvREVy
aWlkR0QKOVpsNE9yMlZUbzkyZFRYZHYzQlVPZEJrOC9tZjNiaGhOcG5PREE3S2ZlczlRMXFaWEM2
NHRXVlZsSmNtSm94dXA4K2ZPclVjRGwvMQorMjhGZ3lkN2U0Y3FKaVhvdWg1TnBjb0RpR291ZC92
K1AvNkVFSVZTYWYrNzdEZlUyVGwwLzBLZGhtNlA1emZPbnk4L0xhK2hjSmpECnp0ZDFQWjVPdno0
OVhWNGN0YWhwbTRuRVIvUHo3N3o4OGlOZDZ1aWE5MXp0c0lzLy9BbEFWWGpjN3ZMd21UOGNYb3ZG
M3BpZU5oWW8KMmVPWVRnT3Yrd2Fpa1JHd2ZxV2s2eDYzMjN2LytKSFpiRGJXd0RTZTlyVzF2VG81
NlhXN25VY3U1ZkNvckJaTGVkR0JiRDZmeWVlRgpFQ2YzVGFJZjd1enM5WHB2QllQR2VHSzVtK3FW
VTZmYWRzdjJ1dDBuMnR1bjl2VythS1ZTUWxVUEhQRjhsajVkWHA2cTJKUmFDR0ZSCmxCYVg2N0J0
clFFWS9PSHd2WTJOMTZlbkQvd1VSMU1wVzdVLzNVK283aHVJQnNTMzdLOGNPRC9KYkRMOTlvVUxs
VU55dlU5aEJrQzMKeDlPMXU2cWV3Mlk3OEZaQmc5MXFQVGN5Y25aNHVMTGF5c0ZLWDFQVGdYT01G
TFA1dFlxVmtmZEk3cTdBYWN4WWV0VDZIOTU2TEpZcgpGQ1o2ZTF0ZExvdlpYTkMwY0RJWmlFYVBY
cW5oUU0rc1pxQzZDc1hpcmRWVmw5Mys1a0g3RUNSVTFhb280VlRxK0g0SzZyNkJhRmdFCnJBZDRO
cE9kSCtsZEhtYWRoVWZ5N3RXcnhvT2ZYTHYyVkFmTHZ2emNjM2ZXMWo2ZW4xZHpPYlBKMU9KMERy
YTNYeGdmUDJ5SitTTTgKczVxQktvcWtVcEZrY3FLbngzWElqVFZxTHZjUGQrNVlGZVdGMFZGUkxE
N2o4cDVjM1RjUWpZeUFoV2MzQThscHM4ME9EODhPRHovNQpwUWhWcUh1RllyRnk3WmdEOWZsOGI4
ek1lRnd1cThWeTdIYVNxZnNHb3NIVlM4QjY5REVtb0FvT1g5QUwyT093U1pQLzQrYytWL24wCjZJ
QlN5K3ErZ1dod2p6dzBBd0FBZ0tNUnNBQUFBQ1FqWUFIQThWYmVxd0JBN2FpWE9WZ0FVSStNVFRh
UG9HYXpIeThzekF3TVRMT04KREZCTENGZ0FVTHVzaXBJL2Nua0NsOTMrK3ZSMGs4TWhDb1ZuVmhX
QUJ5SmdBVUR0ZW9RRk5nbFlRQzFoRGhZQUFJQmtCQ3dBQUFESgpDRmdBZ0ZwWEtCWVQyV3kxcXdB
ZUFYT3dBQUJWc0JhTFBmd0NFM0ZWVGFUVHM3MjlmU3pzam1PQ2dBVUFxSUkrbjYvUDUzdUVGN0FY
CklZNFZoZ2dCQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZ0dRRUxBT3JCcGRWVmZ6eGU3U29B
L0FwM0VRSkF6VW1vNm1vczlrZ3YKY1ZxdDZYeStvR2xXUlhsS1ZRRjRlQVFzQUtnNUhyZjdFWFlo
TkxDS0FWQkxHQ0lFQUFDUWpJQUZBQUFnR1FFTEFJNkJUQzUzYVdGaAovOTR5aFdLeEt2VklWL2NO
UktOaERoWUExQ2cxbTEyTHg5MTIrMW9zRmxmVlBwL1BackdFazhsYndlQkViNi9OWWhGQ0xJZkRR
b2dYCng4YXFYZXpqcVBzR29wRVJzQUNnUnFtNTNNMUE0TlhKeWNwNGtjNW0xVnpPcWlpNnJnc2hF
cXJxdHRzTHhhSzFlblUrdHJwdklCb1oKQVFzQWFwZXZxYW1qcGFYeVNFSFRtaHlPenRaVzQ2bk5Z
dkc2M1ZiTGNmMWhYdmNOUk1OaURoWUExTHBDc1hqVjd6ZG1JeVZWMVcyMwpWN3NpeWVxK2dXaEFC
Q3dBcUYzcGJQWm1NSGd6R0l5bDAvYzJOb1FRcS9ING5pNmZza1EyKzJ5cms2RHVHNGlHVlMrZHJv
dUxqLy9hCnBxYktad3VibS8wK244Tm0yM05XY0d1cngrT3hQT1Vsa3RWc2RtNXRiYUN0cmFPMTFX
d3lsWStYZEwzeTZZRld0N2JjZHJ1M29qbWgKUk1KcXNmanVieUNxNlVtV2dod2RsVmNIam8wbWgy
Tm1ZS0Q4ZEMwV0t4UUtRNTJkbGVma05jMTQ0SS9GeHR2YjNmdCtmTld5dW04ZwpHbGE5QkN4Sk51
THhHNEZBcTh2bHNObDBYYjhaREo3czdiVlpMRHU1M0FkMzcxNFlHeXQvN08rc3JmbWFtc3F6Qko3
RTF2YjIxdloyCnE4dTFFbzF1Nyt4MGVUeHVoMk16SHIrenZqN1cxYVdZelVLSXdOYVdFT0tsOFhI
VDRURXJ1TFdsWnJOZmZ1NjU4cEcxZUh3ekh2L0sKMmJQR1JXTHBkTFBUeVRZYXdER1ZVTlcxV096
Tk0yY3FEM2EydE54Wlg0K24wMExUd3FxcUZncWZIeHlzVm9WUHFPNGJpSVpDd1BxTQpWaXBkV1Y3
dTluaFd0N2FpcVZTK1dBeW5VcmxDNGZ6bzZFSW81R3RxaXFYVE8vbThjWElrbFlxa1VoNjMyL1lv
VXkrVG1VeXJ5N1huCllDYVh1eDRJZkhGcTZvWFIwWEorU21ZeXFaMmQxdDI5TW5ieWVjVnNMdW02
c252Q1RqNGZqRVlycjVQT1p1MFd5NzMxOWZLUmhLbzYKYkxiRnpVM2o2ZTIxTmF1aWZQbjBhYnVW
MjNHQTQ2UlFMUDd5N3QzcGdZSDlxeFdNOS9SWUxKWjhzU2p5K1luMjlzN2oyV05kOXcxRQpBeUpn
L1lxdTY1Y1hGNmNIQmdZN09pS3AxTUxtNW9YeGNXTlVMcDVPeDlMcDE2ZW5ROG5rV2l4bXhLREpm
UzlmamNXTW00b1BreTBVCnJpd3ZuK3J0UFRNMGROOFhUQ2E3MWRwKy81eURvcVk1ck5aeUdyTW9p
dGZ0TmpxaURFNmJiYVNycS9JbHNYUzZ4ZW1zUEpqT1prMG0KVS9tSThlQnBqM0xXZ3JpcUxvVkNL
NUhJTnk1Y3FIWXR3Qk14cGlnVmlzV1NyaWRVZGYva0pLdkZNdEhUYzI5am85UHA5RGdjVlNueQpT
ZFI5QTlHd0NGaENDS0hyK25vc050blgxK0p5Q1NFNldsbytYVnBhajhYNjI5clMyV3dpazNsMWN0
SnNNdlY2dlZlV2w4T3BWTmUrCmtVR1R5ZFRlM0t5VlNrZS9VYS9YcSt3YjR5cy9MMnJhalVCZzVz
UUpxNkprY3JsbXAvUG9xMWtVWlNlZnR5cUtrWm5PREEyWlRTYUwKb3BSMC9hTjc5MDcxOVUzMjl3
dGRONDQ4Y0FwWFBYbC9icTdjMS9nd05oT0pxMzUvYW1mSGJiTk45UGFPOS9ROHZkcUFSMUk1UmFs
UQpMTjRLQm5VaDFHeldYUkUxMUd6V0g0a01lNzB2Vmt4bU9pN3F2b0ZvV0FRc0lZUXdtVXg5Ylcx
Q2lFd3VsOG5saEJCbmg0Y1ZreW1hClN1bENORHNjc2UxdDQ4eWh6czZGalkzMjV1Ykt6aVNEOHdu
bVhSYUt4ZHZCWUxaUVNHUXk5OWJYcHdjR3dxbFV2ODkzNE1ueGRMbzgKazkxdXNmejkzRnhYYSt0
a2YzKzVnSVhOemZWNHZLMjUyV1hjNnB4TzN3d0VUdmIyN3VueHFtTnZ6YzcrMTQ4L2ZzaVQ0NnI2
OTNOegpSdTlqT3BmN2RIbTVxR21UL2YxUHMwRGdjVmd0bHVtQkFTSEVXaXpXVi9IejRkTEN3a2hu
NXd2ZDNkVXJUWTY2YnlBYUNzczAzTWZvCjdDbnB1a21Ja3E3bmlzV2YzN3laeWVlTmcwWVBkanFi
elJjS0V0L1VaREpaTFphcGdZRnpJeU52ek14TUR3eUVrOG50blozQmpvN3kKT1dhVHFiQjdIODF5
T0d5a1FDR0UyV3grY1d4c001RW9meldkemQ0T0JsK2VtT2p6K2J4dXQ5ZnRYZ3FGaEJBTk5lL3Fr
U2J5MzFsYgplMzU0K0pzdnZmVHJ6ei9mNi9VS0llNXViRHkxMG9ESGxNbmxJcW1Vc1ZLVTIyNlBw
RkxHOFVncXRScUxuZDB6OGVBWXF2c0dvdEhRCmczVWZtOFZTZVdOZ3JsQVFRclExTlpVN3F3UFJx
TnR1ZHo3TlJmQUMwYWcvRXZuaTlIVGxaS2ttaDJNcEZNb1ZDb1ZpY1RPWnpPVHoKcjV3NlpYekpa
YmUvUGpOalBNN204NWNXRjErYm1nb2xrNTJ0clJaRldkamNUR1l5djNiNjlGT3QrVmp6dXQyajNk
MUNDSmZkZm1GOAovQWNYTHo1d3FCZDRCaUtwVkNLVFNXZXpGeGNXM0hhN3grVXlPdHFGRUI2Mys2
cmZiMVVVdDkxK3hlOS9jV3pzT0M1MFh2Y05SSVBqClcvWStseGNYUjd1NnlwT2ZqRiswV3FsVTNP
MGZLbWphMDVza25pOFdmM0hyMXVrVEo3NHd1V2NPdlpqcTYzTllyVHY1ZkpQRE1keloKMmUzMTZy
cStHQXA1M2U2MjVtYmpuRlFtRTl6YSt2ekVoTTFxYlhHNVBsMWU5cmhjZDliWFg1K2VQanBkSlZS
MU9SejJSeUp2ejg1ZQpYbHpjU0NUc0Zzdk1pUlBEdTJ0UzVBcUZHNEhBV2l5V0t4UVVSV2x2YnA0
ZEdtcHh1ZUtxdWh3S3JVU2p2M24rL09XbHBVQTAydWZ6CmZXNWk0ckR6amFzdGhVSnphMnVaWEs2
OXVmbUZzYkVtaDBNSThhaVhlbUROQnExVXV1cjMreU1SdThYeTB2aDQrMEdyRjU3cTZ5cy8KTnU3
aWJOLzlKd1dxSmFHcTc4L05lZDF1bThVeU96UzBQMTZjSFJyNnhhMWJGa1VaNnVqb08yUTZRUzJy
K3dZQ3lzeHU1MGROMFRUdAowVkpNUFA3NGIxWXhkK3JpNHFJUUlwUExKVlExb2FyeGREcVVURHFz
MXUyZEhlUElaakxaNG5SMmVUeVAvM2I3Yk8vc0JLSlJUZGRECnlhUmlObXVsMHY3bHRSUkZhVzlw
MmQ3Wk1kWWdWY3htazhua3R0dC9mdk9tc1pSb1FkTkt1dDdmMXFZb2loRENiREtwdWR5TlFHQ28K
bzJPZ3ZmMkkxYk9FRU85ZXV4Wk9KclZTeWFvb015ZE9uR2h2OTBjaUs5Rm9lMU5UazlNcGhQajVy
VnZyOGZnWHBxYWVIeG14V1N6egptNXVSVkdxc3UvdW4xNjZGVXltdFZMSmJyZU05UGRzN08rbHNk
cXk3KzdEemhSQjMxOWMvWFY2ZTZ1OS8rZVRKbUtwZVhGaTRGUXplCldWdGIzZHA2cEVzOXNPWmJ3
YUFRd3Fvb0ozdDdQVzczVWlnVVY5V3hCODNoaUtSU0s1SEk3UER3QSs4d2VFeVBNdlYrcjBmNkhW
UC8KdDRyV3BLaWNIMFJDQ0lmTk50YmQzZXgweHRMcDBZTytid3ZGNG1ZaWtWQlZwODNXMXRTa21N
MVA5TjNWOFhEZlhYWGZRQ0dFRUpvbQpsQWE0MnhwUEd6MVk5eWtVaTZQZDNTMjd2MXh6aGNMMVFH
Q29vNk04Uk5qdDhVaGZxTk1raE0xaXFieVA1dmJxcXREMWRDN1hWTkh6CnBPYnpTNkZRZEh2NzVa
TW5qU04ycS9XMXFTbGo5bFUybnk5bmdxS21HYjNydi9YQ0MzZlcxbjV5OWVySjN0N0Jqbzc5RS9N
TmI1MDkKKzFlWExna2hKdnY3VFNhVDNXbzlmZUxFcGNYRk8rdnIzVjZ2RUVMWDlXYUh3N2g5ZXJT
Nys5UGw1ZFRPamhEaWErZk9mZi9qajRVUQpYYTJ0VHB1dFBHcDUyUGxDaUxuVlZTSEVXSGUzWWph
ZkhoaFlDb1U2V2xyZW1Ka3BhdG9qWGVxQk5SdkdlM29VczduUDZ4VkNwREtaCkIvNi9XQTZIZXp5
ZTNvb3JBTlZ5eEtCWUpKWHloOE96dzhOV1Jibmk5Ly93azAvT0RROFA3VnRqcjhiVmZRUFI0QWhZ
bjhrVkNpVmQKZHgxNU0yQ3owMm1NelkxMGRoN2RMZlJJS2k5a3RWaW0rdnVGRVA1d3VISy9pSS9t
NTRjNk9pNk1qMWUrME9OMkN5RTI0bkd2MnkyRQowSFY5SlJwTnFPcEViNjhSRTZjSEJ2cDh2aytX
bDYvNi9UMWViNC9YMjliVXRLZDdwanovdmR5aUhxOVhDTEcxdTYvTFY4NmNFVUxrCmkwVi9KTElj
Q2hsdkpDcVcxTnF6ZXVwaDV4c3Z5UldMUlUxVHpHYmp4K3YyenM1alhPcUJOUnVNVEdrMm00VVFw
U05YS1JOQ0pET1oKU0NyMVpzVlMrRUN0U2FqcS9NWkdyOC8zd3U2Q25DK09qZlg1ZkJjWEZtNmF6
Y05lNzBSNys3SGVyYUh1RzRqR1FjRDZUREtUc1NqSwovTzRkWkxvUWdXaFVDTEVRQ3RrcVBzK1pm
SDVoYzFQVHRJbmVYbGx2YmFwWW56MmR6VFk3SEE2YnJjbmhLTitySEUrbk4rTHh0ODZlClBmRGxx
N0ZZUjB2TDF2YjJ3dWFteCswK016aFlHZjQ4YnZlWFptWitldTFhVWxYWDQvRlhUNTE2NFBpWHcy
b1ZRcFIyNTNwcnBkS04KUUdCaGM3UFg2MzFoYk94dnJsOC8rdVZIbkQ4N1BQekIzYnMzQW9HelEw
UEw0YkJKaVBOSGJySDM4Rys5cCtaSHBldjZsZVhsVjA2ZAoycjhOSlZBdGxSdEZSRktwdUtyYUZP
WHN2aGxMZlQ3ZjE4K2R1N2V5Y2pjYWRkdHNROGVuQzdidUc0aEdSc0Q2ak1sa0d1dnFLaStBCmRI
MWx4WmpiUHRiVlZibmtYU2lSQ0VTalV0SlZVZE8yczltdGREcGJLSHg0NzU3VFp1dHFiZTMyZUg0
MTFicWw1Wk9sSmJmZDN1SjAKWGx4WU9EOHljdUR2L2tncVpSTENaREsxTlRkSFVxbUZqWTM5SWFO
WUtzVlZkYUtueDFpTTlJR0ZHY09PN3QwQnlzdUxpLzVJNU56dwo4RU91d0huRStiMWU3MGhYVnpL
VCtjSEZpeTFPNXhjbUo3dVAvRm41OEcrOXArWkhkWHQxZGFLbnA3d3hkcjVRc0RYU3doYW9UUjYz
Cis0dlQwOGJqanBhVy9hdWNsMWt0bHVtdXJ1bmp0dFpkM1RjUWpZeUE5Wm5LajdjL0hBNUdvNjlO
VGYzNHlwVTlwK1UxVFZZSHRackwKL2VMV3JTYUh3MmF4dkRnMnRuK08xSm5Cd2ZmbjVzeG1jMzli
MjBCNys0RVh1UlVNanV6dUNXMDJtMTBPeC81Rk12UEY0dTNWMWNtKwp2cVBUVmI1WU5QNmdORmFn
S2Q4eUhkemFFcnM3c2JsdnBnQUFIa1pKUkVGVTdSeEkxL1hLUHJNanpyKytzakxXM2IxL1E4Ykh1
TlFSCk5SKzJaOUdlaTVldHgySk9tNjNYNXhOQ2FLWFMvTWJHVWpqODl1enNZVzhLUEh2K2NOampk
bnQyOXljVlFrUlNLYXVpVkI0NTF1cSsKZ1dnMEJLd0RMSWZEaTZIUWwwNmZQbkFPWmlhWGU4STFw
UzR1TEhTMnRnNTFkTFM2WEcvUHpvYVR5UnVCd0lFejBNMG1rOE5taTZaUwpMVTZuVmlydFA4Y2ZE
b2VTeWZJb205bGtFb2ZQTkhwZzM5WDFsWlV6ZzRQWlF1R2EzKyt5MlNaMzF5OXdXSzFxTHVjUGh3
ZmEyNDFsClM0VVFtVnp1OXVxcThiaFFMRmIyOXh4MnZqOFNXUWlGN2xSc1J5MkVhSFc1WGh3Yksw
ZWloNy9VRVRYSGRtZGlKVlRWNDNZblZOVjQKR2xkVjM3NmRZcE9aeklmejgwVk51N1M0V0Q3SWJq
bW9OZjVJSkxleFljeEtORVNTeVdBc1ZqNFNVVldQdzNGODV5ZlZmUVBSYUFoWQo5eW1WU2plQ1Fa
TVFiOHpNbUUybTh2SlhocTN0YllmVldwNVJic2prY3Y1dytKSGV4YW9vOFhTNnorZXpLb294V2Z2
QVRKUlExZHVyCnEyUGQzUytNam40OFAvK2pUejg5ZmVMRVVFZEhaUi9NVUdmbjVhV2xjdkF5bVV3
SExwSnB4SmNIelBFV29yMjUrVWRYcmhRMXJkdmoKT1RjOFhKNGVjWDUwOU9MQ3doVy9QNXhLelE0
TlJiZTNOK0p4WS9VcDQ0Uy8vdlRUeW0yVkR6di83UEN3M1dLNTR2ZFhGcG5NWkQ2NAplMWZkWFp2
KzRTOTFJeEE0ck9hZjNiaGh2UHduMTY2OTgvTExQN2wyelhqNk45ZXZ2L1B5eTN0YS9kN3QyM3Yr
UndzaHVxV3V4QUU4CnFvU3Fyc1ZpbFVmUzJhemI0VERXSHpHRVV5bWJ4VkkrY205OTNXMnp2VDR5
Y2l3aVNOMDNFQ0JnZlNhZVRtK2wwNk5kWFUzM2I5aGUKRGpUWmZQNW5OMjZZVGFZemc0UGxyN3Jz
OXFrbjNuOTB6NUJXSnBjTGJtMVpGZVdsaVFtajIrbnpwMDR0aDhOWC9mNWJ3ZURKM3Q2aAp6czd5
anhoZDE2T3BWSGtBVWMzbGJsZjhoRElVU3FYOTc3TGZVR2ZuMFAwTGRScTZQWjdmT0grKy9MUzho
c0poRGp0ZjEvVjRPdjM2CjlIUjVjZFNpcG0wbUVoL056Ky9QUFEvNTFnZld2T2RxaDEzY1VIbDlv
RWJzR1N3VFFpUlUxZXQyVi82ME1RV0RRb2p5a2Vsak5mVzcKN2hzSUVMQitwYVRySHJmYmUvLzRr
ZGxzVnN6bWNwVHBhMnQ3ZFhMUzYzWS95YjdPKzFrdGx2S2lBOWw4UHBQUEN5Rk83cHRFUDl6Wgoy
ZXYxM2dvR2pmSEU4clNrVjA2ZGF0c3QyK3QybjJodjN4LzR0Rklwb2FwVjMydkNXR0swOGwvUG9p
Z3RMdGRoMjFvRERTNlR5N2wyCkp5UVlpMElaank4dExvNTNkNWYvMENvVWkxWC9kRCtldW04Z0do
bmZzcjl5NFB3a3M4bjAyeGN1VkE3SlBZMGxLTHM5bnE3ZHBkc2QKTnRzUnl3VFlyZFp6SXlObmg0
Y3JxKzJwS01uWDFMUi9qcEVRUWpHYlg1dWFPdXl5eWQwVk9JMFpTNDlhLzhOYmo4VnloY0pFYjIr
cgp5MlV4bXd1YUZrNG1BOUhvMFNzMUhPaVoxUXhVa2N0dS84V3RXNzArMzBSUFR6bUkzTnZZQ0Vh
akhjM041YnViTHk0c1RQZjNIOGQxCk9PdStnV2hrQnkvdGpUS0pxNG5LZXBlSFdXZmhrYng3OWFy
eG9EeFg2U241OG5QUE9XMjJqK2ZuZjNEeDR2Yy8vdmdYdDI2cDJleUYKOFhIYm8vOXQrc3hxQnFy
cmhkSFJ0YTJ0UXJGb1BFMm82cTFnY0haNDJHVzM2N3B1ck45bVVaVGoyOEZUOXcxRXcrSmJGZytZ
b2lTUgowMmFiSFI2ZUhSNSs4a3M5czVxQjZuSTdISy92N2hoYktCWnZCWU92VDArdngyTDlQcC9W
WXZHSHc0Vmk4YzB6WjZ3V2k3aC9HNFBqCm91NGJpSVpWTHdIcjBjZVlnQ3BnbVVROHRQbU5EWS9i
WFY2Y0w2R3E2N0hZaTJOalZvdkZiYmRmOWZ0YjNlNTc2K3V2bkRwMVRIdDMKNnI2QmFIQU1FUUpB
TFJycTZQaUhPM2VNVldBS3hhTE5ZcGthR0RDaWh0VmljZG50TndPQlBwL3ZzWGN2cUxxNmJ5QWFu
REt6MnpkYgpVelJOWTUwVDRQSHgrYW1LYVB6eFg3dnY3aGJGYk83eGVEUmRiM0U2cy9sOGVjWjNv
Vmg4ZjI3T2JiZS9OaldWem1iLzRlN2RVcW5rCmRidVYzV2xNajZQajRlN2tyZnNHQ2lHRTBEU2hz
TlFXbmhqOXJnQlFvNHpGb2lLcGxHZjNCanAvSkpKUTFSZkh4b3g3N3NaN2VqcGEKV3E0c0w5OWRY
KzkwdXp1Ym1qcWJtanozcitSWHkrcStnV2hrREJFQ1FFMHpWanhmaThWK2VlZU9tczJlSFJweVZZ
eWFlZHp1MTJkbQptcHpPZ3FiZERJVUsrN1lscUgxMTMwQTBKbnF3QUtCMkdidVlDeUg2Zkw2a3Fp
NkZ3d2Z2ckpWT1QzZDF2WDRNYi9lcCt3YWlZUkd3CkFLQjIzUW9HeDN0NnlyZlJOVGtjTXdmdHpU
VzN1anA5UE85UnJmc0dvbUV4UkFnQU5jb2ZEb2VTU1UvOXJtQmU5dzFFSXlOZ0FVQ04KR3Vyc05K
dE1qN0hWd1hGUjl3MUVJK1BiR2dCcVdseFZPM2UzSzAxbnM3ZUN3ZjNuSERodjZiaW8rd2FpTVJH
d0FLQjJ2WHp5cEhkMwpPL05lbjA4WFl2cWdLVXFKM2UzUGo1MjZieUFhRmdFTEFHcFhuKyt6RlRL
TlZhTU9QTzN6SjA4ZTA2MzY2cjZCYUZqTXdRSUFBSkNNCmdBVUFBQ0FaQVFzQWFzTDNQdmdnZWZo
TW8zeXgrRmVYTGlWVTlWbVdKRmZkTnhDb3hCd3NBS2dWNzE2OWV2UUp5K0h3N1BEd3N5bm0KYWFq
N0JnSmw5R0FCd0xIaGowU3FYY0xUVmZjTlJPT2dCd3NBYXNXYlo4NTRYQzZUeWVRUGh5UGIyMmRP
bkxCWnJjYVhkRjIvdmJvNgoxdDFkM1FxZlVOMDNFQ2lqQndzQWFzSTdMNy9zZGJ0TkpwTVE0dXJL
eXBuQndYTDRFRUtZVEtheDd1N0xpNHZWSy9CSjFYMERnVW9FCkxBQ29PVVZOeXhVS2V3N3U1UE1i
aVVSVjZwR3U3aHNJRUxBQW9PWjBlenp2ejgydHgyS0ZZbEhYOVd3K3Z4d092M2Y3ZHQxczIxZjMK
RFFUNFZnYUFtak03TlBUem16ZmZ2M05uei9FWHg4YXFVbzkwZGQ5QVFKbVptYWwyRFFmUU5FMnBk
ZzNBTWNibnB5cWk4Y2QvcmMxMgozek9MWmJpelV3aVJMUlNLbXFZb1NudEx5L21Sa1lIMjlrT3Zr
TTgvL3J0MytCNThqbWlBQmdvaGhOQTBvU2g4aFBDazZNRUNnRnBrCnMxak9EQTZlR1J5c2RpRlBT
OTAzRUEyT09WZ0FBQUNTMFlNRkFEVW5sRWhjV2x6TUZnb0RiVzNuUjBjVnMva24xNjZaVGFiWEpp
Y3IKbHpZNHZ1cStnUUE5V0FCUWN6NWVXRkJ6T2ExVThrY2lOd01CSVlTbWFiRjArbm9nVU8zUzVL
ajdCZ0lFTEFDb09mbGk4ZnpJeURkZgpldW5jOFBEODVtYWhXSHo3M0xrM1ptYldZckZxbHlaSDNU
Y1FJR0FCUU0zcDgva0cydHNWczNtOHA2Zlg2MTJPUklRUXZxYW0vWXR6CkhsTjEzMENnZHVkZ1Bj
SDl1RUNqc3ozNEZOUzAyYUdocFZEb1ZGK2ZFT0pVWDkrbGhZV3g3dTZsVUtodWxnK28rd1lDdFJ1
d0FLQmgKZmJLMHRCcUxYVnRaS1IvNXl3OC9GRUowZXp6VkswcW11bThnUU1BQ2dKcXpIdCs3cEtm
SlpHcHhPbWVIaHFwUmpueDEzMENBZ0FVQQpOYWVydGZYNWtSRzN3MUh0UXA2V3VtOGd3Q1IzQUtn
NUc0bkUzTnBhNVJHdFZQcHZseTdGVmJWYUpjbFY5dzBFNk1FQ2dGcTBHQW90CmhrSjdEaTZIUXQ2
UmthclVJMTNkTnhBTmpoNHNBRGcyVnFMUmFwZndkTlY5QTlFNDZNRUNnSnBqVlpTdm56dG50VmhN
SnBOeEpLR3EKNFZScXJLdXJ1b1hKVXZjTkJPakJBb0NhODQwTEYyeFdhemw4Q0NFOGJ2ZEFXOXZs
cGFVcVZpVlIzVGNRSUdBQndQSHd5ZEpTb0s1SAowT3ErZ1dnb0JDd0FPQjdVWEs3WDY2MTJGVTlS
M1RjUURZVTVXQUJ3UEh6bHpKbHFsL0NZL3Z4M2YvZDU5WjgrOExTUkx3a2h4UHhCClgvcms5Ti8r
VC8vcVgwa3VDM2lhQ0ZnQVVITkNpY1NseGNWc29URFExblorZEZReG0zOXk3WnJaWkhwdGN0Sm10
VmE3T2dsU1MrOEYKZnZTSFJUWGltZnoxRTI5LzEyeDF6djNITDVvVXk5anYvSVhGNWF0MmRZQUVE
QkVDUU0zNWVHRkJ6ZVcwVXNrZmlkd01CSVFRbXFiRgowdW5yZ1VDMVM1Tmo1WWYvUEo5WUtSVXlz
ZXZmMjNqdk8wS0lVbkVuczM1bC9lLytkYlZMQStRZ1lBRkF6Y2tYaStkSFJyNzUwa3ZuCmhvZm5O
emNMeGVMYjU4NjlNVE96Rm90VnV6UTV0SjNFd052ZlBmdXQ0TUJYdnhPNS9KK0syZVQwNzM4ODhY
dC9uWngvdDlxbEFYSVEKc0FDZzV2VDVmQVB0N1lyWlBON1QwK3YxTGtjaVFnaGZVMU91VUtoMmFY
SzBubnpMTy9WYlpxdXI0NFYvMGpyK1p1emFud3NoWEQxbgpDK2xJdFVzRDVDQmdBVURObVIwYVd0
cmRSdVpVWDk5eUtGVFM5YVZRU0ZHVTZoWW1TLytYdngyOThxZkc0ODdQL2NIV3RmK3NhNFd0CnEz
OW10cm1xV3hnZ0M1UGNBYURtZkxLMHRCcUxYVnRaS1IvNXl3OC9GRUowZXp6VkswcW00THQvbExq
NzQvVy8vWGI1eUpWLzB5MkUKYUI1NXZYcEZBVElSc0FDZzVxekg0M3VPbUV5bUZxZHpkbWlvR3VY
SWwxejRtZEJMOXgweVd4enRFLzF2TXNrZGRZS0FCUUExcDZ1MQo5Zm1SRWJmRFVlMUNucGJtb1Zj
RzN2cTN0dGFCeXQxeWdIckNIQ3dBcUFuWmZQNkhseTkvc3JTazYvclo0ZUdWdXRzMHByQzllZk0v
Cm5BbjgrRi9vZXFuLzEvNnYySTMvUXJwQ0hhTUhDd0Jxd3R6YVdsdHo4MVIvLzBvMHFtbmEzTnBh
b1ZoOGJuQndQUjYvc3J4Y0xKV20KK3ZvbWVudXJYZWJqQzMzNC83aDZuKzkrNVgrTjNmakxVbUVu
OU9GL0tPVlN2Vi82bDhsNzc2Nys5UDhvRlRMZG4vOWZPaS84czJxWApDY2hCd0FLQW1yQWVqMThZ
SDNmYWJNME94OS9kdXFXVlNvTWRIWjh1THkrRlFpVmRGMEpjOGZ1dEZzdHdaMmUxSzMxTXlmbS9H
ZnlOCi85ZlcwdU5vRzd2M3A3K3BGM2U4cDcrNSt1NjNvbGYvVEM5bWhSQ3JQLzFqeGQ3U2R2WjNx
MTBwSUFFQkN3QnFncHJMdGJwY1FvaTIKNW1hdFZCSkNlTnp1WkNZejNOazVNekJndFZnV05qWnVy
NjRlMzRDVlR3U2NuWk5DQ0hmZjgzcHhSd2poNnBwWkRjKzFQZmRPejJ2ZgpVdXhOa2N0L3N2bkxm
MC9BUW4xZ0RoWUExQVN6eVdReDcvMlp2TFc5Zlhab3lHR3pLV2J6YUhkM0pwZXJTbTFTbUJTcjJl
YmVjMUJkCis2VHZ5OSsyTm5XYXJhNzJjLzl6UGhtc1NtMkFkQVFzQUtnSkxVNW5RZFAySDF3T2g3
VlNLWnZQWC9YNzI1dWJxMUtiRlBhMmNTMmIKM0hQUTBUNitkZjE3cFdLMmtBNnQvZXovZFBlL1dK
WGFBT2tZSWdTQW1qRFkzaDVPSnZ2YjJvb1ZNZXU1d2NIMzUrWStYVjQybnI0OQpPMXVsNmlUd3pm
ejJ0ditYM3NtdmEvbDArV0R2Ry85eThjOS9aL1hkUHpLZVR2Myt4U3BWQjBoR0R4WUExSVN4bnA1
QU5McTlzN09aClNBZ2hqUGxZUFY3djUwK2V0RnV0N1MwdFFvaG1wN1BLVlQ2QmpoZitjZnoyRDdM
UitlMmw5NFFRenM1cElVVHIySmRHdnZrbkZuZG4KMDRuUENTRWNiYU5WcmhLUWhCNHNBS2dKaXRs
OGZuVDAwNldsMVZqTWJiZS9PRFptSE85cmErdHJheE5DL0plUFBxcHFnVS9LYkhHYwplUHU3d1hl
L2xiejdJNXQzNk1UWC83MXgzSFBxYTU1VFh4TkNYUDIvQjZwYUlDQVRQVmdBVUN0c0ZzdExFeFBm
Zk9rbE5aZlRkYjN5ClMxcXBaRldVdUtwV3F6WXBMRTdQOFAvdy81MzlWakFmOXd1OVZObkdVaUdq
MkZzeW05ZXJXQjRnRVQxWUFGQ0xmbmJqeHY2RHk2R1EKZDJUazJSZnpOTno5azYvc1A3aDE5Yzlj
WDMzdTJSY0RTRWNQRmdBY0cvVzNmODRlc1p2ZnIzWUpnQnowWUFGQXpiRXF5dGZQbmJOYQpMT1hk
K2hLcUdrNmx4cnE2cWx1WUxJckRNLzBIbHhTbngyVDYxZC81TzZGYjJ5dS9iRC8zZTlVdERKQ0ZI
aXdBcURuZnVIREJaclZXCjdvWHNjYnNIMnRvdUx5MVZzU3FKenZ5TFJZdkxWMDVYUWdobjE3VG4x
SzhIZi95L1ZiRXFRQ0lDRmdBY0Q1OHNMUVhxZW9ndytPNy8KSHJ2MWcycFhBY2hCd0FLQTQwSE41
WHE5M21wWDhSVGxrNnV0RXdmTWZBZU9JK1pnQWNEeDhKVXpaNnBkd3RNMStVLy9ydG9sQU5JUQpz
QUNnNW9RU2lVdUxpOWxDWWFDdDdmem9xR0kyLytUYU5iUEo5TnJrcE0xcXJYWjFFcVNXM2d2ODZB
K0xhc1F6K2VzbjN2NnUyZXFjCis0OWZOQ21Xc2QvNUM0dkxWKzNxQUFrWUlnU0FtdlB4d29LYXky
bWxrajhTdVJrSUNDRTBUWXVsMDljRGdXcVhKc2ZLRC85NVByRlMKS21SaTE3KzM4ZDUzaEJDbDRr
NW0vY3I2My8zcmFwY0d5RUhBQW9DYWt5OFd6NCtNZlBPbGw4NE5EODl2YmhhS3hiZlBuWHRqWm1Z
dApGcXQyYVhKb080bUJ0Nzk3OWx2QmdhOStKM0w1UHhXenllbmYvM2ppOS80Nk9mOXV0VXNENUNC
Z0FVRE42ZlA1QnRyYkZiTjV2S2VuCjErdGRqa1NFRUw2bXBseWhVTzNTNUdnOStaWjM2cmZNVmxm
SEMvK2tkZnpOMkxVL0YwSzRlczRXMHBGcWx3YklRY0FDZ0pvek96UzAKRkFvWmowLzE5UzJIUWlW
ZFh3cUZGRVdwYm1HeTlILzUyOUVyZjJvODd2emNIMnhkKzgrNlZ0aTYrbWRtbTZ1NmhRR3lNTWtk
QUdyTwpKMHRMcTdIWXRaV1Y4cEcvL1BCRElVUzN4MU85b21RS3Z2dEhpYnMvWHYvYmI1ZVBYUGsz
M1VLSTVwSFhxMWNVSUJNQkN3QnF6bm84CnZ1ZUl5V1JxY1Rwbmg0YXFVWTU4eVlXZkNiMTAzeUd6
eGRFKzBmOG1rOXhSSndoWUFGQnp1bHBibng4WmNUc2MxUzdrYVdrZWVtWGcKclg5cmF4Mm8zQTRJ
cUNjRUxBQ29DZC83NElPdm5qM2I2bklKSWM0T0Q2OUVvMVA5L2VXdjVvdkZIMSs1OHNXcEtZL2JY
YjBhSDk4bgpwLy9XOUkvKzBmVi85KzltQmdaTUp0TWQzOWUrLy9GMy92alZiNVJQaUtmVGszLzRo
Ky8rOFIrZnJaZGVPalE0MHp2dnZGUHRHZzZRCnorZXJYUUp3ak5sczFhNmdNYzB0UHY1cm01cSs5
OEVIRHp4cm9xZG5kbmo0NEsrbDA0Ly83cE9qRDNWYTNUZFFDQ0ZFUGk5c2ZJVHcKeExpTEVBQ09E
WCtremxjeHFQc0dvbkV3UkFnQXRlTE5NMmM4THBmSlpQS0h3NUh0N1RNblRwUTN4dEYxL2ZicTZs
aDNkM1VyZkVKMQozMENnakI0c0FLZ0o3N3o4c3RmdE5pWjlYMTFaT1RNNFdMbnRvTWxrR3V2dXZy
ejRCSU4wMVZiM0RRUXFFYkFBb09ZVU5XMy9vdTA3CitmeEdJbEdWZXFTcit3WUNCQ3dBcURuZEhz
LzdjM1Byc1ZpaFdOUjFQWnZQTDRmRDc5MitiYlBVeWJ5T3VtOGd3TGN5QU5TYzJhR2gKbjkrOCtm
NmRPM3VPdnpnMlZwVjZwS3Y3QmdMS3pNeE10V3M0Z0tacDFTNEJPTWJxWmNPNjR5YTZkL24xUjNE
L3VnQTJpMlc0czFNSQprUzBVaXBxbUtFcDdTOHY1a1pHQjl2WkRyL0FrcTl0MCtCN3F0THB2b0JC
Q0NFMFRkYlBuSTZxSUhpd0FxRVUyaStYTTRPQ1p3Y0ZxCkYvSzAxSDBEMGVDWWd3VUFOZWQ3SDN5
d3RiMnQ2L3BoSnhRMTdZZVhMOGRWOVZsV0pWSGROeENnQndzQWF0SFBidHg0NERsTG9kRHoKSXlQ
UG9KaW5vZTRiaUFaSER4WUFIRmNyOWI3dWVkMDNFSFdNSGl3QXFFVnZQdmVjWjNkWlRpR0VWaXJO
YjJ5TTkvUW81anI1dzdqdQpHNGdHeC9jeEFOU2NkMTUrMmR2VVZBNGZRZ2pGYkI3dTdMenE5MWV2
S0pucXZvRUFBUXNBYXM3M1B2Z2dtY2xVSGltVlNwRlVxbTcyClFxNzdCZ0lNRVFKQUxYcjM2dFg5
QjkxMis3T3Y1Q21wK3dhaXdSR3dBT0FZTUp0TUxVNW5IZDlTVi9jTlJLTWhZQUZBTGZxMTU1N3oK
VnN3QnJ6OTEzMEEwT0FJV0FOU2NkMTUrdWRvbFBGMTEzMENBU2U0QUFBQ1NFYkFBQUFBa0kyQUJB
QUJJUnNBQ0FBQ1FqSUFGQUFBZwpHUUVMQUdyT2Y3OThlYzlDNTJWMzF0WSt2SGN2b2FyUHVDUUFq
NFNBQlFBMVp5ZWYvOW1ORyt2eCtQNHZuZXJyNjJocCtlbjE2NXVKCnhMTXZUSmJ2ZmZDQnJ1dEhu
UERUNjlmVDJld3pxd2VRam9BRkFMV29xR25aZlA1V01MZy9pQXgzZHVxNmZ0ejNSVDRpUHhVMXJW
UXEKSGVzRUNiRFFLQURVcUpHdXJ2Vlk3TDNidDJlSGgxdGRydkx4WEtFZ2hFanQ3RlN2TkFsK2ZP
WEswU2RzeE9OajNkM1BwaGhBT2dJVwpBTlN1WHAvUFliTzlkL3QyUjB2TGNHZG5XM096cnV1ZkxD
MEpJZHcyVzdXcmU3ckN5V1MxU3dBZUh3RUxBR3FVVmlvcFpyT3ZxZW5OCjU1Njd1TER3M3UzYmxW
K2Q2TzJ0Vm1GU3ZEMDcyK3gwVnJzSzRHbGhEaFlBMUtpRnpVM2pnY05tKzhMVTFLdW5UblY3UEJa
RnNWc3MKejUwNE1kN1RVOTN5bmxDVHcxSHRFb0NuaUI0c0FLZzVyMDVPYmlZU2k1dWJ3eDBkTnF2
Vk9OanI4L1g2Zk5VdFRCWTJlMGJkSTJBQgpRTTNwOVhwN3ZWNHhQRnp0UWdBOEpvWUlBUUFBSkNO
Z0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdBQWdHUUVMQUFBCkFNa0lXQUFBQUpJ
UnNBQUFBQ1FqWUFFQUFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURK
Q0ZnQUFBQ1MKRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNB
WkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBSkNOZwpBUUFBU0ViQUFnQUFrSXlBQlFBQUlCa0JDd0FB
UURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQUFFaEd3QUlBCkFKQ01nQVVB
QUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFESkxOVXVBQURxeGVSb1ZkKys2Nm0vUTkwM0VKQ0hI
aXdBQUFESkNGZ0EKQUFDU0ViQUFBQUFrSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkFN
Z0lXQUFDQVpBUXNBQUFBeVFoWUFBQUFraEd3QUFBQQpKQ05nQVFBQVNFYkFBZ0FBa0l5QUJRQUFJ
QmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFKSVJzQUFBQUNRallBRUFBRWhHCndBSUFB
SkNNZ0FVQUFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUFBQUFrczFTN0FB
RHk1ZlBWcmdBQUdsdU4KQml5YnpWYnRFZ0FBQUI0VFE0UUFBQUNTRWJBQUFBQWtJMkFCQUFCSVJz
QUNBQUNRaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRcwpBQUFBeVFoWUFBQUFraEd3QUFBQUpD
TmdBUUFBU0ViQUFnQUFrSXlBQlFBQUlCa0JDd0FBUURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBCkFK
SVJzQUFBQUNRallBRUFBRWhHd0FJQUFKQ01nQVVBQUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFE
SkNGZ0FBQUNTRWJBQUFBQWsKSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFD
QVpBUXNBQUFBeVFoWUFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQQpBZ0FBa0l5QUJRQUFJQmtCQ3dB
QVFESUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFKSVJzQUFBQUNRallBRUFBRWhHd0FJQUFKQ01nQVVB
CkFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUFBQUFrSTJBQkFBQklSc0FD
QUFDUWpJQUZBQUFnR1FFTEFBQkEKTWdJV0FBQ0FaQVFzQUFBQXlRaFlBQUFBa2hHd0FBQUFKQ05n
QVFBQVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRQpMQUFBQU1rSVdBQUFBSklS
c0FBQUFDUWpZQUVBQUVoR3dBSUFBSkNNZ0FVQUFDQVpBUXNBQUVBeUFoWUFBSUJrQkN3QUFBREpD
RmdBCkFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZ0dRRUxBQUJBTWdJV0FBQ0Fa
QVFzQUFBQXlRaFlBQUFBa2hHd0FBQUEKSkNOZ0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFR
RElDRmdBQWdHUUVMQUFBQU1rSVdBQUFBSklSc0FBQUFDUWpZQUVBQUVoRwp3QUlBQUpDTWdBVUFB
Q0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKQ0ZnQUFBQ1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FB
Q1FqSUFGCkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5UWhZQUFBQWtoR3dBQUFBSkNOZ0FR
QUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUEKUURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNB
QUFBQ1FqWUFFQUFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFzQUFFQXlBaFlBQUlCawpCQ3dBQUFESkNG
Z0FBQUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRaklBRkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFR
c0FBQUF5UWhZCkFBQUFraEd3QUFBQUpDTmdBUUFBU0ViQUFnQUFrSXlBQlFBQUlCa0JDd0FBUURJ
Q0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUEKQUNRallBRUFBRWhHd0FJQUFKQ01nQVVBQUNB
WkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNGZ0FBQUNTRWJBQUFBQWtJMkFCQUFCSQpSc0FDQUFD
UWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQVpBUXNBQUFBeVFoWUFBQUFraEd3QUFBQUpDTmdBUUFB
U0ViQUFnQUFrSXlBCkJRQUFJQmtCQ3dBQVFESUNGZ0FBZ0dRRUxBQUFBTWtJV0FBQUFKSVJzQUFB
QUNRallBRUFBRWhHd0FJQUFKQ01nQVVBQUNBWkFRc0EKQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdB
QUFDU0ViQUFBQUFrSTJBQkFBQklSc0FDQUFDUWpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQQpaQVFz
QUFBQXlRaFlBQUFBa2hHd0FBQUFKQ05nQVFBQVNFYkFBZ0FBa0l5QUJRQUFJQmtCQ3dBQVFESUNG
Z0FBZ0dRRUxBQUFBTWtJCldBQUFBSklSc0FBQUFDUWpZQUVBQUVoR3dBSUFBSkNNZ0FVQUFDQVpB
UXNBQUVBeUFoWUFBSUJrQkN3QUFBREpDRmdBQUFDU0ViQUEKQUFBa0kyQUJBQUJJUnNBQ0FBQ1Fq
SUFGQUFBZ0dRRUxBQUJBTWdJV0FBQ0FaQVFzQUFBQXlRaFlBQUFBa2hHd0FBQUFKQ05nQVFBQQpT
RWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdBQWdHUUVMQUFBQU1rSVdBQUFBSklSc0FBQUFD
UWpZQUVBQUVoR3dBSUFBSkNNCmdBVUFBQ0FaQVFzQUFFQXlBaFlBQUlCa0JDd0FBQURKQ0ZnQUFB
Q1NFYkFBQUFBa0kyQUJBQUJJUnNBQ0FBQ1FqSUFGQUFBZ0dRRUwKQUFCQU1nSVdBQUNBWkFRc0FB
QUF5UWhZQUFBQWtoR3dBQUFBSkNOZ0FRQUFTRWJBQWdBQWtJeUFCUUFBSUJrQkN3QUFRRElDRmdB
QQpnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFBQ1FqWUFFQUFFaEd3QUlBQUpDTWdBVUFBQ0FaQVFz
QUFFQXlBaFlBQUlCa0JDd0FBQURKCkNGZ0FBQUNTRWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRaklB
RkFBQWdHUUVMQUFCQU1nSVdBQUNBWkFRc0FBQUF5UWhZQUFBQWtoR3cKQUFBQUpDTmdBUUFBU0Vi
QUFnQUFrSXlBQlFBQUlCa0JDd0FBUURJQ0ZnQUFnR1FFTEFBQUFNa0lXQUFBQUpJUnNBQUFBQ1Fq
WUFFQQpBRWhHd0FJQUFKQ01nQVVBQUNBWkFRc0FBRUF5QWhZQUFJQmtCQ3dBQUFESkNGZ0FBQUNT
RWJBQUFBQWtJMkFCQUFCSVJzQUNBQUNRCmpJQUZBQUFnR1FFTEFBQkFNZ0lXQUFDQVpBUXNBQUFB
eWY1L3UybnNuODVLZXEwQUFBQUFTVVZPUks1Q1lJST0KCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHkt
b24tc2Nyb2xsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1h
cmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1
Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29B
QUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTVN
akptTjJZMApNVEF3TjJReE4yTXpZVEkwTldGaE9HRm1NVFpsTW1VNU5ZYW1QRFVBQUJkM1NVUkJW
SGljN2QxYmIxVG5vY2ZoQmNZT1lLQk5pV3h6Cmlnb0dIQTRoSUFxQlJNRnRJMUZCUTFxMXFiamhJ
L1ZqY0VPcnBxMlNWQ3BOVzFHSm95MGdBUWRDWWt3NEdReVlRNHdkd3NIN1lyUm4KZXpPMkdjd2ZH
S3JudVVDRHZRN3ZlbDlML21uV3NqMXArL2J0QlFBQU9aT2Y5d0FBQVA3YkNDd0FnRENCQlFBUUpy
QUFBTUlFRmdCQQptTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JC
WUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKCkxBQ0FNSUVGQUJBMlpheFA3TnExYTZ4UGJk
cTA2Y2lSSTF1M2JuM2NrLzN6bi85ODk5MTNpNko0OE9EQnNXUEhUcDgrWFJURmloVXIKbGk1ZCty
aUhlaXk5dmIzVkQvaXhObjdhZzNtc0l6enRrVmNxTDJqTmV2WnpVcVh5d0VhT3NQYm5FNEFxalJs
WVJWR3NXTEZpK2ZMbApreWRQM3JWcjEvYnQyMHRWZFBMa3lVT0hEbjMzM1hjVE9GbjVtOGZ4NDhl
Ym1wcVdMMS9lMjl0NzdOaXhweDFZanpYZ2pvNk9vYUdoCkdobk1xTVlhNFpNZitYSFZmZzA4K3pt
cFVua1JSNjVtN2M4bkFGVWE4eGJockZtejJ0cmFKay8rdncwbVQ1NjhmUG55V2JObWJkdTIKN1Fu
UCtzMDMzelEzTjlmWDE3LzY2cXUvL09Vdm4vQm9qL1JZQTM3dnZmZWUza2lLeHh6TXFNWWE0Wk1m
K2I5UHpjNUplUkdmOXRjYgpBTS9GbUlHMVpjdVcrdnI2aHo1WVgxKy9aY3VXa2RVMU1ZT0RnMDkr
a09vOTFybWUwc0R1M2J1WE92NVlSM2lXVS9xaWVCcHpVbDdLCkoxRWVtRlVEK0s4MDNpM0M4UTBN
RE96ZnYvL1dyVnVyVjY5dWJXMHRpdUwrL2ZzZEhSM256NStmTVdQRzIyKy9QWFBtekpIYmw1ODEK
S1QzZFZmcTM5RGpYMHFWTGp4OC9QbjM2OU0yYk41OCtmZnFMTDc0WUhCeWNPblhxc21YTGxpeFpV
dHF4dmIxOS8vNzlOMi9lWExObQp6ZXpac3c4Y09EQXdNUERHRzI4c1hyejRrYWN1dVhMbFNtZG41
OURRME91dnY3NWt5WkxTQngrNTQ3bHo1dzRmUHZ6Z3dZTlZxMWExCnRyWU9EQXg4OHNrblJWRzB0
YlV0WHJ6NGswOCttVFJwVWwxZDNkcTFhNjlldmRyZDNWMFV4UWNmZkZCWFYxYyt3dGRmZjMza3lK
RjUKOCthZE8zZHUrL2J0WTgxZTVibktzMVRhYStUcmtjNmZQLy81NTU4UERRMnRXN2V1OHFwTHN6
ZHloaXN2dVpvWkhtdGR5azhSYmRxMAo2Y0NCQXpkdjNpenZNdEt0VzdjT0hqeDQ0OGFOZWZQbWJk
eTRjZEtrU1k4YzJQWHIxL2Z2MzE4VXhhSkZpOWF0VzlmWjJWbWEzdC8rCjlyZFRwa3dweldFMWEx
SGwxMm8xVjFHNWxNUER3NTkvL25sM2QzZGRYZDNLbFN0Ylcxc3JyMnZVbFIxcnBjYVp6OG81SFBV
NEFOU0MKaVFkV2IyL3ZUMy82MDZ0WHJ4NDZkS2owUGVQWXNXTXRMUzNyMTYrL2ZQbnk0Y09IMjl2
YlIyNWZmaHBtKy9idHBZZTZpcUw0eTEvKwpjdWZPblduVHB2MzYxNzh1YmRiVjFmWHV1KzlPbXpi
dDZ0V3JlL2JzV2JKa1NXbkh2cjYrOXZiMlM1Y3VkWFIwdlA3NjZ6LzcyYy82CisvdjM3OTlmK3Q0
ei9xbExob2FHTm0vZVBEZzRlUERnd2FsVHB5NVlzT0NSTy9iMzkzZDNkMi9ac3FXL3YzL2Z2bjB6
Wjg1c2FtcDYKLy8zM2QrL2V2V3pac3BkZWVtbjc5dTEvL2V0ZmYvR0xYMHlkT3JXNXVmbkNoUXRi
dG13WldWZEZVWHoyMldkYnQyNjljZVBHdVhQbgp4cG05VWMvMTNudnZmZnp4eDZWZHRtN2QrcmUv
L2UyaGk3cDgrZktwVTZmYTI5c2JHaHBPblRwVmVkVUhEeDU4YUlZckw3bWFHUjVyClhjb3IyOXZi
dTJuVHBtdlhyaDA0Y0tBeVRmYnQyN2Q4K2ZKNTgrYWRQSG55RDMvNFExMWQzWlFwVThZZjJLWk5t
NlpQbjk3UjBiRnEKMWFxaUtIN3lrNTljdkhqeG5YZmVLZFZWVVJRelpzeW9jaTJxK1ZxdDVpb3Fs
L0xFaVJNTkRRMi8rdFd2enA0OTI5WFYxZHJhV2puaApvNjVzNVVvOWNqNHI1N0NVandEVW9JbmZu
bGl5WkVsOWZYMUxTMHY1SWVLelo4OGVQSGp3ajMvODQzLys4NThyVjY0OHRQMm96NXE4Ci8vNzdS
VkhNbXpldi9KRnQyN1pOblRxMXA2Zm44T0hEOSsvZkwrKzRjT0hDK3ZyNitmUG4zNzE3ZDhtU0pR
ME5EYzNOemQ5Ly8zMDEKcHk1NTlkVlg2K3JxWnM2Y3VYNzkraE1uVGxTejQ1RWpSOWF0VzlmUTBO
RFMwckptelpyRGh3OFhSVEZ0MnJRNWMrWmN1SENoS0lyKwovdjd2dnZ1dTlQcnMyYk0vL3ZHUEd4
b2FIanJJOU9uVEwxMjZOSGZ1M0pGdlBsWE8zcWpuYW14c0xPOHk2dHR5eDQ4Zlg3ZHVYV05qClkz
MTkvYWcvSzFBNXc1V1hYTTBNajdVdXhmOCs1MVRhcGFXbHBiekxTQU1EQS9QbXphdXJxM3Z0dGRk
bXpacjF3UWNmUEhKZ2t5Wk4KZXVXVlYrYk9uZHZUMDFNVVJWOWZYMk5qNDhzdnZ6enlzRld1UlRW
ZnE5VmNSZVZTZG5kM0wxNjh1SzZ1YnVIQ2hhVUpxYnl1VVZlMgowaVBuczNJT1J6ME9BTFZnNHU5
Z2xZeThUM0huenAzS0cxaGxENzJ2VTFMNUFNcjE2OWM3T3p2bnpwMzcxbHR2bGQ2d0dibmp5Tk5W
CmYrcUh6Smd4NCtiTm05WHMyTi9mUDNYcTFOTHJCUXNXZEhaMmxsN1Buei8vNjYrL1hyUm8wVmRm
ZmJWMDZkSno1ODYxdHJiMjlQUzgKOWRaYmxRZHBiMi8vN0xQUFRwdzRzV0hEaGxkZWVXWGtwMFpl
d2xqbkd0LzE2OWZMRVZiNXpGd3gyZ3hYWG5JMU16ek91b3c4eFZqMwpyUll1WFBqbGwxKzJ0YlZk
dkhqeHpwMDdWUTZzS0lyRml4ZnYyYlBudGRkZSsrcXJyOG8zZGtlcWZpM0cvNEtwNWlvcWwzSm9h
T2loCmFhKzhyaXBYOXBIeldUbUhBTlNzNUFPMnMyYk5Lci8rNXB0dkpuYVF2WHYzYnRpd1ljV0tG
Uys5OU5KVE92V3RXN2QrOElNZlZMUGoKckZtemVudDdTNi92Mzc5ZnpxUG01dVpyMTY0TkRBeGN1
M2J0alRmZXVIbno1dVhMbCt2cTZrWWVyV3o2OU9rYk4yNWN2MzU5NlltaQpjUzVoMUhNOTVNR0RC
eVAvTzMvKy9PdlhyNWRlMzcxN3QzS0RVVTlVZmwzOU1rMXNYY3BhVzFzdlhyejQ0WWNmSGp0MmJN
T0dEZFVQCnJMR3hzYkd4OGN5Wk0xZXZYcDAvZjM3bFhvKzFGdU9mNjVFcWw3Syt2bjU0ZUhqOHZh
cGMyVWVxWmc0QnFCR1BEcXpTOSsvKy92N3kKTjVMQndjR2lLRXEvdktkMHo2WDBlczZjT1dmT25M
bDM3OTdaczJjcnYybVY5aG9jSEN4dGZPUEdqZktPSTV2ZysrKy92M1hyMXREUQowSmt6WjRxaXVI
Ly8vbGluSy8xYit1ejRweTZLb3E2dXJxZW41OTY5ZTk5KysyM3BHYVBTeHl0M0hIbTZ0V3ZYSGox
NjlOcTFhM2Z1CjNEbDgrUERxMWF2TFIydHVidDY3ZCsvQ2hRc25UNTQ4Wjg2Y1E0Y09MVnk0Y05R
SjNMVnIxN2x6NTZaTm0xYjY2Yk94TG1lc2N6VTAKTlBUMjl0NjllN2YwaU5YSEgzODg4Z2lyVjY4
dTdYWHYzcjJ1cnE2aUtENzY2S09SWjYrYzRmRXZlYXdaSG10ZEJnY0hiOSsrUGVydQpJKzNidCsv
dHQ5LyszZTkrdDNYcjFwYVdsaW9IVnJKNDhlS09qbzdTVkkrNnN1T3NSZlZmcTlWY3hVTkxXUlJG
UzB0TFgxL2Y4UER3CnJWdTNTay9jVjE3WHFDdGJIdGhETDhhWno4bzVCS0JtMWExY3VYS2NUKy9h
dGF2MDAxaW5UNS91NnVvcWJmemhoeDhXUmZIbGwxK3UKWExueVQzLzZVL24xN05tenYvamlpNDZP
am9HQmdYWHIxajMwVmtkcHIxT25UbjM1NVpkRlVYUjNkM2QxZFpWZTkvVDB0TFcxbFRhYgpNbVZL
WjJkblgxL2ZtalZyTGx5NE1EUTB0Ry9mdmxGUFZ6N2dJMDlkRk1XY09YTzZ1cnFPSERuUzE5ZTNj
dVhLdVhQbmxqNWV1ZVBJCnE1cytmZnJreVpNUEhUcDArdlRwdHJhMjV1Ym04Z0dIaDRkUG56Njlj
ZVBHMHAyZG5wNmVOOTk4YzlUYm9GMWRYUzB0TFh2MzdsMjEKYXRXUGZ2U2pzV1p2ckhQVjFkVjFk
bmIyOXZZdVg3NzgwcVZMYTlldS9jYy8vbEhlYThxVUtiTm56OTYzYjkrcFU2ZmEydHF1WGJ1Mgpk
dTNha1U5cmxVNDNjb2JIditTeFpuaXNkVGwxNmxTcC9DcDNIemtKWjgrZVBYTGtTRmRYVjJuUnAw
NmQrdTkvLy91UkF5dDlmT2JNCm1TZE9uSGp6elRkSHZRYzYvbHBVLzdYNjV6Ly8rWkZYOGRCU0Zr
WFIxTlIwNU1pUnpzN09xMWV2TGx1MjdJYy8vR0hsaEkrNnN1V0IKbFdldjlHS2MrYXljdzVkZmZ2
blRUejlkdEdqUnFOTUN3SE0wcWZwSGwyQmlidDY4ZWVmT25kS1B6ZzBQRDkrOGVmUFRUeit0L2hu
dApLMWV1bkR4NThwMTMzbm1hWTZ4MVR6aUhBRHhqZnNraFQ5MmVQWHUrL2ZiYjBrL0QzYjE3dDYr
dmI4NmNPVlh1KytEQmc5S1QzVTl6CmdDK0FKNWxEQUo0OTcyRHgxSjAvZi83a3laTTNidHg0OE9C
QlkyUGozTGx6VjZ4WVVmbjdMQ3I5L2U5L3YzUG56dnIxNnoxeU5PRTUKQk9DNUVGZ0FBR0Z1RVFJ
QWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNB
TUlFRgpBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFR
SnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBCllRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVEWmxZcnQx
ZDNkbnh3Rk1XR3RyNi9NZUFnRC9qM2V3NE1XMllNR0M1ejBFQUI0MndYZXcKU243Lys5K254Z0dV
dExlM0YwV3hlL2Z1dnI2K3NiWnBhbXJhdkhselVSUy8rYzF2bnQzSUFLamFFd1VXOERUczNMbHp4
NDRkVDc0TgpBTStMVzRSUVczYnYzbDFOT2UzWXNXUDM3dDNQWUR3QVRJREFndG95enAzQkNXOEp3
RE1tc0FBQXdnUVdBRUNZd0lJWHdLUkprNTczCkVBQjREQUlMYWwycHJqUVd3QXRFWUVGTkc5bFZH
Z3ZnUlNHd29IWlZGcFhHQW5naCtFV2pVTHVHaDRlZjl4QUFtQWp2WUFFQWhBa3MKQUlBd2dRVUFF
T1laTEtnNU8zZnVmTjVEQU9DSmVBY0xBQ0RNTzFoUWM3WnQyMWI1d2R1M2J6LzBrWC85NjEvUFpE
Z0FQRGJ2WUFFQQpoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RH
QUJBSVFKTEFDQU1JRUZBQkFtc0FBQXd2eXhaNmhwCkgzMzAwY2ovL3Z6blAzOWVJd0dnZWdJTGF0
cTJiZHRLTDI3ZnZ2MThSd0pBOWR3aUJBQUk4dzRXMURTM0NBRmVSQUlMYXBwYmhBQXYKSXJjSUFR
REN2SU1GTmMwdFFvQVhrY0NDbXVZV0ljQ0x5QzFDQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdB
SUUxZ0FBR0VDQ3dBZwpUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3dnd0UXFnNUQvMkJad0JlT0FJ
TGFzN3ExYXVyMmV6bzBhTlBleVFBVEl4YmhBQUFZUUlMCkFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNh
d0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUEKd2dR
V0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFD
QUFnVFdBQUFZUUlMQUNCTQpZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdB
QUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXCkFFQ1l3QUlBQ0JOWUFBQmhBZ3NB
SUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUEK
aEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FN
SUVGQUJBbXNBQUF3Z1FXQUVDWQp3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFK
ckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzCkFJQXdnUVVBRUNhd0FBRENC
QllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdB
SUEKQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdB
QUFZUUlMQUNCTVlBRUFoQWtzQUlBdwpnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3
QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUFDQk5ZCkFBQmhBZ3NBSUV4Z0FR
Q0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlB
d2dRVUEKRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJB
bXNBQUF3Z1FXQUVEWWxPYzlBT0JoUjQ4ZQpmZDVEQU9DSkNDeW9PVHQyN0tobXM1MDdkejd0a1FB
d01XNFJBZ0NFQ1N3QWdEQ0JCUUFRSnJBQUFNSTg1QTYxYTlLa1NaVWZIQjRlCmZ2WWpBZUN4ZUFj
TGFsZGxTNmtyZ0JlQ3dJS2FOcktvMUJYQWkwSmdRYTByZFpXNkFuaUJDQ3g0QWFncmdCZUx3QUlB
Q0JOWVVGdWEKbXByaVd3THdqQWtzcUMyYk4yK3U1bzhNN3R5NWMvUG16YzlnUEFCTWdOK0RCVFZu
eDQ0ZHUzZnY3dXZyRzJ1RHBxYW1LdjhnTkFEUAp4YVR0MjdkUFlMZnU3dTZpS0JZc1dKQWVEL0RZ
R2hvYW52Y1FBUGgvSm42TFVGMEJBSXhxZ3JjSVcxdGJzK01BQVBpdjRTRjNBSUF3CmdRVUFFQ2F3
QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdB
RUNZd0FJQUNCTlkKQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNB
QWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQQpFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FB
R0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoCkFnc0FJ
RXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhB
a3NBSUF3Z1FVQUVDYXcKQUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1J
RUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQQpJRXhnQVFDRUNTd0FnRENCQlFBUUpy
QUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDCkJC
WUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJ
QUNCTllBQUJoQWdzQUlFeGcKQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FB
QVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQQpRSmpBQWdBSUUxZ0FBR0VDQ3dB
Z1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNF
CkNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3
Z1FVQUVDYXdBQURDQkJZQVFKakEKQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFt
c0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QQpnRENCQlFBUUpyQUFBTUlF
RmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFB
Z0FJCkUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllB
QUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0IKQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxB
Q0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQQpBR0VDQ3dBZ1RHQUJB
SVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdE
Q0JCUUFRCkpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVD
YXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUMKQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdn
UVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQQpBTUlFRmdCQW1N
QUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFn
QUFHRUNDd0FnClRHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdz
QUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUUKRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFF
QWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQgpBSVFKTEFD
QU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFR
SnJBQUFNSUVGZ0JBCm1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURD
QkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUoKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZ
d0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQwpBQWdU
V0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUND
d0FnVEdBQkFJUUpMQUNBCk1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdB
UUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1QKV0FBQVlRSUxBQ0JNWUFFQWhBa3NB
SUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRgpB
QkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFN
SUVGZ0JBbU1BQ0FBajdIMkU4CktSRDMvK0tOQUFBQUFFbEZUa1N1UW1DQwoK
</data>

          </attachment>
      

    </bug>

</bugzilla>